@pgplex/pgconsole 0.2.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,7 +21,7 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
21
21
  ${rect.right}px ${rect.top}px,
22
22
  ${rect.left}px ${rect.top}px
23
23
  )`}return(0,import_jsx_runtime.jsx)(`div`,{ref,role:`presentation`,"data-base-ui-inert":``,...otherProps,style:{position:`fixed`,inset:0,userSelect:`none`,WebkitUserSelect:`none`,clipPath}})}),MenuPositioner=import_react.forwardRef(function(componentProps,forwardedRef){let{anchor:anchorProp,positionMethod:positionMethodProp=`absolute`,className,render,side,align:alignProp,sideOffset:sideOffsetProp=0,alignOffset:alignOffsetProp=0,collisionBoundary=`clipping-ancestors`,collisionPadding=5,arrowPadding=5,sticky=!1,disableAnchorTracking=!1,collisionAvoidance:collisionAvoidanceProp=DROPDOWN_COLLISION_AVOIDANCE,...elementProps}=componentProps,{store}=useMenuRootContext(),keepMounted=useMenuPortalContext(),contextMenuContext=useContextMenuRootContext(!0),parent=store.useState(`parent`),floatingRootContext=store.useState(`floatingRootContext`),floatingTreeRoot=store.useState(`floatingTreeRoot`),mounted=store.useState(`mounted`),open=store.useState(`open`),modal=store.useState(`modal`),triggerElement=store.useState(`activeTriggerElement`),lastOpenChangeReason=store.useState(`lastOpenChangeReason`),floatingNodeId=store.useState(`floatingNodeId`),floatingParentNodeId=store.useState(`floatingParentNodeId`),anchor=anchorProp,sideOffset=sideOffsetProp,alignOffset=alignOffsetProp,align=alignProp,collisionAvoidance=collisionAvoidanceProp;parent.type===`context-menu`&&(anchor=anchorProp??parent.context?.anchor,align??=`start`,!side&&align!==`center`&&(alignOffset=componentProps.alignOffset??2,sideOffset=componentProps.sideOffset??-5));let computedSide=side,computedAlign=align;parent.type===`menu`?(computedSide??=`inline-end`,computedAlign??=`start`,collisionAvoidance=componentProps.collisionAvoidance??POPUP_COLLISION_AVOIDANCE):parent.type===`menubar`&&(computedSide??=`bottom`,computedAlign??=`start`);let contextMenu=parent.type===`context-menu`,positioner=useAnchorPositioning({anchor,floatingRootContext,positionMethod:contextMenuContext?`fixed`:positionMethodProp,mounted,side:computedSide,sideOffset,align:computedAlign,alignOffset,arrowPadding:contextMenu?0:arrowPadding,collisionBoundary,collisionPadding,sticky,nodeId:floatingNodeId,keepMounted,disableAnchorTracking,collisionAvoidance,shiftCrossAxis:contextMenu,externalTree:floatingTreeRoot}),positionerProps=import_react.useMemo(()=>{let hiddenStyles={};return open||(hiddenStyles.pointerEvents=`none`),{role:`presentation`,hidden:!mounted,style:{...positioner.positionerStyles,...hiddenStyles}}},[open,mounted,positioner.positionerStyles]);import_react.useEffect(()=>{function onMenuOpenChange(details){details.open?(details.parentNodeId===floatingNodeId&&store.set(`hoverEnabled`,!1),details.nodeId!==floatingNodeId&&details.parentNodeId===store.select(`floatingParentNodeId`)&&store.setOpen(!1,createChangeEventDetails(siblingOpen))):details.parentNodeId===floatingNodeId&&details.reason!==`sibling-open`&&store.set(`hoverEnabled`,!0)}return floatingTreeRoot.events.on(`menuopenchange`,onMenuOpenChange),()=>{floatingTreeRoot.events.off(`menuopenchange`,onMenuOpenChange)}},[store,floatingTreeRoot.events,floatingNodeId]),import_react.useEffect(()=>{if(store.select(`floatingParentNodeId`)==null)return;function onParentClose(details){if(details.open||details.nodeId!==store.select(`floatingParentNodeId`))return;let reason=details.reason??`sibling-open`;store.setOpen(!1,createChangeEventDetails(reason))}return floatingTreeRoot.events.on(`menuopenchange`,onParentClose),()=>{floatingTreeRoot.events.off(`menuopenchange`,onParentClose)}},[floatingTreeRoot.events,store]),import_react.useEffect(()=>{function onItemHover(event){!open||event.nodeId!==store.select(`floatingParentNodeId`)||event.target&&triggerElement&&triggerElement!==event.target&&store.setOpen(!1,createChangeEventDetails(siblingOpen))}return floatingTreeRoot.events.on(`itemhover`,onItemHover),()=>{floatingTreeRoot.events.off(`itemhover`,onItemHover)}},[floatingTreeRoot.events,open,triggerElement,store]),import_react.useEffect(()=>{let eventDetails={open,nodeId:floatingNodeId,parentNodeId:floatingParentNodeId,reason:store.select(`lastOpenChangeReason`)};floatingTreeRoot.events.emit(`menuopenchange`,eventDetails)},[floatingTreeRoot.events,open,store,floatingNodeId,floatingParentNodeId]);let state$1=import_react.useMemo(()=>({open,side:positioner.side,align:positioner.align,anchorHidden:positioner.anchorHidden,nested:parent.type===`menu`}),[open,positioner.side,positioner.align,positioner.anchorHidden,parent.type]),contextValue=import_react.useMemo(()=>({side:positioner.side,align:positioner.align,arrowRef:positioner.arrowRef,arrowUncentered:positioner.arrowUncentered,arrowStyles:positioner.arrowStyles,nodeId:positioner.context.nodeId}),[positioner.side,positioner.align,positioner.arrowRef,positioner.arrowUncentered,positioner.arrowStyles,positioner.context.nodeId]),element$3=useRenderElement(`div`,componentProps,{state:state$1,stateAttributesMapping:popupStateMapping,ref:[forwardedRef,store.useStateSetter(`positionerElement`)],props:[positionerProps,elementProps]}),shouldRenderBackdrop=mounted&&parent.type!==`menu`&&(parent.type!==`menubar`&&modal&&lastOpenChangeReason!==`trigger-hover`||parent.type===`menubar`&&parent.context.modal),backdropCutout=null;return parent.type===`menubar`?backdropCutout=parent.context.contentElement:parent.type===void 0&&(backdropCutout=triggerElement),(0,import_jsx_runtime.jsxs)(MenuPositionerContext.Provider,{value:contextValue,children:[shouldRenderBackdrop&&(0,import_jsx_runtime.jsx)(InternalBackdrop,{ref:parent.type===`context-menu`||parent.type===`nested-context-menu`?parent.context.internalBackdropRef:null,inert:inertValue(!open),cutout:backdropCutout}),(0,import_jsx_runtime.jsx)(FloatingNode,{id:floatingNodeId,children:(0,import_jsx_runtime.jsx)(CompositeList,{elementsRef:store.context.itemDomElements,labelsRef:store.context.itemLabels,children:element$3})})]})});var originalHtmlStyles={},originalBodyStyles={},originalHtmlScrollBehavior=``;function hasInsetScrollbars(referenceElement){if(typeof document>`u`)return!1;let doc$1=ownerDocument(referenceElement);return getWindow(doc$1).innerWidth-doc$1.documentElement.clientWidth>0}function supportsStableScrollbarGutter(referenceElement){if(!(typeof CSS<`u`&&CSS.supports&&CSS.supports(`scrollbar-gutter`,`stable`))||typeof document>`u`)return!1;let html$5=ownerDocument(referenceElement).documentElement,originalStyles={scrollbarGutter:html$5.style.scrollbarGutter,overflowY:html$5.style.overflowY};html$5.style.scrollbarGutter=`stable`,html$5.style.overflowY=`scroll`;let before=html$5.offsetWidth;html$5.style.overflowY=`hidden`;let after=html$5.offsetWidth;return Object.assign(html$5.style,originalStyles),before===after}function preventScrollOverlayScrollbars(referenceElement){let doc$1=ownerDocument(referenceElement),html$5=doc$1.documentElement,body$2=doc$1.body,elementToLock=isOverflowElement(html$5)?html$5:body$2,originalOverflow=elementToLock.style.overflow;return elementToLock.style.overflow=`hidden`,()=>{elementToLock.style.overflow=originalOverflow}}function preventScrollInsetScrollbars(referenceElement){let doc$1=ownerDocument(referenceElement),html$5=doc$1.documentElement,body$2=doc$1.body,win=getWindow(html$5),scrollTop=0,scrollLeft=0,updateGutterOnly=!1,resizeFrame=AnimationFrame.create();if(isWebKit&&(win.visualViewport?.scale??1)!==1)return()=>{};function lockScroll(){let htmlStyles=win.getComputedStyle(html$5),bodyStyles=win.getComputedStyle(body$2),scrollbarGutterValue=(htmlStyles.scrollbarGutter||``).includes(`both-edges`)?`stable both-edges`:`stable`;scrollTop=html$5.scrollTop,scrollLeft=html$5.scrollLeft,originalHtmlStyles={scrollbarGutter:html$5.style.scrollbarGutter,overflowY:html$5.style.overflowY,overflowX:html$5.style.overflowX},originalHtmlScrollBehavior=html$5.style.scrollBehavior,originalBodyStyles={position:body$2.style.position,height:body$2.style.height,width:body$2.style.width,boxSizing:body$2.style.boxSizing,overflowY:body$2.style.overflowY,overflowX:body$2.style.overflowX,scrollBehavior:body$2.style.scrollBehavior};let isScrollableY=html$5.scrollHeight>html$5.clientHeight,isScrollableX=html$5.scrollWidth>html$5.clientWidth,hasConstantOverflowY=htmlStyles.overflowY===`scroll`||bodyStyles.overflowY===`scroll`,hasConstantOverflowX=htmlStyles.overflowX===`scroll`||bodyStyles.overflowX===`scroll`,scrollbarWidth=Math.max(0,win.innerWidth-body$2.clientWidth),scrollbarHeight=Math.max(0,win.innerHeight-body$2.clientHeight),marginY=parseFloat(bodyStyles.marginTop)+parseFloat(bodyStyles.marginBottom),marginX=parseFloat(bodyStyles.marginLeft)+parseFloat(bodyStyles.marginRight),elementToLock=isOverflowElement(html$5)?html$5:body$2;if(updateGutterOnly=supportsStableScrollbarGutter(referenceElement),updateGutterOnly){html$5.style.scrollbarGutter=scrollbarGutterValue,elementToLock.style.overflowY=`hidden`,elementToLock.style.overflowX=`hidden`;return}Object.assign(html$5.style,{scrollbarGutter:scrollbarGutterValue,overflowY:`hidden`,overflowX:`hidden`}),(isScrollableY||hasConstantOverflowY)&&(html$5.style.overflowY=`scroll`),(isScrollableX||hasConstantOverflowX)&&(html$5.style.overflowX=`scroll`),Object.assign(body$2.style,{position:`relative`,height:marginY||scrollbarHeight?`calc(100dvh - ${marginY+scrollbarHeight}px)`:`100dvh`,width:marginX||scrollbarWidth?`calc(100vw - ${marginX+scrollbarWidth}px)`:`100vw`,boxSizing:`border-box`,overflow:`hidden`,scrollBehavior:`unset`}),body$2.scrollTop=scrollTop,body$2.scrollLeft=scrollLeft,html$5.setAttribute(`data-base-ui-scroll-locked`,``),html$5.style.scrollBehavior=`unset`}function cleanup(){Object.assign(html$5.style,originalHtmlStyles),Object.assign(body$2.style,originalBodyStyles),updateGutterOnly||(html$5.scrollTop=scrollTop,html$5.scrollLeft=scrollLeft,html$5.removeAttribute(`data-base-ui-scroll-locked`),html$5.style.scrollBehavior=originalHtmlScrollBehavior)}function handleResize(){cleanup(),resizeFrame.request(lockScroll)}return lockScroll(),win.addEventListener(`resize`,handleResize),()=>{resizeFrame.cancel(),cleanup(),typeof win.removeEventListener==`function`&&win.removeEventListener(`resize`,handleResize)}}var ScrollLocker=class{lockCount=0;restore=null;timeoutLock=Timeout.create();timeoutUnlock=Timeout.create();acquire(referenceElement){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(referenceElement)),this.release}release=()=>{--this.lockCount,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)};lock(referenceElement){if(this.lockCount===0||this.restore!==null)return;let html$5=ownerDocument(referenceElement).documentElement,htmlOverflowY=getWindow(html$5).getComputedStyle(html$5).overflowY;if(htmlOverflowY===`hidden`||htmlOverflowY===`clip`){this.restore=NOOP;return}this.restore=isIOS||!hasInsetScrollbars(referenceElement)?preventScrollOverlayScrollbars(referenceElement):preventScrollInsetScrollbars(referenceElement)}},SCROLL_LOCKER=new ScrollLocker;function useScrollLock(enabled=!0,referenceElement=null){useIsoLayoutEffect(()=>{if(enabled)return SCROLL_LOCKER.acquire(referenceElement)},[enabled,referenceElement])}const MenubarContext=import_react.createContext(null);function useMenubarContext(optional){let context=import_react.useContext(MenubarContext);if(context===null&&!optional)throw Error(formatErrorMessage(5));return context}function useEnhancedClickHandler(handler){let lastClickInteractionTypeRef=import_react.useRef(``),handlePointerDown=import_react.useCallback(event=>{event.defaultPrevented||(lastClickInteractionTypeRef.current=event.pointerType,handler(event,event.pointerType))},[handler]);return{onClick:import_react.useCallback(event=>{if(event.detail===0){handler(event,`keyboard`);return}`pointerType`in event&&handler(event,event.pointerType),handler(event,lastClickInteractionTypeRef.current),lastClickInteractionTypeRef.current=``},[handler]),onPointerDown:handlePointerDown}}function useOpenInteractionType(open){let[openMethod,setOpenMethod]=import_react.useState(null),handleTriggerClick=useStableCallback((_$2,interactionType)=>{open||setOpenMethod(interactionType||(isIOS?`touch`:``))}),reset=import_react.useCallback(()=>{setOpenMethod(null)},[]),{onClick,onPointerDown}=useEnhancedClickHandler(handleTriggerClick);return import_react.useMemo(()=>({openMethod,reset,triggerProps:{onClick,onPointerDown}}),[openMethod,reset,onClick,onPointerDown])}var selectors$2={...popupStoreSelectors,disabled:createSelector(state$1=>state$1.parent.type===`menubar`&&state$1.parent.context.disabled||state$1.disabled),modal:createSelector(state$1=>(state$1.parent.type===void 0||state$1.parent.type===`context-menu`)&&(state$1.modal??!0)),allowMouseEnter:createSelector(state$1=>state$1.parent.type===`menu`?state$1.parent.store.select(`allowMouseEnter`):state$1.allowMouseEnter),stickIfOpen:createSelector(state$1=>state$1.stickIfOpen),parent:createSelector(state$1=>state$1.parent),rootId:createSelector(state$1=>state$1.parent.type===`menu`?state$1.parent.store.select(`rootId`):state$1.parent.type===void 0?state$1.rootId:state$1.parent.context.rootId),activeIndex:createSelector(state$1=>state$1.activeIndex),isActive:createSelector((state$1,itemIndex)=>state$1.activeIndex===itemIndex),hoverEnabled:createSelector(state$1=>state$1.hoverEnabled),instantType:createSelector(state$1=>state$1.instantType),lastOpenChangeReason:createSelector(state$1=>state$1.openChangeReason),floatingTreeRoot:createSelector(state$1=>state$1.parent.type===`menu`?state$1.parent.store.select(`floatingTreeRoot`):state$1.floatingTreeRoot),floatingNodeId:createSelector(state$1=>state$1.floatingNodeId),floatingParentNodeId:createSelector(state$1=>state$1.floatingParentNodeId),itemProps:createSelector(state$1=>state$1.itemProps),closeDelay:createSelector(state$1=>state$1.closeDelay),keyboardEventRelay:createSelector(state$1=>{if(state$1.keyboardEventRelay)return state$1.keyboardEventRelay;if(state$1.parent.type===`menu`)return state$1.parent.store.select(`keyboardEventRelay`)})},MenuStore=class MenuStore extends ReactStore{constructor(initialState){super({...createInitialState$1(),...initialState},{positionerRef:import_react.createRef(),popupRef:import_react.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:import_react.createRef(),beforeContentFocusGuardRef:import_react.createRef(),onOpenChangeComplete:void 0,triggerElements:new PopupTriggerMap},selectors$2),this.observe(createSelector(state$1=>state$1.allowMouseEnter),(allowMouseEnter,oldValue)=>{this.state.parent.type===`menu`&&allowMouseEnter!==oldValue&&this.state.parent.store.set(`allowMouseEnter`,allowMouseEnter)}),this.unsubscribeParentListener=this.observe(`parent`,parent=>{if(this.unsubscribeParentListener?.(),parent.type===`menu`){this.unsubscribeParentListener=parent.store.subscribe(()=>{this.notifyAll()}),this.context.allowMouseUpTriggerRef=parent.store.context.allowMouseUpTriggerRef;return}parent.type!==void 0&&(this.context.allowMouseUpTriggerRef=parent.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(open,eventDetails){this.state.floatingRootContext.context.events.emit(`setOpen`,{open,eventDetails})}static useStore(externalStore,initialState){let internalStore=useRefWithInit(()=>new MenuStore(initialState)).current;return externalStore??internalStore}unsubscribeParentListener=null};function createInitialState$1(){return{...createInitialPopupStoreState(),disabled:!1,modal:!0,allowMouseEnter:!0,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new FloatingTreeStore,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:EMPTY_OBJECT,keyboardEventRelay:void 0,closeDelay:0}}const MenuSubmenuRootContext=import_react.createContext(void 0);function useMenuSubmenuRootContext(){return import_react.useContext(MenuSubmenuRootContext)}var import_react_dom$6=__toESM(require_react_dom());function MenuRoot(props){let{children,open:openProp,onOpenChange,onOpenChangeComplete,defaultOpen=!1,disabled:disabledProp=!1,modal:modalProp,loopFocus=!0,orientation=`vertical`,actionsRef,closeParentOnEsc=!1,handle:handle$1,triggerId:triggerIdProp,defaultTriggerId:defaultTriggerIdProp=null,highlightItemOnHover=!0}=props,contextMenuContext=useContextMenuRootContext(!0),parentMenuRootContext=useMenuRootContext(!0),menubarContext=useMenubarContext(!0),isSubmenu=useMenuSubmenuRootContext(),parentFromContext=import_react.useMemo(()=>isSubmenu&&parentMenuRootContext?{type:`menu`,store:parentMenuRootContext.store}:menubarContext?{type:`menubar`,context:menubarContext}:contextMenuContext&&!parentMenuRootContext?{type:`context-menu`,context:contextMenuContext}:{type:void 0},[contextMenuContext,parentMenuRootContext,menubarContext,isSubmenu]),store=MenuStore.useStore(handle$1?.store,{parent:parentFromContext}),floatingTreeRoot=store.useState(`floatingTreeRoot`),floatingNodeIdFromContext=useFloatingNodeId(floatingTreeRoot),floatingParentNodeIdFromContext=useFloatingParentNodeId();useIsoLayoutEffect(()=>{contextMenuContext&&!parentMenuRootContext?store.update({parent:{type:`context-menu`,context:contextMenuContext},floatingNodeId:floatingNodeIdFromContext,floatingParentNodeId:floatingParentNodeIdFromContext}):parentMenuRootContext&&store.update({floatingNodeId:floatingNodeIdFromContext,floatingParentNodeId:floatingParentNodeIdFromContext})},[contextMenuContext,parentMenuRootContext,floatingNodeIdFromContext,floatingParentNodeIdFromContext,store]),store.useControlledProp(`open`,openProp,defaultOpen),store.useControlledProp(`activeTriggerId`,triggerIdProp,defaultTriggerIdProp),store.useContextCallback(`onOpenChangeComplete`,onOpenChangeComplete);let open=store.useState(`open`),activeTriggerElement=store.useState(`activeTriggerElement`),positionerElement=store.useState(`positionerElement`),hoverEnabled=store.useState(`hoverEnabled`),modal=store.useState(`modal`),disabled$1=store.useState(`disabled`),lastOpenChangeReason=store.useState(`lastOpenChangeReason`),parent=store.useState(`parent`),activeIndex=store.useState(`activeIndex`),payload=store.useState(`payload`),floatingParentNodeId=store.useState(`floatingParentNodeId`),openEventRef=import_react.useRef(null),nested=floatingParentNodeId!=null,floatingEvents;store.useSyncedValues({disabled:disabledProp,modal:parent.type===void 0?modalProp:void 0,rootId:useId()});let{openMethod,triggerProps:interactionTypeProps,reset:resetOpenInteractionType}=useOpenInteractionType(open);useImplicitActiveTrigger(store);let{forceUnmount}=useOpenStateTransitions(open,store,()=>{store.update({allowMouseEnter:!1,stickIfOpen:!0}),resetOpenInteractionType()}),allowOutsidePressDismissalRef=import_react.useRef(parent.type!==`context-menu`),allowOutsidePressDismissalTimeout=useTimeout();import_react.useEffect(()=>{if(open||(openEventRef.current=null),parent.type===`context-menu`){if(!open){allowOutsidePressDismissalTimeout.clear(),allowOutsidePressDismissalRef.current=!1;return}allowOutsidePressDismissalTimeout.start(500,()=>{allowOutsidePressDismissalRef.current=!0})}},[allowOutsidePressDismissalTimeout,open,parent.type]),useScrollLock(open&&modal&&lastOpenChangeReason!==`trigger-hover`&&openMethod!==`touch`,positionerElement),useIsoLayoutEffect(()=>{!open&&!hoverEnabled&&store.set(`hoverEnabled`,!0)},[open,hoverEnabled,store]);let allowTouchToCloseRef=import_react.useRef(!0),allowTouchToCloseTimeout=useTimeout(),setOpen=useStableCallback((nextOpen,eventDetails)=>{let reason=eventDetails.reason;if(open===nextOpen&&eventDetails.trigger===activeTriggerElement&&lastOpenChangeReason===reason||(eventDetails.preventUnmountOnClose=()=>{store.set(`preventUnmountingOnClose`,!0)},!nextOpen&&eventDetails.trigger==null&&(eventDetails.trigger=activeTriggerElement??void 0),onOpenChange?.(nextOpen,eventDetails),eventDetails.isCanceled))return;let details={open:nextOpen,nativeEvent:eventDetails.event,reason:eventDetails.reason,nested};floatingEvents?.emit(`openchange`,details);let nativeEvent=eventDetails.event;if(nextOpen===!1&&nativeEvent?.type===`click`&&nativeEvent.pointerType===`touch`&&!allowTouchToCloseRef.current)return;if(!nextOpen&&activeIndex!==null){let activeOption=store.context.itemDomElements.current[activeIndex];queueMicrotask(()=>{activeOption?.setAttribute(`tabindex`,`-1`)})}nextOpen&&reason===`trigger-focus`?(allowTouchToCloseRef.current=!1,allowTouchToCloseTimeout.start(300,()=>{allowTouchToCloseRef.current=!0})):(allowTouchToCloseRef.current=!0,allowTouchToCloseTimeout.clear());let isKeyboardClick=(reason===`trigger-press`||reason===`item-press`)&&nativeEvent.detail===0&&nativeEvent?.isTrusted,isDismissClose=!nextOpen&&(reason===`escape-key`||reason==null);function changeState(){let updatedState={open:nextOpen,openChangeReason:reason};openEventRef.current=eventDetails.event??null;let newTriggerId=eventDetails.trigger?.id??null;(newTriggerId||nextOpen)&&(updatedState.activeTriggerId=newTriggerId,updatedState.activeTriggerElement=eventDetails.trigger??null),store.update(updatedState)}reason===`trigger-hover`?import_react_dom$6.flushSync(changeState):changeState(),parent.type===`menubar`&&(reason===`trigger-focus`||reason===`focus-out`||reason===`trigger-hover`||reason===`list-navigation`||reason===`sibling-open`)?store.set(`instantType`,`group`):isKeyboardClick||isDismissClose?store.set(`instantType`,isKeyboardClick?`click`:`dismiss`):store.set(`instantType`,void 0)}),createMenuEventDetails=import_react.useCallback(reason=>{let details=createChangeEventDetails(reason);return details.preventUnmountOnClose=()=>{store.set(`preventUnmountingOnClose`,!0)},details},[store]),handleImperativeClose=import_react.useCallback(()=>{store.setOpen(!1,createMenuEventDetails(imperativeAction))},[store,createMenuEventDetails]);import_react.useImperativeHandle(actionsRef,()=>({unmount:forceUnmount,close:handleImperativeClose}),[forceUnmount,handleImperativeClose]);let ctx;parent.type===`context-menu`&&(ctx=parent.context),import_react.useImperativeHandle(ctx?.positionerRef,()=>positionerElement,[positionerElement]),import_react.useImperativeHandle(ctx?.actionsRef,()=>({setOpen}),[setOpen]);let floatingRootContext=useSyncedFloatingRootContext({popupStore:store,onOpenChange:setOpen});floatingEvents=floatingRootContext.context.events,import_react.useEffect(()=>{let handleSetOpenEvent=({open:nextOpen,eventDetails})=>setOpen(nextOpen,eventDetails);return floatingEvents.on(`setOpen`,handleSetOpenEvent),()=>{floatingEvents?.off(`setOpen`,handleSetOpenEvent)}},[floatingEvents,setOpen]);let dismiss=useDismiss(floatingRootContext,{enabled:!disabled$1,bubbles:{escapeKey:closeParentOnEsc&&parent.type===`menu`},outsidePress(){return parent.type!==`context-menu`||openEventRef.current?.type===`contextmenu`?!0:allowOutsidePressDismissalRef.current},externalTree:nested?floatingTreeRoot:void 0}),role=useRole(floatingRootContext,{role:`menu`}),direction=useDirection(),setActiveIndex=import_react.useCallback(index$4=>{store.select(`activeIndex`)!==index$4&&store.set(`activeIndex`,index$4)},[store]),listNavigation$1=useListNavigation(floatingRootContext,{enabled:!disabled$1,listRef:store.context.itemDomElements,activeIndex,nested:parent.type!==void 0,loopFocus,orientation,parentOrientation:parent.type===`menubar`?parent.context.orientation:void 0,rtl:direction===`rtl`,disabledIndices:EMPTY_ARRAY,onNavigate:setActiveIndex,openOnArrowKeyDown:parent.type!==`context-menu`,externalTree:nested?floatingTreeRoot:void 0,focusItemOnHover:highlightItemOnHover}),onTypingChange=import_react.useCallback(nextTyping=>{store.context.typingRef.current=nextTyping},[store]),{getReferenceProps,getFloatingProps,getItemProps,getTriggerProps}=useInteractions([dismiss,role,listNavigation$1,useTypeahead(floatingRootContext,{listRef:store.context.itemLabels,activeIndex,resetMs:500,onMatch:index$4=>{open&&index$4!==activeIndex&&store.set(`activeIndex`,index$4)},onTypingChange})]),activeTriggerProps=import_react.useMemo(()=>{let mergedProps=mergeProps(getReferenceProps(),{onMouseEnter(){store.set(`hoverEnabled`,!0)},onMouseMove(){store.set(`allowMouseEnter`,!0)}},interactionTypeProps);return delete mergedProps.role,mergedProps},[getReferenceProps,store,interactionTypeProps]),inactiveTriggerProps=import_react.useMemo(()=>{let triggerProps=getTriggerProps();if(!triggerProps)return triggerProps;let mergedProps=mergeProps(triggerProps,interactionTypeProps);return delete mergedProps.role,delete mergedProps[`aria-controls`],mergedProps},[getTriggerProps,interactionTypeProps]),disableHoverTimeout=useAnimationFrame(),popupProps=import_react.useMemo(()=>getFloatingProps({onMouseEnter(){parent.type===`menu`&&disableHoverTimeout.request(()=>store.set(`hoverEnabled`,!1))},onMouseMove(){store.set(`allowMouseEnter`,!0)},onClick(){store.select(`hoverEnabled`)&&store.set(`hoverEnabled`,!1)},onKeyDown(event){let relay=store.select(`keyboardEventRelay`);relay&&!event.isPropagationStopped()&&relay(event)}}),[getFloatingProps,parent.type,disableHoverTimeout,store]),itemProps=import_react.useMemo(()=>getItemProps(),[getItemProps]);store.useSyncedValues({floatingRootContext,activeTriggerProps,inactiveTriggerProps,popupProps,itemProps});let context=import_react.useMemo(()=>({store,parent:parentFromContext}),[store,parentFromContext]),content$3=(0,import_jsx_runtime.jsx)(MenuRootContext.Provider,{value:context,children:typeof children==`function`?children({payload}):children});return parent.type===void 0||parent.type===`context-menu`?(0,import_jsx_runtime.jsx)(FloatingTree,{externalTree:floatingTreeRoot,children:content$3}):content$3}function getPseudoElementBounds(element$3){let elementRect=element$3.getBoundingClientRect(),beforeStyles=window.getComputedStyle(element$3,`::before`),afterStyles=window.getComputedStyle(element$3,`::after`);if(!(beforeStyles.content!==`none`||afterStyles.content!==`none`))return elementRect;let beforeWidth=parseFloat(beforeStyles.width)||0,beforeHeight=parseFloat(beforeStyles.height)||0,afterWidth=parseFloat(afterStyles.width)||0,afterHeight=parseFloat(afterStyles.height)||0,totalWidth=Math.max(elementRect.width,beforeWidth,afterWidth),totalHeight=Math.max(elementRect.height,beforeHeight,afterHeight),widthDiff=totalWidth-elementRect.width,heightDiff=totalHeight-elementRect.height;return{left:elementRect.left-widthDiff/2,right:elementRect.right+widthDiff/2,top:elementRect.top-heightDiff/2,bottom:elementRect.bottom+heightDiff/2}}function useCompositeItem(params={}){let{highlightItemOnHover,highlightedIndex,onHighlightedIndexChange}=useCompositeRootContext(),{ref,index:index$4}=useCompositeListItem(params),isHighlighted=highlightedIndex===index$4,itemRef=import_react.useRef(null),mergedRef=useMergedRefs(ref,itemRef);return{compositeProps:import_react.useMemo(()=>({tabIndex:isHighlighted?0:-1,onFocus(){onHighlightedIndexChange(index$4)},onMouseMove(){let item=itemRef.current;if(!highlightItemOnHover||!item)return;let disabled$1=item.hasAttribute(`disabled`)||item.ariaDisabled===`true`;!isHighlighted&&!disabled$1&&item.focus()}}),[isHighlighted,onHighlightedIndexChange,index$4,highlightItemOnHover]),compositeRef:mergedRef,index:index$4}}function CompositeItem(componentProps){let{render,className,state:state$1=EMPTY_OBJECT,props=EMPTY_ARRAY,refs=EMPTY_ARRAY,metadata,stateAttributesMapping:stateAttributesMapping$13,tag=`div`,...elementProps}=componentProps,{compositeProps,compositeRef}=useCompositeItem({metadata});return useRenderElement(tag,componentProps,{state:state$1,ref:[...refs,compositeRef],props:[compositeProps,...props,elementProps],stateAttributesMapping:stateAttributesMapping$13})}function findRootOwnerId(node$1){if(isHTMLElement(node$1)&&node$1.hasAttribute(`data-rootownerid`))return node$1.getAttribute(`data-rootownerid`)??void 0;if(!isLastTraversableNode(node$1))return findRootOwnerId(getParentNode(node$1))}function useMixedToggleClickHandler(params){let{enabled=!0,mouseDownAction,open}=params,ignoreClickRef=import_react.useRef(!1);return import_react.useMemo(()=>enabled?{onMouseDown:event=>{(mouseDownAction===`open`&&!open||mouseDownAction===`close`&&open)&&(ignoreClickRef.current=!0,ownerDocument(event.currentTarget).addEventListener(`click`,()=>{ignoreClickRef.current=!1},{once:!0}))},onClick:event=>{ignoreClickRef.current&&(ignoreClickRef.current=!1,event.preventBaseUIHandler())}}:EMPTY_OBJECT,[enabled,mouseDownAction,open])}var import_react_dom$5=__toESM(require_react_dom()),BOUNDARY_OFFSET$1=2;const MenuTrigger$1=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,disabled:disabledProp=!1,nativeButton=!0,id:idProp,openOnHover:openOnHoverProp,delay=100,closeDelay=0,handle:handle$1,payload,...elementProps}=componentProps,rootContext=useMenuRootContext(!0),store=handle$1?.store??rootContext?.store;if(!store)throw Error(formatErrorMessage(85));let thisTriggerId=useBaseUiId(idProp),isTriggerActive=store.useState(`isTriggerActive`,thisTriggerId),floatingRootContext=store.useState(`floatingRootContext`),isOpenedByThisTrigger=store.useState(`isOpenedByTrigger`,thisTriggerId),triggerElementRef=import_react.useRef(null),parent=useMenuParent(),compositeRootContext=useCompositeRootContext(!0),floatingTreeRootFromContext=useFloatingTree(),floatingTreeRoot=import_react.useMemo(()=>floatingTreeRootFromContext??new FloatingTreeStore,[floatingTreeRootFromContext]),{registerTrigger,isMountedByThisTrigger}=useTriggerDataForwarding(thisTriggerId,triggerElementRef,store,{payload,closeDelay,parent,floatingTreeRoot,floatingNodeId:useFloatingNodeId(floatingTreeRoot),floatingParentNodeId:useFloatingParentNodeId(),keyboardEventRelay:compositeRootContext?.relayKeyboardEvent}),isInMenubar=parent.type===`menubar`,rootDisabled=store.useState(`disabled`),disabled$1=disabledProp||rootDisabled||isInMenubar&&parent.context.disabled,{getButtonProps,buttonRef}=useButton({disabled:disabled$1,native:nativeButton});import_react.useEffect(()=>{!isOpenedByThisTrigger&&parent.type===void 0&&(store.context.allowMouseUpTriggerRef.current=!1)},[store,isOpenedByThisTrigger,parent.type]);let triggerRef=import_react.useRef(null),allowMouseUpTriggerTimeout=useTimeout(),handleDocumentMouseUp=useStableCallback(mouseEvent=>{if(!triggerRef.current)return;allowMouseUpTriggerTimeout.clear(),store.context.allowMouseUpTriggerRef.current=!1;let mouseUpTarget=mouseEvent.target;if(contains(triggerRef.current,mouseUpTarget)||contains(store.select(`positionerElement`),mouseUpTarget)||mouseUpTarget===triggerRef.current||mouseUpTarget!=null&&findRootOwnerId(mouseUpTarget)===store.select(`rootId`))return;let bounds=getPseudoElementBounds(triggerRef.current);mouseEvent.clientX>=bounds.left-BOUNDARY_OFFSET$1&&mouseEvent.clientX<=bounds.right+BOUNDARY_OFFSET$1&&mouseEvent.clientY>=bounds.top-BOUNDARY_OFFSET$1&&mouseEvent.clientY<=bounds.bottom+BOUNDARY_OFFSET$1||floatingTreeRoot.events.emit(`close`,{domEvent:mouseEvent,reason:cancelOpen})});import_react.useEffect(()=>{isOpenedByThisTrigger&&store.select(`lastOpenChangeReason`)===`trigger-hover`&&ownerDocument(triggerRef.current).addEventListener(`mouseup`,handleDocumentMouseUp,{once:!0})},[isOpenedByThisTrigger,handleDocumentMouseUp,store]);let parentMenubarHasSubmenuOpen=isInMenubar&&parent.context.hasSubmenuOpen,hoverProps=useHoverReferenceInteraction(floatingRootContext,{enabled:(openOnHoverProp??parentMenubarHasSubmenuOpen)&&!disabled$1&&parent.type!==`context-menu`&&(!isInMenubar||parentMenubarHasSubmenuOpen&&!isMountedByThisTrigger),handleClose:safePolygon({blockPointerEvents:!isInMenubar}),mouseOnly:!0,move:!1,restMs:parent.type===void 0?delay:void 0,delay:{close:closeDelay},triggerElementRef,externalTree:floatingTreeRoot,isActiveTrigger:isTriggerActive}),stickIfOpen=useStickIfOpen(isOpenedByThisTrigger,store.select(`lastOpenChangeReason`)),click=useClick(floatingRootContext,{enabled:!disabled$1&&parent.type!==`context-menu`,event:isOpenedByThisTrigger&&isInMenubar?`click`:`mousedown`,toggle:!0,ignoreMouse:!1,stickIfOpen:parent.type===void 0?stickIfOpen:!1}),focus=useFocus(floatingRootContext,{enabled:!disabled$1&&parentMenubarHasSubmenuOpen}),mixedToggleHandlers=useMixedToggleClickHandler({open:isOpenedByThisTrigger,enabled:isInMenubar,mouseDownAction:`open`}),localInteractionProps=useInteractions([click,focus]),state$1=import_react.useMemo(()=>({disabled:disabled$1,open:isOpenedByThisTrigger}),[disabled$1,isOpenedByThisTrigger]),rootTriggerProps=store.useState(`triggerProps`,isMountedByThisTrigger),ref=[triggerRef,forwardedRef,buttonRef,registerTrigger,triggerElementRef],props=[localInteractionProps.getReferenceProps(),hoverProps??EMPTY_OBJECT,rootTriggerProps,{"aria-haspopup":`menu`,id:thisTriggerId,onMouseDown:event=>{store.select(`open`)||(allowMouseUpTriggerTimeout.start(200,()=>{store.context.allowMouseUpTriggerRef.current=!0}),ownerDocument(event.currentTarget).addEventListener(`mouseup`,handleDocumentMouseUp,{once:!0}))}},isInMenubar?{role:`menuitem`}:{},mixedToggleHandlers,elementProps,getButtonProps],preFocusGuardRef=import_react.useRef(null),handlePreFocusGuardFocus=useStableCallback(event=>{import_react_dom$5.flushSync(()=>{store.setOpen(!1,createChangeEventDetails(focusOut,event.nativeEvent,event.currentTarget))}),getTabbableBeforeElement(preFocusGuardRef.current)?.focus()}),handleFocusTargetFocus=useStableCallback(event=>{let currentPositionerElement=store.select(`positionerElement`);if(currentPositionerElement&&isOutsideEvent(event,currentPositionerElement))store.context.beforeContentFocusGuardRef.current?.focus();else{import_react_dom$5.flushSync(()=>{store.setOpen(!1,createChangeEventDetails(focusOut,event.nativeEvent,event.currentTarget))});let nextTabbable=getTabbableAfterElement(store.context.triggerFocusTargetRef.current||triggerElementRef.current);for(;nextTabbable!==null&&contains(currentPositionerElement,nextTabbable);){let prevTabbable=nextTabbable;if(nextTabbable=getNextTabbable(nextTabbable),nextTabbable===prevTabbable)break}nextTabbable?.focus()}}),element$3=useRenderElement(`button`,componentProps,{enabled:!isInMenubar,stateAttributesMapping:pressableTriggerOpenStateMapping,state:state$1,ref,props});return isInMenubar?(0,import_jsx_runtime.jsx)(CompositeItem,{tag:`button`,render,className,state:state$1,refs:ref,props,stateAttributesMapping:pressableTriggerOpenStateMapping}):isOpenedByThisTrigger?(0,import_jsx_runtime.jsxs)(import_react.Fragment,{children:[(0,import_jsx_runtime.jsx)(FocusGuard,{ref:preFocusGuardRef,onFocus:handlePreFocusGuardFocus},`${thisTriggerId}-pre-focus-guard`),(0,import_jsx_runtime.jsx)(import_react.Fragment,{children:element$3},thisTriggerId),(0,import_jsx_runtime.jsx)(FocusGuard,{ref:store.context.triggerFocusTargetRef,onFocus:handleFocusTargetFocus},`${thisTriggerId}-post-focus-guard`)]}):(0,import_jsx_runtime.jsx)(import_react.Fragment,{children:element$3},thisTriggerId)});function useStickIfOpen(open,openReason){let stickIfOpenTimeout=useTimeout(),[stickIfOpen,setStickIfOpen]=import_react.useState(!1);return useIsoLayoutEffect(()=>{open&&openReason===`trigger-hover`?(setStickIfOpen(!0),stickIfOpenTimeout.start(500,()=>{setStickIfOpen(!1)})):open||(stickIfOpenTimeout.clear(),setStickIfOpen(!1))},[open,openReason,stickIfOpenTimeout]),stickIfOpen}function useMenuParent(){let contextMenuContext=useContextMenuRootContext(!0),parentContext=useMenuRootContext(!0),menubarContext=useMenubarContext(!0);return import_react.useMemo(()=>menubarContext?{type:`menubar`,context:menubarContext}:contextMenuContext&&!parentContext?{type:`context-menu`,context:contextMenuContext}:{type:void 0},[contextMenuContext,parentContext,menubarContext])}const Separator=import_react.forwardRef(function(componentProps,forwardedRef){let{className,render,orientation=`horizontal`,...elementProps}=componentProps;return useRenderElement(`div`,componentProps,{state:import_react.useMemo(()=>({orientation}),[orientation]),ref:forwardedRef,props:[{role:`separator`,"aria-orientation":orientation},elementProps]})});var Menu=MenuRoot,MenuPortal=MenuPortal$1;function MenuTrigger(props){return(0,import_jsx_runtime.jsx)(MenuTrigger$1,{"data-slot":`menu-trigger`,...props})}function MenuPopup({children,className,sideOffset=4,align=`center`,alignOffset,side=`bottom`,...props}){return(0,import_jsx_runtime.jsx)(MenuPortal$1,{children:(0,import_jsx_runtime.jsx)(MenuPositioner,{align,alignOffset,className:`z-50`,"data-slot":`menu-positioner`,side,sideOffset,children:(0,import_jsx_runtime.jsx)(MenuPopup$1,{className:cn(`relative flex not-[class*='w-']:min-w-32 origin-(--transform-origin) rounded-lg border bg-popover bg-clip-padding shadow-lg outline-none transition-[scale,opacity] before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] focus:outline-none has-data-starting-style:scale-98 has-data-starting-style:opacity-0 dark:bg-clip-border dark:before:shadow-[0_-1px_--theme(--color-white/8%)]`,className),"data-slot":`menu-popup`,...props,children:(0,import_jsx_runtime.jsx)(`div`,{className:`max-h-(--available-height) w-full overflow-y-auto p-1`,children})})})})}function MenuItem({className,inset,variant=`default`,...props}){return(0,import_jsx_runtime.jsx)(MenuItem$1,{className:cn(`[&_svg]:-mx-0.5 flex min-h-8 cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1 text-base outline-none data-disabled:pointer-events-none data-highlighted:bg-accent data-inset:ps-8 data-[variant=destructive]:text-destructive-foreground data-highlighted:text-accent-foreground data-disabled:opacity-64 sm:min-h-7 sm:text-sm [&_svg:not([class*='opacity-'])]:opacity-80 [&_svg:not([class*='size-'])]:size-4.5 sm:[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0`,className),"data-inset":inset,"data-slot":`menu-item`,"data-variant":variant,...props})}function MenuSeparator({className,...props}){return(0,import_jsx_runtime.jsx)(Separator,{className:cn(`mx-2 my-1 h-px bg-border`,className),"data-slot":`menu-separator`,...props})}var badgeVariants=cva(`relative inline-flex shrink-0 items-center justify-center gap-1 whitespace-nowrap rounded-sm border border-transparent font-medium outline-none transition-shadow focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-64 [&_svg:not([class*='opacity-'])]:opacity-80 [&_svg:not([class*='size-'])]:size-3.5 sm:[&_svg:not([class*='size-'])]:size-3 [&_svg]:pointer-events-none [&_svg]:shrink-0 [button,a&]:cursor-pointer [button,a&]:pointer-coarse:after:absolute [button,a&]:pointer-coarse:after:size-full [button,a&]:pointer-coarse:after:min-h-11 [button,a&]:pointer-coarse:after:min-w-11`,{defaultVariants:{size:`default`,variant:`default`},variants:{size:{default:`h-5.5 min-w-5.5 px-[calc(--spacing(1)-1px)] text-sm sm:h-4.5 sm:min-w-4.5 sm:text-xs`,lg:`h-6.5 min-w-6.5 px-[calc(--spacing(1.5)-1px)] text-base sm:h-5.5 sm:min-w-5.5 sm:text-sm`,sm:`h-5 min-w-5 rounded-[calc(var(--radius-sm)-2px)] px-[calc(--spacing(1)-1px)] text-xs sm:h-4 sm:min-w-4 sm:text-[.625rem]`},variant:{default:`bg-primary text-primary-foreground [button,a&]:hover:bg-primary/90`,destructive:`bg-destructive text-white [button,a&]:hover:bg-destructive/90`,error:`bg-destructive/8 text-destructive-foreground dark:bg-destructive/16`,info:`bg-info/8 text-info-foreground dark:bg-info/16`,muted:`bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400`,outline:`border-border bg-transparent dark:bg-input/32 [button,a&]:hover:bg-accent/50 dark:[button,a&]:hover:bg-input/48`,secondary:`bg-secondary text-secondary-foreground [button,a&]:hover:bg-secondary/90`,success:`bg-success/8 text-success-foreground dark:bg-success/16`,warning:`bg-warning/8 text-warning-foreground dark:bg-warning/16`}}});function Badge({className,variant,size:size$3,render,...props}){return useRender({defaultTagName:`span`,props:mergeProps({className:cn(badgeVariants({className,size:size$3,variant})),"data-slot":`badge`},props),render})}function assert(condition,msg){if(!condition)throw Error(msg)}var FLOAT32_MAX=34028234663852886e22,FLOAT32_MIN=-34028234663852886e22,UINT32_MAX=4294967295,INT32_MAX=2147483647,INT32_MIN=-2147483648;function assertInt32(arg){if(typeof arg!=`number`)throw Error(`invalid int 32: `+typeof arg);if(!Number.isInteger(arg)||arg>INT32_MAX||arg<INT32_MIN)throw Error(`invalid int 32: `+arg)}function assertUInt32(arg){if(typeof arg!=`number`)throw Error(`invalid uint 32: `+typeof arg);if(!Number.isInteger(arg)||arg>UINT32_MAX||arg<0)throw Error(`invalid uint 32: `+arg)}function assertFloat32(arg){if(typeof arg!=`number`)throw Error(`invalid float 32: `+typeof arg);if(Number.isFinite(arg)&&(arg>FLOAT32_MAX||arg<FLOAT32_MIN))throw Error(`invalid float 32: `+arg)}var enumTypeSymbol=Symbol(`@bufbuild/protobuf/enum-type`);function getEnumType(enumObject){let t$1=enumObject[enumTypeSymbol];return assert(t$1,`missing enum type on enum object`),t$1}function setEnumType(enumObject,typeName$1,values,opt){enumObject[enumTypeSymbol]=makeEnumType(typeName$1,values.map(v$1=>({no:v$1.no,name:v$1.name,localName:enumObject[v$1.no]})),opt)}function makeEnumType(typeName$1,values,_opt){let names=Object.create(null),numbers=Object.create(null),normalValues=[];for(let value of values){let n=normalizeEnumValue(value);normalValues.push(n),names[value.name]=n,numbers[value.no]=n}return{typeName:typeName$1,values:normalValues,findName(name$2){return names[name$2]},findNumber(no){return numbers[no]}}}function makeEnum(typeName$1,values,opt){let enumObject={};for(let value of values){let n=normalizeEnumValue(value);enumObject[n.localName]=n.no,enumObject[n.no]=n.localName}return setEnumType(enumObject,typeName$1,values,opt),enumObject}function normalizeEnumValue(value){return`localName`in value?value:Object.assign(Object.assign({},value),{localName:value.name})}var Message=class{equals(other){return this.getType().runtime.util.equals(this.getType(),this,other)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(bytes,options$1){let format=this.getType().runtime.bin,opt=format.makeReadOptions(options$1);return format.readMessage(this,opt.readerFactory(bytes),bytes.byteLength,opt),this}fromJson(jsonValue,options$1){let type=this.getType(),format=type.runtime.json,opt=format.makeReadOptions(options$1);return format.readMessage(type,jsonValue,opt,this),this}fromJsonString(jsonString,options$1){let json$1;try{json$1=JSON.parse(jsonString)}catch(e){throw Error(`cannot decode ${this.getType().typeName} from JSON: ${e instanceof Error?e.message:String(e)}`)}return this.fromJson(json$1,options$1)}toBinary(options$1){let bin=this.getType().runtime.bin,opt=bin.makeWriteOptions(options$1),writer=opt.writerFactory();return bin.writeMessage(this,writer,opt),writer.finish()}toJson(options$1){let json$1=this.getType().runtime.json,opt=json$1.makeWriteOptions(options$1);return json$1.writeMessage(this,opt)}toJsonString(options$1){var _a$1;let value=this.toJson(options$1);return JSON.stringify(value,null,options$1?.prettySpaces??0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}};function makeMessageType(runtime,typeName$1,fields,opt){var _a$1;let localName=opt?.localName??typeName$1.substring(typeName$1.lastIndexOf(`.`)+1),type={[localName]:function(data){runtime.util.initFields(this),runtime.util.initPartial(data,this)}}[localName];return Object.setPrototypeOf(type.prototype,new Message),Object.assign(type,{runtime,typeName:typeName$1,fields:runtime.util.newFieldList(fields),fromBinary(bytes,options$1){return new type().fromBinary(bytes,options$1)},fromJson(jsonValue,options$1){return new type().fromJson(jsonValue,options$1)},fromJsonString(jsonString,options$1){return new type().fromJsonString(jsonString,options$1)},equals(a$1,b$2){return runtime.util.equals(type,a$1,b$2)}}),type}function varint64read(){let lowBits=0,highBits=0;for(let shift$4=0;shift$4<28;shift$4+=7){let b$2=this.buf[this.pos++];if(lowBits|=(b$2&127)<<shift$4,!(b$2&128))return this.assertBounds(),[lowBits,highBits]}let middleByte=this.buf[this.pos++];if(lowBits|=(middleByte&15)<<28,highBits=(middleByte&112)>>4,!(middleByte&128))return this.assertBounds(),[lowBits,highBits];for(let shift$4=3;shift$4<=31;shift$4+=7){let b$2=this.buf[this.pos++];if(highBits|=(b$2&127)<<shift$4,!(b$2&128))return this.assertBounds(),[lowBits,highBits]}throw Error(`invalid varint`)}function varint64write(lo,hi,bytes){for(let i$3=0;i$3<28;i$3+=7){let shift$4=lo>>>i$3,hasNext=!(!(shift$4>>>7)&&hi==0),byte=(hasNext?shift$4|128:shift$4)&255;if(bytes.push(byte),!hasNext)return}let splitBits=lo>>>28&15|(hi&7)<<4,hasMoreBits=!!(hi>>3);if(bytes.push((hasMoreBits?splitBits|128:splitBits)&255),hasMoreBits){for(let i$3=3;i$3<31;i$3+=7){let shift$4=hi>>>i$3,hasNext=!!(shift$4>>>7),byte=(hasNext?shift$4|128:shift$4)&255;if(bytes.push(byte),!hasNext)return}bytes.push(hi>>>31&1)}}var TWO_PWR_32_DBL=4294967296;function int64FromString(dec$1){let minus=dec$1[0]===`-`;minus&&(dec$1=dec$1.slice(1));let base$1=1e6,lowBits=0,highBits=0;function add1e6digit(begin,end){let digit1e6=Number(dec$1.slice(begin,end));highBits*=base$1,lowBits=lowBits*base$1+digit1e6,lowBits>=TWO_PWR_32_DBL&&(highBits+=lowBits/TWO_PWR_32_DBL|0,lowBits%=TWO_PWR_32_DBL)}return add1e6digit(-24,-18),add1e6digit(-18,-12),add1e6digit(-12,-6),add1e6digit(-6),minus?negate(lowBits,highBits):newBits(lowBits,highBits)}function int64ToString(lo,hi){let bits=newBits(lo,hi),negative=bits.hi&2147483648;negative&&(bits=negate(bits.lo,bits.hi));let result=uInt64ToString(bits.lo,bits.hi);return negative?`-`+result:result}function uInt64ToString(lo,hi){if({lo,hi}=toUnsigned(lo,hi),hi<=2097151)return String(TWO_PWR_32_DBL*hi+lo);let low=lo&16777215,mid=(lo>>>24|hi<<8)&16777215,high=hi>>16&65535,digitA=low+mid*6777216+high*6710656,digitB=mid+high*8147497,digitC=high*2,base$1=1e7;return digitA>=base$1&&(digitB+=Math.floor(digitA/base$1),digitA%=base$1),digitB>=base$1&&(digitC+=Math.floor(digitB/base$1),digitB%=base$1),digitC.toString()+decimalFrom1e7WithLeadingZeros(digitB)+decimalFrom1e7WithLeadingZeros(digitA)}function toUnsigned(lo,hi){return{lo:lo>>>0,hi:hi>>>0}}function newBits(lo,hi){return{lo:lo|0,hi:hi|0}}function negate(lowBits,highBits){return highBits=~highBits,lowBits?lowBits=~lowBits+1:highBits+=1,newBits(lowBits,highBits)}var decimalFrom1e7WithLeadingZeros=digit1e7=>{let partial=String(digit1e7);return`0000000`.slice(partial.length)+partial};function varint32write(value,bytes){if(value>=0){for(;value>127;)bytes.push(value&127|128),value>>>=7;bytes.push(value)}else{for(let i$3=0;i$3<9;i$3++)bytes.push(value&127|128),value>>=7;bytes.push(1)}}function varint32read(){let b$2=this.buf[this.pos++],result=b$2&127;if(!(b$2&128)||(b$2=this.buf[this.pos++],result|=(b$2&127)<<7,!(b$2&128))||(b$2=this.buf[this.pos++],result|=(b$2&127)<<14,!(b$2&128))||(b$2=this.buf[this.pos++],result|=(b$2&127)<<21,!(b$2&128)))return this.assertBounds(),result;b$2=this.buf[this.pos++],result|=(b$2&15)<<28;for(let readBytes=5;b$2&128&&readBytes<10;readBytes++)b$2=this.buf[this.pos++];if(b$2&128)throw Error(`invalid varint`);return this.assertBounds(),result>>>0}function makeInt64Support(){let dv=new DataView(new ArrayBuffer(8));if(typeof BigInt==`function`&&typeof dv.getBigInt64==`function`&&typeof dv.getBigUint64==`function`&&typeof dv.setBigInt64==`function`&&typeof dv.setBigUint64==`function`&&(typeof process!=`object`||{}.BUF_BIGINT_DISABLE!==`1`)){let MIN=BigInt(`-9223372036854775808`),MAX$1=BigInt(`9223372036854775807`),UMIN=BigInt(`0`),UMAX=BigInt(`18446744073709551615`);return{zero:BigInt(0),supported:!0,parse(value){let bi=typeof value==`bigint`?value:BigInt(value);if(bi>MAX$1||bi<MIN)throw Error(`int64 invalid: ${value}`);return bi},uParse(value){let bi=typeof value==`bigint`?value:BigInt(value);if(bi>UMAX||bi<UMIN)throw Error(`uint64 invalid: ${value}`);return bi},enc(value){return dv.setBigInt64(0,this.parse(value),!0),{lo:dv.getInt32(0,!0),hi:dv.getInt32(4,!0)}},uEnc(value){return dv.setBigInt64(0,this.uParse(value),!0),{lo:dv.getInt32(0,!0),hi:dv.getInt32(4,!0)}},dec(lo,hi){return dv.setInt32(0,lo,!0),dv.setInt32(4,hi,!0),dv.getBigInt64(0,!0)},uDec(lo,hi){return dv.setInt32(0,lo,!0),dv.setInt32(4,hi,!0),dv.getBigUint64(0,!0)}}}let assertInt64String=value=>assert(/^-?[0-9]+$/.test(value),`int64 invalid: ${value}`),assertUInt64String=value=>assert(/^[0-9]+$/.test(value),`uint64 invalid: ${value}`);return{zero:`0`,supported:!1,parse(value){return typeof value!=`string`&&(value=value.toString()),assertInt64String(value),value},uParse(value){return typeof value!=`string`&&(value=value.toString()),assertUInt64String(value),value},enc(value){return typeof value!=`string`&&(value=value.toString()),assertInt64String(value),int64FromString(value)},uEnc(value){return typeof value!=`string`&&(value=value.toString()),assertUInt64String(value),int64FromString(value)},dec(lo,hi){return int64ToString(lo,hi)},uDec(lo,hi){return uInt64ToString(lo,hi)}}}const protoInt64=makeInt64Support();var ScalarType;(function(ScalarType$1){ScalarType$1[ScalarType$1.DOUBLE=1]=`DOUBLE`,ScalarType$1[ScalarType$1.FLOAT=2]=`FLOAT`,ScalarType$1[ScalarType$1.INT64=3]=`INT64`,ScalarType$1[ScalarType$1.UINT64=4]=`UINT64`,ScalarType$1[ScalarType$1.INT32=5]=`INT32`,ScalarType$1[ScalarType$1.FIXED64=6]=`FIXED64`,ScalarType$1[ScalarType$1.FIXED32=7]=`FIXED32`,ScalarType$1[ScalarType$1.BOOL=8]=`BOOL`,ScalarType$1[ScalarType$1.STRING=9]=`STRING`,ScalarType$1[ScalarType$1.BYTES=12]=`BYTES`,ScalarType$1[ScalarType$1.UINT32=13]=`UINT32`,ScalarType$1[ScalarType$1.SFIXED32=15]=`SFIXED32`,ScalarType$1[ScalarType$1.SFIXED64=16]=`SFIXED64`,ScalarType$1[ScalarType$1.SINT32=17]=`SINT32`,ScalarType$1[ScalarType$1.SINT64=18]=`SINT64`})(ScalarType||={});var LongType;(function(LongType$1){LongType$1[LongType$1.BIGINT=0]=`BIGINT`,LongType$1[LongType$1.STRING=1]=`STRING`})(LongType||={});function scalarEquals(type,a$1,b$2){if(a$1===b$2)return!0;if(type==ScalarType.BYTES){if(!(a$1 instanceof Uint8Array)||!(b$2 instanceof Uint8Array)||a$1.length!==b$2.length)return!1;for(let i$3=0;i$3<a$1.length;i$3++)if(a$1[i$3]!==b$2[i$3])return!1;return!0}switch(type){case ScalarType.UINT64:case ScalarType.FIXED64:case ScalarType.INT64:case ScalarType.SFIXED64:case ScalarType.SINT64:return a$1==b$2}return!1}function scalarZeroValue(type,longType){switch(type){case ScalarType.BOOL:return!1;case ScalarType.UINT64:case ScalarType.FIXED64:case ScalarType.INT64:case ScalarType.SFIXED64:case ScalarType.SINT64:return longType==0?protoInt64.zero:`0`;case ScalarType.DOUBLE:case ScalarType.FLOAT:return 0;case ScalarType.BYTES:return new Uint8Array;case ScalarType.STRING:return``;default:return 0}}function isScalarZeroValue(type,value){switch(type){case ScalarType.BOOL:return value===!1;case ScalarType.STRING:return value===``;case ScalarType.BYTES:return value instanceof Uint8Array&&!value.byteLength;default:return value==0}}var WireType;(function(WireType$1){WireType$1[WireType$1.Varint=0]=`Varint`,WireType$1[WireType$1.Bit64=1]=`Bit64`,WireType$1[WireType$1.LengthDelimited=2]=`LengthDelimited`,WireType$1[WireType$1.StartGroup=3]=`StartGroup`,WireType$1[WireType$1.EndGroup=4]=`EndGroup`,WireType$1[WireType$1.Bit32=5]=`Bit32`})(WireType||={});var BinaryWriter=class{constructor(textEncoder){this.stack=[],this.textEncoder=textEncoder??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let len=0;for(let i$3=0;i$3<this.chunks.length;i$3++)len+=this.chunks[i$3].length;let bytes=new Uint8Array(len),offset$3=0;for(let i$3=0;i$3<this.chunks.length;i$3++)bytes.set(this.chunks[i$3],offset$3),offset$3+=this.chunks[i$3].length;return this.chunks=[],bytes}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let chunk=this.finish(),prev=this.stack.pop();if(!prev)throw Error(`invalid state, fork stack empty`);return this.chunks=prev.chunks,this.buf=prev.buf,this.uint32(chunk.byteLength),this.raw(chunk)}tag(fieldNo,type){return this.uint32((fieldNo<<3|type)>>>0)}raw(chunk){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(chunk),this}uint32(value){for(assertUInt32(value);value>127;)this.buf.push(value&127|128),value>>>=7;return this.buf.push(value),this}int32(value){return assertInt32(value),varint32write(value,this.buf),this}bool(value){return this.buf.push(value?1:0),this}bytes(value){return this.uint32(value.byteLength),this.raw(value)}string(value){let chunk=this.textEncoder.encode(value);return this.uint32(chunk.byteLength),this.raw(chunk)}float(value){assertFloat32(value);let chunk=new Uint8Array(4);return new DataView(chunk.buffer).setFloat32(0,value,!0),this.raw(chunk)}double(value){let chunk=new Uint8Array(8);return new DataView(chunk.buffer).setFloat64(0,value,!0),this.raw(chunk)}fixed32(value){assertUInt32(value);let chunk=new Uint8Array(4);return new DataView(chunk.buffer).setUint32(0,value,!0),this.raw(chunk)}sfixed32(value){assertInt32(value);let chunk=new Uint8Array(4);return new DataView(chunk.buffer).setInt32(0,value,!0),this.raw(chunk)}sint32(value){return assertInt32(value),value=(value<<1^value>>31)>>>0,varint32write(value,this.buf),this}sfixed64(value){let chunk=new Uint8Array(8),view=new DataView(chunk.buffer),tc=protoInt64.enc(value);return view.setInt32(0,tc.lo,!0),view.setInt32(4,tc.hi,!0),this.raw(chunk)}fixed64(value){let chunk=new Uint8Array(8),view=new DataView(chunk.buffer),tc=protoInt64.uEnc(value);return view.setInt32(0,tc.lo,!0),view.setInt32(4,tc.hi,!0),this.raw(chunk)}int64(value){let tc=protoInt64.enc(value);return varint64write(tc.lo,tc.hi,this.buf),this}sint64(value){let tc=protoInt64.enc(value),sign=tc.hi>>31;return varint64write(tc.lo<<1^sign,(tc.hi<<1|tc.lo>>>31)^sign,this.buf),this}uint64(value){let tc=protoInt64.uEnc(value);return varint64write(tc.lo,tc.hi,this.buf),this}},BinaryReader=class{constructor(buf,textDecoder){this.varint64=varint64read,this.uint32=varint32read,this.buf=buf,this.len=buf.length,this.pos=0,this.view=new DataView(buf.buffer,buf.byteOffset,buf.byteLength),this.textDecoder=textDecoder??new TextDecoder}tag(){let tag=this.uint32(),fieldNo=tag>>>3,wireType=tag&7;if(fieldNo<=0||wireType<0||wireType>5)throw Error(`illegal tag: field no `+fieldNo+` wire type `+wireType);return[fieldNo,wireType]}skip(wireType,fieldNo){let start=this.pos;switch(wireType){case WireType.Varint:for(;this.buf[this.pos++]&128;);break;case WireType.Bit64:this.pos+=4;case WireType.Bit32:this.pos+=4;break;case WireType.LengthDelimited:let len=this.uint32();this.pos+=len;break;case WireType.StartGroup:for(;;){let[fn,wt]=this.tag();if(wt===WireType.EndGroup){if(fieldNo!==void 0&&fn!==fieldNo)throw Error(`invalid end group tag`);break}this.skip(wt,fn)}break;default:throw Error(`cant skip wire type `+wireType)}return this.assertBounds(),this.buf.subarray(start,this.pos)}assertBounds(){if(this.pos>this.len)throw RangeError(`premature EOF`)}int32(){return this.uint32()|0}sint32(){let zze=this.uint32();return zze>>>1^-(zze&1)}int64(){return protoInt64.dec(...this.varint64())}uint64(){return protoInt64.uDec(...this.varint64())}sint64(){let[lo,hi]=this.varint64(),s$1=-(lo&1);return lo=(lo>>>1|(hi&1)<<31)^s$1,hi=hi>>>1^s$1,protoInt64.dec(lo,hi)}bool(){let[lo,hi]=this.varint64();return lo!==0||hi!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return protoInt64.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return protoInt64.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let len=this.uint32(),start=this.pos;return this.pos+=len,this.assertBounds(),this.buf.subarray(start,start+len)}string(){return this.textDecoder.decode(this.bytes())}};function makeExtension(runtime,typeName$1,extendee,field){let fi;return{typeName:typeName$1,extendee,get field(){if(!fi){let i$3=typeof field==`function`?field():field;i$3.name=typeName$1.split(`.`).pop(),i$3.jsonName=`[${typeName$1}]`,fi=runtime.util.newFieldList([i$3]).list()[0]}return fi},runtime}}function createExtensionContainer(extension$1){let localName=extension$1.field.localName,container=Object.create(null);return container[localName]=initExtensionField(extension$1),[container,()=>container[localName]]}function initExtensionField(ext){let field=ext.field;if(field.repeated)return[];if(field.default!==void 0)return field.default;switch(field.kind){case`enum`:return field.T.values[0].no;case`scalar`:return scalarZeroValue(field.T,field.L);case`message`:let T$2=field.T,value=new T$2;return T$2.fieldWrapper?T$2.fieldWrapper.unwrapField(value):value;case`map`:throw`map fields are not allowed to be extensions`}}function filterUnknownFields(unknownFields,field){if(!field.repeated&&(field.kind==`enum`||field.kind==`scalar`)){for(let i$3=unknownFields.length-1;i$3>=0;--i$3)if(unknownFields[i$3].no==field.no)return[unknownFields[i$3]];return[]}return unknownFields.filter(uf=>uf.no===field.no)}var encTable=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`.split(``),decTable=[];for(let i$3=0;i$3<encTable.length;i$3++)decTable[encTable[i$3].charCodeAt(0)]=i$3;decTable[45]=encTable.indexOf(`+`),decTable[95]=encTable.indexOf(`/`);const protoBase64={dec(base64Str){let es=base64Str.length*3/4;base64Str[base64Str.length-2]==`=`?es-=2:base64Str[base64Str.length-1]==`=`&&--es;let bytes=new Uint8Array(es),bytePos=0,groupPos=0,b$2,p$1=0;for(let i$3=0;i$3<base64Str.length;i$3++){if(b$2=decTable[base64Str.charCodeAt(i$3)],b$2===void 0)switch(base64Str[i$3]){case`=`:groupPos=0;case`
24
- `:case`\r`:case` `:case` `:continue;default:throw Error(`invalid base64 string.`)}switch(groupPos){case 0:p$1=b$2,groupPos=1;break;case 1:bytes[bytePos++]=p$1<<2|(b$2&48)>>4,p$1=b$2,groupPos=2;break;case 2:bytes[bytePos++]=(p$1&15)<<4|(b$2&60)>>2,p$1=b$2,groupPos=3;break;case 3:bytes[bytePos++]=(p$1&3)<<6|b$2,groupPos=0;break}}if(groupPos==1)throw Error(`invalid base64 string.`);return bytes.subarray(0,bytePos)},enc(bytes){let base64$2=``,groupPos=0,b$2,p$1=0;for(let i$3=0;i$3<bytes.length;i$3++)switch(b$2=bytes[i$3],groupPos){case 0:base64$2+=encTable[b$2>>2],p$1=(b$2&3)<<4,groupPos=1;break;case 1:base64$2+=encTable[p$1|b$2>>4],p$1=(b$2&15)<<2,groupPos=2;break;case 2:base64$2+=encTable[p$1|b$2>>6],base64$2+=encTable[b$2&63],groupPos=0;break}return groupPos&&(base64$2+=encTable[p$1],base64$2+=`=`,groupPos==1&&(base64$2+=`=`)),base64$2}};function getExtension(message,extension$1,options$1){assertExtendee(extension$1,message);let opt=extension$1.runtime.bin.makeReadOptions(options$1),ufs=filterUnknownFields(message.getType().runtime.bin.listUnknownFields(message),extension$1.field),[container,get]=createExtensionContainer(extension$1);for(let uf of ufs)extension$1.runtime.bin.readField(container,opt.readerFactory(uf.data),extension$1.field,uf.wireType,opt);return get()}function setExtension(message,extension$1,value,options$1){assertExtendee(extension$1,message);let readOpt=extension$1.runtime.bin.makeReadOptions(options$1),writeOpt=extension$1.runtime.bin.makeWriteOptions(options$1);if(hasExtension(message,extension$1)){let ufs=message.getType().runtime.bin.listUnknownFields(message).filter(uf=>uf.no!=extension$1.field.no);message.getType().runtime.bin.discardUnknownFields(message);for(let uf of ufs)message.getType().runtime.bin.onUnknownField(message,uf.no,uf.wireType,uf.data)}let writer=writeOpt.writerFactory(),f$2=extension$1.field;!f$2.opt&&!f$2.repeated&&(f$2.kind==`enum`||f$2.kind==`scalar`)&&(f$2=Object.assign(Object.assign({},extension$1.field),{opt:!0})),extension$1.runtime.bin.writeField(f$2,value,writer,writeOpt);let reader=readOpt.readerFactory(writer.finish());for(;reader.pos<reader.len;){let[no,wireType]=reader.tag(),data=reader.skip(wireType,no);message.getType().runtime.bin.onUnknownField(message,no,wireType,data)}}function hasExtension(message,extension$1){let messageType=message.getType();return extension$1.extendee.typeName===messageType.typeName&&!!messageType.runtime.bin.listUnknownFields(message).find(uf=>uf.no==extension$1.field.no)}function assertExtendee(extension$1,message){assert(extension$1.extendee.typeName==message.getType().typeName,`extension ${extension$1.typeName} can only be applied to message ${extension$1.extendee.typeName}`)}function isFieldSet(field,target){let localName=field.localName;if(field.repeated)return target[localName].length>0;if(field.oneof)return target[field.oneof.localName].case===localName;switch(field.kind){case`enum`:case`scalar`:return field.opt||field.req?target[localName]!==void 0:field.kind==`enum`?target[localName]!==field.T.values[0].no:!isScalarZeroValue(field.T,target[localName]);case`message`:return target[localName]!==void 0;case`map`:return Object.keys(target[localName]).length>0}}function clearField(field,target){let localName=field.localName,implicitPresence=!field.opt&&!field.req;if(field.repeated)target[localName]=[];else if(field.oneof)target[field.oneof.localName]={case:void 0};else switch(field.kind){case`map`:target[localName]={};break;case`enum`:target[localName]=implicitPresence?field.T.values[0].no:void 0;break;case`scalar`:target[localName]=implicitPresence?scalarZeroValue(field.T,field.L):void 0;break;case`message`:target[localName]=void 0;break}}function isMessage(arg,type){if(typeof arg!=`object`||!arg||!Object.getOwnPropertyNames(Message.prototype).every(m$2=>m$2 in arg&&typeof arg[m$2]==`function`))return!1;let actualType=arg.getType();return actualType===null||typeof actualType!=`function`||!(`typeName`in actualType)||typeof actualType.typeName!=`string`?!1:type===void 0?!0:actualType.typeName==type.typeName}function wrapField(type,value){return isMessage(value)||!type.fieldWrapper?value:type.fieldWrapper.wrapField(value)}var wktWrapperToScalarType={"google.protobuf.DoubleValue":ScalarType.DOUBLE,"google.protobuf.FloatValue":ScalarType.FLOAT,"google.protobuf.Int64Value":ScalarType.INT64,"google.protobuf.UInt64Value":ScalarType.UINT64,"google.protobuf.Int32Value":ScalarType.INT32,"google.protobuf.UInt32Value":ScalarType.UINT32,"google.protobuf.BoolValue":ScalarType.BOOL,"google.protobuf.StringValue":ScalarType.STRING,"google.protobuf.BytesValue":ScalarType.BYTES},jsonReadDefaults={ignoreUnknownFields:!1},jsonWriteDefaults={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function makeReadOptions$1(options$1){return options$1?Object.assign(Object.assign({},jsonReadDefaults),options$1):jsonReadDefaults}function makeWriteOptions$1(options$1){return options$1?Object.assign(Object.assign({},jsonWriteDefaults),options$1):jsonWriteDefaults}var tokenNull=Symbol(),tokenIgnoredUnknownEnum=Symbol();function makeJsonFormat(){return{makeReadOptions:makeReadOptions$1,makeWriteOptions:makeWriteOptions$1,readMessage(type,json$1,options$1,message){if(json$1==null||Array.isArray(json$1)||typeof json$1!=`object`)throw Error(`cannot decode message ${type.typeName} from JSON: ${debugJsonValue(json$1)}`);message??=new type;let oneofSeen=new Map,registry=options$1.typeRegistry;for(let[jsonKey,jsonValue]of Object.entries(json$1)){let field=type.fields.findJsonName(jsonKey);if(field){if(field.oneof){if(jsonValue===null&&field.kind==`scalar`)continue;let seen$1=oneofSeen.get(field.oneof);if(seen$1!==void 0)throw Error(`cannot decode message ${type.typeName} from JSON: multiple keys for oneof "${field.oneof.name}" present: "${seen$1}", "${jsonKey}"`);oneofSeen.set(field.oneof,jsonKey)}readField$1(message,jsonValue,field,options$1,type)}else{let found=!1;if(registry?.findExtension&&jsonKey.startsWith(`[`)&&jsonKey.endsWith(`]`)){let ext=registry.findExtension(jsonKey.substring(1,jsonKey.length-1));if(ext&&ext.extendee.typeName==type.typeName){found=!0;let[container,get]=createExtensionContainer(ext);readField$1(container,jsonValue,ext.field,options$1,ext),setExtension(message,ext,get(),options$1)}}if(!found&&!options$1.ignoreUnknownFields)throw Error(`cannot decode message ${type.typeName} from JSON: key "${jsonKey}" is unknown`)}}return message},writeMessage(message,options$1){let type=message.getType(),json$1={},field;try{for(field of type.fields.byNumber()){if(!isFieldSet(field,message)){if(field.req)throw`required field not set`;if(!options$1.emitDefaultValues||!canEmitFieldDefaultValue(field))continue}let value=field.oneof?message[field.oneof.localName].value:message[field.localName],jsonValue=writeField$1(field,value,options$1);jsonValue!==void 0&&(json$1[options$1.useProtoFieldName?field.name:field.jsonName]=jsonValue)}let registry=options$1.typeRegistry;if(registry?.findExtensionFor)for(let uf of type.runtime.bin.listUnknownFields(message)){let ext=registry.findExtensionFor(type.typeName,uf.no);if(ext&&hasExtension(message,ext)){let value=getExtension(message,ext,options$1),jsonValue=writeField$1(ext.field,value,options$1);jsonValue!==void 0&&(json$1[ext.field.jsonName]=jsonValue)}}}catch(e){let m$2=field?`cannot encode field ${type.typeName}.${field.name} to JSON`:`cannot encode message ${type.typeName} to JSON`,r$4=e instanceof Error?e.message:String(e);throw Error(m$2+(r$4.length>0?`: ${r$4}`:``))}return json$1},readScalar(type,json$1,longType){return readScalar$1(type,json$1,longType??LongType.BIGINT,!0)},writeScalar(type,value,emitDefaultValues){if(value!==void 0&&(emitDefaultValues||isScalarZeroValue(type,value)))return writeScalar$1(type,value)},debug:debugJsonValue}}function debugJsonValue(json$1){if(json$1===null)return`null`;switch(typeof json$1){case`object`:return Array.isArray(json$1)?`array`:`object`;case`string`:return json$1.length>100?`string`:`"${json$1.split(`"`).join(`\\"`)}"`;default:return String(json$1)}}function readField$1(target,jsonValue,field,options$1,parentType){let localName=field.localName;if(field.repeated){if(assert(field.kind!=`map`),jsonValue===null)return;if(!Array.isArray(jsonValue))throw Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`);let targetArray=target[localName];for(let jsonItem of jsonValue){if(jsonItem===null)throw Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonItem)}`);switch(field.kind){case`message`:targetArray.push(field.T.fromJson(jsonItem,options$1));break;case`enum`:let enumValue=readEnum(field.T,jsonItem,options$1.ignoreUnknownFields,!0);enumValue!==tokenIgnoredUnknownEnum&&targetArray.push(enumValue);break;case`scalar`:try{targetArray.push(readScalar$1(field.T,jsonItem,field.L,!0))}catch(e){let m$2=`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonItem)}`;throw e instanceof Error&&e.message.length>0&&(m$2+=`: ${e.message}`),Error(m$2)}break}}}else if(field.kind==`map`){if(jsonValue===null)return;if(typeof jsonValue!=`object`||Array.isArray(jsonValue))throw Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`);let targetMap=target[localName];for(let[jsonMapKey,jsonMapValue]of Object.entries(jsonValue)){if(jsonMapValue===null)throw Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: map value null`);let key$1;try{key$1=readMapKey(field.K,jsonMapKey)}catch(e){let m$2=`cannot decode map key for field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`;throw e instanceof Error&&e.message.length>0&&(m$2+=`: ${e.message}`),Error(m$2)}switch(field.V.kind){case`message`:targetMap[key$1]=field.V.T.fromJson(jsonMapValue,options$1);break;case`enum`:let enumValue=readEnum(field.V.T,jsonMapValue,options$1.ignoreUnknownFields,!0);enumValue!==tokenIgnoredUnknownEnum&&(targetMap[key$1]=enumValue);break;case`scalar`:try{targetMap[key$1]=readScalar$1(field.V.T,jsonMapValue,LongType.BIGINT,!0)}catch(e){let m$2=`cannot decode map value for field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`;throw e instanceof Error&&e.message.length>0&&(m$2+=`: ${e.message}`),Error(m$2)}break}}}else switch(field.oneof&&(target=target[field.oneof.localName]={case:localName},localName=`value`),field.kind){case`message`:let messageType=field.T;if(jsonValue===null&&messageType.typeName!=`google.protobuf.Value`)return;let currentValue=target[localName];isMessage(currentValue)?currentValue.fromJson(jsonValue,options$1):(target[localName]=currentValue=messageType.fromJson(jsonValue,options$1),messageType.fieldWrapper&&!field.oneof&&(target[localName]=messageType.fieldWrapper.unwrapField(currentValue)));break;case`enum`:let enumValue=readEnum(field.T,jsonValue,options$1.ignoreUnknownFields,!1);switch(enumValue){case tokenNull:clearField(field,target);break;case tokenIgnoredUnknownEnum:break;default:target[localName]=enumValue;break}break;case`scalar`:try{let scalarValue=readScalar$1(field.T,jsonValue,field.L,!1);switch(scalarValue){case tokenNull:clearField(field,target);break;default:target[localName]=scalarValue;break}}catch(e){let m$2=`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`;throw e instanceof Error&&e.message.length>0&&(m$2+=`: ${e.message}`),Error(m$2)}break}}function readMapKey(type,json$1){if(type===ScalarType.BOOL)switch(json$1){case`true`:json$1=!0;break;case`false`:json$1=!1;break}return readScalar$1(type,json$1,LongType.BIGINT,!0).toString()}function readScalar$1(type,json$1,longType,nullAsZeroValue){if(json$1===null)return nullAsZeroValue?scalarZeroValue(type,longType):tokenNull;switch(type){case ScalarType.DOUBLE:case ScalarType.FLOAT:if(json$1===`NaN`)return NaN;if(json$1===`Infinity`)return 1/0;if(json$1===`-Infinity`)return-1/0;if(json$1===``||typeof json$1==`string`&&json$1.trim().length!==json$1.length||typeof json$1!=`string`&&typeof json$1!=`number`)break;let float=Number(json$1);if(Number.isNaN(float)||!Number.isFinite(float))break;return type==ScalarType.FLOAT&&assertFloat32(float),float;case ScalarType.INT32:case ScalarType.FIXED32:case ScalarType.SFIXED32:case ScalarType.SINT32:case ScalarType.UINT32:let int32;if(typeof json$1==`number`?int32=json$1:typeof json$1==`string`&&json$1.length>0&&json$1.trim().length===json$1.length&&(int32=Number(json$1)),int32===void 0)break;return type==ScalarType.UINT32||type==ScalarType.FIXED32?assertUInt32(int32):assertInt32(int32),int32;case ScalarType.INT64:case ScalarType.SFIXED64:case ScalarType.SINT64:if(typeof json$1!=`number`&&typeof json$1!=`string`)break;let long=protoInt64.parse(json$1);return longType?long.toString():long;case ScalarType.FIXED64:case ScalarType.UINT64:if(typeof json$1!=`number`&&typeof json$1!=`string`)break;let uLong=protoInt64.uParse(json$1);return longType?uLong.toString():uLong;case ScalarType.BOOL:if(typeof json$1!=`boolean`)break;return json$1;case ScalarType.STRING:if(typeof json$1!=`string`)break;return json$1;case ScalarType.BYTES:if(json$1===``)return new Uint8Array;if(typeof json$1!=`string`)break;return protoBase64.dec(json$1)}throw Error()}function readEnum(type,json$1,ignoreUnknownFields,nullAsZeroValue){if(json$1===null)return type.typeName==`google.protobuf.NullValue`?0:nullAsZeroValue?type.values[0].no:tokenNull;switch(typeof json$1){case`number`:if(Number.isInteger(json$1))return json$1;break;case`string`:let value=type.findName(json$1);if(value!==void 0)return value.no;if(ignoreUnknownFields)return tokenIgnoredUnknownEnum;break}throw Error(`cannot decode enum ${type.typeName} from JSON: ${debugJsonValue(json$1)}`)}function canEmitFieldDefaultValue(field){return field.repeated||field.kind==`map`?!0:!(field.oneof||field.kind==`message`||field.opt||field.req)}function writeField$1(field,value,options$1){if(field.kind==`map`){assert(typeof value==`object`&&!!value);let jsonObj={},entries=Object.entries(value);switch(field.V.kind){case`scalar`:for(let[entryKey,entryValue]of entries)jsonObj[entryKey.toString()]=writeScalar$1(field.V.T,entryValue);break;case`message`:for(let[entryKey,entryValue]of entries)jsonObj[entryKey.toString()]=entryValue.toJson(options$1);break;case`enum`:let enumType=field.V.T;for(let[entryKey,entryValue]of entries)jsonObj[entryKey.toString()]=writeEnum(enumType,entryValue,options$1.enumAsInteger);break}return options$1.emitDefaultValues||entries.length>0?jsonObj:void 0}if(field.repeated){assert(Array.isArray(value));let jsonArr=[];switch(field.kind){case`scalar`:for(let i$3=0;i$3<value.length;i$3++)jsonArr.push(writeScalar$1(field.T,value[i$3]));break;case`enum`:for(let i$3=0;i$3<value.length;i$3++)jsonArr.push(writeEnum(field.T,value[i$3],options$1.enumAsInteger));break;case`message`:for(let i$3=0;i$3<value.length;i$3++)jsonArr.push(value[i$3].toJson(options$1));break}return options$1.emitDefaultValues||jsonArr.length>0?jsonArr:void 0}switch(field.kind){case`scalar`:return writeScalar$1(field.T,value);case`enum`:return writeEnum(field.T,value,options$1.enumAsInteger);case`message`:return wrapField(field.T,value).toJson(options$1)}}function writeEnum(type,value,enumAsInteger){var _a$1;return assert(typeof value==`number`),type.typeName==`google.protobuf.NullValue`?null:enumAsInteger?value:type.findNumber(value)?.name??value}function writeScalar$1(type,value){switch(type){case ScalarType.INT32:case ScalarType.SFIXED32:case ScalarType.SINT32:case ScalarType.FIXED32:case ScalarType.UINT32:return assert(typeof value==`number`),value;case ScalarType.FLOAT:case ScalarType.DOUBLE:return assert(typeof value==`number`),Number.isNaN(value)?`NaN`:value===1/0?`Infinity`:value===-1/0?`-Infinity`:value;case ScalarType.STRING:return assert(typeof value==`string`),value;case ScalarType.BOOL:return assert(typeof value==`boolean`),value;case ScalarType.UINT64:case ScalarType.FIXED64:case ScalarType.INT64:case ScalarType.SFIXED64:case ScalarType.SINT64:return assert(typeof value==`bigint`||typeof value==`string`||typeof value==`number`),value.toString();case ScalarType.BYTES:return assert(value instanceof Uint8Array),protoBase64.enc(value)}}var unknownFieldsSymbol=Symbol(`@bufbuild/protobuf/unknown-fields`),readDefaults={readUnknownFields:!0,readerFactory:bytes=>new BinaryReader(bytes)},writeDefaults={writeUnknownFields:!0,writerFactory:()=>new BinaryWriter};function makeReadOptions(options$1){return options$1?Object.assign(Object.assign({},readDefaults),options$1):readDefaults}function makeWriteOptions(options$1){return options$1?Object.assign(Object.assign({},writeDefaults),options$1):writeDefaults}function makeBinaryFormat(){return{makeReadOptions,makeWriteOptions,listUnknownFields(message){var _a$1;return message[unknownFieldsSymbol]??[]},discardUnknownFields(message){delete message[unknownFieldsSymbol]},writeUnknownFields(message,writer){let c=message[unknownFieldsSymbol];if(c)for(let f$2 of c)writer.tag(f$2.no,f$2.wireType).raw(f$2.data)},onUnknownField(message,no,wireType,data){let m$2=message;Array.isArray(m$2[unknownFieldsSymbol])||(m$2[unknownFieldsSymbol]=[]),m$2[unknownFieldsSymbol].push({no,wireType,data})},readMessage(message,reader,lengthOrEndTagFieldNo,options$1,delimitedMessageEncoding){let type=message.getType(),end=delimitedMessageEncoding?reader.len:reader.pos+lengthOrEndTagFieldNo,fieldNo,wireType;for(;reader.pos<end&&([fieldNo,wireType]=reader.tag(),!(delimitedMessageEncoding===!0&&wireType==WireType.EndGroup));){let field=type.fields.find(fieldNo);if(!field){let data=reader.skip(wireType,fieldNo);options$1.readUnknownFields&&this.onUnknownField(message,fieldNo,wireType,data);continue}readField(message,reader,field,wireType,options$1)}if(delimitedMessageEncoding&&(wireType!=WireType.EndGroup||fieldNo!==lengthOrEndTagFieldNo))throw Error(`invalid end group tag`)},readField,writeMessage(message,writer,options$1){let type=message.getType();for(let field of type.fields.byNumber()){if(!isFieldSet(field,message)){if(field.req)throw Error(`cannot encode field ${type.typeName}.${field.name} to binary: required field not set`);continue}writeField(field,field.oneof?message[field.oneof.localName].value:message[field.localName],writer,options$1)}return options$1.writeUnknownFields&&this.writeUnknownFields(message,writer),writer},writeField(field,value,writer,options$1){value!==void 0&&writeField(field,value,writer,options$1)}}}function readField(target,reader,field,wireType,options$1){let{repeated,localName}=field;switch(field.oneof&&(target=target[field.oneof.localName],target.case!=localName&&delete target.value,target.case=localName,localName=`value`),field.kind){case`scalar`:case`enum`:let scalarType=field.kind==`enum`?ScalarType.INT32:field.T,read=readScalar;if(field.kind==`scalar`&&field.L>0&&(read=readScalarLTString),repeated){let arr=target[localName];if(wireType==WireType.LengthDelimited&&scalarType!=ScalarType.STRING&&scalarType!=ScalarType.BYTES){let e=reader.uint32()+reader.pos;for(;reader.pos<e;)arr.push(read(reader,scalarType))}else arr.push(read(reader,scalarType))}else target[localName]=read(reader,scalarType);break;case`message`:let messageType=field.T;repeated?target[localName].push(readMessageField(reader,new messageType,options$1,field)):isMessage(target[localName])?readMessageField(reader,target[localName],options$1,field):(target[localName]=readMessageField(reader,new messageType,options$1,field),messageType.fieldWrapper&&!field.oneof&&!field.repeated&&(target[localName]=messageType.fieldWrapper.unwrapField(target[localName])));break;case`map`:let[mapKey,mapVal]=readMapEntry(field,reader,options$1);target[localName][mapKey]=mapVal;break}}function readMessageField(reader,message,options$1,field){let format=message.getType().runtime.bin,delimited=field?.delimited;return format.readMessage(message,reader,delimited?field.no:reader.uint32(),options$1,delimited),message}function readMapEntry(field,reader,options$1){let length=reader.uint32(),end=reader.pos+length,key$1,val;for(;reader.pos<end;){let[fieldNo]=reader.tag();switch(fieldNo){case 1:key$1=readScalar(reader,field.K);break;case 2:switch(field.V.kind){case`scalar`:val=readScalar(reader,field.V.T);break;case`enum`:val=reader.int32();break;case`message`:val=readMessageField(reader,new field.V.T,options$1,void 0);break}break}}if(key$1===void 0&&(key$1=scalarZeroValue(field.K,LongType.BIGINT)),typeof key$1!=`string`&&typeof key$1!=`number`&&(key$1=key$1.toString()),val===void 0)switch(field.V.kind){case`scalar`:val=scalarZeroValue(field.V.T,LongType.BIGINT);break;case`enum`:val=field.V.T.values[0].no;break;case`message`:val=new field.V.T;break}return[key$1,val]}function readScalarLTString(reader,type){let v$1=readScalar(reader,type);return typeof v$1==`bigint`?v$1.toString():v$1}function readScalar(reader,type){switch(type){case ScalarType.STRING:return reader.string();case ScalarType.BOOL:return reader.bool();case ScalarType.DOUBLE:return reader.double();case ScalarType.FLOAT:return reader.float();case ScalarType.INT32:return reader.int32();case ScalarType.INT64:return reader.int64();case ScalarType.UINT64:return reader.uint64();case ScalarType.FIXED64:return reader.fixed64();case ScalarType.BYTES:return reader.bytes();case ScalarType.FIXED32:return reader.fixed32();case ScalarType.SFIXED32:return reader.sfixed32();case ScalarType.SFIXED64:return reader.sfixed64();case ScalarType.SINT64:return reader.sint64();case ScalarType.UINT32:return reader.uint32();case ScalarType.SINT32:return reader.sint32()}}function writeField(field,value,writer,options$1){assert(value!==void 0);let repeated=field.repeated;switch(field.kind){case`scalar`:case`enum`:let scalarType=field.kind==`enum`?ScalarType.INT32:field.T;if(repeated)if(assert(Array.isArray(value)),field.packed)writePacked(writer,scalarType,field.no,value);else for(let item of value)writeScalar(writer,scalarType,field.no,item);else writeScalar(writer,scalarType,field.no,value);break;case`message`:if(repeated){assert(Array.isArray(value));for(let item of value)writeMessageField(writer,options$1,field,item)}else writeMessageField(writer,options$1,field,value);break;case`map`:assert(typeof value==`object`&&!!value);for(let[key$1,val]of Object.entries(value))writeMapEntry(writer,options$1,field,key$1,val);break}}function writeMapEntry(writer,options$1,field,key$1,value){writer.tag(field.no,WireType.LengthDelimited),writer.fork();let keyValue=key$1;switch(field.K){case ScalarType.INT32:case ScalarType.FIXED32:case ScalarType.UINT32:case ScalarType.SFIXED32:case ScalarType.SINT32:keyValue=Number.parseInt(key$1);break;case ScalarType.BOOL:assert(key$1==`true`||key$1==`false`),keyValue=key$1==`true`;break}switch(writeScalar(writer,field.K,1,keyValue),field.V.kind){case`scalar`:writeScalar(writer,field.V.T,2,value);break;case`enum`:writeScalar(writer,ScalarType.INT32,2,value);break;case`message`:assert(value!==void 0),writer.tag(2,WireType.LengthDelimited).bytes(value.toBinary(options$1));break}writer.join()}function writeMessageField(writer,options$1,field,value){let message=wrapField(field.T,value);field.delimited?writer.tag(field.no,WireType.StartGroup).raw(message.toBinary(options$1)).tag(field.no,WireType.EndGroup):writer.tag(field.no,WireType.LengthDelimited).bytes(message.toBinary(options$1))}function writeScalar(writer,type,fieldNo,value){assert(value!==void 0);let[wireType,method]=scalarTypeInfo(type);writer.tag(fieldNo,wireType)[method](value)}function writePacked(writer,type,fieldNo,value){if(!value.length)return;writer.tag(fieldNo,WireType.LengthDelimited).fork();let[,method]=scalarTypeInfo(type);for(let i$3=0;i$3<value.length;i$3++)writer[method](value[i$3]);writer.join()}function scalarTypeInfo(type){let wireType=WireType.Varint;switch(type){case ScalarType.BYTES:case ScalarType.STRING:wireType=WireType.LengthDelimited;break;case ScalarType.DOUBLE:case ScalarType.FIXED64:case ScalarType.SFIXED64:wireType=WireType.Bit64;break;case ScalarType.FIXED32:case ScalarType.SFIXED32:case ScalarType.FLOAT:wireType=WireType.Bit32;break}let method=ScalarType[type].toLowerCase();return[wireType,method]}function makeUtilCommon(){return{setEnumType,initPartial(source,target){if(source===void 0)return;let type=target.getType();for(let member of type.fields.byMember()){let localName=member.localName,t$1=target,s$1=source;if(s$1[localName]!=null)switch(member.kind){case`oneof`:let sk=s$1[localName].case;if(sk===void 0)continue;let sourceField=member.findField(sk),val=s$1[localName].value;sourceField&&sourceField.kind==`message`&&!isMessage(val,sourceField.T)?val=new sourceField.T(val):sourceField&&sourceField.kind===`scalar`&&sourceField.T===ScalarType.BYTES&&(val=toU8Arr(val)),t$1[localName]={case:sk,value:val};break;case`scalar`:case`enum`:let copy=s$1[localName];member.T===ScalarType.BYTES&&(copy=member.repeated?copy.map(toU8Arr):toU8Arr(copy)),t$1[localName]=copy;break;case`map`:switch(member.V.kind){case`scalar`:case`enum`:if(member.V.T===ScalarType.BYTES)for(let[k$2,v$1]of Object.entries(s$1[localName]))t$1[localName][k$2]=toU8Arr(v$1);else Object.assign(t$1[localName],s$1[localName]);break;case`message`:let messageType=member.V.T;for(let k$2 of Object.keys(s$1[localName])){let val$1=s$1[localName][k$2];messageType.fieldWrapper||(val$1=new messageType(val$1)),t$1[localName][k$2]=val$1}break}break;case`message`:let mt=member.T;if(member.repeated)t$1[localName]=s$1[localName].map(val$1=>isMessage(val$1,mt)?val$1:new mt(val$1));else{let val$1=s$1[localName];mt.fieldWrapper?mt.typeName===`google.protobuf.BytesValue`?t$1[localName]=toU8Arr(val$1):t$1[localName]=val$1:t$1[localName]=isMessage(val$1,mt)?val$1:new mt(val$1)}break}}},equals(type,a$1,b$2){return a$1===b$2?!0:!a$1||!b$2?!1:type.fields.byMember().every(m$2=>{let va=a$1[m$2.localName],vb=b$2[m$2.localName];if(m$2.repeated){if(va.length!==vb.length)return!1;switch(m$2.kind){case`message`:return va.every((a$2,i$3)=>m$2.T.equals(a$2,vb[i$3]));case`scalar`:return va.every((a$2,i$3)=>scalarEquals(m$2.T,a$2,vb[i$3]));case`enum`:return va.every((a$2,i$3)=>scalarEquals(ScalarType.INT32,a$2,vb[i$3]))}throw Error(`repeated cannot contain ${m$2.kind}`)}switch(m$2.kind){case`message`:let a$2=va,b$3=vb;return m$2.T.fieldWrapper&&(a$2!==void 0&&!isMessage(a$2)&&(a$2=m$2.T.fieldWrapper.wrapField(a$2)),b$3!==void 0&&!isMessage(b$3)&&(b$3=m$2.T.fieldWrapper.wrapField(b$3))),m$2.T.equals(a$2,b$3);case`enum`:return scalarEquals(ScalarType.INT32,va,vb);case`scalar`:return scalarEquals(m$2.T,va,vb);case`oneof`:if(va.case!==vb.case)return!1;let s$1=m$2.findField(va.case);if(s$1===void 0)return!0;switch(s$1.kind){case`message`:return s$1.T.equals(va.value,vb.value);case`enum`:return scalarEquals(ScalarType.INT32,va.value,vb.value);case`scalar`:return scalarEquals(s$1.T,va.value,vb.value)}throw Error(`oneof cannot contain ${s$1.kind}`);case`map`:let keys$1=Object.keys(va).concat(Object.keys(vb));switch(m$2.V.kind){case`message`:let messageType=m$2.V.T;return keys$1.every(k$2=>messageType.equals(va[k$2],vb[k$2]));case`enum`:return keys$1.every(k$2=>scalarEquals(ScalarType.INT32,va[k$2],vb[k$2]));case`scalar`:let scalarType=m$2.V.T;return keys$1.every(k$2=>scalarEquals(scalarType,va[k$2],vb[k$2]))}break}})},clone(message){let type=message.getType(),target=new type,any=target;for(let member of type.fields.byMember()){let source=message[member.localName],copy;if(member.repeated)copy=source.map(cloneSingularField);else if(member.kind==`map`){copy=any[member.localName];for(let[key$1,v$1]of Object.entries(source))copy[key$1]=cloneSingularField(v$1)}else copy=member.kind==`oneof`?member.findField(source.case)?{case:source.case,value:cloneSingularField(source.value)}:{case:void 0}:cloneSingularField(source);any[member.localName]=copy}for(let uf of type.runtime.bin.listUnknownFields(message))type.runtime.bin.onUnknownField(any,uf.no,uf.wireType,uf.data);return target}}}function cloneSingularField(value){if(value===void 0)return value;if(isMessage(value))return value.clone();if(value instanceof Uint8Array){let c=new Uint8Array(value.byteLength);return c.set(value),c}return value}function toU8Arr(input){return input instanceof Uint8Array?input:new Uint8Array(input)}function makeProtoRuntime(syntax,newFieldList,initFields){return{syntax,json:makeJsonFormat(),bin:makeBinaryFormat(),util:Object.assign(Object.assign({},makeUtilCommon()),{newFieldList,initFields}),makeMessageType(typeName$1,fields,opt){return makeMessageType(this,typeName$1,fields,opt)},makeEnum,makeEnumType,getEnumType,makeExtension(typeName$1,extendee,field){return makeExtension(this,typeName$1,extendee,field)}}}var InternalFieldList=class{constructor(fields,normalizer){this._fields=fields,this._normalizer=normalizer}findJsonName(jsonName){if(!this.jsonNames){let t$1={};for(let f$2 of this.list())t$1[f$2.jsonName]=t$1[f$2.name]=f$2;this.jsonNames=t$1}return this.jsonNames[jsonName]}find(fieldNo){if(!this.numbers){let t$1={};for(let f$2 of this.list())t$1[f$2.no]=f$2;this.numbers=t$1}return this.numbers[fieldNo]}list(){return this.all||=this._normalizer(this._fields),this.all}byNumber(){return this.numbersAsc||=this.list().concat().sort((a$1,b$2)=>a$1.no-b$2.no),this.numbersAsc}byMember(){if(!this.members){this.members=[];let a$1=this.members,o$2;for(let f$2 of this.list())f$2.oneof?f$2.oneof!==o$2&&(o$2=f$2.oneof,a$1.push(o$2)):a$1.push(f$2)}return this.members}};function localFieldName(protoName,inOneof){let name$2=protoCamelCase(protoName);return inOneof?name$2:safeObjectProperty(safeMessageProperty(name$2))}function localOneofName(protoName){return localFieldName(protoName,!1)}const fieldJsonName=protoCamelCase;function protoCamelCase(snakeCase){let capNext=!1,b$2=[];for(let i$3=0;i$3<snakeCase.length;i$3++){let c=snakeCase.charAt(i$3);switch(c){case`_`:capNext=!0;break;case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:b$2.push(c),capNext=!1;break;default:capNext&&(capNext=!1,c=c.toUpperCase()),b$2.push(c);break}}return b$2.join(``)}var reservedObjectProperties=new Set([`constructor`,`toString`,`toJSON`,`valueOf`]),reservedMessageProperties=new Set([`getType`,`clone`,`equals`,`fromBinary`,`fromJson`,`fromJsonString`,`toBinary`,`toJson`,`toJsonString`,`toObject`]),fallback=name$2=>`${name$2}$`,safeMessageProperty=name$2=>reservedMessageProperties.has(name$2)?fallback(name$2):name$2;const safeObjectProperty=name$2=>reservedObjectProperties.has(name$2)?fallback(name$2):name$2;var InternalOneofInfo=class{constructor(name$2){this.kind=`oneof`,this.repeated=!1,this.packed=!1,this.opt=!1,this.req=!1,this.default=void 0,this.fields=[],this.name=name$2,this.localName=localOneofName(name$2)}addField(field){assert(field.oneof===this,`field ${field.name} not one of ${this.name}`),this.fields.push(field)}findField(localName){if(!this._lookup){this._lookup=Object.create(null);for(let i$3=0;i$3<this.fields.length;i$3++)this._lookup[this.fields[i$3].localName]=this.fields[i$3]}return this._lookup[localName]}};function normalizeFieldInfos(fieldInfos,packedByDefault){var _a$1,_b,_c,_d,_e,_f;let r$4=[],o$2;for(let field of typeof fieldInfos==`function`?fieldInfos():fieldInfos){let f$2=field;if(f$2.localName=localFieldName(field.name,field.oneof!==void 0),f$2.jsonName=field.jsonName??fieldJsonName(field.name),f$2.repeated=field.repeated??!1,field.kind==`scalar`&&(f$2.L=field.L??LongType.BIGINT),f$2.delimited=field.delimited??!1,f$2.req=field.req??!1,f$2.opt=field.opt??!1,field.packed===void 0&&(packedByDefault?f$2.packed=field.kind==`enum`||field.kind==`scalar`&&field.T!=ScalarType.BYTES&&field.T!=ScalarType.STRING:f$2.packed=!1),field.oneof!==void 0){let ooname=typeof field.oneof==`string`?field.oneof:field.oneof.name;(!o$2||o$2.name!=ooname)&&(o$2=new InternalOneofInfo(ooname)),f$2.oneof=o$2,o$2.addField(f$2)}r$4.push(f$2)}return r$4}const proto3=makeProtoRuntime(`proto3`,fields=>new InternalFieldList(fields,source=>normalizeFieldInfos(source,!0)),target=>{for(let member of target.getType().fields.byMember()){if(member.opt)continue;let name$2=member.localName,t$1=target;if(member.repeated){t$1[name$2]=[];continue}switch(member.kind){case`oneof`:t$1[name$2]={case:void 0};break;case`enum`:t$1[name$2]=0;break;case`map`:t$1[name$2]={};break;case`scalar`:t$1[name$2]=scalarZeroValue(member.T,member.L);break;case`message`:break}}});var MethodKind;(function(MethodKind$1){MethodKind$1[MethodKind$1.Unary=0]=`Unary`,MethodKind$1[MethodKind$1.ServerStreaming=1]=`ServerStreaming`,MethodKind$1[MethodKind$1.ClientStreaming=2]=`ClientStreaming`,MethodKind$1[MethodKind$1.BiDiStreaming=3]=`BiDiStreaming`})(MethodKind||={});var MethodIdempotency;(function(MethodIdempotency$1){MethodIdempotency$1[MethodIdempotency$1.NoSideEffects=1]=`NoSideEffects`,MethodIdempotency$1[MethodIdempotency$1.Idempotent=2]=`Idempotent`})(MethodIdempotency||={});var Code$1;(function(Code$2){Code$2[Code$2.Canceled=1]=`Canceled`,Code$2[Code$2.Unknown=2]=`Unknown`,Code$2[Code$2.InvalidArgument=3]=`InvalidArgument`,Code$2[Code$2.DeadlineExceeded=4]=`DeadlineExceeded`,Code$2[Code$2.NotFound=5]=`NotFound`,Code$2[Code$2.AlreadyExists=6]=`AlreadyExists`,Code$2[Code$2.PermissionDenied=7]=`PermissionDenied`,Code$2[Code$2.ResourceExhausted=8]=`ResourceExhausted`,Code$2[Code$2.FailedPrecondition=9]=`FailedPrecondition`,Code$2[Code$2.Aborted=10]=`Aborted`,Code$2[Code$2.OutOfRange=11]=`OutOfRange`,Code$2[Code$2.Unimplemented=12]=`Unimplemented`,Code$2[Code$2.Internal=13]=`Internal`,Code$2[Code$2.Unavailable=14]=`Unavailable`,Code$2[Code$2.DataLoss=15]=`DataLoss`,Code$2[Code$2.Unauthenticated=16]=`Unauthenticated`})(Code$1||={});function codeToString(value){let name$2=Code$1[value];return typeof name$2==`string`?name$2[0].toLowerCase()+name$2.substring(1).replace(/[A-Z]/g,c=>`_`+c.toLowerCase()):value.toString()}var stringToCode;function codeFromString(value){if(!stringToCode){stringToCode={};for(let value$1 of Object.values(Code$1))typeof value$1!=`string`&&(stringToCode[codeToString(value$1)]=value$1)}return stringToCode[value]}var ConnectError=class ConnectError extends Error{constructor(message,code$2=Code$1.Unknown,metadata,outgoingDetails,cause){super(createMessage(message,code$2)),this.name=`ConnectError`,Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=message,this.code=code$2,this.metadata=new Headers(metadata??{}),this.details=outgoingDetails??[],this.cause=cause}static from(reason,code$2=Code$1.Unknown){return reason instanceof ConnectError?reason:reason instanceof Error?reason.name==`AbortError`?new ConnectError(reason.message,Code$1.Canceled):new ConnectError(reason.message,code$2,void 0,void 0,reason):new ConnectError(String(reason),code$2,void 0,void 0,reason)}static[Symbol.hasInstance](v$1){return v$1 instanceof Error?Object.getPrototypeOf(v$1)===ConnectError.prototype?!0:v$1.name===`ConnectError`&&`code`in v$1&&typeof v$1.code==`number`&&`metadata`in v$1&&`details`in v$1&&Array.isArray(v$1.details)&&`rawMessage`in v$1&&typeof v$1.rawMessage==`string`&&`cause`in v$1:!1}findDetails(typeOrRegistry){let registry=`typeName`in typeOrRegistry?{findMessage:typeName$1=>typeName$1===typeOrRegistry.typeName?typeOrRegistry:void 0}:typeOrRegistry,details=[];for(let data of this.details){if(`getType`in data){registry.findMessage(data.getType().typeName)&&details.push(data);continue}let type=registry.findMessage(data.type);if(type)try{details.push(type.fromBinary(data.value))}catch{}}return details}};function createMessage(message,code$2){return message.length?`[${codeToString(code$2)}] ${message}`:`[${codeToString(code$2)}]`}function appendHeaders(...headers){let h$1=new Headers;for(let e of headers)e.forEach((value,key$1)=>{h$1.append(key$1,value)});return h$1}function makeAnyClient(service,createMethod){let client={};for(let[localName,methodInfo]of Object.entries(service.methods)){let method=createMethod(Object.assign(Object.assign({},methodInfo),{localName,service}));method!=null&&(client[localName]=method)}return client}const compressedFlag=1;function createEnvelopeReadableStream(stream){let reader,buffer=new Uint8Array;function append(chunk){let n=new Uint8Array(buffer.length+chunk.length);n.set(buffer),n.set(chunk,buffer.length),buffer=n}return new ReadableStream({start(){reader=stream.getReader()},async pull(controller){let header;for(;;){if(header===void 0&&buffer.byteLength>=5){let length=0;for(let i$3=1;i$3<5;i$3++)length=(length<<8)+buffer[i$3];header={flags:buffer[0],length}}if(header!==void 0&&buffer.byteLength>=header.length+5)break;let result=await reader.read();if(result.done)break;append(result.value)}if(header===void 0){if(buffer.byteLength==0){controller.close();return}controller.error(new ConnectError(`premature end of stream`,Code$1.DataLoss));return}let data=buffer.subarray(5,5+header.length);buffer=buffer.subarray(5+header.length),controller.enqueue({flags:header.flags,data})}})}function encodeEnvelope(flags,data){let bytes=new Uint8Array(data.length+5);bytes.set(data,5);let v$1=new DataView(bytes.buffer,bytes.byteOffset,bytes.byteLength);return v$1.setUint8(0,flags),v$1.setUint32(1,data.length),bytes}var __asyncValues$1=function(o$2){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var m$2=o$2[Symbol.asyncIterator],i$3;return m$2?m$2.call(o$2):(o$2=typeof __values==`function`?__values(o$2):o$2[Symbol.iterator](),i$3={},verb(`next`),verb(`throw`),verb(`return`),i$3[Symbol.asyncIterator]=function(){return this},i$3);function verb(n){i$3[n]=o$2[n]&&function(v$1){return new Promise(function(resolve,reject){v$1=o$2[n](v$1),settle(resolve,reject,v$1.done,v$1.value)})}}function settle(resolve,reject,d$1,v$1){Promise.resolve(v$1).then(function(v$2){resolve({value:v$2,done:d$1})},reject)}},__await$2=function(v$1){return this instanceof __await$2?(this.v=v$1,this):new __await$2(v$1)},__asyncGenerator$2=function(thisArg,_arguments,generator$1){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var g=generator$1.apply(thisArg,_arguments||[]),i$3,q$1=[];return i$3={},verb(`next`),verb(`throw`),verb(`return`,awaitReturn),i$3[Symbol.asyncIterator]=function(){return this},i$3;function awaitReturn(f$2){return function(v$1){return Promise.resolve(v$1).then(f$2,reject)}}function verb(n,f$2){g[n]&&(i$3[n]=function(v$1){return new Promise(function(a$1,b$2){q$1.push([n,v$1,a$1,b$2])>1||resume(n,v$1)})},f$2&&(i$3[n]=f$2(i$3[n])))}function resume(n,v$1){try{step(g[n](v$1))}catch(e){settle(q$1[0][3],e)}}function step(r$4){r$4.value instanceof __await$2?Promise.resolve(r$4.value.v).then(fulfill,reject):settle(q$1[0][2],r$4)}function fulfill(value){resume(`next`,value)}function reject(value){resume(`throw`,value)}function settle(f$2,v$1){f$2(v$1),q$1.shift(),q$1.length&&resume(q$1[0][0],q$1[0][1])}},__asyncDelegator$1=function(o$2){var i$3,p$1;return i$3={},verb(`next`),verb(`throw`,function(e){throw e}),verb(`return`),i$3[Symbol.iterator]=function(){return this},i$3;function verb(n,f$2){i$3[n]=o$2[n]?function(v$1){return(p$1=!p$1)?{value:__await$2(o$2[n](v$1)),done:!1}:f$2?f$2(v$1):v$1}:f$2}};function createAsyncIterable(items){return __asyncGenerator$2(this,arguments,function*(){yield __await$2(yield*__asyncDelegator$1(__asyncValues$1(items)))})}var __asyncValues=function(o$2){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var m$2=o$2[Symbol.asyncIterator],i$3;return m$2?m$2.call(o$2):(o$2=typeof __values==`function`?__values(o$2):o$2[Symbol.iterator](),i$3={},verb(`next`),verb(`throw`),verb(`return`),i$3[Symbol.asyncIterator]=function(){return this},i$3);function verb(n){i$3[n]=o$2[n]&&function(v$1){return new Promise(function(resolve,reject){v$1=o$2[n](v$1),settle(resolve,reject,v$1.done,v$1.value)})}}function settle(resolve,reject,d$1,v$1){Promise.resolve(v$1).then(function(v$2){resolve({value:v$2,done:d$1})},reject)}},__await$1=function(v$1){return this instanceof __await$1?(this.v=v$1,this):new __await$1(v$1)},__asyncDelegator=function(o$2){var i$3,p$1;return i$3={},verb(`next`),verb(`throw`,function(e){throw e}),verb(`return`),i$3[Symbol.iterator]=function(){return this},i$3;function verb(n,f$2){i$3[n]=o$2[n]?function(v$1){return(p$1=!p$1)?{value:__await$1(o$2[n](v$1)),done:!1}:f$2?f$2(v$1):v$1}:f$2}},__asyncGenerator$1=function(thisArg,_arguments,generator$1){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var g=generator$1.apply(thisArg,_arguments||[]),i$3,q$1=[];return i$3={},verb(`next`),verb(`throw`),verb(`return`,awaitReturn),i$3[Symbol.asyncIterator]=function(){return this},i$3;function awaitReturn(f$2){return function(v$1){return Promise.resolve(v$1).then(f$2,reject)}}function verb(n,f$2){g[n]&&(i$3[n]=function(v$1){return new Promise(function(a$1,b$2){q$1.push([n,v$1,a$1,b$2])>1||resume(n,v$1)})},f$2&&(i$3[n]=f$2(i$3[n])))}function resume(n,v$1){try{step(g[n](v$1))}catch(e){settle(q$1[0][3],e)}}function step(r$4){r$4.value instanceof __await$1?Promise.resolve(r$4.value.v).then(fulfill,reject):settle(q$1[0][2],r$4)}function fulfill(value){resume(`next`,value)}function reject(value){resume(`throw`,value)}function settle(f$2,v$1){f$2(v$1),q$1.shift(),q$1.length&&resume(q$1[0][0],q$1[0][1])}};function createClient(service,transport$1){return makeAnyClient(service,method=>{switch(method.kind){case MethodKind.Unary:return createUnaryFn(transport$1,service,method);case MethodKind.ServerStreaming:return createServerStreamingFn(transport$1,service,method);case MethodKind.ClientStreaming:return createClientStreamingFn(transport$1,service,method);case MethodKind.BiDiStreaming:return createBiDiStreamingFn(transport$1,service,method);default:return null}})}function createPromiseClient(service,transport$1){return createClient(service,transport$1)}function createUnaryFn(transport$1,service,method){return async function(input,options$1){var _a$1,_b;let response=await transport$1.unary(service,method,options$1?.signal,options$1?.timeoutMs,options$1?.headers,input,options$1?.contextValues);return(_a$1=options$1?.onHeader)==null||_a$1.call(options$1,response.header),(_b=options$1?.onTrailer)==null||_b.call(options$1,response.trailer),response.message}}function createServerStreamingFn(transport$1,service,method){return function(input,options$1){return handleStreamResponse(transport$1.stream(service,method,options$1?.signal,options$1?.timeoutMs,options$1?.headers,createAsyncIterable([input]),options$1?.contextValues),options$1)}}function createClientStreamingFn(transport$1,service,method){return async function(request,options$1){var _a$1,e_1,_b,_c,_d,_e;let response=await transport$1.stream(service,method,options$1?.signal,options$1?.timeoutMs,options$1?.headers,request,options$1?.contextValues);(_d=options$1?.onHeader)==null||_d.call(options$1,response.header);let singleMessage,count=0;try{for(var _f=!0,_g=__asyncValues(response.message),_h;_h=await _g.next(),_a$1=_h.done,!_a$1;_f=!0)_c=_h.value,_f=!1,singleMessage=_c,count++}catch(e_1_1){e_1={error:e_1_1}}finally{try{!_f&&!_a$1&&(_b=_g.return)&&await _b.call(_g)}finally{if(e_1)throw e_1.error}}if(!singleMessage)throw new ConnectError(`protocol error: missing response message`,Code$1.Unimplemented);if(count>1)throw new ConnectError(`protocol error: received extra messages for client streaming method`,Code$1.Unimplemented);return(_e=options$1?.onTrailer)==null||_e.call(options$1,response.trailer),singleMessage}}function createBiDiStreamingFn(transport$1,service,method){return function(request,options$1){return handleStreamResponse(transport$1.stream(service,method,options$1?.signal,options$1?.timeoutMs,options$1?.headers,request,options$1?.contextValues),options$1)}}function handleStreamResponse(stream,options$1){let it=(function(){return __asyncGenerator$1(this,arguments,function*(){var _a$1,_b;let response=yield __await$1(stream);(_a$1=options$1?.onHeader)==null||_a$1.call(options$1,response.header),yield __await$1(yield*__asyncDelegator(__asyncValues(response.message))),(_b=options$1?.onTrailer)==null||_b.call(options$1,response.trailer)})})()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>it.next()})}}function createLinkedAbortController(...signals){let controller=new AbortController,sa=signals.filter(s$1=>s$1!==void 0).concat(controller.signal);for(let signal of sa){if(signal.aborted){onAbort.apply(signal);break}signal.addEventListener(`abort`,onAbort)}function onAbort(){controller.signal.aborted||controller.abort(getAbortSignalReason(this));for(let signal of sa)signal.removeEventListener(`abort`,onAbort)}return controller}function createDeadlineSignal(timeoutMs){let controller=new AbortController,listener=()=>{controller.abort(new ConnectError(`the operation timed out`,Code$1.DeadlineExceeded))},timeoutId;return timeoutMs!==void 0&&(timeoutMs<=0?listener():timeoutId=setTimeout(listener,timeoutMs)),{signal:controller.signal,cleanup:()=>clearTimeout(timeoutId)}}function getAbortSignalReason(signal){if(!signal.aborted)return;if(signal.reason!==void 0)return signal.reason;let e=Error(`This operation was aborted`);return e.name=`AbortError`,e}function createContextValues(){return{get(key$1){return key$1.id in this?this[key$1.id]:key$1.defaultValue},set(key$1,value){return this[key$1.id]=value,this},delete(key$1){return delete this[key$1.id],this}}}function createMethodUrl(baseUrl,service,method){let s$1=typeof service==`string`?service:service.typeName,m$2=typeof method==`string`?method:method.name;return baseUrl.toString().replace(/\/?$/,`/${s$1}/${m$2}`)}function normalize$3(type,message){return message instanceof type?message:new type(message)}function normalizeIterable(messageType,input){function transform$1(result){return result.done===!0?result:{done:result.done,value:normalize$3(messageType,result.value)}}return{[Symbol.asyncIterator](){let it=input[Symbol.asyncIterator](),res={next:()=>it.next().then(transform$1)};return it.throw!==void 0&&(res.throw=e=>it.throw(e).then(transform$1)),it.return!==void 0&&(res.return=v$1=>it.return(v$1).then(transform$1)),res}}}function applyInterceptors(next,interceptors){var _a$1;return interceptors?.concat().reverse().reduce((n,i$3)=>i$3(n),next)??next}function getJsonOptions(options$1){var _a$1;let o$2=Object.assign({},options$1);return o$2.ignoreUnknownFields??=!0,o$2}function createClientMethodSerializers(method,useBinaryFormat,jsonOptions,binaryOptions){let input=useBinaryFormat?createBinarySerialization(method.I,binaryOptions):createJsonSerialization(method.I,jsonOptions);return{parse:(useBinaryFormat?createBinarySerialization(method.O,binaryOptions):createJsonSerialization(method.O,jsonOptions)).parse,serialize:input.serialize}}function createBinarySerialization(messageType,options$1){return{parse(data){try{return messageType.fromBinary(data,options$1)}catch(e){throw new ConnectError(`parse binary: ${e instanceof Error?e.message:String(e)}`,Code$1.Internal)}},serialize(data){try{return data.toBinary(options$1)}catch(e){throw new ConnectError(`serialize binary: ${e instanceof Error?e.message:String(e)}`,Code$1.Internal)}}}}function createJsonSerialization(messageType,options$1){var _a$1,_b;let textEncoder=options$1?.textEncoder??new TextEncoder,textDecoder=options$1?.textDecoder??new TextDecoder,o$2=getJsonOptions(options$1);return{parse(data){try{let json$1=textDecoder.decode(data);return messageType.fromJsonString(json$1,o$2)}catch(e){throw ConnectError.from(e,Code$1.InvalidArgument)}},serialize(data){try{let json$1=data.toJsonString(o$2);return textEncoder.encode(json$1)}catch(e){throw ConnectError.from(e,Code$1.Internal)}}}}const contentTypeRegExp=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i,contentTypeUnaryProto=`application/proto`,contentTypeUnaryJson=`application/json`,contentTypeStreamProto=`application/connect+proto`,contentTypeStreamJson=`application/connect+json`;function parseContentType(contentType){let match=contentType?.match(contentTypeRegExp);if(match)return{stream:!!match[1],binary:!!match[3]}}var __rest=function(s$1,e){var t$1={};for(var p$1 in s$1)Object.prototype.hasOwnProperty.call(s$1,p$1)&&e.indexOf(p$1)<0&&(t$1[p$1]=s$1[p$1]);if(s$1!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i$3=0,p$1=Object.getOwnPropertySymbols(s$1);i$3<p$1.length;i$3++)e.indexOf(p$1[i$3])<0&&Object.prototype.propertyIsEnumerable.call(s$1,p$1[i$3])&&(t$1[p$1[i$3]]=s$1[p$1[i$3]]);return t$1};function errorFromJson(jsonValue,metadata,fallback$1){var _a$1;if(metadata&&new Headers(metadata).forEach((value,key$1)=>fallback$1.metadata.append(key$1,value)),typeof jsonValue!=`object`||!jsonValue||Array.isArray(jsonValue))throw fallback$1;let code$2=fallback$1.code;`code`in jsonValue&&typeof jsonValue.code==`string`&&(code$2=codeFromString(jsonValue.code)??code$2);let message=jsonValue.message;if(message!=null&&typeof message!=`string`)throw fallback$1;let error=new ConnectError(message??``,code$2,metadata);if(`details`in jsonValue&&Array.isArray(jsonValue.details))for(let detail of jsonValue.details){if(typeof detail!=`object`||!detail||Array.isArray(detail)||typeof detail.type!=`string`||typeof detail.value!=`string`)throw fallback$1;try{error.details.push({type:detail.type,value:protoBase64.dec(detail.value),debug:detail.debug})}catch{throw fallback$1}}return error}const endStreamFlag=2;function endStreamFromJson(data){let parseErr=new ConnectError(`invalid end stream`,Code$1.Unknown),jsonValue;try{jsonValue=JSON.parse(typeof data==`string`?data:new TextDecoder().decode(data))}catch{throw parseErr}if(typeof jsonValue!=`object`||!jsonValue||Array.isArray(jsonValue))throw parseErr;let metadata=new Headers;if(`metadata`in jsonValue){if(typeof jsonValue.metadata!=`object`||jsonValue.metadata==null||Array.isArray(jsonValue.metadata))throw parseErr;for(let[key$1,values]of Object.entries(jsonValue.metadata)){if(!Array.isArray(values)||values.some(value=>typeof value!=`string`))throw parseErr;for(let value of values)metadata.append(key$1,value)}}return{metadata,error:`error`in jsonValue&&jsonValue.error!=null?errorFromJson(jsonValue.error,metadata,parseErr):void 0}}const headerContentType=`Content-Type`,headerUnaryContentLength=`Content-Length`,headerUnaryEncoding=`Content-Encoding`,headerUnaryAcceptEncoding=`Accept-Encoding`,headerTimeout=`Connect-Timeout-Ms`,headerProtocolVersion=`Connect-Protocol-Version`,headerUserAgent=`User-Agent`;function codeFromHttpStatus(httpStatus){switch(httpStatus){case 400:return Code$1.Internal;case 401:return Code$1.Unauthenticated;case 403:return Code$1.PermissionDenied;case 404:return Code$1.Unimplemented;case 429:return Code$1.Unavailable;case 502:return Code$1.Unavailable;case 503:return Code$1.Unavailable;case 504:return Code$1.Unavailable;default:return Code$1.Unknown}}function trailerDemux(header){let h$1=new Headers,t$1=new Headers;return header.forEach((value,key$1)=>{key$1.toLowerCase().startsWith(`trailer-`)?t$1.append(key$1.substring(8),value):h$1.append(key$1,value)}),[h$1,t$1]}const protocolVersion=`1`;function requestHeader(methodKind,useBinaryFormat,timeoutMs,userProvidedHeaders,setUserAgent){let result=new Headers(userProvidedHeaders??{});return timeoutMs!==void 0&&result.set(`Connect-Timeout-Ms`,`${timeoutMs}`),result.set(headerContentType,methodKind==MethodKind.Unary?useBinaryFormat?`application/proto`:`application/json`:useBinaryFormat?`application/connect+proto`:`application/connect+json`),result.set(headerProtocolVersion,`1`),setUserAgent&&!result.has(`User-Agent`)&&result.set(`User-Agent`,`connect-es/1.7.0`),result}function validateResponse(methodKind,useBinaryFormat,status,headers){let mimeType=headers.get(headerContentType),parsedType=parseContentType(mimeType);if(status!==200){let errorFromStatus=new ConnectError(`HTTP ${status}`,codeFromHttpStatus(status),headers);if(methodKind==MethodKind.Unary&&parsedType&&!parsedType.binary)return{isUnaryError:!0,unaryError:errorFromStatus};throw errorFromStatus}let allowedContentType={binary:useBinaryFormat,stream:methodKind!==MethodKind.Unary};if(parsedType?.binary!==allowedContentType.binary||parsedType.stream!==allowedContentType.stream)throw new ConnectError(`unsupported content type ${mimeType}`,parsedType===void 0?Code$1.Unknown:Code$1.Internal,headers);return{isUnaryError:!1}}var contentTypePrefix=`application/`;function encodeMessageForUrl(message,useBase64){return useBase64?protoBase64.enc(message).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``):encodeURIComponent(new TextDecoder().decode(message))}function transformConnectPostToGetRequest(request,message,useBase64){let query=`?connect=v1`,contentType=request.header.get(headerContentType);contentType?.indexOf(contentTypePrefix)===0&&(query+=`&encoding=`+encodeURIComponent(contentType.slice(12)));let compression=request.header.get(headerUnaryEncoding);compression!==null&&compression!==`identity`&&(query+=`&compression=`+encodeURIComponent(compression),useBase64=!0),useBase64&&(query+=`&base64=1`),query+=`&message=`+encodeMessageForUrl(message,useBase64);let url=request.url+query,header=new Headers(request.header);return[headerProtocolVersion,headerContentType,`Content-Length`,headerUnaryEncoding,`Accept-Encoding`].forEach(h$1=>header.delete(h$1)),Object.assign(Object.assign({},request),{init:Object.assign(Object.assign({},request.init),{method:`GET`}),url,header})}function runUnaryCall(opt){let next=applyInterceptors(opt.next,opt.interceptors),[signal,abort,done]=setupSignal(opt);return next(Object.assign(Object.assign({},opt.req),{message:normalize$3(opt.req.method.I,opt.req.message),signal})).then(res=>(done(),res),abort)}function runStreamingCall(opt){let next=applyInterceptors(opt.next,opt.interceptors),[signal,abort,done]=setupSignal(opt),req=Object.assign(Object.assign({},opt.req),{message:normalizeIterable(opt.req.method.I,opt.req.message),signal}),doneCalled=!1;return signal.addEventListener(`abort`,function(){var _a$1,_b;let it=opt.req.message[Symbol.asyncIterator]();doneCalled||(_a$1=it.throw)==null||_a$1.call(it,this.reason).catch(()=>{}),(_b=it.return)==null||_b.call(it).catch(()=>{})}),next(req).then(res=>Object.assign(Object.assign({},res),{message:{[Symbol.asyncIterator](){let it=res.message[Symbol.asyncIterator]();return{next(){return it.next().then(r$4=>(r$4.done==1&&(doneCalled=!0,done()),r$4),abort)}}}}}),abort)}function setupSignal(opt){let{signal,cleanup}=createDeadlineSignal(opt.timeoutMs),controller=createLinkedAbortController(opt.signal,signal);return[controller.signal,function(reason){let e=ConnectError.from(signal.aborted?getAbortSignalReason(signal):reason);return controller.abort(e),cleanup(),Promise.reject(e)},function(){cleanup(),controller.abort()}]}function assertFetchApi(){try{new Headers}catch{throw Error(`connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.`)}}var __await=function(v$1){return this instanceof __await?(this.v=v$1,this):new __await(v$1)},__asyncGenerator=function(thisArg,_arguments,generator$1){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var g=generator$1.apply(thisArg,_arguments||[]),i$3,q$1=[];return i$3={},verb(`next`),verb(`throw`),verb(`return`,awaitReturn),i$3[Symbol.asyncIterator]=function(){return this},i$3;function awaitReturn(f$2){return function(v$1){return Promise.resolve(v$1).then(f$2,reject)}}function verb(n,f$2){g[n]&&(i$3[n]=function(v$1){return new Promise(function(a$1,b$2){q$1.push([n,v$1,a$1,b$2])>1||resume(n,v$1)})},f$2&&(i$3[n]=f$2(i$3[n])))}function resume(n,v$1){try{step(g[n](v$1))}catch(e){settle(q$1[0][3],e)}}function step(r$4){r$4.value instanceof __await?Promise.resolve(r$4.value.v).then(fulfill,reject):settle(q$1[0][2],r$4)}function fulfill(value){resume(`next`,value)}function reject(value){resume(`throw`,value)}function settle(f$2,v$1){f$2(v$1),q$1.shift(),q$1.length&&resume(q$1[0][0],q$1[0][1])}};function createConnectTransport(options$1){var _a$1;assertFetchApi();let useBinaryFormat=options$1.useBinaryFormat??!1;return{async unary(service,method,signal,timeoutMs,header,message,contextValues){var _a$2;let{serialize:serialize$1,parse:parse$2}=createClientMethodSerializers(method,useBinaryFormat,options$1.jsonOptions,options$1.binaryOptions);return timeoutMs=timeoutMs===void 0?options$1.defaultTimeoutMs:timeoutMs<=0?void 0:timeoutMs,await runUnaryCall({interceptors:options$1.interceptors,signal,timeoutMs,req:{stream:!1,service,method,url:createMethodUrl(options$1.baseUrl,service,method),init:{method:`POST`,credentials:options$1.credentials??`same-origin`,redirect:`error`,mode:`cors`},header:requestHeader(method.kind,useBinaryFormat,timeoutMs,header,!1),contextValues:contextValues??createContextValues(),message},next:async req=>{var _a$3;let useGet=options$1.useHttpGet===!0&&method.idempotency===MethodIdempotency.NoSideEffects,body$2=null;useGet?req=transformConnectPostToGetRequest(req,serialize$1(req.message),useBinaryFormat):body$2=serialize$1(req.message);let response=await(options$1.fetch??globalThis.fetch)(req.url,Object.assign(Object.assign({},req.init),{headers:req.header,signal:req.signal,body:body$2})),{isUnaryError,unaryError}=validateResponse(method.kind,useBinaryFormat,response.status,response.headers);if(isUnaryError)throw errorFromJson(await response.json(),appendHeaders(...trailerDemux(response.headers)),unaryError);let[demuxedHeader,demuxedTrailer]=trailerDemux(response.headers);return{stream:!1,service,method,header:demuxedHeader,message:useBinaryFormat?parse$2(new Uint8Array(await response.arrayBuffer())):method.O.fromJson(await response.json(),getJsonOptions(options$1.jsonOptions)),trailer:demuxedTrailer}}})},async stream(service,method,signal,timeoutMs,header,input,contextValues){var _a$2;let{serialize:serialize$1,parse:parse$2}=createClientMethodSerializers(method,useBinaryFormat,options$1.jsonOptions,options$1.binaryOptions);function parseResponseBody(body$2,trailerTarget,header$1,signal$1){return __asyncGenerator(this,arguments,function*(){let reader=createEnvelopeReadableStream(body$2).getReader(),endStreamReceived=!1;for(;;){let result=yield __await(reader.read());if(result.done)break;let{flags,data}=result.value;if((flags&1)==1)throw new ConnectError(`protocol error: received unsupported compressed output`,Code$1.Internal);if((flags&2)==2){endStreamReceived=!0;let endStream=endStreamFromJson(data);if(endStream.error){let error=endStream.error;throw header$1.forEach((value,key$1)=>{error.metadata.append(key$1,value)}),error}endStream.metadata.forEach((value,key$1)=>trailerTarget.set(key$1,value));continue}yield yield __await(parse$2(data))}if(`throwIfAborted`in signal$1&&signal$1.throwIfAborted(),!endStreamReceived)throw`missing EndStreamResponse`})}async function createRequestBody(input$1){if(method.kind!=MethodKind.ServerStreaming)throw`The fetch API does not support streaming request bodies`;let r$4=await input$1[Symbol.asyncIterator]().next();if(r$4.done==1)throw`missing request message`;return encodeEnvelope(0,serialize$1(r$4.value))}return timeoutMs=timeoutMs===void 0?options$1.defaultTimeoutMs:timeoutMs<=0?void 0:timeoutMs,await runStreamingCall({interceptors:options$1.interceptors,timeoutMs,signal,req:{stream:!0,service,method,url:createMethodUrl(options$1.baseUrl,service,method),init:{method:`POST`,credentials:options$1.credentials??`same-origin`,redirect:`error`,mode:`cors`},header:requestHeader(method.kind,useBinaryFormat,timeoutMs,header,!1),contextValues:contextValues??createContextValues(),message:input},next:async req=>{var _a$3;let fRes=await(options$1.fetch??globalThis.fetch)(req.url,Object.assign(Object.assign({},req.init),{headers:req.header,signal:req.signal,body:await createRequestBody(req.message)}));if(validateResponse(method.kind,useBinaryFormat,fRes.status,fRes.headers),fRes.body===null)throw`missing response body`;let trailer=new Headers;return Object.assign(Object.assign({},req),{header:fRes.headers,trailer,message:parseResponseBody(fRes.body,trailer,fRes.headers,req.signal)})}})}}}var Label=class Label extends Message{constructor(data){super(),this.id=``,this.name=``,this.color=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.Label`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`id`,kind:`scalar`,T:9},{no:2,name:`name`,kind:`scalar`,T:9},{no:3,name:`color`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new Label().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new Label().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new Label().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(Label,a$1,b$2)}},Connection=class Connection extends Message{constructor(data){super(),this.id=``,this.name=``,this.description=``,this.host=``,this.port=0,this.database=``,this.username=``,this.hasPassword=!1,this.sslMode=``,this.labels=[],this.version=``,this.permissions=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.Connection`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`id`,kind:`scalar`,T:9},{no:2,name:`name`,kind:`scalar`,T:9},{no:3,name:`description`,kind:`scalar`,T:9},{no:4,name:`host`,kind:`scalar`,T:9},{no:5,name:`port`,kind:`scalar`,T:5},{no:6,name:`database`,kind:`scalar`,T:9},{no:7,name:`username`,kind:`scalar`,T:9},{no:8,name:`has_password`,kind:`scalar`,T:8},{no:9,name:`ssl_mode`,kind:`scalar`,T:9},{no:10,name:`labels`,kind:`message`,T:Label,repeated:!0},{no:11,name:`version`,kind:`scalar`,T:9},{no:12,name:`permissions`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new Connection().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new Connection().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new Connection().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(Connection,a$1,b$2)}},ListConnectionsRequest=class ListConnectionsRequest extends Message{constructor(data){super(),proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.ListConnectionsRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[]);static fromBinary(bytes,options$1){return new ListConnectionsRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ListConnectionsRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ListConnectionsRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ListConnectionsRequest,a$1,b$2)}},ListConnectionsResponse=class ListConnectionsResponse extends Message{constructor(data){super(),this.connections=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.ListConnectionsResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connections`,kind:`message`,T:Connection,repeated:!0}]);static fromBinary(bytes,options$1){return new ListConnectionsResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ListConnectionsResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ListConnectionsResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ListConnectionsResponse,a$1,b$2)}},GetConnectionRequest=class GetConnectionRequest extends Message{constructor(data){super(),this.id=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.GetConnectionRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetConnectionRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetConnectionRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetConnectionRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetConnectionRequest,a$1,b$2)}},GetConnectionResponse=class GetConnectionResponse extends Message{constructor(data){super(),proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.GetConnectionResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection`,kind:`message`,T:Connection}]);static fromBinary(bytes,options$1){return new GetConnectionResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetConnectionResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetConnectionResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetConnectionResponse,a$1,b$2)}},TestConnectionRequest=class TestConnectionRequest extends Message{constructor(data){super(),this.id=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.TestConnectionRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new TestConnectionRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new TestConnectionRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new TestConnectionRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(TestConnectionRequest,a$1,b$2)}},TestConnectionResponse=class TestConnectionResponse extends Message{constructor(data){super(),this.success=!1,this.error=``,this.latencyMs=0,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.TestConnectionResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`success`,kind:`scalar`,T:8},{no:2,name:`error`,kind:`scalar`,T:9},{no:3,name:`latency_ms`,kind:`scalar`,T:5}]);static fromBinary(bytes,options$1){return new TestConnectionResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new TestConnectionResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new TestConnectionResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(TestConnectionResponse,a$1,b$2)}};const ConnectionService={typeName:`connection.v1.ConnectionService`,methods:{listConnections:{name:`ListConnections`,I:ListConnectionsRequest,O:ListConnectionsResponse,kind:MethodKind.Unary},getConnection:{name:`GetConnection`,I:GetConnectionRequest,O:GetConnectionResponse,kind:MethodKind.Unary},testConnection:{name:`TestConnection`,I:TestConnectionRequest,O:TestConnectionResponse,kind:MethodKind.Unary}}};var ExecuteSQLRequest=class ExecuteSQLRequest extends Message{constructor(data){super(),this.connectionId=``,this.sql=``,this.queryId=``,this.searchPath=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.ExecuteSQLRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`sql`,kind:`scalar`,T:9},{no:3,name:`query_id`,kind:`scalar`,T:9},{no:4,name:`search_path`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new ExecuteSQLRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ExecuteSQLRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ExecuteSQLRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ExecuteSQLRequest,a$1,b$2)}},ExecuteSQLResponse=class ExecuteSQLResponse extends Message{constructor(data){super(),this.columns=[],this.rows=[],this.rowCount=0,this.executionTimeMs=0,this.error=``,this.backendPid=0,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.ExecuteSQLResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`columns`,kind:`message`,T:ColumnMetadata,repeated:!0},{no:2,name:`rows`,kind:`message`,T:Row,repeated:!0},{no:3,name:`row_count`,kind:`scalar`,T:5},{no:4,name:`execution_time_ms`,kind:`scalar`,T:5},{no:5,name:`error`,kind:`scalar`,T:9},{no:6,name:`backend_pid`,kind:`scalar`,T:5}]);static fromBinary(bytes,options$1){return new ExecuteSQLResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ExecuteSQLResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ExecuteSQLResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ExecuteSQLResponse,a$1,b$2)}},Row=class Row extends Message{constructor(data){super(),this.values=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.Row`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`values`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new Row().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new Row().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new Row().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(Row,a$1,b$2)}},ColumnMetadata=class ColumnMetadata extends Message{constructor(data){super(),this.name=``,this.type=``,this.tableName=``,this.schemaName=``,this.isPrimaryKey=!1,this.isNullable=!1,this.hasDefault=!1,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.ColumnMetadata`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`type`,kind:`scalar`,T:9},{no:3,name:`table_name`,kind:`scalar`,T:9},{no:4,name:`schema_name`,kind:`scalar`,T:9},{no:5,name:`is_primary_key`,kind:`scalar`,T:8},{no:6,name:`is_nullable`,kind:`scalar`,T:8},{no:7,name:`has_default`,kind:`scalar`,T:8}]);static fromBinary(bytes,options$1){return new ColumnMetadata().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ColumnMetadata().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ColumnMetadata().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ColumnMetadata,a$1,b$2)}},CancelQueryRequest=class CancelQueryRequest extends Message{constructor(data){super(),this.connectionId=``,this.queryId=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.CancelQueryRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`query_id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new CancelQueryRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new CancelQueryRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new CancelQueryRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(CancelQueryRequest,a$1,b$2)}},CancelQueryResponse=class CancelQueryResponse extends Message{constructor(data){super(),this.cancelled=!1,this.error=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.CancelQueryResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`cancelled`,kind:`scalar`,T:8},{no:2,name:`error`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new CancelQueryResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new CancelQueryResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new CancelQueryResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(CancelQueryResponse,a$1,b$2)}},GetSchemasRequest=class GetSchemasRequest extends Message{constructor(data){super(),this.connectionId=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetSchemasRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetSchemasRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetSchemasRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetSchemasRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetSchemasRequest,a$1,b$2)}},GetSchemasResponse=class GetSchemasResponse extends Message{constructor(data){super(),this.schemas=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetSchemasResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`schemas`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new GetSchemasResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetSchemasResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetSchemasResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetSchemasResponse,a$1,b$2)}},GetTablesRequest=class GetTablesRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetTablesRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetTablesRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetTablesRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetTablesRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetTablesRequest,a$1,b$2)}},GetTablesResponse=class GetTablesResponse extends Message{constructor(data){super(),this.tables=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetTablesResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`tables`,kind:`message`,T:TableInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetTablesResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetTablesResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetTablesResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetTablesResponse,a$1,b$2)}},TableInfo=class TableInfo extends Message{constructor(data){super(),this.name=``,this.type=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.TableInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`type`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new TableInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new TableInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new TableInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(TableInfo,a$1,b$2)}},GetColumnsRequest=class GetColumnsRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.table=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetColumnsRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`table`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetColumnsRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetColumnsRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetColumnsRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetColumnsRequest,a$1,b$2)}},GetColumnsResponse=class GetColumnsResponse extends Message{constructor(data){super(),this.columns=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetColumnsResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`columns`,kind:`message`,T:ColumnInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetColumnsResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetColumnsResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetColumnsResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetColumnsResponse,a$1,b$2)}},ColumnInfo=class ColumnInfo extends Message{constructor(data){super(),this.name=``,this.type=``,this.nullable=!1,this.isPrimaryKey=!1,this.defaultValue=``,this.comment=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.ColumnInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`type`,kind:`scalar`,T:9},{no:3,name:`nullable`,kind:`scalar`,T:8},{no:4,name:`is_primary_key`,kind:`scalar`,T:8},{no:5,name:`default_value`,kind:`scalar`,T:9},{no:6,name:`comment`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new ColumnInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ColumnInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ColumnInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ColumnInfo,a$1,b$2)}},GetTableInfoRequest=class GetTableInfoRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.table=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetTableInfoRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`table`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetTableInfoRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetTableInfoRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetTableInfoRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetTableInfoRequest,a$1,b$2)}},GetTableInfoResponse=class GetTableInfoResponse extends Message{constructor(data){super(),proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetTableInfoResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`metadata`,kind:`message`,T:TableMetadata}]);static fromBinary(bytes,options$1){return new GetTableInfoResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetTableInfoResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetTableInfoResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetTableInfoResponse,a$1,b$2)}},TableMetadata=class TableMetadata extends Message{constructor(data){super(),this.owner=``,this.rowCount=protoInt64.zero,this.totalSize=protoInt64.zero,this.tableSize=protoInt64.zero,this.indexSize=protoInt64.zero,this.encoding=``,this.collation=``,this.comment=``,this.kind=``,this.definition=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.TableMetadata`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`owner`,kind:`scalar`,T:9},{no:2,name:`row_count`,kind:`scalar`,T:3},{no:3,name:`total_size`,kind:`scalar`,T:3},{no:4,name:`table_size`,kind:`scalar`,T:3},{no:5,name:`index_size`,kind:`scalar`,T:3},{no:6,name:`encoding`,kind:`scalar`,T:9},{no:7,name:`collation`,kind:`scalar`,T:9},{no:8,name:`comment`,kind:`scalar`,T:9},{no:9,name:`kind`,kind:`scalar`,T:9},{no:10,name:`definition`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new TableMetadata().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new TableMetadata().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new TableMetadata().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(TableMetadata,a$1,b$2)}},IndexInfo=class IndexInfo extends Message{constructor(data){super(),this.name=``,this.isUnique=!1,this.isPrimary=!1,this.method=``,this.columns=[],this.definition=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.IndexInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`is_unique`,kind:`scalar`,T:8},{no:3,name:`is_primary`,kind:`scalar`,T:8},{no:4,name:`method`,kind:`scalar`,T:9},{no:5,name:`columns`,kind:`scalar`,T:9,repeated:!0},{no:6,name:`definition`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new IndexInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new IndexInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new IndexInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(IndexInfo,a$1,b$2)}},GetIndexesRequest=class GetIndexesRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.table=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetIndexesRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`table`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetIndexesRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetIndexesRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetIndexesRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetIndexesRequest,a$1,b$2)}},GetIndexesResponse=class GetIndexesResponse extends Message{constructor(data){super(),this.indexes=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetIndexesResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`indexes`,kind:`message`,T:IndexInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetIndexesResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetIndexesResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetIndexesResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetIndexesResponse,a$1,b$2)}},ConstraintInfo=class ConstraintInfo extends Message{constructor(data){super(),this.name=``,this.type=``,this.columns=[],this.definition=``,this.refTable=``,this.refColumns=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.ConstraintInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`type`,kind:`scalar`,T:9},{no:3,name:`columns`,kind:`scalar`,T:9,repeated:!0},{no:4,name:`definition`,kind:`scalar`,T:9},{no:5,name:`ref_table`,kind:`scalar`,T:9},{no:6,name:`ref_columns`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new ConstraintInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ConstraintInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ConstraintInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ConstraintInfo,a$1,b$2)}},GetConstraintsRequest=class GetConstraintsRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.table=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetConstraintsRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`table`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetConstraintsRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetConstraintsRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetConstraintsRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetConstraintsRequest,a$1,b$2)}},GetConstraintsResponse=class GetConstraintsResponse extends Message{constructor(data){super(),this.constraints=[],this.referencedBy=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetConstraintsResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`constraints`,kind:`message`,T:ConstraintInfo,repeated:!0},{no:2,name:`referenced_by`,kind:`message`,T:ConstraintInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetConstraintsResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetConstraintsResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetConstraintsResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetConstraintsResponse,a$1,b$2)}},TriggerInfo=class TriggerInfo extends Message{constructor(data){super(),this.name=``,this.timing=``,this.event=``,this.level=``,this.function=``,this.enabled=!1,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.TriggerInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`timing`,kind:`scalar`,T:9},{no:3,name:`event`,kind:`scalar`,T:9},{no:4,name:`level`,kind:`scalar`,T:9},{no:5,name:`function`,kind:`scalar`,T:9},{no:6,name:`enabled`,kind:`scalar`,T:8}]);static fromBinary(bytes,options$1){return new TriggerInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new TriggerInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new TriggerInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(TriggerInfo,a$1,b$2)}},GetTriggersRequest=class GetTriggersRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.table=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetTriggersRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`table`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetTriggersRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetTriggersRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetTriggersRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetTriggersRequest,a$1,b$2)}},GetTriggersResponse=class GetTriggersResponse extends Message{constructor(data){super(),this.triggers=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetTriggersResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`triggers`,kind:`message`,T:TriggerInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetTriggersResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetTriggersResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetTriggersResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetTriggersResponse,a$1,b$2)}},PolicyInfo=class PolicyInfo extends Message{constructor(data){super(),this.name=``,this.command=``,this.permissive=``,this.roles=[],this.usingExpr=``,this.checkExpr=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.PolicyInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`command`,kind:`scalar`,T:9},{no:3,name:`permissive`,kind:`scalar`,T:9},{no:4,name:`roles`,kind:`scalar`,T:9,repeated:!0},{no:5,name:`using_expr`,kind:`scalar`,T:9},{no:6,name:`check_expr`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new PolicyInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new PolicyInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new PolicyInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(PolicyInfo,a$1,b$2)}},GetPoliciesRequest=class GetPoliciesRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.table=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetPoliciesRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`table`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetPoliciesRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetPoliciesRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetPoliciesRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetPoliciesRequest,a$1,b$2)}},GetPoliciesResponse=class GetPoliciesResponse extends Message{constructor(data){super(),this.policies=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetPoliciesResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`policies`,kind:`message`,T:PolicyInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetPoliciesResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetPoliciesResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetPoliciesResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetPoliciesResponse,a$1,b$2)}},GrantInfo=class GrantInfo extends Message{constructor(data){super(),this.grantee=``,this.privileges=[],this.grantor=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GrantInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`grantee`,kind:`scalar`,T:9},{no:2,name:`privileges`,kind:`scalar`,T:9,repeated:!0},{no:3,name:`grantor`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GrantInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GrantInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GrantInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GrantInfo,a$1,b$2)}},GetGrantsRequest=class GetGrantsRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.table=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetGrantsRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`table`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetGrantsRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetGrantsRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetGrantsRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetGrantsRequest,a$1,b$2)}},GetGrantsResponse=class GetGrantsResponse extends Message{constructor(data){super(),this.grants=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetGrantsResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`grants`,kind:`message`,T:GrantInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetGrantsResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetGrantsResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetGrantsResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetGrantsResponse,a$1,b$2)}},MaterializedViewInfo=class MaterializedViewInfo extends Message{constructor(data){super(),this.name=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.MaterializedViewInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new MaterializedViewInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new MaterializedViewInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new MaterializedViewInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(MaterializedViewInfo,a$1,b$2)}},GetMaterializedViewsRequest=class GetMaterializedViewsRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetMaterializedViewsRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetMaterializedViewsRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetMaterializedViewsRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetMaterializedViewsRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetMaterializedViewsRequest,a$1,b$2)}},GetMaterializedViewsResponse=class GetMaterializedViewsResponse extends Message{constructor(data){super(),this.materializedViews=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetMaterializedViewsResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`materialized_views`,kind:`message`,T:MaterializedViewInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetMaterializedViewsResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetMaterializedViewsResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetMaterializedViewsResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetMaterializedViewsResponse,a$1,b$2)}},FunctionInfo=class FunctionInfo extends Message{constructor(data){super(),this.name=``,this.returnType=``,this.arguments=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.FunctionInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`return_type`,kind:`scalar`,T:9},{no:3,name:`arguments`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new FunctionInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new FunctionInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new FunctionInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(FunctionInfo,a$1,b$2)}},GetFunctionsRequest=class GetFunctionsRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetFunctionsRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetFunctionsRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetFunctionsRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetFunctionsRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetFunctionsRequest,a$1,b$2)}},GetFunctionsResponse=class GetFunctionsResponse extends Message{constructor(data){super(),this.functions=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetFunctionsResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`functions`,kind:`message`,T:FunctionInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetFunctionsResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetFunctionsResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetFunctionsResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetFunctionsResponse,a$1,b$2)}},ProcedureInfo=class ProcedureInfo extends Message{constructor(data){super(),this.name=``,this.arguments=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.ProcedureInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`arguments`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new ProcedureInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ProcedureInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ProcedureInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ProcedureInfo,a$1,b$2)}},GetProceduresRequest=class GetProceduresRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetProceduresRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetProceduresRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetProceduresRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetProceduresRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetProceduresRequest,a$1,b$2)}},GetProceduresResponse=class GetProceduresResponse extends Message{constructor(data){super(),this.procedures=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetProceduresResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`procedures`,kind:`message`,T:ProcedureInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetProceduresResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetProceduresResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetProceduresResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetProceduresResponse,a$1,b$2)}},GetFunctionInfoRequest=class GetFunctionInfoRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.name=``,this.arguments=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetFunctionInfoRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`name`,kind:`scalar`,T:9},{no:4,name:`arguments`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetFunctionInfoRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetFunctionInfoRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetFunctionInfoRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetFunctionInfoRequest,a$1,b$2)}},GetFunctionInfoResponse=class GetFunctionInfoResponse extends Message{constructor(data){super(),proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetFunctionInfoResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`metadata`,kind:`message`,T:FunctionMetadata}]);static fromBinary(bytes,options$1){return new GetFunctionInfoResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetFunctionInfoResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetFunctionInfoResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetFunctionInfoResponse,a$1,b$2)}},FunctionMetadata=class FunctionMetadata extends Message{constructor(data){super(),this.name=``,this.kind=``,this.owner=``,this.language=``,this.returnType=``,this.arguments=``,this.definition=``,this.volatility=``,this.comment=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.FunctionMetadata`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`kind`,kind:`scalar`,T:9},{no:3,name:`owner`,kind:`scalar`,T:9},{no:4,name:`language`,kind:`scalar`,T:9},{no:5,name:`return_type`,kind:`scalar`,T:9},{no:6,name:`arguments`,kind:`scalar`,T:9},{no:7,name:`definition`,kind:`scalar`,T:9},{no:8,name:`volatility`,kind:`scalar`,T:9},{no:9,name:`comment`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new FunctionMetadata().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new FunctionMetadata().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new FunctionMetadata().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(FunctionMetadata,a$1,b$2)}},GetFunctionDependenciesRequest=class GetFunctionDependenciesRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.name=``,this.arguments=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetFunctionDependenciesRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`name`,kind:`scalar`,T:9},{no:4,name:`arguments`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetFunctionDependenciesRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetFunctionDependenciesRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetFunctionDependenciesRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetFunctionDependenciesRequest,a$1,b$2)}},GetFunctionDependenciesResponse=class GetFunctionDependenciesResponse extends Message{constructor(data){super(),this.dependencies=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetFunctionDependenciesResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`dependencies`,kind:`message`,T:DependencyInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetFunctionDependenciesResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetFunctionDependenciesResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetFunctionDependenciesResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetFunctionDependenciesResponse,a$1,b$2)}},DependencyInfo=class DependencyInfo extends Message{constructor(data){super(),this.schema=``,this.name=``,this.type=``,this.arguments=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.DependencyInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`schema`,kind:`scalar`,T:9},{no:2,name:`name`,kind:`scalar`,T:9},{no:3,name:`type`,kind:`scalar`,T:9},{no:4,name:`arguments`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new DependencyInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new DependencyInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new DependencyInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(DependencyInfo,a$1,b$2)}},ActiveSession=class ActiveSession extends Message{constructor(data){super(),this.pid=0,this.usename=``,this.datname=``,this.applicationName=``,this.clientAddr=``,this.state=``,this.query=``,this.queryStart=``,this.stateChange=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.ActiveSession`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`pid`,kind:`scalar`,T:5},{no:2,name:`usename`,kind:`scalar`,T:9},{no:3,name:`datname`,kind:`scalar`,T:9},{no:4,name:`application_name`,kind:`scalar`,T:9},{no:5,name:`client_addr`,kind:`scalar`,T:9},{no:6,name:`state`,kind:`scalar`,T:9},{no:7,name:`query`,kind:`scalar`,T:9},{no:8,name:`query_start`,kind:`scalar`,T:9},{no:9,name:`state_change`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new ActiveSession().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ActiveSession().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ActiveSession().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ActiveSession,a$1,b$2)}},GetActiveSessionsRequest=class GetActiveSessionsRequest extends Message{constructor(data){super(),this.connectionId=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetActiveSessionsRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetActiveSessionsRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetActiveSessionsRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetActiveSessionsRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetActiveSessionsRequest,a$1,b$2)}},GetActiveSessionsResponse=class GetActiveSessionsResponse extends Message{constructor(data){super(),this.sessions=[],this.error=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetActiveSessionsResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`sessions`,kind:`message`,T:ActiveSession,repeated:!0},{no:2,name:`error`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetActiveSessionsResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetActiveSessionsResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetActiveSessionsResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetActiveSessionsResponse,a$1,b$2)}},TerminateSessionRequest=class TerminateSessionRequest extends Message{constructor(data){super(),this.connectionId=``,this.pid=0,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.TerminateSessionRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`pid`,kind:`scalar`,T:5}]);static fromBinary(bytes,options$1){return new TerminateSessionRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new TerminateSessionRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new TerminateSessionRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(TerminateSessionRequest,a$1,b$2)}},TerminateSessionResponse=class TerminateSessionResponse extends Message{constructor(data){super(),this.success=!1,this.error=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.TerminateSessionResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`success`,kind:`scalar`,T:8},{no:2,name:`error`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new TerminateSessionResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new TerminateSessionResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new TerminateSessionResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(TerminateSessionResponse,a$1,b$2)}},AuditExportRequest=class AuditExportRequest extends Message{constructor(data){super(),this.connectionId=``,this.sql=``,this.rowCount=0,this.format=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.AuditExportRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`sql`,kind:`scalar`,T:9},{no:3,name:`row_count`,kind:`scalar`,T:5},{no:4,name:`format`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new AuditExportRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new AuditExportRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new AuditExportRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(AuditExportRequest,a$1,b$2)}},AuditExportResponse=class AuditExportResponse extends Message{constructor(data){super(),proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.AuditExportResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[]);static fromBinary(bytes,options$1){return new AuditExportResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new AuditExportResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new AuditExportResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(AuditExportResponse,a$1,b$2)}};const QueryService={typeName:`query.v1.QueryService`,methods:{executeSQL:{name:`ExecuteSQL`,I:ExecuteSQLRequest,O:ExecuteSQLResponse,kind:MethodKind.ServerStreaming},cancelQuery:{name:`CancelQuery`,I:CancelQueryRequest,O:CancelQueryResponse,kind:MethodKind.Unary},getSchemas:{name:`GetSchemas`,I:GetSchemasRequest,O:GetSchemasResponse,kind:MethodKind.Unary},getTables:{name:`GetTables`,I:GetTablesRequest,O:GetTablesResponse,kind:MethodKind.Unary},getColumns:{name:`GetColumns`,I:GetColumnsRequest,O:GetColumnsResponse,kind:MethodKind.Unary},getTableInfo:{name:`GetTableInfo`,I:GetTableInfoRequest,O:GetTableInfoResponse,kind:MethodKind.Unary},getIndexes:{name:`GetIndexes`,I:GetIndexesRequest,O:GetIndexesResponse,kind:MethodKind.Unary},getConstraints:{name:`GetConstraints`,I:GetConstraintsRequest,O:GetConstraintsResponse,kind:MethodKind.Unary},getTriggers:{name:`GetTriggers`,I:GetTriggersRequest,O:GetTriggersResponse,kind:MethodKind.Unary},getPolicies:{name:`GetPolicies`,I:GetPoliciesRequest,O:GetPoliciesResponse,kind:MethodKind.Unary},getGrants:{name:`GetGrants`,I:GetGrantsRequest,O:GetGrantsResponse,kind:MethodKind.Unary},getMaterializedViews:{name:`GetMaterializedViews`,I:GetMaterializedViewsRequest,O:GetMaterializedViewsResponse,kind:MethodKind.Unary},getFunctions:{name:`GetFunctions`,I:GetFunctionsRequest,O:GetFunctionsResponse,kind:MethodKind.Unary},getProcedures:{name:`GetProcedures`,I:GetProceduresRequest,O:GetProceduresResponse,kind:MethodKind.Unary},getFunctionInfo:{name:`GetFunctionInfo`,I:GetFunctionInfoRequest,O:GetFunctionInfoResponse,kind:MethodKind.Unary},getFunctionDependencies:{name:`GetFunctionDependencies`,I:GetFunctionDependenciesRequest,O:GetFunctionDependenciesResponse,kind:MethodKind.Unary},getActiveSessions:{name:`GetActiveSessions`,I:GetActiveSessionsRequest,O:GetActiveSessionsResponse,kind:MethodKind.Unary},terminateSession:{name:`TerminateSession`,I:TerminateSessionRequest,O:TerminateSessionResponse,kind:MethodKind.Unary},auditExport:{name:`AuditExport`,I:AuditExportRequest,O:AuditExportResponse,kind:MethodKind.Unary}}};var AIProvider=class AIProvider extends Message{constructor(data){super(),this.id=``,this.name=``,this.vendor=``,this.model=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.AIProvider`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`id`,kind:`scalar`,T:9},{no:2,name:`name`,kind:`scalar`,T:9},{no:3,name:`vendor`,kind:`scalar`,T:9},{no:4,name:`model`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new AIProvider().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new AIProvider().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new AIProvider().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(AIProvider,a$1,b$2)}},ListAIProvidersRequest=class ListAIProvidersRequest extends Message{constructor(data){super(),proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.ListAIProvidersRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[]);static fromBinary(bytes,options$1){return new ListAIProvidersRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ListAIProvidersRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ListAIProvidersRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ListAIProvidersRequest,a$1,b$2)}},ListAIProvidersResponse=class ListAIProvidersResponse extends Message{constructor(data){super(),this.providers=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.ListAIProvidersResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`providers`,kind:`message`,T:AIProvider,repeated:!0}]);static fromBinary(bytes,options$1){return new ListAIProvidersResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ListAIProvidersResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ListAIProvidersResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ListAIProvidersResponse,a$1,b$2)}},GenerateSQLRequest=class GenerateSQLRequest extends Message{constructor(data){super(),this.connectionId=``,this.providerId=``,this.prompt=``,this.schemas=[],this.sessionId=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.GenerateSQLRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`provider_id`,kind:`scalar`,T:9},{no:3,name:`prompt`,kind:`scalar`,T:9},{no:4,name:`schemas`,kind:`scalar`,T:9,repeated:!0},{no:5,name:`session_id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GenerateSQLRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GenerateSQLRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GenerateSQLRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GenerateSQLRequest,a$1,b$2)}},GenerateSQLResponse=class GenerateSQLResponse extends Message{constructor(data){super(),this.sql=``,this.error=``,this.sessionId=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.GenerateSQLResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`sql`,kind:`scalar`,T:9},{no:2,name:`error`,kind:`scalar`,T:9},{no:3,name:`session_id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GenerateSQLResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GenerateSQLResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GenerateSQLResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GenerateSQLResponse,a$1,b$2)}},ExplainSQLRequest=class ExplainSQLRequest extends Message{constructor(data){super(),this.connectionId=``,this.providerId=``,this.sql=``,this.schemas=[],this.sessionId=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.ExplainSQLRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`provider_id`,kind:`scalar`,T:9},{no:3,name:`sql`,kind:`scalar`,T:9},{no:4,name:`schemas`,kind:`scalar`,T:9,repeated:!0},{no:5,name:`session_id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new ExplainSQLRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ExplainSQLRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ExplainSQLRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ExplainSQLRequest,a$1,b$2)}},ExplainSQLResponse=class ExplainSQLResponse extends Message{constructor(data){super(),this.explanation=``,this.error=``,this.sessionId=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.ExplainSQLResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`explanation`,kind:`scalar`,T:9},{no:2,name:`error`,kind:`scalar`,T:9},{no:3,name:`session_id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new ExplainSQLResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ExplainSQLResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ExplainSQLResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ExplainSQLResponse,a$1,b$2)}},FixSQLRequest=class FixSQLRequest extends Message{constructor(data){super(),this.connectionId=``,this.providerId=``,this.sql=``,this.errorMessage=``,this.schemas=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.FixSQLRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`provider_id`,kind:`scalar`,T:9},{no:3,name:`sql`,kind:`scalar`,T:9},{no:4,name:`error_message`,kind:`scalar`,T:9},{no:5,name:`schemas`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new FixSQLRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new FixSQLRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new FixSQLRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(FixSQLRequest,a$1,b$2)}},FixSQLResponse=class FixSQLResponse extends Message{constructor(data){super(),this.sql=``,this.error=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.FixSQLResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`sql`,kind:`scalar`,T:9},{no:2,name:`error`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new FixSQLResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new FixSQLResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new FixSQLResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(FixSQLResponse,a$1,b$2)}},RewriteSQLRequest=class RewriteSQLRequest extends Message{constructor(data){super(),this.connectionId=``,this.providerId=``,this.sql=``,this.schemas=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.RewriteSQLRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`provider_id`,kind:`scalar`,T:9},{no:3,name:`sql`,kind:`scalar`,T:9},{no:4,name:`schemas`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new RewriteSQLRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new RewriteSQLRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new RewriteSQLRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(RewriteSQLRequest,a$1,b$2)}},RewriteSQLResponse=class RewriteSQLResponse extends Message{constructor(data){super(),this.sql=``,this.error=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.RewriteSQLResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`sql`,kind:`scalar`,T:9},{no:2,name:`error`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new RewriteSQLResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new RewriteSQLResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new RewriteSQLResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(RewriteSQLResponse,a$1,b$2)}},RefreshSchemaCacheRequest=class RefreshSchemaCacheRequest extends Message{constructor(data){super(),this.connectionId=``,this.schemas=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.RefreshSchemaCacheRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schemas`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new RefreshSchemaCacheRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new RefreshSchemaCacheRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new RefreshSchemaCacheRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(RefreshSchemaCacheRequest,a$1,b$2)}},RefreshSchemaCacheResponse=class RefreshSchemaCacheResponse extends Message{constructor(data){super(),this.success=!1,this.error=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.RefreshSchemaCacheResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`success`,kind:`scalar`,T:8},{no:2,name:`error`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new RefreshSchemaCacheResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new RefreshSchemaCacheResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new RefreshSchemaCacheResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(RefreshSchemaCacheResponse,a$1,b$2)}},AssessChangeRiskRequest=class AssessChangeRiskRequest extends Message{constructor(data){super(),this.connectionId=``,this.providerId=``,this.sqlStatements=[],this.schemas=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.AssessChangeRiskRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`provider_id`,kind:`scalar`,T:9},{no:3,name:`sql_statements`,kind:`scalar`,T:9,repeated:!0},{no:4,name:`schemas`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new AssessChangeRiskRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new AssessChangeRiskRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new AssessChangeRiskRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(AssessChangeRiskRequest,a$1,b$2)}},RiskFinding=class RiskFinding extends Message{constructor(data){super(),this.severity=``,this.category=``,this.description=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.RiskFinding`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`severity`,kind:`scalar`,T:9},{no:2,name:`category`,kind:`scalar`,T:9},{no:3,name:`description`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new RiskFinding().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new RiskFinding().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new RiskFinding().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(RiskFinding,a$1,b$2)}},AssessChangeRiskResponse=class AssessChangeRiskResponse extends Message{constructor(data){super(),this.overallRisk=``,this.findings=[],this.error=``,this.dependencyGraph=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.AssessChangeRiskResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`overall_risk`,kind:`scalar`,T:9},{no:2,name:`findings`,kind:`message`,T:RiskFinding,repeated:!0},{no:3,name:`error`,kind:`scalar`,T:9},{no:4,name:`dependency_graph`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new AssessChangeRiskResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new AssessChangeRiskResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new AssessChangeRiskResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(AssessChangeRiskResponse,a$1,b$2)}};const AIService={typeName:`ai.v1.AIService`,methods:{listAIProviders:{name:`ListAIProviders`,I:ListAIProvidersRequest,O:ListAIProvidersResponse,kind:MethodKind.Unary},generateSQL:{name:`GenerateSQL`,I:GenerateSQLRequest,O:GenerateSQLResponse,kind:MethodKind.Unary},explainSQL:{name:`ExplainSQL`,I:ExplainSQLRequest,O:ExplainSQLResponse,kind:MethodKind.Unary},fixSQL:{name:`FixSQL`,I:FixSQLRequest,O:FixSQLResponse,kind:MethodKind.Unary},rewriteSQL:{name:`RewriteSQL`,I:RewriteSQLRequest,O:RewriteSQLResponse,kind:MethodKind.Unary},refreshSchemaCache:{name:`RefreshSchemaCache`,I:RefreshSchemaCacheRequest,O:RefreshSchemaCacheResponse,kind:MethodKind.Unary},assessChangeRisk:{name:`AssessChangeRisk`,I:AssessChangeRiskRequest,O:AssessChangeRiskResponse,kind:MethodKind.Unary}}};var transport=createConnectTransport({baseUrl:``,credentials:`include`});const connectionClient=createPromiseClient(ConnectionService,transport),queryClient$1=createPromiseClient(QueryService,transport),aiClient=createPromiseClient(AIService,transport),queryKeys={all:[`query`],schemas:connectionId=>[...queryKeys.all,`schemas`,connectionId],tables:(connectionId,schema)=>[...queryKeys.all,`tables`,connectionId,schema],columns:(connectionId,schema,table$1)=>[...queryKeys.all,`columns`,connectionId,schema,table$1],tableInfo:(connectionId,schema,table$1)=>[...queryKeys.all,`tableInfo`,connectionId,schema,table$1],indexes:(connectionId,schema,table$1)=>[...queryKeys.all,`indexes`,connectionId,schema,table$1],constraints:(connectionId,schema,table$1)=>[...queryKeys.all,`constraints`,connectionId,schema,table$1],triggers:(connectionId,schema,table$1)=>[...queryKeys.all,`triggers`,connectionId,schema,table$1],policies:(connectionId,schema,table$1)=>[...queryKeys.all,`policies`,connectionId,schema,table$1],grants:(connectionId,schema,table$1)=>[...queryKeys.all,`grants`,connectionId,schema,table$1],materializedViews:(connectionId,schema)=>[...queryKeys.all,`materializedViews`,connectionId,schema],functions:(connectionId,schema)=>[...queryKeys.all,`functions`,connectionId,schema],procedures:(connectionId,schema)=>[...queryKeys.all,`procedures`,connectionId,schema],functionInfo:(connectionId,schema,name$2,args)=>[...queryKeys.all,`functionInfo`,connectionId,schema,name$2,args],functionDependencies:(connectionId,schema,name$2,args)=>[...queryKeys.all,`functionDependencies`,connectionId,schema,name$2,args],processes:connectionId=>[...queryKeys.all,`processes`,connectionId]},connectionKeys={all:[`connections`],list:()=>[...connectionKeys.all,`list`],detail:id=>[...connectionKeys.all,`detail`,id]};function useSchemas(connectionId){return useQuery({queryKey:queryKeys.schemas(connectionId),queryFn:async()=>(await queryClient$1.getSchemas({connectionId})).schemas,enabled:!!connectionId})}function useTables(connectionId,schema){return useQuery({queryKey:queryKeys.tables(connectionId,schema),queryFn:async()=>(await queryClient$1.getTables({connectionId,schema})).tables,enabled:!!connectionId&&!!schema})}function useColumns(connectionId,schema,table$1){return useQuery({queryKey:queryKeys.columns(connectionId,schema,table$1),queryFn:async()=>(await queryClient$1.getColumns({connectionId,schema,table:table$1})).columns,enabled:!!connectionId&&!!schema&&!!table$1})}function useTableInfo(connectionId,schema,table$1){return useQuery({queryKey:queryKeys.tableInfo(connectionId,schema,table$1),queryFn:async()=>(await queryClient$1.getTableInfo({connectionId,schema,table:table$1})).metadata,enabled:!!connectionId&&!!schema&&!!table$1})}function useIndexes(connectionId,schema,table$1,enabled=!0){return useQuery({queryKey:queryKeys.indexes(connectionId,schema,table$1),queryFn:async()=>(await queryClient$1.getIndexes({connectionId,schema,table:table$1})).indexes,enabled:enabled&&!!connectionId&&!!schema&&!!table$1})}function useConstraints(connectionId,schema,table$1,enabled=!0){return useQuery({queryKey:queryKeys.constraints(connectionId,schema,table$1),queryFn:async()=>{let response=await queryClient$1.getConstraints({connectionId,schema,table:table$1});return{constraints:response.constraints,referencedBy:response.referencedBy}},enabled:enabled&&!!connectionId&&!!schema&&!!table$1})}function useTriggers(connectionId,schema,table$1,enabled=!0){return useQuery({queryKey:queryKeys.triggers(connectionId,schema,table$1),queryFn:async()=>(await queryClient$1.getTriggers({connectionId,schema,table:table$1})).triggers,enabled:enabled&&!!connectionId&&!!schema&&!!table$1})}function usePolicies(connectionId,schema,table$1,enabled=!0){return useQuery({queryKey:queryKeys.policies(connectionId,schema,table$1),queryFn:async()=>(await queryClient$1.getPolicies({connectionId,schema,table:table$1})).policies,enabled:enabled&&!!connectionId&&!!schema&&!!table$1})}function useGrants(connectionId,schema,table$1,enabled=!0){return useQuery({queryKey:queryKeys.grants(connectionId,schema,table$1),queryFn:async()=>(await queryClient$1.getGrants({connectionId,schema,table:table$1})).grants,enabled:enabled&&!!connectionId&&!!schema&&!!table$1})}function useMaterializedViews(connectionId,schema){return useQuery({queryKey:queryKeys.materializedViews(connectionId,schema),queryFn:async()=>(await queryClient$1.getMaterializedViews({connectionId,schema})).materializedViews,enabled:!!connectionId&&!!schema})}function useFunctions(connectionId,schema){return useQuery({queryKey:queryKeys.functions(connectionId,schema),queryFn:async()=>(await queryClient$1.getFunctions({connectionId,schema})).functions,enabled:!!connectionId&&!!schema})}function useProcedures(connectionId,schema){return useQuery({queryKey:queryKeys.procedures(connectionId,schema),queryFn:async()=>(await queryClient$1.getProcedures({connectionId,schema})).procedures,enabled:!!connectionId&&!!schema})}function useFunctionInfo(connectionId,schema,name$2,args){return useQuery({queryKey:queryKeys.functionInfo(connectionId,schema,name$2,args),queryFn:async()=>(await queryClient$1.getFunctionInfo({connectionId,schema,name:name$2,arguments:args})).metadata,enabled:!!connectionId&&!!schema&&!!name$2})}function useFunctionDependencies(connectionId,schema,name$2,args){return useQuery({queryKey:queryKeys.functionDependencies(connectionId,schema,name$2,args),queryFn:async()=>(await queryClient$1.getFunctionDependencies({connectionId,schema,name:name$2,arguments:args})).dependencies,enabled:!!connectionId&&!!schema&&!!name$2})}function useExecuteSQL(){return useMutation({mutationFn:async({connectionId,sql,queryId,searchPath,onPid})=>{let lastResponse=null;for await(let response of queryClient$1.executeSQL({connectionId,sql,queryId,searchPath})){response.backendPid&&onPid&&response.columns.length===0&&!response.error&&onPid(response.backendPid);let mappedRows=response.rows.map(row=>{let obj={};return response.columns.forEach((col,i$3)=>{obj[col.name]=row.values[i$3]}),obj});lastResponse={columns:response.columns.map(col=>({name:col.name,type:col.type,tableName:col.tableName,schemaName:col.schemaName,isPrimaryKey:col.isPrimaryKey,isNullable:col.isNullable,hasDefault:col.hasDefault})),rows:mappedRows,rowCount:response.rowCount,executionTime:response.executionTimeMs,error:response.error,backendPid:response.backendPid}}if(!lastResponse)throw Error(`No response received from server`);return lastResponse}})}function useCancelQuery(){return useMutation({mutationFn:async({connectionId,queryId})=>{let response=await queryClient$1.cancelQuery({connectionId,queryId});return{cancelled:response.cancelled,error:response.error}}})}function useConnections(){return useQuery({queryKey:connectionKeys.list(),queryFn:async()=>(await connectionClient.listConnections({})).connections})}function useActiveProcesses(connectionId,enabled=!0){return useQuery({queryKey:queryKeys.processes(connectionId),queryFn:async()=>{let response=await queryClient$1.getActiveSessions({connectionId});if(response.error)throw Error(response.error);return response.sessions},enabled:enabled&&!!connectionId,refetchInterval:5e3})}function useTerminateProcess(){let qc=useQueryClient();return useMutation({mutationFn:async({connectionId,pid})=>{let response=await queryClient$1.terminateSession({connectionId,pid});if(response.error)throw Error(response.error);return response.success},onSuccess:(_$2,{connectionId})=>{qc.invalidateQueries({queryKey:queryKeys.processes(connectionId)})}})}function useRefreshSchemaCache(){return useMutation({mutationFn:async({connectionId,schemas})=>{let response=await aiClient.refreshSchemaCache({connectionId,schemas:schemas||[]});if(response.error)throw Error(response.error);return response.success}})}function useConnectionHealth(connectionId,enabled=!0){return useQuery({queryKey:[...connectionKeys.all,`health`,connectionId],queryFn:async()=>{let response=await connectionClient.testConnection({id:connectionId});return{success:response.success,error:response.error,latencyMs:response.latencyMs}},enabled:enabled&&!!connectionId,staleTime:6e4,retry:1})}var PERMISSION_VARIANTS={admin:`default`,ddl:`warning`,write:`info`,read:`success`,explain:`muted`,execute:`secondary`,export:`outline`},PERMISSION_ORDER=[`explain`,`read`,`execute`,`export`,`write`,`ddl`,`admin`];function sortPermissions(permissions){return[...permissions].sort((a$1,b$2)=>PERMISSION_ORDER.indexOf(a$1)-PERMISSION_ORDER.indexOf(b$2))}function ConnectionSwitcher({selectedConnectionId}){let navigate=useNavigate(),{data:connections,isLoading}=useConnections(),{authEnabled}=useSession(),{data:healthCheck}=useConnectionHealth(selectedConnectionId,!!selectedConnectionId),isConnectionDown=healthCheck&&!healthCheck.success,currentConnection=connections?.find(c=>c.id===selectedConnectionId);return isLoading?(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,import_jsx_runtime.jsx)(Database,{size:14}),(0,import_jsx_runtime.jsx)(`span`,{children:`Loading...`})]}):!connections||connections.length===0?(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,import_jsx_runtime.jsx)(Database,{size:14}),(0,import_jsx_runtime.jsx)(`span`,{children:`No connections`}),(0,import_jsx_runtime.jsxs)(`span`,{className:`text-xs`,children:[`(Check`,` `,(0,import_jsx_runtime.jsx)(`a`,{href:`https://docs.pgconsole.com/configuration/iam-permissions`,target:`_blank`,rel:`noopener noreferrer`,className:`text-blue-500 hover:underline`,children:`IAM permissions`}),`)`]})]}):(0,import_jsx_runtime.jsxs)(Menu,{children:[(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsxs)(TooltipTrigger,{render:(0,import_jsx_runtime.jsx)(MenuTrigger,{render:(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`sm`,className:`!h-auto !py-1 !px-2 gap-1`})}),children:[currentConnection?(0,import_jsx_runtime.jsxs)(`div`,{className:`flex flex-col items-start text-left gap-0.5`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,import_jsx_runtime.jsx)(`span`,{className:`text-sm font-medium whitespace-nowrap`,children:currentConnection.name}),isConnectionDown&&(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{render:(0,import_jsx_runtime.jsx)(CircleAlert,{className:`text-red-500`,size:14})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{children:(0,import_jsx_runtime.jsxs)(`div`,{className:`text-sm`,children:[`Connection unavailable`,healthCheck?.error&&(0,import_jsx_runtime.jsx)(`div`,{className:`text-xs text-gray-400 mt-1`,children:healthCheck.error})]})})]}),currentConnection.labels&&currentConnection.labels.length>0&&(0,import_jsx_runtime.jsx)(`div`,{className:`flex gap-1 shrink-0`,children:currentConnection.labels.map(label=>(0,import_jsx_runtime.jsx)(Badge,{size:`sm`,variant:`outline`,style:{borderColor:label.color,color:label.color},children:label.name},label.id))}),authEnabled&&currentConnection.permissions.length>0&&(0,import_jsx_runtime.jsx)(`div`,{className:`flex gap-1 shrink-0`,children:sortPermissions(currentConnection.permissions).map(perm=>(0,import_jsx_runtime.jsx)(Badge,{size:`sm`,variant:PERMISSION_VARIANTS[perm]??`muted`,children:perm},perm))})]}),(0,import_jsx_runtime.jsxs)(`span`,{className:`text-xs text-muted-foreground whitespace-nowrap`,children:[currentConnection.host,`:`,currentConnection.port,`/`,currentConnection.database]})]}):`Select connection`,(0,import_jsx_runtime.jsx)(ChevronDown,{size:14,className:`shrink-0`})]}),currentConnection&&(0,import_jsx_runtime.jsx)(TooltipPopup,{side:`bottom`,children:(0,import_jsx_runtime.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,import_jsx_runtime.jsx)(`span`,{className:`font-medium`,children:currentConnection.name}),currentConnection.labels&&currentConnection.labels.length>0&&(0,import_jsx_runtime.jsx)(`div`,{className:`flex gap-1 flex-wrap`,children:currentConnection.labels.map(label=>(0,import_jsx_runtime.jsx)(Badge,{size:`sm`,variant:`outline`,style:{borderColor:label.color,color:label.color},children:label.name},label.id))}),authEnabled&&currentConnection.permissions.length>0&&(0,import_jsx_runtime.jsx)(`div`,{className:`flex gap-1 flex-wrap`,children:sortPermissions(currentConnection.permissions).map(perm=>(0,import_jsx_runtime.jsx)(Badge,{size:`sm`,variant:PERMISSION_VARIANTS[perm]??`muted`,children:perm},perm))})]}),(0,import_jsx_runtime.jsxs)(`span`,{className:`text-muted-foreground`,children:[currentConnection.host,`:`,currentConnection.port,`/`,currentConnection.database]})]})})]}),(0,import_jsx_runtime.jsx)(MenuPopup,{children:connections.map(conn=>(0,import_jsx_runtime.jsx)(MenuItem,{onClick:()=>navigate(`/?connectionId=${conn.id}`),className:selectedConnectionId===conn.id?`bg-gray-100`:``,children:(0,import_jsx_runtime.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,import_jsx_runtime.jsx)(`span`,{className:`text-sm font-medium`,children:conn.name}),conn.labels&&conn.labels.length>0&&(0,import_jsx_runtime.jsx)(`div`,{className:`flex gap-1 flex-wrap`,children:conn.labels.map(label=>(0,import_jsx_runtime.jsx)(Badge,{size:`sm`,variant:`outline`,style:{borderColor:label.color,color:label.color},children:label.name},label.id))}),authEnabled&&conn.permissions.length>0&&(0,import_jsx_runtime.jsx)(`div`,{className:`flex gap-1 flex-wrap`,children:sortPermissions(conn.permissions).map(perm=>(0,import_jsx_runtime.jsx)(Badge,{size:`sm`,variant:PERMISSION_VARIANTS[perm]??`muted`,children:perm},perm))})]}),(0,import_jsx_runtime.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[conn.host,`:`,conn.port,`/`,conn.database]})]})},conn.id))})]})}const SubscriptionModalContext=(0,import_react.createContext)(null);function useSubscriptionModal(){let context=(0,import_react.useContext)(SubscriptionModalContext);if(!context)throw Error(`useSubscriptionModal must be used within SubscriptionModalProvider`);return context}function useOwner(){let{isOwner}=useSession();return isOwner}const AvatarRootContext=import_react.createContext(void 0);function useAvatarRootContext(){let context=import_react.useContext(AvatarRootContext);if(context===void 0)throw Error(formatErrorMessage(13));return context}const avatarStateAttributesMapping={imageLoadingStatus:()=>null},AvatarRoot=import_react.forwardRef(function(componentProps,forwardedRef){let{className,render,...elementProps}=componentProps,[imageLoadingStatus,setImageLoadingStatus]=import_react.useState(`idle`),state$1=import_react.useMemo(()=>({imageLoadingStatus}),[imageLoadingStatus]),contextValue=import_react.useMemo(()=>({imageLoadingStatus,setImageLoadingStatus}),[imageLoadingStatus,setImageLoadingStatus]),element$3=useRenderElement(`span`,componentProps,{state:state$1,ref:forwardedRef,props:elementProps,stateAttributesMapping:avatarStateAttributesMapping});return(0,import_jsx_runtime.jsx)(AvatarRootContext.Provider,{value:contextValue,children:element$3})}),AvatarFallback$1=import_react.forwardRef(function(componentProps,forwardedRef){let{className,render,delay,...elementProps}=componentProps,{imageLoadingStatus}=useAvatarRootContext(),[delayPassed,setDelayPassed]=import_react.useState(delay===void 0),timeout=useTimeout();return import_react.useEffect(()=>(delay!==void 0&&timeout.start(delay,()=>setDelayPassed(!0)),timeout.clear),[timeout,delay]),useRenderElement(`span`,componentProps,{state:import_react.useMemo(()=>({imageLoadingStatus}),[imageLoadingStatus]),ref:forwardedRef,props:elementProps,stateAttributesMapping:avatarStateAttributesMapping,enabled:imageLoadingStatus!==`loaded`&&delayPassed})});function Avatar({className,...props}){return(0,import_jsx_runtime.jsx)(AvatarRoot,{className:cn(`inline-flex size-8 shrink-0 select-none items-center justify-center overflow-hidden rounded-full bg-background align-middle font-medium text-xs`,className),"data-slot":`avatar`,...props})}function AvatarFallback({className,...props}){return(0,import_jsx_runtime.jsx)(AvatarFallback$1,{className:cn(`flex size-full items-center justify-center rounded-full bg-muted`,className),"data-slot":`avatar-fallback`,...props})}function UserAvatar({user,size:size$3=`md`,className}){let[erroredUrl,setErroredUrl]=(0,import_react.useState)(null),avatarUrl=user?.avatar,initial=(user?.name||user?.email||`U`).charAt(0).toUpperCase(),sizeClasses={xs:`size-6 text-xs`,sm:`size-8 text-xs`,md:`size-10 text-sm`,lg:`size-12 text-base`},showImage=avatarUrl&&avatarUrl!==erroredUrl;return(0,import_jsx_runtime.jsx)(Avatar,{className:`${sizeClasses[size$3]} ${className||``}`,children:showImage?(0,import_jsx_runtime.jsx)(`img`,{src:avatarUrl,alt:user?.name||user?.email||`User`,className:`size-full object-cover`,onError:()=>setErroredUrl(avatarUrl)}):(0,import_jsx_runtime.jsx)(AvatarFallback,{className:`bg-gray-200 text-gray-600`,children:initial})})}var logo_light_full_default=`/assets/logo-light-full-3Wf7NsR1.svg`;function Header({selectedConnectionId}){let navigate=useNavigate(),{user,authEnabled}=useSession(),subscriptionModal=useSubscriptionModal(),isOwner=useOwner(),isGuest=user?.email===`guest`,showSignIn=!user&&authEnabled,handleSignOut=async()=>{await signOut(),window.location.href=`/signin`};return(0,import_jsx_runtime.jsxs)(`header`,{className:`h-12 bg-gray-100 border-b border-gray-300 flex items-center px-3 justify-between`,children:[(0,import_jsx_runtime.jsx)(ConnectionSwitcher,{selectedConnectionId}),(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,import_jsx_runtime.jsx)(`button`,{onClick:()=>window.open(`https://docs.pgconsole.com`,`_blank`),className:`flex items-center justify-center hover:opacity-80`,"aria-label":`Documentation`,children:(0,import_jsx_runtime.jsx)(`img`,{src:logo_light_full_default,alt:`pgconsole docs`,className:`h-7.5`})}),user&&!isGuest?(0,import_jsx_runtime.jsxs)(Menu,{children:[(0,import_jsx_runtime.jsx)(MenuTrigger,{render:(0,import_jsx_runtime.jsx)(`button`,{className:`flex items-center hover:opacity-80 transition-opacity`,"aria-label":`User menu`,children:(0,import_jsx_runtime.jsx)(UserAvatar,{user,size:`sm`})})}),(0,import_jsx_runtime.jsxs)(MenuPopup,{align:`end`,side:`bottom`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`px-3 py-2 border-b border-gray-200`,children:[(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm font-medium text-gray-900`,children:user.name}),(0,import_jsx_runtime.jsxs)(`div`,{className:`text-xs text-gray-500`,children:[user.name!==user.email&&(0,import_jsx_runtime.jsx)(`span`,{children:user.email}),isOwner&&(0,import_jsx_runtime.jsx)(`span`,{className:`ml-1 text-blue-600 font-medium`,children:`(Owner)`})]})]}),isOwner&&(0,import_jsx_runtime.jsxs)(MenuItem,{onClick:()=>subscriptionModal.open(),children:[(0,import_jsx_runtime.jsx)(CreditCard,{size:14}),`Subscription`]}),(0,import_jsx_runtime.jsxs)(MenuItem,{onClick:handleSignOut,children:[(0,import_jsx_runtime.jsx)(LogOut,{size:14}),`Sign Out`]}),(0,import_jsx_runtime.jsx)(`div`,{className:`px-3 py-2 border-t border-gray-200`,children:(0,import_jsx_runtime.jsxs)(`div`,{className:`text-xs text-gray-400`,children:[`v`,`0.2.3`,` (`,`af431cf`,`) · `,new Date(`2026-02-08T16:18:29.552Z`).toLocaleDateString()]})})]})]}):showSignIn?(0,import_jsx_runtime.jsx)(`button`,{className:`text-xs text-gray-500 hover:text-gray-700 transition-colors px-2`,onClick:()=>navigate(`/signin`),children:`Sign In`}):null]})]})}function SearchInput({value,onClear,className,...props}){let hasValue=value!=null&&String(value).length>0;return(0,import_jsx_runtime.jsxs)(`div`,{className:`relative`,children:[(0,import_jsx_runtime.jsx)(Search,{className:`pointer-events-none absolute left-2.5 top-1/2 z-10 -translate-y-1/2 size-4 text-muted-foreground`}),(0,import_jsx_runtime.jsx)(Input,{type:`text`,value,className:`[&_[data-slot=input]]:pl-8 ${hasValue?`[&_[data-slot=input]]:pr-8`:``} ${className||``}`,...props}),hasValue&&onClear&&(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`icon-xs`,className:`absolute right-1 top-1/2 z-10 -translate-y-1/2`,onClick:onClear,children:(0,import_jsx_runtime.jsx)(X,{className:`size-3`})})]})}function useOnFirstRender(fn){let ref=import_react.useRef(!0);ref.current&&(ref.current=!1,fn())}const SelectRootContext=import_react.createContext(null),SelectFloatingContext=import_react.createContext(null);function useSelectRootContext(){let context=import_react.useContext(SelectRootContext);if(context===null)throw Error(formatErrorMessage(60));return context}function useSelectFloatingContext(){let context=import_react.useContext(SelectFloatingContext);if(context===null)throw Error(formatErrorMessage(61));return context}const defaultItemEquality=(item,value)=>Object.is(item,value);function compareItemEquality(item,value,comparer){return item==null||value==null?Object.is(item,value):comparer(item,value)}function itemIncludes(collection,value,comparer){return!collection||collection.length===0?!1:collection.some(item=>item===void 0?!1:compareItemEquality(item,value,comparer))}function findItemIndex(collection,value,comparer){return!collection||collection.length===0?-1:collection.findIndex(item=>item===void 0?!1:compareItemEquality(item,value,comparer))}function removeItem(collection,value,comparer){return collection.filter(item=>!compareItemEquality(item,value,comparer))}function serializeValue(value){if(value==null)return``;if(typeof value==`string`)return value;try{return JSON.stringify(value)}catch{return String(value)}}function isGroupedItems(items){return items!=null&&items.length>0&&typeof items[0]==`object`&&items[0]!=null&&`items`in items[0]}function hasNullItemLabel(items){if(!Array.isArray(items))return items!=null&&!(`null`in items);if(isGroupedItems(items)){for(let group of items)for(let item of group.items)if(item&&item.value==null&&item.label!=null)return!0;return!1}for(let item of items)if(item&&item.value==null&&item.label!=null)return!0;return!1}function stringifyAsLabel(item,itemToStringLabel){if(itemToStringLabel&&item!=null)return itemToStringLabel(item)??``;if(item&&typeof item==`object`){if(`label`in item&&item.label!=null)return String(item.label);if(`value`in item)return String(item.value)}return serializeValue(item)}function stringifyAsValue(item,itemToStringValue){return itemToStringValue&&item!=null?itemToStringValue(item)??``:item&&typeof item==`object`&&`value`in item&&`label`in item?serializeValue(item.value):serializeValue(item)}function resolveSelectedLabel(value,items,itemToStringLabel){function fallback$1(){return stringifyAsLabel(value,itemToStringLabel)}if(itemToStringLabel&&value!=null)return itemToStringLabel(value);if(value&&typeof value==`object`&&`label`in value&&value.label!=null)return value.label;if(items&&!Array.isArray(items))return items[value]??fallback$1();if(Array.isArray(items)){let flatItems=isGroupedItems(items)?items.flatMap(g=>g.items):items;if(typeof value!=`object`||!value){let match=flatItems.find(item=>item.value===value);return match&&match.label!=null?match.label:fallback$1()}if(`value`in value){let match=flatItems.find(item=>item&&item.value===value.value);if(match&&match.label!=null)return match.label}}return fallback$1()}function resolveMultipleLabels(values,items,itemToStringLabel){return values.reduce((acc,value,index$4)=>(index$4>0&&acc.push(`, `),acc.push((0,import_jsx_runtime.jsx)(import_react.Fragment,{children:resolveSelectedLabel(value,items,itemToStringLabel)},index$4)),acc),[])}const selectors$1={id:createSelector(state$1=>state$1.id),modal:createSelector(state$1=>state$1.modal),multiple:createSelector(state$1=>state$1.multiple),items:createSelector(state$1=>state$1.items),itemToStringLabel:createSelector(state$1=>state$1.itemToStringLabel),itemToStringValue:createSelector(state$1=>state$1.itemToStringValue),isItemEqualToValue:createSelector(state$1=>state$1.isItemEqualToValue),value:createSelector(state$1=>state$1.value),hasSelectedValue:createSelector(state$1=>{let{value,multiple,itemToStringValue}=state$1;return value==null?!1:multiple&&Array.isArray(value)?value.length>0:stringifyAsValue(value,itemToStringValue)!==``}),hasNullItemLabel:createSelector((state$1,enabled)=>enabled?hasNullItemLabel(state$1.items):!1),open:createSelector(state$1=>state$1.open),mounted:createSelector(state$1=>state$1.mounted),forceMount:createSelector(state$1=>state$1.forceMount),transitionStatus:createSelector(state$1=>state$1.transitionStatus),openMethod:createSelector(state$1=>state$1.openMethod),activeIndex:createSelector(state$1=>state$1.activeIndex),selectedIndex:createSelector(state$1=>state$1.selectedIndex),isActive:createSelector((state$1,index$4)=>state$1.activeIndex===index$4),isSelected:createSelector((state$1,index$4,candidate)=>{let comparer=state$1.isItemEqualToValue,storeValue=state$1.value;return state$1.multiple?Array.isArray(storeValue)&&storeValue.some(item=>compareItemEquality(item,candidate,comparer)):state$1.selectedIndex===index$4&&state$1.selectedIndex!==null?!0:compareItemEquality(storeValue,candidate,comparer)}),isSelectedByFocus:createSelector((state$1,index$4)=>state$1.selectedIndex===index$4),popupProps:createSelector(state$1=>state$1.popupProps),triggerProps:createSelector(state$1=>state$1.triggerProps),triggerElement:createSelector(state$1=>state$1.triggerElement),positionerElement:createSelector(state$1=>state$1.positionerElement),listElement:createSelector(state$1=>state$1.listElement),scrollUpArrowVisible:createSelector(state$1=>state$1.scrollUpArrowVisible),scrollDownArrowVisible:createSelector(state$1=>state$1.scrollDownArrowVisible),hasScrollArrows:createSelector(state$1=>state$1.hasScrollArrows)};function useValueChanged(value,onChange){let valueRef=import_react.useRef(value),onChangeCallback=useStableCallback(onChange);useIsoLayoutEffect(()=>{valueRef.current!==value&&onChangeCallback(valueRef.current)},[value,onChangeCallback]),useIsoLayoutEffect(()=>{valueRef.current=value},[value])}function SelectRoot(props){let{id,value:valueProp,defaultValue=null,onValueChange,open:openProp,defaultOpen=!1,onOpenChange,name:nameProp,disabled:disabledProp=!1,readOnly:readOnly$1=!1,required=!1,modal=!0,actionsRef,inputRef,onOpenChangeComplete,items,multiple=!1,itemToStringLabel,itemToStringValue,isItemEqualToValue=defaultItemEquality,highlightItemOnHover=!0,children}=props,{clearErrors}=useFormContext(),{setDirty,setTouched,setFocused,shouldValidateOnChange,validityData,setFilled,name:fieldName,disabled:fieldDisabled,validation,validationMode}=useFieldRootContext(),generatedId=useLabelableId({id}),disabled$1=fieldDisabled||disabledProp,name$2=fieldName??nameProp,[value,setValueUnwrapped]=useControlled({controlled:valueProp,default:multiple?defaultValue??EMPTY_ARRAY:defaultValue,name:`Select`,state:`value`}),[open,setOpenUnwrapped]=useControlled({controlled:openProp,default:defaultOpen,name:`Select`,state:`open`}),listRef=import_react.useRef([]),labelsRef=import_react.useRef([]),popupRef=import_react.useRef(null),scrollHandlerRef=import_react.useRef(null),scrollArrowsMountedCountRef=import_react.useRef(0),valueRef=import_react.useRef(null),valuesRef=import_react.useRef([]),typingRef=import_react.useRef(!1),keyboardActiveRef=import_react.useRef(!1),selectedItemTextRef=import_react.useRef(null),selectionRef=import_react.useRef({allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1}),alignItemWithTriggerActiveRef=import_react.useRef(!1),{mounted,setMounted,transitionStatus}=useTransitionStatus(open),{openMethod,triggerProps:interactionTypeProps,reset:resetOpenInteractionType}=useOpenInteractionType(open),store=useRefWithInit(()=>new Store({id:generatedId,modal,multiple,itemToStringLabel,itemToStringValue,isItemEqualToValue,value,open,mounted,transitionStatus,items,forceMount:!1,openMethod:null,activeIndex:null,selectedIndex:null,popupProps:{},triggerProps:{},triggerElement:null,positionerElement:null,listElement:null,scrollUpArrowVisible:!1,scrollDownArrowVisible:!1,hasScrollArrows:!1})).current,activeIndex=useStore(store,selectors$1.activeIndex),selectedIndex=useStore(store,selectors$1.selectedIndex),triggerElement=useStore(store,selectors$1.triggerElement),positionerElement=useStore(store,selectors$1.positionerElement),serializedValue=import_react.useMemo(()=>multiple&&Array.isArray(value)&&value.length===0?``:stringifyAsValue(value,itemToStringValue),[multiple,value,itemToStringValue]),fieldStringValue=import_react.useMemo(()=>multiple&&Array.isArray(value)?value.map(currentValue=>stringifyAsValue(currentValue,itemToStringValue)):stringifyAsValue(value,itemToStringValue),[multiple,value,itemToStringValue]),controlRef=useValueAsRef(store.state.triggerElement);useField({id:generatedId,commit:validation.commit,value,controlRef,name:name$2,getValue:()=>fieldStringValue});let initialValueRef=import_react.useRef(value);useIsoLayoutEffect(()=>{value!==initialValueRef.current&&store.set(`forceMount`,!0)},[store,value]),useIsoLayoutEffect(()=>{setFilled(multiple?Array.isArray(value)&&value.length>0:value!=null)},[multiple,value,setFilled]),useIsoLayoutEffect(function(){if(open)return;let registry=valuesRef.current;if(multiple){let currentValue=Array.isArray(value)?value:[];if(currentValue.length===0){store.set(`selectedIndex`,null);return}let lastValue=currentValue[currentValue.length-1],lastIndex=findItemIndex(registry,lastValue,isItemEqualToValue);store.set(`selectedIndex`,lastIndex===-1?null:lastIndex);return}let index$4=findItemIndex(registry,value,isItemEqualToValue);store.set(`selectedIndex`,index$4===-1?null:index$4)},[multiple,open,value,valuesRef,isItemEqualToValue,store]),useValueChanged(value,()=>{clearErrors(name$2),setDirty(value!==validityData.initialValue),shouldValidateOnChange()?validation.commit(value):validation.commit(value,!0)});let setOpen=useStableCallback((nextOpen,eventDetails)=>{if(onOpenChange?.(nextOpen,eventDetails),!eventDetails.isCanceled&&(setOpenUnwrapped(nextOpen),!nextOpen&&(eventDetails.reason===`focus-out`||eventDetails.reason===`outside-press`)&&(setTouched(!0),setFocused(!1),validationMode===`onBlur`&&validation.commit(value)),!nextOpen&&store.state.activeIndex!==null)){let activeOption=listRef.current[store.state.activeIndex];queueMicrotask(()=>{activeOption?.setAttribute(`tabindex`,`-1`)})}}),handleUnmount=useStableCallback(()=>{setMounted(!1),store.set(`activeIndex`,null),resetOpenInteractionType(),onOpenChangeComplete?.(!1)});useOpenChangeComplete({enabled:!actionsRef,open,ref:popupRef,onComplete(){open||handleUnmount()}}),import_react.useImperativeHandle(actionsRef,()=>({unmount:handleUnmount}),[handleUnmount]);let setValue=useStableCallback((nextValue,eventDetails)=>{onValueChange?.(nextValue,eventDetails),!eventDetails.isCanceled&&setValueUnwrapped(nextValue)}),handleScrollArrowVisibility=useStableCallback(()=>{let scroller=store.state.listElement||popupRef.current;if(!scroller)return;let viewportTop=scroller.scrollTop,viewportBottom=scroller.scrollTop+scroller.clientHeight,shouldShowUp=viewportTop>1,shouldShowDown=viewportBottom<scroller.scrollHeight-1;store.state.scrollUpArrowVisible!==shouldShowUp&&store.set(`scrollUpArrowVisible`,shouldShowUp),store.state.scrollDownArrowVisible!==shouldShowDown&&store.set(`scrollDownArrowVisible`,shouldShowDown)}),floatingContext=useFloatingRootContext({open,onOpenChange:setOpen,elements:{reference:triggerElement,floating:positionerElement}}),{getReferenceProps,getFloatingProps,getItemProps}=useInteractions([useClick(floatingContext,{enabled:!readOnly$1&&!disabled$1,event:`mousedown`}),useDismiss(floatingContext,{bubbles:!1}),useListNavigation(floatingContext,{enabled:!readOnly$1&&!disabled$1,listRef,activeIndex,selectedIndex,disabledIndices:EMPTY_ARRAY,onNavigate(nextActiveIndex){nextActiveIndex===null&&!open||store.set(`activeIndex`,nextActiveIndex)},focusItemOnHover:!1}),useTypeahead(floatingContext,{enabled:!readOnly$1&&!disabled$1&&(open||!multiple),listRef:labelsRef,activeIndex,selectedIndex,onMatch(index$4){open?store.set(`activeIndex`,index$4):setValue(valuesRef.current[index$4],createChangeEventDetails(`none`))},onTypingChange(typing){typingRef.current=typing}})]),mergedTriggerProps=import_react.useMemo(()=>mergeProps(getReferenceProps(),interactionTypeProps,generatedId?{id:generatedId}:EMPTY_OBJECT),[getReferenceProps,interactionTypeProps,generatedId]);useOnFirstRender(()=>{store.update({popupProps:getFloatingProps(),triggerProps:mergedTriggerProps})}),useIsoLayoutEffect(()=>{store.update({id:generatedId,modal,multiple,value,open,mounted,transitionStatus,popupProps:getFloatingProps(),triggerProps:mergedTriggerProps,items,itemToStringLabel,itemToStringValue,isItemEqualToValue,openMethod})},[store,generatedId,modal,multiple,value,open,mounted,transitionStatus,getFloatingProps,mergedTriggerProps,items,itemToStringLabel,itemToStringValue,isItemEqualToValue,openMethod]);let contextValue=import_react.useMemo(()=>({store,name:name$2,required,disabled:disabled$1,readOnly:readOnly$1,multiple,itemToStringLabel,itemToStringValue,highlightItemOnHover,setValue,setOpen,listRef,popupRef,scrollHandlerRef,handleScrollArrowVisibility,scrollArrowsMountedCountRef,getItemProps,events:floatingContext.context.events,valueRef,valuesRef,labelsRef,typingRef,selectionRef,selectedItemTextRef,validation,onOpenChangeComplete,keyboardActiveRef,alignItemWithTriggerActiveRef,initialValueRef}),[store,name$2,required,disabled$1,readOnly$1,multiple,itemToStringLabel,itemToStringValue,highlightItemOnHover,setValue,setOpen,getItemProps,floatingContext.context.events,validation,onOpenChangeComplete,handleScrollArrowVisibility]),ref=useMergedRefs(inputRef,validation.inputRef),hasMultipleSelection=multiple&&Array.isArray(value)&&value.length>0,hiddenInputs=import_react.useMemo(()=>!multiple||!Array.isArray(value)||!name$2?null:value.map(v$1=>{let currentSerializedValue=stringifyAsValue(v$1,itemToStringValue);return(0,import_jsx_runtime.jsx)(`input`,{type:`hidden`,name:name$2,value:currentSerializedValue},currentSerializedValue)}),[multiple,value,name$2,itemToStringValue]);return(0,import_jsx_runtime.jsx)(SelectRootContext.Provider,{value:contextValue,children:(0,import_jsx_runtime.jsxs)(SelectFloatingContext.Provider,{value:floatingContext,children:[children,(0,import_jsx_runtime.jsx)(`input`,{...validation.getInputValidationProps({onFocus(){store.state.triggerElement?.focus({focusVisible:!0})},onChange(event){if(event.nativeEvent.defaultPrevented)return;let nextValue=event.target.value,details=createChangeEventDetails(none$3,event.nativeEvent);function handleChange(){if(multiple)return;let matchingValue=valuesRef.current.find(v$1=>stringifyAsValue(v$1,itemToStringValue).toLowerCase()===nextValue.toLowerCase());matchingValue!=null&&(setDirty(matchingValue!==validityData.initialValue),setValue(matchingValue,details),shouldValidateOnChange()&&validation.commit(matchingValue))}store.set(`forceMount`,!0),queueMicrotask(handleChange)}}),name:multiple?void 0:name$2,value:serializedValue,disabled:disabled$1,required:required&&!hasMultipleSelection,readOnly:readOnly$1,ref,style:name$2?visuallyHiddenInput:visuallyHidden,tabIndex:-1,"aria-hidden":!0}),hiddenInputs]})})}var BOUNDARY_OFFSET=2,SELECTED_DELAY=400,UNSELECTED_DELAY=200,stateAttributesMapping$9={...pressableTriggerOpenStateMapping,...fieldValidityMapping,value:()=>null};const SelectTrigger$1=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,id:idProp,disabled:disabledProp=!1,nativeButton=!0,...elementProps}=componentProps,{setTouched,setFocused,validationMode,state:fieldState,disabled:fieldDisabled}=useFieldRootContext(),{labelId}=useLabelableContext(),{store,setOpen,selectionRef,validation,readOnly:readOnly$1,required,alignItemWithTriggerActiveRef,disabled:selectDisabled,keyboardActiveRef}=useSelectRootContext(),disabled$1=fieldDisabled||selectDisabled||disabledProp,open=useStore(store,selectors$1.open),value=useStore(store,selectors$1.value),triggerProps=useStore(store,selectors$1.triggerProps),positionerElement=useStore(store,selectors$1.positionerElement),listElement=useStore(store,selectors$1.listElement),rootId=useStore(store,selectors$1.id),hasSelectedValue=useStore(store,selectors$1.hasSelectedValue),shouldCheckNullItemLabel=!hasSelectedValue&&open,hasNullItemLabel$1=useStore(store,selectors$1.hasNullItemLabel,shouldCheckNullItemLabel),id=idProp??rootId;useLabelableId({id});let positionerRef=useValueAsRef(positionerElement),triggerRef=import_react.useRef(null),{getButtonProps,buttonRef}=useButton({disabled:disabled$1,native:nativeButton}),mergedRef=useMergedRefs(forwardedRef,triggerRef,buttonRef,useStableCallback(element$3=>{store.set(`triggerElement`,element$3)})),timeoutFocus=useTimeout(),timeoutMouseDown=useTimeout(),selectedDelayTimeout=useTimeout(),unselectedDelayTimeout=useTimeout();import_react.useEffect(()=>{if(open)return hasSelectedValue||hasNullItemLabel$1?unselectedDelayTimeout.start(UNSELECTED_DELAY,()=>{selectionRef.current.allowUnselectedMouseUp=!0,selectedDelayTimeout.start(UNSELECTED_DELAY,()=>{selectionRef.current.allowSelectedMouseUp=!0})}):selectedDelayTimeout.start(SELECTED_DELAY,()=>{selectionRef.current.allowUnselectedMouseUp=!0,selectionRef.current.allowSelectedMouseUp=!0}),()=>{selectedDelayTimeout.clear(),unselectedDelayTimeout.clear()};selectionRef.current={allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1},timeoutMouseDown.clear()},[open,hasSelectedValue,hasNullItemLabel$1,selectionRef,timeoutMouseDown,selectedDelayTimeout,unselectedDelayTimeout]);let ariaControlsId=import_react.useMemo(()=>listElement?.id??getFloatingFocusElement(positionerElement)?.id,[listElement,positionerElement]),props=mergeProps(triggerProps,{id,role:`combobox`,"aria-expanded":open?`true`:`false`,"aria-haspopup":`listbox`,"aria-controls":open?ariaControlsId:void 0,"aria-labelledby":labelId,"aria-readonly":readOnly$1||void 0,"aria-required":required||void 0,tabIndex:disabled$1?-1:0,ref:mergedRef,onFocus(event){setFocused(!0),open&&alignItemWithTriggerActiveRef.current&&setOpen(!1,createChangeEventDetails(none$3,event.nativeEvent)),timeoutFocus.start(0,()=>{store.set(`forceMount`,!0)})},onBlur(event){contains(positionerElement,event.relatedTarget)||(setTouched(!0),setFocused(!1),validationMode===`onBlur`&&validation.commit(value))},onPointerMove(){keyboardActiveRef.current=!1},onKeyDown(){keyboardActiveRef.current=!0},onMouseDown(event){if(open)return;let doc$1=ownerDocument(event.currentTarget);function handleMouseUp(mouseEvent){if(!triggerRef.current)return;let mouseUpTarget=mouseEvent.target;if(contains(triggerRef.current,mouseUpTarget)||contains(positionerRef.current,mouseUpTarget)||mouseUpTarget===triggerRef.current)return;let bounds=getPseudoElementBounds(triggerRef.current);mouseEvent.clientX>=bounds.left-BOUNDARY_OFFSET&&mouseEvent.clientX<=bounds.right+BOUNDARY_OFFSET&&mouseEvent.clientY>=bounds.top-BOUNDARY_OFFSET&&mouseEvent.clientY<=bounds.bottom+BOUNDARY_OFFSET||setOpen(!1,createChangeEventDetails(cancelOpen,mouseEvent))}timeoutMouseDown.start(0,()=>{doc$1.addEventListener(`mouseup`,handleMouseUp,{once:!0})})}},validation.getValidationProps,elementProps,getButtonProps);props.role=`combobox`;let state$1=import_react.useMemo(()=>({...fieldState,open,disabled:disabled$1,value,readOnly:readOnly$1,placeholder:!hasSelectedValue}),[fieldState,open,disabled$1,value,readOnly$1,hasSelectedValue]);return useRenderElement(`button`,componentProps,{ref:[forwardedRef,triggerRef],state:state$1,stateAttributesMapping:stateAttributesMapping$9,props})});var stateAttributesMapping$8={value:()=>null};const SelectValue$1=import_react.forwardRef(function(componentProps,forwardedRef){let{className,render,children:childrenProp,placeholder,...elementProps}=componentProps,{store,valueRef}=useSelectRootContext(),value=useStore(store,selectors$1.value),items=useStore(store,selectors$1.items),itemToStringLabel=useStore(store,selectors$1.itemToStringLabel),hasSelectedValue=useStore(store,selectors$1.hasSelectedValue),shouldCheckNullItemLabel=!hasSelectedValue&&placeholder!=null&&childrenProp==null,hasNullLabel=useStore(store,selectors$1.hasNullItemLabel,shouldCheckNullItemLabel),state$1=import_react.useMemo(()=>({value,placeholder:!hasSelectedValue}),[value,hasSelectedValue]),children=null;return children=typeof childrenProp==`function`?childrenProp(value):childrenProp??(!hasSelectedValue&&placeholder!=null&&!hasNullLabel?placeholder:Array.isArray(value)?resolveMultipleLabels(value,items,itemToStringLabel):resolveSelectedLabel(value,items,itemToStringLabel)),useRenderElement(`span`,componentProps,{state:state$1,ref:[forwardedRef,valueRef],props:[{children},elementProps],stateAttributesMapping:stateAttributesMapping$8})}),SelectIcon=import_react.forwardRef(function(componentProps,forwardedRef){let{className,render,...elementProps}=componentProps,{store}=useSelectRootContext(),open=useStore(store,selectors$1.open);return useRenderElement(`span`,componentProps,{state:import_react.useMemo(()=>({open}),[open]),ref:forwardedRef,props:[{"aria-hidden":!0,children:`▼`},elementProps],stateAttributesMapping:triggerOpenStateMapping})}),SelectPortalContext=import_react.createContext(void 0),SelectPortal=import_react.forwardRef(function(portalProps,forwardedRef){let{store}=useSelectRootContext(),mounted=useStore(store,selectors$1.mounted),forceMount=useStore(store,selectors$1.forceMount);return mounted||forceMount?(0,import_jsx_runtime.jsx)(SelectPortalContext.Provider,{value:!0,children:(0,import_jsx_runtime.jsx)(FloatingPortal,{ref:forwardedRef,...portalProps})}):null}),SelectPositionerContext=import_react.createContext(void 0);function useSelectPositionerContext(){let context=import_react.useContext(SelectPositionerContext);if(!context)throw Error(formatErrorMessage(59));return context}function clearStyles(element$3,originalStyles){element$3&&Object.assign(element$3.style,originalStyles)}const LIST_FUNCTIONAL_STYLES={position:`relative`,maxHeight:`100%`,overflowX:`hidden`,overflowY:`auto`};var FIXED={position:`fixed`};const SelectPositioner=import_react.forwardRef(function(componentProps,forwardedRef){let{anchor,positionMethod=`absolute`,className,render,side=`bottom`,align=`center`,sideOffset=0,alignOffset=0,collisionBoundary=`clipping-ancestors`,collisionPadding,arrowPadding=5,sticky=!1,disableAnchorTracking,alignItemWithTrigger=!0,collisionAvoidance=DROPDOWN_COLLISION_AVOIDANCE,...elementProps}=componentProps,{store,listRef,labelsRef,alignItemWithTriggerActiveRef,selectedItemTextRef,valuesRef,initialValueRef,popupRef,setValue}=useSelectRootContext(),floatingRootContext=useSelectFloatingContext(),open=useStore(store,selectors$1.open),mounted=useStore(store,selectors$1.mounted),modal=useStore(store,selectors$1.modal),value=useStore(store,selectors$1.value),openMethod=useStore(store,selectors$1.openMethod),positionerElement=useStore(store,selectors$1.positionerElement),triggerElement=useStore(store,selectors$1.triggerElement),isItemEqualToValue=useStore(store,selectors$1.isItemEqualToValue),scrollUpArrowRef=import_react.useRef(null),scrollDownArrowRef=import_react.useRef(null),[controlledAlignItemWithTrigger,setControlledAlignItemWithTrigger]=import_react.useState(alignItemWithTrigger),alignItemWithTriggerActive=mounted&&controlledAlignItemWithTrigger&&openMethod!==`touch`;!mounted&&controlledAlignItemWithTrigger!==alignItemWithTrigger&&setControlledAlignItemWithTrigger(alignItemWithTrigger),useIsoLayoutEffect(()=>{mounted||(selectors$1.scrollUpArrowVisible(store.state)&&store.set(`scrollUpArrowVisible`,!1),selectors$1.scrollDownArrowVisible(store.state)&&store.set(`scrollDownArrowVisible`,!1))},[store,mounted]),import_react.useImperativeHandle(alignItemWithTriggerActiveRef,()=>alignItemWithTriggerActive),useScrollLock((alignItemWithTriggerActive||modal)&&open&&openMethod!==`touch`,triggerElement);let positioning=useAnchorPositioning({anchor,floatingRootContext,positionMethod,mounted,side,sideOffset,align,alignOffset,arrowPadding,collisionBoundary,collisionPadding,sticky,disableAnchorTracking:disableAnchorTracking??alignItemWithTriggerActive,collisionAvoidance,keepMounted:!0}),renderedSide=alignItemWithTriggerActive?`none`:positioning.side,positionerStyles=alignItemWithTriggerActive?FIXED:positioning.positionerStyles,defaultProps=import_react.useMemo(()=>{let hiddenStyles={};return open||(hiddenStyles.pointerEvents=`none`),{role:`presentation`,hidden:!mounted,style:{...positionerStyles,...hiddenStyles}}},[open,mounted,positionerStyles]),state$1=import_react.useMemo(()=>({open,side:renderedSide,align:positioning.align,anchorHidden:positioning.anchorHidden}),[open,renderedSide,positioning.align,positioning.anchorHidden]),element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,useStableCallback(element$4=>{store.set(`positionerElement`,element$4)})],state:state$1,stateAttributesMapping:popupStateMapping,props:[defaultProps,elementProps]}),prevMapSizeRef=import_react.useRef(0),onMapChange=useStableCallback(map=>{if(map.size===0&&prevMapSizeRef.current===0||valuesRef.current.length===0)return;let prevSize=prevMapSizeRef.current;if(prevMapSizeRef.current=map.size,map.size===prevSize)return;let eventDetails=createChangeEventDetails(none$3);if(prevSize!==0&&!store.state.multiple&&value!==null&&findItemIndex(valuesRef.current,value,isItemEqualToValue)===-1){let initial=initialValueRef.current,nextValue=initial!=null&&itemIncludes(valuesRef.current,initial,isItemEqualToValue)?initial:null;setValue(nextValue,eventDetails),nextValue===null&&(store.set(`selectedIndex`,null),selectedItemTextRef.current=null)}if(prevSize!==0&&store.state.multiple&&Array.isArray(value)){let nextValue=value.filter(v$1=>itemIncludes(valuesRef.current,v$1,isItemEqualToValue));(nextValue.length!==value.length||nextValue.some(v$1=>!itemIncludes(value,v$1,isItemEqualToValue)))&&(setValue(nextValue,eventDetails),nextValue.length===0&&(store.set(`selectedIndex`,null),selectedItemTextRef.current=null))}if(open&&alignItemWithTriggerActive){store.update({scrollUpArrowVisible:!1,scrollDownArrowVisible:!1});let stylesToClear={height:``};clearStyles(positionerElement,stylesToClear),clearStyles(popupRef.current,stylesToClear)}}),contextValue=import_react.useMemo(()=>({...positioning,side:renderedSide,alignItemWithTriggerActive,setControlledAlignItemWithTrigger,scrollUpArrowRef,scrollDownArrowRef}),[positioning,renderedSide,alignItemWithTriggerActive,setControlledAlignItemWithTrigger]);return(0,import_jsx_runtime.jsx)(CompositeList,{elementsRef:listRef,labelsRef,onMapChange,children:(0,import_jsx_runtime.jsxs)(SelectPositionerContext.Provider,{value:contextValue,children:[mounted&&modal&&(0,import_jsx_runtime.jsx)(InternalBackdrop,{inert:inertValue(!open),cutout:triggerElement}),element$3]})})});function isMouseWithinBounds(event){let targetRect=event.currentTarget.getBoundingClientRect();return targetRect.top+1<=event.clientY&&event.clientY<=targetRect.bottom-1&&targetRect.left+1<=event.clientX&&event.clientX<=targetRect.right-1}var DISABLE_SCROLLBAR_CLASS_NAME=`base-ui-disable-scrollbar`;const styleDisableScrollbar={className:DISABLE_SCROLLBAR_CLASS_NAME,getElement(nonce){return(0,import_jsx_runtime.jsx)(`style`,{nonce,href:DISABLE_SCROLLBAR_CLASS_NAME,precedence:`base-ui:low`,children:`.${DISABLE_SCROLLBAR_CLASS_NAME}{scrollbar-width:none}.${DISABLE_SCROLLBAR_CLASS_NAME}::-webkit-scrollbar{display:none}`})}};function clamp(val,min$1=-(2**53-1),max$1=2**53-1){return Math.max(min$1,Math.min(val,max$1))}const CSPContext=import_react.createContext(void 0);var DEFAULT_CSP_CONTEXT_VALUE={disableStyleElements:!1};function useCSPContext(){return import_react.useContext(CSPContext)??DEFAULT_CSP_CONTEXT_VALUE}var import_react_dom$4=__toESM(require_react_dom()),stateAttributesMapping$7={...popupStateMapping,...transitionStatusMapping};const SelectPopup$1=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,...elementProps}=componentProps,{store,popupRef,onOpenChangeComplete,setOpen,valueRef,selectedItemTextRef,keyboardActiveRef,multiple,handleScrollArrowVisibility,scrollHandlerRef,highlightItemOnHover}=useSelectRootContext(),{side,align,alignItemWithTriggerActive,setControlledAlignItemWithTrigger,scrollDownArrowRef,scrollUpArrowRef}=useSelectPositionerContext(),insideToolbar=useToolbarRootContext(!0)!=null,floatingRootContext=useSelectFloatingContext(),{nonce,disableStyleElements}=useCSPContext(),highlightTimeout=useTimeout(),id=useStore(store,selectors$1.id),open=useStore(store,selectors$1.open),mounted=useStore(store,selectors$1.mounted),popupProps=useStore(store,selectors$1.popupProps),transitionStatus=useStore(store,selectors$1.transitionStatus),triggerElement=useStore(store,selectors$1.triggerElement),positionerElement=useStore(store,selectors$1.positionerElement),listElement=useStore(store,selectors$1.listElement),initialHeightRef=import_react.useRef(0),reachedMaxHeightRef=import_react.useRef(!1),maxHeightRef=import_react.useRef(0),initialPlacedRef=import_react.useRef(!1),originalPositionerStylesRef=import_react.useRef({}),scrollArrowFrame=useAnimationFrame(),handleScroll=useStableCallback(scroller=>{if(!positionerElement||!popupRef.current||!initialPlacedRef.current)return;if(reachedMaxHeightRef.current||!alignItemWithTriggerActive){handleScrollArrowVisibility();return}let isTopPositioned=positionerElement.style.top===`0px`,isBottomPositioned=positionerElement.style.bottom===`0px`,currentHeight=positionerElement.getBoundingClientRect().height,doc$1=ownerDocument(positionerElement),positionerStyles=getComputedStyle(positionerElement),marginTop=parseFloat(positionerStyles.marginTop),marginBottom=parseFloat(positionerStyles.marginBottom),maxPopupHeight=getMaxPopupHeight(getComputedStyle(popupRef.current)),viewportHeight=doc$1.documentElement.clientHeight-marginTop-marginBottom,scrollTop=scroller.scrollTop,maxScrollTop=scroller.scrollHeight-scroller.clientHeight,nextPositionerHeight=0,nextScrollTop=null,setReachedMax=!1;if(isTopPositioned){let idealHeight=currentHeight+(maxScrollTop-scrollTop),nextHeight=Math.min(idealHeight,viewportHeight);nextPositionerHeight=nextHeight,nextHeight===viewportHeight?setReachedMax=!0:nextScrollTop=maxScrollTop}else if(isBottomPositioned){let diff=scrollTop-0,idealHeight=currentHeight+diff,nextHeight=Math.min(idealHeight,viewportHeight),overshoot=idealHeight-viewportHeight;nextPositionerHeight=nextHeight,nextHeight===viewportHeight?(setReachedMax=!0,scrollTop<maxScrollTop&&(nextScrollTop=scrollTop-(diff-overshoot))):nextScrollTop=0}nextPositionerHeight!==0&&(positionerElement.style.height=`${nextPositionerHeight}px`),nextScrollTop!=null&&(scroller.scrollTop=nextScrollTop),(setReachedMax||nextPositionerHeight>=maxPopupHeight)&&(reachedMaxHeightRef.current=!0),handleScrollArrowVisibility()});import_react.useImperativeHandle(scrollHandlerRef,()=>handleScroll,[handleScroll]),useOpenChangeComplete({open,ref:popupRef,onComplete(){open&&onOpenChangeComplete?.(!0)}});let state$1=import_react.useMemo(()=>({open,transitionStatus,side,align}),[open,transitionStatus,side,align]);useIsoLayoutEffect(()=>{!positionerElement||!popupRef.current||Object.keys(originalPositionerStylesRef.current).length||(originalPositionerStylesRef.current={top:positionerElement.style.top||`0`,left:positionerElement.style.left||`0`,right:positionerElement.style.right,height:positionerElement.style.height,bottom:positionerElement.style.bottom,minHeight:positionerElement.style.minHeight,maxHeight:positionerElement.style.maxHeight,marginTop:positionerElement.style.marginTop,marginBottom:positionerElement.style.marginBottom})},[popupRef,positionerElement]),useIsoLayoutEffect(()=>{open||alignItemWithTriggerActive||(initialPlacedRef.current=!1,reachedMaxHeightRef.current=!1,initialHeightRef.current=0,maxHeightRef.current=0,clearStyles(positionerElement,originalPositionerStylesRef.current))},[open,alignItemWithTriggerActive,positionerElement,popupRef]),useIsoLayoutEffect(()=>{let popupElement=popupRef.current;if(!(!open||!triggerElement||!positionerElement||!popupElement||store.state.transitionStatus===`ending`)){if(!alignItemWithTriggerActive){initialPlacedRef.current=!0,scrollArrowFrame.request(handleScrollArrowVisibility),popupElement.style.removeProperty(`--transform-origin`);return}queueMicrotask(()=>{let restoreTransformStyles=unsetTransformStyles(popupElement);popupElement.style.removeProperty(`--transform-origin`);try{let positionerStyles=getComputedStyle(positionerElement),popupStyles=getComputedStyle(popupElement),doc$1=ownerDocument(triggerElement),win=getWindow(positionerElement),triggerRect=triggerElement.getBoundingClientRect(),positionerRect=positionerElement.getBoundingClientRect(),triggerX=triggerRect.left,triggerHeight=triggerRect.height,scroller=listElement||popupElement,scrollHeight=scroller.scrollHeight,borderBottom=parseFloat(popupStyles.borderBottomWidth),marginTop=parseFloat(positionerStyles.marginTop)||10,marginBottom=parseFloat(positionerStyles.marginBottom)||10,minHeight=parseFloat(positionerStyles.minHeight)||100,maxPopupHeight=getMaxPopupHeight(popupStyles),paddingLeft=5,paddingRight=5,triggerCollisionThreshold=20,viewportHeight=doc$1.documentElement.clientHeight-marginTop-marginBottom,viewportWidth=doc$1.documentElement.clientWidth,availableSpaceBeneathTrigger=viewportHeight-triggerRect.bottom+triggerHeight,textElement=selectedItemTextRef.current,valueElement=valueRef.current,textRect,offsetX=0,offsetY=0;if(textElement&&valueElement){let valueRect=valueElement.getBoundingClientRect();textRect=textElement.getBoundingClientRect();let valueLeftFromTriggerLeft=valueRect.left-triggerX,textLeftFromPositionerLeft=textRect.left-positionerRect.left,valueCenterFromPositionerTop=valueRect.top-triggerRect.top+valueRect.height/2,textCenterFromTriggerTop=textRect.top-positionerRect.top+textRect.height/2;offsetX=valueLeftFromTriggerLeft-textLeftFromPositionerLeft,offsetY=textCenterFromTriggerTop-valueCenterFromPositionerTop}let idealHeight=availableSpaceBeneathTrigger+offsetY+marginBottom+borderBottom,height=Math.min(viewportHeight,idealHeight),maxHeight=viewportHeight-marginTop-marginBottom,scrollTop=idealHeight-height,left=Math.max(5,triggerX+offsetX),maxRight=viewportWidth-5,rightOverflow=Math.max(0,left+positionerRect.width-maxRight);positionerElement.style.left=`${left-rightOverflow}px`,positionerElement.style.height=`${height}px`,positionerElement.style.maxHeight=`auto`,positionerElement.style.marginTop=`${marginTop}px`,positionerElement.style.marginBottom=`${marginBottom}px`,popupElement.style.height=`100%`;let maxScrollTop=scroller.scrollHeight-scroller.clientHeight,isTopPositioned=scrollTop>=maxScrollTop;isTopPositioned&&(height=Math.min(viewportHeight,positionerRect.height)-(scrollTop-maxScrollTop));let fallbackToAlignPopupToTrigger=triggerRect.top<20||triggerRect.bottom>viewportHeight-20||height<Math.min(scrollHeight,minHeight),isPinchZoomed=(win.visualViewport?.scale??1)!==1&&isWebKit;if(fallbackToAlignPopupToTrigger||isPinchZoomed){initialPlacedRef.current=!0,clearStyles(positionerElement,originalPositionerStylesRef.current),import_react_dom$4.flushSync(()=>setControlledAlignItemWithTrigger(!1));return}if(isTopPositioned){let topOffset=Math.max(0,viewportHeight-idealHeight);positionerElement.style.top=positionerRect.height>=maxHeight?`0`:`${topOffset}px`,positionerElement.style.height=`${height}px`,scroller.scrollTop=scroller.scrollHeight-scroller.clientHeight,initialHeightRef.current=Math.max(minHeight,height)}else positionerElement.style.bottom=`0`,initialHeightRef.current=Math.max(minHeight,height),scroller.scrollTop=scrollTop;if(textRect){let popupTop=positionerRect.top,popupHeight=positionerRect.height,textCenterY=textRect.top+textRect.height/2,clampedY=clamp(popupHeight>0?(textCenterY-popupTop)/popupHeight*100:50,0,100);popupElement.style.setProperty(`--transform-origin`,`50% ${clampedY}%`)}(initialHeightRef.current===viewportHeight||height>=maxPopupHeight)&&(reachedMaxHeightRef.current=!0),handleScrollArrowVisibility(),setTimeout(()=>{initialPlacedRef.current=!0})}finally{restoreTransformStyles()}})}},[store,open,positionerElement,triggerElement,valueRef,selectedItemTextRef,popupRef,handleScrollArrowVisibility,alignItemWithTriggerActive,setControlledAlignItemWithTrigger,scrollArrowFrame,scrollDownArrowRef,scrollUpArrowRef,listElement]),import_react.useEffect(()=>{if(!alignItemWithTriggerActive||!positionerElement||!open)return;let win=getWindow(positionerElement);function handleResize(event){setOpen(!1,createChangeEventDetails(`window-resize`,event))}return win.addEventListener(`resize`,handleResize),()=>{win.removeEventListener(`resize`,handleResize)}},[setOpen,alignItemWithTriggerActive,positionerElement,open]);let defaultProps={...listElement?{role:`presentation`,"aria-orientation":void 0}:{role:`listbox`,"aria-multiselectable":multiple||void 0,id:`${id}-list`},onKeyDown(event){keyboardActiveRef.current=!0,insideToolbar&&COMPOSITE_KEYS.has(event.key)&&event.stopPropagation()},onMouseMove(){keyboardActiveRef.current=!1},onPointerLeave(event){if(!highlightItemOnHover||isMouseWithinBounds(event)||event.pointerType===`touch`)return;let popup=event.currentTarget;highlightTimeout.start(0,()=>{store.set(`activeIndex`,null),popup.focus({preventScroll:!0})})},onScroll(event){listElement||scrollHandlerRef.current?.(event.currentTarget)},...alignItemWithTriggerActive&&{style:listElement?{height:`100%`}:LIST_FUNCTIONAL_STYLES}},element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,popupRef],state:state$1,stateAttributesMapping:stateAttributesMapping$7,props:[popupProps,defaultProps,getDisabledMountTransitionStyles(transitionStatus),{className:!listElement&&alignItemWithTriggerActive?styleDisableScrollbar.className:void 0},elementProps]});return(0,import_jsx_runtime.jsxs)(import_react.Fragment,{children:[!disableStyleElements&&styleDisableScrollbar.getElement(nonce),(0,import_jsx_runtime.jsx)(FloatingFocusManager,{context:floatingRootContext,modal:!1,disabled:!mounted,restoreFocus:!0,children:element$3})]})});function getMaxPopupHeight(popupStyles){let maxHeightStyle=popupStyles.maxHeight||``;return maxHeightStyle.endsWith(`px`)&&parseFloat(maxHeightStyle)||1/0}var UNSET_TRANSFORM_STYLES={transform:`none`,scale:`1`,translate:`0 0`};function restoreInlineStyleProperty(style$1,property,value){value?style$1.setProperty(property,value):style$1.removeProperty(property)}function unsetTransformStyles(popupElement){let{style:style$1}=popupElement,originalStyles={},props=Object.keys(UNSET_TRANSFORM_STYLES);for(let prop of props)originalStyles[prop]=style$1.getPropertyValue(prop),style$1.setProperty(prop,UNSET_TRANSFORM_STYLES[prop]);return()=>{for(let prop of props)restoreInlineStyleProperty(style$1,prop,originalStyles[prop])}}const SelectList=import_react.forwardRef(function(componentProps,forwardedRef){let{className,render,...elementProps}=componentProps,{store,scrollHandlerRef}=useSelectRootContext(),{alignItemWithTriggerActive}=useSelectPositionerContext(),hasScrollArrows=useStore(store,selectors$1.hasScrollArrows),openMethod=useStore(store,selectors$1.openMethod),multiple=useStore(store,selectors$1.multiple),defaultProps={id:`${useStore(store,selectors$1.id)}-list`,role:`listbox`,"aria-multiselectable":multiple||void 0,onScroll(event){scrollHandlerRef.current?.(event.currentTarget)},...alignItemWithTriggerActive&&{style:LIST_FUNCTIONAL_STYLES},className:hasScrollArrows&&openMethod!==`touch`?styleDisableScrollbar.className:void 0};return useRenderElement(`div`,componentProps,{ref:[forwardedRef,useStableCallback(element$3=>{store.set(`listElement`,element$3)})],props:[defaultProps,elementProps]})}),SelectItemContext=import_react.createContext(void 0);function useSelectItemContext(){let context=import_react.useContext(SelectItemContext);if(!context)throw Error(formatErrorMessage(57));return context}const SelectItem$1=import_react.memo(import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,value=null,label,disabled:disabled$1=!1,nativeButton=!1,...elementProps}=componentProps,textRef=import_react.useRef(null),listItem$1=useCompositeListItem({label,textRef,indexGuessBehavior:IndexGuessBehavior.GuessFromOrder}),{store,getItemProps,setOpen,setValue,selectionRef,typingRef,valuesRef,keyboardActiveRef,multiple,highlightItemOnHover}=useSelectRootContext(),highlightTimeout=useTimeout(),highlighted=useStore(store,selectors$1.isActive,listItem$1.index),selected=useStore(store,selectors$1.isSelected,listItem$1.index,value),selectedByFocus=useStore(store,selectors$1.isSelectedByFocus,listItem$1.index),isItemEqualToValue=useStore(store,selectors$1.isItemEqualToValue),index$4=listItem$1.index,hasRegistered=index$4!==-1,itemRef=import_react.useRef(null),indexRef=useValueAsRef(index$4);useIsoLayoutEffect(()=>{if(!hasRegistered)return;let values=valuesRef.current;return values[index$4]=value,()=>{delete values[index$4]}},[hasRegistered,index$4,value,valuesRef]),useIsoLayoutEffect(()=>{if(!hasRegistered)return;let selectedValue=store.state.value,candidate=selectedValue;multiple&&Array.isArray(selectedValue)&&selectedValue.length>0&&(candidate=selectedValue[selectedValue.length-1]),candidate!==void 0&&compareItemEquality(candidate,value,isItemEqualToValue)&&store.set(`selectedIndex`,index$4)},[hasRegistered,index$4,multiple,isItemEqualToValue,store,value]);let state$1=import_react.useMemo(()=>({disabled:disabled$1,selected,highlighted}),[disabled$1,selected,highlighted]),rootProps=getItemProps({active:highlighted,selected});rootProps.onFocus=void 0,rootProps.id=void 0;let lastKeyRef=import_react.useRef(null),pointerTypeRef=import_react.useRef(`mouse`),didPointerDownRef=import_react.useRef(!1),{getButtonProps,buttonRef}=useButton({disabled:disabled$1,focusableWhenDisabled:!0,native:nativeButton});function commitSelection(event){let selectedValue=store.state.value;if(multiple){let currentValue=Array.isArray(selectedValue)?selectedValue:[];setValue(selected?removeItem(currentValue,value,isItemEqualToValue):[...currentValue,value],createChangeEventDetails(itemPress,event))}else setValue(value,createChangeEventDetails(itemPress,event)),setOpen(!1,createChangeEventDetails(itemPress,event))}let defaultProps={role:`option`,"aria-selected":selected,tabIndex:highlighted?0:-1,onFocus(){store.set(`activeIndex`,index$4)},onMouseEnter(){!keyboardActiveRef.current&&store.state.selectedIndex===null&&store.set(`activeIndex`,index$4)},onMouseMove(){highlightItemOnHover&&store.set(`activeIndex`,index$4)},onMouseLeave(event){!highlightItemOnHover||keyboardActiveRef.current||isMouseWithinBounds(event)||highlightTimeout.start(0,()=>{store.state.activeIndex===index$4&&store.set(`activeIndex`,null)})},onTouchStart(){selectionRef.current={allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1}},onKeyDown(event){lastKeyRef.current=event.key,store.set(`activeIndex`,index$4)},onClick(event){didPointerDownRef.current=!1,!(event.type===`keydown`&&lastKeyRef.current===null)&&(disabled$1||lastKeyRef.current===` `&&typingRef.current||pointerTypeRef.current!==`touch`&&!highlighted||(lastKeyRef.current=null,commitSelection(event.nativeEvent)))},onPointerEnter(event){pointerTypeRef.current=event.pointerType},onPointerDown(event){pointerTypeRef.current=event.pointerType,didPointerDownRef.current=!0},onMouseUp(event){if(disabled$1)return;if(didPointerDownRef.current){didPointerDownRef.current=!1;return}let disallowSelectedMouseUp=!selectionRef.current.allowSelectedMouseUp&&selected,disallowUnselectedMouseUp=!selectionRef.current.allowUnselectedMouseUp&&!selected;disallowSelectedMouseUp||disallowUnselectedMouseUp||pointerTypeRef.current!==`touch`&&!highlighted||commitSelection(event.nativeEvent)}},element$3=useRenderElement(`div`,componentProps,{ref:[buttonRef,forwardedRef,listItem$1.ref,itemRef],state:state$1,props:[rootProps,defaultProps,elementProps,getButtonProps]}),contextValue=import_react.useMemo(()=>({selected,indexRef,textRef,selectedByFocus,hasRegistered}),[selected,indexRef,textRef,selectedByFocus,hasRegistered]);return(0,import_jsx_runtime.jsx)(SelectItemContext.Provider,{value:contextValue,children:element$3})})),SelectItemIndicator=import_react.forwardRef(function(componentProps,forwardedRef){let keepMounted=componentProps.keepMounted??!1,{selected}=useSelectItemContext();return keepMounted||selected?(0,import_jsx_runtime.jsx)(Inner,{...componentProps,ref:forwardedRef}):null});var Inner=import_react.memo(import_react.forwardRef((componentProps,forwardedRef)=>{let{render,className,keepMounted,...elementProps}=componentProps,{selected}=useSelectItemContext(),indicatorRef=import_react.useRef(null),{transitionStatus,setMounted}=useTransitionStatus(selected),state$1=import_react.useMemo(()=>({selected,transitionStatus}),[selected,transitionStatus]),element$3=useRenderElement(`span`,componentProps,{ref:[forwardedRef,indicatorRef],state:state$1,props:[{"aria-hidden":!0,children:`✔️`},elementProps],stateAttributesMapping:transitionStatusMapping});return useOpenChangeComplete({open:selected,ref:indicatorRef,onComplete(){selected||setMounted(!1)}}),element$3}));const SelectItemText=import_react.memo(import_react.forwardRef(function(componentProps,forwardedRef){let{indexRef,textRef,selectedByFocus,hasRegistered}=useSelectItemContext(),{selectedItemTextRef}=useSelectRootContext(),{className,render,...elementProps}=componentProps;return useRenderElement(`div`,componentProps,{ref:[import_react.useCallback(node$1=>{if(!node$1||!hasRegistered)return;let hasNoSelectedItemText=selectedItemTextRef.current===null||!selectedItemTextRef.current.isConnected;(selectedByFocus||hasNoSelectedItemText&&indexRef.current===0)&&(selectedItemTextRef.current=node$1)},[selectedItemTextRef,indexRef,selectedByFocus,hasRegistered]),forwardedRef,textRef],props:elementProps})})),SelectScrollArrow=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,direction,keepMounted=!1,...elementProps}=componentProps,{store,popupRef,listRef,handleScrollArrowVisibility,scrollArrowsMountedCountRef}=useSelectRootContext(),{side,scrollDownArrowRef,scrollUpArrowRef}=useSelectPositionerContext(),stateVisible=useStore(store,direction===`up`?selectors$1.scrollUpArrowVisible:selectors$1.scrollDownArrowVisible),openMethod=useStore(store,selectors$1.openMethod),visible=stateVisible&&openMethod!==`touch`,timeout=useTimeout(),scrollArrowRef=direction===`up`?scrollUpArrowRef:scrollDownArrowRef,{transitionStatus,setMounted}=useTransitionStatus(visible);useIsoLayoutEffect(()=>(scrollArrowsMountedCountRef.current+=1,store.state.hasScrollArrows||store.set(`hasScrollArrows`,!0),()=>{scrollArrowsMountedCountRef.current=Math.max(0,scrollArrowsMountedCountRef.current-1),scrollArrowsMountedCountRef.current===0&&store.state.hasScrollArrows&&store.set(`hasScrollArrows`,!1)}),[store,scrollArrowsMountedCountRef]),useOpenChangeComplete({open:visible,ref:scrollArrowRef,onComplete(){visible||setMounted(!1)}});let state$1=import_react.useMemo(()=>({direction,visible,side,transitionStatus}),[direction,visible,side,transitionStatus]),element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,scrollArrowRef],state:state$1,props:[{"aria-hidden":!0,children:direction===`up`?`▲`:`▼`,style:{position:`absolute`},onMouseMove(event){if(event.movementX===0&&event.movementY===0||timeout.isStarted())return;store.set(`activeIndex`,null);function scrollNextItem(){let scroller=store.state.listElement??popupRef.current;if(!scroller)return;store.set(`activeIndex`,null),handleScrollArrowVisibility();let isScrolledToTop=scroller.scrollTop===0,isScrolledToBottom$1=Math.round(scroller.scrollTop+scroller.clientHeight)>=scroller.scrollHeight;if(listRef.current.length===0&&(direction===`up`?store.set(`scrollUpArrowVisible`,!isScrolledToTop):store.set(`scrollDownArrowVisible`,!isScrolledToBottom$1)),direction===`up`&&isScrolledToTop||direction===`down`&&isScrolledToBottom$1){timeout.clear();return}if((store.state.listElement||popupRef.current)&&listRef.current&&listRef.current.length>0){let items=listRef.current,scrollArrowHeight=scrollArrowRef.current?.offsetHeight||0;if(direction===`up`){let firstVisibleIndex=0,scrollTop=scroller.scrollTop+scrollArrowHeight;for(let i$3=0;i$3<items.length;i$3+=1){let item=items[i$3];if(item&&item.offsetTop>=scrollTop){firstVisibleIndex=i$3;break}}let targetIndex=Math.max(0,firstVisibleIndex-1);if(targetIndex<firstVisibleIndex){let targetItem=items[targetIndex];targetItem&&(scroller.scrollTop=Math.max(0,targetItem.offsetTop-scrollArrowHeight))}else scroller.scrollTop=0}else{let lastVisibleIndex=items.length-1,scrollBottom=scroller.scrollTop+scroller.clientHeight-scrollArrowHeight;for(let i$3=0;i$3<items.length;i$3+=1){let item=items[i$3];if(item&&item.offsetTop+item.offsetHeight>scrollBottom){lastVisibleIndex=Math.max(0,i$3-1);break}}let targetIndex=Math.min(items.length-1,lastVisibleIndex+1);if(targetIndex>lastVisibleIndex){let targetItem=items[targetIndex];targetItem&&(scroller.scrollTop=targetItem.offsetTop+targetItem.offsetHeight-scroller.clientHeight+scrollArrowHeight)}else scroller.scrollTop=scroller.scrollHeight-scroller.clientHeight}}timeout.start(40,scrollNextItem)}timeout.start(40,scrollNextItem)},onMouseLeave(){timeout.clear()}},elementProps]});return visible||keepMounted?element$3:null}),SelectScrollDownArrow=import_react.forwardRef(function(props,forwardedRef){return(0,import_jsx_runtime.jsx)(SelectScrollArrow,{...props,ref:forwardedRef,direction:`down`})}),SelectScrollUpArrow=import_react.forwardRef(function(props,forwardedRef){return(0,import_jsx_runtime.jsx)(SelectScrollArrow,{...props,ref:forwardedRef,direction:`up`})});var Select=SelectRoot;function SelectTrigger({className,size:size$3=`default`,children,...props}){return(0,import_jsx_runtime.jsxs)(SelectTrigger$1,{className:cn(`relative inline-flex min-h-9 w-full min-w-36 select-none items-center justify-between gap-2 rounded-lg border border-input bg-background bg-clip-padding px-[calc(--spacing(3)-1px)] text-left text-base shadow-xs outline-none ring-ring/24 transition-shadow before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] not-data-disabled:not-focus-visible:not-aria-invalid:not-data-pressed:before:shadow-[0_1px_--theme(--color-black/4%)] pointer-coarse:after:absolute pointer-coarse:after:size-full pointer-coarse:after:min-h-11 focus-visible:border-ring focus-visible:ring-[3px] aria-invalid:border-destructive/36 focus-visible:aria-invalid:border-destructive/64 focus-visible:aria-invalid:ring-destructive/16 data-disabled:pointer-events-none data-disabled:opacity-64 sm:min-h-8 sm:text-sm dark:bg-input/32 dark:not-in-data-[slot=group]:bg-clip-border dark:aria-invalid:ring-destructive/24 dark:not-data-disabled:not-focus-visible:not-aria-invalid:not-data-pressed:before:shadow-[0_-1px_--theme(--color-white/8%)] [&_svg:not([class*='opacity-'])]:opacity-80 [&_svg:not([class*='size-'])]:size-4.5 sm:[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 [[data-disabled],:focus-visible,[aria-invalid],[data-pressed]]:shadow-none`,size$3===`sm`&&`min-h-8 gap-1.5 px-[calc(--spacing(2.5)-1px)] sm:min-h-7`,size$3===`lg`&&`min-h-10 sm:min-h-9`,className),"data-slot":`select-trigger`,...props,children:[children,(0,import_jsx_runtime.jsx)(SelectIcon,{"data-slot":`select-icon`,children:(0,import_jsx_runtime.jsx)(ChevronsUpDown,{className:`-me-1 size-4.5 opacity-80 sm:size-4`})})]})}function SelectValue({className,...props}){return(0,import_jsx_runtime.jsx)(SelectValue$1,{className:cn(`flex-1 truncate data-placeholder:text-muted-foreground`,className),"data-slot":`select-value`,...props})}function SelectPopup({className,children,sideOffset=4,alignItemWithTrigger=!0,...props}){return(0,import_jsx_runtime.jsx)(SelectPortal,{children:(0,import_jsx_runtime.jsx)(SelectPositioner,{alignItemWithTrigger,className:`z-50 select-none`,"data-slot":`select-positioner`,sideOffset,children:(0,import_jsx_runtime.jsxs)(SelectPopup$1,{className:`origin-(--transform-origin) transition-[scale,opacity] has-data-[side=none]:scale-100 has-data-starting-style:scale-98 has-data-starting-style:opacity-0 has-data-[side=none]:transition-none`,"data-slot":`select-popup`,...props,children:[(0,import_jsx_runtime.jsx)(SelectScrollUpArrow,{className:`top-0 z-50 flex h-6 w-full cursor-default items-center justify-center before:pointer-events-none before:absolute before:inset-x-px before:top-px before:h-[200%] before:rounded-t-[calc(var(--radius-lg)-1px)] before:bg-linear-to-b before:from-50% before:from-popover`,"data-slot":`select-scroll-up-arrow`,children:(0,import_jsx_runtime.jsx)(ChevronUp,{className:`relative size-4.5 sm:size-4`})}),(0,import_jsx_runtime.jsx)(`span`,{className:`relative block h-full rounded-lg border bg-popover bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] before:shadow-lg dark:not-in-data-[slot=group]:bg-clip-border`,children:(0,import_jsx_runtime.jsx)(SelectList,{className:cn(`max-h-(--available-height) min-w-(--anchor-width) overflow-y-auto p-1`,className),"data-slot":`select-list`,children})}),(0,import_jsx_runtime.jsx)(SelectScrollDownArrow,{className:`bottom-0 z-50 flex h-6 w-full cursor-default items-center justify-center before:pointer-events-none before:absolute before:inset-x-px before:bottom-px before:h-[200%] before:rounded-b-[calc(var(--radius-lg)-1px)] before:bg-linear-to-t before:from-50% before:from-popover`,"data-slot":`select-scroll-down-arrow`,children:(0,import_jsx_runtime.jsx)(ChevronDown,{className:`relative size-4.5 sm:size-4`})})]})})})}function SelectItem({className,children,...props}){return(0,import_jsx_runtime.jsxs)(SelectItem$1,{className:cn(`grid min-h-8 in-data-[side=none]:min-w-[calc(var(--anchor-width)+1.25rem)] cursor-pointer grid-cols-[1rem_1fr] items-center gap-2 rounded-sm py-1 ps-2 pe-4 text-base outline-none data-disabled:pointer-events-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-disabled:opacity-64 sm:min-h-7 sm:text-sm [&_svg:not([class*='size-'])]:size-4.5 sm:[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0`,className),"data-slot":`select-item`,...props,children:[(0,import_jsx_runtime.jsx)(SelectItemIndicator,{className:`col-start-1`,children:(0,import_jsx_runtime.jsx)(`svg`,{fill:`none`,height:`24`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,viewBox:`0 0 24 24`,width:`24`,xmlns:`http://www.w3.org/1500/svg`,children:(0,import_jsx_runtime.jsx)(`path`,{d:`M5.252 12.7 10.2 18.63 18.748 5.37`})})}),(0,import_jsx_runtime.jsx)(SelectItemText,{className:`col-start-2 min-w-0`,children})]})}function SchemaSelector({value,onChange,schemas,disabled:disabled$1}){return(0,import_jsx_runtime.jsxs)(Select,{value,onValueChange:v$1=>v$1&&onChange(v$1),disabled:disabled$1,children:[(0,import_jsx_runtime.jsx)(SelectTrigger,{size:`sm`,className:`w-full`,children:(0,import_jsx_runtime.jsx)(SelectValue,{children:val=>val??`Select schema`})}),(0,import_jsx_runtime.jsx)(SelectPopup,{children:schemas.map(schema=>(0,import_jsx_runtime.jsx)(SelectItem,{value:schema,children:schema},schema))})]})}function useCollapsibleRoot(parameters){let{open:openParam,defaultOpen,onOpenChange,disabled:disabled$1}=parameters,isControlled=openParam!==void 0,[open,setOpen]=useControlled({controlled:openParam,default:defaultOpen,name:`Collapsible`,state:`open`}),{mounted,setMounted,transitionStatus}=useTransitionStatus(open,!0,!0),[visible,setVisible]=import_react.useState(open),[{height,width},setDimensions]=import_react.useState({height:void 0,width:void 0}),defaultPanelId=useBaseUiId(),[panelIdState,setPanelIdState]=import_react.useState(),panelId=panelIdState??defaultPanelId,[hiddenUntilFound,setHiddenUntilFound]=import_react.useState(!1),[keepMounted,setKeepMounted]=import_react.useState(!1),abortControllerRef=import_react.useRef(null),animationTypeRef=import_react.useRef(null),transitionDimensionRef=import_react.useRef(null),panelRef=import_react.useRef(null),runOnceAnimationsFinish=useAnimationsFinished(panelRef,!1),handleTrigger=useStableCallback(event=>{let nextOpen=!open,eventDetails=createChangeEventDetails(triggerPress,event.nativeEvent);if(onOpenChange(nextOpen,eventDetails),eventDetails.isCanceled)return;let panel=panelRef.current;animationTypeRef.current===`css-animation`&&panel!=null&&panel.style.removeProperty(`animation-name`),!hiddenUntilFound&&!keepMounted&&(animationTypeRef.current!=null&&animationTypeRef.current!==`css-animation`&&!mounted&&nextOpen&&setMounted(!0),animationTypeRef.current===`css-animation`&&(!visible&&nextOpen&&setVisible(!0),!mounted&&nextOpen&&setMounted(!0))),setOpen(nextOpen),animationTypeRef.current===`none`&&mounted&&!nextOpen&&setMounted(!1)});return useIsoLayoutEffect(()=>{isControlled&&animationTypeRef.current===`none`&&!keepMounted&&!open&&setMounted(!1)},[isControlled,keepMounted,open,openParam,setMounted]),import_react.useMemo(()=>({abortControllerRef,animationTypeRef,disabled:disabled$1,handleTrigger,height,mounted,open,panelId,panelRef,runOnceAnimationsFinish,setDimensions,setHiddenUntilFound,setKeepMounted,setMounted,setOpen,setPanelIdState,setVisible,transitionDimensionRef,transitionStatus,visible,width}),[abortControllerRef,animationTypeRef,disabled$1,handleTrigger,height,mounted,open,panelId,panelRef,runOnceAnimationsFinish,setDimensions,setHiddenUntilFound,setKeepMounted,setMounted,setOpen,setVisible,transitionDimensionRef,transitionStatus,visible,width])}const CollapsibleRootContext=import_react.createContext(void 0);function useCollapsibleRootContext(){let context=import_react.useContext(CollapsibleRootContext);if(context===void 0)throw Error(formatErrorMessage(15));return context}let CollapsiblePanelDataAttributes=function(CollapsiblePanelDataAttributes$1){return CollapsiblePanelDataAttributes$1.open=`data-open`,CollapsiblePanelDataAttributes$1.closed=`data-closed`,CollapsiblePanelDataAttributes$1[CollapsiblePanelDataAttributes$1.startingStyle=TransitionStatusDataAttributes.startingStyle]=`startingStyle`,CollapsiblePanelDataAttributes$1[CollapsiblePanelDataAttributes$1.endingStyle=TransitionStatusDataAttributes.endingStyle]=`endingStyle`,CollapsiblePanelDataAttributes$1}({}),CollapsibleTriggerDataAttributes=function(CollapsibleTriggerDataAttributes$1){return CollapsibleTriggerDataAttributes$1.panelOpen=`data-panel-open`,CollapsibleTriggerDataAttributes$1}({});var PANEL_OPEN_HOOK={[CollapsiblePanelDataAttributes.open]:``},PANEL_CLOSED_HOOK={[CollapsiblePanelDataAttributes.closed]:``};const triggerOpenStateMapping$1={open(value){return value?{[CollapsibleTriggerDataAttributes.panelOpen]:``}:null}},collapsibleOpenStateMapping={open(value){return value?PANEL_OPEN_HOOK:PANEL_CLOSED_HOOK}},collapsibleStateAttributesMapping={...collapsibleOpenStateMapping,...transitionStatusMapping},CollapsibleRoot=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,defaultOpen=!1,disabled:disabled$1=!1,onOpenChange:onOpenChangeProp,open,...elementProps}=componentProps,onOpenChange=useStableCallback(onOpenChangeProp),collapsible=useCollapsibleRoot({open,defaultOpen,onOpenChange,disabled:disabled$1}),state$1=import_react.useMemo(()=>({open:collapsible.open,disabled:collapsible.disabled,transitionStatus:collapsible.transitionStatus}),[collapsible.open,collapsible.disabled,collapsible.transitionStatus]),contextValue=import_react.useMemo(()=>({...collapsible,onOpenChange,state:state$1}),[collapsible,onOpenChange,state$1]),element$3=useRenderElement(`div`,componentProps,{state:state$1,ref:forwardedRef,props:elementProps,stateAttributesMapping:collapsibleStateAttributesMapping});return(0,import_jsx_runtime.jsx)(CollapsibleRootContext.Provider,{value:contextValue,children:element$3})});var stateAttributesMapping$6={...triggerOpenStateMapping$1,...transitionStatusMapping};const CollapsibleTrigger$1=import_react.forwardRef(function(componentProps,forwardedRef){let{panelId,open,handleTrigger,state:state$1,disabled:contextDisabled}=useCollapsibleRootContext(),{className,disabled:disabled$1=contextDisabled,id,render,nativeButton=!0,...elementProps}=componentProps,{getButtonProps,buttonRef}=useButton({disabled:disabled$1,focusableWhenDisabled:!0,native:nativeButton}),props=import_react.useMemo(()=>({"aria-controls":open?panelId:void 0,"aria-expanded":open,onClick:handleTrigger}),[panelId,open,handleTrigger]);return useRenderElement(`button`,componentProps,{state:state$1,ref:[forwardedRef,buttonRef],props:[props,elementProps,getButtonProps],stateAttributesMapping:stateAttributesMapping$6})});let AccordionRootDataAttributes=function(AccordionRootDataAttributes$1){return AccordionRootDataAttributes$1.disabled=`data-disabled`,AccordionRootDataAttributes$1.orientation=`data-orientation`,AccordionRootDataAttributes$1}({});function useCollapsiblePanel(parameters){let{abortControllerRef,animationTypeRef,externalRef,height,hiddenUntilFound,keepMounted,id:idParam,mounted,onOpenChange,open,panelRef,runOnceAnimationsFinish,setDimensions,setMounted,setOpen,setVisible,transitionDimensionRef,visible,width}=parameters,isBeforeMatchRef=import_react.useRef(!1),latestAnimationNameRef=import_react.useRef(null),shouldCancelInitialOpenAnimationRef=import_react.useRef(open),shouldCancelInitialOpenTransitionRef=import_react.useRef(open),endingStyleFrame=useAnimationFrame(),hidden=import_react.useMemo(()=>animationTypeRef.current===`css-animation`?!visible:!open&&!mounted,[open,mounted,visible,animationTypeRef]),mergedPanelRef=useMergedRefs(externalRef,panelRef,useStableCallback(element$3=>{if(!element$3)return;if(animationTypeRef.current==null||transitionDimensionRef.current==null){let panelStyles=getComputedStyle(element$3),hasAnimation=panelStyles.animationName!==`none`&&panelStyles.animationName!==``,hasTransition=panelStyles.transitionDuration!==`0s`&&panelStyles.transitionDuration!==``;hasAnimation&&hasTransition||(panelStyles.animationName===`none`&&panelStyles.transitionDuration!==`0s`?animationTypeRef.current=`css-transition`:panelStyles.animationName!==`none`&&panelStyles.transitionDuration===`0s`?animationTypeRef.current=`css-animation`:animationTypeRef.current=`none`),element$3.getAttribute(AccordionRootDataAttributes.orientation)===`horizontal`||panelStyles.transitionProperty.indexOf(`width`)>-1?transitionDimensionRef.current=`width`:transitionDimensionRef.current=`height`}if(animationTypeRef.current!==`css-transition`)return;(height===void 0||width===void 0)&&(setDimensions({height:element$3.scrollHeight,width:element$3.scrollWidth}),shouldCancelInitialOpenTransitionRef.current&&element$3.style.setProperty(`transition-duration`,`0s`));let frame=-1,nextFrame=-1;return frame=AnimationFrame.request(()=>{shouldCancelInitialOpenTransitionRef.current=!1,nextFrame=AnimationFrame.request(()=>{setTimeout(()=>{element$3.style.removeProperty(`transition-duration`)})})}),()=>{AnimationFrame.cancel(frame),AnimationFrame.cancel(nextFrame)}}));return useIsoLayoutEffect(()=>{if(animationTypeRef.current!==`css-transition`)return;let panel=panelRef.current;if(!panel)return;let resizeFrame=-1;if(abortControllerRef.current!=null&&(abortControllerRef.current.abort(),abortControllerRef.current=null),open){let originalLayoutStyles={"justify-content":panel.style.justifyContent,"align-items":panel.style.alignItems,"align-content":panel.style.alignContent,"justify-items":panel.style.justifyItems};Object.keys(originalLayoutStyles).forEach(key$1=>{panel.style.setProperty(key$1,`initial`,`important`)}),!shouldCancelInitialOpenTransitionRef.current&&!keepMounted&&panel.setAttribute(CollapsiblePanelDataAttributes.startingStyle,``),setDimensions({height:panel.scrollHeight,width:panel.scrollWidth}),resizeFrame=AnimationFrame.request(()=>{Object.entries(originalLayoutStyles).forEach(([key$1,value])=>{value===``?panel.style.removeProperty(key$1):panel.style.setProperty(key$1,value)})})}else{if(panel.scrollHeight===0&&panel.scrollWidth===0)return;setDimensions({height:panel.scrollHeight,width:panel.scrollWidth});let abortController=new AbortController;abortControllerRef.current=abortController;let signal=abortController.signal,attributeObserver=null,endingStyleAttribute=CollapsiblePanelDataAttributes.endingStyle;return attributeObserver=new MutationObserver(mutationList=>{mutationList.some(mutation=>mutation.type===`attributes`&&mutation.attributeName===endingStyleAttribute)&&(attributeObserver?.disconnect(),attributeObserver=null,runOnceAnimationsFinish(()=>{setDimensions({height:0,width:0}),panel.style.removeProperty(`content-visibility`),setMounted(!1),abortControllerRef.current===abortController&&(abortControllerRef.current=null)},signal))}),attributeObserver.observe(panel,{attributes:!0,attributeFilter:[endingStyleAttribute]}),()=>{attributeObserver?.disconnect(),endingStyleFrame.cancel(),abortControllerRef.current===abortController&&(abortController.abort(),abortControllerRef.current=null)}}return()=>{AnimationFrame.cancel(resizeFrame)}},[abortControllerRef,animationTypeRef,endingStyleFrame,hiddenUntilFound,keepMounted,mounted,open,panelRef,runOnceAnimationsFinish,setDimensions,setMounted]),useIsoLayoutEffect(()=>{if(animationTypeRef.current!==`css-animation`)return;let panel=panelRef.current;panel&&(latestAnimationNameRef.current=panel.style.animationName||latestAnimationNameRef.current,panel.style.setProperty(`animation-name`,`none`),setDimensions({height:panel.scrollHeight,width:panel.scrollWidth}),!shouldCancelInitialOpenAnimationRef.current&&!isBeforeMatchRef.current&&panel.style.removeProperty(`animation-name`),open?(abortControllerRef.current!=null&&(abortControllerRef.current.abort(),abortControllerRef.current=null),setMounted(!0),setVisible(!0)):(abortControllerRef.current=new AbortController,runOnceAnimationsFinish(()=>{setMounted(!1),setVisible(!1),abortControllerRef.current=null},abortControllerRef.current.signal)))},[abortControllerRef,animationTypeRef,open,panelRef,runOnceAnimationsFinish,setDimensions,setMounted,setVisible,visible]),useOnMount(()=>{let frame=AnimationFrame.request(()=>{shouldCancelInitialOpenAnimationRef.current=!1});return()=>AnimationFrame.cancel(frame)}),useIsoLayoutEffect(()=>{if(!hiddenUntilFound)return;let panel=panelRef.current;if(!panel)return;let frame=-1,nextFrame=-1;return open&&isBeforeMatchRef.current&&(panel.style.transitionDuration=`0s`,setDimensions({height:panel.scrollHeight,width:panel.scrollWidth}),frame=AnimationFrame.request(()=>{isBeforeMatchRef.current=!1,nextFrame=AnimationFrame.request(()=>{setTimeout(()=>{panel.style.removeProperty(`transition-duration`)})})})),()=>{AnimationFrame.cancel(frame),AnimationFrame.cancel(nextFrame)}},[hiddenUntilFound,open,panelRef,setDimensions]),useIsoLayoutEffect(()=>{let panel=panelRef.current;panel&&hiddenUntilFound&&hidden&&(panel.setAttribute(`hidden`,`until-found`),animationTypeRef.current===`css-transition`&&panel.setAttribute(CollapsiblePanelDataAttributes.startingStyle,``))},[hiddenUntilFound,hidden,animationTypeRef,panelRef]),import_react.useEffect(function(){let panel=panelRef.current;if(!panel)return;function handleBeforeMatch(event){isBeforeMatchRef.current=!0,setOpen(!0),onOpenChange(!0,createChangeEventDetails(none$3,event))}return panel.addEventListener(`beforematch`,handleBeforeMatch),()=>{panel.removeEventListener(`beforematch`,handleBeforeMatch)}},[onOpenChange,panelRef,setOpen]),import_react.useMemo(()=>({props:{hidden,id:idParam,ref:mergedPanelRef}}),[hidden,idParam,mergedPanelRef])}let CollapsiblePanelCssVars=function(CollapsiblePanelCssVars$1){return CollapsiblePanelCssVars$1.collapsiblePanelHeight=`--collapsible-panel-height`,CollapsiblePanelCssVars$1.collapsiblePanelWidth=`--collapsible-panel-width`,CollapsiblePanelCssVars$1}({});const CollapsiblePanel$1=import_react.forwardRef(function(componentProps,forwardedRef){let{className,hiddenUntilFound:hiddenUntilFoundProp,keepMounted:keepMountedProp,render,id:idProp,...elementProps}=componentProps,{abortControllerRef,animationTypeRef,height,mounted,onOpenChange,open,panelId,panelRef,runOnceAnimationsFinish,setDimensions,setHiddenUntilFound,setKeepMounted,setMounted,setPanelIdState,setOpen,setVisible,state:state$1,transitionDimensionRef,visible,width,transitionStatus}=useCollapsibleRootContext(),hiddenUntilFound=hiddenUntilFoundProp??!1,keepMounted=keepMountedProp??!1;useIsoLayoutEffect(()=>{if(idProp)return setPanelIdState(idProp),()=>{setPanelIdState(void 0)}},[idProp,setPanelIdState]),useIsoLayoutEffect(()=>{setHiddenUntilFound(hiddenUntilFound)},[setHiddenUntilFound,hiddenUntilFound]),useIsoLayoutEffect(()=>{setKeepMounted(keepMounted)},[setKeepMounted,keepMounted]);let{props}=useCollapsiblePanel({abortControllerRef,animationTypeRef,externalRef:forwardedRef,height,hiddenUntilFound,id:panelId,keepMounted,mounted,onOpenChange,open,panelRef,runOnceAnimationsFinish,setDimensions,setMounted,setOpen,setVisible,transitionDimensionRef,visible,width});useOpenChangeComplete({open:open&&transitionStatus===`idle`,ref:panelRef,onComplete(){open&&setDimensions({height:void 0,width:void 0})}});let element$3=useRenderElement(`div`,componentProps,{state:import_react.useMemo(()=>({...state$1,transitionStatus}),[state$1,transitionStatus]),ref:[forwardedRef,panelRef],props:[props,{style:{[CollapsiblePanelCssVars.collapsiblePanelHeight]:height===void 0?`auto`:`${height}px`,[CollapsiblePanelCssVars.collapsiblePanelWidth]:width===void 0?`auto`:`${width}px`}},elementProps],stateAttributesMapping:collapsibleStateAttributesMapping});return keepMounted||hiddenUntilFound||!keepMounted&&mounted?element$3:null});function Collapsible({...props}){return(0,import_jsx_runtime.jsx)(CollapsibleRoot,{"data-slot":`collapsible`,...props})}function CollapsibleTrigger({className,...props}){return(0,import_jsx_runtime.jsx)(CollapsibleTrigger$1,{className:cn(`cursor-pointer`,className),"data-slot":`collapsible-trigger`,...props})}function CollapsiblePanel({className,...props}){return(0,import_jsx_runtime.jsx)(CollapsiblePanel$1,{className:cn(`h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-200 data-ending-style:h-0 data-starting-style:h-0`,className),"data-slot":`collapsible-panel`,...props})}const ScrollAreaRootContext=import_react.createContext(void 0);function useScrollAreaRootContext(){let context=import_react.useContext(ScrollAreaRootContext);if(context===void 0)throw Error(formatErrorMessage(53));return context}let ScrollAreaRootCssVars=function(ScrollAreaRootCssVars$1){return ScrollAreaRootCssVars$1.scrollAreaCornerHeight=`--scroll-area-corner-height`,ScrollAreaRootCssVars$1.scrollAreaCornerWidth=`--scroll-area-corner-width`,ScrollAreaRootCssVars$1}({});const SCROLL_TIMEOUT=500,MIN_THUMB_SIZE=16;function getOffset(element$3,prop,axis){if(!element$3)return 0;let styles=getComputedStyle(element$3),propAxis=axis===`x`?`Inline`:`Block`;return axis===`x`&&prop===`margin`?parseFloat(styles[`${prop}InlineStart`])*2:parseFloat(styles[`${prop}${propAxis}Start`])+parseFloat(styles[`${prop}${propAxis}End`])}let ScrollAreaScrollbarDataAttributes=function(ScrollAreaScrollbarDataAttributes$1){return ScrollAreaScrollbarDataAttributes$1.orientation=`data-orientation`,ScrollAreaScrollbarDataAttributes$1.hovering=`data-hovering`,ScrollAreaScrollbarDataAttributes$1.scrolling=`data-scrolling`,ScrollAreaScrollbarDataAttributes$1.hasOverflowX=`data-has-overflow-x`,ScrollAreaScrollbarDataAttributes$1.hasOverflowY=`data-has-overflow-y`,ScrollAreaScrollbarDataAttributes$1.overflowXStart=`data-overflow-x-start`,ScrollAreaScrollbarDataAttributes$1.overflowXEnd=`data-overflow-x-end`,ScrollAreaScrollbarDataAttributes$1.overflowYStart=`data-overflow-y-start`,ScrollAreaScrollbarDataAttributes$1.overflowYEnd=`data-overflow-y-end`,ScrollAreaScrollbarDataAttributes$1}({}),ScrollAreaRootDataAttributes=function(ScrollAreaRootDataAttributes$1){return ScrollAreaRootDataAttributes$1.hasOverflowX=`data-has-overflow-x`,ScrollAreaRootDataAttributes$1.hasOverflowY=`data-has-overflow-y`,ScrollAreaRootDataAttributes$1.overflowXStart=`data-overflow-x-start`,ScrollAreaRootDataAttributes$1.overflowXEnd=`data-overflow-x-end`,ScrollAreaRootDataAttributes$1.overflowYStart=`data-overflow-y-start`,ScrollAreaRootDataAttributes$1.overflowYEnd=`data-overflow-y-end`,ScrollAreaRootDataAttributes$1}({});const scrollAreaStateAttributesMapping={hasOverflowX:value=>value?{[ScrollAreaRootDataAttributes.hasOverflowX]:``}:null,hasOverflowY:value=>value?{[ScrollAreaRootDataAttributes.hasOverflowY]:``}:null,overflowXStart:value=>value?{[ScrollAreaRootDataAttributes.overflowXStart]:``}:null,overflowXEnd:value=>value?{[ScrollAreaRootDataAttributes.overflowXEnd]:``}:null,overflowYStart:value=>value?{[ScrollAreaRootDataAttributes.overflowYStart]:``}:null,overflowYEnd:value=>value?{[ScrollAreaRootDataAttributes.overflowYEnd]:``}:null,cornerHidden:()=>null};var DEFAULT_COORDS={x:0,y:0},DEFAULT_SIZE={width:0,height:0},DEFAULT_OVERFLOW_EDGES={xStart:!1,xEnd:!1,yStart:!1,yEnd:!1},DEFAULT_HIDDEN_STATE={x:!1,y:!1,corner:!1};const ScrollAreaRoot=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,overflowEdgeThreshold:overflowEdgeThresholdProp,...elementProps}=componentProps,overflowEdgeThreshold=normalizeOverflowEdgeThreshold(overflowEdgeThresholdProp),rootId=useBaseUiId(),scrollYTimeout=useTimeout(),scrollXTimeout=useTimeout(),{nonce,disableStyleElements}=useCSPContext(),[hovering,setHovering]=import_react.useState(!1),[scrollingX,setScrollingX]=import_react.useState(!1),[scrollingY,setScrollingY]=import_react.useState(!1),[touchModality,setTouchModality]=import_react.useState(!1),[cornerSize,setCornerSize]=import_react.useState(DEFAULT_SIZE),[thumbSize,setThumbSize]=import_react.useState(DEFAULT_SIZE),[overflowEdges,setOverflowEdges]=import_react.useState(DEFAULT_OVERFLOW_EDGES),[hiddenState,setHiddenState]=import_react.useState(DEFAULT_HIDDEN_STATE),rootRef=import_react.useRef(null),viewportRef=import_react.useRef(null),scrollbarYRef=import_react.useRef(null),scrollbarXRef=import_react.useRef(null),thumbYRef=import_react.useRef(null),thumbXRef=import_react.useRef(null),cornerRef=import_react.useRef(null),thumbDraggingRef=import_react.useRef(!1),startYRef=import_react.useRef(0),startXRef=import_react.useRef(0),startScrollTopRef=import_react.useRef(0),startScrollLeftRef=import_react.useRef(0),currentOrientationRef=import_react.useRef(`vertical`),scrollPositionRef=import_react.useRef(DEFAULT_COORDS),handleScroll=useStableCallback(scrollPosition=>{let offsetX=scrollPosition.x-scrollPositionRef.current.x,offsetY=scrollPosition.y-scrollPositionRef.current.y;scrollPositionRef.current=scrollPosition,offsetY!==0&&(setScrollingY(!0),scrollYTimeout.start(500,()=>{setScrollingY(!1)})),offsetX!==0&&(setScrollingX(!0),scrollXTimeout.start(500,()=>{setScrollingX(!1)}))}),handlePointerDown=useStableCallback(event=>{event.button===0&&(thumbDraggingRef.current=!0,startYRef.current=event.clientY,startXRef.current=event.clientX,currentOrientationRef.current=event.currentTarget.getAttribute(ScrollAreaScrollbarDataAttributes.orientation),viewportRef.current&&(startScrollTopRef.current=viewportRef.current.scrollTop,startScrollLeftRef.current=viewportRef.current.scrollLeft),thumbYRef.current&&currentOrientationRef.current===`vertical`&&thumbYRef.current.setPointerCapture(event.pointerId),thumbXRef.current&&currentOrientationRef.current===`horizontal`&&thumbXRef.current.setPointerCapture(event.pointerId))}),handlePointerMove=useStableCallback(event=>{if(!thumbDraggingRef.current)return;let deltaY=event.clientY-startYRef.current,deltaX=event.clientX-startXRef.current;if(viewportRef.current){let scrollableContentHeight=viewportRef.current.scrollHeight,viewportHeight=viewportRef.current.clientHeight,scrollableContentWidth=viewportRef.current.scrollWidth,viewportWidth=viewportRef.current.clientWidth;if(thumbYRef.current&&scrollbarYRef.current&&currentOrientationRef.current===`vertical`){let scrollbarYOffset=getOffset(scrollbarYRef.current,`padding`,`y`),thumbYOffset=getOffset(thumbYRef.current,`margin`,`y`),thumbHeight=thumbYRef.current.offsetHeight,scrollRatioY=deltaY/(scrollbarYRef.current.offsetHeight-thumbHeight-scrollbarYOffset-thumbYOffset);viewportRef.current.scrollTop=startScrollTopRef.current+scrollRatioY*(scrollableContentHeight-viewportHeight),event.preventDefault(),setScrollingY(!0),scrollYTimeout.start(500,()=>{setScrollingY(!1)})}if(thumbXRef.current&&scrollbarXRef.current&&currentOrientationRef.current===`horizontal`){let scrollbarXOffset=getOffset(scrollbarXRef.current,`padding`,`x`),thumbXOffset=getOffset(thumbXRef.current,`margin`,`x`),thumbWidth=thumbXRef.current.offsetWidth,scrollRatioX=deltaX/(scrollbarXRef.current.offsetWidth-thumbWidth-scrollbarXOffset-thumbXOffset);viewportRef.current.scrollLeft=startScrollLeftRef.current+scrollRatioX*(scrollableContentWidth-viewportWidth),event.preventDefault(),setScrollingX(!0),scrollXTimeout.start(500,()=>{setScrollingX(!1)})}}}),handlePointerUp=useStableCallback(event=>{thumbDraggingRef.current=!1,thumbYRef.current&&currentOrientationRef.current===`vertical`&&thumbYRef.current.releasePointerCapture(event.pointerId),thumbXRef.current&&currentOrientationRef.current===`horizontal`&&thumbXRef.current.releasePointerCapture(event.pointerId)});function handleTouchModalityChange(event){setTouchModality(event.pointerType===`touch`)}function handlePointerEnterOrMove(event){handleTouchModalityChange(event),event.pointerType!==`touch`&&setHovering(contains(rootRef.current,event.target))}let state$1=import_react.useMemo(()=>({hasOverflowX:!hiddenState.x,hasOverflowY:!hiddenState.y,overflowXStart:overflowEdges.xStart,overflowXEnd:overflowEdges.xEnd,overflowYStart:overflowEdges.yStart,overflowYEnd:overflowEdges.yEnd,cornerHidden:hiddenState.corner}),[hiddenState.x,hiddenState.y,hiddenState.corner,overflowEdges]),props={role:`presentation`,onPointerEnter:handlePointerEnterOrMove,onPointerMove:handlePointerEnterOrMove,onPointerDown:handleTouchModalityChange,onPointerLeave(){setHovering(!1)},style:{position:`relative`,[ScrollAreaRootCssVars.scrollAreaCornerHeight]:`${cornerSize.height}px`,[ScrollAreaRootCssVars.scrollAreaCornerWidth]:`${cornerSize.width}px`}},element$3=useRenderElement(`div`,componentProps,{state:state$1,ref:[forwardedRef,rootRef],props:[props,elementProps],stateAttributesMapping:scrollAreaStateAttributesMapping}),contextValue=import_react.useMemo(()=>({handlePointerDown,handlePointerMove,handlePointerUp,handleScroll,cornerSize,setCornerSize,thumbSize,setThumbSize,touchModality,cornerRef,scrollingX,setScrollingX,scrollingY,setScrollingY,hovering,setHovering,viewportRef,rootRef,scrollbarYRef,scrollbarXRef,thumbYRef,thumbXRef,rootId,hiddenState,setHiddenState,overflowEdges,setOverflowEdges,viewportState:state$1,overflowEdgeThreshold}),[handlePointerDown,handlePointerMove,handlePointerUp,handleScroll,cornerSize,thumbSize,touchModality,scrollingX,setScrollingX,scrollingY,setScrollingY,hovering,setHovering,rootId,hiddenState,overflowEdges,state$1,overflowEdgeThreshold]);return(0,import_jsx_runtime.jsxs)(ScrollAreaRootContext.Provider,{value:contextValue,children:[!disableStyleElements&&styleDisableScrollbar.getElement(nonce),element$3]})});function normalizeOverflowEdgeThreshold(threshold){if(typeof threshold==`number`){let value=Math.max(0,threshold);return{xStart:value,xEnd:value,yStart:value,yEnd:value}}return{xStart:Math.max(0,threshold?.xStart||0),xEnd:Math.max(0,threshold?.xEnd||0),yStart:Math.max(0,threshold?.yStart||0),yEnd:Math.max(0,threshold?.yEnd||0)}}const ScrollAreaViewportContext=import_react.createContext(void 0);function onVisible(element$3,callback){if(typeof IntersectionObserver>`u`)return()=>{};let observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{entry.intersectionRatio>0&&(callback(),observer.disconnect())})});return observer.observe(element$3),()=>{observer.disconnect()}}let ScrollAreaViewportCssVars=function(ScrollAreaViewportCssVars$1){return ScrollAreaViewportCssVars$1.scrollAreaOverflowXStart=`--scroll-area-overflow-x-start`,ScrollAreaViewportCssVars$1.scrollAreaOverflowXEnd=`--scroll-area-overflow-x-end`,ScrollAreaViewportCssVars$1.scrollAreaOverflowYStart=`--scroll-area-overflow-y-start`,ScrollAreaViewportCssVars$1.scrollAreaOverflowYEnd=`--scroll-area-overflow-y-end`,ScrollAreaViewportCssVars$1}({});var scrollAreaOverflowVarsRegistered=!1;function removeCSSVariableInheritance(){scrollAreaOverflowVarsRegistered||isWebKit||(typeof CSS<`u`&&`registerProperty`in CSS&&[ScrollAreaViewportCssVars.scrollAreaOverflowXStart,ScrollAreaViewportCssVars.scrollAreaOverflowXEnd,ScrollAreaViewportCssVars.scrollAreaOverflowYStart,ScrollAreaViewportCssVars.scrollAreaOverflowYEnd].forEach(name$2=>{try{CSS.registerProperty({name:name$2,syntax:`<length>`,inherits:!1,initialValue:`0px`})}catch{}}),scrollAreaOverflowVarsRegistered=!0)}const ScrollAreaViewport=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,...elementProps}=componentProps,{viewportRef,scrollbarYRef,scrollbarXRef,thumbYRef,thumbXRef,cornerRef,cornerSize,setCornerSize,setThumbSize,rootId,setHiddenState,hiddenState,handleScroll,setHovering,setOverflowEdges,overflowEdges,overflowEdgeThreshold}=useScrollAreaRootContext(),direction=useDirection(),programmaticScrollRef=import_react.useRef(!0),scrollEndTimeout=useTimeout(),waitForAnimationsTimeout=useTimeout(),computeThumbPosition=useStableCallback(()=>{let viewportEl=viewportRef.current,scrollbarYEl=scrollbarYRef.current,scrollbarXEl=scrollbarXRef.current,thumbYEl=thumbYRef.current,thumbXEl=thumbXRef.current,cornerEl=cornerRef.current;if(!viewportEl)return;let scrollableContentHeight=viewportEl.scrollHeight,scrollableContentWidth=viewportEl.scrollWidth,viewportHeight=viewportEl.clientHeight,viewportWidth=viewportEl.clientWidth,scrollTop=viewportEl.scrollTop,scrollLeft=viewportEl.scrollLeft;if(scrollableContentHeight===0||scrollableContentWidth===0)return;let scrollbarYHidden=viewportHeight>=scrollableContentHeight,scrollbarXHidden=viewportWidth>=scrollableContentWidth,ratioX=viewportWidth/scrollableContentWidth,ratioY=viewportHeight/scrollableContentHeight,maxScrollLeft=Math.max(0,scrollableContentWidth-viewportWidth),maxScrollTop=Math.max(0,scrollableContentHeight-viewportHeight),scrollLeftFromStart=0,scrollLeftFromEnd=0;scrollbarXHidden||(scrollLeftFromStart=clamp(direction===`rtl`?-scrollLeft:scrollLeft,0,maxScrollLeft),scrollLeftFromEnd=maxScrollLeft-scrollLeftFromStart);let scrollTopFromStart=scrollbarYHidden?0:clamp(scrollTop,0,maxScrollTop),scrollTopFromEnd=scrollbarYHidden?0:maxScrollTop-scrollTopFromStart,nextWidth=scrollbarXHidden?0:viewportWidth,nextHeight=scrollbarYHidden?0:viewportHeight,nextCornerWidth=0,nextCornerHeight=0;!scrollbarXHidden&&!scrollbarYHidden&&(nextCornerWidth=scrollbarYEl?.offsetWidth||0,nextCornerHeight=scrollbarXEl?.offsetHeight||0);let cornerNotYetSized=cornerSize.width===0&&cornerSize.height===0,cornerWidthOffset=cornerNotYetSized?nextCornerWidth:0,cornerHeightOffset=cornerNotYetSized?nextCornerHeight:0,scrollbarXOffset=getOffset(scrollbarXEl,`padding`,`x`),scrollbarYOffset=getOffset(scrollbarYEl,`padding`,`y`),thumbXOffset=getOffset(thumbXEl,`margin`,`x`),thumbYOffset=getOffset(thumbYEl,`margin`,`y`),idealNextWidth=nextWidth-scrollbarXOffset-thumbXOffset,idealNextHeight=nextHeight-scrollbarYOffset-thumbYOffset,maxNextWidth=scrollbarXEl?Math.min(scrollbarXEl.offsetWidth-cornerWidthOffset,idealNextWidth):idealNextWidth,maxNextHeight=scrollbarYEl?Math.min(scrollbarYEl.offsetHeight-cornerHeightOffset,idealNextHeight):idealNextHeight,clampedNextWidth=Math.max(16,maxNextWidth*ratioX),clampedNextHeight=Math.max(16,maxNextHeight*ratioY);if(setThumbSize(prevSize=>prevSize.height===clampedNextHeight&&prevSize.width===clampedNextWidth?prevSize:{width:clampedNextWidth,height:clampedNextHeight}),scrollbarYEl&&thumbYEl){let maxThumbOffsetY=scrollbarYEl.offsetHeight-clampedNextHeight-scrollbarYOffset-thumbYOffset,scrollRangeY=scrollableContentHeight-viewportHeight,scrollRatioY=scrollRangeY===0?0:scrollTop/scrollRangeY,thumbOffsetY=Math.min(maxThumbOffsetY,Math.max(0,scrollRatioY*maxThumbOffsetY));thumbYEl.style.transform=`translate3d(0,${thumbOffsetY}px,0)`}if(scrollbarXEl&&thumbXEl){let maxThumbOffsetX=scrollbarXEl.offsetWidth-clampedNextWidth-scrollbarXOffset-thumbXOffset,scrollRangeX=scrollableContentWidth-viewportWidth,scrollRatioX=scrollRangeX===0?0:scrollLeft/scrollRangeX,thumbOffsetX=direction===`rtl`?clamp(scrollRatioX*maxThumbOffsetX,-maxThumbOffsetX,0):clamp(scrollRatioX*maxThumbOffsetX,0,maxThumbOffsetX);thumbXEl.style.transform=`translate3d(${thumbOffsetX}px,0,0)`}let clampedScrollLeftStart=clamp(scrollLeftFromStart,0,maxScrollLeft),clampedScrollLeftEnd=clamp(scrollLeftFromEnd,0,maxScrollLeft),clampedScrollTopStart=clamp(scrollTopFromStart,0,maxScrollTop),clampedScrollTopEnd=clamp(scrollTopFromEnd,0,maxScrollTop),overflowMetricsPx=[[ScrollAreaViewportCssVars.scrollAreaOverflowXStart,clampedScrollLeftStart],[ScrollAreaViewportCssVars.scrollAreaOverflowXEnd,clampedScrollLeftEnd],[ScrollAreaViewportCssVars.scrollAreaOverflowYStart,clampedScrollTopStart],[ScrollAreaViewportCssVars.scrollAreaOverflowYEnd,clampedScrollTopEnd]];for(let[cssVar,value]of overflowMetricsPx)viewportEl.style.setProperty(cssVar,`${value}px`);cornerEl&&(scrollbarXHidden||scrollbarYHidden?setCornerSize({width:0,height:0}):!scrollbarXHidden&&!scrollbarYHidden&&setCornerSize({width:nextCornerWidth,height:nextCornerHeight})),setHiddenState(prevState=>{let cornerHidden=scrollbarYHidden||scrollbarXHidden;return prevState.y===scrollbarYHidden&&prevState.x===scrollbarXHidden&&prevState.corner===cornerHidden?prevState:{y:scrollbarYHidden,x:scrollbarXHidden,corner:cornerHidden}});let nextOverflowEdges={xStart:!scrollbarXHidden&&clampedScrollLeftStart>overflowEdgeThreshold.xStart,xEnd:!scrollbarXHidden&&clampedScrollLeftEnd>overflowEdgeThreshold.xEnd,yStart:!scrollbarYHidden&&clampedScrollTopStart>overflowEdgeThreshold.yStart,yEnd:!scrollbarYHidden&&clampedScrollTopEnd>overflowEdgeThreshold.yEnd};setOverflowEdges(prev=>prev.xStart===nextOverflowEdges.xStart&&prev.xEnd===nextOverflowEdges.xEnd&&prev.yStart===nextOverflowEdges.yStart&&prev.yEnd===nextOverflowEdges.yEnd?prev:nextOverflowEdges)});useIsoLayoutEffect(()=>{if(!viewportRef.current)return;removeCSSVariableInheritance();let hasInitialized=!1;return onVisible(viewportRef.current,()=>{if(!hasInitialized){hasInitialized=!0;return}computeThumbPosition()})},[computeThumbPosition,viewportRef]),useIsoLayoutEffect(()=>{queueMicrotask(computeThumbPosition)},[computeThumbPosition,hiddenState,direction]),useIsoLayoutEffect(()=>{viewportRef.current?.matches(`:hover`)&&setHovering(!0)},[viewportRef,setHovering]),import_react.useEffect(()=>{let viewport=viewportRef.current;if(typeof ResizeObserver>`u`||!viewport)return;let hasInitialized=!1,ro=new ResizeObserver(()=>{if(!hasInitialized){hasInitialized=!0;return}computeThumbPosition()});return ro.observe(viewport),waitForAnimationsTimeout.start(0,()=>{let animations=viewport.getAnimations({subtree:!0});animations.length!==0&&Promise.all(animations.map(animation=>animation.finished)).then(computeThumbPosition).catch(()=>{})}),()=>{ro.disconnect(),waitForAnimationsTimeout.clear()}},[computeThumbPosition,viewportRef,waitForAnimationsTimeout]);function handleUserInteraction(){programmaticScrollRef.current=!1}let props={role:`presentation`,...rootId&&{"data-id":`${rootId}-viewport`},...(!hiddenState.x||!hiddenState.y)&&{tabIndex:0},className:styleDisableScrollbar.className,style:{overflow:`scroll`},onScroll(){viewportRef.current&&(computeThumbPosition(),programmaticScrollRef.current||handleScroll({x:viewportRef.current.scrollLeft,y:viewportRef.current.scrollTop}),scrollEndTimeout.start(100,()=>{programmaticScrollRef.current=!0}))},onWheel:handleUserInteraction,onTouchMove:handleUserInteraction,onPointerMove:handleUserInteraction,onPointerEnter:handleUserInteraction,onKeyDown:handleUserInteraction},viewportState=import_react.useMemo(()=>({hasOverflowX:!hiddenState.x,hasOverflowY:!hiddenState.y,overflowXStart:overflowEdges.xStart,overflowXEnd:overflowEdges.xEnd,overflowYStart:overflowEdges.yStart,overflowYEnd:overflowEdges.yEnd,cornerHidden:hiddenState.corner}),[hiddenState.x,hiddenState.y,hiddenState.corner,overflowEdges]),element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,viewportRef],state:viewportState,props:[props,elementProps],stateAttributesMapping:scrollAreaStateAttributesMapping}),contextValue=import_react.useMemo(()=>({computeThumbPosition}),[computeThumbPosition]);return(0,import_jsx_runtime.jsx)(ScrollAreaViewportContext.Provider,{value:contextValue,children:element$3})}),ScrollAreaScrollbarContext=import_react.createContext(void 0);function useScrollAreaScrollbarContext(){let context=import_react.useContext(ScrollAreaScrollbarContext);if(context===void 0)throw Error(formatErrorMessage(54));return context}let ScrollAreaScrollbarCssVars=function(ScrollAreaScrollbarCssVars$1){return ScrollAreaScrollbarCssVars$1.scrollAreaThumbHeight=`--scroll-area-thumb-height`,ScrollAreaScrollbarCssVars$1.scrollAreaThumbWidth=`--scroll-area-thumb-width`,ScrollAreaScrollbarCssVars$1}({});const ScrollAreaScrollbar=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,orientation=`vertical`,keepMounted=!1,...elementProps}=componentProps,{hovering,scrollingX,scrollingY,hiddenState,overflowEdges,scrollbarYRef,scrollbarXRef,viewportRef,thumbYRef,thumbXRef,handlePointerDown,handlePointerUp,rootId,thumbSize}=useScrollAreaRootContext(),state$1=import_react.useMemo(()=>({hovering,scrolling:{horizontal:scrollingX,vertical:scrollingY}[orientation],orientation,hasOverflowX:!hiddenState.x,hasOverflowY:!hiddenState.y,overflowXStart:overflowEdges.xStart,overflowXEnd:overflowEdges.xEnd,overflowYStart:overflowEdges.yStart,overflowYEnd:overflowEdges.yEnd,cornerHidden:hiddenState.corner}),[hovering,scrollingX,scrollingY,orientation,hiddenState,overflowEdges]),direction=useDirection();import_react.useEffect(()=>{let viewportEl=viewportRef.current,scrollbarEl=orientation===`vertical`?scrollbarYRef.current:scrollbarXRef.current;if(!scrollbarEl)return;function handleWheel(event){if(!(!viewportEl||!scrollbarEl||event.ctrlKey)){if(event.preventDefault(),orientation===`vertical`){if(viewportEl.scrollTop===0&&event.deltaY<0)return}else if(viewportEl.scrollLeft===0&&event.deltaX<0)return;if(orientation===`vertical`){if(viewportEl.scrollTop===viewportEl.scrollHeight-viewportEl.clientHeight&&event.deltaY>0)return}else if(viewportEl.scrollLeft===viewportEl.scrollWidth-viewportEl.clientWidth&&event.deltaX>0)return;orientation===`vertical`?viewportEl.scrollTop+=event.deltaY:viewportEl.scrollLeft+=event.deltaX}}return scrollbarEl.addEventListener(`wheel`,handleWheel,{passive:!1}),()=>{scrollbarEl.removeEventListener(`wheel`,handleWheel)}},[orientation,scrollbarXRef,scrollbarYRef,viewportRef]);let props={...rootId&&{"data-id":`${rootId}-scrollbar`},onPointerDown(event){if(event.button===0&&event.currentTarget===event.target&&viewportRef.current){if(thumbYRef.current&&scrollbarYRef.current&&orientation===`vertical`){let thumbYOffset=getOffset(thumbYRef.current,`margin`,`y`),scrollbarYOffset=getOffset(scrollbarYRef.current,`padding`,`y`),thumbHeight=thumbYRef.current.offsetHeight,trackRectY=scrollbarYRef.current.getBoundingClientRect(),clickY=event.clientY-trackRectY.top-thumbHeight/2-scrollbarYOffset+thumbYOffset/2,scrollableContentHeight=viewportRef.current.scrollHeight,viewportHeight=viewportRef.current.clientHeight,newScrollTop=clickY/(scrollbarYRef.current.offsetHeight-thumbHeight-scrollbarYOffset-thumbYOffset)*(scrollableContentHeight-viewportHeight);viewportRef.current.scrollTop=newScrollTop}if(thumbXRef.current&&scrollbarXRef.current&&orientation===`horizontal`){let thumbXOffset=getOffset(thumbXRef.current,`margin`,`x`),scrollbarXOffset=getOffset(scrollbarXRef.current,`padding`,`x`),thumbWidth=thumbXRef.current.offsetWidth,trackRectX=scrollbarXRef.current.getBoundingClientRect(),clickX=event.clientX-trackRectX.left-thumbWidth/2-scrollbarXOffset+thumbXOffset/2,scrollableContentWidth=viewportRef.current.scrollWidth,viewportWidth=viewportRef.current.clientWidth,scrollRatioX=clickX/(scrollbarXRef.current.offsetWidth-thumbWidth-scrollbarXOffset-thumbXOffset),newScrollLeft;direction===`rtl`?(newScrollLeft=(1-scrollRatioX)*(scrollableContentWidth-viewportWidth),viewportRef.current.scrollLeft<=0&&(newScrollLeft=-newScrollLeft)):newScrollLeft=scrollRatioX*(scrollableContentWidth-viewportWidth),viewportRef.current.scrollLeft=newScrollLeft}handlePointerDown(event)}},onPointerUp:handlePointerUp,style:{position:`absolute`,touchAction:`none`,WebkitUserSelect:`none`,userSelect:`none`,...orientation===`vertical`&&{top:0,bottom:`var(${ScrollAreaRootCssVars.scrollAreaCornerHeight})`,insetInlineEnd:0,[ScrollAreaScrollbarCssVars.scrollAreaThumbHeight]:`${thumbSize.height}px`},...orientation===`horizontal`&&{insetInlineStart:0,insetInlineEnd:`var(${ScrollAreaRootCssVars.scrollAreaCornerWidth})`,bottom:0,[ScrollAreaScrollbarCssVars.scrollAreaThumbWidth]:`${thumbSize.width}px`}}},element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,orientation===`vertical`?scrollbarYRef:scrollbarXRef],state:state$1,props:[props,elementProps],stateAttributesMapping:scrollAreaStateAttributesMapping}),contextValue=import_react.useMemo(()=>({orientation}),[orientation]),isHidden$1=orientation===`vertical`?hiddenState.y:hiddenState.x;return keepMounted||!isHidden$1?(0,import_jsx_runtime.jsx)(ScrollAreaScrollbarContext.Provider,{value:contextValue,children:element$3}):null}),ScrollAreaThumb=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,...elementProps}=componentProps,{thumbYRef,thumbXRef,handlePointerDown,handlePointerMove,handlePointerUp,setScrollingX,setScrollingY}=useScrollAreaRootContext(),{orientation}=useScrollAreaScrollbarContext(),state$1=import_react.useMemo(()=>({orientation}),[orientation]);return useRenderElement(`div`,componentProps,{ref:[forwardedRef,orientation===`vertical`?thumbYRef:thumbXRef],state:state$1,props:[{onPointerDown:handlePointerDown,onPointerMove:handlePointerMove,onPointerUp(event){orientation===`vertical`&&setScrollingY(!1),orientation===`horizontal`&&setScrollingX(!1),handlePointerUp(event)},style:{...orientation===`vertical`&&{height:`var(${ScrollAreaScrollbarCssVars.scrollAreaThumbHeight})`},...orientation===`horizontal`&&{width:`var(${ScrollAreaScrollbarCssVars.scrollAreaThumbWidth})`}}},elementProps]})}),ScrollAreaCorner=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,...elementProps}=componentProps,{cornerRef,cornerSize,hiddenState}=useScrollAreaRootContext(),element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,cornerRef],props:[{style:{position:`absolute`,bottom:0,insetInlineEnd:0,width:cornerSize.width,height:cornerSize.height}},elementProps]});return hiddenState.corner?null:element$3});function ScrollArea({className,children,scrollFade=!1,scrollbarGutter=!1,...props}){return(0,import_jsx_runtime.jsxs)(ScrollAreaRoot,{className:cn(`size-full min-h-0`,className),...props,children:[(0,import_jsx_runtime.jsx)(ScrollAreaViewport,{className:cn(`h-full overscroll-contain rounded-[inherit] outline-none transition-shadows focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background`,scrollFade&&`mask-t-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-start)))] mask-b-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-end)))] mask-l-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-start)))] mask-r-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-end)))] [--fade-size:1.5rem]`,scrollbarGutter&&`data-has-overflow-y:pe-2.5 data-has-overflow-x:pb-2.5`),"data-slot":`scroll-area-viewport`,children}),(0,import_jsx_runtime.jsx)(ScrollBar,{orientation:`vertical`}),(0,import_jsx_runtime.jsx)(ScrollBar,{orientation:`horizontal`}),(0,import_jsx_runtime.jsx)(ScrollAreaCorner,{"data-slot":`scroll-area-corner`})]})}function ScrollBar({className,orientation=`vertical`,...props}){return(0,import_jsx_runtime.jsx)(ScrollAreaScrollbar,{className:cn(`m-1 flex opacity-0 transition-opacity delay-300 data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5 data-[orientation=horizontal]:flex-col data-hovering:opacity-100 data-scrolling:opacity-100 data-hovering:delay-0 data-scrolling:delay-0 data-hovering:duration-100 data-scrolling:duration-100`,className),"data-slot":`scroll-area-scrollbar`,orientation,...props,children:(0,import_jsx_runtime.jsx)(ScrollAreaThumb,{className:`relative flex-1 rounded-full bg-foreground/20`,"data-slot":`scroll-area-thumb`})})}function highlightMatch(text$5,query){if(!query)return text$5;let index$4=text$5.toLowerCase().indexOf(query.toLowerCase());return index$4===-1?text$5:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[text$5.slice(0,index$4),(0,import_jsx_runtime.jsx)(`mark`,{className:`bg-yellow-200 text-inherit`,children:text$5.slice(index$4,index$4+query.length)}),text$5.slice(index$4+query.length)]})}function ObjectSection({title,icon:Icon$1,objects,searchQuery,selectedObject,onObjectSelect,onObjectDoubleClick,onViewSchema,onGenerateSQL,schema,objectType}){let[sectionOpen,setSectionOpen]=(0,import_react.useState)(!0),filteredObjects=objects.filter(obj=>obj.name.toLowerCase().includes(searchQuery.toLowerCase()));return filteredObjects.length===0&&searchQuery?null:(0,import_jsx_runtime.jsxs)(Collapsible,{open:sectionOpen,onOpenChange:setSectionOpen,className:`mt-2 first:mt-0`,children:[(0,import_jsx_runtime.jsxs)(CollapsibleTrigger,{className:`flex items-center gap-1.5 w-full px-2 py-1 text-xs font-semibold text-gray-500 uppercase tracking-wide hover:text-gray-700 rounded overflow-hidden`,children:[(0,import_jsx_runtime.jsx)(ChevronRight,{className:cn(`size-3 shrink-0 transition-transform`,sectionOpen&&`rotate-90`)}),(0,import_jsx_runtime.jsx)(Icon$1,{className:`size-3.5 shrink-0`}),(0,import_jsx_runtime.jsx)(`span`,{className:`truncate`,children:title}),(0,import_jsx_runtime.jsx)(Badge,{variant:`secondary`,size:`sm`,className:`rounded-full shrink-0 text-[10px] lowercase`,children:filteredObjects.length})]}),(0,import_jsx_runtime.jsx)(CollapsiblePanel,{children:(0,import_jsx_runtime.jsx)(`div`,{className:`ml-5 mt-0.5 border-l border-gray-200 pl-1`,children:filteredObjects.map(obj=>{let objectKey=obj.arguments===void 0?obj.name:`${obj.name}(${obj.arguments})`,isSelected=selectedObject?.schema===schema&&selectedObject?.name===obj.name&&selectedObject?.type===objectType&&(obj.arguments===void 0||selectedObject?.arguments===obj.arguments);return(0,import_jsx_runtime.jsx)(ObjectItem,{objectName:obj.name,searchQuery,isSelected,onClick:()=>{onObjectSelect({schema,name:obj.name,type:objectType,arguments:obj.arguments})},onDoubleClick:()=>onObjectDoubleClick(schema,obj.name,objectType,obj.arguments),onViewSchema:()=>onViewSchema(schema,obj.name,objectType,obj.arguments),onGenerateSQL:onGenerateSQL?sqlType=>onGenerateSQL(schema,obj.name,objectType,sqlType):void 0,objectType},objectKey)})})})]})}function ObjectItem({objectName,searchQuery,isSelected,onClick,onDoubleClick,onViewSchema,onGenerateSQL,objectType}){let isFunction=objectType===`function`||objectType===`procedure`,isTableLike=objectType===`table`||objectType===`view`||objectType===`materialized_view`,isTable=objectType===`table`,[contextMenu,setContextMenu]=(0,import_react.useState)(null),[submenuOpen,setSubmenuOpen]=(0,import_react.useState)(!1),closeTimeoutRef=(0,import_react.useRef)(null),handleSubmenuEnter=()=>{closeTimeoutRef.current&&=(clearTimeout(closeTimeoutRef.current),null),setSubmenuOpen(!0)},handleSubmenuLeave=()=>{closeTimeoutRef.current=window.setTimeout(()=>{setSubmenuOpen(!1)},100)},closeMenu=()=>{setSubmenuOpen(!1),setContextMenu(null)};return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`div`,{className:cn(`group flex items-center gap-1 w-full px-2 py-0.5 text-[13px] text-gray-700 rounded cursor-pointer`,isSelected?`bg-blue-100 text-blue-900`:`hover:bg-gray-50`),onClick,onDoubleClick,onContextMenu:e=>{e.preventDefault(),setContextMenu({x:e.clientX,y:e.clientY})},children:[(0,import_jsx_runtime.jsx)(`span`,{className:`flex-1 truncate`,children:highlightMatch(objectName,searchQuery)}),(0,import_jsx_runtime.jsx)(`button`,{type:`button`,className:`opacity-0 group-hover:opacity-100 p-0.5 rounded hover:bg-accent text-gray-500 hover:text-gray-700`,onClick:e=>{e.stopPropagation(),onViewSchema()},title:isFunction?`View definition`:`View schema`,children:(0,import_jsx_runtime.jsx)(Info$1,{className:`size-3.5`})})]}),contextMenu&&(0,import_jsx_runtime.jsxs)(`div`,{className:`fixed z-50`,style:{left:contextMenu.x,top:contextMenu.y},children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`min-w-32 rounded-lg border bg-popover shadow-lg p-1`,onMouseLeave:()=>{submenuOpen||closeMenu()},children:[(0,import_jsx_runtime.jsx)(`button`,{className:`flex w-full min-h-7 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-sm outline-none hover:bg-accent hover:text-accent-foreground`,onClick:()=>{onDoubleClick(),closeMenu()},children:isFunction?`Edit Definition`:`Select Rows`}),(0,import_jsx_runtime.jsx)(`button`,{className:`flex w-full min-h-7 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-sm outline-none hover:bg-accent hover:text-accent-foreground`,onClick:()=>{onViewSchema(),closeMenu()},children:isFunction?`View Definition`:`View Schema`}),isTableLike&&onGenerateSQL&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`div`,{className:`mx-2 my-1 h-px bg-border`}),(0,import_jsx_runtime.jsxs)(`div`,{className:`relative`,onMouseEnter:handleSubmenuEnter,onMouseLeave:handleSubmenuLeave,children:[(0,import_jsx_runtime.jsxs)(`button`,{className:cn(`flex w-full min-h-7 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-sm outline-none hover:bg-accent hover:text-accent-foreground`,submenuOpen&&`bg-accent text-accent-foreground`),children:[(0,import_jsx_runtime.jsx)(`span`,{className:`whitespace-nowrap`,children:`Quick SQL`}),(0,import_jsx_runtime.jsx)(ChevronRight,{className:`ml-auto size-4 opacity-80`})]}),submenuOpen&&(0,import_jsx_runtime.jsxs)(`div`,{className:`absolute left-full top-0 ml-0 min-w-24 rounded-lg border bg-popover shadow-lg p-1`,onMouseEnter:handleSubmenuEnter,onMouseLeave:handleSubmenuLeave,children:[(0,import_jsx_runtime.jsx)(`button`,{className:`flex w-full min-h-7 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-sm outline-none hover:bg-accent hover:text-accent-foreground`,onClick:()=>{onGenerateSQL(`select`),closeMenu()},children:`SELECT`}),isTable&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`button`,{className:`flex w-full min-h-7 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-sm outline-none hover:bg-accent hover:text-accent-foreground`,onClick:()=>{onGenerateSQL(`insert`),closeMenu()},children:`INSERT`}),(0,import_jsx_runtime.jsx)(`button`,{className:`flex w-full min-h-7 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-sm outline-none hover:bg-accent hover:text-accent-foreground`,onClick:()=>{onGenerateSQL(`update`),closeMenu()},children:`UPDATE`}),(0,import_jsx_runtime.jsx)(`button`,{className:`flex w-full min-h-7 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-sm outline-none hover:bg-accent hover:text-accent-foreground`,onClick:()=>{onGenerateSQL(`delete`),closeMenu()},children:`DELETE`})]})]})]})]})]}),(0,import_jsx_runtime.jsx)(`div`,{className:`fixed inset-0 -z-10`,onClick:closeMenu,onContextMenu:e=>{e.preventDefault(),closeMenu()}})]})]})}function ObjectTree(props){let{tables,views,materializedViews,functions,procedures,connectionId:_connectionId,...shared}=props;return(0,import_jsx_runtime.jsx)(ScrollArea,{className:`flex-1`,children:(0,import_jsx_runtime.jsxs)(`div`,{className:`py-1 px-2`,children:[(0,import_jsx_runtime.jsx)(ObjectSection,{title:`Tables`,icon:Grid3x3,objects:tables,objectType:`table`,...shared}),(0,import_jsx_runtime.jsx)(ObjectSection,{title:`Views`,icon:Eye,objects:views,objectType:`view`,...shared}),(0,import_jsx_runtime.jsx)(ObjectSection,{title:`Materialized`,icon:Layers,objects:materializedViews,objectType:`materialized_view`,...shared}),(0,import_jsx_runtime.jsx)(ObjectSection,{title:`Functions`,icon:SquareFunction,objects:functions,objectType:`function`,...shared}),(0,import_jsx_runtime.jsx)(ObjectSection,{title:`Procedures`,icon:Code,objects:procedures,objectType:`procedure`,...shared})]})})}function ObjectSidebar({connectionId,selectedObject,onObjectSelect,onObjectDoubleClick,onViewSchema,onGenerateSQL,selectedSchema,onSchemaChange,onNewQuery,schemas,tables,isSchemasLoading,isTablesLoading,schemasError,tablesError}){let[searchQuery,setSearchQuery]=(0,import_react.useState)(``),queryClient$2=useQueryClient(),{mutate:refreshSchemaCache}=useRefreshSchemaCache(),{data:materializedViewsData=[],isLoading:mvLoading,error:mvError,refetch:refetchMaterializedViews}=useMaterializedViews(connectionId,selectedSchema||``),{data:functionsData=[],isLoading:functionsLoading,error:functionsError,refetch:refetchFunctions}=useFunctions(connectionId,selectedSchema||``),{data:proceduresData=[],isLoading:proceduresLoading,error:proceduresError,refetch:refetchProcedures}=useProcedures(connectionId,selectedSchema||``),tablesList=tables.filter(t$1=>t$1.type===`table`),viewsList=tables.filter(t$1=>t$1.type===`view`),isLoading=isSchemasLoading||isTablesLoading||mvLoading||functionsLoading||proceduresLoading,hasError=schemasError||tablesError||mvError||functionsError||proceduresError,errorMessage=schemasError?.message||tablesError?.message||mvError?.message||functionsError?.message||proceduresError?.message;return(0,import_jsx_runtime.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`px-2 pt-2 space-y-2`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex gap-1 items-center`,children:[(0,import_jsx_runtime.jsx)(SchemaSelector,{value:selectedSchema||``,onChange:onSchemaChange,schemas,disabled:isSchemasLoading}),(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{render:(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`icon-sm`,className:`shrink-0`,onClick:()=>{queryClient$2.invalidateQueries({queryKey:queryKeys.schemas(connectionId)}),selectedSchema&&queryClient$2.invalidateQueries({queryKey:queryKeys.tables(connectionId,selectedSchema)}),refetchMaterializedViews(),refetchFunctions(),refetchProcedures(),queryClient$2.invalidateQueries({queryKey:[...connectionKeys.all,`health`,connectionId]}),refreshSchemaCache({connectionId,schemas:selectedSchema?[selectedSchema]:[]})},children:(0,import_jsx_runtime.jsx)(RefreshCw,{className:`h-2 w-2`})})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{side:`bottom`,children:`Refresh`})]}),onNewQuery&&(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{render:(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`icon-sm`,className:`shrink-0 font-mono font-semibold`,onClick:()=>onNewQuery(),children:`SQL`})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{side:`bottom`,children:`New Query`})]})]}),(0,import_jsx_runtime.jsx)(SearchInput,{value:searchQuery,onChange:e=>setSearchQuery(e.target.value),onClear:()=>setSearchQuery(``),size:`sm`})]}),hasError?(0,import_jsx_runtime.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center text-red-500 text-sm px-4 text-center gap-2`,children:[(0,import_jsx_runtime.jsx)(`div`,{children:`Failed to load schema`}),errorMessage&&(0,import_jsx_runtime.jsx)(`div`,{className:`text-xs text-gray-600 max-w-full break-words`,children:errorMessage}),(0,import_jsx_runtime.jsx)(`div`,{className:`text-xs text-gray-500`,children:`Use the refresh button above to retry`})]}):isLoading?(0,import_jsx_runtime.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-gray-500 text-sm`,children:`Loading...`}):(0,import_jsx_runtime.jsx)(ObjectTree,{tables:tablesList,views:viewsList,materializedViews:materializedViewsData,functions:functionsData,procedures:proceduresData,searchQuery,selectedObject,onObjectSelect,onObjectDoubleClick,onViewSchema,onGenerateSQL,schema:selectedSchema||``,connectionId})]})}function getSchemaTabIcon(objectType){switch(objectType){case`view`:return Eye;case`materialized_view`:return Layers;case`function`:return SquareFunction;case`procedure`:return Code;case`table`:default:return Grid3x3}}function EditorTabs({tabs,activeTabId,onTabSelect,onTabClose,onCloseOthers,onCloseToRight,onCloseAll,rightPanelOpen,onRightPanelToggle}){let scrollContainerRef=(0,import_react.useRef)(null),[contextMenu,setContextMenu]=(0,import_react.useState)(null),handleWheel=(0,import_react.useCallback)(e=>{scrollContainerRef.current&&(e.preventDefault(),scrollContainerRef.current.scrollLeft+=e.deltaY)},[]),handleContextMenu=(0,import_react.useCallback)((e,tabId)=>{e.preventDefault(),setContextMenu({tabId,x:e.clientX,y:e.clientY})},[]),closeContextMenu=(0,import_react.useCallback)(()=>{setContextMenu(null)},[]),isLastTab=(contextMenu?tabs.findIndex(t$1=>t$1.tab.id===contextMenu.tabId):-1)===tabs.length-1;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`div`,{ref:scrollContainerRef,className:`flex items-center flex-1 min-w-0 overflow-x-auto [&::-webkit-scrollbar]:h-1 [&::-webkit-scrollbar]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-transparent hover:[&::-webkit-scrollbar-thumb]:bg-gray-300`,onWheel:handleWheel,children:tabs.map(({tab:tab$1})=>(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{render:(0,import_jsx_runtime.jsxs)(`div`,{className:cn(`group flex items-center gap-1 h-8 px-3 border-r border-gray-200 cursor-pointer text-sm shrink min-w-0`,activeTabId===tab$1.id?`bg-white text-gray-900`:`text-gray-600 hover:bg-gray-100`),style:{minWidth:`80px`,maxWidth:`160px`},onClick:()=>onTabSelect(tab$1.id),onContextMenu:e=>handleContextMenu(e,tab$1.id),children:[tab$1.type===`schema`?(()=>(0,import_jsx_runtime.jsx)(getSchemaTabIcon(tab$1.objectType),{className:`size-3.5 shrink-0 text-gray-500`}))():(0,import_jsx_runtime.jsx)(FileCode,{className:`size-3.5 shrink-0 text-gray-500`}),(0,import_jsx_runtime.jsx)(`span`,{className:`truncate flex-1`,children:tab$1.name}),(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,className:`opacity-0 group-hover:opacity-100 shrink-0 !size-4 !min-h-0 !p-0 !rounded-sm`,onClick:e=>{e.stopPropagation(),onTabClose(tab$1.id)},children:(0,import_jsx_runtime.jsx)(X,{className:`size-3`})})]})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{side:`bottom`,children:tab$1.name})]},tab$1.id))}),onRightPanelToggle&&(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{render:(0,import_jsx_runtime.jsx)(Button,{variant:rightPanelOpen?`secondary`:`ghost`,size:`icon-sm`,className:`shrink-0 mx-1`,onClick:onRightPanelToggle,children:(0,import_jsx_runtime.jsx)(PanelRight,{className:`size-4`})})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{side:`bottom`,children:rightPanelOpen?`Hide panel`:`Show panel`})]}),(0,import_jsx_runtime.jsx)(Menu,{open:contextMenu!==null,onOpenChange:open=>!open&&closeContextMenu(),children:(0,import_jsx_runtime.jsxs)(MenuPopup,{className:`whitespace-nowrap`,style:{position:`fixed`,left:contextMenu?.x??0,top:contextMenu?.y??0},side:`bottom`,align:`start`,sideOffset:0,children:[(0,import_jsx_runtime.jsx)(MenuItem,{onClick:()=>{contextMenu&&onTabClose(contextMenu.tabId),closeContextMenu()},children:`Close`}),(0,import_jsx_runtime.jsx)(MenuItem,{onClick:()=>{contextMenu&&onCloseOthers(contextMenu.tabId),closeContextMenu()},disabled:tabs.length<=1,children:`Close Others`}),(0,import_jsx_runtime.jsx)(MenuItem,{onClick:()=>{contextMenu&&onCloseToRight(contextMenu.tabId),closeContextMenu()},disabled:isLastTab,children:`Close to the Right`}),(0,import_jsx_runtime.jsx)(MenuSeparator,{}),(0,import_jsx_runtime.jsx)(MenuItem,{onClick:()=>{onCloseAll(),closeContextMenu()},children:`Close All`})]})})]})}var rangeFrom=[],rangeTo=[];(()=>{let numbers=`lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o`.split(`,`).map(s$1=>s$1?parseInt(s$1,36):1);for(let i$3=0,n=0;i$3<numbers.length;i$3++)(i$3%2?rangeTo:rangeFrom).push(n+=numbers[i$3])})();function isExtendingChar(code$2){if(code$2<768)return!1;for(let from=0,to=rangeFrom.length;;){let mid=from+to>>1;if(code$2<rangeFrom[mid])to=mid;else if(code$2>=rangeTo[mid])from=mid+1;else return!0;if(from==to)return!1}}function isRegionalIndicator(code$2){return code$2>=127462&&code$2<=127487}var ZWJ=8205;function findClusterBreak$1(str,pos,forward=!0,includeExtending=!0){return(forward?nextClusterBreak:prevClusterBreak)(str,pos,includeExtending)}function nextClusterBreak(str,pos,includeExtending){if(pos==str.length)return pos;pos&&surrogateLow$1(str.charCodeAt(pos))&&surrogateHigh$1(str.charCodeAt(pos-1))&&pos--;let prev=codePointAt$1(str,pos);for(pos+=codePointSize$1(prev);pos<str.length;){let next=codePointAt$1(str,pos);if(prev==ZWJ||next==ZWJ||includeExtending&&isExtendingChar(next))pos+=codePointSize$1(next),prev=next;else if(isRegionalIndicator(next)){let countBefore=0,i$3=pos-2;for(;i$3>=0&&isRegionalIndicator(codePointAt$1(str,i$3));)countBefore++,i$3-=2;if(countBefore%2==0)break;pos+=2}else break}return pos}function prevClusterBreak(str,pos,includeExtending){for(;pos>0;){let found=nextClusterBreak(str,pos-2,includeExtending);if(found<pos)return found;pos--}return 0}function codePointAt$1(str,pos){let code0=str.charCodeAt(pos);if(!surrogateHigh$1(code0)||pos+1==str.length)return code0;let code1=str.charCodeAt(pos+1);return surrogateLow$1(code1)?(code0-55296<<10)+(code1-56320)+65536:code0}function surrogateLow$1(ch){return ch>=56320&&ch<57344}function surrogateHigh$1(ch){return ch>=55296&&ch<56320}function codePointSize$1(code$2){return code$2<65536?1:2}var Text=class Text{lineAt(pos){if(pos<0||pos>this.length)throw RangeError(`Invalid position ${pos} in document of length ${this.length}`);return this.lineInner(pos,!1,1,0)}line(n){if(n<1||n>this.lines)throw RangeError(`Invalid line number ${n} in ${this.lines}-line document`);return this.lineInner(n,!0,1,0)}replace(from,to,text$5){[from,to]=clip(this,from,to);let parts=[];return this.decompose(0,from,parts,2),text$5.length&&text$5.decompose(0,text$5.length,parts,3),this.decompose(to,this.length,parts,1),TextNode.from(parts,this.length-(to-from)+text$5.length)}append(other){return this.replace(this.length,this.length,other)}slice(from,to=this.length){[from,to]=clip(this,from,to);let parts=[];return this.decompose(from,to,parts,0),TextNode.from(parts,to-from)}eq(other){if(other==this)return!0;if(other.length!=this.length||other.lines!=this.lines)return!1;let start=this.scanIdentical(other,1),end=this.length-this.scanIdentical(other,-1),a$1=new RawTextCursor(this),b$2=new RawTextCursor(other);for(let skip=start,pos=start;;){if(a$1.next(skip),b$2.next(skip),skip=0,a$1.lineBreak!=b$2.lineBreak||a$1.done!=b$2.done||a$1.value!=b$2.value)return!1;if(pos+=a$1.value.length,a$1.done||pos>=end)return!0}}iter(dir=1){return new RawTextCursor(this,dir)}iterRange(from,to=this.length){return new PartialTextCursor(this,from,to)}iterLines(from,to){let inner;if(from==null)inner=this.iter();else{to??=this.lines+1;let start=this.line(from).from;inner=this.iterRange(start,Math.max(start,to==this.lines+1?this.length:to<=1?0:this.line(to-1).to))}return new LineCursor(inner)}toString(){return this.sliceString(0)}toJSON(){let lines=[];return this.flatten(lines),lines}constructor(){}static of(text$5){if(text$5.length==0)throw RangeError(`A document must have at least one line`);return text$5.length==1&&!text$5[0]?Text.empty:text$5.length<=32?new TextLeaf(text$5):TextNode.from(TextLeaf.split(text$5,[]))}},TextLeaf=class TextLeaf extends Text{constructor(text$5,length=textLength(text$5)){super(),this.text=text$5,this.length=length}get lines(){return this.text.length}get children(){return null}lineInner(target,isLine,line,offset$3){for(let i$3=0;;i$3++){let string$3=this.text[i$3],end=offset$3+string$3.length;if((isLine?line:end)>=target)return new Line(offset$3,end,line,string$3);offset$3=end+1,line++}}decompose(from,to,target,open){let text$5=from<=0&&to>=this.length?this:new TextLeaf(sliceText(this.text,from,to),Math.min(to,this.length)-Math.max(0,from));if(open&1){let prev=target.pop(),joined=appendText(text$5.text,prev.text.slice(),0,text$5.length);if(joined.length<=32)target.push(new TextLeaf(joined,prev.length+text$5.length));else{let mid=joined.length>>1;target.push(new TextLeaf(joined.slice(0,mid)),new TextLeaf(joined.slice(mid)))}}else target.push(text$5)}replace(from,to,text$5){if(!(text$5 instanceof TextLeaf))return super.replace(from,to,text$5);[from,to]=clip(this,from,to);let lines=appendText(this.text,appendText(text$5.text,sliceText(this.text,0,from)),to),newLen=this.length+text$5.length-(to-from);return lines.length<=32?new TextLeaf(lines,newLen):TextNode.from(TextLeaf.split(lines,[]),newLen)}sliceString(from,to=this.length,lineSep=`
24
+ `:case`\r`:case` `:case` `:continue;default:throw Error(`invalid base64 string.`)}switch(groupPos){case 0:p$1=b$2,groupPos=1;break;case 1:bytes[bytePos++]=p$1<<2|(b$2&48)>>4,p$1=b$2,groupPos=2;break;case 2:bytes[bytePos++]=(p$1&15)<<4|(b$2&60)>>2,p$1=b$2,groupPos=3;break;case 3:bytes[bytePos++]=(p$1&3)<<6|b$2,groupPos=0;break}}if(groupPos==1)throw Error(`invalid base64 string.`);return bytes.subarray(0,bytePos)},enc(bytes){let base64$2=``,groupPos=0,b$2,p$1=0;for(let i$3=0;i$3<bytes.length;i$3++)switch(b$2=bytes[i$3],groupPos){case 0:base64$2+=encTable[b$2>>2],p$1=(b$2&3)<<4,groupPos=1;break;case 1:base64$2+=encTable[p$1|b$2>>4],p$1=(b$2&15)<<2,groupPos=2;break;case 2:base64$2+=encTable[p$1|b$2>>6],base64$2+=encTable[b$2&63],groupPos=0;break}return groupPos&&(base64$2+=encTable[p$1],base64$2+=`=`,groupPos==1&&(base64$2+=`=`)),base64$2}};function getExtension(message,extension$1,options$1){assertExtendee(extension$1,message);let opt=extension$1.runtime.bin.makeReadOptions(options$1),ufs=filterUnknownFields(message.getType().runtime.bin.listUnknownFields(message),extension$1.field),[container,get]=createExtensionContainer(extension$1);for(let uf of ufs)extension$1.runtime.bin.readField(container,opt.readerFactory(uf.data),extension$1.field,uf.wireType,opt);return get()}function setExtension(message,extension$1,value,options$1){assertExtendee(extension$1,message);let readOpt=extension$1.runtime.bin.makeReadOptions(options$1),writeOpt=extension$1.runtime.bin.makeWriteOptions(options$1);if(hasExtension(message,extension$1)){let ufs=message.getType().runtime.bin.listUnknownFields(message).filter(uf=>uf.no!=extension$1.field.no);message.getType().runtime.bin.discardUnknownFields(message);for(let uf of ufs)message.getType().runtime.bin.onUnknownField(message,uf.no,uf.wireType,uf.data)}let writer=writeOpt.writerFactory(),f$2=extension$1.field;!f$2.opt&&!f$2.repeated&&(f$2.kind==`enum`||f$2.kind==`scalar`)&&(f$2=Object.assign(Object.assign({},extension$1.field),{opt:!0})),extension$1.runtime.bin.writeField(f$2,value,writer,writeOpt);let reader=readOpt.readerFactory(writer.finish());for(;reader.pos<reader.len;){let[no,wireType]=reader.tag(),data=reader.skip(wireType,no);message.getType().runtime.bin.onUnknownField(message,no,wireType,data)}}function hasExtension(message,extension$1){let messageType=message.getType();return extension$1.extendee.typeName===messageType.typeName&&!!messageType.runtime.bin.listUnknownFields(message).find(uf=>uf.no==extension$1.field.no)}function assertExtendee(extension$1,message){assert(extension$1.extendee.typeName==message.getType().typeName,`extension ${extension$1.typeName} can only be applied to message ${extension$1.extendee.typeName}`)}function isFieldSet(field,target){let localName=field.localName;if(field.repeated)return target[localName].length>0;if(field.oneof)return target[field.oneof.localName].case===localName;switch(field.kind){case`enum`:case`scalar`:return field.opt||field.req?target[localName]!==void 0:field.kind==`enum`?target[localName]!==field.T.values[0].no:!isScalarZeroValue(field.T,target[localName]);case`message`:return target[localName]!==void 0;case`map`:return Object.keys(target[localName]).length>0}}function clearField(field,target){let localName=field.localName,implicitPresence=!field.opt&&!field.req;if(field.repeated)target[localName]=[];else if(field.oneof)target[field.oneof.localName]={case:void 0};else switch(field.kind){case`map`:target[localName]={};break;case`enum`:target[localName]=implicitPresence?field.T.values[0].no:void 0;break;case`scalar`:target[localName]=implicitPresence?scalarZeroValue(field.T,field.L):void 0;break;case`message`:target[localName]=void 0;break}}function isMessage(arg,type){if(typeof arg!=`object`||!arg||!Object.getOwnPropertyNames(Message.prototype).every(m$2=>m$2 in arg&&typeof arg[m$2]==`function`))return!1;let actualType=arg.getType();return actualType===null||typeof actualType!=`function`||!(`typeName`in actualType)||typeof actualType.typeName!=`string`?!1:type===void 0?!0:actualType.typeName==type.typeName}function wrapField(type,value){return isMessage(value)||!type.fieldWrapper?value:type.fieldWrapper.wrapField(value)}var wktWrapperToScalarType={"google.protobuf.DoubleValue":ScalarType.DOUBLE,"google.protobuf.FloatValue":ScalarType.FLOAT,"google.protobuf.Int64Value":ScalarType.INT64,"google.protobuf.UInt64Value":ScalarType.UINT64,"google.protobuf.Int32Value":ScalarType.INT32,"google.protobuf.UInt32Value":ScalarType.UINT32,"google.protobuf.BoolValue":ScalarType.BOOL,"google.protobuf.StringValue":ScalarType.STRING,"google.protobuf.BytesValue":ScalarType.BYTES},jsonReadDefaults={ignoreUnknownFields:!1},jsonWriteDefaults={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};function makeReadOptions$1(options$1){return options$1?Object.assign(Object.assign({},jsonReadDefaults),options$1):jsonReadDefaults}function makeWriteOptions$1(options$1){return options$1?Object.assign(Object.assign({},jsonWriteDefaults),options$1):jsonWriteDefaults}var tokenNull=Symbol(),tokenIgnoredUnknownEnum=Symbol();function makeJsonFormat(){return{makeReadOptions:makeReadOptions$1,makeWriteOptions:makeWriteOptions$1,readMessage(type,json$1,options$1,message){if(json$1==null||Array.isArray(json$1)||typeof json$1!=`object`)throw Error(`cannot decode message ${type.typeName} from JSON: ${debugJsonValue(json$1)}`);message??=new type;let oneofSeen=new Map,registry=options$1.typeRegistry;for(let[jsonKey,jsonValue]of Object.entries(json$1)){let field=type.fields.findJsonName(jsonKey);if(field){if(field.oneof){if(jsonValue===null&&field.kind==`scalar`)continue;let seen$1=oneofSeen.get(field.oneof);if(seen$1!==void 0)throw Error(`cannot decode message ${type.typeName} from JSON: multiple keys for oneof "${field.oneof.name}" present: "${seen$1}", "${jsonKey}"`);oneofSeen.set(field.oneof,jsonKey)}readField$1(message,jsonValue,field,options$1,type)}else{let found=!1;if(registry?.findExtension&&jsonKey.startsWith(`[`)&&jsonKey.endsWith(`]`)){let ext=registry.findExtension(jsonKey.substring(1,jsonKey.length-1));if(ext&&ext.extendee.typeName==type.typeName){found=!0;let[container,get]=createExtensionContainer(ext);readField$1(container,jsonValue,ext.field,options$1,ext),setExtension(message,ext,get(),options$1)}}if(!found&&!options$1.ignoreUnknownFields)throw Error(`cannot decode message ${type.typeName} from JSON: key "${jsonKey}" is unknown`)}}return message},writeMessage(message,options$1){let type=message.getType(),json$1={},field;try{for(field of type.fields.byNumber()){if(!isFieldSet(field,message)){if(field.req)throw`required field not set`;if(!options$1.emitDefaultValues||!canEmitFieldDefaultValue(field))continue}let value=field.oneof?message[field.oneof.localName].value:message[field.localName],jsonValue=writeField$1(field,value,options$1);jsonValue!==void 0&&(json$1[options$1.useProtoFieldName?field.name:field.jsonName]=jsonValue)}let registry=options$1.typeRegistry;if(registry?.findExtensionFor)for(let uf of type.runtime.bin.listUnknownFields(message)){let ext=registry.findExtensionFor(type.typeName,uf.no);if(ext&&hasExtension(message,ext)){let value=getExtension(message,ext,options$1),jsonValue=writeField$1(ext.field,value,options$1);jsonValue!==void 0&&(json$1[ext.field.jsonName]=jsonValue)}}}catch(e){let m$2=field?`cannot encode field ${type.typeName}.${field.name} to JSON`:`cannot encode message ${type.typeName} to JSON`,r$4=e instanceof Error?e.message:String(e);throw Error(m$2+(r$4.length>0?`: ${r$4}`:``))}return json$1},readScalar(type,json$1,longType){return readScalar$1(type,json$1,longType??LongType.BIGINT,!0)},writeScalar(type,value,emitDefaultValues){if(value!==void 0&&(emitDefaultValues||isScalarZeroValue(type,value)))return writeScalar$1(type,value)},debug:debugJsonValue}}function debugJsonValue(json$1){if(json$1===null)return`null`;switch(typeof json$1){case`object`:return Array.isArray(json$1)?`array`:`object`;case`string`:return json$1.length>100?`string`:`"${json$1.split(`"`).join(`\\"`)}"`;default:return String(json$1)}}function readField$1(target,jsonValue,field,options$1,parentType){let localName=field.localName;if(field.repeated){if(assert(field.kind!=`map`),jsonValue===null)return;if(!Array.isArray(jsonValue))throw Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`);let targetArray=target[localName];for(let jsonItem of jsonValue){if(jsonItem===null)throw Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonItem)}`);switch(field.kind){case`message`:targetArray.push(field.T.fromJson(jsonItem,options$1));break;case`enum`:let enumValue=readEnum(field.T,jsonItem,options$1.ignoreUnknownFields,!0);enumValue!==tokenIgnoredUnknownEnum&&targetArray.push(enumValue);break;case`scalar`:try{targetArray.push(readScalar$1(field.T,jsonItem,field.L,!0))}catch(e){let m$2=`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonItem)}`;throw e instanceof Error&&e.message.length>0&&(m$2+=`: ${e.message}`),Error(m$2)}break}}}else if(field.kind==`map`){if(jsonValue===null)return;if(typeof jsonValue!=`object`||Array.isArray(jsonValue))throw Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`);let targetMap=target[localName];for(let[jsonMapKey,jsonMapValue]of Object.entries(jsonValue)){if(jsonMapValue===null)throw Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: map value null`);let key$1;try{key$1=readMapKey(field.K,jsonMapKey)}catch(e){let m$2=`cannot decode map key for field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`;throw e instanceof Error&&e.message.length>0&&(m$2+=`: ${e.message}`),Error(m$2)}switch(field.V.kind){case`message`:targetMap[key$1]=field.V.T.fromJson(jsonMapValue,options$1);break;case`enum`:let enumValue=readEnum(field.V.T,jsonMapValue,options$1.ignoreUnknownFields,!0);enumValue!==tokenIgnoredUnknownEnum&&(targetMap[key$1]=enumValue);break;case`scalar`:try{targetMap[key$1]=readScalar$1(field.V.T,jsonMapValue,LongType.BIGINT,!0)}catch(e){let m$2=`cannot decode map value for field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`;throw e instanceof Error&&e.message.length>0&&(m$2+=`: ${e.message}`),Error(m$2)}break}}}else switch(field.oneof&&(target=target[field.oneof.localName]={case:localName},localName=`value`),field.kind){case`message`:let messageType=field.T;if(jsonValue===null&&messageType.typeName!=`google.protobuf.Value`)return;let currentValue=target[localName];isMessage(currentValue)?currentValue.fromJson(jsonValue,options$1):(target[localName]=currentValue=messageType.fromJson(jsonValue,options$1),messageType.fieldWrapper&&!field.oneof&&(target[localName]=messageType.fieldWrapper.unwrapField(currentValue)));break;case`enum`:let enumValue=readEnum(field.T,jsonValue,options$1.ignoreUnknownFields,!1);switch(enumValue){case tokenNull:clearField(field,target);break;case tokenIgnoredUnknownEnum:break;default:target[localName]=enumValue;break}break;case`scalar`:try{let scalarValue=readScalar$1(field.T,jsonValue,field.L,!1);switch(scalarValue){case tokenNull:clearField(field,target);break;default:target[localName]=scalarValue;break}}catch(e){let m$2=`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`;throw e instanceof Error&&e.message.length>0&&(m$2+=`: ${e.message}`),Error(m$2)}break}}function readMapKey(type,json$1){if(type===ScalarType.BOOL)switch(json$1){case`true`:json$1=!0;break;case`false`:json$1=!1;break}return readScalar$1(type,json$1,LongType.BIGINT,!0).toString()}function readScalar$1(type,json$1,longType,nullAsZeroValue){if(json$1===null)return nullAsZeroValue?scalarZeroValue(type,longType):tokenNull;switch(type){case ScalarType.DOUBLE:case ScalarType.FLOAT:if(json$1===`NaN`)return NaN;if(json$1===`Infinity`)return 1/0;if(json$1===`-Infinity`)return-1/0;if(json$1===``||typeof json$1==`string`&&json$1.trim().length!==json$1.length||typeof json$1!=`string`&&typeof json$1!=`number`)break;let float=Number(json$1);if(Number.isNaN(float)||!Number.isFinite(float))break;return type==ScalarType.FLOAT&&assertFloat32(float),float;case ScalarType.INT32:case ScalarType.FIXED32:case ScalarType.SFIXED32:case ScalarType.SINT32:case ScalarType.UINT32:let int32;if(typeof json$1==`number`?int32=json$1:typeof json$1==`string`&&json$1.length>0&&json$1.trim().length===json$1.length&&(int32=Number(json$1)),int32===void 0)break;return type==ScalarType.UINT32||type==ScalarType.FIXED32?assertUInt32(int32):assertInt32(int32),int32;case ScalarType.INT64:case ScalarType.SFIXED64:case ScalarType.SINT64:if(typeof json$1!=`number`&&typeof json$1!=`string`)break;let long=protoInt64.parse(json$1);return longType?long.toString():long;case ScalarType.FIXED64:case ScalarType.UINT64:if(typeof json$1!=`number`&&typeof json$1!=`string`)break;let uLong=protoInt64.uParse(json$1);return longType?uLong.toString():uLong;case ScalarType.BOOL:if(typeof json$1!=`boolean`)break;return json$1;case ScalarType.STRING:if(typeof json$1!=`string`)break;return json$1;case ScalarType.BYTES:if(json$1===``)return new Uint8Array;if(typeof json$1!=`string`)break;return protoBase64.dec(json$1)}throw Error()}function readEnum(type,json$1,ignoreUnknownFields,nullAsZeroValue){if(json$1===null)return type.typeName==`google.protobuf.NullValue`?0:nullAsZeroValue?type.values[0].no:tokenNull;switch(typeof json$1){case`number`:if(Number.isInteger(json$1))return json$1;break;case`string`:let value=type.findName(json$1);if(value!==void 0)return value.no;if(ignoreUnknownFields)return tokenIgnoredUnknownEnum;break}throw Error(`cannot decode enum ${type.typeName} from JSON: ${debugJsonValue(json$1)}`)}function canEmitFieldDefaultValue(field){return field.repeated||field.kind==`map`?!0:!(field.oneof||field.kind==`message`||field.opt||field.req)}function writeField$1(field,value,options$1){if(field.kind==`map`){assert(typeof value==`object`&&!!value);let jsonObj={},entries=Object.entries(value);switch(field.V.kind){case`scalar`:for(let[entryKey,entryValue]of entries)jsonObj[entryKey.toString()]=writeScalar$1(field.V.T,entryValue);break;case`message`:for(let[entryKey,entryValue]of entries)jsonObj[entryKey.toString()]=entryValue.toJson(options$1);break;case`enum`:let enumType=field.V.T;for(let[entryKey,entryValue]of entries)jsonObj[entryKey.toString()]=writeEnum(enumType,entryValue,options$1.enumAsInteger);break}return options$1.emitDefaultValues||entries.length>0?jsonObj:void 0}if(field.repeated){assert(Array.isArray(value));let jsonArr=[];switch(field.kind){case`scalar`:for(let i$3=0;i$3<value.length;i$3++)jsonArr.push(writeScalar$1(field.T,value[i$3]));break;case`enum`:for(let i$3=0;i$3<value.length;i$3++)jsonArr.push(writeEnum(field.T,value[i$3],options$1.enumAsInteger));break;case`message`:for(let i$3=0;i$3<value.length;i$3++)jsonArr.push(value[i$3].toJson(options$1));break}return options$1.emitDefaultValues||jsonArr.length>0?jsonArr:void 0}switch(field.kind){case`scalar`:return writeScalar$1(field.T,value);case`enum`:return writeEnum(field.T,value,options$1.enumAsInteger);case`message`:return wrapField(field.T,value).toJson(options$1)}}function writeEnum(type,value,enumAsInteger){var _a$1;return assert(typeof value==`number`),type.typeName==`google.protobuf.NullValue`?null:enumAsInteger?value:type.findNumber(value)?.name??value}function writeScalar$1(type,value){switch(type){case ScalarType.INT32:case ScalarType.SFIXED32:case ScalarType.SINT32:case ScalarType.FIXED32:case ScalarType.UINT32:return assert(typeof value==`number`),value;case ScalarType.FLOAT:case ScalarType.DOUBLE:return assert(typeof value==`number`),Number.isNaN(value)?`NaN`:value===1/0?`Infinity`:value===-1/0?`-Infinity`:value;case ScalarType.STRING:return assert(typeof value==`string`),value;case ScalarType.BOOL:return assert(typeof value==`boolean`),value;case ScalarType.UINT64:case ScalarType.FIXED64:case ScalarType.INT64:case ScalarType.SFIXED64:case ScalarType.SINT64:return assert(typeof value==`bigint`||typeof value==`string`||typeof value==`number`),value.toString();case ScalarType.BYTES:return assert(value instanceof Uint8Array),protoBase64.enc(value)}}var unknownFieldsSymbol=Symbol(`@bufbuild/protobuf/unknown-fields`),readDefaults={readUnknownFields:!0,readerFactory:bytes=>new BinaryReader(bytes)},writeDefaults={writeUnknownFields:!0,writerFactory:()=>new BinaryWriter};function makeReadOptions(options$1){return options$1?Object.assign(Object.assign({},readDefaults),options$1):readDefaults}function makeWriteOptions(options$1){return options$1?Object.assign(Object.assign({},writeDefaults),options$1):writeDefaults}function makeBinaryFormat(){return{makeReadOptions,makeWriteOptions,listUnknownFields(message){var _a$1;return message[unknownFieldsSymbol]??[]},discardUnknownFields(message){delete message[unknownFieldsSymbol]},writeUnknownFields(message,writer){let c=message[unknownFieldsSymbol];if(c)for(let f$2 of c)writer.tag(f$2.no,f$2.wireType).raw(f$2.data)},onUnknownField(message,no,wireType,data){let m$2=message;Array.isArray(m$2[unknownFieldsSymbol])||(m$2[unknownFieldsSymbol]=[]),m$2[unknownFieldsSymbol].push({no,wireType,data})},readMessage(message,reader,lengthOrEndTagFieldNo,options$1,delimitedMessageEncoding){let type=message.getType(),end=delimitedMessageEncoding?reader.len:reader.pos+lengthOrEndTagFieldNo,fieldNo,wireType;for(;reader.pos<end&&([fieldNo,wireType]=reader.tag(),!(delimitedMessageEncoding===!0&&wireType==WireType.EndGroup));){let field=type.fields.find(fieldNo);if(!field){let data=reader.skip(wireType,fieldNo);options$1.readUnknownFields&&this.onUnknownField(message,fieldNo,wireType,data);continue}readField(message,reader,field,wireType,options$1)}if(delimitedMessageEncoding&&(wireType!=WireType.EndGroup||fieldNo!==lengthOrEndTagFieldNo))throw Error(`invalid end group tag`)},readField,writeMessage(message,writer,options$1){let type=message.getType();for(let field of type.fields.byNumber()){if(!isFieldSet(field,message)){if(field.req)throw Error(`cannot encode field ${type.typeName}.${field.name} to binary: required field not set`);continue}writeField(field,field.oneof?message[field.oneof.localName].value:message[field.localName],writer,options$1)}return options$1.writeUnknownFields&&this.writeUnknownFields(message,writer),writer},writeField(field,value,writer,options$1){value!==void 0&&writeField(field,value,writer,options$1)}}}function readField(target,reader,field,wireType,options$1){let{repeated,localName}=field;switch(field.oneof&&(target=target[field.oneof.localName],target.case!=localName&&delete target.value,target.case=localName,localName=`value`),field.kind){case`scalar`:case`enum`:let scalarType=field.kind==`enum`?ScalarType.INT32:field.T,read=readScalar;if(field.kind==`scalar`&&field.L>0&&(read=readScalarLTString),repeated){let arr=target[localName];if(wireType==WireType.LengthDelimited&&scalarType!=ScalarType.STRING&&scalarType!=ScalarType.BYTES){let e=reader.uint32()+reader.pos;for(;reader.pos<e;)arr.push(read(reader,scalarType))}else arr.push(read(reader,scalarType))}else target[localName]=read(reader,scalarType);break;case`message`:let messageType=field.T;repeated?target[localName].push(readMessageField(reader,new messageType,options$1,field)):isMessage(target[localName])?readMessageField(reader,target[localName],options$1,field):(target[localName]=readMessageField(reader,new messageType,options$1,field),messageType.fieldWrapper&&!field.oneof&&!field.repeated&&(target[localName]=messageType.fieldWrapper.unwrapField(target[localName])));break;case`map`:let[mapKey,mapVal]=readMapEntry(field,reader,options$1);target[localName][mapKey]=mapVal;break}}function readMessageField(reader,message,options$1,field){let format=message.getType().runtime.bin,delimited=field?.delimited;return format.readMessage(message,reader,delimited?field.no:reader.uint32(),options$1,delimited),message}function readMapEntry(field,reader,options$1){let length=reader.uint32(),end=reader.pos+length,key$1,val;for(;reader.pos<end;){let[fieldNo]=reader.tag();switch(fieldNo){case 1:key$1=readScalar(reader,field.K);break;case 2:switch(field.V.kind){case`scalar`:val=readScalar(reader,field.V.T);break;case`enum`:val=reader.int32();break;case`message`:val=readMessageField(reader,new field.V.T,options$1,void 0);break}break}}if(key$1===void 0&&(key$1=scalarZeroValue(field.K,LongType.BIGINT)),typeof key$1!=`string`&&typeof key$1!=`number`&&(key$1=key$1.toString()),val===void 0)switch(field.V.kind){case`scalar`:val=scalarZeroValue(field.V.T,LongType.BIGINT);break;case`enum`:val=field.V.T.values[0].no;break;case`message`:val=new field.V.T;break}return[key$1,val]}function readScalarLTString(reader,type){let v$1=readScalar(reader,type);return typeof v$1==`bigint`?v$1.toString():v$1}function readScalar(reader,type){switch(type){case ScalarType.STRING:return reader.string();case ScalarType.BOOL:return reader.bool();case ScalarType.DOUBLE:return reader.double();case ScalarType.FLOAT:return reader.float();case ScalarType.INT32:return reader.int32();case ScalarType.INT64:return reader.int64();case ScalarType.UINT64:return reader.uint64();case ScalarType.FIXED64:return reader.fixed64();case ScalarType.BYTES:return reader.bytes();case ScalarType.FIXED32:return reader.fixed32();case ScalarType.SFIXED32:return reader.sfixed32();case ScalarType.SFIXED64:return reader.sfixed64();case ScalarType.SINT64:return reader.sint64();case ScalarType.UINT32:return reader.uint32();case ScalarType.SINT32:return reader.sint32()}}function writeField(field,value,writer,options$1){assert(value!==void 0);let repeated=field.repeated;switch(field.kind){case`scalar`:case`enum`:let scalarType=field.kind==`enum`?ScalarType.INT32:field.T;if(repeated)if(assert(Array.isArray(value)),field.packed)writePacked(writer,scalarType,field.no,value);else for(let item of value)writeScalar(writer,scalarType,field.no,item);else writeScalar(writer,scalarType,field.no,value);break;case`message`:if(repeated){assert(Array.isArray(value));for(let item of value)writeMessageField(writer,options$1,field,item)}else writeMessageField(writer,options$1,field,value);break;case`map`:assert(typeof value==`object`&&!!value);for(let[key$1,val]of Object.entries(value))writeMapEntry(writer,options$1,field,key$1,val);break}}function writeMapEntry(writer,options$1,field,key$1,value){writer.tag(field.no,WireType.LengthDelimited),writer.fork();let keyValue=key$1;switch(field.K){case ScalarType.INT32:case ScalarType.FIXED32:case ScalarType.UINT32:case ScalarType.SFIXED32:case ScalarType.SINT32:keyValue=Number.parseInt(key$1);break;case ScalarType.BOOL:assert(key$1==`true`||key$1==`false`),keyValue=key$1==`true`;break}switch(writeScalar(writer,field.K,1,keyValue),field.V.kind){case`scalar`:writeScalar(writer,field.V.T,2,value);break;case`enum`:writeScalar(writer,ScalarType.INT32,2,value);break;case`message`:assert(value!==void 0),writer.tag(2,WireType.LengthDelimited).bytes(value.toBinary(options$1));break}writer.join()}function writeMessageField(writer,options$1,field,value){let message=wrapField(field.T,value);field.delimited?writer.tag(field.no,WireType.StartGroup).raw(message.toBinary(options$1)).tag(field.no,WireType.EndGroup):writer.tag(field.no,WireType.LengthDelimited).bytes(message.toBinary(options$1))}function writeScalar(writer,type,fieldNo,value){assert(value!==void 0);let[wireType,method]=scalarTypeInfo(type);writer.tag(fieldNo,wireType)[method](value)}function writePacked(writer,type,fieldNo,value){if(!value.length)return;writer.tag(fieldNo,WireType.LengthDelimited).fork();let[,method]=scalarTypeInfo(type);for(let i$3=0;i$3<value.length;i$3++)writer[method](value[i$3]);writer.join()}function scalarTypeInfo(type){let wireType=WireType.Varint;switch(type){case ScalarType.BYTES:case ScalarType.STRING:wireType=WireType.LengthDelimited;break;case ScalarType.DOUBLE:case ScalarType.FIXED64:case ScalarType.SFIXED64:wireType=WireType.Bit64;break;case ScalarType.FIXED32:case ScalarType.SFIXED32:case ScalarType.FLOAT:wireType=WireType.Bit32;break}let method=ScalarType[type].toLowerCase();return[wireType,method]}function makeUtilCommon(){return{setEnumType,initPartial(source,target){if(source===void 0)return;let type=target.getType();for(let member of type.fields.byMember()){let localName=member.localName,t$1=target,s$1=source;if(s$1[localName]!=null)switch(member.kind){case`oneof`:let sk=s$1[localName].case;if(sk===void 0)continue;let sourceField=member.findField(sk),val=s$1[localName].value;sourceField&&sourceField.kind==`message`&&!isMessage(val,sourceField.T)?val=new sourceField.T(val):sourceField&&sourceField.kind===`scalar`&&sourceField.T===ScalarType.BYTES&&(val=toU8Arr(val)),t$1[localName]={case:sk,value:val};break;case`scalar`:case`enum`:let copy=s$1[localName];member.T===ScalarType.BYTES&&(copy=member.repeated?copy.map(toU8Arr):toU8Arr(copy)),t$1[localName]=copy;break;case`map`:switch(member.V.kind){case`scalar`:case`enum`:if(member.V.T===ScalarType.BYTES)for(let[k$2,v$1]of Object.entries(s$1[localName]))t$1[localName][k$2]=toU8Arr(v$1);else Object.assign(t$1[localName],s$1[localName]);break;case`message`:let messageType=member.V.T;for(let k$2 of Object.keys(s$1[localName])){let val$1=s$1[localName][k$2];messageType.fieldWrapper||(val$1=new messageType(val$1)),t$1[localName][k$2]=val$1}break}break;case`message`:let mt=member.T;if(member.repeated)t$1[localName]=s$1[localName].map(val$1=>isMessage(val$1,mt)?val$1:new mt(val$1));else{let val$1=s$1[localName];mt.fieldWrapper?mt.typeName===`google.protobuf.BytesValue`?t$1[localName]=toU8Arr(val$1):t$1[localName]=val$1:t$1[localName]=isMessage(val$1,mt)?val$1:new mt(val$1)}break}}},equals(type,a$1,b$2){return a$1===b$2?!0:!a$1||!b$2?!1:type.fields.byMember().every(m$2=>{let va=a$1[m$2.localName],vb=b$2[m$2.localName];if(m$2.repeated){if(va.length!==vb.length)return!1;switch(m$2.kind){case`message`:return va.every((a$2,i$3)=>m$2.T.equals(a$2,vb[i$3]));case`scalar`:return va.every((a$2,i$3)=>scalarEquals(m$2.T,a$2,vb[i$3]));case`enum`:return va.every((a$2,i$3)=>scalarEquals(ScalarType.INT32,a$2,vb[i$3]))}throw Error(`repeated cannot contain ${m$2.kind}`)}switch(m$2.kind){case`message`:let a$2=va,b$3=vb;return m$2.T.fieldWrapper&&(a$2!==void 0&&!isMessage(a$2)&&(a$2=m$2.T.fieldWrapper.wrapField(a$2)),b$3!==void 0&&!isMessage(b$3)&&(b$3=m$2.T.fieldWrapper.wrapField(b$3))),m$2.T.equals(a$2,b$3);case`enum`:return scalarEquals(ScalarType.INT32,va,vb);case`scalar`:return scalarEquals(m$2.T,va,vb);case`oneof`:if(va.case!==vb.case)return!1;let s$1=m$2.findField(va.case);if(s$1===void 0)return!0;switch(s$1.kind){case`message`:return s$1.T.equals(va.value,vb.value);case`enum`:return scalarEquals(ScalarType.INT32,va.value,vb.value);case`scalar`:return scalarEquals(s$1.T,va.value,vb.value)}throw Error(`oneof cannot contain ${s$1.kind}`);case`map`:let keys$1=Object.keys(va).concat(Object.keys(vb));switch(m$2.V.kind){case`message`:let messageType=m$2.V.T;return keys$1.every(k$2=>messageType.equals(va[k$2],vb[k$2]));case`enum`:return keys$1.every(k$2=>scalarEquals(ScalarType.INT32,va[k$2],vb[k$2]));case`scalar`:let scalarType=m$2.V.T;return keys$1.every(k$2=>scalarEquals(scalarType,va[k$2],vb[k$2]))}break}})},clone(message){let type=message.getType(),target=new type,any=target;for(let member of type.fields.byMember()){let source=message[member.localName],copy;if(member.repeated)copy=source.map(cloneSingularField);else if(member.kind==`map`){copy=any[member.localName];for(let[key$1,v$1]of Object.entries(source))copy[key$1]=cloneSingularField(v$1)}else copy=member.kind==`oneof`?member.findField(source.case)?{case:source.case,value:cloneSingularField(source.value)}:{case:void 0}:cloneSingularField(source);any[member.localName]=copy}for(let uf of type.runtime.bin.listUnknownFields(message))type.runtime.bin.onUnknownField(any,uf.no,uf.wireType,uf.data);return target}}}function cloneSingularField(value){if(value===void 0)return value;if(isMessage(value))return value.clone();if(value instanceof Uint8Array){let c=new Uint8Array(value.byteLength);return c.set(value),c}return value}function toU8Arr(input){return input instanceof Uint8Array?input:new Uint8Array(input)}function makeProtoRuntime(syntax,newFieldList,initFields){return{syntax,json:makeJsonFormat(),bin:makeBinaryFormat(),util:Object.assign(Object.assign({},makeUtilCommon()),{newFieldList,initFields}),makeMessageType(typeName$1,fields,opt){return makeMessageType(this,typeName$1,fields,opt)},makeEnum,makeEnumType,getEnumType,makeExtension(typeName$1,extendee,field){return makeExtension(this,typeName$1,extendee,field)}}}var InternalFieldList=class{constructor(fields,normalizer){this._fields=fields,this._normalizer=normalizer}findJsonName(jsonName){if(!this.jsonNames){let t$1={};for(let f$2 of this.list())t$1[f$2.jsonName]=t$1[f$2.name]=f$2;this.jsonNames=t$1}return this.jsonNames[jsonName]}find(fieldNo){if(!this.numbers){let t$1={};for(let f$2 of this.list())t$1[f$2.no]=f$2;this.numbers=t$1}return this.numbers[fieldNo]}list(){return this.all||=this._normalizer(this._fields),this.all}byNumber(){return this.numbersAsc||=this.list().concat().sort((a$1,b$2)=>a$1.no-b$2.no),this.numbersAsc}byMember(){if(!this.members){this.members=[];let a$1=this.members,o$2;for(let f$2 of this.list())f$2.oneof?f$2.oneof!==o$2&&(o$2=f$2.oneof,a$1.push(o$2)):a$1.push(f$2)}return this.members}};function localFieldName(protoName,inOneof){let name$2=protoCamelCase(protoName);return inOneof?name$2:safeObjectProperty(safeMessageProperty(name$2))}function localOneofName(protoName){return localFieldName(protoName,!1)}const fieldJsonName=protoCamelCase;function protoCamelCase(snakeCase){let capNext=!1,b$2=[];for(let i$3=0;i$3<snakeCase.length;i$3++){let c=snakeCase.charAt(i$3);switch(c){case`_`:capNext=!0;break;case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:b$2.push(c),capNext=!1;break;default:capNext&&(capNext=!1,c=c.toUpperCase()),b$2.push(c);break}}return b$2.join(``)}var reservedObjectProperties=new Set([`constructor`,`toString`,`toJSON`,`valueOf`]),reservedMessageProperties=new Set([`getType`,`clone`,`equals`,`fromBinary`,`fromJson`,`fromJsonString`,`toBinary`,`toJson`,`toJsonString`,`toObject`]),fallback=name$2=>`${name$2}$`,safeMessageProperty=name$2=>reservedMessageProperties.has(name$2)?fallback(name$2):name$2;const safeObjectProperty=name$2=>reservedObjectProperties.has(name$2)?fallback(name$2):name$2;var InternalOneofInfo=class{constructor(name$2){this.kind=`oneof`,this.repeated=!1,this.packed=!1,this.opt=!1,this.req=!1,this.default=void 0,this.fields=[],this.name=name$2,this.localName=localOneofName(name$2)}addField(field){assert(field.oneof===this,`field ${field.name} not one of ${this.name}`),this.fields.push(field)}findField(localName){if(!this._lookup){this._lookup=Object.create(null);for(let i$3=0;i$3<this.fields.length;i$3++)this._lookup[this.fields[i$3].localName]=this.fields[i$3]}return this._lookup[localName]}};function normalizeFieldInfos(fieldInfos,packedByDefault){var _a$1,_b,_c,_d,_e,_f;let r$4=[],o$2;for(let field of typeof fieldInfos==`function`?fieldInfos():fieldInfos){let f$2=field;if(f$2.localName=localFieldName(field.name,field.oneof!==void 0),f$2.jsonName=field.jsonName??fieldJsonName(field.name),f$2.repeated=field.repeated??!1,field.kind==`scalar`&&(f$2.L=field.L??LongType.BIGINT),f$2.delimited=field.delimited??!1,f$2.req=field.req??!1,f$2.opt=field.opt??!1,field.packed===void 0&&(packedByDefault?f$2.packed=field.kind==`enum`||field.kind==`scalar`&&field.T!=ScalarType.BYTES&&field.T!=ScalarType.STRING:f$2.packed=!1),field.oneof!==void 0){let ooname=typeof field.oneof==`string`?field.oneof:field.oneof.name;(!o$2||o$2.name!=ooname)&&(o$2=new InternalOneofInfo(ooname)),f$2.oneof=o$2,o$2.addField(f$2)}r$4.push(f$2)}return r$4}const proto3=makeProtoRuntime(`proto3`,fields=>new InternalFieldList(fields,source=>normalizeFieldInfos(source,!0)),target=>{for(let member of target.getType().fields.byMember()){if(member.opt)continue;let name$2=member.localName,t$1=target;if(member.repeated){t$1[name$2]=[];continue}switch(member.kind){case`oneof`:t$1[name$2]={case:void 0};break;case`enum`:t$1[name$2]=0;break;case`map`:t$1[name$2]={};break;case`scalar`:t$1[name$2]=scalarZeroValue(member.T,member.L);break;case`message`:break}}});var MethodKind;(function(MethodKind$1){MethodKind$1[MethodKind$1.Unary=0]=`Unary`,MethodKind$1[MethodKind$1.ServerStreaming=1]=`ServerStreaming`,MethodKind$1[MethodKind$1.ClientStreaming=2]=`ClientStreaming`,MethodKind$1[MethodKind$1.BiDiStreaming=3]=`BiDiStreaming`})(MethodKind||={});var MethodIdempotency;(function(MethodIdempotency$1){MethodIdempotency$1[MethodIdempotency$1.NoSideEffects=1]=`NoSideEffects`,MethodIdempotency$1[MethodIdempotency$1.Idempotent=2]=`Idempotent`})(MethodIdempotency||={});var Code$1;(function(Code$2){Code$2[Code$2.Canceled=1]=`Canceled`,Code$2[Code$2.Unknown=2]=`Unknown`,Code$2[Code$2.InvalidArgument=3]=`InvalidArgument`,Code$2[Code$2.DeadlineExceeded=4]=`DeadlineExceeded`,Code$2[Code$2.NotFound=5]=`NotFound`,Code$2[Code$2.AlreadyExists=6]=`AlreadyExists`,Code$2[Code$2.PermissionDenied=7]=`PermissionDenied`,Code$2[Code$2.ResourceExhausted=8]=`ResourceExhausted`,Code$2[Code$2.FailedPrecondition=9]=`FailedPrecondition`,Code$2[Code$2.Aborted=10]=`Aborted`,Code$2[Code$2.OutOfRange=11]=`OutOfRange`,Code$2[Code$2.Unimplemented=12]=`Unimplemented`,Code$2[Code$2.Internal=13]=`Internal`,Code$2[Code$2.Unavailable=14]=`Unavailable`,Code$2[Code$2.DataLoss=15]=`DataLoss`,Code$2[Code$2.Unauthenticated=16]=`Unauthenticated`})(Code$1||={});function codeToString(value){let name$2=Code$1[value];return typeof name$2==`string`?name$2[0].toLowerCase()+name$2.substring(1).replace(/[A-Z]/g,c=>`_`+c.toLowerCase()):value.toString()}var stringToCode;function codeFromString(value){if(!stringToCode){stringToCode={};for(let value$1 of Object.values(Code$1))typeof value$1!=`string`&&(stringToCode[codeToString(value$1)]=value$1)}return stringToCode[value]}var ConnectError=class ConnectError extends Error{constructor(message,code$2=Code$1.Unknown,metadata,outgoingDetails,cause){super(createMessage(message,code$2)),this.name=`ConnectError`,Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=message,this.code=code$2,this.metadata=new Headers(metadata??{}),this.details=outgoingDetails??[],this.cause=cause}static from(reason,code$2=Code$1.Unknown){return reason instanceof ConnectError?reason:reason instanceof Error?reason.name==`AbortError`?new ConnectError(reason.message,Code$1.Canceled):new ConnectError(reason.message,code$2,void 0,void 0,reason):new ConnectError(String(reason),code$2,void 0,void 0,reason)}static[Symbol.hasInstance](v$1){return v$1 instanceof Error?Object.getPrototypeOf(v$1)===ConnectError.prototype?!0:v$1.name===`ConnectError`&&`code`in v$1&&typeof v$1.code==`number`&&`metadata`in v$1&&`details`in v$1&&Array.isArray(v$1.details)&&`rawMessage`in v$1&&typeof v$1.rawMessage==`string`&&`cause`in v$1:!1}findDetails(typeOrRegistry){let registry=`typeName`in typeOrRegistry?{findMessage:typeName$1=>typeName$1===typeOrRegistry.typeName?typeOrRegistry:void 0}:typeOrRegistry,details=[];for(let data of this.details){if(`getType`in data){registry.findMessage(data.getType().typeName)&&details.push(data);continue}let type=registry.findMessage(data.type);if(type)try{details.push(type.fromBinary(data.value))}catch{}}return details}};function createMessage(message,code$2){return message.length?`[${codeToString(code$2)}] ${message}`:`[${codeToString(code$2)}]`}function appendHeaders(...headers){let h$1=new Headers;for(let e of headers)e.forEach((value,key$1)=>{h$1.append(key$1,value)});return h$1}function makeAnyClient(service,createMethod){let client={};for(let[localName,methodInfo]of Object.entries(service.methods)){let method=createMethod(Object.assign(Object.assign({},methodInfo),{localName,service}));method!=null&&(client[localName]=method)}return client}const compressedFlag=1;function createEnvelopeReadableStream(stream){let reader,buffer=new Uint8Array;function append(chunk){let n=new Uint8Array(buffer.length+chunk.length);n.set(buffer),n.set(chunk,buffer.length),buffer=n}return new ReadableStream({start(){reader=stream.getReader()},async pull(controller){let header;for(;;){if(header===void 0&&buffer.byteLength>=5){let length=0;for(let i$3=1;i$3<5;i$3++)length=(length<<8)+buffer[i$3];header={flags:buffer[0],length}}if(header!==void 0&&buffer.byteLength>=header.length+5)break;let result=await reader.read();if(result.done)break;append(result.value)}if(header===void 0){if(buffer.byteLength==0){controller.close();return}controller.error(new ConnectError(`premature end of stream`,Code$1.DataLoss));return}let data=buffer.subarray(5,5+header.length);buffer=buffer.subarray(5+header.length),controller.enqueue({flags:header.flags,data})}})}function encodeEnvelope(flags,data){let bytes=new Uint8Array(data.length+5);bytes.set(data,5);let v$1=new DataView(bytes.buffer,bytes.byteOffset,bytes.byteLength);return v$1.setUint8(0,flags),v$1.setUint32(1,data.length),bytes}var __asyncValues$1=function(o$2){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var m$2=o$2[Symbol.asyncIterator],i$3;return m$2?m$2.call(o$2):(o$2=typeof __values==`function`?__values(o$2):o$2[Symbol.iterator](),i$3={},verb(`next`),verb(`throw`),verb(`return`),i$3[Symbol.asyncIterator]=function(){return this},i$3);function verb(n){i$3[n]=o$2[n]&&function(v$1){return new Promise(function(resolve,reject){v$1=o$2[n](v$1),settle(resolve,reject,v$1.done,v$1.value)})}}function settle(resolve,reject,d$1,v$1){Promise.resolve(v$1).then(function(v$2){resolve({value:v$2,done:d$1})},reject)}},__await$2=function(v$1){return this instanceof __await$2?(this.v=v$1,this):new __await$2(v$1)},__asyncGenerator$2=function(thisArg,_arguments,generator$1){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var g=generator$1.apply(thisArg,_arguments||[]),i$3,q$1=[];return i$3={},verb(`next`),verb(`throw`),verb(`return`,awaitReturn),i$3[Symbol.asyncIterator]=function(){return this},i$3;function awaitReturn(f$2){return function(v$1){return Promise.resolve(v$1).then(f$2,reject)}}function verb(n,f$2){g[n]&&(i$3[n]=function(v$1){return new Promise(function(a$1,b$2){q$1.push([n,v$1,a$1,b$2])>1||resume(n,v$1)})},f$2&&(i$3[n]=f$2(i$3[n])))}function resume(n,v$1){try{step(g[n](v$1))}catch(e){settle(q$1[0][3],e)}}function step(r$4){r$4.value instanceof __await$2?Promise.resolve(r$4.value.v).then(fulfill,reject):settle(q$1[0][2],r$4)}function fulfill(value){resume(`next`,value)}function reject(value){resume(`throw`,value)}function settle(f$2,v$1){f$2(v$1),q$1.shift(),q$1.length&&resume(q$1[0][0],q$1[0][1])}},__asyncDelegator$1=function(o$2){var i$3,p$1;return i$3={},verb(`next`),verb(`throw`,function(e){throw e}),verb(`return`),i$3[Symbol.iterator]=function(){return this},i$3;function verb(n,f$2){i$3[n]=o$2[n]?function(v$1){return(p$1=!p$1)?{value:__await$2(o$2[n](v$1)),done:!1}:f$2?f$2(v$1):v$1}:f$2}};function createAsyncIterable(items){return __asyncGenerator$2(this,arguments,function*(){yield __await$2(yield*__asyncDelegator$1(__asyncValues$1(items)))})}var __asyncValues=function(o$2){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var m$2=o$2[Symbol.asyncIterator],i$3;return m$2?m$2.call(o$2):(o$2=typeof __values==`function`?__values(o$2):o$2[Symbol.iterator](),i$3={},verb(`next`),verb(`throw`),verb(`return`),i$3[Symbol.asyncIterator]=function(){return this},i$3);function verb(n){i$3[n]=o$2[n]&&function(v$1){return new Promise(function(resolve,reject){v$1=o$2[n](v$1),settle(resolve,reject,v$1.done,v$1.value)})}}function settle(resolve,reject,d$1,v$1){Promise.resolve(v$1).then(function(v$2){resolve({value:v$2,done:d$1})},reject)}},__await$1=function(v$1){return this instanceof __await$1?(this.v=v$1,this):new __await$1(v$1)},__asyncDelegator=function(o$2){var i$3,p$1;return i$3={},verb(`next`),verb(`throw`,function(e){throw e}),verb(`return`),i$3[Symbol.iterator]=function(){return this},i$3;function verb(n,f$2){i$3[n]=o$2[n]?function(v$1){return(p$1=!p$1)?{value:__await$1(o$2[n](v$1)),done:!1}:f$2?f$2(v$1):v$1}:f$2}},__asyncGenerator$1=function(thisArg,_arguments,generator$1){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var g=generator$1.apply(thisArg,_arguments||[]),i$3,q$1=[];return i$3={},verb(`next`),verb(`throw`),verb(`return`,awaitReturn),i$3[Symbol.asyncIterator]=function(){return this},i$3;function awaitReturn(f$2){return function(v$1){return Promise.resolve(v$1).then(f$2,reject)}}function verb(n,f$2){g[n]&&(i$3[n]=function(v$1){return new Promise(function(a$1,b$2){q$1.push([n,v$1,a$1,b$2])>1||resume(n,v$1)})},f$2&&(i$3[n]=f$2(i$3[n])))}function resume(n,v$1){try{step(g[n](v$1))}catch(e){settle(q$1[0][3],e)}}function step(r$4){r$4.value instanceof __await$1?Promise.resolve(r$4.value.v).then(fulfill,reject):settle(q$1[0][2],r$4)}function fulfill(value){resume(`next`,value)}function reject(value){resume(`throw`,value)}function settle(f$2,v$1){f$2(v$1),q$1.shift(),q$1.length&&resume(q$1[0][0],q$1[0][1])}};function createClient(service,transport$1){return makeAnyClient(service,method=>{switch(method.kind){case MethodKind.Unary:return createUnaryFn(transport$1,service,method);case MethodKind.ServerStreaming:return createServerStreamingFn(transport$1,service,method);case MethodKind.ClientStreaming:return createClientStreamingFn(transport$1,service,method);case MethodKind.BiDiStreaming:return createBiDiStreamingFn(transport$1,service,method);default:return null}})}function createPromiseClient(service,transport$1){return createClient(service,transport$1)}function createUnaryFn(transport$1,service,method){return async function(input,options$1){var _a$1,_b;let response=await transport$1.unary(service,method,options$1?.signal,options$1?.timeoutMs,options$1?.headers,input,options$1?.contextValues);return(_a$1=options$1?.onHeader)==null||_a$1.call(options$1,response.header),(_b=options$1?.onTrailer)==null||_b.call(options$1,response.trailer),response.message}}function createServerStreamingFn(transport$1,service,method){return function(input,options$1){return handleStreamResponse(transport$1.stream(service,method,options$1?.signal,options$1?.timeoutMs,options$1?.headers,createAsyncIterable([input]),options$1?.contextValues),options$1)}}function createClientStreamingFn(transport$1,service,method){return async function(request,options$1){var _a$1,e_1,_b,_c,_d,_e;let response=await transport$1.stream(service,method,options$1?.signal,options$1?.timeoutMs,options$1?.headers,request,options$1?.contextValues);(_d=options$1?.onHeader)==null||_d.call(options$1,response.header);let singleMessage,count=0;try{for(var _f=!0,_g=__asyncValues(response.message),_h;_h=await _g.next(),_a$1=_h.done,!_a$1;_f=!0)_c=_h.value,_f=!1,singleMessage=_c,count++}catch(e_1_1){e_1={error:e_1_1}}finally{try{!_f&&!_a$1&&(_b=_g.return)&&await _b.call(_g)}finally{if(e_1)throw e_1.error}}if(!singleMessage)throw new ConnectError(`protocol error: missing response message`,Code$1.Unimplemented);if(count>1)throw new ConnectError(`protocol error: received extra messages for client streaming method`,Code$1.Unimplemented);return(_e=options$1?.onTrailer)==null||_e.call(options$1,response.trailer),singleMessage}}function createBiDiStreamingFn(transport$1,service,method){return function(request,options$1){return handleStreamResponse(transport$1.stream(service,method,options$1?.signal,options$1?.timeoutMs,options$1?.headers,request,options$1?.contextValues),options$1)}}function handleStreamResponse(stream,options$1){let it=(function(){return __asyncGenerator$1(this,arguments,function*(){var _a$1,_b;let response=yield __await$1(stream);(_a$1=options$1?.onHeader)==null||_a$1.call(options$1,response.header),yield __await$1(yield*__asyncDelegator(__asyncValues(response.message))),(_b=options$1?.onTrailer)==null||_b.call(options$1,response.trailer)})})()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>it.next()})}}function createLinkedAbortController(...signals){let controller=new AbortController,sa=signals.filter(s$1=>s$1!==void 0).concat(controller.signal);for(let signal of sa){if(signal.aborted){onAbort.apply(signal);break}signal.addEventListener(`abort`,onAbort)}function onAbort(){controller.signal.aborted||controller.abort(getAbortSignalReason(this));for(let signal of sa)signal.removeEventListener(`abort`,onAbort)}return controller}function createDeadlineSignal(timeoutMs){let controller=new AbortController,listener=()=>{controller.abort(new ConnectError(`the operation timed out`,Code$1.DeadlineExceeded))},timeoutId;return timeoutMs!==void 0&&(timeoutMs<=0?listener():timeoutId=setTimeout(listener,timeoutMs)),{signal:controller.signal,cleanup:()=>clearTimeout(timeoutId)}}function getAbortSignalReason(signal){if(!signal.aborted)return;if(signal.reason!==void 0)return signal.reason;let e=Error(`This operation was aborted`);return e.name=`AbortError`,e}function createContextValues(){return{get(key$1){return key$1.id in this?this[key$1.id]:key$1.defaultValue},set(key$1,value){return this[key$1.id]=value,this},delete(key$1){return delete this[key$1.id],this}}}function createMethodUrl(baseUrl,service,method){let s$1=typeof service==`string`?service:service.typeName,m$2=typeof method==`string`?method:method.name;return baseUrl.toString().replace(/\/?$/,`/${s$1}/${m$2}`)}function normalize$3(type,message){return message instanceof type?message:new type(message)}function normalizeIterable(messageType,input){function transform$1(result){return result.done===!0?result:{done:result.done,value:normalize$3(messageType,result.value)}}return{[Symbol.asyncIterator](){let it=input[Symbol.asyncIterator](),res={next:()=>it.next().then(transform$1)};return it.throw!==void 0&&(res.throw=e=>it.throw(e).then(transform$1)),it.return!==void 0&&(res.return=v$1=>it.return(v$1).then(transform$1)),res}}}function applyInterceptors(next,interceptors){var _a$1;return interceptors?.concat().reverse().reduce((n,i$3)=>i$3(n),next)??next}function getJsonOptions(options$1){var _a$1;let o$2=Object.assign({},options$1);return o$2.ignoreUnknownFields??=!0,o$2}function createClientMethodSerializers(method,useBinaryFormat,jsonOptions,binaryOptions){let input=useBinaryFormat?createBinarySerialization(method.I,binaryOptions):createJsonSerialization(method.I,jsonOptions);return{parse:(useBinaryFormat?createBinarySerialization(method.O,binaryOptions):createJsonSerialization(method.O,jsonOptions)).parse,serialize:input.serialize}}function createBinarySerialization(messageType,options$1){return{parse(data){try{return messageType.fromBinary(data,options$1)}catch(e){throw new ConnectError(`parse binary: ${e instanceof Error?e.message:String(e)}`,Code$1.Internal)}},serialize(data){try{return data.toBinary(options$1)}catch(e){throw new ConnectError(`serialize binary: ${e instanceof Error?e.message:String(e)}`,Code$1.Internal)}}}}function createJsonSerialization(messageType,options$1){var _a$1,_b;let textEncoder=options$1?.textEncoder??new TextEncoder,textDecoder=options$1?.textDecoder??new TextDecoder,o$2=getJsonOptions(options$1);return{parse(data){try{let json$1=textDecoder.decode(data);return messageType.fromJsonString(json$1,o$2)}catch(e){throw ConnectError.from(e,Code$1.InvalidArgument)}},serialize(data){try{let json$1=data.toJsonString(o$2);return textEncoder.encode(json$1)}catch(e){throw ConnectError.from(e,Code$1.Internal)}}}}const contentTypeRegExp=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i,contentTypeUnaryProto=`application/proto`,contentTypeUnaryJson=`application/json`,contentTypeStreamProto=`application/connect+proto`,contentTypeStreamJson=`application/connect+json`;function parseContentType(contentType){let match=contentType?.match(contentTypeRegExp);if(match)return{stream:!!match[1],binary:!!match[3]}}var __rest=function(s$1,e){var t$1={};for(var p$1 in s$1)Object.prototype.hasOwnProperty.call(s$1,p$1)&&e.indexOf(p$1)<0&&(t$1[p$1]=s$1[p$1]);if(s$1!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i$3=0,p$1=Object.getOwnPropertySymbols(s$1);i$3<p$1.length;i$3++)e.indexOf(p$1[i$3])<0&&Object.prototype.propertyIsEnumerable.call(s$1,p$1[i$3])&&(t$1[p$1[i$3]]=s$1[p$1[i$3]]);return t$1};function errorFromJson(jsonValue,metadata,fallback$1){var _a$1;if(metadata&&new Headers(metadata).forEach((value,key$1)=>fallback$1.metadata.append(key$1,value)),typeof jsonValue!=`object`||!jsonValue||Array.isArray(jsonValue))throw fallback$1;let code$2=fallback$1.code;`code`in jsonValue&&typeof jsonValue.code==`string`&&(code$2=codeFromString(jsonValue.code)??code$2);let message=jsonValue.message;if(message!=null&&typeof message!=`string`)throw fallback$1;let error=new ConnectError(message??``,code$2,metadata);if(`details`in jsonValue&&Array.isArray(jsonValue.details))for(let detail of jsonValue.details){if(typeof detail!=`object`||!detail||Array.isArray(detail)||typeof detail.type!=`string`||typeof detail.value!=`string`)throw fallback$1;try{error.details.push({type:detail.type,value:protoBase64.dec(detail.value),debug:detail.debug})}catch{throw fallback$1}}return error}const endStreamFlag=2;function endStreamFromJson(data){let parseErr=new ConnectError(`invalid end stream`,Code$1.Unknown),jsonValue;try{jsonValue=JSON.parse(typeof data==`string`?data:new TextDecoder().decode(data))}catch{throw parseErr}if(typeof jsonValue!=`object`||!jsonValue||Array.isArray(jsonValue))throw parseErr;let metadata=new Headers;if(`metadata`in jsonValue){if(typeof jsonValue.metadata!=`object`||jsonValue.metadata==null||Array.isArray(jsonValue.metadata))throw parseErr;for(let[key$1,values]of Object.entries(jsonValue.metadata)){if(!Array.isArray(values)||values.some(value=>typeof value!=`string`))throw parseErr;for(let value of values)metadata.append(key$1,value)}}return{metadata,error:`error`in jsonValue&&jsonValue.error!=null?errorFromJson(jsonValue.error,metadata,parseErr):void 0}}const headerContentType=`Content-Type`,headerUnaryContentLength=`Content-Length`,headerUnaryEncoding=`Content-Encoding`,headerUnaryAcceptEncoding=`Accept-Encoding`,headerTimeout=`Connect-Timeout-Ms`,headerProtocolVersion=`Connect-Protocol-Version`,headerUserAgent=`User-Agent`;function codeFromHttpStatus(httpStatus){switch(httpStatus){case 400:return Code$1.Internal;case 401:return Code$1.Unauthenticated;case 403:return Code$1.PermissionDenied;case 404:return Code$1.Unimplemented;case 429:return Code$1.Unavailable;case 502:return Code$1.Unavailable;case 503:return Code$1.Unavailable;case 504:return Code$1.Unavailable;default:return Code$1.Unknown}}function trailerDemux(header){let h$1=new Headers,t$1=new Headers;return header.forEach((value,key$1)=>{key$1.toLowerCase().startsWith(`trailer-`)?t$1.append(key$1.substring(8),value):h$1.append(key$1,value)}),[h$1,t$1]}const protocolVersion=`1`;function requestHeader(methodKind,useBinaryFormat,timeoutMs,userProvidedHeaders,setUserAgent){let result=new Headers(userProvidedHeaders??{});return timeoutMs!==void 0&&result.set(`Connect-Timeout-Ms`,`${timeoutMs}`),result.set(headerContentType,methodKind==MethodKind.Unary?useBinaryFormat?`application/proto`:`application/json`:useBinaryFormat?`application/connect+proto`:`application/connect+json`),result.set(headerProtocolVersion,`1`),setUserAgent&&!result.has(`User-Agent`)&&result.set(`User-Agent`,`connect-es/1.7.0`),result}function validateResponse(methodKind,useBinaryFormat,status,headers){let mimeType=headers.get(headerContentType),parsedType=parseContentType(mimeType);if(status!==200){let errorFromStatus=new ConnectError(`HTTP ${status}`,codeFromHttpStatus(status),headers);if(methodKind==MethodKind.Unary&&parsedType&&!parsedType.binary)return{isUnaryError:!0,unaryError:errorFromStatus};throw errorFromStatus}let allowedContentType={binary:useBinaryFormat,stream:methodKind!==MethodKind.Unary};if(parsedType?.binary!==allowedContentType.binary||parsedType.stream!==allowedContentType.stream)throw new ConnectError(`unsupported content type ${mimeType}`,parsedType===void 0?Code$1.Unknown:Code$1.Internal,headers);return{isUnaryError:!1}}var contentTypePrefix=`application/`;function encodeMessageForUrl(message,useBase64){return useBase64?protoBase64.enc(message).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``):encodeURIComponent(new TextDecoder().decode(message))}function transformConnectPostToGetRequest(request,message,useBase64){let query=`?connect=v1`,contentType=request.header.get(headerContentType);contentType?.indexOf(contentTypePrefix)===0&&(query+=`&encoding=`+encodeURIComponent(contentType.slice(12)));let compression=request.header.get(headerUnaryEncoding);compression!==null&&compression!==`identity`&&(query+=`&compression=`+encodeURIComponent(compression),useBase64=!0),useBase64&&(query+=`&base64=1`),query+=`&message=`+encodeMessageForUrl(message,useBase64);let url=request.url+query,header=new Headers(request.header);return[headerProtocolVersion,headerContentType,`Content-Length`,headerUnaryEncoding,`Accept-Encoding`].forEach(h$1=>header.delete(h$1)),Object.assign(Object.assign({},request),{init:Object.assign(Object.assign({},request.init),{method:`GET`}),url,header})}function runUnaryCall(opt){let next=applyInterceptors(opt.next,opt.interceptors),[signal,abort,done]=setupSignal(opt);return next(Object.assign(Object.assign({},opt.req),{message:normalize$3(opt.req.method.I,opt.req.message),signal})).then(res=>(done(),res),abort)}function runStreamingCall(opt){let next=applyInterceptors(opt.next,opt.interceptors),[signal,abort,done]=setupSignal(opt),req=Object.assign(Object.assign({},opt.req),{message:normalizeIterable(opt.req.method.I,opt.req.message),signal}),doneCalled=!1;return signal.addEventListener(`abort`,function(){var _a$1,_b;let it=opt.req.message[Symbol.asyncIterator]();doneCalled||(_a$1=it.throw)==null||_a$1.call(it,this.reason).catch(()=>{}),(_b=it.return)==null||_b.call(it).catch(()=>{})}),next(req).then(res=>Object.assign(Object.assign({},res),{message:{[Symbol.asyncIterator](){let it=res.message[Symbol.asyncIterator]();return{next(){return it.next().then(r$4=>(r$4.done==1&&(doneCalled=!0,done()),r$4),abort)}}}}}),abort)}function setupSignal(opt){let{signal,cleanup}=createDeadlineSignal(opt.timeoutMs),controller=createLinkedAbortController(opt.signal,signal);return[controller.signal,function(reason){let e=ConnectError.from(signal.aborted?getAbortSignalReason(signal):reason);return controller.abort(e),cleanup(),Promise.reject(e)},function(){cleanup(),controller.abort()}]}function assertFetchApi(){try{new Headers}catch{throw Error(`connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.`)}}var __await=function(v$1){return this instanceof __await?(this.v=v$1,this):new __await(v$1)},__asyncGenerator=function(thisArg,_arguments,generator$1){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var g=generator$1.apply(thisArg,_arguments||[]),i$3,q$1=[];return i$3={},verb(`next`),verb(`throw`),verb(`return`,awaitReturn),i$3[Symbol.asyncIterator]=function(){return this},i$3;function awaitReturn(f$2){return function(v$1){return Promise.resolve(v$1).then(f$2,reject)}}function verb(n,f$2){g[n]&&(i$3[n]=function(v$1){return new Promise(function(a$1,b$2){q$1.push([n,v$1,a$1,b$2])>1||resume(n,v$1)})},f$2&&(i$3[n]=f$2(i$3[n])))}function resume(n,v$1){try{step(g[n](v$1))}catch(e){settle(q$1[0][3],e)}}function step(r$4){r$4.value instanceof __await?Promise.resolve(r$4.value.v).then(fulfill,reject):settle(q$1[0][2],r$4)}function fulfill(value){resume(`next`,value)}function reject(value){resume(`throw`,value)}function settle(f$2,v$1){f$2(v$1),q$1.shift(),q$1.length&&resume(q$1[0][0],q$1[0][1])}};function createConnectTransport(options$1){var _a$1;assertFetchApi();let useBinaryFormat=options$1.useBinaryFormat??!1;return{async unary(service,method,signal,timeoutMs,header,message,contextValues){var _a$2;let{serialize:serialize$1,parse:parse$2}=createClientMethodSerializers(method,useBinaryFormat,options$1.jsonOptions,options$1.binaryOptions);return timeoutMs=timeoutMs===void 0?options$1.defaultTimeoutMs:timeoutMs<=0?void 0:timeoutMs,await runUnaryCall({interceptors:options$1.interceptors,signal,timeoutMs,req:{stream:!1,service,method,url:createMethodUrl(options$1.baseUrl,service,method),init:{method:`POST`,credentials:options$1.credentials??`same-origin`,redirect:`error`,mode:`cors`},header:requestHeader(method.kind,useBinaryFormat,timeoutMs,header,!1),contextValues:contextValues??createContextValues(),message},next:async req=>{var _a$3;let useGet=options$1.useHttpGet===!0&&method.idempotency===MethodIdempotency.NoSideEffects,body$2=null;useGet?req=transformConnectPostToGetRequest(req,serialize$1(req.message),useBinaryFormat):body$2=serialize$1(req.message);let response=await(options$1.fetch??globalThis.fetch)(req.url,Object.assign(Object.assign({},req.init),{headers:req.header,signal:req.signal,body:body$2})),{isUnaryError,unaryError}=validateResponse(method.kind,useBinaryFormat,response.status,response.headers);if(isUnaryError)throw errorFromJson(await response.json(),appendHeaders(...trailerDemux(response.headers)),unaryError);let[demuxedHeader,demuxedTrailer]=trailerDemux(response.headers);return{stream:!1,service,method,header:demuxedHeader,message:useBinaryFormat?parse$2(new Uint8Array(await response.arrayBuffer())):method.O.fromJson(await response.json(),getJsonOptions(options$1.jsonOptions)),trailer:demuxedTrailer}}})},async stream(service,method,signal,timeoutMs,header,input,contextValues){var _a$2;let{serialize:serialize$1,parse:parse$2}=createClientMethodSerializers(method,useBinaryFormat,options$1.jsonOptions,options$1.binaryOptions);function parseResponseBody(body$2,trailerTarget,header$1,signal$1){return __asyncGenerator(this,arguments,function*(){let reader=createEnvelopeReadableStream(body$2).getReader(),endStreamReceived=!1;for(;;){let result=yield __await(reader.read());if(result.done)break;let{flags,data}=result.value;if((flags&1)==1)throw new ConnectError(`protocol error: received unsupported compressed output`,Code$1.Internal);if((flags&2)==2){endStreamReceived=!0;let endStream=endStreamFromJson(data);if(endStream.error){let error=endStream.error;throw header$1.forEach((value,key$1)=>{error.metadata.append(key$1,value)}),error}endStream.metadata.forEach((value,key$1)=>trailerTarget.set(key$1,value));continue}yield yield __await(parse$2(data))}if(`throwIfAborted`in signal$1&&signal$1.throwIfAborted(),!endStreamReceived)throw`missing EndStreamResponse`})}async function createRequestBody(input$1){if(method.kind!=MethodKind.ServerStreaming)throw`The fetch API does not support streaming request bodies`;let r$4=await input$1[Symbol.asyncIterator]().next();if(r$4.done==1)throw`missing request message`;return encodeEnvelope(0,serialize$1(r$4.value))}return timeoutMs=timeoutMs===void 0?options$1.defaultTimeoutMs:timeoutMs<=0?void 0:timeoutMs,await runStreamingCall({interceptors:options$1.interceptors,timeoutMs,signal,req:{stream:!0,service,method,url:createMethodUrl(options$1.baseUrl,service,method),init:{method:`POST`,credentials:options$1.credentials??`same-origin`,redirect:`error`,mode:`cors`},header:requestHeader(method.kind,useBinaryFormat,timeoutMs,header,!1),contextValues:contextValues??createContextValues(),message:input},next:async req=>{var _a$3;let fRes=await(options$1.fetch??globalThis.fetch)(req.url,Object.assign(Object.assign({},req.init),{headers:req.header,signal:req.signal,body:await createRequestBody(req.message)}));if(validateResponse(method.kind,useBinaryFormat,fRes.status,fRes.headers),fRes.body===null)throw`missing response body`;let trailer=new Headers;return Object.assign(Object.assign({},req),{header:fRes.headers,trailer,message:parseResponseBody(fRes.body,trailer,fRes.headers,req.signal)})}})}}}var Label=class Label extends Message{constructor(data){super(),this.id=``,this.name=``,this.color=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.Label`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`id`,kind:`scalar`,T:9},{no:2,name:`name`,kind:`scalar`,T:9},{no:3,name:`color`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new Label().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new Label().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new Label().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(Label,a$1,b$2)}},Connection=class Connection extends Message{constructor(data){super(),this.id=``,this.name=``,this.description=``,this.host=``,this.port=0,this.database=``,this.username=``,this.hasPassword=!1,this.sslMode=``,this.labels=[],this.version=``,this.permissions=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.Connection`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`id`,kind:`scalar`,T:9},{no:2,name:`name`,kind:`scalar`,T:9},{no:3,name:`description`,kind:`scalar`,T:9},{no:4,name:`host`,kind:`scalar`,T:9},{no:5,name:`port`,kind:`scalar`,T:5},{no:6,name:`database`,kind:`scalar`,T:9},{no:7,name:`username`,kind:`scalar`,T:9},{no:8,name:`has_password`,kind:`scalar`,T:8},{no:9,name:`ssl_mode`,kind:`scalar`,T:9},{no:10,name:`labels`,kind:`message`,T:Label,repeated:!0},{no:11,name:`version`,kind:`scalar`,T:9},{no:12,name:`permissions`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new Connection().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new Connection().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new Connection().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(Connection,a$1,b$2)}},ListConnectionsRequest=class ListConnectionsRequest extends Message{constructor(data){super(),proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.ListConnectionsRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[]);static fromBinary(bytes,options$1){return new ListConnectionsRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ListConnectionsRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ListConnectionsRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ListConnectionsRequest,a$1,b$2)}},ListConnectionsResponse=class ListConnectionsResponse extends Message{constructor(data){super(),this.connections=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.ListConnectionsResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connections`,kind:`message`,T:Connection,repeated:!0}]);static fromBinary(bytes,options$1){return new ListConnectionsResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ListConnectionsResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ListConnectionsResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ListConnectionsResponse,a$1,b$2)}},GetConnectionRequest=class GetConnectionRequest extends Message{constructor(data){super(),this.id=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.GetConnectionRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetConnectionRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetConnectionRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetConnectionRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetConnectionRequest,a$1,b$2)}},GetConnectionResponse=class GetConnectionResponse extends Message{constructor(data){super(),proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.GetConnectionResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection`,kind:`message`,T:Connection}]);static fromBinary(bytes,options$1){return new GetConnectionResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetConnectionResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetConnectionResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetConnectionResponse,a$1,b$2)}},TestConnectionRequest=class TestConnectionRequest extends Message{constructor(data){super(),this.id=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.TestConnectionRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new TestConnectionRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new TestConnectionRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new TestConnectionRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(TestConnectionRequest,a$1,b$2)}},TestConnectionResponse=class TestConnectionResponse extends Message{constructor(data){super(),this.success=!1,this.error=``,this.latencyMs=0,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`connection.v1.TestConnectionResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`success`,kind:`scalar`,T:8},{no:2,name:`error`,kind:`scalar`,T:9},{no:3,name:`latency_ms`,kind:`scalar`,T:5}]);static fromBinary(bytes,options$1){return new TestConnectionResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new TestConnectionResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new TestConnectionResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(TestConnectionResponse,a$1,b$2)}};const ConnectionService={typeName:`connection.v1.ConnectionService`,methods:{listConnections:{name:`ListConnections`,I:ListConnectionsRequest,O:ListConnectionsResponse,kind:MethodKind.Unary},getConnection:{name:`GetConnection`,I:GetConnectionRequest,O:GetConnectionResponse,kind:MethodKind.Unary},testConnection:{name:`TestConnection`,I:TestConnectionRequest,O:TestConnectionResponse,kind:MethodKind.Unary}}};var ExecuteSQLRequest=class ExecuteSQLRequest extends Message{constructor(data){super(),this.connectionId=``,this.sql=``,this.queryId=``,this.searchPath=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.ExecuteSQLRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`sql`,kind:`scalar`,T:9},{no:3,name:`query_id`,kind:`scalar`,T:9},{no:4,name:`search_path`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new ExecuteSQLRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ExecuteSQLRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ExecuteSQLRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ExecuteSQLRequest,a$1,b$2)}},ExecuteSQLResponse=class ExecuteSQLResponse extends Message{constructor(data){super(),this.columns=[],this.rows=[],this.rowCount=0,this.executionTimeMs=0,this.error=``,this.backendPid=0,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.ExecuteSQLResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`columns`,kind:`message`,T:ColumnMetadata,repeated:!0},{no:2,name:`rows`,kind:`message`,T:Row,repeated:!0},{no:3,name:`row_count`,kind:`scalar`,T:5},{no:4,name:`execution_time_ms`,kind:`scalar`,T:5},{no:5,name:`error`,kind:`scalar`,T:9},{no:6,name:`backend_pid`,kind:`scalar`,T:5}]);static fromBinary(bytes,options$1){return new ExecuteSQLResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ExecuteSQLResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ExecuteSQLResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ExecuteSQLResponse,a$1,b$2)}},Row=class Row extends Message{constructor(data){super(),this.values=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.Row`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`values`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new Row().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new Row().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new Row().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(Row,a$1,b$2)}},ColumnMetadata=class ColumnMetadata extends Message{constructor(data){super(),this.name=``,this.type=``,this.tableName=``,this.schemaName=``,this.isPrimaryKey=!1,this.isNullable=!1,this.hasDefault=!1,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.ColumnMetadata`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`type`,kind:`scalar`,T:9},{no:3,name:`table_name`,kind:`scalar`,T:9},{no:4,name:`schema_name`,kind:`scalar`,T:9},{no:5,name:`is_primary_key`,kind:`scalar`,T:8},{no:6,name:`is_nullable`,kind:`scalar`,T:8},{no:7,name:`has_default`,kind:`scalar`,T:8}]);static fromBinary(bytes,options$1){return new ColumnMetadata().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ColumnMetadata().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ColumnMetadata().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ColumnMetadata,a$1,b$2)}},CancelQueryRequest=class CancelQueryRequest extends Message{constructor(data){super(),this.connectionId=``,this.queryId=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.CancelQueryRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`query_id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new CancelQueryRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new CancelQueryRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new CancelQueryRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(CancelQueryRequest,a$1,b$2)}},CancelQueryResponse=class CancelQueryResponse extends Message{constructor(data){super(),this.cancelled=!1,this.error=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.CancelQueryResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`cancelled`,kind:`scalar`,T:8},{no:2,name:`error`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new CancelQueryResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new CancelQueryResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new CancelQueryResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(CancelQueryResponse,a$1,b$2)}},GetSchemasRequest=class GetSchemasRequest extends Message{constructor(data){super(),this.connectionId=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetSchemasRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetSchemasRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetSchemasRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetSchemasRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetSchemasRequest,a$1,b$2)}},GetSchemasResponse=class GetSchemasResponse extends Message{constructor(data){super(),this.schemas=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetSchemasResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`schemas`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new GetSchemasResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetSchemasResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetSchemasResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetSchemasResponse,a$1,b$2)}},GetTablesRequest=class GetTablesRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetTablesRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetTablesRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetTablesRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetTablesRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetTablesRequest,a$1,b$2)}},GetTablesResponse=class GetTablesResponse extends Message{constructor(data){super(),this.tables=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetTablesResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`tables`,kind:`message`,T:TableInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetTablesResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetTablesResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetTablesResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetTablesResponse,a$1,b$2)}},TableInfo=class TableInfo extends Message{constructor(data){super(),this.name=``,this.type=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.TableInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`type`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new TableInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new TableInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new TableInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(TableInfo,a$1,b$2)}},GetColumnsRequest=class GetColumnsRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.table=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetColumnsRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`table`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetColumnsRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetColumnsRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetColumnsRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetColumnsRequest,a$1,b$2)}},GetColumnsResponse=class GetColumnsResponse extends Message{constructor(data){super(),this.columns=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetColumnsResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`columns`,kind:`message`,T:ColumnInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetColumnsResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetColumnsResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetColumnsResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetColumnsResponse,a$1,b$2)}},ColumnInfo=class ColumnInfo extends Message{constructor(data){super(),this.name=``,this.type=``,this.nullable=!1,this.isPrimaryKey=!1,this.defaultValue=``,this.comment=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.ColumnInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`type`,kind:`scalar`,T:9},{no:3,name:`nullable`,kind:`scalar`,T:8},{no:4,name:`is_primary_key`,kind:`scalar`,T:8},{no:5,name:`default_value`,kind:`scalar`,T:9},{no:6,name:`comment`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new ColumnInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ColumnInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ColumnInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ColumnInfo,a$1,b$2)}},GetTableInfoRequest=class GetTableInfoRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.table=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetTableInfoRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`table`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetTableInfoRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetTableInfoRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetTableInfoRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetTableInfoRequest,a$1,b$2)}},GetTableInfoResponse=class GetTableInfoResponse extends Message{constructor(data){super(),proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetTableInfoResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`metadata`,kind:`message`,T:TableMetadata}]);static fromBinary(bytes,options$1){return new GetTableInfoResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetTableInfoResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetTableInfoResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetTableInfoResponse,a$1,b$2)}},TableMetadata=class TableMetadata extends Message{constructor(data){super(),this.owner=``,this.rowCount=protoInt64.zero,this.totalSize=protoInt64.zero,this.tableSize=protoInt64.zero,this.indexSize=protoInt64.zero,this.encoding=``,this.collation=``,this.comment=``,this.kind=``,this.definition=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.TableMetadata`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`owner`,kind:`scalar`,T:9},{no:2,name:`row_count`,kind:`scalar`,T:3},{no:3,name:`total_size`,kind:`scalar`,T:3},{no:4,name:`table_size`,kind:`scalar`,T:3},{no:5,name:`index_size`,kind:`scalar`,T:3},{no:6,name:`encoding`,kind:`scalar`,T:9},{no:7,name:`collation`,kind:`scalar`,T:9},{no:8,name:`comment`,kind:`scalar`,T:9},{no:9,name:`kind`,kind:`scalar`,T:9},{no:10,name:`definition`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new TableMetadata().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new TableMetadata().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new TableMetadata().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(TableMetadata,a$1,b$2)}},IndexInfo=class IndexInfo extends Message{constructor(data){super(),this.name=``,this.isUnique=!1,this.isPrimary=!1,this.method=``,this.columns=[],this.definition=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.IndexInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`is_unique`,kind:`scalar`,T:8},{no:3,name:`is_primary`,kind:`scalar`,T:8},{no:4,name:`method`,kind:`scalar`,T:9},{no:5,name:`columns`,kind:`scalar`,T:9,repeated:!0},{no:6,name:`definition`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new IndexInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new IndexInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new IndexInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(IndexInfo,a$1,b$2)}},GetIndexesRequest=class GetIndexesRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.table=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetIndexesRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`table`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetIndexesRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetIndexesRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetIndexesRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetIndexesRequest,a$1,b$2)}},GetIndexesResponse=class GetIndexesResponse extends Message{constructor(data){super(),this.indexes=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetIndexesResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`indexes`,kind:`message`,T:IndexInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetIndexesResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetIndexesResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetIndexesResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetIndexesResponse,a$1,b$2)}},ConstraintInfo=class ConstraintInfo extends Message{constructor(data){super(),this.name=``,this.type=``,this.columns=[],this.definition=``,this.refTable=``,this.refColumns=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.ConstraintInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`type`,kind:`scalar`,T:9},{no:3,name:`columns`,kind:`scalar`,T:9,repeated:!0},{no:4,name:`definition`,kind:`scalar`,T:9},{no:5,name:`ref_table`,kind:`scalar`,T:9},{no:6,name:`ref_columns`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new ConstraintInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ConstraintInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ConstraintInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ConstraintInfo,a$1,b$2)}},GetConstraintsRequest=class GetConstraintsRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.table=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetConstraintsRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`table`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetConstraintsRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetConstraintsRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetConstraintsRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetConstraintsRequest,a$1,b$2)}},GetConstraintsResponse=class GetConstraintsResponse extends Message{constructor(data){super(),this.constraints=[],this.referencedBy=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetConstraintsResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`constraints`,kind:`message`,T:ConstraintInfo,repeated:!0},{no:2,name:`referenced_by`,kind:`message`,T:ConstraintInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetConstraintsResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetConstraintsResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetConstraintsResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetConstraintsResponse,a$1,b$2)}},TriggerInfo=class TriggerInfo extends Message{constructor(data){super(),this.name=``,this.timing=``,this.event=``,this.level=``,this.function=``,this.enabled=!1,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.TriggerInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`timing`,kind:`scalar`,T:9},{no:3,name:`event`,kind:`scalar`,T:9},{no:4,name:`level`,kind:`scalar`,T:9},{no:5,name:`function`,kind:`scalar`,T:9},{no:6,name:`enabled`,kind:`scalar`,T:8}]);static fromBinary(bytes,options$1){return new TriggerInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new TriggerInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new TriggerInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(TriggerInfo,a$1,b$2)}},GetTriggersRequest=class GetTriggersRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.table=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetTriggersRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`table`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetTriggersRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetTriggersRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetTriggersRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetTriggersRequest,a$1,b$2)}},GetTriggersResponse=class GetTriggersResponse extends Message{constructor(data){super(),this.triggers=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetTriggersResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`triggers`,kind:`message`,T:TriggerInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetTriggersResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetTriggersResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetTriggersResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetTriggersResponse,a$1,b$2)}},PolicyInfo=class PolicyInfo extends Message{constructor(data){super(),this.name=``,this.command=``,this.permissive=``,this.roles=[],this.usingExpr=``,this.checkExpr=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.PolicyInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`command`,kind:`scalar`,T:9},{no:3,name:`permissive`,kind:`scalar`,T:9},{no:4,name:`roles`,kind:`scalar`,T:9,repeated:!0},{no:5,name:`using_expr`,kind:`scalar`,T:9},{no:6,name:`check_expr`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new PolicyInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new PolicyInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new PolicyInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(PolicyInfo,a$1,b$2)}},GetPoliciesRequest=class GetPoliciesRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.table=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetPoliciesRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`table`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetPoliciesRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetPoliciesRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetPoliciesRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetPoliciesRequest,a$1,b$2)}},GetPoliciesResponse=class GetPoliciesResponse extends Message{constructor(data){super(),this.policies=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetPoliciesResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`policies`,kind:`message`,T:PolicyInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetPoliciesResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetPoliciesResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetPoliciesResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetPoliciesResponse,a$1,b$2)}},GrantInfo=class GrantInfo extends Message{constructor(data){super(),this.grantee=``,this.privileges=[],this.grantor=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GrantInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`grantee`,kind:`scalar`,T:9},{no:2,name:`privileges`,kind:`scalar`,T:9,repeated:!0},{no:3,name:`grantor`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GrantInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GrantInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GrantInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GrantInfo,a$1,b$2)}},GetGrantsRequest=class GetGrantsRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.table=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetGrantsRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`table`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetGrantsRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetGrantsRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetGrantsRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetGrantsRequest,a$1,b$2)}},GetGrantsResponse=class GetGrantsResponse extends Message{constructor(data){super(),this.grants=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetGrantsResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`grants`,kind:`message`,T:GrantInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetGrantsResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetGrantsResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetGrantsResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetGrantsResponse,a$1,b$2)}},MaterializedViewInfo=class MaterializedViewInfo extends Message{constructor(data){super(),this.name=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.MaterializedViewInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new MaterializedViewInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new MaterializedViewInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new MaterializedViewInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(MaterializedViewInfo,a$1,b$2)}},GetMaterializedViewsRequest=class GetMaterializedViewsRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetMaterializedViewsRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetMaterializedViewsRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetMaterializedViewsRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetMaterializedViewsRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetMaterializedViewsRequest,a$1,b$2)}},GetMaterializedViewsResponse=class GetMaterializedViewsResponse extends Message{constructor(data){super(),this.materializedViews=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetMaterializedViewsResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`materialized_views`,kind:`message`,T:MaterializedViewInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetMaterializedViewsResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetMaterializedViewsResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetMaterializedViewsResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetMaterializedViewsResponse,a$1,b$2)}},FunctionInfo=class FunctionInfo extends Message{constructor(data){super(),this.name=``,this.returnType=``,this.arguments=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.FunctionInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`return_type`,kind:`scalar`,T:9},{no:3,name:`arguments`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new FunctionInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new FunctionInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new FunctionInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(FunctionInfo,a$1,b$2)}},GetFunctionsRequest=class GetFunctionsRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetFunctionsRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetFunctionsRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetFunctionsRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetFunctionsRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetFunctionsRequest,a$1,b$2)}},GetFunctionsResponse=class GetFunctionsResponse extends Message{constructor(data){super(),this.functions=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetFunctionsResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`functions`,kind:`message`,T:FunctionInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetFunctionsResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetFunctionsResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetFunctionsResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetFunctionsResponse,a$1,b$2)}},ProcedureInfo=class ProcedureInfo extends Message{constructor(data){super(),this.name=``,this.arguments=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.ProcedureInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`arguments`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new ProcedureInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ProcedureInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ProcedureInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ProcedureInfo,a$1,b$2)}},GetProceduresRequest=class GetProceduresRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetProceduresRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetProceduresRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetProceduresRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetProceduresRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetProceduresRequest,a$1,b$2)}},GetProceduresResponse=class GetProceduresResponse extends Message{constructor(data){super(),this.procedures=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetProceduresResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`procedures`,kind:`message`,T:ProcedureInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetProceduresResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetProceduresResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetProceduresResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetProceduresResponse,a$1,b$2)}},GetFunctionInfoRequest=class GetFunctionInfoRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.name=``,this.arguments=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetFunctionInfoRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`name`,kind:`scalar`,T:9},{no:4,name:`arguments`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetFunctionInfoRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetFunctionInfoRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetFunctionInfoRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetFunctionInfoRequest,a$1,b$2)}},GetFunctionInfoResponse=class GetFunctionInfoResponse extends Message{constructor(data){super(),proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetFunctionInfoResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`metadata`,kind:`message`,T:FunctionMetadata}]);static fromBinary(bytes,options$1){return new GetFunctionInfoResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetFunctionInfoResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetFunctionInfoResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetFunctionInfoResponse,a$1,b$2)}},FunctionMetadata=class FunctionMetadata extends Message{constructor(data){super(),this.name=``,this.kind=``,this.owner=``,this.language=``,this.returnType=``,this.arguments=``,this.definition=``,this.volatility=``,this.comment=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.FunctionMetadata`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`name`,kind:`scalar`,T:9},{no:2,name:`kind`,kind:`scalar`,T:9},{no:3,name:`owner`,kind:`scalar`,T:9},{no:4,name:`language`,kind:`scalar`,T:9},{no:5,name:`return_type`,kind:`scalar`,T:9},{no:6,name:`arguments`,kind:`scalar`,T:9},{no:7,name:`definition`,kind:`scalar`,T:9},{no:8,name:`volatility`,kind:`scalar`,T:9},{no:9,name:`comment`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new FunctionMetadata().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new FunctionMetadata().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new FunctionMetadata().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(FunctionMetadata,a$1,b$2)}},GetFunctionDependenciesRequest=class GetFunctionDependenciesRequest extends Message{constructor(data){super(),this.connectionId=``,this.schema=``,this.name=``,this.arguments=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetFunctionDependenciesRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schema`,kind:`scalar`,T:9},{no:3,name:`name`,kind:`scalar`,T:9},{no:4,name:`arguments`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetFunctionDependenciesRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetFunctionDependenciesRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetFunctionDependenciesRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetFunctionDependenciesRequest,a$1,b$2)}},GetFunctionDependenciesResponse=class GetFunctionDependenciesResponse extends Message{constructor(data){super(),this.dependencies=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetFunctionDependenciesResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`dependencies`,kind:`message`,T:DependencyInfo,repeated:!0}]);static fromBinary(bytes,options$1){return new GetFunctionDependenciesResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetFunctionDependenciesResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetFunctionDependenciesResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetFunctionDependenciesResponse,a$1,b$2)}},DependencyInfo=class DependencyInfo extends Message{constructor(data){super(),this.schema=``,this.name=``,this.type=``,this.arguments=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.DependencyInfo`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`schema`,kind:`scalar`,T:9},{no:2,name:`name`,kind:`scalar`,T:9},{no:3,name:`type`,kind:`scalar`,T:9},{no:4,name:`arguments`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new DependencyInfo().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new DependencyInfo().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new DependencyInfo().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(DependencyInfo,a$1,b$2)}},ActiveSession=class ActiveSession extends Message{constructor(data){super(),this.pid=0,this.usename=``,this.datname=``,this.applicationName=``,this.clientAddr=``,this.state=``,this.query=``,this.queryStart=``,this.stateChange=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.ActiveSession`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`pid`,kind:`scalar`,T:5},{no:2,name:`usename`,kind:`scalar`,T:9},{no:3,name:`datname`,kind:`scalar`,T:9},{no:4,name:`application_name`,kind:`scalar`,T:9},{no:5,name:`client_addr`,kind:`scalar`,T:9},{no:6,name:`state`,kind:`scalar`,T:9},{no:7,name:`query`,kind:`scalar`,T:9},{no:8,name:`query_start`,kind:`scalar`,T:9},{no:9,name:`state_change`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new ActiveSession().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ActiveSession().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ActiveSession().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ActiveSession,a$1,b$2)}},GetActiveSessionsRequest=class GetActiveSessionsRequest extends Message{constructor(data){super(),this.connectionId=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetActiveSessionsRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetActiveSessionsRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetActiveSessionsRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetActiveSessionsRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetActiveSessionsRequest,a$1,b$2)}},GetActiveSessionsResponse=class GetActiveSessionsResponse extends Message{constructor(data){super(),this.sessions=[],this.error=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.GetActiveSessionsResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`sessions`,kind:`message`,T:ActiveSession,repeated:!0},{no:2,name:`error`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GetActiveSessionsResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GetActiveSessionsResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GetActiveSessionsResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GetActiveSessionsResponse,a$1,b$2)}},TerminateSessionRequest=class TerminateSessionRequest extends Message{constructor(data){super(),this.connectionId=``,this.pid=0,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.TerminateSessionRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`pid`,kind:`scalar`,T:5}]);static fromBinary(bytes,options$1){return new TerminateSessionRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new TerminateSessionRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new TerminateSessionRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(TerminateSessionRequest,a$1,b$2)}},TerminateSessionResponse=class TerminateSessionResponse extends Message{constructor(data){super(),this.success=!1,this.error=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.TerminateSessionResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`success`,kind:`scalar`,T:8},{no:2,name:`error`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new TerminateSessionResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new TerminateSessionResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new TerminateSessionResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(TerminateSessionResponse,a$1,b$2)}},AuditExportRequest=class AuditExportRequest extends Message{constructor(data){super(),this.connectionId=``,this.sql=``,this.rowCount=0,this.format=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.AuditExportRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`sql`,kind:`scalar`,T:9},{no:3,name:`row_count`,kind:`scalar`,T:5},{no:4,name:`format`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new AuditExportRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new AuditExportRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new AuditExportRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(AuditExportRequest,a$1,b$2)}},AuditExportResponse=class AuditExportResponse extends Message{constructor(data){super(),proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`query.v1.AuditExportResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[]);static fromBinary(bytes,options$1){return new AuditExportResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new AuditExportResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new AuditExportResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(AuditExportResponse,a$1,b$2)}};const QueryService={typeName:`query.v1.QueryService`,methods:{executeSQL:{name:`ExecuteSQL`,I:ExecuteSQLRequest,O:ExecuteSQLResponse,kind:MethodKind.ServerStreaming},cancelQuery:{name:`CancelQuery`,I:CancelQueryRequest,O:CancelQueryResponse,kind:MethodKind.Unary},getSchemas:{name:`GetSchemas`,I:GetSchemasRequest,O:GetSchemasResponse,kind:MethodKind.Unary},getTables:{name:`GetTables`,I:GetTablesRequest,O:GetTablesResponse,kind:MethodKind.Unary},getColumns:{name:`GetColumns`,I:GetColumnsRequest,O:GetColumnsResponse,kind:MethodKind.Unary},getTableInfo:{name:`GetTableInfo`,I:GetTableInfoRequest,O:GetTableInfoResponse,kind:MethodKind.Unary},getIndexes:{name:`GetIndexes`,I:GetIndexesRequest,O:GetIndexesResponse,kind:MethodKind.Unary},getConstraints:{name:`GetConstraints`,I:GetConstraintsRequest,O:GetConstraintsResponse,kind:MethodKind.Unary},getTriggers:{name:`GetTriggers`,I:GetTriggersRequest,O:GetTriggersResponse,kind:MethodKind.Unary},getPolicies:{name:`GetPolicies`,I:GetPoliciesRequest,O:GetPoliciesResponse,kind:MethodKind.Unary},getGrants:{name:`GetGrants`,I:GetGrantsRequest,O:GetGrantsResponse,kind:MethodKind.Unary},getMaterializedViews:{name:`GetMaterializedViews`,I:GetMaterializedViewsRequest,O:GetMaterializedViewsResponse,kind:MethodKind.Unary},getFunctions:{name:`GetFunctions`,I:GetFunctionsRequest,O:GetFunctionsResponse,kind:MethodKind.Unary},getProcedures:{name:`GetProcedures`,I:GetProceduresRequest,O:GetProceduresResponse,kind:MethodKind.Unary},getFunctionInfo:{name:`GetFunctionInfo`,I:GetFunctionInfoRequest,O:GetFunctionInfoResponse,kind:MethodKind.Unary},getFunctionDependencies:{name:`GetFunctionDependencies`,I:GetFunctionDependenciesRequest,O:GetFunctionDependenciesResponse,kind:MethodKind.Unary},getActiveSessions:{name:`GetActiveSessions`,I:GetActiveSessionsRequest,O:GetActiveSessionsResponse,kind:MethodKind.Unary},terminateSession:{name:`TerminateSession`,I:TerminateSessionRequest,O:TerminateSessionResponse,kind:MethodKind.Unary},auditExport:{name:`AuditExport`,I:AuditExportRequest,O:AuditExportResponse,kind:MethodKind.Unary}}};var AIProvider=class AIProvider extends Message{constructor(data){super(),this.id=``,this.name=``,this.vendor=``,this.model=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.AIProvider`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`id`,kind:`scalar`,T:9},{no:2,name:`name`,kind:`scalar`,T:9},{no:3,name:`vendor`,kind:`scalar`,T:9},{no:4,name:`model`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new AIProvider().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new AIProvider().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new AIProvider().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(AIProvider,a$1,b$2)}},ListAIProvidersRequest=class ListAIProvidersRequest extends Message{constructor(data){super(),proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.ListAIProvidersRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[]);static fromBinary(bytes,options$1){return new ListAIProvidersRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ListAIProvidersRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ListAIProvidersRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ListAIProvidersRequest,a$1,b$2)}},ListAIProvidersResponse=class ListAIProvidersResponse extends Message{constructor(data){super(),this.providers=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.ListAIProvidersResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`providers`,kind:`message`,T:AIProvider,repeated:!0}]);static fromBinary(bytes,options$1){return new ListAIProvidersResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ListAIProvidersResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ListAIProvidersResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ListAIProvidersResponse,a$1,b$2)}},GenerateSQLRequest=class GenerateSQLRequest extends Message{constructor(data){super(),this.connectionId=``,this.providerId=``,this.prompt=``,this.schemas=[],this.sessionId=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.GenerateSQLRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`provider_id`,kind:`scalar`,T:9},{no:3,name:`prompt`,kind:`scalar`,T:9},{no:4,name:`schemas`,kind:`scalar`,T:9,repeated:!0},{no:5,name:`session_id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GenerateSQLRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GenerateSQLRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GenerateSQLRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GenerateSQLRequest,a$1,b$2)}},GenerateSQLResponse=class GenerateSQLResponse extends Message{constructor(data){super(),this.sql=``,this.error=``,this.sessionId=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.GenerateSQLResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`sql`,kind:`scalar`,T:9},{no:2,name:`error`,kind:`scalar`,T:9},{no:3,name:`session_id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new GenerateSQLResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new GenerateSQLResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new GenerateSQLResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(GenerateSQLResponse,a$1,b$2)}},ExplainSQLRequest=class ExplainSQLRequest extends Message{constructor(data){super(),this.connectionId=``,this.providerId=``,this.sql=``,this.schemas=[],this.sessionId=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.ExplainSQLRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`provider_id`,kind:`scalar`,T:9},{no:3,name:`sql`,kind:`scalar`,T:9},{no:4,name:`schemas`,kind:`scalar`,T:9,repeated:!0},{no:5,name:`session_id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new ExplainSQLRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ExplainSQLRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ExplainSQLRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ExplainSQLRequest,a$1,b$2)}},ExplainSQLResponse=class ExplainSQLResponse extends Message{constructor(data){super(),this.explanation=``,this.error=``,this.sessionId=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.ExplainSQLResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`explanation`,kind:`scalar`,T:9},{no:2,name:`error`,kind:`scalar`,T:9},{no:3,name:`session_id`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new ExplainSQLResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new ExplainSQLResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new ExplainSQLResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(ExplainSQLResponse,a$1,b$2)}},FixSQLRequest=class FixSQLRequest extends Message{constructor(data){super(),this.connectionId=``,this.providerId=``,this.sql=``,this.errorMessage=``,this.schemas=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.FixSQLRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`provider_id`,kind:`scalar`,T:9},{no:3,name:`sql`,kind:`scalar`,T:9},{no:4,name:`error_message`,kind:`scalar`,T:9},{no:5,name:`schemas`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new FixSQLRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new FixSQLRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new FixSQLRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(FixSQLRequest,a$1,b$2)}},FixSQLResponse=class FixSQLResponse extends Message{constructor(data){super(),this.sql=``,this.error=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.FixSQLResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`sql`,kind:`scalar`,T:9},{no:2,name:`error`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new FixSQLResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new FixSQLResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new FixSQLResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(FixSQLResponse,a$1,b$2)}},RewriteSQLRequest=class RewriteSQLRequest extends Message{constructor(data){super(),this.connectionId=``,this.providerId=``,this.sql=``,this.schemas=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.RewriteSQLRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`provider_id`,kind:`scalar`,T:9},{no:3,name:`sql`,kind:`scalar`,T:9},{no:4,name:`schemas`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new RewriteSQLRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new RewriteSQLRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new RewriteSQLRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(RewriteSQLRequest,a$1,b$2)}},RewriteSQLResponse=class RewriteSQLResponse extends Message{constructor(data){super(),this.sql=``,this.error=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.RewriteSQLResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`sql`,kind:`scalar`,T:9},{no:2,name:`error`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new RewriteSQLResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new RewriteSQLResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new RewriteSQLResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(RewriteSQLResponse,a$1,b$2)}},RefreshSchemaCacheRequest=class RefreshSchemaCacheRequest extends Message{constructor(data){super(),this.connectionId=``,this.schemas=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.RefreshSchemaCacheRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`schemas`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new RefreshSchemaCacheRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new RefreshSchemaCacheRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new RefreshSchemaCacheRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(RefreshSchemaCacheRequest,a$1,b$2)}},RefreshSchemaCacheResponse=class RefreshSchemaCacheResponse extends Message{constructor(data){super(),this.success=!1,this.error=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.RefreshSchemaCacheResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`success`,kind:`scalar`,T:8},{no:2,name:`error`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new RefreshSchemaCacheResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new RefreshSchemaCacheResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new RefreshSchemaCacheResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(RefreshSchemaCacheResponse,a$1,b$2)}},AssessChangeRiskRequest=class AssessChangeRiskRequest extends Message{constructor(data){super(),this.connectionId=``,this.providerId=``,this.sqlStatements=[],this.schemas=[],proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.AssessChangeRiskRequest`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`connection_id`,kind:`scalar`,T:9},{no:2,name:`provider_id`,kind:`scalar`,T:9},{no:3,name:`sql_statements`,kind:`scalar`,T:9,repeated:!0},{no:4,name:`schemas`,kind:`scalar`,T:9,repeated:!0}]);static fromBinary(bytes,options$1){return new AssessChangeRiskRequest().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new AssessChangeRiskRequest().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new AssessChangeRiskRequest().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(AssessChangeRiskRequest,a$1,b$2)}},RiskFinding=class RiskFinding extends Message{constructor(data){super(),this.severity=``,this.category=``,this.description=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.RiskFinding`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`severity`,kind:`scalar`,T:9},{no:2,name:`category`,kind:`scalar`,T:9},{no:3,name:`description`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new RiskFinding().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new RiskFinding().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new RiskFinding().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(RiskFinding,a$1,b$2)}},AssessChangeRiskResponse=class AssessChangeRiskResponse extends Message{constructor(data){super(),this.overallRisk=``,this.findings=[],this.error=``,this.dependencyGraph=``,proto3.util.initPartial(data,this)}static#e=this.runtime=proto3;static#t=this.typeName=`ai.v1.AssessChangeRiskResponse`;static#n=this.fields=proto3.util.newFieldList(()=>[{no:1,name:`overall_risk`,kind:`scalar`,T:9},{no:2,name:`findings`,kind:`message`,T:RiskFinding,repeated:!0},{no:3,name:`error`,kind:`scalar`,T:9},{no:4,name:`dependency_graph`,kind:`scalar`,T:9}]);static fromBinary(bytes,options$1){return new AssessChangeRiskResponse().fromBinary(bytes,options$1)}static fromJson(jsonValue,options$1){return new AssessChangeRiskResponse().fromJson(jsonValue,options$1)}static fromJsonString(jsonString,options$1){return new AssessChangeRiskResponse().fromJsonString(jsonString,options$1)}static equals(a$1,b$2){return proto3.util.equals(AssessChangeRiskResponse,a$1,b$2)}};const AIService={typeName:`ai.v1.AIService`,methods:{listAIProviders:{name:`ListAIProviders`,I:ListAIProvidersRequest,O:ListAIProvidersResponse,kind:MethodKind.Unary},generateSQL:{name:`GenerateSQL`,I:GenerateSQLRequest,O:GenerateSQLResponse,kind:MethodKind.Unary},explainSQL:{name:`ExplainSQL`,I:ExplainSQLRequest,O:ExplainSQLResponse,kind:MethodKind.Unary},fixSQL:{name:`FixSQL`,I:FixSQLRequest,O:FixSQLResponse,kind:MethodKind.Unary},rewriteSQL:{name:`RewriteSQL`,I:RewriteSQLRequest,O:RewriteSQLResponse,kind:MethodKind.Unary},refreshSchemaCache:{name:`RefreshSchemaCache`,I:RefreshSchemaCacheRequest,O:RefreshSchemaCacheResponse,kind:MethodKind.Unary},assessChangeRisk:{name:`AssessChangeRisk`,I:AssessChangeRiskRequest,O:AssessChangeRiskResponse,kind:MethodKind.Unary}}};var transport=createConnectTransport({baseUrl:``,credentials:`include`});const connectionClient=createPromiseClient(ConnectionService,transport),queryClient$1=createPromiseClient(QueryService,transport),aiClient=createPromiseClient(AIService,transport),queryKeys={all:[`query`],schemas:connectionId=>[...queryKeys.all,`schemas`,connectionId],tables:(connectionId,schema)=>[...queryKeys.all,`tables`,connectionId,schema],columns:(connectionId,schema,table$1)=>[...queryKeys.all,`columns`,connectionId,schema,table$1],tableInfo:(connectionId,schema,table$1)=>[...queryKeys.all,`tableInfo`,connectionId,schema,table$1],indexes:(connectionId,schema,table$1)=>[...queryKeys.all,`indexes`,connectionId,schema,table$1],constraints:(connectionId,schema,table$1)=>[...queryKeys.all,`constraints`,connectionId,schema,table$1],triggers:(connectionId,schema,table$1)=>[...queryKeys.all,`triggers`,connectionId,schema,table$1],policies:(connectionId,schema,table$1)=>[...queryKeys.all,`policies`,connectionId,schema,table$1],grants:(connectionId,schema,table$1)=>[...queryKeys.all,`grants`,connectionId,schema,table$1],materializedViews:(connectionId,schema)=>[...queryKeys.all,`materializedViews`,connectionId,schema],functions:(connectionId,schema)=>[...queryKeys.all,`functions`,connectionId,schema],procedures:(connectionId,schema)=>[...queryKeys.all,`procedures`,connectionId,schema],functionInfo:(connectionId,schema,name$2,args)=>[...queryKeys.all,`functionInfo`,connectionId,schema,name$2,args],functionDependencies:(connectionId,schema,name$2,args)=>[...queryKeys.all,`functionDependencies`,connectionId,schema,name$2,args],processes:connectionId=>[...queryKeys.all,`processes`,connectionId]},connectionKeys={all:[`connections`],list:()=>[...connectionKeys.all,`list`],detail:id=>[...connectionKeys.all,`detail`,id]};function useSchemas(connectionId){return useQuery({queryKey:queryKeys.schemas(connectionId),queryFn:async()=>(await queryClient$1.getSchemas({connectionId})).schemas,enabled:!!connectionId})}function useTables(connectionId,schema){return useQuery({queryKey:queryKeys.tables(connectionId,schema),queryFn:async()=>(await queryClient$1.getTables({connectionId,schema})).tables,enabled:!!connectionId&&!!schema})}function useColumns(connectionId,schema,table$1){return useQuery({queryKey:queryKeys.columns(connectionId,schema,table$1),queryFn:async()=>(await queryClient$1.getColumns({connectionId,schema,table:table$1})).columns,enabled:!!connectionId&&!!schema&&!!table$1})}function useTableInfo(connectionId,schema,table$1){return useQuery({queryKey:queryKeys.tableInfo(connectionId,schema,table$1),queryFn:async()=>(await queryClient$1.getTableInfo({connectionId,schema,table:table$1})).metadata,enabled:!!connectionId&&!!schema&&!!table$1})}function useIndexes(connectionId,schema,table$1,enabled=!0){return useQuery({queryKey:queryKeys.indexes(connectionId,schema,table$1),queryFn:async()=>(await queryClient$1.getIndexes({connectionId,schema,table:table$1})).indexes,enabled:enabled&&!!connectionId&&!!schema&&!!table$1})}function useConstraints(connectionId,schema,table$1,enabled=!0){return useQuery({queryKey:queryKeys.constraints(connectionId,schema,table$1),queryFn:async()=>{let response=await queryClient$1.getConstraints({connectionId,schema,table:table$1});return{constraints:response.constraints,referencedBy:response.referencedBy}},enabled:enabled&&!!connectionId&&!!schema&&!!table$1})}function useTriggers(connectionId,schema,table$1,enabled=!0){return useQuery({queryKey:queryKeys.triggers(connectionId,schema,table$1),queryFn:async()=>(await queryClient$1.getTriggers({connectionId,schema,table:table$1})).triggers,enabled:enabled&&!!connectionId&&!!schema&&!!table$1})}function usePolicies(connectionId,schema,table$1,enabled=!0){return useQuery({queryKey:queryKeys.policies(connectionId,schema,table$1),queryFn:async()=>(await queryClient$1.getPolicies({connectionId,schema,table:table$1})).policies,enabled:enabled&&!!connectionId&&!!schema&&!!table$1})}function useGrants(connectionId,schema,table$1,enabled=!0){return useQuery({queryKey:queryKeys.grants(connectionId,schema,table$1),queryFn:async()=>(await queryClient$1.getGrants({connectionId,schema,table:table$1})).grants,enabled:enabled&&!!connectionId&&!!schema&&!!table$1})}function useMaterializedViews(connectionId,schema){return useQuery({queryKey:queryKeys.materializedViews(connectionId,schema),queryFn:async()=>(await queryClient$1.getMaterializedViews({connectionId,schema})).materializedViews,enabled:!!connectionId&&!!schema})}function useFunctions(connectionId,schema){return useQuery({queryKey:queryKeys.functions(connectionId,schema),queryFn:async()=>(await queryClient$1.getFunctions({connectionId,schema})).functions,enabled:!!connectionId&&!!schema})}function useProcedures(connectionId,schema){return useQuery({queryKey:queryKeys.procedures(connectionId,schema),queryFn:async()=>(await queryClient$1.getProcedures({connectionId,schema})).procedures,enabled:!!connectionId&&!!schema})}function useFunctionInfo(connectionId,schema,name$2,args){return useQuery({queryKey:queryKeys.functionInfo(connectionId,schema,name$2,args),queryFn:async()=>(await queryClient$1.getFunctionInfo({connectionId,schema,name:name$2,arguments:args})).metadata,enabled:!!connectionId&&!!schema&&!!name$2})}function useFunctionDependencies(connectionId,schema,name$2,args){return useQuery({queryKey:queryKeys.functionDependencies(connectionId,schema,name$2,args),queryFn:async()=>(await queryClient$1.getFunctionDependencies({connectionId,schema,name:name$2,arguments:args})).dependencies,enabled:!!connectionId&&!!schema&&!!name$2})}function useExecuteSQL(){return useMutation({mutationFn:async({connectionId,sql,queryId,searchPath,onPid})=>{let lastResponse=null;for await(let response of queryClient$1.executeSQL({connectionId,sql,queryId,searchPath})){response.backendPid&&onPid&&response.columns.length===0&&!response.error&&onPid(response.backendPid);let mappedRows=response.rows.map(row=>{let obj={};return response.columns.forEach((col,i$3)=>{obj[col.name]=row.values[i$3]}),obj});lastResponse={columns:response.columns.map(col=>({name:col.name,type:col.type,tableName:col.tableName,schemaName:col.schemaName,isPrimaryKey:col.isPrimaryKey,isNullable:col.isNullable,hasDefault:col.hasDefault})),rows:mappedRows,rowCount:response.rowCount,executionTime:response.executionTimeMs,error:response.error,backendPid:response.backendPid}}if(!lastResponse)throw Error(`No response received from server`);return lastResponse}})}function useCancelQuery(){return useMutation({mutationFn:async({connectionId,queryId})=>{let response=await queryClient$1.cancelQuery({connectionId,queryId});return{cancelled:response.cancelled,error:response.error}}})}function useConnections(){return useQuery({queryKey:connectionKeys.list(),queryFn:async()=>(await connectionClient.listConnections({})).connections})}function useActiveProcesses(connectionId,enabled=!0){return useQuery({queryKey:queryKeys.processes(connectionId),queryFn:async()=>{let response=await queryClient$1.getActiveSessions({connectionId});if(response.error)throw Error(response.error);return response.sessions},enabled:enabled&&!!connectionId,refetchInterval:5e3})}function useTerminateProcess(){let qc=useQueryClient();return useMutation({mutationFn:async({connectionId,pid})=>{let response=await queryClient$1.terminateSession({connectionId,pid});if(response.error)throw Error(response.error);return response.success},onSuccess:(_$2,{connectionId})=>{qc.invalidateQueries({queryKey:queryKeys.processes(connectionId)})}})}function useRefreshSchemaCache(){return useMutation({mutationFn:async({connectionId,schemas})=>{let response=await aiClient.refreshSchemaCache({connectionId,schemas:schemas||[]});if(response.error)throw Error(response.error);return response.success}})}function useConnectionHealth(connectionId,enabled=!0){return useQuery({queryKey:[...connectionKeys.all,`health`,connectionId],queryFn:async()=>{let response=await connectionClient.testConnection({id:connectionId});return{success:response.success,error:response.error,latencyMs:response.latencyMs}},enabled:enabled&&!!connectionId,staleTime:6e4,retry:1})}var PERMISSION_VARIANTS={admin:`default`,ddl:`warning`,write:`info`,read:`success`,explain:`muted`,execute:`secondary`,export:`outline`},PERMISSION_ORDER=[`explain`,`read`,`execute`,`export`,`write`,`ddl`,`admin`];function sortPermissions(permissions){return[...permissions].sort((a$1,b$2)=>PERMISSION_ORDER.indexOf(a$1)-PERMISSION_ORDER.indexOf(b$2))}function ConnectionSwitcher({selectedConnectionId}){let navigate=useNavigate(),{data:connections,isLoading}=useConnections(),{authEnabled}=useSession(),{data:healthCheck}=useConnectionHealth(selectedConnectionId,!!selectedConnectionId),isConnectionDown=healthCheck&&!healthCheck.success,currentConnection=connections?.find(c=>c.id===selectedConnectionId);return isLoading?(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,import_jsx_runtime.jsx)(Database,{size:14}),(0,import_jsx_runtime.jsx)(`span`,{children:`Loading...`})]}):!connections||connections.length===0?(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,import_jsx_runtime.jsx)(Database,{size:14}),(0,import_jsx_runtime.jsx)(`span`,{children:`No connections`}),(0,import_jsx_runtime.jsxs)(`span`,{className:`text-xs`,children:[`(Check`,` `,(0,import_jsx_runtime.jsx)(`a`,{href:`https://docs.pgconsole.com/configuration/iam-permissions`,target:`_blank`,rel:`noopener noreferrer`,className:`text-blue-500 hover:underline`,children:`IAM permissions`}),`)`]})]}):(0,import_jsx_runtime.jsxs)(Menu,{children:[(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsxs)(TooltipTrigger,{render:(0,import_jsx_runtime.jsx)(MenuTrigger,{render:(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`sm`,className:`!h-auto !py-1 !px-2 gap-1`})}),children:[currentConnection?(0,import_jsx_runtime.jsxs)(`div`,{className:`flex flex-col items-start text-left gap-0.5`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,import_jsx_runtime.jsx)(`span`,{className:`text-sm font-medium whitespace-nowrap`,children:currentConnection.name}),isConnectionDown&&(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{render:(0,import_jsx_runtime.jsx)(CircleAlert,{className:`text-red-500`,size:14})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{children:(0,import_jsx_runtime.jsxs)(`div`,{className:`text-sm`,children:[`Connection unavailable`,healthCheck?.error&&(0,import_jsx_runtime.jsx)(`div`,{className:`text-xs text-gray-400 mt-1`,children:healthCheck.error})]})})]}),currentConnection.labels&&currentConnection.labels.length>0&&(0,import_jsx_runtime.jsx)(`div`,{className:`flex gap-1 shrink-0`,children:currentConnection.labels.map(label=>(0,import_jsx_runtime.jsx)(Badge,{size:`sm`,variant:`outline`,style:{borderColor:label.color,color:label.color},children:label.name},label.id))}),authEnabled&&currentConnection.permissions.length>0&&(0,import_jsx_runtime.jsx)(`div`,{className:`flex gap-1 shrink-0`,children:sortPermissions(currentConnection.permissions).map(perm=>(0,import_jsx_runtime.jsx)(Badge,{size:`sm`,variant:PERMISSION_VARIANTS[perm]??`muted`,children:perm},perm))})]}),(0,import_jsx_runtime.jsxs)(`span`,{className:`text-xs text-muted-foreground whitespace-nowrap`,children:[currentConnection.host,`:`,currentConnection.port,`/`,currentConnection.database]})]}):`Select connection`,(0,import_jsx_runtime.jsx)(ChevronDown,{size:14,className:`shrink-0`})]}),currentConnection&&(0,import_jsx_runtime.jsx)(TooltipPopup,{side:`bottom`,children:(0,import_jsx_runtime.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,import_jsx_runtime.jsx)(`span`,{className:`font-medium`,children:currentConnection.name}),currentConnection.labels&&currentConnection.labels.length>0&&(0,import_jsx_runtime.jsx)(`div`,{className:`flex gap-1 flex-wrap`,children:currentConnection.labels.map(label=>(0,import_jsx_runtime.jsx)(Badge,{size:`sm`,variant:`outline`,style:{borderColor:label.color,color:label.color},children:label.name},label.id))}),authEnabled&&currentConnection.permissions.length>0&&(0,import_jsx_runtime.jsx)(`div`,{className:`flex gap-1 flex-wrap`,children:sortPermissions(currentConnection.permissions).map(perm=>(0,import_jsx_runtime.jsx)(Badge,{size:`sm`,variant:PERMISSION_VARIANTS[perm]??`muted`,children:perm},perm))})]}),(0,import_jsx_runtime.jsxs)(`span`,{className:`text-muted-foreground`,children:[currentConnection.host,`:`,currentConnection.port,`/`,currentConnection.database]})]})})]}),(0,import_jsx_runtime.jsx)(MenuPopup,{children:connections.map(conn=>(0,import_jsx_runtime.jsx)(MenuItem,{onClick:()=>navigate(`/?connectionId=${conn.id}`),className:selectedConnectionId===conn.id?`bg-gray-100`:``,children:(0,import_jsx_runtime.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,import_jsx_runtime.jsx)(`span`,{className:`text-sm font-medium`,children:conn.name}),conn.labels&&conn.labels.length>0&&(0,import_jsx_runtime.jsx)(`div`,{className:`flex gap-1 flex-wrap`,children:conn.labels.map(label=>(0,import_jsx_runtime.jsx)(Badge,{size:`sm`,variant:`outline`,style:{borderColor:label.color,color:label.color},children:label.name},label.id))}),authEnabled&&conn.permissions.length>0&&(0,import_jsx_runtime.jsx)(`div`,{className:`flex gap-1 flex-wrap`,children:sortPermissions(conn.permissions).map(perm=>(0,import_jsx_runtime.jsx)(Badge,{size:`sm`,variant:PERMISSION_VARIANTS[perm]??`muted`,children:perm},perm))})]}),(0,import_jsx_runtime.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[conn.host,`:`,conn.port,`/`,conn.database]})]})},conn.id))})]})}const SubscriptionModalContext=(0,import_react.createContext)(null);function useSubscriptionModal(){let context=(0,import_react.useContext)(SubscriptionModalContext);if(!context)throw Error(`useSubscriptionModal must be used within SubscriptionModalProvider`);return context}function useOwner(){let{isOwner}=useSession();return isOwner}const AvatarRootContext=import_react.createContext(void 0);function useAvatarRootContext(){let context=import_react.useContext(AvatarRootContext);if(context===void 0)throw Error(formatErrorMessage(13));return context}const avatarStateAttributesMapping={imageLoadingStatus:()=>null},AvatarRoot=import_react.forwardRef(function(componentProps,forwardedRef){let{className,render,...elementProps}=componentProps,[imageLoadingStatus,setImageLoadingStatus]=import_react.useState(`idle`),state$1=import_react.useMemo(()=>({imageLoadingStatus}),[imageLoadingStatus]),contextValue=import_react.useMemo(()=>({imageLoadingStatus,setImageLoadingStatus}),[imageLoadingStatus,setImageLoadingStatus]),element$3=useRenderElement(`span`,componentProps,{state:state$1,ref:forwardedRef,props:elementProps,stateAttributesMapping:avatarStateAttributesMapping});return(0,import_jsx_runtime.jsx)(AvatarRootContext.Provider,{value:contextValue,children:element$3})}),AvatarFallback$1=import_react.forwardRef(function(componentProps,forwardedRef){let{className,render,delay,...elementProps}=componentProps,{imageLoadingStatus}=useAvatarRootContext(),[delayPassed,setDelayPassed]=import_react.useState(delay===void 0),timeout=useTimeout();return import_react.useEffect(()=>(delay!==void 0&&timeout.start(delay,()=>setDelayPassed(!0)),timeout.clear),[timeout,delay]),useRenderElement(`span`,componentProps,{state:import_react.useMemo(()=>({imageLoadingStatus}),[imageLoadingStatus]),ref:forwardedRef,props:elementProps,stateAttributesMapping:avatarStateAttributesMapping,enabled:imageLoadingStatus!==`loaded`&&delayPassed})});function Avatar({className,...props}){return(0,import_jsx_runtime.jsx)(AvatarRoot,{className:cn(`inline-flex size-8 shrink-0 select-none items-center justify-center overflow-hidden rounded-full bg-background align-middle font-medium text-xs`,className),"data-slot":`avatar`,...props})}function AvatarFallback({className,...props}){return(0,import_jsx_runtime.jsx)(AvatarFallback$1,{className:cn(`flex size-full items-center justify-center rounded-full bg-muted`,className),"data-slot":`avatar-fallback`,...props})}function UserAvatar({user,size:size$3=`md`,className}){let[erroredUrl,setErroredUrl]=(0,import_react.useState)(null),avatarUrl=user?.avatar,initial=(user?.name||user?.email||`U`).charAt(0).toUpperCase(),sizeClasses={xs:`size-6 text-xs`,sm:`size-8 text-xs`,md:`size-10 text-sm`,lg:`size-12 text-base`},showImage=avatarUrl&&avatarUrl!==erroredUrl;return(0,import_jsx_runtime.jsx)(Avatar,{className:`${sizeClasses[size$3]} ${className||``}`,children:showImage?(0,import_jsx_runtime.jsx)(`img`,{src:avatarUrl,alt:user?.name||user?.email||`User`,className:`size-full object-cover`,onError:()=>setErroredUrl(avatarUrl)}):(0,import_jsx_runtime.jsx)(AvatarFallback,{className:`bg-gray-200 text-gray-600`,children:initial})})}var logo_light_full_default=`/assets/logo-light-full-3Wf7NsR1.svg`;function Header({selectedConnectionId}){let navigate=useNavigate(),{user,authEnabled}=useSession(),subscriptionModal=useSubscriptionModal(),isOwner=useOwner(),isGuest=user?.email===`guest`,showSignIn=!user&&authEnabled,handleSignOut=async()=>{await signOut(),window.location.href=`/signin`};return(0,import_jsx_runtime.jsxs)(`header`,{className:`h-12 bg-gray-100 border-b border-gray-300 flex items-center px-3 justify-between`,children:[(0,import_jsx_runtime.jsx)(ConnectionSwitcher,{selectedConnectionId}),(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,import_jsx_runtime.jsx)(`button`,{onClick:()=>window.open(`https://docs.pgconsole.com`,`_blank`),className:`flex items-center justify-center hover:opacity-80`,"aria-label":`Documentation`,children:(0,import_jsx_runtime.jsx)(`img`,{src:logo_light_full_default,alt:`pgconsole docs`,className:`h-7.5`})}),user&&!isGuest?(0,import_jsx_runtime.jsxs)(Menu,{children:[(0,import_jsx_runtime.jsx)(MenuTrigger,{render:(0,import_jsx_runtime.jsx)(`button`,{className:`flex items-center hover:opacity-80 transition-opacity`,"aria-label":`User menu`,children:(0,import_jsx_runtime.jsx)(UserAvatar,{user,size:`sm`})})}),(0,import_jsx_runtime.jsxs)(MenuPopup,{align:`end`,side:`bottom`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`px-3 py-2 border-b border-gray-200`,children:[(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm font-medium text-gray-900`,children:user.name}),(0,import_jsx_runtime.jsxs)(`div`,{className:`text-xs text-gray-500`,children:[user.name!==user.email&&(0,import_jsx_runtime.jsx)(`span`,{children:user.email}),isOwner&&(0,import_jsx_runtime.jsx)(`span`,{className:`ml-1 text-blue-600 font-medium`,children:`(Owner)`})]})]}),isOwner&&(0,import_jsx_runtime.jsxs)(MenuItem,{onClick:()=>subscriptionModal.open(),children:[(0,import_jsx_runtime.jsx)(CreditCard,{size:14}),`Subscription`]}),(0,import_jsx_runtime.jsxs)(MenuItem,{onClick:handleSignOut,children:[(0,import_jsx_runtime.jsx)(LogOut,{size:14}),`Sign Out`]}),(0,import_jsx_runtime.jsx)(`div`,{className:`px-3 py-2 border-t border-gray-200`,children:(0,import_jsx_runtime.jsxs)(`div`,{className:`text-xs text-gray-400`,children:[`v`,`1.0.0`,` (`,`e994bde`,`) · `,new Date(`2026-02-09T07:30:14.910Z`).toLocaleDateString()]})})]})]}):showSignIn?(0,import_jsx_runtime.jsx)(`button`,{className:`text-xs text-gray-500 hover:text-gray-700 transition-colors px-2`,onClick:()=>navigate(`/signin`),children:`Sign In`}):null]})]})}function SearchInput({value,onClear,className,...props}){let hasValue=value!=null&&String(value).length>0;return(0,import_jsx_runtime.jsxs)(`div`,{className:`relative`,children:[(0,import_jsx_runtime.jsx)(Search,{className:`pointer-events-none absolute left-2.5 top-1/2 z-10 -translate-y-1/2 size-4 text-muted-foreground`}),(0,import_jsx_runtime.jsx)(Input,{type:`text`,value,className:`[&_[data-slot=input]]:pl-8 ${hasValue?`[&_[data-slot=input]]:pr-8`:``} ${className||``}`,...props}),hasValue&&onClear&&(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`icon-xs`,className:`absolute right-1 top-1/2 z-10 -translate-y-1/2`,onClick:onClear,children:(0,import_jsx_runtime.jsx)(X,{className:`size-3`})})]})}function useOnFirstRender(fn){let ref=import_react.useRef(!0);ref.current&&(ref.current=!1,fn())}const SelectRootContext=import_react.createContext(null),SelectFloatingContext=import_react.createContext(null);function useSelectRootContext(){let context=import_react.useContext(SelectRootContext);if(context===null)throw Error(formatErrorMessage(60));return context}function useSelectFloatingContext(){let context=import_react.useContext(SelectFloatingContext);if(context===null)throw Error(formatErrorMessage(61));return context}const defaultItemEquality=(item,value)=>Object.is(item,value);function compareItemEquality(item,value,comparer){return item==null||value==null?Object.is(item,value):comparer(item,value)}function itemIncludes(collection,value,comparer){return!collection||collection.length===0?!1:collection.some(item=>item===void 0?!1:compareItemEquality(item,value,comparer))}function findItemIndex(collection,value,comparer){return!collection||collection.length===0?-1:collection.findIndex(item=>item===void 0?!1:compareItemEquality(item,value,comparer))}function removeItem(collection,value,comparer){return collection.filter(item=>!compareItemEquality(item,value,comparer))}function serializeValue(value){if(value==null)return``;if(typeof value==`string`)return value;try{return JSON.stringify(value)}catch{return String(value)}}function isGroupedItems(items){return items!=null&&items.length>0&&typeof items[0]==`object`&&items[0]!=null&&`items`in items[0]}function hasNullItemLabel(items){if(!Array.isArray(items))return items!=null&&!(`null`in items);if(isGroupedItems(items)){for(let group of items)for(let item of group.items)if(item&&item.value==null&&item.label!=null)return!0;return!1}for(let item of items)if(item&&item.value==null&&item.label!=null)return!0;return!1}function stringifyAsLabel(item,itemToStringLabel){if(itemToStringLabel&&item!=null)return itemToStringLabel(item)??``;if(item&&typeof item==`object`){if(`label`in item&&item.label!=null)return String(item.label);if(`value`in item)return String(item.value)}return serializeValue(item)}function stringifyAsValue(item,itemToStringValue){return itemToStringValue&&item!=null?itemToStringValue(item)??``:item&&typeof item==`object`&&`value`in item&&`label`in item?serializeValue(item.value):serializeValue(item)}function resolveSelectedLabel(value,items,itemToStringLabel){function fallback$1(){return stringifyAsLabel(value,itemToStringLabel)}if(itemToStringLabel&&value!=null)return itemToStringLabel(value);if(value&&typeof value==`object`&&`label`in value&&value.label!=null)return value.label;if(items&&!Array.isArray(items))return items[value]??fallback$1();if(Array.isArray(items)){let flatItems=isGroupedItems(items)?items.flatMap(g=>g.items):items;if(typeof value!=`object`||!value){let match=flatItems.find(item=>item.value===value);return match&&match.label!=null?match.label:fallback$1()}if(`value`in value){let match=flatItems.find(item=>item&&item.value===value.value);if(match&&match.label!=null)return match.label}}return fallback$1()}function resolveMultipleLabels(values,items,itemToStringLabel){return values.reduce((acc,value,index$4)=>(index$4>0&&acc.push(`, `),acc.push((0,import_jsx_runtime.jsx)(import_react.Fragment,{children:resolveSelectedLabel(value,items,itemToStringLabel)},index$4)),acc),[])}const selectors$1={id:createSelector(state$1=>state$1.id),modal:createSelector(state$1=>state$1.modal),multiple:createSelector(state$1=>state$1.multiple),items:createSelector(state$1=>state$1.items),itemToStringLabel:createSelector(state$1=>state$1.itemToStringLabel),itemToStringValue:createSelector(state$1=>state$1.itemToStringValue),isItemEqualToValue:createSelector(state$1=>state$1.isItemEqualToValue),value:createSelector(state$1=>state$1.value),hasSelectedValue:createSelector(state$1=>{let{value,multiple,itemToStringValue}=state$1;return value==null?!1:multiple&&Array.isArray(value)?value.length>0:stringifyAsValue(value,itemToStringValue)!==``}),hasNullItemLabel:createSelector((state$1,enabled)=>enabled?hasNullItemLabel(state$1.items):!1),open:createSelector(state$1=>state$1.open),mounted:createSelector(state$1=>state$1.mounted),forceMount:createSelector(state$1=>state$1.forceMount),transitionStatus:createSelector(state$1=>state$1.transitionStatus),openMethod:createSelector(state$1=>state$1.openMethod),activeIndex:createSelector(state$1=>state$1.activeIndex),selectedIndex:createSelector(state$1=>state$1.selectedIndex),isActive:createSelector((state$1,index$4)=>state$1.activeIndex===index$4),isSelected:createSelector((state$1,index$4,candidate)=>{let comparer=state$1.isItemEqualToValue,storeValue=state$1.value;return state$1.multiple?Array.isArray(storeValue)&&storeValue.some(item=>compareItemEquality(item,candidate,comparer)):state$1.selectedIndex===index$4&&state$1.selectedIndex!==null?!0:compareItemEquality(storeValue,candidate,comparer)}),isSelectedByFocus:createSelector((state$1,index$4)=>state$1.selectedIndex===index$4),popupProps:createSelector(state$1=>state$1.popupProps),triggerProps:createSelector(state$1=>state$1.triggerProps),triggerElement:createSelector(state$1=>state$1.triggerElement),positionerElement:createSelector(state$1=>state$1.positionerElement),listElement:createSelector(state$1=>state$1.listElement),scrollUpArrowVisible:createSelector(state$1=>state$1.scrollUpArrowVisible),scrollDownArrowVisible:createSelector(state$1=>state$1.scrollDownArrowVisible),hasScrollArrows:createSelector(state$1=>state$1.hasScrollArrows)};function useValueChanged(value,onChange){let valueRef=import_react.useRef(value),onChangeCallback=useStableCallback(onChange);useIsoLayoutEffect(()=>{valueRef.current!==value&&onChangeCallback(valueRef.current)},[value,onChangeCallback]),useIsoLayoutEffect(()=>{valueRef.current=value},[value])}function SelectRoot(props){let{id,value:valueProp,defaultValue=null,onValueChange,open:openProp,defaultOpen=!1,onOpenChange,name:nameProp,disabled:disabledProp=!1,readOnly:readOnly$1=!1,required=!1,modal=!0,actionsRef,inputRef,onOpenChangeComplete,items,multiple=!1,itemToStringLabel,itemToStringValue,isItemEqualToValue=defaultItemEquality,highlightItemOnHover=!0,children}=props,{clearErrors}=useFormContext(),{setDirty,setTouched,setFocused,shouldValidateOnChange,validityData,setFilled,name:fieldName,disabled:fieldDisabled,validation,validationMode}=useFieldRootContext(),generatedId=useLabelableId({id}),disabled$1=fieldDisabled||disabledProp,name$2=fieldName??nameProp,[value,setValueUnwrapped]=useControlled({controlled:valueProp,default:multiple?defaultValue??EMPTY_ARRAY:defaultValue,name:`Select`,state:`value`}),[open,setOpenUnwrapped]=useControlled({controlled:openProp,default:defaultOpen,name:`Select`,state:`open`}),listRef=import_react.useRef([]),labelsRef=import_react.useRef([]),popupRef=import_react.useRef(null),scrollHandlerRef=import_react.useRef(null),scrollArrowsMountedCountRef=import_react.useRef(0),valueRef=import_react.useRef(null),valuesRef=import_react.useRef([]),typingRef=import_react.useRef(!1),keyboardActiveRef=import_react.useRef(!1),selectedItemTextRef=import_react.useRef(null),selectionRef=import_react.useRef({allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1}),alignItemWithTriggerActiveRef=import_react.useRef(!1),{mounted,setMounted,transitionStatus}=useTransitionStatus(open),{openMethod,triggerProps:interactionTypeProps,reset:resetOpenInteractionType}=useOpenInteractionType(open),store=useRefWithInit(()=>new Store({id:generatedId,modal,multiple,itemToStringLabel,itemToStringValue,isItemEqualToValue,value,open,mounted,transitionStatus,items,forceMount:!1,openMethod:null,activeIndex:null,selectedIndex:null,popupProps:{},triggerProps:{},triggerElement:null,positionerElement:null,listElement:null,scrollUpArrowVisible:!1,scrollDownArrowVisible:!1,hasScrollArrows:!1})).current,activeIndex=useStore(store,selectors$1.activeIndex),selectedIndex=useStore(store,selectors$1.selectedIndex),triggerElement=useStore(store,selectors$1.triggerElement),positionerElement=useStore(store,selectors$1.positionerElement),serializedValue=import_react.useMemo(()=>multiple&&Array.isArray(value)&&value.length===0?``:stringifyAsValue(value,itemToStringValue),[multiple,value,itemToStringValue]),fieldStringValue=import_react.useMemo(()=>multiple&&Array.isArray(value)?value.map(currentValue=>stringifyAsValue(currentValue,itemToStringValue)):stringifyAsValue(value,itemToStringValue),[multiple,value,itemToStringValue]),controlRef=useValueAsRef(store.state.triggerElement);useField({id:generatedId,commit:validation.commit,value,controlRef,name:name$2,getValue:()=>fieldStringValue});let initialValueRef=import_react.useRef(value);useIsoLayoutEffect(()=>{value!==initialValueRef.current&&store.set(`forceMount`,!0)},[store,value]),useIsoLayoutEffect(()=>{setFilled(multiple?Array.isArray(value)&&value.length>0:value!=null)},[multiple,value,setFilled]),useIsoLayoutEffect(function(){if(open)return;let registry=valuesRef.current;if(multiple){let currentValue=Array.isArray(value)?value:[];if(currentValue.length===0){store.set(`selectedIndex`,null);return}let lastValue=currentValue[currentValue.length-1],lastIndex=findItemIndex(registry,lastValue,isItemEqualToValue);store.set(`selectedIndex`,lastIndex===-1?null:lastIndex);return}let index$4=findItemIndex(registry,value,isItemEqualToValue);store.set(`selectedIndex`,index$4===-1?null:index$4)},[multiple,open,value,valuesRef,isItemEqualToValue,store]),useValueChanged(value,()=>{clearErrors(name$2),setDirty(value!==validityData.initialValue),shouldValidateOnChange()?validation.commit(value):validation.commit(value,!0)});let setOpen=useStableCallback((nextOpen,eventDetails)=>{if(onOpenChange?.(nextOpen,eventDetails),!eventDetails.isCanceled&&(setOpenUnwrapped(nextOpen),!nextOpen&&(eventDetails.reason===`focus-out`||eventDetails.reason===`outside-press`)&&(setTouched(!0),setFocused(!1),validationMode===`onBlur`&&validation.commit(value)),!nextOpen&&store.state.activeIndex!==null)){let activeOption=listRef.current[store.state.activeIndex];queueMicrotask(()=>{activeOption?.setAttribute(`tabindex`,`-1`)})}}),handleUnmount=useStableCallback(()=>{setMounted(!1),store.set(`activeIndex`,null),resetOpenInteractionType(),onOpenChangeComplete?.(!1)});useOpenChangeComplete({enabled:!actionsRef,open,ref:popupRef,onComplete(){open||handleUnmount()}}),import_react.useImperativeHandle(actionsRef,()=>({unmount:handleUnmount}),[handleUnmount]);let setValue=useStableCallback((nextValue,eventDetails)=>{onValueChange?.(nextValue,eventDetails),!eventDetails.isCanceled&&setValueUnwrapped(nextValue)}),handleScrollArrowVisibility=useStableCallback(()=>{let scroller=store.state.listElement||popupRef.current;if(!scroller)return;let viewportTop=scroller.scrollTop,viewportBottom=scroller.scrollTop+scroller.clientHeight,shouldShowUp=viewportTop>1,shouldShowDown=viewportBottom<scroller.scrollHeight-1;store.state.scrollUpArrowVisible!==shouldShowUp&&store.set(`scrollUpArrowVisible`,shouldShowUp),store.state.scrollDownArrowVisible!==shouldShowDown&&store.set(`scrollDownArrowVisible`,shouldShowDown)}),floatingContext=useFloatingRootContext({open,onOpenChange:setOpen,elements:{reference:triggerElement,floating:positionerElement}}),{getReferenceProps,getFloatingProps,getItemProps}=useInteractions([useClick(floatingContext,{enabled:!readOnly$1&&!disabled$1,event:`mousedown`}),useDismiss(floatingContext,{bubbles:!1}),useListNavigation(floatingContext,{enabled:!readOnly$1&&!disabled$1,listRef,activeIndex,selectedIndex,disabledIndices:EMPTY_ARRAY,onNavigate(nextActiveIndex){nextActiveIndex===null&&!open||store.set(`activeIndex`,nextActiveIndex)},focusItemOnHover:!1}),useTypeahead(floatingContext,{enabled:!readOnly$1&&!disabled$1&&(open||!multiple),listRef:labelsRef,activeIndex,selectedIndex,onMatch(index$4){open?store.set(`activeIndex`,index$4):setValue(valuesRef.current[index$4],createChangeEventDetails(`none`))},onTypingChange(typing){typingRef.current=typing}})]),mergedTriggerProps=import_react.useMemo(()=>mergeProps(getReferenceProps(),interactionTypeProps,generatedId?{id:generatedId}:EMPTY_OBJECT),[getReferenceProps,interactionTypeProps,generatedId]);useOnFirstRender(()=>{store.update({popupProps:getFloatingProps(),triggerProps:mergedTriggerProps})}),useIsoLayoutEffect(()=>{store.update({id:generatedId,modal,multiple,value,open,mounted,transitionStatus,popupProps:getFloatingProps(),triggerProps:mergedTriggerProps,items,itemToStringLabel,itemToStringValue,isItemEqualToValue,openMethod})},[store,generatedId,modal,multiple,value,open,mounted,transitionStatus,getFloatingProps,mergedTriggerProps,items,itemToStringLabel,itemToStringValue,isItemEqualToValue,openMethod]);let contextValue=import_react.useMemo(()=>({store,name:name$2,required,disabled:disabled$1,readOnly:readOnly$1,multiple,itemToStringLabel,itemToStringValue,highlightItemOnHover,setValue,setOpen,listRef,popupRef,scrollHandlerRef,handleScrollArrowVisibility,scrollArrowsMountedCountRef,getItemProps,events:floatingContext.context.events,valueRef,valuesRef,labelsRef,typingRef,selectionRef,selectedItemTextRef,validation,onOpenChangeComplete,keyboardActiveRef,alignItemWithTriggerActiveRef,initialValueRef}),[store,name$2,required,disabled$1,readOnly$1,multiple,itemToStringLabel,itemToStringValue,highlightItemOnHover,setValue,setOpen,getItemProps,floatingContext.context.events,validation,onOpenChangeComplete,handleScrollArrowVisibility]),ref=useMergedRefs(inputRef,validation.inputRef),hasMultipleSelection=multiple&&Array.isArray(value)&&value.length>0,hiddenInputs=import_react.useMemo(()=>!multiple||!Array.isArray(value)||!name$2?null:value.map(v$1=>{let currentSerializedValue=stringifyAsValue(v$1,itemToStringValue);return(0,import_jsx_runtime.jsx)(`input`,{type:`hidden`,name:name$2,value:currentSerializedValue},currentSerializedValue)}),[multiple,value,name$2,itemToStringValue]);return(0,import_jsx_runtime.jsx)(SelectRootContext.Provider,{value:contextValue,children:(0,import_jsx_runtime.jsxs)(SelectFloatingContext.Provider,{value:floatingContext,children:[children,(0,import_jsx_runtime.jsx)(`input`,{...validation.getInputValidationProps({onFocus(){store.state.triggerElement?.focus({focusVisible:!0})},onChange(event){if(event.nativeEvent.defaultPrevented)return;let nextValue=event.target.value,details=createChangeEventDetails(none$3,event.nativeEvent);function handleChange(){if(multiple)return;let matchingValue=valuesRef.current.find(v$1=>stringifyAsValue(v$1,itemToStringValue).toLowerCase()===nextValue.toLowerCase());matchingValue!=null&&(setDirty(matchingValue!==validityData.initialValue),setValue(matchingValue,details),shouldValidateOnChange()&&validation.commit(matchingValue))}store.set(`forceMount`,!0),queueMicrotask(handleChange)}}),name:multiple?void 0:name$2,value:serializedValue,disabled:disabled$1,required:required&&!hasMultipleSelection,readOnly:readOnly$1,ref,style:name$2?visuallyHiddenInput:visuallyHidden,tabIndex:-1,"aria-hidden":!0}),hiddenInputs]})})}var BOUNDARY_OFFSET=2,SELECTED_DELAY=400,UNSELECTED_DELAY=200,stateAttributesMapping$9={...pressableTriggerOpenStateMapping,...fieldValidityMapping,value:()=>null};const SelectTrigger$1=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,id:idProp,disabled:disabledProp=!1,nativeButton=!0,...elementProps}=componentProps,{setTouched,setFocused,validationMode,state:fieldState,disabled:fieldDisabled}=useFieldRootContext(),{labelId}=useLabelableContext(),{store,setOpen,selectionRef,validation,readOnly:readOnly$1,required,alignItemWithTriggerActiveRef,disabled:selectDisabled,keyboardActiveRef}=useSelectRootContext(),disabled$1=fieldDisabled||selectDisabled||disabledProp,open=useStore(store,selectors$1.open),value=useStore(store,selectors$1.value),triggerProps=useStore(store,selectors$1.triggerProps),positionerElement=useStore(store,selectors$1.positionerElement),listElement=useStore(store,selectors$1.listElement),rootId=useStore(store,selectors$1.id),hasSelectedValue=useStore(store,selectors$1.hasSelectedValue),shouldCheckNullItemLabel=!hasSelectedValue&&open,hasNullItemLabel$1=useStore(store,selectors$1.hasNullItemLabel,shouldCheckNullItemLabel),id=idProp??rootId;useLabelableId({id});let positionerRef=useValueAsRef(positionerElement),triggerRef=import_react.useRef(null),{getButtonProps,buttonRef}=useButton({disabled:disabled$1,native:nativeButton}),mergedRef=useMergedRefs(forwardedRef,triggerRef,buttonRef,useStableCallback(element$3=>{store.set(`triggerElement`,element$3)})),timeoutFocus=useTimeout(),timeoutMouseDown=useTimeout(),selectedDelayTimeout=useTimeout(),unselectedDelayTimeout=useTimeout();import_react.useEffect(()=>{if(open)return hasSelectedValue||hasNullItemLabel$1?unselectedDelayTimeout.start(UNSELECTED_DELAY,()=>{selectionRef.current.allowUnselectedMouseUp=!0,selectedDelayTimeout.start(UNSELECTED_DELAY,()=>{selectionRef.current.allowSelectedMouseUp=!0})}):selectedDelayTimeout.start(SELECTED_DELAY,()=>{selectionRef.current.allowUnselectedMouseUp=!0,selectionRef.current.allowSelectedMouseUp=!0}),()=>{selectedDelayTimeout.clear(),unselectedDelayTimeout.clear()};selectionRef.current={allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1},timeoutMouseDown.clear()},[open,hasSelectedValue,hasNullItemLabel$1,selectionRef,timeoutMouseDown,selectedDelayTimeout,unselectedDelayTimeout]);let ariaControlsId=import_react.useMemo(()=>listElement?.id??getFloatingFocusElement(positionerElement)?.id,[listElement,positionerElement]),props=mergeProps(triggerProps,{id,role:`combobox`,"aria-expanded":open?`true`:`false`,"aria-haspopup":`listbox`,"aria-controls":open?ariaControlsId:void 0,"aria-labelledby":labelId,"aria-readonly":readOnly$1||void 0,"aria-required":required||void 0,tabIndex:disabled$1?-1:0,ref:mergedRef,onFocus(event){setFocused(!0),open&&alignItemWithTriggerActiveRef.current&&setOpen(!1,createChangeEventDetails(none$3,event.nativeEvent)),timeoutFocus.start(0,()=>{store.set(`forceMount`,!0)})},onBlur(event){contains(positionerElement,event.relatedTarget)||(setTouched(!0),setFocused(!1),validationMode===`onBlur`&&validation.commit(value))},onPointerMove(){keyboardActiveRef.current=!1},onKeyDown(){keyboardActiveRef.current=!0},onMouseDown(event){if(open)return;let doc$1=ownerDocument(event.currentTarget);function handleMouseUp(mouseEvent){if(!triggerRef.current)return;let mouseUpTarget=mouseEvent.target;if(contains(triggerRef.current,mouseUpTarget)||contains(positionerRef.current,mouseUpTarget)||mouseUpTarget===triggerRef.current)return;let bounds=getPseudoElementBounds(triggerRef.current);mouseEvent.clientX>=bounds.left-BOUNDARY_OFFSET&&mouseEvent.clientX<=bounds.right+BOUNDARY_OFFSET&&mouseEvent.clientY>=bounds.top-BOUNDARY_OFFSET&&mouseEvent.clientY<=bounds.bottom+BOUNDARY_OFFSET||setOpen(!1,createChangeEventDetails(cancelOpen,mouseEvent))}timeoutMouseDown.start(0,()=>{doc$1.addEventListener(`mouseup`,handleMouseUp,{once:!0})})}},validation.getValidationProps,elementProps,getButtonProps);props.role=`combobox`;let state$1=import_react.useMemo(()=>({...fieldState,open,disabled:disabled$1,value,readOnly:readOnly$1,placeholder:!hasSelectedValue}),[fieldState,open,disabled$1,value,readOnly$1,hasSelectedValue]);return useRenderElement(`button`,componentProps,{ref:[forwardedRef,triggerRef],state:state$1,stateAttributesMapping:stateAttributesMapping$9,props})});var stateAttributesMapping$8={value:()=>null};const SelectValue$1=import_react.forwardRef(function(componentProps,forwardedRef){let{className,render,children:childrenProp,placeholder,...elementProps}=componentProps,{store,valueRef}=useSelectRootContext(),value=useStore(store,selectors$1.value),items=useStore(store,selectors$1.items),itemToStringLabel=useStore(store,selectors$1.itemToStringLabel),hasSelectedValue=useStore(store,selectors$1.hasSelectedValue),shouldCheckNullItemLabel=!hasSelectedValue&&placeholder!=null&&childrenProp==null,hasNullLabel=useStore(store,selectors$1.hasNullItemLabel,shouldCheckNullItemLabel),state$1=import_react.useMemo(()=>({value,placeholder:!hasSelectedValue}),[value,hasSelectedValue]),children=null;return children=typeof childrenProp==`function`?childrenProp(value):childrenProp??(!hasSelectedValue&&placeholder!=null&&!hasNullLabel?placeholder:Array.isArray(value)?resolveMultipleLabels(value,items,itemToStringLabel):resolveSelectedLabel(value,items,itemToStringLabel)),useRenderElement(`span`,componentProps,{state:state$1,ref:[forwardedRef,valueRef],props:[{children},elementProps],stateAttributesMapping:stateAttributesMapping$8})}),SelectIcon=import_react.forwardRef(function(componentProps,forwardedRef){let{className,render,...elementProps}=componentProps,{store}=useSelectRootContext(),open=useStore(store,selectors$1.open);return useRenderElement(`span`,componentProps,{state:import_react.useMemo(()=>({open}),[open]),ref:forwardedRef,props:[{"aria-hidden":!0,children:`▼`},elementProps],stateAttributesMapping:triggerOpenStateMapping})}),SelectPortalContext=import_react.createContext(void 0),SelectPortal=import_react.forwardRef(function(portalProps,forwardedRef){let{store}=useSelectRootContext(),mounted=useStore(store,selectors$1.mounted),forceMount=useStore(store,selectors$1.forceMount);return mounted||forceMount?(0,import_jsx_runtime.jsx)(SelectPortalContext.Provider,{value:!0,children:(0,import_jsx_runtime.jsx)(FloatingPortal,{ref:forwardedRef,...portalProps})}):null}),SelectPositionerContext=import_react.createContext(void 0);function useSelectPositionerContext(){let context=import_react.useContext(SelectPositionerContext);if(!context)throw Error(formatErrorMessage(59));return context}function clearStyles(element$3,originalStyles){element$3&&Object.assign(element$3.style,originalStyles)}const LIST_FUNCTIONAL_STYLES={position:`relative`,maxHeight:`100%`,overflowX:`hidden`,overflowY:`auto`};var FIXED={position:`fixed`};const SelectPositioner=import_react.forwardRef(function(componentProps,forwardedRef){let{anchor,positionMethod=`absolute`,className,render,side=`bottom`,align=`center`,sideOffset=0,alignOffset=0,collisionBoundary=`clipping-ancestors`,collisionPadding,arrowPadding=5,sticky=!1,disableAnchorTracking,alignItemWithTrigger=!0,collisionAvoidance=DROPDOWN_COLLISION_AVOIDANCE,...elementProps}=componentProps,{store,listRef,labelsRef,alignItemWithTriggerActiveRef,selectedItemTextRef,valuesRef,initialValueRef,popupRef,setValue}=useSelectRootContext(),floatingRootContext=useSelectFloatingContext(),open=useStore(store,selectors$1.open),mounted=useStore(store,selectors$1.mounted),modal=useStore(store,selectors$1.modal),value=useStore(store,selectors$1.value),openMethod=useStore(store,selectors$1.openMethod),positionerElement=useStore(store,selectors$1.positionerElement),triggerElement=useStore(store,selectors$1.triggerElement),isItemEqualToValue=useStore(store,selectors$1.isItemEqualToValue),scrollUpArrowRef=import_react.useRef(null),scrollDownArrowRef=import_react.useRef(null),[controlledAlignItemWithTrigger,setControlledAlignItemWithTrigger]=import_react.useState(alignItemWithTrigger),alignItemWithTriggerActive=mounted&&controlledAlignItemWithTrigger&&openMethod!==`touch`;!mounted&&controlledAlignItemWithTrigger!==alignItemWithTrigger&&setControlledAlignItemWithTrigger(alignItemWithTrigger),useIsoLayoutEffect(()=>{mounted||(selectors$1.scrollUpArrowVisible(store.state)&&store.set(`scrollUpArrowVisible`,!1),selectors$1.scrollDownArrowVisible(store.state)&&store.set(`scrollDownArrowVisible`,!1))},[store,mounted]),import_react.useImperativeHandle(alignItemWithTriggerActiveRef,()=>alignItemWithTriggerActive),useScrollLock((alignItemWithTriggerActive||modal)&&open&&openMethod!==`touch`,triggerElement);let positioning=useAnchorPositioning({anchor,floatingRootContext,positionMethod,mounted,side,sideOffset,align,alignOffset,arrowPadding,collisionBoundary,collisionPadding,sticky,disableAnchorTracking:disableAnchorTracking??alignItemWithTriggerActive,collisionAvoidance,keepMounted:!0}),renderedSide=alignItemWithTriggerActive?`none`:positioning.side,positionerStyles=alignItemWithTriggerActive?FIXED:positioning.positionerStyles,defaultProps=import_react.useMemo(()=>{let hiddenStyles={};return open||(hiddenStyles.pointerEvents=`none`),{role:`presentation`,hidden:!mounted,style:{...positionerStyles,...hiddenStyles}}},[open,mounted,positionerStyles]),state$1=import_react.useMemo(()=>({open,side:renderedSide,align:positioning.align,anchorHidden:positioning.anchorHidden}),[open,renderedSide,positioning.align,positioning.anchorHidden]),element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,useStableCallback(element$4=>{store.set(`positionerElement`,element$4)})],state:state$1,stateAttributesMapping:popupStateMapping,props:[defaultProps,elementProps]}),prevMapSizeRef=import_react.useRef(0),onMapChange=useStableCallback(map=>{if(map.size===0&&prevMapSizeRef.current===0||valuesRef.current.length===0)return;let prevSize=prevMapSizeRef.current;if(prevMapSizeRef.current=map.size,map.size===prevSize)return;let eventDetails=createChangeEventDetails(none$3);if(prevSize!==0&&!store.state.multiple&&value!==null&&findItemIndex(valuesRef.current,value,isItemEqualToValue)===-1){let initial=initialValueRef.current,nextValue=initial!=null&&itemIncludes(valuesRef.current,initial,isItemEqualToValue)?initial:null;setValue(nextValue,eventDetails),nextValue===null&&(store.set(`selectedIndex`,null),selectedItemTextRef.current=null)}if(prevSize!==0&&store.state.multiple&&Array.isArray(value)){let nextValue=value.filter(v$1=>itemIncludes(valuesRef.current,v$1,isItemEqualToValue));(nextValue.length!==value.length||nextValue.some(v$1=>!itemIncludes(value,v$1,isItemEqualToValue)))&&(setValue(nextValue,eventDetails),nextValue.length===0&&(store.set(`selectedIndex`,null),selectedItemTextRef.current=null))}if(open&&alignItemWithTriggerActive){store.update({scrollUpArrowVisible:!1,scrollDownArrowVisible:!1});let stylesToClear={height:``};clearStyles(positionerElement,stylesToClear),clearStyles(popupRef.current,stylesToClear)}}),contextValue=import_react.useMemo(()=>({...positioning,side:renderedSide,alignItemWithTriggerActive,setControlledAlignItemWithTrigger,scrollUpArrowRef,scrollDownArrowRef}),[positioning,renderedSide,alignItemWithTriggerActive,setControlledAlignItemWithTrigger]);return(0,import_jsx_runtime.jsx)(CompositeList,{elementsRef:listRef,labelsRef,onMapChange,children:(0,import_jsx_runtime.jsxs)(SelectPositionerContext.Provider,{value:contextValue,children:[mounted&&modal&&(0,import_jsx_runtime.jsx)(InternalBackdrop,{inert:inertValue(!open),cutout:triggerElement}),element$3]})})});function isMouseWithinBounds(event){let targetRect=event.currentTarget.getBoundingClientRect();return targetRect.top+1<=event.clientY&&event.clientY<=targetRect.bottom-1&&targetRect.left+1<=event.clientX&&event.clientX<=targetRect.right-1}var DISABLE_SCROLLBAR_CLASS_NAME=`base-ui-disable-scrollbar`;const styleDisableScrollbar={className:DISABLE_SCROLLBAR_CLASS_NAME,getElement(nonce){return(0,import_jsx_runtime.jsx)(`style`,{nonce,href:DISABLE_SCROLLBAR_CLASS_NAME,precedence:`base-ui:low`,children:`.${DISABLE_SCROLLBAR_CLASS_NAME}{scrollbar-width:none}.${DISABLE_SCROLLBAR_CLASS_NAME}::-webkit-scrollbar{display:none}`})}};function clamp(val,min$1=-(2**53-1),max$1=2**53-1){return Math.max(min$1,Math.min(val,max$1))}const CSPContext=import_react.createContext(void 0);var DEFAULT_CSP_CONTEXT_VALUE={disableStyleElements:!1};function useCSPContext(){return import_react.useContext(CSPContext)??DEFAULT_CSP_CONTEXT_VALUE}var import_react_dom$4=__toESM(require_react_dom()),stateAttributesMapping$7={...popupStateMapping,...transitionStatusMapping};const SelectPopup$1=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,...elementProps}=componentProps,{store,popupRef,onOpenChangeComplete,setOpen,valueRef,selectedItemTextRef,keyboardActiveRef,multiple,handleScrollArrowVisibility,scrollHandlerRef,highlightItemOnHover}=useSelectRootContext(),{side,align,alignItemWithTriggerActive,setControlledAlignItemWithTrigger,scrollDownArrowRef,scrollUpArrowRef}=useSelectPositionerContext(),insideToolbar=useToolbarRootContext(!0)!=null,floatingRootContext=useSelectFloatingContext(),{nonce,disableStyleElements}=useCSPContext(),highlightTimeout=useTimeout(),id=useStore(store,selectors$1.id),open=useStore(store,selectors$1.open),mounted=useStore(store,selectors$1.mounted),popupProps=useStore(store,selectors$1.popupProps),transitionStatus=useStore(store,selectors$1.transitionStatus),triggerElement=useStore(store,selectors$1.triggerElement),positionerElement=useStore(store,selectors$1.positionerElement),listElement=useStore(store,selectors$1.listElement),initialHeightRef=import_react.useRef(0),reachedMaxHeightRef=import_react.useRef(!1),maxHeightRef=import_react.useRef(0),initialPlacedRef=import_react.useRef(!1),originalPositionerStylesRef=import_react.useRef({}),scrollArrowFrame=useAnimationFrame(),handleScroll=useStableCallback(scroller=>{if(!positionerElement||!popupRef.current||!initialPlacedRef.current)return;if(reachedMaxHeightRef.current||!alignItemWithTriggerActive){handleScrollArrowVisibility();return}let isTopPositioned=positionerElement.style.top===`0px`,isBottomPositioned=positionerElement.style.bottom===`0px`,currentHeight=positionerElement.getBoundingClientRect().height,doc$1=ownerDocument(positionerElement),positionerStyles=getComputedStyle(positionerElement),marginTop=parseFloat(positionerStyles.marginTop),marginBottom=parseFloat(positionerStyles.marginBottom),maxPopupHeight=getMaxPopupHeight(getComputedStyle(popupRef.current)),viewportHeight=doc$1.documentElement.clientHeight-marginTop-marginBottom,scrollTop=scroller.scrollTop,maxScrollTop=scroller.scrollHeight-scroller.clientHeight,nextPositionerHeight=0,nextScrollTop=null,setReachedMax=!1;if(isTopPositioned){let idealHeight=currentHeight+(maxScrollTop-scrollTop),nextHeight=Math.min(idealHeight,viewportHeight);nextPositionerHeight=nextHeight,nextHeight===viewportHeight?setReachedMax=!0:nextScrollTop=maxScrollTop}else if(isBottomPositioned){let diff=scrollTop-0,idealHeight=currentHeight+diff,nextHeight=Math.min(idealHeight,viewportHeight),overshoot=idealHeight-viewportHeight;nextPositionerHeight=nextHeight,nextHeight===viewportHeight?(setReachedMax=!0,scrollTop<maxScrollTop&&(nextScrollTop=scrollTop-(diff-overshoot))):nextScrollTop=0}nextPositionerHeight!==0&&(positionerElement.style.height=`${nextPositionerHeight}px`),nextScrollTop!=null&&(scroller.scrollTop=nextScrollTop),(setReachedMax||nextPositionerHeight>=maxPopupHeight)&&(reachedMaxHeightRef.current=!0),handleScrollArrowVisibility()});import_react.useImperativeHandle(scrollHandlerRef,()=>handleScroll,[handleScroll]),useOpenChangeComplete({open,ref:popupRef,onComplete(){open&&onOpenChangeComplete?.(!0)}});let state$1=import_react.useMemo(()=>({open,transitionStatus,side,align}),[open,transitionStatus,side,align]);useIsoLayoutEffect(()=>{!positionerElement||!popupRef.current||Object.keys(originalPositionerStylesRef.current).length||(originalPositionerStylesRef.current={top:positionerElement.style.top||`0`,left:positionerElement.style.left||`0`,right:positionerElement.style.right,height:positionerElement.style.height,bottom:positionerElement.style.bottom,minHeight:positionerElement.style.minHeight,maxHeight:positionerElement.style.maxHeight,marginTop:positionerElement.style.marginTop,marginBottom:positionerElement.style.marginBottom})},[popupRef,positionerElement]),useIsoLayoutEffect(()=>{open||alignItemWithTriggerActive||(initialPlacedRef.current=!1,reachedMaxHeightRef.current=!1,initialHeightRef.current=0,maxHeightRef.current=0,clearStyles(positionerElement,originalPositionerStylesRef.current))},[open,alignItemWithTriggerActive,positionerElement,popupRef]),useIsoLayoutEffect(()=>{let popupElement=popupRef.current;if(!(!open||!triggerElement||!positionerElement||!popupElement||store.state.transitionStatus===`ending`)){if(!alignItemWithTriggerActive){initialPlacedRef.current=!0,scrollArrowFrame.request(handleScrollArrowVisibility),popupElement.style.removeProperty(`--transform-origin`);return}queueMicrotask(()=>{let restoreTransformStyles=unsetTransformStyles(popupElement);popupElement.style.removeProperty(`--transform-origin`);try{let positionerStyles=getComputedStyle(positionerElement),popupStyles=getComputedStyle(popupElement),doc$1=ownerDocument(triggerElement),win=getWindow(positionerElement),triggerRect=triggerElement.getBoundingClientRect(),positionerRect=positionerElement.getBoundingClientRect(),triggerX=triggerRect.left,triggerHeight=triggerRect.height,scroller=listElement||popupElement,scrollHeight=scroller.scrollHeight,borderBottom=parseFloat(popupStyles.borderBottomWidth),marginTop=parseFloat(positionerStyles.marginTop)||10,marginBottom=parseFloat(positionerStyles.marginBottom)||10,minHeight=parseFloat(positionerStyles.minHeight)||100,maxPopupHeight=getMaxPopupHeight(popupStyles),paddingLeft=5,paddingRight=5,triggerCollisionThreshold=20,viewportHeight=doc$1.documentElement.clientHeight-marginTop-marginBottom,viewportWidth=doc$1.documentElement.clientWidth,availableSpaceBeneathTrigger=viewportHeight-triggerRect.bottom+triggerHeight,textElement=selectedItemTextRef.current,valueElement=valueRef.current,textRect,offsetX=0,offsetY=0;if(textElement&&valueElement){let valueRect=valueElement.getBoundingClientRect();textRect=textElement.getBoundingClientRect();let valueLeftFromTriggerLeft=valueRect.left-triggerX,textLeftFromPositionerLeft=textRect.left-positionerRect.left,valueCenterFromPositionerTop=valueRect.top-triggerRect.top+valueRect.height/2,textCenterFromTriggerTop=textRect.top-positionerRect.top+textRect.height/2;offsetX=valueLeftFromTriggerLeft-textLeftFromPositionerLeft,offsetY=textCenterFromTriggerTop-valueCenterFromPositionerTop}let idealHeight=availableSpaceBeneathTrigger+offsetY+marginBottom+borderBottom,height=Math.min(viewportHeight,idealHeight),maxHeight=viewportHeight-marginTop-marginBottom,scrollTop=idealHeight-height,left=Math.max(5,triggerX+offsetX),maxRight=viewportWidth-5,rightOverflow=Math.max(0,left+positionerRect.width-maxRight);positionerElement.style.left=`${left-rightOverflow}px`,positionerElement.style.height=`${height}px`,positionerElement.style.maxHeight=`auto`,positionerElement.style.marginTop=`${marginTop}px`,positionerElement.style.marginBottom=`${marginBottom}px`,popupElement.style.height=`100%`;let maxScrollTop=scroller.scrollHeight-scroller.clientHeight,isTopPositioned=scrollTop>=maxScrollTop;isTopPositioned&&(height=Math.min(viewportHeight,positionerRect.height)-(scrollTop-maxScrollTop));let fallbackToAlignPopupToTrigger=triggerRect.top<20||triggerRect.bottom>viewportHeight-20||height<Math.min(scrollHeight,minHeight),isPinchZoomed=(win.visualViewport?.scale??1)!==1&&isWebKit;if(fallbackToAlignPopupToTrigger||isPinchZoomed){initialPlacedRef.current=!0,clearStyles(positionerElement,originalPositionerStylesRef.current),import_react_dom$4.flushSync(()=>setControlledAlignItemWithTrigger(!1));return}if(isTopPositioned){let topOffset=Math.max(0,viewportHeight-idealHeight);positionerElement.style.top=positionerRect.height>=maxHeight?`0`:`${topOffset}px`,positionerElement.style.height=`${height}px`,scroller.scrollTop=scroller.scrollHeight-scroller.clientHeight,initialHeightRef.current=Math.max(minHeight,height)}else positionerElement.style.bottom=`0`,initialHeightRef.current=Math.max(minHeight,height),scroller.scrollTop=scrollTop;if(textRect){let popupTop=positionerRect.top,popupHeight=positionerRect.height,textCenterY=textRect.top+textRect.height/2,clampedY=clamp(popupHeight>0?(textCenterY-popupTop)/popupHeight*100:50,0,100);popupElement.style.setProperty(`--transform-origin`,`50% ${clampedY}%`)}(initialHeightRef.current===viewportHeight||height>=maxPopupHeight)&&(reachedMaxHeightRef.current=!0),handleScrollArrowVisibility(),setTimeout(()=>{initialPlacedRef.current=!0})}finally{restoreTransformStyles()}})}},[store,open,positionerElement,triggerElement,valueRef,selectedItemTextRef,popupRef,handleScrollArrowVisibility,alignItemWithTriggerActive,setControlledAlignItemWithTrigger,scrollArrowFrame,scrollDownArrowRef,scrollUpArrowRef,listElement]),import_react.useEffect(()=>{if(!alignItemWithTriggerActive||!positionerElement||!open)return;let win=getWindow(positionerElement);function handleResize(event){setOpen(!1,createChangeEventDetails(`window-resize`,event))}return win.addEventListener(`resize`,handleResize),()=>{win.removeEventListener(`resize`,handleResize)}},[setOpen,alignItemWithTriggerActive,positionerElement,open]);let defaultProps={...listElement?{role:`presentation`,"aria-orientation":void 0}:{role:`listbox`,"aria-multiselectable":multiple||void 0,id:`${id}-list`},onKeyDown(event){keyboardActiveRef.current=!0,insideToolbar&&COMPOSITE_KEYS.has(event.key)&&event.stopPropagation()},onMouseMove(){keyboardActiveRef.current=!1},onPointerLeave(event){if(!highlightItemOnHover||isMouseWithinBounds(event)||event.pointerType===`touch`)return;let popup=event.currentTarget;highlightTimeout.start(0,()=>{store.set(`activeIndex`,null),popup.focus({preventScroll:!0})})},onScroll(event){listElement||scrollHandlerRef.current?.(event.currentTarget)},...alignItemWithTriggerActive&&{style:listElement?{height:`100%`}:LIST_FUNCTIONAL_STYLES}},element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,popupRef],state:state$1,stateAttributesMapping:stateAttributesMapping$7,props:[popupProps,defaultProps,getDisabledMountTransitionStyles(transitionStatus),{className:!listElement&&alignItemWithTriggerActive?styleDisableScrollbar.className:void 0},elementProps]});return(0,import_jsx_runtime.jsxs)(import_react.Fragment,{children:[!disableStyleElements&&styleDisableScrollbar.getElement(nonce),(0,import_jsx_runtime.jsx)(FloatingFocusManager,{context:floatingRootContext,modal:!1,disabled:!mounted,restoreFocus:!0,children:element$3})]})});function getMaxPopupHeight(popupStyles){let maxHeightStyle=popupStyles.maxHeight||``;return maxHeightStyle.endsWith(`px`)&&parseFloat(maxHeightStyle)||1/0}var UNSET_TRANSFORM_STYLES={transform:`none`,scale:`1`,translate:`0 0`};function restoreInlineStyleProperty(style$1,property,value){value?style$1.setProperty(property,value):style$1.removeProperty(property)}function unsetTransformStyles(popupElement){let{style:style$1}=popupElement,originalStyles={},props=Object.keys(UNSET_TRANSFORM_STYLES);for(let prop of props)originalStyles[prop]=style$1.getPropertyValue(prop),style$1.setProperty(prop,UNSET_TRANSFORM_STYLES[prop]);return()=>{for(let prop of props)restoreInlineStyleProperty(style$1,prop,originalStyles[prop])}}const SelectList=import_react.forwardRef(function(componentProps,forwardedRef){let{className,render,...elementProps}=componentProps,{store,scrollHandlerRef}=useSelectRootContext(),{alignItemWithTriggerActive}=useSelectPositionerContext(),hasScrollArrows=useStore(store,selectors$1.hasScrollArrows),openMethod=useStore(store,selectors$1.openMethod),multiple=useStore(store,selectors$1.multiple),defaultProps={id:`${useStore(store,selectors$1.id)}-list`,role:`listbox`,"aria-multiselectable":multiple||void 0,onScroll(event){scrollHandlerRef.current?.(event.currentTarget)},...alignItemWithTriggerActive&&{style:LIST_FUNCTIONAL_STYLES},className:hasScrollArrows&&openMethod!==`touch`?styleDisableScrollbar.className:void 0};return useRenderElement(`div`,componentProps,{ref:[forwardedRef,useStableCallback(element$3=>{store.set(`listElement`,element$3)})],props:[defaultProps,elementProps]})}),SelectItemContext=import_react.createContext(void 0);function useSelectItemContext(){let context=import_react.useContext(SelectItemContext);if(!context)throw Error(formatErrorMessage(57));return context}const SelectItem$1=import_react.memo(import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,value=null,label,disabled:disabled$1=!1,nativeButton=!1,...elementProps}=componentProps,textRef=import_react.useRef(null),listItem$1=useCompositeListItem({label,textRef,indexGuessBehavior:IndexGuessBehavior.GuessFromOrder}),{store,getItemProps,setOpen,setValue,selectionRef,typingRef,valuesRef,keyboardActiveRef,multiple,highlightItemOnHover}=useSelectRootContext(),highlightTimeout=useTimeout(),highlighted=useStore(store,selectors$1.isActive,listItem$1.index),selected=useStore(store,selectors$1.isSelected,listItem$1.index,value),selectedByFocus=useStore(store,selectors$1.isSelectedByFocus,listItem$1.index),isItemEqualToValue=useStore(store,selectors$1.isItemEqualToValue),index$4=listItem$1.index,hasRegistered=index$4!==-1,itemRef=import_react.useRef(null),indexRef=useValueAsRef(index$4);useIsoLayoutEffect(()=>{if(!hasRegistered)return;let values=valuesRef.current;return values[index$4]=value,()=>{delete values[index$4]}},[hasRegistered,index$4,value,valuesRef]),useIsoLayoutEffect(()=>{if(!hasRegistered)return;let selectedValue=store.state.value,candidate=selectedValue;multiple&&Array.isArray(selectedValue)&&selectedValue.length>0&&(candidate=selectedValue[selectedValue.length-1]),candidate!==void 0&&compareItemEquality(candidate,value,isItemEqualToValue)&&store.set(`selectedIndex`,index$4)},[hasRegistered,index$4,multiple,isItemEqualToValue,store,value]);let state$1=import_react.useMemo(()=>({disabled:disabled$1,selected,highlighted}),[disabled$1,selected,highlighted]),rootProps=getItemProps({active:highlighted,selected});rootProps.onFocus=void 0,rootProps.id=void 0;let lastKeyRef=import_react.useRef(null),pointerTypeRef=import_react.useRef(`mouse`),didPointerDownRef=import_react.useRef(!1),{getButtonProps,buttonRef}=useButton({disabled:disabled$1,focusableWhenDisabled:!0,native:nativeButton});function commitSelection(event){let selectedValue=store.state.value;if(multiple){let currentValue=Array.isArray(selectedValue)?selectedValue:[];setValue(selected?removeItem(currentValue,value,isItemEqualToValue):[...currentValue,value],createChangeEventDetails(itemPress,event))}else setValue(value,createChangeEventDetails(itemPress,event)),setOpen(!1,createChangeEventDetails(itemPress,event))}let defaultProps={role:`option`,"aria-selected":selected,tabIndex:highlighted?0:-1,onFocus(){store.set(`activeIndex`,index$4)},onMouseEnter(){!keyboardActiveRef.current&&store.state.selectedIndex===null&&store.set(`activeIndex`,index$4)},onMouseMove(){highlightItemOnHover&&store.set(`activeIndex`,index$4)},onMouseLeave(event){!highlightItemOnHover||keyboardActiveRef.current||isMouseWithinBounds(event)||highlightTimeout.start(0,()=>{store.state.activeIndex===index$4&&store.set(`activeIndex`,null)})},onTouchStart(){selectionRef.current={allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1}},onKeyDown(event){lastKeyRef.current=event.key,store.set(`activeIndex`,index$4)},onClick(event){didPointerDownRef.current=!1,!(event.type===`keydown`&&lastKeyRef.current===null)&&(disabled$1||lastKeyRef.current===` `&&typingRef.current||pointerTypeRef.current!==`touch`&&!highlighted||(lastKeyRef.current=null,commitSelection(event.nativeEvent)))},onPointerEnter(event){pointerTypeRef.current=event.pointerType},onPointerDown(event){pointerTypeRef.current=event.pointerType,didPointerDownRef.current=!0},onMouseUp(event){if(disabled$1)return;if(didPointerDownRef.current){didPointerDownRef.current=!1;return}let disallowSelectedMouseUp=!selectionRef.current.allowSelectedMouseUp&&selected,disallowUnselectedMouseUp=!selectionRef.current.allowUnselectedMouseUp&&!selected;disallowSelectedMouseUp||disallowUnselectedMouseUp||pointerTypeRef.current!==`touch`&&!highlighted||commitSelection(event.nativeEvent)}},element$3=useRenderElement(`div`,componentProps,{ref:[buttonRef,forwardedRef,listItem$1.ref,itemRef],state:state$1,props:[rootProps,defaultProps,elementProps,getButtonProps]}),contextValue=import_react.useMemo(()=>({selected,indexRef,textRef,selectedByFocus,hasRegistered}),[selected,indexRef,textRef,selectedByFocus,hasRegistered]);return(0,import_jsx_runtime.jsx)(SelectItemContext.Provider,{value:contextValue,children:element$3})})),SelectItemIndicator=import_react.forwardRef(function(componentProps,forwardedRef){let keepMounted=componentProps.keepMounted??!1,{selected}=useSelectItemContext();return keepMounted||selected?(0,import_jsx_runtime.jsx)(Inner,{...componentProps,ref:forwardedRef}):null});var Inner=import_react.memo(import_react.forwardRef((componentProps,forwardedRef)=>{let{render,className,keepMounted,...elementProps}=componentProps,{selected}=useSelectItemContext(),indicatorRef=import_react.useRef(null),{transitionStatus,setMounted}=useTransitionStatus(selected),state$1=import_react.useMemo(()=>({selected,transitionStatus}),[selected,transitionStatus]),element$3=useRenderElement(`span`,componentProps,{ref:[forwardedRef,indicatorRef],state:state$1,props:[{"aria-hidden":!0,children:`✔️`},elementProps],stateAttributesMapping:transitionStatusMapping});return useOpenChangeComplete({open:selected,ref:indicatorRef,onComplete(){selected||setMounted(!1)}}),element$3}));const SelectItemText=import_react.memo(import_react.forwardRef(function(componentProps,forwardedRef){let{indexRef,textRef,selectedByFocus,hasRegistered}=useSelectItemContext(),{selectedItemTextRef}=useSelectRootContext(),{className,render,...elementProps}=componentProps;return useRenderElement(`div`,componentProps,{ref:[import_react.useCallback(node$1=>{if(!node$1||!hasRegistered)return;let hasNoSelectedItemText=selectedItemTextRef.current===null||!selectedItemTextRef.current.isConnected;(selectedByFocus||hasNoSelectedItemText&&indexRef.current===0)&&(selectedItemTextRef.current=node$1)},[selectedItemTextRef,indexRef,selectedByFocus,hasRegistered]),forwardedRef,textRef],props:elementProps})})),SelectScrollArrow=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,direction,keepMounted=!1,...elementProps}=componentProps,{store,popupRef,listRef,handleScrollArrowVisibility,scrollArrowsMountedCountRef}=useSelectRootContext(),{side,scrollDownArrowRef,scrollUpArrowRef}=useSelectPositionerContext(),stateVisible=useStore(store,direction===`up`?selectors$1.scrollUpArrowVisible:selectors$1.scrollDownArrowVisible),openMethod=useStore(store,selectors$1.openMethod),visible=stateVisible&&openMethod!==`touch`,timeout=useTimeout(),scrollArrowRef=direction===`up`?scrollUpArrowRef:scrollDownArrowRef,{transitionStatus,setMounted}=useTransitionStatus(visible);useIsoLayoutEffect(()=>(scrollArrowsMountedCountRef.current+=1,store.state.hasScrollArrows||store.set(`hasScrollArrows`,!0),()=>{scrollArrowsMountedCountRef.current=Math.max(0,scrollArrowsMountedCountRef.current-1),scrollArrowsMountedCountRef.current===0&&store.state.hasScrollArrows&&store.set(`hasScrollArrows`,!1)}),[store,scrollArrowsMountedCountRef]),useOpenChangeComplete({open:visible,ref:scrollArrowRef,onComplete(){visible||setMounted(!1)}});let state$1=import_react.useMemo(()=>({direction,visible,side,transitionStatus}),[direction,visible,side,transitionStatus]),element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,scrollArrowRef],state:state$1,props:[{"aria-hidden":!0,children:direction===`up`?`▲`:`▼`,style:{position:`absolute`},onMouseMove(event){if(event.movementX===0&&event.movementY===0||timeout.isStarted())return;store.set(`activeIndex`,null);function scrollNextItem(){let scroller=store.state.listElement??popupRef.current;if(!scroller)return;store.set(`activeIndex`,null),handleScrollArrowVisibility();let isScrolledToTop=scroller.scrollTop===0,isScrolledToBottom$1=Math.round(scroller.scrollTop+scroller.clientHeight)>=scroller.scrollHeight;if(listRef.current.length===0&&(direction===`up`?store.set(`scrollUpArrowVisible`,!isScrolledToTop):store.set(`scrollDownArrowVisible`,!isScrolledToBottom$1)),direction===`up`&&isScrolledToTop||direction===`down`&&isScrolledToBottom$1){timeout.clear();return}if((store.state.listElement||popupRef.current)&&listRef.current&&listRef.current.length>0){let items=listRef.current,scrollArrowHeight=scrollArrowRef.current?.offsetHeight||0;if(direction===`up`){let firstVisibleIndex=0,scrollTop=scroller.scrollTop+scrollArrowHeight;for(let i$3=0;i$3<items.length;i$3+=1){let item=items[i$3];if(item&&item.offsetTop>=scrollTop){firstVisibleIndex=i$3;break}}let targetIndex=Math.max(0,firstVisibleIndex-1);if(targetIndex<firstVisibleIndex){let targetItem=items[targetIndex];targetItem&&(scroller.scrollTop=Math.max(0,targetItem.offsetTop-scrollArrowHeight))}else scroller.scrollTop=0}else{let lastVisibleIndex=items.length-1,scrollBottom=scroller.scrollTop+scroller.clientHeight-scrollArrowHeight;for(let i$3=0;i$3<items.length;i$3+=1){let item=items[i$3];if(item&&item.offsetTop+item.offsetHeight>scrollBottom){lastVisibleIndex=Math.max(0,i$3-1);break}}let targetIndex=Math.min(items.length-1,lastVisibleIndex+1);if(targetIndex>lastVisibleIndex){let targetItem=items[targetIndex];targetItem&&(scroller.scrollTop=targetItem.offsetTop+targetItem.offsetHeight-scroller.clientHeight+scrollArrowHeight)}else scroller.scrollTop=scroller.scrollHeight-scroller.clientHeight}}timeout.start(40,scrollNextItem)}timeout.start(40,scrollNextItem)},onMouseLeave(){timeout.clear()}},elementProps]});return visible||keepMounted?element$3:null}),SelectScrollDownArrow=import_react.forwardRef(function(props,forwardedRef){return(0,import_jsx_runtime.jsx)(SelectScrollArrow,{...props,ref:forwardedRef,direction:`down`})}),SelectScrollUpArrow=import_react.forwardRef(function(props,forwardedRef){return(0,import_jsx_runtime.jsx)(SelectScrollArrow,{...props,ref:forwardedRef,direction:`up`})});var Select=SelectRoot;function SelectTrigger({className,size:size$3=`default`,children,...props}){return(0,import_jsx_runtime.jsxs)(SelectTrigger$1,{className:cn(`relative inline-flex min-h-9 w-full min-w-36 select-none items-center justify-between gap-2 rounded-lg border border-input bg-background bg-clip-padding px-[calc(--spacing(3)-1px)] text-left text-base shadow-xs outline-none ring-ring/24 transition-shadow before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] not-data-disabled:not-focus-visible:not-aria-invalid:not-data-pressed:before:shadow-[0_1px_--theme(--color-black/4%)] pointer-coarse:after:absolute pointer-coarse:after:size-full pointer-coarse:after:min-h-11 focus-visible:border-ring focus-visible:ring-[3px] aria-invalid:border-destructive/36 focus-visible:aria-invalid:border-destructive/64 focus-visible:aria-invalid:ring-destructive/16 data-disabled:pointer-events-none data-disabled:opacity-64 sm:min-h-8 sm:text-sm dark:bg-input/32 dark:not-in-data-[slot=group]:bg-clip-border dark:aria-invalid:ring-destructive/24 dark:not-data-disabled:not-focus-visible:not-aria-invalid:not-data-pressed:before:shadow-[0_-1px_--theme(--color-white/8%)] [&_svg:not([class*='opacity-'])]:opacity-80 [&_svg:not([class*='size-'])]:size-4.5 sm:[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 [[data-disabled],:focus-visible,[aria-invalid],[data-pressed]]:shadow-none`,size$3===`sm`&&`min-h-8 gap-1.5 px-[calc(--spacing(2.5)-1px)] sm:min-h-7`,size$3===`lg`&&`min-h-10 sm:min-h-9`,className),"data-slot":`select-trigger`,...props,children:[children,(0,import_jsx_runtime.jsx)(SelectIcon,{"data-slot":`select-icon`,children:(0,import_jsx_runtime.jsx)(ChevronsUpDown,{className:`-me-1 size-4.5 opacity-80 sm:size-4`})})]})}function SelectValue({className,...props}){return(0,import_jsx_runtime.jsx)(SelectValue$1,{className:cn(`flex-1 truncate data-placeholder:text-muted-foreground`,className),"data-slot":`select-value`,...props})}function SelectPopup({className,children,sideOffset=4,alignItemWithTrigger=!0,...props}){return(0,import_jsx_runtime.jsx)(SelectPortal,{children:(0,import_jsx_runtime.jsx)(SelectPositioner,{alignItemWithTrigger,className:`z-50 select-none`,"data-slot":`select-positioner`,sideOffset,children:(0,import_jsx_runtime.jsxs)(SelectPopup$1,{className:`origin-(--transform-origin) transition-[scale,opacity] has-data-[side=none]:scale-100 has-data-starting-style:scale-98 has-data-starting-style:opacity-0 has-data-[side=none]:transition-none`,"data-slot":`select-popup`,...props,children:[(0,import_jsx_runtime.jsx)(SelectScrollUpArrow,{className:`top-0 z-50 flex h-6 w-full cursor-default items-center justify-center before:pointer-events-none before:absolute before:inset-x-px before:top-px before:h-[200%] before:rounded-t-[calc(var(--radius-lg)-1px)] before:bg-linear-to-b before:from-50% before:from-popover`,"data-slot":`select-scroll-up-arrow`,children:(0,import_jsx_runtime.jsx)(ChevronUp,{className:`relative size-4.5 sm:size-4`})}),(0,import_jsx_runtime.jsx)(`span`,{className:`relative block h-full rounded-lg border bg-popover bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] before:shadow-lg dark:not-in-data-[slot=group]:bg-clip-border`,children:(0,import_jsx_runtime.jsx)(SelectList,{className:cn(`max-h-(--available-height) min-w-(--anchor-width) overflow-y-auto p-1`,className),"data-slot":`select-list`,children})}),(0,import_jsx_runtime.jsx)(SelectScrollDownArrow,{className:`bottom-0 z-50 flex h-6 w-full cursor-default items-center justify-center before:pointer-events-none before:absolute before:inset-x-px before:bottom-px before:h-[200%] before:rounded-b-[calc(var(--radius-lg)-1px)] before:bg-linear-to-t before:from-50% before:from-popover`,"data-slot":`select-scroll-down-arrow`,children:(0,import_jsx_runtime.jsx)(ChevronDown,{className:`relative size-4.5 sm:size-4`})})]})})})}function SelectItem({className,children,...props}){return(0,import_jsx_runtime.jsxs)(SelectItem$1,{className:cn(`grid min-h-8 in-data-[side=none]:min-w-[calc(var(--anchor-width)+1.25rem)] cursor-pointer grid-cols-[1rem_1fr] items-center gap-2 rounded-sm py-1 ps-2 pe-4 text-base outline-none data-disabled:pointer-events-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-disabled:opacity-64 sm:min-h-7 sm:text-sm [&_svg:not([class*='size-'])]:size-4.5 sm:[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0`,className),"data-slot":`select-item`,...props,children:[(0,import_jsx_runtime.jsx)(SelectItemIndicator,{className:`col-start-1`,children:(0,import_jsx_runtime.jsx)(`svg`,{fill:`none`,height:`24`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:`2`,viewBox:`0 0 24 24`,width:`24`,xmlns:`http://www.w3.org/1500/svg`,children:(0,import_jsx_runtime.jsx)(`path`,{d:`M5.252 12.7 10.2 18.63 18.748 5.37`})})}),(0,import_jsx_runtime.jsx)(SelectItemText,{className:`col-start-2 min-w-0`,children})]})}function SchemaSelector({value,onChange,schemas,disabled:disabled$1}){return(0,import_jsx_runtime.jsxs)(Select,{value,onValueChange:v$1=>v$1&&onChange(v$1),disabled:disabled$1,children:[(0,import_jsx_runtime.jsx)(SelectTrigger,{size:`sm`,className:`w-full`,children:(0,import_jsx_runtime.jsx)(SelectValue,{children:val=>val??`Select schema`})}),(0,import_jsx_runtime.jsx)(SelectPopup,{children:schemas.map(schema=>(0,import_jsx_runtime.jsx)(SelectItem,{value:schema,children:schema},schema))})]})}function useCollapsibleRoot(parameters){let{open:openParam,defaultOpen,onOpenChange,disabled:disabled$1}=parameters,isControlled=openParam!==void 0,[open,setOpen]=useControlled({controlled:openParam,default:defaultOpen,name:`Collapsible`,state:`open`}),{mounted,setMounted,transitionStatus}=useTransitionStatus(open,!0,!0),[visible,setVisible]=import_react.useState(open),[{height,width},setDimensions]=import_react.useState({height:void 0,width:void 0}),defaultPanelId=useBaseUiId(),[panelIdState,setPanelIdState]=import_react.useState(),panelId=panelIdState??defaultPanelId,[hiddenUntilFound,setHiddenUntilFound]=import_react.useState(!1),[keepMounted,setKeepMounted]=import_react.useState(!1),abortControllerRef=import_react.useRef(null),animationTypeRef=import_react.useRef(null),transitionDimensionRef=import_react.useRef(null),panelRef=import_react.useRef(null),runOnceAnimationsFinish=useAnimationsFinished(panelRef,!1),handleTrigger=useStableCallback(event=>{let nextOpen=!open,eventDetails=createChangeEventDetails(triggerPress,event.nativeEvent);if(onOpenChange(nextOpen,eventDetails),eventDetails.isCanceled)return;let panel=panelRef.current;animationTypeRef.current===`css-animation`&&panel!=null&&panel.style.removeProperty(`animation-name`),!hiddenUntilFound&&!keepMounted&&(animationTypeRef.current!=null&&animationTypeRef.current!==`css-animation`&&!mounted&&nextOpen&&setMounted(!0),animationTypeRef.current===`css-animation`&&(!visible&&nextOpen&&setVisible(!0),!mounted&&nextOpen&&setMounted(!0))),setOpen(nextOpen),animationTypeRef.current===`none`&&mounted&&!nextOpen&&setMounted(!1)});return useIsoLayoutEffect(()=>{isControlled&&animationTypeRef.current===`none`&&!keepMounted&&!open&&setMounted(!1)},[isControlled,keepMounted,open,openParam,setMounted]),import_react.useMemo(()=>({abortControllerRef,animationTypeRef,disabled:disabled$1,handleTrigger,height,mounted,open,panelId,panelRef,runOnceAnimationsFinish,setDimensions,setHiddenUntilFound,setKeepMounted,setMounted,setOpen,setPanelIdState,setVisible,transitionDimensionRef,transitionStatus,visible,width}),[abortControllerRef,animationTypeRef,disabled$1,handleTrigger,height,mounted,open,panelId,panelRef,runOnceAnimationsFinish,setDimensions,setHiddenUntilFound,setKeepMounted,setMounted,setOpen,setVisible,transitionDimensionRef,transitionStatus,visible,width])}const CollapsibleRootContext=import_react.createContext(void 0);function useCollapsibleRootContext(){let context=import_react.useContext(CollapsibleRootContext);if(context===void 0)throw Error(formatErrorMessage(15));return context}let CollapsiblePanelDataAttributes=function(CollapsiblePanelDataAttributes$1){return CollapsiblePanelDataAttributes$1.open=`data-open`,CollapsiblePanelDataAttributes$1.closed=`data-closed`,CollapsiblePanelDataAttributes$1[CollapsiblePanelDataAttributes$1.startingStyle=TransitionStatusDataAttributes.startingStyle]=`startingStyle`,CollapsiblePanelDataAttributes$1[CollapsiblePanelDataAttributes$1.endingStyle=TransitionStatusDataAttributes.endingStyle]=`endingStyle`,CollapsiblePanelDataAttributes$1}({}),CollapsibleTriggerDataAttributes=function(CollapsibleTriggerDataAttributes$1){return CollapsibleTriggerDataAttributes$1.panelOpen=`data-panel-open`,CollapsibleTriggerDataAttributes$1}({});var PANEL_OPEN_HOOK={[CollapsiblePanelDataAttributes.open]:``},PANEL_CLOSED_HOOK={[CollapsiblePanelDataAttributes.closed]:``};const triggerOpenStateMapping$1={open(value){return value?{[CollapsibleTriggerDataAttributes.panelOpen]:``}:null}},collapsibleOpenStateMapping={open(value){return value?PANEL_OPEN_HOOK:PANEL_CLOSED_HOOK}},collapsibleStateAttributesMapping={...collapsibleOpenStateMapping,...transitionStatusMapping},CollapsibleRoot=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,defaultOpen=!1,disabled:disabled$1=!1,onOpenChange:onOpenChangeProp,open,...elementProps}=componentProps,onOpenChange=useStableCallback(onOpenChangeProp),collapsible=useCollapsibleRoot({open,defaultOpen,onOpenChange,disabled:disabled$1}),state$1=import_react.useMemo(()=>({open:collapsible.open,disabled:collapsible.disabled,transitionStatus:collapsible.transitionStatus}),[collapsible.open,collapsible.disabled,collapsible.transitionStatus]),contextValue=import_react.useMemo(()=>({...collapsible,onOpenChange,state:state$1}),[collapsible,onOpenChange,state$1]),element$3=useRenderElement(`div`,componentProps,{state:state$1,ref:forwardedRef,props:elementProps,stateAttributesMapping:collapsibleStateAttributesMapping});return(0,import_jsx_runtime.jsx)(CollapsibleRootContext.Provider,{value:contextValue,children:element$3})});var stateAttributesMapping$6={...triggerOpenStateMapping$1,...transitionStatusMapping};const CollapsibleTrigger$1=import_react.forwardRef(function(componentProps,forwardedRef){let{panelId,open,handleTrigger,state:state$1,disabled:contextDisabled}=useCollapsibleRootContext(),{className,disabled:disabled$1=contextDisabled,id,render,nativeButton=!0,...elementProps}=componentProps,{getButtonProps,buttonRef}=useButton({disabled:disabled$1,focusableWhenDisabled:!0,native:nativeButton}),props=import_react.useMemo(()=>({"aria-controls":open?panelId:void 0,"aria-expanded":open,onClick:handleTrigger}),[panelId,open,handleTrigger]);return useRenderElement(`button`,componentProps,{state:state$1,ref:[forwardedRef,buttonRef],props:[props,elementProps,getButtonProps],stateAttributesMapping:stateAttributesMapping$6})});let AccordionRootDataAttributes=function(AccordionRootDataAttributes$1){return AccordionRootDataAttributes$1.disabled=`data-disabled`,AccordionRootDataAttributes$1.orientation=`data-orientation`,AccordionRootDataAttributes$1}({});function useCollapsiblePanel(parameters){let{abortControllerRef,animationTypeRef,externalRef,height,hiddenUntilFound,keepMounted,id:idParam,mounted,onOpenChange,open,panelRef,runOnceAnimationsFinish,setDimensions,setMounted,setOpen,setVisible,transitionDimensionRef,visible,width}=parameters,isBeforeMatchRef=import_react.useRef(!1),latestAnimationNameRef=import_react.useRef(null),shouldCancelInitialOpenAnimationRef=import_react.useRef(open),shouldCancelInitialOpenTransitionRef=import_react.useRef(open),endingStyleFrame=useAnimationFrame(),hidden=import_react.useMemo(()=>animationTypeRef.current===`css-animation`?!visible:!open&&!mounted,[open,mounted,visible,animationTypeRef]),mergedPanelRef=useMergedRefs(externalRef,panelRef,useStableCallback(element$3=>{if(!element$3)return;if(animationTypeRef.current==null||transitionDimensionRef.current==null){let panelStyles=getComputedStyle(element$3),hasAnimation=panelStyles.animationName!==`none`&&panelStyles.animationName!==``,hasTransition=panelStyles.transitionDuration!==`0s`&&panelStyles.transitionDuration!==``;hasAnimation&&hasTransition||(panelStyles.animationName===`none`&&panelStyles.transitionDuration!==`0s`?animationTypeRef.current=`css-transition`:panelStyles.animationName!==`none`&&panelStyles.transitionDuration===`0s`?animationTypeRef.current=`css-animation`:animationTypeRef.current=`none`),element$3.getAttribute(AccordionRootDataAttributes.orientation)===`horizontal`||panelStyles.transitionProperty.indexOf(`width`)>-1?transitionDimensionRef.current=`width`:transitionDimensionRef.current=`height`}if(animationTypeRef.current!==`css-transition`)return;(height===void 0||width===void 0)&&(setDimensions({height:element$3.scrollHeight,width:element$3.scrollWidth}),shouldCancelInitialOpenTransitionRef.current&&element$3.style.setProperty(`transition-duration`,`0s`));let frame=-1,nextFrame=-1;return frame=AnimationFrame.request(()=>{shouldCancelInitialOpenTransitionRef.current=!1,nextFrame=AnimationFrame.request(()=>{setTimeout(()=>{element$3.style.removeProperty(`transition-duration`)})})}),()=>{AnimationFrame.cancel(frame),AnimationFrame.cancel(nextFrame)}}));return useIsoLayoutEffect(()=>{if(animationTypeRef.current!==`css-transition`)return;let panel=panelRef.current;if(!panel)return;let resizeFrame=-1;if(abortControllerRef.current!=null&&(abortControllerRef.current.abort(),abortControllerRef.current=null),open){let originalLayoutStyles={"justify-content":panel.style.justifyContent,"align-items":panel.style.alignItems,"align-content":panel.style.alignContent,"justify-items":panel.style.justifyItems};Object.keys(originalLayoutStyles).forEach(key$1=>{panel.style.setProperty(key$1,`initial`,`important`)}),!shouldCancelInitialOpenTransitionRef.current&&!keepMounted&&panel.setAttribute(CollapsiblePanelDataAttributes.startingStyle,``),setDimensions({height:panel.scrollHeight,width:panel.scrollWidth}),resizeFrame=AnimationFrame.request(()=>{Object.entries(originalLayoutStyles).forEach(([key$1,value])=>{value===``?panel.style.removeProperty(key$1):panel.style.setProperty(key$1,value)})})}else{if(panel.scrollHeight===0&&panel.scrollWidth===0)return;setDimensions({height:panel.scrollHeight,width:panel.scrollWidth});let abortController=new AbortController;abortControllerRef.current=abortController;let signal=abortController.signal,attributeObserver=null,endingStyleAttribute=CollapsiblePanelDataAttributes.endingStyle;return attributeObserver=new MutationObserver(mutationList=>{mutationList.some(mutation=>mutation.type===`attributes`&&mutation.attributeName===endingStyleAttribute)&&(attributeObserver?.disconnect(),attributeObserver=null,runOnceAnimationsFinish(()=>{setDimensions({height:0,width:0}),panel.style.removeProperty(`content-visibility`),setMounted(!1),abortControllerRef.current===abortController&&(abortControllerRef.current=null)},signal))}),attributeObserver.observe(panel,{attributes:!0,attributeFilter:[endingStyleAttribute]}),()=>{attributeObserver?.disconnect(),endingStyleFrame.cancel(),abortControllerRef.current===abortController&&(abortController.abort(),abortControllerRef.current=null)}}return()=>{AnimationFrame.cancel(resizeFrame)}},[abortControllerRef,animationTypeRef,endingStyleFrame,hiddenUntilFound,keepMounted,mounted,open,panelRef,runOnceAnimationsFinish,setDimensions,setMounted]),useIsoLayoutEffect(()=>{if(animationTypeRef.current!==`css-animation`)return;let panel=panelRef.current;panel&&(latestAnimationNameRef.current=panel.style.animationName||latestAnimationNameRef.current,panel.style.setProperty(`animation-name`,`none`),setDimensions({height:panel.scrollHeight,width:panel.scrollWidth}),!shouldCancelInitialOpenAnimationRef.current&&!isBeforeMatchRef.current&&panel.style.removeProperty(`animation-name`),open?(abortControllerRef.current!=null&&(abortControllerRef.current.abort(),abortControllerRef.current=null),setMounted(!0),setVisible(!0)):(abortControllerRef.current=new AbortController,runOnceAnimationsFinish(()=>{setMounted(!1),setVisible(!1),abortControllerRef.current=null},abortControllerRef.current.signal)))},[abortControllerRef,animationTypeRef,open,panelRef,runOnceAnimationsFinish,setDimensions,setMounted,setVisible,visible]),useOnMount(()=>{let frame=AnimationFrame.request(()=>{shouldCancelInitialOpenAnimationRef.current=!1});return()=>AnimationFrame.cancel(frame)}),useIsoLayoutEffect(()=>{if(!hiddenUntilFound)return;let panel=panelRef.current;if(!panel)return;let frame=-1,nextFrame=-1;return open&&isBeforeMatchRef.current&&(panel.style.transitionDuration=`0s`,setDimensions({height:panel.scrollHeight,width:panel.scrollWidth}),frame=AnimationFrame.request(()=>{isBeforeMatchRef.current=!1,nextFrame=AnimationFrame.request(()=>{setTimeout(()=>{panel.style.removeProperty(`transition-duration`)})})})),()=>{AnimationFrame.cancel(frame),AnimationFrame.cancel(nextFrame)}},[hiddenUntilFound,open,panelRef,setDimensions]),useIsoLayoutEffect(()=>{let panel=panelRef.current;panel&&hiddenUntilFound&&hidden&&(panel.setAttribute(`hidden`,`until-found`),animationTypeRef.current===`css-transition`&&panel.setAttribute(CollapsiblePanelDataAttributes.startingStyle,``))},[hiddenUntilFound,hidden,animationTypeRef,panelRef]),import_react.useEffect(function(){let panel=panelRef.current;if(!panel)return;function handleBeforeMatch(event){isBeforeMatchRef.current=!0,setOpen(!0),onOpenChange(!0,createChangeEventDetails(none$3,event))}return panel.addEventListener(`beforematch`,handleBeforeMatch),()=>{panel.removeEventListener(`beforematch`,handleBeforeMatch)}},[onOpenChange,panelRef,setOpen]),import_react.useMemo(()=>({props:{hidden,id:idParam,ref:mergedPanelRef}}),[hidden,idParam,mergedPanelRef])}let CollapsiblePanelCssVars=function(CollapsiblePanelCssVars$1){return CollapsiblePanelCssVars$1.collapsiblePanelHeight=`--collapsible-panel-height`,CollapsiblePanelCssVars$1.collapsiblePanelWidth=`--collapsible-panel-width`,CollapsiblePanelCssVars$1}({});const CollapsiblePanel$1=import_react.forwardRef(function(componentProps,forwardedRef){let{className,hiddenUntilFound:hiddenUntilFoundProp,keepMounted:keepMountedProp,render,id:idProp,...elementProps}=componentProps,{abortControllerRef,animationTypeRef,height,mounted,onOpenChange,open,panelId,panelRef,runOnceAnimationsFinish,setDimensions,setHiddenUntilFound,setKeepMounted,setMounted,setPanelIdState,setOpen,setVisible,state:state$1,transitionDimensionRef,visible,width,transitionStatus}=useCollapsibleRootContext(),hiddenUntilFound=hiddenUntilFoundProp??!1,keepMounted=keepMountedProp??!1;useIsoLayoutEffect(()=>{if(idProp)return setPanelIdState(idProp),()=>{setPanelIdState(void 0)}},[idProp,setPanelIdState]),useIsoLayoutEffect(()=>{setHiddenUntilFound(hiddenUntilFound)},[setHiddenUntilFound,hiddenUntilFound]),useIsoLayoutEffect(()=>{setKeepMounted(keepMounted)},[setKeepMounted,keepMounted]);let{props}=useCollapsiblePanel({abortControllerRef,animationTypeRef,externalRef:forwardedRef,height,hiddenUntilFound,id:panelId,keepMounted,mounted,onOpenChange,open,panelRef,runOnceAnimationsFinish,setDimensions,setMounted,setOpen,setVisible,transitionDimensionRef,visible,width});useOpenChangeComplete({open:open&&transitionStatus===`idle`,ref:panelRef,onComplete(){open&&setDimensions({height:void 0,width:void 0})}});let element$3=useRenderElement(`div`,componentProps,{state:import_react.useMemo(()=>({...state$1,transitionStatus}),[state$1,transitionStatus]),ref:[forwardedRef,panelRef],props:[props,{style:{[CollapsiblePanelCssVars.collapsiblePanelHeight]:height===void 0?`auto`:`${height}px`,[CollapsiblePanelCssVars.collapsiblePanelWidth]:width===void 0?`auto`:`${width}px`}},elementProps],stateAttributesMapping:collapsibleStateAttributesMapping});return keepMounted||hiddenUntilFound||!keepMounted&&mounted?element$3:null});function Collapsible({...props}){return(0,import_jsx_runtime.jsx)(CollapsibleRoot,{"data-slot":`collapsible`,...props})}function CollapsibleTrigger({className,...props}){return(0,import_jsx_runtime.jsx)(CollapsibleTrigger$1,{className:cn(`cursor-pointer`,className),"data-slot":`collapsible-trigger`,...props})}function CollapsiblePanel({className,...props}){return(0,import_jsx_runtime.jsx)(CollapsiblePanel$1,{className:cn(`h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-200 data-ending-style:h-0 data-starting-style:h-0`,className),"data-slot":`collapsible-panel`,...props})}const ScrollAreaRootContext=import_react.createContext(void 0);function useScrollAreaRootContext(){let context=import_react.useContext(ScrollAreaRootContext);if(context===void 0)throw Error(formatErrorMessage(53));return context}let ScrollAreaRootCssVars=function(ScrollAreaRootCssVars$1){return ScrollAreaRootCssVars$1.scrollAreaCornerHeight=`--scroll-area-corner-height`,ScrollAreaRootCssVars$1.scrollAreaCornerWidth=`--scroll-area-corner-width`,ScrollAreaRootCssVars$1}({});const SCROLL_TIMEOUT=500,MIN_THUMB_SIZE=16;function getOffset(element$3,prop,axis){if(!element$3)return 0;let styles=getComputedStyle(element$3),propAxis=axis===`x`?`Inline`:`Block`;return axis===`x`&&prop===`margin`?parseFloat(styles[`${prop}InlineStart`])*2:parseFloat(styles[`${prop}${propAxis}Start`])+parseFloat(styles[`${prop}${propAxis}End`])}let ScrollAreaScrollbarDataAttributes=function(ScrollAreaScrollbarDataAttributes$1){return ScrollAreaScrollbarDataAttributes$1.orientation=`data-orientation`,ScrollAreaScrollbarDataAttributes$1.hovering=`data-hovering`,ScrollAreaScrollbarDataAttributes$1.scrolling=`data-scrolling`,ScrollAreaScrollbarDataAttributes$1.hasOverflowX=`data-has-overflow-x`,ScrollAreaScrollbarDataAttributes$1.hasOverflowY=`data-has-overflow-y`,ScrollAreaScrollbarDataAttributes$1.overflowXStart=`data-overflow-x-start`,ScrollAreaScrollbarDataAttributes$1.overflowXEnd=`data-overflow-x-end`,ScrollAreaScrollbarDataAttributes$1.overflowYStart=`data-overflow-y-start`,ScrollAreaScrollbarDataAttributes$1.overflowYEnd=`data-overflow-y-end`,ScrollAreaScrollbarDataAttributes$1}({}),ScrollAreaRootDataAttributes=function(ScrollAreaRootDataAttributes$1){return ScrollAreaRootDataAttributes$1.hasOverflowX=`data-has-overflow-x`,ScrollAreaRootDataAttributes$1.hasOverflowY=`data-has-overflow-y`,ScrollAreaRootDataAttributes$1.overflowXStart=`data-overflow-x-start`,ScrollAreaRootDataAttributes$1.overflowXEnd=`data-overflow-x-end`,ScrollAreaRootDataAttributes$1.overflowYStart=`data-overflow-y-start`,ScrollAreaRootDataAttributes$1.overflowYEnd=`data-overflow-y-end`,ScrollAreaRootDataAttributes$1}({});const scrollAreaStateAttributesMapping={hasOverflowX:value=>value?{[ScrollAreaRootDataAttributes.hasOverflowX]:``}:null,hasOverflowY:value=>value?{[ScrollAreaRootDataAttributes.hasOverflowY]:``}:null,overflowXStart:value=>value?{[ScrollAreaRootDataAttributes.overflowXStart]:``}:null,overflowXEnd:value=>value?{[ScrollAreaRootDataAttributes.overflowXEnd]:``}:null,overflowYStart:value=>value?{[ScrollAreaRootDataAttributes.overflowYStart]:``}:null,overflowYEnd:value=>value?{[ScrollAreaRootDataAttributes.overflowYEnd]:``}:null,cornerHidden:()=>null};var DEFAULT_COORDS={x:0,y:0},DEFAULT_SIZE={width:0,height:0},DEFAULT_OVERFLOW_EDGES={xStart:!1,xEnd:!1,yStart:!1,yEnd:!1},DEFAULT_HIDDEN_STATE={x:!1,y:!1,corner:!1};const ScrollAreaRoot=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,overflowEdgeThreshold:overflowEdgeThresholdProp,...elementProps}=componentProps,overflowEdgeThreshold=normalizeOverflowEdgeThreshold(overflowEdgeThresholdProp),rootId=useBaseUiId(),scrollYTimeout=useTimeout(),scrollXTimeout=useTimeout(),{nonce,disableStyleElements}=useCSPContext(),[hovering,setHovering]=import_react.useState(!1),[scrollingX,setScrollingX]=import_react.useState(!1),[scrollingY,setScrollingY]=import_react.useState(!1),[touchModality,setTouchModality]=import_react.useState(!1),[cornerSize,setCornerSize]=import_react.useState(DEFAULT_SIZE),[thumbSize,setThumbSize]=import_react.useState(DEFAULT_SIZE),[overflowEdges,setOverflowEdges]=import_react.useState(DEFAULT_OVERFLOW_EDGES),[hiddenState,setHiddenState]=import_react.useState(DEFAULT_HIDDEN_STATE),rootRef=import_react.useRef(null),viewportRef=import_react.useRef(null),scrollbarYRef=import_react.useRef(null),scrollbarXRef=import_react.useRef(null),thumbYRef=import_react.useRef(null),thumbXRef=import_react.useRef(null),cornerRef=import_react.useRef(null),thumbDraggingRef=import_react.useRef(!1),startYRef=import_react.useRef(0),startXRef=import_react.useRef(0),startScrollTopRef=import_react.useRef(0),startScrollLeftRef=import_react.useRef(0),currentOrientationRef=import_react.useRef(`vertical`),scrollPositionRef=import_react.useRef(DEFAULT_COORDS),handleScroll=useStableCallback(scrollPosition=>{let offsetX=scrollPosition.x-scrollPositionRef.current.x,offsetY=scrollPosition.y-scrollPositionRef.current.y;scrollPositionRef.current=scrollPosition,offsetY!==0&&(setScrollingY(!0),scrollYTimeout.start(500,()=>{setScrollingY(!1)})),offsetX!==0&&(setScrollingX(!0),scrollXTimeout.start(500,()=>{setScrollingX(!1)}))}),handlePointerDown=useStableCallback(event=>{event.button===0&&(thumbDraggingRef.current=!0,startYRef.current=event.clientY,startXRef.current=event.clientX,currentOrientationRef.current=event.currentTarget.getAttribute(ScrollAreaScrollbarDataAttributes.orientation),viewportRef.current&&(startScrollTopRef.current=viewportRef.current.scrollTop,startScrollLeftRef.current=viewportRef.current.scrollLeft),thumbYRef.current&&currentOrientationRef.current===`vertical`&&thumbYRef.current.setPointerCapture(event.pointerId),thumbXRef.current&&currentOrientationRef.current===`horizontal`&&thumbXRef.current.setPointerCapture(event.pointerId))}),handlePointerMove=useStableCallback(event=>{if(!thumbDraggingRef.current)return;let deltaY=event.clientY-startYRef.current,deltaX=event.clientX-startXRef.current;if(viewportRef.current){let scrollableContentHeight=viewportRef.current.scrollHeight,viewportHeight=viewportRef.current.clientHeight,scrollableContentWidth=viewportRef.current.scrollWidth,viewportWidth=viewportRef.current.clientWidth;if(thumbYRef.current&&scrollbarYRef.current&&currentOrientationRef.current===`vertical`){let scrollbarYOffset=getOffset(scrollbarYRef.current,`padding`,`y`),thumbYOffset=getOffset(thumbYRef.current,`margin`,`y`),thumbHeight=thumbYRef.current.offsetHeight,scrollRatioY=deltaY/(scrollbarYRef.current.offsetHeight-thumbHeight-scrollbarYOffset-thumbYOffset);viewportRef.current.scrollTop=startScrollTopRef.current+scrollRatioY*(scrollableContentHeight-viewportHeight),event.preventDefault(),setScrollingY(!0),scrollYTimeout.start(500,()=>{setScrollingY(!1)})}if(thumbXRef.current&&scrollbarXRef.current&&currentOrientationRef.current===`horizontal`){let scrollbarXOffset=getOffset(scrollbarXRef.current,`padding`,`x`),thumbXOffset=getOffset(thumbXRef.current,`margin`,`x`),thumbWidth=thumbXRef.current.offsetWidth,scrollRatioX=deltaX/(scrollbarXRef.current.offsetWidth-thumbWidth-scrollbarXOffset-thumbXOffset);viewportRef.current.scrollLeft=startScrollLeftRef.current+scrollRatioX*(scrollableContentWidth-viewportWidth),event.preventDefault(),setScrollingX(!0),scrollXTimeout.start(500,()=>{setScrollingX(!1)})}}}),handlePointerUp=useStableCallback(event=>{thumbDraggingRef.current=!1,thumbYRef.current&&currentOrientationRef.current===`vertical`&&thumbYRef.current.releasePointerCapture(event.pointerId),thumbXRef.current&&currentOrientationRef.current===`horizontal`&&thumbXRef.current.releasePointerCapture(event.pointerId)});function handleTouchModalityChange(event){setTouchModality(event.pointerType===`touch`)}function handlePointerEnterOrMove(event){handleTouchModalityChange(event),event.pointerType!==`touch`&&setHovering(contains(rootRef.current,event.target))}let state$1=import_react.useMemo(()=>({hasOverflowX:!hiddenState.x,hasOverflowY:!hiddenState.y,overflowXStart:overflowEdges.xStart,overflowXEnd:overflowEdges.xEnd,overflowYStart:overflowEdges.yStart,overflowYEnd:overflowEdges.yEnd,cornerHidden:hiddenState.corner}),[hiddenState.x,hiddenState.y,hiddenState.corner,overflowEdges]),props={role:`presentation`,onPointerEnter:handlePointerEnterOrMove,onPointerMove:handlePointerEnterOrMove,onPointerDown:handleTouchModalityChange,onPointerLeave(){setHovering(!1)},style:{position:`relative`,[ScrollAreaRootCssVars.scrollAreaCornerHeight]:`${cornerSize.height}px`,[ScrollAreaRootCssVars.scrollAreaCornerWidth]:`${cornerSize.width}px`}},element$3=useRenderElement(`div`,componentProps,{state:state$1,ref:[forwardedRef,rootRef],props:[props,elementProps],stateAttributesMapping:scrollAreaStateAttributesMapping}),contextValue=import_react.useMemo(()=>({handlePointerDown,handlePointerMove,handlePointerUp,handleScroll,cornerSize,setCornerSize,thumbSize,setThumbSize,touchModality,cornerRef,scrollingX,setScrollingX,scrollingY,setScrollingY,hovering,setHovering,viewportRef,rootRef,scrollbarYRef,scrollbarXRef,thumbYRef,thumbXRef,rootId,hiddenState,setHiddenState,overflowEdges,setOverflowEdges,viewportState:state$1,overflowEdgeThreshold}),[handlePointerDown,handlePointerMove,handlePointerUp,handleScroll,cornerSize,thumbSize,touchModality,scrollingX,setScrollingX,scrollingY,setScrollingY,hovering,setHovering,rootId,hiddenState,overflowEdges,state$1,overflowEdgeThreshold]);return(0,import_jsx_runtime.jsxs)(ScrollAreaRootContext.Provider,{value:contextValue,children:[!disableStyleElements&&styleDisableScrollbar.getElement(nonce),element$3]})});function normalizeOverflowEdgeThreshold(threshold){if(typeof threshold==`number`){let value=Math.max(0,threshold);return{xStart:value,xEnd:value,yStart:value,yEnd:value}}return{xStart:Math.max(0,threshold?.xStart||0),xEnd:Math.max(0,threshold?.xEnd||0),yStart:Math.max(0,threshold?.yStart||0),yEnd:Math.max(0,threshold?.yEnd||0)}}const ScrollAreaViewportContext=import_react.createContext(void 0);function onVisible(element$3,callback){if(typeof IntersectionObserver>`u`)return()=>{};let observer=new IntersectionObserver(entries=>{entries.forEach(entry=>{entry.intersectionRatio>0&&(callback(),observer.disconnect())})});return observer.observe(element$3),()=>{observer.disconnect()}}let ScrollAreaViewportCssVars=function(ScrollAreaViewportCssVars$1){return ScrollAreaViewportCssVars$1.scrollAreaOverflowXStart=`--scroll-area-overflow-x-start`,ScrollAreaViewportCssVars$1.scrollAreaOverflowXEnd=`--scroll-area-overflow-x-end`,ScrollAreaViewportCssVars$1.scrollAreaOverflowYStart=`--scroll-area-overflow-y-start`,ScrollAreaViewportCssVars$1.scrollAreaOverflowYEnd=`--scroll-area-overflow-y-end`,ScrollAreaViewportCssVars$1}({});var scrollAreaOverflowVarsRegistered=!1;function removeCSSVariableInheritance(){scrollAreaOverflowVarsRegistered||isWebKit||(typeof CSS<`u`&&`registerProperty`in CSS&&[ScrollAreaViewportCssVars.scrollAreaOverflowXStart,ScrollAreaViewportCssVars.scrollAreaOverflowXEnd,ScrollAreaViewportCssVars.scrollAreaOverflowYStart,ScrollAreaViewportCssVars.scrollAreaOverflowYEnd].forEach(name$2=>{try{CSS.registerProperty({name:name$2,syntax:`<length>`,inherits:!1,initialValue:`0px`})}catch{}}),scrollAreaOverflowVarsRegistered=!0)}const ScrollAreaViewport=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,...elementProps}=componentProps,{viewportRef,scrollbarYRef,scrollbarXRef,thumbYRef,thumbXRef,cornerRef,cornerSize,setCornerSize,setThumbSize,rootId,setHiddenState,hiddenState,handleScroll,setHovering,setOverflowEdges,overflowEdges,overflowEdgeThreshold}=useScrollAreaRootContext(),direction=useDirection(),programmaticScrollRef=import_react.useRef(!0),scrollEndTimeout=useTimeout(),waitForAnimationsTimeout=useTimeout(),computeThumbPosition=useStableCallback(()=>{let viewportEl=viewportRef.current,scrollbarYEl=scrollbarYRef.current,scrollbarXEl=scrollbarXRef.current,thumbYEl=thumbYRef.current,thumbXEl=thumbXRef.current,cornerEl=cornerRef.current;if(!viewportEl)return;let scrollableContentHeight=viewportEl.scrollHeight,scrollableContentWidth=viewportEl.scrollWidth,viewportHeight=viewportEl.clientHeight,viewportWidth=viewportEl.clientWidth,scrollTop=viewportEl.scrollTop,scrollLeft=viewportEl.scrollLeft;if(scrollableContentHeight===0||scrollableContentWidth===0)return;let scrollbarYHidden=viewportHeight>=scrollableContentHeight,scrollbarXHidden=viewportWidth>=scrollableContentWidth,ratioX=viewportWidth/scrollableContentWidth,ratioY=viewportHeight/scrollableContentHeight,maxScrollLeft=Math.max(0,scrollableContentWidth-viewportWidth),maxScrollTop=Math.max(0,scrollableContentHeight-viewportHeight),scrollLeftFromStart=0,scrollLeftFromEnd=0;scrollbarXHidden||(scrollLeftFromStart=clamp(direction===`rtl`?-scrollLeft:scrollLeft,0,maxScrollLeft),scrollLeftFromEnd=maxScrollLeft-scrollLeftFromStart);let scrollTopFromStart=scrollbarYHidden?0:clamp(scrollTop,0,maxScrollTop),scrollTopFromEnd=scrollbarYHidden?0:maxScrollTop-scrollTopFromStart,nextWidth=scrollbarXHidden?0:viewportWidth,nextHeight=scrollbarYHidden?0:viewportHeight,nextCornerWidth=0,nextCornerHeight=0;!scrollbarXHidden&&!scrollbarYHidden&&(nextCornerWidth=scrollbarYEl?.offsetWidth||0,nextCornerHeight=scrollbarXEl?.offsetHeight||0);let cornerNotYetSized=cornerSize.width===0&&cornerSize.height===0,cornerWidthOffset=cornerNotYetSized?nextCornerWidth:0,cornerHeightOffset=cornerNotYetSized?nextCornerHeight:0,scrollbarXOffset=getOffset(scrollbarXEl,`padding`,`x`),scrollbarYOffset=getOffset(scrollbarYEl,`padding`,`y`),thumbXOffset=getOffset(thumbXEl,`margin`,`x`),thumbYOffset=getOffset(thumbYEl,`margin`,`y`),idealNextWidth=nextWidth-scrollbarXOffset-thumbXOffset,idealNextHeight=nextHeight-scrollbarYOffset-thumbYOffset,maxNextWidth=scrollbarXEl?Math.min(scrollbarXEl.offsetWidth-cornerWidthOffset,idealNextWidth):idealNextWidth,maxNextHeight=scrollbarYEl?Math.min(scrollbarYEl.offsetHeight-cornerHeightOffset,idealNextHeight):idealNextHeight,clampedNextWidth=Math.max(16,maxNextWidth*ratioX),clampedNextHeight=Math.max(16,maxNextHeight*ratioY);if(setThumbSize(prevSize=>prevSize.height===clampedNextHeight&&prevSize.width===clampedNextWidth?prevSize:{width:clampedNextWidth,height:clampedNextHeight}),scrollbarYEl&&thumbYEl){let maxThumbOffsetY=scrollbarYEl.offsetHeight-clampedNextHeight-scrollbarYOffset-thumbYOffset,scrollRangeY=scrollableContentHeight-viewportHeight,scrollRatioY=scrollRangeY===0?0:scrollTop/scrollRangeY,thumbOffsetY=Math.min(maxThumbOffsetY,Math.max(0,scrollRatioY*maxThumbOffsetY));thumbYEl.style.transform=`translate3d(0,${thumbOffsetY}px,0)`}if(scrollbarXEl&&thumbXEl){let maxThumbOffsetX=scrollbarXEl.offsetWidth-clampedNextWidth-scrollbarXOffset-thumbXOffset,scrollRangeX=scrollableContentWidth-viewportWidth,scrollRatioX=scrollRangeX===0?0:scrollLeft/scrollRangeX,thumbOffsetX=direction===`rtl`?clamp(scrollRatioX*maxThumbOffsetX,-maxThumbOffsetX,0):clamp(scrollRatioX*maxThumbOffsetX,0,maxThumbOffsetX);thumbXEl.style.transform=`translate3d(${thumbOffsetX}px,0,0)`}let clampedScrollLeftStart=clamp(scrollLeftFromStart,0,maxScrollLeft),clampedScrollLeftEnd=clamp(scrollLeftFromEnd,0,maxScrollLeft),clampedScrollTopStart=clamp(scrollTopFromStart,0,maxScrollTop),clampedScrollTopEnd=clamp(scrollTopFromEnd,0,maxScrollTop),overflowMetricsPx=[[ScrollAreaViewportCssVars.scrollAreaOverflowXStart,clampedScrollLeftStart],[ScrollAreaViewportCssVars.scrollAreaOverflowXEnd,clampedScrollLeftEnd],[ScrollAreaViewportCssVars.scrollAreaOverflowYStart,clampedScrollTopStart],[ScrollAreaViewportCssVars.scrollAreaOverflowYEnd,clampedScrollTopEnd]];for(let[cssVar,value]of overflowMetricsPx)viewportEl.style.setProperty(cssVar,`${value}px`);cornerEl&&(scrollbarXHidden||scrollbarYHidden?setCornerSize({width:0,height:0}):!scrollbarXHidden&&!scrollbarYHidden&&setCornerSize({width:nextCornerWidth,height:nextCornerHeight})),setHiddenState(prevState=>{let cornerHidden=scrollbarYHidden||scrollbarXHidden;return prevState.y===scrollbarYHidden&&prevState.x===scrollbarXHidden&&prevState.corner===cornerHidden?prevState:{y:scrollbarYHidden,x:scrollbarXHidden,corner:cornerHidden}});let nextOverflowEdges={xStart:!scrollbarXHidden&&clampedScrollLeftStart>overflowEdgeThreshold.xStart,xEnd:!scrollbarXHidden&&clampedScrollLeftEnd>overflowEdgeThreshold.xEnd,yStart:!scrollbarYHidden&&clampedScrollTopStart>overflowEdgeThreshold.yStart,yEnd:!scrollbarYHidden&&clampedScrollTopEnd>overflowEdgeThreshold.yEnd};setOverflowEdges(prev=>prev.xStart===nextOverflowEdges.xStart&&prev.xEnd===nextOverflowEdges.xEnd&&prev.yStart===nextOverflowEdges.yStart&&prev.yEnd===nextOverflowEdges.yEnd?prev:nextOverflowEdges)});useIsoLayoutEffect(()=>{if(!viewportRef.current)return;removeCSSVariableInheritance();let hasInitialized=!1;return onVisible(viewportRef.current,()=>{if(!hasInitialized){hasInitialized=!0;return}computeThumbPosition()})},[computeThumbPosition,viewportRef]),useIsoLayoutEffect(()=>{queueMicrotask(computeThumbPosition)},[computeThumbPosition,hiddenState,direction]),useIsoLayoutEffect(()=>{viewportRef.current?.matches(`:hover`)&&setHovering(!0)},[viewportRef,setHovering]),import_react.useEffect(()=>{let viewport=viewportRef.current;if(typeof ResizeObserver>`u`||!viewport)return;let hasInitialized=!1,ro=new ResizeObserver(()=>{if(!hasInitialized){hasInitialized=!0;return}computeThumbPosition()});return ro.observe(viewport),waitForAnimationsTimeout.start(0,()=>{let animations=viewport.getAnimations({subtree:!0});animations.length!==0&&Promise.all(animations.map(animation=>animation.finished)).then(computeThumbPosition).catch(()=>{})}),()=>{ro.disconnect(),waitForAnimationsTimeout.clear()}},[computeThumbPosition,viewportRef,waitForAnimationsTimeout]);function handleUserInteraction(){programmaticScrollRef.current=!1}let props={role:`presentation`,...rootId&&{"data-id":`${rootId}-viewport`},...(!hiddenState.x||!hiddenState.y)&&{tabIndex:0},className:styleDisableScrollbar.className,style:{overflow:`scroll`},onScroll(){viewportRef.current&&(computeThumbPosition(),programmaticScrollRef.current||handleScroll({x:viewportRef.current.scrollLeft,y:viewportRef.current.scrollTop}),scrollEndTimeout.start(100,()=>{programmaticScrollRef.current=!0}))},onWheel:handleUserInteraction,onTouchMove:handleUserInteraction,onPointerMove:handleUserInteraction,onPointerEnter:handleUserInteraction,onKeyDown:handleUserInteraction},viewportState=import_react.useMemo(()=>({hasOverflowX:!hiddenState.x,hasOverflowY:!hiddenState.y,overflowXStart:overflowEdges.xStart,overflowXEnd:overflowEdges.xEnd,overflowYStart:overflowEdges.yStart,overflowYEnd:overflowEdges.yEnd,cornerHidden:hiddenState.corner}),[hiddenState.x,hiddenState.y,hiddenState.corner,overflowEdges]),element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,viewportRef],state:viewportState,props:[props,elementProps],stateAttributesMapping:scrollAreaStateAttributesMapping}),contextValue=import_react.useMemo(()=>({computeThumbPosition}),[computeThumbPosition]);return(0,import_jsx_runtime.jsx)(ScrollAreaViewportContext.Provider,{value:contextValue,children:element$3})}),ScrollAreaScrollbarContext=import_react.createContext(void 0);function useScrollAreaScrollbarContext(){let context=import_react.useContext(ScrollAreaScrollbarContext);if(context===void 0)throw Error(formatErrorMessage(54));return context}let ScrollAreaScrollbarCssVars=function(ScrollAreaScrollbarCssVars$1){return ScrollAreaScrollbarCssVars$1.scrollAreaThumbHeight=`--scroll-area-thumb-height`,ScrollAreaScrollbarCssVars$1.scrollAreaThumbWidth=`--scroll-area-thumb-width`,ScrollAreaScrollbarCssVars$1}({});const ScrollAreaScrollbar=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,orientation=`vertical`,keepMounted=!1,...elementProps}=componentProps,{hovering,scrollingX,scrollingY,hiddenState,overflowEdges,scrollbarYRef,scrollbarXRef,viewportRef,thumbYRef,thumbXRef,handlePointerDown,handlePointerUp,rootId,thumbSize}=useScrollAreaRootContext(),state$1=import_react.useMemo(()=>({hovering,scrolling:{horizontal:scrollingX,vertical:scrollingY}[orientation],orientation,hasOverflowX:!hiddenState.x,hasOverflowY:!hiddenState.y,overflowXStart:overflowEdges.xStart,overflowXEnd:overflowEdges.xEnd,overflowYStart:overflowEdges.yStart,overflowYEnd:overflowEdges.yEnd,cornerHidden:hiddenState.corner}),[hovering,scrollingX,scrollingY,orientation,hiddenState,overflowEdges]),direction=useDirection();import_react.useEffect(()=>{let viewportEl=viewportRef.current,scrollbarEl=orientation===`vertical`?scrollbarYRef.current:scrollbarXRef.current;if(!scrollbarEl)return;function handleWheel(event){if(!(!viewportEl||!scrollbarEl||event.ctrlKey)){if(event.preventDefault(),orientation===`vertical`){if(viewportEl.scrollTop===0&&event.deltaY<0)return}else if(viewportEl.scrollLeft===0&&event.deltaX<0)return;if(orientation===`vertical`){if(viewportEl.scrollTop===viewportEl.scrollHeight-viewportEl.clientHeight&&event.deltaY>0)return}else if(viewportEl.scrollLeft===viewportEl.scrollWidth-viewportEl.clientWidth&&event.deltaX>0)return;orientation===`vertical`?viewportEl.scrollTop+=event.deltaY:viewportEl.scrollLeft+=event.deltaX}}return scrollbarEl.addEventListener(`wheel`,handleWheel,{passive:!1}),()=>{scrollbarEl.removeEventListener(`wheel`,handleWheel)}},[orientation,scrollbarXRef,scrollbarYRef,viewportRef]);let props={...rootId&&{"data-id":`${rootId}-scrollbar`},onPointerDown(event){if(event.button===0&&event.currentTarget===event.target&&viewportRef.current){if(thumbYRef.current&&scrollbarYRef.current&&orientation===`vertical`){let thumbYOffset=getOffset(thumbYRef.current,`margin`,`y`),scrollbarYOffset=getOffset(scrollbarYRef.current,`padding`,`y`),thumbHeight=thumbYRef.current.offsetHeight,trackRectY=scrollbarYRef.current.getBoundingClientRect(),clickY=event.clientY-trackRectY.top-thumbHeight/2-scrollbarYOffset+thumbYOffset/2,scrollableContentHeight=viewportRef.current.scrollHeight,viewportHeight=viewportRef.current.clientHeight,newScrollTop=clickY/(scrollbarYRef.current.offsetHeight-thumbHeight-scrollbarYOffset-thumbYOffset)*(scrollableContentHeight-viewportHeight);viewportRef.current.scrollTop=newScrollTop}if(thumbXRef.current&&scrollbarXRef.current&&orientation===`horizontal`){let thumbXOffset=getOffset(thumbXRef.current,`margin`,`x`),scrollbarXOffset=getOffset(scrollbarXRef.current,`padding`,`x`),thumbWidth=thumbXRef.current.offsetWidth,trackRectX=scrollbarXRef.current.getBoundingClientRect(),clickX=event.clientX-trackRectX.left-thumbWidth/2-scrollbarXOffset+thumbXOffset/2,scrollableContentWidth=viewportRef.current.scrollWidth,viewportWidth=viewportRef.current.clientWidth,scrollRatioX=clickX/(scrollbarXRef.current.offsetWidth-thumbWidth-scrollbarXOffset-thumbXOffset),newScrollLeft;direction===`rtl`?(newScrollLeft=(1-scrollRatioX)*(scrollableContentWidth-viewportWidth),viewportRef.current.scrollLeft<=0&&(newScrollLeft=-newScrollLeft)):newScrollLeft=scrollRatioX*(scrollableContentWidth-viewportWidth),viewportRef.current.scrollLeft=newScrollLeft}handlePointerDown(event)}},onPointerUp:handlePointerUp,style:{position:`absolute`,touchAction:`none`,WebkitUserSelect:`none`,userSelect:`none`,...orientation===`vertical`&&{top:0,bottom:`var(${ScrollAreaRootCssVars.scrollAreaCornerHeight})`,insetInlineEnd:0,[ScrollAreaScrollbarCssVars.scrollAreaThumbHeight]:`${thumbSize.height}px`},...orientation===`horizontal`&&{insetInlineStart:0,insetInlineEnd:`var(${ScrollAreaRootCssVars.scrollAreaCornerWidth})`,bottom:0,[ScrollAreaScrollbarCssVars.scrollAreaThumbWidth]:`${thumbSize.width}px`}}},element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,orientation===`vertical`?scrollbarYRef:scrollbarXRef],state:state$1,props:[props,elementProps],stateAttributesMapping:scrollAreaStateAttributesMapping}),contextValue=import_react.useMemo(()=>({orientation}),[orientation]),isHidden$1=orientation===`vertical`?hiddenState.y:hiddenState.x;return keepMounted||!isHidden$1?(0,import_jsx_runtime.jsx)(ScrollAreaScrollbarContext.Provider,{value:contextValue,children:element$3}):null}),ScrollAreaThumb=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,...elementProps}=componentProps,{thumbYRef,thumbXRef,handlePointerDown,handlePointerMove,handlePointerUp,setScrollingX,setScrollingY}=useScrollAreaRootContext(),{orientation}=useScrollAreaScrollbarContext(),state$1=import_react.useMemo(()=>({orientation}),[orientation]);return useRenderElement(`div`,componentProps,{ref:[forwardedRef,orientation===`vertical`?thumbYRef:thumbXRef],state:state$1,props:[{onPointerDown:handlePointerDown,onPointerMove:handlePointerMove,onPointerUp(event){orientation===`vertical`&&setScrollingY(!1),orientation===`horizontal`&&setScrollingX(!1),handlePointerUp(event)},style:{...orientation===`vertical`&&{height:`var(${ScrollAreaScrollbarCssVars.scrollAreaThumbHeight})`},...orientation===`horizontal`&&{width:`var(${ScrollAreaScrollbarCssVars.scrollAreaThumbWidth})`}}},elementProps]})}),ScrollAreaCorner=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,...elementProps}=componentProps,{cornerRef,cornerSize,hiddenState}=useScrollAreaRootContext(),element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,cornerRef],props:[{style:{position:`absolute`,bottom:0,insetInlineEnd:0,width:cornerSize.width,height:cornerSize.height}},elementProps]});return hiddenState.corner?null:element$3});function ScrollArea({className,children,scrollFade=!1,scrollbarGutter=!1,...props}){return(0,import_jsx_runtime.jsxs)(ScrollAreaRoot,{className:cn(`size-full min-h-0`,className),...props,children:[(0,import_jsx_runtime.jsx)(ScrollAreaViewport,{className:cn(`h-full overscroll-contain rounded-[inherit] outline-none transition-shadows focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background`,scrollFade&&`mask-t-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-start)))] mask-b-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-end)))] mask-l-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-start)))] mask-r-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-end)))] [--fade-size:1.5rem]`,scrollbarGutter&&`data-has-overflow-y:pe-2.5 data-has-overflow-x:pb-2.5`),"data-slot":`scroll-area-viewport`,children}),(0,import_jsx_runtime.jsx)(ScrollBar,{orientation:`vertical`}),(0,import_jsx_runtime.jsx)(ScrollBar,{orientation:`horizontal`}),(0,import_jsx_runtime.jsx)(ScrollAreaCorner,{"data-slot":`scroll-area-corner`})]})}function ScrollBar({className,orientation=`vertical`,...props}){return(0,import_jsx_runtime.jsx)(ScrollAreaScrollbar,{className:cn(`m-1 flex opacity-0 transition-opacity delay-300 data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5 data-[orientation=horizontal]:flex-col data-hovering:opacity-100 data-scrolling:opacity-100 data-hovering:delay-0 data-scrolling:delay-0 data-hovering:duration-100 data-scrolling:duration-100`,className),"data-slot":`scroll-area-scrollbar`,orientation,...props,children:(0,import_jsx_runtime.jsx)(ScrollAreaThumb,{className:`relative flex-1 rounded-full bg-foreground/20`,"data-slot":`scroll-area-thumb`})})}function highlightMatch(text$5,query){if(!query)return text$5;let index$4=text$5.toLowerCase().indexOf(query.toLowerCase());return index$4===-1?text$5:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[text$5.slice(0,index$4),(0,import_jsx_runtime.jsx)(`mark`,{className:`bg-yellow-200 text-inherit`,children:text$5.slice(index$4,index$4+query.length)}),text$5.slice(index$4+query.length)]})}function ObjectSection({title,icon:Icon$1,objects,searchQuery,selectedObject,onObjectSelect,onObjectDoubleClick,onViewSchema,onGenerateSQL,schema,objectType}){let[sectionOpen,setSectionOpen]=(0,import_react.useState)(!0),filteredObjects=objects.filter(obj=>obj.name.toLowerCase().includes(searchQuery.toLowerCase()));return filteredObjects.length===0&&searchQuery?null:(0,import_jsx_runtime.jsxs)(Collapsible,{open:sectionOpen,onOpenChange:setSectionOpen,className:`mt-2 first:mt-0`,children:[(0,import_jsx_runtime.jsxs)(CollapsibleTrigger,{className:`flex items-center gap-1.5 w-full px-2 py-1 text-xs font-semibold text-gray-500 uppercase tracking-wide hover:text-gray-700 rounded overflow-hidden`,children:[(0,import_jsx_runtime.jsx)(ChevronRight,{className:cn(`size-3 shrink-0 transition-transform`,sectionOpen&&`rotate-90`)}),(0,import_jsx_runtime.jsx)(Icon$1,{className:`size-3.5 shrink-0`}),(0,import_jsx_runtime.jsx)(`span`,{className:`truncate`,children:title}),(0,import_jsx_runtime.jsx)(Badge,{variant:`secondary`,size:`sm`,className:`rounded-full shrink-0 text-[10px] lowercase`,children:filteredObjects.length})]}),(0,import_jsx_runtime.jsx)(CollapsiblePanel,{children:(0,import_jsx_runtime.jsx)(`div`,{className:`ml-5 mt-0.5 border-l border-gray-200 pl-1`,children:filteredObjects.map(obj=>{let objectKey=obj.arguments===void 0?obj.name:`${obj.name}(${obj.arguments})`,isSelected=selectedObject?.schema===schema&&selectedObject?.name===obj.name&&selectedObject?.type===objectType&&(obj.arguments===void 0||selectedObject?.arguments===obj.arguments);return(0,import_jsx_runtime.jsx)(ObjectItem,{objectName:obj.name,searchQuery,isSelected,onClick:()=>{onObjectSelect({schema,name:obj.name,type:objectType,arguments:obj.arguments})},onDoubleClick:()=>onObjectDoubleClick(schema,obj.name,objectType,obj.arguments),onViewSchema:()=>onViewSchema(schema,obj.name,objectType,obj.arguments),onGenerateSQL:onGenerateSQL?sqlType=>onGenerateSQL(schema,obj.name,objectType,sqlType):void 0,objectType},objectKey)})})})]})}function ObjectItem({objectName,searchQuery,isSelected,onClick,onDoubleClick,onViewSchema,onGenerateSQL,objectType}){let isFunction=objectType===`function`||objectType===`procedure`,isTableLike=objectType===`table`||objectType===`view`||objectType===`materialized_view`,isTable=objectType===`table`,[contextMenu,setContextMenu]=(0,import_react.useState)(null),[submenuOpen,setSubmenuOpen]=(0,import_react.useState)(!1),closeTimeoutRef=(0,import_react.useRef)(null),handleSubmenuEnter=()=>{closeTimeoutRef.current&&=(clearTimeout(closeTimeoutRef.current),null),setSubmenuOpen(!0)},handleSubmenuLeave=()=>{closeTimeoutRef.current=window.setTimeout(()=>{setSubmenuOpen(!1)},100)},closeMenu=()=>{setSubmenuOpen(!1),setContextMenu(null)};return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`div`,{className:cn(`group flex items-center gap-1 w-full px-2 py-0.5 text-[13px] text-gray-700 rounded cursor-pointer`,isSelected?`bg-blue-100 text-blue-900`:`hover:bg-gray-50`),onClick,onDoubleClick,onContextMenu:e=>{e.preventDefault(),setContextMenu({x:e.clientX,y:e.clientY})},children:[(0,import_jsx_runtime.jsx)(`span`,{className:`flex-1 truncate`,children:highlightMatch(objectName,searchQuery)}),(0,import_jsx_runtime.jsx)(`button`,{type:`button`,className:`opacity-0 group-hover:opacity-100 p-0.5 rounded hover:bg-accent text-gray-500 hover:text-gray-700`,onClick:e=>{e.stopPropagation(),onViewSchema()},title:isFunction?`View definition`:`View schema`,children:(0,import_jsx_runtime.jsx)(Info$1,{className:`size-3.5`})})]}),contextMenu&&(0,import_jsx_runtime.jsxs)(`div`,{className:`fixed z-50`,style:{left:contextMenu.x,top:contextMenu.y},children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`min-w-32 rounded-lg border bg-popover shadow-lg p-1`,onMouseLeave:()=>{submenuOpen||closeMenu()},children:[(0,import_jsx_runtime.jsx)(`button`,{className:`flex w-full min-h-7 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-sm outline-none hover:bg-accent hover:text-accent-foreground`,onClick:()=>{onDoubleClick(),closeMenu()},children:isFunction?`Edit Definition`:`Select Rows`}),(0,import_jsx_runtime.jsx)(`button`,{className:`flex w-full min-h-7 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-sm outline-none hover:bg-accent hover:text-accent-foreground`,onClick:()=>{onViewSchema(),closeMenu()},children:isFunction?`View Definition`:`View Schema`}),isTableLike&&onGenerateSQL&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`div`,{className:`mx-2 my-1 h-px bg-border`}),(0,import_jsx_runtime.jsxs)(`div`,{className:`relative`,onMouseEnter:handleSubmenuEnter,onMouseLeave:handleSubmenuLeave,children:[(0,import_jsx_runtime.jsxs)(`button`,{className:cn(`flex w-full min-h-7 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-sm outline-none hover:bg-accent hover:text-accent-foreground`,submenuOpen&&`bg-accent text-accent-foreground`),children:[(0,import_jsx_runtime.jsx)(`span`,{className:`whitespace-nowrap`,children:`Quick SQL`}),(0,import_jsx_runtime.jsx)(ChevronRight,{className:`ml-auto size-4 opacity-80`})]}),submenuOpen&&(0,import_jsx_runtime.jsxs)(`div`,{className:`absolute left-full top-0 ml-0 min-w-24 rounded-lg border bg-popover shadow-lg p-1`,onMouseEnter:handleSubmenuEnter,onMouseLeave:handleSubmenuLeave,children:[(0,import_jsx_runtime.jsx)(`button`,{className:`flex w-full min-h-7 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-sm outline-none hover:bg-accent hover:text-accent-foreground`,onClick:()=>{onGenerateSQL(`select`),closeMenu()},children:`SELECT`}),isTable&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`button`,{className:`flex w-full min-h-7 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-sm outline-none hover:bg-accent hover:text-accent-foreground`,onClick:()=>{onGenerateSQL(`insert`),closeMenu()},children:`INSERT`}),(0,import_jsx_runtime.jsx)(`button`,{className:`flex w-full min-h-7 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-sm outline-none hover:bg-accent hover:text-accent-foreground`,onClick:()=>{onGenerateSQL(`update`),closeMenu()},children:`UPDATE`}),(0,import_jsx_runtime.jsx)(`button`,{className:`flex w-full min-h-7 cursor-default select-none items-center gap-2 rounded-sm px-2 py-1 text-sm outline-none hover:bg-accent hover:text-accent-foreground`,onClick:()=>{onGenerateSQL(`delete`),closeMenu()},children:`DELETE`})]})]})]})]})]}),(0,import_jsx_runtime.jsx)(`div`,{className:`fixed inset-0 -z-10`,onClick:closeMenu,onContextMenu:e=>{e.preventDefault(),closeMenu()}})]})]})}function ObjectTree(props){let{tables,views,materializedViews,functions,procedures,connectionId:_connectionId,...shared}=props;return(0,import_jsx_runtime.jsx)(ScrollArea,{className:`flex-1`,children:(0,import_jsx_runtime.jsxs)(`div`,{className:`py-1 px-2`,children:[(0,import_jsx_runtime.jsx)(ObjectSection,{title:`Tables`,icon:Grid3x3,objects:tables,objectType:`table`,...shared}),(0,import_jsx_runtime.jsx)(ObjectSection,{title:`Views`,icon:Eye,objects:views,objectType:`view`,...shared}),(0,import_jsx_runtime.jsx)(ObjectSection,{title:`Materialized`,icon:Layers,objects:materializedViews,objectType:`materialized_view`,...shared}),(0,import_jsx_runtime.jsx)(ObjectSection,{title:`Functions`,icon:SquareFunction,objects:functions,objectType:`function`,...shared}),(0,import_jsx_runtime.jsx)(ObjectSection,{title:`Procedures`,icon:Code,objects:procedures,objectType:`procedure`,...shared})]})})}function ObjectSidebar({connectionId,selectedObject,onObjectSelect,onObjectDoubleClick,onViewSchema,onGenerateSQL,selectedSchema,onSchemaChange,onNewQuery,schemas,tables,isSchemasLoading,isTablesLoading,schemasError,tablesError}){let[searchQuery,setSearchQuery]=(0,import_react.useState)(``),queryClient$2=useQueryClient(),{mutate:refreshSchemaCache}=useRefreshSchemaCache(),{data:materializedViewsData=[],isLoading:mvLoading,error:mvError,refetch:refetchMaterializedViews}=useMaterializedViews(connectionId,selectedSchema||``),{data:functionsData=[],isLoading:functionsLoading,error:functionsError,refetch:refetchFunctions}=useFunctions(connectionId,selectedSchema||``),{data:proceduresData=[],isLoading:proceduresLoading,error:proceduresError,refetch:refetchProcedures}=useProcedures(connectionId,selectedSchema||``),tablesList=tables.filter(t$1=>t$1.type===`table`),viewsList=tables.filter(t$1=>t$1.type===`view`),isLoading=isSchemasLoading||isTablesLoading||mvLoading||functionsLoading||proceduresLoading,hasError=schemasError||tablesError||mvError||functionsError||proceduresError,errorMessage=schemasError?.message||tablesError?.message||mvError?.message||functionsError?.message||proceduresError?.message;return(0,import_jsx_runtime.jsxs)(`div`,{className:`h-full flex flex-col`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`px-2 pt-2 space-y-2`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex gap-1 items-center`,children:[(0,import_jsx_runtime.jsx)(SchemaSelector,{value:selectedSchema||``,onChange:onSchemaChange,schemas,disabled:isSchemasLoading}),(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{render:(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`icon-sm`,className:`shrink-0`,onClick:()=>{queryClient$2.invalidateQueries({queryKey:queryKeys.schemas(connectionId)}),selectedSchema&&queryClient$2.invalidateQueries({queryKey:queryKeys.tables(connectionId,selectedSchema)}),refetchMaterializedViews(),refetchFunctions(),refetchProcedures(),queryClient$2.invalidateQueries({queryKey:[...connectionKeys.all,`health`,connectionId]}),refreshSchemaCache({connectionId,schemas:selectedSchema?[selectedSchema]:[]})},children:(0,import_jsx_runtime.jsx)(RefreshCw,{className:`h-2 w-2`})})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{side:`bottom`,children:`Refresh`})]}),onNewQuery&&(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{render:(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`icon-sm`,className:`shrink-0 font-mono font-semibold`,onClick:()=>onNewQuery(),children:`SQL`})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{side:`bottom`,children:`New Query`})]})]}),(0,import_jsx_runtime.jsx)(SearchInput,{value:searchQuery,onChange:e=>setSearchQuery(e.target.value),onClear:()=>setSearchQuery(``),size:`sm`})]}),hasError?(0,import_jsx_runtime.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center text-red-500 text-sm px-4 text-center gap-2`,children:[(0,import_jsx_runtime.jsx)(`div`,{children:`Failed to load schema`}),errorMessage&&(0,import_jsx_runtime.jsx)(`div`,{className:`text-xs text-gray-600 max-w-full break-words`,children:errorMessage}),(0,import_jsx_runtime.jsx)(`div`,{className:`text-xs text-gray-500`,children:`Use the refresh button above to retry`})]}):isLoading?(0,import_jsx_runtime.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-gray-500 text-sm`,children:`Loading...`}):(0,import_jsx_runtime.jsx)(ObjectTree,{tables:tablesList,views:viewsList,materializedViews:materializedViewsData,functions:functionsData,procedures:proceduresData,searchQuery,selectedObject,onObjectSelect,onObjectDoubleClick,onViewSchema,onGenerateSQL,schema:selectedSchema||``,connectionId})]})}function getSchemaTabIcon(objectType){switch(objectType){case`view`:return Eye;case`materialized_view`:return Layers;case`function`:return SquareFunction;case`procedure`:return Code;case`table`:default:return Grid3x3}}function EditorTabs({tabs,activeTabId,onTabSelect,onTabClose,onCloseOthers,onCloseToRight,onCloseAll,rightPanelOpen,onRightPanelToggle}){let scrollContainerRef=(0,import_react.useRef)(null),[contextMenu,setContextMenu]=(0,import_react.useState)(null),handleWheel=(0,import_react.useCallback)(e=>{scrollContainerRef.current&&(e.preventDefault(),scrollContainerRef.current.scrollLeft+=e.deltaY)},[]),handleContextMenu=(0,import_react.useCallback)((e,tabId)=>{e.preventDefault(),setContextMenu({tabId,x:e.clientX,y:e.clientY})},[]),closeContextMenu=(0,import_react.useCallback)(()=>{setContextMenu(null)},[]),isLastTab=(contextMenu?tabs.findIndex(t$1=>t$1.tab.id===contextMenu.tabId):-1)===tabs.length-1;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`div`,{ref:scrollContainerRef,className:`flex items-center flex-1 min-w-0 overflow-x-auto [&::-webkit-scrollbar]:h-1 [&::-webkit-scrollbar]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-transparent hover:[&::-webkit-scrollbar-thumb]:bg-gray-300`,onWheel:handleWheel,children:tabs.map(({tab:tab$1})=>(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{render:(0,import_jsx_runtime.jsxs)(`div`,{className:cn(`group flex items-center gap-1 h-8 px-3 border-r border-gray-200 cursor-pointer text-sm shrink min-w-0`,activeTabId===tab$1.id?`bg-white text-gray-900`:`text-gray-600 hover:bg-gray-100`),style:{minWidth:`80px`,maxWidth:`160px`},onClick:()=>onTabSelect(tab$1.id),onContextMenu:e=>handleContextMenu(e,tab$1.id),children:[tab$1.type===`schema`?(()=>(0,import_jsx_runtime.jsx)(getSchemaTabIcon(tab$1.objectType),{className:`size-3.5 shrink-0 text-gray-500`}))():(0,import_jsx_runtime.jsx)(FileCode,{className:`size-3.5 shrink-0 text-gray-500`}),(0,import_jsx_runtime.jsx)(`span`,{className:`truncate flex-1`,children:tab$1.name}),(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,className:`opacity-0 group-hover:opacity-100 shrink-0 !size-4 !min-h-0 !p-0 !rounded-sm`,onClick:e=>{e.stopPropagation(),onTabClose(tab$1.id)},children:(0,import_jsx_runtime.jsx)(X,{className:`size-3`})})]})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{side:`bottom`,children:tab$1.name})]},tab$1.id))}),onRightPanelToggle&&(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{render:(0,import_jsx_runtime.jsx)(Button,{variant:rightPanelOpen?`secondary`:`ghost`,size:`icon-sm`,className:`shrink-0 mx-1`,onClick:onRightPanelToggle,children:(0,import_jsx_runtime.jsx)(PanelRight,{className:`size-4`})})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{side:`bottom`,children:rightPanelOpen?`Hide panel`:`Show panel`})]}),(0,import_jsx_runtime.jsx)(Menu,{open:contextMenu!==null,onOpenChange:open=>!open&&closeContextMenu(),children:(0,import_jsx_runtime.jsxs)(MenuPopup,{className:`whitespace-nowrap`,style:{position:`fixed`,left:contextMenu?.x??0,top:contextMenu?.y??0},side:`bottom`,align:`start`,sideOffset:0,children:[(0,import_jsx_runtime.jsx)(MenuItem,{onClick:()=>{contextMenu&&onTabClose(contextMenu.tabId),closeContextMenu()},children:`Close`}),(0,import_jsx_runtime.jsx)(MenuItem,{onClick:()=>{contextMenu&&onCloseOthers(contextMenu.tabId),closeContextMenu()},disabled:tabs.length<=1,children:`Close Others`}),(0,import_jsx_runtime.jsx)(MenuItem,{onClick:()=>{contextMenu&&onCloseToRight(contextMenu.tabId),closeContextMenu()},disabled:isLastTab,children:`Close to the Right`}),(0,import_jsx_runtime.jsx)(MenuSeparator,{}),(0,import_jsx_runtime.jsx)(MenuItem,{onClick:()=>{onCloseAll(),closeContextMenu()},children:`Close All`})]})})]})}var rangeFrom=[],rangeTo=[];(()=>{let numbers=`lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o`.split(`,`).map(s$1=>s$1?parseInt(s$1,36):1);for(let i$3=0,n=0;i$3<numbers.length;i$3++)(i$3%2?rangeTo:rangeFrom).push(n+=numbers[i$3])})();function isExtendingChar(code$2){if(code$2<768)return!1;for(let from=0,to=rangeFrom.length;;){let mid=from+to>>1;if(code$2<rangeFrom[mid])to=mid;else if(code$2>=rangeTo[mid])from=mid+1;else return!0;if(from==to)return!1}}function isRegionalIndicator(code$2){return code$2>=127462&&code$2<=127487}var ZWJ=8205;function findClusterBreak$1(str,pos,forward=!0,includeExtending=!0){return(forward?nextClusterBreak:prevClusterBreak)(str,pos,includeExtending)}function nextClusterBreak(str,pos,includeExtending){if(pos==str.length)return pos;pos&&surrogateLow$1(str.charCodeAt(pos))&&surrogateHigh$1(str.charCodeAt(pos-1))&&pos--;let prev=codePointAt$1(str,pos);for(pos+=codePointSize$1(prev);pos<str.length;){let next=codePointAt$1(str,pos);if(prev==ZWJ||next==ZWJ||includeExtending&&isExtendingChar(next))pos+=codePointSize$1(next),prev=next;else if(isRegionalIndicator(next)){let countBefore=0,i$3=pos-2;for(;i$3>=0&&isRegionalIndicator(codePointAt$1(str,i$3));)countBefore++,i$3-=2;if(countBefore%2==0)break;pos+=2}else break}return pos}function prevClusterBreak(str,pos,includeExtending){for(;pos>0;){let found=nextClusterBreak(str,pos-2,includeExtending);if(found<pos)return found;pos--}return 0}function codePointAt$1(str,pos){let code0=str.charCodeAt(pos);if(!surrogateHigh$1(code0)||pos+1==str.length)return code0;let code1=str.charCodeAt(pos+1);return surrogateLow$1(code1)?(code0-55296<<10)+(code1-56320)+65536:code0}function surrogateLow$1(ch){return ch>=56320&&ch<57344}function surrogateHigh$1(ch){return ch>=55296&&ch<56320}function codePointSize$1(code$2){return code$2<65536?1:2}var Text=class Text{lineAt(pos){if(pos<0||pos>this.length)throw RangeError(`Invalid position ${pos} in document of length ${this.length}`);return this.lineInner(pos,!1,1,0)}line(n){if(n<1||n>this.lines)throw RangeError(`Invalid line number ${n} in ${this.lines}-line document`);return this.lineInner(n,!0,1,0)}replace(from,to,text$5){[from,to]=clip(this,from,to);let parts=[];return this.decompose(0,from,parts,2),text$5.length&&text$5.decompose(0,text$5.length,parts,3),this.decompose(to,this.length,parts,1),TextNode.from(parts,this.length-(to-from)+text$5.length)}append(other){return this.replace(this.length,this.length,other)}slice(from,to=this.length){[from,to]=clip(this,from,to);let parts=[];return this.decompose(from,to,parts,0),TextNode.from(parts,to-from)}eq(other){if(other==this)return!0;if(other.length!=this.length||other.lines!=this.lines)return!1;let start=this.scanIdentical(other,1),end=this.length-this.scanIdentical(other,-1),a$1=new RawTextCursor(this),b$2=new RawTextCursor(other);for(let skip=start,pos=start;;){if(a$1.next(skip),b$2.next(skip),skip=0,a$1.lineBreak!=b$2.lineBreak||a$1.done!=b$2.done||a$1.value!=b$2.value)return!1;if(pos+=a$1.value.length,a$1.done||pos>=end)return!0}}iter(dir=1){return new RawTextCursor(this,dir)}iterRange(from,to=this.length){return new PartialTextCursor(this,from,to)}iterLines(from,to){let inner;if(from==null)inner=this.iter();else{to??=this.lines+1;let start=this.line(from).from;inner=this.iterRange(start,Math.max(start,to==this.lines+1?this.length:to<=1?0:this.line(to-1).to))}return new LineCursor(inner)}toString(){return this.sliceString(0)}toJSON(){let lines=[];return this.flatten(lines),lines}constructor(){}static of(text$5){if(text$5.length==0)throw RangeError(`A document must have at least one line`);return text$5.length==1&&!text$5[0]?Text.empty:text$5.length<=32?new TextLeaf(text$5):TextNode.from(TextLeaf.split(text$5,[]))}},TextLeaf=class TextLeaf extends Text{constructor(text$5,length=textLength(text$5)){super(),this.text=text$5,this.length=length}get lines(){return this.text.length}get children(){return null}lineInner(target,isLine,line,offset$3){for(let i$3=0;;i$3++){let string$3=this.text[i$3],end=offset$3+string$3.length;if((isLine?line:end)>=target)return new Line(offset$3,end,line,string$3);offset$3=end+1,line++}}decompose(from,to,target,open){let text$5=from<=0&&to>=this.length?this:new TextLeaf(sliceText(this.text,from,to),Math.min(to,this.length)-Math.max(0,from));if(open&1){let prev=target.pop(),joined=appendText(text$5.text,prev.text.slice(),0,text$5.length);if(joined.length<=32)target.push(new TextLeaf(joined,prev.length+text$5.length));else{let mid=joined.length>>1;target.push(new TextLeaf(joined.slice(0,mid)),new TextLeaf(joined.slice(mid)))}}else target.push(text$5)}replace(from,to,text$5){if(!(text$5 instanceof TextLeaf))return super.replace(from,to,text$5);[from,to]=clip(this,from,to);let lines=appendText(this.text,appendText(text$5.text,sliceText(this.text,0,from)),to),newLen=this.length+text$5.length-(to-from);return lines.length<=32?new TextLeaf(lines,newLen):TextNode.from(TextLeaf.split(lines,[]),newLen)}sliceString(from,to=this.length,lineSep=`
25
25
  `){[from,to]=clip(this,from,to);let result=``;for(let pos=0,i$3=0;pos<=to&&i$3<this.text.length;i$3++){let line=this.text[i$3],end=pos+line.length;pos>from&&i$3&&(result+=lineSep),from<end&&to>pos&&(result+=line.slice(Math.max(0,from-pos),to-pos)),pos=end+1}return result}flatten(target){for(let line of this.text)target.push(line)}scanIdentical(){return 0}static split(text$5,target){let part=[],len=-1;for(let line of text$5)part.push(line),len+=line.length+1,part.length==32&&(target.push(new TextLeaf(part,len)),part=[],len=-1);return len>-1&&target.push(new TextLeaf(part,len)),target}},TextNode=class TextNode extends Text{constructor(children,length){super(),this.children=children,this.length=length,this.lines=0;for(let child of children)this.lines+=child.lines}lineInner(target,isLine,line,offset$3){for(let i$3=0;;i$3++){let child=this.children[i$3],end=offset$3+child.length,endLine=line+child.lines-1;if((isLine?endLine:end)>=target)return child.lineInner(target,isLine,line,offset$3);offset$3=end+1,line=endLine+1}}decompose(from,to,target,open){for(let i$3=0,pos=0;pos<=to&&i$3<this.children.length;i$3++){let child=this.children[i$3],end=pos+child.length;if(from<=end&&to>=pos){let childOpen=open&((pos<=from?1:0)|(end>=to?2:0));pos>=from&&end<=to&&!childOpen?target.push(child):child.decompose(from-pos,to-pos,target,childOpen)}pos=end+1}}replace(from,to,text$5){if([from,to]=clip(this,from,to),text$5.lines<this.lines)for(let i$3=0,pos=0;i$3<this.children.length;i$3++){let child=this.children[i$3],end=pos+child.length;if(from>=pos&&to<=end){let updated=child.replace(from-pos,to-pos,text$5),totalLines=this.lines-child.lines+updated.lines;if(updated.lines<totalLines>>4&&updated.lines>totalLines>>6){let copy=this.children.slice();return copy[i$3]=updated,new TextNode(copy,this.length-(to-from)+text$5.length)}return super.replace(pos,end,updated)}pos=end+1}return super.replace(from,to,text$5)}sliceString(from,to=this.length,lineSep=`
26
26
  `){[from,to]=clip(this,from,to);let result=``;for(let i$3=0,pos=0;i$3<this.children.length&&pos<=to;i$3++){let child=this.children[i$3],end=pos+child.length;pos>from&&i$3&&(result+=lineSep),from<end&&to>pos&&(result+=child.sliceString(from-pos,to-pos,lineSep)),pos=end+1}return result}flatten(target){for(let child of this.children)child.flatten(target)}scanIdentical(other,dir){if(!(other instanceof TextNode))return 0;let length=0,[iA,iB,eA,eB]=dir>0?[0,0,this.children.length,other.children.length]:[this.children.length-1,other.children.length-1,-1,-1];for(;;iA+=dir,iB+=dir){if(iA==eA||iB==eB)return length;let chA=this.children[iA],chB=other.children[iB];if(chA!=chB)return length+chA.scanIdentical(chB,dir);length+=chA.length+1}}static from(children,length=children.reduce((l$2,ch)=>l$2+ch.length+1,-1)){let lines=0;for(let ch of children)lines+=ch.lines;if(lines<32){let flat=[];for(let ch of children)ch.flatten(flat);return new TextLeaf(flat,length)}let chunk=Math.max(32,lines>>5),maxChunk=chunk<<1,minChunk=chunk>>1,chunked=[],currentLines=0,currentLen=-1,currentChunk=[];function add$1(child){let last;if(child.lines>maxChunk&&child instanceof TextNode)for(let node$1 of child.children)add$1(node$1);else child.lines>minChunk&&(currentLines>minChunk||!currentLines)?(flush(),chunked.push(child)):child instanceof TextLeaf&&currentLines&&(last=currentChunk[currentChunk.length-1])instanceof TextLeaf&&child.lines+last.lines<=32?(currentLines+=child.lines,currentLen+=child.length+1,currentChunk[currentChunk.length-1]=new TextLeaf(last.text.concat(child.text),last.length+1+child.length)):(currentLines+child.lines>chunk&&flush(),currentLines+=child.lines,currentLen+=child.length+1,currentChunk.push(child))}function flush(){currentLines!=0&&(chunked.push(currentChunk.length==1?currentChunk[0]:TextNode.from(currentChunk,currentLen)),currentLen=-1,currentLines=currentChunk.length=0)}for(let child of children)add$1(child);return flush(),chunked.length==1?chunked[0]:new TextNode(chunked,length)}};Text.empty=new TextLeaf([``],0);function textLength(text$5){let length=-1;for(let line of text$5)length+=line.length+1;return length}function appendText(text$5,target,from=0,to=1e9){for(let pos=0,i$3=0,first=!0;i$3<text$5.length&&pos<=to;i$3++){let line=text$5[i$3],end=pos+line.length;end>=from&&(end>to&&(line=line.slice(0,to-pos)),pos<from&&(line=line.slice(from-pos)),first?(target[target.length-1]+=line,first=!1):target.push(line)),pos=end+1}return target}function sliceText(text$5,from,to){return appendText(text$5,[``],from,to)}var RawTextCursor=class{constructor(text$5,dir=1){this.dir=dir,this.done=!1,this.lineBreak=!1,this.value=``,this.nodes=[text$5],this.offsets=[dir>0?1:(text$5 instanceof TextLeaf?text$5.text.length:text$5.children.length)<<1]}nextInner(skip,dir){for(this.done=this.lineBreak=!1;;){let last=this.nodes.length-1,top$1=this.nodes[last],offsetValue=this.offsets[last],offset$3=offsetValue>>1,size$3=top$1 instanceof TextLeaf?top$1.text.length:top$1.children.length;if(offset$3==(dir>0?size$3:0)){if(last==0)return this.done=!0,this.value=``,this;dir>0&&this.offsets[last-1]++,this.nodes.pop(),this.offsets.pop()}else if((offsetValue&1)==(dir>0?0:1)){if(this.offsets[last]+=dir,skip==0)return this.lineBreak=!0,this.value=`
27
27
  `,this;skip--}else if(top$1 instanceof TextLeaf){let next=top$1.text[offset$3+(dir<0?-1:0)];if(this.offsets[last]+=dir,next.length>Math.max(0,skip))return this.value=skip==0?next:dir>0?next.slice(skip):next.slice(0,next.length-skip),this;skip-=next.length}else{let next=top$1.children[offset$3+(dir<0?-1:0)];skip>next.length?(skip-=next.length,this.offsets[last]+=dir):(dir<0&&this.offsets[last]--,this.nodes.push(next),this.offsets.push(dir>0?1:(next instanceof TextLeaf?next.text.length:next.children.length)<<1))}}}next(skip=0){return skip<0&&(this.nextInner(-skip,-this.dir),skip=this.value.length),this.nextInner(skip,this.dir)}},PartialTextCursor=class{constructor(text$5,start,end){this.value=``,this.done=!1,this.cursor=new RawTextCursor(text$5,start>end?-1:1),this.pos=start>end?text$5.length:0,this.from=Math.min(start,end),this.to=Math.max(start,end)}nextInner(skip,dir){if(dir<0?this.pos<=this.from:this.pos>=this.to)return this.value=``,this.done=!0,this;skip+=Math.max(0,dir<0?this.pos-this.to:this.from-this.pos);let limit=dir<0?this.pos-this.from:this.to-this.pos;skip>limit&&(skip=limit),limit-=skip;let{value}=this.cursor.next(skip);return this.pos+=(value.length+skip)*dir,this.value=value.length<=limit?value:dir<0?value.slice(value.length-limit):value.slice(0,limit),this.done=!this.value,this}next(skip=0){return skip<0?skip=Math.max(skip,this.from-this.pos):skip>0&&(skip=Math.min(skip,this.to-this.pos)),this.nextInner(skip,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=``}},LineCursor=class{constructor(inner){this.inner=inner,this.afterBreak=!0,this.value=``,this.done=!1}next(skip=0){let{done,lineBreak,value}=this.inner.next(skip);return done&&this.afterBreak?(this.value=``,this.afterBreak=!1):done?(this.done=!0,this.value=``):lineBreak?this.afterBreak?this.value=``:(this.afterBreak=!0,this.next()):(this.value=value,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<`u`&&(Text.prototype[Symbol.iterator]=function(){return this.iter()},RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this});var Line=class{constructor(from,to,number$2,text$5){this.from=from,this.to=to,this.number=number$2,this.text=text$5}get length(){return this.to-this.from}};function clip(text$5,from,to){return from=Math.max(0,Math.min(text$5.length,from)),[from,Math.max(from,Math.min(text$5.length,to))]}function findClusterBreak(str,pos,forward=!0,includeExtending=!0){return findClusterBreak$1(str,pos,forward,includeExtending)}function surrogateLow(ch){return ch>=56320&&ch<57344}function surrogateHigh(ch){return ch>=55296&&ch<56320}function codePointAt(str,pos){let code0=str.charCodeAt(pos);if(!surrogateHigh(code0)||pos+1==str.length)return code0;let code1=str.charCodeAt(pos+1);return surrogateLow(code1)?(code0-55296<<10)+(code1-56320)+65536:code0}function fromCodePoint(code$2){return code$2<=65535?String.fromCharCode(code$2):(code$2-=65536,String.fromCharCode((code$2>>10)+55296,(code$2&1023)+56320))}function codePointSize(code$2){return code$2<65536?1:2}var DefaultSplit=/\r\n?|\n/,MapMode=(function(MapMode$1){return MapMode$1[MapMode$1.Simple=0]=`Simple`,MapMode$1[MapMode$1.TrackDel=1]=`TrackDel`,MapMode$1[MapMode$1.TrackBefore=2]=`TrackBefore`,MapMode$1[MapMode$1.TrackAfter=3]=`TrackAfter`,MapMode$1})(MapMode||={}),ChangeDesc=class ChangeDesc{constructor(sections){this.sections=sections}get length(){let result=0;for(let i$3=0;i$3<this.sections.length;i$3+=2)result+=this.sections[i$3];return result}get newLength(){let result=0;for(let i$3=0;i$3<this.sections.length;i$3+=2){let ins=this.sections[i$3+1];result+=ins<0?this.sections[i$3]:ins}return result}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(f$2){for(let i$3=0,posA=0,posB=0;i$3<this.sections.length;){let len=this.sections[i$3++],ins=this.sections[i$3++];ins<0?(f$2(posA,posB,len),posB+=len):posB+=ins,posA+=len}}iterChangedRanges(f$2,individual=!1){iterChanges(this,f$2,individual)}get invertedDesc(){let sections=[];for(let i$3=0;i$3<this.sections.length;){let len=this.sections[i$3++],ins=this.sections[i$3++];ins<0?sections.push(len,ins):sections.push(ins,len)}return new ChangeDesc(sections)}composeDesc(other){return this.empty?other:other.empty?this:composeSets(this,other)}mapDesc(other,before=!1){return other.empty?this:mapSet(this,other,before)}mapPos(pos,assoc=-1,mode=MapMode.Simple){let posA=0,posB=0;for(let i$3=0;i$3<this.sections.length;){let len=this.sections[i$3++],ins=this.sections[i$3++],endA=posA+len;if(ins<0){if(endA>pos)return posB+(pos-posA);posB+=len}else{if(mode!=MapMode.Simple&&endA>=pos&&(mode==MapMode.TrackDel&&posA<pos&&endA>pos||mode==MapMode.TrackBefore&&posA<pos||mode==MapMode.TrackAfter&&endA>pos))return null;if(endA>pos||endA==pos&&assoc<0&&!len)return pos==posA||assoc<0?posB:posB+ins;posB+=ins}posA=endA}if(pos>posA)throw RangeError(`Position ${pos} is out of range for changeset of length ${posA}`);return posB}touchesRange(from,to=from){for(let i$3=0,pos=0;i$3<this.sections.length&&pos<=to;){let len=this.sections[i$3++],ins=this.sections[i$3++],end=pos+len;if(ins>=0&&pos<=to&&end>=from)return pos<from&&end>to?`cover`:!0;pos=end}return!1}toString(){let result=``;for(let i$3=0;i$3<this.sections.length;){let len=this.sections[i$3++],ins=this.sections[i$3++];result+=(result?` `:``)+len+(ins>=0?`:`+ins:``)}return result}toJSON(){return this.sections}static fromJSON(json$1){if(!Array.isArray(json$1)||json$1.length%2||json$1.some(a$1=>typeof a$1!=`number`))throw RangeError(`Invalid JSON representation of ChangeDesc`);return new ChangeDesc(json$1)}static create(sections){return new ChangeDesc(sections)}},ChangeSet=class ChangeSet extends ChangeDesc{constructor(sections,inserted){super(sections),this.inserted=inserted}apply(doc$1){if(this.length!=doc$1.length)throw RangeError(`Applying change set to a document with the wrong length`);return iterChanges(this,(fromA,toA,fromB,_toB,text$5)=>doc$1=doc$1.replace(fromB,fromB+(toA-fromA),text$5),!1),doc$1}mapDesc(other,before=!1){return mapSet(this,other,before,!0)}invert(doc$1){let sections=this.sections.slice(),inserted=[];for(let i$3=0,pos=0;i$3<sections.length;i$3+=2){let len=sections[i$3],ins=sections[i$3+1];if(ins>=0){sections[i$3]=ins,sections[i$3+1]=len;let index$4=i$3>>1;for(;inserted.length<index$4;)inserted.push(Text.empty);inserted.push(len?doc$1.slice(pos,pos+len):Text.empty)}pos+=len}return new ChangeSet(sections,inserted)}compose(other){return this.empty?other:other.empty?this:composeSets(this,other,!0)}map(other,before=!1){return other.empty?this:mapSet(this,other,before,!0)}iterChanges(f$2,individual=!1){iterChanges(this,f$2,individual)}get desc(){return ChangeDesc.create(this.sections)}filter(ranges){let resultSections=[],resultInserted=[],filteredSections=[],iter=new SectionIter(this);done:for(let i$3=0,pos=0;;){let next=i$3==ranges.length?1e9:ranges[i$3++];for(;pos<next||pos==next&&iter.len==0;){if(iter.done)break done;let len=Math.min(iter.len,next-pos);addSection(filteredSections,len,-1);let ins=iter.ins==-1?-1:iter.off==0?iter.ins:0;addSection(resultSections,len,ins),ins>0&&addInsert(resultInserted,resultSections,iter.text),iter.forward(len),pos+=len}let end=ranges[i$3++];for(;pos<end;){if(iter.done)break done;let len=Math.min(iter.len,end-pos);addSection(resultSections,len,-1),addSection(filteredSections,len,iter.ins==-1?-1:iter.off==0?iter.ins:0),iter.forward(len),pos+=len}}return{changes:new ChangeSet(resultSections,resultInserted),filtered:ChangeDesc.create(filteredSections)}}toJSON(){let parts=[];for(let i$3=0;i$3<this.sections.length;i$3+=2){let len=this.sections[i$3],ins=this.sections[i$3+1];ins<0?parts.push(len):ins==0?parts.push([len]):parts.push([len].concat(this.inserted[i$3>>1].toJSON()))}return parts}static of(changes,length,lineSep){let sections=[],inserted=[],pos=0,total=null;function flush(force=!1){if(!force&&!sections.length)return;pos<length&&addSection(sections,length-pos,-1);let set=new ChangeSet(sections,inserted);total=total?total.compose(set.map(total)):set,sections=[],inserted=[],pos=0}function process$1(spec){if(Array.isArray(spec))for(let sub of spec)process$1(sub);else if(spec instanceof ChangeSet){if(spec.length!=length)throw RangeError(`Mismatched change set length (got ${spec.length}, expected ${length})`);flush(),total=total?total.compose(spec.map(total)):spec}else{let{from,to=from,insert:insert$1}=spec;if(from>to||from<0||to>length)throw RangeError(`Invalid change range ${from} to ${to} (in doc of length ${length})`);let insText=insert$1?typeof insert$1==`string`?Text.of(insert$1.split(lineSep||DefaultSplit)):insert$1:Text.empty,insLen=insText.length;if(from==to&&insLen==0)return;from<pos&&flush(),from>pos&&addSection(sections,from-pos,-1),addSection(sections,to-from,insLen),addInsert(inserted,sections,insText),pos=to}}return process$1(changes),flush(!total),total}static empty(length){return new ChangeSet(length?[length,-1]:[],[])}static fromJSON(json$1){if(!Array.isArray(json$1))throw RangeError(`Invalid JSON representation of ChangeSet`);let sections=[],inserted=[];for(let i$3=0;i$3<json$1.length;i$3++){let part=json$1[i$3];if(typeof part==`number`)sections.push(part,-1);else if(!Array.isArray(part)||typeof part[0]!=`number`||part.some((e,i$4)=>i$4&&typeof e!=`string`))throw RangeError(`Invalid JSON representation of ChangeSet`);else if(part.length==1)sections.push(part[0],0);else{for(;inserted.length<i$3;)inserted.push(Text.empty);inserted[i$3]=Text.of(part.slice(1)),sections.push(part[0],inserted[i$3].length)}}return new ChangeSet(sections,inserted)}static createSet(sections,inserted){return new ChangeSet(sections,inserted)}};function addSection(sections,len,ins,forceJoin=!1){if(len==0&&ins<=0)return;let last=sections.length-2;last>=0&&ins<=0&&ins==sections[last+1]?sections[last]+=len:last>=0&&len==0&&sections[last]==0?sections[last+1]+=ins:forceJoin?(sections[last]+=len,sections[last+1]+=ins):sections.push(len,ins)}function addInsert(values,sections,value){if(value.length==0)return;let index$4=sections.length-2>>1;if(index$4<values.length)values[values.length-1]=values[values.length-1].append(value);else{for(;values.length<index$4;)values.push(Text.empty);values.push(value)}}function iterChanges(desc,f$2,individual){let inserted=desc.inserted;for(let posA=0,posB=0,i$3=0;i$3<desc.sections.length;){let len=desc.sections[i$3++],ins=desc.sections[i$3++];if(ins<0)posA+=len,posB+=len;else{let endA=posA,endB=posB,text$5=Text.empty;for(;endA+=len,endB+=ins,ins&&inserted&&(text$5=text$5.append(inserted[i$3-2>>1])),!(individual||i$3==desc.sections.length||desc.sections[i$3+1]<0);)len=desc.sections[i$3++],ins=desc.sections[i$3++];f$2(posA,endA,posB,endB,text$5),posA=endA,posB=endB}}}function mapSet(setA,setB,before,mkSet=!1){let sections=[],insert$1=mkSet?[]:null,a$1=new SectionIter(setA),b$2=new SectionIter(setB);for(let inserted=-1;;)if(a$1.done&&b$2.len||b$2.done&&a$1.len)throw Error(`Mismatched change set lengths`);else if(a$1.ins==-1&&b$2.ins==-1){let len=Math.min(a$1.len,b$2.len);addSection(sections,len,-1),a$1.forward(len),b$2.forward(len)}else if(b$2.ins>=0&&(a$1.ins<0||inserted==a$1.i||a$1.off==0&&(b$2.len<a$1.len||b$2.len==a$1.len&&!before))){let len=b$2.len;for(addSection(sections,b$2.ins,-1);len;){let piece=Math.min(a$1.len,len);a$1.ins>=0&&inserted<a$1.i&&a$1.len<=piece&&(addSection(sections,0,a$1.ins),insert$1&&addInsert(insert$1,sections,a$1.text),inserted=a$1.i),a$1.forward(piece),len-=piece}b$2.next()}else if(a$1.ins>=0){let len=0,left=a$1.len;for(;left;)if(b$2.ins==-1){let piece=Math.min(left,b$2.len);len+=piece,left-=piece,b$2.forward(piece)}else if(b$2.ins==0&&b$2.len<left)left-=b$2.len,b$2.next();else break;addSection(sections,len,inserted<a$1.i?a$1.ins:0),insert$1&&inserted<a$1.i&&addInsert(insert$1,sections,a$1.text),inserted=a$1.i,a$1.forward(a$1.len-left)}else if(a$1.done&&b$2.done)return insert$1?ChangeSet.createSet(sections,insert$1):ChangeDesc.create(sections);else throw Error(`Mismatched change set lengths`)}function composeSets(setA,setB,mkSet=!1){let sections=[],insert$1=mkSet?[]:null,a$1=new SectionIter(setA),b$2=new SectionIter(setB);for(let open=!1;;)if(a$1.done&&b$2.done)return insert$1?ChangeSet.createSet(sections,insert$1):ChangeDesc.create(sections);else if(a$1.ins==0)addSection(sections,a$1.len,0,open),a$1.next();else if(b$2.len==0&&!b$2.done)addSection(sections,0,b$2.ins,open),insert$1&&addInsert(insert$1,sections,b$2.text),b$2.next();else if(a$1.done||b$2.done)throw Error(`Mismatched change set lengths`);else{let len=Math.min(a$1.len2,b$2.len),sectionLen=sections.length;if(a$1.ins==-1){let insB=b$2.ins==-1?-1:b$2.off?0:b$2.ins;addSection(sections,len,insB,open),insert$1&&insB&&addInsert(insert$1,sections,b$2.text)}else b$2.ins==-1?(addSection(sections,a$1.off?0:a$1.len,len,open),insert$1&&addInsert(insert$1,sections,a$1.textBit(len))):(addSection(sections,a$1.off?0:a$1.len,b$2.off?0:b$2.ins,open),insert$1&&!b$2.off&&addInsert(insert$1,sections,b$2.text));open=(a$1.ins>len||b$2.ins>=0&&b$2.len>len)&&(open||sections.length>sectionLen),a$1.forward2(len),b$2.forward(len)}}var SectionIter=class{constructor(set){this.set=set,this.i=0,this.next()}next(){let{sections}=this.set;this.i<sections.length?(this.len=sections[this.i++],this.ins=sections[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted}=this.set,index$4=this.i-2>>1;return index$4>=inserted.length?Text.empty:inserted[index$4]}textBit(len){let{inserted}=this.set,index$4=this.i-2>>1;return index$4>=inserted.length&&!len?Text.empty:inserted[index$4].slice(this.off,len==null?void 0:this.off+len)}forward(len){len==this.len?this.next():(this.len-=len,this.off+=len)}forward2(len){this.ins==-1?this.forward(len):len==this.ins?this.next():(this.ins-=len,this.off+=len)}},SelectionRange=class SelectionRange{constructor(from,to,flags){this.from=from,this.to=to,this.flags=flags}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let level=this.flags&7;return level==7?null:level}get goalColumn(){let value=this.flags>>6;return value==16777215?void 0:value}map(change,assoc=-1){let from,to;return this.empty?from=to=change.mapPos(this.from,assoc):(from=change.mapPos(this.from,1),to=change.mapPos(this.to,-1)),from==this.from&&to==this.to?this:new SelectionRange(from,to,this.flags)}extend(from,to=from){if(from<=this.anchor&&to>=this.anchor)return EditorSelection.range(from,to);let head$1=Math.abs(from-this.anchor)>Math.abs(to-this.anchor)?from:to;return EditorSelection.range(this.anchor,head$1)}eq(other,includeAssoc=!1){return this.anchor==other.anchor&&this.head==other.head&&this.goalColumn==other.goalColumn&&(!includeAssoc||!this.empty||this.assoc==other.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(json$1){if(!json$1||typeof json$1.anchor!=`number`||typeof json$1.head!=`number`)throw RangeError(`Invalid JSON representation for SelectionRange`);return EditorSelection.range(json$1.anchor,json$1.head)}static create(from,to,flags){return new SelectionRange(from,to,flags)}},EditorSelection=class EditorSelection{constructor(ranges,mainIndex){this.ranges=ranges,this.mainIndex=mainIndex}map(change,assoc=-1){return change.empty?this:EditorSelection.create(this.ranges.map(r$4=>r$4.map(change,assoc)),this.mainIndex)}eq(other,includeAssoc=!1){if(this.ranges.length!=other.ranges.length||this.mainIndex!=other.mainIndex)return!1;for(let i$3=0;i$3<this.ranges.length;i$3++)if(!this.ranges[i$3].eq(other.ranges[i$3],includeAssoc))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new EditorSelection([this.main],0)}addRange(range$1,main$1=!0){return EditorSelection.create([range$1].concat(this.ranges),main$1?0:this.mainIndex+1)}replaceRange(range$1,which=this.mainIndex){let ranges=this.ranges.slice();return ranges[which]=range$1,EditorSelection.create(ranges,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(r$4=>r$4.toJSON()),main:this.mainIndex}}static fromJSON(json$1){if(!json$1||!Array.isArray(json$1.ranges)||typeof json$1.main!=`number`||json$1.main>=json$1.ranges.length)throw RangeError(`Invalid JSON representation for EditorSelection`);return new EditorSelection(json$1.ranges.map(r$4=>SelectionRange.fromJSON(r$4)),json$1.main)}static single(anchor,head$1=anchor){return new EditorSelection([EditorSelection.range(anchor,head$1)],0)}static create(ranges,mainIndex=0){if(ranges.length==0)throw RangeError(`A selection needs at least one range`);for(let pos=0,i$3=0;i$3<ranges.length;i$3++){let range$1=ranges[i$3];if(range$1.empty?range$1.from<=pos:range$1.from<pos)return EditorSelection.normalized(ranges.slice(),mainIndex);pos=range$1.to}return new EditorSelection(ranges,mainIndex)}static cursor(pos,assoc=0,bidiLevel,goalColumn){return SelectionRange.create(pos,pos,(assoc==0?0:assoc<0?8:16)|(bidiLevel==null?7:Math.min(6,bidiLevel))|(goalColumn??16777215)<<6)}static range(anchor,head$1,goalColumn,bidiLevel){let flags=(goalColumn??16777215)<<6|(bidiLevel==null?7:Math.min(6,bidiLevel));return head$1<anchor?SelectionRange.create(head$1,anchor,48|flags):SelectionRange.create(anchor,head$1,(head$1>anchor?8:0)|flags)}static normalized(ranges,mainIndex=0){let main$1=ranges[mainIndex];ranges.sort((a$1,b$2)=>a$1.from-b$2.from),mainIndex=ranges.indexOf(main$1);for(let i$3=1;i$3<ranges.length;i$3++){let range$1=ranges[i$3],prev=ranges[i$3-1];if(range$1.empty?range$1.from<=prev.to:range$1.from<prev.to){let from=prev.from,to=Math.max(range$1.to,prev.to);i$3<=mainIndex&&mainIndex--,ranges.splice(--i$3,2,range$1.anchor>range$1.head?EditorSelection.range(to,from):EditorSelection.range(from,to))}}return new EditorSelection(ranges,mainIndex)}};function checkSelection(selection,docLength){for(let range$1 of selection.ranges)if(range$1.to>docLength)throw RangeError(`Selection points outside of document`)}var nextID=0,Facet=class Facet{constructor(combine,compareInput,compare$2,isStatic,enables){this.combine=combine,this.compareInput=compareInput,this.compare=compare$2,this.isStatic=isStatic,this.id=nextID++,this.default=combine([]),this.extensions=typeof enables==`function`?enables(this):enables}get reader(){return this}static define(config$1={}){return new Facet(config$1.combine||(a$1=>a$1),config$1.compareInput||((a$1,b$2)=>a$1===b$2),config$1.compare||(config$1.combine?(a$1,b$2)=>a$1===b$2:sameArray$1),!!config$1.static,config$1.enables)}of(value){return new FacetProvider([],this,0,value)}compute(deps,get){if(this.isStatic)throw Error(`Can't compute a static facet`);return new FacetProvider(deps,this,1,get)}computeN(deps,get){if(this.isStatic)throw Error(`Can't compute a static facet`);return new FacetProvider(deps,this,2,get)}from(field,get){return get||=x$1=>x$1,this.compute([field],state$1=>get(state$1.field(field)))}};function sameArray$1(a$1,b$2){return a$1==b$2||a$1.length==b$2.length&&a$1.every((e,i$3)=>e===b$2[i$3])}var FacetProvider=class{constructor(dependencies,facet,type,value){this.dependencies=dependencies,this.facet=facet,this.type=type,this.value=value,this.id=nextID++}dynamicSlot(addresses){var _a$1;let getter=this.value,compare$2=this.facet.compareInput,id=this.id,idx=addresses[id]>>1,multi=this.type==2,depDoc=!1,depSel=!1,depAddrs=[];for(let dep of this.dependencies)dep==`doc`?depDoc=!0:dep==`selection`?depSel=!0:(addresses[dep.id]??1)&1||depAddrs.push(addresses[dep.id]);return{create(state$1){return state$1.values[idx]=getter(state$1),1},update(state$1,tr$1){if(depDoc&&tr$1.docChanged||depSel&&(tr$1.docChanged||tr$1.selection)||ensureAll(state$1,depAddrs)){let newVal=getter(state$1);if(multi?!compareArray(newVal,state$1.values[idx],compare$2):!compare$2(newVal,state$1.values[idx]))return state$1.values[idx]=newVal,1}return 0},reconfigure:(state$1,oldState)=>{let newVal,oldAddr=oldState.config.address[id];if(oldAddr!=null){let oldVal=getAddr(oldState,oldAddr);if(this.dependencies.every(dep=>dep instanceof Facet?oldState.facet(dep)===state$1.facet(dep):dep instanceof StateField?oldState.field(dep,!1)==state$1.field(dep,!1):!0)||(multi?compareArray(newVal=getter(state$1),oldVal,compare$2):compare$2(newVal=getter(state$1),oldVal)))return state$1.values[idx]=oldVal,0}else newVal=getter(state$1);return state$1.values[idx]=newVal,1}}}};function compareArray(a$1,b$2,compare$2){if(a$1.length!=b$2.length)return!1;for(let i$3=0;i$3<a$1.length;i$3++)if(!compare$2(a$1[i$3],b$2[i$3]))return!1;return!0}function ensureAll(state$1,addrs){let changed=!1;for(let addr of addrs)ensureAddr(state$1,addr)&1&&(changed=!0);return changed}function dynamicFacetSlot(addresses,facet,providers){let providerAddrs=providers.map(p$1=>addresses[p$1.id]),providerTypes=providers.map(p$1=>p$1.type),dynamic=providerAddrs.filter(p$1=>!(p$1&1)),idx=addresses[facet.id]>>1;function get(state$1){let values=[];for(let i$3=0;i$3<providerAddrs.length;i$3++){let value=getAddr(state$1,providerAddrs[i$3]);if(providerTypes[i$3]==2)for(let val of value)values.push(val);else values.push(value)}return facet.combine(values)}return{create(state$1){for(let addr of providerAddrs)ensureAddr(state$1,addr);return state$1.values[idx]=get(state$1),1},update(state$1,tr$1){if(!ensureAll(state$1,dynamic))return 0;let value=get(state$1);return facet.compare(value,state$1.values[idx])?0:(state$1.values[idx]=value,1)},reconfigure(state$1,oldState){let depChanged=ensureAll(state$1,providerAddrs),oldProviders=oldState.config.facets[facet.id],oldValue=oldState.facet(facet);if(oldProviders&&!depChanged&&sameArray$1(providers,oldProviders))return state$1.values[idx]=oldValue,0;let value=get(state$1);return facet.compare(value,oldValue)?(state$1.values[idx]=oldValue,0):(state$1.values[idx]=value,1)}}}var initField=Facet.define({static:!0}),StateField=class StateField{constructor(id,createF,updateF,compareF,spec){this.id=id,this.createF=createF,this.updateF=updateF,this.compareF=compareF,this.spec=spec,this.provides=void 0}static define(config$1){let field=new StateField(nextID++,config$1.create,config$1.update,config$1.compare||((a$1,b$2)=>a$1===b$2),config$1);return config$1.provide&&(field.provides=config$1.provide(field)),field}create(state$1){return(state$1.facet(initField).find(i$3=>i$3.field==this)?.create||this.createF)(state$1)}slot(addresses){let idx=addresses[this.id]>>1;return{create:state$1=>(state$1.values[idx]=this.create(state$1),1),update:(state$1,tr$1)=>{let oldVal=state$1.values[idx],value=this.updateF(oldVal,tr$1);return this.compareF(oldVal,value)?0:(state$1.values[idx]=value,1)},reconfigure:(state$1,oldState)=>{let init=state$1.facet(initField),oldInit=oldState.facet(initField),reInit;return(reInit=init.find(i$3=>i$3.field==this))&&reInit!=oldInit.find(i$3=>i$3.field==this)?(state$1.values[idx]=reInit.create(state$1),1):oldState.config.address[this.id]==null?(state$1.values[idx]=this.create(state$1),1):(state$1.values[idx]=oldState.field(this),0)}}}init(create$3){return[this,initField.of({field:this,create:create$3})]}get extension(){return this}},Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(value){return ext=>new PrecExtension(ext,value)}var Prec={highest:prec(Prec_.highest),high:prec(Prec_.high),default:prec(Prec_.default),low:prec(Prec_.low),lowest:prec(Prec_.lowest)},PrecExtension=class{constructor(inner,prec$1){this.inner=inner,this.prec=prec$1}},Compartment=class Compartment{of(ext){return new CompartmentInstance(this,ext)}reconfigure(content$3){return Compartment.reconfigure.of({compartment:this,extension:content$3})}get(state$1){return state$1.config.compartments.get(this)}},CompartmentInstance=class{constructor(compartment,inner){this.compartment=compartment,this.inner=inner}},Configuration=class Configuration{constructor(base$1,compartments,dynamicSlots,address,staticValues,facets){for(this.base=base$1,this.compartments=compartments,this.dynamicSlots=dynamicSlots,this.address=address,this.staticValues=staticValues,this.facets=facets,this.statusTemplate=[];this.statusTemplate.length<dynamicSlots.length;)this.statusTemplate.push(0)}staticFacet(facet){let addr=this.address[facet.id];return addr==null?facet.default:this.staticValues[addr>>1]}static resolve(base$1,compartments,oldState){let fields=[],facets=Object.create(null),newCompartments=new Map;for(let ext of flatten(base$1,compartments,newCompartments))ext instanceof StateField?fields.push(ext):(facets[ext.facet.id]||(facets[ext.facet.id]=[])).push(ext);let address=Object.create(null),staticValues=[],dynamicSlots=[];for(let field of fields)address[field.id]=dynamicSlots.length<<1,dynamicSlots.push(a$1=>field.slot(a$1));let oldFacets=oldState?.config.facets;for(let id in facets){let providers=facets[id],facet=providers[0].facet,oldProviders=oldFacets&&oldFacets[id]||[];if(providers.every(p$1=>p$1.type==0))if(address[facet.id]=staticValues.length<<1|1,sameArray$1(oldProviders,providers))staticValues.push(oldState.facet(facet));else{let value=facet.combine(providers.map(p$1=>p$1.value));staticValues.push(oldState&&facet.compare(value,oldState.facet(facet))?oldState.facet(facet):value)}else{for(let p$1 of providers)p$1.type==0?(address[p$1.id]=staticValues.length<<1|1,staticValues.push(p$1.value)):(address[p$1.id]=dynamicSlots.length<<1,dynamicSlots.push(a$1=>p$1.dynamicSlot(a$1)));address[facet.id]=dynamicSlots.length<<1,dynamicSlots.push(a$1=>dynamicFacetSlot(a$1,facet,providers))}}return new Configuration(base$1,newCompartments,dynamicSlots.map(f$2=>f$2(address)),address,staticValues,facets)}};function flatten(extension$1,compartments,newCompartments){let result=[[],[],[],[],[]],seen$1=new Map;function inner(ext,prec$1){let known=seen$1.get(ext);if(known!=null){if(known<=prec$1)return;let found=result[known].indexOf(ext);found>-1&&result[known].splice(found,1),ext instanceof CompartmentInstance&&newCompartments.delete(ext.compartment)}if(seen$1.set(ext,prec$1),Array.isArray(ext))for(let e of ext)inner(e,prec$1);else if(ext instanceof CompartmentInstance){if(newCompartments.has(ext.compartment))throw RangeError(`Duplicate use of compartment in extensions`);let content$3=compartments.get(ext.compartment)||ext.inner;newCompartments.set(ext.compartment,content$3),inner(content$3,prec$1)}else if(ext instanceof PrecExtension)inner(ext.inner,ext.prec);else if(ext instanceof StateField)result[prec$1].push(ext),ext.provides&&inner(ext.provides,prec$1);else if(ext instanceof FacetProvider)result[prec$1].push(ext),ext.facet.extensions&&inner(ext.facet.extensions,Prec_.default);else{let content$3=ext.extension;if(!content$3)throw Error(`Unrecognized extension value in extension set (${ext}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);inner(content$3,prec$1)}}return inner(extension$1,Prec_.default),result.reduce((a$1,b$2)=>a$1.concat(b$2))}function ensureAddr(state$1,addr){if(addr&1)return 2;let idx=addr>>1,status=state$1.status[idx];if(status==4)throw Error(`Cyclic dependency between fields and/or facets`);if(status&2)return status;state$1.status[idx]=4;let changed=state$1.computeSlot(state$1,state$1.config.dynamicSlots[idx]);return state$1.status[idx]=2|changed}function getAddr(state$1,addr){return addr&1?state$1.config.staticValues[addr>>1]:state$1.values[addr>>1]}var languageData=Facet.define(),allowMultipleSelections=Facet.define({combine:values=>values.some(v$1=>v$1),static:!0}),lineSeparator=Facet.define({combine:values=>values.length?values[0]:void 0,static:!0}),changeFilter=Facet.define(),transactionFilter=Facet.define(),transactionExtender=Facet.define(),readOnly=Facet.define({combine:values=>values.length?values[0]:!1}),Annotation=class{constructor(type,value){this.type=type,this.value=value}static define(){return new AnnotationType}},AnnotationType=class{of(value){return new Annotation(this,value)}},StateEffectType=class{constructor(map){this.map=map}of(value){return new StateEffect(this,value)}},StateEffect=class StateEffect{constructor(type,value){this.type=type,this.value=value}map(mapping){let mapped=this.type.map(this.value,mapping);return mapped===void 0?void 0:mapped==this.value?this:new StateEffect(this.type,mapped)}is(type){return this.type==type}static define(spec={}){return new StateEffectType(spec.map||(v$1=>v$1))}static mapEffects(effects,mapping){if(!effects.length)return effects;let result=[];for(let effect of effects){let mapped=effect.map(mapping);mapped&&result.push(mapped)}return result}};StateEffect.reconfigure=StateEffect.define(),StateEffect.appendConfig=StateEffect.define();var Transaction=class Transaction{constructor(startState,changes,selection,effects,annotations,scrollIntoView$2){this.startState=startState,this.changes=changes,this.selection=selection,this.effects=effects,this.annotations=annotations,this.scrollIntoView=scrollIntoView$2,this._doc=null,this._state=null,selection&&checkSelection(selection,changes.newLength),annotations.some(a$1=>a$1.type==Transaction.time)||(this.annotations=annotations.concat(Transaction.time.of(Date.now())))}static create(startState,changes,selection,effects,annotations,scrollIntoView$2){return new Transaction(startState,changes,selection,effects,annotations,scrollIntoView$2)}get newDoc(){return this._doc||=this.changes.apply(this.startState.doc)}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(type){for(let ann of this.annotations)if(ann.type==type)return ann.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(event){let e=this.annotation(Transaction.userEvent);return!!(e&&(e==event||e.length>event.length&&e.slice(0,event.length)==event&&e[event.length]==`.`))}};Transaction.time=Annotation.define(),Transaction.userEvent=Annotation.define(),Transaction.addToHistory=Annotation.define(),Transaction.remote=Annotation.define();function joinRanges(a$1,b$2){let result=[];for(let iA=0,iB=0;;){let from,to;if(iA<a$1.length&&(iB==b$2.length||b$2[iB]>=a$1[iA]))from=a$1[iA++],to=a$1[iA++];else if(iB<b$2.length)from=b$2[iB++],to=b$2[iB++];else return result;!result.length||result[result.length-1]<from?result.push(from,to):result[result.length-1]<to&&(result[result.length-1]=to)}}function mergeTransaction(a$1,b$2,sequential){var _a$1;let mapForA,mapForB,changes;return sequential?(mapForA=b$2.changes,mapForB=ChangeSet.empty(b$2.changes.length),changes=a$1.changes.compose(b$2.changes)):(mapForA=b$2.changes.map(a$1.changes),mapForB=a$1.changes.mapDesc(b$2.changes,!0),changes=a$1.changes.compose(mapForA)),{changes,selection:b$2.selection?b$2.selection.map(mapForB):a$1.selection?.map(mapForA),effects:StateEffect.mapEffects(a$1.effects,mapForA).concat(StateEffect.mapEffects(b$2.effects,mapForB)),annotations:a$1.annotations.length?a$1.annotations.concat(b$2.annotations):b$2.annotations,scrollIntoView:a$1.scrollIntoView||b$2.scrollIntoView}}function resolveTransactionInner(state$1,spec,docSize){let sel=spec.selection,annotations=asArray$1(spec.annotations);return spec.userEvent&&(annotations=annotations.concat(Transaction.userEvent.of(spec.userEvent))),{changes:spec.changes instanceof ChangeSet?spec.changes:ChangeSet.of(spec.changes||[],docSize,state$1.facet(lineSeparator)),selection:sel&&(sel instanceof EditorSelection?sel:EditorSelection.single(sel.anchor,sel.head)),effects:asArray$1(spec.effects),annotations,scrollIntoView:!!spec.scrollIntoView}}function resolveTransaction(state$1,specs,filter){let s$1=resolveTransactionInner(state$1,specs.length?specs[0]:{},state$1.doc.length);specs.length&&specs[0].filter===!1&&(filter=!1);for(let i$3=1;i$3<specs.length;i$3++){specs[i$3].filter===!1&&(filter=!1);let seq=!!specs[i$3].sequential;s$1=mergeTransaction(s$1,resolveTransactionInner(state$1,specs[i$3],seq?s$1.changes.newLength:state$1.doc.length),seq)}let tr$1=Transaction.create(state$1,s$1.changes,s$1.selection,s$1.effects,s$1.annotations,s$1.scrollIntoView);return extendTransaction(filter?filterTransaction(tr$1):tr$1)}function filterTransaction(tr$1){let state$1=tr$1.startState,result=!0;for(let filter of state$1.facet(changeFilter)){let value=filter(tr$1);if(value===!1){result=!1;break}Array.isArray(value)&&(result=result===!0?value:joinRanges(result,value))}if(result!==!0){let changes,back;if(result===!1)back=tr$1.changes.invertedDesc,changes=ChangeSet.empty(state$1.doc.length);else{let filtered=tr$1.changes.filter(result);changes=filtered.changes,back=filtered.filtered.mapDesc(filtered.changes).invertedDesc}tr$1=Transaction.create(state$1,changes,tr$1.selection&&tr$1.selection.map(back),StateEffect.mapEffects(tr$1.effects,back),tr$1.annotations,tr$1.scrollIntoView)}let filters=state$1.facet(transactionFilter);for(let i$3=filters.length-1;i$3>=0;i$3--){let filtered=filters[i$3](tr$1);tr$1=filtered instanceof Transaction?filtered:Array.isArray(filtered)&&filtered.length==1&&filtered[0]instanceof Transaction?filtered[0]:resolveTransaction(state$1,asArray$1(filtered),!1)}return tr$1}function extendTransaction(tr$1){let state$1=tr$1.startState,extenders=state$1.facet(transactionExtender),spec=tr$1;for(let i$3=extenders.length-1;i$3>=0;i$3--){let extension$1=extenders[i$3](tr$1);extension$1&&Object.keys(extension$1).length&&(spec=mergeTransaction(spec,resolveTransactionInner(state$1,extension$1,tr$1.changes.newLength),!0))}return spec==tr$1?tr$1:Transaction.create(state$1,tr$1.changes,tr$1.selection,spec.effects,spec.annotations,spec.scrollIntoView)}var none$2=[];function asArray$1(value){return value==null?none$2:Array.isArray(value)?value:[value]}var CharCategory=(function(CharCategory$1){return CharCategory$1[CharCategory$1.Word=0]=`Word`,CharCategory$1[CharCategory$1.Space=1]=`Space`,CharCategory$1[CharCategory$1.Other=2]=`Other`,CharCategory$1})(CharCategory||={}),nonASCIISingleCaseWordChar=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,wordChar;try{wordChar=RegExp(`[\\p{Alphabetic}\\p{Number}_]`,`u`)}catch{}function hasWordChar(str){if(wordChar)return wordChar.test(str);for(let i$3=0;i$3<str.length;i$3++){let ch=str[i$3];if(/\w/.test(ch)||ch>`€`&&(ch.toUpperCase()!=ch.toLowerCase()||nonASCIISingleCaseWordChar.test(ch)))return!0}return!1}function makeCategorizer(wordChars){return char=>{if(!/\S/.test(char))return CharCategory.Space;if(hasWordChar(char))return CharCategory.Word;for(let i$3=0;i$3<wordChars.length;i$3++)if(char.indexOf(wordChars[i$3])>-1)return CharCategory.Word;return CharCategory.Other}}var EditorState=class EditorState{constructor(config$1,doc$1,selection,values,computeSlot,tr$1){this.config=config$1,this.doc=doc$1,this.selection=selection,this.values=values,this.status=config$1.statusTemplate.slice(),this.computeSlot=computeSlot,tr$1&&(tr$1._state=this);for(let i$3=0;i$3<this.config.dynamicSlots.length;i$3++)ensureAddr(this,i$3<<1);this.computeSlot=null}field(field,require$1=!0){let addr=this.config.address[field.id];if(addr==null){if(require$1)throw RangeError(`Field is not present in this state`);return}return ensureAddr(this,addr),getAddr(this,addr)}update(...specs){return resolveTransaction(this,specs,!0)}applyTransaction(tr$1){let conf=this.config,{base:base$1,compartments}=conf;for(let effect of tr$1.effects)effect.is(Compartment.reconfigure)?(conf&&=(compartments=new Map,conf.compartments.forEach((val,key$1)=>compartments.set(key$1,val)),null),compartments.set(effect.value.compartment,effect.value.extension)):effect.is(StateEffect.reconfigure)?(conf=null,base$1=effect.value):effect.is(StateEffect.appendConfig)&&(conf=null,base$1=asArray$1(base$1).concat(effect.value));let startValues;conf?startValues=tr$1.startState.values.slice():(conf=Configuration.resolve(base$1,compartments,this),startValues=new EditorState(conf,this.doc,this.selection,conf.dynamicSlots.map(()=>null),(state$1,slot)=>slot.reconfigure(state$1,this),null).values);let selection=tr$1.startState.facet(allowMultipleSelections)?tr$1.newSelection:tr$1.newSelection.asSingle();new EditorState(conf,tr$1.newDoc,selection,startValues,(state$1,slot)=>slot.update(state$1,tr$1),tr$1)}replaceSelection(text$5){return typeof text$5==`string`&&(text$5=this.toText(text$5)),this.changeByRange(range$1=>({changes:{from:range$1.from,to:range$1.to,insert:text$5},range:EditorSelection.cursor(range$1.from+text$5.length)}))}changeByRange(f$2){let sel=this.selection,result1=f$2(sel.ranges[0]),changes=this.changes(result1.changes),ranges=[result1.range],effects=asArray$1(result1.effects);for(let i$3=1;i$3<sel.ranges.length;i$3++){let result=f$2(sel.ranges[i$3]),newChanges=this.changes(result.changes),newMapped=newChanges.map(changes);for(let j$1=0;j$1<i$3;j$1++)ranges[j$1]=ranges[j$1].map(newMapped);let mapBy=changes.mapDesc(newChanges,!0);ranges.push(result.range.map(mapBy)),changes=changes.compose(newMapped),effects=StateEffect.mapEffects(effects,newMapped).concat(StateEffect.mapEffects(asArray$1(result.effects),mapBy))}return{changes,selection:EditorSelection.create(ranges,sel.mainIndex),effects}}changes(spec=[]){return spec instanceof ChangeSet?spec:ChangeSet.of(spec,this.doc.length,this.facet(EditorState.lineSeparator))}toText(string$3){return Text.of(string$3.split(this.facet(EditorState.lineSeparator)||DefaultSplit))}sliceDoc(from=0,to=this.doc.length){return this.doc.sliceString(from,to,this.lineBreak)}facet(facet){let addr=this.config.address[facet.id];return addr==null?facet.default:(ensureAddr(this,addr),getAddr(this,addr))}toJSON(fields){let result={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(fields)for(let prop in fields){let value=fields[prop];value instanceof StateField&&this.config.address[value.id]!=null&&(result[prop]=value.spec.toJSON(this.field(fields[prop]),this))}return result}static fromJSON(json$1,config$1={},fields){if(!json$1||typeof json$1.doc!=`string`)throw RangeError(`Invalid JSON representation for EditorState`);let fieldInit=[];if(fields){for(let prop in fields)if(Object.prototype.hasOwnProperty.call(json$1,prop)){let field=fields[prop],value=json$1[prop];fieldInit.push(field.init(state$1=>field.spec.fromJSON(value,state$1)))}}return EditorState.create({doc:json$1.doc,selection:EditorSelection.fromJSON(json$1.selection),extensions:config$1.extensions?fieldInit.concat([config$1.extensions]):fieldInit})}static create(config$1={}){let configuration=Configuration.resolve(config$1.extensions||[],new Map),doc$1=config$1.doc instanceof Text?config$1.doc:Text.of((config$1.doc||``).split(configuration.staticFacet(EditorState.lineSeparator)||DefaultSplit)),selection=config$1.selection?config$1.selection instanceof EditorSelection?config$1.selection:EditorSelection.single(config$1.selection.anchor,config$1.selection.head):EditorSelection.single(0);return checkSelection(selection,doc$1.length),configuration.staticFacet(allowMultipleSelections)||(selection=selection.asSingle()),new EditorState(configuration,doc$1,selection,configuration.dynamicSlots.map(()=>null),(state$1,slot)=>slot.create(state$1),null)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||`
@@ -80,7 +80,7 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
80
80
  `,s$2=`"`,a$2=s$2+s$2,i$4=!1,r$5=null,o$3=!1,h$2=((()=>{if(typeof t$1==`object`){if(typeof t$1.delimiter!=`string`||v$1.BAD_DELIMITERS.filter(function(e$1){return t$1.delimiter.indexOf(e$1)!==-1}).length||(m$3=t$1.delimiter),typeof t$1.quotes!=`boolean`&&typeof t$1.quotes!=`function`&&!Array.isArray(t$1.quotes)||(n$1=t$1.quotes),typeof t$1.skipEmptyLines!=`boolean`&&typeof t$1.skipEmptyLines!=`string`||(i$4=t$1.skipEmptyLines),typeof t$1.newline==`string`&&(y$3=t$1.newline),typeof t$1.quoteChar==`string`&&(s$2=t$1.quoteChar),typeof t$1.header==`boolean`&&(_$3=t$1.header),Array.isArray(t$1.columns)){if(t$1.columns.length===0)throw Error(`Option columns is empty`);r$5=t$1.columns}t$1.escapeChar!==void 0&&(a$2=t$1.escapeChar+s$2),t$1.escapeFormulae instanceof RegExp?o$3=t$1.escapeFormulae:typeof t$1.escapeFormulae==`boolean`&&t$1.escapeFormulae&&(o$3=/^[=+\-@\t\r].*$/)}})(),new RegExp(P$2(s$2),`g`));if(typeof e==`string`&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return u$2(null,e,i$4);if(typeof e[0]==`object`)return u$2(r$5||Object.keys(e[0]),e,i$4)}else if(typeof e==`object`)return typeof e.data==`string`&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||=e.meta&&e.meta.fields||r$5,e.fields||=Array.isArray(e.data[0])?e.fields:typeof e.data[0]==`object`?Object.keys(e.data[0]):[],Array.isArray(e.data[0])||typeof e.data[0]==`object`||(e.data=[e.data])),u$2(e.fields||[],e.data||[],i$4);throw Error(`Unable to serialize unrecognized input`);function u$2(e$1,t$2,i$5){var r$6=``,n$2=(typeof e$1==`string`&&(e$1=JSON.parse(e$1)),typeof t$2==`string`&&(t$2=JSON.parse(t$2)),Array.isArray(e$1)&&0<e$1.length),s$3=!Array.isArray(t$2[0]);if(n$2&&_$3){for(var a$3=0;a$3<e$1.length;a$3++)0<a$3&&(r$6+=m$3),r$6+=k$2(e$1[a$3],a$3);0<t$2.length&&(r$6+=y$3)}for(var o$4=0;o$4<t$2.length;o$4++){var h$3=(n$2?e$1:t$2[o$4]).length,u$3=!1,d$2=n$2?Object.keys(t$2[o$4]).length===0:t$2[o$4].length===0;if(i$5&&!n$2&&(u$3=i$5===`greedy`?t$2[o$4].join(``).trim()===``:t$2[o$4].length===1&&t$2[o$4][0].length===0),i$5===`greedy`&&n$2){for(var f$3=[],l$3=0;l$3<h$3;l$3++){var c$1=s$3?e$1[l$3]:l$3;f$3.push(t$2[o$4][c$1])}u$3=f$3.join(``).trim()===``}if(!u$3){for(var p$2=0;p$2<h$3;p$2++){0<p$2&&!d$2&&(r$6+=m$3);var g$1=n$2&&s$3?e$1[p$2]:p$2;r$6+=k$2(t$2[o$4][g$1],p$2)}o$4<t$2.length-1&&(!i$5||0<h$3&&!d$2)&&(r$6+=y$3)}}return r$6}function k$2(e$1,t$2){var i$5,r$6;return e$1==null?``:e$1.constructor===Date?JSON.stringify(e$1).slice(1,25):(r$6=!1,o$3&&typeof e$1==`string`&&o$3.test(e$1)&&(e$1=`'`+e$1,r$6=!0),i$5=e$1.toString().replace(h$2,a$2),(r$6=r$6||!0===n$1||typeof n$1==`function`&&n$1(e$1,t$2)||Array.isArray(n$1)&&n$1[t$2]||((e$2,t$3)=>{for(var i$6=0;i$6<t$3.length;i$6++)if(-1<e$2.indexOf(t$3[i$6]))return!0;return!1})(i$5,v$1.BAD_DELIMITERS)||-1<i$5.indexOf(m$3)||i$5.charAt(0)===` `||i$5.charAt(i$5.length-1)===` `)?s$2+i$5+s$2:i$5)}},v$1.RECORD_SEP=``,v$1.UNIT_SEP=``,v$1.BYTE_ORDER_MARK=``,v$1.BAD_DELIMITERS=[`\r`,`
81
81
  `,`"`,v$1.BYTE_ORDER_MARK],v$1.WORKERS_SUPPORTED=!s$1&&!!n.Worker,v$1.NODE_STREAM_INPUT=1,v$1.LocalChunkSize=10485760,v$1.RemoteChunkSize=5242880,v$1.DefaultDelimiter=`,`,v$1.Parser=E$2,v$1.ParserHandle=i$3,v$1.NetworkStreamer=f$2,v$1.FileStreamer=l$2,v$1.StringStreamer=c,v$1.ReadableStreamStreamer=p$1,n.jQuery&&((d$1=n.jQuery).fn.parse=function(o$3){var i$4=o$3.config||{},h$2=[];return this.each(function(e$1){if(!(d$1(this).prop(`tagName`).toUpperCase()===`INPUT`&&d$1(this).attr(`type`).toLowerCase()===`file`&&n.FileReader)||!this.files||this.files.length===0)return!0;for(var t$1=0;t$1<this.files.length;t$1++)h$2.push({file:this.files[t$1],inputElem:this,instanceConfig:d$1.extend({},i$4)})}),e(),this;function e(){if(h$2.length===0)U$2(o$3.complete)&&o$3.complete();else{var e$1,t$1,i$5,r$5,n$1=h$2[0];if(U$2(o$3.before)){var s$2=o$3.before(n$1.file,n$1.inputElem);if(typeof s$2==`object`){if(s$2.action===`abort`)return e$1=`AbortError`,t$1=n$1.file,i$5=n$1.inputElem,r$5=s$2.reason,void(U$2(o$3.error)&&o$3.error({name:e$1},t$1,i$5,r$5));if(s$2.action===`skip`)return void u$2();typeof s$2.config==`object`&&(n$1.instanceConfig=d$1.extend(n$1.instanceConfig,s$2.config))}else if(s$2===`skip`)return void u$2()}var a$2=n$1.instanceConfig.complete;n$1.instanceConfig.complete=function(e$2){U$2(a$2)&&a$2(e$2,n$1.file,n$1.inputElem),u$2()},v$1.parse(n$1.file,n$1.instanceConfig)}}function u$2(){h$2.splice(0,1),e()}}),a$1&&(n.onmessage=function(e){e=e.data,v$1.WORKER_ID===void 0&&e&&(v$1.WORKER_ID=e.workerId),typeof e.input==`string`?n.postMessage({workerId:v$1.WORKER_ID,results:v$1.parse(e.input,e.config),finished:!0}):(n.File&&e.input instanceof File||e.input instanceof Object)&&(e=v$1.parse(e.input,e.config))&&n.postMessage({workerId:v$1.WORKER_ID,results:e,finished:!0})}),(f$2.prototype=Object.create(u$1.prototype)).constructor=f$2,(l$2.prototype=Object.create(u$1.prototype)).constructor=l$2,(c.prototype=Object.create(c.prototype)).constructor=c,(p$1.prototype=Object.create(u$1.prototype)).constructor=p$1,v$1})})),import_papaparse_min=__toESM(require_papaparse_min(),1);function exportToCsv(columns,rows,filename){let columnNames=columns.map(col=>col.name),csv=import_papaparse_min.default.unparse({fields:columnNames,data:rows.map(row=>columnNames.map(name$2=>row[name$2]))}),blob=new Blob([csv],{type:`text/csv;charset=utf-8;`}),url=URL.createObjectURL(blob),link$1=document.createElement(`a`);link$1.href=url,link$1.download=filename,link$1.click(),URL.revokeObjectURL(url)}var Stack=class Stack{constructor(p$1,stack,state$1,reducePos,pos,score$1,buffer,bufferBase,curContext,lookAhead=0,parent){this.p=p$1,this.stack=stack,this.state=state$1,this.reducePos=reducePos,this.pos=pos,this.score=score$1,this.buffer=buffer,this.bufferBase=bufferBase,this.curContext=curContext,this.lookAhead=lookAhead,this.parent=parent}toString(){return`[${this.stack.filter((_$2,i$3)=>i$3%3==0).concat(this.state)}]@${this.pos}${this.score?`!`+this.score:``}`}static start(p$1,state$1,pos=0){let cx$1=p$1.parser.context;return new Stack(p$1,[],state$1,pos,pos,0,[],0,cx$1?new StackContext(cx$1,cx$1.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(state$1,start){this.stack.push(this.state,start,this.bufferBase+this.buffer.length),this.state=state$1}reduce(action){var _a$1;let depth=action>>19,type=action&65535,{parser:parser$1}=this.p,lookaheadRecord=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),dPrec=parser$1.dynamicPrecedence(type);if(dPrec&&(this.score+=dPrec),depth==0){this.pushState(parser$1.getGoto(this.state,type,!0),this.reducePos),type<parser$1.minRepeatTerm&&this.storeNode(type,this.reducePos,this.reducePos,lookaheadRecord?8:4,!0),this.reduceContext(type,this.reducePos);return}let base$1=this.stack.length-(depth-1)*3-(action&262144?6:0),start=base$1?this.stack[base$1-2]:this.p.ranges[0].from,size$3=this.reducePos-start;size$3>=2e3&&!this.p.parser.nodeSet.types[type]?.isAnonymous&&(start==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=size$3):this.p.lastBigReductionSize<size$3&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=start,this.p.lastBigReductionSize=size$3));let bufferBase=base$1?this.stack[base$1-1]:0,count=this.bufferBase+this.buffer.length-bufferBase;if(type<parser$1.minRepeatTerm||action&131072){let pos=parser$1.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(type,start,pos,count+4,!0)}if(action&262144)this.state=this.stack[base$1];else{let baseStateID=this.stack[base$1-3];this.state=parser$1.getGoto(baseStateID,type,!0)}for(;this.stack.length>base$1;)this.stack.pop();this.reduceContext(type,start)}storeNode(term,start,end,size$3=4,mustSink=!1){if(term==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let cur$1=this,top$1=this.buffer.length;if(top$1==0&&cur$1.parent&&(top$1=cur$1.bufferBase-cur$1.parent.bufferBase,cur$1=cur$1.parent),top$1>0&&cur$1.buffer[top$1-4]==0&&cur$1.buffer[top$1-1]>-1){if(start==end)return;if(cur$1.buffer[top$1-2]>=start){cur$1.buffer[top$1-2]=end;return}}}if(!mustSink||this.pos==end)this.buffer.push(term,start,end,size$3);else{let index$4=this.buffer.length;if(index$4>0&&(this.buffer[index$4-4]!=0||this.buffer[index$4-1]<0)){let mustMove=!1;for(let scan$1=index$4;scan$1>0&&this.buffer[scan$1-2]>end;scan$1-=4)if(this.buffer[scan$1-1]>=0){mustMove=!0;break}if(mustMove)for(;index$4>0&&this.buffer[index$4-2]>end;)this.buffer[index$4]=this.buffer[index$4-4],this.buffer[index$4+1]=this.buffer[index$4-3],this.buffer[index$4+2]=this.buffer[index$4-2],this.buffer[index$4+3]=this.buffer[index$4-1],index$4-=4,size$3>4&&(size$3-=4)}this.buffer[index$4]=term,this.buffer[index$4+1]=start,this.buffer[index$4+2]=end,this.buffer[index$4+3]=size$3}}shift(action,type,start,end){if(action&131072)this.pushState(action&65535,this.pos);else if(action&262144)this.pos=end,this.shiftContext(type,start),type<=this.p.parser.maxNode&&this.buffer.push(type,start,end,4);else{let nextState=action,{parser:parser$1}=this.p;this.pos=end;let skipped=parser$1.stateFlag(nextState,1);!skipped&&(end>start||type<=parser$1.maxNode)&&(this.reducePos=end),this.pushState(nextState,skipped?start:Math.min(start,this.reducePos)),this.shiftContext(type,start),type<=parser$1.maxNode&&this.buffer.push(type,start,end,4)}}apply(action,next,nextStart,nextEnd){action&65536?this.reduce(action):this.shift(action,next,nextStart,nextEnd)}useNode(value,next){let index$4=this.p.reused.length-1;(index$4<0||this.p.reused[index$4]!=value)&&(this.p.reused.push(value),index$4++);let start=this.pos;this.reducePos=this.pos=start+value.length,this.pushState(next,start),this.buffer.push(index$4,start,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,value,this,this.p.stream.reset(this.pos-value.length)))}split(){let parent=this,off=parent.buffer.length;for(;off>0&&parent.buffer[off-2]>parent.reducePos;)off-=4;let buffer=parent.buffer.slice(off),base$1=parent.bufferBase+off;for(;parent&&base$1==parent.bufferBase;)parent=parent.parent;return new Stack(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,buffer,base$1,this.curContext,this.lookAhead,parent)}recoverByDelete(next,nextEnd){let isNode$1=next<=this.p.parser.maxNode;isNode$1&&this.storeNode(next,this.pos,nextEnd,4),this.storeNode(0,this.pos,nextEnd,isNode$1?8:4),this.pos=this.reducePos=nextEnd,this.score-=190}canShift(term){for(let sim=new SimulatedStack(this);;){let action=this.p.parser.stateSlot(sim.state,4)||this.p.parser.hasAction(sim.state,term);if(action==0)return!1;if(!(action&65536))return!0;sim.reduce(action)}}recoverByInsert(next){if(this.stack.length>=300)return[];let nextStates=this.p.parser.nextStates(this.state);if(nextStates.length>8||this.stack.length>=120){let best=[];for(let i$3=0,s$1;i$3<nextStates.length;i$3+=2)(s$1=nextStates[i$3+1])!=this.state&&this.p.parser.hasAction(s$1,next)&&best.push(nextStates[i$3],s$1);if(this.stack.length<120)for(let i$3=0;best.length<8&&i$3<nextStates.length;i$3+=2){let s$1=nextStates[i$3+1];best.some((v$1,i$4)=>i$4&1&&v$1==s$1)||best.push(nextStates[i$3],s$1)}nextStates=best}let result=[];for(let i$3=0;i$3<nextStates.length&&result.length<4;i$3+=2){let s$1=nextStates[i$3+1];if(s$1==this.state)continue;let stack=this.split();stack.pushState(s$1,this.pos),stack.storeNode(0,stack.pos,stack.pos,4,!0),stack.shiftContext(nextStates[i$3],this.pos),stack.reducePos=this.pos,stack.score-=200,result.push(stack)}return result}forceReduce(){let{parser:parser$1}=this.p,reduce=parser$1.stateSlot(this.state,5);if(!(reduce&65536))return!1;if(!parser$1.validAction(this.state,reduce)){let depth=reduce>>19,term=reduce&65535,target=this.stack.length-depth*3;if(target<0||parser$1.getGoto(this.stack[target],term,!1)<0){let backup=this.findForcedReduction();if(backup==null)return!1;reduce=backup}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(reduce),!0}findForcedReduction(){let{parser:parser$1}=this.p,seen$1=[],explore=(state$1,depth)=>{if(!seen$1.includes(state$1))return seen$1.push(state$1),parser$1.allActions(state$1,action=>{if(!(action&393216))if(action&65536){let rDepth=(action>>19)-depth;if(rDepth>1){let term=action&65535,target=this.stack.length-rDepth*3;if(target>=0&&parser$1.getGoto(this.stack[target],term,!1)>=0)return rDepth<<19|65536|term}}else{let found=explore(action,depth+1);if(found!=null)return found}})};return explore(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:parser$1}=this.p;return parser$1.data[parser$1.stateSlot(this.state,1)]==65535&&!parser$1.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(other){if(this.state!=other.state||this.stack.length!=other.stack.length)return!1;for(let i$3=0;i$3<this.stack.length;i$3+=3)if(this.stack[i$3]!=other.stack[i$3])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(dialectID){return this.p.parser.dialect.flags[dialectID]}shiftContext(term,start){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,term,this,this.p.stream.reset(start)))}reduceContext(term,start){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,term,this,this.p.stream.reset(start)))}emitContext(){let last=this.buffer.length-1;(last<0||this.buffer[last]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let last=this.buffer.length-1;(last<0||this.buffer[last]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(context){if(context!=this.curContext.context){let newCx=new StackContext(this.curContext.tracker,context);newCx.hash!=this.curContext.hash&&this.emitContext(),this.curContext=newCx}}setLookAhead(lookAhead){return lookAhead<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=lookAhead,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},StackContext=class{constructor(tracker,context){this.tracker=tracker,this.context=context,this.hash=tracker.strict?tracker.hash(context):0}},SimulatedStack=class{constructor(start){this.start=start,this.state=start.state,this.stack=start.stack,this.base=this.stack.length}reduce(action){let term=action&65535,depth=action>>19;depth==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(depth-1)*3,this.state=this.start.p.parser.getGoto(this.stack[this.base-3],term,!0)}},StackBufferCursor=class StackBufferCursor{constructor(stack,pos,index$4){this.stack=stack,this.pos=pos,this.index=index$4,this.buffer=stack.buffer,this.index==0&&this.maybeNext()}static create(stack,pos=stack.bufferBase+stack.buffer.length){return new StackBufferCursor(stack,pos,pos-stack.bufferBase)}maybeNext(){let next=this.stack.parent;next!=null&&(this.index=this.stack.bufferBase-next.bufferBase,this.stack=next,this.buffer=next.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new StackBufferCursor(this.stack,this.pos,this.index)}};function decodeArray(input,Type=Uint16Array){if(typeof input!=`string`)return input;let array=null;for(let pos=0,out=0;pos<input.length;){let value=0;for(;;){let next=input.charCodeAt(pos++),stop=!1;if(next==126){value=65535;break}next>=92&&next--,next>=34&&next--;let digit=next-32;if(digit>=46&&(digit-=46,stop=!0),value+=digit,stop)break;value*=46}array?array[out++]=value:array=new Type(value)}return array}var CachedToken=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},nullToken=new CachedToken,InputStream=class{constructor(input,ranges){this.input=input,this.ranges=ranges,this.chunk=``,this.chunkOff=0,this.chunk2=``,this.chunk2Pos=0,this.next=-1,this.token=nullToken,this.rangeIndex=0,this.pos=this.chunkPos=ranges[0].from,this.range=ranges[0],this.end=ranges[ranges.length-1].to,this.readNext()}resolveOffset(offset$3,assoc){let range$1=this.range,index$4=this.rangeIndex,pos=this.pos+offset$3;for(;pos<range$1.from;){if(!index$4)return null;let next=this.ranges[--index$4];pos-=range$1.from-next.to,range$1=next}for(;assoc<0?pos>range$1.to:pos>=range$1.to;){if(index$4==this.ranges.length-1)return null;let next=this.ranges[++index$4];pos+=next.from-range$1.to,range$1=next}return pos}clipPos(pos){if(pos>=this.range.from&&pos<this.range.to)return pos;for(let range$1 of this.ranges)if(range$1.to>pos)return Math.max(pos,range$1.from);return this.end}peek(offset$3){let idx=this.chunkOff+offset$3,pos,result;if(idx>=0&&idx<this.chunk.length)pos=this.pos+offset$3,result=this.chunk.charCodeAt(idx);else{let resolved=this.resolveOffset(offset$3,1);if(resolved==null)return-1;if(pos=resolved,pos>=this.chunk2Pos&&pos<this.chunk2Pos+this.chunk2.length)result=this.chunk2.charCodeAt(pos-this.chunk2Pos);else{let i$3=this.rangeIndex,range$1=this.range;for(;range$1.to<=pos;)range$1=this.ranges[++i$3];this.chunk2=this.input.chunk(this.chunk2Pos=pos),pos+this.chunk2.length>range$1.to&&(this.chunk2=this.chunk2.slice(0,range$1.to-pos)),result=this.chunk2.charCodeAt(0)}}return pos>=this.token.lookAhead&&(this.token.lookAhead=pos+1),result}acceptToken(token$1,endOffset=0){let end=endOffset?this.resolveOffset(endOffset,-1):this.pos;if(end==null||end<this.token.start)throw RangeError(`Token end out of bounds`);this.token.value=token$1,this.token.end=end}acceptTokenTo(token$1,endPos){this.token.value=token$1,this.token.end=endPos}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk,chunkPos}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=chunk,this.chunk2Pos=chunkPos,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let nextChunk=this.input.chunk(this.pos);this.chunk=this.pos+nextChunk.length>this.range.to?nextChunk.slice(0,this.range.to-this.pos):nextChunk,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(n=1){for(this.chunkOff+=n;this.pos+n>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();n-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=n,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk=``,this.next=-1}reset(pos,token$1){if(token$1?(this.token=token$1,token$1.start=pos,token$1.lookAhead=pos+1,token$1.value=token$1.extended=-1):this.token=nullToken,this.pos!=pos){if(this.pos=pos,pos==this.end)return this.setDone(),this;for(;pos<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;pos>=this.range.to;)this.range=this.ranges[++this.rangeIndex];pos>=this.chunkPos&&pos<this.chunkPos+this.chunk.length?this.chunkOff=pos-this.chunkPos:(this.chunk=``,this.chunkOff=0),this.readNext()}return this}read(from,to){if(from>=this.chunkPos&&to<=this.chunkPos+this.chunk.length)return this.chunk.slice(from-this.chunkPos,to-this.chunkPos);if(from>=this.chunk2Pos&&to<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(from-this.chunk2Pos,to-this.chunk2Pos);if(from>=this.range.from&&to<=this.range.to)return this.input.read(from,to);let result=``;for(let r$4 of this.ranges){if(r$4.from>=to)break;r$4.to>from&&(result+=this.input.read(Math.max(r$4.from,from),Math.min(r$4.to,to)))}return result}},TokenGroup=class{constructor(data,id){this.data=data,this.id=id}token(input,stack){let{parser:parser$1}=stack.p;readToken(this.data,input,stack,this.id,parser$1.data,parser$1.tokenPrecTable)}};TokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=!1;var LocalTokenGroup=class{constructor(data,precTable,elseToken){this.precTable=precTable,this.elseToken=elseToken,this.data=typeof data==`string`?decodeArray(data):data}token(input,stack){let start=input.pos,skipped=0;for(;;){let atEof=input.next<0,nextPos=input.resolveOffset(1,1);if(readToken(this.data,input,stack,0,this.data,this.precTable),input.token.value>-1)break;if(this.elseToken==null)return;if(atEof||skipped++,nextPos==null)break;input.reset(nextPos,input.token)}skipped&&(input.reset(start,input.token),input.acceptToken(this.elseToken,skipped))}};LocalTokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=!1;function readToken(data,input,stack,group,precTable,precOffset){let state$1=0,groupMask=1<<group,{dialect}=stack.p.parser;scan:for(;(groupMask&data[state$1])!=0;){let accEnd=data[state$1+1];for(let i$3=state$1+3;i$3<accEnd;i$3+=2)if((data[i$3+1]&groupMask)>0){let term=data[i$3];if(dialect.allows(term)&&(input.token.value==-1||input.token.value==term||overrides(term,input.token.value,precTable,precOffset))){input.acceptToken(term);break}}let next=input.next,low=0,high=data[state$1+2];if(input.next<0&&high>low&&data[accEnd+high*3-3]==65535){state$1=data[accEnd+high*3-1];continue scan}for(;low<high;){let mid=low+high>>1,index$4=accEnd+mid+(mid<<1),from=data[index$4],to=data[index$4+1]||65536;if(next<from)high=mid;else if(next>=to)low=mid+1;else{state$1=data[index$4+2],input.advance();continue scan}}break}}function findOffset(data,start,term){for(let i$3=start,next;(next=data[i$3])!=65535;i$3++)if(next==term)return i$3-start;return-1}function overrides(token$1,prev,tableData,tableOffset){let iPrev=findOffset(tableData,tableOffset,prev);return iPrev<0||findOffset(tableData,tableOffset,token$1)<iPrev}var verbose=typeof process<`u`&&/\bparse\b/.test({}.LOG),stackIDs=null;function cutAt(tree,pos,side){let cursor=tree.cursor(IterMode.IncludeAnonymous);for(cursor.moveTo(pos);;)if(!(side<0?cursor.childBefore(pos):cursor.childAfter(pos)))for(;;){if((side<0?cursor.to<pos:cursor.from>pos)&&!cursor.type.isError)return side<0?Math.max(0,Math.min(cursor.to-1,pos-25)):Math.min(tree.length,Math.max(cursor.from+1,pos+25));if(side<0?cursor.prevSibling():cursor.nextSibling())break;if(!cursor.parent())return side<0?0:tree.length}}var FragmentCursor=class{constructor(fragments,nodeSet){this.fragments=fragments,this.nodeSet=nodeSet,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let fr=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(fr){for(this.safeFrom=fr.openStart?cutAt(fr.tree,fr.from+fr.offset,1)-fr.offset:fr.from,this.safeTo=fr.openEnd?cutAt(fr.tree,fr.to+fr.offset,-1)-fr.offset:fr.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(fr.tree),this.start.push(-fr.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(pos){if(pos<this.nextStart)return null;for(;this.fragment&&this.safeTo<=pos;)this.nextFragment();if(!this.fragment)return null;for(;;){let last=this.trees.length-1;if(last<0)return this.nextFragment(),null;let top$1=this.trees[last],index$4=this.index[last];if(index$4==top$1.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let next=top$1.children[index$4],start=this.start[last]+top$1.positions[index$4];if(start>pos)return this.nextStart=start,null;if(next instanceof Tree){if(start==pos){if(start<this.safeFrom)return null;let end=start+next.length;if(end<=this.safeTo){let lookAhead=next.prop(NodeProp.lookAhead);if(!lookAhead||end+lookAhead<this.fragment.to)return next}}this.index[last]++,start+next.length>=Math.max(this.safeFrom,pos)&&(this.trees.push(next),this.start.push(start),this.index.push(0))}else this.index[last]++,this.nextStart=start+next.length}}},TokenCache=class{constructor(parser$1,stream){this.stream=stream,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=parser$1.tokenizers.map(_$2=>new CachedToken)}getActions(stack){let actionIndex=0,main$1=null,{parser:parser$1}=stack.p,{tokenizers}=parser$1,mask=parser$1.stateSlot(stack.state,3),context=stack.curContext?stack.curContext.hash:0,lookAhead=0;for(let i$3=0;i$3<tokenizers.length;i$3++){if(!(1<<i$3&mask))continue;let tokenizer=tokenizers[i$3],token$1=this.tokens[i$3];if(!(main$1&&!tokenizer.fallback)&&((tokenizer.contextual||token$1.start!=stack.pos||token$1.mask!=mask||token$1.context!=context)&&(this.updateCachedToken(token$1,tokenizer,stack),token$1.mask=mask,token$1.context=context),token$1.lookAhead>token$1.end+25&&(lookAhead=Math.max(token$1.lookAhead,lookAhead)),token$1.value!=0)){let startIndex=actionIndex;if(token$1.extended>-1&&(actionIndex=this.addActions(stack,token$1.extended,token$1.end,actionIndex)),actionIndex=this.addActions(stack,token$1.value,token$1.end,actionIndex),!tokenizer.extend&&(main$1=token$1,actionIndex>startIndex))break}}for(;this.actions.length>actionIndex;)this.actions.pop();return lookAhead&&stack.setLookAhead(lookAhead),!main$1&&stack.pos==this.stream.end&&(main$1=new CachedToken,main$1.value=stack.p.parser.eofTerm,main$1.start=main$1.end=stack.pos,actionIndex=this.addActions(stack,main$1.value,main$1.end,actionIndex)),this.mainToken=main$1,this.actions}getMainToken(stack){if(this.mainToken)return this.mainToken;let main$1=new CachedToken,{pos,p:p$1}=stack;return main$1.start=pos,main$1.end=Math.min(pos+1,p$1.stream.end),main$1.value=pos==p$1.stream.end?p$1.parser.eofTerm:0,main$1}updateCachedToken(token$1,tokenizer,stack){let start=this.stream.clipPos(stack.pos);if(tokenizer.token(this.stream.reset(start,token$1),stack),token$1.value>-1){let{parser:parser$1}=stack.p;for(let i$3=0;i$3<parser$1.specialized.length;i$3++)if(parser$1.specialized[i$3]==token$1.value){let result=parser$1.specializers[i$3](this.stream.read(token$1.start,token$1.end),stack);if(result>=0&&stack.p.parser.dialect.allows(result>>1)){result&1?token$1.extended=result>>1:token$1.value=result>>1;break}}}else token$1.value=0,token$1.end=this.stream.clipPos(start+1)}putAction(action,token$1,end,index$4){for(let i$3=0;i$3<index$4;i$3+=3)if(this.actions[i$3]==action)return index$4;return this.actions[index$4++]=action,this.actions[index$4++]=token$1,this.actions[index$4++]=end,index$4}addActions(stack,token$1,end,index$4){let{state:state$1}=stack,{parser:parser$1}=stack.p,{data}=parser$1;for(let set=0;set<2;set++)for(let i$3=parser$1.stateSlot(state$1,set?2:1);;i$3+=3){if(data[i$3]==65535)if(data[i$3+1]==1)i$3=pair(data,i$3+2);else{index$4==0&&data[i$3+1]==2&&(index$4=this.putAction(pair(data,i$3+2),token$1,end,index$4));break}data[i$3]==token$1&&(index$4=this.putAction(pair(data,i$3+1),token$1,end,index$4))}return index$4}},Parse=class{constructor(parser$1,input,fragments,ranges){this.parser=parser$1,this.input=input,this.ranges=ranges,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new InputStream(input,ranges),this.tokens=new TokenCache(parser$1,this.stream),this.topTerm=parser$1.top[1];let{from}=ranges[0];this.stacks=[Stack.start(this,parser$1.top[0],from)],this.fragments=fragments.length&&this.stream.end-from>parser$1.bufferLength*4?new FragmentCursor(fragments,parser$1.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let stacks=this.stacks,pos=this.minStackPos,newStacks=this.stacks=[],stopped,stoppedTokens;if(this.bigReductionCount>300&&stacks.length==1){let[s$1]=stacks;for(;s$1.forceReduce()&&s$1.stack.length&&s$1.stack[s$1.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let i$3=0;i$3<stacks.length;i$3++){let stack=stacks[i$3];for(;;){if(this.tokens.mainToken=null,stack.pos>pos)newStacks.push(stack);else if(this.advanceStack(stack,newStacks,stacks))continue;else{stopped||(stopped=[],stoppedTokens=[]),stopped.push(stack);let tok=this.tokens.getMainToken(stack);stoppedTokens.push(tok.value,tok.end)}break}}if(!newStacks.length){let finished=stopped&&findFinished(stopped);if(finished)return verbose&&console.log(`Finish with `+this.stackID(finished)),this.stackToTree(finished);if(this.parser.strict)throw verbose&&stopped&&console.log(`Stuck with token `+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):`none`)),SyntaxError(`No parse at `+pos);this.recovering||=5}if(this.recovering&&stopped){let finished=this.stoppedAt!=null&&stopped[0].pos>this.stoppedAt?stopped[0]:this.runRecovery(stopped,stoppedTokens,newStacks);if(finished)return verbose&&console.log(`Force-finish `+this.stackID(finished)),this.stackToTree(finished.forceAll())}if(this.recovering){let maxRemaining=this.recovering==1?1:this.recovering*3;if(newStacks.length>maxRemaining)for(newStacks.sort((a$1,b$2)=>b$2.score-a$1.score);newStacks.length>maxRemaining;)newStacks.pop();newStacks.some(s$1=>s$1.reducePos>pos)&&this.recovering--}else if(newStacks.length>1){outer:for(let i$3=0;i$3<newStacks.length-1;i$3++){let stack=newStacks[i$3];for(let j$1=i$3+1;j$1<newStacks.length;j$1++){let other=newStacks[j$1];if(stack.sameState(other)||stack.buffer.length>500&&other.buffer.length>500)if((stack.score-other.score||stack.buffer.length-other.buffer.length)>0)newStacks.splice(j$1--,1);else{newStacks.splice(i$3--,1);continue outer}}}newStacks.length>12&&(newStacks.sort((a$1,b$2)=>b$2.score-a$1.score),newStacks.splice(12,newStacks.length-12))}this.minStackPos=newStacks[0].pos;for(let i$3=1;i$3<newStacks.length;i$3++)newStacks[i$3].pos<this.minStackPos&&(this.minStackPos=newStacks[i$3].pos);return null}stopAt(pos){if(this.stoppedAt!=null&&this.stoppedAt<pos)throw RangeError(`Can't move stoppedAt forward`);this.stoppedAt=pos}advanceStack(stack,stacks,split){let start=stack.pos,{parser:parser$1}=this,base$1=verbose?this.stackID(stack)+` -> `:``;if(this.stoppedAt!=null&&start>this.stoppedAt)return stack.forceReduce()?stack:null;if(this.fragments){let strictCx=stack.curContext&&stack.curContext.tracker.strict,cxHash=strictCx?stack.curContext.hash:0;for(let cached=this.fragments.nodeAt(start);cached;){let match=this.parser.nodeSet.types[cached.type.id]==cached.type?parser$1.getGoto(stack.state,cached.type.id):-1;if(match>-1&&cached.length&&(!strictCx||(cached.prop(NodeProp.contextHash)||0)==cxHash))return stack.useNode(cached,match),verbose&&console.log(base$1+this.stackID(stack)+` (via reuse of ${parser$1.getName(cached.type.id)})`),!0;if(!(cached instanceof Tree)||cached.children.length==0||cached.positions[0]>0)break;let inner=cached.children[0];if(inner instanceof Tree&&cached.positions[0]==0)cached=inner;else break}}let defaultReduce=parser$1.stateSlot(stack.state,4);if(defaultReduce>0)return stack.reduce(defaultReduce),verbose&&console.log(base$1+this.stackID(stack)+` (via always-reduce ${parser$1.getName(defaultReduce&65535)})`),!0;if(stack.stack.length>=8400)for(;stack.stack.length>6e3&&stack.forceReduce(););let actions=this.tokens.getActions(stack);for(let i$3=0;i$3<actions.length;){let action=actions[i$3++],term=actions[i$3++],end=actions[i$3++],last=i$3==actions.length||!split,localStack=last?stack:stack.split(),main$1=this.tokens.mainToken;if(localStack.apply(action,term,main$1?main$1.start:localStack.pos,end),verbose&&console.log(base$1+this.stackID(localStack)+` (via ${action&65536?`reduce of ${parser$1.getName(action&65535)}`:`shift`} for ${parser$1.getName(term)} @ ${start}${localStack==stack?``:`, split`})`),last)return!0;localStack.pos>start?stacks.push(localStack):split.push(localStack)}return!1}advanceFully(stack,newStacks){let pos=stack.pos;for(;;){if(!this.advanceStack(stack,null,null))return!1;if(stack.pos>pos)return pushStackDedup(stack,newStacks),!0}}runRecovery(stacks,tokens,newStacks){let finished=null,restarted=!1;for(let i$3=0;i$3<stacks.length;i$3++){let stack=stacks[i$3],token$1=tokens[i$3<<1],tokenEnd=tokens[(i$3<<1)+1],base$1=verbose?this.stackID(stack)+` -> `:``;if(stack.deadEnd&&(restarted||(restarted=!0,stack.restart(),verbose&&console.log(base$1+this.stackID(stack)+` (restarted)`),this.advanceFully(stack,newStacks))))continue;let force=stack.split(),forceBase=base$1;for(let j$1=0;j$1<10&&force.forceReduce()&&(verbose&&console.log(forceBase+this.stackID(force)+` (via force-reduce)`),!this.advanceFully(force,newStacks));j$1++)verbose&&(forceBase=this.stackID(force)+` -> `);for(let insert$1 of stack.recoverByInsert(token$1))verbose&&console.log(base$1+this.stackID(insert$1)+` (via recover-insert)`),this.advanceFully(insert$1,newStacks);this.stream.end>stack.pos?(tokenEnd==stack.pos&&(tokenEnd++,token$1=0),stack.recoverByDelete(token$1,tokenEnd),verbose&&console.log(base$1+this.stackID(stack)+` (via recover-delete ${this.parser.getName(token$1)})`),pushStackDedup(stack,newStacks)):(!finished||finished.score<force.score)&&(finished=force)}return finished}stackToTree(stack){return stack.close(),Tree.build({buffer:StackBufferCursor.create(stack),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:stack.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(stack){let id=(stackIDs||=new WeakMap).get(stack);return id||stackIDs.set(stack,id=String.fromCodePoint(this.nextStackID++)),id+stack}};function pushStackDedup(stack,newStacks){for(let i$3=0;i$3<newStacks.length;i$3++){let other=newStacks[i$3];if(other.pos==stack.pos&&other.sameState(stack)){newStacks[i$3].score<stack.score&&(newStacks[i$3]=stack);return}}newStacks.push(stack)}var Dialect=class{constructor(source,flags,disabled$1){this.source=source,this.flags=flags,this.disabled=disabled$1}allows(term){return!this.disabled||this.disabled[term]==0}},LRParser=class LRParser extends Parser{constructor(spec){if(super(),this.wrappers=[],spec.version!=14)throw RangeError(`Parser version (${spec.version}) doesn't match runtime version (14)`);let nodeNames=spec.nodeNames.split(` `);this.minRepeatTerm=nodeNames.length;for(let i$3=0;i$3<spec.repeatNodeCount;i$3++)nodeNames.push(``);let topTerms=Object.keys(spec.topRules).map(r$4=>spec.topRules[r$4][1]),nodeProps=[];for(let i$3=0;i$3<nodeNames.length;i$3++)nodeProps.push([]);function setProp$1(nodeID,prop,value){nodeProps[nodeID].push([prop,prop.deserialize(String(value))])}if(spec.nodeProps)for(let propSpec of spec.nodeProps){let prop=propSpec[0];typeof prop==`string`&&(prop=NodeProp[prop]);for(let i$3=1;i$3<propSpec.length;){let next=propSpec[i$3++];if(next>=0)setProp$1(next,prop,propSpec[i$3++]);else{let value=propSpec[i$3+-next];for(let j$1=-next;j$1>0;j$1--)setProp$1(propSpec[i$3++],prop,value);i$3++}}}this.nodeSet=new NodeSet(nodeNames.map((name$2,i$3)=>NodeType.define({name:i$3>=this.minRepeatTerm?void 0:name$2,id:i$3,props:nodeProps[i$3],top:topTerms.indexOf(i$3)>-1,error:i$3==0,skipped:spec.skippedNodes&&spec.skippedNodes.indexOf(i$3)>-1}))),spec.propSources&&(this.nodeSet=this.nodeSet.extend(...spec.propSources)),this.strict=!1,this.bufferLength=DefaultBufferLength;let tokenArray=decodeArray(spec.tokenData);this.context=spec.context,this.specializerSpecs=spec.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let i$3=0;i$3<this.specializerSpecs.length;i$3++)this.specialized[i$3]=this.specializerSpecs[i$3].term;this.specializers=this.specializerSpecs.map(getSpecializer),this.states=decodeArray(spec.states,Uint32Array),this.data=decodeArray(spec.stateData),this.goto=decodeArray(spec.goto),this.maxTerm=spec.maxTerm,this.tokenizers=spec.tokenizers.map(value=>typeof value==`number`?new TokenGroup(tokenArray,value):value),this.topRules=spec.topRules,this.dialects=spec.dialects||{},this.dynamicPrecedences=spec.dynamicPrecedences||null,this.tokenPrecTable=spec.tokenPrec,this.termNames=spec.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(input,fragments,ranges){let parse$2=new Parse(this,input,fragments,ranges);for(let w$2 of this.wrappers)parse$2=w$2(parse$2,input,fragments,ranges);return parse$2}getGoto(state$1,term,loose=!1){let table$1=this.goto;if(term>=table$1[0])return-1;for(let pos=table$1[term+1];;){let groupTag=table$1[pos++],last=groupTag&1,target=table$1[pos++];if(last&&loose)return target;for(let end=pos+(groupTag>>1);pos<end;pos++)if(table$1[pos]==state$1)return target;if(last)return-1}}hasAction(state$1,terminal){let data=this.data;for(let set=0;set<2;set++)for(let i$3=this.stateSlot(state$1,set?2:1),next;;i$3+=3){if((next=data[i$3])==65535)if(data[i$3+1]==1)next=data[i$3=pair(data,i$3+2)];else if(data[i$3+1]==2)return pair(data,i$3+2);else break;if(next==terminal||next==0)return pair(data,i$3+1)}return 0}stateSlot(state$1,slot){return this.states[state$1*6+slot]}stateFlag(state$1,flag){return(this.stateSlot(state$1,0)&flag)>0}validAction(state$1,action){return!!this.allActions(state$1,a$1=>a$1==action?!0:null)}allActions(state$1,action){let deflt=this.stateSlot(state$1,4),result=deflt?action(deflt):void 0;for(let i$3=this.stateSlot(state$1,1);result==null;i$3+=3){if(this.data[i$3]==65535)if(this.data[i$3+1]==1)i$3=pair(this.data,i$3+2);else break;result=action(pair(this.data,i$3+1))}return result}nextStates(state$1){let result=[];for(let i$3=this.stateSlot(state$1,1);;i$3+=3){if(this.data[i$3]==65535)if(this.data[i$3+1]==1)i$3=pair(this.data,i$3+2);else break;if(!(this.data[i$3+2]&1)){let value=this.data[i$3+1];result.some((v$1,i$4)=>i$4&1&&v$1==value)||result.push(this.data[i$3],value)}}return result}configure(config$1){let copy=Object.assign(Object.create(LRParser.prototype),this);if(config$1.props&&(copy.nodeSet=this.nodeSet.extend(...config$1.props)),config$1.top){let info=this.topRules[config$1.top];if(!info)throw RangeError(`Invalid top rule name ${config$1.top}`);copy.top=info}return config$1.tokenizers&&(copy.tokenizers=this.tokenizers.map(t$1=>{let found=config$1.tokenizers.find(r$4=>r$4.from==t$1);return found?found.to:t$1})),config$1.specializers&&(copy.specializers=this.specializers.slice(),copy.specializerSpecs=this.specializerSpecs.map((s$1,i$3)=>{let found=config$1.specializers.find(r$4=>r$4.from==s$1.external);if(!found)return s$1;let spec=Object.assign(Object.assign({},s$1),{external:found.to});return copy.specializers[i$3]=getSpecializer(spec),spec})),config$1.contextTracker&&(copy.context=config$1.contextTracker),config$1.dialect&&(copy.dialect=this.parseDialect(config$1.dialect)),config$1.strict!=null&&(copy.strict=config$1.strict),config$1.wrap&&(copy.wrappers=copy.wrappers.concat(config$1.wrap)),config$1.bufferLength!=null&&(copy.bufferLength=config$1.bufferLength),copy}hasWrappers(){return this.wrappers.length>0}getName(term){return this.termNames?this.termNames[term]:String(term<=this.maxNode&&this.nodeSet.types[term].name||term)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(term){let prec$1=this.dynamicPrecedences;return prec$1==null?0:prec$1[term]||0}parseDialect(dialect){let values=Object.keys(this.dialects),flags=values.map(()=>!1);if(dialect)for(let part of dialect.split(` `)){let id=values.indexOf(part);id>=0&&(flags[id]=!0)}let disabled$1=null;for(let i$3=0;i$3<values.length;i$3++)if(!flags[i$3])for(let j$1=this.dialects[values[i$3]],id;(id=this.data[j$1++])!=65535;)(disabled$1||=new Uint8Array(this.maxTerm+1))[id]=1;return new Dialect(dialect,flags,disabled$1)}static deserialize(spec){return new LRParser(spec)}};function pair(data,off){return data[off]|data[off+1]<<16}function findFinished(stacks){let best=null;for(let stack of stacks){let stopped=stack.p.stoppedAt;(stack.pos==stack.p.stream.end||stopped!=null&&stack.pos>stopped)&&stack.p.parser.stateFlag(stack.state,2)&&(!best||best.score<stack.score)&&(best=stack)}return best}function getSpecializer(spec){if(spec.external){let mask=spec.extend?1:0;return(value,stack)=>spec.external(value,stack)<<1|mask}return spec.get}var jsonHighlighting=styleTags({String:tags.string,Number:tags.number,"True False":tags.bool,PropertyName:tags.propertyName,Null:tags.null,", :":tags.separator,"[ ]":tags.squareBracket,"{ }":tags.brace}),parser=LRParser.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:`#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O`,goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:`⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array`,maxTerm:25,nodeProps:[[`isolate`,-2,6,11,``],[`openedBy`,7,`{`,14,`[`],[`closedBy`,8,`}`,15,`]`]],propSources:[jsonHighlighting],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),jsonLanguage=LRLanguage.define({name:`json`,parser:parser.configure({props:[indentNodeProp.add({Object:continuedIndent({except:/^\s*\}/}),Array:continuedIndent({except:/^\s*\]/})}),foldNodeProp.add({"Object Array":foldInside})]}),languageData:{closeBrackets:{brackets:[`[`,`{`,`"`]},indentOnInput:/^\s*[\}\]]$/}});function json(){return new LanguageSupport(jsonLanguage)}var baseTheme=EditorView.theme({"&":{fontSize:`13px`,backgroundColor:`transparent`},".cm-content":{padding:`0`,fontFamily:`ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace`},".cm-line":{padding:`0`},".cm-gutters":{display:`none`},"&.cm-focused":{outline:`none`},".cm-scroller":{overflow:`auto`}});function JsonViewer({value,className}){let containerRef=(0,import_react.useRef)(null),viewRef=(0,import_react.useRef)(null);return(0,import_react.useEffect)(()=>{if(!containerRef.current)return;let view=new EditorView({state:EditorState.create({doc:value,extensions:[json(),syntaxHighlighting(defaultHighlightStyle),baseTheme,EditorState.readOnly.of(!0),EditorView.editable.of(!1),EditorView.lineWrapping]}),parent:containerRef.current});return viewRef.current=view,()=>{view.destroy(),viewRef.current=null}},[value]),(0,import_jsx_runtime.jsx)(`div`,{ref:containerRef,className})}var import_react_dom$2=require_react_dom();function CopyButton({value}){let[copied,setCopied]=(0,import_react.useState)(!1);return(0,import_jsx_runtime.jsx)(`button`,{onClick:(0,import_react.useCallback)(async()=>{await navigator.clipboard.writeText(value),setCopied(!0),setTimeout(()=>setCopied(!1),1500)},[value]),className:`p-1 rounded hover:bg-accent text-gray-400 hover:text-gray-600 transition-colors`,title:`Copy to clipboard`,children:copied?(0,import_jsx_runtime.jsx)(Check,{className:`w-3.5 h-3.5 text-green-500`}):(0,import_jsx_runtime.jsx)(Copy,{className:`w-3.5 h-3.5`})})}function isJsonType$1(type){return type===`json`||type===`jsonb`}function HighlightedText$1({text:text$5,search:search$1}){if(!search$1)return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:text$5});let lowerText=text$5.toLowerCase(),lowerSearch=search$1.toLowerCase(),parts=[],lastIndex=0,index$4=lowerText.indexOf(lowerSearch);for(;index$4!==-1;)index$4>lastIndex&&parts.push({text:text$5.slice(lastIndex,index$4),highlight:!1}),parts.push({text:text$5.slice(index$4,index$4+search$1.length),highlight:!0}),lastIndex=index$4+search$1.length,index$4=lowerText.indexOf(lowerSearch,lastIndex);return lastIndex<text$5.length&&parts.push({text:text$5.slice(lastIndex),highlight:!1}),(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:parts.map((part,i$3)=>part.highlight?(0,import_jsx_runtime.jsx)(`mark`,{className:`bg-yellow-200 rounded-sm`,children:part.text},i$3):(0,import_jsx_runtime.jsx)(`span`,{children:part.text},i$3))})}function formatValue(value,type){if(value==null)return``;if(isJsonType$1(type))try{let parsed=typeof value==`string`?JSON.parse(value):value;return JSON.stringify(parsed,null,2)}catch{return String(value)}return String(value)}var valueBaseStyles=`w-full px-2 py-1.5 text-xs bg-gray-50 border border-gray-200 rounded`;function ValueRenderer({value,search:search$1,isJson,isStaged:isStaged$1}){let isMultiline=value.includes(`
82
82
  `)||value.length>50,stagedStyles=isStaged$1?`bg-amber-50 border-amber-200`:``;return isJson&&!search$1?(0,import_jsx_runtime.jsx)(`div`,{className:`${valueBaseStyles} ${stagedStyles} min-h-[80px] max-h-64 overflow-auto`,children:(0,import_jsx_runtime.jsx)(JsonViewer,{value})}):(0,import_jsx_runtime.jsx)(`div`,{className:`${valueBaseStyles} ${stagedStyles} ${isMultiline?`min-h-[80px] max-h-64 overflow-auto whitespace-pre-wrap break-words`:`min-h-[28px] truncate`}`,children:(0,import_jsx_runtime.jsx)(HighlightedText$1,{text:value,search:search$1})})}function EditableField({value,colType,isNullable,hasDefault,isNewRow,onChange,onSetNull,onSetDefault,autoFocus}){let inputRef=(0,import_react.useRef)(null),isNull=value===null,isDefault=value===void 0,isJson=isJsonType$1(colType),isBool=colType===`boolean`||colType===`bool`;(0,import_react.useEffect)(()=>{autoFocus&&setTimeout(()=>inputRef.current?.focus(),0)},[autoFocus]);let editValue=isNull||isDefault?``:isJson?typeof value==`string`?value:JSON.stringify(value,null,2):String(value),isMultiline=isJson||editValue.includes(`
83
- `)||editValue.length>100,showDefaultCheckbox=isNewRow&&hasDefault;return isBool?(0,import_jsx_runtime.jsx)(`div`,{className:`space-y-1`,children:(0,import_jsx_runtime.jsxs)(`select`,{ref:inputRef,value:isDefault?`default`:isNull?`null`:String(value),onChange:e=>{e.target.value===`null`?onSetNull():e.target.value===`default`?onSetDefault():onChange(e.target.value)},className:`w-full px-2 py-1.5 text-xs bg-white border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500`,children:[showDefaultCheckbox&&(0,import_jsx_runtime.jsx)(`option`,{value:`default`,children:`DEFAULT`}),isNullable&&(0,import_jsx_runtime.jsx)(`option`,{value:`null`,children:`null`}),(0,import_jsx_runtime.jsx)(`option`,{value:`true`,children:`true`}),(0,import_jsx_runtime.jsx)(`option`,{value:`false`,children:`false`})]})}):(0,import_jsx_runtime.jsxs)(`div`,{className:`space-y-1`,children:[isDefault?(0,import_jsx_runtime.jsx)(`div`,{className:`${valueBaseStyles} bg-gray-100 italic text-gray-500`,children:`DEFAULT`}):isMultiline?(0,import_jsx_runtime.jsx)(`textarea`,{ref:inputRef,value:editValue,onChange:e=>onChange(e.target.value),placeholder:isNull?`null`:``,className:`w-full px-2 py-1.5 text-xs bg-white border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 min-h-[80px] max-h-64 resize-y font-mono`,rows:4}):(0,import_jsx_runtime.jsx)(`input`,{ref:inputRef,type:`text`,value:editValue,onChange:e=>onChange(e.target.value),placeholder:isNull?`null`:``,className:`w-full px-2 py-1.5 text-xs bg-white border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500`}),(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-4`,children:[showDefaultCheckbox&&(0,import_jsx_runtime.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs text-gray-500`,children:[(0,import_jsx_runtime.jsx)(`input`,{type:`checkbox`,checked:isDefault,onChange:e=>{e.target.checked?onSetDefault():onChange(``)},className:`rounded border-gray-300`}),`Use DEFAULT`]}),isNullable&&!isDefault&&(0,import_jsx_runtime.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs text-gray-500`,children:[(0,import_jsx_runtime.jsx)(`input`,{type:`checkbox`,checked:isNull,onChange:e=>{e.target.checked?onSetNull():onChange(``)},className:`rounded border-gray-300`}),`Set to NULL`]})]})]})}function RowDetailPanel({row,columns,open,onClose,onPrevious,onNext,hasPrevious,hasNext,scrollToColumn,currentIndex,totalCount,onExpandJson,onEdit,isEditing,onCancelEdit,onSaveEdit,onDelete,stagedType,stagedOverrides,onDiscardStaged,autoEditColumn,onAutoEditHandled,isNewRow}){let[search$1,setSearch]=(0,import_react.useState)(``),[highlightedColumn,setHighlightedColumn]=(0,import_react.useState)(null),[editedValues,setEditedValues]=(0,import_react.useState)({}),columnRefs=(0,import_react.useRef)(new Map),contentRef=(0,import_react.useRef)(null);(0,import_react.useEffect)(()=>{setEditedValues(isEditing?{...row}:{})},[isEditing,row]);let handleFieldChange=(0,import_react.useCallback)((colName,value,colType)=>{setEditedValues(prev=>{if(colType===`integer`||colType===`int4`||colType===`int8`||colType===`bigint`||colType===`smallint`){let num=parseInt(value,10);return{...prev,[colName]:isNaN(num)?value:num}}if(colType===`numeric`||colType===`decimal`||colType===`real`||colType===`float4`||colType===`float8`||colType===`double precision`){let num=parseFloat(value);return{...prev,[colName]:isNaN(num)?value:num}}return colType===`boolean`||colType===`bool`?{...prev,[colName]:value.toLowerCase()===`true`}:{...prev,[colName]:value}})},[]),handleSave=(0,import_react.useCallback)(()=>{onSaveEdit&&onSaveEdit(editedValues)},[editedValues,onSaveEdit]),missingRequiredPK=(0,import_react.useMemo)(()=>isNewRow?columns.some(col=>{if(!col.isPrimaryKey)return!1;let value=editedValues[col.name];return col.hasDefault&&value===void 0?!1:value===``||value==null}):!1,[columns,editedValues,isNewRow]),hasChanges=(0,import_react.useMemo)(()=>isNewRow?!missingRequiredPK:columns.some(col=>editedValues[col.name]!==row[col.name]),[columns,editedValues,row,isNewRow,missingRequiredPK]),filteredColumns=(0,import_react.useMemo)(()=>{if(!search$1)return columns;let lowerSearch=search$1.toLowerCase();return columns.filter(col=>{let colMatch=col.name.toLowerCase().includes(lowerSearch),value=row[col.name],valueMatch=value!=null&&String(value).toLowerCase().includes(lowerSearch);return colMatch||valueMatch})},[columns,row,search$1]);return(0,import_react.useEffect)(()=>{setSearch(``)},[row]),(0,import_react.useEffect)(()=>{open&&scrollToColumn?(requestAnimationFrame(()=>{let element$3=columnRefs.current.get(scrollToColumn);element$3&&contentRef.current&&element$3.scrollIntoView({behavior:`instant`,block:`center`})}),setHighlightedColumn(scrollToColumn)):setHighlightedColumn(null)},[open,scrollToColumn]),(0,import_react.useEffect)(()=>{if(open&&isEditing&&autoEditColumn){let timer=setTimeout(()=>onAutoEditHandled?.(),50);return()=>clearTimeout(timer)}},[open,isEditing,autoEditColumn,onAutoEditHandled]),useKeyboardShortcut(`row-detail-close`,`Escape`,()=>{isEditing&&onCancelEdit?onCancelEdit():onClose()},{when:()=>open}),open?(0,import_react_dom$2.createPortal)((0,import_jsx_runtime.jsxs)(`div`,{className:`fixed top-0 right-0 h-full w-96 bg-white border-l border-gray-200 shadow-lg flex flex-col z-50`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`shrink-0 px-2 py-2 flex flex-col gap-2`,children:[(0,import_jsx_runtime.jsx)(`div`,{className:`flex items-center justify-between`,children:isEditing?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`span`,{className:`text-xs font-medium text-gray-700`,children:isNewRow?`New row`:`Editing row`}),(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`sm`,onClick:onCancelEdit,tabIndex:-1,children:`Cancel`}),(0,import_jsx_runtime.jsx)(Button,{variant:`default`,size:`sm`,onClick:handleSave,disabled:!hasChanges,tabIndex:-1,children:`Save`})]})]}):(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`sm`,className:`p-1 h-auto`,onClick:onPrevious,disabled:!hasPrevious,title:`Previous row (k or ↑)`,tabIndex:-1,children:(0,import_jsx_runtime.jsx)(ChevronUp,{className:`w-4 h-4`})}),(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`sm`,className:`p-1 h-auto`,onClick:onNext,disabled:!hasNext,title:`Next row (j or ↓)`,tabIndex:-1,children:(0,import_jsx_runtime.jsx)(ChevronDown,{className:`w-4 h-4`})}),(0,import_jsx_runtime.jsxs)(`span`,{className:`text-xs text-gray-500 ml-1`,children:[currentIndex,`/`,totalCount]})]}),(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-1`,children:[onEdit&&(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{className:`p-1 rounded hover:text-blue-600 hover:bg-blue-50 disabled:text-gray-300 disabled:hover:bg-transparent disabled:cursor-not-allowed`,onClick:stagedType?void 0:onEdit,disabled:!!stagedType,tabIndex:-1,children:(0,import_jsx_runtime.jsx)(Pencil,{className:`w-4 h-4`})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{children:stagedType?`Cannot edit row staged for ${stagedType}`:`Edit row`})]}),onDelete&&(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{className:`p-1 rounded text-red-500 hover:text-red-600 hover:bg-red-50 disabled:text-gray-300 disabled:hover:bg-transparent disabled:cursor-not-allowed`,onClick:stagedType?void 0:onDelete,disabled:!!stagedType,tabIndex:-1,children:(0,import_jsx_runtime.jsx)(Trash2,{className:`w-4 h-4`})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{children:stagedType?`Row already staged for ${stagedType}`:`Stage row for deletion`})]}),stagedType&&onDiscardStaged&&(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{className:`p-1 rounded text-amber-600 hover:text-amber-700 hover:bg-amber-50`,onClick:onDiscardStaged,tabIndex:-1,children:(0,import_jsx_runtime.jsx)(Undo2,{className:`w-4 h-4`})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{children:`Discard staged change`})]}),(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`sm`,className:`p-1 h-auto`,onClick:onClose,tabIndex:-1,children:(0,import_jsx_runtime.jsx)(X,{className:`w-4 h-4`})})]})]})}),!isEditing&&(0,import_jsx_runtime.jsx)(SearchInput,{value:search$1,onChange:e=>setSearch(e.target.value),onClear:()=>setSearch(``),size:`sm`})]}),(0,import_jsx_runtime.jsx)(`div`,{ref:contentRef,className:`flex-1 overflow-auto p-3 space-y-3`,children:filteredColumns.length===0?(0,import_jsx_runtime.jsx)(`div`,{className:`text-xs text-gray-400 text-center py-4`,children:`No matching columns`}):filteredColumns.map(col=>{let{name:colName,type:colType}=col,value=isEditing&&colName in editedValues?editedValues[colName]:row[colName],isNull=value===null,isUndefined=value===void 0,formattedValue=formatValue(value,colType),isModified=isEditing&&editedValues[colName]!==row[colName],isStaged$1=!isEditing&&stagedOverrides&&colName in stagedOverrides,showDefault=isUndefined&&stagedType===`insert`&&!isEditing;return(0,import_jsx_runtime.jsxs)(`div`,{ref:el=>{el?columnRefs.current.set(colName,el):columnRefs.current.delete(colName)},children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,import_jsx_runtime.jsxs)(`span`,{className:`text-xs font-medium truncate ${isModified||isStaged$1?`text-amber-600`:highlightedColumn===colName?`text-blue-600`:`text-gray-700`}`,children:[isEditing?colName:(0,import_jsx_runtime.jsx)(HighlightedText$1,{text:colName,search:search$1}),col.isPrimaryKey&&isNewRow&&!col.hasDefault&&(0,import_jsx_runtime.jsx)(`span`,{className:`ml-1 text-red-500`,children:`*`}),col.isPrimaryKey&&(0,import_jsx_runtime.jsxs)(`span`,{className:`ml-1 text-gray-400`,children:[`(PK`,isNewRow&&!col.hasDefault?`, required`:``,`)`]}),col.hasDefault&&(0,import_jsx_runtime.jsx)(`span`,{className:`ml-1 text-gray-400`,children:`(has default)`}),(isModified||isStaged$1)&&(0,import_jsx_runtime.jsx)(`span`,{className:`ml-1 text-amber-500`,children:`*`})]}),(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,import_jsx_runtime.jsx)(`span`,{className:`text-xs text-gray-400`,children:colType}),!isEditing&&isJsonType$1(colType)&&!isNull&&!isUndefined&&onExpandJson&&(0,import_jsx_runtime.jsx)(`button`,{onClick:()=>onExpandJson(value,colName),className:`p-1 rounded hover:bg-accent text-gray-400 hover:text-gray-600 transition-colors`,title:`Expand JSON`,children:(0,import_jsx_runtime.jsx)(Expand,{className:`w-3.5 h-3.5`})}),!isEditing&&!showDefault&&(0,import_jsx_runtime.jsx)(CopyButton,{value:formattedValue})]})]}),isEditing?(0,import_jsx_runtime.jsx)(EditableField,{value,colType,isNullable:col.isNullable,hasDefault:col.hasDefault,isNewRow:isNewRow||!1,onChange:newValue=>handleFieldChange(colName,newValue,colType),onSetNull:()=>setEditedValues(prev=>({...prev,[colName]:null})),onSetDefault:()=>setEditedValues(prev=>({...prev,[colName]:void 0})),autoFocus:autoEditColumn===colName}):showDefault?(0,import_jsx_runtime.jsx)(`div`,{className:`${valueBaseStyles} bg-green-50 border-green-200 italic text-gray-500`,children:`DEFAULT`}):isNull?(0,import_jsx_runtime.jsx)(`div`,{className:`${valueBaseStyles} ${isStaged$1?`bg-amber-50 border-amber-200`:``} italic text-gray-400`,children:`null`}):(0,import_jsx_runtime.jsx)(ValueRenderer,{value:formattedValue,search:search$1,isJson:isJsonType$1(colType),isStaged:isStaged$1})]},colName)})})]}),document.body):null}const DialogRootContext=import_react.createContext(void 0);function useDialogRootContext(optional){let dialogRootContext=import_react.useContext(DialogRootContext);if(optional===!1&&dialogRootContext===void 0)throw Error(formatErrorMessage(27));return dialogRootContext}var stateAttributesMapping$5={...popupStateMapping,...transitionStatusMapping};const DialogBackdrop$1=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,forceRender=!1,...elementProps}=componentProps,{store}=useDialogRootContext(),open=store.useState(`open`),nested=store.useState(`nested`),mounted=store.useState(`mounted`),transitionStatus=store.useState(`transitionStatus`);return useRenderElement(`div`,componentProps,{state:import_react.useMemo(()=>({open,transitionStatus}),[open,transitionStatus]),ref:[store.context.backdropRef,forwardedRef],stateAttributesMapping:stateAttributesMapping$5,props:[{role:`presentation`,hidden:!mounted,style:{userSelect:`none`,WebkitUserSelect:`none`}},elementProps],enabled:forceRender||!nested})}),DialogClose=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,disabled:disabled$1=!1,nativeButton=!0,...elementProps}=componentProps,{store}=useDialogRootContext(),open=store.useState(`open`);function handleClick(event){open&&store.setOpen(!1,createChangeEventDetails(`close-press`,event.nativeEvent))}let{getButtonProps,buttonRef}=useButton({disabled:disabled$1,native:nativeButton});return useRenderElement(`button`,componentProps,{state:import_react.useMemo(()=>({disabled:disabled$1}),[disabled$1]),ref:[forwardedRef,buttonRef],props:[{onClick:handleClick},elementProps,getButtonProps]})}),DialogDescription$1=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,id:idProp,...elementProps}=componentProps,{store}=useDialogRootContext(),id=useBaseUiId(idProp);return store.useSyncedValueWithCleanup(`descriptionElementId`,id),useRenderElement(`p`,componentProps,{ref:forwardedRef,props:[{id},elementProps]})});let DialogPopupCssVars=function(DialogPopupCssVars$1){return DialogPopupCssVars$1.nestedDialogs=`--nested-dialogs`,DialogPopupCssVars$1}({}),DialogPopupDataAttributes=function(DialogPopupDataAttributes$1){return DialogPopupDataAttributes$1[DialogPopupDataAttributes$1.open=CommonPopupDataAttributes.open]=`open`,DialogPopupDataAttributes$1[DialogPopupDataAttributes$1.closed=CommonPopupDataAttributes.closed]=`closed`,DialogPopupDataAttributes$1[DialogPopupDataAttributes$1.startingStyle=CommonPopupDataAttributes.startingStyle]=`startingStyle`,DialogPopupDataAttributes$1[DialogPopupDataAttributes$1.endingStyle=CommonPopupDataAttributes.endingStyle]=`endingStyle`,DialogPopupDataAttributes$1.nested=`data-nested`,DialogPopupDataAttributes$1.nestedDialogOpen=`data-nested-dialog-open`,DialogPopupDataAttributes$1}({});const DialogPortalContext=import_react.createContext(void 0);function useDialogPortalContext(){let value=import_react.useContext(DialogPortalContext);if(value===void 0)throw Error(formatErrorMessage(26));return value}var stateAttributesMapping$4={...popupStateMapping,...transitionStatusMapping,nestedDialogOpen(value){return value?{[DialogPopupDataAttributes.nestedDialogOpen]:``}:null}};const DialogPopup$1=import_react.forwardRef(function(componentProps,forwardedRef){let{className,finalFocus,initialFocus,render,...elementProps}=componentProps,{store}=useDialogRootContext(),descriptionElementId=store.useState(`descriptionElementId`),disablePointerDismissal=store.useState(`disablePointerDismissal`),floatingRootContext=store.useState(`floatingRootContext`),rootPopupProps=store.useState(`popupProps`),modal=store.useState(`modal`),mounted=store.useState(`mounted`),nested=store.useState(`nested`),nestedOpenDialogCount=store.useState(`nestedOpenDialogCount`),open=store.useState(`open`),openMethod=store.useState(`openMethod`),titleElementId=store.useState(`titleElementId`),transitionStatus=store.useState(`transitionStatus`),role=store.useState(`role`);useDialogPortalContext(),useOpenChangeComplete({open,ref:store.context.popupRef,onComplete(){open&&store.context.onOpenChangeComplete?.(!0)}});function defaultInitialFocus(interactionType){return interactionType===`touch`?store.context.popupRef.current:!0}let resolvedInitialFocus=initialFocus===void 0?defaultInitialFocus:initialFocus,nestedDialogOpen=nestedOpenDialogCount>0,element$3=useRenderElement(`div`,componentProps,{state:import_react.useMemo(()=>({open,nested,transitionStatus,nestedDialogOpen}),[open,nested,transitionStatus,nestedDialogOpen]),props:[rootPopupProps,{"aria-labelledby":titleElementId??void 0,"aria-describedby":descriptionElementId??void 0,role,tabIndex:-1,hidden:!mounted,onKeyDown(event){COMPOSITE_KEYS.has(event.key)&&event.stopPropagation()},style:{[DialogPopupCssVars.nestedDialogs]:nestedOpenDialogCount}},elementProps],ref:[forwardedRef,store.context.popupRef,store.useStateSetter(`popupElement`)],stateAttributesMapping:stateAttributesMapping$4});return(0,import_jsx_runtime.jsx)(FloatingFocusManager,{context:floatingRootContext,openInteractionType:openMethod,disabled:!mounted,closeOnFocusOut:!disablePointerDismissal,initialFocus:resolvedInitialFocus,returnFocus:finalFocus,modal:modal!==!1,restoreFocus:`popup`,children:element$3})}),DialogPortal$1=import_react.forwardRef(function(props,forwardedRef){let{keepMounted=!1,...portalProps}=props,{store}=useDialogRootContext(),mounted=store.useState(`mounted`),modal=store.useState(`modal`),open=store.useState(`open`);return mounted||keepMounted?(0,import_jsx_runtime.jsx)(DialogPortalContext.Provider,{value:keepMounted,children:(0,import_jsx_runtime.jsxs)(FloatingPortal,{ref:forwardedRef,...portalProps,children:[mounted&&modal===!0&&(0,import_jsx_runtime.jsx)(InternalBackdrop,{ref:store.context.internalBackdropRef,inert:inertValue(!open)}),props.children]})}):null});function useDialogRoot(params){let{store,parentContext,actionsRef}=params,open=store.useState(`open`),disablePointerDismissal=store.useState(`disablePointerDismissal`),modal=store.useState(`modal`),popupElement=store.useState(`popupElement`),{openMethod,triggerProps,reset:resetOpenInteractionType}=useOpenInteractionType(open);useImplicitActiveTrigger(store);let{forceUnmount}=useOpenStateTransitions(open,store,()=>{resetOpenInteractionType()}),createDialogEventDetails=useStableCallback(reason=>{let details=createChangeEventDetails(reason);return details.preventUnmountOnClose=()=>{store.set(`preventUnmountingOnClose`,!0)},details}),handleImperativeClose=import_react.useCallback(()=>{store.setOpen(!1,createDialogEventDetails(imperativeAction))},[store,createDialogEventDetails]);import_react.useImperativeHandle(actionsRef,()=>({unmount:forceUnmount,close:handleImperativeClose}),[forceUnmount,handleImperativeClose]);let floatingRootContext=useSyncedFloatingRootContext({popupStore:store,onOpenChange:store.setOpen,treatPopupAsFloatingElement:!0,noEmit:!0}),[ownNestedOpenDialogs,setOwnNestedOpenDialogs]=import_react.useState(0),isTopmost=ownNestedOpenDialogs===0,role=useRole(floatingRootContext),dismiss=useDismiss(floatingRootContext,{outsidePressEvent(){return store.context.internalBackdropRef.current||store.context.backdropRef.current?`intentional`:{mouse:modal===`trap-focus`?`sloppy`:`intentional`,touch:`sloppy`}},outsidePress(event){if(`button`in event&&event.button!==0||`touches`in event&&event.touches.length!==1)return!1;let target=getTarget(event);if(isTopmost&&!disablePointerDismissal){let eventTarget=target;return modal&&(store.context.internalBackdropRef.current||store.context.backdropRef.current)?store.context.internalBackdropRef.current===eventTarget||store.context.backdropRef.current===eventTarget||contains(eventTarget,popupElement)&&!eventTarget?.hasAttribute(`data-base-ui-portal`):!0}return!1},escapeKey:isTopmost});useScrollLock(open&&modal===!0,popupElement);let{getReferenceProps,getFloatingProps,getTriggerProps}=useInteractions([role,dismiss]);store.useContextCallback(`onNestedDialogOpen`,ownChildrenCount=>{setOwnNestedOpenDialogs(ownChildrenCount+1)}),store.useContextCallback(`onNestedDialogClose`,()=>{setOwnNestedOpenDialogs(0)}),import_react.useEffect(()=>(parentContext?.onNestedDialogOpen&&open&&parentContext.onNestedDialogOpen(ownNestedOpenDialogs),parentContext?.onNestedDialogClose&&!open&&parentContext.onNestedDialogClose(),()=>{parentContext?.onNestedDialogClose&&open&&parentContext.onNestedDialogClose()}),[open,parentContext,ownNestedOpenDialogs]);let activeTriggerProps=import_react.useMemo(()=>getReferenceProps(triggerProps),[getReferenceProps,triggerProps]),inactiveTriggerProps=import_react.useMemo(()=>getTriggerProps(triggerProps),[getTriggerProps,triggerProps]),popupProps=import_react.useMemo(()=>getFloatingProps(),[getFloatingProps]);store.useSyncedValues({openMethod,activeTriggerProps,inactiveTriggerProps,popupProps,floatingRootContext,nestedOpenDialogCount:ownNestedOpenDialogs})}var selectors={...popupStoreSelectors,modal:createSelector(state$1=>state$1.modal),nested:createSelector(state$1=>state$1.nested),nestedOpenDialogCount:createSelector(state$1=>state$1.nestedOpenDialogCount),disablePointerDismissal:createSelector(state$1=>state$1.disablePointerDismissal),openMethod:createSelector(state$1=>state$1.openMethod),descriptionElementId:createSelector(state$1=>state$1.descriptionElementId),titleElementId:createSelector(state$1=>state$1.titleElementId),viewportElement:createSelector(state$1=>state$1.viewportElement),role:createSelector(state$1=>state$1.role)},DialogStore=class extends ReactStore{constructor(initialState){super(createInitialState(initialState),{popupRef:import_react.createRef(),backdropRef:import_react.createRef(),internalBackdropRef:import_react.createRef(),triggerElements:new PopupTriggerMap,onOpenChange:void 0,onOpenChangeComplete:void 0},selectors)}setOpen=(nextOpen,eventDetails)=>{if(eventDetails.preventUnmountOnClose=()=>{this.set(`preventUnmountingOnClose`,!0)},!nextOpen&&eventDetails.trigger==null&&this.state.activeTriggerId!=null&&(eventDetails.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(nextOpen,eventDetails),eventDetails.isCanceled)return;let details={open:nextOpen,nativeEvent:eventDetails.event,reason:eventDetails.reason,nested:this.state.nested};this.state.floatingRootContext.context.events?.emit(`openchange`,details);let updatedState={open:nextOpen},newTriggerId=eventDetails.trigger?.id??null;(newTriggerId||nextOpen)&&(updatedState.activeTriggerId=newTriggerId,updatedState.activeTriggerElement=eventDetails.trigger??null),this.update(updatedState)}};function createInitialState(initialState={}){return{...createInitialPopupStoreState(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,role:`dialog`,...initialState}}function DialogRoot(props){let{children,open:openProp,defaultOpen=!1,onOpenChange,onOpenChangeComplete,disablePointerDismissal=!1,modal=!0,actionsRef,handle:handle$1,triggerId:triggerIdProp,defaultTriggerId:defaultTriggerIdProp=null}=props,parentDialogRootContext=useDialogRootContext(!0),nested=!!parentDialogRootContext,store=useRefWithInit(()=>handle$1?.store??new DialogStore({open:openProp??defaultOpen,activeTriggerId:triggerIdProp===void 0?defaultTriggerIdProp:triggerIdProp,modal,disablePointerDismissal,nested})).current;store.useControlledProp(`open`,openProp,defaultOpen),store.useControlledProp(`activeTriggerId`,triggerIdProp,defaultTriggerIdProp),store.useSyncedValues({disablePointerDismissal,nested,modal}),store.useContextCallback(`onOpenChange`,onOpenChange),store.useContextCallback(`onOpenChangeComplete`,onOpenChangeComplete);let payload=store.useState(`payload`);useDialogRoot({store,actionsRef,parentContext:parentDialogRootContext?.store.context,onOpenChange,triggerIdProp});let contextValue=import_react.useMemo(()=>({store}),[store]);return(0,import_jsx_runtime.jsx)(DialogRootContext.Provider,{value:contextValue,children:typeof children==`function`?children({payload}):children})}let DialogViewportDataAttributes=function(DialogViewportDataAttributes$1){return DialogViewportDataAttributes$1[DialogViewportDataAttributes$1.open=CommonPopupDataAttributes.open]=`open`,DialogViewportDataAttributes$1[DialogViewportDataAttributes$1.closed=CommonPopupDataAttributes.closed]=`closed`,DialogViewportDataAttributes$1[DialogViewportDataAttributes$1.startingStyle=CommonPopupDataAttributes.startingStyle]=`startingStyle`,DialogViewportDataAttributes$1[DialogViewportDataAttributes$1.endingStyle=CommonPopupDataAttributes.endingStyle]=`endingStyle`,DialogViewportDataAttributes$1.nested=`data-nested`,DialogViewportDataAttributes$1.nestedDialogOpen=`data-nested-dialog-open`,DialogViewportDataAttributes$1}({});var stateAttributesMapping$3={...popupStateMapping,...transitionStatusMapping,nested(value){return value?{[DialogViewportDataAttributes.nested]:``}:null},nestedDialogOpen(value){return value?{[DialogViewportDataAttributes.nestedDialogOpen]:``}:null}};const DialogViewport$1=import_react.forwardRef(function(componentProps,forwardedRef){let{className,render,children,...elementProps}=componentProps,keepMounted=useDialogPortalContext(),{store}=useDialogRootContext(),open=store.useState(`open`),nested=store.useState(`nested`),transitionStatus=store.useState(`transitionStatus`),nestedOpenDialogCount=store.useState(`nestedOpenDialogCount`),mounted=store.useState(`mounted`),nestedDialogOpen=nestedOpenDialogCount>0,state$1=import_react.useMemo(()=>({open,nested,transitionStatus,nestedDialogOpen}),[open,nested,transitionStatus,nestedDialogOpen]);return useRenderElement(`div`,componentProps,{enabled:keepMounted||mounted,state:state$1,ref:[forwardedRef,store.useStateSetter(`viewportElement`)],stateAttributesMapping:stateAttributesMapping$3,props:[{role:`presentation`,hidden:!mounted,children},elementProps]})}),DialogTitle$1=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,id:idProp,...elementProps}=componentProps,{store}=useDialogRootContext(),id=useBaseUiId(idProp);return store.useSyncedValueWithCleanup(`titleElementId`,id),useRenderElement(`h2`,componentProps,{ref:forwardedRef,props:[{id},elementProps]})}),DialogTrigger=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,disabled:disabled$1=!1,nativeButton=!0,id:idProp,payload,handle:handle$1,...elementProps}=componentProps,dialogRootContext=useDialogRootContext(!0),store=handle$1?.store??dialogRootContext?.store;if(!store)throw Error(formatErrorMessage(79));let thisTriggerId=useBaseUiId(idProp),floatingContext=store.useState(`floatingRootContext`),isOpenedByThisTrigger=store.useState(`isOpenedByTrigger`,thisTriggerId),triggerElementRef=import_react.useRef(null),{registerTrigger,isMountedByThisTrigger}=useTriggerDataForwarding(thisTriggerId,triggerElementRef,store,{payload}),{getButtonProps,buttonRef}=useButton({disabled:disabled$1,native:nativeButton}),localInteractionProps=useInteractions([useClick(floatingContext,{enabled:floatingContext!=null})]),state$1=import_react.useMemo(()=>({disabled:disabled$1,open:isOpenedByThisTrigger}),[disabled$1,isOpenedByThisTrigger]),rootTriggerProps=store.useState(`triggerProps`,isMountedByThisTrigger);return useRenderElement(`button`,componentProps,{state:state$1,ref:[buttonRef,forwardedRef,registerTrigger,triggerElementRef],props:[localInteractionProps.getReferenceProps(),rootTriggerProps,{"data-base-ui-click-trigger":``,id:thisTriggerId},elementProps,getButtonProps],stateAttributesMapping:triggerOpenStateMapping})});var editorTheme$1=EditorView.theme({"&":{fontSize:`13px`,backgroundColor:`transparent`,height:`100%`},".cm-content":{padding:`12px`,fontFamily:`ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace`},".cm-line":{padding:`0`},".cm-gutters":{display:`none`},"&.cm-focused":{outline:`none`},".cm-scroller":{overflow:`auto`}});function JsonExpandModal({open,onClose,value,columnName,onSave}){let[copied,setCopied]=(0,import_react.useState)(!1),[hasChanges,setHasChanges]=(0,import_react.useState)(!1),viewRef=(0,import_react.useRef)(null),initialValue=(0,import_react.useMemo)(()=>{if(value==null)return``;try{let parsed=typeof value==`string`?JSON.parse(value):value;return JSON.stringify(parsed,null,2)}catch{return String(value)}},[value]),initEditor=(0,import_react.useCallback)(container=>{viewRef.current&&=(viewRef.current.destroy(),null),container&&(viewRef.current=new EditorView({state:EditorState.create({doc:initialValue,extensions:[json(),syntaxHighlighting(defaultHighlightStyle),editorTheme$1,EditorView.lineWrapping,history(),keymap.of([...defaultKeymap,...historyKeymap]),EditorView.updateListener.of(update$1=>{update$1.docChanged&&setHasChanges(update$1.state.doc.toString()!==initialValue)})]}),parent:container}),requestAnimationFrame(()=>viewRef.current?.focus()))},[initialValue]),handleCopy=(0,import_react.useCallback)(async()=>{let text$5=viewRef.current?.state.doc.toString()??initialValue;await navigator.clipboard.writeText(text$5),setCopied(!0),setTimeout(()=>setCopied(!1),1500)},[initialValue]),handleSave=(0,import_react.useCallback)(()=>{onSave&&viewRef.current&&(onSave(viewRef.current.state.doc.toString()),onClose())},[onSave,onClose]);return(0,import_jsx_runtime.jsx)(DialogRoot,{open,onOpenChange:open$1=>!open$1&&onClose(),children:(0,import_jsx_runtime.jsxs)(DialogPortal$1,{children:[(0,import_jsx_runtime.jsx)(DialogBackdrop$1,{className:`fixed inset-0 z-50 bg-black/10`}),(0,import_jsx_runtime.jsx)(DialogViewport$1,{className:`fixed inset-0 z-50 grid place-items-center p-4`,children:(0,import_jsx_runtime.jsxs)(DialogPopup$1,{className:`relative w-full max-w-2xl rounded-2xl border bg-white shadow-lg`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center justify-between p-4 pb-2`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,import_jsx_runtime.jsx)(DialogTitle$1,{className:`text-base font-medium`,children:columnName}),(0,import_jsx_runtime.jsx)(`button`,{onClick:handleCopy,className:`p-1 rounded hover:bg-gray-100 text-gray-400 hover:text-gray-600 transition-colors`,title:`Copy to clipboard`,children:copied?(0,import_jsx_runtime.jsx)(Check,{className:`w-4 h-4 text-green-500`}):(0,import_jsx_runtime.jsx)(Copy,{className:`w-4 h-4`})})]}),(0,import_jsx_runtime.jsx)(`button`,{onClick:onClose,className:`p-1 rounded hover:bg-gray-100 text-gray-400 hover:text-gray-600 transition-colors`,children:(0,import_jsx_runtime.jsx)(X,{className:`w-4 h-4`})})]}),(0,import_jsx_runtime.jsx)(`div`,{className:`px-4`,children:(0,import_jsx_runtime.jsx)(`div`,{ref:initEditor,className:`bg-gray-50 border border-gray-200 rounded-lg h-[60vh] overflow-auto`})}),(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center justify-end gap-2 p-4 pt-2`,children:[(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`sm`,onClick:onClose,children:`Cancel`}),(0,import_jsx_runtime.jsx)(Button,{variant:`default`,size:`sm`,onClick:handleSave,disabled:!hasChanges,children:`Save`})]})]})})]})})}function useRowSelection({totalRows,onDelete}){let[selectedIndices,setSelectedIndices]=(0,import_react.useState)(new Set),[anchorIndex,setAnchorIndex]=(0,import_react.useState)(null);(0,import_react.useEffect)(()=>{setSelectedIndices(new Set),setAnchorIndex(null)},[totalRows]);let handleRowClick=(0,import_react.useCallback)((index$4,event)=>{let isRangeSelect=event.shiftKey,isToggleSelect=event.metaKey||event.ctrlKey;if(isRangeSelect&&anchorIndex!==null){let start=Math.min(anchorIndex,index$4),end=Math.max(anchorIndex,index$4),newSelection=new Set;for(let i$3=start;i$3<=end;i$3++)newSelection.add(i$3);setSelectedIndices(newSelection)}else isToggleSelect?(setSelectedIndices(prev=>{let newSet=new Set(prev);return newSet.has(index$4)?newSet.delete(index$4):newSet.add(index$4),newSet}),setAnchorIndex(index$4)):(setSelectedIndices(new Set([index$4])),setAnchorIndex(index$4))},[anchorIndex]),clearSelection=(0,import_react.useCallback)(()=>{setSelectedIndices(new Set),setAnchorIndex(null)},[]),handleKeyDown=(0,import_react.useCallback)(event=>{if(event.key===`Escape`){clearSelection();return}(event.key===`Delete`||event.key===`Backspace`)&&selectedIndices.size>0&&(event.preventDefault(),onDelete?.(Array.from(selectedIndices).sort((a$1,b$2)=>a$1-b$2)))},[selectedIndices,onDelete,clearSelection]);return(0,import_react.useEffect)(()=>(document.addEventListener(`keydown`,handleKeyDown),()=>document.removeEventListener(`keydown`,handleKeyDown)),[handleKeyDown]),{selectedIndices,handleRowClick,clearSelection,isSelected:index$4=>selectedIndices.has(index$4),selectionCount:selectedIndices.size}}function useConnectionPermissions(connectionId){let{data:connections}=useConnections(),permissions=connections?.find(c=>c.id===connectionId)?.permissions??[];return{hasRead:permissions.includes(`read`),hasWrite:permissions.includes(`write`),hasDdl:permissions.includes(`ddl`),hasAdmin:permissions.includes(`admin`),hasExplain:permissions.includes(`explain`),hasExecute:permissions.includes(`execute`),hasExport:permissions.includes(`export`),permissions}}var counter=0;function generateId(prefix$1){return counter+=1,`${prefix$1}-${Math.random().toString(36).slice(2,6)}-${counter}`}const ToastContext=import_react.createContext(void 0);function useToastContext(){let context=import_react.useContext(ToastContext);if(!context)throw Error(formatErrorMessage(73));return context}function resolvePromiseOptions(options$1,result){if(typeof options$1==`string`)return{description:options$1};if(typeof options$1==`function`){let resolvedOptions=options$1(result);return typeof resolvedOptions==`string`?{description:resolvedOptions}:resolvedOptions}return options$1}var import_react_dom$1=__toESM(require_react_dom());const ToastProvider$1=function(props){let{children,timeout=5e3,limit=3,toastManager:toastManager$1}=props,[toasts,setToasts]=import_react.useState([]),[hovering,setHovering]=import_react.useState(!1),[focused,setFocused]=import_react.useState(!1),[prevFocusElement,setPrevFocusElement]=import_react.useState(null);toasts.length===0&&(hovering&&setHovering(!1),focused&&setFocused(!1));let expanded=hovering||focused,timersRef=import_react.useRef(new Map),viewportRef=import_react.useRef(null),windowFocusedRef=import_react.useRef(!0),isPausedRef=import_react.useRef(!1);function handleFocusManagement(toastId){let activeEl=activeElement(ownerDocument(viewportRef.current));if(!viewportRef.current||!contains(viewportRef.current,activeEl)||!matchesFocusVisible(activeEl))return;let currentIndex=toasts.findIndex(toast=>toast.id===toastId),nextToast=null,index$4=currentIndex+1;for(;index$4<toasts.length;){if(toasts[index$4].transitionStatus!==`ending`){nextToast=toasts[index$4];break}index$4+=1}if(!nextToast)for(index$4=currentIndex-1;index$4>=0;){if(toasts[index$4].transitionStatus!==`ending`){nextToast=toasts[index$4];break}--index$4}nextToast?nextToast.ref?.current?.focus():prevFocusElement?.focus({preventScroll:!0})}let pauseTimers=useStableCallback(()=>{isPausedRef.current||(isPausedRef.current=!0,timersRef.current.forEach(timer=>{if(timer.timeout){timer.timeout.clear();let elapsed=Date.now()-timer.start,remaining=timer.delay-elapsed;timer.remaining=remaining>0?remaining:0}}))}),resumeTimers=useStableCallback(()=>{isPausedRef.current&&(isPausedRef.current=!1,timersRef.current.forEach((timer,id)=>{timer.remaining=timer.remaining>0?timer.remaining:timer.delay,timer.timeout??=Timeout.create(),timer.timeout.start(timer.remaining,()=>{timersRef.current.delete(id),timer.callback()}),timer.start=Date.now()}))}),close=useStableCallback(toastId=>{setToasts(prevToasts=>{let toastsWithEnding=prevToasts.map(toast=>toast.id===toastId?{...toast,transitionStatus:`ending`,height:0}:toast),activeToasts=toastsWithEnding.filter(t$1=>t$1.transitionStatus!==`ending`);return toastsWithEnding.map(toast=>{if(toast.transitionStatus===`ending`)return toast;let isActiveToastLimited=activeToasts.indexOf(toast)>=limit;return{...toast,limited:isActiveToastLimited}})});let timer=timersRef.current.get(toastId);timer&&timer.timeout&&(timer.timeout.clear(),timersRef.current.delete(toastId)),toasts.find(t$1=>t$1.id===toastId)?.onClose?.(),handleFocusManagement(toastId),toasts.length===1&&(setHovering(!1),setFocused(!1))}),remove$1=useStableCallback(toastId=>{setToasts(prev=>prev.filter(toast=>toast.id!==toastId)),toasts.find(t$1=>t$1.id===toastId)?.onRemove?.()}),scheduleTimer=useStableCallback((id,delay,callback)=>{let start=Date.now(),shouldStartActive=windowFocusedRef.current&&!hovering&&!focused,currentTimeout=shouldStartActive?Timeout.create():void 0;currentTimeout?.start(delay,()=>{timersRef.current.delete(id),callback()}),timersRef.current.set(id,{timeout:currentTimeout,start:shouldStartActive?start:0,delay,remaining:delay,callback})}),add$1=useStableCallback(toast=>{let id=toast.id||generateId(`toast`),toastToAdd={...toast,id,transitionStatus:`starting`};setToasts(prev=>{let updatedToasts=[toastToAdd,...prev],activeToasts=updatedToasts.filter(t$1=>t$1.transitionStatus!==`ending`);if(activeToasts.length>limit){let excessCount=activeToasts.length-limit,oldestActiveToasts=activeToasts.slice(-excessCount);return updatedToasts.map(t$1=>oldestActiveToasts.some(old=>old.id===t$1.id)?{...t$1,limited:!0}:{...t$1,limited:!1})}return updatedToasts.map(t$1=>({...t$1,limited:!1}))});let duration=toastToAdd.timeout??timeout;return toastToAdd.type!==`loading`&&duration>0&&scheduleTimer(id,duration,()=>close(id)),(hovering||focused||!windowFocusedRef.current)&&pauseTimers(),id}),update$1=useStableCallback((id,updates)=>{let prevToast=toasts.find(toast=>toast.id===id)??null,nextToast=prevToast?{...prevToast,...updates}:null;if(import_react_dom$1.flushSync(()=>{setToasts(prev=>prev.map(toast=>toast.id===id?{...toast,...updates}:toast))}),!nextToast)return;let nextTimeout=nextToast.timeout??timeout,prevTimeout=prevToast?.timeout??timeout,timeoutUpdated=Object.hasOwn(updates,`timeout`),shouldHaveTimer=nextToast.transitionStatus!==`ending`&&nextToast.type!==`loading`&&nextTimeout>0,hasTimer=timersRef.current.has(id),timeoutChanged=prevTimeout!==nextTimeout,wasLoading=prevToast?.type===`loading`;if(!shouldHaveTimer&&hasTimer){timersRef.current.get(id)?.timeout?.clear(),timersRef.current.delete(id);return}if(shouldHaveTimer&&(!hasTimer||timeoutChanged||timeoutUpdated||wasLoading)){let timer=timersRef.current.get(id);timer&&(timer.timeout?.clear(),timersRef.current.delete(id)),scheduleTimer(id,nextTimeout,()=>close(id)),(hovering||focused||!windowFocusedRef.current)&&pauseTimers()}}),promise=useStableCallback((promiseValue,options$1)=>{let id=add$1({...resolvePromiseOptions(options$1.loading),type:`loading`}),handledPromise=promiseValue.then(result=>{let successOptions=resolvePromiseOptions(options$1.success,result);return update$1(id,{...successOptions,type:`success`,timeout:successOptions.timeout}),result}).catch(error=>{let errorOptions=resolvePromiseOptions(options$1.error,error);return update$1(id,{...errorOptions,type:`error`,timeout:errorOptions.timeout}),Promise.reject(error)});return{}.hasOwnProperty.call(options$1,`setPromise`)&&options$1.setPromise(handledPromise),handledPromise});import_react.useEffect(function(){if(toastManager$1)return toastManager$1[` subscribe`](({action,options:options$1})=>{let id=options$1.id;action===`promise`&&options$1.promise?promise(options$1.promise,options$1):action===`update`&&id?update$1(id,options$1):action===`close`&&id?close(id):add$1(options$1)})},[add$1,update$1,scheduleTimer,timeout,toastManager$1,promise,close]);let contextValue=import_react.useMemo(()=>({toasts,setToasts,hovering,setHovering,focused,setFocused,expanded,add:add$1,close,remove:remove$1,update:update$1,promise,pauseTimers,resumeTimers,prevFocusElement,setPrevFocusElement,viewportRef,scheduleTimer,windowFocusedRef}),[add$1,close,focused,hovering,expanded,pauseTimers,prevFocusElement,promise,remove$1,resumeTimers,scheduleTimer,toasts,update$1]);return(0,import_jsx_runtime.jsx)(ToastContext.Provider,{value:contextValue,children})},ToastViewportContext=import_react.createContext(void 0);let ToastViewportCssVars=function(ToastViewportCssVars$1){return ToastViewportCssVars$1.frontmostHeight=`--toast-frontmost-height`,ToastViewportCssVars$1}({});const ToastViewport=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,children,...elementProps}=componentProps,{toasts,pauseTimers,resumeTimers,setHovering,setFocused,viewportRef,windowFocusedRef,prevFocusElement,setPrevFocusElement,expanded,focused}=useToastContext(),handlingFocusGuardRef=import_react.useRef(!1),markedReadyForMouseLeaveRef=import_react.useRef(!1),numToasts=toasts.length,frontmostHeight=toasts[0]?.height??0,hasTransitioningToasts=import_react.useMemo(()=>toasts.some(toast=>toast.transitionStatus===`ending`),[toasts]);import_react.useEffect(()=>{if(!viewportRef.current)return;function handleGlobalKeyDown(event){numToasts!==0&&event.key===`F6`&&event.target!==viewportRef.current&&(event.preventDefault(),setPrevFocusElement(activeElement(ownerDocument(viewportRef.current))),viewportRef.current?.focus({preventScroll:!0}),pauseTimers(),setFocused(!0))}let win=getWindow(viewportRef.current);return win.addEventListener(`keydown`,handleGlobalKeyDown),()=>{win.removeEventListener(`keydown`,handleGlobalKeyDown)}},[pauseTimers,setFocused,setPrevFocusElement,numToasts,viewportRef]),import_react.useEffect(()=>{if(!viewportRef.current||!numToasts)return;let win=getWindow(viewportRef.current);function handleWindowBlur(event){event.target===win&&(windowFocusedRef.current=!1,pauseTimers())}function handleWindowFocus(event){if(event.relatedTarget||event.target===win)return;let target=getTarget(event),activeEl=activeElement(ownerDocument(viewportRef.current));(!contains(viewportRef.current,target)||!matchesFocusVisible(activeEl))&&resumeTimers(),setTimeout(()=>{windowFocusedRef.current=!0})}return win.addEventListener(`blur`,handleWindowBlur,!0),win.addEventListener(`focus`,handleWindowFocus,!0),()=>{win.removeEventListener(`blur`,handleWindowBlur,!0),win.removeEventListener(`focus`,handleWindowFocus,!0)}},[pauseTimers,resumeTimers,viewportRef,windowFocusedRef,setFocused,numToasts]),import_react.useEffect(()=>{let viewportNode=viewportRef.current;if(!viewportNode||numToasts===0)return;let doc$1=ownerDocument(viewportNode);function handlePointerDown(event){event.pointerType===`touch`&&(contains(viewportNode,getTarget(event))||(resumeTimers(),setHovering(!1),setFocused(!1)))}return doc$1.addEventListener(`pointerdown`,handlePointerDown,!0),()=>{doc$1.removeEventListener(`pointerdown`,handlePointerDown,!0)}},[numToasts,resumeTimers,setFocused,setHovering,viewportRef]);function handleFocusGuard(event){viewportRef.current&&(handlingFocusGuardRef.current=!0,event.relatedTarget===viewportRef.current?toasts[0]?.ref?.current?.focus():prevFocusElement?.focus({preventScroll:!0}))}function handleKeyDown(event){event.key===`Tab`&&event.shiftKey&&event.target===viewportRef.current&&(event.preventDefault(),prevFocusElement?.focus({preventScroll:!0}),resumeTimers())}import_react.useEffect(()=>{!windowFocusedRef.current||hasTransitioningToasts||!markedReadyForMouseLeaveRef.current||(resumeTimers(),setHovering(!1),markedReadyForMouseLeaveRef.current=!1)},[hasTransitioningToasts,resumeTimers,setHovering,windowFocusedRef]);function handleMouseEnter(){pauseTimers(),setHovering(!0),markedReadyForMouseLeaveRef.current=!1}function handleMouseLeave(){toasts.some(toast=>toast.transitionStatus===`ending`)?markedReadyForMouseLeaveRef.current=!0:(resumeTimers(),setHovering(!1))}function handleFocus(){if(handlingFocusGuardRef.current){handlingFocusGuardRef.current=!1;return}focused||matchesFocusVisible(ownerDocument(viewportRef.current).activeElement)&&(setFocused(!0),pauseTimers())}function handleBlur(event){!focused||contains(viewportRef.current,event.relatedTarget)||(setFocused(!1),resumeTimers())}let defaultProps={tabIndex:-1,role:`region`,"aria-live":`polite`,"aria-atomic":!1,"aria-relevant":`additions text`,"aria-label":`Notifications`,onMouseEnter:handleMouseEnter,onMouseMove:handleMouseEnter,onMouseLeave:handleMouseLeave,onFocus:handleFocus,onBlur:handleBlur,onKeyDown:handleKeyDown,onClick:handleFocus},state$1=import_react.useMemo(()=>({expanded}),[expanded]),element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,viewportRef],state:state$1,props:[defaultProps,{style:{[ToastViewportCssVars.frontmostHeight]:frontmostHeight?`${frontmostHeight}px`:void 0}},elementProps,{children:(0,import_jsx_runtime.jsxs)(import_react.Fragment,{children:[numToasts>0&&prevFocusElement&&(0,import_jsx_runtime.jsx)(FocusGuard,{onFocus:handleFocusGuard}),children,numToasts>0&&prevFocusElement&&(0,import_jsx_runtime.jsx)(FocusGuard,{onFocus:handleFocusGuard})]})}]}),contextValue=import_react.useMemo(()=>({viewportRef}),[viewportRef]),highPriorityToasts=import_react.useMemo(()=>toasts.filter(toast=>toast.priority===`high`),[toasts]);return(0,import_jsx_runtime.jsxs)(ToastViewportContext.Provider,{value:contextValue,children:[numToasts>0&&prevFocusElement&&(0,import_jsx_runtime.jsx)(FocusGuard,{onFocus:handleFocusGuard}),element$3,!focused&&highPriorityToasts.length>0&&(0,import_jsx_runtime.jsx)(`div`,{style:visuallyHidden,children:highPriorityToasts.map(toast=>(0,import_jsx_runtime.jsxs)(`div`,{role:`alert`,"aria-atomic":!0,children:[(0,import_jsx_runtime.jsx)(`div`,{children:toast.title}),(0,import_jsx_runtime.jsx)(`div`,{children:toast.description})]},toast.id))})]})}),ToastRootContext=import_react.createContext(void 0);function useToastRootContext(){let context=import_react.useContext(ToastRootContext);if(!context)throw Error(formatErrorMessage(66));return context}let ToastRootCssVars=function(ToastRootCssVars$1){return ToastRootCssVars$1.index=`--toast-index`,ToastRootCssVars$1.offsetY=`--toast-offset-y`,ToastRootCssVars$1.height=`--toast-height`,ToastRootCssVars$1.swipeMovementX=`--toast-swipe-movement-x`,ToastRootCssVars$1.swipeMovementY=`--toast-swipe-movement-y`,ToastRootCssVars$1}({});var import_react_dom=__toESM(require_react_dom()),stateAttributesMapping$2={...transitionStatusMapping,swipeDirection(value){return value?{"data-swipe-direction":value}:null}},SWIPE_THRESHOLD=40,REVERSE_CANCEL_THRESHOLD=10,OPPOSITE_DIRECTION_DAMPING_FACTOR=.5,MIN_DRAG_THRESHOLD=1;function getDisplacement(direction,deltaX,deltaY){switch(direction){case`up`:return-deltaY;case`down`:return deltaY;case`left`:return-deltaX;case`right`:return deltaX;default:return 0}}function getElementTransform(element$3){let transform$1=window.getComputedStyle(element$3).transform,translateX=0,translateY=0,scale=1;if(transform$1&&transform$1!==`none`){let matrix=transform$1.match(/matrix(?:3d)?\(([^)]+)\)/);if(matrix){let values=matrix[1].split(`, `).map(parseFloat);values.length===6?(translateX=values[4],translateY=values[5],scale=Math.sqrt(values[0]*values[0]+values[1]*values[1])):values.length===16&&(translateX=values[12],translateY=values[13],scale=values[0])}}return{x:translateX,y:translateY,scale}}const ToastRoot=import_react.forwardRef(function(componentProps,forwardedRef){let{toast,render,className,swipeDirection=[`down`,`right`],...elementProps}=componentProps,isAnchored=toast.positionerProps?.anchor!==void 0,swipeDirections=[];isAnchored||(swipeDirections=Array.isArray(swipeDirection)?swipeDirection:[swipeDirection]);let swipeEnabled=swipeDirections.length>0,{toasts,focused,close,remove:remove$1,setToasts,pauseTimers,expanded,setHovering}=useToastContext(),[currentSwipeDirection,setCurrentSwipeDirection]=import_react.useState(void 0),[isSwiping,setIsSwiping]=import_react.useState(!1),[isRealSwipe,setIsRealSwipe]=import_react.useState(!1),[dragDismissed,setDragDismissed]=import_react.useState(!1),[dragOffset,setDragOffset]=import_react.useState({x:0,y:0}),[initialTransform,setInitialTransform]=import_react.useState({x:0,y:0,scale:1}),[titleId,setTitleId]=import_react.useState(),[descriptionId,setDescriptionId]=import_react.useState(),[lockedDirection,setLockedDirection]=import_react.useState(null),rootRef=import_react.useRef(null),dragStartPosRef=import_react.useRef({x:0,y:0}),initialTransformRef=import_react.useRef({x:0,y:0,scale:1}),intendedSwipeDirectionRef=import_react.useRef(void 0),maxSwipeDisplacementRef=import_react.useRef(0),cancelledSwipeRef=import_react.useRef(!1),swipeCancelBaselineRef=import_react.useRef({x:0,y:0}),isFirstPointerMoveRef=import_react.useRef(!1),domIndex$1=import_react.useMemo(()=>toasts.indexOf(toast),[toast,toasts]),visibleIndex=import_react.useMemo(()=>toasts.filter(t$1=>t$1.transitionStatus!==`ending`).indexOf(toast),[toast,toasts]),offsetY=import_react.useMemo(()=>toasts.slice(0,toasts.indexOf(toast)).reduce((acc,t$1)=>acc+(t$1.height||0),0),[toasts,toast]);useOpenChangeComplete({open:toast.transitionStatus!==`ending`,ref:rootRef,onComplete(){toast.transitionStatus===`ending`&&remove$1(toast.id)}});let recalculateHeight=useStableCallback((flushSync$1=!1)=>{let element$4=rootRef.current;if(!element$4)return;let previousHeight=element$4.style.height;element$4.style.height=`auto`;let height=element$4.offsetHeight;element$4.style.height=previousHeight;function update$1(){setToasts(prev=>prev.map(t$1=>t$1.id===toast.id?{...t$1,ref:rootRef,height,transitionStatus:void 0}:t$1))}flushSync$1?import_react_dom.flushSync(update$1):update$1()});useIsoLayoutEffect(recalculateHeight,[recalculateHeight]);function applyDirectionalDamping(deltaX,deltaY){let newDeltaX=deltaX,newDeltaY=deltaY;return!swipeDirections.includes(`left`)&&!swipeDirections.includes(`right`)?newDeltaX=deltaX>0?deltaX**OPPOSITE_DIRECTION_DAMPING_FACTOR:-(Math.abs(deltaX)**OPPOSITE_DIRECTION_DAMPING_FACTOR):(!swipeDirections.includes(`right`)&&deltaX>0&&(newDeltaX=deltaX**OPPOSITE_DIRECTION_DAMPING_FACTOR),!swipeDirections.includes(`left`)&&deltaX<0&&(newDeltaX=-(Math.abs(deltaX)**OPPOSITE_DIRECTION_DAMPING_FACTOR))),!swipeDirections.includes(`up`)&&!swipeDirections.includes(`down`)?newDeltaY=deltaY>0?deltaY**OPPOSITE_DIRECTION_DAMPING_FACTOR:-(Math.abs(deltaY)**OPPOSITE_DIRECTION_DAMPING_FACTOR):(!swipeDirections.includes(`down`)&&deltaY>0&&(newDeltaY=deltaY**OPPOSITE_DIRECTION_DAMPING_FACTOR),!swipeDirections.includes(`up`)&&deltaY<0&&(newDeltaY=-(Math.abs(deltaY)**OPPOSITE_DIRECTION_DAMPING_FACTOR))),{x:newDeltaX,y:newDeltaY}}function handlePointerDown(event){if(event.button!==0)return;event.pointerType===`touch`&&pauseTimers();let target=getTarget(event.nativeEvent);if(!(target&&target.closest(`button,a,input,textarea,[role="button"],[data-swipe-ignore]`))){if(cancelledSwipeRef.current=!1,intendedSwipeDirectionRef.current=void 0,maxSwipeDisplacementRef.current=0,dragStartPosRef.current={x:event.clientX,y:event.clientY},swipeCancelBaselineRef.current=dragStartPosRef.current,rootRef.current){let transform$1=getElementTransform(rootRef.current);initialTransformRef.current=transform$1,setInitialTransform(transform$1),setDragOffset({x:transform$1.x,y:transform$1.y})}setHovering(!0),setIsSwiping(!0),setIsRealSwipe(!1),setLockedDirection(null),isFirstPointerMoveRef.current=!0,rootRef.current?.setPointerCapture(event.pointerId)}}function handlePointerMove(event){if(!isSwiping)return;event.preventDefault(),isFirstPointerMoveRef.current&&=(dragStartPosRef.current={x:event.clientX,y:event.clientY},!1);let{clientY,clientX,movementX,movementY}=event;(movementY<0&&clientY>swipeCancelBaselineRef.current.y||movementY>0&&clientY<swipeCancelBaselineRef.current.y)&&(swipeCancelBaselineRef.current={x:swipeCancelBaselineRef.current.x,y:clientY}),(movementX<0&&clientX>swipeCancelBaselineRef.current.x||movementX>0&&clientX<swipeCancelBaselineRef.current.x)&&(swipeCancelBaselineRef.current={x:clientX,y:swipeCancelBaselineRef.current.y});let deltaX=clientX-dragStartPosRef.current.x,deltaY=clientY-dragStartPosRef.current.y,cancelDeltaY=clientY-swipeCancelBaselineRef.current.y,cancelDeltaX=clientX-swipeCancelBaselineRef.current.x;if(!isRealSwipe&&Math.sqrt(deltaX*deltaX+deltaY*deltaY)>=MIN_DRAG_THRESHOLD&&(setIsRealSwipe(!0),lockedDirection===null)){let hasHorizontal=swipeDirections.includes(`left`)||swipeDirections.includes(`right`),hasVertical=swipeDirections.includes(`up`)||swipeDirections.includes(`down`);hasHorizontal&&hasVertical&&setLockedDirection(Math.abs(deltaX)>Math.abs(deltaY)?`horizontal`:`vertical`)}let candidate;if(!intendedSwipeDirectionRef.current)lockedDirection===`vertical`?deltaY>0?candidate=`down`:deltaY<0&&(candidate=`up`):lockedDirection===`horizontal`?deltaX>0?candidate=`right`:deltaX<0&&(candidate=`left`):candidate=Math.abs(deltaX)>=Math.abs(deltaY)?deltaX>0?`right`:`left`:deltaY>0?`down`:`up`,candidate&&swipeDirections.includes(candidate)&&(intendedSwipeDirectionRef.current=candidate,maxSwipeDisplacementRef.current=getDisplacement(candidate,deltaX,deltaY),setCurrentSwipeDirection(candidate));else{let direction=intendedSwipeDirectionRef.current,currentDisplacement=getDisplacement(direction,cancelDeltaX,cancelDeltaY);currentDisplacement>SWIPE_THRESHOLD?(cancelledSwipeRef.current=!1,setCurrentSwipeDirection(direction)):!(swipeDirections.includes(`left`)&&swipeDirections.includes(`right`))&&!(swipeDirections.includes(`up`)&&swipeDirections.includes(`down`))&&maxSwipeDisplacementRef.current-currentDisplacement>=REVERSE_CANCEL_THRESHOLD&&(cancelledSwipeRef.current=!0)}let dampedDelta=applyDirectionalDamping(deltaX,deltaY),newOffsetX=initialTransformRef.current.x,newOffsetY=initialTransformRef.current.y;lockedDirection===`horizontal`?(swipeDirections.includes(`left`)||swipeDirections.includes(`right`))&&(newOffsetX+=dampedDelta.x):(lockedDirection===`vertical`||(swipeDirections.includes(`left`)||swipeDirections.includes(`right`))&&(newOffsetX+=dampedDelta.x),(swipeDirections.includes(`up`)||swipeDirections.includes(`down`))&&(newOffsetY+=dampedDelta.y)),setDragOffset({x:newOffsetX,y:newOffsetY})}function handlePointerUp(event){if(!isSwiping)return;if(setIsSwiping(!1),setIsRealSwipe(!1),setLockedDirection(null),rootRef.current?.releasePointerCapture(event.pointerId),cancelledSwipeRef.current){setDragOffset({x:initialTransform.x,y:initialTransform.y}),setCurrentSwipeDirection(void 0);return}let shouldClose=!1,deltaX=dragOffset.x-initialTransform.x,deltaY=dragOffset.y-initialTransform.y,dismissDirection;for(let direction of swipeDirections){switch(direction){case`right`:deltaX>SWIPE_THRESHOLD&&(shouldClose=!0,dismissDirection=`right`);break;case`left`:deltaX<-SWIPE_THRESHOLD&&(shouldClose=!0,dismissDirection=`left`);break;case`down`:deltaY>SWIPE_THRESHOLD&&(shouldClose=!0,dismissDirection=`down`);break;case`up`:deltaY<-SWIPE_THRESHOLD&&(shouldClose=!0,dismissDirection=`up`);break;default:break}if(shouldClose)break}shouldClose?(setCurrentSwipeDirection(dismissDirection),setDragDismissed(!0),close(toast.id)):(setDragOffset({x:initialTransform.x,y:initialTransform.y}),setCurrentSwipeDirection(void 0))}function handleKeyDown(event){if(event.key===`Escape`){if(!rootRef.current||!contains(rootRef.current,activeElement(ownerDocument(rootRef.current))))return;close(toast.id)}}import_react.useEffect(()=>{if(!swipeEnabled)return;let element$4=rootRef.current;if(!element$4)return;function preventDefaultTouchStart(event){contains(element$4,event.target)&&event.preventDefault()}return element$4.addEventListener(`touchmove`,preventDefaultTouchStart,{passive:!1}),()=>{element$4.removeEventListener(`touchmove`,preventDefaultTouchStart)}},[swipeEnabled]);function getDragStyles(){if(!isSwiping&&dragOffset.x===initialTransform.x&&dragOffset.y===initialTransform.y&&!dragDismissed)return{[ToastRootCssVars.swipeMovementX]:`0px`,[ToastRootCssVars.swipeMovementY]:`0px`};let deltaX=dragOffset.x-initialTransform.x,deltaY=dragOffset.y-initialTransform.y;return{transition:isSwiping?`none`:void 0,transform:isSwiping?`translateX(${dragOffset.x}px) translateY(${dragOffset.y}px) scale(${initialTransform.scale})`:void 0,[ToastRootCssVars.swipeMovementX]:`${deltaX}px`,[ToastRootCssVars.swipeMovementY]:`${deltaY}px`}}let isHighPriority=toast.priority===`high`,defaultProps={role:isHighPriority?`alertdialog`:`dialog`,tabIndex:0,"aria-modal":!1,"aria-labelledby":titleId,"aria-describedby":descriptionId,"aria-hidden":isHighPriority&&!focused?!0:void 0,onPointerDown:swipeEnabled?handlePointerDown:void 0,onPointerMove:swipeEnabled?handlePointerMove:void 0,onPointerUp:swipeEnabled?handlePointerUp:void 0,onKeyDown:handleKeyDown,inert:inertValue(toast.limited),style:{...getDragStyles(),[ToastRootCssVars.index]:toast.transitionStatus===`ending`?domIndex$1:visibleIndex,[ToastRootCssVars.offsetY]:`${offsetY}px`,[ToastRootCssVars.height]:toast.height?`${toast.height}px`:void 0}},toastRoot=import_react.useMemo(()=>({rootRef,toast,titleId,setTitleId,descriptionId,setDescriptionId,swiping:isSwiping,swipeDirection:currentSwipeDirection,recalculateHeight,index:domIndex$1,visibleIndex,expanded}),[toast,titleId,descriptionId,isSwiping,currentSwipeDirection,recalculateHeight,domIndex$1,visibleIndex,expanded]),state$1=import_react.useMemo(()=>({transitionStatus:toast.transitionStatus,expanded,limited:toast.limited||!1,type:toast.type,swiping:toastRoot.swiping,swipeDirection:toastRoot.swipeDirection}),[expanded,toast.transitionStatus,toast.limited,toast.type,toastRoot.swiping,toastRoot.swipeDirection]),element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,toastRoot.rootRef],state:state$1,stateAttributesMapping:stateAttributesMapping$2,props:[defaultProps,elementProps]});return(0,import_jsx_runtime.jsx)(ToastRootContext.Provider,{value:toastRoot,children:element$3})}),ToastContent=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,...elementProps}=componentProps,{visibleIndex,expanded,recalculateHeight}=useToastRootContext(),contentRef=import_react.useRef(null);useIsoLayoutEffect(()=>{let node$1=contentRef.current;if(!node$1||(recalculateHeight(),typeof ResizeObserver!=`function`||typeof MutationObserver!=`function`))return;let resizeObserver=new ResizeObserver(()=>recalculateHeight(!0)),mutationObserver=new MutationObserver(()=>recalculateHeight(!0));return resizeObserver.observe(node$1),mutationObserver.observe(node$1,{childList:!0,subtree:!0,characterData:!0}),()=>{resizeObserver.disconnect(),mutationObserver.disconnect()}},[recalculateHeight]);let behind=visibleIndex>0,state$1=import_react.useMemo(()=>({expanded,behind}),[expanded,behind]);return useRenderElement(`div`,componentProps,{ref:[forwardedRef,contentRef],state:state$1,props:elementProps})}),ToastDescription=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,id:idProp,children:childrenProp,...elementProps}=componentProps,{toast}=useToastRootContext(),children=childrenProp??toast.description,shouldRender=!!children,id=useId(idProp),{setDescriptionId}=useToastRootContext();useIsoLayoutEffect(()=>{if(shouldRender)return setDescriptionId(id),()=>{setDescriptionId(void 0)}},[shouldRender,id,setDescriptionId]);let element$3=useRenderElement(`p`,componentProps,{ref:forwardedRef,state:import_react.useMemo(()=>({type:toast.type}),[toast.type]),props:{...elementProps,id,children}});return shouldRender?element$3:null}),ToastTitle=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,id:idProp,children:childrenProp,...elementProps}=componentProps,{toast}=useToastRootContext(),children=childrenProp??toast.title,shouldRender=!!children,id=useId(idProp),{setTitleId}=useToastRootContext();useIsoLayoutEffect(()=>{if(shouldRender)return setTitleId(id),()=>{setTitleId(void 0)}},[shouldRender,id,setTitleId]);let element$3=useRenderElement(`h2`,componentProps,{ref:forwardedRef,state:import_react.useMemo(()=>({type:toast.type}),[toast.type]),props:{...elementProps,id,children}});return shouldRender?element$3:null}),ToastClose=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,disabled:disabled$1,nativeButton=!0,...elementProps}=componentProps,{close,expanded}=useToastContext(),{toast}=useToastRootContext(),[hasFocus,setHasFocus]=import_react.useState(!1),{getButtonProps,buttonRef}=useButton({disabled:disabled$1,native:nativeButton}),state$1=import_react.useMemo(()=>({type:toast.type}),[toast.type]);return useRenderElement(`button`,componentProps,{ref:[forwardedRef,buttonRef],state:state$1,props:[{"aria-hidden":!expanded&&!hasFocus,onClick(){close(toast.id)},onFocus(){setHasFocus(!0)},onBlur(){setHasFocus(!1)}},elementProps,getButtonProps]})}),ToastAction=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,disabled:disabled$1,nativeButton=!0,...elementProps}=componentProps,{toast}=useToastRootContext(),computedChildren=toast.actionProps?.children??elementProps.children,shouldRender=!!computedChildren,{getButtonProps,buttonRef}=useButton({disabled:disabled$1,native:nativeButton}),state$1=import_react.useMemo(()=>({type:toast.type}),[toast.type]),element$3=useRenderElement(`button`,componentProps,{ref:[forwardedRef,buttonRef],state:state$1,props:[elementProps,toast.actionProps,getButtonProps,{children:computedChildren}]});return shouldRender?element$3:null}),ToastPortal=FloatingPortalLite;function useToastManager(){let context=import_react.useContext(ToastContext);if(!context)throw Error(formatErrorMessage(73));let{toasts,add:add$1,close,update:update$1,promise}=context;return import_react.useMemo(()=>({toasts,add:add$1,close,update:update$1,promise}),[toasts,add$1,close,update$1,promise])}function createToastManager(){let listeners=[];function emit(data){listeners.forEach(listener=>listener(data))}return{" subscribe":function(listener){return listeners.push(listener),()=>{let index$4=listeners.indexOf(listener);index$4!==-1&&listeners.splice(index$4,1)}},add(options$1){let id=options$1.id||generateId(`toast`);return emit({action:`add`,options:{...options$1,id,transitionStatus:`starting`}}),id},close(id){emit({action:`close`,options:{id}})},update(id,updates){emit({action:`update`,options:{...updates,id}})},promise(promiseValue,options$1){let handledPromise=promiseValue;return emit({action:`promise`,options:{...options$1,promise:promiseValue,setPromise(promise){handledPromise=promise}}}),handledPromise}}}var toastManager=createToastManager(),anchoredToastManager=createToastManager(),TOAST_ICONS={error:CircleAlert,info:Info$1,loading:LoaderCircle,success:CircleCheck,warning:TriangleAlert};function ToastProvider({children,position:position$2=`bottom-right`,...props}){return(0,import_jsx_runtime.jsxs)(ToastProvider$1,{toastManager,...props,children:[children,(0,import_jsx_runtime.jsx)(Toasts,{position:position$2})]})}function Toasts({position:position$2=`bottom-right`}){let{toasts}=useToastManager(),isTop=position$2.startsWith(`top`);return(0,import_jsx_runtime.jsx)(ToastPortal,{"data-slot":`toast-portal`,children:(0,import_jsx_runtime.jsx)(ToastViewport,{className:cn(`fixed z-[100] mx-auto flex w-[calc(100%-var(--toast-inset)*2)] max-w-90 [--toast-inset:--spacing(4)] sm:[--toast-inset:--spacing(8)]`,`data-[position*=top]:top-(--toast-inset)`,`data-[position*=bottom]:bottom-(--toast-inset)`,`data-[position*=left]:left-(--toast-inset)`,`data-[position*=right]:right-(--toast-inset)`,`data-[position*=center]:-translate-x-1/2 data-[position*=center]:left-1/2`),"data-position":position$2,"data-slot":`toast-viewport`,children:toasts.map(toast=>{let Icon$1=toast.type?TOAST_ICONS[toast.type]:null;return(0,import_jsx_runtime.jsxs)(ToastRoot,{className:cn(`absolute z-[calc(9999-var(--toast-index))] h-(--toast-calc-height) w-full select-none rounded-lg border bg-popover bg-clip-padding text-popover-foreground shadow-lg [transition:transform_.5s_cubic-bezier(.22,1,.36,1),opacity_.5s,height_.15s] before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] dark:bg-clip-border dark:before:shadow-[0_-1px_--theme(--color-white/8%)]`,`data-[position*=right]:right-0 data-[position*=right]:left-auto`,`data-[position*=left]:right-auto data-[position*=left]:left-0`,`data-[position*=center]:right-0 data-[position*=center]:left-0`,`data-[position*=top]:top-0 data-[position*=top]:bottom-auto data-[position*=top]:origin-top`,`data-[position*=bottom]:top-auto data-[position*=bottom]:bottom-0 data-[position*=bottom]:origin-bottom`,`after:absolute after:left-0 after:h-[calc(var(--toast-gap)+1px)] after:w-full`,`data-[position*=top]:after:top-full`,`data-[position*=bottom]:after:bottom-full`,`[--toast-calc-height:var(--toast-frontmost-height,var(--toast-height))] [--toast-gap:--spacing(3)] [--toast-peek:--spacing(3)] [--toast-scale:calc(max(0,1-(var(--toast-index)*.1)))] [--toast-shrink:calc(1-var(--toast-scale))]`,`data-[position*=top]:[--toast-calc-offset-y:calc(var(--toast-offset-y)+var(--toast-index)*var(--toast-gap)+var(--toast-swipe-movement-y))]`,`data-[position*=bottom]:[--toast-calc-offset-y:calc(var(--toast-offset-y)*-1+var(--toast-index)*var(--toast-gap)*-1+var(--toast-swipe-movement-y))]`,`data-[position*=top]:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--toast-index)*var(--toast-peek))+(var(--toast-shrink)*var(--toast-calc-height))))_scale(var(--toast-scale))]`,`data-[position*=bottom]:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--toast-peek))-(var(--toast-shrink)*var(--toast-calc-height))))_scale(var(--toast-scale))]`,`data-limited:opacity-0`,`data-expanded:h-(--toast-height)`,`data-position:data-expanded:transform-[translateX(var(--toast-swipe-movement-x))_translateY(var(--toast-calc-offset-y))]`,`data-[position*=top]:data-starting-style:transform-[translateY(calc(-100%-var(--toast-inset)))]`,`data-[position*=bottom]:data-starting-style:transform-[translateY(calc(100%+var(--toast-inset)))]`,`data-ending-style:opacity-0`,`data-ending-style:not-data-limited:not-data-swipe-direction:transform-[translateY(calc(100%+var(--toast-inset)))]`,`data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-100%-var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]`,`data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+100%+var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]`,`data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-100%-var(--toast-inset)))]`,`data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+100%+var(--toast-inset)))]`,`data-expanded:data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-100%-var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]`,`data-expanded:data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+100%+var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]`,`data-expanded:data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-100%-var(--toast-inset)))]`,`data-expanded:data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+100%+var(--toast-inset)))]`),"data-position":position$2,swipeDirection:position$2.includes(`center`)?[isTop?`up`:`down`]:position$2.includes(`left`)?[`left`,isTop?`up`:`down`]:[`right`,isTop?`up`:`down`],toast,children:[(0,import_jsx_runtime.jsx)(ToastClose,{className:`absolute top-2 right-2 rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground transition-colors`,"data-slot":`toast-close`,children:(0,import_jsx_runtime.jsx)(X,{className:`h-3.5 w-3.5`})}),(0,import_jsx_runtime.jsxs)(ToastContent,{className:`pointer-events-auto flex items-center justify-between gap-1.5 overflow-hidden pl-3.5 pr-8 py-3 text-sm transition-opacity duration-250 data-behind:pointer-events-none data-behind:opacity-0 data-expanded:opacity-100`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex gap-2`,children:[Icon$1&&(0,import_jsx_runtime.jsx)(`div`,{className:`[&>svg]:h-lh [&>svg]:w-4 [&_svg]:pointer-events-none [&_svg]:shrink-0`,"data-slot":`toast-icon`,children:(0,import_jsx_runtime.jsx)(Icon$1,{className:`in-data-[type=loading]:animate-spin in-data-[type=error]:text-destructive in-data-[type=info]:text-info in-data-[type=success]:text-success in-data-[type=warning]:text-warning in-data-[type=loading]:opacity-80`})}),(0,import_jsx_runtime.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,import_jsx_runtime.jsx)(ToastTitle,{className:`font-medium`,"data-slot":`toast-title`}),(0,import_jsx_runtime.jsx)(ToastDescription,{className:`text-muted-foreground`,"data-slot":`toast-description`})]})]}),toast.actionProps&&(0,import_jsx_runtime.jsx)(ToastAction,{className:buttonVariants({size:`xs`}),"data-slot":`toast-action`,children:toast.actionProps.children})]})]},toast.id)})})})}function Table({className,...props}){return(0,import_jsx_runtime.jsx)(`div`,{className:`relative w-full overflow-x-auto`,"data-slot":`table-container`,children:(0,import_jsx_runtime.jsx)(`table`,{className:cn(`w-full caption-bottom in-data-[slot=frame]:border-separate in-data-[slot=frame]:border-spacing-0 text-sm`,className),"data-slot":`table`,...props})})}function TableHeader({className,...props}){return(0,import_jsx_runtime.jsx)(`thead`,{className:cn(`[&_tr]:border-b in-data-[slot=frame]:**:[th]:h-9 in-data-[slot=frame]:*:[tr]:border-none in-data-[slot=frame]:*:[tr]:hover:bg-transparent`,className),"data-slot":`table-header`,...props})}function TableBody({className,...props}){return(0,import_jsx_runtime.jsx)(`tbody`,{className:cn(`relative in-data-[slot=frame]:rounded-xl in-data-[slot=frame]:shadow-xs before:pointer-events-none before:absolute before:inset-px not-in-data-[slot=frame]:before:hidden before:rounded-[calc(var(--radius-xl)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] dark:bg-clip-border dark:before:shadow-[0_-1px_--theme(--color-white/8%)] [&_tr:last-child]:border-0 in-data-[slot=frame]:*:[tr]:border-0 in-data-[slot=frame]:*:[tr]:*:[td]:border-b in-data-[slot=frame]:*:[tr]:*:[td]:bg-background in-data-[slot=frame]:*:[tr]:*:[td]:bg-clip-padding in-data-[slot=frame]:*:[tr]:first:*:[td]:first:rounded-ss-xl in-data-[slot=frame]:*:[tr]:*:[td]:first:border-s in-data-[slot=frame]:*:[tr]:first:*:[td]:border-t in-data-[slot=frame]:*:[tr]:last:*:[td]:last:rounded-ee-xl in-data-[slot=frame]:*:[tr]:*:[td]:last:border-e in-data-[slot=frame]:*:[tr]:first:*:[td]:last:rounded-se-xl in-data-[slot=frame]:*:[tr]:last:*:[td]:first:rounded-es-xl in-data-[slot=frame]:*:[tr]:hover:*:[td]:bg-transparent in-data-[slot=frame]:*:[tr]:data-[state=selected]:*:[td]:bg-muted/50`,className),"data-slot":`table-body`,...props})}function TableRow({className,...props}){return(0,import_jsx_runtime.jsx)(`tr`,{className:cn(`border-b transition-colors hover:bg-muted/50 in-data-[slot=frame]:hover:bg-transparent data-[state=selected]:bg-muted/50 in-data-[slot=frame]:data-[state=selected]:bg-transparent`,className),"data-slot":`table-row`,...props})}function TableHead({className,...props}){return(0,import_jsx_runtime.jsx)(`th`,{className:cn(`h-10 whitespace-nowrap px-2 text-left align-middle font-medium text-muted-foreground has-[[role=checkbox]]:w-px has-[[role=checkbox]]:pe-0 *:[[role=checkbox]]:translate-y-0.5`,className),"data-slot":`table-head`,...props})}function TableCell({className,...props}){return(0,import_jsx_runtime.jsx)(`td`,{className:cn(`whitespace-nowrap p-2 align-middle has-[[role=checkbox]]:pe-0 *:[[role=checkbox]]:translate-y-0.5`,className),"data-slot":`table-cell`,...props})}function InfoItem({label,value}){return(0,import_jsx_runtime.jsxs)(`div`,{children:[(0,import_jsx_runtime.jsx)(`div`,{className:`text-gray-500`,children:label}),(0,import_jsx_runtime.jsx)(`div`,{children:value||`-`})]})}function formatBytes(bytes){let n=Number(bytes);if(n===0)return`0 B`;let i$3=Math.floor(Math.log(n)/Math.log(1024));return(n/1024**i$3).toFixed(1)+` `+[`B`,`KB`,`MB`,`GB`,`TB`][i$3]}function formatRowCount(count){let n=Number(count);return n<1e3?n.toString():n<1e6?(n/1e3).toFixed(1)+`K`:n<1e9?(n/1e6).toFixed(1)+`M`:(n/1e9).toFixed(1)+`B`}function getKindLabel(kind){switch(kind){case`table`:return`Table`;case`partitioned_table`:return`Partitioned Table`;case`view`:return`View`;case`materialized_view`:return`Materialized View`;case`function`:return`Function`;case`procedure`:return`Procedure`;default:return`Object`}}function ColumnsTable({columns,isLoading}){return isLoading?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`Loading...`}):!columns||columns.length===0?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`No columns`}):(0,import_jsx_runtime.jsxs)(Table,{children:[(0,import_jsx_runtime.jsx)(TableHeader,{children:(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableHead,{children:`Name`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Type`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Nullable`})]})}),(0,import_jsx_runtime.jsx)(TableBody,{children:columns.map(col=>(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableCell,{children:col.name}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:col.type}),(0,import_jsx_runtime.jsx)(TableCell,{children:col.nullable?`Yes`:`No`})]},col.name))})]})}function IndexesTable({indexes,isLoading}){return isLoading?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`Loading...`}):!indexes||indexes.length===0?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`No indexes`}):(0,import_jsx_runtime.jsxs)(Table,{children:[(0,import_jsx_runtime.jsx)(TableHeader,{children:(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableHead,{children:`Name`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Columns`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Type`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Method`})]})}),(0,import_jsx_runtime.jsx)(TableBody,{children:indexes.map(idx=>(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableCell,{children:idx.name}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:idx.columns.join(`, `)}),(0,import_jsx_runtime.jsx)(TableCell,{children:idx.isPrimary?`Primary`:idx.isUnique?`Unique`:`-`}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:idx.method})]},idx.name))})]})}function ConstraintsTable({constraints,isLoading}){return isLoading?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`Loading...`}):!constraints||constraints.length===0?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`No constraints`}):(0,import_jsx_runtime.jsxs)(Table,{children:[(0,import_jsx_runtime.jsx)(TableHeader,{children:(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableHead,{children:`Name`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Type`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Columns`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`References`})]})}),(0,import_jsx_runtime.jsx)(TableBody,{children:constraints.map(con=>(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableCell,{children:con.name}),(0,import_jsx_runtime.jsx)(TableCell,{children:con.type}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:con.type===`CHECK`?con.definition:con.columns.join(`, `)}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:con.refTable?`${con.refTable} (${con.refColumns.join(`, `)})`:`-`})]},con.name))})]})}function TriggersTable({triggers,isLoading}){return isLoading?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`Loading...`}):!triggers||triggers.length===0?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`No triggers`}):(0,import_jsx_runtime.jsxs)(Table,{children:[(0,import_jsx_runtime.jsx)(TableHeader,{children:(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableHead,{children:`Name`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Timing`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Event`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Level`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Function`})]})}),(0,import_jsx_runtime.jsx)(TableBody,{children:triggers.map(trg=>(0,import_jsx_runtime.jsxs)(TableRow,{className:trg.enabled?``:`opacity-50`,children:[(0,import_jsx_runtime.jsx)(TableCell,{children:trg.name}),(0,import_jsx_runtime.jsx)(TableCell,{children:trg.timing}),(0,import_jsx_runtime.jsx)(TableCell,{children:trg.event}),(0,import_jsx_runtime.jsx)(TableCell,{children:trg.level}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:trg.function})]},trg.name))})]})}function PoliciesTable({policies,isLoading}){return isLoading?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`Loading...`}):!policies||policies.length===0?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`No policies`}):(0,import_jsx_runtime.jsxs)(Table,{children:[(0,import_jsx_runtime.jsx)(TableHeader,{children:(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableHead,{children:`Name`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Command`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Type`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Roles`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Expression`})]})}),(0,import_jsx_runtime.jsx)(TableBody,{children:policies.map(pol=>(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableCell,{children:pol.name}),(0,import_jsx_runtime.jsx)(TableCell,{children:pol.command}),(0,import_jsx_runtime.jsx)(TableCell,{children:pol.permissive}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:pol.roles.join(`, `)}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600 font-mono text-xs max-w-xs truncate`,title:pol.usingExpr||pol.checkExpr,children:pol.usingExpr||pol.checkExpr||`-`})]},pol.name))})]})}function GrantsTable({grants,isLoading}){return isLoading?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`Loading...`}):!grants||grants.length===0?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`No grants`}):(0,import_jsx_runtime.jsxs)(Table,{children:[(0,import_jsx_runtime.jsx)(TableHeader,{children:(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableHead,{children:`Grantee`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Privileges`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Grantor`})]})}),(0,import_jsx_runtime.jsx)(TableBody,{children:grants.map(grant=>(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableCell,{children:grant.grantee}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:grant.privileges.join(`, `)}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:grant.grantor})]},`${grant.grantee}-${grant.grantor}`))})]})}const editorTheme=(isEditing=!1)=>EditorView.theme({"&":{fontSize:`13px`},".cm-content":{padding:`8px 12px`,fontFamily:`ui-monospace, monospace`},".cm-line":{padding:`0`},".cm-scroller":{overflow:`auto`},".cm-gutters":{backgroundColor:isEditing?`#fff`:`#f9fafb`,borderRight:`1px solid #e5e7eb`},".cm-lineNumbers .cm-gutterElement":{padding:`0 8px`,color:`#9ca3af`}});function useSqlModuleReady(){let[moduleReady,setModuleReady]=(0,import_react.useState)(!1);return(0,import_react.useEffect)(()=>{__vitePreload(async()=>{let{ensureModuleLoaded:ensureModuleLoaded$1}=await import(`./sql-D0EIiV1b.js`);return{ensureModuleLoaded:ensureModuleLoaded$1}},[]).then(({ensureModuleLoaded:ensureModuleLoaded$1})=>{ensureModuleLoaded$1().then(()=>setModuleReady(!0))})},[]),moduleReady}function SQLDefinition({sql}){let containerRef=(0,import_react.useRef)(null),viewRef=(0,import_react.useRef)(null),moduleReady=useSqlModuleReady();return(0,import_react.useEffect)(()=>{if(!(!containerRef.current||!moduleReady))return viewRef.current&&=(viewRef.current.destroy(),null),viewRef.current=new EditorView({state:EditorState.create({doc:sql,extensions:[EditorView.editable.of(!1),EditorState.readOnly.of(!0),lineNumbers(),pgHighlight(),editorTheme()]}),parent:containerRef.current}),()=>{viewRef.current?.destroy(),viewRef.current=null}},[sql,moduleReady]),(0,import_jsx_runtime.jsx)(`div`,{ref:containerRef,className:`bg-gray-50 rounded-md overflow-hidden border border-gray-200`})}function escapeIdentifier(name$2){return`"${name$2.replace(/"/g,`""`)}"`}function escapeValue(value){return value==null?`NULL`:typeof value==`number`?String(value):typeof value==`boolean`?value?`TRUE`:`FALSE`:typeof value==`object`?`'${JSON.stringify(value).replace(/'/g,`''`)}'`:`'${String(value).replace(/'/g,`''`)}'`}function generateDeleteSQL(change){let statements=[];for(let table$1 of change.tables){let qualifiedTable=table$1.schemaName?`${escapeIdentifier(table$1.schemaName)}.${escapeIdentifier(table$1.tableName)}`:escapeIdentifier(table$1.tableName),whereColumns=table$1.primaryKeyColumns.length>0?table$1.primaryKeyColumns:Object.keys(table$1.rows[0]||{});for(let row of table$1.rows){let conditions=whereColumns.map(col=>{let value=row[col];return value==null?`${escapeIdentifier(col)} IS NULL`:`${escapeIdentifier(col)} = ${escapeValue(value)}`}).join(` AND `);statements.push(`DELETE FROM ${qualifiedTable} WHERE ${conditions};`)}}return statements.join(`
83
+ `)||editValue.length>100,showDefaultCheckbox=isNewRow&&hasDefault;return isBool?(0,import_jsx_runtime.jsx)(`div`,{className:`space-y-1`,children:(0,import_jsx_runtime.jsxs)(`select`,{ref:inputRef,value:isDefault?`default`:isNull?`null`:String(value),onChange:e=>{e.target.value===`null`?onSetNull():e.target.value===`default`?onSetDefault():onChange(e.target.value)},className:`w-full px-2 py-1.5 text-xs bg-white border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500`,children:[showDefaultCheckbox&&(0,import_jsx_runtime.jsx)(`option`,{value:`default`,children:`DEFAULT`}),isNullable&&(0,import_jsx_runtime.jsx)(`option`,{value:`null`,children:`null`}),(0,import_jsx_runtime.jsx)(`option`,{value:`true`,children:`true`}),(0,import_jsx_runtime.jsx)(`option`,{value:`false`,children:`false`})]})}):(0,import_jsx_runtime.jsxs)(`div`,{className:`space-y-1`,children:[isDefault?(0,import_jsx_runtime.jsx)(`div`,{className:`${valueBaseStyles} bg-gray-100 italic text-gray-500`,children:`DEFAULT`}):isMultiline?(0,import_jsx_runtime.jsx)(`textarea`,{ref:inputRef,value:editValue,onChange:e=>onChange(e.target.value),placeholder:isNull?`null`:``,className:`w-full px-2 py-1.5 text-xs bg-white border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 min-h-[80px] max-h-64 resize-y font-mono`,rows:4}):(0,import_jsx_runtime.jsx)(`input`,{ref:inputRef,type:`text`,value:editValue,onChange:e=>onChange(e.target.value),placeholder:isNull?`null`:``,className:`w-full px-2 py-1.5 text-xs bg-white border border-gray-300 rounded focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500`}),(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-4`,children:[showDefaultCheckbox&&(0,import_jsx_runtime.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs text-gray-500`,children:[(0,import_jsx_runtime.jsx)(`input`,{type:`checkbox`,checked:isDefault,onChange:e=>{e.target.checked?onSetDefault():onChange(``)},className:`rounded border-gray-300`}),`Use DEFAULT`]}),isNullable&&!isDefault&&(0,import_jsx_runtime.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs text-gray-500`,children:[(0,import_jsx_runtime.jsx)(`input`,{type:`checkbox`,checked:isNull,onChange:e=>{e.target.checked?onSetNull():onChange(``)},className:`rounded border-gray-300`}),`Set to NULL`]})]})]})}function RowDetailPanel({row,columns,open,onClose,onPrevious,onNext,hasPrevious,hasNext,scrollToColumn,currentIndex,totalCount,onExpandJson,onEdit,isEditing,onCancelEdit,onSaveEdit,onDelete,stagedType,stagedOverrides,onDiscardStaged,autoEditColumn,onAutoEditHandled,isNewRow}){let[search$1,setSearch]=(0,import_react.useState)(``),[highlightedColumn,setHighlightedColumn]=(0,import_react.useState)(null),[editedValues,setEditedValues]=(0,import_react.useState)({}),columnRefs=(0,import_react.useRef)(new Map),contentRef=(0,import_react.useRef)(null);(0,import_react.useEffect)(()=>{setEditedValues(isEditing?{...row}:{})},[isEditing,row]);let handleFieldChange=(0,import_react.useCallback)((colName,value,colType)=>{setEditedValues(prev=>{if(colType===`integer`||colType===`int4`||colType===`int8`||colType===`bigint`||colType===`smallint`){let num=parseInt(value,10);return{...prev,[colName]:isNaN(num)?value:num}}if(colType===`numeric`||colType===`decimal`||colType===`real`||colType===`float4`||colType===`float8`||colType===`double precision`){let num=parseFloat(value);return{...prev,[colName]:isNaN(num)?value:num}}return colType===`boolean`||colType===`bool`?{...prev,[colName]:value.toLowerCase()===`true`}:{...prev,[colName]:value}})},[]),handleSave=(0,import_react.useCallback)(()=>{onSaveEdit&&onSaveEdit(editedValues)},[editedValues,onSaveEdit]),missingRequiredPK=(0,import_react.useMemo)(()=>isNewRow?columns.some(col=>{if(!col.isPrimaryKey)return!1;let value=editedValues[col.name];return col.hasDefault&&value===void 0?!1:value===``||value==null}):!1,[columns,editedValues,isNewRow]),hasChanges=(0,import_react.useMemo)(()=>isNewRow?!missingRequiredPK:columns.some(col=>editedValues[col.name]!==row[col.name]),[columns,editedValues,row,isNewRow,missingRequiredPK]),filteredColumns=(0,import_react.useMemo)(()=>{if(!search$1)return columns;let lowerSearch=search$1.toLowerCase();return columns.filter(col=>{let colMatch=col.name.toLowerCase().includes(lowerSearch),value=row[col.name],valueMatch=value!=null&&String(value).toLowerCase().includes(lowerSearch);return colMatch||valueMatch})},[columns,row,search$1]);return(0,import_react.useEffect)(()=>{setSearch(``)},[row]),(0,import_react.useEffect)(()=>{open&&scrollToColumn?(requestAnimationFrame(()=>{let element$3=columnRefs.current.get(scrollToColumn);element$3&&contentRef.current&&element$3.scrollIntoView({behavior:`instant`,block:`center`})}),setHighlightedColumn(scrollToColumn)):setHighlightedColumn(null)},[open,scrollToColumn]),(0,import_react.useEffect)(()=>{if(open&&isEditing&&autoEditColumn){let timer=setTimeout(()=>onAutoEditHandled?.(),50);return()=>clearTimeout(timer)}},[open,isEditing,autoEditColumn,onAutoEditHandled]),useKeyboardShortcut(`row-detail-close`,`Escape`,()=>{isEditing&&onCancelEdit?onCancelEdit():onClose()},{when:()=>open}),open?(0,import_react_dom$2.createPortal)((0,import_jsx_runtime.jsxs)(`div`,{className:`fixed top-0 right-0 h-full w-96 bg-white border-l border-gray-200 shadow-lg flex flex-col z-50`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`shrink-0 px-2 py-2 flex flex-col gap-2`,children:[(0,import_jsx_runtime.jsx)(`div`,{className:`flex items-center justify-between`,children:isEditing?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`span`,{className:`text-xs font-medium text-gray-700`,children:isNewRow?`New row`:`Editing row`}),(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`sm`,onClick:onCancelEdit,tabIndex:-1,children:`Cancel`}),(0,import_jsx_runtime.jsx)(Button,{variant:`default`,size:`sm`,onClick:handleSave,disabled:!hasChanges,tabIndex:-1,children:`Save`})]})]}):(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`sm`,className:`p-1 h-auto`,onClick:onPrevious,disabled:!hasPrevious,title:`Previous row (k or ↑)`,tabIndex:-1,children:(0,import_jsx_runtime.jsx)(ChevronUp,{className:`w-4 h-4`})}),(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`sm`,className:`p-1 h-auto`,onClick:onNext,disabled:!hasNext,title:`Next row (j or ↓)`,tabIndex:-1,children:(0,import_jsx_runtime.jsx)(ChevronDown,{className:`w-4 h-4`})}),(0,import_jsx_runtime.jsxs)(`span`,{className:`text-xs text-gray-500 ml-1`,children:[currentIndex,`/`,totalCount]})]}),(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-1`,children:[onEdit&&(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{className:`p-1 rounded hover:text-blue-600 hover:bg-blue-50 disabled:text-gray-300 disabled:hover:bg-transparent disabled:cursor-not-allowed`,onClick:stagedType?void 0:onEdit,disabled:!!stagedType,tabIndex:-1,children:(0,import_jsx_runtime.jsx)(Pencil,{className:`w-4 h-4`})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{children:stagedType?`Cannot edit row staged for ${stagedType}`:`Edit row`})]}),onDelete&&(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{className:`p-1 rounded text-red-500 hover:text-red-600 hover:bg-red-50 disabled:text-gray-300 disabled:hover:bg-transparent disabled:cursor-not-allowed`,onClick:stagedType?void 0:onDelete,disabled:!!stagedType,tabIndex:-1,children:(0,import_jsx_runtime.jsx)(Trash2,{className:`w-4 h-4`})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{children:stagedType?`Row already staged for ${stagedType}`:`Stage row for deletion`})]}),stagedType&&onDiscardStaged&&(0,import_jsx_runtime.jsxs)(Tooltip,{children:[(0,import_jsx_runtime.jsx)(TooltipTrigger,{className:`p-1 rounded text-amber-600 hover:text-amber-700 hover:bg-amber-50`,onClick:onDiscardStaged,tabIndex:-1,children:(0,import_jsx_runtime.jsx)(Undo2,{className:`w-4 h-4`})}),(0,import_jsx_runtime.jsx)(TooltipPopup,{children:`Discard staged change`})]}),(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`sm`,className:`p-1 h-auto`,onClick:onClose,tabIndex:-1,children:(0,import_jsx_runtime.jsx)(X,{className:`w-4 h-4`})})]})]})}),!isEditing&&(0,import_jsx_runtime.jsx)(SearchInput,{value:search$1,onChange:e=>setSearch(e.target.value),onClear:()=>setSearch(``),size:`sm`})]}),(0,import_jsx_runtime.jsx)(`div`,{ref:contentRef,className:`flex-1 overflow-auto p-3 space-y-3`,children:filteredColumns.length===0?(0,import_jsx_runtime.jsx)(`div`,{className:`text-xs text-gray-400 text-center py-4`,children:`No matching columns`}):filteredColumns.map(col=>{let{name:colName,type:colType}=col,value=isEditing&&colName in editedValues?editedValues[colName]:row[colName],isNull=value===null,isUndefined=value===void 0,formattedValue=formatValue(value,colType),isModified=isEditing&&editedValues[colName]!==row[colName],isStaged$1=!isEditing&&stagedOverrides&&colName in stagedOverrides,showDefault=isUndefined&&stagedType===`insert`&&!isEditing;return(0,import_jsx_runtime.jsxs)(`div`,{ref:el=>{el?columnRefs.current.set(colName,el):columnRefs.current.delete(colName)},children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center justify-between mb-1`,children:[(0,import_jsx_runtime.jsxs)(`span`,{className:`text-xs font-medium truncate ${isModified||isStaged$1?`text-amber-600`:highlightedColumn===colName?`text-blue-600`:`text-gray-700`}`,children:[isEditing?colName:(0,import_jsx_runtime.jsx)(HighlightedText$1,{text:colName,search:search$1}),col.isPrimaryKey&&isNewRow&&!col.hasDefault&&(0,import_jsx_runtime.jsx)(`span`,{className:`ml-1 text-red-500`,children:`*`}),col.isPrimaryKey&&(0,import_jsx_runtime.jsxs)(`span`,{className:`ml-1 text-gray-400`,children:[`(PK`,isNewRow&&!col.hasDefault?`, required`:``,`)`]}),col.hasDefault&&(0,import_jsx_runtime.jsx)(`span`,{className:`ml-1 text-gray-400`,children:`(has default)`}),(isModified||isStaged$1)&&(0,import_jsx_runtime.jsx)(`span`,{className:`ml-1 text-amber-500`,children:`*`})]}),(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,import_jsx_runtime.jsx)(`span`,{className:`text-xs text-gray-400`,children:colType}),!isEditing&&isJsonType$1(colType)&&!isNull&&!isUndefined&&onExpandJson&&(0,import_jsx_runtime.jsx)(`button`,{onClick:()=>onExpandJson(value,colName),className:`p-1 rounded hover:bg-accent text-gray-400 hover:text-gray-600 transition-colors`,title:`Expand JSON`,children:(0,import_jsx_runtime.jsx)(Expand,{className:`w-3.5 h-3.5`})}),!isEditing&&!showDefault&&(0,import_jsx_runtime.jsx)(CopyButton,{value:formattedValue})]})]}),isEditing?(0,import_jsx_runtime.jsx)(EditableField,{value,colType,isNullable:col.isNullable,hasDefault:col.hasDefault,isNewRow:isNewRow||!1,onChange:newValue=>handleFieldChange(colName,newValue,colType),onSetNull:()=>setEditedValues(prev=>({...prev,[colName]:null})),onSetDefault:()=>setEditedValues(prev=>({...prev,[colName]:void 0})),autoFocus:autoEditColumn===colName}):showDefault?(0,import_jsx_runtime.jsx)(`div`,{className:`${valueBaseStyles} bg-green-50 border-green-200 italic text-gray-500`,children:`DEFAULT`}):isNull?(0,import_jsx_runtime.jsx)(`div`,{className:`${valueBaseStyles} ${isStaged$1?`bg-amber-50 border-amber-200`:``} italic text-gray-400`,children:`null`}):(0,import_jsx_runtime.jsx)(ValueRenderer,{value:formattedValue,search:search$1,isJson:isJsonType$1(colType),isStaged:isStaged$1})]},colName)})})]}),document.body):null}const DialogRootContext=import_react.createContext(void 0);function useDialogRootContext(optional){let dialogRootContext=import_react.useContext(DialogRootContext);if(optional===!1&&dialogRootContext===void 0)throw Error(formatErrorMessage(27));return dialogRootContext}var stateAttributesMapping$5={...popupStateMapping,...transitionStatusMapping};const DialogBackdrop$1=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,forceRender=!1,...elementProps}=componentProps,{store}=useDialogRootContext(),open=store.useState(`open`),nested=store.useState(`nested`),mounted=store.useState(`mounted`),transitionStatus=store.useState(`transitionStatus`);return useRenderElement(`div`,componentProps,{state:import_react.useMemo(()=>({open,transitionStatus}),[open,transitionStatus]),ref:[store.context.backdropRef,forwardedRef],stateAttributesMapping:stateAttributesMapping$5,props:[{role:`presentation`,hidden:!mounted,style:{userSelect:`none`,WebkitUserSelect:`none`}},elementProps],enabled:forceRender||!nested})}),DialogClose=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,disabled:disabled$1=!1,nativeButton=!0,...elementProps}=componentProps,{store}=useDialogRootContext(),open=store.useState(`open`);function handleClick(event){open&&store.setOpen(!1,createChangeEventDetails(`close-press`,event.nativeEvent))}let{getButtonProps,buttonRef}=useButton({disabled:disabled$1,native:nativeButton});return useRenderElement(`button`,componentProps,{state:import_react.useMemo(()=>({disabled:disabled$1}),[disabled$1]),ref:[forwardedRef,buttonRef],props:[{onClick:handleClick},elementProps,getButtonProps]})}),DialogDescription$1=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,id:idProp,...elementProps}=componentProps,{store}=useDialogRootContext(),id=useBaseUiId(idProp);return store.useSyncedValueWithCleanup(`descriptionElementId`,id),useRenderElement(`p`,componentProps,{ref:forwardedRef,props:[{id},elementProps]})});let DialogPopupCssVars=function(DialogPopupCssVars$1){return DialogPopupCssVars$1.nestedDialogs=`--nested-dialogs`,DialogPopupCssVars$1}({}),DialogPopupDataAttributes=function(DialogPopupDataAttributes$1){return DialogPopupDataAttributes$1[DialogPopupDataAttributes$1.open=CommonPopupDataAttributes.open]=`open`,DialogPopupDataAttributes$1[DialogPopupDataAttributes$1.closed=CommonPopupDataAttributes.closed]=`closed`,DialogPopupDataAttributes$1[DialogPopupDataAttributes$1.startingStyle=CommonPopupDataAttributes.startingStyle]=`startingStyle`,DialogPopupDataAttributes$1[DialogPopupDataAttributes$1.endingStyle=CommonPopupDataAttributes.endingStyle]=`endingStyle`,DialogPopupDataAttributes$1.nested=`data-nested`,DialogPopupDataAttributes$1.nestedDialogOpen=`data-nested-dialog-open`,DialogPopupDataAttributes$1}({});const DialogPortalContext=import_react.createContext(void 0);function useDialogPortalContext(){let value=import_react.useContext(DialogPortalContext);if(value===void 0)throw Error(formatErrorMessage(26));return value}var stateAttributesMapping$4={...popupStateMapping,...transitionStatusMapping,nestedDialogOpen(value){return value?{[DialogPopupDataAttributes.nestedDialogOpen]:``}:null}};const DialogPopup$1=import_react.forwardRef(function(componentProps,forwardedRef){let{className,finalFocus,initialFocus,render,...elementProps}=componentProps,{store}=useDialogRootContext(),descriptionElementId=store.useState(`descriptionElementId`),disablePointerDismissal=store.useState(`disablePointerDismissal`),floatingRootContext=store.useState(`floatingRootContext`),rootPopupProps=store.useState(`popupProps`),modal=store.useState(`modal`),mounted=store.useState(`mounted`),nested=store.useState(`nested`),nestedOpenDialogCount=store.useState(`nestedOpenDialogCount`),open=store.useState(`open`),openMethod=store.useState(`openMethod`),titleElementId=store.useState(`titleElementId`),transitionStatus=store.useState(`transitionStatus`),role=store.useState(`role`);useDialogPortalContext(),useOpenChangeComplete({open,ref:store.context.popupRef,onComplete(){open&&store.context.onOpenChangeComplete?.(!0)}});function defaultInitialFocus(interactionType){return interactionType===`touch`?store.context.popupRef.current:!0}let resolvedInitialFocus=initialFocus===void 0?defaultInitialFocus:initialFocus,nestedDialogOpen=nestedOpenDialogCount>0,element$3=useRenderElement(`div`,componentProps,{state:import_react.useMemo(()=>({open,nested,transitionStatus,nestedDialogOpen}),[open,nested,transitionStatus,nestedDialogOpen]),props:[rootPopupProps,{"aria-labelledby":titleElementId??void 0,"aria-describedby":descriptionElementId??void 0,role,tabIndex:-1,hidden:!mounted,onKeyDown(event){COMPOSITE_KEYS.has(event.key)&&event.stopPropagation()},style:{[DialogPopupCssVars.nestedDialogs]:nestedOpenDialogCount}},elementProps],ref:[forwardedRef,store.context.popupRef,store.useStateSetter(`popupElement`)],stateAttributesMapping:stateAttributesMapping$4});return(0,import_jsx_runtime.jsx)(FloatingFocusManager,{context:floatingRootContext,openInteractionType:openMethod,disabled:!mounted,closeOnFocusOut:!disablePointerDismissal,initialFocus:resolvedInitialFocus,returnFocus:finalFocus,modal:modal!==!1,restoreFocus:`popup`,children:element$3})}),DialogPortal$1=import_react.forwardRef(function(props,forwardedRef){let{keepMounted=!1,...portalProps}=props,{store}=useDialogRootContext(),mounted=store.useState(`mounted`),modal=store.useState(`modal`),open=store.useState(`open`);return mounted||keepMounted?(0,import_jsx_runtime.jsx)(DialogPortalContext.Provider,{value:keepMounted,children:(0,import_jsx_runtime.jsxs)(FloatingPortal,{ref:forwardedRef,...portalProps,children:[mounted&&modal===!0&&(0,import_jsx_runtime.jsx)(InternalBackdrop,{ref:store.context.internalBackdropRef,inert:inertValue(!open)}),props.children]})}):null});function useDialogRoot(params){let{store,parentContext,actionsRef}=params,open=store.useState(`open`),disablePointerDismissal=store.useState(`disablePointerDismissal`),modal=store.useState(`modal`),popupElement=store.useState(`popupElement`),{openMethod,triggerProps,reset:resetOpenInteractionType}=useOpenInteractionType(open);useImplicitActiveTrigger(store);let{forceUnmount}=useOpenStateTransitions(open,store,()=>{resetOpenInteractionType()}),createDialogEventDetails=useStableCallback(reason=>{let details=createChangeEventDetails(reason);return details.preventUnmountOnClose=()=>{store.set(`preventUnmountingOnClose`,!0)},details}),handleImperativeClose=import_react.useCallback(()=>{store.setOpen(!1,createDialogEventDetails(imperativeAction))},[store,createDialogEventDetails]);import_react.useImperativeHandle(actionsRef,()=>({unmount:forceUnmount,close:handleImperativeClose}),[forceUnmount,handleImperativeClose]);let floatingRootContext=useSyncedFloatingRootContext({popupStore:store,onOpenChange:store.setOpen,treatPopupAsFloatingElement:!0,noEmit:!0}),[ownNestedOpenDialogs,setOwnNestedOpenDialogs]=import_react.useState(0),isTopmost=ownNestedOpenDialogs===0,role=useRole(floatingRootContext),dismiss=useDismiss(floatingRootContext,{outsidePressEvent(){return store.context.internalBackdropRef.current||store.context.backdropRef.current?`intentional`:{mouse:modal===`trap-focus`?`sloppy`:`intentional`,touch:`sloppy`}},outsidePress(event){if(`button`in event&&event.button!==0||`touches`in event&&event.touches.length!==1)return!1;let target=getTarget(event);if(isTopmost&&!disablePointerDismissal){let eventTarget=target;return modal&&(store.context.internalBackdropRef.current||store.context.backdropRef.current)?store.context.internalBackdropRef.current===eventTarget||store.context.backdropRef.current===eventTarget||contains(eventTarget,popupElement)&&!eventTarget?.hasAttribute(`data-base-ui-portal`):!0}return!1},escapeKey:isTopmost});useScrollLock(open&&modal===!0,popupElement);let{getReferenceProps,getFloatingProps,getTriggerProps}=useInteractions([role,dismiss]);store.useContextCallback(`onNestedDialogOpen`,ownChildrenCount=>{setOwnNestedOpenDialogs(ownChildrenCount+1)}),store.useContextCallback(`onNestedDialogClose`,()=>{setOwnNestedOpenDialogs(0)}),import_react.useEffect(()=>(parentContext?.onNestedDialogOpen&&open&&parentContext.onNestedDialogOpen(ownNestedOpenDialogs),parentContext?.onNestedDialogClose&&!open&&parentContext.onNestedDialogClose(),()=>{parentContext?.onNestedDialogClose&&open&&parentContext.onNestedDialogClose()}),[open,parentContext,ownNestedOpenDialogs]);let activeTriggerProps=import_react.useMemo(()=>getReferenceProps(triggerProps),[getReferenceProps,triggerProps]),inactiveTriggerProps=import_react.useMemo(()=>getTriggerProps(triggerProps),[getTriggerProps,triggerProps]),popupProps=import_react.useMemo(()=>getFloatingProps(),[getFloatingProps]);store.useSyncedValues({openMethod,activeTriggerProps,inactiveTriggerProps,popupProps,floatingRootContext,nestedOpenDialogCount:ownNestedOpenDialogs})}var selectors={...popupStoreSelectors,modal:createSelector(state$1=>state$1.modal),nested:createSelector(state$1=>state$1.nested),nestedOpenDialogCount:createSelector(state$1=>state$1.nestedOpenDialogCount),disablePointerDismissal:createSelector(state$1=>state$1.disablePointerDismissal),openMethod:createSelector(state$1=>state$1.openMethod),descriptionElementId:createSelector(state$1=>state$1.descriptionElementId),titleElementId:createSelector(state$1=>state$1.titleElementId),viewportElement:createSelector(state$1=>state$1.viewportElement),role:createSelector(state$1=>state$1.role)},DialogStore=class extends ReactStore{constructor(initialState){super(createInitialState(initialState),{popupRef:import_react.createRef(),backdropRef:import_react.createRef(),internalBackdropRef:import_react.createRef(),triggerElements:new PopupTriggerMap,onOpenChange:void 0,onOpenChangeComplete:void 0},selectors)}setOpen=(nextOpen,eventDetails)=>{if(eventDetails.preventUnmountOnClose=()=>{this.set(`preventUnmountingOnClose`,!0)},!nextOpen&&eventDetails.trigger==null&&this.state.activeTriggerId!=null&&(eventDetails.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(nextOpen,eventDetails),eventDetails.isCanceled)return;let details={open:nextOpen,nativeEvent:eventDetails.event,reason:eventDetails.reason,nested:this.state.nested};this.state.floatingRootContext.context.events?.emit(`openchange`,details);let updatedState={open:nextOpen},newTriggerId=eventDetails.trigger?.id??null;(newTriggerId||nextOpen)&&(updatedState.activeTriggerId=newTriggerId,updatedState.activeTriggerElement=eventDetails.trigger??null),this.update(updatedState)}};function createInitialState(initialState={}){return{...createInitialPopupStoreState(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,role:`dialog`,...initialState}}function DialogRoot(props){let{children,open:openProp,defaultOpen=!1,onOpenChange,onOpenChangeComplete,disablePointerDismissal=!1,modal=!0,actionsRef,handle:handle$1,triggerId:triggerIdProp,defaultTriggerId:defaultTriggerIdProp=null}=props,parentDialogRootContext=useDialogRootContext(!0),nested=!!parentDialogRootContext,store=useRefWithInit(()=>handle$1?.store??new DialogStore({open:openProp??defaultOpen,activeTriggerId:triggerIdProp===void 0?defaultTriggerIdProp:triggerIdProp,modal,disablePointerDismissal,nested})).current;store.useControlledProp(`open`,openProp,defaultOpen),store.useControlledProp(`activeTriggerId`,triggerIdProp,defaultTriggerIdProp),store.useSyncedValues({disablePointerDismissal,nested,modal}),store.useContextCallback(`onOpenChange`,onOpenChange),store.useContextCallback(`onOpenChangeComplete`,onOpenChangeComplete);let payload=store.useState(`payload`);useDialogRoot({store,actionsRef,parentContext:parentDialogRootContext?.store.context,onOpenChange,triggerIdProp});let contextValue=import_react.useMemo(()=>({store}),[store]);return(0,import_jsx_runtime.jsx)(DialogRootContext.Provider,{value:contextValue,children:typeof children==`function`?children({payload}):children})}let DialogViewportDataAttributes=function(DialogViewportDataAttributes$1){return DialogViewportDataAttributes$1[DialogViewportDataAttributes$1.open=CommonPopupDataAttributes.open]=`open`,DialogViewportDataAttributes$1[DialogViewportDataAttributes$1.closed=CommonPopupDataAttributes.closed]=`closed`,DialogViewportDataAttributes$1[DialogViewportDataAttributes$1.startingStyle=CommonPopupDataAttributes.startingStyle]=`startingStyle`,DialogViewportDataAttributes$1[DialogViewportDataAttributes$1.endingStyle=CommonPopupDataAttributes.endingStyle]=`endingStyle`,DialogViewportDataAttributes$1.nested=`data-nested`,DialogViewportDataAttributes$1.nestedDialogOpen=`data-nested-dialog-open`,DialogViewportDataAttributes$1}({});var stateAttributesMapping$3={...popupStateMapping,...transitionStatusMapping,nested(value){return value?{[DialogViewportDataAttributes.nested]:``}:null},nestedDialogOpen(value){return value?{[DialogViewportDataAttributes.nestedDialogOpen]:``}:null}};const DialogViewport$1=import_react.forwardRef(function(componentProps,forwardedRef){let{className,render,children,...elementProps}=componentProps,keepMounted=useDialogPortalContext(),{store}=useDialogRootContext(),open=store.useState(`open`),nested=store.useState(`nested`),transitionStatus=store.useState(`transitionStatus`),nestedOpenDialogCount=store.useState(`nestedOpenDialogCount`),mounted=store.useState(`mounted`),nestedDialogOpen=nestedOpenDialogCount>0,state$1=import_react.useMemo(()=>({open,nested,transitionStatus,nestedDialogOpen}),[open,nested,transitionStatus,nestedDialogOpen]);return useRenderElement(`div`,componentProps,{enabled:keepMounted||mounted,state:state$1,ref:[forwardedRef,store.useStateSetter(`viewportElement`)],stateAttributesMapping:stateAttributesMapping$3,props:[{role:`presentation`,hidden:!mounted,children},elementProps]})}),DialogTitle$1=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,id:idProp,...elementProps}=componentProps,{store}=useDialogRootContext(),id=useBaseUiId(idProp);return store.useSyncedValueWithCleanup(`titleElementId`,id),useRenderElement(`h2`,componentProps,{ref:forwardedRef,props:[{id},elementProps]})}),DialogTrigger=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,disabled:disabled$1=!1,nativeButton=!0,id:idProp,payload,handle:handle$1,...elementProps}=componentProps,dialogRootContext=useDialogRootContext(!0),store=handle$1?.store??dialogRootContext?.store;if(!store)throw Error(formatErrorMessage(79));let thisTriggerId=useBaseUiId(idProp),floatingContext=store.useState(`floatingRootContext`),isOpenedByThisTrigger=store.useState(`isOpenedByTrigger`,thisTriggerId),triggerElementRef=import_react.useRef(null),{registerTrigger,isMountedByThisTrigger}=useTriggerDataForwarding(thisTriggerId,triggerElementRef,store,{payload}),{getButtonProps,buttonRef}=useButton({disabled:disabled$1,native:nativeButton}),localInteractionProps=useInteractions([useClick(floatingContext,{enabled:floatingContext!=null})]),state$1=import_react.useMemo(()=>({disabled:disabled$1,open:isOpenedByThisTrigger}),[disabled$1,isOpenedByThisTrigger]),rootTriggerProps=store.useState(`triggerProps`,isMountedByThisTrigger);return useRenderElement(`button`,componentProps,{state:state$1,ref:[buttonRef,forwardedRef,registerTrigger,triggerElementRef],props:[localInteractionProps.getReferenceProps(),rootTriggerProps,{"data-base-ui-click-trigger":``,id:thisTriggerId},elementProps,getButtonProps],stateAttributesMapping:triggerOpenStateMapping})});var editorTheme$1=EditorView.theme({"&":{fontSize:`13px`,backgroundColor:`transparent`,height:`100%`},".cm-content":{padding:`12px`,fontFamily:`ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace`},".cm-line":{padding:`0`},".cm-gutters":{display:`none`},"&.cm-focused":{outline:`none`},".cm-scroller":{overflow:`auto`}});function JsonExpandModal({open,onClose,value,columnName,onSave}){let[copied,setCopied]=(0,import_react.useState)(!1),[hasChanges,setHasChanges]=(0,import_react.useState)(!1),viewRef=(0,import_react.useRef)(null),initialValue=(0,import_react.useMemo)(()=>{if(value==null)return``;try{let parsed=typeof value==`string`?JSON.parse(value):value;return JSON.stringify(parsed,null,2)}catch{return String(value)}},[value]),initEditor=(0,import_react.useCallback)(container=>{viewRef.current&&=(viewRef.current.destroy(),null),container&&(viewRef.current=new EditorView({state:EditorState.create({doc:initialValue,extensions:[json(),syntaxHighlighting(defaultHighlightStyle),editorTheme$1,EditorView.lineWrapping,history(),keymap.of([...defaultKeymap,...historyKeymap]),EditorView.updateListener.of(update$1=>{update$1.docChanged&&setHasChanges(update$1.state.doc.toString()!==initialValue)})]}),parent:container}),requestAnimationFrame(()=>viewRef.current?.focus()))},[initialValue]),handleCopy=(0,import_react.useCallback)(async()=>{let text$5=viewRef.current?.state.doc.toString()??initialValue;await navigator.clipboard.writeText(text$5),setCopied(!0),setTimeout(()=>setCopied(!1),1500)},[initialValue]),handleSave=(0,import_react.useCallback)(()=>{onSave&&viewRef.current&&(onSave(viewRef.current.state.doc.toString()),onClose())},[onSave,onClose]);return(0,import_jsx_runtime.jsx)(DialogRoot,{open,onOpenChange:open$1=>!open$1&&onClose(),children:(0,import_jsx_runtime.jsxs)(DialogPortal$1,{children:[(0,import_jsx_runtime.jsx)(DialogBackdrop$1,{className:`fixed inset-0 z-50 bg-black/10`}),(0,import_jsx_runtime.jsx)(DialogViewport$1,{className:`fixed inset-0 z-50 grid place-items-center p-4`,children:(0,import_jsx_runtime.jsxs)(DialogPopup$1,{className:`relative w-full max-w-2xl rounded-2xl border bg-white shadow-lg`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center justify-between p-4 pb-2`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,import_jsx_runtime.jsx)(DialogTitle$1,{className:`text-base font-medium`,children:columnName}),(0,import_jsx_runtime.jsx)(`button`,{onClick:handleCopy,className:`p-1 rounded hover:bg-gray-100 text-gray-400 hover:text-gray-600 transition-colors`,title:`Copy to clipboard`,children:copied?(0,import_jsx_runtime.jsx)(Check,{className:`w-4 h-4 text-green-500`}):(0,import_jsx_runtime.jsx)(Copy,{className:`w-4 h-4`})})]}),(0,import_jsx_runtime.jsx)(`button`,{onClick:onClose,className:`p-1 rounded hover:bg-gray-100 text-gray-400 hover:text-gray-600 transition-colors`,children:(0,import_jsx_runtime.jsx)(X,{className:`w-4 h-4`})})]}),(0,import_jsx_runtime.jsx)(`div`,{className:`px-4`,children:(0,import_jsx_runtime.jsx)(`div`,{ref:initEditor,className:`bg-gray-50 border border-gray-200 rounded-lg h-[60vh] overflow-auto`})}),(0,import_jsx_runtime.jsxs)(`div`,{className:`flex items-center justify-end gap-2 p-4 pt-2`,children:[(0,import_jsx_runtime.jsx)(Button,{variant:`ghost`,size:`sm`,onClick:onClose,children:`Cancel`}),(0,import_jsx_runtime.jsx)(Button,{variant:`default`,size:`sm`,onClick:handleSave,disabled:!hasChanges,children:`Save`})]})]})})]})})}function useRowSelection({totalRows,onDelete}){let[selectedIndices,setSelectedIndices]=(0,import_react.useState)(new Set),[anchorIndex,setAnchorIndex]=(0,import_react.useState)(null);(0,import_react.useEffect)(()=>{setSelectedIndices(new Set),setAnchorIndex(null)},[totalRows]);let handleRowClick=(0,import_react.useCallback)((index$4,event)=>{let isRangeSelect=event.shiftKey,isToggleSelect=event.metaKey||event.ctrlKey;if(isRangeSelect&&anchorIndex!==null){let start=Math.min(anchorIndex,index$4),end=Math.max(anchorIndex,index$4),newSelection=new Set;for(let i$3=start;i$3<=end;i$3++)newSelection.add(i$3);setSelectedIndices(newSelection)}else isToggleSelect?(setSelectedIndices(prev=>{let newSet=new Set(prev);return newSet.has(index$4)?newSet.delete(index$4):newSet.add(index$4),newSet}),setAnchorIndex(index$4)):(setSelectedIndices(new Set([index$4])),setAnchorIndex(index$4))},[anchorIndex]),clearSelection=(0,import_react.useCallback)(()=>{setSelectedIndices(new Set),setAnchorIndex(null)},[]),handleKeyDown=(0,import_react.useCallback)(event=>{if(event.key===`Escape`){clearSelection();return}(event.key===`Delete`||event.key===`Backspace`)&&selectedIndices.size>0&&(event.preventDefault(),onDelete?.(Array.from(selectedIndices).sort((a$1,b$2)=>a$1-b$2)))},[selectedIndices,onDelete,clearSelection]);return(0,import_react.useEffect)(()=>(document.addEventListener(`keydown`,handleKeyDown),()=>document.removeEventListener(`keydown`,handleKeyDown)),[handleKeyDown]),{selectedIndices,handleRowClick,clearSelection,isSelected:index$4=>selectedIndices.has(index$4),selectionCount:selectedIndices.size}}function useConnectionPermissions(connectionId){let{data:connections}=useConnections(),permissions=connections?.find(c=>c.id===connectionId)?.permissions??[];return{hasRead:permissions.includes(`read`),hasWrite:permissions.includes(`write`),hasDdl:permissions.includes(`ddl`),hasAdmin:permissions.includes(`admin`),hasExplain:permissions.includes(`explain`),hasExecute:permissions.includes(`execute`),hasExport:permissions.includes(`export`),permissions}}var counter=0;function generateId(prefix$1){return counter+=1,`${prefix$1}-${Math.random().toString(36).slice(2,6)}-${counter}`}const ToastContext=import_react.createContext(void 0);function useToastContext(){let context=import_react.useContext(ToastContext);if(!context)throw Error(formatErrorMessage(73));return context}function resolvePromiseOptions(options$1,result){if(typeof options$1==`string`)return{description:options$1};if(typeof options$1==`function`){let resolvedOptions=options$1(result);return typeof resolvedOptions==`string`?{description:resolvedOptions}:resolvedOptions}return options$1}var import_react_dom$1=__toESM(require_react_dom());const ToastProvider$1=function(props){let{children,timeout=5e3,limit=3,toastManager:toastManager$1}=props,[toasts,setToasts]=import_react.useState([]),[hovering,setHovering]=import_react.useState(!1),[focused,setFocused]=import_react.useState(!1),[prevFocusElement,setPrevFocusElement]=import_react.useState(null);toasts.length===0&&(hovering&&setHovering(!1),focused&&setFocused(!1));let expanded=hovering||focused,timersRef=import_react.useRef(new Map),viewportRef=import_react.useRef(null),windowFocusedRef=import_react.useRef(!0),isPausedRef=import_react.useRef(!1);function handleFocusManagement(toastId){let activeEl=activeElement(ownerDocument(viewportRef.current));if(!viewportRef.current||!contains(viewportRef.current,activeEl)||!matchesFocusVisible(activeEl))return;let currentIndex=toasts.findIndex(toast=>toast.id===toastId),nextToast=null,index$4=currentIndex+1;for(;index$4<toasts.length;){if(toasts[index$4].transitionStatus!==`ending`){nextToast=toasts[index$4];break}index$4+=1}if(!nextToast)for(index$4=currentIndex-1;index$4>=0;){if(toasts[index$4].transitionStatus!==`ending`){nextToast=toasts[index$4];break}--index$4}nextToast?nextToast.ref?.current?.focus():prevFocusElement?.focus({preventScroll:!0})}let pauseTimers=useStableCallback(()=>{isPausedRef.current||(isPausedRef.current=!0,timersRef.current.forEach(timer=>{if(timer.timeout){timer.timeout.clear();let elapsed=Date.now()-timer.start,remaining=timer.delay-elapsed;timer.remaining=remaining>0?remaining:0}}))}),resumeTimers=useStableCallback(()=>{isPausedRef.current&&(isPausedRef.current=!1,timersRef.current.forEach((timer,id)=>{timer.remaining=timer.remaining>0?timer.remaining:timer.delay,timer.timeout??=Timeout.create(),timer.timeout.start(timer.remaining,()=>{timersRef.current.delete(id),timer.callback()}),timer.start=Date.now()}))}),close=useStableCallback(toastId=>{setToasts(prevToasts=>{let toastsWithEnding=prevToasts.map(toast=>toast.id===toastId?{...toast,transitionStatus:`ending`,height:0}:toast),activeToasts=toastsWithEnding.filter(t$1=>t$1.transitionStatus!==`ending`);return toastsWithEnding.map(toast=>{if(toast.transitionStatus===`ending`)return toast;let isActiveToastLimited=activeToasts.indexOf(toast)>=limit;return{...toast,limited:isActiveToastLimited}})});let timer=timersRef.current.get(toastId);timer&&timer.timeout&&(timer.timeout.clear(),timersRef.current.delete(toastId)),toasts.find(t$1=>t$1.id===toastId)?.onClose?.(),handleFocusManagement(toastId),toasts.length===1&&(setHovering(!1),setFocused(!1))}),remove$1=useStableCallback(toastId=>{setToasts(prev=>prev.filter(toast=>toast.id!==toastId)),toasts.find(t$1=>t$1.id===toastId)?.onRemove?.()}),scheduleTimer=useStableCallback((id,delay,callback)=>{let start=Date.now(),shouldStartActive=windowFocusedRef.current&&!hovering&&!focused,currentTimeout=shouldStartActive?Timeout.create():void 0;currentTimeout?.start(delay,()=>{timersRef.current.delete(id),callback()}),timersRef.current.set(id,{timeout:currentTimeout,start:shouldStartActive?start:0,delay,remaining:delay,callback})}),add$1=useStableCallback(toast=>{let id=toast.id||generateId(`toast`),toastToAdd={...toast,id,transitionStatus:`starting`};setToasts(prev=>{let updatedToasts=[toastToAdd,...prev],activeToasts=updatedToasts.filter(t$1=>t$1.transitionStatus!==`ending`);if(activeToasts.length>limit){let excessCount=activeToasts.length-limit,oldestActiveToasts=activeToasts.slice(-excessCount);return updatedToasts.map(t$1=>oldestActiveToasts.some(old=>old.id===t$1.id)?{...t$1,limited:!0}:{...t$1,limited:!1})}return updatedToasts.map(t$1=>({...t$1,limited:!1}))});let duration=toastToAdd.timeout??timeout;return toastToAdd.type!==`loading`&&duration>0&&scheduleTimer(id,duration,()=>close(id)),(hovering||focused||!windowFocusedRef.current)&&pauseTimers(),id}),update$1=useStableCallback((id,updates)=>{let prevToast=toasts.find(toast=>toast.id===id)??null,nextToast=prevToast?{...prevToast,...updates}:null;if(import_react_dom$1.flushSync(()=>{setToasts(prev=>prev.map(toast=>toast.id===id?{...toast,...updates}:toast))}),!nextToast)return;let nextTimeout=nextToast.timeout??timeout,prevTimeout=prevToast?.timeout??timeout,timeoutUpdated=Object.hasOwn(updates,`timeout`),shouldHaveTimer=nextToast.transitionStatus!==`ending`&&nextToast.type!==`loading`&&nextTimeout>0,hasTimer=timersRef.current.has(id),timeoutChanged=prevTimeout!==nextTimeout,wasLoading=prevToast?.type===`loading`;if(!shouldHaveTimer&&hasTimer){timersRef.current.get(id)?.timeout?.clear(),timersRef.current.delete(id);return}if(shouldHaveTimer&&(!hasTimer||timeoutChanged||timeoutUpdated||wasLoading)){let timer=timersRef.current.get(id);timer&&(timer.timeout?.clear(),timersRef.current.delete(id)),scheduleTimer(id,nextTimeout,()=>close(id)),(hovering||focused||!windowFocusedRef.current)&&pauseTimers()}}),promise=useStableCallback((promiseValue,options$1)=>{let id=add$1({...resolvePromiseOptions(options$1.loading),type:`loading`}),handledPromise=promiseValue.then(result=>{let successOptions=resolvePromiseOptions(options$1.success,result);return update$1(id,{...successOptions,type:`success`,timeout:successOptions.timeout}),result}).catch(error=>{let errorOptions=resolvePromiseOptions(options$1.error,error);return update$1(id,{...errorOptions,type:`error`,timeout:errorOptions.timeout}),Promise.reject(error)});return{}.hasOwnProperty.call(options$1,`setPromise`)&&options$1.setPromise(handledPromise),handledPromise});import_react.useEffect(function(){if(toastManager$1)return toastManager$1[` subscribe`](({action,options:options$1})=>{let id=options$1.id;action===`promise`&&options$1.promise?promise(options$1.promise,options$1):action===`update`&&id?update$1(id,options$1):action===`close`&&id?close(id):add$1(options$1)})},[add$1,update$1,scheduleTimer,timeout,toastManager$1,promise,close]);let contextValue=import_react.useMemo(()=>({toasts,setToasts,hovering,setHovering,focused,setFocused,expanded,add:add$1,close,remove:remove$1,update:update$1,promise,pauseTimers,resumeTimers,prevFocusElement,setPrevFocusElement,viewportRef,scheduleTimer,windowFocusedRef}),[add$1,close,focused,hovering,expanded,pauseTimers,prevFocusElement,promise,remove$1,resumeTimers,scheduleTimer,toasts,update$1]);return(0,import_jsx_runtime.jsx)(ToastContext.Provider,{value:contextValue,children})},ToastViewportContext=import_react.createContext(void 0);let ToastViewportCssVars=function(ToastViewportCssVars$1){return ToastViewportCssVars$1.frontmostHeight=`--toast-frontmost-height`,ToastViewportCssVars$1}({});const ToastViewport=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,children,...elementProps}=componentProps,{toasts,pauseTimers,resumeTimers,setHovering,setFocused,viewportRef,windowFocusedRef,prevFocusElement,setPrevFocusElement,expanded,focused}=useToastContext(),handlingFocusGuardRef=import_react.useRef(!1),markedReadyForMouseLeaveRef=import_react.useRef(!1),numToasts=toasts.length,frontmostHeight=toasts[0]?.height??0,hasTransitioningToasts=import_react.useMemo(()=>toasts.some(toast=>toast.transitionStatus===`ending`),[toasts]);import_react.useEffect(()=>{if(!viewportRef.current)return;function handleGlobalKeyDown(event){numToasts!==0&&event.key===`F6`&&event.target!==viewportRef.current&&(event.preventDefault(),setPrevFocusElement(activeElement(ownerDocument(viewportRef.current))),viewportRef.current?.focus({preventScroll:!0}),pauseTimers(),setFocused(!0))}let win=getWindow(viewportRef.current);return win.addEventListener(`keydown`,handleGlobalKeyDown),()=>{win.removeEventListener(`keydown`,handleGlobalKeyDown)}},[pauseTimers,setFocused,setPrevFocusElement,numToasts,viewportRef]),import_react.useEffect(()=>{if(!viewportRef.current||!numToasts)return;let win=getWindow(viewportRef.current);function handleWindowBlur(event){event.target===win&&(windowFocusedRef.current=!1,pauseTimers())}function handleWindowFocus(event){if(event.relatedTarget||event.target===win)return;let target=getTarget(event),activeEl=activeElement(ownerDocument(viewportRef.current));(!contains(viewportRef.current,target)||!matchesFocusVisible(activeEl))&&resumeTimers(),setTimeout(()=>{windowFocusedRef.current=!0})}return win.addEventListener(`blur`,handleWindowBlur,!0),win.addEventListener(`focus`,handleWindowFocus,!0),()=>{win.removeEventListener(`blur`,handleWindowBlur,!0),win.removeEventListener(`focus`,handleWindowFocus,!0)}},[pauseTimers,resumeTimers,viewportRef,windowFocusedRef,setFocused,numToasts]),import_react.useEffect(()=>{let viewportNode=viewportRef.current;if(!viewportNode||numToasts===0)return;let doc$1=ownerDocument(viewportNode);function handlePointerDown(event){event.pointerType===`touch`&&(contains(viewportNode,getTarget(event))||(resumeTimers(),setHovering(!1),setFocused(!1)))}return doc$1.addEventListener(`pointerdown`,handlePointerDown,!0),()=>{doc$1.removeEventListener(`pointerdown`,handlePointerDown,!0)}},[numToasts,resumeTimers,setFocused,setHovering,viewportRef]);function handleFocusGuard(event){viewportRef.current&&(handlingFocusGuardRef.current=!0,event.relatedTarget===viewportRef.current?toasts[0]?.ref?.current?.focus():prevFocusElement?.focus({preventScroll:!0}))}function handleKeyDown(event){event.key===`Tab`&&event.shiftKey&&event.target===viewportRef.current&&(event.preventDefault(),prevFocusElement?.focus({preventScroll:!0}),resumeTimers())}import_react.useEffect(()=>{!windowFocusedRef.current||hasTransitioningToasts||!markedReadyForMouseLeaveRef.current||(resumeTimers(),setHovering(!1),markedReadyForMouseLeaveRef.current=!1)},[hasTransitioningToasts,resumeTimers,setHovering,windowFocusedRef]);function handleMouseEnter(){pauseTimers(),setHovering(!0),markedReadyForMouseLeaveRef.current=!1}function handleMouseLeave(){toasts.some(toast=>toast.transitionStatus===`ending`)?markedReadyForMouseLeaveRef.current=!0:(resumeTimers(),setHovering(!1))}function handleFocus(){if(handlingFocusGuardRef.current){handlingFocusGuardRef.current=!1;return}focused||matchesFocusVisible(ownerDocument(viewportRef.current).activeElement)&&(setFocused(!0),pauseTimers())}function handleBlur(event){!focused||contains(viewportRef.current,event.relatedTarget)||(setFocused(!1),resumeTimers())}let defaultProps={tabIndex:-1,role:`region`,"aria-live":`polite`,"aria-atomic":!1,"aria-relevant":`additions text`,"aria-label":`Notifications`,onMouseEnter:handleMouseEnter,onMouseMove:handleMouseEnter,onMouseLeave:handleMouseLeave,onFocus:handleFocus,onBlur:handleBlur,onKeyDown:handleKeyDown,onClick:handleFocus},state$1=import_react.useMemo(()=>({expanded}),[expanded]),element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,viewportRef],state:state$1,props:[defaultProps,{style:{[ToastViewportCssVars.frontmostHeight]:frontmostHeight?`${frontmostHeight}px`:void 0}},elementProps,{children:(0,import_jsx_runtime.jsxs)(import_react.Fragment,{children:[numToasts>0&&prevFocusElement&&(0,import_jsx_runtime.jsx)(FocusGuard,{onFocus:handleFocusGuard}),children,numToasts>0&&prevFocusElement&&(0,import_jsx_runtime.jsx)(FocusGuard,{onFocus:handleFocusGuard})]})}]}),contextValue=import_react.useMemo(()=>({viewportRef}),[viewportRef]),highPriorityToasts=import_react.useMemo(()=>toasts.filter(toast=>toast.priority===`high`),[toasts]);return(0,import_jsx_runtime.jsxs)(ToastViewportContext.Provider,{value:contextValue,children:[numToasts>0&&prevFocusElement&&(0,import_jsx_runtime.jsx)(FocusGuard,{onFocus:handleFocusGuard}),element$3,!focused&&highPriorityToasts.length>0&&(0,import_jsx_runtime.jsx)(`div`,{style:visuallyHidden,children:highPriorityToasts.map(toast=>(0,import_jsx_runtime.jsxs)(`div`,{role:`alert`,"aria-atomic":!0,children:[(0,import_jsx_runtime.jsx)(`div`,{children:toast.title}),(0,import_jsx_runtime.jsx)(`div`,{children:toast.description})]},toast.id))})]})}),ToastRootContext=import_react.createContext(void 0);function useToastRootContext(){let context=import_react.useContext(ToastRootContext);if(!context)throw Error(formatErrorMessage(66));return context}let ToastRootCssVars=function(ToastRootCssVars$1){return ToastRootCssVars$1.index=`--toast-index`,ToastRootCssVars$1.offsetY=`--toast-offset-y`,ToastRootCssVars$1.height=`--toast-height`,ToastRootCssVars$1.swipeMovementX=`--toast-swipe-movement-x`,ToastRootCssVars$1.swipeMovementY=`--toast-swipe-movement-y`,ToastRootCssVars$1}({});var import_react_dom=__toESM(require_react_dom()),stateAttributesMapping$2={...transitionStatusMapping,swipeDirection(value){return value?{"data-swipe-direction":value}:null}},SWIPE_THRESHOLD=40,REVERSE_CANCEL_THRESHOLD=10,OPPOSITE_DIRECTION_DAMPING_FACTOR=.5,MIN_DRAG_THRESHOLD=1;function getDisplacement(direction,deltaX,deltaY){switch(direction){case`up`:return-deltaY;case`down`:return deltaY;case`left`:return-deltaX;case`right`:return deltaX;default:return 0}}function getElementTransform(element$3){let transform$1=window.getComputedStyle(element$3).transform,translateX=0,translateY=0,scale=1;if(transform$1&&transform$1!==`none`){let matrix=transform$1.match(/matrix(?:3d)?\(([^)]+)\)/);if(matrix){let values=matrix[1].split(`, `).map(parseFloat);values.length===6?(translateX=values[4],translateY=values[5],scale=Math.sqrt(values[0]*values[0]+values[1]*values[1])):values.length===16&&(translateX=values[12],translateY=values[13],scale=values[0])}}return{x:translateX,y:translateY,scale}}const ToastRoot=import_react.forwardRef(function(componentProps,forwardedRef){let{toast,render,className,swipeDirection=[`down`,`right`],...elementProps}=componentProps,isAnchored=toast.positionerProps?.anchor!==void 0,swipeDirections=[];isAnchored||(swipeDirections=Array.isArray(swipeDirection)?swipeDirection:[swipeDirection]);let swipeEnabled=swipeDirections.length>0,{toasts,focused,close,remove:remove$1,setToasts,pauseTimers,expanded,setHovering}=useToastContext(),[currentSwipeDirection,setCurrentSwipeDirection]=import_react.useState(void 0),[isSwiping,setIsSwiping]=import_react.useState(!1),[isRealSwipe,setIsRealSwipe]=import_react.useState(!1),[dragDismissed,setDragDismissed]=import_react.useState(!1),[dragOffset,setDragOffset]=import_react.useState({x:0,y:0}),[initialTransform,setInitialTransform]=import_react.useState({x:0,y:0,scale:1}),[titleId,setTitleId]=import_react.useState(),[descriptionId,setDescriptionId]=import_react.useState(),[lockedDirection,setLockedDirection]=import_react.useState(null),rootRef=import_react.useRef(null),dragStartPosRef=import_react.useRef({x:0,y:0}),initialTransformRef=import_react.useRef({x:0,y:0,scale:1}),intendedSwipeDirectionRef=import_react.useRef(void 0),maxSwipeDisplacementRef=import_react.useRef(0),cancelledSwipeRef=import_react.useRef(!1),swipeCancelBaselineRef=import_react.useRef({x:0,y:0}),isFirstPointerMoveRef=import_react.useRef(!1),domIndex$1=import_react.useMemo(()=>toasts.indexOf(toast),[toast,toasts]),visibleIndex=import_react.useMemo(()=>toasts.filter(t$1=>t$1.transitionStatus!==`ending`).indexOf(toast),[toast,toasts]),offsetY=import_react.useMemo(()=>toasts.slice(0,toasts.indexOf(toast)).reduce((acc,t$1)=>acc+(t$1.height||0),0),[toasts,toast]);useOpenChangeComplete({open:toast.transitionStatus!==`ending`,ref:rootRef,onComplete(){toast.transitionStatus===`ending`&&remove$1(toast.id)}});let recalculateHeight=useStableCallback((flushSync$1=!1)=>{let element$4=rootRef.current;if(!element$4)return;let previousHeight=element$4.style.height;element$4.style.height=`auto`;let height=element$4.offsetHeight;element$4.style.height=previousHeight;function update$1(){setToasts(prev=>prev.map(t$1=>t$1.id===toast.id?{...t$1,ref:rootRef,height,transitionStatus:void 0}:t$1))}flushSync$1?import_react_dom.flushSync(update$1):update$1()});useIsoLayoutEffect(recalculateHeight,[recalculateHeight]);function applyDirectionalDamping(deltaX,deltaY){let newDeltaX=deltaX,newDeltaY=deltaY;return!swipeDirections.includes(`left`)&&!swipeDirections.includes(`right`)?newDeltaX=deltaX>0?deltaX**OPPOSITE_DIRECTION_DAMPING_FACTOR:-(Math.abs(deltaX)**OPPOSITE_DIRECTION_DAMPING_FACTOR):(!swipeDirections.includes(`right`)&&deltaX>0&&(newDeltaX=deltaX**OPPOSITE_DIRECTION_DAMPING_FACTOR),!swipeDirections.includes(`left`)&&deltaX<0&&(newDeltaX=-(Math.abs(deltaX)**OPPOSITE_DIRECTION_DAMPING_FACTOR))),!swipeDirections.includes(`up`)&&!swipeDirections.includes(`down`)?newDeltaY=deltaY>0?deltaY**OPPOSITE_DIRECTION_DAMPING_FACTOR:-(Math.abs(deltaY)**OPPOSITE_DIRECTION_DAMPING_FACTOR):(!swipeDirections.includes(`down`)&&deltaY>0&&(newDeltaY=deltaY**OPPOSITE_DIRECTION_DAMPING_FACTOR),!swipeDirections.includes(`up`)&&deltaY<0&&(newDeltaY=-(Math.abs(deltaY)**OPPOSITE_DIRECTION_DAMPING_FACTOR))),{x:newDeltaX,y:newDeltaY}}function handlePointerDown(event){if(event.button!==0)return;event.pointerType===`touch`&&pauseTimers();let target=getTarget(event.nativeEvent);if(!(target&&target.closest(`button,a,input,textarea,[role="button"],[data-swipe-ignore]`))){if(cancelledSwipeRef.current=!1,intendedSwipeDirectionRef.current=void 0,maxSwipeDisplacementRef.current=0,dragStartPosRef.current={x:event.clientX,y:event.clientY},swipeCancelBaselineRef.current=dragStartPosRef.current,rootRef.current){let transform$1=getElementTransform(rootRef.current);initialTransformRef.current=transform$1,setInitialTransform(transform$1),setDragOffset({x:transform$1.x,y:transform$1.y})}setHovering(!0),setIsSwiping(!0),setIsRealSwipe(!1),setLockedDirection(null),isFirstPointerMoveRef.current=!0,rootRef.current?.setPointerCapture(event.pointerId)}}function handlePointerMove(event){if(!isSwiping)return;event.preventDefault(),isFirstPointerMoveRef.current&&=(dragStartPosRef.current={x:event.clientX,y:event.clientY},!1);let{clientY,clientX,movementX,movementY}=event;(movementY<0&&clientY>swipeCancelBaselineRef.current.y||movementY>0&&clientY<swipeCancelBaselineRef.current.y)&&(swipeCancelBaselineRef.current={x:swipeCancelBaselineRef.current.x,y:clientY}),(movementX<0&&clientX>swipeCancelBaselineRef.current.x||movementX>0&&clientX<swipeCancelBaselineRef.current.x)&&(swipeCancelBaselineRef.current={x:clientX,y:swipeCancelBaselineRef.current.y});let deltaX=clientX-dragStartPosRef.current.x,deltaY=clientY-dragStartPosRef.current.y,cancelDeltaY=clientY-swipeCancelBaselineRef.current.y,cancelDeltaX=clientX-swipeCancelBaselineRef.current.x;if(!isRealSwipe&&Math.sqrt(deltaX*deltaX+deltaY*deltaY)>=MIN_DRAG_THRESHOLD&&(setIsRealSwipe(!0),lockedDirection===null)){let hasHorizontal=swipeDirections.includes(`left`)||swipeDirections.includes(`right`),hasVertical=swipeDirections.includes(`up`)||swipeDirections.includes(`down`);hasHorizontal&&hasVertical&&setLockedDirection(Math.abs(deltaX)>Math.abs(deltaY)?`horizontal`:`vertical`)}let candidate;if(!intendedSwipeDirectionRef.current)lockedDirection===`vertical`?deltaY>0?candidate=`down`:deltaY<0&&(candidate=`up`):lockedDirection===`horizontal`?deltaX>0?candidate=`right`:deltaX<0&&(candidate=`left`):candidate=Math.abs(deltaX)>=Math.abs(deltaY)?deltaX>0?`right`:`left`:deltaY>0?`down`:`up`,candidate&&swipeDirections.includes(candidate)&&(intendedSwipeDirectionRef.current=candidate,maxSwipeDisplacementRef.current=getDisplacement(candidate,deltaX,deltaY),setCurrentSwipeDirection(candidate));else{let direction=intendedSwipeDirectionRef.current,currentDisplacement=getDisplacement(direction,cancelDeltaX,cancelDeltaY);currentDisplacement>SWIPE_THRESHOLD?(cancelledSwipeRef.current=!1,setCurrentSwipeDirection(direction)):!(swipeDirections.includes(`left`)&&swipeDirections.includes(`right`))&&!(swipeDirections.includes(`up`)&&swipeDirections.includes(`down`))&&maxSwipeDisplacementRef.current-currentDisplacement>=REVERSE_CANCEL_THRESHOLD&&(cancelledSwipeRef.current=!0)}let dampedDelta=applyDirectionalDamping(deltaX,deltaY),newOffsetX=initialTransformRef.current.x,newOffsetY=initialTransformRef.current.y;lockedDirection===`horizontal`?(swipeDirections.includes(`left`)||swipeDirections.includes(`right`))&&(newOffsetX+=dampedDelta.x):(lockedDirection===`vertical`||(swipeDirections.includes(`left`)||swipeDirections.includes(`right`))&&(newOffsetX+=dampedDelta.x),(swipeDirections.includes(`up`)||swipeDirections.includes(`down`))&&(newOffsetY+=dampedDelta.y)),setDragOffset({x:newOffsetX,y:newOffsetY})}function handlePointerUp(event){if(!isSwiping)return;if(setIsSwiping(!1),setIsRealSwipe(!1),setLockedDirection(null),rootRef.current?.releasePointerCapture(event.pointerId),cancelledSwipeRef.current){setDragOffset({x:initialTransform.x,y:initialTransform.y}),setCurrentSwipeDirection(void 0);return}let shouldClose=!1,deltaX=dragOffset.x-initialTransform.x,deltaY=dragOffset.y-initialTransform.y,dismissDirection;for(let direction of swipeDirections){switch(direction){case`right`:deltaX>SWIPE_THRESHOLD&&(shouldClose=!0,dismissDirection=`right`);break;case`left`:deltaX<-SWIPE_THRESHOLD&&(shouldClose=!0,dismissDirection=`left`);break;case`down`:deltaY>SWIPE_THRESHOLD&&(shouldClose=!0,dismissDirection=`down`);break;case`up`:deltaY<-SWIPE_THRESHOLD&&(shouldClose=!0,dismissDirection=`up`);break;default:break}if(shouldClose)break}shouldClose?(setCurrentSwipeDirection(dismissDirection),setDragDismissed(!0),close(toast.id)):(setDragOffset({x:initialTransform.x,y:initialTransform.y}),setCurrentSwipeDirection(void 0))}function handleKeyDown(event){if(event.key===`Escape`){if(!rootRef.current||!contains(rootRef.current,activeElement(ownerDocument(rootRef.current))))return;close(toast.id)}}import_react.useEffect(()=>{if(!swipeEnabled)return;let element$4=rootRef.current;if(!element$4)return;function preventDefaultTouchStart(event){contains(element$4,event.target)&&event.preventDefault()}return element$4.addEventListener(`touchmove`,preventDefaultTouchStart,{passive:!1}),()=>{element$4.removeEventListener(`touchmove`,preventDefaultTouchStart)}},[swipeEnabled]);function getDragStyles(){if(!isSwiping&&dragOffset.x===initialTransform.x&&dragOffset.y===initialTransform.y&&!dragDismissed)return{[ToastRootCssVars.swipeMovementX]:`0px`,[ToastRootCssVars.swipeMovementY]:`0px`};let deltaX=dragOffset.x-initialTransform.x,deltaY=dragOffset.y-initialTransform.y;return{transition:isSwiping?`none`:void 0,transform:isSwiping?`translateX(${dragOffset.x}px) translateY(${dragOffset.y}px) scale(${initialTransform.scale})`:void 0,[ToastRootCssVars.swipeMovementX]:`${deltaX}px`,[ToastRootCssVars.swipeMovementY]:`${deltaY}px`}}let isHighPriority=toast.priority===`high`,defaultProps={role:isHighPriority?`alertdialog`:`dialog`,tabIndex:0,"aria-modal":!1,"aria-labelledby":titleId,"aria-describedby":descriptionId,"aria-hidden":isHighPriority&&!focused?!0:void 0,onPointerDown:swipeEnabled?handlePointerDown:void 0,onPointerMove:swipeEnabled?handlePointerMove:void 0,onPointerUp:swipeEnabled?handlePointerUp:void 0,onKeyDown:handleKeyDown,inert:inertValue(toast.limited),style:{...getDragStyles(),[ToastRootCssVars.index]:toast.transitionStatus===`ending`?domIndex$1:visibleIndex,[ToastRootCssVars.offsetY]:`${offsetY}px`,[ToastRootCssVars.height]:toast.height?`${toast.height}px`:void 0}},toastRoot=import_react.useMemo(()=>({rootRef,toast,titleId,setTitleId,descriptionId,setDescriptionId,swiping:isSwiping,swipeDirection:currentSwipeDirection,recalculateHeight,index:domIndex$1,visibleIndex,expanded}),[toast,titleId,descriptionId,isSwiping,currentSwipeDirection,recalculateHeight,domIndex$1,visibleIndex,expanded]),state$1=import_react.useMemo(()=>({transitionStatus:toast.transitionStatus,expanded,limited:toast.limited||!1,type:toast.type,swiping:toastRoot.swiping,swipeDirection:toastRoot.swipeDirection}),[expanded,toast.transitionStatus,toast.limited,toast.type,toastRoot.swiping,toastRoot.swipeDirection]),element$3=useRenderElement(`div`,componentProps,{ref:[forwardedRef,toastRoot.rootRef],state:state$1,stateAttributesMapping:stateAttributesMapping$2,props:[defaultProps,elementProps]});return(0,import_jsx_runtime.jsx)(ToastRootContext.Provider,{value:toastRoot,children:element$3})}),ToastContent=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,...elementProps}=componentProps,{visibleIndex,expanded,recalculateHeight}=useToastRootContext(),contentRef=import_react.useRef(null);useIsoLayoutEffect(()=>{let node$1=contentRef.current;if(!node$1||(recalculateHeight(),typeof ResizeObserver!=`function`||typeof MutationObserver!=`function`))return;let resizeObserver=new ResizeObserver(()=>recalculateHeight(!0)),mutationObserver=new MutationObserver(()=>recalculateHeight(!0));return resizeObserver.observe(node$1),mutationObserver.observe(node$1,{childList:!0,subtree:!0,characterData:!0}),()=>{resizeObserver.disconnect(),mutationObserver.disconnect()}},[recalculateHeight]);let behind=visibleIndex>0,state$1=import_react.useMemo(()=>({expanded,behind}),[expanded,behind]);return useRenderElement(`div`,componentProps,{ref:[forwardedRef,contentRef],state:state$1,props:elementProps})}),ToastDescription=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,id:idProp,children:childrenProp,...elementProps}=componentProps,{toast}=useToastRootContext(),children=childrenProp??toast.description,shouldRender=!!children,id=useId(idProp),{setDescriptionId}=useToastRootContext();useIsoLayoutEffect(()=>{if(shouldRender)return setDescriptionId(id),()=>{setDescriptionId(void 0)}},[shouldRender,id,setDescriptionId]);let element$3=useRenderElement(`p`,componentProps,{ref:forwardedRef,state:import_react.useMemo(()=>({type:toast.type}),[toast.type]),props:{...elementProps,id,children}});return shouldRender?element$3:null}),ToastTitle=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,id:idProp,children:childrenProp,...elementProps}=componentProps,{toast}=useToastRootContext(),children=childrenProp??toast.title,shouldRender=!!children,id=useId(idProp),{setTitleId}=useToastRootContext();useIsoLayoutEffect(()=>{if(shouldRender)return setTitleId(id),()=>{setTitleId(void 0)}},[shouldRender,id,setTitleId]);let element$3=useRenderElement(`h2`,componentProps,{ref:forwardedRef,state:import_react.useMemo(()=>({type:toast.type}),[toast.type]),props:{...elementProps,id,children}});return shouldRender?element$3:null}),ToastClose=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,disabled:disabled$1,nativeButton=!0,...elementProps}=componentProps,{close,expanded}=useToastContext(),{toast}=useToastRootContext(),[hasFocus,setHasFocus]=import_react.useState(!1),{getButtonProps,buttonRef}=useButton({disabled:disabled$1,native:nativeButton}),state$1=import_react.useMemo(()=>({type:toast.type}),[toast.type]);return useRenderElement(`button`,componentProps,{ref:[forwardedRef,buttonRef],state:state$1,props:[{"aria-hidden":!expanded&&!hasFocus,onClick(){close(toast.id)},onFocus(){setHasFocus(!0)},onBlur(){setHasFocus(!1)}},elementProps,getButtonProps]})}),ToastAction=import_react.forwardRef(function(componentProps,forwardedRef){let{render,className,disabled:disabled$1,nativeButton=!0,...elementProps}=componentProps,{toast}=useToastRootContext(),computedChildren=toast.actionProps?.children??elementProps.children,shouldRender=!!computedChildren,{getButtonProps,buttonRef}=useButton({disabled:disabled$1,native:nativeButton}),state$1=import_react.useMemo(()=>({type:toast.type}),[toast.type]),element$3=useRenderElement(`button`,componentProps,{ref:[forwardedRef,buttonRef],state:state$1,props:[elementProps,toast.actionProps,getButtonProps,{children:computedChildren}]});return shouldRender?element$3:null}),ToastPortal=FloatingPortalLite;function useToastManager(){let context=import_react.useContext(ToastContext);if(!context)throw Error(formatErrorMessage(73));let{toasts,add:add$1,close,update:update$1,promise}=context;return import_react.useMemo(()=>({toasts,add:add$1,close,update:update$1,promise}),[toasts,add$1,close,update$1,promise])}function createToastManager(){let listeners=[];function emit(data){listeners.forEach(listener=>listener(data))}return{" subscribe":function(listener){return listeners.push(listener),()=>{let index$4=listeners.indexOf(listener);index$4!==-1&&listeners.splice(index$4,1)}},add(options$1){let id=options$1.id||generateId(`toast`);return emit({action:`add`,options:{...options$1,id,transitionStatus:`starting`}}),id},close(id){emit({action:`close`,options:{id}})},update(id,updates){emit({action:`update`,options:{...updates,id}})},promise(promiseValue,options$1){let handledPromise=promiseValue;return emit({action:`promise`,options:{...options$1,promise:promiseValue,setPromise(promise){handledPromise=promise}}}),handledPromise}}}var toastManager=createToastManager(),anchoredToastManager=createToastManager(),TOAST_ICONS={error:CircleAlert,info:Info$1,loading:LoaderCircle,success:CircleCheck,warning:TriangleAlert};function ToastProvider({children,position:position$2=`bottom-right`,...props}){return(0,import_jsx_runtime.jsxs)(ToastProvider$1,{toastManager,...props,children:[children,(0,import_jsx_runtime.jsx)(Toasts,{position:position$2})]})}function Toasts({position:position$2=`bottom-right`}){let{toasts}=useToastManager(),isTop=position$2.startsWith(`top`);return(0,import_jsx_runtime.jsx)(ToastPortal,{"data-slot":`toast-portal`,children:(0,import_jsx_runtime.jsx)(ToastViewport,{className:cn(`fixed z-[100] mx-auto flex w-[calc(100%-var(--toast-inset)*2)] max-w-90 [--toast-inset:--spacing(4)] sm:[--toast-inset:--spacing(8)]`,`data-[position*=top]:top-(--toast-inset)`,`data-[position*=bottom]:bottom-(--toast-inset)`,`data-[position*=left]:left-(--toast-inset)`,`data-[position*=right]:right-(--toast-inset)`,`data-[position*=center]:-translate-x-1/2 data-[position*=center]:left-1/2`),"data-position":position$2,"data-slot":`toast-viewport`,children:toasts.map(toast=>{let Icon$1=toast.type?TOAST_ICONS[toast.type]:null;return(0,import_jsx_runtime.jsxs)(ToastRoot,{className:cn(`absolute z-[calc(9999-var(--toast-index))] h-(--toast-calc-height) w-full select-none rounded-lg border bg-popover bg-clip-padding text-popover-foreground shadow-lg [transition:transform_.5s_cubic-bezier(.22,1,.36,1),opacity_.5s,height_.15s] before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] dark:bg-clip-border dark:before:shadow-[0_-1px_--theme(--color-white/8%)]`,`data-[position*=right]:right-0 data-[position*=right]:left-auto`,`data-[position*=left]:right-auto data-[position*=left]:left-0`,`data-[position*=center]:right-0 data-[position*=center]:left-0`,`data-[position*=top]:top-0 data-[position*=top]:bottom-auto data-[position*=top]:origin-top`,`data-[position*=bottom]:top-auto data-[position*=bottom]:bottom-0 data-[position*=bottom]:origin-bottom`,`after:absolute after:left-0 after:h-[calc(var(--toast-gap)+1px)] after:w-full`,`data-[position*=top]:after:top-full`,`data-[position*=bottom]:after:bottom-full`,`[--toast-calc-height:var(--toast-frontmost-height,var(--toast-height))] [--toast-gap:--spacing(3)] [--toast-peek:--spacing(3)] [--toast-scale:calc(max(0,1-(var(--toast-index)*.1)))] [--toast-shrink:calc(1-var(--toast-scale))]`,`data-[position*=top]:[--toast-calc-offset-y:calc(var(--toast-offset-y)+var(--toast-index)*var(--toast-gap)+var(--toast-swipe-movement-y))]`,`data-[position*=bottom]:[--toast-calc-offset-y:calc(var(--toast-offset-y)*-1+var(--toast-index)*var(--toast-gap)*-1+var(--toast-swipe-movement-y))]`,`data-[position*=top]:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--toast-index)*var(--toast-peek))+(var(--toast-shrink)*var(--toast-calc-height))))_scale(var(--toast-scale))]`,`data-[position*=bottom]:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--toast-peek))-(var(--toast-shrink)*var(--toast-calc-height))))_scale(var(--toast-scale))]`,`data-limited:opacity-0`,`data-expanded:h-(--toast-height)`,`data-position:data-expanded:transform-[translateX(var(--toast-swipe-movement-x))_translateY(var(--toast-calc-offset-y))]`,`data-[position*=top]:data-starting-style:transform-[translateY(calc(-100%-var(--toast-inset)))]`,`data-[position*=bottom]:data-starting-style:transform-[translateY(calc(100%+var(--toast-inset)))]`,`data-ending-style:opacity-0`,`data-ending-style:not-data-limited:not-data-swipe-direction:transform-[translateY(calc(100%+var(--toast-inset)))]`,`data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-100%-var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]`,`data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+100%+var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]`,`data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-100%-var(--toast-inset)))]`,`data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+100%+var(--toast-inset)))]`,`data-expanded:data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-100%-var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]`,`data-expanded:data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+100%+var(--toast-inset)))_translateY(var(--toast-calc-offset-y))]`,`data-expanded:data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-100%-var(--toast-inset)))]`,`data-expanded:data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+100%+var(--toast-inset)))]`),"data-position":position$2,swipeDirection:position$2.includes(`center`)?[isTop?`up`:`down`]:position$2.includes(`left`)?[`left`,isTop?`up`:`down`]:[`right`,isTop?`up`:`down`],toast,children:[(0,import_jsx_runtime.jsx)(ToastClose,{className:`absolute top-2 right-2 rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground transition-colors`,"data-slot":`toast-close`,children:(0,import_jsx_runtime.jsx)(X,{className:`h-3.5 w-3.5`})}),(0,import_jsx_runtime.jsxs)(ToastContent,{className:`pointer-events-auto flex items-center justify-between gap-1.5 overflow-hidden pl-3.5 pr-8 py-3 text-sm transition-opacity duration-250 data-behind:pointer-events-none data-behind:opacity-0 data-expanded:opacity-100`,children:[(0,import_jsx_runtime.jsxs)(`div`,{className:`flex gap-2`,children:[Icon$1&&(0,import_jsx_runtime.jsx)(`div`,{className:`[&>svg]:h-lh [&>svg]:w-4 [&_svg]:pointer-events-none [&_svg]:shrink-0`,"data-slot":`toast-icon`,children:(0,import_jsx_runtime.jsx)(Icon$1,{className:`in-data-[type=loading]:animate-spin in-data-[type=error]:text-destructive in-data-[type=info]:text-info in-data-[type=success]:text-success in-data-[type=warning]:text-warning in-data-[type=loading]:opacity-80`})}),(0,import_jsx_runtime.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,import_jsx_runtime.jsx)(ToastTitle,{className:`font-medium`,"data-slot":`toast-title`}),(0,import_jsx_runtime.jsx)(ToastDescription,{className:`text-muted-foreground`,"data-slot":`toast-description`})]})]}),toast.actionProps&&(0,import_jsx_runtime.jsx)(ToastAction,{className:buttonVariants({size:`xs`}),"data-slot":`toast-action`,children:toast.actionProps.children})]})]},toast.id)})})})}function Table({className,...props}){return(0,import_jsx_runtime.jsx)(`div`,{className:`relative w-full overflow-x-auto`,"data-slot":`table-container`,children:(0,import_jsx_runtime.jsx)(`table`,{className:cn(`w-full caption-bottom in-data-[slot=frame]:border-separate in-data-[slot=frame]:border-spacing-0 text-sm`,className),"data-slot":`table`,...props})})}function TableHeader({className,...props}){return(0,import_jsx_runtime.jsx)(`thead`,{className:cn(`[&_tr]:border-b in-data-[slot=frame]:**:[th]:h-9 in-data-[slot=frame]:*:[tr]:border-none in-data-[slot=frame]:*:[tr]:hover:bg-transparent`,className),"data-slot":`table-header`,...props})}function TableBody({className,...props}){return(0,import_jsx_runtime.jsx)(`tbody`,{className:cn(`relative in-data-[slot=frame]:rounded-xl in-data-[slot=frame]:shadow-xs before:pointer-events-none before:absolute before:inset-px not-in-data-[slot=frame]:before:hidden before:rounded-[calc(var(--radius-xl)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] dark:bg-clip-border dark:before:shadow-[0_-1px_--theme(--color-white/8%)] [&_tr:last-child]:border-0 in-data-[slot=frame]:*:[tr]:border-0 in-data-[slot=frame]:*:[tr]:*:[td]:border-b in-data-[slot=frame]:*:[tr]:*:[td]:bg-background in-data-[slot=frame]:*:[tr]:*:[td]:bg-clip-padding in-data-[slot=frame]:*:[tr]:first:*:[td]:first:rounded-ss-xl in-data-[slot=frame]:*:[tr]:*:[td]:first:border-s in-data-[slot=frame]:*:[tr]:first:*:[td]:border-t in-data-[slot=frame]:*:[tr]:last:*:[td]:last:rounded-ee-xl in-data-[slot=frame]:*:[tr]:*:[td]:last:border-e in-data-[slot=frame]:*:[tr]:first:*:[td]:last:rounded-se-xl in-data-[slot=frame]:*:[tr]:last:*:[td]:first:rounded-es-xl in-data-[slot=frame]:*:[tr]:hover:*:[td]:bg-transparent in-data-[slot=frame]:*:[tr]:data-[state=selected]:*:[td]:bg-muted/50`,className),"data-slot":`table-body`,...props})}function TableRow({className,...props}){return(0,import_jsx_runtime.jsx)(`tr`,{className:cn(`border-b transition-colors hover:bg-muted/50 in-data-[slot=frame]:hover:bg-transparent data-[state=selected]:bg-muted/50 in-data-[slot=frame]:data-[state=selected]:bg-transparent`,className),"data-slot":`table-row`,...props})}function TableHead({className,...props}){return(0,import_jsx_runtime.jsx)(`th`,{className:cn(`h-10 whitespace-nowrap px-2 text-left align-middle font-medium text-muted-foreground has-[[role=checkbox]]:w-px has-[[role=checkbox]]:pe-0 *:[[role=checkbox]]:translate-y-0.5`,className),"data-slot":`table-head`,...props})}function TableCell({className,...props}){return(0,import_jsx_runtime.jsx)(`td`,{className:cn(`whitespace-nowrap p-2 align-middle has-[[role=checkbox]]:pe-0 *:[[role=checkbox]]:translate-y-0.5`,className),"data-slot":`table-cell`,...props})}function InfoItem({label,value}){return(0,import_jsx_runtime.jsxs)(`div`,{children:[(0,import_jsx_runtime.jsx)(`div`,{className:`text-gray-500`,children:label}),(0,import_jsx_runtime.jsx)(`div`,{children:value||`-`})]})}function formatBytes(bytes){let n=Number(bytes);if(n===0)return`0 B`;let i$3=Math.floor(Math.log(n)/Math.log(1024));return(n/1024**i$3).toFixed(1)+` `+[`B`,`KB`,`MB`,`GB`,`TB`][i$3]}function formatRowCount(count){let n=Number(count);return n<1e3?n.toString():n<1e6?(n/1e3).toFixed(1)+`K`:n<1e9?(n/1e6).toFixed(1)+`M`:(n/1e9).toFixed(1)+`B`}function getKindLabel(kind){switch(kind){case`table`:return`Table`;case`partitioned_table`:return`Partitioned Table`;case`view`:return`View`;case`materialized_view`:return`Materialized View`;case`function`:return`Function`;case`procedure`:return`Procedure`;default:return`Object`}}function ColumnsTable({columns,isLoading}){return isLoading?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`Loading...`}):!columns||columns.length===0?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`No columns`}):(0,import_jsx_runtime.jsxs)(Table,{children:[(0,import_jsx_runtime.jsx)(TableHeader,{children:(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableHead,{children:`Name`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Type`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Nullable`})]})}),(0,import_jsx_runtime.jsx)(TableBody,{children:columns.map(col=>(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableCell,{children:col.name}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:col.type}),(0,import_jsx_runtime.jsx)(TableCell,{children:col.nullable?`Yes`:`No`})]},col.name))})]})}function IndexesTable({indexes,isLoading}){return isLoading?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`Loading...`}):!indexes||indexes.length===0?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`No indexes`}):(0,import_jsx_runtime.jsxs)(Table,{children:[(0,import_jsx_runtime.jsx)(TableHeader,{children:(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableHead,{children:`Name`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Columns`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Type`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Method`})]})}),(0,import_jsx_runtime.jsx)(TableBody,{children:indexes.map(idx=>(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableCell,{children:idx.name}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:idx.columns.join(`, `)}),(0,import_jsx_runtime.jsx)(TableCell,{children:idx.isPrimary?`Primary`:idx.isUnique?`Unique`:`-`}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:idx.method})]},idx.name))})]})}function ConstraintsTable({constraints,isLoading}){return isLoading?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`Loading...`}):!constraints||constraints.length===0?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`No constraints`}):(0,import_jsx_runtime.jsxs)(Table,{children:[(0,import_jsx_runtime.jsx)(TableHeader,{children:(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableHead,{children:`Name`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Type`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Columns`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`References`})]})}),(0,import_jsx_runtime.jsx)(TableBody,{children:constraints.map(con=>(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableCell,{children:con.name}),(0,import_jsx_runtime.jsx)(TableCell,{children:con.type}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:con.type===`CHECK`?con.definition:con.columns.join(`, `)}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:con.refTable?`${con.refTable} (${con.refColumns.join(`, `)})`:`-`})]},con.name))})]})}function TriggersTable({triggers,isLoading}){return isLoading?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`Loading...`}):!triggers||triggers.length===0?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`No triggers`}):(0,import_jsx_runtime.jsxs)(Table,{children:[(0,import_jsx_runtime.jsx)(TableHeader,{children:(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableHead,{children:`Name`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Timing`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Event`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Level`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Function`})]})}),(0,import_jsx_runtime.jsx)(TableBody,{children:triggers.map(trg=>(0,import_jsx_runtime.jsxs)(TableRow,{className:trg.enabled?``:`opacity-50`,children:[(0,import_jsx_runtime.jsx)(TableCell,{children:trg.name}),(0,import_jsx_runtime.jsx)(TableCell,{children:trg.timing}),(0,import_jsx_runtime.jsx)(TableCell,{children:trg.event}),(0,import_jsx_runtime.jsx)(TableCell,{children:trg.level}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:trg.function})]},trg.name))})]})}function PoliciesTable({policies,isLoading}){return isLoading?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`Loading...`}):!policies||policies.length===0?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`No policies`}):(0,import_jsx_runtime.jsxs)(Table,{children:[(0,import_jsx_runtime.jsx)(TableHeader,{children:(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableHead,{children:`Name`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Command`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Type`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Roles`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Expression`})]})}),(0,import_jsx_runtime.jsx)(TableBody,{children:policies.map(pol=>(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableCell,{children:pol.name}),(0,import_jsx_runtime.jsx)(TableCell,{children:pol.command}),(0,import_jsx_runtime.jsx)(TableCell,{children:pol.permissive}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:pol.roles.join(`, `)}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600 font-mono text-xs max-w-xs truncate`,title:pol.usingExpr||pol.checkExpr,children:pol.usingExpr||pol.checkExpr||`-`})]},pol.name))})]})}function GrantsTable({grants,isLoading}){return isLoading?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`Loading...`}):!grants||grants.length===0?(0,import_jsx_runtime.jsx)(`div`,{className:`text-sm text-gray-500`,children:`No grants`}):(0,import_jsx_runtime.jsxs)(Table,{children:[(0,import_jsx_runtime.jsx)(TableHeader,{children:(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableHead,{children:`Grantee`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Privileges`}),(0,import_jsx_runtime.jsx)(TableHead,{children:`Grantor`})]})}),(0,import_jsx_runtime.jsx)(TableBody,{children:grants.map(grant=>(0,import_jsx_runtime.jsxs)(TableRow,{children:[(0,import_jsx_runtime.jsx)(TableCell,{children:grant.grantee}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:grant.privileges.join(`, `)}),(0,import_jsx_runtime.jsx)(TableCell,{className:`text-gray-600`,children:grant.grantor})]},`${grant.grantee}-${grant.grantor}`))})]})}const editorTheme=(isEditing=!1)=>EditorView.theme({"&":{fontSize:`13px`},".cm-content":{padding:`8px 12px`,fontFamily:`ui-monospace, monospace`},".cm-line":{padding:`0`},".cm-scroller":{overflow:`auto`},".cm-gutters":{backgroundColor:isEditing?`#fff`:`#f9fafb`,borderRight:`1px solid #e5e7eb`},".cm-lineNumbers .cm-gutterElement":{padding:`0 8px`,color:`#9ca3af`}});function useSqlModuleReady(){let[moduleReady,setModuleReady]=(0,import_react.useState)(!1);return(0,import_react.useEffect)(()=>{__vitePreload(async()=>{let{ensureModuleLoaded:ensureModuleLoaded$1}=await import(`./sql-Bxu3bp1z.js`);return{ensureModuleLoaded:ensureModuleLoaded$1}},[]).then(({ensureModuleLoaded:ensureModuleLoaded$1})=>{ensureModuleLoaded$1().then(()=>setModuleReady(!0))})},[]),moduleReady}function SQLDefinition({sql}){let containerRef=(0,import_react.useRef)(null),viewRef=(0,import_react.useRef)(null),moduleReady=useSqlModuleReady();return(0,import_react.useEffect)(()=>{if(!(!containerRef.current||!moduleReady))return viewRef.current&&=(viewRef.current.destroy(),null),viewRef.current=new EditorView({state:EditorState.create({doc:sql,extensions:[EditorView.editable.of(!1),EditorState.readOnly.of(!0),lineNumbers(),pgHighlight(),editorTheme()]}),parent:containerRef.current}),()=>{viewRef.current?.destroy(),viewRef.current=null}},[sql,moduleReady]),(0,import_jsx_runtime.jsx)(`div`,{ref:containerRef,className:`bg-gray-50 rounded-md overflow-hidden border border-gray-200`})}function escapeIdentifier(name$2){return`"${name$2.replace(/"/g,`""`)}"`}function escapeValue(value){return value==null?`NULL`:typeof value==`number`?String(value):typeof value==`boolean`?value?`TRUE`:`FALSE`:typeof value==`object`?`'${JSON.stringify(value).replace(/'/g,`''`)}'`:`'${String(value).replace(/'/g,`''`)}'`}function generateDeleteSQL(change){let statements=[];for(let table$1 of change.tables){let qualifiedTable=table$1.schemaName?`${escapeIdentifier(table$1.schemaName)}.${escapeIdentifier(table$1.tableName)}`:escapeIdentifier(table$1.tableName),whereColumns=table$1.primaryKeyColumns.length>0?table$1.primaryKeyColumns:Object.keys(table$1.rows[0]||{});for(let row of table$1.rows){let conditions=whereColumns.map(col=>{let value=row[col];return value==null?`${escapeIdentifier(col)} IS NULL`:`${escapeIdentifier(col)} = ${escapeValue(value)}`}).join(` AND `);statements.push(`DELETE FROM ${qualifiedTable} WHERE ${conditions};`)}}return statements.join(`
84
84
  `)}function generateUpdateSQL(change){if(change.type!==`update`||!change.originalRows)return``;let statements=[];for(let table$1 of change.tables){let qualifiedTable=table$1.schemaName?`${escapeIdentifier(table$1.schemaName)}.${escapeIdentifier(table$1.tableName)}`:escapeIdentifier(table$1.tableName),whereColumns=table$1.primaryKeyColumns.length>0?table$1.primaryKeyColumns:Object.keys(table$1.rows[0]||{});for(let i$3=0;i$3<table$1.rows.length;i$3++){let updatedRow=table$1.rows[i$3],originalRow=change.originalRows[i$3],changedColumns=Object.keys(updatedRow).filter(col=>updatedRow[col]!==originalRow[col]);if(changedColumns.length===0)continue;let setClause=changedColumns.map(col=>`${escapeIdentifier(col)} = ${escapeValue(updatedRow[col])}`).join(`, `),conditions=whereColumns.map(col=>{let value=originalRow[col];return value==null?`${escapeIdentifier(col)} IS NULL`:`${escapeIdentifier(col)} = ${escapeValue(value)}`}).join(` AND `);statements.push(`UPDATE ${qualifiedTable} SET ${setClause} WHERE ${conditions};`)}}return statements.join(`
85
85
  `)}function generateInsertSQL(change){if(change.type!==`insert`)return``;let statements=[];for(let table$1 of change.tables){let qualifiedTable=table$1.schemaName?`${escapeIdentifier(table$1.schemaName)}.${escapeIdentifier(table$1.tableName)}`:escapeIdentifier(table$1.tableName);for(let row of table$1.rows){let columnNames=Object.keys(row).filter(col=>row[col]!==void 0),columns=columnNames.map(col=>escapeIdentifier(col)).join(`, `),values=columnNames.map(col=>escapeValue(row[col])).join(`, `);statements.push(`INSERT INTO ${qualifiedTable} (${columns}) VALUES (${values});`)}}return statements.join(`
86
86
  `)}function Spinner({className,...props}){return(0,import_jsx_runtime.jsx)(LoaderCircle,{"aria-label":`Loading`,className:cn(`animate-spin`,className),role:`status`,...props})}var alertVariants=cva(`relative grid w-full items-start gap-x-2 gap-y-0.5 rounded-xl border px-3.5 py-3 text-card-foreground text-sm has-[>svg]:has-data-[slot=alert-action]:grid-cols-[calc(var(--spacing)*4)_1fr_auto] has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-data-[slot=alert-action]:grid-cols-[1fr_auto] has-[>svg]:gap-x-2 [&>svg]:h-lh [&>svg]:w-4`,{defaultVariants:{variant:`default`},variants:{variant:{default:`bg-transparent dark:bg-input/32 [&>svg]:text-muted-foreground`,error:`border-destructive/32 bg-destructive/4 [&>svg]:text-destructive`,info:`border-info/32 bg-info/4 [&>svg]:text-info`,success:`border-success/32 bg-success/4 [&>svg]:text-success`,warning:`border-warning/32 bg-warning/4 [&>svg]:text-warning`}}});function Alert({className,variant,...props}){return(0,import_jsx_runtime.jsx)(`div`,{className:cn(alertVariants({variant}),className),"data-slot":`alert`,role:`alert`,...props})}function ok(){}function unreachable(){}function stringify$1(values,options$1){let settings=options$1||{};return(values[values.length-1]===``?[...values,``]:values).join((settings.padRight?` `:``)+`,`+(settings.padLeft===!1?``:` `)).trim()}var nameRe=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,nameReJsx=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,emptyOptions$3={};function name(name$2,options$1){return((options$1||emptyOptions$3).jsx?nameReJsx:nameRe).test(name$2)}var re$1=/[ \t\n\f\r]/g;function whitespace(thing){return typeof thing==`object`?thing.type===`text`?empty$1(thing.value):!1:empty$1(thing)}function empty$1(value){return value.replace(re$1,``)===``}var Schema=class{constructor(property,normal,space$1){this.normal=normal,this.property=property,space$1&&(this.space=space$1)}};Schema.prototype.normal={},Schema.prototype.property={},Schema.prototype.space=void 0;function merge(definitions,space$1){let property={},normal={};for(let definition$1 of definitions)Object.assign(property,definition$1.property),Object.assign(normal,definition$1.normal);return new Schema(property,normal,space$1)}function normalize$1(value){return value.toLowerCase()}var Info=class{constructor(property,attribute){this.attribute=attribute,this.property=property}};Info.prototype.attribute=``,Info.prototype.booleanish=!1,Info.prototype.boolean=!1,Info.prototype.commaOrSpaceSeparated=!1,Info.prototype.commaSeparated=!1,Info.prototype.defined=!1,Info.prototype.mustUseProperty=!1,Info.prototype.number=!1,Info.prototype.overloadedBoolean=!1,Info.prototype.property=``,Info.prototype.spaceSeparated=!1,Info.prototype.space=void 0;var types_exports=__export({boolean:()=>boolean,booleanish:()=>booleanish,commaOrSpaceSeparated:()=>commaOrSpaceSeparated,commaSeparated:()=>commaSeparated,number:()=>number,overloadedBoolean:()=>overloadedBoolean,spaceSeparated:()=>spaceSeparated}),powers=0;const boolean=increment(),booleanish=increment(),overloadedBoolean=increment(),number=increment(),spaceSeparated=increment(),commaSeparated=increment(),commaOrSpaceSeparated=increment();function increment(){return 2**++powers}var checks=Object.keys(types_exports),DefinedInfo=class extends Info{constructor(property,attribute,mask,space$1){let index$4=-1;if(super(property,attribute),mark(this,`space`,space$1),typeof mask==`number`)for(;++index$4<checks.length;){let check=checks[index$4];mark(this,checks[index$4],(mask&types_exports[check])===types_exports[check])}}};DefinedInfo.prototype.defined=!0;function mark(values,key$1,value){value&&(values[key$1]=value)}function create(definition$1){let properties={},normals={};for(let[property,value]of Object.entries(definition$1.properties)){let info=new DefinedInfo(property,definition$1.transform(definition$1.attributes||{},property),value,definition$1.space);definition$1.mustUseProperty&&definition$1.mustUseProperty.includes(property)&&(info.mustUseProperty=!0),properties[property]=info,normals[normalize$1(property)]=property,normals[normalize$1(info.attribute)]=property}return new Schema(properties,normals,definition$1.space)}const aria=create({properties:{ariaActiveDescendant:null,ariaAtomic:booleanish,ariaAutoComplete:null,ariaBusy:booleanish,ariaChecked:booleanish,ariaColCount:number,ariaColIndex:number,ariaColSpan:number,ariaControls:spaceSeparated,ariaCurrent:null,ariaDescribedBy:spaceSeparated,ariaDetails:null,ariaDisabled:booleanish,ariaDropEffect:spaceSeparated,ariaErrorMessage:null,ariaExpanded:booleanish,ariaFlowTo:spaceSeparated,ariaGrabbed:booleanish,ariaHasPopup:null,ariaHidden:booleanish,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:spaceSeparated,ariaLevel:number,ariaLive:null,ariaModal:booleanish,ariaMultiLine:booleanish,ariaMultiSelectable:booleanish,ariaOrientation:null,ariaOwns:spaceSeparated,ariaPlaceholder:null,ariaPosInSet:number,ariaPressed:booleanish,ariaReadOnly:booleanish,ariaRelevant:null,ariaRequired:booleanish,ariaRoleDescription:spaceSeparated,ariaRowCount:number,ariaRowIndex:number,ariaRowSpan:number,ariaSelected:booleanish,ariaSetSize:number,ariaSort:null,ariaValueMax:number,ariaValueMin:number,ariaValueNow:number,ariaValueText:null,role:null},transform(_$2,property){return property===`role`?property:`aria-`+property.slice(4).toLowerCase()}});function caseSensitiveTransform(attributes,attribute){return attribute in attributes?attributes[attribute]:attribute}function caseInsensitiveTransform(attributes,property){return caseSensitiveTransform(attributes,property.toLowerCase())}const html$4=create({attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:commaSeparated,acceptCharset:spaceSeparated,accessKey:spaceSeparated,action:null,allow:null,allowFullScreen:boolean,allowPaymentRequest:boolean,allowUserMedia:boolean,alt:null,as:null,async:boolean,autoCapitalize:null,autoComplete:spaceSeparated,autoFocus:boolean,autoPlay:boolean,blocking:spaceSeparated,capture:null,charSet:null,checked:boolean,cite:null,className:spaceSeparated,cols:number,colSpan:null,content:null,contentEditable:booleanish,controls:boolean,controlsList:spaceSeparated,coords:number|commaSeparated,crossOrigin:null,data:null,dateTime:null,decoding:null,default:boolean,defer:boolean,dir:null,dirName:null,disabled:boolean,download:overloadedBoolean,draggable:booleanish,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:boolean,formTarget:null,headers:spaceSeparated,height:number,hidden:overloadedBoolean,high:number,href:null,hrefLang:null,htmlFor:spaceSeparated,httpEquiv:spaceSeparated,id:null,imageSizes:null,imageSrcSet:null,inert:boolean,inputMode:null,integrity:null,is:null,isMap:boolean,itemId:null,itemProp:spaceSeparated,itemRef:spaceSeparated,itemScope:boolean,itemType:spaceSeparated,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:boolean,low:number,manifest:null,max:null,maxLength:number,media:null,method:null,min:null,minLength:number,multiple:boolean,muted:boolean,name:null,nonce:null,noModule:boolean,noValidate:boolean,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:boolean,optimum:number,pattern:null,ping:spaceSeparated,placeholder:null,playsInline:boolean,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:boolean,referrerPolicy:null,rel:spaceSeparated,required:boolean,reversed:boolean,rows:number,rowSpan:number,sandbox:spaceSeparated,scope:null,scoped:boolean,seamless:boolean,selected:boolean,shadowRootClonable:boolean,shadowRootDelegatesFocus:boolean,shadowRootMode:null,shape:null,size:number,sizes:null,slot:null,span:number,spellCheck:booleanish,src:null,srcDoc:null,srcLang:null,srcSet:null,start:number,step:null,style:null,tabIndex:number,target:null,title:null,translate:null,type:null,typeMustMatch:boolean,useMap:null,value:booleanish,width:number,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:spaceSeparated,axis:null,background:null,bgColor:null,border:number,borderColor:null,bottomMargin:number,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:boolean,declare:boolean,event:null,face:null,frame:null,frameBorder:null,hSpace:number,leftMargin:number,link:null,longDesc:null,lowSrc:null,marginHeight:number,marginWidth:number,noResize:boolean,noHref:boolean,noShade:boolean,noWrap:boolean,object:null,profile:null,prompt:null,rev:null,rightMargin:number,rules:null,scheme:null,scrolling:booleanish,standby:null,summary:null,text:null,topMargin:number,valueType:null,version:null,vAlign:null,vLink:null,vSpace:number,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:boolean,disableRemotePlayback:boolean,prefix:null,property:null,results:number,security:null,unselectable:null},space:`html`,transform:caseInsensitiveTransform}),svg$1=create({attributes:{accentHeight:`accent-height`,alignmentBaseline:`alignment-baseline`,arabicForm:`arabic-form`,baselineShift:`baseline-shift`,capHeight:`cap-height`,className:`class`,clipPath:`clip-path`,clipRule:`clip-rule`,colorInterpolation:`color-interpolation`,colorInterpolationFilters:`color-interpolation-filters`,colorProfile:`color-profile`,colorRendering:`color-rendering`,crossOrigin:`crossorigin`,dataType:`datatype`,dominantBaseline:`dominant-baseline`,enableBackground:`enable-background`,fillOpacity:`fill-opacity`,fillRule:`fill-rule`,floodColor:`flood-color`,floodOpacity:`flood-opacity`,fontFamily:`font-family`,fontSize:`font-size`,fontSizeAdjust:`font-size-adjust`,fontStretch:`font-stretch`,fontStyle:`font-style`,fontVariant:`font-variant`,fontWeight:`font-weight`,glyphName:`glyph-name`,glyphOrientationHorizontal:`glyph-orientation-horizontal`,glyphOrientationVertical:`glyph-orientation-vertical`,hrefLang:`hreflang`,horizAdvX:`horiz-adv-x`,horizOriginX:`horiz-origin-x`,horizOriginY:`horiz-origin-y`,imageRendering:`image-rendering`,letterSpacing:`letter-spacing`,lightingColor:`lighting-color`,markerEnd:`marker-end`,markerMid:`marker-mid`,markerStart:`marker-start`,navDown:`nav-down`,navDownLeft:`nav-down-left`,navDownRight:`nav-down-right`,navLeft:`nav-left`,navNext:`nav-next`,navPrev:`nav-prev`,navRight:`nav-right`,navUp:`nav-up`,navUpLeft:`nav-up-left`,navUpRight:`nav-up-right`,onAbort:`onabort`,onActivate:`onactivate`,onAfterPrint:`onafterprint`,onBeforePrint:`onbeforeprint`,onBegin:`onbegin`,onCancel:`oncancel`,onCanPlay:`oncanplay`,onCanPlayThrough:`oncanplaythrough`,onChange:`onchange`,onClick:`onclick`,onClose:`onclose`,onCopy:`oncopy`,onCueChange:`oncuechange`,onCut:`oncut`,onDblClick:`ondblclick`,onDrag:`ondrag`,onDragEnd:`ondragend`,onDragEnter:`ondragenter`,onDragExit:`ondragexit`,onDragLeave:`ondragleave`,onDragOver:`ondragover`,onDragStart:`ondragstart`,onDrop:`ondrop`,onDurationChange:`ondurationchange`,onEmptied:`onemptied`,onEnd:`onend`,onEnded:`onended`,onError:`onerror`,onFocus:`onfocus`,onFocusIn:`onfocusin`,onFocusOut:`onfocusout`,onHashChange:`onhashchange`,onInput:`oninput`,onInvalid:`oninvalid`,onKeyDown:`onkeydown`,onKeyPress:`onkeypress`,onKeyUp:`onkeyup`,onLoad:`onload`,onLoadedData:`onloadeddata`,onLoadedMetadata:`onloadedmetadata`,onLoadStart:`onloadstart`,onMessage:`onmessage`,onMouseDown:`onmousedown`,onMouseEnter:`onmouseenter`,onMouseLeave:`onmouseleave`,onMouseMove:`onmousemove`,onMouseOut:`onmouseout`,onMouseOver:`onmouseover`,onMouseUp:`onmouseup`,onMouseWheel:`onmousewheel`,onOffline:`onoffline`,onOnline:`ononline`,onPageHide:`onpagehide`,onPageShow:`onpageshow`,onPaste:`onpaste`,onPause:`onpause`,onPlay:`onplay`,onPlaying:`onplaying`,onPopState:`onpopstate`,onProgress:`onprogress`,onRateChange:`onratechange`,onRepeat:`onrepeat`,onReset:`onreset`,onResize:`onresize`,onScroll:`onscroll`,onSeeked:`onseeked`,onSeeking:`onseeking`,onSelect:`onselect`,onShow:`onshow`,onStalled:`onstalled`,onStorage:`onstorage`,onSubmit:`onsubmit`,onSuspend:`onsuspend`,onTimeUpdate:`ontimeupdate`,onToggle:`ontoggle`,onUnload:`onunload`,onVolumeChange:`onvolumechange`,onWaiting:`onwaiting`,onZoom:`onzoom`,overlinePosition:`overline-position`,overlineThickness:`overline-thickness`,paintOrder:`paint-order`,panose1:`panose-1`,pointerEvents:`pointer-events`,referrerPolicy:`referrerpolicy`,renderingIntent:`rendering-intent`,shapeRendering:`shape-rendering`,stopColor:`stop-color`,stopOpacity:`stop-opacity`,strikethroughPosition:`strikethrough-position`,strikethroughThickness:`strikethrough-thickness`,strokeDashArray:`stroke-dasharray`,strokeDashOffset:`stroke-dashoffset`,strokeLineCap:`stroke-linecap`,strokeLineJoin:`stroke-linejoin`,strokeMiterLimit:`stroke-miterlimit`,strokeOpacity:`stroke-opacity`,strokeWidth:`stroke-width`,tabIndex:`tabindex`,textAnchor:`text-anchor`,textDecoration:`text-decoration`,textRendering:`text-rendering`,transformOrigin:`transform-origin`,typeOf:`typeof`,underlinePosition:`underline-position`,underlineThickness:`underline-thickness`,unicodeBidi:`unicode-bidi`,unicodeRange:`unicode-range`,unitsPerEm:`units-per-em`,vAlphabetic:`v-alphabetic`,vHanging:`v-hanging`,vIdeographic:`v-ideographic`,vMathematical:`v-mathematical`,vectorEffect:`vector-effect`,vertAdvY:`vert-adv-y`,vertOriginX:`vert-origin-x`,vertOriginY:`vert-origin-y`,wordSpacing:`word-spacing`,writingMode:`writing-mode`,xHeight:`x-height`,playbackOrder:`playbackorder`,timelineBegin:`timelinebegin`},properties:{about:commaOrSpaceSeparated,accentHeight:number,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:number,amplitude:number,arabicForm:null,ascent:number,attributeName:null,attributeType:null,azimuth:number,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:number,by:null,calcMode:null,capHeight:number,className:spaceSeparated,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:number,diffuseConstant:number,direction:null,display:null,dur:null,divisor:number,dominantBaseline:null,download:boolean,dx:null,dy:null,edgeMode:null,editable:null,elevation:number,enableBackground:null,end:null,event:null,exponent:number,externalResourcesRequired:null,fill:null,fillOpacity:number,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:commaSeparated,g2:commaSeparated,glyphName:commaSeparated,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:number,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:number,horizOriginX:number,horizOriginY:number,id:null,ideographic:number,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:number,k:number,k1:number,k2:number,k3:number,k4:number,kernelMatrix:commaOrSpaceSeparated,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:number,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:number,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:number,overlineThickness:number,paintOrder:null,panose1:null,path:null,pathLength:number,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:spaceSeparated,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:number,pointsAtY:number,pointsAtZ:number,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:commaOrSpaceSeparated,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:commaOrSpaceSeparated,rev:commaOrSpaceSeparated,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:commaOrSpaceSeparated,requiredFeatures:commaOrSpaceSeparated,requiredFonts:commaOrSpaceSeparated,requiredFormats:commaOrSpaceSeparated,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:number,specularExponent:number,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:number,strikethroughThickness:number,string:null,stroke:null,strokeDashArray:commaOrSpaceSeparated,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:number,strokeOpacity:number,strokeWidth:null,style:null,surfaceScale:number,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:commaOrSpaceSeparated,tabIndex:number,tableValues:null,target:null,targetX:number,targetY:number,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:commaOrSpaceSeparated,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:number,underlineThickness:number,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:number,values:null,vAlphabetic:number,vMathematical:number,vectorEffect:null,vHanging:number,vIdeographic:number,version:null,vertAdvY:number,vertOriginX:number,vertOriginY:number,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:number,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:`svg`,transform:caseSensitiveTransform}),xlink=create({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:`xlink`,transform(_$2,property){return`xlink:`+property.slice(5).toLowerCase()}}),xmlns=create({attributes:{xmlnsxlink:`xmlns:xlink`},properties:{xmlnsXLink:null,xmlns:null},space:`xmlns`,transform:caseInsensitiveTransform}),xml=create({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:`xml`,transform(_$2,property){return`xml:`+property.slice(3).toLowerCase()}}),hastToReact={classId:`classID`,dataType:`datatype`,itemId:`itemID`,strokeDashArray:`strokeDasharray`,strokeDashOffset:`strokeDashoffset`,strokeLineCap:`strokeLinecap`,strokeLineJoin:`strokeLinejoin`,strokeMiterLimit:`strokeMiterlimit`,typeOf:`typeof`,xLinkActuate:`xlinkActuate`,xLinkArcRole:`xlinkArcrole`,xLinkHref:`xlinkHref`,xLinkRole:`xlinkRole`,xLinkShow:`xlinkShow`,xLinkTitle:`xlinkTitle`,xLinkType:`xlinkType`,xmlnsXLink:`xmlnsXlink`};var cap$1=/[A-Z]/g,dash=/-[a-z]/g,valid=/^data[-\w.:]+$/i;function find(schema,value){let normal=normalize$1(value),property=value,Type=Info;if(normal in schema.normal)return schema.property[schema.normal[normal]];if(normal.length>4&&normal.slice(0,4)===`data`&&valid.test(value)){if(value.charAt(4)===`-`){let rest=value.slice(5).replace(dash,camelcase);property=`data`+rest.charAt(0).toUpperCase()+rest.slice(1)}else{let rest=value.slice(4);if(!dash.test(rest)){let dashes=rest.replace(cap$1,kebab);dashes.charAt(0)!==`-`&&(dashes=`-`+dashes),value=`data`+dashes}}Type=DefinedInfo}return new Type(property,value)}function kebab($0){return`-`+$0.toLowerCase()}function camelcase($0){return $0.charAt(1).toUpperCase()}const html=merge([aria,html$4,xlink,xmlns,xml],`html`),svg=merge([aria,svg$1,xlink,xmlns,xml],`svg`);function stringify$2(values){return values.join(` `).trim()}var require_cjs$2=__commonJSMin(((exports,module)=>{var COMMENT_REGEX=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,NEWLINE_REGEX=/\n/g,WHITESPACE_REGEX=/^\s*/,PROPERTY_REGEX=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,COLON_REGEX=/^:\s*/,VALUE_REGEX=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,SEMICOLON_REGEX=/^[;\s]*/,TRIM_REGEX=/^\s+|\s+$/g,NEWLINE=`