@tanstack/query-devtools 5.101.4 → 5.102.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.
Files changed (38) hide show
  1. package/build/Devtools-B8gBVih5.js +11463 -0
  2. package/build/Devtools-C2baIe1r.cjs +1248 -0
  3. package/build/Devtools-CFKbGy8Z.js +1249 -0
  4. package/build/Devtools-CFKbGy8Z.js.map +1 -0
  5. package/build/Devtools-QIchsTu4.cjs +11510 -0
  6. package/build/DevtoolsComponent-B932o_Kt.cjs +1 -0
  7. package/build/DevtoolsComponent-CFsAhafd.js +34 -0
  8. package/build/DevtoolsComponent-Cb-WvQCr.js +2 -0
  9. package/build/DevtoolsComponent-Cb-WvQCr.js.map +1 -0
  10. package/build/DevtoolsComponent-ChtbiwqS.cjs +34 -0
  11. package/build/DevtoolsPanelComponent-B9zkHqmD.js +41 -0
  12. package/build/DevtoolsPanelComponent-Be8narGM.js +2 -0
  13. package/build/DevtoolsPanelComponent-Be8narGM.js.map +1 -0
  14. package/build/DevtoolsPanelComponent-CHpU_w5-.cjs +41 -0
  15. package/build/DevtoolsPanelComponent-Dm3BbKKd.cjs +1 -0
  16. package/build/dev.cjs +241 -16792
  17. package/build/dev.js +236 -274
  18. package/build/index.cjs +1 -16791
  19. package/build/index.d.cts +55 -51
  20. package/build/index.d.cts.map +1 -0
  21. package/build/index.d.ts +55 -51
  22. package/build/index.d.ts.map +1 -0
  23. package/build/index.js +2 -279
  24. package/build/index.js.map +1 -0
  25. package/build/utils-BLwigsFG.cjs +2942 -0
  26. package/build/utils-BPMMmTje.js +2 -0
  27. package/build/utils-BPMMmTje.js.map +1 -0
  28. package/build/utils-CESniQp_.js +2613 -0
  29. package/build/utils-DzxoHwL2.cjs +1 -0
  30. package/package.json +6 -8
  31. package/build/DevtoolsComponent/SO26Z5QU.js +0 -38
  32. package/build/DevtoolsComponent/ZXV6FBN7.js +0 -38
  33. package/build/DevtoolsPanelComponent/MO2VZFYH.js +0 -47
  34. package/build/DevtoolsPanelComponent/MYKLHYJZ.js +0 -47
  35. package/build/chunk/M4GWWVAC.js +0 -2915
  36. package/build/chunk/OJ5GAW4I.js +0 -12753
  37. package/build/chunk/RQBHRHJL.js +0 -12751
  38. package/build/chunk/ZCXR2IAF.js +0 -2914
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Devtools-CFKbGy8Z.js","names":["noop","access","noop","access","noop","access","contains","getWindow","access","access","isRTL","access","access","computePosition","arrow","flip","hide","offset","shift","size","getComputedStyle","_tmpl$","getWindow","contains","access","access","contains","access","src_default","presence_default","access","contains","access","access","preventScroll_default","createPresence","access","access","contains","createPresence","Show","createUniqueId","Search","_tmpl$","Trash","_tmpl$2","ChevronDown","_tmpl$3","ArrowUp","_tmpl$4","ArrowDown","_tmpl$5","ArrowLeft","_tmpl$6","ArrowRight","_tmpl$7","Sun","_tmpl$8","Moon","_tmpl$9","Monitor","_tmpl$0","Wifi","_tmpl$1","Offline","_tmpl$10","Settings","_tmpl$11","PiPIcon","_tmpl$12","Copier","_tmpl$13","Pencil","_tmpl$14","CopiedCopier","props","theme","_el$15","_tmpl$15","_el$16","firstChild","_$effect","_$setAttribute","ErrorCopier","_tmpl$16","List","_tmpl$17","Check","checked","_$createComponent","when","children","_el$19","_el$20","_el$21","_tmpl$18","_el$22","CheckCircle","_tmpl$19","LoadingCircle","_tmpl$20","XCircle","_tmpl$21","PauseCircle","_tmpl$22","TanstackLogo","id","_el$27","_tmpl$23","_el$28","_el$29","nextSibling","_el$30","_el$31","_el$32","_el$33","_el$34","_el$35","_el$36","_el$37","_el$38","_el$39","_el$40","_el$41","_el$42","_el$43","_el$44","_el$45","_el$46","_el$47","_el$48","_el$49","_el$50","_el$51","_el$52","_el$53","_el$54","_el$55","_el$56","_el$57","_el$58","_el$59","_el$60","_el$61","_el$62","_el$63","_el$64","_el$65","_el$66","_el$67","_el$68","_el$69","_el$70","_el$71","_el$72","_el$73","_el$74","_el$75","_el$76","_el$77","_el$78","_el$79","_el$80","_el$81","_el$82","_el$83","_el$84","_el$85","_el$86","_el$87","_el$88","_el$89","_el$90","_el$91","_el$92","_el$93","_el$94","_el$95","_el$96","_el$97","_el$98","_el$99","_el$100","_el$101","_el$102","_el$103","_el$104","_el$105","_el$106","_el$107","_el$108","_el$109","_el$110","_el$111","_el$112","_el$113","_el$114","_el$115","_el$116","_el$117","_el$118","_el$119","createContext","createEffect","createMemo","createSignal","onCleanup","useContext","clearDelegatedEvents","delegateEvents","PIP_DEFAULT_HEIGHT","useQueryDevtoolsContext","Accessor","JSX","StorageObject","StorageSetter","PiPProviderProps","children","Element","localStore","setLocalStore","disabled","PiPContextType","pipWindow","Window","requestPipWindow","width","height","closePipWindow","PipOpenError","Error","PiPContext","undefined","PiPProvider","props","setPipWindow","w","close","pip","window","open","document","head","innerHTML","body","title","style","margin","addEventListener","shadowDOMTarget","styleSheets","forEach","styleSheet","cssRules","map","rule","cssText","join","createElement","style_node","ownerNode","style_id","id","setAttribute","textContent","appendChild","e","link","href","rel","type","media","toString","pip_open","Number","innerWidth","error","console","message","gooberStyles","querySelector","observer","MutationObserver","pip_style","observe","childList","subtree","characterDataOldValue","disconnect","value","_$createComponent","Provider","usePiPWindow","context","ctx","serialize","stringify","clsx","cx","Index","Match","Show","Switch","createMemo","createSignal","createUniqueId","Key","goober","tokens","deleteNestedDataByPath","displayValue","updateNestedDataByPath","Check","CopiedCopier","Copier","ErrorCopier","List","Pencil","Trash","useQueryDevtoolsContext","useTheme","Query","chunkArray","label","value","array","Array","T","size","i","result","length","push","slice","Expander","props","expanded","theme","css","shadowDOMTarget","bind","target","styles","darkStyles","lightStyles","_el$","_tmpl$","_$effect","_$className","expander","CopyState","CopyButton","copyState","setCopyState","_el$2","_tmpl$2","_$addEventListener","navigator","clipboard","writeText","then","setTimeout","err","console","error","undefined","_$insert","_$createComponent","children","when","_p$","_v$","actionButton","_v$2","e","t","_$setAttribute","ClearArrayButton","dataPath","activeQuery","queryClient","client","_el$3","_tmpl$3","$$click","oldData","state","data","newData","setQueryData","queryKey","DeleteItemButton","_el$4","_tmpl$4","ToggleValueButton","_el$5","_tmpl$5","checked","ExplorerProps","editable","defaultExpanded","itemsDeletable","onEdit","isIterable","x","Iterable","Symbol","iterator","Explorer","setExpanded","includes","toggleExpanded","old","expandedPages","setExpandedPages","subEntries","isArray","map","d","toString","Map","from","key","val","Object","entries","type","subEntryPages","currentDataPath","inputId","_el$6","_tmpl$7","_el$7","_tmpl$8","_el$8","firstChild","_el$9","_el$0","nextSibling","_el$1","_el$10","_el$11","String","toLowerCase","_el$12","_$memo","meta","_el$13","_tmpl$6","actions","_v$3","expanderButtonContainer","_v$4","expanderButton","_v$5","_v$6","info","a","o","_el$14","each","by","item","entry","subEntry","_el$15","index","_el$21","_tmpl$10","_el$22","_el$23","_el$24","_el$28","_el$26","_el$29","_el$27","filter","_el$30","_v$1","_v$10","_el$16","_tmpl$1","_el$17","_el$18","fallback","_el$31","_tmpl$0","_el$19","_tmpl$9","addEventListener","changeEvent","valueAsNumber","_v$7","_v$8","editableInput","_el$20","_v$9","row","_v$0","stylesFactory","colors","font","border","light","dark","xs","gray","darkGray","teal","blue","green","radius","yellow","purple","_$delegateEvents","For","Show","batch","createEffect","createMemo","createSignal","on","onCleanup","onMount","rankItem","goober","clsx","cx","TransitionGroup","Key","createResizeObserver","DropdownMenu","RadioGroup","Portal","tokens","convertRemToPixels","displayValue","getMutationStatusColor","getQueryStatusColor","getQueryStatusColorByLabel","getQueryStatusLabel","getSidedProp","mutationSortFns","sortFns","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","CheckCircle","ChevronDown","LoadingCircle","Monitor","Moon","Offline","PauseCircle","PiPIcon","Search","Settings","Sun","TanstackLogo","Trash","Wifi","XCircle","Explorer","usePiPWindow","useQueryDevtoolsContext","useTheme","BUTTON_POSITION","DEFAULT_HEIGHT","DEFAULT_MUTATION_SORT_FN_NAME","DEFAULT_SORT_FN_NAME","DEFAULT_SORT_ORDER","DEFAULT_WIDTH","INITIAL_IS_OPEN","POSITION","firstBreakpoint","secondBreakpoint","thirdBreakpoint","DevtoolsErrorType","DevtoolsPosition","QueryDevtoolsProps","Mutation","MutationCache","Query","QueryCache","QueryCacheNotifyEvent","StorageObject","StorageSetter","Accessor","Component","JSX","Setter","DevtoolsPanelProps","localStore","setLocalStore","ContentViewProps","showPanelViewOnly","onClose","QueryStatusProps","label","color","count","selectedQueryHash","setSelectedQueryHash","selectedMutationId","setSelectedMutationId","panelWidth","setPanelWidth","offline","setOffline","DevtoolsComponentType","shadowDOMTarget","ShadowRoot","Devtools","props","theme","css","bind","target","styles","darkStyles","lightStyles","onlineManager","unsubscribe","subscribe","online","pip","buttonPosition","isOpen","open","initialIsOpen","position","transitionsContainerRef","HTMLDivElement","root","parentElement","HTMLElement","height","width","panelPosition","style","setProperty","onFocus","fontSize","getComputedStyle","window","addEventListener","removeEventListener","pip_open","_$createComponent","when","_$memo","pipWindow","children","mount","document","body","PiPPanel","ContentView","_el$","_tmpl$2","_ref$","_$use","_$insert","name","DraggablePanel","_el$2","_tmpl$","_el$3","firstChild","_el$4","nextSibling","$$click","_$effect","_$className","devtoolsBtn","Element","getPanelDynamicStyles","colors","t","light","dark","gray","darkGray","win","resizeCB","innerWidth","_el$5","_tmpl$3","panel","ParentPanel","panelRef","el","_el$6","_tmpl$4","_ref$2","parentPanel","closeBtnRef","HTMLButtonElement","focus","isResizing","setIsResizing","handleDragStart","EventHandler","MouseEvent","event","panelElement","currentTarget","getBoundingClientRect","startX","clientX","startY","clientY","newSize","minHeight","minWidth","runDrag","moveEvent","preventDefault","valToAdd","Math","round","String","newWidth","Number","rootContainer","currentPosition","styleProp","isVertical","previousPaddings","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","Object","entries","forEach","property","previousValue","_el$7","_tmpl$5","_el$8","_el$9","_ref$3","$$keydown","e","step","key","currentHeight","delta","newHeight","max","currentWidth","$$mousedown","_ref$4","_p$","_v$","_v$2","_v$3","_v$4","_v$5","_v$6","_v$7","dragHandle","_v$8","closeBtn","_$setStyleProperty","a","o","_$setAttribute","i","n","s","h","undefined","setupQueryCacheSubscription","setupMutationCacheSubscription","containerRef","selectedView","setSelectedView","sort","sortOrder","mutationSort","mutationSortOrder","sortFn","mutationSortFn","query_cache","client","getQueryCache","mutation_cache","getMutationCache","queryCount","createSubscribeToQueryCacheBatcher","queryCache","getAll","length","queries","filter","hideDisabledQueries","curr","filtered","item","queryHash","passed","isDisabled","sorted","b","mutationCount","createSubscribeToMutationCacheBatcher","mutationCache","mutations","mutationFilter","value","options","mutationKey","JSON","stringify","Date","state","submittedAt","toLocaleString","setDevtoolsPosition","pos","setComputedVariables","computedStyle","variable","getPropertyValue","_el$0","_tmpl$24","_el$1","_el$10","_el$11","_el$12","_el$13","_el$14","_el$15","_el$16","_el$17","_el$18","_el$19","_el$22","_el$25","_el$26","_el$27","_ref$5","queryFlavor","version","Root","class","viewToggle","onChange","Item","ItemInput","ItemControl","ItemIndicator","ItemLabel","title","QueryStatusCount","MutationStatusCount","$$input","_el$20","_tmpl$6","keys","map","_el$46","_tmpl$25","_el$47","_el$21","_tmpl$7","_el$48","_el$49","_tmpl$8","_tmpl$9","sendDevToolsEvent","type","clear","setOnline","isOnline","_c$","disabled","_el$28","_tmpl$0","requestPipWindow","actionsBtn","gutter","Trigger","ref","Content","settingsMenu","_el$29","_tmpl$1","settingsMenuHeader","Sub","overlap","shift","SubTrigger","settingsSubTrigger","_tmpl$10","SubContent","RadioItem","settingsSubButton","_tmpl$11","_tmpl$12","_tmpl$13","_tmpl$14","_tmpl$15","theme_preference","_tmpl$16","_tmpl$17","_tmpl$18","_tmpl$19","_tmpl$20","_tmpl$21","_el$42","_tmpl$22","_el$43","by","q","each","query","QueryRow","overflowQueryContainer","_el$44","_tmpl$23","_el$45","m","mutationId","mutation","MutationRow","_v$9","queriesContainer","_v$0","row","_v$1","logoAndToggleContainer","_v$10","logo","_v$11","tanstackLogo","_v$12","queryFlavorLogo","_v$13","_v$14","filtersContainer","_v$15","filterInput","_v$16","_v$17","filterSelect","_v$18","_v$19","_v$20","actionsContainer","_v$21","_v$22","_v$23","actionsBtnOffline","_v$24","_v$25","_v$26","r","d","l","u","c","w","f","y","g","p","QueryDetails","MutationDetails","alpha","queryState","get","isStatic","isStale","observers","getObserversCount","observerCount","getObserverCountColorStyles","_el$50","_tmpl$28","_el$51","_el$52","_tmpl$26","_tmpl$27","_v$27","queryRow","selectedQueryRow","_v$28","_v$29","mutationState","find","isPaused","status","_el$55","_el$56","_el$57","_v$30","_v$31","_v$32","stale","fresh","fetching","paused","inactive","_el$58","QueryStatus","queryStatusContainer","success","pending","error","_el$59","tagRef","mouseOver","setMouseOver","focused","setFocused","showLabel","_el$60","_tmpl$31","_el$62","_el$64","_ref$6","_$spread","_$mergeProps","aria-label","queryStatusTag","toLowerCase","_el$61","_tmpl$29","statusTooltip","_el$63","_tmpl$30","queryStatusTagLabel","_v$33","size","border","radius","full","_v$34","queryStatusCount","queryClient","restoringLoading","setRestoringLoading","dataMode","setDataMode","dataEditError","setDataEditError","errorTypes","activeQuery","activeQueryFresh","activeQueryState","activeQueryStateData","data","statusLabel","queryStatus","handleRefetch","promise","fetch","catch","triggerError","errorType","activeQueryVal","metadata","initializer","Error","__previousQueryOptions","setState","fetchMeta","restoreQueryAfterLoadingOrError","previousState","previousOptions","cancel","silent","fetchStatus","getQueryStatusColors","_el$65","_tmpl$36","_el$66","_el$67","_el$68","_el$69","_el$70","_el$71","_el$72","_el$73","_el$74","_el$75","_el$76","_el$77","_el$78","_el$79","_el$80","_el$81","_el$82","_el$83","_el$84","_el$85","_el$86","_el$87","_el$88","_el$89","_el$90","_el$99","_el$100","_el$109","_el$110","queryKey","dataUpdatedAt","toLocaleTimeString","invalidateQueries","exact","resetQueries","removeQueries","queryFn","Promise","gcTime","_el$91","_tmpl$32","_el$92","_el$93","_v$35","red","_v$36","_v$37","_el$94","_tmpl$33","_el$95","_el$96","_el$97","_el$98","et","_el$111","_tmpl$37","_v$38","actionsSelect","_v$39","_v$40","_el$101","_tmpl$34","defaultExpanded","editable","onEdit","_$p","_el$102","_tmpl$35","_el$103","_el$104","_el$105","_el$106","_el$107","_el$108","formData","FormData","parsedData","parse","_v$41","devtoolsEditForm","_v$42","devtoolsEditTextarea","_v$43","_v$44","devtoolsEditFormActions","_v$45","devtoolsEditFormError","_v$46","devtoolsEditFormActionContainer","_v$47","devtoolsEditFormAction","_v$48","blue","_v$49","detailsContainer","_v$50","detailsHeader","_v$51","detailsBody","_v$52","queryDetailsStatus","_v$53","_v$54","actionsBody","_v$55","_v$56","_v$57","_v$58","yellow","_v$59","_v$60","_v$61","_v$62","_v$63","_v$64","pink","_v$65","_v$66","_v$67","cyan","_v$68","_v$69","_v$70","_v$71","_v$72","T","A","O","I","activeMutation","_el$112","_tmpl$38","_el$113","_el$114","_el$115","_el$116","_el$117","_el$118","_el$119","_el$120","_el$121","_el$122","_el$123","_el$124","_el$125","_el$126","_el$127","_el$128","_el$129","fallback","variables","context","_v$73","_v$74","_v$75","_v$76","_v$77","_v$78","_v$79","_v$80","_v$81","_v$82","_v$83","_v$84","queryCacheMap","Map","setter","shouldUpdate","callback","Exclude","Function","equalityCheck","setValue","equals","set","delete","mutationCacheMap","queueMicrotask","DevToolsActionType","DEV_TOOLS_EVENT","Record","CustomEvent","detail","bubbles","cancelable","dispatchEvent","stylesFactory","font","shadow","md","green","sm","purple","xs","weight","bold","lineHeight","semibold","medium","teal","_$delegateEvents"],"sources":["../../../node_modules/.pnpm/@solid-primitives+utils@6.4.0_solid-js@1.9.12/node_modules/@solid-primitives/utils/dist/index.js","../../../node_modules/.pnpm/@solid-primitives+storage@1.3.11_solid-js@1.9.12/node_modules/@solid-primitives/storage/dist/index.js","../../../node_modules/.pnpm/@tanstack+match-sorter-utils@8.19.4/node_modules/@tanstack/match-sorter-utils/build/lib/index.mjs","../../../node_modules/.pnpm/goober@2.1.18_csstype@3.2.3/node_modules/goober/dist/goober.modern.js","../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../../node_modules/.pnpm/@solid-primitives+transition-group@1.1.2_solid-js@1.9.12/node_modules/@solid-primitives/transition-group/dist/index.js","../../../node_modules/.pnpm/@solid-primitives+refs@1.1.3_solid-js@1.9.12/node_modules/@solid-primitives/refs/dist/index.js","../../../node_modules/.pnpm/solid-transition-group@0.2.3_solid-js@1.9.12/node_modules/solid-transition-group/dist/index.js","../../../node_modules/.pnpm/@solid-primitives+keyed@1.5.3_solid-js@1.9.12/node_modules/@solid-primitives/keyed/dist/index.js","../../../node_modules/.pnpm/@solid-primitives+event-listener@2.4.5_solid-js@1.9.12/node_modules/@solid-primitives/event-listener/dist/eventListener.js","../../../node_modules/.pnpm/@solid-primitives+resize-observer@2.1.5_solid-js@1.9.12/node_modules/@solid-primitives/resize-observer/dist/index.js","../../../node_modules/.pnpm/@solid-primitives+props@3.2.3_solid-js@1.9.12/node_modules/@solid-primitives/props/dist/combineProps.js","../../../node_modules/.pnpm/@kobalte+utils@0.9.1_solid-js@1.9.12/node_modules/@kobalte/utils/dist/index.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/ET5T45DO.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/6Y7B2NEO.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/5ZKAE4VZ.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/7OVKXYPU.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/BLN63FDC.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/YGDQXQ2B.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/JMA2RWU6.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/XHJPQEZP.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/H6DSIDEC.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/7CVNMTYF.js","../../../node_modules/.pnpm/@floating-ui+utils@0.2.11/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../node_modules/.pnpm/@floating-ui+core@1.7.5/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../node_modules/.pnpm/@floating-ui+utils@0.2.11/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../../node_modules/.pnpm/@floating-ui+dom@1.7.6/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/LMWVDFW6.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/ZKYDDHM6.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/KKN23NY7.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/QEMPLYZX.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/BASJUNIE.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/7LCANGHD.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/E4R2EMM4.js","../../../node_modules/.pnpm/@corvu+utils@0.4.2_solid-js@1.9.12/node_modules/@corvu/utils/dist/chunk/ZV6G25TT.js","../../../node_modules/.pnpm/solid-presence@0.1.8_solid-js@1.9.12/node_modules/solid-presence/dist/index.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/YKGT7A57.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/7ZHN3PYD.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/ANN3A2QM.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/ICNSTULC.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/ISKHZMHS.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/YA7DCYMB.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/455ZADO2.js","../../../node_modules/.pnpm/@corvu+utils@0.4.2_solid-js@1.9.12/node_modules/@corvu/utils/dist/chunk/SEUPK2SH.js","../../../node_modules/.pnpm/@corvu+utils@0.4.2_solid-js@1.9.12/node_modules/@corvu/utils/dist/create/style.js","../../../node_modules/.pnpm/@corvu+utils@0.4.2_solid-js@1.9.12/node_modules/@corvu/utils/dist/scroll/index.js","../../../node_modules/.pnpm/solid-prevent-scroll@0.1.10_solid-js@1.9.12/node_modules/solid-prevent-scroll/dist/index.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/JRXYFAAV.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/GLKC2QFF.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/46NU5BYI.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/STGRFJHZ.js","../../../node_modules/.pnpm/@kobalte+core@0.13.11_solid-js@1.9.12/node_modules/@kobalte/core/dist/chunk/YJ7Q7MW3.js","../src/theme.ts","../src/icons/index.tsx","../src/constants.ts","../src/contexts/QueryDevtoolsContext.ts","../src/contexts/PiPContext.tsx","../src/contexts/ThemeContext.ts","../src/Explorer.tsx","../src/Devtools.tsx"],"sourcesContent":["import { getOwner, onCleanup, createSignal, untrack, sharedConfig, onMount, DEV, equalFn, } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nexport * from \"./types.js\";\n//\n// GENERAL HELPERS:\n//\nexport { isServer };\nexport const isClient = !isServer;\nexport const isDev = isClient && !!DEV;\nexport const isProd = !isDev;\n/** no operation */\nexport const noop = (() => void 0);\nexport const trueFn = () => true;\nexport const falseFn = () => false;\n/** @deprecated use {@link equalFn} from \"solid-js\" */\nexport const defaultEquals = equalFn;\nexport const EQUALS_FALSE_OPTIONS = { equals: false };\nexport const INTERNAL_OPTIONS = { internal: true };\n/**\n * Check if the value is an instance of ___\n */\nexport const ofClass = (v, c) => v instanceof c || (v && v.constructor === c);\n/** Check if value is typeof \"object\" or \"function\" */\nexport function isObject(value) {\n return value !== null && (typeof value === \"object\" || typeof value === \"function\");\n}\nexport const isNonNullable = (i) => i != null;\nexport const filterNonNullable = (arr) => arr.filter(isNonNullable);\nexport const compare = (a, b) => (a < b ? -1 : a > b ? 1 : 0);\n/**\n * Check shallow array equality\n */\nexport const arrayEquals = (a, b) => a === b || (a.length === b.length && a.every((e, i) => e === b[i]));\n/**\n * Returns a function that will call all functions in the order they were chained with the same arguments.\n */\nexport function chain(callbacks) {\n return (...args) => {\n for (const callback of callbacks)\n callback && callback(...args);\n };\n}\n/**\n * Returns a function that will call all functions in the reversed order with the same arguments.\n */\nexport function reverseChain(callbacks) {\n return (...args) => {\n for (let i = callbacks.length - 1; i >= 0; i--) {\n const callback = callbacks[i];\n callback && callback(...args);\n }\n };\n}\nexport const clamp = (n, min, max) => Math.min(Math.max(n, min), max);\n/**\n * Accesses the value of a MaybeAccessor\n * @example\n * ```ts\n * access(\"foo\") // => \"foo\"\n * access(() => \"foo\") // => \"foo\"\n * ```\n */\nexport const access = (v) => typeof v === \"function\" && !v.length ? v() : v;\nexport const asArray = (value) => Array.isArray(value) ? value : value ? [value] : [];\n/**\n * Access an array of MaybeAccessors\n * @example\n * const list = [1, 2, () => 3)] // T: MaybeAccessor<number>[]\n * const newList = accessArray(list) // T: number[]\n */\nexport const accessArray = (list) => list.map(v => access(v));\n/**\n * Run the function if the accessed value is not `undefined` nor `null`\n * @param value\n * @param fn\n */\nexport const withAccess = (value, fn) => {\n const _value = access(value);\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n typeof _value != null && fn(_value);\n};\nexport const asAccessor = (v) => (typeof v === \"function\" ? v : () => v);\n/** If value is a function – call it with a given arguments – otherwise get the value as is */\nexport function accessWith(valueOrFn, ...args) {\n return typeof valueOrFn === \"function\" ? valueOrFn(...args) : valueOrFn;\n}\nexport function defer(deps, fn, initialValue) {\n const isArray = Array.isArray(deps);\n let prevInput;\n let shouldDefer = true;\n return prevValue => {\n let input;\n if (isArray) {\n input = Array(deps.length);\n for (let i = 0; i < deps.length; i++)\n input[i] = deps[i]();\n }\n else\n input = deps();\n if (shouldDefer) {\n shouldDefer = false;\n prevInput = input;\n return initialValue;\n }\n const result = untrack(() => fn(input, prevInput, prevValue));\n prevInput = input;\n return result;\n };\n}\n/**\n * Get entries of an object\n */\nexport const entries = Object.entries;\n/**\n * Get keys of an object\n */\nexport const keys = Object.keys;\n/**\n * Solid's `onCleanup` that doesn't warn in development if used outside of a component.\n */\nexport const tryOnCleanup = isDev\n ? fn => (getOwner() ? onCleanup(fn) : fn)\n : onCleanup;\nexport const createCallbackStack = () => {\n let stack = [];\n const clear = () => (stack = []);\n return {\n push: (...callbacks) => stack.push(...callbacks),\n execute(arg0, arg1, arg2, arg3) {\n stack.forEach(cb => cb(arg0, arg1, arg2, arg3));\n clear();\n },\n clear,\n };\n};\n/**\n * Group synchronous function calls.\n * @param fn\n * @returns `fn`\n */\nexport function createMicrotask(fn) {\n let calls = 0;\n let args;\n onCleanup(() => (calls = 0));\n return (...a) => {\n (args = a), calls++;\n queueMicrotask(() => --calls === 0 && fn(...args));\n };\n}\n/**\n * A hydratable version of the {@link createSignal}. It will use the serverValue on the server and the update function on the client. If initialized during hydration it will use serverValue as the initial value and update it once hydration is complete.\n *\n * @param serverValue initial value of the state on the server\n * @param update called once on the client or on hydration to initialize the value\n * @param options {@link SignalOptions}\n * @returns\n * ```ts\n * [state: Accessor<T>, setState: Setter<T>]\n * ```\n * @see {@link createSignal}\n */\nexport function createHydratableSignal(serverValue, update, options) {\n if (isServer) {\n return createSignal(serverValue, options);\n }\n if (sharedConfig.context) {\n const [state, setState] = createSignal(serverValue, options);\n onMount(() => setState(() => update()));\n return [state, setState];\n }\n return createSignal(update(), options);\n}\n/** @deprecated use {@link createHydratableSignal} instead */\nexport const createHydrateSignal = createHydratableSignal;\n/**\n * Handle items removed and added to the array by diffing it by refference.\n *\n * @param current new array instance\n * @param prev previous array copy\n * @param handleAdded called once for every added item to array\n * @param handleRemoved called once for every removed from array\n */\nexport function handleDiffArray(current, prev, handleAdded, handleRemoved) {\n const currLength = current.length;\n const prevLength = prev.length;\n let i = 0;\n if (!prevLength) {\n for (; i < currLength; i++)\n handleAdded(current[i]);\n return;\n }\n if (!currLength) {\n for (; i < prevLength; i++)\n handleRemoved(prev[i]);\n return;\n }\n for (; i < prevLength; i++) {\n if (prev[i] !== current[i])\n break;\n }\n let prevEl;\n let currEl;\n prev = prev.slice(i);\n current = current.slice(i);\n for (prevEl of prev) {\n if (!current.includes(prevEl))\n handleRemoved(prevEl);\n }\n for (currEl of current) {\n if (!prev.includes(currEl))\n handleAdded(currEl);\n }\n}\n// ─── String transforms ────────────────────────────────────────────────────────\n/**\n * Parse a string as a single JSON value.\n *\n * ```ts\n * const { data } = createSSE<{ status: string }>(url, { transform: json });\n * ```\n */\nexport const json = (raw) => JSON.parse(raw);\n/**\n * Parse a string as newline-delimited JSON (NDJSON / JSON Lines).\n *\n * Each non-empty line is parsed as a separate JSON value and returned as an array.\n *\n * ```ts\n * const { data } = createSSE<TickEvent[]>(url, { transform: ndjson });\n * // data() === [{ id: 1, type: \"tick\" }, { id: 2, type: \"tick\" }]\n * ```\n */\nexport const ndjson = (raw) => raw\n .split(\"\\n\")\n .filter(line => line !== \"\")\n .map(line => JSON.parse(line));\n/**\n * Split a string into individual lines, returning a `string[]`. Empty lines are filtered out.\n *\n * ```ts\n * const { data } = createSSE<string[]>(url, { transform: lines });\n * // data() === [\"line one\", \"line two\"]\n * ```\n */\nexport const lines = (raw) => raw.split(\"\\n\").filter(line => line !== \"\");\n/**\n * Parse a string as a number using `Number()` semantics.\n *\n * Note: `\"\"` → `0`, non-numeric strings → `NaN`.\n *\n * ```ts\n * const { data } = createSSE<number>(url, { transform: number });\n * // data() === 42\n * ```\n */\nexport const number = (raw) => Number(raw);\nexport function safe(transform, fallback) {\n return (raw) => {\n try {\n return transform(raw);\n }\n catch {\n return fallback;\n }\n };\n}\n/**\n * Compose two transforms into one: the output of `a` is passed as the input of `b`.\n *\n * ```ts\n * const { data } = createSSE<RawEvent[]>(url, {\n * transform: pipe(ndjson<RawEvent>, rows => rows.filter(r => r.type === \"tick\")),\n * });\n * ```\n */\nexport function pipe(a, b) {\n return (raw) => b(a(raw));\n}\n","import { createSignal, onMount, onCleanup, createEffect } from 'solid-js';\nimport { createHydrateSignal } from '@solid-primitives/utils';\n\n// src/storage.ts\nfunction createStorage(props) {\n const [error, setError] = createSignal();\n const handleError = props?.throw ? (err, fallback) => {\n setError(err instanceof Error ? err : new Error(fallback));\n throw err;\n } : (err, fallback) => {\n setError(err instanceof Error ? err : new Error(fallback));\n };\n const apis = props?.api ? Array.isArray(props.api) ? props.api : [props.api] : [globalThis.localStorage].filter(Boolean);\n const prefix = props?.prefix ? `${props.prefix}.` : \"\";\n const signals = /* @__PURE__ */ new Map();\n const store = new Proxy(\n {},\n {\n get(_, key) {\n let node = signals.get(key);\n if (!node) {\n node = createSignal(void 0, { equals: false });\n signals.set(key, node);\n }\n node[0]();\n const value = apis.reduce(\n (result, api) => {\n if (result !== null || !api) {\n return result;\n }\n try {\n return api.getItem(`${prefix}${key}`);\n } catch (err) {\n handleError(err, `Error reading ${prefix}${key} from ${api[\"name\"]}`);\n return null;\n }\n },\n null\n );\n if (value !== null && props?.deserializer) {\n return props.deserializer(value, key, props.options);\n }\n return value;\n }\n }\n );\n const setter = (key, value, options) => {\n const filteredValue = props?.serializer ? props.serializer(value, key, options ?? props.options) : value;\n const apiKey = `${prefix}${key}`;\n apis.forEach((api) => {\n try {\n api.getItem(apiKey) !== filteredValue && api.setItem(apiKey, filteredValue);\n } catch (err) {\n handleError(err, `Error setting ${prefix}${key} to ${filteredValue} in ${api.name}`);\n }\n });\n const node = signals.get(key);\n node && node[1]();\n };\n const remove = (key) => apis.forEach((api) => {\n try {\n api.removeItem(`${prefix}${key}`);\n } catch (err) {\n handleError(err, `Error removing ${prefix}${key} from ${api.name}`);\n }\n });\n const clear = () => apis.forEach((api) => {\n try {\n api.clear();\n } catch (err) {\n handleError(err, `Error clearing ${api.name}`);\n }\n });\n const toJSON = () => {\n const result = {};\n const addValue = (key, value) => {\n if (!result.hasOwnProperty(key)) {\n const filteredValue = value && props?.deserializer ? props.deserializer(value, key, props.options) : value;\n if (filteredValue) {\n result[key] = filteredValue;\n }\n }\n };\n apis.forEach((api) => {\n if (typeof api.getAll === \"function\") {\n let values;\n try {\n values = api.getAll();\n } catch (err) {\n handleError(err, `Error getting all values from in ${api.name}`);\n }\n for (const key of values) {\n addValue(key, values[key]);\n }\n } else {\n let index = 0, key;\n try {\n while (key = api.key(index++)) {\n if (!result.hasOwnProperty(key)) {\n addValue(key, api.getItem(key));\n }\n }\n } catch (err) {\n handleError(err, `Error getting all values from ${api.name}`);\n }\n }\n });\n return result;\n };\n props?.sync !== false && onMount(() => {\n const listener = (ev) => {\n let changed = false;\n apis.forEach((api) => {\n try {\n if (api !== ev.storageArea && ev.key && ev.newValue !== api.getItem(ev.key)) {\n ev.newValue ? api.setItem(ev.key, ev.newValue) : api.removeItem(ev.key);\n changed = true;\n }\n } catch (err) {\n handleError(\n err,\n `Error synching api ${api.name} from storage event (${ev.key}=${ev.newValue})`\n );\n }\n });\n changed && ev.key && signals.get(ev.key)?.[1]();\n };\n if (\"addEventListener\" in globalThis) {\n globalThis.addEventListener(\"storage\", listener);\n onCleanup(() => globalThis.removeEventListener(\"storage\", listener));\n } else {\n apis.forEach((api) => api.addEventListener?.(\"storage\", listener));\n onCleanup(() => apis.forEach((api) => api.removeEventListener?.(\"storage\", listener)));\n }\n });\n return [\n store,\n setter,\n {\n clear,\n error,\n remove,\n toJSON\n }\n ];\n}\nfunction createAsyncStorage(props) {\n const [error, setError] = createSignal();\n const handleError = props?.throw ? (err, fallback) => {\n setError(err instanceof Error ? err : new Error(fallback));\n throw err;\n } : (err, fallback) => {\n setError(err instanceof Error ? err : new Error(fallback));\n };\n const apis = props?.api ? Array.isArray(props.api) ? props.api : [props.api] : [];\n const prefix = props?.prefix ? `${props.prefix}.` : \"\";\n const signals = /* @__PURE__ */ new Map();\n const store = new Proxy({}, {\n get(_, key) {\n let node = signals.get(key);\n if (!node) {\n node = createSignal(void 0, { equals: false });\n signals.set(key, node);\n }\n node[0]();\n return apis.reduce((result, api) => {\n if (result !== null || !api) {\n return result;\n }\n let value;\n try {\n value = api.getItem(`${prefix}${key}`);\n } catch (err) {\n handleError(err, `Error getting ${prefix}${key} from ${api.name}`);\n }\n if (value instanceof Promise) {\n return value.then(\n (newValue) => newValue && props?.deserializer ? props.deserializer(newValue, key, props.options) : newValue\n );\n }\n return value !== null && props?.deserializer ? Promise.resolve(props.deserializer(value, key, props.options)) : Promise.resolve(value);\n }, null);\n }\n });\n const setter = (key, value, options) => {\n const filteredValue = props?.serializer ? props.serializer(value, key, options ?? props.options) : value;\n return Promise.all(\n apis.map((api) => {\n try {\n api.setItem(`${prefix}${key}`, filteredValue, options ?? props?.options);\n } catch (err) {\n handleError(err, `Error setting ${prefix}${key} to ${filteredValue} in ${api.name}`);\n }\n })\n ).then(() => {\n const node = signals.get(key);\n node && node[1]();\n });\n };\n const remove = (key) => {\n Promise.all(\n apis.map((api) => {\n try {\n api.removeItem(`${prefix}${key}`);\n } catch (err) {\n handleError(err, `Error removing ${prefix}${key} from ${api.name}`);\n }\n })\n ).then(() => {\n const node = signals.get(key);\n node && node[1]();\n });\n };\n const clear = () => Promise.all(\n apis.map(async (api) => {\n let index = 0, key;\n while (key = await api.key(index++)) {\n try {\n await api.removeItem(key);\n } catch (err) {\n handleError(err, `Error removing ${key} from ${api.name} during clear()`);\n }\n }\n })\n ).then(() => {\n return;\n });\n const toJSON = async () => {\n const result = {};\n const addValue = (key, value) => {\n if (!result.hasOwnProperty(key)) {\n const filteredValue = value && props?.deserializer ? props.deserializer(value, key, props.options) : value;\n if (filteredValue) {\n result[key] = filteredValue;\n }\n }\n };\n await Promise.all(\n apis.map(async (api) => {\n if (typeof api.getAll === \"function\") {\n try {\n const values = await api.getAll();\n for (const key of values) {\n addValue(key, values[key]);\n }\n } catch (err) {\n handleError(err, `Error attempting to get all keys from ${api.name}`);\n }\n } else {\n let index = 0, key;\n try {\n while (key = await api.key(index++)) {\n addValue(key, await api.getItem(key));\n }\n } catch (err) {\n handleError(err, `Error attempting to get all keys from ${api.name}`);\n }\n }\n })\n );\n return result;\n };\n props?.sync !== false && onMount(() => {\n const listener = (ev) => {\n let changed = false;\n apis.forEach(async (api) => {\n try {\n if (api !== ev.storageArea && ev.key && ev.newValue !== await api.getItem(ev.key)) {\n ev.newValue ? api.setItem(ev.key, ev.newValue) : api.removeItem(ev.key);\n changed = true;\n }\n } catch (err) {\n handleError(err, \"Error attempting to sync on event\");\n }\n });\n changed && ev.key && signals.get(ev.key)?.[1]();\n };\n if (\"addEventListener\" in globalThis) {\n globalThis.addEventListener(\"storage\", listener);\n onCleanup(() => globalThis.removeEventListener(\"storage\", listener));\n } else {\n apis.forEach((api) => api.addEventListener?.(\"storage\", listener));\n onCleanup(() => apis.forEach((api) => api.removeEventListener?.(\"storage\", listener)));\n }\n });\n return [\n store,\n setter,\n {\n remove,\n clear,\n error,\n toJSON\n }\n ];\n}\nfunction createStorageSignal(key, initialValue, props) {\n const [error, setError] = createSignal();\n const apis = props?.api ? Array.isArray(props.api) ? props.api : [props.api] : [globalThis.localStorage].filter(Boolean);\n const prefix = props?.prefix ? `${props.prefix}.` : \"\";\n const read = () => apis.reduce((result, api) => {\n if (result !== null || !api) {\n return result;\n }\n let value = null;\n try {\n value = api.getItem(`${prefix}${key}`);\n } catch (err) {\n setError(\n err instanceof Error ? err : new Error(`Error reading ${prefix}${key} from ${api.name}`)\n );\n if (props?.throw) {\n throw err;\n }\n }\n if (value !== null && props?.deserializer) {\n return props.deserializer(value + \"\", key, props.options);\n }\n return value;\n }, null);\n const [accessor, setter] = createHydrateSignal(\n initialValue,\n () => read() ?? initialValue,\n props\n );\n createEffect(() => {\n const value = accessor();\n const filteredValue = props?.serializer ? props.serializer(value, key, props.options) : value + \"\";\n const apiKey = `${prefix}${key}`;\n try {\n if (value === null) {\n apis.forEach((api) => api.getItem(apiKey) !== null && api.removeItem(apiKey));\n } else {\n apis.forEach(\n (api) => api.getItem(apiKey) !== filteredValue && api.setItem(apiKey, filteredValue, props?.options)\n );\n }\n } catch (err) {\n setError(\n err instanceof Error ? err : new Error(`Error ${value === null ? \"removing\" : \"writing\"} value`)\n );\n if (props?.throw) {\n throw err;\n }\n }\n });\n const refetch = () => {\n const value = read();\n setter(value);\n };\n props?.sync !== false && onMount(() => {\n const listener = (ev) => {\n let changed = false;\n try {\n apis.forEach((api) => {\n if (api !== ev.storageArea && ev.key && ev.newValue !== api.getItem(ev.key)) {\n ev.newValue ? api.setItem(ev.key, ev.newValue) : api.removeItem(ev.key);\n changed = true;\n }\n });\n } catch (err) {\n setError(err instanceof Error ? err : new Error(\"Error synching api after event\"));\n if (props?.throw) {\n throw err;\n }\n }\n changed && refetch();\n };\n if (\"addEventListener\" in globalThis) {\n globalThis.addEventListener(\"storage\", listener);\n onCleanup(() => globalThis.removeEventListener(\"storage\", listener));\n } else {\n apis.forEach((api) => api.addEventListener?.(\"storage\", listener));\n onCleanup(() => apis.forEach((api) => api.removeEventListener?.(\"storage\", listener)));\n }\n });\n return [Object.assign(accessor, { error }), setter, refetch];\n}\nvar createLocalStorage = createStorage;\nvar createSessionStorage = (props) => createStorage({ ...props, api: globalThis.sessionStorage });\n\n// src/tools.ts\nvar addClearMethod = (storage) => {\n if (typeof storage.clear === \"function\") {\n return storage;\n }\n storage.clear = () => {\n let key;\n while (key = storage.key(0)) {\n storage.removeItem(key);\n }\n };\n return storage;\n};\n\n// src/cookies.ts\nvar serializeCookieOptions = (options) => {\n if (!options) {\n return \"\";\n }\n let memo = \"\";\n for (const key in options) {\n if (!options.hasOwnProperty(key)) {\n continue;\n }\n const value = options[key];\n memo += value instanceof Date ? `; ${key}=${value.toUTCString()}` : typeof value === \"boolean\" ? `; ${key}` : `; ${key}=${value}`;\n }\n return memo;\n};\nvar cookieStorage = addClearMethod({\n _cookies: [globalThis.document, \"cookie\"],\n getItem: (key) => cookieStorage._cookies[0][cookieStorage._cookies[1]].match(\"(^|;)\\\\s*\" + key + \"\\\\s*=\\\\s*([^;]+)\")?.pop() ?? null,\n setItem: (key, value, options) => {\n const oldValue = cookieStorage.getItem(key);\n cookieStorage._cookies[0][cookieStorage._cookies[1]] = `${key}=${value}${serializeCookieOptions(\n options\n )}`;\n const storageEvent = Object.assign(new Event(\"storage\"), {\n key,\n oldValue,\n newValue: value,\n url: globalThis.document.URL,\n storageArea: cookieStorage\n });\n window.dispatchEvent(storageEvent);\n },\n removeItem: (key) => {\n cookieStorage._cookies[0][cookieStorage._cookies[1]] = `${key}=deleted${serializeCookieOptions({\n expires: new Date(0)\n })}`;\n },\n key: (index) => {\n let key = null;\n let count = 0;\n cookieStorage._cookies[0][cookieStorage._cookies[1]].replace(\n /(?:^|;)\\s*(.+?)\\s*=\\s*[^;]+/g,\n (_, found) => {\n if (!key && found && count++ === index) {\n key = found;\n }\n return \"\";\n }\n );\n return key;\n },\n get length() {\n let length = 0;\n cookieStorage._cookies[0][cookieStorage._cookies[1]].replace(\n /(?:^|;)\\s*.+?\\s*=\\s*[^;]+/g,\n (found) => {\n length += found ? 1 : 0;\n return \"\";\n }\n );\n return length;\n }\n});\nvar createCookieStorage = (props) => createStorage({ ...props, api: cookieStorage });\n\nexport { addClearMethod, cookieStorage, createAsyncStorage, createCookieStorage, createLocalStorage, createSessionStorage, createStorage, createStorageSignal };\n","/**\n * match-sorter-utils\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nconst characterMap = {\n À: 'A',\n Á: 'A',\n Â: 'A',\n Ã: 'A',\n Ä: 'A',\n Å: 'A',\n Ấ: 'A',\n Ắ: 'A',\n Ẳ: 'A',\n Ẵ: 'A',\n Ặ: 'A',\n Æ: 'AE',\n Ầ: 'A',\n Ằ: 'A',\n Ȃ: 'A',\n Ç: 'C',\n Ḉ: 'C',\n È: 'E',\n É: 'E',\n Ê: 'E',\n Ë: 'E',\n Ế: 'E',\n Ḗ: 'E',\n Ề: 'E',\n Ḕ: 'E',\n Ḝ: 'E',\n Ȇ: 'E',\n Ì: 'I',\n Í: 'I',\n Î: 'I',\n Ï: 'I',\n Ḯ: 'I',\n Ȋ: 'I',\n Ð: 'D',\n Ñ: 'N',\n Ò: 'O',\n Ó: 'O',\n Ô: 'O',\n Õ: 'O',\n Ö: 'O',\n Ø: 'O',\n Ố: 'O',\n Ṍ: 'O',\n Ṓ: 'O',\n Ȏ: 'O',\n Ù: 'U',\n Ú: 'U',\n Û: 'U',\n Ü: 'U',\n Ý: 'Y',\n à: 'a',\n á: 'a',\n â: 'a',\n ã: 'a',\n ä: 'a',\n å: 'a',\n ấ: 'a',\n ắ: 'a',\n ẳ: 'a',\n ẵ: 'a',\n ặ: 'a',\n æ: 'ae',\n ầ: 'a',\n ằ: 'a',\n ȃ: 'a',\n ç: 'c',\n ḉ: 'c',\n è: 'e',\n é: 'e',\n ê: 'e',\n ë: 'e',\n ế: 'e',\n ḗ: 'e',\n ề: 'e',\n ḕ: 'e',\n ḝ: 'e',\n ȇ: 'e',\n ì: 'i',\n í: 'i',\n î: 'i',\n ï: 'i',\n ḯ: 'i',\n ȋ: 'i',\n ð: 'd',\n ñ: 'n',\n ò: 'o',\n ó: 'o',\n ô: 'o',\n õ: 'o',\n ö: 'o',\n ø: 'o',\n ố: 'o',\n ṍ: 'o',\n ṓ: 'o',\n ȏ: 'o',\n ù: 'u',\n ú: 'u',\n û: 'u',\n ü: 'u',\n ý: 'y',\n ÿ: 'y',\n Ā: 'A',\n ā: 'a',\n Ă: 'A',\n ă: 'a',\n Ą: 'A',\n ą: 'a',\n Ć: 'C',\n ć: 'c',\n Ĉ: 'C',\n ĉ: 'c',\n Ċ: 'C',\n ċ: 'c',\n Č: 'C',\n č: 'c',\n C̆: 'C',\n c̆: 'c',\n Ď: 'D',\n ď: 'd',\n Đ: 'D',\n đ: 'd',\n Ē: 'E',\n ē: 'e',\n Ĕ: 'E',\n ĕ: 'e',\n Ė: 'E',\n ė: 'e',\n Ę: 'E',\n ę: 'e',\n Ě: 'E',\n ě: 'e',\n Ĝ: 'G',\n Ǵ: 'G',\n ĝ: 'g',\n ǵ: 'g',\n Ğ: 'G',\n ğ: 'g',\n Ġ: 'G',\n ġ: 'g',\n Ģ: 'G',\n ģ: 'g',\n Ĥ: 'H',\n ĥ: 'h',\n Ħ: 'H',\n ħ: 'h',\n Ḫ: 'H',\n ḫ: 'h',\n Ĩ: 'I',\n ĩ: 'i',\n Ī: 'I',\n ī: 'i',\n Ĭ: 'I',\n ĭ: 'i',\n Į: 'I',\n į: 'i',\n İ: 'I',\n ı: 'i',\n IJ: 'IJ',\n ij: 'ij',\n Ĵ: 'J',\n ĵ: 'j',\n Ķ: 'K',\n ķ: 'k',\n Ḱ: 'K',\n ḱ: 'k',\n K̆: 'K',\n k̆: 'k',\n Ĺ: 'L',\n ĺ: 'l',\n Ļ: 'L',\n ļ: 'l',\n Ľ: 'L',\n ľ: 'l',\n Ŀ: 'L',\n ŀ: 'l',\n Ł: 'l',\n ł: 'l',\n Ḿ: 'M',\n ḿ: 'm',\n M̆: 'M',\n m̆: 'm',\n Ń: 'N',\n ń: 'n',\n Ņ: 'N',\n ņ: 'n',\n Ň: 'N',\n ň: 'n',\n ʼn: 'n',\n N̆: 'N',\n n̆: 'n',\n Ō: 'O',\n ō: 'o',\n Ŏ: 'O',\n ŏ: 'o',\n Ő: 'O',\n ő: 'o',\n Œ: 'OE',\n œ: 'oe',\n P̆: 'P',\n p̆: 'p',\n Ŕ: 'R',\n ŕ: 'r',\n Ŗ: 'R',\n ŗ: 'r',\n Ř: 'R',\n ř: 'r',\n R̆: 'R',\n r̆: 'r',\n Ȓ: 'R',\n ȓ: 'r',\n Ś: 'S',\n ś: 's',\n Ŝ: 'S',\n ŝ: 's',\n Ş: 'S',\n Ș: 'S',\n ș: 's',\n ş: 's',\n Š: 'S',\n š: 's',\n Ţ: 'T',\n ţ: 't',\n ț: 't',\n Ț: 'T',\n Ť: 'T',\n ť: 't',\n Ŧ: 'T',\n ŧ: 't',\n T̆: 'T',\n t̆: 't',\n Ũ: 'U',\n ũ: 'u',\n Ū: 'U',\n ū: 'u',\n Ŭ: 'U',\n ŭ: 'u',\n Ů: 'U',\n ů: 'u',\n Ű: 'U',\n ű: 'u',\n Ų: 'U',\n ų: 'u',\n Ȗ: 'U',\n ȗ: 'u',\n V̆: 'V',\n v̆: 'v',\n Ŵ: 'W',\n ŵ: 'w',\n Ẃ: 'W',\n ẃ: 'w',\n X̆: 'X',\n x̆: 'x',\n Ŷ: 'Y',\n ŷ: 'y',\n Ÿ: 'Y',\n Y̆: 'Y',\n y̆: 'y',\n Ź: 'Z',\n ź: 'z',\n Ż: 'Z',\n ż: 'z',\n Ž: 'Z',\n ž: 'z',\n ſ: 's',\n ƒ: 'f',\n Ơ: 'O',\n ơ: 'o',\n Ư: 'U',\n ư: 'u',\n Ǎ: 'A',\n ǎ: 'a',\n Ǐ: 'I',\n ǐ: 'i',\n Ǒ: 'O',\n ǒ: 'o',\n Ǔ: 'U',\n ǔ: 'u',\n Ǖ: 'U',\n ǖ: 'u',\n Ǘ: 'U',\n ǘ: 'u',\n Ǚ: 'U',\n ǚ: 'u',\n Ǜ: 'U',\n ǜ: 'u',\n Ứ: 'U',\n ứ: 'u',\n Ṹ: 'U',\n ṹ: 'u',\n Ǻ: 'A',\n ǻ: 'a',\n Ǽ: 'AE',\n ǽ: 'ae',\n Ǿ: 'O',\n ǿ: 'o',\n Þ: 'TH',\n þ: 'th',\n Ṕ: 'P',\n ṕ: 'p',\n Ṥ: 'S',\n ṥ: 's',\n X́: 'X',\n x́: 'x',\n Ѓ: 'Г',\n ѓ: 'г',\n Ќ: 'К',\n ќ: 'к',\n A̋: 'A',\n a̋: 'a',\n E̋: 'E',\n e̋: 'e',\n I̋: 'I',\n i̋: 'i',\n Ǹ: 'N',\n ǹ: 'n',\n Ồ: 'O',\n ồ: 'o',\n Ṑ: 'O',\n ṑ: 'o',\n Ừ: 'U',\n ừ: 'u',\n Ẁ: 'W',\n ẁ: 'w',\n Ỳ: 'Y',\n ỳ: 'y',\n Ȁ: 'A',\n ȁ: 'a',\n Ȅ: 'E',\n ȅ: 'e',\n Ȉ: 'I',\n ȉ: 'i',\n Ȍ: 'O',\n ȍ: 'o',\n Ȑ: 'R',\n ȑ: 'r',\n Ȕ: 'U',\n ȕ: 'u',\n B̌: 'B',\n b̌: 'b',\n Č̣: 'C',\n č̣: 'c',\n Ê̌: 'E',\n ê̌: 'e',\n F̌: 'F',\n f̌: 'f',\n Ǧ: 'G',\n ǧ: 'g',\n Ȟ: 'H',\n ȟ: 'h',\n J̌: 'J',\n ǰ: 'j',\n Ǩ: 'K',\n ǩ: 'k',\n M̌: 'M',\n m̌: 'm',\n P̌: 'P',\n p̌: 'p',\n Q̌: 'Q',\n q̌: 'q',\n Ř̩: 'R',\n ř̩: 'r',\n Ṧ: 'S',\n ṧ: 's',\n V̌: 'V',\n v̌: 'v',\n W̌: 'W',\n w̌: 'w',\n X̌: 'X',\n x̌: 'x',\n Y̌: 'Y',\n y̌: 'y',\n A̧: 'A',\n a̧: 'a',\n B̧: 'B',\n b̧: 'b',\n Ḑ: 'D',\n ḑ: 'd',\n Ȩ: 'E',\n ȩ: 'e',\n Ɛ̧: 'E',\n ɛ̧: 'e',\n Ḩ: 'H',\n ḩ: 'h',\n I̧: 'I',\n i̧: 'i',\n Ɨ̧: 'I',\n ɨ̧: 'i',\n M̧: 'M',\n m̧: 'm',\n O̧: 'O',\n o̧: 'o',\n Q̧: 'Q',\n q̧: 'q',\n U̧: 'U',\n u̧: 'u',\n X̧: 'X',\n x̧: 'x',\n Z̧: 'Z',\n z̧: 'z'\n};\nconst chars = Object.keys(characterMap).join('|');\nconst allAccents = new RegExp(chars, 'g');\nfunction removeAccents(str) {\n return str.replace(allAccents, match => {\n return characterMap[match];\n });\n}\n\n/**\n * @name match-sorter\n * @license MIT license.\n * @copyright (c) 2099 Kent C. Dodds\n * @author Kent C. Dodds <me@kentcdodds.com> (https://kentcdodds.com)\n */\n\nconst rankings = {\n CASE_SENSITIVE_EQUAL: 7,\n EQUAL: 6,\n STARTS_WITH: 5,\n WORD_STARTS_WITH: 4,\n CONTAINS: 3,\n ACRONYM: 2,\n MATCHES: 1,\n NO_MATCH: 0\n};\n/**\n * Gets the highest ranking for value for the given item based on its values for the given keys\n * @param {*} item - the item to rank\n * @param {String} value - the value to rank against\n * @param {Object} options - options to control the ranking\n * @return {{rank: Number, accessorIndex: Number, accessorThreshold: Number}} - the highest ranking\n */\nfunction rankItem(item, value, options) {\n var _options$threshold;\n options = options || {};\n options.threshold = (_options$threshold = options.threshold) != null ? _options$threshold : rankings.MATCHES;\n if (!options.accessors) {\n // if keys is not specified, then we assume the item given is ready to be matched\n const rank = getMatchRanking(item, value, options);\n return {\n // ends up being duplicate of 'item' in matches but consistent\n rankedValue: item,\n rank,\n accessorIndex: -1,\n accessorThreshold: options.threshold,\n passed: rank >= options.threshold\n };\n }\n const valuesToRank = getAllValuesToRank(item, options.accessors);\n const rankingInfo = {\n rankedValue: item,\n rank: rankings.NO_MATCH,\n accessorIndex: -1,\n accessorThreshold: options.threshold,\n passed: false\n };\n for (let i = 0; i < valuesToRank.length; i++) {\n const rankValue = valuesToRank[i];\n let newRank = getMatchRanking(rankValue.itemValue, value, options);\n const {\n minRanking,\n maxRanking,\n threshold = options.threshold\n } = rankValue.attributes;\n if (newRank < minRanking && newRank >= rankings.MATCHES) {\n newRank = minRanking;\n } else if (newRank > maxRanking) {\n newRank = maxRanking;\n }\n newRank = Math.min(newRank, maxRanking);\n if (newRank >= threshold && newRank > rankingInfo.rank) {\n rankingInfo.rank = newRank;\n rankingInfo.passed = true;\n rankingInfo.accessorIndex = i;\n rankingInfo.accessorThreshold = threshold;\n rankingInfo.rankedValue = rankValue.itemValue;\n }\n }\n return rankingInfo;\n}\n\n/**\n * Gives a rankings score based on how well the two strings match.\n * @param {String} testString - the string to test against\n * @param {String} stringToRank - the string to rank\n * @param {Object} options - options for the match (like keepDiacritics for comparison)\n * @returns {Number} the ranking for how well stringToRank matches testString\n */\nfunction getMatchRanking(testString, stringToRank, options) {\n testString = prepareValueForComparison(testString, options);\n stringToRank = prepareValueForComparison(stringToRank, options);\n\n // too long\n if (stringToRank.length > testString.length) {\n return rankings.NO_MATCH;\n }\n\n // case sensitive equals\n if (testString === stringToRank) {\n return rankings.CASE_SENSITIVE_EQUAL;\n }\n\n // Lower casing before further comparison\n testString = testString.toLowerCase();\n stringToRank = stringToRank.toLowerCase();\n\n // case insensitive equals\n if (testString === stringToRank) {\n return rankings.EQUAL;\n }\n\n // starts with\n if (testString.startsWith(stringToRank)) {\n return rankings.STARTS_WITH;\n }\n\n // word starts with\n if (testString.includes(` ${stringToRank}`)) {\n return rankings.WORD_STARTS_WITH;\n }\n\n // contains\n if (testString.includes(stringToRank)) {\n return rankings.CONTAINS;\n } else if (stringToRank.length === 1) {\n // If the only character in the given stringToRank\n // isn't even contained in the testString, then\n // it's definitely not a match.\n return rankings.NO_MATCH;\n }\n\n // acronym\n if (getAcronym(testString).includes(stringToRank)) {\n return rankings.ACRONYM;\n }\n\n // will return a number between rankings.MATCHES and\n // rankings.MATCHES + 1 depending on how close of a match it is.\n return getClosenessRanking(testString, stringToRank);\n}\n\n/**\n * Generates an acronym for a string.\n *\n * @param {String} string the string for which to produce the acronym\n * @returns {String} the acronym\n */\nfunction getAcronym(string) {\n let acronym = '';\n const wordsInString = string.split(' ');\n wordsInString.forEach(wordInString => {\n const splitByHyphenWords = wordInString.split('-');\n splitByHyphenWords.forEach(splitByHyphenWord => {\n acronym += splitByHyphenWord.substr(0, 1);\n });\n });\n return acronym;\n}\n\n/**\n * Returns a score based on how spread apart the\n * characters from the stringToRank are within the testString.\n * A number close to rankings.MATCHES represents a loose match. A number close\n * to rankings.MATCHES + 1 represents a tighter match.\n * @param {String} testString - the string to test against\n * @param {String} stringToRank - the string to rank\n * @returns {Number} the number between rankings.MATCHES and\n * rankings.MATCHES + 1 for how well stringToRank matches testString\n */\nfunction getClosenessRanking(testString, stringToRank) {\n let matchingInOrderCharCount = 0;\n let charNumber = 0;\n function findMatchingCharacter(matchChar, string, index) {\n for (let j = index, J = string.length; j < J; j++) {\n const stringChar = string[j];\n if (stringChar === matchChar) {\n matchingInOrderCharCount += 1;\n return j + 1;\n }\n }\n return -1;\n }\n function getRanking(spread) {\n const spreadPercentage = 1 / spread;\n const inOrderPercentage = matchingInOrderCharCount / stringToRank.length;\n const ranking = rankings.MATCHES + inOrderPercentage * spreadPercentage;\n return ranking;\n }\n const firstIndex = findMatchingCharacter(stringToRank[0], testString, 0);\n if (firstIndex < 0) {\n return rankings.NO_MATCH;\n }\n charNumber = firstIndex;\n for (let i = 1, I = stringToRank.length; i < I; i++) {\n const matchChar = stringToRank[i];\n charNumber = findMatchingCharacter(matchChar, testString, charNumber);\n const found = charNumber > -1;\n if (!found) {\n return rankings.NO_MATCH;\n }\n }\n const spread = charNumber - firstIndex;\n return getRanking(spread);\n}\n\n/**\n * Sorts items that have a rank, index, and accessorIndex\n * @param {Object} a - the first item to sort\n * @param {Object} b - the second item to sort\n * @return {Number} -1 if a should come first, 1 if b should come first, 0 if equal\n */\nfunction compareItems(a, b) {\n return a.rank === b.rank ? 0 : a.rank > b.rank ? -1 : 1;\n}\n\n/**\n * Prepares value for comparison by stringifying it, removing diacritics (if specified)\n * @param {String} value - the value to clean\n * @param {Object} options - {keepDiacritics: whether to remove diacritics}\n * @return {String} the prepared value\n */\nfunction prepareValueForComparison(value, _ref) {\n let {\n keepDiacritics\n } = _ref;\n // value might not actually be a string at this point (we don't get to choose)\n // so part of preparing the value for comparison is ensure that it is a string\n value = `${value}`; // toString\n if (!keepDiacritics) {\n value = removeAccents(value);\n }\n return value;\n}\n\n/**\n * Gets value for key in item at arbitrarily nested keypath\n * @param {Object} item - the item\n * @param {Object|Function} key - the potentially nested keypath or property callback\n * @return {Array} - an array containing the value(s) at the nested keypath\n */\nfunction getItemValues(item, accessor) {\n let accessorFn = accessor;\n if (typeof accessor === 'object') {\n accessorFn = accessor.accessor;\n }\n const value = accessorFn(item);\n\n // because `value` can also be undefined\n if (value == null) {\n return [];\n }\n if (Array.isArray(value)) {\n return value;\n }\n return [String(value)];\n}\n\n/**\n * Gets all the values for the given keys in the given item and returns an array of those values\n * @param item - the item from which the values will be retrieved\n * @param keys - the keys to use to retrieve the values\n * @return objects with {itemValue, attributes}\n */\nfunction getAllValuesToRank(item, accessors) {\n const allValues = [];\n for (let j = 0, J = accessors.length; j < J; j++) {\n const accessor = accessors[j];\n const attributes = getAccessorAttributes(accessor);\n const itemValues = getItemValues(item, accessor);\n for (let i = 0, I = itemValues.length; i < I; i++) {\n allValues.push({\n itemValue: itemValues[i],\n attributes\n });\n }\n }\n return allValues;\n}\nconst defaultKeyAttributes = {\n maxRanking: Infinity,\n minRanking: -Infinity\n};\n/**\n * Gets all the attributes for the given accessor\n * @param accessor - the accessor from which the attributes will be retrieved\n * @return object containing the accessor's attributes\n */\nfunction getAccessorAttributes(accessor) {\n if (typeof accessor === 'function') {\n return defaultKeyAttributes;\n }\n return {\n ...defaultKeyAttributes,\n ...accessor\n };\n}\n\nexport { compareItems, rankItem, rankings };\n//# sourceMappingURL=index.mjs.map\n","let e={data:\"\"},t=t=>{if(\"object\"==typeof window){let e=(t?t.querySelector(\"#_goober\"):window._goober)||Object.assign(document.createElement(\"style\"),{innerHTML:\" \",id:\"_goober\"});return e.nonce=window.__nonce__,e.parentNode||(t||document.head).appendChild(e),e.firstChild}return t||e},r=e=>{let r=t(e),l=r.data;return r.data=\"\",l},l=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\\s*)/g,a=/\\/\\*[^]*?\\*\\/| +/g,n=/\\n+/g,o=(e,t)=>{let r=\"\",l=\"\",a=\"\";for(let n in e){let c=e[n];\"@\"==n[0]?\"i\"==n[1]?r=n+\" \"+c+\";\":l+=\"f\"==n[1]?o(c,n):n+\"{\"+o(c,\"k\"==n[1]?\"\":t)+\"}\":\"object\"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/([^,]*:\\S+\\([^)]*\\))|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,\"-$&\").toLowerCase(),a+=o.p?o.p(n,c):n+\":\"+c+\";\")}return r+(t&&a?t+\"{\"+a+\"}\":a)+l},c={},s=e=>{if(\"object\"==typeof e){let t=\"\";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return\"go\"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,\"\"));)t[4]?o.shift():t[3]?(r=t[3].replace(n,\" \").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n,\" \").trim();return o[0]})(e);c[d]=o(p?{[\"@keyframes \"+d]:t}:t,r?\"\":\".\"+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):!1===e?\"\":e}return e+l+(null==n?\"\":n)},\"\");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function w(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/.test(s),c.className=u.apply(r,l)+(s?\" \"+s:\"\"),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}export{u as css,r as extractCss,b as glob,h as keyframes,m as setup,w as styled};\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { batch, createSignal, untrack, $TRACK, createComputed, createMemo, useTransition, } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nconst noop = () => {\n /* noop */\n};\nconst noopTransition = (el, done) => done();\n/**\n * Create an element transition interface for switching between single elements.\n * It can be used to implement own transition effect, or a custom `<Transition>`-like component.\n *\n * It will observe {@link source} and return a signal with array of elements to be rendered (current one and exiting ones).\n *\n * @param source a signal with the current element. Any nullish value will mean there is no element.\n * Any object can used as the source, but most likely you will want to use a `HTMLElement` or `SVGElement`.\n * @param options transition options {@link SwitchTransitionOptions}\n * @returns a signal with an array of the current element and exiting previous elements.\n *\n * @see https://github.com/solidjs-community/solid-primitives/tree/main/packages/transition-group#createSwitchTransition\n *\n * @example\n * const [el, setEl] = createSignal<HTMLDivElement>();\n *\n * const rendered = createSwitchTransition(el, {\n * onEnter(el, done) {\n * // the enter callback is called before the element is inserted into the DOM\n * // so run the animation in the next animation frame / microtask\n * queueMicrotask(() => { ... })\n * },\n * onExit(el, done) {\n * // the exitting element is kept in the DOM until the done() callback is called\n * },\n * })\n *\n * // change the source to trigger the transition\n * setEl(refToHtmlElement);\n */\nexport function createSwitchTransition(source, options) {\n const initSource = untrack(source);\n const initReturned = initSource ? [initSource] : [];\n if (isServer) {\n return () => initReturned;\n }\n const { onEnter = noopTransition, onExit = noopTransition } = options;\n const [returned, setReturned] = createSignal(options.appear ? [] : initReturned);\n const [isTransitionPending] = useTransition();\n let next;\n let isExiting = false;\n function exitTransition(el, after) {\n if (!el)\n return after && after();\n isExiting = true;\n onExit(el, () => {\n batch(() => {\n isExiting = false;\n setReturned(p => p.filter(e => e !== el));\n after && after();\n });\n });\n }\n function enterTransition(after) {\n const el = next;\n if (!el)\n return after && after();\n next = undefined;\n setReturned(p => [el, ...p]);\n onEnter(el, after ?? noop);\n }\n const triggerTransitions = options.mode === \"out-in\"\n ? // exit -> enter\n // exit -> enter\n prev => isExiting || exitTransition(prev, enterTransition)\n : options.mode === \"in-out\"\n ? // enter -> exit\n // enter -> exit\n prev => enterTransition(() => exitTransition(prev))\n : // exit & enter\n // exit & enter\n prev => {\n exitTransition(prev);\n enterTransition();\n };\n createComputed((prev) => {\n const el = source();\n if (untrack(isTransitionPending)) {\n // wait for pending transition to end before animating\n isTransitionPending();\n return prev;\n }\n if (el !== prev) {\n next = el;\n batch(() => untrack(() => triggerTransitions(prev)));\n }\n return el;\n }, options.appear ? undefined : initSource);\n return returned;\n}\n/**\n * Create an element list transition interface for changes to the list of elements.\n * It can be used to implement own transition effect, or a custom `<TransitionGroup>`-like component.\n *\n * It will observe {@link source} and return a signal with array of elements to be rendered (current ones and exiting ones).\n *\n * @param source a signal with the current list of elements.\n * Any object can used as the element, but most likely you will want to use a `HTMLElement` or `SVGElement`.\n * @param options transition options {@link ListTransitionOptions}\n *\n * @see https://github.com/solidjs-community/solid-primitives/tree/main/packages/transition-group#createListTransition\n *\n * @example\n * const [els, setEls] = createSignal<HTMLElement[]>([]);\n *\n * const rendered = createListTransition(els, {\n * onChange({ list, added, removed, unchanged, finishRemoved }) {\n * // the callback is called before the added elements are inserted into the DOM\n * // so run the animation in the next animation frame / microtask\n * queueMicrotask(() => { ... })\n *\n * // the removed elements are kept in the DOM until the finishRemoved() callback is called\n * finishRemoved(removed);\n * }\n * })\n *\n * // change the source to trigger the transition\n * setEls([...refsToHTMLElements]);\n */\nexport function createListTransition(source, options) {\n const initSource = untrack(source);\n if (isServer) {\n const copy = initSource.slice();\n return () => copy;\n }\n const { onChange } = options;\n // if appear is enabled, the initial transition won't have any previous elements.\n // otherwise the elements will match and transition skipped, or transitioned if the source is different from the initial value\n let prevSet = new Set(options.appear ? undefined : initSource);\n const exiting = new WeakSet();\n const [toRemove, setToRemove] = createSignal([], { equals: false });\n const [isTransitionPending] = useTransition();\n const finishRemoved = options.exitMethod === \"remove\"\n ? noop\n : els => {\n setToRemove(p => (p.push.apply(p, els), p));\n for (const el of els)\n exiting.delete(el);\n };\n const handleRemoved = options.exitMethod === \"remove\"\n ? noop\n : options.exitMethod === \"keep-index\"\n ? (els, el, i) => els.splice(i, 0, el)\n : (els, el) => els.push(el);\n return createMemo(prev => {\n const elsToRemove = toRemove();\n const sourceList = source();\n sourceList[$TRACK]; // top level store tracking\n if (untrack(isTransitionPending)) {\n // wait for pending transition to end before animating\n isTransitionPending();\n return prev;\n }\n if (elsToRemove.length) {\n const next = prev.filter(e => !elsToRemove.includes(e));\n elsToRemove.length = 0;\n onChange({ list: next, added: [], removed: [], unchanged: next, finishRemoved });\n return next;\n }\n return untrack(() => {\n const nextSet = new Set(sourceList);\n const next = sourceList.slice();\n const added = [];\n const removed = [];\n const unchanged = [];\n for (const el of sourceList) {\n (prevSet.has(el) ? unchanged : added).push(el);\n }\n let nothingChanged = !added.length;\n for (let i = 0; i < prev.length; i++) {\n const el = prev[i];\n if (!nextSet.has(el)) {\n if (!exiting.has(el)) {\n removed.push(el);\n exiting.add(el);\n }\n handleRemoved(next, el, i);\n }\n if (nothingChanged && el !== next[i])\n nothingChanged = false;\n }\n // skip if nothing changed\n if (!removed.length && nothingChanged)\n return prev;\n onChange({ list: next, added, removed, unchanged, finishRemoved });\n prevSet = nextSet;\n return next;\n });\n }, options.appear ? [] : initSource.slice());\n}\n","import { chain, arrayEquals } from \"@solid-primitives/utils\";\nimport { children, createComputed, createMemo, onCleanup, untrack, } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\n/**\n * Utility for chaining multiple `ref` assignments with `props.ref` forwarding.\n * @param refs list of ref setters. Can be a `props.ref` prop for ref forwarding or a setter to a local variable (`el => ref = el`).\n * @example\n * ```tsx\n * interface ButtonProps {\n * ref?: Ref<HTMLButtonElement>\n * }\n * function Button (props: ButtonProps) {\n * let ref: HTMLButtonElement | undefined\n * onMount(() => {\n * // use the local ref\n * })\n * return <button ref={mergeRefs(props.ref, el => ref = el)} />\n * }\n *\n * // in consumer's component:\n * let ref: HTMLButtonElement | undefined\n * <Button ref={ref} />\n * ```\n */\nexport function mergeRefs(...refs) {\n return chain(refs);\n}\n/**\n * Default predicate used in `resolveElements()` and `resolveFirst()` to filter Elements.\n *\n * On the client it uses `instanceof Element` check, on the server it checks for the object with `t` property. (generated by compiling JSX)\n */\nexport const defaultElementPredicate = isServer\n ? (item) => item != null && typeof item === \"object\" && \"t\" in item\n : (item) => item instanceof Element;\n/**\n * Utility for resolving recursively nested JSX children to a single element or an array of elements using a predicate.\n *\n * It does **not** create a computation - should be wrapped in one to repeat the resolution on changes.\n *\n * @param value JSX children\n * @param predicate predicate to filter elements\n * @returns single element or an array of elements or `null` if no elements were found\n */\nexport function getResolvedElements(value, predicate) {\n if (predicate(value))\n return value;\n if (typeof value === \"function\" && !value.length)\n return getResolvedElements(value(), predicate);\n if (Array.isArray(value)) {\n const results = [];\n for (const item of value) {\n const result = getResolvedElements(item, predicate);\n if (result)\n Array.isArray(result) ? results.push.apply(results, result) : results.push(result);\n }\n return results.length ? results : null;\n }\n return null;\n}\nexport function resolveElements(fn, predicate = defaultElementPredicate, serverPredicate = defaultElementPredicate) {\n const children = createMemo(fn);\n const memo = createMemo(() => getResolvedElements(children(), isServer ? serverPredicate : predicate));\n memo.toArray = () => {\n const value = memo();\n return Array.isArray(value) ? value : value ? [value] : [];\n };\n return memo;\n}\n/**\n * Utility for resolving recursively nested JSX children in search of the first element that matches a predicate.\n *\n * It does **not** create a computation - should be wrapped in one to repeat the resolution on changes.\n *\n * @param value JSX children\n * @param predicate predicate to filter elements\n * @returns single found element or `null` if no elements were found\n */\nexport function getFirstChild(value, predicate) {\n if (predicate(value))\n return value;\n if (typeof value === \"function\" && !value.length)\n return getFirstChild(value(), predicate);\n if (Array.isArray(value)) {\n for (const item of value) {\n const result = getFirstChild(item, predicate);\n if (result)\n return result;\n }\n }\n return null;\n}\nexport function resolveFirst(fn, predicate = defaultElementPredicate, serverPredicate = defaultElementPredicate) {\n const children = createMemo(fn);\n return createMemo(() => getFirstChild(children(), isServer ? serverPredicate : predicate));\n}\n/**\n * Get up-to-date references of the multiple children elements.\n * @param ref Getter of current array of elements\n * @see https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#Refs\n * @example\n * ```tsx\n * const [refs, setRefs] = createSignal<Element[]>([]);\n * <Refs ref={setRefs}>\n * {props.children}\n * </Refs>\n * ```\n */\nexport function Refs(props) {\n if (isServer) {\n return props.children;\n }\n const cb = props.ref, resolved = children(() => props.children);\n let prev = [];\n createComputed(() => {\n const els = resolved.toArray().filter(defaultElementPredicate);\n if (!arrayEquals(prev, els))\n untrack(() => cb(els));\n prev = els;\n }, []);\n onCleanup(() => prev.length && cb([]));\n return resolved;\n}\n/**\n * Get up-to-date reference to a single child element.\n * @param ref Getter of current element *(or `undefined` if not mounted)*\n * @see https://github.com/solidjs-community/solid-primitives/tree/main/packages/refs#Ref\n * @example\n * ```tsx\n * const [ref, setRef] = createSignal<Element | undefined>();\n * <Ref ref={setRef}>\n * {props.children}\n * </Ref>\n * ```\n */\nexport function Ref(props) {\n if (isServer) {\n return props.children;\n }\n const cb = props.ref, resolved = children(() => props.children);\n let prev;\n createComputed(() => {\n const el = resolved.toArray().find(defaultElementPredicate);\n if (el !== prev)\n untrack(() => cb(el));\n prev = el;\n });\n onCleanup(() => prev && cb(undefined));\n return resolved;\n}\n","// src/common.ts\nimport { createMemo } from \"solid-js\";\nfunction createClassnames(props) {\n return createMemo(() => {\n const name = props.name || \"s\";\n return {\n enterActive: (props.enterActiveClass || name + \"-enter-active\").split(\" \"),\n enter: (props.enterClass || name + \"-enter\").split(\" \"),\n enterTo: (props.enterToClass || name + \"-enter-to\").split(\" \"),\n exitActive: (props.exitActiveClass || name + \"-exit-active\").split(\" \"),\n exit: (props.exitClass || name + \"-exit\").split(\" \"),\n exitTo: (props.exitToClass || name + \"-exit-to\").split(\" \"),\n move: (props.moveClass || name + \"-move\").split(\" \")\n };\n });\n}\nfunction nextFrame(fn) {\n requestAnimationFrame(() => requestAnimationFrame(fn));\n}\nfunction enterTransition(classes, events, el, done) {\n const { onBeforeEnter, onEnter, onAfterEnter } = events;\n onBeforeEnter?.(el);\n el.classList.add(...classes.enter);\n el.classList.add(...classes.enterActive);\n queueMicrotask(() => {\n if (!el.parentNode)\n return done?.();\n onEnter?.(el, () => endTransition());\n });\n nextFrame(() => {\n el.classList.remove(...classes.enter);\n el.classList.add(...classes.enterTo);\n if (!onEnter || onEnter.length < 2) {\n el.addEventListener(\"transitionend\", endTransition);\n el.addEventListener(\"animationend\", endTransition);\n }\n });\n function endTransition(e) {\n if (!e || e.target === el) {\n done?.();\n el.removeEventListener(\"transitionend\", endTransition);\n el.removeEventListener(\"animationend\", endTransition);\n el.classList.remove(...classes.enterActive);\n el.classList.remove(...classes.enterTo);\n onAfterEnter?.(el);\n }\n }\n}\nfunction exitTransition(classes, events, el, done) {\n const { onBeforeExit, onExit, onAfterExit } = events;\n if (!el.parentNode)\n return done?.();\n onBeforeExit?.(el);\n el.classList.add(...classes.exit);\n el.classList.add(...classes.exitActive);\n onExit?.(el, () => endTransition());\n nextFrame(() => {\n el.classList.remove(...classes.exit);\n el.classList.add(...classes.exitTo);\n if (!onExit || onExit.length < 2) {\n el.addEventListener(\"transitionend\", endTransition);\n el.addEventListener(\"animationend\", endTransition);\n }\n });\n function endTransition(e) {\n if (!e || e.target === el) {\n done?.();\n el.removeEventListener(\"transitionend\", endTransition);\n el.removeEventListener(\"animationend\", endTransition);\n el.classList.remove(...classes.exitActive);\n el.classList.remove(...classes.exitTo);\n onAfterExit?.(el);\n }\n }\n}\n\n// src/Transition.ts\nimport { createSwitchTransition } from \"@solid-primitives/transition-group\";\nimport { resolveFirst } from \"@solid-primitives/refs\";\nvar TRANSITION_MODE_MAP = {\n inout: \"in-out\",\n outin: \"out-in\"\n};\nvar Transition = (props) => {\n const classnames = createClassnames(props);\n return createSwitchTransition(\n resolveFirst(() => props.children),\n {\n mode: TRANSITION_MODE_MAP[props.mode],\n appear: props.appear,\n onEnter(el, done) {\n enterTransition(classnames(), props, el, done);\n },\n onExit(el, done) {\n exitTransition(classnames(), props, el, done);\n }\n }\n );\n};\n\n// src/TransitionGroup.ts\nimport { createListTransition } from \"@solid-primitives/transition-group\";\nimport { resolveElements } from \"@solid-primitives/refs\";\nvar TransitionGroup = (props) => {\n const classnames = createClassnames(props);\n return createListTransition(resolveElements(() => props.children).toArray, {\n appear: props.appear,\n exitMethod: \"keep-index\",\n onChange({ added, removed, finishRemoved, list }) {\n const classes = classnames();\n for (const el of added) {\n enterTransition(classes, props, el);\n }\n const toMove = [];\n for (const el of list) {\n if (el.isConnected && (el instanceof HTMLElement || el instanceof SVGElement)) {\n toMove.push({ el, rect: el.getBoundingClientRect() });\n }\n }\n queueMicrotask(() => {\n const moved = [];\n for (const { el, rect } of toMove) {\n if (el.isConnected) {\n const newRect = el.getBoundingClientRect(), dX = rect.left - newRect.left, dY = rect.top - newRect.top;\n if (dX || dY) {\n el.style.transform = `translate(${dX}px, ${dY}px)`;\n el.style.transitionDuration = \"0s\";\n moved.push(el);\n }\n }\n }\n document.body.offsetHeight;\n for (const el of moved) {\n let endTransition2 = function(e) {\n if (e.target === el || /transform$/.test(e.propertyName)) {\n el.removeEventListener(\"transitionend\", endTransition2);\n el.classList.remove(...classes.move);\n }\n };\n var endTransition = endTransition2;\n el.classList.add(...classes.move);\n el.style.transform = el.style.transitionDuration = \"\";\n el.addEventListener(\"transitionend\", endTransition2);\n }\n });\n for (const el of removed) {\n exitTransition(classes, props, el, () => finishRemoved([el]));\n }\n }\n });\n};\nexport {\n Transition,\n TransitionGroup\n};\n","import { createMemo, createRoot, createSignal, on, onCleanup, untrack, $TRACK, mapArray, } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nconst FALLBACK = Symbol(\"fallback\");\nfunction dispose(list) {\n for (const o of list)\n o.dispose();\n}\n/**\n * Reactively maps an array by specified key with a callback function - underlying helper for the `<Key>` control flow.\n * @param list input list of values to map\n * @param keyFn key getter, items will be identified by it's value. changing the value is changing the item.\n * @param mapFn reactive function used to create mapped output item. Similar to `Array.prototype.map` but both item and index are signals, that could change over time.\n * @param options a fallback for when the input list is empty or missing\n * @returns mapped input array signal\n * @see https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#keyArray\n */\nexport function keyArray(items, keyFn, mapFn, options = {}) {\n // SERVER NOOP\n if (isServer) {\n const itemsRef = items();\n let s = [];\n if (itemsRef && itemsRef.length) {\n for (let i = 0, len = itemsRef.length; i < len; i++)\n s.push(mapFn(() => itemsRef[i], () => i));\n }\n else if (options.fallback)\n s = [options.fallback()];\n return () => s;\n }\n const prev = new Map();\n onCleanup(() => dispose(prev.values()));\n return () => {\n const list = items() || [];\n list[$TRACK]; // top level store tracking\n return untrack(() => {\n // fast path for empty arrays\n if (!list.length) {\n dispose(prev.values());\n prev.clear();\n if (!options.fallback)\n return [];\n const fb = createRoot(dispose => {\n prev.set(FALLBACK, { dispose });\n return options.fallback();\n });\n return [fb];\n }\n const result = new Array(list.length);\n // fast path for new create or after fallback\n const fb = prev.get(FALLBACK);\n if (!prev.size || fb) {\n fb?.dispose();\n prev.delete(FALLBACK);\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n const key = keyFn(item, i);\n addNewItem(result, item, i, key);\n }\n return result;\n }\n const prevKeys = new Set(prev.keys());\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n const key = keyFn(item, i);\n prevKeys.delete(key);\n const lookup = prev.get(key);\n if (lookup) {\n result[i] = lookup.mapped;\n lookup.setIndex?.(i);\n lookup.setItem(() => item);\n }\n else\n addNewItem(result, item, i, key);\n }\n for (const key of prevKeys) {\n prev.get(key)?.dispose();\n prev.delete(key);\n }\n return result;\n });\n };\n function addNewItem(list, item, i, key) {\n createRoot(dispose => {\n const [getItem, setItem] = createSignal(item);\n const save = { setItem, dispose };\n if (mapFn.length > 1) {\n const [index, setIndex] = createSignal(i);\n save.setIndex = setIndex;\n save.mapped = mapFn(getItem, index);\n }\n else\n save.mapped = mapFn(getItem);\n prev.set(key, save);\n list[i] = save.mapped;\n });\n }\n}\n/**\n * creates a list of elements from the input `each` list\n *\n * it receives a map function as its child that receives a **list item signal** and **index signal** and returns a JSX-Element; if the list is empty, an optional fallback is returned:\n * ```tsx\n * <Key each={items()} by={item => item.id} fallback={<div>No items</div>}>\n * {(item, index) => <div data-index={index()}>{item()}</div>}\n * </Key>\n * ```\n *\n * prop `by` can also be an object key:\n * ```tsx\n * <Key each={items()} by=\"id\">\n * ```\n *\n * @see https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#Key\n */\nexport function Key(props) {\n const { by } = props;\n return createMemo(keyArray(() => props.each, typeof by === \"function\" ? by : (v) => v[by], props.children, \"fallback\" in props ? { fallback: () => props.fallback } : undefined));\n}\n/**\n * creates a list of elements from the entries of provided object\n *\n * @param props\n * @param props.of object to iterate entries of (`Object.entries(object)`)\n * @param props.children\n * a map render function that receives an object key, **value signal** and **index signal** and returns a JSX-Element; if the list is empty, an optional fallback is returned:\n * ```tsx\n * <Entries of={object()} fallback={<div>No items</div>}>\n * {(key, value, index) => <div data-index={index()}>{key}: {value()}</div>}\n * </Entries>\n * ```\n *\n * @see https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#Entries\n */\nexport function Entries(props) {\n // changes to this function may be applicable to similar functions - grep 4A29BECD-767A-4CC0-AEBB-3543D7B444C6\n const mapFn = props.children;\n return createMemo(mapArray(() => props.of && Object.keys(props.of), mapFn.length < 3\n ? key => mapFn(key, () => props.of[key])\n : (key, i) => mapFn(key, () => props.of[key], i), \"fallback\" in props ? { fallback: () => props.fallback } : undefined));\n}\n/**\n * Creates a list of elements from the entries of provided Map\n *\n * @param props\n * @param props.of map to iterate entries of (`myMap.entries()`)\n * @param props.children\n * a map render function that receives a Map key, **value signal** and **index signal** and returns a JSX-Element; if the list is empty, an optional fallback is returned:\n * ```tsx\n * <MapEntries of={map()} fallback={<div>No items</div>}>\n * {(key, value, index) => <div data-index={index()}>{key}: {value()}</div>}\n * </MapEntries>\n * ```\n *\n * @see https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#mapentries\n */\nexport function MapEntries(props) {\n // changes to this function may be applicable to similar functions - grep 4A29BECD-767A-4CC0-AEBB-3543D7B444C6\n const mapFn = props.children;\n return createMemo(mapArray(() => props.of && Array.from(props.of.keys()), mapFn.length < 3\n ? key => mapFn(key, () => props.of.get(key))\n : (key, i) => mapFn(key, () => props.of.get(key), i), \"fallback\" in props ? { fallback: () => props.fallback } : undefined));\n}\n/**\n * Creates a list of elements from the values of provided Set\n *\n * @param props\n * @param props.of set to iterate values of (`mySet.values()`)\n * @param props.children\n * a map render function that receives a Set value and **index signal** and returns a JSX-Element; if the list is empty, an optional fallback is returned:\n * ```tsx\n * <SetValues of={set()} fallback={<div>No items</div>}>\n * {(value, index) => <div data-index={index()}>{value)}</div>}\n * </SetValues>\n * ```\n *\n * @see https://github.com/solidjs-community/solid-primitives/tree/main/packages/keyed#setvalues\n */\nexport function SetValues(props) {\n // changes to this function may be applicable to similar functions - grep 4A29BECD-767A-4CC0-AEBB-3543D7B444C6\n const mapFn = props.children;\n return createMemo(mapArray(() => props.of && Array.from(props.of.values()), mapFn.length < 2 ? value => mapFn(value) : mapFn, \"fallback\" in props ? { fallback: () => props.fallback } : undefined));\n}\nexport function Rerun(props) {\n const key = typeof props.on === \"function\" || Array.isArray(props.on) ? props.on : () => props.on;\n return createMemo(on(key, (a, b) => {\n const child = props.children;\n return typeof child === \"function\" && child.length > 0 ? child(a, b) : child;\n }));\n}\n","import { access, asArray, tryOnCleanup, } from \"@solid-primitives/utils\";\nimport { createEffect, createRenderEffect, createSignal } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nexport function makeEventListener(target, type, handler, options) {\n target.addEventListener(type, handler, options);\n return tryOnCleanup(target.removeEventListener.bind(target, type, handler, options));\n}\nexport function createEventListener(targets, type, handler, options) {\n if (isServer)\n return;\n const attachListeners = () => {\n asArray(access(targets)).forEach(el => {\n if (el)\n asArray(access(type)).forEach(type => makeEventListener(el, type, handler, options));\n });\n };\n // if the target is an accessor the listeners will be added on the first effect (onMount)\n // so that when passed a jsx ref it will be availabe\n if (typeof targets === \"function\")\n createEffect(attachListeners);\n // if the target prop is NOT an accessor, the event listeners can be added right away\n else\n createRenderEffect(attachListeners);\n}\nexport function createEventSignal(target, type, options) {\n if (isServer) {\n return () => undefined;\n }\n const [lastEvent, setLastEvent] = createSignal();\n createEventListener(target, type, setLastEvent, options);\n return lastEvent;\n}\n/**\n * Directive Usage. Creates an event listener, that will be automatically disposed on cleanup.\n *\n * @param props [eventType, handler, options]\n *\n * @example\n * <button use:eventListener={[\"click\", () => {...}]}>Click me!</button>\n */\nexport const eventListener = (target, props) => {\n createEffect(() => {\n const [type, handler, options] = props();\n makeEventListener(target, type, handler, options);\n });\n};\n// // /* TypeCheck */\n// const mouseHandler = (e: MouseEvent) => {};\n// const touchHandler = (e: TouchEvent) => {};\n// const el = document.createElement(\"div\");\n// // dom events\n// createEventListener(window as Window | undefined, \"mousemove\", mouseHandler);\n// createEventListener(document, \"touchstart\", touchHandler);\n// createEventListener(el, \"mousemove\", mouseHandler);\n// createEventListener(() => el, \"touchstart\", touchHandler);\n// const mouseSignal = createEventSignal(window, \"mousemove\");\n// const touchSignal = createEventSignal(() => document, \"touchstart\");\n// // custom events\n// createEventListener<{ test: MouseEvent }>(window, \"test\", mouseHandler);\n// createEventListener<{ test: Event; custom: MouseEvent }, \"custom\">(\n// () => el,\n// \"custom\",\n// mouseHandler\n// );\n// createEventListener<{ test: Event }>(new EventTarget(), \"test\", () => console.log(\"test\"));\n// const testSignal = createEventSignal<{ test: MouseEvent }>(window, \"test\");\n// const customSignal = createEventSignal<{ test: Event; custom: MouseEvent }, \"custom\">(\n// () => document,\n// \"custom\"\n// );\n// // directive\n// eventListener(el, () => [\"mousemove\", mouseHandler, { passive: true }]);\n// eventListener(el, () => [\"custom\", e => {}]);\n","import { makeEventListener } from \"@solid-primitives/event-listener\";\nimport { createHydratableSingletonRoot } from \"@solid-primitives/rootless\";\nimport { createHydratableStaticStore, createStaticStore } from \"@solid-primitives/static-store\";\nimport { access, asArray, handleDiffArray, noop, filterNonNullable, } from \"@solid-primitives/utils\";\nimport { createEffect, onCleanup, sharedConfig } from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\n/**\n * Instantiate a new ResizeObserver that automatically get's disposed on cleanup.\n *\n * @param callback handler called once element size changes\n * @param options ResizeObserver options\n * @returns `observe` and `unobserve` functions\n */\nexport function makeResizeObserver(callback, options) {\n if (isServer) {\n return { observe: noop, unobserve: noop };\n }\n const observer = new ResizeObserver(callback);\n onCleanup(observer.disconnect.bind(observer));\n return {\n observe: ref => observer.observe(ref, options),\n unobserve: observer.unobserve.bind(observer),\n };\n}\n/**\n * Create resize observer instance, listening for changes to size of the reactive {@link targets} array.\n *\n * @param targets Elements to be observed. Can be a reactive signal or store top-level array.\n * @param onResize - Function handler to trigger on element resize\n *\n * @example\n * ```tsx\n * let ref\n * createResizeObserver(() => ref, ({ width, height }, el) => {\n * if (el === ref) console.log(width, height)\n * });\n * <div ref={ref}/>\n * ```\n */\nexport function createResizeObserver(targets, onResize, options) {\n if (isServer)\n return;\n const previousMap = new WeakMap(), { observe, unobserve } = makeResizeObserver(entries => {\n for (const entry of entries) {\n const { contentRect, target } = entry, width = Math.round(contentRect.width), height = Math.round(contentRect.height), previous = previousMap.get(target);\n if (!previous || previous.width !== width || previous.height !== height) {\n onResize(contentRect, target, entry);\n previousMap.set(target, { width, height });\n }\n }\n }, options);\n createEffect((prev) => {\n const refs = filterNonNullable(asArray(access(targets)));\n handleDiffArray(refs, prev, observe, unobserve);\n return refs;\n }, []);\n}\nconst WINDOW_SIZE_FALLBACK = { width: 0, height: 0 };\n/**\n * @returns object with width and height dimensions of window, page and screen.\n */\nexport function getWindowSize() {\n if (isServer)\n return { ...WINDOW_SIZE_FALLBACK };\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n };\n}\n/**\n * Creates a reactive store-like object of current width and height dimensions of window, page and screen.\n * @example\n * const size = createWindowSize();\n * createEffect(() => {\n * console.log(size.width, size.height)\n * })\n */\nexport function createWindowSize() {\n if (isServer) {\n return WINDOW_SIZE_FALLBACK;\n }\n const [size, setSize] = createHydratableStaticStore(WINDOW_SIZE_FALLBACK, getWindowSize);\n makeEventListener(window, \"resize\", () => setSize(getWindowSize()));\n return size;\n}\n/**\n * Returns a reactive store-like object of current width and height dimensions of window, page and screen.\n *\n * This is a [singleton root](https://github.com/solidjs-community/solid-primitives/tree/main/packages/rootless#createSingletonRoot) primitive.\n *\n * @example\n * const size = useWindowSize();\n * createEffect(() => {\n * console.log(size.width, size.height)\n * })\n */\nexport const useWindowSize = \n/*#__PURE__*/ createHydratableSingletonRoot(createWindowSize);\nconst ELEMENT_SIZE_FALLBACK = { width: null, height: null };\n/**\n * @param target html element\n * @returns object with width and height dimensions of provided {@link target} element.\n */\nexport function getElementSize(target) {\n if (isServer || !target) {\n return { ...ELEMENT_SIZE_FALLBACK };\n }\n const { width, height } = target.getBoundingClientRect();\n return { width, height };\n}\nexport function createElementSize(target) {\n if (isServer) {\n return ELEMENT_SIZE_FALLBACK;\n }\n const isFn = typeof target === \"function\";\n const [size, setSize] = createStaticStore(sharedConfig.context || isFn ? ELEMENT_SIZE_FALLBACK : getElementSize(target));\n const ro = new ResizeObserver(([e]) => setSize(getElementSize(e.target)));\n onCleanup(() => ro.disconnect());\n if (isFn) {\n createEffect(() => {\n const el = target();\n if (el) {\n setSize(getElementSize(el));\n ro.observe(el);\n onCleanup(() => ro.unobserve(el));\n }\n });\n }\n else {\n ro.observe(target);\n onCleanup(() => ro.unobserve(target));\n }\n return size;\n}\n","import { mergeProps } from \"solid-js\";\nimport { access, chain, reverseChain } from \"@solid-primitives/utils\";\nimport { propTraps } from \"./propTraps.js\";\nconst extractCSSregex = /((?:--)?(?:\\w+-?)+)\\s*:\\s*([^;]*)/g;\n/**\n * converts inline string styles to object form\n * @example\n * const styles = stringStyleToObject(\"margin: 24px; border: 1px solid #121212\");\n * styles; // { margin: \"24px\", border: \"1px solid #121212\" }\n * */\nexport function stringStyleToObject(style) {\n const object = {};\n let match;\n while ((match = extractCSSregex.exec(style))) {\n object[match[1]] = match[2];\n }\n return object;\n}\nexport function combineStyle(a, b) {\n if (typeof a === \"string\") {\n if (typeof b === \"string\")\n return `${a};${b}`;\n a = stringStyleToObject(a);\n }\n else if (typeof b === \"string\") {\n b = stringStyleToObject(b);\n }\n return { ...a, ...b };\n}\nconst reduce = (sources, key, calc) => {\n let v = undefined;\n for (const props of sources) {\n const propV = access(props)[key];\n if (!v)\n v = propV;\n else if (propV)\n v = calc(v, propV);\n }\n return v;\n};\nexport function combineProps(...args) {\n const restArgs = Array.isArray(args[0]);\n const sources = (restArgs ? args[0] : args);\n if (sources.length === 1)\n return sources[0];\n const chainFn = restArgs && args[1]?.reverseEventHandlers\n ? reverseChain\n : chain;\n // create a map of event listeners to be chained\n const listeners = {};\n for (const props of sources) {\n const propsObj = access(props);\n for (const key in propsObj) {\n // skip non event listeners\n if (key[0] === \"o\" && key[1] === \"n\" && key[2]) {\n const v = propsObj[key];\n const name = key.toLowerCase();\n const callback = typeof v === \"function\"\n ? v\n : // jsx event handlers can be tuples of [callback, arg]\n Array.isArray(v)\n ? v.length === 1\n ? v[0]\n : v[0].bind(void 0, v[1])\n : void 0;\n if (callback)\n listeners[name] ? listeners[name].push(callback) : (listeners[name] = [callback]);\n else\n delete listeners[name];\n }\n }\n }\n const merge = mergeProps(...sources);\n return new Proxy({\n get(key) {\n if (typeof key !== \"string\")\n return Reflect.get(merge, key);\n // Combine style prop\n if (key === \"style\")\n return reduce(sources, \"style\", combineStyle);\n // chain props.ref assignments\n if (key === \"ref\") {\n const callbacks = [];\n for (const props of sources) {\n const cb = access(props)[key];\n if (typeof cb === \"function\")\n callbacks.push(cb);\n }\n return chainFn(callbacks);\n }\n // Chain event listeners\n if (key[0] === \"o\" && key[1] === \"n\" && key[2]) {\n const callbacks = listeners[key.toLowerCase()];\n return callbacks ? chainFn(callbacks) : Reflect.get(merge, key);\n }\n // Merge classes or classNames\n if (key === \"class\" || key === \"className\")\n return reduce(sources, key, (a, b) => `${a} ${b}`);\n // Merge classList objects, keys in the last object overrides all previous ones.\n if (key === \"classList\")\n return reduce(sources, key, (a, b) => ({ ...a, ...b }));\n return Reflect.get(merge, key);\n },\n has(key) {\n return Reflect.has(merge, key);\n },\n keys() {\n return Object.keys(merge);\n },\n }, propTraps);\n}\n// type check\n// const com = combineProps(\n// {\n// onSomething: 123,\n// onWheel: (e: WheelEvent) => 213,\n// something: \"foo\",\n// style: { margin: \"24px\" },\n// once: true,\n// onMount: (fn: VoidFunction) => undefined\n// },\n// {\n// onSomething: [(n: number, s: string) => \"fo\", 123],\n// once: \"ovv\"\n// },\n// {\n// onWheel: false,\n// onMount: (n: number) => void 0\n// }\n// );\n// com.onSomething; // (s: string) => void;\n// com.once; // string;\n// com.onWheel; // false;\n// com.onMount; // ((fn: VoidFunction) => undefined) & ((n: number) => undefined);\n// com.something; // string;\n// com.style; // string | JSX.CSSProperties;\n","import { onCleanup, mergeProps } from 'solid-js';\nexport { createEventListener } from '@solid-primitives/event-listener';\nexport { Key } from '@solid-primitives/keyed';\nexport { ReactiveMap } from '@solid-primitives/map';\nexport { createMediaQuery } from '@solid-primitives/media';\nexport { combineProps } from '@solid-primitives/props';\nexport { mergeRefs } from '@solid-primitives/refs';\nexport { access, accessWith, chain } from '@solid-primitives/utils';\n\n// src/array.ts\nfunction addItemToArray(array, item, index = -1) {\n if (!(index in array)) {\n return [...array, item];\n }\n return [...array.slice(0, index), item, ...array.slice(index)];\n}\nfunction removeItemFromArray(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\n\n// src/assertion.ts\nfunction isNumber(value) {\n return typeof value === \"number\";\n}\nfunction isArray(value) {\n return Array.isArray(value);\n}\nfunction isString(value) {\n return Object.prototype.toString.call(value) === \"[object String]\";\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\n// src/create-generate-id.ts\nfunction createGenerateId(baseId) {\n return (suffix) => `${baseId()}-${suffix}`;\n}\nfunction createGlobalListeners() {\n const globalListeners = /* @__PURE__ */ new Map();\n const addGlobalListener = (eventTarget, type, listener, options) => {\n const fn = options?.once ? (...args) => {\n globalListeners.delete(listener);\n listener(...args);\n } : listener;\n globalListeners.set(listener, { type, eventTarget, fn, options });\n eventTarget.addEventListener(type, listener, options);\n };\n const removeGlobalListener = (eventTarget, type, listener, options) => {\n const fn = globalListeners.get(listener)?.fn || listener;\n eventTarget.removeEventListener(type, fn, options);\n globalListeners.delete(listener);\n };\n const removeAllGlobalListeners = () => {\n globalListeners.forEach((value, key) => {\n removeGlobalListener(value.eventTarget, value.type, key, value.options);\n });\n };\n onCleanup(() => {\n removeAllGlobalListeners();\n });\n return { addGlobalListener, removeGlobalListener, removeAllGlobalListeners };\n}\n\n// src/dom.ts\nfunction contains(parent, child) {\n if (!parent) {\n return false;\n }\n return parent === child || parent.contains(child);\n}\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getDocument(node);\n if (!activeElement?.nodeName) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(\n activeElement.contentDocument.body,\n activeDescendant\n );\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\nfunction getWindow(node) {\n return getDocument(node).defaultView || window;\n}\nfunction getDocument(node) {\n return node ? node.ownerDocument || node : document;\n}\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\n\n// src/enums.ts\nvar EventKey = /* @__PURE__ */ ((EventKey2) => {\n EventKey2[\"Escape\"] = \"Escape\";\n EventKey2[\"Enter\"] = \"Enter\";\n EventKey2[\"Tab\"] = \"Tab\";\n EventKey2[\"Space\"] = \" \";\n EventKey2[\"ArrowDown\"] = \"ArrowDown\";\n EventKey2[\"ArrowLeft\"] = \"ArrowLeft\";\n EventKey2[\"ArrowRight\"] = \"ArrowRight\";\n EventKey2[\"ArrowUp\"] = \"ArrowUp\";\n EventKey2[\"End\"] = \"End\";\n EventKey2[\"Home\"] = \"Home\";\n EventKey2[\"PageDown\"] = \"PageDown\";\n EventKey2[\"PageUp\"] = \"PageUp\";\n return EventKey2;\n})(EventKey || {});\n\n// src/platform.ts\nfunction testUserAgent(re) {\n if (typeof window === \"undefined\" || window.navigator == null) {\n return false;\n }\n return (\n // @ts-ignore\n window.navigator.userAgentData?.brands.some(\n (brand) => re.test(brand.brand)\n ) || re.test(window.navigator.userAgent)\n );\n}\nfunction testPlatform(re) {\n return typeof window !== \"undefined\" && window.navigator != null ? re.test(\n // @ts-ignore\n window.navigator.userAgentData?.platform || window.navigator.platform\n ) : false;\n}\nfunction isMac() {\n return testPlatform(/^Mac/i);\n}\nfunction isIPhone() {\n return testPlatform(/^iPhone/i);\n}\nfunction isIPad() {\n return testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n isMac() && navigator.maxTouchPoints > 1;\n}\nfunction isIOS() {\n return isIPhone() || isIPad();\n}\nfunction isAppleDevice() {\n return isMac() || isIOS();\n}\nfunction isWebKit() {\n return testUserAgent(/AppleWebKit/i) && !isChrome();\n}\nfunction isChrome() {\n return testUserAgent(/Chrome/i);\n}\nfunction isAndroid() {\n return testUserAgent(/Android/i);\n}\n\n// src/events.ts\nfunction callHandler(event, handler) {\n if (handler) {\n if (isFunction(handler)) {\n handler(event);\n } else {\n handler[0](handler[1], event);\n }\n }\n return event?.defaultPrevented;\n}\nfunction composeEventHandlers(handlers) {\n return (event) => {\n for (const handler of handlers) {\n callHandler(event, handler);\n }\n };\n}\nfunction isCtrlKey(e) {\n if (isMac()) {\n return e.metaKey && !e.ctrlKey;\n }\n return e.ctrlKey && !e.metaKey;\n}\n\n// src/focus-without-scrolling.ts\nfunction focusWithoutScrolling(element) {\n if (!element) {\n return;\n }\n if (supportsPreventScroll()) {\n element.focus({ preventScroll: true });\n } else {\n const scrollableElements = getScrollableElements(element);\n element.focus();\n restoreScrollPosition(scrollableElements);\n }\n}\nvar supportsPreventScrollCached = null;\nfunction supportsPreventScroll() {\n if (supportsPreventScrollCached == null) {\n supportsPreventScrollCached = false;\n try {\n const focusElem = document.createElement(\"div\");\n focusElem.focus({\n get preventScroll() {\n supportsPreventScrollCached = true;\n return true;\n }\n });\n } catch (e) {\n }\n }\n return supportsPreventScrollCached;\n}\nfunction getScrollableElements(element) {\n let parent = element.parentNode;\n const scrollableElements = [];\n const rootScrollingElement = document.scrollingElement || document.documentElement;\n while (parent instanceof HTMLElement && parent !== rootScrollingElement) {\n if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) {\n scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n }\n parent = parent.parentNode;\n }\n if (rootScrollingElement instanceof HTMLElement) {\n scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n }\n return scrollableElements;\n}\nfunction restoreScrollPosition(scrollableElements) {\n for (const { element, scrollTop, scrollLeft } of scrollableElements) {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n\n// src/tabbable.ts\nvar focusableElements = [\n \"input:not([type='hidden']):not([disabled])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"button:not([disabled])\",\n \"a[href]\",\n \"area[href]\",\n \"[tabindex]\",\n \"iframe\",\n \"object\",\n \"embed\",\n \"audio[controls]\",\n \"video[controls]\",\n \"[contenteditable]:not([contenteditable='false'])\"\n];\nvar tabbableElements = [\n ...focusableElements,\n '[tabindex]:not([tabindex=\"-1\"]):not([disabled])'\n];\nvar FOCUSABLE_ELEMENT_SELECTOR = `${focusableElements.join(\n \":not([hidden]),\"\n)},[tabindex]:not([disabled]):not([hidden])`;\nvar TABBABLE_ELEMENT_SELECTOR = tabbableElements.join(\n ':not([hidden]):not([tabindex=\"-1\"]),'\n);\nfunction getAllTabbableIn(container, includeContainer) {\n const elements = Array.from(\n container.querySelectorAll(FOCUSABLE_ELEMENT_SELECTOR)\n );\n const tabbableElements2 = elements.filter(isTabbable);\n if (includeContainer && isTabbable(container)) {\n tabbableElements2.unshift(container);\n }\n tabbableElements2.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n const allFrameTabbable = getAllTabbableIn(frameBody, false);\n tabbableElements2.splice(i, 1, ...allFrameTabbable);\n }\n });\n return tabbableElements2;\n}\nfunction isTabbable(element) {\n return isFocusable(element) && !hasNegativeTabIndex(element);\n}\nfunction isFocusable(element) {\n return element.matches(FOCUSABLE_ELEMENT_SELECTOR) && isElementVisible(element);\n}\nfunction hasNegativeTabIndex(element) {\n const tabIndex = Number.parseInt(element.getAttribute(\"tabindex\") || \"0\", 10);\n return tabIndex < 0;\n}\nfunction isElementVisible(element, childElement) {\n return element.nodeName !== \"#comment\" && isStyleVisible(element) && isAttributeVisible(element, childElement) && (!element.parentElement || isElementVisible(element.parentElement, element));\n}\nfunction isStyleVisible(element) {\n if (!(element instanceof HTMLElement) && !(element instanceof SVGElement)) {\n return false;\n }\n const { display, visibility } = element.style;\n let isVisible = display !== \"none\" && visibility !== \"hidden\" && visibility !== \"collapse\";\n if (isVisible) {\n if (!element.ownerDocument.defaultView) {\n return isVisible;\n }\n const { getComputedStyle } = element.ownerDocument.defaultView;\n const { display: computedDisplay, visibility: computedVisibility } = getComputedStyle(element);\n isVisible = computedDisplay !== \"none\" && computedVisibility !== \"hidden\" && computedVisibility !== \"collapse\";\n }\n return isVisible;\n}\nfunction isAttributeVisible(element, childElement) {\n return !element.hasAttribute(\"hidden\") && (element.nodeName === \"DETAILS\" && childElement && childElement.nodeName !== \"SUMMARY\" ? element.hasAttribute(\"open\") : true);\n}\nfunction hasFocusWithin(element) {\n const activeElement = getActiveElement(element);\n if (!activeElement) {\n return false;\n }\n if (!contains(element, activeElement)) {\n const activeDescendant = activeElement.getAttribute(\n \"aria-activedescendant\"\n );\n if (!activeDescendant) {\n return false;\n }\n if (!(\"id\" in element)) {\n return false;\n }\n if (activeDescendant === element.id) {\n return true;\n }\n return !!element.querySelector(`#${CSS.escape(activeDescendant)}`);\n }\n return true;\n}\n\n// src/focus-manager.ts\nfunction createFocusManager(ref, defaultOptions = () => ({})) {\n const focusNext = (opts = {}) => {\n const root = ref();\n if (!root) {\n return;\n }\n const {\n from = defaultOptions().from || document.activeElement,\n tabbable = defaultOptions().tabbable,\n wrap = defaultOptions().wrap,\n accept = defaultOptions().accept\n } = opts;\n const walker = getFocusableTreeWalker(root, { tabbable, accept });\n if (from && root.contains(from)) {\n walker.currentNode = from;\n }\n let nextNode = walker.nextNode();\n if (!nextNode && wrap) {\n walker.currentNode = root;\n nextNode = walker.nextNode();\n }\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n };\n const focusPrevious = (opts = {}) => {\n const root = ref();\n if (!root) {\n return;\n }\n const {\n from = defaultOptions().from || document.activeElement,\n tabbable = defaultOptions().tabbable,\n wrap = defaultOptions().wrap,\n accept = defaultOptions().accept\n } = opts;\n const walker = getFocusableTreeWalker(root, { tabbable, accept });\n if (from && root.contains(from)) {\n walker.currentNode = from;\n } else {\n const next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n }\n let previousNode = walker.previousNode();\n if (!previousNode && wrap) {\n walker.currentNode = root;\n previousNode = last(walker);\n }\n if (previousNode) {\n focusElement(previousNode, true);\n }\n return previousNode;\n };\n const focusFirst = (opts = {}) => {\n const root = ref();\n if (!root) {\n return;\n }\n const {\n tabbable = defaultOptions().tabbable,\n accept = defaultOptions().accept\n } = opts;\n const walker = getFocusableTreeWalker(root, { tabbable, accept });\n const nextNode = walker.nextNode();\n if (nextNode) {\n focusElement(nextNode, true);\n }\n return nextNode;\n };\n const focusLast = (opts = {}) => {\n const root = ref();\n if (!root) {\n return;\n }\n const {\n tabbable = defaultOptions().tabbable,\n accept = defaultOptions().accept\n } = opts;\n const walker = getFocusableTreeWalker(root, { tabbable, accept });\n const next = last(walker);\n if (next) {\n focusElement(next, true);\n }\n return next;\n };\n return { focusNext, focusPrevious, focusFirst, focusLast };\n}\nfunction focusElement(element, scroll = false) {\n if (element != null && !scroll) {\n try {\n focusWithoutScrolling(element);\n } catch (err) {\n }\n } else if (element != null) {\n try {\n element.focus();\n } catch (err) {\n }\n }\n}\nfunction last(walker) {\n let next;\n let last2;\n do {\n last2 = walker.lastChild();\n if (last2) {\n next = last2;\n }\n } while (last2);\n return next;\n}\nfunction isElementInScope(element, scope) {\n return scope.some((node) => node.contains(element));\n}\nfunction getFocusableTreeWalker(root, opts, scope) {\n const selector = opts?.tabbable ? TABBABLE_ELEMENT_SELECTOR : FOCUSABLE_ELEMENT_SELECTOR;\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode(node) {\n if (opts?.from?.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n if (node.matches(selector) && isElementVisible(node) && (!scope || isElementInScope(node, scope)) && (!opts?.accept || opts.accept(node))) {\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_SKIP;\n }\n });\n if (opts?.from) {\n walker.currentNode = opts.from;\n }\n return walker;\n}\n\n// src/get-scroll-parent.ts\nfunction getScrollParent(node) {\n let parentNode = node;\n while (parentNode && !isScrollable(parentNode)) {\n parentNode = parentNode.parentElement;\n }\n return parentNode || document.scrollingElement || document.documentElement;\n}\nfunction isScrollable(node) {\n const style = window.getComputedStyle(node);\n return /(auto|scroll)/.test(\n style.overflow + style.overflowX + style.overflowY\n );\n}\n\n// src/is-virtual-event.ts\nfunction isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n if (isAndroid() && event.pointerType) {\n return event.type === \"click\" && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n return event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === \"mouse\";\n}\n\n// src/noop.ts\nfunction noop() {\n return;\n}\n\n// src/number.ts\nfunction clamp(value, min = Number.NEGATIVE_INFINITY, max = Number.POSITIVE_INFINITY) {\n return Math.min(Math.max(value, min), max);\n}\nfunction snapValueToStep(value, min, max, step) {\n const remainder = (value - (Number.isNaN(min) ? 0 : min)) % step;\n let snappedValue = Math.abs(remainder) * 2 >= step ? value + Math.sign(remainder) * (step - Math.abs(remainder)) : value - remainder;\n if (!Number.isNaN(min)) {\n if (snappedValue < min) {\n snappedValue = min;\n } else if (!Number.isNaN(max) && snappedValue > max) {\n snappedValue = min + Math.floor((max - min) / step) * step;\n }\n } else if (!Number.isNaN(max) && snappedValue > max) {\n snappedValue = Math.floor(max / step) * step;\n }\n const string = step.toString();\n const index = string.indexOf(\".\");\n const precision = index >= 0 ? string.length - index : 0;\n if (precision > 0) {\n const pow = 10 ** precision;\n snappedValue = Math.round(snappedValue * pow) / pow;\n }\n return snappedValue;\n}\nvar getPrecision = (n) => {\n let e = 1;\n let precision = 0;\n while (Math.round(n * e) / e !== n) {\n e *= 10;\n precision++;\n }\n return precision;\n};\n\n// src/polygon.ts\nfunction getEventPoint(event) {\n return [event.clientX, event.clientY];\n}\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let inside = false;\n const length = polygon.length;\n for (let l = length, i = 0, j = l - 1; i < l; j = i++) {\n const [xi, yi] = polygon[i];\n const [xj, yj] = polygon[j];\n const [, vy] = polygon[j === 0 ? l - 1 : j - 1] || [0, 0];\n const where = (yi - yj) * (x - xi) - (xi - xj) * (y - yi);\n if (yj < yi) {\n if (y >= yj && y < yi) {\n if (where === 0)\n return true;\n if (where > 0) {\n if (y === yj) {\n if (y > vy) {\n inside = !inside;\n }\n } else {\n inside = !inside;\n }\n }\n }\n } else if (yi < yj) {\n if (y > yi && y <= yj) {\n if (where === 0)\n return true;\n if (where < 0) {\n if (y === yj) {\n if (y < vy) {\n inside = !inside;\n }\n } else {\n inside = !inside;\n }\n }\n }\n } else if (y === yi && (x >= xj && x <= xi || x >= xi && x <= xj)) {\n return true;\n }\n }\n return inside;\n}\nfunction getPolygon() {\n const id = \"debug-polygon\";\n const existingPolygon = document.getElementById(id);\n if (existingPolygon) {\n return existingPolygon;\n }\n const svg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n svg.style.top = \"0\";\n svg.style.left = \"0\";\n svg.style.width = \"100%\";\n svg.style.height = \"100%\";\n svg.style.fill = \"green\";\n svg.style.opacity = \"0.2\";\n svg.style.position = \"fixed\";\n svg.style.pointerEvents = \"none\";\n svg.style.zIndex = \"999999\";\n const polygon = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"polygon\"\n );\n polygon.setAttribute(\"id\", id);\n polygon.setAttribute(\"points\", \"0,0 0,0\");\n svg.appendChild(polygon);\n document.body.appendChild(svg);\n return polygon;\n}\nfunction debugPolygon(polygon) {\n const polygonElement = getPolygon();\n const points = polygon.map((point) => point.join(\",\")).join(\" \");\n polygonElement.setAttribute(\"points\", points);\n return polygonElement.parentElement;\n}\nfunction mergeDefaultProps(defaultProps, props) {\n return mergeProps(defaultProps, props);\n}\n\n// src/run-after-transition.ts\nvar transitionsByElement = /* @__PURE__ */ new Map();\nvar transitionCallbacks = /* @__PURE__ */ new Set();\nfunction setupGlobalEvents() {\n if (typeof window === \"undefined\") {\n return;\n }\n const onTransitionStart = (e) => {\n if (!e.target) {\n return;\n }\n let transitions = transitionsByElement.get(e.target);\n if (!transitions) {\n transitions = /* @__PURE__ */ new Set();\n transitionsByElement.set(e.target, transitions);\n e.target.addEventListener(\n \"transitioncancel\",\n onTransitionEnd\n );\n }\n transitions.add(e.propertyName);\n };\n const onTransitionEnd = (e) => {\n if (!e.target) {\n return;\n }\n const properties = transitionsByElement.get(e.target);\n if (!properties) {\n return;\n }\n properties.delete(e.propertyName);\n if (properties.size === 0) {\n e.target.removeEventListener(\n \"transitioncancel\",\n onTransitionEnd\n );\n transitionsByElement.delete(e.target);\n }\n if (transitionsByElement.size === 0) {\n for (const cb of transitionCallbacks) {\n cb();\n }\n transitionCallbacks.clear();\n }\n };\n document.body.addEventListener(\"transitionrun\", onTransitionStart);\n document.body.addEventListener(\"transitionend\", onTransitionEnd);\n}\nif (typeof document !== \"undefined\") {\n if (document.readyState !== \"loading\") {\n setupGlobalEvents();\n } else {\n document.addEventListener(\"DOMContentLoaded\", setupGlobalEvents);\n }\n}\nfunction runAfterTransition(fn) {\n requestAnimationFrame(() => {\n if (transitionsByElement.size === 0) {\n fn();\n } else {\n transitionCallbacks.add(fn);\n }\n });\n}\n\n// src/scroll-into-view.ts\nfunction scrollIntoView(scrollView, element) {\n const offsetX = relativeOffset(scrollView, element, \"left\");\n const offsetY = relativeOffset(scrollView, element, \"top\");\n const width = element.offsetWidth;\n const height = element.offsetHeight;\n let x = scrollView.scrollLeft;\n let y = scrollView.scrollTop;\n const maxX = x + scrollView.offsetWidth;\n const maxY = y + scrollView.offsetHeight;\n if (offsetX <= x) {\n x = offsetX;\n } else if (offsetX + width > maxX) {\n x += offsetX + width - maxX;\n }\n if (offsetY <= y) {\n y = offsetY;\n } else if (offsetY + height > maxY) {\n y += offsetY + height - maxY;\n }\n scrollView.scrollLeft = x;\n scrollView.scrollTop = y;\n}\nfunction relativeOffset(ancestor, child, axis) {\n const prop = axis === \"left\" ? \"offsetLeft\" : \"offsetTop\";\n let sum = 0;\n while (child.offsetParent) {\n sum += child[prop];\n if (child.offsetParent === ancestor) {\n break;\n }\n if (child.offsetParent.contains(ancestor)) {\n sum -= ancestor[prop];\n break;\n }\n child = child.offsetParent;\n }\n return sum;\n}\nfunction scrollIntoViewport(targetElement, opts) {\n if (document.contains(targetElement)) {\n const root = document.scrollingElement || document.documentElement;\n const isScrollPrevented = window.getComputedStyle(root).overflow === \"hidden\";\n if (!isScrollPrevented) {\n const { left: originalLeft, top: originalTop } = targetElement.getBoundingClientRect();\n targetElement?.scrollIntoView?.({ block: \"nearest\" });\n const { left: newLeft, top: newTop } = targetElement.getBoundingClientRect();\n if (Math.abs(originalLeft - newLeft) > 1 || Math.abs(originalTop - newTop) > 1) {\n opts?.containingElement?.scrollIntoView?.({\n block: \"center\",\n inline: \"center\"\n });\n targetElement.scrollIntoView?.({ block: \"nearest\" });\n }\n } else {\n let scrollParent = getScrollParent(targetElement);\n while (targetElement && scrollParent && targetElement !== root && scrollParent !== root) {\n scrollIntoView(\n scrollParent,\n targetElement\n );\n targetElement = scrollParent;\n scrollParent = getScrollParent(targetElement);\n }\n }\n }\n}\n\n// src/styles.ts\nvar visuallyHiddenStyles = {\n border: \"0\",\n clip: \"rect(0 0 0 0)\",\n \"clip-path\": \"inset(50%)\",\n height: \"1px\",\n margin: \"0 -1px -1px 0\",\n overflow: \"hidden\",\n padding: \"0\",\n position: \"absolute\",\n width: \"1px\",\n \"white-space\": \"nowrap\"\n};\n\nexport { EventKey, FOCUSABLE_ELEMENT_SELECTOR, TABBABLE_ELEMENT_SELECTOR, addItemToArray, callHandler, clamp, composeEventHandlers, contains, createFocusManager, createGenerateId, createGlobalListeners, debugPolygon, focusWithoutScrolling, getActiveElement, getAllTabbableIn, getDocument, getEventPoint, getFocusableTreeWalker, getPrecision, getScrollParent, getWindow, hasFocusWithin, isAndroid, isAppleDevice, isArray, isChrome, isCtrlKey, isElementVisible, isFocusable, isFrame, isFunction, isIOS, isIPad, isIPhone, isMac, isNumber, isPointInPolygon, isString, isTabbable, isVirtualClick, isVirtualPointerEvent, isWebKit, mergeDefaultProps, noop, removeItemFromArray, runAfterTransition, scrollIntoView, scrollIntoViewport, snapValueToStep, visuallyHiddenStyles };\n//# sourceMappingURL=out.js.map\n//# sourceMappingURL=index.js.map","import { isString } from '@kobalte/utils';\nimport { createSignal, createEffect } from 'solid-js';\n\n// src/primitives/create-tag-name/create-tag-name.ts\nfunction createTagName(ref, fallback) {\n const [tagName, setTagName] = createSignal(stringOrUndefined(fallback?.()));\n createEffect(() => {\n setTagName(ref()?.tagName.toLowerCase() || stringOrUndefined(fallback?.()));\n });\n return tagName;\n}\nfunction stringOrUndefined(value) {\n return isString(value) ? value : void 0;\n}\n\nexport { createTagName };\n","import { createComponent, Dynamic, mergeProps } from 'solid-js/web';\nimport { splitProps } from 'solid-js';\n\n// src/polymorphic/polymorphic.tsx\nfunction Polymorphic(props) {\n const [local, others] = splitProps(props, [\"as\"]);\n if (!local.as) {\n throw new Error(\"[kobalte]: Polymorphic is missing the required `as` prop.\");\n }\n return (\n // @ts-ignore: Props are valid but not worth calculating\n createComponent(Dynamic, mergeProps(others, {\n get component() {\n return local.as;\n }\n }))\n );\n}\n\nexport { Polymorphic };\n","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\nexport { __export };\n","import { createTagName } from './ET5T45DO.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { __export } from './5ZKAE4VZ.js';\nimport { createComponent, mergeProps } from 'solid-js/web';\nimport { mergeDefaultProps, mergeRefs } from '@kobalte/utils';\nimport { splitProps, createMemo } from 'solid-js';\n\n// src/button/index.tsx\nvar button_exports = {};\n__export(button_exports, {\n Button: () => Button,\n Root: () => ButtonRoot\n});\n\n// src/button/is-button.ts\nvar BUTTON_INPUT_TYPES = [\n \"button\",\n \"color\",\n \"file\",\n \"image\",\n \"reset\",\n \"submit\"\n];\nfunction isButton(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName === \"button\") {\n return true;\n }\n if (tagName === \"input\" && element.type) {\n return BUTTON_INPUT_TYPES.indexOf(element.type) !== -1;\n }\n return false;\n}\n\n// src/button/button-root.tsx\nfunction ButtonRoot(props) {\n let ref;\n const mergedProps = mergeDefaultProps({\n type: \"button\"\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"type\", \"disabled\"]);\n const tagName = createTagName(() => ref, () => \"button\");\n const isNativeButton = createMemo(() => {\n const elementTagName = tagName();\n if (elementTagName == null) {\n return false;\n }\n return isButton({\n tagName: elementTagName,\n type: local.type\n });\n });\n const isNativeInput = createMemo(() => {\n return tagName() === \"input\";\n });\n const isNativeLink = createMemo(() => {\n return tagName() === \"a\" && ref?.getAttribute(\"href\") != null;\n });\n return createComponent(Polymorphic, mergeProps({\n as: \"button\",\n ref(r$) {\n const _ref$ = mergeRefs((el) => ref = el, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n get type() {\n return isNativeButton() || isNativeInput() ? local.type : void 0;\n },\n get role() {\n return !isNativeButton() && !isNativeLink() ? \"button\" : void 0;\n },\n get tabIndex() {\n return !isNativeButton() && !isNativeLink() && !local.disabled ? 0 : void 0;\n },\n get disabled() {\n return isNativeButton() || isNativeInput() ? local.disabled : void 0;\n },\n get [\"aria-disabled\"]() {\n return !isNativeButton() && !isNativeInput() && local.disabled ? true : void 0;\n },\n get [\"data-disabled\"]() {\n return local.disabled ? \"\" : void 0;\n }\n }, others));\n}\n\n// src/button/index.tsx\nvar Button = ButtonRoot;\n\nexport { Button, ButtonRoot, button_exports };\n","import { accessWith } from '@kobalte/utils';\nimport { createSignal, createMemo, untrack } from 'solid-js';\n\n// src/primitives/create-controllable-signal/create-controllable-signal.ts\nfunction createControllableSignal(props) {\n const [_value, _setValue] = createSignal(props.defaultValue?.());\n const isControlled = createMemo(() => props.value?.() !== void 0);\n const value = createMemo(() => isControlled() ? props.value?.() : _value());\n const setValue = (next) => {\n untrack(() => {\n const nextValue = accessWith(next, value());\n if (!Object.is(nextValue, value())) {\n if (!isControlled()) {\n _setValue(nextValue);\n }\n props.onChange?.(nextValue);\n }\n return nextValue;\n });\n };\n return [value, setValue];\n}\nfunction createControllableBooleanSignal(props) {\n const [_value, setValue] = createControllableSignal(props);\n const value = () => _value() ?? false;\n return [value, setValue];\n}\nfunction createControllableArraySignal(props) {\n const [_value, setValue] = createControllableSignal(props);\n const value = () => _value() ?? [];\n return [value, setValue];\n}\nfunction createControllableSetSignal(props) {\n const [_value, setValue] = createControllableSignal(props);\n const value = () => _value() ?? /* @__PURE__ */ new Set();\n return [value, setValue];\n}\n\nexport { createControllableArraySignal, createControllableBooleanSignal, createControllableSetSignal, createControllableSignal };\n","import { createControllableBooleanSignal } from './BLN63FDC.js';\nimport { access } from '@kobalte/utils';\n\nfunction createToggleState(props = {}) {\n const [isSelected, _setIsSelected] = createControllableBooleanSignal({\n value: () => access(props.isSelected),\n defaultValue: () => !!access(props.defaultIsSelected),\n onChange: (value) => props.onSelectedChange?.(value)\n });\n const setIsSelected = (value) => {\n if (!access(props.isReadOnly) && !access(props.isDisabled)) {\n _setIsSelected(value);\n }\n };\n const toggle = () => {\n if (!access(props.isReadOnly) && !access(props.isDisabled)) {\n _setIsSelected(!isSelected());\n }\n };\n return {\n isSelected,\n setIsSelected,\n toggle\n };\n}\n\nexport { createToggleState };\n","import { access, isString, isNumber } from '@kobalte/utils';\nimport { createMemo } from 'solid-js';\n\n// src/primitives/create-collection/create-collection.ts\nfunction buildNodes(params) {\n let index = params.startIndex ?? 0;\n const level = params.startLevel ?? 0;\n const nodes = [];\n const getKey = (data) => {\n if (data == null) {\n return \"\";\n }\n const _getKey = params.getKey ?? \"key\";\n const dataKey = isString(_getKey) ? data[_getKey] : _getKey(data);\n return dataKey != null ? String(dataKey) : \"\";\n };\n const getTextValue = (data) => {\n if (data == null) {\n return \"\";\n }\n const _getTextValue = params.getTextValue ?? \"textValue\";\n const dataTextValue = isString(_getTextValue) ? data[_getTextValue] : _getTextValue(data);\n return dataTextValue != null ? String(dataTextValue) : \"\";\n };\n const getDisabled = (data) => {\n if (data == null) {\n return false;\n }\n const _getDisabled = params.getDisabled ?? \"disabled\";\n return (isString(_getDisabled) ? data[_getDisabled] : _getDisabled(data)) ?? false;\n };\n const getSectionChildren = (data) => {\n if (data == null) {\n return void 0;\n }\n if (isString(params.getSectionChildren)) {\n return data[params.getSectionChildren];\n }\n return params.getSectionChildren?.(data);\n };\n for (const data of params.dataSource) {\n if (isString(data) || isNumber(data)) {\n nodes.push({\n type: \"item\",\n rawValue: data,\n key: String(data),\n textValue: String(data),\n disabled: getDisabled(data),\n level,\n index\n });\n index++;\n continue;\n }\n if (getSectionChildren(data) != null) {\n nodes.push({\n type: \"section\",\n rawValue: data,\n key: \"\",\n // not applicable here\n textValue: \"\",\n // not applicable here\n disabled: false,\n // not applicable here\n level,\n index\n });\n index++;\n const sectionChildren = getSectionChildren(data) ?? [];\n if (sectionChildren.length > 0) {\n const childNodes = buildNodes({\n dataSource: sectionChildren,\n getKey: params.getKey,\n getTextValue: params.getTextValue,\n getDisabled: params.getDisabled,\n getSectionChildren: params.getSectionChildren,\n startIndex: index,\n startLevel: level + 1\n });\n nodes.push(...childNodes);\n index += childNodes.length;\n }\n } else {\n nodes.push({\n type: \"item\",\n rawValue: data,\n key: getKey(data),\n textValue: getTextValue(data),\n disabled: getDisabled(data),\n level,\n index\n });\n index++;\n }\n }\n return nodes;\n}\n\n// src/primitives/create-collection/create-collection.ts\nfunction createCollection(props, deps = []) {\n return createMemo(() => {\n const nodes = buildNodes({\n dataSource: access(props.dataSource),\n getKey: access(props.getKey),\n getTextValue: access(props.getTextValue),\n getDisabled: access(props.getDisabled),\n getSectionChildren: access(props.getSectionChildren)\n });\n for (let i = 0; i < deps.length; i++)\n deps[i]();\n return props.factory(nodes);\n });\n}\n\nexport { createCollection };\n","import { createContext, createSignal, createMemo, onMount, onCleanup, useContext } from 'solid-js';\nimport { isServer, createComponent } from 'solid-js/web';\nimport { DateFormatter } from '@internationalized/date';\nimport { access } from '@kobalte/utils';\nimport { NumberFormatter } from '@internationalized/number';\n\n// src/i18n/create-collator.ts\n\n// src/i18n/utils.ts\nvar RTL_SCRIPTS = /* @__PURE__ */ new Set([\n \"Avst\",\n \"Arab\",\n \"Armi\",\n \"Syrc\",\n \"Samr\",\n \"Mand\",\n \"Thaa\",\n \"Mend\",\n \"Nkoo\",\n \"Adlm\",\n \"Rohg\",\n \"Hebr\"\n]);\nvar RTL_LANGS = /* @__PURE__ */ new Set([\n \"ae\",\n \"ar\",\n \"arc\",\n \"bcc\",\n \"bqi\",\n \"ckb\",\n \"dv\",\n \"fa\",\n \"glk\",\n \"he\",\n \"ku\",\n \"mzn\",\n \"nqo\",\n \"pnb\",\n \"ps\",\n \"sd\",\n \"ug\",\n \"ur\",\n \"yi\"\n]);\nfunction isRTL(locale) {\n if (Intl.Locale) {\n const script = new Intl.Locale(locale).maximize().script ?? \"\";\n return RTL_SCRIPTS.has(script);\n }\n const lang = locale.split(\"-\")[0];\n return RTL_LANGS.has(lang);\n}\nfunction getReadingDirection(locale) {\n return isRTL(locale) ? \"rtl\" : \"ltr\";\n}\n\n// src/i18n/create-default-locale.ts\nfunction getDefaultLocale() {\n let locale = typeof navigator !== \"undefined\" && // @ts-ignore\n (navigator.language || navigator.userLanguage) || \"en-US\";\n return {\n locale,\n direction: getReadingDirection(locale)\n };\n}\nvar currentLocale = getDefaultLocale();\nvar listeners = /* @__PURE__ */ new Set();\nfunction updateLocale() {\n currentLocale = getDefaultLocale();\n for (const listener of listeners) {\n listener(currentLocale);\n }\n}\nfunction createDefaultLocale() {\n const defaultSSRLocale = {\n locale: \"en-US\",\n direction: \"ltr\"\n };\n const [defaultClientLocale, setDefaultClientLocale] = createSignal(currentLocale);\n const defaultLocale = createMemo(\n () => isServer ? defaultSSRLocale : defaultClientLocale()\n );\n onMount(() => {\n if (listeners.size === 0) {\n window.addEventListener(\"languagechange\", updateLocale);\n }\n listeners.add(setDefaultClientLocale);\n onCleanup(() => {\n listeners.delete(setDefaultClientLocale);\n if (listeners.size === 0) {\n window.removeEventListener(\"languagechange\", updateLocale);\n }\n });\n });\n return {\n locale: () => defaultLocale().locale,\n direction: () => defaultLocale().direction\n };\n}\n\n// src/i18n/i18n-provider.tsx\nvar I18nContext = createContext();\nfunction I18nProvider(props) {\n const defaultLocale = createDefaultLocale();\n const context = {\n locale: () => props.locale ?? defaultLocale.locale(),\n direction: () => props.locale ? getReadingDirection(props.locale) : defaultLocale.direction()\n };\n return createComponent(I18nContext.Provider, {\n value: context,\n get children() {\n return props.children;\n }\n });\n}\nfunction useLocale() {\n const defaultLocale = createDefaultLocale();\n const context = useContext(I18nContext);\n return context || defaultLocale;\n}\n\n// src/i18n/create-collator.ts\nvar cache = /* @__PURE__ */ new Map();\nfunction createCollator(options) {\n const { locale } = useLocale();\n const cacheKey = createMemo(() => {\n return locale() + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : \"\");\n });\n return createMemo(() => {\n const key = cacheKey();\n let collator;\n if (cache.has(key)) {\n collator = cache.get(key);\n }\n if (!collator) {\n collator = new Intl.Collator(locale(), options);\n cache.set(key, collator);\n }\n return collator;\n });\n}\nfunction createDateFormatter(options) {\n const { locale } = useLocale();\n return createMemo(() => new DateFormatter(locale(), access(options)));\n}\n\n// src/i18n/create-filter.ts\nfunction createFilter(options) {\n const collator = createCollator({\n usage: \"search\",\n ...options\n });\n const startsWith = (str, substr) => {\n if (substr.length === 0) {\n return true;\n }\n const normalizedStr = str.normalize(\"NFC\");\n const normalizedSubstr = substr.normalize(\"NFC\");\n return collator().compare(\n normalizedStr.slice(0, normalizedSubstr.length),\n normalizedSubstr\n ) === 0;\n };\n const endsWith = (str, substr) => {\n if (substr.length === 0) {\n return true;\n }\n const normalizedStr = str.normalize(\"NFC\");\n const normalizedSubstr = substr.normalize(\"NFC\");\n return collator().compare(\n normalizedStr.slice(-normalizedSubstr.length),\n normalizedSubstr\n ) === 0;\n };\n const contains = (str, substr) => {\n if (substr.length === 0) {\n return true;\n }\n const normalizedStr = str.normalize(\"NFC\");\n const normalizedSubstr = substr.normalize(\"NFC\");\n let scan = 0;\n const sliceLen = substr.length;\n for (; scan + sliceLen <= normalizedStr.length; scan++) {\n const slice = normalizedStr.slice(scan, scan + sliceLen);\n if (collator().compare(normalizedSubstr, slice) === 0) {\n return true;\n }\n }\n return false;\n };\n return {\n startsWith,\n endsWith,\n contains\n };\n}\nfunction createNumberFormatter(options) {\n const { locale } = useLocale();\n return createMemo(() => new NumberFormatter(locale(), access(options)));\n}\n\nexport { I18nProvider, RTL_LANGS, createCollator, createDateFormatter, createDefaultLocale, createFilter, createNumberFormatter, getDefaultLocale, getReadingDirection, isRTL, useLocale };\n","import { createCollection } from './JMA2RWU6.js';\nimport { useLocale } from './XHJPQEZP.js';\nimport { createControllableSignal } from './BLN63FDC.js';\nimport { mergeDefaultProps, access, createEventListener, scrollIntoView, focusWithoutScrolling, callHandler, getFocusableTreeWalker, isAppleDevice, isMac } from '@kobalte/utils';\nimport { createSignal, createMemo, createEffect, mergeProps, onMount, on, createComputed } from 'solid-js';\n\n// src/selection/types.ts\nvar Selection = class _Selection extends Set {\n anchorKey;\n currentKey;\n constructor(keys, anchorKey, currentKey) {\n super(keys);\n if (keys instanceof _Selection) {\n this.anchorKey = anchorKey || keys.anchorKey;\n this.currentKey = currentKey || keys.currentKey;\n } else {\n this.anchorKey = anchorKey;\n this.currentKey = currentKey;\n }\n }\n};\n\n// src/selection/create-controllable-selection-signal.ts\nfunction createControllableSelectionSignal(props) {\n const [_value, setValue] = createControllableSignal(props);\n const value = () => _value() ?? new Selection();\n return [value, setValue];\n}\nfunction isNonContiguousSelectionModifier(e) {\n return isAppleDevice() ? e.altKey : e.ctrlKey;\n}\nfunction isCtrlKeyPressed(e) {\n if (isMac()) {\n return e.metaKey;\n }\n return e.ctrlKey;\n}\nfunction convertSelection(selection) {\n return new Selection(selection);\n}\nfunction isSameSelection(setA, setB) {\n if (setA.size !== setB.size) {\n return false;\n }\n for (const item of setA) {\n if (!setB.has(item)) {\n return false;\n }\n }\n return true;\n}\n\n// src/selection/create-multiple-selection-state.ts\nfunction createMultipleSelectionState(props) {\n const mergedProps = mergeDefaultProps(\n {\n selectionMode: \"none\",\n selectionBehavior: \"toggle\"\n },\n props\n );\n const [isFocused, setFocused] = createSignal(false);\n const [focusedKey, setFocusedKey] = createSignal();\n const selectedKeysProp = createMemo(() => {\n const selection = access(mergedProps.selectedKeys);\n if (selection != null) {\n return convertSelection(selection);\n }\n return selection;\n });\n const defaultSelectedKeys = createMemo(() => {\n const defaultSelection = access(mergedProps.defaultSelectedKeys);\n if (defaultSelection != null) {\n return convertSelection(defaultSelection);\n }\n return new Selection();\n });\n const [selectedKeys, _setSelectedKeys] = createControllableSelectionSignal({\n value: selectedKeysProp,\n defaultValue: defaultSelectedKeys,\n onChange: (value) => mergedProps.onSelectionChange?.(value)\n });\n const [selectionBehavior, setSelectionBehavior] = createSignal(access(mergedProps.selectionBehavior));\n const selectionMode = () => access(mergedProps.selectionMode);\n const disallowEmptySelection = () => access(mergedProps.disallowEmptySelection) ?? false;\n const setSelectedKeys = (keys) => {\n if (access(mergedProps.allowDuplicateSelectionEvents) || !isSameSelection(keys, selectedKeys())) {\n _setSelectedKeys(keys);\n }\n };\n createEffect(() => {\n const selection = selectedKeys();\n if (access(mergedProps.selectionBehavior) === \"replace\" && selectionBehavior() === \"toggle\" && typeof selection === \"object\" && selection.size === 0) {\n setSelectionBehavior(\"replace\");\n }\n });\n createEffect(() => {\n setSelectionBehavior(access(mergedProps.selectionBehavior) ?? \"toggle\");\n });\n return {\n selectionMode,\n disallowEmptySelection,\n selectionBehavior,\n setSelectionBehavior,\n isFocused,\n setFocused,\n focusedKey,\n setFocusedKey,\n selectedKeys,\n setSelectedKeys\n };\n}\nfunction createTypeSelect(props) {\n const [search, setSearch] = createSignal(\"\");\n const [timeoutId, setTimeoutId] = createSignal(-1);\n const onKeyDown = (e) => {\n if (access(props.isDisabled)) {\n return;\n }\n const delegate = access(props.keyboardDelegate);\n const manager = access(props.selectionManager);\n if (!delegate.getKeyForSearch) {\n return;\n }\n const character = getStringForKey(e.key);\n if (!character || e.ctrlKey || e.metaKey) {\n return;\n }\n if (character === \" \" && search().trim().length > 0) {\n e.preventDefault();\n e.stopPropagation();\n }\n let newSearch = setSearch((prev) => prev + character);\n let key = delegate.getKeyForSearch(newSearch, manager.focusedKey()) ?? delegate.getKeyForSearch(newSearch);\n if (key == null && isAllSameLetter(newSearch)) {\n newSearch = newSearch[0];\n key = delegate.getKeyForSearch(newSearch, manager.focusedKey()) ?? delegate.getKeyForSearch(newSearch);\n }\n if (key != null) {\n manager.setFocusedKey(key);\n props.onTypeSelect?.(key);\n }\n clearTimeout(timeoutId());\n setTimeoutId(window.setTimeout(() => setSearch(\"\"), 500));\n };\n return {\n typeSelectHandlers: {\n onKeyDown\n }\n };\n}\nfunction getStringForKey(key) {\n if (key.length === 1 || !/^[A-Z]/i.test(key)) {\n return key;\n }\n return \"\";\n}\nfunction isAllSameLetter(search) {\n return search.split(\"\").every((letter) => letter === search[0]);\n}\nfunction createSelectableCollection(props, ref, scrollRef) {\n const defaultProps = {\n selectOnFocus: () => access(props.selectionManager).selectionBehavior() === \"replace\"\n };\n const mergedProps = mergeProps(defaultProps, props);\n const finalScrollRef = () => scrollRef?.() ?? ref();\n const { direction } = useLocale();\n let scrollPos = { top: 0, left: 0 };\n createEventListener(\n () => !access(mergedProps.isVirtualized) ? finalScrollRef() : void 0,\n \"scroll\",\n () => {\n const scrollEl = finalScrollRef();\n if (!scrollEl) {\n return;\n }\n scrollPos = {\n top: scrollEl.scrollTop,\n left: scrollEl.scrollLeft\n };\n }\n );\n const { typeSelectHandlers } = createTypeSelect({\n isDisabled: () => access(mergedProps.disallowTypeAhead),\n keyboardDelegate: () => access(mergedProps.keyboardDelegate),\n selectionManager: () => access(mergedProps.selectionManager)\n });\n const orientation = () => access(mergedProps.orientation) ?? \"vertical\";\n const onKeyDown = (e) => {\n callHandler(e, typeSelectHandlers.onKeyDown);\n if (e.altKey && e.key === \"Tab\") {\n e.preventDefault();\n }\n const refEl = ref();\n if (!refEl?.contains(e.target)) {\n return;\n }\n const manager = access(mergedProps.selectionManager);\n const selectOnFocus = access(mergedProps.selectOnFocus);\n const navigateToKey = (key) => {\n if (key != null) {\n manager.setFocusedKey(key);\n if (e.shiftKey && manager.selectionMode() === \"multiple\") {\n manager.extendSelection(key);\n } else if (selectOnFocus && !isNonContiguousSelectionModifier(e)) {\n manager.replaceSelection(key);\n }\n }\n };\n const delegate = access(mergedProps.keyboardDelegate);\n const shouldFocusWrap = access(mergedProps.shouldFocusWrap);\n const focusedKey = manager.focusedKey();\n switch (e.key) {\n case (orientation() === \"vertical\" ? \"ArrowDown\" : \"ArrowRight\"): {\n if (delegate.getKeyBelow) {\n e.preventDefault();\n let nextKey;\n if (focusedKey != null) {\n nextKey = delegate.getKeyBelow(focusedKey);\n } else {\n nextKey = delegate.getFirstKey?.();\n }\n if (nextKey == null && shouldFocusWrap) {\n nextKey = delegate.getFirstKey?.(focusedKey);\n }\n navigateToKey(nextKey);\n }\n break;\n }\n case (orientation() === \"vertical\" ? \"ArrowUp\" : \"ArrowLeft\"): {\n if (delegate.getKeyAbove) {\n e.preventDefault();\n let nextKey;\n if (focusedKey != null) {\n nextKey = delegate.getKeyAbove(focusedKey);\n } else {\n nextKey = delegate.getLastKey?.();\n }\n if (nextKey == null && shouldFocusWrap) {\n nextKey = delegate.getLastKey?.(focusedKey);\n }\n navigateToKey(nextKey);\n }\n break;\n }\n case (orientation() === \"vertical\" ? \"ArrowLeft\" : \"ArrowUp\"): {\n if (delegate.getKeyLeftOf) {\n e.preventDefault();\n const isRTL = direction() === \"rtl\";\n let nextKey;\n if (focusedKey != null) {\n nextKey = delegate.getKeyLeftOf(focusedKey);\n } else {\n nextKey = isRTL ? delegate.getFirstKey?.() : delegate.getLastKey?.();\n }\n navigateToKey(nextKey);\n }\n break;\n }\n case (orientation() === \"vertical\" ? \"ArrowRight\" : \"ArrowDown\"): {\n if (delegate.getKeyRightOf) {\n e.preventDefault();\n const isRTL = direction() === \"rtl\";\n let nextKey;\n if (focusedKey != null) {\n nextKey = delegate.getKeyRightOf(focusedKey);\n } else {\n nextKey = isRTL ? delegate.getLastKey?.() : delegate.getFirstKey?.();\n }\n navigateToKey(nextKey);\n }\n break;\n }\n case \"Home\":\n if (delegate.getFirstKey) {\n e.preventDefault();\n const firstKey = delegate.getFirstKey(\n focusedKey,\n isCtrlKeyPressed(e)\n );\n if (firstKey != null) {\n manager.setFocusedKey(firstKey);\n if (isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode() === \"multiple\") {\n manager.extendSelection(firstKey);\n } else if (selectOnFocus) {\n manager.replaceSelection(firstKey);\n }\n }\n }\n break;\n case \"End\":\n if (delegate.getLastKey) {\n e.preventDefault();\n const lastKey = delegate.getLastKey(focusedKey, isCtrlKeyPressed(e));\n if (lastKey != null) {\n manager.setFocusedKey(lastKey);\n if (isCtrlKeyPressed(e) && e.shiftKey && manager.selectionMode() === \"multiple\") {\n manager.extendSelection(lastKey);\n } else if (selectOnFocus) {\n manager.replaceSelection(lastKey);\n }\n }\n }\n break;\n case \"PageDown\":\n if (delegate.getKeyPageBelow && focusedKey != null) {\n e.preventDefault();\n const nextKey = delegate.getKeyPageBelow(focusedKey);\n navigateToKey(nextKey);\n }\n break;\n case \"PageUp\":\n if (delegate.getKeyPageAbove && focusedKey != null) {\n e.preventDefault();\n const nextKey = delegate.getKeyPageAbove(focusedKey);\n navigateToKey(nextKey);\n }\n break;\n case \"a\":\n if (isCtrlKeyPressed(e) && manager.selectionMode() === \"multiple\" && access(mergedProps.disallowSelectAll) !== true) {\n e.preventDefault();\n manager.selectAll();\n }\n break;\n case \"Escape\":\n if (!e.defaultPrevented) {\n e.preventDefault();\n if (!access(mergedProps.disallowEmptySelection)) {\n manager.clearSelection();\n }\n }\n break;\n case \"Tab\": {\n if (!access(mergedProps.allowsTabNavigation)) {\n if (e.shiftKey) {\n refEl.focus();\n } else {\n const walker = getFocusableTreeWalker(refEl, { tabbable: true });\n let next;\n let last;\n do {\n last = walker.lastChild();\n if (last) {\n next = last;\n }\n } while (last);\n if (next && !next.contains(document.activeElement)) {\n focusWithoutScrolling(next);\n }\n }\n break;\n }\n }\n }\n };\n const onFocusIn = (e) => {\n const manager = access(mergedProps.selectionManager);\n const delegate = access(mergedProps.keyboardDelegate);\n const selectOnFocus = access(mergedProps.selectOnFocus);\n if (manager.isFocused()) {\n if (!e.currentTarget.contains(e.target)) {\n manager.setFocused(false);\n }\n return;\n }\n if (!e.currentTarget.contains(e.target)) {\n return;\n }\n manager.setFocused(true);\n if (manager.focusedKey() == null) {\n const navigateToFirstKey = (key) => {\n if (key == null) {\n return;\n }\n manager.setFocusedKey(key);\n if (selectOnFocus) {\n manager.replaceSelection(key);\n }\n };\n const relatedTarget = e.relatedTarget;\n if (relatedTarget && e.currentTarget.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING) {\n navigateToFirstKey(\n manager.lastSelectedKey() ?? delegate.getLastKey?.()\n );\n } else {\n navigateToFirstKey(\n manager.firstSelectedKey() ?? delegate.getFirstKey?.()\n );\n }\n } else if (!access(mergedProps.isVirtualized)) {\n const scrollEl = finalScrollRef();\n if (scrollEl) {\n scrollEl.scrollTop = scrollPos.top;\n scrollEl.scrollLeft = scrollPos.left;\n const element = scrollEl.querySelector(\n `[data-key=\"${manager.focusedKey()}\"]`\n );\n if (element) {\n focusWithoutScrolling(element);\n scrollIntoView(scrollEl, element);\n }\n }\n }\n };\n const onFocusOut = (e) => {\n const manager = access(mergedProps.selectionManager);\n if (!e.currentTarget.contains(e.relatedTarget)) {\n manager.setFocused(false);\n }\n };\n const onMouseDown = (e) => {\n if (finalScrollRef() === e.target) {\n e.preventDefault();\n }\n };\n const tryAutoFocus = () => {\n const autoFocus = access(mergedProps.autoFocus);\n if (!autoFocus) {\n return;\n }\n const manager = access(mergedProps.selectionManager);\n const delegate = access(mergedProps.keyboardDelegate);\n let focusedKey;\n if (autoFocus === \"first\") {\n focusedKey = delegate.getFirstKey?.();\n }\n if (autoFocus === \"last\") {\n focusedKey = delegate.getLastKey?.();\n }\n const selectedKeys = manager.selectedKeys();\n if (selectedKeys.size) {\n focusedKey = selectedKeys.values().next().value;\n }\n manager.setFocused(true);\n manager.setFocusedKey(focusedKey);\n const refEl = ref();\n if (refEl && focusedKey == null && !access(mergedProps.shouldUseVirtualFocus)) {\n focusWithoutScrolling(refEl);\n }\n };\n onMount(() => {\n if (mergedProps.deferAutoFocus) {\n setTimeout(tryAutoFocus, 0);\n } else {\n tryAutoFocus();\n }\n });\n createEffect(\n on(\n [\n finalScrollRef,\n () => access(mergedProps.isVirtualized),\n () => access(mergedProps.selectionManager).focusedKey()\n ],\n (newValue) => {\n const [scrollEl, isVirtualized, focusedKey] = newValue;\n if (isVirtualized) {\n focusedKey && mergedProps.scrollToKey?.(focusedKey);\n } else {\n if (focusedKey && scrollEl) {\n const element = scrollEl.querySelector(\n `[data-key=\"${focusedKey}\"]`\n );\n if (element) {\n scrollIntoView(scrollEl, element);\n }\n }\n }\n }\n )\n );\n const tabIndex = createMemo(() => {\n if (access(mergedProps.shouldUseVirtualFocus)) {\n return void 0;\n }\n return access(mergedProps.selectionManager).focusedKey() == null ? 0 : -1;\n });\n return {\n tabIndex,\n onKeyDown,\n onMouseDown,\n onFocusIn,\n onFocusOut\n };\n}\nfunction createSelectableItem(props, ref) {\n const manager = () => access(props.selectionManager);\n const key = () => access(props.key);\n const shouldUseVirtualFocus = () => access(props.shouldUseVirtualFocus);\n const onSelect = (e) => {\n if (manager().selectionMode() === \"none\") {\n return;\n }\n if (manager().selectionMode() === \"single\") {\n if (manager().isSelected(key()) && !manager().disallowEmptySelection()) {\n manager().toggleSelection(key());\n } else {\n manager().replaceSelection(key());\n }\n } else if (e?.shiftKey) {\n manager().extendSelection(key());\n } else if (manager().selectionBehavior() === \"toggle\" || isCtrlKeyPressed(e) || \"pointerType\" in e && e.pointerType === \"touch\") {\n manager().toggleSelection(key());\n } else {\n manager().replaceSelection(key());\n }\n };\n const isSelected = () => manager().isSelected(key());\n const isDisabled = () => access(props.disabled) || manager().isDisabled(key());\n const allowsSelection = () => !isDisabled() && manager().canSelectItem(key());\n let pointerDownType = null;\n const onPointerDown = (e) => {\n if (!allowsSelection()) {\n return;\n }\n pointerDownType = e.pointerType;\n if (e.pointerType === \"mouse\" && e.button === 0 && !access(props.shouldSelectOnPressUp)) {\n onSelect(e);\n }\n };\n const onPointerUp = (e) => {\n if (!allowsSelection()) {\n return;\n }\n if (e.pointerType === \"mouse\" && e.button === 0 && access(props.shouldSelectOnPressUp) && access(props.allowsDifferentPressOrigin)) {\n onSelect(e);\n }\n };\n const onClick = (e) => {\n if (!allowsSelection()) {\n return;\n }\n if (access(props.shouldSelectOnPressUp) && !access(props.allowsDifferentPressOrigin) || pointerDownType !== \"mouse\") {\n onSelect(e);\n }\n };\n const onKeyDown = (e) => {\n if (!allowsSelection() || ![\"Enter\", \" \"].includes(e.key)) {\n return;\n }\n if (isNonContiguousSelectionModifier(e)) {\n manager().toggleSelection(key());\n } else {\n onSelect(e);\n }\n };\n const onMouseDown = (e) => {\n if (isDisabled()) {\n e.preventDefault();\n }\n };\n const onFocus = (e) => {\n const refEl = ref();\n if (shouldUseVirtualFocus() || isDisabled() || !refEl) {\n return;\n }\n if (e.target === refEl) {\n manager().setFocusedKey(key());\n }\n };\n const tabIndex = createMemo(() => {\n if (shouldUseVirtualFocus() || isDisabled()) {\n return void 0;\n }\n return key() === manager().focusedKey() ? 0 : -1;\n });\n const dataKey = createMemo(() => {\n return access(props.virtualized) ? void 0 : key();\n });\n createEffect(\n on(\n [\n ref,\n key,\n shouldUseVirtualFocus,\n () => manager().focusedKey(),\n () => manager().isFocused()\n ],\n ([refEl, key2, shouldUseVirtualFocus2, focusedKey, isFocused]) => {\n if (refEl && key2 === focusedKey && isFocused && !shouldUseVirtualFocus2 && document.activeElement !== refEl) {\n if (props.focus) {\n props.focus();\n } else {\n focusWithoutScrolling(refEl);\n }\n }\n }\n )\n );\n return {\n isSelected,\n isDisabled,\n allowsSelection,\n tabIndex,\n dataKey,\n onPointerDown,\n onPointerUp,\n onClick,\n onKeyDown,\n onMouseDown,\n onFocus\n };\n}\n\n// src/selection/selection-manager.ts\nvar SelectionManager = class {\n collection;\n state;\n constructor(collection, state) {\n this.collection = collection;\n this.state = state;\n }\n /** The type of selection that is allowed in the collection. */\n selectionMode() {\n return this.state.selectionMode();\n }\n /** Whether the collection allows empty selection. */\n disallowEmptySelection() {\n return this.state.disallowEmptySelection();\n }\n /** The selection behavior for the collection. */\n selectionBehavior() {\n return this.state.selectionBehavior();\n }\n /** Sets the selection behavior for the collection. */\n setSelectionBehavior(selectionBehavior) {\n this.state.setSelectionBehavior(selectionBehavior);\n }\n /** Whether the collection is currently focused. */\n isFocused() {\n return this.state.isFocused();\n }\n /** Sets whether the collection is focused. */\n setFocused(isFocused) {\n this.state.setFocused(isFocused);\n }\n /** The current focused key in the collection. */\n focusedKey() {\n return this.state.focusedKey();\n }\n /** Sets the focused key. */\n setFocusedKey(key) {\n if (key == null || this.collection().getItem(key)) {\n this.state.setFocusedKey(key);\n }\n }\n /** The currently selected keys in the collection. */\n selectedKeys() {\n return this.state.selectedKeys();\n }\n /** Returns whether a key is selected. */\n isSelected(key) {\n if (this.state.selectionMode() === \"none\") {\n return false;\n }\n const retrievedKey = this.getKey(key);\n if (retrievedKey == null) {\n return false;\n }\n return this.state.selectedKeys().has(retrievedKey);\n }\n /** Whether the selection is empty. */\n isEmpty() {\n return this.state.selectedKeys().size === 0;\n }\n /** Whether all items in the collection are selected. */\n isSelectAll() {\n if (this.isEmpty()) {\n return false;\n }\n const selectedKeys = this.state.selectedKeys();\n return this.getAllSelectableKeys().every((k) => selectedKeys.has(k));\n }\n firstSelectedKey() {\n let first;\n for (const key of this.state.selectedKeys()) {\n const item = this.collection().getItem(key);\n const isItemBeforeFirst = item?.index != null && first?.index != null && item.index < first.index;\n if (!first || isItemBeforeFirst) {\n first = item;\n }\n }\n return first?.key;\n }\n lastSelectedKey() {\n let last;\n for (const key of this.state.selectedKeys()) {\n const item = this.collection().getItem(key);\n const isItemAfterLast = item?.index != null && last?.index != null && item.index > last.index;\n if (!last || isItemAfterLast) {\n last = item;\n }\n }\n return last?.key;\n }\n /** Extends the selection to the given key. */\n extendSelection(toKey) {\n if (this.selectionMode() === \"none\") {\n return;\n }\n if (this.selectionMode() === \"single\") {\n this.replaceSelection(toKey);\n return;\n }\n const retrievedToKey = this.getKey(toKey);\n if (retrievedToKey == null) {\n return;\n }\n const selectedKeys = this.state.selectedKeys();\n const anchorKey = selectedKeys.anchorKey || retrievedToKey;\n const selection = new Selection(selectedKeys, anchorKey, retrievedToKey);\n for (const key of this.getKeyRange(\n anchorKey,\n selectedKeys.currentKey || retrievedToKey\n )) {\n selection.delete(key);\n }\n for (const key of this.getKeyRange(retrievedToKey, anchorKey)) {\n if (this.canSelectItem(key)) {\n selection.add(key);\n }\n }\n this.state.setSelectedKeys(selection);\n }\n getKeyRange(from, to) {\n const fromItem = this.collection().getItem(from);\n const toItem = this.collection().getItem(to);\n if (fromItem && toItem) {\n if (fromItem.index != null && toItem.index != null && fromItem.index <= toItem.index) {\n return this.getKeyRangeInternal(from, to);\n }\n return this.getKeyRangeInternal(to, from);\n }\n return [];\n }\n getKeyRangeInternal(from, to) {\n const keys = [];\n let key = from;\n while (key != null) {\n const item = this.collection().getItem(key);\n if (item && item.type === \"item\") {\n keys.push(key);\n }\n if (key === to) {\n return keys;\n }\n key = this.collection().getKeyAfter(key);\n }\n return [];\n }\n getKey(key) {\n const item = this.collection().getItem(key);\n if (!item) {\n return key;\n }\n if (!item || item.type !== \"item\") {\n return null;\n }\n return item.key;\n }\n /** Toggles whether the given key is selected. */\n toggleSelection(key) {\n if (this.selectionMode() === \"none\") {\n return;\n }\n if (this.selectionMode() === \"single\" && !this.isSelected(key)) {\n this.replaceSelection(key);\n return;\n }\n const retrievedKey = this.getKey(key);\n if (retrievedKey == null) {\n return;\n }\n const keys = new Selection(this.state.selectedKeys());\n if (keys.has(retrievedKey)) {\n keys.delete(retrievedKey);\n } else if (this.canSelectItem(retrievedKey)) {\n keys.add(retrievedKey);\n keys.anchorKey = retrievedKey;\n keys.currentKey = retrievedKey;\n }\n if (this.disallowEmptySelection() && keys.size === 0) {\n return;\n }\n this.state.setSelectedKeys(keys);\n }\n /** Replaces the selection with only the given key. */\n replaceSelection(key) {\n if (this.selectionMode() === \"none\") {\n return;\n }\n const retrievedKey = this.getKey(key);\n if (retrievedKey == null) {\n return;\n }\n const selection = this.canSelectItem(retrievedKey) ? new Selection([retrievedKey], retrievedKey, retrievedKey) : new Selection();\n this.state.setSelectedKeys(selection);\n }\n /** Replaces the selection with the given keys. */\n setSelectedKeys(keys) {\n if (this.selectionMode() === \"none\") {\n return;\n }\n const selection = new Selection();\n for (const key of keys) {\n const retrievedKey = this.getKey(key);\n if (retrievedKey != null) {\n selection.add(retrievedKey);\n if (this.selectionMode() === \"single\") {\n break;\n }\n }\n }\n this.state.setSelectedKeys(selection);\n }\n /** Selects all items in the collection. */\n selectAll() {\n if (this.selectionMode() === \"multiple\") {\n this.state.setSelectedKeys(new Set(this.getAllSelectableKeys()));\n }\n }\n /**\n * Removes all keys from the selection.\n */\n clearSelection() {\n const selectedKeys = this.state.selectedKeys();\n if (!this.disallowEmptySelection() && selectedKeys.size > 0) {\n this.state.setSelectedKeys(new Selection());\n }\n }\n /**\n * Toggles between select all and an empty selection.\n */\n toggleSelectAll() {\n if (this.isSelectAll()) {\n this.clearSelection();\n } else {\n this.selectAll();\n }\n }\n select(key, e) {\n if (this.selectionMode() === \"none\") {\n return;\n }\n if (this.selectionMode() === \"single\") {\n if (this.isSelected(key) && !this.disallowEmptySelection()) {\n this.toggleSelection(key);\n } else {\n this.replaceSelection(key);\n }\n } else if (this.selectionBehavior() === \"toggle\" || e && e.pointerType === \"touch\") {\n this.toggleSelection(key);\n } else {\n this.replaceSelection(key);\n }\n }\n /** Returns whether the current selection is equal to the given selection. */\n isSelectionEqual(selection) {\n if (selection === this.state.selectedKeys()) {\n return true;\n }\n const selectedKeys = this.selectedKeys();\n if (selection.size !== selectedKeys.size) {\n return false;\n }\n for (const key of selection) {\n if (!selectedKeys.has(key)) {\n return false;\n }\n }\n for (const key of selectedKeys) {\n if (!selection.has(key)) {\n return false;\n }\n }\n return true;\n }\n canSelectItem(key) {\n if (this.state.selectionMode() === \"none\") {\n return false;\n }\n const item = this.collection().getItem(key);\n return item != null && !item.disabled;\n }\n isDisabled(key) {\n const item = this.collection().getItem(key);\n return !item || item.disabled;\n }\n getAllSelectableKeys() {\n const keys = [];\n const addKeys = (key) => {\n while (key != null) {\n if (this.canSelectItem(key)) {\n const item = this.collection().getItem(key);\n if (!item) {\n continue;\n }\n if (item.type === \"item\") {\n keys.push(key);\n }\n }\n key = this.collection().getKeyAfter(key);\n }\n };\n addKeys(this.collection().getFirstKey());\n return keys;\n }\n};\n\n// src/list/list-collection.ts\nvar ListCollection = class {\n keyMap = /* @__PURE__ */ new Map();\n iterable;\n firstKey;\n lastKey;\n constructor(nodes) {\n this.iterable = nodes;\n for (const node of nodes) {\n this.keyMap.set(node.key, node);\n }\n if (this.keyMap.size === 0) {\n return;\n }\n let last;\n let index = 0;\n for (const [key, node] of this.keyMap) {\n if (last) {\n last.nextKey = key;\n node.prevKey = last.key;\n } else {\n this.firstKey = key;\n node.prevKey = void 0;\n }\n if (node.type === \"item\") {\n node.index = index++;\n }\n last = node;\n last.nextKey = void 0;\n }\n this.lastKey = last.key;\n }\n *[Symbol.iterator]() {\n yield* this.iterable;\n }\n getSize() {\n return this.keyMap.size;\n }\n getKeys() {\n return this.keyMap.keys();\n }\n getKeyBefore(key) {\n return this.keyMap.get(key)?.prevKey;\n }\n getKeyAfter(key) {\n return this.keyMap.get(key)?.nextKey;\n }\n getFirstKey() {\n return this.firstKey;\n }\n getLastKey() {\n return this.lastKey;\n }\n getItem(key) {\n return this.keyMap.get(key);\n }\n at(idx) {\n const keys = [...this.getKeys()];\n return this.getItem(keys[idx]);\n }\n};\nfunction createListState(props) {\n const selectionState = createMultipleSelectionState(props);\n const factory = (nodes) => {\n return props.filter ? new ListCollection(props.filter(nodes)) : new ListCollection(nodes);\n };\n const collection = createCollection(\n {\n dataSource: () => access(props.dataSource),\n getKey: () => access(props.getKey),\n getTextValue: () => access(props.getTextValue),\n getDisabled: () => access(props.getDisabled),\n getSectionChildren: () => access(props.getSectionChildren),\n factory\n },\n [() => props.filter]\n );\n const selectionManager = new SelectionManager(collection, selectionState);\n createComputed(() => {\n const focusedKey = selectionState.focusedKey();\n if (focusedKey != null && !collection().getItem(focusedKey)) {\n selectionState.setFocusedKey(void 0);\n }\n });\n return {\n collection,\n selectionManager: () => selectionManager\n };\n}\n\nexport { ListCollection, Selection, SelectionManager, createListState, createMultipleSelectionState, createSelectableCollection, createSelectableItem, createTypeSelect, isSameSelection };\n","import { createControllableArraySignal } from './BLN63FDC.js';\nimport { access, mergeDefaultProps, getDocument, addItemToArray } from '@kobalte/utils';\nimport { createContext, useContext, createEffect, onCleanup, createComponent } from 'solid-js';\n\nvar DomCollectionContext = createContext();\nfunction useOptionalDomCollectionContext() {\n return useContext(DomCollectionContext);\n}\nfunction useDomCollectionContext() {\n const context = useOptionalDomCollectionContext();\n if (context === void 0) {\n throw new Error(\n \"[kobalte]: `useDomCollectionContext` must be used within a `DomCollectionProvider` component\"\n );\n }\n return context;\n}\nfunction isElementPreceding(a, b) {\n return Boolean(\n b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING\n );\n}\nfunction findDOMIndex(items, item) {\n const itemEl = item.ref();\n if (!itemEl) {\n return -1;\n }\n let length = items.length;\n if (!length) {\n return -1;\n }\n while (length--) {\n const currentItemEl = items[length]?.ref();\n if (!currentItemEl) {\n continue;\n }\n if (isElementPreceding(currentItemEl, itemEl)) {\n return length + 1;\n }\n }\n return 0;\n}\nfunction sortBasedOnDOMPosition(items) {\n const pairs = items.map((item, index) => [index, item]);\n let isOrderDifferent = false;\n pairs.sort(([indexA, a], [indexB, b]) => {\n const elementA = a.ref();\n const elementB = b.ref();\n if (elementA === elementB) {\n return 0;\n }\n if (!elementA || !elementB) {\n return 0;\n }\n if (isElementPreceding(elementA, elementB)) {\n if (indexA > indexB) {\n isOrderDifferent = true;\n }\n return -1;\n }\n if (indexA < indexB) {\n isOrderDifferent = true;\n }\n return 1;\n });\n if (isOrderDifferent) {\n return pairs.map(([_, item]) => item);\n }\n return items;\n}\nfunction setItemsBasedOnDOMPosition(items, setItems) {\n const sortedItems = sortBasedOnDOMPosition(items);\n if (items !== sortedItems) {\n setItems(sortedItems);\n }\n}\nfunction getCommonParent(items) {\n const firstItem = items[0];\n const lastItemEl = items[items.length - 1]?.ref();\n let parentEl = firstItem?.ref()?.parentElement;\n while (parentEl) {\n if (lastItemEl && parentEl.contains(lastItemEl)) {\n return parentEl;\n }\n parentEl = parentEl.parentElement;\n }\n return getDocument(parentEl).body;\n}\nfunction createTimeoutObserver(items, setItems) {\n createEffect(() => {\n const timeout = setTimeout(() => {\n setItemsBasedOnDOMPosition(items(), setItems);\n });\n onCleanup(() => clearTimeout(timeout));\n });\n}\nfunction createSortBasedOnDOMPosition(items, setItems) {\n if (typeof IntersectionObserver !== \"function\") {\n createTimeoutObserver(items, setItems);\n return;\n }\n let previousItems = [];\n createEffect(() => {\n const callback = () => {\n const hasPreviousItems = !!previousItems.length;\n previousItems = items();\n if (!hasPreviousItems) {\n return;\n }\n setItemsBasedOnDOMPosition(items(), setItems);\n };\n const root = getCommonParent(items());\n const observer = new IntersectionObserver(callback, { root });\n for (const item of items()) {\n const itemEl = item.ref();\n if (itemEl) {\n observer.observe(itemEl);\n }\n }\n onCleanup(() => observer.disconnect());\n });\n}\n\n// src/primitives/create-dom-collection/create-dom-collection.ts\nfunction createDomCollection(props = {}) {\n const [items, setItems] = createControllableArraySignal({\n value: () => access(props.items),\n onChange: (value) => props.onItemsChange?.(value)\n });\n createSortBasedOnDOMPosition(items, setItems);\n const registerItem = (item) => {\n setItems((prevItems) => {\n const index = findDOMIndex(prevItems, item);\n return addItemToArray(prevItems, item, index);\n });\n return () => {\n setItems((prevItems) => {\n const nextItems = prevItems.filter(\n (prevItem) => prevItem.ref() !== item.ref()\n );\n if (prevItems.length === nextItems.length) {\n return prevItems;\n }\n return nextItems;\n });\n };\n };\n const DomCollectionProvider = (props2) => {\n return createComponent(DomCollectionContext.Provider, {\n value: { registerItem },\n get children() {\n return props2.children;\n }\n });\n };\n return { DomCollectionProvider };\n}\nfunction createDomCollectionItem(props) {\n const context = useDomCollectionContext();\n const mergedProps = mergeDefaultProps({ shouldRegisterItem: true }, props);\n createEffect(() => {\n if (!mergedProps.shouldRegisterItem) {\n return;\n }\n const unregister = context.registerItem(mergedProps.getItem());\n onCleanup(unregister);\n });\n}\n\nexport { DomCollectionContext, createDomCollection, createDomCollectionItem, useDomCollectionContext, useOptionalDomCollectionContext };\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n const firstChar = placement[0];\n return firstChar === 't' || firstChar === 'b' ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.includes('start') ? placement.replace('start', 'end') : placement.replace('end', 'start');\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n const side = getSide(placement);\n return oppositeSideMap[side] + placement.slice(side.length);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n// Maximum number of resets that can occur before bailing to avoid infinite reset loops.\nconst MAX_RESET_COUNT = 50;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const platformWithDetectOverflow = platform.detectOverflow ? platform : {\n ...platform,\n detectOverflow\n };\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let resetCount = 0;\n const middlewareData = {};\n for (let i = 0; i < middleware.length; i++) {\n const currentMiddleware = middleware[i];\n if (!currentMiddleware) {\n continue;\n }\n const {\n name,\n fn\n } = currentMiddleware;\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform: platformWithDetectOverflow,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData[name] = {\n ...middlewareData[name],\n ...data\n };\n if (reset && resetCount < MAX_RESET_COUNT) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects,\n platform\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n platform\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== 'inline' && display !== 'contents';\n}\nfunction isTableElement(element) {\n return /^(table|td|th)$/.test(getNodeName(element));\n}\nfunction isTopLayer(element) {\n try {\n if (element.matches(':popover-open')) {\n return true;\n }\n } catch (_e) {\n // no-op\n }\n try {\n return element.matches(':modal');\n } catch (_e) {\n return false;\n }\n}\nconst willChangeRe = /transform|translate|scale|rotate|perspective|filter/;\nconst containRe = /paint|layout|strict|content/;\nconst isNotNone = value => !!value && value !== 'none';\nlet isWebKitValue;\nfunction isContainingBlock(elementOrCss) {\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || '') || containRe.test(css.contain || '');\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (isWebKitValue == null) {\n isWebKitValue = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('-webkit-backdrop-filter', 'none');\n }\n return isWebKitValue;\n}\nfunction isLastTraversableNode(node) {\n return /^(html|body|#document)$/.test(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n } else {\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n }\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && (currentContainingBlockComputedStyle.position === 'absolute' || currentContainingBlockComputedStyle.position === 'fixed') || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);\n let top = firstRect.top;\n let right = firstRect.right;\n let bottom = firstRect.bottom;\n let left = firstRect.left;\n for (let i = 1; i < clippingAncestors.length; i++) {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);\n top = max(rect.top, top);\n right = min(rect.right, right);\n bottom = min(rect.bottom, bottom);\n left = max(rect.left, left);\n }\n return {\n width: right - left,\n height: bottom - top,\n x: left,\n y: top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n if (floating) {\n resizeObserver.observe(floating);\n }\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import { useLocale } from './XHJPQEZP.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { createComponent, mergeProps, effect, setAttribute, template } from 'solid-js/web';\nimport { mergeDefaultProps, mergeRefs, getWindow } from '@kobalte/utils';\nimport { createContext, useContext, splitProps, createSignal, createEffect, onCleanup } from 'solid-js';\nimport { combineStyle } from '@solid-primitives/props';\nimport { autoUpdate, offset, flip, shift, size, hide, arrow, computePosition, platform } from '@floating-ui/dom';\n\nvar PopperContext = createContext();\nfunction usePopperContext() {\n const context = useContext(PopperContext);\n if (context === void 0) {\n throw new Error(\"[kobalte]: `usePopperContext` must be used within a `Popper` component\");\n }\n return context;\n}\n\n// src/popper/popper-arrow.tsx\nvar _tmpl$ = /* @__PURE__ */ template(`<svg display=\"block\" viewBox=\"0 0 30 30\" style=\"transform:scale(1.02)\"><g><path fill=\"none\" d=\"M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z\"></path><path stroke=\"none\" d=\"M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z\">`);\nvar DEFAULT_SIZE = 30;\nvar HALF_DEFAULT_SIZE = DEFAULT_SIZE / 2;\nvar ROTATION_DEG = {\n top: 180,\n right: -90,\n bottom: 0,\n left: 90\n};\nfunction PopperArrow(props) {\n const context = usePopperContext();\n const mergedProps = mergeDefaultProps({\n size: DEFAULT_SIZE\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"style\", \"size\"]);\n const dir = () => context.currentPlacement().split(\"-\")[0];\n const contentStyle = createComputedStyle(context.contentRef);\n const fill = () => contentStyle()?.getPropertyValue(\"background-color\") || \"none\";\n const stroke = () => contentStyle()?.getPropertyValue(`border-${dir()}-color`) || \"none\";\n const borderWidth = () => contentStyle()?.getPropertyValue(`border-${dir()}-width`) || \"0px\";\n const strokeWidth = () => {\n return Number.parseInt(borderWidth()) * 2 * (DEFAULT_SIZE / local.size);\n };\n const rotate = () => {\n return `rotate(${ROTATION_DEG[dir()]} ${HALF_DEFAULT_SIZE} ${HALF_DEFAULT_SIZE}) translate(0 2)`;\n };\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n ref(r$) {\n const _ref$ = mergeRefs(context.setArrowRef, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n \"aria-hidden\": \"true\",\n get style() {\n return combineStyle({\n // server side rendering\n position: \"absolute\",\n \"font-size\": `${local.size}px`,\n width: \"1em\",\n height: \"1em\",\n \"pointer-events\": \"none\",\n fill: fill(),\n stroke: stroke(),\n \"stroke-width\": strokeWidth()\n }, local.style);\n }\n }, others, {\n get children() {\n const _el$ = _tmpl$(), _el$2 = _el$.firstChild;\n effect(() => setAttribute(_el$2, \"transform\", rotate()));\n return _el$;\n }\n }));\n}\nfunction createComputedStyle(element) {\n const [style, setStyle] = createSignal();\n createEffect(() => {\n const el = element();\n el && setStyle(getWindow(el).getComputedStyle(el));\n });\n return style;\n}\nfunction PopperPositioner(props) {\n const context = usePopperContext();\n const [local, others] = splitProps(props, [\"ref\", \"style\"]);\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n ref(r$) {\n const _ref$ = mergeRefs(context.setPositionerRef, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n \"data-popper-positioner\": \"\",\n get style() {\n return combineStyle({\n position: \"absolute\",\n top: 0,\n left: 0,\n \"min-width\": \"max-content\"\n }, local.style);\n }\n }, others));\n}\n\n// src/popper/utils.ts\nfunction createDOMRect(anchorRect) {\n const { x = 0, y = 0, width = 0, height = 0 } = anchorRect ?? {};\n if (typeof DOMRect === \"function\") {\n return new DOMRect(x, y, width, height);\n }\n const rect = {\n x,\n y,\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x\n };\n return { ...rect, toJSON: () => rect };\n}\nfunction getAnchorElement(anchor, getAnchorRect) {\n const contextElement = anchor;\n return {\n contextElement,\n getBoundingClientRect: () => {\n const anchorRect = getAnchorRect(anchor);\n if (anchorRect) {\n return createDOMRect(anchorRect);\n }\n if (anchor) {\n return anchor.getBoundingClientRect();\n }\n return createDOMRect();\n }\n };\n}\nfunction isValidPlacement(flip2) {\n return /^(?:top|bottom|left|right)(?:-(?:start|end))?$/.test(flip2);\n}\nvar REVERSE_BASE_PLACEMENT = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nfunction getTransformOrigin(placement, readingDirection) {\n const [basePlacement, alignment] = placement.split(\"-\");\n const reversePlacement = REVERSE_BASE_PLACEMENT[basePlacement];\n if (!alignment) {\n return `${reversePlacement} center`;\n }\n if (basePlacement === \"left\" || basePlacement === \"right\") {\n return `${reversePlacement} ${alignment === \"start\" ? \"top\" : \"bottom\"}`;\n }\n if (alignment === \"start\") {\n return `${reversePlacement} ${readingDirection === \"rtl\" ? \"right\" : \"left\"}`;\n }\n return `${reversePlacement} ${readingDirection === \"rtl\" ? \"left\" : \"right\"}`;\n}\n\n// src/popper/popper-root.tsx\nfunction PopperRoot(props) {\n const mergedProps = mergeDefaultProps({\n getAnchorRect: (anchor) => anchor?.getBoundingClientRect(),\n placement: \"bottom\",\n gutter: 0,\n shift: 0,\n flip: true,\n slide: true,\n overlap: false,\n sameWidth: false,\n fitViewport: false,\n hideWhenDetached: false,\n detachedPadding: 0,\n arrowPadding: 4,\n overflowPadding: 8\n }, props);\n const [positionerRef, setPositionerRef] = createSignal();\n const [arrowRef, setArrowRef] = createSignal();\n const [currentPlacement, setCurrentPlacement] = createSignal(mergedProps.placement);\n const anchorRef = () => getAnchorElement(mergedProps.anchorRef?.(), mergedProps.getAnchorRect);\n const {\n direction\n } = useLocale();\n async function updatePosition() {\n const referenceEl = anchorRef();\n const floatingEl = positionerRef();\n const arrowEl = arrowRef();\n if (!referenceEl || !floatingEl) {\n return;\n }\n const arrowOffset = (arrowEl?.clientHeight || 0) / 2;\n const finalGutter = typeof mergedProps.gutter === \"number\" ? mergedProps.gutter + arrowOffset : mergedProps.gutter ?? arrowOffset;\n floatingEl.style.setProperty(\"--kb-popper-content-overflow-padding\", `${mergedProps.overflowPadding}px`);\n referenceEl.getBoundingClientRect();\n const middleware = [\n // https://floating-ui.com/docs/offset\n offset(({\n placement\n }) => {\n const hasAlignment = !!placement.split(\"-\")[1];\n return {\n mainAxis: finalGutter,\n crossAxis: !hasAlignment ? mergedProps.shift : void 0,\n alignmentAxis: mergedProps.shift\n };\n })\n ];\n if (mergedProps.flip !== false) {\n const fallbackPlacements = typeof mergedProps.flip === \"string\" ? mergedProps.flip.split(\" \") : void 0;\n if (fallbackPlacements !== void 0 && !fallbackPlacements.every(isValidPlacement)) {\n throw new Error(\"`flip` expects a spaced-delimited list of placements\");\n }\n middleware.push(flip({\n padding: mergedProps.overflowPadding,\n fallbackPlacements\n }));\n }\n if (mergedProps.slide || mergedProps.overlap) {\n middleware.push(shift({\n mainAxis: mergedProps.slide,\n crossAxis: mergedProps.overlap,\n padding: mergedProps.overflowPadding\n }));\n }\n middleware.push(size({\n padding: mergedProps.overflowPadding,\n apply({\n availableWidth,\n availableHeight,\n rects\n }) {\n const referenceWidth = Math.round(rects.reference.width);\n availableWidth = Math.floor(availableWidth);\n availableHeight = Math.floor(availableHeight);\n floatingEl.style.setProperty(\"--kb-popper-anchor-width\", `${referenceWidth}px`);\n floatingEl.style.setProperty(\"--kb-popper-content-available-width\", `${availableWidth}px`);\n floatingEl.style.setProperty(\"--kb-popper-content-available-height\", `${availableHeight}px`);\n if (mergedProps.sameWidth) {\n floatingEl.style.width = `${referenceWidth}px`;\n }\n if (mergedProps.fitViewport) {\n floatingEl.style.maxWidth = `${availableWidth}px`;\n floatingEl.style.maxHeight = `${availableHeight}px`;\n }\n }\n }));\n if (mergedProps.hideWhenDetached) {\n middleware.push(hide({\n padding: mergedProps.detachedPadding\n }));\n }\n if (arrowEl) {\n middleware.push(arrow({\n element: arrowEl,\n padding: mergedProps.arrowPadding\n }));\n }\n const pos = await computePosition(referenceEl, floatingEl, {\n placement: mergedProps.placement,\n strategy: \"absolute\",\n middleware,\n platform: {\n ...platform,\n isRTL: () => direction() === \"rtl\"\n }\n });\n setCurrentPlacement(pos.placement);\n mergedProps.onCurrentPlacementChange?.(pos.placement);\n if (!floatingEl) {\n return;\n }\n floatingEl.style.setProperty(\"--kb-popper-content-transform-origin\", getTransformOrigin(pos.placement, direction()));\n const x = Math.round(pos.x);\n const y = Math.round(pos.y);\n let visibility;\n if (mergedProps.hideWhenDetached) {\n visibility = pos.middlewareData.hide?.referenceHidden ? \"hidden\" : \"visible\";\n }\n Object.assign(floatingEl.style, {\n top: \"0\",\n left: \"0\",\n transform: `translate3d(${x}px, ${y}px, 0)`,\n visibility\n });\n if (arrowEl && pos.middlewareData.arrow) {\n const {\n x: arrowX,\n y: arrowY\n } = pos.middlewareData.arrow;\n const dir = pos.placement.split(\"-\")[0];\n Object.assign(arrowEl.style, {\n left: arrowX != null ? `${arrowX}px` : \"\",\n top: arrowY != null ? `${arrowY}px` : \"\",\n [dir]: \"100%\"\n });\n }\n }\n createEffect(() => {\n const referenceEl = anchorRef();\n const floatingEl = positionerRef();\n if (!referenceEl || !floatingEl) {\n return;\n }\n const cleanupAutoUpdate = autoUpdate(referenceEl, floatingEl, updatePosition, {\n // JSDOM doesn't support ResizeObserver\n elementResize: typeof ResizeObserver === \"function\"\n });\n onCleanup(cleanupAutoUpdate);\n });\n createEffect(() => {\n const positioner = positionerRef();\n const content = mergedProps.contentRef?.();\n if (!positioner || !content) {\n return;\n }\n queueMicrotask(() => {\n positioner.style.zIndex = getComputedStyle(content).zIndex;\n });\n });\n const context = {\n currentPlacement,\n contentRef: () => mergedProps.contentRef?.(),\n setPositionerRef,\n setArrowRef\n };\n return createComponent(PopperContext.Provider, {\n value: context,\n get children() {\n return mergedProps.children;\n }\n });\n}\n\n// src/popper/index.tsx\nvar Popper = Object.assign(PopperRoot, {\n Arrow: PopperArrow,\n Context: PopperContext,\n usePopperContext,\n Positioner: PopperPositioner\n});\n\nexport { Popper, PopperArrow, PopperContext, PopperPositioner, PopperRoot, usePopperContext };\n","import { getDocument } from '@kobalte/utils';\n\n// src/dismissable-layer/layer-stack.tsx\nvar DATA_TOP_LAYER_ATTR = \"data-kb-top-layer\";\nvar originalBodyPointerEvents;\nvar hasDisabledBodyPointerEvents = false;\nvar layers = [];\nfunction indexOf(node) {\n return layers.findIndex((layer) => layer.node === node);\n}\nfunction find(node) {\n return layers[indexOf(node)];\n}\nfunction isTopMostLayer(node) {\n return layers[layers.length - 1].node === node;\n}\nfunction getPointerBlockingLayers() {\n return layers.filter((layer) => layer.isPointerBlocking);\n}\nfunction getTopMostPointerBlockingLayer() {\n return [...getPointerBlockingLayers()].slice(-1)[0];\n}\nfunction hasPointerBlockingLayer() {\n return getPointerBlockingLayers().length > 0;\n}\nfunction isBelowPointerBlockingLayer(node) {\n const highestBlockingIndex = indexOf(getTopMostPointerBlockingLayer()?.node);\n return indexOf(node) < highestBlockingIndex;\n}\nfunction addLayer(layer) {\n layers.push(layer);\n}\nfunction removeLayer(node) {\n const index = indexOf(node);\n if (index < 0) {\n return;\n }\n layers.splice(index, 1);\n}\nfunction assignPointerEventToLayers() {\n for (const {\n node\n } of layers) {\n node.style.pointerEvents = isBelowPointerBlockingLayer(node) ? \"none\" : \"auto\";\n }\n}\nfunction disableBodyPointerEvents(node) {\n if (hasPointerBlockingLayer() && !hasDisabledBodyPointerEvents) {\n const ownerDocument = getDocument(node);\n originalBodyPointerEvents = document.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n hasDisabledBodyPointerEvents = true;\n }\n}\nfunction restoreBodyPointerEvents(node) {\n if (hasPointerBlockingLayer()) {\n return;\n }\n const ownerDocument = getDocument(node);\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n if (ownerDocument.body.style.length === 0) {\n ownerDocument.body.removeAttribute(\"style\");\n }\n hasDisabledBodyPointerEvents = false;\n}\nvar layerStack = {\n layers,\n isTopMostLayer,\n hasPointerBlockingLayer,\n isBelowPointerBlockingLayer,\n addLayer,\n removeLayer,\n indexOf,\n find,\n assignPointerEventToLayers,\n disableBodyPointerEvents,\n restoreBodyPointerEvents\n};\n\nexport { DATA_TOP_LAYER_ATTR, layerStack };\n","import { DATA_TOP_LAYER_ATTR } from './ZKYDDHM6.js';\nimport { access, noop, getDocument, composeEventHandlers, contains, isCtrlKey } from '@kobalte/utils';\nimport { createEffect, onCleanup } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\nvar POINTER_DOWN_OUTSIDE_EVENT = \"interactOutside.pointerDownOutside\";\nvar FOCUS_OUTSIDE_EVENT = \"interactOutside.focusOutside\";\nfunction createInteractOutside(props, ref) {\n let pointerDownTimeoutId;\n let clickHandler = noop;\n const ownerDocument = () => getDocument(ref());\n const onPointerDownOutside = (e) => props.onPointerDownOutside?.(e);\n const onFocusOutside = (e) => props.onFocusOutside?.(e);\n const onInteractOutside = (e) => props.onInteractOutside?.(e);\n const isEventOutside = (e) => {\n const target = e.target;\n if (!(target instanceof Element)) {\n return false;\n }\n if (target.closest(`[${DATA_TOP_LAYER_ATTR}]`)) {\n return false;\n }\n if (!contains(ownerDocument(), target)) {\n return false;\n }\n if (contains(ref(), target)) {\n return false;\n }\n return !props.shouldExcludeElement?.(target);\n };\n const onPointerDown = (e) => {\n function handler() {\n const container = ref();\n const target = e.target;\n if (!container || !target || !isEventOutside(e)) {\n return;\n }\n const handler2 = composeEventHandlers([\n onPointerDownOutside,\n onInteractOutside\n ]);\n target.addEventListener(POINTER_DOWN_OUTSIDE_EVENT, handler2, {\n once: true\n });\n const pointerDownOutsideEvent = new CustomEvent(\n POINTER_DOWN_OUTSIDE_EVENT,\n {\n bubbles: false,\n cancelable: true,\n detail: {\n originalEvent: e,\n isContextMenu: e.button === 2 || isCtrlKey(e) && e.button === 0\n }\n }\n );\n target.dispatchEvent(pointerDownOutsideEvent);\n }\n if (e.pointerType === \"touch\") {\n ownerDocument().removeEventListener(\"click\", handler);\n clickHandler = handler;\n ownerDocument().addEventListener(\"click\", handler, { once: true });\n } else {\n handler();\n }\n };\n const onFocusIn = (e) => {\n const container = ref();\n const target = e.target;\n if (!container || !target || !isEventOutside(e)) {\n return;\n }\n const handler = composeEventHandlers([\n onFocusOutside,\n onInteractOutside\n ]);\n target.addEventListener(FOCUS_OUTSIDE_EVENT, handler, { once: true });\n const focusOutsideEvent = new CustomEvent(FOCUS_OUTSIDE_EVENT, {\n bubbles: false,\n cancelable: true,\n detail: {\n originalEvent: e,\n isContextMenu: false\n }\n });\n target.dispatchEvent(focusOutsideEvent);\n };\n createEffect(() => {\n if (isServer) {\n return;\n }\n if (access(props.isDisabled)) {\n return;\n }\n pointerDownTimeoutId = window.setTimeout(() => {\n ownerDocument().addEventListener(\"pointerdown\", onPointerDown, true);\n }, 0);\n ownerDocument().addEventListener(\"focusin\", onFocusIn, true);\n onCleanup(() => {\n window.clearTimeout(pointerDownTimeoutId);\n ownerDocument().removeEventListener(\"click\", clickHandler);\n ownerDocument().removeEventListener(\"pointerdown\", onPointerDown, true);\n ownerDocument().removeEventListener(\"focusin\", onFocusIn, true);\n });\n });\n}\n\nexport { createInteractOutside };\n","import { access, getDocument, EventKey } from '@kobalte/utils';\nimport { createEffect, onCleanup } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\n// src/primitives/create-escape-key-down/create-escape-key-down.ts\nfunction createEscapeKeyDown(props) {\n const handleKeyDown = (event) => {\n if (event.key === EventKey.Escape) {\n props.onEscapeKeyDown?.(event);\n }\n };\n createEffect(() => {\n if (isServer) {\n return;\n }\n if (access(props.isDisabled)) {\n return;\n }\n const document = props.ownerDocument?.() ?? getDocument();\n document.addEventListener(\"keydown\", handleKeyDown);\n onCleanup(() => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n });\n });\n}\n\nexport { createEscapeKeyDown };\n","import { createInteractOutside } from './KKN23NY7.js';\nimport { createEscapeKeyDown } from './QEMPLYZX.js';\nimport { layerStack } from './ZKYDDHM6.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { createComponent, mergeProps } from 'solid-js/web';\nimport { getDocument, mergeRefs, contains } from '@kobalte/utils';\nimport { createContext, splitProps, onMount, createEffect, on, onCleanup, useContext } from 'solid-js';\n\nvar DismissableLayerContext = createContext();\nfunction useOptionalDismissableLayerContext() {\n return useContext(DismissableLayerContext);\n}\n\n// src/dismissable-layer/dismissable-layer.tsx\nfunction DismissableLayer(props) {\n let ref;\n const parentContext = useOptionalDismissableLayerContext();\n const [local, others] = splitProps(props, [\"ref\", \"disableOutsidePointerEvents\", \"excludedElements\", \"onEscapeKeyDown\", \"onPointerDownOutside\", \"onFocusOutside\", \"onInteractOutside\", \"onDismiss\", \"bypassTopMostLayerCheck\"]);\n const nestedLayers = /* @__PURE__ */ new Set([]);\n const registerNestedLayer = (element) => {\n nestedLayers.add(element);\n const parentUnregister = parentContext?.registerNestedLayer(element);\n return () => {\n nestedLayers.delete(element);\n parentUnregister?.();\n };\n };\n const shouldExcludeElement = (element) => {\n if (!ref) {\n return false;\n }\n return local.excludedElements?.some((node) => contains(node(), element)) || [...nestedLayers].some((layer) => contains(layer, element));\n };\n const onPointerDownOutside = (e) => {\n if (!ref || layerStack.isBelowPointerBlockingLayer(ref)) {\n return;\n }\n if (!local.bypassTopMostLayerCheck && !layerStack.isTopMostLayer(ref)) {\n return;\n }\n local.onPointerDownOutside?.(e);\n local.onInteractOutside?.(e);\n if (!e.defaultPrevented) {\n local.onDismiss?.();\n }\n };\n const onFocusOutside = (e) => {\n local.onFocusOutside?.(e);\n local.onInteractOutside?.(e);\n if (!e.defaultPrevented) {\n local.onDismiss?.();\n }\n };\n createInteractOutside({\n shouldExcludeElement,\n onPointerDownOutside,\n onFocusOutside\n }, () => ref);\n createEscapeKeyDown({\n ownerDocument: () => getDocument(ref),\n onEscapeKeyDown: (e) => {\n if (!ref || !layerStack.isTopMostLayer(ref)) {\n return;\n }\n local.onEscapeKeyDown?.(e);\n if (!e.defaultPrevented && local.onDismiss) {\n e.preventDefault();\n local.onDismiss();\n }\n }\n });\n onMount(() => {\n if (!ref) {\n return;\n }\n layerStack.addLayer({\n node: ref,\n isPointerBlocking: local.disableOutsidePointerEvents,\n dismiss: local.onDismiss\n });\n const unregisterFromParentLayer = parentContext?.registerNestedLayer(ref);\n layerStack.assignPointerEventToLayers();\n layerStack.disableBodyPointerEvents(ref);\n onCleanup(() => {\n if (!ref) {\n return;\n }\n layerStack.removeLayer(ref);\n unregisterFromParentLayer?.();\n layerStack.assignPointerEventToLayers();\n layerStack.restoreBodyPointerEvents(ref);\n });\n });\n createEffect(on([() => ref, () => local.disableOutsidePointerEvents], ([ref2, disableOutsidePointerEvents]) => {\n if (!ref2) {\n return;\n }\n const layer = layerStack.find(ref2);\n if (layer && layer.isPointerBlocking !== disableOutsidePointerEvents) {\n layer.isPointerBlocking = disableOutsidePointerEvents;\n layerStack.assignPointerEventToLayers();\n }\n if (disableOutsidePointerEvents) {\n layerStack.disableBodyPointerEvents(ref2);\n }\n onCleanup(() => {\n layerStack.restoreBodyPointerEvents(ref2);\n });\n }, {\n defer: true\n }));\n const context = {\n registerNestedLayer\n };\n return createComponent(DismissableLayerContext.Provider, {\n value: context,\n get children() {\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n ref(r$) {\n const _ref$ = mergeRefs((el) => ref = el, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n }\n }, others));\n }\n });\n}\n\nexport { DismissableLayer };\n","import { createControllableBooleanSignal } from './BLN63FDC.js';\nimport { access } from '@kobalte/utils';\n\nfunction createDisclosureState(props = {}) {\n const [isOpen, setIsOpen] = createControllableBooleanSignal({\n value: () => access(props.open),\n defaultValue: () => !!access(props.defaultOpen),\n onChange: (value) => props.onOpenChange?.(value)\n });\n const open = () => {\n setIsOpen(true);\n };\n const close = () => {\n setIsOpen(false);\n };\n const toggle = () => {\n isOpen() ? close() : open();\n };\n return {\n isOpen,\n setIsOpen,\n open,\n close,\n toggle\n };\n}\n\nexport { createDisclosureState };\n","// src/primitives/create-register-id/create-register-id.ts\nfunction createRegisterId(setter) {\n return (id) => {\n setter(id);\n return () => setter(void 0);\n };\n}\n\nexport { createRegisterId };\n","// src/reactivity/lib.ts\nvar access = (v) => typeof v === \"function\" ? v() : v;\nvar chain = (callbacks) => {\n return (...args) => {\n for (const callback of callbacks) callback && callback(...args);\n };\n};\nvar mergeRefs = (...refs) => {\n return chain(refs);\n};\nvar some = (...signals) => {\n return signals.some((signal) => !!signal());\n};\n\nexport { access, chain, mergeRefs, some };\n","import { access } from '@corvu/utils/reactivity';\nimport { createMemo, createSignal, createEffect, untrack, onCleanup } from 'solid-js';\n\n// src/presence.ts\nvar createPresence = (props) => {\n const refStyles = createMemo(() => {\n const element = access(props.element);\n if (!element) return;\n return getComputedStyle(element);\n });\n const getAnimationName = () => {\n return refStyles()?.animationName ?? \"none\";\n };\n const [presentState, setPresentState] = createSignal(access(props.show) ? \"present\" : \"hidden\");\n let animationName = \"none\";\n createEffect((prevShow) => {\n const show = access(props.show);\n untrack(() => {\n if (prevShow === show) return show;\n const prevAnimationName = animationName;\n const currentAnimationName = getAnimationName();\n if (show) {\n setPresentState(\"present\");\n } else if (currentAnimationName === \"none\" || refStyles()?.display === \"none\") {\n setPresentState(\"hidden\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (prevShow === true && isAnimating) {\n setPresentState(\"hiding\");\n } else {\n setPresentState(\"hidden\");\n }\n }\n });\n return show;\n });\n createEffect(() => {\n const element = access(props.element);\n if (!element) return;\n const handleAnimationStart = (event) => {\n if (event.target === element) {\n animationName = getAnimationName();\n }\n };\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName();\n const isCurrentAnimation = currentAnimationName.includes(\n event.animationName\n );\n if (event.target === element && isCurrentAnimation && presentState() === \"hiding\") {\n setPresentState(\"hidden\");\n }\n };\n element.addEventListener(\"animationstart\", handleAnimationStart);\n element.addEventListener(\"animationcancel\", handleAnimationEnd);\n element.addEventListener(\"animationend\", handleAnimationEnd);\n onCleanup(() => {\n element.removeEventListener(\"animationstart\", handleAnimationStart);\n element.removeEventListener(\"animationcancel\", handleAnimationEnd);\n element.removeEventListener(\"animationend\", handleAnimationEnd);\n });\n });\n return {\n present: () => presentState() === \"present\" || presentState() === \"hiding\",\n state: presentState,\n setState: setPresentState\n };\n};\nvar presence_default = createPresence;\n\n// src/index.ts\nvar src_default = presence_default;\n\nexport { src_default as default };\n","import { createRegisterId } from './E4R2EMM4.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { mergeDefaultProps, access, createGenerateId } from '@kobalte/utils';\nimport { createContext, createUniqueId, createSignal, createMemo, useContext, createEffect, onCleanup } from 'solid-js';\nimport { createComponent, mergeProps } from 'solid-js/web';\n\nvar FORM_CONTROL_PROP_NAMES = [\"id\", \"name\", \"validationState\", \"required\", \"disabled\", \"readOnly\"];\nfunction createFormControl(props) {\n const defaultId = `form-control-${createUniqueId()}`;\n const mergedProps = mergeDefaultProps({\n id: defaultId\n }, props);\n const [labelId, setLabelId] = createSignal();\n const [fieldId, setFieldId] = createSignal();\n const [descriptionId, setDescriptionId] = createSignal();\n const [errorMessageId, setErrorMessageId] = createSignal();\n const getAriaLabelledBy = (fieldId2, fieldAriaLabel, fieldAriaLabelledBy) => {\n const hasAriaLabelledBy = fieldAriaLabelledBy != null || labelId() != null;\n return [\n fieldAriaLabelledBy,\n labelId(),\n // If there is both an aria-label and aria-labelledby, add the field itself has an aria-labelledby\n hasAriaLabelledBy && fieldAriaLabel != null ? fieldId2 : void 0\n ].filter(Boolean).join(\" \") || void 0;\n };\n const getAriaDescribedBy = (fieldAriaDescribedBy) => {\n return [\n descriptionId(),\n // Use aria-describedby for error message because aria-errormessage is unsupported using VoiceOver or NVDA.\n // See https://github.com/adobe/react-spectrum/issues/1346#issuecomment-740136268\n errorMessageId(),\n fieldAriaDescribedBy\n ].filter(Boolean).join(\" \") || void 0;\n };\n const dataset = createMemo(() => ({\n \"data-valid\": access(mergedProps.validationState) === \"valid\" ? \"\" : void 0,\n \"data-invalid\": access(mergedProps.validationState) === \"invalid\" ? \"\" : void 0,\n \"data-required\": access(mergedProps.required) ? \"\" : void 0,\n \"data-disabled\": access(mergedProps.disabled) ? \"\" : void 0,\n \"data-readonly\": access(mergedProps.readOnly) ? \"\" : void 0\n }));\n const formControlContext = {\n name: () => access(mergedProps.name) ?? access(mergedProps.id),\n dataset,\n validationState: () => access(mergedProps.validationState),\n isRequired: () => access(mergedProps.required),\n isDisabled: () => access(mergedProps.disabled),\n isReadOnly: () => access(mergedProps.readOnly),\n labelId,\n fieldId,\n descriptionId,\n errorMessageId,\n getAriaLabelledBy,\n getAriaDescribedBy,\n generateId: createGenerateId(() => access(mergedProps.id)),\n registerLabel: createRegisterId(setLabelId),\n registerField: createRegisterId(setFieldId),\n registerDescription: createRegisterId(setDescriptionId),\n registerErrorMessage: createRegisterId(setErrorMessageId)\n };\n return {\n formControlContext\n };\n}\nvar FormControlContext = createContext();\nfunction useFormControlContext() {\n const context = useContext(FormControlContext);\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useFormControlContext` must be used within a `FormControlContext.Provider` component\");\n }\n return context;\n}\nfunction FormControlDescription(props) {\n const context = useFormControlContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"description\")\n }, props);\n createEffect(() => onCleanup(context.registerDescription(mergedProps.id)));\n return createComponent(Polymorphic, mergeProps({\n as: \"div\"\n }, () => context.dataset(), mergedProps));\n}\n\nexport { FORM_CONTROL_PROP_NAMES, FormControlContext, FormControlDescription, createFormControl, useFormControlContext };\n","import { useFormControlContext } from './YKGT7A57.js';\nimport { createTagName } from './ET5T45DO.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { createComponent, mergeProps, memo } from 'solid-js/web';\nimport { mergeDefaultProps, mergeRefs } from '@kobalte/utils';\nimport { splitProps, createEffect, onCleanup } from 'solid-js';\n\nfunction FormControlLabel(props) {\n let ref;\n const context = useFormControlContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"label\")\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\"]);\n const tagName = createTagName(() => ref, () => \"label\");\n createEffect(() => onCleanup(context.registerLabel(others.id)));\n return createComponent(Polymorphic, mergeProps({\n as: \"label\",\n ref(r$) {\n const _ref$ = mergeRefs((el) => ref = el, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n get [\"for\"]() {\n return memo(() => tagName() === \"label\")() ? context.fieldId() : void 0;\n }\n }, () => context.dataset(), others));\n}\n\nexport { FormControlLabel };\n","import { createEffect, on, onCleanup } from 'solid-js';\n\n// src/primitives/create-form-reset-listener/create-form-reset-listener.ts\nfunction createFormResetListener(element, handler) {\n createEffect(\n on(element, (element2) => {\n if (element2 == null) {\n return;\n }\n const form = getClosestForm(element2);\n if (form == null) {\n return;\n }\n form.addEventListener(\"reset\", handler, { passive: true });\n onCleanup(() => {\n form.removeEventListener(\"reset\", handler);\n });\n })\n );\n}\nfunction getClosestForm(element) {\n return isFormElement(element) ? element.form : element.closest(\"form\");\n}\nfunction isFormElement(element) {\n return element.matches(\"textarea, input, select, button\");\n}\n\nexport { createFormResetListener };\n","import { useFormControlContext } from './YKGT7A57.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { createComponent, mergeProps } from 'solid-js/web';\nimport { mergeDefaultProps } from '@kobalte/utils';\nimport { splitProps, createEffect, onCleanup, Show } from 'solid-js';\n\nfunction FormControlErrorMessage(props) {\n const context = useFormControlContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"error-message\")\n }, props);\n const [local, others] = splitProps(mergedProps, [\"forceMount\"]);\n const isInvalid = () => context.validationState() === \"invalid\";\n createEffect(() => {\n if (!isInvalid()) {\n return;\n }\n onCleanup(context.registerErrorMessage(others.id));\n });\n return createComponent(Show, {\n get when() {\n return local.forceMount || isInvalid();\n },\n get children() {\n return createComponent(Polymorphic, mergeProps({\n as: \"div\"\n }, () => context.dataset(), others));\n }\n });\n}\n\nexport { FormControlErrorMessage };\n","import { DATA_TOP_LAYER_ATTR } from './ZKYDDHM6.js';\nimport { getActiveElement, contains, focusWithoutScrolling, access, removeItemFromArray, getDocument, visuallyHiddenStyles, isFocusable, getAllTabbableIn } from '@kobalte/utils';\nimport { createSignal, createEffect, onCleanup } from 'solid-js';\nimport { isServer } from 'solid-js/web';\n\nvar AUTOFOCUS_ON_MOUNT_EVENT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT_EVENT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = {\n bubbles: false,\n cancelable: true\n};\nvar focusScopeStack = {\n /** A stack of focus scopes, with the active one at the top */\n stack: [],\n active() {\n return this.stack[0];\n },\n add(scope) {\n if (scope !== this.active()) {\n this.active()?.pause();\n }\n this.stack = removeItemFromArray(this.stack, scope);\n this.stack.unshift(scope);\n },\n remove(scope) {\n this.stack = removeItemFromArray(this.stack, scope);\n this.active()?.resume();\n }\n};\nfunction createFocusScope(props, ref) {\n const [isPaused, setIsPaused] = createSignal(false);\n const focusScope = {\n pause() {\n setIsPaused(true);\n },\n resume() {\n setIsPaused(false);\n }\n };\n let lastFocusedElement = null;\n const onMountAutoFocus = (e) => props.onMountAutoFocus?.(e);\n const onUnmountAutoFocus = (e) => props.onUnmountAutoFocus?.(e);\n const ownerDocument = () => getDocument(ref());\n const createSentinel = () => {\n const element = ownerDocument().createElement(\"span\");\n element.setAttribute(\"data-focus-trap\", \"\");\n element.tabIndex = 0;\n Object.assign(element.style, visuallyHiddenStyles);\n return element;\n };\n const tabbables = () => {\n const container = ref();\n if (!container) {\n return [];\n }\n return getAllTabbableIn(container, true).filter((el) => !el.hasAttribute(\"data-focus-trap\"));\n };\n const firstTabbable = () => {\n const items = tabbables();\n return items.length > 0 ? items[0] : null;\n };\n const lastTabbable = () => {\n const items = tabbables();\n return items.length > 0 ? items[items.length - 1] : null;\n };\n const shouldPreventUnmountAutoFocus = () => {\n const container = ref();\n if (!container) {\n return false;\n }\n const activeElement = getActiveElement(container);\n if (!activeElement) {\n return false;\n }\n if (contains(container, activeElement)) {\n return false;\n }\n return isFocusable(activeElement);\n };\n createEffect(() => {\n if (isServer) {\n return;\n }\n const container = ref();\n if (!container) {\n return;\n }\n focusScopeStack.add(focusScope);\n const previouslyFocusedElement = getActiveElement(container);\n const hasFocusedCandidate = contains(container, previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT_EVENT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT_EVENT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n setTimeout(() => {\n focusWithoutScrolling(firstTabbable());\n if (getActiveElement(container) === previouslyFocusedElement) {\n focusWithoutScrolling(container);\n }\n }, 0);\n }\n }\n onCleanup(() => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT_EVENT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT_EVENT, EVENT_OPTIONS);\n if (shouldPreventUnmountAutoFocus()) {\n unmountEvent.preventDefault();\n }\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT_EVENT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focusWithoutScrolling(previouslyFocusedElement ?? ownerDocument().body);\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT_EVENT, onUnmountAutoFocus);\n focusScopeStack.remove(focusScope);\n }, 0);\n });\n });\n createEffect(() => {\n if (isServer) {\n return;\n }\n const container = ref();\n if (!container || !access(props.trapFocus) || isPaused()) {\n return;\n }\n const onFocusIn = (event) => {\n const target = event.target;\n if (target?.closest(`[${DATA_TOP_LAYER_ATTR}]`)) {\n return;\n }\n if (contains(container, target)) {\n lastFocusedElement = target;\n } else {\n focusWithoutScrolling(lastFocusedElement);\n }\n };\n const onFocusOut = (event) => {\n const relatedTarget = event.relatedTarget;\n const target = relatedTarget ?? getActiveElement(container);\n if (target?.closest(`[${DATA_TOP_LAYER_ATTR}]`)) {\n return;\n }\n if (!contains(container, target)) {\n focusWithoutScrolling(lastFocusedElement);\n }\n };\n ownerDocument().addEventListener(\"focusin\", onFocusIn);\n ownerDocument().addEventListener(\"focusout\", onFocusOut);\n onCleanup(() => {\n ownerDocument().removeEventListener(\"focusin\", onFocusIn);\n ownerDocument().removeEventListener(\"focusout\", onFocusOut);\n });\n });\n createEffect(() => {\n if (isServer) {\n return;\n }\n const container = ref();\n if (!container || !access(props.trapFocus) || isPaused()) {\n return;\n }\n const startSentinel = createSentinel();\n container.insertAdjacentElement(\"afterbegin\", startSentinel);\n const endSentinel = createSentinel();\n container.insertAdjacentElement(\"beforeend\", endSentinel);\n function onFocus(event) {\n const first = firstTabbable();\n const last = lastTabbable();\n if (event.relatedTarget === first) {\n focusWithoutScrolling(last);\n } else {\n focusWithoutScrolling(first);\n }\n }\n startSentinel.addEventListener(\"focusin\", onFocus);\n endSentinel.addEventListener(\"focusin\", onFocus);\n const observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.previousSibling === endSentinel) {\n endSentinel.remove();\n container.insertAdjacentElement(\"beforeend\", endSentinel);\n }\n if (mutation.nextSibling === startSentinel) {\n startSentinel.remove();\n container.insertAdjacentElement(\"afterbegin\", startSentinel);\n }\n }\n });\n observer.observe(container, {\n childList: true,\n subtree: false\n });\n onCleanup(() => {\n startSentinel.removeEventListener(\"focusin\", onFocus);\n endSentinel.removeEventListener(\"focusin\", onFocus);\n startSentinel.remove();\n endSentinel.remove();\n observer.disconnect();\n });\n });\n}\n\nexport { createFocusScope };\n","import { visuallyHiddenStyles } from '@kobalte/utils';\n\n// src/live-announcer/live-announcer.tsx\nvar LIVEREGION_TIMEOUT_DELAY = 7e3;\nvar liveAnnouncer = null;\nvar DATA_LIVE_ANNOUNCER_ATTR = \"data-live-announcer\";\nfunction announce(message, assertiveness = \"assertive\", timeout = LIVEREGION_TIMEOUT_DELAY) {\n if (!liveAnnouncer) {\n liveAnnouncer = new LiveAnnouncer();\n }\n liveAnnouncer.announce(message, assertiveness, timeout);\n}\nfunction clearAnnouncer(assertiveness) {\n if (liveAnnouncer) {\n liveAnnouncer.clear(assertiveness);\n }\n}\nfunction destroyAnnouncer() {\n if (liveAnnouncer) {\n liveAnnouncer.destroy();\n liveAnnouncer = null;\n }\n}\nvar LiveAnnouncer = class {\n constructor() {\n this.node = document.createElement(\"div\");\n this.node.dataset.liveAnnouncer = \"true\";\n Object.assign(this.node.style, visuallyHiddenStyles);\n this.assertiveLog = this.createLog(\"assertive\");\n this.node.appendChild(this.assertiveLog);\n this.politeLog = this.createLog(\"polite\");\n this.node.appendChild(this.politeLog);\n document.body.prepend(this.node);\n }\n createLog(ariaLive) {\n const node = document.createElement(\"div\");\n node.setAttribute(\"role\", \"log\");\n node.setAttribute(\"aria-live\", ariaLive);\n node.setAttribute(\"aria-relevant\", \"additions\");\n return node;\n }\n destroy() {\n if (!this.node) {\n return;\n }\n document.body.removeChild(this.node);\n this.node = null;\n }\n announce(message, assertiveness = \"assertive\", timeout = LIVEREGION_TIMEOUT_DELAY) {\n if (!this.node) {\n return;\n }\n const node = document.createElement(\"div\");\n node.textContent = message;\n if (assertiveness === \"assertive\") {\n this.assertiveLog.appendChild(node);\n } else {\n this.politeLog.appendChild(node);\n }\n if (message !== \"\") {\n setTimeout(() => {\n node.remove();\n }, timeout);\n }\n }\n clear(assertiveness) {\n if (!this.node) {\n return;\n }\n if (!assertiveness || assertiveness === \"assertive\") {\n this.assertiveLog.innerHTML = \"\";\n }\n if (!assertiveness || assertiveness === \"polite\") {\n this.politeLog.innerHTML = \"\";\n }\n }\n};\n\nexport { DATA_LIVE_ANNOUNCER_ATTR, announce, clearAnnouncer, destroyAnnouncer };\n","import { DATA_TOP_LAYER_ATTR } from './ZKYDDHM6.js';\nimport { DATA_LIVE_ANNOUNCER_ATTR } from './YA7DCYMB.js';\nimport { access } from '@kobalte/utils';\nimport { createEffect, onCleanup } from 'solid-js';\n\nfunction createHideOutside(props) {\n createEffect(() => {\n if (access(props.isDisabled)) {\n return;\n }\n onCleanup(ariaHideOutside(access(props.targets), access(props.root)));\n });\n}\nvar refCountMap = /* @__PURE__ */ new WeakMap();\nvar observerStack = [];\nfunction ariaHideOutside(targets, root = document.body) {\n const visibleNodes = new Set(targets);\n const hiddenNodes = /* @__PURE__ */ new Set();\n const walk = (root2) => {\n for (const element of root2.querySelectorAll(\n `[${DATA_LIVE_ANNOUNCER_ATTR}], [${DATA_TOP_LAYER_ATTR}]`\n )) {\n visibleNodes.add(element);\n }\n const acceptNode = (node) => {\n if (visibleNodes.has(node) || node.parentElement && hiddenNodes.has(node.parentElement) && node.parentElement.getAttribute(\"role\") !== \"row\") {\n return NodeFilter.FILTER_REJECT;\n }\n for (const target of visibleNodes) {\n if (node.contains(target)) {\n return NodeFilter.FILTER_SKIP;\n }\n }\n return NodeFilter.FILTER_ACCEPT;\n };\n const walker = document.createTreeWalker(root2, NodeFilter.SHOW_ELEMENT, {\n acceptNode\n });\n const acceptRoot = acceptNode(root2);\n if (acceptRoot === NodeFilter.FILTER_ACCEPT) {\n hide(root2);\n }\n if (acceptRoot !== NodeFilter.FILTER_REJECT) {\n let node = walker.nextNode();\n while (node != null) {\n hide(node);\n node = walker.nextNode();\n }\n }\n };\n const hide = (node) => {\n const refCount = refCountMap.get(node) ?? 0;\n if (node.getAttribute(\"aria-hidden\") === \"true\" && refCount === 0) {\n return;\n }\n if (refCount === 0) {\n node.setAttribute(\"aria-hidden\", \"true\");\n }\n hiddenNodes.add(node);\n refCountMap.set(node, refCount + 1);\n };\n if (observerStack.length) {\n observerStack[observerStack.length - 1].disconnect();\n }\n walk(root);\n const observer = new MutationObserver((changes) => {\n for (const change of changes) {\n if (change.type !== \"childList\" || change.addedNodes.length === 0) {\n continue;\n }\n if (![...visibleNodes, ...hiddenNodes].some(\n (node) => node.contains(change.target)\n )) {\n for (const node of change.removedNodes) {\n if (node instanceof Element) {\n visibleNodes.delete(node);\n hiddenNodes.delete(node);\n }\n }\n for (const node of change.addedNodes) {\n if ((node instanceof HTMLElement || node instanceof SVGElement) && (node.dataset.liveAnnouncer === \"true\" || node.dataset.reactAriaTopLayer === \"true\")) {\n visibleNodes.add(node);\n } else if (node instanceof Element) {\n walk(node);\n }\n }\n }\n }\n });\n observer.observe(root, { childList: true, subtree: true });\n const observerWrapper = {\n observe() {\n observer.observe(root, { childList: true, subtree: true });\n },\n disconnect() {\n observer.disconnect();\n }\n };\n observerStack.push(observerWrapper);\n return () => {\n observer.disconnect();\n for (const node of hiddenNodes) {\n const count = refCountMap.get(node);\n if (count == null) {\n return;\n }\n if (count === 1) {\n node.removeAttribute(\"aria-hidden\");\n refCountMap.delete(node);\n } else {\n refCountMap.set(node, count - 1);\n }\n }\n if (observerWrapper === observerStack[observerStack.length - 1]) {\n observerStack.pop();\n if (observerStack.length) {\n observerStack[observerStack.length - 1].observe();\n }\n } else {\n observerStack.splice(observerStack.indexOf(observerWrapper), 1);\n }\n };\n}\n\nexport { ariaHideOutside, createHideOutside };\n","// src/dom/lib.ts\nvar extractCSSregex = /((?:--)?(?:\\w+-?)+)\\s*:\\s*([^;]*)/g;\nfunction stringStyleToObject(style) {\n const object = {};\n let match;\n while (match = extractCSSregex.exec(style)) {\n object[match[1]] = match[2];\n }\n return object;\n}\nfunction combineStyle(a, b) {\n if (typeof b === \"string\") {\n b = stringStyleToObject(b);\n }\n return { ...a, ...b };\n}\nvar afterPaint = (fn) => requestAnimationFrame(() => requestAnimationFrame(fn));\nvar callEventHandler = (eventHandler, event) => {\n if (eventHandler) {\n if (typeof eventHandler === \"function\") {\n eventHandler(event);\n } else {\n eventHandler[0](eventHandler[1], event);\n }\n }\n return event.defaultPrevented;\n};\nvar contains = (wrapper, target) => {\n if (wrapper.contains(target)) return true;\n let currentElement = target;\n while (currentElement) {\n if (currentElement === wrapper) return true;\n currentElement = currentElement._$host ?? currentElement.parentElement;\n }\n return false;\n};\nvar sortByDocumentPosition = (a, b) => {\n const relativePosition = a.compareDocumentPosition(b);\n if (relativePosition & Node.DOCUMENT_POSITION_PRECEDING || relativePosition & Node.DOCUMENT_POSITION_CONTAINS) {\n return 1;\n }\n if (relativePosition & Node.DOCUMENT_POSITION_FOLLOWING || relativePosition & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return -1;\n }\n return 0;\n};\n\nexport { afterPaint, callEventHandler, combineStyle, contains, sortByDocumentPosition };\n","import { access } from '../chunk/ZV6G25TT.js';\nimport { createEffect, onCleanup } from 'solid-js';\n\nvar activeStyles = /* @__PURE__ */ new Map();\nvar createStyle = (props) => {\n createEffect(() => {\n const style = access(props.style) ?? {};\n const properties = access(props.properties) ?? [];\n const originalStyles = {};\n for (const key in style) {\n originalStyles[key] = props.element.style[key];\n }\n const activeStyle = activeStyles.get(props.key);\n if (activeStyle) {\n activeStyle.activeCount++;\n } else {\n activeStyles.set(props.key, {\n activeCount: 1,\n originalStyles,\n properties: properties.map((property) => property.key)\n });\n }\n Object.assign(props.element.style, props.style);\n for (const property of properties) {\n props.element.style.setProperty(property.key, property.value);\n }\n onCleanup(() => {\n const activeStyle2 = activeStyles.get(props.key);\n if (!activeStyle2) return;\n if (activeStyle2.activeCount !== 1) {\n activeStyle2.activeCount--;\n return;\n }\n activeStyles.delete(props.key);\n for (const [key, value] of Object.entries(activeStyle2.originalStyles)) {\n props.element.style[key] = value;\n }\n for (const property of activeStyle2.properties) {\n props.element.style.removeProperty(property);\n }\n if (props.element.style.length === 0) {\n props.element.removeAttribute(\"style\");\n }\n props.cleanup?.();\n });\n });\n};\nvar style_default = createStyle;\n\nexport { style_default as default };\n","// src/scroll/lib.ts\nvar getScrollDimensions = (element, axis) => {\n switch (axis) {\n case \"x\":\n return [element.clientWidth, element.scrollLeft, element.scrollWidth];\n case \"y\":\n return [element.clientHeight, element.scrollTop, element.scrollHeight];\n }\n};\nvar isScrollContainer = (element, axis) => {\n const styles = getComputedStyle(element);\n const overflow = axis === \"x\" ? styles.overflowX : styles.overflowY;\n return overflow === \"auto\" || overflow === \"scroll\" || // The HTML element is a scroll container if it has overflow visible\n element.tagName === \"HTML\" && overflow === \"visible\";\n};\nvar getScrollAtLocation = (location, axis, stopAt) => {\n const directionFactor = axis === \"x\" && window.getComputedStyle(location).direction === \"rtl\" ? -1 : 1;\n let currentElement = location;\n let availableScroll = 0;\n let availableScrollTop = 0;\n let wrapperReached = false;\n do {\n const [clientSize, scrollOffset, scrollSize] = getScrollDimensions(\n currentElement,\n axis\n );\n const scrolled = scrollSize - clientSize - directionFactor * scrollOffset;\n if ((scrollOffset !== 0 || scrolled !== 0) && isScrollContainer(currentElement, axis)) {\n availableScroll += scrolled;\n availableScrollTop += scrollOffset;\n }\n if (currentElement === (stopAt ?? document.documentElement)) {\n wrapperReached = true;\n } else {\n currentElement = currentElement._$host ?? currentElement.parentElement;\n }\n } while (currentElement && !wrapperReached);\n return [availableScroll, availableScrollTop];\n};\n\nexport { getScrollAtLocation };\n","import { access } from '@corvu/utils/reactivity';\nimport { createSignal, mergeProps, createUniqueId, createEffect, onCleanup } from 'solid-js';\nimport { contains } from '@corvu/utils/dom';\nimport createStyle from '@corvu/utils/create/style';\nimport { getScrollAtLocation } from '@corvu/utils/scroll';\n\n// src/preventScroll.ts\nvar [preventScrollStack, setPreventScrollStack] = createSignal([]);\nvar isActive = (id) => preventScrollStack().indexOf(id) === preventScrollStack().length - 1;\nvar createPreventScroll = (props) => {\n const defaultedProps = mergeProps(\n {\n element: null,\n enabled: true,\n hideScrollbar: true,\n preventScrollbarShift: true,\n preventScrollbarShiftMode: \"padding\",\n restoreScrollPosition: true,\n allowPinchZoom: false\n },\n props\n );\n const preventScrollId = createUniqueId();\n let currentTouchStart = [0, 0];\n let currentTouchStartAxis = null;\n let currentTouchStartDelta = null;\n createEffect(() => {\n if (!access(defaultedProps.enabled)) return;\n setPreventScrollStack((stack) => [...stack, preventScrollId]);\n onCleanup(() => {\n setPreventScrollStack(\n (stack) => stack.filter((id) => id !== preventScrollId)\n );\n });\n });\n createEffect(() => {\n if (!access(defaultedProps.enabled) || !access(defaultedProps.hideScrollbar))\n return;\n const { body } = document;\n const scrollbarWidth = window.innerWidth - body.offsetWidth;\n if (access(defaultedProps.preventScrollbarShift)) {\n const style = { overflow: \"hidden\" };\n const properties = [];\n if (scrollbarWidth > 0) {\n if (access(defaultedProps.preventScrollbarShiftMode) === \"padding\") {\n style.paddingRight = `calc(${window.getComputedStyle(body).paddingRight} + ${scrollbarWidth}px)`;\n } else {\n style.marginRight = `calc(${window.getComputedStyle(body).marginRight} + ${scrollbarWidth}px)`;\n }\n properties.push({\n key: \"--scrollbar-width\",\n value: `${scrollbarWidth}px`\n });\n }\n const offsetTop = window.scrollY;\n const offsetLeft = window.scrollX;\n createStyle({\n key: \"prevent-scroll\",\n element: body,\n style,\n properties,\n cleanup: () => {\n if (access(defaultedProps.restoreScrollPosition) && scrollbarWidth > 0) {\n window.scrollTo(offsetLeft, offsetTop);\n }\n }\n });\n } else {\n createStyle({\n key: \"prevent-scroll\",\n element: body,\n style: {\n overflow: \"hidden\"\n }\n });\n }\n });\n createEffect(() => {\n if (!isActive(preventScrollId) || !access(defaultedProps.enabled)) return;\n document.addEventListener(\"wheel\", maybePreventWheel, {\n passive: false\n });\n document.addEventListener(\"touchstart\", logTouchStart, {\n passive: false\n });\n document.addEventListener(\"touchmove\", maybePreventTouch, {\n passive: false\n });\n onCleanup(() => {\n document.removeEventListener(\"wheel\", maybePreventWheel);\n document.removeEventListener(\"touchstart\", logTouchStart);\n document.removeEventListener(\"touchmove\", maybePreventTouch);\n });\n });\n const logTouchStart = (event) => {\n currentTouchStart = getTouchXY(event);\n currentTouchStartAxis = null;\n currentTouchStartDelta = null;\n };\n const maybePreventWheel = (event) => {\n const target = event.target;\n const wrapper = access(defaultedProps.element);\n const delta = getDeltaXY(event);\n const axis = Math.abs(delta[0]) > Math.abs(delta[1]) ? \"x\" : \"y\";\n const axisDelta = axis === \"x\" ? delta[0] : delta[1];\n const resultsInScroll = wouldScroll(target, axis, axisDelta, wrapper);\n let shouldCancel;\n if (wrapper && contains(wrapper, target)) {\n shouldCancel = !resultsInScroll;\n } else {\n shouldCancel = true;\n }\n if (shouldCancel && event.cancelable) {\n event.preventDefault();\n }\n };\n const maybePreventTouch = (event) => {\n const wrapper = access(defaultedProps.element);\n const target = event.target;\n let shouldCancel;\n if (event.touches.length === 2) {\n shouldCancel = !access(defaultedProps.allowPinchZoom);\n } else {\n if (currentTouchStartAxis == null || currentTouchStartDelta === null) {\n const delta = getTouchXY(event).map(\n (touch, i) => currentTouchStart[i] - touch\n );\n const axis = Math.abs(delta[0]) > Math.abs(delta[1]) ? \"x\" : \"y\";\n currentTouchStartAxis = axis;\n currentTouchStartDelta = axis === \"x\" ? delta[0] : delta[1];\n }\n if (target.type === \"range\") {\n shouldCancel = false;\n } else {\n const wouldResultInScroll = wouldScroll(\n target,\n currentTouchStartAxis,\n currentTouchStartDelta,\n wrapper\n );\n if (wrapper && contains(wrapper, target)) {\n shouldCancel = !wouldResultInScroll;\n } else {\n shouldCancel = true;\n }\n }\n }\n if (shouldCancel && event.cancelable) {\n event.preventDefault();\n }\n };\n};\nvar getDeltaXY = (event) => [\n event.deltaX,\n event.deltaY\n];\nvar getTouchXY = (event) => event.changedTouches[0] ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\nvar wouldScroll = (target, axis, delta, wrapper) => {\n const targetInWrapper = wrapper !== null && contains(wrapper, target);\n const [availableScroll, availableScrollTop] = getScrollAtLocation(\n target,\n axis,\n targetInWrapper ? wrapper : void 0\n );\n if (delta > 0 && Math.abs(availableScroll) <= 1) {\n return false;\n }\n if (delta < 0 && Math.abs(availableScrollTop) < 1) {\n return false;\n }\n return true;\n};\nvar preventScroll_default = createPreventScroll;\n\n// src/index.ts\nvar src_default = preventScroll_default;\n\nexport { src_default as default };\n","import { FormControlLabel } from './7ZHN3PYD.js';\nimport { createFormResetListener } from './ANN3A2QM.js';\nimport { FormControlErrorMessage } from './ICNSTULC.js';\nimport { FormControlDescription, useFormControlContext, FORM_CONTROL_PROP_NAMES, createFormControl, FormControlContext } from './YKGT7A57.js';\nimport { createRegisterId } from './E4R2EMM4.js';\nimport { createControllableSignal } from './BLN63FDC.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { __export } from './5ZKAE4VZ.js';\nimport { createComponent, mergeProps } from 'solid-js/web';\nimport { mergeDefaultProps, createGenerateId, mergeRefs, visuallyHiddenStyles, access, callHandler, EventKey } from '@kobalte/utils';\nimport { createContext, useContext, createUniqueId, splitProps, createSignal, createMemo, createEffect, onCleanup, Show, on } from 'solid-js';\nimport createPresence from 'solid-presence';\nimport { combineStyle } from '@solid-primitives/props';\n\n// src/radio-group/index.tsx\nvar radio_group_exports = {};\n__export(radio_group_exports, {\n Description: () => FormControlDescription,\n ErrorMessage: () => FormControlErrorMessage,\n Item: () => RadioGroupItem,\n ItemControl: () => RadioGroupItemControl,\n ItemDescription: () => RadioGroupItemDescription,\n ItemIndicator: () => RadioGroupItemIndicator,\n ItemInput: () => RadioGroupItemInput,\n ItemLabel: () => RadioGroupItemLabel,\n Label: () => RadioGroupLabel,\n RadioGroup: () => RadioGroup,\n Root: () => RadioGroupRoot,\n useRadioGroupContext: () => useRadioGroupContext\n});\nvar RadioGroupContext = createContext();\nfunction useRadioGroupContext() {\n const context = useContext(RadioGroupContext);\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useRadioGroupContext` must be used within a `RadioGroup` component\");\n }\n return context;\n}\nvar RadioGroupItemContext = createContext();\nfunction useRadioGroupItemContext() {\n const context = useContext(RadioGroupItemContext);\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useRadioGroupItemContext` must be used within a `RadioGroup.Item` component\");\n }\n return context;\n}\n\n// src/radio-group/radio-group-item.tsx\nfunction RadioGroupItem(props) {\n const formControlContext = useFormControlContext();\n const radioGroupContext = useRadioGroupContext();\n const defaultId = `${formControlContext.generateId(\"item\")}-${createUniqueId()}`;\n const mergedProps = mergeDefaultProps({\n id: defaultId\n }, props);\n const [local, others] = splitProps(mergedProps, [\"value\", \"disabled\", \"onPointerDown\"]);\n const [inputId, setInputId] = createSignal();\n const [labelId, setLabelId] = createSignal();\n const [descriptionId, setDescriptionId] = createSignal();\n const [inputRef, setInputRef] = createSignal();\n const [isFocused, setIsFocused] = createSignal(false);\n const isDefault = createMemo(() => {\n return radioGroupContext.isDefaultValue(local.value);\n });\n const isSelected = createMemo(() => {\n return radioGroupContext.isSelectedValue(local.value);\n });\n const isDisabled = createMemo(() => {\n return local.disabled || formControlContext.isDisabled() || false;\n });\n const onPointerDown = (e) => {\n callHandler(e, local.onPointerDown);\n if (isFocused()) {\n e.preventDefault();\n }\n };\n const dataset = createMemo(() => ({\n ...formControlContext.dataset(),\n \"data-disabled\": isDisabled() ? \"\" : void 0,\n \"data-checked\": isSelected() ? \"\" : void 0\n }));\n const context = {\n value: () => local.value,\n dataset,\n isDefault,\n isSelected,\n isDisabled,\n inputId,\n labelId,\n descriptionId,\n inputRef,\n select: () => radioGroupContext.setSelectedValue(local.value),\n generateId: createGenerateId(() => others.id),\n registerInput: createRegisterId(setInputId),\n registerLabel: createRegisterId(setLabelId),\n registerDescription: createRegisterId(setDescriptionId),\n setIsFocused,\n setInputRef\n };\n return createComponent(RadioGroupItemContext.Provider, {\n value: context,\n get children() {\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n role: \"group\",\n onPointerDown\n }, dataset, others));\n }\n });\n}\nfunction RadioGroupItemControl(props) {\n const context = useRadioGroupItemContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"control\")\n }, props);\n const [local, others] = splitProps(mergedProps, [\"onClick\", \"onKeyDown\"]);\n const onClick = (e) => {\n callHandler(e, local.onClick);\n context.select();\n context.inputRef()?.focus();\n };\n const onKeyDown = (e) => {\n callHandler(e, local.onKeyDown);\n if (e.key === EventKey.Space) {\n context.select();\n context.inputRef()?.focus();\n }\n };\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n onClick,\n onKeyDown\n }, () => context.dataset(), others));\n}\nfunction RadioGroupItemDescription(props) {\n const context = useRadioGroupItemContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"description\")\n }, props);\n createEffect(() => onCleanup(context.registerDescription(mergedProps.id)));\n return createComponent(Polymorphic, mergeProps({\n as: \"div\"\n }, () => context.dataset(), mergedProps));\n}\nfunction RadioGroupItemIndicator(props) {\n const context = useRadioGroupItemContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"indicator\")\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"forceMount\"]);\n const [ref, setRef] = createSignal();\n const {\n present\n } = createPresence({\n show: () => local.forceMount || context.isSelected(),\n element: () => ref() ?? null\n });\n return createComponent(Show, {\n get when() {\n return present();\n },\n get children() {\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n ref(r$) {\n const _ref$ = mergeRefs(setRef, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n }\n }, () => context.dataset(), others));\n }\n });\n}\nfunction RadioGroupItemInput(props) {\n const formControlContext = useFormControlContext();\n const radioGroupContext = useRadioGroupContext();\n const radioContext = useRadioGroupItemContext();\n const mergedProps = mergeDefaultProps({\n id: radioContext.generateId(\"input\")\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"style\", \"aria-labelledby\", \"aria-describedby\", \"onChange\", \"onFocus\", \"onBlur\"]);\n const ariaLabelledBy = () => {\n return [\n local[\"aria-labelledby\"],\n radioContext.labelId(),\n // If there is both an aria-label and aria-labelledby, add the input itself has an aria-labelledby\n local[\"aria-labelledby\"] != null && others[\"aria-label\"] != null ? others.id : void 0\n ].filter(Boolean).join(\" \") || void 0;\n };\n const ariaDescribedBy = () => {\n return [local[\"aria-describedby\"], radioContext.descriptionId(), radioGroupContext.ariaDescribedBy()].filter(Boolean).join(\" \") || void 0;\n };\n const [isInternalChangeEvent, setIsInternalChangeEvent] = createSignal(false);\n const onChange = (e) => {\n callHandler(e, local.onChange);\n e.stopPropagation();\n if (!isInternalChangeEvent()) {\n radioGroupContext.setSelectedValue(radioContext.value());\n const target = e.target;\n target.checked = radioContext.isSelected();\n }\n setIsInternalChangeEvent(false);\n };\n const onFocus = (e) => {\n callHandler(e, local.onFocus);\n radioContext.setIsFocused(true);\n };\n const onBlur = (e) => {\n callHandler(e, local.onBlur);\n radioContext.setIsFocused(false);\n };\n createEffect(on([() => radioContext.isSelected(), () => radioContext.value()], (c) => {\n if (!c[0] && c[1] === radioContext.value())\n return;\n setIsInternalChangeEvent(true);\n const ref = radioContext.inputRef();\n ref?.dispatchEvent(new Event(\"input\", {\n bubbles: true,\n cancelable: true\n }));\n ref?.dispatchEvent(new Event(\"change\", {\n bubbles: true,\n cancelable: true\n }));\n }, {\n defer: true\n }));\n createEffect(() => onCleanup(radioContext.registerInput(others.id)));\n return createComponent(Polymorphic, mergeProps({\n as: \"input\",\n ref(r$) {\n const _ref$ = mergeRefs(radioContext.setInputRef, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n type: \"radio\",\n get name() {\n return formControlContext.name();\n },\n get value() {\n return radioContext.value();\n },\n get checked() {\n return radioContext.isSelected();\n },\n get required() {\n return formControlContext.isRequired();\n },\n get disabled() {\n return radioContext.isDisabled();\n },\n get readonly() {\n return formControlContext.isReadOnly();\n },\n get style() {\n return combineStyle({\n ...visuallyHiddenStyles\n }, local.style);\n },\n get [\"aria-labelledby\"]() {\n return ariaLabelledBy();\n },\n get [\"aria-describedby\"]() {\n return ariaDescribedBy();\n },\n onChange,\n onFocus,\n onBlur\n }, () => radioContext.dataset(), others));\n}\nfunction RadioGroupItemLabel(props) {\n const context = useRadioGroupItemContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"label\")\n }, props);\n createEffect(() => onCleanup(context.registerLabel(mergedProps.id)));\n return createComponent(Polymorphic, mergeProps({\n as: \"label\",\n get [\"for\"]() {\n return context.inputId();\n }\n }, () => context.dataset(), mergedProps));\n}\nfunction RadioGroupLabel(props) {\n return createComponent(FormControlLabel, mergeProps({\n as: \"span\"\n }, props));\n}\nfunction RadioGroupRoot(props) {\n let ref;\n const defaultId = `radiogroup-${createUniqueId()}`;\n const mergedProps = mergeDefaultProps({\n id: defaultId,\n orientation: \"vertical\"\n }, props);\n const [local, formControlProps, others] = splitProps(mergedProps, [\"ref\", \"value\", \"defaultValue\", \"onChange\", \"orientation\", \"aria-labelledby\", \"aria-describedby\"], FORM_CONTROL_PROP_NAMES);\n const [selected, setSelected] = createControllableSignal({\n value: () => local.value,\n defaultValue: () => local.defaultValue,\n onChange: (value) => local.onChange?.(value)\n });\n const {\n formControlContext\n } = createFormControl(formControlProps);\n createFormResetListener(() => ref, () => setSelected(local.defaultValue ?? \"\"));\n const ariaLabelledBy = () => {\n return formControlContext.getAriaLabelledBy(access(formControlProps.id), others[\"aria-label\"], local[\"aria-labelledby\"]);\n };\n const ariaDescribedBy = () => {\n return formControlContext.getAriaDescribedBy(local[\"aria-describedby\"]);\n };\n const isDefaultValue = (value) => {\n return value === props.defaultValue;\n };\n const isSelectedValue = (value) => {\n return value === selected();\n };\n const setSelectedValue = (value) => {\n if (formControlContext.isReadOnly() || formControlContext.isDisabled()) {\n return;\n }\n setSelected(value);\n if (ref)\n for (const el of ref.querySelectorAll(\"[type='radio']\")) {\n const radio = el;\n radio.checked = isSelectedValue(radio.value);\n }\n };\n const context = {\n ariaDescribedBy,\n isDefaultValue,\n isSelectedValue,\n setSelectedValue\n };\n return createComponent(FormControlContext.Provider, {\n value: formControlContext,\n get children() {\n return createComponent(RadioGroupContext.Provider, {\n value: context,\n get children() {\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n ref(r$) {\n const _ref$ = mergeRefs((el) => ref = el, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n role: \"radiogroup\",\n get id() {\n return access(formControlProps.id);\n },\n get [\"aria-invalid\"]() {\n return formControlContext.validationState() === \"invalid\" || void 0;\n },\n get [\"aria-required\"]() {\n return formControlContext.isRequired() || void 0;\n },\n get [\"aria-disabled\"]() {\n return formControlContext.isDisabled() || void 0;\n },\n get [\"aria-readonly\"]() {\n return formControlContext.isReadOnly() || void 0;\n },\n get [\"aria-orientation\"]() {\n return local.orientation;\n },\n get [\"aria-labelledby\"]() {\n return ariaLabelledBy();\n },\n get [\"aria-describedby\"]() {\n return ariaDescribedBy();\n }\n }, () => formControlContext.dataset(), others));\n }\n });\n }\n });\n}\n\n// src/radio-group/index.tsx\nvar RadioGroup = Object.assign(RadioGroupRoot, {\n Description: FormControlDescription,\n ErrorMessage: FormControlErrorMessage,\n Item: RadioGroupItem,\n ItemControl: RadioGroupItemControl,\n ItemDescription: RadioGroupItemDescription,\n ItemIndicator: RadioGroupItemIndicator,\n ItemInput: RadioGroupItemInput,\n ItemLabel: RadioGroupItemLabel,\n Label: RadioGroupLabel\n});\n\nexport { RadioGroup, RadioGroupItem, RadioGroupItemControl, RadioGroupItemDescription, RadioGroupItemIndicator, RadioGroupItemInput, RadioGroupItemLabel, RadioGroupLabel, RadioGroupRoot, radio_group_exports, useRadioGroupContext, useRadioGroupItemContext };\n","import { createSelectableCollection } from './H6DSIDEC.js';\nimport { createCollator } from './XHJPQEZP.js';\nimport { access } from '@kobalte/utils';\nimport { createMemo } from 'solid-js';\n\n// src/list/list-keyboard-delegate.ts\nvar ListKeyboardDelegate = class {\n collection;\n ref;\n collator;\n constructor(collection, ref, collator) {\n this.collection = collection;\n this.ref = ref;\n this.collator = collator;\n }\n getKeyBelow(key) {\n let keyAfter = this.collection().getKeyAfter(key);\n while (keyAfter != null) {\n const item = this.collection().getItem(keyAfter);\n if (item && item.type === \"item\" && !item.disabled) {\n return keyAfter;\n }\n keyAfter = this.collection().getKeyAfter(keyAfter);\n }\n }\n getKeyAbove(key) {\n let keyBefore = this.collection().getKeyBefore(key);\n while (keyBefore != null) {\n const item = this.collection().getItem(keyBefore);\n if (item && item.type === \"item\" && !item.disabled) {\n return keyBefore;\n }\n keyBefore = this.collection().getKeyBefore(keyBefore);\n }\n }\n getFirstKey() {\n let key = this.collection().getFirstKey();\n while (key != null) {\n const item = this.collection().getItem(key);\n if (item && item.type === \"item\" && !item.disabled) {\n return key;\n }\n key = this.collection().getKeyAfter(key);\n }\n }\n getLastKey() {\n let key = this.collection().getLastKey();\n while (key != null) {\n const item = this.collection().getItem(key);\n if (item && item.type === \"item\" && !item.disabled) {\n return key;\n }\n key = this.collection().getKeyBefore(key);\n }\n }\n getItem(key) {\n return this.ref?.()?.querySelector(`[data-key=\"${key}\"]`) ?? null;\n }\n // TODO: not working correctly\n getKeyPageAbove(key) {\n const menu = this.ref?.();\n let item = this.getItem(key);\n if (!menu || !item) {\n return;\n }\n const pageY = Math.max(\n 0,\n item.offsetTop + item.offsetHeight - menu.offsetHeight\n );\n let keyAbove = key;\n while (keyAbove && item && item.offsetTop > pageY) {\n keyAbove = this.getKeyAbove(keyAbove);\n item = keyAbove != null ? this.getItem(keyAbove) : null;\n }\n return keyAbove;\n }\n // TODO: not working correctly\n getKeyPageBelow(key) {\n const menu = this.ref?.();\n let item = this.getItem(key);\n if (!menu || !item) {\n return;\n }\n const pageY = Math.min(\n menu.scrollHeight,\n item.offsetTop - item.offsetHeight + menu.offsetHeight\n );\n let keyBelow = key;\n while (keyBelow && item && item.offsetTop < pageY) {\n keyBelow = this.getKeyBelow(keyBelow);\n item = keyBelow != null ? this.getItem(keyBelow) : null;\n }\n return keyBelow;\n }\n getKeyForSearch(search, fromKey) {\n const collator = this.collator?.();\n if (!collator) {\n return;\n }\n let key = fromKey != null ? this.getKeyBelow(fromKey) : this.getFirstKey();\n while (key != null) {\n const item = this.collection().getItem(key);\n if (item) {\n const substring = item.textValue.slice(0, search.length);\n if (item.textValue && collator.compare(substring, search) === 0) {\n return key;\n }\n }\n key = this.getKeyBelow(key);\n }\n }\n};\nfunction createSelectableList(props, ref, scrollRef) {\n const collator = createCollator({ usage: \"search\", sensitivity: \"base\" });\n const delegate = createMemo(() => {\n const keyboardDelegate = access(props.keyboardDelegate);\n if (keyboardDelegate) {\n return keyboardDelegate;\n }\n return new ListKeyboardDelegate(props.collection, ref, collator);\n });\n return createSelectableCollection(\n {\n selectionManager: () => access(props.selectionManager),\n keyboardDelegate: delegate,\n autoFocus: () => access(props.autoFocus),\n deferAutoFocus: () => access(props.deferAutoFocus),\n shouldFocusWrap: () => access(props.shouldFocusWrap),\n disallowEmptySelection: () => access(props.disallowEmptySelection),\n selectOnFocus: () => access(props.selectOnFocus),\n disallowTypeAhead: () => access(props.disallowTypeAhead),\n shouldUseVirtualFocus: () => access(props.shouldUseVirtualFocus),\n allowsTabNavigation: () => access(props.allowsTabNavigation),\n isVirtualized: () => access(props.isVirtualized),\n scrollToKey: (key) => access(props.scrollToKey)?.(key),\n orientation: () => access(props.orientation)\n },\n ref,\n scrollRef\n );\n}\n\nexport { ListKeyboardDelegate, createSelectableList };\n","import { Popper } from './LMWVDFW6.js';\nimport { createSelectableList } from './GLKC2QFF.js';\nimport { createSelectableItem, createListState } from './H6DSIDEC.js';\nimport { createDomCollectionItem, useOptionalDomCollectionContext, createDomCollection } from './7CVNMTYF.js';\nimport { useLocale } from './XHJPQEZP.js';\nimport { createFocusScope } from './ISKHZMHS.js';\nimport { createHideOutside } from './455ZADO2.js';\nimport { DismissableLayer } from './BASJUNIE.js';\nimport { createDisclosureState } from './7LCANGHD.js';\nimport { ButtonRoot } from './7OVKXYPU.js';\nimport { createToggleState } from './YGDQXQ2B.js';\nimport { createRegisterId } from './E4R2EMM4.js';\nimport { createControllableSignal } from './BLN63FDC.js';\nimport { createTagName } from './ET5T45DO.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { createContext, useContext, splitProps, createMemo, createEffect, on, onCleanup, createUniqueId, createSignal, Show } from 'solid-js';\nimport { createComponent, mergeProps, memo, Portal, isServer } from 'solid-js/web';\nimport { mergeDefaultProps, mergeRefs, createGenerateId, composeEventHandlers, callHandler, scrollIntoViewport, contains, focusWithoutScrolling, removeItemFromArray, isPointInPolygon } from '@kobalte/utils';\nimport createPreventScroll from 'solid-prevent-scroll';\nimport { combineStyle } from '@solid-primitives/props';\nimport createPresence from 'solid-presence';\n\nvar MenubarContext = createContext();\nfunction useOptionalMenubarContext() {\n return useContext(MenubarContext);\n}\nfunction useMenubarContext() {\n const context = useOptionalMenubarContext();\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useMenubarContext` must be used within a `Menubar` component\");\n }\n return context;\n}\nvar NavigationMenuContext = createContext();\nfunction useOptionalNavigationMenuContext() {\n return useContext(NavigationMenuContext);\n}\nfunction useNavigationMenuContext() {\n const context = useOptionalNavigationMenuContext();\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useNavigationMenuContext` must be used within a `NavigationMenu` component\");\n }\n return context;\n}\nvar MenuContext = createContext();\nfunction useOptionalMenuContext() {\n return useContext(MenuContext);\n}\nfunction useMenuContext() {\n const context = useOptionalMenuContext();\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useMenuContext` must be used within a `Menu` component\");\n }\n return context;\n}\nvar MenuItemContext = createContext();\nfunction useMenuItemContext() {\n const context = useContext(MenuItemContext);\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useMenuItemContext` must be used within a `Menu.Item` component\");\n }\n return context;\n}\nvar MenuRootContext = createContext();\nfunction useMenuRootContext() {\n const context = useContext(MenuRootContext);\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useMenuRootContext` must be used within a `MenuRoot` component\");\n }\n return context;\n}\n\n// src/menu/menu-item-base.tsx\nfunction MenuItemBase(props) {\n let ref;\n const rootContext = useMenuRootContext();\n const menuContext = useMenuContext();\n const mergedProps = mergeDefaultProps({\n id: rootContext.generateId(`item-${createUniqueId()}`)\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"textValue\", \"disabled\", \"closeOnSelect\", \"checked\", \"indeterminate\", \"onSelect\", \"onPointerMove\", \"onPointerLeave\", \"onPointerDown\", \"onPointerUp\", \"onClick\", \"onKeyDown\", \"onMouseDown\", \"onFocus\"]);\n const [labelId, setLabelId] = createSignal();\n const [descriptionId, setDescriptionId] = createSignal();\n const [labelRef, setLabelRef] = createSignal();\n const selectionManager = () => menuContext.listState().selectionManager();\n const key = () => others.id;\n const isHighlighted = () => selectionManager().focusedKey() === key();\n const onSelect = () => {\n local.onSelect?.();\n if (local.closeOnSelect) {\n setTimeout(() => {\n menuContext.close(true);\n });\n }\n };\n createDomCollectionItem({\n getItem: () => ({\n ref: () => ref,\n type: \"item\",\n key: key(),\n textValue: local.textValue ?? labelRef()?.textContent ?? ref?.textContent ?? \"\",\n disabled: local.disabled ?? false\n })\n });\n const selectableItem = createSelectableItem({\n key,\n selectionManager,\n shouldSelectOnPressUp: true,\n allowsDifferentPressOrigin: true,\n disabled: () => local.disabled\n }, () => ref);\n const onPointerMove = (e) => {\n callHandler(e, local.onPointerMove);\n if (e.pointerType !== \"mouse\") {\n return;\n }\n if (local.disabled) {\n menuContext.onItemLeave(e);\n } else {\n menuContext.onItemEnter(e);\n if (!e.defaultPrevented) {\n focusWithoutScrolling(e.currentTarget);\n menuContext.listState().selectionManager().setFocused(true);\n menuContext.listState().selectionManager().setFocusedKey(key());\n }\n }\n };\n const onPointerLeave = (e) => {\n callHandler(e, local.onPointerLeave);\n if (e.pointerType !== \"mouse\") {\n return;\n }\n menuContext.onItemLeave(e);\n };\n const onPointerUp = (e) => {\n callHandler(e, local.onPointerUp);\n if (!local.disabled && e.button === 0) {\n onSelect();\n }\n };\n const onKeyDown = (e) => {\n callHandler(e, local.onKeyDown);\n if (e.repeat) {\n return;\n }\n if (local.disabled) {\n return;\n }\n switch (e.key) {\n case \"Enter\":\n case \" \":\n onSelect();\n break;\n }\n };\n const ariaChecked = createMemo(() => {\n if (local.indeterminate) {\n return \"mixed\";\n }\n if (local.checked == null) {\n return void 0;\n }\n return local.checked;\n });\n const dataset = createMemo(() => ({\n \"data-indeterminate\": local.indeterminate ? \"\" : void 0,\n \"data-checked\": local.checked && !local.indeterminate ? \"\" : void 0,\n \"data-disabled\": local.disabled ? \"\" : void 0,\n \"data-highlighted\": isHighlighted() ? \"\" : void 0\n }));\n const context = {\n isChecked: () => local.checked,\n dataset,\n setLabelRef,\n generateId: createGenerateId(() => others.id),\n registerLabel: createRegisterId(setLabelId),\n registerDescription: createRegisterId(setDescriptionId)\n };\n return createComponent(MenuItemContext.Provider, {\n value: context,\n get children() {\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n ref(r$) {\n const _ref$ = mergeRefs((el) => ref = el, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n get tabIndex() {\n return selectableItem.tabIndex();\n },\n get [\"aria-checked\"]() {\n return ariaChecked();\n },\n get [\"aria-disabled\"]() {\n return local.disabled;\n },\n get [\"aria-labelledby\"]() {\n return labelId();\n },\n get [\"aria-describedby\"]() {\n return descriptionId();\n },\n get [\"data-key\"]() {\n return selectableItem.dataKey();\n },\n get onPointerDown() {\n return composeEventHandlers([local.onPointerDown, selectableItem.onPointerDown]);\n },\n get onPointerUp() {\n return composeEventHandlers([onPointerUp, selectableItem.onPointerUp]);\n },\n get onClick() {\n return composeEventHandlers([local.onClick, selectableItem.onClick]);\n },\n get onKeyDown() {\n return composeEventHandlers([onKeyDown, selectableItem.onKeyDown]);\n },\n get onMouseDown() {\n return composeEventHandlers([local.onMouseDown, selectableItem.onMouseDown]);\n },\n get onFocus() {\n return composeEventHandlers([local.onFocus, selectableItem.onFocus]);\n },\n onPointerMove,\n onPointerLeave\n }, dataset, others));\n }\n });\n}\n\n// src/menu/menu-checkbox-item.tsx\nfunction MenuCheckboxItem(props) {\n const mergedProps = mergeDefaultProps({\n closeOnSelect: false\n }, props);\n const [local, others] = splitProps(mergedProps, [\"checked\", \"defaultChecked\", \"onChange\", \"onSelect\"]);\n const state = createToggleState({\n isSelected: () => local.checked,\n defaultIsSelected: () => local.defaultChecked,\n onSelectedChange: (checked) => local.onChange?.(checked),\n isDisabled: () => others.disabled\n });\n const onSelect = () => {\n local.onSelect?.();\n state.toggle();\n };\n return createComponent(MenuItemBase, mergeProps({\n role: \"menuitemcheckbox\",\n get checked() {\n return state.isSelected();\n },\n onSelect\n }, others));\n}\nvar MENUBAR_KEYS = {\n next: (dir, orientation) => dir === \"ltr\" ? orientation === \"horizontal\" ? \"ArrowRight\" : \"ArrowDown\" : orientation === \"horizontal\" ? \"ArrowLeft\" : \"ArrowUp\",\n previous: (dir, orientation) => MENUBAR_KEYS.next(dir === \"ltr\" ? \"rtl\" : \"ltr\", orientation)\n};\nvar MENU_KEYS = {\n first: (orientation) => orientation === \"horizontal\" ? \"ArrowDown\" : \"ArrowRight\",\n last: (orientation) => orientation === \"horizontal\" ? \"ArrowUp\" : \"ArrowLeft\"\n};\nfunction MenuTrigger(props) {\n const rootContext = useMenuRootContext();\n const context = useMenuContext();\n const optionalMenubarContext = useOptionalMenubarContext();\n const {\n direction\n } = useLocale();\n const mergedProps = mergeDefaultProps({\n id: rootContext.generateId(\"trigger\")\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"id\", \"disabled\", \"onPointerDown\", \"onClick\", \"onKeyDown\", \"onMouseOver\", \"onFocus\"]);\n let key = () => rootContext.value();\n if (optionalMenubarContext !== void 0) {\n key = () => rootContext.value() ?? local.id;\n if (optionalMenubarContext.lastValue() === void 0)\n optionalMenubarContext.setLastValue(key);\n }\n const tagName = createTagName(() => context.triggerRef(), () => \"button\");\n const isNativeLink = createMemo(() => {\n return tagName() === \"a\" && context.triggerRef()?.getAttribute(\"href\") != null;\n });\n createEffect(on(() => optionalMenubarContext?.value(), (value) => {\n if (!isNativeLink())\n return;\n if (value === key())\n context.triggerRef()?.focus();\n }));\n const handleClick = () => {\n if (optionalMenubarContext !== void 0) {\n if (!context.isOpen()) {\n if (!optionalMenubarContext.autoFocusMenu()) {\n optionalMenubarContext.setAutoFocusMenu(true);\n }\n context.open(false);\n } else {\n if (optionalMenubarContext.value() === key())\n optionalMenubarContext.closeMenu();\n }\n } else\n context.toggle(true);\n };\n const onPointerDown = (e) => {\n callHandler(e, local.onPointerDown);\n e.currentTarget.dataset.pointerType = e.pointerType;\n if (!local.disabled && e.pointerType !== \"touch\" && e.button === 0) {\n handleClick();\n }\n };\n const onClick = (e) => {\n callHandler(e, local.onClick);\n if (!local.disabled) {\n if (e.currentTarget.dataset.pointerType === \"touch\")\n handleClick();\n }\n };\n const onKeyDown = (e) => {\n callHandler(e, local.onKeyDown);\n if (local.disabled) {\n return;\n }\n if (isNativeLink()) {\n switch (e.key) {\n case \"Enter\":\n case \" \":\n return;\n }\n }\n switch (e.key) {\n case \"Enter\":\n case \" \":\n case MENU_KEYS.first(rootContext.orientation()):\n e.stopPropagation();\n e.preventDefault();\n scrollIntoViewport(e.currentTarget);\n context.open(\"first\");\n optionalMenubarContext?.setAutoFocusMenu(true);\n optionalMenubarContext?.setValue(key);\n break;\n case MENU_KEYS.last(rootContext.orientation()):\n e.stopPropagation();\n e.preventDefault();\n context.open(\"last\");\n break;\n case MENUBAR_KEYS.next(direction(), rootContext.orientation()):\n if (optionalMenubarContext === void 0)\n break;\n e.stopPropagation();\n e.preventDefault();\n optionalMenubarContext.nextMenu();\n break;\n case MENUBAR_KEYS.previous(direction(), rootContext.orientation()):\n if (optionalMenubarContext === void 0)\n break;\n e.stopPropagation();\n e.preventDefault();\n optionalMenubarContext.previousMenu();\n break;\n }\n };\n const onMouseOver = (e) => {\n callHandler(e, local.onMouseOver);\n if (context.triggerRef()?.dataset.pointerType === \"touch\")\n return;\n if (!local.disabled && optionalMenubarContext !== void 0 && optionalMenubarContext.value() !== void 0) {\n optionalMenubarContext.setValue(key);\n }\n };\n const onFocus = (e) => {\n callHandler(e, local.onFocus);\n if (optionalMenubarContext !== void 0 && e.currentTarget.dataset.pointerType !== \"touch\")\n optionalMenubarContext.setValue(key);\n };\n createEffect(() => onCleanup(context.registerTriggerId(local.id)));\n return createComponent(ButtonRoot, mergeProps({\n ref(r$) {\n const _ref$ = mergeRefs(context.setTriggerRef, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n get [\"data-kb-menu-value-trigger\"]() {\n return rootContext.value();\n },\n get id() {\n return local.id;\n },\n get disabled() {\n return local.disabled;\n },\n \"aria-haspopup\": \"true\",\n get [\"aria-expanded\"]() {\n return context.isOpen();\n },\n get [\"aria-controls\"]() {\n return memo(() => !!context.isOpen())() ? context.contentId() : void 0;\n },\n get [\"data-highlighted\"]() {\n return key() !== void 0 && optionalMenubarContext?.value() === key() ? true : void 0;\n },\n get tabIndex() {\n return optionalMenubarContext !== void 0 ? optionalMenubarContext.value() === key() || optionalMenubarContext.lastValue() === key() ? 0 : -1 : void 0;\n },\n onPointerDown,\n onMouseOver,\n onClick,\n onKeyDown,\n onFocus,\n role: optionalMenubarContext !== void 0 ? \"menuitem\" : void 0\n }, () => context.dataset(), others));\n}\nfunction MenuContentBase(props) {\n let ref;\n const rootContext = useMenuRootContext();\n const context = useMenuContext();\n const optionalMenubarContext = useOptionalMenubarContext();\n const optionalNavigationMenuContext = useOptionalNavigationMenuContext();\n const {\n direction\n } = useLocale();\n const mergedProps = mergeDefaultProps({\n id: rootContext.generateId(`content-${createUniqueId()}`)\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"id\", \"style\", \"onOpenAutoFocus\", \"onCloseAutoFocus\", \"onEscapeKeyDown\", \"onFocusOutside\", \"onPointerEnter\", \"onPointerMove\", \"onKeyDown\", \"onMouseDown\", \"onFocusIn\", \"onFocusOut\"]);\n let lastPointerX = 0;\n const isRootModalContent = () => {\n return context.parentMenuContext() == null && optionalMenubarContext === void 0 && rootContext.isModal();\n };\n const selectableList = createSelectableList({\n selectionManager: context.listState().selectionManager,\n collection: context.listState().collection,\n autoFocus: context.autoFocus,\n deferAutoFocus: true,\n // ensure all menu items are mounted and collection is not empty before trying to autofocus.\n shouldFocusWrap: true,\n disallowTypeAhead: () => !context.listState().selectionManager().isFocused(),\n orientation: () => rootContext.orientation() === \"horizontal\" ? \"vertical\" : \"horizontal\"\n }, () => ref);\n createFocusScope({\n trapFocus: () => isRootModalContent() && context.isOpen(),\n onMountAutoFocus: (event) => {\n if (optionalMenubarContext === void 0)\n local.onOpenAutoFocus?.(event);\n },\n onUnmountAutoFocus: local.onCloseAutoFocus\n }, () => ref);\n const onKeyDown = (e) => {\n if (!contains(e.currentTarget, e.target)) {\n return;\n }\n if (e.key === \"Tab\" && context.isOpen()) {\n e.preventDefault();\n }\n if (optionalMenubarContext !== void 0) {\n if (e.currentTarget.getAttribute(\"aria-haspopup\") !== \"true\")\n switch (e.key) {\n case MENUBAR_KEYS.next(direction(), rootContext.orientation()):\n e.stopPropagation();\n e.preventDefault();\n context.close(true);\n optionalMenubarContext.setAutoFocusMenu(true);\n optionalMenubarContext.nextMenu();\n break;\n case MENUBAR_KEYS.previous(direction(), rootContext.orientation()):\n if (e.currentTarget.hasAttribute(\"data-closed\"))\n break;\n e.stopPropagation();\n e.preventDefault();\n context.close(true);\n optionalMenubarContext.setAutoFocusMenu(true);\n optionalMenubarContext.previousMenu();\n break;\n }\n }\n };\n const onEscapeKeyDown = (e) => {\n local.onEscapeKeyDown?.(e);\n optionalMenubarContext?.setAutoFocusMenu(false);\n context.close(true);\n };\n const onFocusOutside = (e) => {\n local.onFocusOutside?.(e);\n if (rootContext.isModal()) {\n e.preventDefault();\n }\n };\n const onPointerEnter = (e) => {\n callHandler(e, local.onPointerEnter);\n if (!context.isOpen()) {\n return;\n }\n context.parentMenuContext()?.listState().selectionManager().setFocused(false);\n context.parentMenuContext()?.listState().selectionManager().setFocusedKey(void 0);\n };\n const onPointerMove = (e) => {\n callHandler(e, local.onPointerMove);\n if (e.pointerType !== \"mouse\") {\n return;\n }\n const target = e.target;\n const pointerXHasChanged = lastPointerX !== e.clientX;\n if (contains(e.currentTarget, target) && pointerXHasChanged) {\n context.setPointerDir(e.clientX > lastPointerX ? \"right\" : \"left\");\n lastPointerX = e.clientX;\n }\n };\n createEffect(() => onCleanup(context.registerContentId(local.id)));\n onCleanup(() => context.setContentRef(void 0));\n const commonAttributes = {\n ref: mergeRefs((el) => {\n context.setContentRef(el);\n ref = el;\n }, local.ref),\n role: \"menu\",\n get id() {\n return local.id;\n },\n get tabIndex() {\n return selectableList.tabIndex();\n },\n get \"aria-labelledby\"() {\n return context.triggerId();\n },\n onKeyDown: composeEventHandlers([local.onKeyDown, selectableList.onKeyDown, onKeyDown]),\n onMouseDown: composeEventHandlers([local.onMouseDown, selectableList.onMouseDown]),\n onFocusIn: composeEventHandlers([local.onFocusIn, selectableList.onFocusIn]),\n onFocusOut: composeEventHandlers([local.onFocusOut, selectableList.onFocusOut]),\n onPointerEnter,\n onPointerMove,\n get \"data-orientation\"() {\n return rootContext.orientation();\n }\n };\n return createComponent(Show, {\n get when() {\n return context.contentPresent();\n },\n get children() {\n return createComponent(Show, {\n get when() {\n return optionalNavigationMenuContext === void 0 || context.parentMenuContext() != null;\n },\n get fallback() {\n return createComponent(Polymorphic, mergeProps({\n as: \"div\"\n }, () => context.dataset(), commonAttributes, others));\n },\n get children() {\n return createComponent(Popper.Positioner, {\n get children() {\n return createComponent(DismissableLayer, mergeProps({\n get disableOutsidePointerEvents() {\n return memo(() => !!isRootModalContent())() && context.isOpen();\n },\n get excludedElements() {\n return [context.triggerRef];\n },\n bypassTopMostLayerCheck: true,\n get style() {\n return combineStyle({\n \"--kb-menu-content-transform-origin\": \"var(--kb-popper-content-transform-origin)\",\n position: \"relative\"\n }, local.style);\n },\n onEscapeKeyDown,\n onFocusOutside,\n get onDismiss() {\n return context.close;\n }\n }, () => context.dataset(), commonAttributes, others));\n }\n });\n }\n });\n }\n });\n}\n\n// src/menu/menu-content.tsx\nfunction MenuContent(props) {\n let ref;\n const rootContext = useMenuRootContext();\n const context = useMenuContext();\n const [local, others] = splitProps(props, [\"ref\"]);\n createPreventScroll({\n element: () => ref ?? null,\n enabled: () => context.contentPresent() && rootContext.preventScroll()\n });\n return createComponent(MenuContentBase, mergeProps({\n ref(r$) {\n const _ref$ = mergeRefs((el) => {\n ref = el;\n }, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n }\n }, others));\n}\nvar MenuGroupContext = createContext();\nfunction useMenuGroupContext() {\n const context = useContext(MenuGroupContext);\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useMenuGroupContext` must be used within a `Menu.Group` component\");\n }\n return context;\n}\n\n// src/menu/menu-group.tsx\nfunction MenuGroup(props) {\n const rootContext = useMenuRootContext();\n const mergedProps = mergeDefaultProps({\n id: rootContext.generateId(`group-${createUniqueId()}`)\n }, props);\n const [labelId, setLabelId] = createSignal();\n const context = {\n generateId: createGenerateId(() => mergedProps.id),\n registerLabelId: createRegisterId(setLabelId)\n };\n return createComponent(MenuGroupContext.Provider, {\n value: context,\n get children() {\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n role: \"group\",\n get [\"aria-labelledby\"]() {\n return labelId();\n }\n }, mergedProps));\n }\n });\n}\nfunction MenuGroupLabel(props) {\n const context = useMenuGroupContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"label\")\n }, props);\n const [local, others] = splitProps(mergedProps, [\"id\"]);\n createEffect(() => onCleanup(context.registerLabelId(local.id)));\n return createComponent(Polymorphic, mergeProps({\n as: \"span\",\n get id() {\n return local.id;\n },\n \"aria-hidden\": \"true\"\n }, others));\n}\nfunction MenuIcon(props) {\n const context = useMenuContext();\n const mergedProps = mergeDefaultProps({\n children: \"\\u25BC\"\n }, props);\n return createComponent(Polymorphic, mergeProps({\n as: \"span\",\n \"aria-hidden\": \"true\"\n }, () => context.dataset(), mergedProps));\n}\nfunction MenuItem(props) {\n return createComponent(MenuItemBase, mergeProps({\n role: \"menuitem\",\n closeOnSelect: true\n }, props));\n}\nfunction MenuItemDescription(props) {\n const context = useMenuItemContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"description\")\n }, props);\n const [local, others] = splitProps(mergedProps, [\"id\"]);\n createEffect(() => onCleanup(context.registerDescription(local.id)));\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n get id() {\n return local.id;\n }\n }, () => context.dataset(), others));\n}\nfunction MenuItemIndicator(props) {\n const context = useMenuItemContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"indicator\")\n }, props);\n const [local, others] = splitProps(mergedProps, [\"forceMount\"]);\n return createComponent(Show, {\n get when() {\n return local.forceMount || context.isChecked();\n },\n get children() {\n return createComponent(Polymorphic, mergeProps({\n as: \"div\"\n }, () => context.dataset(), others));\n }\n });\n}\nfunction MenuItemLabel(props) {\n const context = useMenuItemContext();\n const mergedProps = mergeDefaultProps({\n id: context.generateId(\"label\")\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"id\"]);\n createEffect(() => onCleanup(context.registerLabel(local.id)));\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n ref(r$) {\n const _ref$ = mergeRefs(context.setLabelRef, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n get id() {\n return local.id;\n }\n }, () => context.dataset(), others));\n}\nfunction MenuPortal(props) {\n const context = useMenuContext();\n return createComponent(Show, {\n get when() {\n return context.contentPresent();\n },\n get children() {\n return createComponent(Portal, props);\n }\n });\n}\nvar MenuRadioGroupContext = createContext();\nfunction useMenuRadioGroupContext() {\n const context = useContext(MenuRadioGroupContext);\n if (context === void 0) {\n throw new Error(\"[kobalte]: `useMenuRadioGroupContext` must be used within a `Menu.RadioGroup` component\");\n }\n return context;\n}\n\n// src/menu/menu-radio-group.tsx\nfunction MenuRadioGroup(props) {\n const rootContext = useMenuRootContext();\n const defaultId = rootContext.generateId(`radiogroup-${createUniqueId()}`);\n const mergedProps = mergeDefaultProps({\n id: defaultId\n }, props);\n const [local, others] = splitProps(mergedProps, [\"value\", \"defaultValue\", \"onChange\", \"disabled\"]);\n const [selected, setSelected] = createControllableSignal({\n value: () => local.value,\n defaultValue: () => local.defaultValue,\n onChange: (value) => local.onChange?.(value)\n });\n const context = {\n isDisabled: () => local.disabled,\n isSelectedValue: (value) => value === selected(),\n setSelectedValue: (value) => setSelected(value)\n };\n return createComponent(MenuRadioGroupContext.Provider, {\n value: context,\n get children() {\n return createComponent(MenuGroup, others);\n }\n });\n}\nfunction MenuRadioItem(props) {\n const context = useMenuRadioGroupContext();\n const mergedProps = mergeDefaultProps({\n closeOnSelect: false\n }, props);\n const [local, others] = splitProps(mergedProps, [\"value\", \"onSelect\"]);\n const onSelect = () => {\n local.onSelect?.();\n context.setSelectedValue(local.value);\n };\n return createComponent(MenuItemBase, mergeProps({\n role: \"menuitemradio\",\n get checked() {\n return context.isSelectedValue(local.value);\n },\n onSelect\n }, others));\n}\nfunction getPointerGraceArea(placement, event, contentEl) {\n const basePlacement = placement.split(\"-\")[0];\n const contentRect = contentEl.getBoundingClientRect();\n const polygon = [];\n const pointerX = event.clientX;\n const pointerY = event.clientY;\n switch (basePlacement) {\n case \"top\":\n polygon.push([pointerX, pointerY + 5]);\n polygon.push([contentRect.left, contentRect.bottom]);\n polygon.push([contentRect.left, contentRect.top]);\n polygon.push([contentRect.right, contentRect.top]);\n polygon.push([contentRect.right, contentRect.bottom]);\n break;\n case \"right\":\n polygon.push([pointerX - 5, pointerY]);\n polygon.push([contentRect.left, contentRect.top]);\n polygon.push([contentRect.right, contentRect.top]);\n polygon.push([contentRect.right, contentRect.bottom]);\n polygon.push([contentRect.left, contentRect.bottom]);\n break;\n case \"bottom\":\n polygon.push([pointerX, pointerY - 5]);\n polygon.push([contentRect.right, contentRect.top]);\n polygon.push([contentRect.right, contentRect.bottom]);\n polygon.push([contentRect.left, contentRect.bottom]);\n polygon.push([contentRect.left, contentRect.top]);\n break;\n case \"left\":\n polygon.push([pointerX + 5, pointerY]);\n polygon.push([contentRect.right, contentRect.bottom]);\n polygon.push([contentRect.left, contentRect.bottom]);\n polygon.push([contentRect.left, contentRect.top]);\n polygon.push([contentRect.right, contentRect.top]);\n break;\n }\n return polygon;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) {\n return false;\n }\n return isPointInPolygon([event.clientX, event.clientY], area);\n}\n\n// src/menu/menu.tsx\nfunction Menu(props) {\n const rootContext = useMenuRootContext();\n const parentDomCollectionContext = useOptionalDomCollectionContext();\n const parentMenuContext = useOptionalMenuContext();\n const optionalMenubarContext = useOptionalMenubarContext();\n const optionalNavigationMenuContext = useOptionalNavigationMenuContext();\n const mergedProps = mergeDefaultProps({\n placement: rootContext.orientation() === \"horizontal\" ? \"bottom-start\" : \"right-start\"\n }, props);\n const [local, others] = splitProps(mergedProps, [\"open\", \"defaultOpen\", \"onOpenChange\"]);\n let pointerGraceTimeoutId = 0;\n let pointerGraceIntent = null;\n let pointerDir = \"right\";\n const [triggerId, setTriggerId] = createSignal();\n const [contentId, setContentId] = createSignal();\n const [triggerRef, setTriggerRef] = createSignal();\n const [contentRef, setContentRef] = createSignal();\n const [focusStrategy, setFocusStrategy] = createSignal(true);\n const [currentPlacement, setCurrentPlacement] = createSignal(others.placement);\n const [nestedMenus, setNestedMenus] = createSignal([]);\n const [items, setItems] = createSignal([]);\n const {\n DomCollectionProvider\n } = createDomCollection({\n items,\n onItemsChange: setItems\n });\n const disclosureState = createDisclosureState({\n open: () => local.open,\n defaultOpen: () => local.defaultOpen,\n onOpenChange: (isOpen) => local.onOpenChange?.(isOpen)\n });\n const {\n present: contentPresent\n } = createPresence({\n show: () => rootContext.forceMount() || disclosureState.isOpen(),\n element: () => contentRef() ?? null\n });\n const listState = createListState({\n selectionMode: \"none\",\n dataSource: items\n });\n const open = (focusStrategy2) => {\n setFocusStrategy(focusStrategy2);\n disclosureState.open();\n };\n const close = (recursively = false) => {\n disclosureState.close();\n if (recursively && parentMenuContext) {\n parentMenuContext.close(true);\n }\n };\n const toggle = (focusStrategy2) => {\n setFocusStrategy(focusStrategy2);\n disclosureState.toggle();\n };\n const _focusContent = () => {\n const content = contentRef();\n if (content) {\n focusWithoutScrolling(content);\n listState.selectionManager().setFocused(true);\n listState.selectionManager().setFocusedKey(void 0);\n }\n };\n const focusContent = () => {\n if (optionalNavigationMenuContext != null)\n setTimeout(() => _focusContent());\n else\n _focusContent();\n };\n const registerNestedMenu = (element) => {\n setNestedMenus((prev) => [...prev, element]);\n const parentUnregister = parentMenuContext?.registerNestedMenu(element);\n return () => {\n setNestedMenus((prev) => removeItemFromArray(prev, element));\n parentUnregister?.();\n };\n };\n const isPointerMovingToSubmenu = (e) => {\n const isMovingTowards = pointerDir === pointerGraceIntent?.side;\n return isMovingTowards && isPointerInGraceArea(e, pointerGraceIntent?.area);\n };\n const onItemEnter = (e) => {\n if (isPointerMovingToSubmenu(e)) {\n e.preventDefault();\n }\n };\n const onItemLeave = (e) => {\n if (isPointerMovingToSubmenu(e)) {\n return;\n }\n focusContent();\n };\n const onTriggerLeave = (e) => {\n if (isPointerMovingToSubmenu(e)) {\n e.preventDefault();\n }\n };\n createHideOutside({\n isDisabled: () => {\n return !(parentMenuContext == null && disclosureState.isOpen() && rootContext.isModal());\n },\n targets: () => [contentRef(), ...nestedMenus()].filter(Boolean)\n });\n createEffect(() => {\n const contentEl = contentRef();\n if (!contentEl || !parentMenuContext) {\n return;\n }\n const parentUnregister = parentMenuContext.registerNestedMenu(contentEl);\n onCleanup(() => {\n parentUnregister();\n });\n });\n createEffect(() => {\n if (parentMenuContext !== void 0)\n return;\n optionalMenubarContext?.registerMenu(rootContext.value(), [contentRef(), ...nestedMenus()]);\n });\n createEffect(() => {\n if (parentMenuContext !== void 0 || optionalMenubarContext === void 0)\n return;\n if (optionalMenubarContext.value() === rootContext.value()) {\n triggerRef()?.focus();\n if (optionalMenubarContext.autoFocusMenu())\n open(true);\n } else\n close();\n });\n createEffect(() => {\n if (parentMenuContext !== void 0 || optionalMenubarContext === void 0)\n return;\n if (disclosureState.isOpen())\n optionalMenubarContext.setValue(rootContext.value());\n });\n onCleanup(() => {\n if (parentMenuContext !== void 0)\n return;\n optionalMenubarContext?.unregisterMenu(rootContext.value());\n });\n const dataset = createMemo(() => ({\n \"data-expanded\": disclosureState.isOpen() ? \"\" : void 0,\n \"data-closed\": !disclosureState.isOpen() ? \"\" : void 0\n }));\n const context = {\n dataset,\n isOpen: disclosureState.isOpen,\n contentPresent,\n nestedMenus,\n currentPlacement,\n pointerGraceTimeoutId: () => pointerGraceTimeoutId,\n autoFocus: focusStrategy,\n listState: () => listState,\n parentMenuContext: () => parentMenuContext,\n triggerRef,\n contentRef,\n triggerId,\n contentId,\n setTriggerRef,\n setContentRef,\n open,\n close,\n toggle,\n focusContent,\n onItemEnter,\n onItemLeave,\n onTriggerLeave,\n setPointerDir: (dir) => pointerDir = dir,\n setPointerGraceTimeoutId: (id) => pointerGraceTimeoutId = id,\n setPointerGraceIntent: (intent) => pointerGraceIntent = intent,\n registerNestedMenu,\n registerItemToParentDomCollection: parentDomCollectionContext?.registerItem,\n registerTriggerId: createRegisterId(setTriggerId),\n registerContentId: createRegisterId(setContentId)\n };\n return createComponent(DomCollectionProvider, {\n get children() {\n return createComponent(MenuContext.Provider, {\n value: context,\n get children() {\n return createComponent(Show, {\n when: optionalNavigationMenuContext === void 0,\n get fallback() {\n return others.children;\n },\n get children() {\n return createComponent(Popper, mergeProps({\n anchorRef: triggerRef,\n contentRef,\n onCurrentPlacementChange: setCurrentPlacement\n }, others));\n }\n });\n }\n });\n }\n });\n}\n\n// src/menu/menu-sub.tsx\nfunction MenuSub(props) {\n const {\n direction\n } = useLocale();\n return createComponent(Menu, mergeProps({\n get placement() {\n return direction() === \"rtl\" ? \"left-start\" : \"right-start\";\n },\n flip: true\n }, props));\n}\nvar SUB_CLOSE_KEYS = {\n close: (dir, orientation) => {\n if (dir === \"ltr\") {\n return [orientation === \"horizontal\" ? \"ArrowLeft\" : \"ArrowUp\"];\n }\n return [orientation === \"horizontal\" ? \"ArrowRight\" : \"ArrowDown\"];\n }\n};\nfunction MenuSubContent(props) {\n const context = useMenuContext();\n const rootContext = useMenuRootContext();\n const [local, others] = splitProps(props, [\"onFocusOutside\", \"onKeyDown\"]);\n const {\n direction\n } = useLocale();\n const onOpenAutoFocus = (e) => {\n e.preventDefault();\n };\n const onCloseAutoFocus = (e) => {\n e.preventDefault();\n };\n const onFocusOutside = (e) => {\n local.onFocusOutside?.(e);\n const target = e.target;\n if (!contains(context.triggerRef(), target)) {\n context.close();\n }\n };\n const onKeyDown = (e) => {\n callHandler(e, local.onKeyDown);\n const isKeyDownInside = contains(e.currentTarget, e.target);\n const isCloseKey = SUB_CLOSE_KEYS.close(direction(), rootContext.orientation()).includes(e.key);\n const isSubMenu = context.parentMenuContext() != null;\n if (isKeyDownInside && isCloseKey && isSubMenu) {\n context.close();\n focusWithoutScrolling(context.triggerRef());\n }\n };\n return createComponent(MenuContentBase, mergeProps({\n onOpenAutoFocus,\n onCloseAutoFocus,\n onFocusOutside,\n onKeyDown\n }, others));\n}\nvar SELECTION_KEYS = [\"Enter\", \" \"];\nvar SUB_OPEN_KEYS = {\n open: (dir, orientation) => {\n if (dir === \"ltr\") {\n return [...SELECTION_KEYS, orientation === \"horizontal\" ? \"ArrowRight\" : \"ArrowDown\"];\n }\n return [...SELECTION_KEYS, orientation === \"horizontal\" ? \"ArrowLeft\" : \"ArrowUp\"];\n }\n};\nfunction MenuSubTrigger(props) {\n let ref;\n const rootContext = useMenuRootContext();\n const context = useMenuContext();\n const mergedProps = mergeDefaultProps({\n id: rootContext.generateId(`sub-trigger-${createUniqueId()}`)\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"id\", \"textValue\", \"disabled\", \"onPointerMove\", \"onPointerLeave\", \"onPointerDown\", \"onPointerUp\", \"onClick\", \"onKeyDown\", \"onMouseDown\", \"onFocus\"]);\n let openTimeoutId = null;\n const clearOpenTimeout = () => {\n if (isServer) {\n return;\n }\n if (openTimeoutId) {\n window.clearTimeout(openTimeoutId);\n }\n openTimeoutId = null;\n };\n const {\n direction\n } = useLocale();\n const key = () => local.id;\n const parentSelectionManager = () => {\n const parentMenuContext = context.parentMenuContext();\n if (parentMenuContext == null) {\n throw new Error(\"[kobalte]: `Menu.SubTrigger` must be used within a `Menu.Sub` component\");\n }\n return parentMenuContext.listState().selectionManager();\n };\n const collection = () => context.listState().collection();\n const isHighlighted = () => parentSelectionManager().focusedKey() === key();\n const selectableItem = createSelectableItem({\n key,\n selectionManager: parentSelectionManager,\n shouldSelectOnPressUp: true,\n allowsDifferentPressOrigin: true,\n disabled: () => local.disabled\n }, () => ref);\n const onClick = (e) => {\n callHandler(e, local.onClick);\n if (!context.isOpen() && !local.disabled) {\n context.open(true);\n }\n };\n const onPointerMove = (e) => {\n callHandler(e, local.onPointerMove);\n if (e.pointerType !== \"mouse\") {\n return;\n }\n const parentMenuContext = context.parentMenuContext();\n parentMenuContext?.onItemEnter(e);\n if (e.defaultPrevented) {\n return;\n }\n if (local.disabled) {\n parentMenuContext?.onItemLeave(e);\n return;\n }\n if (!context.isOpen() && !openTimeoutId) {\n context.parentMenuContext()?.setPointerGraceIntent(null);\n openTimeoutId = window.setTimeout(() => {\n context.open(false);\n clearOpenTimeout();\n }, 100);\n }\n parentMenuContext?.onItemEnter(e);\n if (!e.defaultPrevented) {\n if (context.listState().selectionManager().isFocused()) {\n context.listState().selectionManager().setFocused(false);\n context.listState().selectionManager().setFocusedKey(void 0);\n }\n focusWithoutScrolling(e.currentTarget);\n parentMenuContext?.listState().selectionManager().setFocused(true);\n parentMenuContext?.listState().selectionManager().setFocusedKey(key());\n }\n };\n const onPointerLeave = (e) => {\n callHandler(e, local.onPointerLeave);\n if (e.pointerType !== \"mouse\") {\n return;\n }\n clearOpenTimeout();\n const parentMenuContext = context.parentMenuContext();\n const contentEl = context.contentRef();\n if (contentEl) {\n parentMenuContext?.setPointerGraceIntent({\n area: getPointerGraceArea(context.currentPlacement(), e, contentEl),\n // Safe because sub menu always open \"left\" or \"right\".\n side: context.currentPlacement().split(\"-\")[0]\n });\n window.clearTimeout(parentMenuContext?.pointerGraceTimeoutId());\n const pointerGraceTimeoutId = window.setTimeout(() => {\n parentMenuContext?.setPointerGraceIntent(null);\n }, 300);\n parentMenuContext?.setPointerGraceTimeoutId(pointerGraceTimeoutId);\n } else {\n parentMenuContext?.onTriggerLeave(e);\n if (e.defaultPrevented) {\n return;\n }\n parentMenuContext?.setPointerGraceIntent(null);\n }\n parentMenuContext?.onItemLeave(e);\n };\n const onKeyDown = (e) => {\n callHandler(e, local.onKeyDown);\n if (e.repeat) {\n return;\n }\n if (local.disabled) {\n return;\n }\n if (SUB_OPEN_KEYS.open(direction(), rootContext.orientation()).includes(e.key)) {\n e.stopPropagation();\n e.preventDefault();\n parentSelectionManager().setFocused(false);\n parentSelectionManager().setFocusedKey(void 0);\n if (!context.isOpen()) {\n context.open(\"first\");\n }\n context.focusContent();\n context.listState().selectionManager().setFocused(true);\n context.listState().selectionManager().setFocusedKey(collection().getFirstKey());\n }\n };\n createEffect(() => {\n if (context.registerItemToParentDomCollection == null) {\n throw new Error(\"[kobalte]: `Menu.SubTrigger` must be used within a `Menu.Sub` component\");\n }\n const unregister = context.registerItemToParentDomCollection({\n ref: () => ref,\n type: \"item\",\n key: key(),\n textValue: local.textValue ?? ref?.textContent ?? \"\",\n disabled: local.disabled ?? false\n });\n onCleanup(unregister);\n });\n createEffect(on(() => context.parentMenuContext()?.pointerGraceTimeoutId(), (pointerGraceTimer) => {\n onCleanup(() => {\n window.clearTimeout(pointerGraceTimer);\n context.parentMenuContext()?.setPointerGraceIntent(null);\n });\n }));\n createEffect(() => onCleanup(context.registerTriggerId(local.id)));\n onCleanup(() => {\n clearOpenTimeout();\n });\n return createComponent(Polymorphic, mergeProps({\n as: \"div\",\n ref(r$) {\n const _ref$ = mergeRefs((el) => {\n context.setTriggerRef(el);\n ref = el;\n }, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n get id() {\n return local.id;\n },\n role: \"menuitem\",\n get tabIndex() {\n return selectableItem.tabIndex();\n },\n \"aria-haspopup\": \"true\",\n get [\"aria-expanded\"]() {\n return context.isOpen();\n },\n get [\"aria-controls\"]() {\n return memo(() => !!context.isOpen())() ? context.contentId() : void 0;\n },\n get [\"aria-disabled\"]() {\n return local.disabled;\n },\n get [\"data-key\"]() {\n return selectableItem.dataKey();\n },\n get [\"data-highlighted\"]() {\n return isHighlighted() ? \"\" : void 0;\n },\n get [\"data-disabled\"]() {\n return local.disabled ? \"\" : void 0;\n },\n get onPointerDown() {\n return composeEventHandlers([local.onPointerDown, selectableItem.onPointerDown]);\n },\n get onPointerUp() {\n return composeEventHandlers([local.onPointerUp, selectableItem.onPointerUp]);\n },\n get onClick() {\n return composeEventHandlers([onClick, selectableItem.onClick]);\n },\n get onKeyDown() {\n return composeEventHandlers([onKeyDown, selectableItem.onKeyDown]);\n },\n get onMouseDown() {\n return composeEventHandlers([local.onMouseDown, selectableItem.onMouseDown]);\n },\n get onFocus() {\n return composeEventHandlers([local.onFocus, selectableItem.onFocus]);\n },\n onPointerMove,\n onPointerLeave\n }, () => context.dataset(), others));\n}\nfunction MenuRoot(props) {\n const optionalMenubarContext = useOptionalMenubarContext();\n const defaultId = `menu-${createUniqueId()}`;\n const mergedProps = mergeDefaultProps({\n id: defaultId,\n modal: true\n }, props);\n const [local, others] = splitProps(mergedProps, [\"id\", \"modal\", \"preventScroll\", \"forceMount\", \"open\", \"defaultOpen\", \"onOpenChange\", \"value\", \"orientation\"]);\n const disclosureState = createDisclosureState({\n open: () => local.open,\n defaultOpen: () => local.defaultOpen,\n onOpenChange: (isOpen) => local.onOpenChange?.(isOpen)\n });\n const context = {\n isModal: () => local.modal ?? true,\n preventScroll: () => local.preventScroll ?? context.isModal(),\n forceMount: () => local.forceMount ?? false,\n generateId: createGenerateId(() => local.id),\n value: () => local.value,\n orientation: () => local.orientation ?? optionalMenubarContext?.orientation() ?? \"horizontal\"\n };\n return createComponent(MenuRootContext.Provider, {\n value: context,\n get children() {\n return createComponent(Menu, mergeProps({\n get open() {\n return disclosureState.isOpen();\n },\n get onOpenChange() {\n return disclosureState.setIsOpen;\n }\n }, others));\n }\n });\n}\n\nexport { MenuCheckboxItem, MenuContent, MenuGroup, MenuGroupLabel, MenuIcon, MenuItem, MenuItemDescription, MenuItemIndicator, MenuItemLabel, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuRoot, MenuSub, MenuSubContent, MenuSubTrigger, MenuTrigger, MenubarContext, NavigationMenuContext, useMenuContext, useMenuRootContext, useMenubarContext, useNavigationMenuContext, useOptionalMenuContext };\n","import { createTagName } from './ET5T45DO.js';\nimport { Polymorphic } from './6Y7B2NEO.js';\nimport { __export } from './5ZKAE4VZ.js';\nimport { createComponent, mergeProps } from 'solid-js/web';\nimport { mergeDefaultProps, mergeRefs } from '@kobalte/utils';\nimport { splitProps } from 'solid-js';\n\n// src/separator/index.tsx\nvar separator_exports = {};\n__export(separator_exports, {\n Root: () => SeparatorRoot,\n Separator: () => Separator\n});\nfunction SeparatorRoot(props) {\n let ref;\n const mergedProps = mergeDefaultProps({\n orientation: \"horizontal\"\n }, props);\n const [local, others] = splitProps(mergedProps, [\"ref\", \"orientation\"]);\n const tagName = createTagName(() => ref, () => \"hr\");\n return createComponent(Polymorphic, mergeProps({\n as: \"hr\",\n ref(r$) {\n const _ref$ = mergeRefs((el) => ref = el, local.ref);\n typeof _ref$ === \"function\" && _ref$(r$);\n },\n get role() {\n return tagName() !== \"hr\" ? \"separator\" : void 0;\n },\n get [\"aria-orientation\"]() {\n return local.orientation === \"vertical\" ? \"vertical\" : void 0;\n },\n get [\"data-orientation\"]() {\n return local.orientation;\n }\n }, others));\n}\n\n// src/separator/index.tsx\nvar Separator = SeparatorRoot;\n\nexport { Separator, SeparatorRoot, separator_exports };\n","import { MenuCheckboxItem, MenuGroup, MenuGroupLabel, MenuIcon, MenuItem, MenuItemDescription, MenuItemIndicator, MenuItemLabel, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuSub, MenuSubContent, MenuSubTrigger, MenuTrigger, useMenuRootContext, useMenuContext, MenuContent, MenuRoot } from './46NU5BYI.js';\nimport { SeparatorRoot } from './STGRFJHZ.js';\nimport { PopperArrow } from './LMWVDFW6.js';\nimport { __export } from './5ZKAE4VZ.js';\nimport { createComponent, mergeProps } from 'solid-js/web';\nimport { mergeDefaultProps, focusWithoutScrolling } from '@kobalte/utils';\nimport { splitProps, createUniqueId } from 'solid-js';\n\n// src/dropdown-menu/index.tsx\nvar dropdown_menu_exports = {};\n__export(dropdown_menu_exports, {\n Arrow: () => PopperArrow,\n CheckboxItem: () => MenuCheckboxItem,\n Content: () => DropdownMenuContent,\n DropdownMenu: () => DropdownMenu,\n Group: () => MenuGroup,\n GroupLabel: () => MenuGroupLabel,\n Icon: () => MenuIcon,\n Item: () => MenuItem,\n ItemDescription: () => MenuItemDescription,\n ItemIndicator: () => MenuItemIndicator,\n ItemLabel: () => MenuItemLabel,\n Portal: () => MenuPortal,\n RadioGroup: () => MenuRadioGroup,\n RadioItem: () => MenuRadioItem,\n Root: () => DropdownMenuRoot,\n Separator: () => SeparatorRoot,\n Sub: () => MenuSub,\n SubContent: () => MenuSubContent,\n SubTrigger: () => MenuSubTrigger,\n Trigger: () => MenuTrigger\n});\nfunction DropdownMenuContent(props) {\n const rootContext = useMenuRootContext();\n const context = useMenuContext();\n const [local, others] = splitProps(props, [\"onCloseAutoFocus\", \"onInteractOutside\"]);\n let hasInteractedOutside = false;\n const onCloseAutoFocus = (e) => {\n local.onCloseAutoFocus?.(e);\n if (!hasInteractedOutside) {\n focusWithoutScrolling(context.triggerRef());\n }\n hasInteractedOutside = false;\n e.preventDefault();\n };\n const onInteractOutside = (e) => {\n local.onInteractOutside?.(e);\n if (!rootContext.isModal() || e.detail.isContextMenu) {\n hasInteractedOutside = true;\n }\n };\n return createComponent(MenuContent, mergeProps({\n onCloseAutoFocus,\n onInteractOutside\n }, others));\n}\nfunction DropdownMenuRoot(props) {\n const defaultId = `dropdownmenu-${createUniqueId()}`;\n const mergedProps = mergeDefaultProps({\n id: defaultId\n }, props);\n return createComponent(MenuRoot, mergedProps);\n}\n\n// src/dropdown-menu/index.tsx\nvar DropdownMenu = Object.assign(DropdownMenuRoot, {\n Arrow: PopperArrow,\n CheckboxItem: MenuCheckboxItem,\n Content: DropdownMenuContent,\n Group: MenuGroup,\n GroupLabel: MenuGroupLabel,\n Icon: MenuIcon,\n Item: MenuItem,\n ItemDescription: MenuItemDescription,\n ItemIndicator: MenuItemIndicator,\n ItemLabel: MenuItemLabel,\n Portal: MenuPortal,\n RadioGroup: MenuRadioGroup,\n RadioItem: MenuRadioItem,\n Separator: SeparatorRoot,\n Sub: MenuSub,\n SubContent: MenuSubContent,\n SubTrigger: MenuSubTrigger,\n Trigger: MenuTrigger\n});\n\nexport { DropdownMenu, DropdownMenuContent, DropdownMenuRoot, dropdown_menu_exports };\n","export const tokens = {\n colors: {\n inherit: 'inherit',\n current: 'currentColor',\n transparent: 'transparent',\n black: '#000000',\n white: '#ffffff',\n neutral: {\n 50: '#f9fafb',\n 100: '#f2f4f7',\n 200: '#eaecf0',\n 300: '#d0d5dd',\n 400: '#98a2b3',\n 500: '#667085',\n 600: '#475467',\n 700: '#344054',\n 800: '#1d2939',\n 900: '#101828',\n },\n darkGray: {\n 50: '#525c7a',\n 100: '#49536e',\n 200: '#414962',\n 300: '#394056',\n 400: '#313749',\n 500: '#292e3d',\n 600: '#212530',\n 700: '#191c24',\n 800: '#111318',\n 900: '#0b0d10',\n },\n gray: {\n 50: '#f9fafb',\n 100: '#f2f4f7',\n 200: '#eaecf0',\n 300: '#d0d5dd',\n 400: '#98a2b3',\n 500: '#667085',\n 600: '#475467',\n 700: '#344054',\n 800: '#1d2939',\n 900: '#101828',\n },\n blue: {\n 25: '#F5FAFF',\n 50: '#EFF8FF',\n 100: '#D1E9FF',\n 200: '#B2DDFF',\n 300: '#84CAFF',\n 400: '#53B1FD',\n 500: '#2E90FA',\n 600: '#1570EF',\n 700: '#175CD3',\n 800: '#1849A9',\n 900: '#194185',\n },\n green: {\n 25: '#F6FEF9',\n 50: '#ECFDF3',\n 100: '#D1FADF',\n 200: '#A6F4C5',\n 300: '#6CE9A6',\n 400: '#32D583',\n 500: '#12B76A',\n 600: '#039855',\n 700: '#027A48',\n 800: '#05603A',\n 900: '#054F31',\n },\n red: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n 950: '#450a0a',\n },\n yellow: {\n 25: '#FFFCF5',\n 50: '#FFFAEB',\n 100: '#FEF0C7',\n 200: '#FEDF89',\n 300: '#FEC84B',\n 400: '#FDB022',\n 500: '#F79009',\n 600: '#DC6803',\n 700: '#B54708',\n 800: '#93370D',\n 900: '#7A2E0E',\n },\n purple: {\n 25: '#FAFAFF',\n 50: '#F4F3FF',\n 100: '#EBE9FE',\n 200: '#D9D6FE',\n 300: '#BDB4FE',\n 400: '#9B8AFB',\n 500: '#7A5AF8',\n 600: '#6938EF',\n 700: '#5925DC',\n 800: '#4A1FB8',\n 900: '#3E1C96',\n },\n teal: {\n 25: '#F6FEFC',\n 50: '#F0FDF9',\n 100: '#CCFBEF',\n 200: '#99F6E0',\n 300: '#5FE9D0',\n 400: '#2ED3B7',\n 500: '#15B79E',\n 600: '#0E9384',\n 700: '#107569',\n 800: '#125D56',\n 900: '#134E48',\n },\n pink: {\n 25: '#fdf2f8',\n 50: '#fce7f3',\n 100: '#fbcfe8',\n 200: '#f9a8d4',\n 300: '#f472b6',\n 400: '#ec4899',\n 500: '#db2777',\n 600: '#be185d',\n 700: '#9d174d',\n 800: '#831843',\n 900: '#500724',\n },\n cyan: {\n 25: '#ecfeff',\n 50: '#cffafe',\n 100: '#a5f3fc',\n 200: '#67e8f9',\n 300: '#22d3ee',\n 400: '#06b6d4',\n 500: '#0891b2',\n 600: '#0e7490',\n 700: '#155e75',\n 800: '#164e63',\n 900: '#083344',\n },\n },\n alpha: {\n 100: 'ff',\n 90: 'e5',\n 80: 'cc',\n 70: 'b3',\n 60: '99',\n 50: '80',\n 40: '66',\n 30: '4d',\n 20: '33',\n 10: '1a',\n 0: '00',\n },\n font: {\n size: {\n '2xs': 'calc(var(--tsqd-font-size) * 0.625)',\n xs: 'calc(var(--tsqd-font-size) * 0.75)',\n sm: 'calc(var(--tsqd-font-size) * 0.875)',\n md: 'var(--tsqd-font-size)',\n lg: 'calc(var(--tsqd-font-size) * 1.125)',\n xl: 'calc(var(--tsqd-font-size) * 1.25)',\n '2xl': 'calc(var(--tsqd-font-size) * 1.5)',\n '3xl': 'calc(var(--tsqd-font-size) * 1.875)',\n '4xl': 'calc(var(--tsqd-font-size) * 2.25)',\n '5xl': 'calc(var(--tsqd-font-size) * 3)',\n '6xl': 'calc(var(--tsqd-font-size) * 3.75)',\n '7xl': 'calc(var(--tsqd-font-size) * 4.5)',\n '8xl': 'calc(var(--tsqd-font-size) * 6)',\n '9xl': 'calc(var(--tsqd-font-size) * 8)',\n },\n lineHeight: {\n xs: 'calc(var(--tsqd-font-size) * 1)',\n sm: 'calc(var(--tsqd-font-size) * 1.25)',\n md: 'calc(var(--tsqd-font-size) * 1.5)',\n lg: 'calc(var(--tsqd-font-size) * 1.75)',\n xl: 'calc(var(--tsqd-font-size) * 2)',\n '2xl': 'calc(var(--tsqd-font-size) * 2.25)',\n '3xl': 'calc(var(--tsqd-font-size) * 2.5)',\n '4xl': 'calc(var(--tsqd-font-size) * 2.75)',\n '5xl': 'calc(var(--tsqd-font-size) * 3)',\n '6xl': 'calc(var(--tsqd-font-size) * 3.25)',\n '7xl': 'calc(var(--tsqd-font-size) * 3.5)',\n '8xl': 'calc(var(--tsqd-font-size) * 3.75)',\n '9xl': 'calc(var(--tsqd-font-size) * 4)',\n },\n weight: {\n thin: '100',\n extralight: '200',\n light: '300',\n normal: '400',\n medium: '500',\n semibold: '600',\n bold: '700',\n extrabold: '800',\n black: '900',\n },\n },\n breakpoints: {\n xs: '320px',\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n },\n border: {\n radius: {\n none: '0px',\n xs: 'calc(var(--tsqd-font-size) * 0.125)',\n sm: 'calc(var(--tsqd-font-size) * 0.25)',\n md: 'calc(var(--tsqd-font-size) * 0.375)',\n lg: 'calc(var(--tsqd-font-size) * 0.5)',\n xl: 'calc(var(--tsqd-font-size) * 0.75)',\n '2xl': 'calc(var(--tsqd-font-size) * 1)',\n '3xl': 'calc(var(--tsqd-font-size) * 1.5)',\n full: '9999px',\n },\n },\n size: {\n 0: '0px',\n 0.25: 'calc(var(--tsqd-font-size) * 0.0625)',\n 0.5: 'calc(var(--tsqd-font-size) * 0.125)',\n 1: 'calc(var(--tsqd-font-size) * 0.25)',\n 1.5: 'calc(var(--tsqd-font-size) * 0.375)',\n 2: 'calc(var(--tsqd-font-size) * 0.5)',\n 2.5: 'calc(var(--tsqd-font-size) * 0.625)',\n 3: 'calc(var(--tsqd-font-size) * 0.75)',\n 3.5: 'calc(var(--tsqd-font-size) * 0.875)',\n 4: 'calc(var(--tsqd-font-size) * 1)',\n 4.5: 'calc(var(--tsqd-font-size) * 1.125)',\n 5: 'calc(var(--tsqd-font-size) * 1.25)',\n 5.5: 'calc(var(--tsqd-font-size) * 1.375)',\n 6: 'calc(var(--tsqd-font-size) * 1.5)',\n 6.5: 'calc(var(--tsqd-font-size) * 1.625)',\n 7: 'calc(var(--tsqd-font-size) * 1.75)',\n 8: 'calc(var(--tsqd-font-size) * 2)',\n 9: 'calc(var(--tsqd-font-size) * 2.25)',\n 10: 'calc(var(--tsqd-font-size) * 2.5)',\n 11: 'calc(var(--tsqd-font-size) * 2.75)',\n 12: 'calc(var(--tsqd-font-size) * 3)',\n 14: 'calc(var(--tsqd-font-size) * 3.5)',\n 16: 'calc(var(--tsqd-font-size) * 4)',\n 20: 'calc(var(--tsqd-font-size) * 5)',\n 24: 'calc(var(--tsqd-font-size) * 6)',\n 28: 'calc(var(--tsqd-font-size) * 7)',\n 32: 'calc(var(--tsqd-font-size) * 8)',\n 36: 'calc(var(--tsqd-font-size) * 9)',\n 40: 'calc(var(--tsqd-font-size) * 10)',\n 44: 'calc(var(--tsqd-font-size) * 11)',\n 48: 'calc(var(--tsqd-font-size) * 12)',\n 52: 'calc(var(--tsqd-font-size) * 13)',\n 56: 'calc(var(--tsqd-font-size) * 14)',\n 60: 'calc(var(--tsqd-font-size) * 15)',\n 64: 'calc(var(--tsqd-font-size) * 16)',\n 72: 'calc(var(--tsqd-font-size) * 18)',\n 80: 'calc(var(--tsqd-font-size) * 20)',\n 96: 'calc(var(--tsqd-font-size) * 24)',\n },\n shadow: {\n xs: (_: string = 'rgb(0 0 0 / 0.1)') =>\n `0 1px 2px 0 rgb(0 0 0 / 0.05)` as const,\n sm: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 1px 3px 0 ${color}, 0 1px 2px -1px ${color}` as const,\n md: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 4px 6px -1px ${color}, 0 2px 4px -2px ${color}` as const,\n lg: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 10px 15px -3px ${color}, 0 4px 6px -4px ${color}` as const,\n xl: (color: string = 'rgb(0 0 0 / 0.1)') =>\n `0 20px 25px -5px ${color}, 0 8px 10px -6px ${color}` as const,\n '2xl': (color: string = 'rgb(0 0 0 / 0.25)') =>\n `0 25px 50px -12px ${color}` as const,\n inner: (color: string = 'rgb(0 0 0 / 0.05)') =>\n `inset 0 2px 4px 0 ${color}` as const,\n none: () => `none` as const,\n },\n zIndices: {\n hide: -1,\n auto: 'auto',\n base: 0,\n docked: 10,\n dropdown: 1000,\n sticky: 1100,\n banner: 1200,\n overlay: 1300,\n modal: 1400,\n popover: 1500,\n skipLink: 1600,\n toast: 1700,\n tooltip: 1800,\n },\n} as const\n","import { Show, createUniqueId } from 'solid-js'\n\nexport function Search() {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13 13L9.00007 9M10.3333 5.66667C10.3333 8.244 8.244 10.3333 5.66667 10.3333C3.08934 10.3333 1 8.244 1 5.66667C1 3.08934 3.08934 1 5.66667 1C8.244 1 10.3333 3.08934 10.3333 5.66667Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function Trash() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9 3H15M3 6H21M19 6L18.2987 16.5193C18.1935 18.0975 18.1409 18.8867 17.8 19.485C17.4999 20.0118 17.0472 20.4353 16.5017 20.6997C15.882 21 15.0911 21 13.5093 21H10.4907C8.90891 21 8.11803 21 7.49834 20.6997C6.95276 20.4353 6.50009 20.0118 6.19998 19.485C5.85911 18.8867 5.8065 18.0975 5.70129 16.5193L5 6M10 10.5V15.5M14 10.5V15.5\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function ChevronDown() {\n return (\n <svg\n width=\"10\"\n height=\"6\"\n viewBox=\"0 0 10 6\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1 1L5 5L9 1\"\n stroke=\"currentColor\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function ArrowUp() {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 13.3333V2.66667M8 2.66667L4 6.66667M8 2.66667L12 6.66667\"\n stroke=\"currentColor\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function ArrowDown() {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 2.66667V13.3333M8 13.3333L4 9.33333M8 13.3333L12 9.33333\"\n stroke=\"currentColor\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function ArrowLeft() {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{\n transform: 'rotate(90deg)',\n }}\n >\n <path\n d=\"M8 2.66667V13.3333M8 13.3333L4 9.33333M8 13.3333L12 9.33333\"\n stroke=\"currentColor\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function ArrowRight() {\n return (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{\n transform: 'rotate(-90deg)',\n }}\n >\n <path\n d=\"M8 2.66667V13.3333M8 13.3333L4 9.33333M8 13.3333L12 9.33333\"\n stroke=\"currentColor\"\n stroke-width=\"1.66667\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function Sun() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n height=\"12\"\n width=\"12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12 2v2m0 16v2M4 12H2m4.314-5.686L4.9 4.9m12.786 1.414L19.1 4.9M6.314 17.69 4.9 19.104m12.786-1.414 1.414 1.414M22 12h-2m-3 0a5 5 0 1 1-10 0 5 5 0 0 1 10 0Z\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n ></path>\n </svg>\n )\n}\n\nexport function Moon() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n height=\"12\"\n width=\"12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22 15.844a10.424 10.424 0 0 1-4.306.925c-5.779 0-10.463-4.684-10.463-10.462 0-1.536.33-2.994.925-4.307A10.464 10.464 0 0 0 2 11.538C2 17.316 6.684 22 12.462 22c4.243 0 7.896-2.526 9.538-6.156Z\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n ></path>\n </svg>\n )\n}\n\nexport function Monitor() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n height=\"12\"\n width=\"12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 21h8m-4-4v4m-5.2-4h10.4c1.68 0 2.52 0 3.162-.327a3 3 0 0 0 1.311-1.311C22 14.72 22 13.88 22 12.2V7.8c0-1.68 0-2.52-.327-3.162a3 3 0 0 0-1.311-1.311C19.72 3 18.88 3 17.2 3H6.8c-1.68 0-2.52 0-3.162.327a3 3 0 0 0-1.311 1.311C2 5.28 2 6.12 2 7.8v4.4c0 1.68 0 2.52.327 3.162a3 3 0 0 0 1.311 1.311C4.28 17 5.12 17 6.8 17Z\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n ></path>\n </svg>\n )\n}\n\nexport function Wifi() {\n return (\n <svg\n stroke=\"currentColor\"\n fill=\"currentColor\"\n stroke-width=\"0\"\n viewBox=\"0 0 24 24\"\n height=\"1em\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path fill=\"none\" d=\"M0 0h24v24H0z\"></path>\n <path d=\"M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3a4.237 4.237 0 00-6 0zm-4-4l2 2a7.074 7.074 0 0110 0l2-2C15.14 9.14 8.87 9.14 5 13z\"></path>\n </svg>\n )\n}\n\nexport function Offline() {\n return (\n <svg\n stroke-width=\"0\"\n viewBox=\"0 0 24 24\"\n height=\"1em\"\n width=\"1em\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill=\"none\"\n d=\"M24 .01c0-.01 0-.01 0 0L0 0v24h24V.01zM0 0h24v24H0V0zm0 0h24v24H0V0z\"\n ></path>\n <path d=\"M22.99 9C19.15 5.16 13.8 3.76 8.84 4.78l2.52 2.52c3.47-.17 6.99 1.05 9.63 3.7l2-2zm-4 4a9.793 9.793 0 00-4.49-2.56l3.53 3.53.96-.97zM2 3.05L5.07 6.1C3.6 6.82 2.22 7.78 1 9l1.99 2c1.24-1.24 2.67-2.16 4.2-2.77l2.24 2.24A9.684 9.684 0 005 13v.01L6.99 15a7.042 7.042 0 014.92-2.06L18.98 20l1.27-1.26L3.29 1.79 2 3.05zM9 17l3 3 3-3a4.237 4.237 0 00-6 0z\"></path>\n </svg>\n )\n}\n\nexport function Settings() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.3951 19.3711L9.97955 20.6856C10.1533 21.0768 10.4368 21.4093 10.7958 21.6426C11.1547 21.8759 11.5737 22.0001 12.0018 22C12.4299 22.0001 12.8488 21.8759 13.2078 21.6426C13.5667 21.4093 13.8503 21.0768 14.024 20.6856L14.6084 19.3711C14.8165 18.9047 15.1664 18.5159 15.6084 18.26C16.0532 18.0034 16.5678 17.8941 17.0784 17.9478L18.5084 18.1C18.9341 18.145 19.3637 18.0656 19.7451 17.8713C20.1265 17.6771 20.4434 17.3763 20.6573 17.0056C20.8715 16.635 20.9735 16.2103 20.9511 15.7829C20.9286 15.3555 20.7825 14.9438 20.5307 14.5978L19.684 13.4344C19.3825 13.0171 19.2214 12.5148 19.224 12C19.2239 11.4866 19.3865 10.9864 19.6884 10.5711L20.5351 9.40778C20.787 9.06175 20.933 8.65007 20.9555 8.22267C20.978 7.79528 20.8759 7.37054 20.6618 7C20.4479 6.62923 20.131 6.32849 19.7496 6.13423C19.3681 5.93997 18.9386 5.86053 18.5129 5.90556L17.0829 6.05778C16.5722 6.11141 16.0577 6.00212 15.6129 5.74556C15.17 5.48825 14.82 5.09736 14.6129 4.62889L14.024 3.31444C13.8503 2.92317 13.5667 2.59072 13.2078 2.3574C12.8488 2.12408 12.4299 1.99993 12.0018 2C11.5737 1.99993 11.1547 2.12408 10.7958 2.3574C10.4368 2.59072 10.1533 2.92317 9.97955 3.31444L9.3951 4.62889C9.18803 5.09736 8.83798 5.48825 8.3951 5.74556C7.95032 6.00212 7.43577 6.11141 6.9251 6.05778L5.49066 5.90556C5.06499 5.86053 4.6354 5.93997 4.25397 6.13423C3.87255 6.32849 3.55567 6.62923 3.34177 7C3.12759 7.37054 3.02555 7.79528 3.04804 8.22267C3.07052 8.65007 3.21656 9.06175 3.46844 9.40778L4.3151 10.5711C4.61704 10.9864 4.77964 11.4866 4.77955 12C4.77964 12.5134 4.61704 13.0137 4.3151 13.4289L3.46844 14.5922C3.21656 14.9382 3.07052 15.3499 3.04804 15.7773C3.02555 16.2047 3.12759 16.6295 3.34177 17C3.55589 17.3706 3.8728 17.6712 4.25417 17.8654C4.63554 18.0596 5.06502 18.1392 5.49066 18.0944L6.92066 17.9422C7.43133 17.8886 7.94587 17.9979 8.39066 18.2544C8.83519 18.511 9.18687 18.902 9.3951 19.3711Z\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 15C13.6568 15 15 13.6569 15 12C15 10.3431 13.6568 9 12 9C10.3431 9 8.99998 10.3431 8.99998 12C8.99998 13.6569 10.3431 15 12 15Z\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function PiPIcon() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16 21H16.2C17.8802 21 18.7202 21 19.362 20.673C19.9265 20.3854 20.3854 19.9265 20.673 19.362C21 18.7202 21 17.8802 21 16.2V7.8C21 6.11984 21 5.27976 20.673 4.63803C20.3854 4.07354 19.9265 3.6146 19.362 3.32698C18.7202 3 17.8802 3 16.2 3H7.8C6.11984 3 5.27976 3 4.63803 3.32698C4.07354 3.6146 3.6146 4.07354 3.32698 4.63803C3 5.27976 3 6.11984 3 7.8V8M11.5 12.5L17 7M17 7H12M17 7V12M6.2 21H8.8C9.9201 21 10.4802 21 10.908 20.782C11.2843 20.5903 11.5903 20.2843 11.782 19.908C12 19.4802 12 18.9201 12 17.8V15.2C12 14.0799 12 13.5198 11.782 13.092C11.5903 12.7157 11.2843 12.4097 10.908 12.218C10.4802 12 9.92011 12 8.8 12H6.2C5.0799 12 4.51984 12 4.09202 12.218C3.71569 12.4097 3.40973 12.7157 3.21799 13.092C3 13.5198 3 14.0799 3 15.2V17.8C3 18.9201 3 19.4802 3.21799 19.908C3.40973 20.2843 3.71569 20.5903 4.09202 20.782C4.51984 21 5.07989 21 6.2 21Z\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function Copier() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n class=\"copier\"\n d=\"M8 8V5.2C8 4.0799 8 3.51984 8.21799 3.09202C8.40973 2.71569 8.71569 2.40973 9.09202 2.21799C9.51984 2 10.0799 2 11.2 2H18.8C19.9201 2 20.4802 2 20.908 2.21799C21.2843 2.40973 21.5903 2.71569 21.782 3.09202C22 3.51984 22 4.0799 22 5.2V12.8C22 13.9201 22 14.4802 21.782 14.908C21.5903 15.2843 21.2843 15.5903 20.908 15.782C20.4802 16 19.9201 16 18.8 16H16M5.2 22H12.8C13.9201 22 14.4802 22 14.908 21.782C15.2843 21.5903 15.5903 21.2843 15.782 20.908C16 20.4802 16 19.9201 16 18.8V11.2C16 10.0799 16 9.51984 15.782 9.09202C15.5903 8.71569 15.2843 8.40973 14.908 8.21799C14.4802 8 13.9201 8 12.8 8H5.2C4.0799 8 3.51984 8 3.09202 8.21799C2.71569 8.40973 2.40973 8.71569 2.21799 9.09202C2 9.51984 2 10.0799 2 11.2V18.8C2 19.9201 2 20.4802 2.21799 20.908C2.40973 21.2843 2.71569 21.5903 3.09202 21.782C3.51984 22 4.07989 22 5.2 22Z\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke=\"currentColor\"\n />\n </svg>\n )\n}\n\nexport function Pencil() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M2.5 21.4998L8.04927 19.3655C8.40421 19.229 8.58168 19.1607 8.74772 19.0716C8.8952 18.9924 9.0358 18.901 9.16804 18.7984C9.31692 18.6829 9.45137 18.5484 9.72028 18.2795L21 6.99982C22.1046 5.89525 22.1046 4.10438 21 2.99981C19.8955 1.89525 18.1046 1.89524 17 2.99981L5.72028 14.2795C5.45138 14.5484 5.31692 14.6829 5.20139 14.8318C5.09877 14.964 5.0074 15.1046 4.92823 15.2521C4.83911 15.4181 4.77085 15.5956 4.63433 15.9506L2.5 21.4998ZM2.5 21.4998L4.55812 16.1488C4.7054 15.7659 4.77903 15.5744 4.90534 15.4867C5.01572 15.4101 5.1523 15.3811 5.2843 15.4063C5.43533 15.4351 5.58038 15.5802 5.87048 15.8703L8.12957 18.1294C8.41967 18.4195 8.56472 18.5645 8.59356 18.7155C8.61877 18.8475 8.58979 18.9841 8.51314 19.0945C8.42545 19.2208 8.23399 19.2944 7.85107 19.4417L2.5 21.4998Z\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function CopiedCopier(props: { theme: 'light' | 'dark' }) {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.5 12L10.5 15L16.5 9M7.8 21H16.2C17.8802 21 18.7202 21 19.362 20.673C19.9265 20.3854 20.3854 19.9265 20.673 19.362C21 18.7202 21 17.8802 21 16.2V7.8C21 6.11984 21 5.27976 20.673 4.63803C20.3854 4.07354 19.9265 3.6146 19.362 3.32698C18.7202 3 17.8802 3 16.2 3H7.8C6.11984 3 5.27976 3 4.63803 3.32698C4.07354 3.6146 3.6146 4.07354 3.32698 4.63803C3 5.27976 3 6.11984 3 7.8V16.2C3 17.8802 3 18.7202 3.32698 19.362C3.6146 19.9265 4.07354 20.3854 4.63803 20.673C5.27976 21 6.11984 21 7.8 21Z\"\n stroke={props.theme === 'dark' ? '#12B76A' : '#027A48'}\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function ErrorCopier() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9 9L15 15M15 9L9 15M7.8 21H16.2C17.8802 21 18.7202 21 19.362 20.673C19.9265 20.3854 20.3854 19.9265 20.673 19.362C21 18.7202 21 17.8802 21 16.2V7.8C21 6.11984 21 5.27976 20.673 4.63803C20.3854 4.07354 19.9265 3.6146 19.362 3.32698C18.7202 3 17.8802 3 16.2 3H7.8C6.11984 3 5.27976 3 4.63803 3.32698C4.07354 3.6146 3.6146 4.07354 3.32698 4.63803C3 5.27976 3 6.11984 3 7.8V16.2C3 17.8802 3 18.7202 3.32698 19.362C3.6146 19.9265 4.07354 20.3854 4.63803 20.673C5.27976 21 6.11984 21 7.8 21Z\"\n stroke=\"#F04438\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function List() {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect class=\"list\" width=\"20\" height=\"20\" y=\"2\" x=\"2\" rx=\"2\" />\n <line class=\"list-item\" y1=\"7\" y2=\"7\" x1=\"6\" x2=\"18\" />\n <line class=\"list-item\" y2=\"12\" y1=\"12\" x1=\"6\" x2=\"18\" />\n <line class=\"list-item\" y1=\"17\" y2=\"17\" x1=\"6\" x2=\"18\" />\n </svg>\n )\n}\n\nexport function Check(props: { checked: boolean; theme: 'light' | 'dark' }) {\n return (\n <>\n <Show when={props.checked}>\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.5 12L10.5 15L16.5 9M7.8 21H16.2C17.8802 21 18.7202 21 19.362 20.673C19.9265 20.3854 20.3854 19.9265 20.673 19.362C21 18.7202 21 17.8802 21 16.2V7.8C21 6.11984 21 5.27976 20.673 4.63803C20.3854 4.07354 19.9265 3.6146 19.362 3.32698C18.7202 3 17.8802 3 16.2 3H7.8C6.11984 3 5.27976 3 4.63803 3.32698C4.07354 3.6146 3.6146 4.07354 3.32698 4.63803C3 5.27976 3 6.11984 3 7.8V16.2C3 17.8802 3 18.7202 3.32698 19.362C3.6146 19.9265 4.07354 20.3854 4.63803 20.673C5.27976 21 6.11984 21 7.8 21Z\"\n stroke={props.theme === 'dark' ? '#9B8AFB' : '#6938EF'}\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </Show>\n <Show when={!props.checked}>\n <svg\n viewBox=\"0 0 24 24\"\n height=\"20\"\n width=\"20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3 7.8c0-1.68 0-2.52.327-3.162a3 3 0 0 1 1.311-1.311C5.28 3 6.12 3 7.8 3h8.4c1.68 0 2.52 0 3.162.327a3 3 0 0 1 1.311 1.311C21 5.28 21 6.12 21 7.8v8.4c0 1.68 0 2.52-.327 3.162a3 3 0 0 1-1.311 1.311C18.72 21 17.88 21 16.2 21H7.8c-1.68 0-2.52 0-3.162-.327a3 3 0 0 1-1.311-1.311C3 18.72 3 17.88 3 16.2V7.8Z\"\n stroke={props.theme === 'dark' ? '#9B8AFB' : '#6938EF'}\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n ></path>\n </svg>\n </Show>\n </>\n )\n}\n\nexport function CheckCircle() {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.5 12L10.5 15L16.5 9M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function LoadingCircle() {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12 2V6M12 18V22M6 12H2M22 12H18M19.0784 19.0784L16.25 16.25M19.0784 4.99994L16.25 7.82837M4.92157 19.0784L7.75 16.25M4.92157 4.99994L7.75 7.82837\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n from=\"0\"\n to=\"360\"\n dur=\"2s\"\n repeatCount=\"indefinite\"\n />\n </svg>\n )\n}\n\nexport function XCircle() {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M15 9L9 15M9 9L15 15M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function PauseCircle() {\n return (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.5 15V9M14.5 15V9M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n )\n}\n\nexport function TanstackLogo() {\n const id = createUniqueId()\n return (\n <svg version=\"1.0\" viewBox=\"0 0 633 633\">\n <linearGradient\n id={`a-${id}`}\n x1=\"-666.45\"\n x2=\"-666.45\"\n y1=\"163.28\"\n y2=\"163.99\"\n gradientTransform=\"matrix(633 0 0 633 422177 -103358)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#6BDAFF\" offset=\"0\" />\n <stop stop-color=\"#F9FFB5\" offset=\".32\" />\n <stop stop-color=\"#FFA770\" offset=\".71\" />\n <stop stop-color=\"#FF7373\" offset=\"1\" />\n </linearGradient>\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill={`url(#a-${id})`} />\n\n <defs>\n <filter\n id={`am-${id}`}\n x=\"-137.5\"\n y=\"412\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id={`b-${id}`}\n x=\"-137.5\"\n y=\"412\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter={`url(#am-${id})`}>\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask={`url(#b-${id})`}>\n <ellipse\n cx=\"89.5\"\n cy=\"610.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#00CFE2\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id={`ah-${id}`}\n x=\"316.5\"\n y=\"412\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id={`k-${id}`}\n x=\"316.5\"\n y=\"412\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter={`url(#ah-${id})`}>\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask={`url(#k-${id})`}>\n <ellipse\n cx=\"543.5\"\n cy=\"610.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#00CFE2\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id={`ae-${id}`}\n x=\"-137.5\"\n y=\"450\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id={`j-${id}`}\n x=\"-137.5\"\n y=\"450\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter={`url(#ae-${id})`}>\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask={`url(#j-${id})`}>\n <ellipse\n cx=\"89.5\"\n cy=\"648.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#00A8B8\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id={`ai-${id}`}\n x=\"316.5\"\n y=\"450\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id={`i-${id}`}\n x=\"316.5\"\n y=\"450\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter={`url(#ai-${id})`}>\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask={`url(#i-${id})`}>\n <ellipse\n cx=\"543.5\"\n cy=\"648.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#00A8B8\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id={`aj-${id}`}\n x=\"-137.5\"\n y=\"486\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id={`h-${id}`}\n x=\"-137.5\"\n y=\"486\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter={`url(#aj-${id})`}>\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask={`url(#h-${id})`}>\n <ellipse\n cx=\"89.5\"\n cy=\"684.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#007782\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id={`ag-${id}`}\n x=\"316.5\"\n y=\"486\"\n width=\"454\"\n height=\"396.9\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id={`g-${id}`}\n x=\"316.5\"\n y=\"486\"\n width=\"454\"\n height=\"396.9\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter={`url(#ag-${id})`}>\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask={`url(#g-${id})`}>\n <ellipse\n cx=\"543.5\"\n cy=\"684.5\"\n rx=\"214.5\"\n ry=\"186\"\n fill=\"#015064\"\n stroke=\"#007782\"\n stroke-width=\"25\"\n />\n </g>\n <defs>\n <filter\n id={`af-${id}`}\n x=\"272.2\"\n y=\"308\"\n width=\"176.9\"\n height=\"129.3\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id={`f-${id}`}\n x=\"272.2\"\n y=\"308\"\n width=\"176.9\"\n height=\"129.3\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter={`url(#af-${id})`}>\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask={`url(#f-${id})`}>\n <line\n x1=\"436\"\n x2=\"431\"\n y1=\"403.2\"\n y2=\"431.8\"\n fill=\"none\"\n stroke=\"#000\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"11\"\n />\n\n <line\n x1=\"291\"\n x2=\"280\"\n y1=\"341.5\"\n y2=\"403.5\"\n fill=\"none\"\n stroke=\"#000\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"11\"\n />\n\n <line\n x1=\"332.9\"\n x2=\"328.6\"\n y1=\"384.1\"\n y2=\"411.2\"\n fill=\"none\"\n stroke=\"#000\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"11\"\n />\n\n <linearGradient\n id={`m-${id}`}\n x1=\"-670.75\"\n x2=\"-671.59\"\n y1=\"164.4\"\n y2=\"164.49\"\n gradientTransform=\"matrix(-184.16 -32.472 -11.461 64.997 -121359 -32126)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#EE2700\" offset=\"0\" />\n <stop stop-color=\"#FF008E\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m344.1 363 97.7 17.2c5.8 2.1 8.2 6.1 7.1 12.1s-4.7 9.2-11 9.9l-106-18.7-57.5-59.2c-3.2-4.8-2.9-9.1 0.8-12.8s8.3-4.4 13.7-2.1l55.2 53.6z\"\n clip-rule=\"evenodd\"\n fill={`url(#m-${id})`}\n fill-rule=\"evenodd\"\n />\n\n <line\n x1=\"428.2\"\n x2=\"429.1\"\n y1=\"384.5\"\n y2=\"378\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n\n <line\n x1=\"395.2\"\n x2=\"396.1\"\n y1=\"379.5\"\n y2=\"373\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n\n <line\n x1=\"362.2\"\n x2=\"363.1\"\n y1=\"373.5\"\n y2=\"367.4\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n\n <line\n x1=\"324.2\"\n x2=\"328.4\"\n y1=\"351.3\"\n y2=\"347.4\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n\n <line\n x1=\"303.2\"\n x2=\"307.4\"\n y1=\"331.3\"\n y2=\"327.4\"\n fill=\"none\"\n stroke=\"#fff\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"7\"\n />\n </g>\n <defs>\n <filter\n id={`ak-${id}`}\n x=\"73.2\"\n y=\"113.8\"\n width=\"280.6\"\n height=\"317.4\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id={`e-${id}`}\n x=\"73.2\"\n y=\"113.8\"\n width=\"280.6\"\n height=\"317.4\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter={`url(#ak-${id})`}>\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask={`url(#e-${id})`}>\n <linearGradient\n id={`n-${id}`}\n x1=\"-672.16\"\n x2=\"-672.16\"\n y1=\"165.03\"\n y2=\"166.03\"\n gradientTransform=\"matrix(-100.18 48.861 97.976 200.88 -83342 -93.059)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#A17500\" offset=\"0\" />\n <stop stop-color=\"#5D2100\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m192.3 203c8.1 37.3 14 73.6 17.8 109.1 3.8 35.4 2.8 75.1-3 119.2l61.2-16.7c-15.6-59-25.2-97.9-28.6-116.6s-10.8-51.9-22.1-99.6l-25.3 4.6\"\n clip-rule=\"evenodd\"\n fill={`url(#n-${id})`}\n fill-rule=\"evenodd\"\n />\n <g stroke=\"#2F8A00\">\n <linearGradient\n id={`r-${id}`}\n x1=\"-660.23\"\n x2=\"-660.23\"\n y1=\"166.72\"\n y2=\"167.72\"\n gradientTransform=\"matrix(92.683 4.8573 -2.0259 38.657 61680 -3088.6)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m195 183.9s-12.6-22.1-36.5-29.9c-15.9-5.2-34.4-1.5-55.5 11.1 15.9 14.3 29.5 22.6 40.7 24.9 16.8 3.6 51.3-6.1 51.3-6.1z\"\n clip-rule=\"evenodd\"\n fill={`url(#r-${id})`}\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id={`s-${id}`}\n x1=\"-661.36\"\n x2=\"-661.36\"\n y1=\"164.18\"\n y2=\"165.18\"\n gradientTransform=\"matrix(110 5.7648 -6.3599 121.35 73933 -15933)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m194.9 184.5s-47.5-8.5-83.2 15.7c-23.8 16.2-34.3 49.3-31.6 99.4 30.3-27.8 52.1-48.5 65.2-61.9 19.8-20.2 49.6-53.2 49.6-53.2z\"\n clip-rule=\"evenodd\"\n fill={`url(#s-${id})`}\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id={`q-${id}`}\n x1=\"-656.79\"\n x2=\"-656.79\"\n y1=\"165.15\"\n y2=\"166.15\"\n gradientTransform=\"matrix(62.954 3.2993 -3.5023 66.828 42156 -8754.1)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m195 183.9c-0.8-21.9 6-38 20.6-48.2s29.8-15.4 45.5-15.3c-6.1 21.4-14.5 35.8-25.2 43.4s-24.4 14.2-40.9 20.1z\"\n clip-rule=\"evenodd\"\n fill={`url(#q-${id})`}\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id={`p-${id}`}\n x1=\"-663.07\"\n x2=\"-663.07\"\n y1=\"165.44\"\n y2=\"166.44\"\n gradientTransform=\"matrix(152.47 7.9907 -3.0936 59.029 101884 -4318.7)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m194.9 184.5c31.9-30 64.1-39.7 96.7-29s50.8 30.4 54.6 59.1c-35.2-5.5-60.4-9.6-75.8-12.1-15.3-2.6-40.5-8.6-75.5-18z\"\n clip-rule=\"evenodd\"\n fill={`url(#p-${id})`}\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id={`o-${id}`}\n x1=\"-662.57\"\n x2=\"-662.57\"\n y1=\"164.44\"\n y2=\"165.44\"\n gradientTransform=\"matrix(136.46 7.1517 -5.2163 99.533 91536 -11442)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m194.9 184.5c35.8-7.6 65.6-0.2 89.2 22s37.7 49 42.3 80.3c-39.8-9.7-68.3-23.8-85.5-42.4s-32.5-38.5-46-59.9z\"\n clip-rule=\"evenodd\"\n fill={`url(#o-${id})`}\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n\n <linearGradient\n id={`l-${id}`}\n x1=\"-656.43\"\n x2=\"-656.43\"\n y1=\"163.86\"\n y2=\"164.86\"\n gradientTransform=\"matrix(60.866 3.1899 -8.7773 167.48 41560 -25168)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#2F8A00\" offset=\"0\" />\n <stop stop-color=\"#90FF57\" offset=\"1\" />\n </linearGradient>\n\n <path\n d=\"m194.9 184.5c-33.6 13.8-53.6 35.7-60.1 65.6s-3.6 63.1 8.7 99.6c27.4-40.3 43.2-69.6 47.4-88s5.6-44.1 4-77.2z\"\n clip-rule=\"evenodd\"\n fill={`url(#l-${id})`}\n fill-rule=\"evenodd\"\n stroke-width=\"13\"\n />\n <path\n d=\"m196.5 182.3c-14.8 21.6-25.1 41.4-30.8 59.4s-9.5 33-11.1 45.1\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-width=\"8\"\n />\n <path\n d=\"m194.9 185.7c-24.4 1.7-43.8 9-58.1 21.8s-24.7 25.4-31.3 37.8\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-width=\"8\"\n />\n <path\n d=\"m204.5 176.4c29.7-6.7 52-8.4 67-5.1s26.9 8.6 35.8 15.9\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-width=\"8\"\n />\n <path\n d=\"m196.5 181.4c20.3 9.9 38.2 20.5 53.9 31.9s27.4 22.1 35.1 32\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-width=\"8\"\n />\n </g>\n </g>\n <defs>\n <filter\n id={`al-${id}`}\n x=\"50.5\"\n y=\"399\"\n width=\"532\"\n height=\"633\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id={`d-${id}`}\n x=\"50.5\"\n y=\"399\"\n width=\"532\"\n height=\"633\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter={`url(#al-${id})`}>\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask={`url(#d-${id})`}>\n <linearGradient\n id={`u-${id}`}\n x1=\"-666.06\"\n x2=\"-666.23\"\n y1=\"163.36\"\n y2=\"163.75\"\n gradientTransform=\"matrix(532 0 0 633 354760 -102959)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFF400\" offset=\"0\" />\n <stop stop-color=\"#3C8700\" offset=\"1\" />\n </linearGradient>\n\n <ellipse\n cx=\"316.5\"\n cy=\"715.5\"\n rx=\"266\"\n ry=\"316.5\"\n fill={`url(#u-${id})`}\n />\n </g>\n <defs>\n <filter\n id={`ad-${id}`}\n x=\"391\"\n y=\"-24\"\n width=\"288\"\n height=\"283\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feColorMatrix values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\" />\n </filter>\n </defs>\n\n <mask\n id={`c-${id}`}\n x=\"391\"\n y=\"-24\"\n width=\"288\"\n height=\"283\"\n maskUnits=\"userSpaceOnUse\"\n >\n <g filter={`url(#ad-${id})`}>\n <circle cx=\"316.5\" cy=\"316.5\" r=\"316.5\" fill=\"#fff\" />\n </g>\n </mask>\n <g mask={`url(#c-${id})`}>\n <linearGradient\n id={`t-${id}`}\n x1=\"-664.56\"\n x2=\"-664.56\"\n y1=\"163.79\"\n y2=\"164.79\"\n gradientTransform=\"matrix(227 0 0 227 151421 -37204)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFDF00\" offset=\"0\" />\n <stop stop-color=\"#FF9D00\" offset=\"1\" />\n </linearGradient>\n <circle cx=\"565.5\" cy=\"89.5\" r=\"113.5\" fill={`url(#t-${id})`} />\n\n <linearGradient\n id={`v-${id}`}\n x1=\"-644.5\"\n x2=\"-645.77\"\n y1=\"342\"\n y2=\"342\"\n gradientTransform=\"matrix(30 0 0 1 19770 -253)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"427\"\n x2=\"397\"\n y1=\"89\"\n y2=\"89\"\n fill=\"none\"\n stroke={`url(#v-${id})`}\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id={`aa-${id}`}\n x1=\"-641.56\"\n x2=\"-642.83\"\n y1=\"196.02\"\n y2=\"196.07\"\n gradientTransform=\"matrix(26.5 0 0 5.5 17439 -1025.5)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"430.5\"\n x2=\"404\"\n y1=\"55.5\"\n y2=\"50\"\n fill=\"none\"\n stroke={`url(#aa-${id})`}\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id={`w-${id}`}\n x1=\"-643.73\"\n x2=\"-645\"\n y1=\"185.83\"\n y2=\"185.9\"\n gradientTransform=\"matrix(29 0 0 8 19107 -1361)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"431\"\n x2=\"402\"\n y1=\"122\"\n y2=\"130\"\n fill=\"none\"\n stroke={`url(#w-${id})`}\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id={`ac-${id}`}\n x1=\"-638.94\"\n x2=\"-640.22\"\n y1=\"177.09\"\n y2=\"177.39\"\n gradientTransform=\"matrix(24 0 0 13 15783 -2145)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"442\"\n x2=\"418\"\n y1=\"153\"\n y2=\"166\"\n fill=\"none\"\n stroke={`url(#ac-${id})`}\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id={`ab-${id}`}\n x1=\"-633.42\"\n x2=\"-634.7\"\n y1=\"172.41\"\n y2=\"173.31\"\n gradientTransform=\"matrix(20 0 0 19 13137 -3096)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"464\"\n x2=\"444\"\n y1=\"180\"\n y2=\"199\"\n fill=\"none\"\n stroke={`url(#ab-${id})`}\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id={`y-${id}`}\n x1=\"-619.05\"\n x2=\"-619.52\"\n y1=\"170.82\"\n y2=\"171.82\"\n gradientTransform=\"matrix(13.83 0 0 22.85 9050 -3703.4)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"491.4\"\n x2=\"477.5\"\n y1=\"203\"\n y2=\"225.9\"\n fill=\"none\"\n stroke={`url(#y-${id})`}\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id={`x-${id}`}\n x1=\"-578.5\"\n x2=\"-578.63\"\n y1=\"170.31\"\n y2=\"171.31\"\n gradientTransform=\"matrix(7.5 0 0 24.5 4860 -3953)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"524.5\"\n x2=\"517\"\n y1=\"219.5\"\n y2=\"244\"\n fill=\"none\"\n stroke={`url(#x-${id})`}\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n\n <linearGradient\n id={`z-${id}`}\n x1=\"666.5\"\n x2=\"666.5\"\n y1=\"170.31\"\n y2=\"171.31\"\n gradientTransform=\"matrix(.5 0 0 24.5 231.5 -3944)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"#FFA400\" offset=\"0\" />\n <stop stop-color=\"#FF5E00\" offset=\"1\" />\n </linearGradient>\n\n <line\n x1=\"564.5\"\n x2=\"565\"\n y1=\"228.5\"\n y2=\"253\"\n fill=\"none\"\n stroke={`url(#z-${id})`}\n stroke-linecap=\"round\"\n stroke-linejoin=\"bevel\"\n stroke-width=\"12\"\n />\n </g>\n </svg>\n )\n}\n","import { mutationSortFns, sortFns } from './utils'\nimport type { DevtoolsButtonPosition, DevtoolsPosition } from './contexts'\n\nexport const firstBreakpoint = 1024\nexport const secondBreakpoint = 796\nexport const thirdBreakpoint = 700\n\nexport const BUTTON_POSITION: DevtoolsButtonPosition = 'bottom-right'\nexport const POSITION: DevtoolsPosition = 'bottom'\nexport const THEME_PREFERENCE = 'system'\nexport const INITIAL_IS_OPEN = false\nexport const DEFAULT_HEIGHT = 500\nexport const PIP_DEFAULT_HEIGHT = 500\nexport const DEFAULT_WIDTH = 500\nexport const DEFAULT_SORT_FN_NAME = Object.keys(sortFns)[0]\nexport const DEFAULT_SORT_ORDER = 1\nexport const DEFAULT_MUTATION_SORT_FN_NAME = Object.keys(mutationSortFns)[0]\n","import { createContext, useContext } from 'solid-js'\nimport type { Query, QueryClient, onlineManager } from '@tanstack/query-core'\n\ntype XPosition = 'left' | 'right'\ntype YPosition = 'top' | 'bottom'\nexport type DevtoolsPosition = XPosition | YPosition\nexport type DevtoolsButtonPosition = `${YPosition}-${XPosition}` | 'relative'\nexport type Theme = 'dark' | 'light' | 'system'\n\nexport interface DevtoolsErrorType {\n /**\n * The name of the error.\n */\n name: string\n /**\n * How the error is initialized.\n */\n initializer: (query: Query) => Error\n}\n\nexport interface QueryDevtoolsProps {\n readonly client: QueryClient\n queryFlavor: string\n version: string\n onlineManager: typeof onlineManager\n\n buttonPosition?: DevtoolsButtonPosition\n position?: DevtoolsPosition\n initialIsOpen?: boolean\n errorTypes?: Array<DevtoolsErrorType>\n shadowDOMTarget?: ShadowRoot\n onClose?: () => void\n hideDisabledQueries?: boolean\n theme?: Theme\n}\n\nexport const QueryDevtoolsContext = createContext<QueryDevtoolsProps>({\n client: undefined as unknown as QueryClient,\n onlineManager: undefined as unknown as typeof onlineManager,\n queryFlavor: '',\n version: '',\n shadowDOMTarget: undefined,\n})\n\nexport function useQueryDevtoolsContext() {\n return useContext(QueryDevtoolsContext)\n}\n","import {\n createContext,\n createEffect,\n createMemo,\n createSignal,\n onCleanup,\n useContext,\n} from 'solid-js'\nimport { clearDelegatedEvents, delegateEvents } from 'solid-js/web'\nimport { PIP_DEFAULT_HEIGHT } from '../constants'\nimport { useQueryDevtoolsContext } from './QueryDevtoolsContext'\nimport type { Accessor, JSX } from 'solid-js'\nimport type { StorageObject, StorageSetter } from '@solid-primitives/storage'\n\ninterface PiPProviderProps {\n children: JSX.Element\n localStore: StorageObject<string>\n setLocalStore: StorageSetter<string, unknown>\n disabled?: boolean\n}\n\ntype PiPContextType = {\n pipWindow: Window | null\n requestPipWindow: (width: number, height: number) => void\n closePipWindow: () => void\n disabled: boolean\n}\n\nclass PipOpenError extends Error {}\n\nconst PiPContext = createContext<Accessor<PiPContextType> | undefined>(\n undefined,\n)\n\nexport const PiPProvider = (props: PiPProviderProps) => {\n // Expose pipWindow that is currently active\n const [pipWindow, setPipWindow] = createSignal<Window | null>(null)\n\n // Close pipWindow programmatically\n const closePipWindow = () => {\n const w = pipWindow()\n if (w != null) {\n w.close()\n props.setLocalStore('pip_open', 'false')\n setPipWindow(null)\n }\n }\n\n // Open new pipWindow\n const requestPipWindow = (width: number, height: number) => {\n // We don't want to allow multiple requests.\n if (pipWindow() != null) {\n return\n }\n\n const pip = window.open(\n '',\n 'TSQD-Devtools-Panel',\n `width=${width},height=${height},popup`,\n )\n\n if (!pip) {\n throw new PipOpenError(\n 'Failed to open popup. Please allow popups for this site to view the devtools in picture-in-picture mode.',\n )\n }\n\n // Remove existing styles\n pip.document.head.innerHTML = ''\n // Remove existing body\n pip.document.body.innerHTML = ''\n // Clear Delegated Events\n clearDelegatedEvents(pip.document)\n\n pip.document.title = 'TanStack Query Devtools'\n pip.document.body.style.margin = '0'\n\n // Detect when window is closed by user\n pip.addEventListener('pagehide', () => {\n props.setLocalStore('pip_open', 'false')\n setPipWindow(null)\n })\n\n // It is important to copy all parent window styles. Otherwise, there would be no CSS available at all\n // https://developer.chrome.com/docs/web-platform/document-picture-in-picture/#copy-style-sheets-to-the-picture-in-picture-window\n ;[\n ...(useQueryDevtoolsContext().shadowDOMTarget || document).styleSheets,\n ].forEach((styleSheet) => {\n try {\n const cssRules = [...styleSheet.cssRules]\n .map((rule) => rule.cssText)\n .join('')\n const style = document.createElement('style')\n const style_node = styleSheet.ownerNode\n let style_id = ''\n\n if (style_node && 'id' in style_node) {\n style_id = style_node.id\n }\n\n if (style_id) {\n style.setAttribute('id', style_id)\n }\n style.textContent = cssRules\n pip.document.head.appendChild(style)\n } catch (e) {\n const link = document.createElement('link')\n if (styleSheet.href == null) {\n return\n }\n\n link.rel = 'stylesheet'\n link.type = styleSheet.type\n link.media = styleSheet.media.toString()\n link.href = styleSheet.href\n pip.document.head.appendChild(link)\n }\n })\n delegateEvents(\n [\n 'focusin',\n 'focusout',\n 'pointermove',\n 'keydown',\n 'pointerdown',\n 'pointerup',\n 'click',\n 'mousedown',\n 'input',\n ],\n pip.document,\n )\n props.setLocalStore('pip_open', 'true')\n setPipWindow(pip)\n }\n\n createEffect(() => {\n const pip_open = (props.localStore.pip_open ?? 'false') as 'true' | 'false'\n if (pip_open === 'true' && !props.disabled) {\n try {\n requestPipWindow(\n Number(window.innerWidth),\n Number(props.localStore.height || PIP_DEFAULT_HEIGHT),\n )\n } catch (error) {\n if (error instanceof PipOpenError) {\n console.error(error.message)\n props.setLocalStore('pip_open', 'false')\n props.setLocalStore('open', 'false')\n return\n }\n throw error\n }\n }\n })\n\n createEffect(() => {\n // Setup mutation observer for goober styles with id `_goober\n const gooberStyles = (\n useQueryDevtoolsContext().shadowDOMTarget || document\n ).querySelector('#_goober')\n const w = pipWindow()\n if (gooberStyles && w) {\n const observer = new MutationObserver(() => {\n const pip_style = (\n useQueryDevtoolsContext().shadowDOMTarget || w.document\n ).querySelector('#_goober')\n if (pip_style) {\n pip_style.textContent = gooberStyles.textContent\n }\n })\n observer.observe(gooberStyles, {\n childList: true, // observe direct children\n subtree: true, // and lower descendants too\n characterDataOldValue: true, // pass old data to callback\n })\n onCleanup(() => {\n observer.disconnect()\n })\n }\n })\n\n const value = createMemo(() => ({\n pipWindow: pipWindow(),\n requestPipWindow,\n closePipWindow,\n disabled: props.disabled ?? false,\n }))\n\n return (\n <PiPContext.Provider value={value}>{props.children}</PiPContext.Provider>\n )\n}\n\nexport const usePiPWindow = () => {\n const context = createMemo(() => {\n const ctx = useContext(PiPContext)\n if (!ctx) {\n throw new Error('usePiPWindow must be used within a PiPProvider')\n }\n return ctx()\n })\n return context\n}\n","import { createContext, useContext } from 'solid-js'\nimport type { Accessor } from 'solid-js'\n\nexport const ThemeContext = createContext<Accessor<'light' | 'dark'>>(\n () => 'dark' as const,\n)\n\nexport function useTheme() {\n return useContext(ThemeContext)\n}\n","import { serialize, stringify } from 'superjson'\nimport { clsx as cx } from 'clsx'\nimport {\n Index,\n Match,\n Show,\n Switch,\n createMemo,\n createSignal,\n createUniqueId,\n} from 'solid-js'\nimport { Key } from '@solid-primitives/keyed'\nimport * as goober from 'goober'\nimport { tokens } from './theme'\nimport {\n deleteNestedDataByPath,\n displayValue,\n updateNestedDataByPath,\n} from './utils'\nimport {\n Check,\n CopiedCopier,\n Copier,\n ErrorCopier,\n List,\n Pencil,\n Trash,\n} from './icons'\nimport { useQueryDevtoolsContext, useTheme } from './contexts'\nimport type { Query } from '@tanstack/query-core'\n\n/**\n * Chunk elements in the array by size\n *\n * when the array cannot be chunked evenly by size, the last chunk will be\n * filled with the remaining elements\n *\n * @example\n * chunkArray(['a','b', 'c', 'd', 'e'], 2) // returns [['a','b'], ['c', 'd'], ['e']]\n */\nfunction chunkArray<T extends { label: string; value: unknown }>(\n array: Array<T>,\n size: number,\n): Array<Array<T>> {\n if (size < 1) return []\n let i = 0\n const result: Array<Array<T>> = []\n while (i < array.length) {\n result.push(array.slice(i, i + size))\n i = i + size\n }\n return result\n}\n\nconst Expander = (props: { expanded: boolean }) => {\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n\n return (\n <span\n class={cx(\n styles().expander,\n css`\n transform: rotate(${props.expanded ? 90 : 0}deg);\n `,\n props.expanded &&\n css`\n & svg {\n top: -1px;\n }\n `,\n )}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 12L10 8L6 4\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n )\n}\n\ntype CopyState = 'NoCopy' | 'SuccessCopy' | 'ErrorCopy'\nconst CopyButton = (props: { value: unknown }) => {\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n const [copyState, setCopyState] = createSignal<CopyState>('NoCopy')\n\n return (\n <button\n class={styles().actionButton}\n title=\"Copy object to clipboard\"\n aria-label={`${\n copyState() === 'NoCopy'\n ? 'Copy object to clipboard'\n : copyState() === 'SuccessCopy'\n ? 'Object copied to clipboard'\n : 'Error copying object to clipboard'\n }`}\n onClick={\n copyState() === 'NoCopy'\n ? () => {\n navigator.clipboard.writeText(stringify(props.value)).then(\n () => {\n setCopyState('SuccessCopy')\n setTimeout(() => {\n setCopyState('NoCopy')\n }, 1500)\n },\n (err) => {\n console.error('Failed to copy: ', err)\n setCopyState('ErrorCopy')\n setTimeout(() => {\n setCopyState('NoCopy')\n }, 1500)\n },\n )\n }\n : undefined\n }\n >\n <Switch>\n <Match when={copyState() === 'NoCopy'}>\n <Copier />\n </Match>\n <Match when={copyState() === 'SuccessCopy'}>\n <CopiedCopier theme={theme()} />\n </Match>\n <Match when={copyState() === 'ErrorCopy'}>\n <ErrorCopier />\n </Match>\n </Switch>\n </button>\n )\n}\n\nconst ClearArrayButton = (props: {\n dataPath: Array<string>\n activeQuery: Query\n}) => {\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n const queryClient = useQueryDevtoolsContext().client\n\n return (\n <button\n class={styles().actionButton}\n title={'Remove all items'}\n aria-label={'Remove all items'}\n onClick={() => {\n const oldData = props.activeQuery.state.data\n const newData = updateNestedDataByPath(oldData, props.dataPath, [])\n queryClient.setQueryData(props.activeQuery.queryKey, newData)\n }}\n >\n <List />\n </button>\n )\n}\n\nconst DeleteItemButton = (props: {\n dataPath: Array<string>\n activeQuery: Query\n}) => {\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n const queryClient = useQueryDevtoolsContext().client\n\n return (\n <button\n class={cx(styles().actionButton)}\n title={'Delete item'}\n aria-label={'Delete item'}\n onClick={() => {\n const oldData = props.activeQuery.state.data\n const newData = deleteNestedDataByPath(oldData, props.dataPath)\n queryClient.setQueryData(props.activeQuery.queryKey, newData)\n }}\n >\n <Trash />\n </button>\n )\n}\n\nconst ToggleValueButton = (props: {\n dataPath: Array<string>\n activeQuery: Query\n value: boolean\n}) => {\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n const queryClient = useQueryDevtoolsContext().client\n\n return (\n <button\n class={cx(\n styles().actionButton,\n css`\n width: ${tokens.size[3.5]};\n height: ${tokens.size[3.5]};\n `,\n )}\n title={'Toggle value'}\n aria-label={'Toggle value'}\n onClick={() => {\n const oldData = props.activeQuery.state.data\n const newData = updateNestedDataByPath(\n oldData,\n props.dataPath,\n !props.value,\n )\n queryClient.setQueryData(props.activeQuery.queryKey, newData)\n }}\n >\n <Check theme={theme()} checked={props.value} />\n </button>\n )\n}\n\ntype ExplorerProps = {\n editable?: boolean\n label: string\n value: unknown\n defaultExpanded?: Array<string>\n dataPath?: Array<string>\n activeQuery?: Query\n itemsDeletable?: boolean\n onEdit?: () => void\n}\n\nfunction isIterable(x: any): x is Iterable<unknown> {\n return Symbol.iterator in x\n}\n\nexport default function Explorer(props: ExplorerProps) {\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n const queryClient = useQueryDevtoolsContext().client\n\n const [expanded, setExpanded] = createSignal(\n (props.defaultExpanded || []).includes(props.label),\n )\n const toggleExpanded = () => setExpanded((old) => !old)\n const [expandedPages, setExpandedPages] = createSignal<Array<number>>([])\n\n const subEntries = createMemo(() => {\n if (Array.isArray(props.value)) {\n return props.value.map((d, i) => ({\n label: i.toString(),\n value: d,\n }))\n } else if (\n props.value !== null &&\n typeof props.value === 'object' &&\n isIterable(props.value) &&\n typeof props.value[Symbol.iterator] === 'function'\n ) {\n if (props.value instanceof Map) {\n return Array.from(props.value, ([key, val]) => ({\n label: key,\n value: val,\n }))\n }\n return Array.from(props.value, (val, i) => ({\n label: i.toString(),\n value: val,\n }))\n } else if (typeof props.value === 'object' && props.value !== null) {\n return Object.entries(props.value).map(([key, val]) => ({\n label: key,\n value: val,\n }))\n }\n return []\n })\n\n const type = createMemo<string>(() => {\n if (Array.isArray(props.value)) {\n return 'array'\n } else if (\n props.value !== null &&\n typeof props.value === 'object' &&\n isIterable(props.value) &&\n typeof props.value[Symbol.iterator] === 'function'\n ) {\n return 'Iterable'\n } else if (typeof props.value === 'object' && props.value !== null) {\n return 'object'\n }\n return typeof props.value\n })\n\n const subEntryPages = createMemo(() => chunkArray(subEntries(), 100))\n\n const currentDataPath = props.dataPath ?? []\n\n const inputId = createUniqueId()\n\n return (\n <div class={styles().entry}>\n <Show when={subEntryPages().length}>\n <div class={styles().expanderButtonContainer}>\n <button\n class={styles().expanderButton}\n onClick={() => toggleExpanded()}\n aria-expanded={expanded() ? 'true' : 'false'}\n >\n <Expander expanded={expanded()} /> <span>{props.label}</span>{' '}\n <span class={styles().info}>\n {String(type()).toLowerCase() === 'iterable' ? '(Iterable) ' : ''}\n {subEntries().length} {subEntries().length > 1 ? `items` : `item`}\n </span>\n </button>\n <Show when={props.editable}>\n <div class={styles().actions}>\n <CopyButton value={props.value} />\n\n <Show\n when={props.itemsDeletable && props.activeQuery !== undefined}\n >\n <DeleteItemButton\n activeQuery={props.activeQuery!}\n dataPath={currentDataPath}\n />\n </Show>\n\n <Show\n when={type() === 'array' && props.activeQuery !== undefined}\n >\n <ClearArrayButton\n activeQuery={props.activeQuery!}\n dataPath={currentDataPath}\n />\n </Show>\n\n <Show when={!!props.onEdit && !serialize(props.value).meta}>\n <button\n class={styles().actionButton}\n title={'Bulk Edit Data'}\n aria-label={'Bulk Edit Data'}\n onClick={() => {\n props.onEdit?.()\n }}\n >\n <Pencil />\n </button>\n </Show>\n </div>\n </Show>\n </div>\n <Show when={expanded()}>\n <Show when={subEntryPages().length === 1}>\n <div class={styles().subEntry}>\n <Key each={subEntries()} by={(item) => item.label}>\n {(entry) => {\n return (\n <Explorer\n defaultExpanded={props.defaultExpanded}\n label={entry().label}\n value={entry().value}\n editable={props.editable}\n dataPath={[...currentDataPath, entry().label]}\n activeQuery={props.activeQuery}\n itemsDeletable={\n type() === 'array' ||\n type() === 'Iterable' ||\n type() === 'object'\n }\n />\n )\n }}\n </Key>\n </div>\n </Show>\n <Show when={subEntryPages().length > 1}>\n <div class={styles().subEntry}>\n <Index each={subEntryPages()}>\n {(entries, index) => (\n <div>\n <div class={styles().entry}>\n <button\n onClick={() =>\n setExpandedPages((old) =>\n old.includes(index)\n ? old.filter((d) => d !== index)\n : [...old, index],\n )\n }\n class={styles().expanderButton}\n >\n <Expander expanded={expandedPages().includes(index)} />{' '}\n [{index * 100}...\n {index * 100 + 100 - 1}]\n </button>\n <Show when={expandedPages().includes(index)}>\n <div class={styles().subEntry}>\n <Key each={entries()} by={(entry) => entry.label}>\n {(entry) => (\n <Explorer\n defaultExpanded={props.defaultExpanded}\n label={entry().label}\n value={entry().value}\n editable={props.editable}\n dataPath={[...currentDataPath, entry().label]}\n activeQuery={props.activeQuery}\n />\n )}\n </Key>\n </div>\n </Show>\n </div>\n </div>\n )}\n </Index>\n </div>\n </Show>\n </Show>\n </Show>\n <Show when={subEntryPages().length === 0}>\n <div class={styles().row}>\n <label for={inputId} class={styles().label}>\n {props.label}:\n </label>\n <Show\n when={\n props.editable &&\n props.activeQuery !== undefined &&\n (type() === 'string' ||\n type() === 'number' ||\n type() === 'boolean')\n }\n fallback={\n <span class={styles().value}>{displayValue(props.value)}</span>\n }\n >\n <Show\n when={\n props.editable &&\n props.activeQuery !== undefined &&\n (type() === 'string' || type() === 'number')\n }\n >\n <input\n id={inputId}\n type={type() === 'number' ? 'number' : 'text'}\n class={cx(styles().value, styles().editableInput)}\n value={props.value as string | number}\n onChange={(changeEvent) => {\n const oldData = props.activeQuery!.state.data\n\n const newData = updateNestedDataByPath(\n oldData,\n currentDataPath,\n type() === 'number'\n ? changeEvent.target.valueAsNumber\n : changeEvent.target.value,\n )\n\n queryClient.setQueryData(props.activeQuery!.queryKey, newData)\n }}\n />\n </Show>\n\n <Show when={type() === 'boolean'}>\n <span\n class={cx(\n styles().value,\n styles().actions,\n styles().editableInput,\n )}\n >\n <ToggleValueButton\n activeQuery={props.activeQuery!}\n dataPath={currentDataPath}\n value={props.value as boolean}\n />\n {displayValue(props.value)}\n </span>\n </Show>\n </Show>\n\n <Show\n when={\n props.editable &&\n props.itemsDeletable &&\n props.activeQuery !== undefined\n }\n >\n <DeleteItemButton\n activeQuery={props.activeQuery!}\n dataPath={currentDataPath}\n />\n </Show>\n </div>\n </Show>\n </div>\n )\n}\n\nconst stylesFactory = (\n theme: 'light' | 'dark',\n css: (typeof goober)['css'],\n) => {\n const { colors, font, size, border } = tokens\n const t = (light: string, dark: string) => (theme === 'light' ? light : dark)\n return {\n entry: css`\n & * {\n font-size: ${font.size.xs};\n font-family:\n ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,\n 'Liberation Mono', 'Courier New', monospace;\n }\n position: relative;\n outline: none;\n word-break: break-word;\n `,\n subEntry: css`\n margin: 0 0 0 0.5em;\n padding-left: 0.75em;\n border-left: 2px solid ${t(colors.gray[300], colors.darkGray[400])};\n /* outline: 1px solid ${colors.teal[400]}; */\n `,\n expander: css`\n & path {\n stroke: ${colors.gray[400]};\n }\n & svg {\n width: ${size[3]};\n height: ${size[3]};\n }\n display: inline-flex;\n align-items: center;\n transition: all 0.1s ease;\n /* outline: 1px solid ${colors.blue[400]}; */\n `,\n expanderButtonContainer: css`\n display: flex;\n align-items: center;\n line-height: ${size[4]};\n min-height: ${size[4]};\n gap: ${size[2]};\n `,\n expanderButton: css`\n cursor: pointer;\n color: inherit;\n font: inherit;\n outline: inherit;\n height: ${size[5]};\n background: transparent;\n border: none;\n padding: 0;\n display: inline-flex;\n align-items: center;\n gap: ${size[1]};\n position: relative;\n /* outline: 1px solid ${colors.green[400]}; */\n\n &:focus-visible {\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n\n & svg {\n position: relative;\n left: 1px;\n }\n `,\n info: css`\n color: ${t(colors.gray[500], colors.gray[500])};\n font-size: ${font.size.xs};\n margin-left: ${size[1]};\n /* outline: 1px solid ${colors.yellow[400]}; */\n `,\n label: css`\n color: ${t(colors.gray[700], colors.gray[300])};\n white-space: nowrap;\n `,\n value: css`\n color: ${t(colors.purple[600], colors.purple[400])};\n flex-grow: 1;\n `,\n actions: css`\n display: inline-flex;\n gap: ${size[2]};\n align-items: center;\n `,\n row: css`\n display: inline-flex;\n gap: ${size[2]};\n width: 100%;\n margin: ${size[0.25]} 0px;\n line-height: ${size[4.5]};\n align-items: center;\n `,\n editableInput: css`\n border: none;\n padding: ${size[0.5]} ${size[1]} ${size[0.5]} ${size[1.5]};\n flex-grow: 1;\n border-radius: ${border.radius.xs};\n background-color: ${t(colors.gray[200], colors.darkGray[500])};\n\n &:hover {\n background-color: ${t(colors.gray[300], colors.darkGray[600])};\n }\n `,\n actionButton: css`\n background-color: transparent;\n color: ${t(colors.gray[500], colors.gray[500])};\n border: none;\n display: inline-flex;\n padding: 0px;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n width: ${size[3]};\n height: ${size[3]};\n position: relative;\n z-index: 1;\n\n &:hover svg {\n color: ${t(colors.gray[600], colors.gray[400])};\n }\n\n &:focus-visible {\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n outline-offset: 2px;\n }\n `,\n }\n}\n\nconst lightStyles = (css: (typeof goober)['css']) => stylesFactory('light', css)\nconst darkStyles = (css: (typeof goober)['css']) => stylesFactory('dark', css)\n","import {\n For,\n Show,\n batch,\n createEffect,\n createMemo,\n createSignal,\n on,\n onCleanup,\n onMount,\n} from 'solid-js'\nimport { rankItem } from '@tanstack/match-sorter-utils'\nimport * as goober from 'goober'\nimport { clsx as cx } from 'clsx'\nimport { TransitionGroup } from 'solid-transition-group'\nimport { Key } from '@solid-primitives/keyed'\nimport { createResizeObserver } from '@solid-primitives/resize-observer'\nimport { DropdownMenu, RadioGroup } from '@kobalte/core'\nimport { Portal } from 'solid-js/web'\nimport { tokens } from './theme'\nimport {\n convertRemToPixels,\n displayValue,\n getMutationStatusColor,\n getQueryStatusColor,\n getQueryStatusColorByLabel,\n getQueryStatusLabel,\n getSidedProp,\n mutationSortFns,\n sortFns,\n} from './utils'\nimport {\n ArrowDown,\n ArrowLeft,\n ArrowRight,\n ArrowUp,\n CheckCircle,\n ChevronDown,\n LoadingCircle,\n Monitor,\n Moon,\n Offline,\n PauseCircle,\n PiPIcon,\n Search,\n Settings,\n Sun,\n TanstackLogo,\n Trash,\n Wifi,\n XCircle,\n} from './icons'\nimport Explorer from './Explorer'\nimport { usePiPWindow, useQueryDevtoolsContext, useTheme } from './contexts'\nimport {\n BUTTON_POSITION,\n DEFAULT_HEIGHT,\n DEFAULT_MUTATION_SORT_FN_NAME,\n DEFAULT_SORT_FN_NAME,\n DEFAULT_SORT_ORDER,\n DEFAULT_WIDTH,\n INITIAL_IS_OPEN,\n POSITION,\n firstBreakpoint,\n secondBreakpoint,\n thirdBreakpoint,\n} from './constants'\nimport type {\n DevtoolsErrorType,\n DevtoolsPosition,\n QueryDevtoolsProps,\n} from './contexts'\nimport type {\n Mutation,\n MutationCache,\n Query,\n QueryCache,\n QueryCacheNotifyEvent,\n} from '@tanstack/query-core'\nimport type { StorageObject, StorageSetter } from '@solid-primitives/storage'\nimport type { Accessor, Component, JSX, Setter } from 'solid-js'\n\ninterface DevtoolsPanelProps {\n localStore: StorageObject<string>\n setLocalStore: StorageSetter<string, unknown>\n}\n\ninterface ContentViewProps {\n localStore: StorageObject<string>\n setLocalStore: StorageSetter<string, unknown>\n showPanelViewOnly?: boolean\n onClose?: () => void\n}\n\ninterface QueryStatusProps {\n label: string\n color: 'green' | 'yellow' | 'gray' | 'blue' | 'purple' | 'red'\n count: number\n}\n\nconst [selectedQueryHash, setSelectedQueryHash] = createSignal<string | null>(\n null,\n)\nconst [selectedMutationId, setSelectedMutationId] = createSignal<number | null>(\n null,\n)\nconst [panelWidth, setPanelWidth] = createSignal(0)\nconst [offline, setOffline] = createSignal(false)\n\nexport type DevtoolsComponentType = Component<QueryDevtoolsProps> & {\n shadowDOMTarget?: ShadowRoot\n}\n\nexport const Devtools: Component<DevtoolsPanelProps> = (props) => {\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n const onlineManager = createMemo(\n () => useQueryDevtoolsContext().onlineManager,\n )\n onMount(() => {\n const unsubscribe = onlineManager().subscribe((online) => {\n setOffline(!online)\n })\n\n onCleanup(() => {\n unsubscribe()\n })\n })\n\n const pip = usePiPWindow()\n\n const buttonPosition = createMemo(() => {\n return useQueryDevtoolsContext().buttonPosition || BUTTON_POSITION\n })\n\n const isOpen = createMemo(() => {\n return props.localStore.open === 'true'\n ? true\n : props.localStore.open === 'false'\n ? false\n : useQueryDevtoolsContext().initialIsOpen || INITIAL_IS_OPEN\n })\n\n const position = createMemo(() => {\n return (\n props.localStore.position ||\n useQueryDevtoolsContext().position ||\n POSITION\n )\n })\n\n let transitionsContainerRef!: HTMLDivElement\n createEffect(() => {\n const root = transitionsContainerRef.parentElement as HTMLElement\n const height = props.localStore.height || DEFAULT_HEIGHT\n const width = props.localStore.width || DEFAULT_WIDTH\n const panelPosition = position()\n root.style.setProperty(\n '--tsqd-panel-height',\n `${panelPosition === 'top' ? '-' : ''}${height}px`,\n )\n root.style.setProperty(\n '--tsqd-panel-width',\n `${panelPosition === 'left' ? '-' : ''}${width}px`,\n )\n })\n\n // Calculates the inherited font size of the parent and sets it as a CSS variable\n // All the design tokens are calculated based on this variable\n onMount(() => {\n // This is to make sure that the font size is updated when the stylesheet is updated\n // and the user focuses back on the window\n const onFocus = () => {\n const root = transitionsContainerRef.parentElement as HTMLElement\n const fontSize = getComputedStyle(root).fontSize\n root.style.setProperty('--tsqd-font-size', fontSize)\n }\n onFocus()\n window.addEventListener('focus', onFocus)\n onCleanup(() => {\n window.removeEventListener('focus', onFocus)\n })\n })\n\n const pip_open = createMemo(\n () => (props.localStore.pip_open ?? 'false') as 'true' | 'false',\n )\n\n return (\n <>\n <Show when={pip().pipWindow && pip_open() == 'true'}>\n <Portal mount={pip().pipWindow?.document.body}>\n <PiPPanel>\n <ContentView {...props} />\n </PiPPanel>\n </Portal>\n </Show>\n <div\n // styles for animating the panel in and out\n class={cx(\n css`\n & .tsqd-panel-transition-exit-active,\n & .tsqd-panel-transition-enter-active {\n transition:\n opacity 0.3s,\n transform 0.3s;\n }\n\n & .tsqd-panel-transition-exit-to,\n & .tsqd-panel-transition-enter {\n ${position() === 'top' || position() === 'bottom'\n ? `transform: translateY(var(--tsqd-panel-height));`\n : `transform: translateX(var(--tsqd-panel-width));`}\n }\n\n & .tsqd-button-transition-exit-active,\n & .tsqd-button-transition-enter-active {\n transition:\n opacity 0.3s,\n transform 0.3s;\n opacity: 1;\n }\n\n & .tsqd-button-transition-exit-to,\n & .tsqd-button-transition-enter {\n transform: ${buttonPosition() === 'relative'\n ? `none;`\n : buttonPosition() === 'top-left'\n ? `translateX(-72px);`\n : buttonPosition() === 'top-right'\n ? `translateX(72px);`\n : `translateY(72px);`};\n opacity: 0;\n }\n `,\n 'tsqd-transitions-container',\n )}\n ref={transitionsContainerRef}\n >\n <TransitionGroup name=\"tsqd-panel-transition\">\n <Show when={isOpen() && !pip().pipWindow && pip_open() == 'false'}>\n <DraggablePanel\n localStore={props.localStore}\n setLocalStore={props.setLocalStore}\n />\n </Show>\n </TransitionGroup>\n <TransitionGroup name=\"tsqd-button-transition\">\n <Show when={!isOpen()}>\n <div\n class={cx(\n styles().devtoolsBtn,\n styles()[`devtoolsBtn-position-${buttonPosition()}`],\n 'tsqd-open-btn-container',\n )}\n >\n <div aria-hidden=\"true\">\n <TanstackLogo />\n </div>\n <button\n type=\"button\"\n aria-label=\"Open Tanstack query devtools\"\n onClick={() => props.setLocalStore('open', 'true')}\n class=\"tsqd-open-btn\"\n >\n <TanstackLogo />\n </button>\n </div>\n </Show>\n </TransitionGroup>\n </div>\n </>\n )\n}\n\nconst PiPPanel: Component<{\n children: JSX.Element\n}> = (props) => {\n const pip = usePiPWindow()\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n\n const getPanelDynamicStyles = () => {\n const { colors } = tokens\n const t = (light: string, dark: string) =>\n theme() === 'dark' ? dark : light\n if (panelWidth() < secondBreakpoint) {\n return css`\n flex-direction: column;\n background-color: ${t(colors.gray[300], colors.gray[600])};\n `\n }\n return css`\n flex-direction: row;\n background-color: ${t(colors.gray[200], colors.darkGray[900])};\n `\n }\n\n createEffect(() => {\n const win = pip().pipWindow\n const resizeCB = () => {\n if (!win) return\n setPanelWidth(win.innerWidth)\n }\n if (win) {\n win.addEventListener('resize', resizeCB)\n resizeCB()\n }\n\n onCleanup(() => {\n if (win) {\n win.removeEventListener('resize', resizeCB)\n }\n })\n })\n\n return (\n <div\n style={{\n '--tsqd-font-size': '16px',\n 'max-height': '100vh',\n height: '100vh',\n width: '100vw',\n }}\n class={cx(\n styles().panel,\n getPanelDynamicStyles(),\n {\n [css`\n min-width: min-content;\n `]: panelWidth() < thirdBreakpoint,\n },\n 'tsqd-main-panel',\n )}\n >\n {props.children}\n </div>\n )\n}\n\nexport const ParentPanel: Component<{\n children: JSX.Element\n}> = (props) => {\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n\n let panelRef!: HTMLDivElement\n\n onMount(() => {\n createResizeObserver(panelRef, ({ width }, el) => {\n if (el === panelRef) {\n setPanelWidth(width)\n }\n })\n })\n\n const getPanelDynamicStyles = () => {\n const { colors } = tokens\n const t = (light: string, dark: string) =>\n theme() === 'dark' ? dark : light\n if (panelWidth() < secondBreakpoint) {\n return css`\n flex-direction: column;\n background-color: ${t(colors.gray[300], colors.gray[600])};\n `\n }\n return css`\n flex-direction: row;\n background-color: ${t(colors.gray[200], colors.darkGray[900])};\n `\n }\n\n return (\n <div\n style={{\n '--tsqd-font-size': '16px',\n }}\n ref={panelRef}\n class={cx(\n styles().parentPanel,\n getPanelDynamicStyles(),\n {\n [css`\n min-width: min-content;\n `]: panelWidth() < thirdBreakpoint,\n },\n 'tsqd-main-panel',\n )}\n >\n {props.children}\n </div>\n )\n}\n\nconst DraggablePanel: Component<DevtoolsPanelProps> = (props) => {\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n\n let closeBtnRef!: HTMLButtonElement\n\n // Focus the close button when the panel opens for screen reader accessibility\n onMount(() => {\n closeBtnRef.focus()\n })\n\n const [isResizing, setIsResizing] = createSignal(false)\n\n const position = createMemo(\n () =>\n (props.localStore.position ||\n useQueryDevtoolsContext().position ||\n POSITION) as DevtoolsPosition,\n )\n\n const handleDragStart: JSX.EventHandler<HTMLDivElement, MouseEvent> = (\n event,\n ) => {\n const panelElement = event.currentTarget.parentElement\n if (!panelElement) return\n setIsResizing(true)\n const { height, width } = panelElement.getBoundingClientRect()\n const startX = event.clientX\n const startY = event.clientY\n let newSize = 0\n const minHeight = convertRemToPixels(3.5)\n const minWidth = convertRemToPixels(12)\n const runDrag = (moveEvent: MouseEvent) => {\n moveEvent.preventDefault()\n\n if (position() === 'left' || position() === 'right') {\n const valToAdd =\n position() === 'right'\n ? startX - moveEvent.clientX\n : moveEvent.clientX - startX\n newSize = Math.round(width + valToAdd)\n if (newSize < minWidth) {\n newSize = minWidth\n }\n props.setLocalStore('width', String(Math.round(newSize)))\n\n const newWidth = panelElement.getBoundingClientRect().width\n // If the panel size didn't decrease, this means we have reached the minimum width\n // of the panel so we restore the original width in local storage\n // Restoring the width helps in smooth open/close transitions\n if (Number(props.localStore.width) < newWidth) {\n props.setLocalStore('width', String(newWidth))\n }\n } else {\n const valToAdd =\n position() === 'bottom'\n ? startY - moveEvent.clientY\n : moveEvent.clientY - startY\n newSize = Math.round(height + valToAdd)\n // If the panel size is less than the minimum height,\n // we set the size to the minimum height\n if (newSize < minHeight) {\n newSize = minHeight\n setSelectedQueryHash(null)\n }\n props.setLocalStore('height', String(Math.round(newSize)))\n }\n }\n\n const unsubscribe = () => {\n if (isResizing()) {\n setIsResizing(false)\n }\n document.removeEventListener('mousemove', runDrag, false)\n document.removeEventListener('mouseup', unsubscribe, false)\n }\n\n document.addEventListener('mousemove', runDrag, false)\n document.addEventListener('mouseup', unsubscribe, false)\n }\n\n let panelRef!: HTMLDivElement\n\n onMount(() => {\n createResizeObserver(panelRef, ({ width }, el) => {\n if (el === panelRef) {\n setPanelWidth(width)\n }\n })\n })\n\n createEffect(() => {\n const rootContainer = panelRef.parentElement?.parentElement?.parentElement\n if (!rootContainer) return\n const currentPosition = (props.localStore.position ||\n POSITION) as DevtoolsPosition\n const styleProp = getSidedProp('padding', currentPosition)\n const isVertical =\n props.localStore.position === 'left' ||\n props.localStore.position === 'right'\n const previousPaddings = (({\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }) => ({\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }))(rootContainer.style)\n\n rootContainer.style[styleProp] = `${\n isVertical ? props.localStore.width : props.localStore.height\n }px`\n\n onCleanup(() => {\n Object.entries(previousPaddings).forEach(([property, previousValue]) => {\n rootContainer.style[property as keyof typeof previousPaddings] =\n previousValue\n })\n })\n })\n\n const getPanelDynamicStyles = () => {\n const { colors } = tokens\n const t = (light: string, dark: string) =>\n theme() === 'dark' ? dark : light\n if (panelWidth() < secondBreakpoint) {\n return css`\n flex-direction: column;\n background-color: ${t(colors.gray[300], colors.gray[600])};\n `\n }\n return css`\n flex-direction: row;\n background-color: ${t(colors.gray[200], colors.darkGray[900])};\n `\n }\n\n return (\n <aside\n // Some context for styles here\n // background-color - Changes to a lighter color create a harder contrast\n // between the queries and query detail panel\n // -\n // min-width - When the panel is in the left or right position, the panel\n // width is set to min-content to allow the panel to shrink to the lowest possible width\n class={cx(\n styles().panel,\n styles()[`panel-position-${position()}`],\n getPanelDynamicStyles(),\n {\n [css`\n min-width: min-content;\n `]:\n panelWidth() < thirdBreakpoint &&\n (position() === 'right' || position() === 'left'),\n },\n 'tsqd-main-panel',\n )}\n style={{\n height:\n position() === 'bottom' || position() === 'top'\n ? `${props.localStore.height || DEFAULT_HEIGHT}px`\n : 'auto',\n width:\n position() === 'right' || position() === 'left'\n ? `${props.localStore.width || DEFAULT_WIDTH}px`\n : 'auto',\n }}\n ref={panelRef}\n aria-label=\"Tanstack query devtools\"\n >\n <div\n role=\"separator\"\n aria-orientation={\n position() === 'top' || position() === 'bottom'\n ? 'horizontal'\n : 'vertical'\n }\n aria-label=\"Resize devtools panel\"\n aria-valuemin={\n position() === 'top' || position() === 'bottom'\n ? convertRemToPixels(3.5)\n : convertRemToPixels(12)\n }\n aria-valuenow={\n position() === 'top' || position() === 'bottom'\n ? Number(props.localStore.height || DEFAULT_HEIGHT)\n : Number(props.localStore.width || DEFAULT_WIDTH)\n }\n tabindex=\"0\"\n class={cx(\n styles().dragHandle,\n styles()[`dragHandle-position-${position()}`],\n 'tsqd-drag-handle',\n )}\n onMouseDown={handleDragStart}\n onKeyDown={(e) => {\n const step = 10\n const minHeight = convertRemToPixels(3.5)\n const minWidth = convertRemToPixels(12)\n if (position() === 'top' || position() === 'bottom') {\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n e.preventDefault()\n const currentHeight = Number(\n props.localStore.height || DEFAULT_HEIGHT,\n )\n const delta =\n position() === 'bottom'\n ? e.key === 'ArrowUp'\n ? step\n : -step\n : e.key === 'ArrowDown'\n ? step\n : -step\n const newHeight = Math.max(minHeight, currentHeight + delta)\n props.setLocalStore('height', String(newHeight))\n }\n } else {\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n e.preventDefault()\n const currentWidth = Number(\n props.localStore.width || DEFAULT_WIDTH,\n )\n const delta =\n position() === 'right'\n ? e.key === 'ArrowLeft'\n ? step\n : -step\n : e.key === 'ArrowRight'\n ? step\n : -step\n const newWidth = Math.max(minWidth, currentWidth + delta)\n props.setLocalStore('width', String(newWidth))\n }\n }\n }}\n ></div>\n <button\n ref={closeBtnRef}\n aria-label=\"Close tanstack query devtools\"\n class={cx(\n styles().closeBtn,\n styles()[`closeBtn-position-${position()}`],\n 'tsqd-minimize-btn',\n )}\n onClick={() => props.setLocalStore('open', 'false')}\n >\n <ChevronDown />\n </button>\n <ContentView {...props} />\n </aside>\n )\n}\n\nexport const ContentView: Component<ContentViewProps> = (props) => {\n setupQueryCacheSubscription()\n setupMutationCacheSubscription()\n let containerRef!: HTMLDivElement\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n\n const pip = usePiPWindow()\n\n const [selectedView, setSelectedView] = createSignal<'queries' | 'mutations'>(\n 'queries',\n )\n\n const sort = createMemo(() => props.localStore.sort || DEFAULT_SORT_FN_NAME)\n const sortOrder = createMemo(\n () => Number(props.localStore.sortOrder) || DEFAULT_SORT_ORDER,\n ) as () => 1 | -1\n\n const mutationSort = createMemo(\n () => props.localStore.mutationSort || DEFAULT_MUTATION_SORT_FN_NAME,\n )\n const mutationSortOrder = createMemo(\n () => Number(props.localStore.mutationSortOrder) || DEFAULT_SORT_ORDER,\n ) as () => 1 | -1\n\n const sortFn = createMemo(() => sortFns[sort() as string])\n const mutationSortFn = createMemo(\n () => mutationSortFns[mutationSort() as string],\n )\n\n const onlineManager = createMemo(\n () => useQueryDevtoolsContext().onlineManager,\n )\n\n const query_cache = createMemo(() => {\n return useQueryDevtoolsContext().client.getQueryCache()\n })\n\n const mutation_cache = createMemo(() => {\n return useQueryDevtoolsContext().client.getMutationCache()\n })\n\n const queryCount = createSubscribeToQueryCacheBatcher((queryCache) => {\n return queryCache().getAll().length\n }, false)\n\n const queries = createMemo(\n on(\n () => [\n queryCount(),\n props.localStore.filter,\n sort(),\n sortOrder(),\n props.localStore.hideDisabledQueries,\n ],\n () => {\n const curr = query_cache().getAll()\n\n let filtered = props.localStore.filter\n ? curr.filter(\n (item) =>\n rankItem(item.queryHash, props.localStore.filter || '').passed,\n )\n : [...curr]\n\n // Filter out disabled queries if hideDisabledQueries is enabled\n if (props.localStore.hideDisabledQueries === 'true') {\n filtered = filtered.filter((item) => !item.isDisabled())\n }\n\n const sorted = sortFn()\n ? filtered.sort((a, b) => sortFn()!(a, b) * sortOrder())\n : filtered\n return sorted\n },\n ),\n )\n\n const mutationCount = createSubscribeToMutationCacheBatcher(\n (mutationCache) => {\n return mutationCache().getAll().length\n },\n false,\n )\n\n const mutations = createMemo(\n on(\n () => [\n mutationCount(),\n props.localStore.mutationFilter,\n mutationSort(),\n mutationSortOrder(),\n ],\n () => {\n const curr = mutation_cache().getAll()\n\n const filtered = props.localStore.mutationFilter\n ? curr.filter((item) => {\n const value = `${\n item.options.mutationKey\n ? JSON.stringify(item.options.mutationKey) + ' - '\n : ''\n }${new Date(item.state.submittedAt).toLocaleString()}`\n return rankItem(value, props.localStore.mutationFilter || '')\n .passed\n })\n : [...curr]\n\n const sorted = mutationSortFn()\n ? filtered.sort(\n (a, b) => mutationSortFn()!(a, b) * mutationSortOrder(),\n )\n : filtered\n return sorted\n },\n ),\n )\n\n const setDevtoolsPosition = (pos: DevtoolsPosition) => {\n props.setLocalStore('position', pos)\n }\n\n // Sets the Font Size variable on portal menu elements since they will be outside\n // the main panel container\n const setComputedVariables = (el: HTMLDivElement) => {\n const computedStyle = getComputedStyle(containerRef)\n const variable = computedStyle.getPropertyValue('--tsqd-font-size')\n el.style.setProperty('--tsqd-font-size', variable)\n }\n return (\n <>\n <div\n // When the panels are stacked we use the height style\n // to divide the panels into two equal parts\n class={cx(\n styles().queriesContainer,\n panelWidth() < secondBreakpoint &&\n (selectedQueryHash() || selectedMutationId()) &&\n css`\n height: 50%;\n max-height: 50%;\n `,\n panelWidth() < secondBreakpoint &&\n !(selectedQueryHash() || selectedMutationId()) &&\n css`\n height: 100%;\n max-height: 100%;\n `,\n 'tsqd-queries-container',\n )}\n ref={containerRef}\n >\n <div class={cx(styles().row, 'tsqd-header')}>\n <div class={styles().logoAndToggleContainer}>\n <button\n class={cx(styles().logo, 'tsqd-text-logo-container')}\n onClick={() => {\n if (!pip().pipWindow && !props.showPanelViewOnly) {\n props.setLocalStore('open', 'false')\n return\n }\n if (props.onClose) {\n props.onClose()\n }\n }}\n aria-label=\"Close Tanstack query devtools\"\n >\n <span\n class={cx(styles().tanstackLogo, 'tsqd-text-logo-tanstack')}\n >\n TANSTACK\n </span>\n <span\n class={cx(\n styles().queryFlavorLogo,\n 'tsqd-text-logo-query-flavor',\n )}\n >\n {useQueryDevtoolsContext().queryFlavor} v\n {useQueryDevtoolsContext().version}\n </span>\n </button>\n <RadioGroup.Root\n class={cx(styles().viewToggle)}\n value={selectedView()}\n aria-label=\"Toggle between queries and mutations view\"\n onChange={(value) => {\n setSelectedView(value as 'queries' | 'mutations')\n setSelectedQueryHash(null)\n setSelectedMutationId(null)\n }}\n >\n <RadioGroup.Item value=\"queries\" class=\"tsqd-radio-toggle\">\n <RadioGroup.ItemInput />\n <RadioGroup.ItemControl>\n <RadioGroup.ItemIndicator />\n </RadioGroup.ItemControl>\n <RadioGroup.ItemLabel title=\"Toggle Queries View\">\n Queries\n </RadioGroup.ItemLabel>\n </RadioGroup.Item>\n <RadioGroup.Item value=\"mutations\" class=\"tsqd-radio-toggle\">\n <RadioGroup.ItemInput />\n <RadioGroup.ItemControl>\n <RadioGroup.ItemIndicator />\n </RadioGroup.ItemControl>\n <RadioGroup.ItemLabel title=\"Toggle Mutations View\">\n Mutations\n </RadioGroup.ItemLabel>\n </RadioGroup.Item>\n </RadioGroup.Root>\n </div>\n\n <Show when={selectedView() === 'queries'}>\n <QueryStatusCount />\n </Show>\n <Show when={selectedView() === 'mutations'}>\n <MutationStatusCount />\n </Show>\n </div>\n <div class={cx(styles().row, 'tsqd-filters-actions-container')}>\n <div class={cx(styles().filtersContainer, 'tsqd-filters-container')}>\n <div\n class={cx(\n styles().filterInput,\n 'tsqd-query-filter-textfield-container',\n )}\n >\n <Search />\n <input\n aria-label=\"Filter queries by query key\"\n type=\"text\"\n placeholder=\"Filter\"\n onInput={(e) => {\n if (selectedView() === 'queries') {\n props.setLocalStore('filter', e.currentTarget.value)\n } else {\n props.setLocalStore('mutationFilter', e.currentTarget.value)\n }\n }}\n class={cx('tsqd-query-filter-textfield')}\n name=\"tsqd-query-filter-input\"\n value={\n selectedView() === 'queries'\n ? props.localStore.filter || ''\n : props.localStore.mutationFilter || ''\n }\n />\n </div>\n <div\n class={cx(\n styles().filterSelect,\n 'tsqd-query-filter-sort-container',\n )}\n >\n <Show when={selectedView() === 'queries'}>\n <select\n value={sort()}\n name=\"tsqd-queries-filter-sort\"\n aria-label=\"Sort queries by\"\n onChange={(e) => {\n props.setLocalStore('sort', e.currentTarget.value)\n }}\n >\n {Object.keys(sortFns).map((key) => (\n <option value={key}>Sort by {key}</option>\n ))}\n </select>\n </Show>\n <Show when={selectedView() === 'mutations'}>\n <select\n value={mutationSort()}\n name=\"tsqd-mutations-filter-sort\"\n aria-label=\"Sort mutations by\"\n onChange={(e) => {\n props.setLocalStore('mutationSort', e.currentTarget.value)\n }}\n >\n {Object.keys(mutationSortFns).map((key) => (\n <option value={key}>Sort by {key}</option>\n ))}\n </select>\n </Show>\n <ChevronDown />\n </div>\n <button\n onClick={() => {\n if (selectedView() === 'queries') {\n props.setLocalStore('sortOrder', String(sortOrder() * -1))\n } else {\n props.setLocalStore(\n 'mutationSortOrder',\n String(mutationSortOrder() * -1),\n )\n }\n }}\n aria-label={`Sort order ${\n (selectedView() === 'queries'\n ? sortOrder()\n : mutationSortOrder()) === -1\n ? 'descending'\n : 'ascending'\n }`}\n aria-pressed={\n (selectedView() === 'queries'\n ? sortOrder()\n : mutationSortOrder()) === -1\n }\n class=\"tsqd-query-filter-sort-order-btn\"\n >\n <Show\n when={\n (selectedView() === 'queries'\n ? sortOrder()\n : mutationSortOrder()) === 1\n }\n >\n <span>Asc</span>\n <ArrowUp />\n </Show>\n <Show\n when={\n (selectedView() === 'queries'\n ? sortOrder()\n : mutationSortOrder()) === -1\n }\n >\n <span>Desc</span>\n <ArrowDown />\n </Show>\n </button>\n </div>\n\n <div class={cx(styles().actionsContainer, 'tsqd-actions-container')}>\n <button\n onClick={() => {\n if (selectedView() === 'queries') {\n sendDevToolsEvent({ type: 'CLEAR_QUERY_CACHE' })\n query_cache().clear()\n } else {\n sendDevToolsEvent({ type: 'CLEAR_MUTATION_CACHE' })\n mutation_cache().clear()\n }\n }}\n class={cx(\n styles().actionsBtn,\n 'tsqd-actions-btn',\n 'tsqd-action-clear-cache',\n )}\n aria-label=\"Clear query cache\"\n title={`Clear ${selectedView()} cache`}\n >\n <Trash />\n </button>\n <button\n onClick={() => {\n onlineManager().setOnline(!onlineManager().isOnline())\n }}\n class={cx(\n styles().actionsBtn,\n offline() && styles().actionsBtnOffline,\n 'tsqd-actions-btn',\n 'tsqd-action-mock-offline-behavior',\n )}\n aria-label={`${\n offline()\n ? 'Unset offline mocking behavior'\n : 'Mock offline behavior'\n }`}\n aria-pressed={offline()}\n title={`${\n offline()\n ? 'Unset offline mocking behavior'\n : 'Mock offline behavior'\n }`}\n >\n {offline() ? <Offline /> : <Wifi />}\n </button>\n <Show when={!pip().pipWindow && !pip().disabled}>\n <button\n onClick={() => {\n pip().requestPipWindow(\n Number(window.innerWidth),\n Number(props.localStore.height ?? 500),\n )\n }}\n class={cx(\n styles().actionsBtn,\n 'tsqd-actions-btn',\n 'tsqd-action-open-pip',\n )}\n aria-label=\"Open in picture-in-picture mode\"\n title=\"Open in picture-in-picture mode\"\n >\n <PiPIcon />\n </button>\n </Show>\n\n <DropdownMenu.Root gutter={4}>\n <DropdownMenu.Trigger\n class={cx(\n styles().actionsBtn,\n 'tsqd-actions-btn',\n 'tsqd-action-settings',\n )}\n aria-label=\"Open settings menu\"\n title=\"Open settings menu\"\n >\n <Settings />\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal\n ref={(el) => setComputedVariables(el as HTMLDivElement)}\n mount={\n pip().pipWindow\n ? pip().pipWindow!.document.body\n : document.body\n }\n >\n <DropdownMenu.Content\n class={cx(styles().settingsMenu, 'tsqd-settings-menu')}\n >\n <div\n class={cx(\n styles().settingsMenuHeader,\n 'tsqd-settings-menu-header',\n )}\n >\n Settings\n </div>\n <Show when={!props.showPanelViewOnly}>\n <DropdownMenu.Sub overlap gutter={8} shift={-4}>\n <DropdownMenu.SubTrigger\n class={cx(\n styles().settingsSubTrigger,\n 'tsqd-settings-menu-sub-trigger',\n 'tsqd-settings-menu-sub-trigger-position',\n )}\n >\n <span>Position</span>\n <ChevronDown />\n </DropdownMenu.SubTrigger>\n <DropdownMenu.Portal\n ref={(el) => setComputedVariables(el as HTMLDivElement)}\n mount={\n pip().pipWindow\n ? pip().pipWindow!.document.body\n : document.body\n }\n >\n <DropdownMenu.SubContent\n class={cx(\n styles().settingsMenu,\n 'tsqd-settings-submenu',\n )}\n >\n <DropdownMenu.RadioGroup\n aria-label=\"Position settings\"\n value={props.localStore.position}\n onChange={(value) =>\n setDevtoolsPosition(value as DevtoolsPosition)\n }\n >\n <DropdownMenu.RadioItem\n value=\"top\"\n class={cx(\n styles().settingsSubButton,\n 'tsqd-settings-menu-position-btn',\n 'tsqd-settings-menu-position-btn-top',\n )}\n >\n <span>Top</span>\n <ArrowUp />\n </DropdownMenu.RadioItem>\n <DropdownMenu.RadioItem\n value=\"bottom\"\n class={cx(\n styles().settingsSubButton,\n 'tsqd-settings-menu-position-btn',\n 'tsqd-settings-menu-position-btn-bottom',\n )}\n >\n <span>Bottom</span>\n <ArrowDown />\n </DropdownMenu.RadioItem>\n <DropdownMenu.RadioItem\n value=\"left\"\n class={cx(\n styles().settingsSubButton,\n 'tsqd-settings-menu-position-btn',\n 'tsqd-settings-menu-position-btn-left',\n )}\n >\n <span>Left</span>\n <ArrowLeft />\n </DropdownMenu.RadioItem>\n <DropdownMenu.RadioItem\n value=\"right\"\n class={cx(\n styles().settingsSubButton,\n 'tsqd-settings-menu-position-btn',\n 'tsqd-settings-menu-position-btn-right',\n )}\n >\n <span>Right</span>\n <ArrowRight />\n </DropdownMenu.RadioItem>\n </DropdownMenu.RadioGroup>\n </DropdownMenu.SubContent>\n </DropdownMenu.Portal>\n </DropdownMenu.Sub>\n </Show>\n <DropdownMenu.Sub overlap gutter={8} shift={-4}>\n <DropdownMenu.SubTrigger\n class={cx(\n styles().settingsSubTrigger,\n 'tsqd-settings-menu-sub-trigger',\n 'tsqd-settings-menu-sub-trigger-theme',\n )}\n >\n <span>Theme</span>\n <ChevronDown />\n </DropdownMenu.SubTrigger>\n <DropdownMenu.Portal\n ref={(el) => setComputedVariables(el as HTMLDivElement)}\n mount={\n pip().pipWindow\n ? pip().pipWindow!.document.body\n : document.body\n }\n >\n <DropdownMenu.SubContent\n class={cx(\n styles().settingsMenu,\n 'tsqd-settings-submenu',\n )}\n >\n <DropdownMenu.RadioGroup\n value={props.localStore.theme_preference}\n onChange={(value) => {\n props.setLocalStore('theme_preference', value)\n }}\n aria-label=\"Theme preference\"\n >\n <DropdownMenu.RadioItem\n value=\"light\"\n class={cx(\n styles().settingsSubButton,\n 'tsqd-settings-menu-position-btn',\n 'tsqd-settings-menu-position-btn-top',\n )}\n >\n <span>Light</span>\n <Sun />\n </DropdownMenu.RadioItem>\n <DropdownMenu.RadioItem\n value=\"dark\"\n class={cx(\n styles().settingsSubButton,\n 'tsqd-settings-menu-position-btn',\n 'tsqd-settings-menu-position-btn-bottom',\n )}\n >\n <span>Dark</span>\n <Moon />\n </DropdownMenu.RadioItem>\n <DropdownMenu.RadioItem\n value=\"system\"\n class={cx(\n styles().settingsSubButton,\n 'tsqd-settings-menu-position-btn',\n 'tsqd-settings-menu-position-btn-left',\n )}\n >\n <span>System</span>\n <Monitor />\n </DropdownMenu.RadioItem>\n </DropdownMenu.RadioGroup>\n </DropdownMenu.SubContent>\n </DropdownMenu.Portal>\n </DropdownMenu.Sub>\n <DropdownMenu.Sub overlap gutter={8} shift={-4}>\n <DropdownMenu.SubTrigger\n class={cx(\n styles().settingsSubTrigger,\n 'tsqd-settings-menu-sub-trigger',\n 'tsqd-settings-menu-sub-trigger-disabled-queries',\n )}\n >\n <span>Disabled Queries</span>\n <ChevronDown />\n </DropdownMenu.SubTrigger>\n <DropdownMenu.Portal\n ref={(el) => setComputedVariables(el as HTMLDivElement)}\n mount={\n pip().pipWindow\n ? pip().pipWindow!.document.body\n : document.body\n }\n >\n <DropdownMenu.SubContent\n class={cx(\n styles().settingsMenu,\n 'tsqd-settings-submenu',\n )}\n >\n <DropdownMenu.RadioGroup\n value={props.localStore.hideDisabledQueries}\n aria-label=\"Hide disabled queries setting\"\n onChange={(value) =>\n props.setLocalStore('hideDisabledQueries', value)\n }\n >\n <DropdownMenu.RadioItem\n value=\"false\"\n class={cx(\n styles().settingsSubButton,\n 'tsqd-settings-menu-position-btn',\n 'tsqd-settings-menu-position-btn-show',\n )}\n >\n <span>Show</span>\n <Show\n when={\n props.localStore.hideDisabledQueries !== 'true'\n }\n >\n <CheckCircle />\n </Show>\n </DropdownMenu.RadioItem>\n <DropdownMenu.RadioItem\n value=\"true\"\n class={cx(\n styles().settingsSubButton,\n 'tsqd-settings-menu-position-btn',\n 'tsqd-settings-menu-position-btn-hide',\n )}\n >\n <span>Hide</span>\n <Show\n when={\n props.localStore.hideDisabledQueries === 'true'\n }\n >\n <CheckCircle />\n </Show>\n </DropdownMenu.RadioItem>\n </DropdownMenu.RadioGroup>\n </DropdownMenu.SubContent>\n </DropdownMenu.Portal>\n </DropdownMenu.Sub>\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n </div>\n </div>\n <Show when={selectedView() === 'queries'}>\n <div\n class={cx(\n styles().overflowQueryContainer,\n 'tsqd-queries-overflow-container',\n )}\n >\n <div class=\"tsqd-queries-container\">\n <Key by={(q) => q.queryHash} each={queries()}>\n {(query) => <QueryRow query={query()} />}\n </Key>\n </div>\n </div>\n </Show>\n <Show when={selectedView() === 'mutations'}>\n <div\n class={cx(\n styles().overflowQueryContainer,\n 'tsqd-mutations-overflow-container',\n )}\n >\n <div class=\"tsqd-mutations-container\">\n <Key by={(m) => m.mutationId} each={mutations()}>\n {(mutation) => <MutationRow mutation={mutation()} />}\n </Key>\n </div>\n </div>\n </Show>\n </div>\n <Show when={selectedView() === 'queries' && selectedQueryHash()}>\n <QueryDetails />\n </Show>\n\n <Show when={selectedView() === 'mutations' && selectedMutationId()}>\n <MutationDetails />\n </Show>\n </>\n )\n}\n\nconst QueryRow: Component<{ query: Query }> = (props) => {\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n\n const { colors, alpha } = tokens\n const t = (light: string, dark: string) => (theme() === 'dark' ? dark : light)\n\n const queryState = createSubscribeToQueryCacheBatcher(\n (queryCache) => queryCache().get(props.query.queryHash)?.state,\n true,\n (e) => e.query.queryHash === props.query.queryHash,\n )\n\n const isDisabled = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache().get(props.query.queryHash)?.isDisabled() ?? false,\n true,\n (e) => e.query.queryHash === props.query.queryHash,\n )\n\n const isStatic = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache().get(props.query.queryHash)?.isStatic() ?? false,\n true,\n (e) => e.query.queryHash === props.query.queryHash,\n )\n\n const isStale = createSubscribeToQueryCacheBatcher(\n (queryCache) => queryCache().get(props.query.queryHash)?.isStale() ?? false,\n true,\n (e) => e.query.queryHash === props.query.queryHash,\n )\n\n const observers = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache().get(props.query.queryHash)?.getObserversCount() ?? 0,\n true,\n (e) => e.query.queryHash === props.query.queryHash,\n )\n\n const color = createMemo(() =>\n getQueryStatusColor({\n queryState: queryState(),\n observerCount: observers(),\n isStale: isStale(),\n }),\n )\n\n const getObserverCountColorStyles = () => {\n if (color() === 'gray') {\n return css`\n background-color: ${t(colors[color()][200], colors[color()][700])};\n color: ${t(colors[color()][700], colors[color()][300])};\n `\n }\n\n return css`\n background-color: ${t(\n colors[color()][200] + alpha[80],\n colors[color()][900],\n )};\n color: ${t(colors[color()][800], colors[color()][300])};\n `\n }\n\n return (\n <Show when={queryState()}>\n <button\n onClick={() =>\n setSelectedQueryHash(\n props.query.queryHash === selectedQueryHash()\n ? null\n : props.query.queryHash,\n )\n }\n class={cx(\n styles().queryRow,\n selectedQueryHash() === props.query.queryHash &&\n styles().selectedQueryRow,\n 'tsqd-query-row',\n )}\n aria-label={`Query key ${props.query.queryHash}${isDisabled() ? ', disabled' : ''}${isStatic() ? ', static' : ''}`}\n >\n <div\n class={cx(getObserverCountColorStyles(), 'tsqd-query-observer-count')}\n >\n {observers()}\n </div>\n <code class=\"tsqd-query-hash\">{props.query.queryHash}</code>\n <Show when={isDisabled()}>\n <div class=\"tsqd-query-disabled-indicator\" aria-hidden=\"true\">\n disabled\n </div>\n </Show>\n <Show when={isStatic()}>\n <div class=\"tsqd-query-static-indicator\" aria-hidden=\"true\">\n static\n </div>\n </Show>\n </button>\n </Show>\n )\n}\n\nconst MutationRow: Component<{ mutation: Mutation }> = (props) => {\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n\n const { colors, alpha } = tokens\n const t = (light: string, dark: string) => (theme() === 'dark' ? dark : light)\n\n const mutationState = createSubscribeToMutationCacheBatcher(\n (mutationCache) => {\n const mutations = mutationCache().getAll()\n const mutation = mutations.find(\n (m) => m.mutationId === props.mutation.mutationId,\n )\n return mutation?.state\n },\n )\n\n const isPaused = createSubscribeToMutationCacheBatcher((mutationCache) => {\n const mutations = mutationCache().getAll()\n const mutation = mutations.find(\n (m) => m.mutationId === props.mutation.mutationId,\n )\n if (!mutation) return false\n return mutation.state.isPaused\n })\n\n const status = createSubscribeToMutationCacheBatcher((mutationCache) => {\n const mutations = mutationCache().getAll()\n const mutation = mutations.find(\n (m) => m.mutationId === props.mutation.mutationId,\n )\n if (!mutation) return 'idle'\n return mutation.state.status\n })\n\n const color = createMemo(() =>\n getMutationStatusColor({\n isPaused: isPaused(),\n status: status(),\n }),\n )\n\n const getObserverCountColorStyles = () => {\n if (color() === 'gray') {\n return css`\n background-color: ${t(colors[color()][200], colors[color()][700])};\n color: ${t(colors[color()][700], colors[color()][300])};\n `\n }\n\n return css`\n background-color: ${t(\n colors[color()][200] + alpha[80],\n colors[color()][900],\n )};\n color: ${t(colors[color()][800], colors[color()][300])};\n `\n }\n\n return (\n <Show when={mutationState()}>\n <button\n onClick={() => {\n setSelectedMutationId(\n props.mutation.mutationId === selectedMutationId()\n ? null\n : props.mutation.mutationId,\n )\n }}\n class={cx(\n styles().queryRow,\n selectedMutationId() === props.mutation.mutationId &&\n styles().selectedQueryRow,\n 'tsqd-query-row',\n )}\n aria-label={`Mutation submitted at ${new Date(\n props.mutation.state.submittedAt,\n ).toLocaleString()}`}\n >\n <div\n class={cx(getObserverCountColorStyles(), 'tsqd-query-observer-count')}\n >\n <Show when={color() === 'purple'}>\n <PauseCircle />\n </Show>\n <Show when={color() === 'green'}>\n <CheckCircle />\n </Show>\n <Show when={color() === 'red'}>\n <XCircle />\n </Show>\n <Show when={color() === 'yellow'}>\n <LoadingCircle />\n </Show>\n </div>\n <code class=\"tsqd-query-hash\">\n <Show when={props.mutation.options.mutationKey}>\n {JSON.stringify(props.mutation.options.mutationKey)} -{' '}\n </Show>\n {new Date(props.mutation.state.submittedAt).toLocaleString()}\n </code>\n </button>\n </Show>\n )\n}\n\nconst QueryStatusCount: Component = () => {\n const stale = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'stale').length,\n )\n\n const fresh = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'fresh').length,\n )\n\n const fetching = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'fetching').length,\n )\n\n const paused = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'paused').length,\n )\n\n const inactive = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .filter((q) => getQueryStatusLabel(q) === 'inactive').length,\n )\n\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n\n return (\n <div\n class={cx(styles().queryStatusContainer, 'tsqd-query-status-container')}\n >\n <QueryStatus label=\"Fresh\" color=\"green\" count={fresh()} />\n <QueryStatus label=\"Fetching\" color=\"blue\" count={fetching()} />\n <QueryStatus label=\"Paused\" color=\"purple\" count={paused()} />\n <QueryStatus label=\"Stale\" color=\"yellow\" count={stale()} />\n <QueryStatus label=\"Inactive\" color=\"gray\" count={inactive()} />\n </div>\n )\n}\n\nconst MutationStatusCount: Component = () => {\n const success = createSubscribeToMutationCacheBatcher(\n (mutationCache) =>\n mutationCache()\n .getAll()\n .filter(\n (m) =>\n getMutationStatusColor({\n isPaused: m.state.isPaused,\n status: m.state.status,\n }) === 'green',\n ).length,\n )\n\n const pending = createSubscribeToMutationCacheBatcher(\n (mutationCache) =>\n mutationCache()\n .getAll()\n .filter(\n (m) =>\n getMutationStatusColor({\n isPaused: m.state.isPaused,\n status: m.state.status,\n }) === 'yellow',\n ).length,\n )\n\n const paused = createSubscribeToMutationCacheBatcher(\n (mutationCache) =>\n mutationCache()\n .getAll()\n .filter(\n (m) =>\n getMutationStatusColor({\n isPaused: m.state.isPaused,\n status: m.state.status,\n }) === 'purple',\n ).length,\n )\n\n const error = createSubscribeToMutationCacheBatcher(\n (mutationCache) =>\n mutationCache()\n .getAll()\n .filter(\n (m) =>\n getMutationStatusColor({\n isPaused: m.state.isPaused,\n status: m.state.status,\n }) === 'red',\n ).length,\n )\n\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n\n return (\n <div\n class={cx(styles().queryStatusContainer, 'tsqd-query-status-container')}\n >\n <QueryStatus label=\"Paused\" color=\"purple\" count={paused()} />\n <QueryStatus label=\"Pending\" color=\"yellow\" count={pending()} />\n <QueryStatus label=\"Success\" color=\"green\" count={success()} />\n <QueryStatus label=\"Error\" color=\"red\" count={error()} />\n </div>\n )\n}\n\nconst QueryStatus: Component<QueryStatusProps> = (props) => {\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n\n const { colors, alpha } = tokens\n const t = (light: string, dark: string) => (theme() === 'dark' ? dark : light)\n\n let tagRef!: HTMLButtonElement\n\n const [mouseOver, setMouseOver] = createSignal(false)\n const [focused, setFocused] = createSignal(false)\n\n const showLabel = createMemo(() => {\n if (selectedQueryHash()) {\n if (panelWidth() < firstBreakpoint && panelWidth() > secondBreakpoint) {\n return false\n }\n }\n if (panelWidth() < secondBreakpoint) {\n return false\n }\n\n return true\n })\n\n return (\n <button\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n onMouseEnter={() => setMouseOver(true)}\n onMouseLeave={() => {\n setMouseOver(false)\n setFocused(false)\n }}\n disabled={showLabel()}\n ref={tagRef}\n aria-label={`${props.label}: ${props.count}`}\n class={cx(\n styles().queryStatusTag,\n !showLabel() &&\n css`\n cursor: pointer;\n &:hover {\n background: ${t(\n colors.gray[200],\n colors.darkGray[400],\n )}${alpha[80]};\n }\n `,\n 'tsqd-query-status-tag',\n `tsqd-query-status-tag-${props.label.toLowerCase()}`,\n )}\n {...(mouseOver() || focused()\n ? {\n 'aria-describedby': 'tsqd-status-tooltip',\n }\n : {})}\n >\n <Show when={!showLabel() && (mouseOver() || focused())}>\n <div\n role=\"tooltip\"\n id=\"tsqd-status-tooltip\"\n class={cx(styles().statusTooltip, 'tsqd-query-status-tooltip')}\n >\n {props.label}\n </div>\n </Show>\n <span\n aria-hidden=\"true\"\n class={cx(\n css`\n width: ${tokens.size[1.5]};\n height: ${tokens.size[1.5]};\n border-radius: ${tokens.border.radius.full};\n background-color: ${tokens.colors[props.color][500]};\n `,\n 'tsqd-query-status-tag-dot',\n )}\n />\n <Show when={showLabel()}>\n <span\n class={cx(\n styles().queryStatusTagLabel,\n 'tsqd-query-status-tag-label',\n )}\n >\n {props.label}\n </span>\n </Show>\n <span\n class={cx(\n styles().queryStatusCount,\n props.count > 0 &&\n props.color !== 'gray' &&\n css`\n background-color: ${t(\n colors[props.color][100],\n colors[props.color][900],\n )};\n color: ${t(colors[props.color][700], colors[props.color][300])};\n `,\n 'tsqd-query-status-tag-count',\n )}\n >\n {props.count}\n </span>\n </button>\n )\n}\n\nconst QueryDetails = () => {\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n\n const { colors } = tokens\n const t = (light: string, dark: string) => (theme() === 'dark' ? dark : light)\n\n const queryClient = useQueryDevtoolsContext().client\n\n const [restoringLoading, setRestoringLoading] = createSignal(false)\n const [dataMode, setDataMode] = createSignal<'view' | 'edit'>('view')\n const [dataEditError, setDataEditError] = createSignal<boolean>(false)\n\n const errorTypes = createMemo(() => {\n return useQueryDevtoolsContext().errorTypes || []\n })\n\n const activeQuery = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash()),\n false,\n )\n\n const activeQueryFresh = createSubscribeToQueryCacheBatcher((queryCache) => {\n return queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash())\n }, false)\n\n const activeQueryState = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash())?.state,\n false,\n )\n\n const activeQueryStateData = createSubscribeToQueryCacheBatcher(\n (queryCache) => {\n return queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash())?.state.data\n },\n false,\n )\n\n const statusLabel = createSubscribeToQueryCacheBatcher((queryCache) => {\n const query = queryCache()\n .getAll()\n .find((q) => q.queryHash === selectedQueryHash())\n if (!query) return 'inactive'\n return getQueryStatusLabel(query)\n })\n\n const queryStatus = createSubscribeToQueryCacheBatcher((queryCache) => {\n const query = queryCache()\n .getAll()\n .find((q) => q.queryHash === selectedQueryHash())\n if (!query) return 'pending'\n return query.state.status\n })\n\n const observerCount = createSubscribeToQueryCacheBatcher(\n (queryCache) =>\n queryCache()\n .getAll()\n .find((query) => query.queryHash === selectedQueryHash())\n ?.getObserversCount() ?? 0,\n )\n\n const color = createMemo(() => getQueryStatusColorByLabel(statusLabel()))\n\n const handleRefetch = () => {\n sendDevToolsEvent({ type: 'REFETCH', queryHash: activeQuery()?.queryHash })\n const promise = activeQuery()?.fetch()\n promise?.catch(() => {})\n }\n\n const triggerError = (errorType?: DevtoolsErrorType) => {\n const activeQueryVal = activeQuery()\n if (!activeQueryVal) return\n sendDevToolsEvent({\n type: 'TRIGGER_ERROR',\n queryHash: activeQueryVal.queryHash,\n metadata: { error: errorType?.name },\n })\n const error =\n errorType?.initializer(activeQueryVal) ??\n new Error('Unknown error from devtools')\n\n const __previousQueryOptions = activeQueryVal.options\n\n activeQueryVal.setState({\n data: undefined,\n status: 'error',\n error,\n fetchMeta: {\n ...activeQueryVal.state.fetchMeta,\n __previousQueryOptions,\n } as any,\n })\n }\n\n const restoreQueryAfterLoadingOrError = () => {\n const activeQueryVal = activeQuery()\n if (!activeQueryVal) return\n\n sendDevToolsEvent({\n type: 'RESTORE_LOADING',\n queryHash: activeQueryVal.queryHash,\n })\n const previousState = activeQueryVal.state\n const previousOptions = activeQueryVal.state.fetchMeta\n ? (activeQueryVal.state.fetchMeta as any).__previousQueryOptions\n : null\n\n activeQueryVal.cancel({ silent: true })\n activeQueryVal.setState({\n ...previousState,\n fetchStatus: 'idle',\n fetchMeta: null,\n })\n\n if (previousOptions) {\n activeQueryVal.fetch(previousOptions)\n }\n }\n\n createEffect(() => {\n if (statusLabel() !== 'fetching') {\n setRestoringLoading(false)\n }\n })\n\n const getQueryStatusColors = () => {\n if (color() === 'gray') {\n return css`\n background-color: ${t(colors[color()][200], colors[color()][700])};\n color: ${t(colors[color()][700], colors[color()][300])};\n border-color: ${t(colors[color()][400], colors[color()][600])};\n `\n }\n return css`\n background-color: ${t(colors[color()][100], colors[color()][900])};\n color: ${t(colors[color()][700], colors[color()][300])};\n border-color: ${t(colors[color()][400], colors[color()][600])};\n `\n }\n\n return (\n <Show when={activeQuery() && activeQueryState()}>\n <div\n class={cx(styles().detailsContainer, 'tsqd-query-details-container')}\n >\n <div\n role=\"heading\"\n aria-level=\"2\"\n class={cx(styles().detailsHeader, 'tsqd-query-details-header')}\n >\n Query Details\n </div>\n <div\n class={cx(\n styles().detailsBody,\n 'tsqd-query-details-summary-container',\n )}\n >\n <div class=\"tsqd-query-details-summary\">\n <pre>\n <code>{displayValue(activeQuery()!.queryKey, true)}</code>\n </pre>\n <span\n class={cx(styles().queryDetailsStatus, getQueryStatusColors())}\n role=\"status\"\n aria-live=\"polite\"\n >\n {statusLabel()}\n </span>\n </div>\n <div class=\"tsqd-query-details-observers-count\">\n <span>Observers:</span>\n <span>{observerCount()}</span>\n </div>\n <div class=\"tsqd-query-details-last-updated\">\n <span>Last Updated:</span>\n <span>\n {new Date(activeQueryState()!.dataUpdatedAt).toLocaleTimeString()}\n </span>\n </div>\n </div>\n <div\n role=\"heading\"\n aria-level=\"2\"\n class={cx(styles().detailsHeader, 'tsqd-query-details-header')}\n >\n Actions\n </div>\n <div\n class={cx(\n styles().actionsBody,\n 'tsqd-query-details-actions-container',\n )}\n >\n <button\n class={cx(\n css`\n color: ${t(colors.blue[600], colors.blue[400])};\n `,\n 'tsqd-query-details-actions-btn',\n 'tsqd-query-details-action-refetch',\n )}\n onClick={handleRefetch}\n disabled={statusLabel() === 'fetching'}\n >\n <span\n aria-hidden=\"true\"\n class={css`\n background-color: ${t(colors.blue[600], colors.blue[400])};\n `}\n ></span>\n Refetch\n </button>\n <button\n class={cx(\n css`\n color: ${t(colors.yellow[600], colors.yellow[400])};\n `,\n 'tsqd-query-details-actions-btn',\n 'tsqd-query-details-action-invalidate',\n )}\n onClick={() => {\n sendDevToolsEvent({\n type: 'INVALIDATE',\n queryHash: activeQuery()?.queryHash,\n })\n queryClient.invalidateQueries({\n queryKey: activeQuery()?.queryKey,\n exact: true,\n })\n }}\n disabled={queryStatus() === 'pending'}\n >\n <span\n aria-hidden=\"true\"\n class={css`\n background-color: ${t(colors.yellow[600], colors.yellow[400])};\n `}\n ></span>\n Invalidate\n </button>\n <button\n class={cx(\n css`\n color: ${t(colors.gray[600], colors.gray[300])};\n `,\n 'tsqd-query-details-actions-btn',\n 'tsqd-query-details-action-reset',\n )}\n onClick={() => {\n sendDevToolsEvent({\n type: 'RESET',\n queryHash: activeQuery()?.queryHash,\n })\n queryClient.resetQueries({\n queryKey: activeQuery()?.queryKey,\n exact: true,\n })\n }}\n disabled={queryStatus() === 'pending'}\n >\n <span\n aria-hidden=\"true\"\n class={css`\n background-color: ${t(colors.gray[600], colors.gray[400])};\n `}\n ></span>\n Reset\n </button>\n <button\n class={cx(\n css`\n color: ${t(colors.pink[500], colors.pink[400])};\n `,\n 'tsqd-query-details-actions-btn',\n 'tsqd-query-details-action-remove',\n )}\n onClick={() => {\n sendDevToolsEvent({\n type: 'REMOVE',\n queryHash: activeQuery()?.queryHash,\n })\n queryClient.removeQueries({\n queryKey: activeQuery()?.queryKey,\n exact: true,\n })\n setSelectedQueryHash(null)\n }}\n disabled={statusLabel() === 'fetching'}\n >\n <span\n aria-hidden=\"true\"\n class={css`\n background-color: ${t(colors.pink[500], colors.pink[400])};\n `}\n ></span>\n Remove\n </button>\n <button\n class={cx(\n css`\n color: ${t(colors.cyan[500], colors.cyan[400])};\n `,\n 'tsqd-query-details-actions-btn',\n 'tsqd-query-details-action-loading',\n )}\n disabled={restoringLoading()}\n onClick={() => {\n if (activeQuery()?.state.data === undefined) {\n setRestoringLoading(true)\n restoreQueryAfterLoadingOrError()\n } else {\n const activeQueryVal = activeQuery()\n if (!activeQueryVal) return\n sendDevToolsEvent({\n type: 'TRIGGER_LOADING',\n queryHash: activeQueryVal.queryHash,\n })\n const __previousQueryOptions = activeQueryVal.options\n // Trigger a fetch in order to trigger suspense as well.\n activeQueryVal.fetch({\n ...__previousQueryOptions,\n queryFn: () => {\n return new Promise(() => {\n // Never resolve\n })\n },\n gcTime: -1,\n })\n activeQueryVal.setState({\n data: undefined,\n status: 'pending',\n fetchMeta: {\n ...activeQueryVal.state.fetchMeta,\n __previousQueryOptions,\n } as any,\n })\n }\n }}\n >\n <span\n aria-hidden=\"true\"\n class={css`\n background-color: ${t(colors.cyan[500], colors.cyan[400])};\n `}\n ></span>\n {queryStatus() === 'pending' ? 'Restore' : 'Trigger'} Loading\n </button>\n <Show when={errorTypes().length === 0 || queryStatus() === 'error'}>\n <button\n class={cx(\n css`\n color: ${t(colors.red[500], colors.red[400])};\n `,\n 'tsqd-query-details-actions-btn',\n 'tsqd-query-details-action-error',\n )}\n onClick={() => {\n if (!activeQuery()!.state.error) {\n triggerError()\n } else {\n sendDevToolsEvent({\n type: 'RESTORE_ERROR',\n queryHash: activeQuery()?.queryHash,\n })\n queryClient.resetQueries({\n queryKey: activeQuery()?.queryKey,\n })\n }\n }}\n disabled={queryStatus() === 'pending'}\n >\n <span\n aria-hidden=\"true\"\n class={css`\n background-color: ${t(colors.red[500], colors.red[400])};\n `}\n ></span>\n {queryStatus() === 'error' ? 'Restore' : 'Trigger'} Error\n </button>\n </Show>\n <Show\n when={!(errorTypes().length === 0 || queryStatus() === 'error')}\n >\n <div\n class={cx(\n styles().actionsSelect,\n 'tsqd-query-details-actions-btn',\n 'tsqd-query-details-action-error-multiple',\n )}\n >\n <span\n aria-hidden=\"true\"\n class={css`\n background-color: ${tokens.colors.red[400]};\n `}\n ></span>\n Trigger Error\n <select\n disabled={queryStatus() === 'pending'}\n aria-label=\"Select error type to trigger\"\n onChange={(e) => {\n const errorType = errorTypes().find(\n (et) => et.name === e.currentTarget.value,\n )\n\n triggerError(errorType)\n }}\n >\n <option value=\"\" disabled selected></option>\n <For each={errorTypes()}>\n {(errorType) => (\n <option value={errorType.name}>{errorType.name}</option>\n )}\n </For>\n </select>\n <ChevronDown />\n </div>\n </Show>\n </div>\n <div\n role=\"heading\"\n aria-level=\"2\"\n class={cx(styles().detailsHeader, 'tsqd-query-details-header')}\n >\n Data {dataMode() === 'view' ? 'Explorer' : 'Editor'}\n </div>\n <Show when={dataMode() === 'view'}>\n <div\n style={{\n padding: tokens.size[2],\n }}\n class=\"tsqd-query-details-explorer-container tsqd-query-details-data-explorer\"\n >\n <Explorer\n label=\"Data\"\n defaultExpanded={['Data']}\n value={activeQueryStateData()}\n editable={true}\n onEdit={() => setDataMode('edit')}\n activeQuery={activeQuery()}\n />\n </div>\n </Show>\n <Show when={dataMode() === 'edit'}>\n <form\n class={cx(\n styles().devtoolsEditForm,\n 'tsqd-query-details-data-editor',\n )}\n onSubmit={(e) => {\n e.preventDefault()\n const formData = new FormData(e.currentTarget)\n const data = formData.get('data') as string\n try {\n const parsedData = JSON.parse(data)\n activeQuery()!.setState({\n ...activeQuery()!.state,\n data: parsedData,\n })\n setDataMode('view')\n } catch (error) {\n setDataEditError(true)\n }\n }}\n >\n <textarea\n name=\"data\"\n aria-label=\"Edit query data as JSON\"\n class={styles().devtoolsEditTextarea}\n onFocus={() => setDataEditError(false)}\n data-error={dataEditError()}\n value={JSON.stringify(activeQueryStateData(), null, 2)}\n ></textarea>\n <div class={styles().devtoolsEditFormActions}>\n <span class={styles().devtoolsEditFormError}>\n {dataEditError() ? 'Invalid Value' : ''}\n </span>\n <div class={styles().devtoolsEditFormActionContainer}>\n <button\n class={cx(\n styles().devtoolsEditFormAction,\n css`\n color: ${t(colors.gray[600], colors.gray[300])};\n `,\n )}\n type=\"button\"\n onClick={() => setDataMode('view')}\n >\n Cancel\n </button>\n <button\n class={cx(\n styles().devtoolsEditFormAction,\n css`\n color: ${t(colors.blue[600], colors.blue[400])};\n `,\n )}\n >\n Save\n </button>\n </div>\n </div>\n </form>\n </Show>\n <div\n role=\"heading\"\n aria-level=\"2\"\n class={cx(styles().detailsHeader, 'tsqd-query-details-header')}\n >\n Query Explorer\n </div>\n <div\n style={{\n padding: tokens.size[2],\n }}\n class=\"tsqd-query-details-explorer-container tsqd-query-details-query-explorer\"\n >\n <Explorer\n label=\"Query\"\n defaultExpanded={['Query', 'queryKey']}\n value={activeQueryFresh()}\n />\n </div>\n </div>\n </Show>\n )\n}\n\nconst MutationDetails = () => {\n const theme = useTheme()\n const css = useQueryDevtoolsContext().shadowDOMTarget\n ? goober.css.bind({ target: useQueryDevtoolsContext().shadowDOMTarget })\n : goober.css\n const styles = createMemo(() => {\n return theme() === 'dark' ? darkStyles(css) : lightStyles(css)\n })\n\n const { colors } = tokens\n const t = (light: string, dark: string) => (theme() === 'dark' ? dark : light)\n\n const isPaused = createSubscribeToMutationCacheBatcher((mutationCache) => {\n const mutations = mutationCache().getAll()\n const mutation = mutations.find(\n (m) => m.mutationId === selectedMutationId(),\n )\n if (!mutation) return false\n return mutation.state.isPaused\n })\n\n const status = createSubscribeToMutationCacheBatcher((mutationCache) => {\n const mutations = mutationCache().getAll()\n const mutation = mutations.find(\n (m) => m.mutationId === selectedMutationId(),\n )\n if (!mutation) return 'idle'\n return mutation.state.status\n })\n\n const color = createMemo(() =>\n getMutationStatusColor({\n isPaused: isPaused(),\n status: status(),\n }),\n )\n\n const activeMutation = createSubscribeToMutationCacheBatcher(\n (mutationCache) =>\n mutationCache()\n .getAll()\n .find((mutation) => mutation.mutationId === selectedMutationId()),\n false,\n )\n\n const getQueryStatusColors = () => {\n if (color() === 'gray') {\n return css`\n background-color: ${t(colors[color()][200], colors[color()][700])};\n color: ${t(colors[color()][700], colors[color()][300])};\n border-color: ${t(colors[color()][400], colors[color()][600])};\n `\n }\n return css`\n background-color: ${t(colors[color()][100], colors[color()][900])};\n color: ${t(colors[color()][700], colors[color()][300])};\n border-color: ${t(colors[color()][400], colors[color()][600])};\n `\n }\n\n return (\n <Show when={activeMutation()}>\n <div\n class={cx(styles().detailsContainer, 'tsqd-query-details-container')}\n >\n <div\n role=\"heading\"\n aria-level=\"2\"\n class={cx(styles().detailsHeader, 'tsqd-query-details-header')}\n >\n Mutation Details\n </div>\n <div\n class={cx(\n styles().detailsBody,\n 'tsqd-query-details-summary-container',\n )}\n >\n <div class=\"tsqd-query-details-summary\">\n <pre>\n <code>\n <Show\n when={activeMutation()!.options.mutationKey}\n fallback={'No mutationKey found'}\n >\n {displayValue(activeMutation()!.options.mutationKey, true)}\n </Show>\n </code>\n </pre>\n <span\n class={cx(styles().queryDetailsStatus, getQueryStatusColors())}\n role=\"status\"\n aria-live=\"polite\"\n >\n <Show when={color() === 'purple'}>pending</Show>\n <Show when={color() !== 'purple'}>{status()}</Show>\n </span>\n </div>\n <div class=\"tsqd-query-details-last-updated\">\n <span>Submitted At:</span>\n <span>\n {new Date(\n activeMutation()!.state.submittedAt,\n ).toLocaleTimeString()}\n </span>\n </div>\n </div>\n <div\n role=\"heading\"\n aria-level=\"2\"\n class={cx(styles().detailsHeader, 'tsqd-query-details-header')}\n >\n Variables Details\n </div>\n <div\n style={{\n padding: tokens.size[2],\n }}\n class=\"tsqd-query-details-explorer-container tsqd-query-details-query-explorer\"\n >\n <Explorer\n label=\"Variables\"\n defaultExpanded={['Variables']}\n value={activeMutation()!.state.variables}\n />\n </div>\n <div\n role=\"heading\"\n aria-level=\"2\"\n class={cx(styles().detailsHeader, 'tsqd-query-details-header')}\n >\n Context Details\n </div>\n <div\n style={{\n padding: tokens.size[2],\n }}\n class=\"tsqd-query-details-explorer-container tsqd-query-details-query-explorer\"\n >\n <Explorer\n label=\"Context\"\n defaultExpanded={['Context']}\n value={activeMutation()!.state.context}\n />\n </div>\n <div\n role=\"heading\"\n aria-level=\"2\"\n class={cx(styles().detailsHeader, 'tsqd-query-details-header')}\n >\n Data Explorer\n </div>\n <div\n style={{\n padding: tokens.size[2],\n }}\n class=\"tsqd-query-details-explorer-container tsqd-query-details-query-explorer\"\n >\n <Explorer\n label=\"Data\"\n defaultExpanded={['Data']}\n value={activeMutation()!.state.data}\n />\n </div>\n <div\n role=\"heading\"\n aria-level=\"2\"\n class={cx(styles().detailsHeader, 'tsqd-query-details-header')}\n >\n Mutations Explorer\n </div>\n <div\n style={{\n padding: tokens.size[2],\n }}\n class=\"tsqd-query-details-explorer-container tsqd-query-details-query-explorer\"\n >\n <Explorer\n label=\"Mutation\"\n defaultExpanded={['Mutation']}\n value={activeMutation()}\n />\n </div>\n </div>\n </Show>\n )\n}\n\nconst queryCacheMap = new Map<\n (q: Accessor<QueryCache>) => any,\n {\n setter: Setter<any>\n shouldUpdate: (event: QueryCacheNotifyEvent) => boolean\n }\n>()\n\nconst setupQueryCacheSubscription = () => {\n const queryCache = createMemo(() => {\n const client = useQueryDevtoolsContext().client\n return client.getQueryCache()\n })\n\n const unsubscribe = queryCache().subscribe((q) => {\n batch(() => {\n for (const [callback, value] of queryCacheMap.entries()) {\n if (!value.shouldUpdate(q)) continue\n value.setter(callback(queryCache))\n }\n })\n })\n\n onCleanup(() => {\n queryCacheMap.clear()\n unsubscribe()\n })\n\n return unsubscribe\n}\n\nconst createSubscribeToQueryCacheBatcher = <T,>(\n callback: (queryCache: Accessor<QueryCache>) => Exclude<T, Function>,\n equalityCheck: boolean = true,\n shouldUpdate: (event: QueryCacheNotifyEvent) => boolean = () => true,\n) => {\n const queryCache = createMemo(() => {\n const client = useQueryDevtoolsContext().client\n return client.getQueryCache()\n })\n\n const [value, setValue] = createSignal<T>(\n callback(queryCache),\n !equalityCheck ? { equals: false } : undefined,\n )\n\n createEffect(() => {\n setValue(callback(queryCache))\n })\n\n queryCacheMap.set(callback, {\n setter: setValue,\n shouldUpdate: shouldUpdate,\n })\n\n onCleanup(() => {\n queryCacheMap.delete(callback)\n })\n\n return value\n}\n\nconst mutationCacheMap = new Map<\n (q: Accessor<MutationCache>) => any,\n Setter<any>\n>()\n\nconst setupMutationCacheSubscription = () => {\n const mutationCache = createMemo(() => {\n const client = useQueryDevtoolsContext().client\n return client.getMutationCache()\n })\n\n const unsubscribe = mutationCache().subscribe(() => {\n for (const [callback, setter] of mutationCacheMap.entries()) {\n queueMicrotask(() => {\n setter(callback(mutationCache))\n })\n }\n })\n\n onCleanup(() => {\n mutationCacheMap.clear()\n unsubscribe()\n })\n\n return unsubscribe\n}\n\nconst createSubscribeToMutationCacheBatcher = <T,>(\n callback: (queryCache: Accessor<MutationCache>) => Exclude<T, Function>,\n equalityCheck: boolean = true,\n) => {\n const mutationCache = createMemo(() => {\n const client = useQueryDevtoolsContext().client\n return client.getMutationCache()\n })\n\n const [value, setValue] = createSignal<T>(\n callback(mutationCache),\n !equalityCheck ? { equals: false } : undefined,\n )\n\n createEffect(() => {\n setValue(callback(mutationCache))\n })\n\n mutationCacheMap.set(callback, setValue)\n\n onCleanup(() => {\n mutationCacheMap.delete(callback)\n })\n\n return value\n}\n\ntype DevToolsActionType =\n | 'REFETCH'\n | 'INVALIDATE'\n | 'RESET'\n | 'REMOVE'\n | 'TRIGGER_ERROR'\n | 'RESTORE_ERROR'\n | 'TRIGGER_LOADING'\n | 'RESTORE_LOADING'\n | 'CLEAR_MUTATION_CACHE'\n | 'CLEAR_QUERY_CACHE'\n\nconst DEV_TOOLS_EVENT = '@tanstack/query-devtools-event'\n\nconst sendDevToolsEvent = ({\n type,\n queryHash,\n metadata,\n}: {\n type: DevToolsActionType\n queryHash?: string\n metadata?: Record<string, unknown>\n}) => {\n const event = new CustomEvent(DEV_TOOLS_EVENT, {\n detail: { type, queryHash, metadata },\n bubbles: true,\n cancelable: true,\n })\n window.dispatchEvent(event)\n}\n\nconst stylesFactory = (\n theme: 'light' | 'dark',\n css: (typeof goober)['css'],\n) => {\n const { colors, font, size, alpha, shadow, border } = tokens\n\n const t = (light: string, dark: string) => (theme === 'light' ? light : dark)\n\n return {\n devtoolsBtn: css`\n z-index: 100000;\n position: fixed;\n padding: 4px;\n text-align: left;\n\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 9999px;\n box-shadow: ${shadow.md()};\n overflow: hidden;\n\n & div {\n position: absolute;\n top: -8px;\n left: -8px;\n right: -8px;\n bottom: -8px;\n border-radius: 9999px;\n -webkit-transform: translateZ(0);\n transform: translateZ(0);\n\n & svg {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n filter: blur(6px) saturate(1.2) contrast(1.1);\n }\n\n &:focus-within {\n outline-offset: 2px;\n outline: 3px solid ${colors.green[600]};\n }\n\n & button {\n position: relative;\n z-index: 1;\n padding: 0;\n border-radius: 9999px;\n background-color: transparent;\n border: none;\n height: 40px;\n display: flex;\n width: 40px;\n overflow: hidden;\n cursor: pointer;\n outline: none;\n & svg {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n }\n `,\n panel: css`\n position: fixed;\n z-index: 9999;\n display: flex;\n gap: ${tokens.size[0.5]};\n & * {\n box-sizing: border-box;\n text-transform: none;\n }\n\n & *::-webkit-scrollbar {\n width: 7px;\n }\n\n & *::-webkit-scrollbar-track {\n background: transparent;\n }\n\n & *::-webkit-scrollbar-thumb {\n background: ${t(colors.gray[300], colors.darkGray[200])};\n }\n\n & *::-webkit-scrollbar-thumb:hover {\n background: ${t(colors.gray[400], colors.darkGray[300])};\n }\n `,\n parentPanel: css`\n z-index: 9999;\n display: flex;\n height: 100%;\n gap: ${tokens.size[0.5]};\n & * {\n box-sizing: border-box;\n text-transform: none;\n }\n\n & *::-webkit-scrollbar {\n width: 7px;\n }\n\n & *::-webkit-scrollbar-track {\n background: transparent;\n }\n\n & *::-webkit-scrollbar-thumb {\n background: ${t(colors.gray[300], colors.darkGray[200])};\n }\n\n & *::-webkit-scrollbar-thumb:hover {\n background: ${t(colors.gray[400], colors.darkGray[300])};\n }\n `,\n 'devtoolsBtn-position-bottom-right': css`\n bottom: 12px;\n right: 12px;\n `,\n 'devtoolsBtn-position-bottom-left': css`\n bottom: 12px;\n left: 12px;\n `,\n 'devtoolsBtn-position-top-left': css`\n top: 12px;\n left: 12px;\n `,\n 'devtoolsBtn-position-top-right': css`\n top: 12px;\n right: 12px;\n `,\n 'devtoolsBtn-position-relative': css`\n position: relative;\n `,\n 'panel-position-top': css`\n top: 0;\n right: 0;\n left: 0;\n max-height: 90%;\n min-height: ${size[14]};\n border-bottom: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n `,\n 'panel-position-bottom': css`\n bottom: 0;\n right: 0;\n left: 0;\n max-height: 90%;\n min-height: ${size[14]};\n border-top: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n `,\n 'panel-position-right': css`\n bottom: 0;\n right: 0;\n top: 0;\n border-left: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n max-width: 90%;\n `,\n 'panel-position-left': css`\n bottom: 0;\n left: 0;\n top: 0;\n border-right: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n max-width: 90%;\n `,\n closeBtn: css`\n position: absolute;\n cursor: pointer;\n z-index: 5;\n display: flex;\n align-items: center;\n justify-content: center;\n outline: none;\n background-color: ${t(colors.gray[50], colors.darkGray[700])};\n &:hover {\n background-color: ${t(colors.gray[200], colors.darkGray[500])};\n }\n &:focus-visible {\n outline: 2px solid ${colors.blue[600]};\n }\n & svg {\n color: ${t(colors.gray[600], colors.gray[400])};\n width: ${size[2]};\n height: ${size[2]};\n }\n `,\n 'closeBtn-position-top': css`\n bottom: 0;\n right: ${size[2]};\n transform: translate(0, 100%);\n border-right: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n border-left: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n border-top: none;\n border-bottom: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n border-radius: 0px 0px ${border.radius.sm} ${border.radius.sm};\n padding: ${size[0.5]} ${size[1.5]} ${size[1]} ${size[1.5]};\n\n &::after {\n content: ' ';\n position: absolute;\n bottom: 100%;\n left: -${size[2.5]};\n height: ${size[1.5]};\n width: calc(100% + ${size[5]});\n }\n\n & svg {\n transform: rotate(180deg);\n }\n `,\n 'closeBtn-position-bottom': css`\n top: 0;\n right: ${size[2]};\n transform: translate(0, -100%);\n border-right: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n border-left: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n border-top: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n border-bottom: none;\n border-radius: ${border.radius.sm} ${border.radius.sm} 0px 0px;\n padding: ${size[1]} ${size[1.5]} ${size[0.5]} ${size[1.5]};\n\n &::after {\n content: ' ';\n position: absolute;\n top: 100%;\n left: -${size[2.5]};\n height: ${size[1.5]};\n width: calc(100% + ${size[5]});\n }\n `,\n 'closeBtn-position-right': css`\n bottom: ${size[2]};\n left: 0;\n transform: translate(-100%, 0);\n border-right: none;\n border-left: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n border-top: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n border-bottom: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n border-radius: ${border.radius.sm} 0px 0px ${border.radius.sm};\n padding: ${size[1.5]} ${size[0.5]} ${size[1.5]} ${size[1]};\n\n &::after {\n content: ' ';\n position: absolute;\n left: 100%;\n height: calc(100% + ${size[5]});\n width: ${size[1.5]};\n }\n\n & svg {\n transform: rotate(-90deg);\n }\n `,\n 'closeBtn-position-left': css`\n bottom: ${size[2]};\n right: 0;\n transform: translate(100%, 0);\n border-left: none;\n border-right: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n border-top: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n border-bottom: ${t(colors.gray[400], colors.darkGray[300])} 1px solid;\n border-radius: 0px ${border.radius.sm} ${border.radius.sm} 0px;\n padding: ${size[1.5]} ${size[1]} ${size[1.5]} ${size[0.5]};\n\n &::after {\n content: ' ';\n position: absolute;\n right: 100%;\n height: calc(100% + ${size[5]});\n width: ${size[1.5]};\n }\n\n & svg {\n transform: rotate(90deg);\n }\n `,\n queriesContainer: css`\n flex: 1 1 700px;\n background-color: ${t(colors.gray[50], colors.darkGray[700])};\n display: flex;\n flex-direction: column;\n & * {\n font-family: ui-sans-serif, Inter, system-ui, sans-serif, sans-serif;\n }\n `,\n dragHandle: css`\n position: absolute;\n transition: background-color 0.125s ease;\n &:hover {\n background-color: ${colors.purple[400]}${t('', alpha[90])};\n }\n &:focus {\n outline: none;\n background-color: ${colors.purple[400]}${t('', alpha[90])};\n }\n &:focus-visible {\n outline: 2px solid ${colors.blue[800]};\n outline-offset: -2px;\n background-color: ${colors.purple[400]}${t('', alpha[90])};\n }\n z-index: 4;\n `,\n 'dragHandle-position-top': css`\n bottom: 0;\n width: 100%;\n height: 3px;\n cursor: ns-resize;\n `,\n 'dragHandle-position-bottom': css`\n top: 0;\n width: 100%;\n height: 3px;\n cursor: ns-resize;\n `,\n 'dragHandle-position-right': css`\n left: 0;\n width: 3px;\n height: 100%;\n cursor: ew-resize;\n `,\n 'dragHandle-position-left': css`\n right: 0;\n width: 3px;\n height: 100%;\n cursor: ew-resize;\n `,\n row: css`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: ${tokens.size[2]} ${tokens.size[2.5]};\n gap: ${tokens.size[2.5]};\n border-bottom: ${t(colors.gray[300], colors.darkGray[500])} 1px solid;\n align-items: center;\n & > button {\n padding: 0;\n background: transparent;\n border: none;\n display: flex;\n gap: ${size[0.5]};\n flex-direction: column;\n }\n `,\n logoAndToggleContainer: css`\n display: flex;\n gap: ${tokens.size[3]};\n align-items: center;\n `,\n logo: css`\n cursor: pointer;\n display: flex;\n flex-direction: column;\n background-color: transparent;\n border: none;\n gap: ${tokens.size[0.5]};\n padding: 0px;\n &:hover {\n opacity: 0.7;\n }\n &:focus-visible {\n outline-offset: 4px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n tanstackLogo: css`\n font-size: ${font.size.md};\n font-weight: ${font.weight.bold};\n line-height: ${font.lineHeight.xs};\n white-space: nowrap;\n color: ${t(colors.gray[600], colors.gray[300])};\n `,\n queryFlavorLogo: css`\n font-weight: ${font.weight.semibold};\n font-size: ${font.size.xs};\n background: linear-gradient(\n to right,\n ${t('#ea4037, #ff9b11', '#dd524b, #e9a03b')}\n );\n background-clip: text;\n -webkit-background-clip: text;\n line-height: 1;\n -webkit-text-fill-color: transparent;\n white-space: nowrap;\n `,\n queryStatusContainer: css`\n display: flex;\n gap: ${tokens.size[2]};\n height: min-content;\n `,\n queryStatusTag: css`\n display: flex;\n gap: ${tokens.size[1.5]};\n box-sizing: border-box;\n height: ${tokens.size[6.5]};\n background: ${t(colors.gray[50], colors.darkGray[500])};\n color: ${t(colors.gray[700], colors.gray[300])};\n border-radius: ${tokens.border.radius.sm};\n font-size: ${font.size.sm};\n padding: ${tokens.size[1]};\n padding-left: ${tokens.size[1.5]};\n align-items: center;\n font-weight: ${font.weight.medium};\n border: ${t('1px solid ' + colors.gray[300], '1px solid transparent')};\n user-select: none;\n position: relative;\n &:focus-visible {\n outline-offset: 2px;\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n queryStatusTagLabel: css`\n font-size: ${font.size.xs};\n `,\n queryStatusCount: css`\n font-size: ${font.size.xs};\n padding: 0 5px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${t(colors.gray[500], colors.gray[400])};\n background-color: ${t(colors.gray[200], colors.darkGray[300])};\n border-radius: 2px;\n font-variant-numeric: tabular-nums;\n height: ${tokens.size[4.5]};\n `,\n statusTooltip: css`\n position: absolute;\n z-index: 1;\n background-color: ${t(colors.gray[50], colors.darkGray[500])};\n top: 100%;\n left: 50%;\n transform: translate(-50%, calc(${tokens.size[2]}));\n padding: ${tokens.size[0.5]} ${tokens.size[2]};\n border-radius: ${tokens.border.radius.sm};\n font-size: ${font.size.xs};\n border: 1px solid ${t(colors.gray[400], colors.gray[600])};\n color: ${t(colors['gray'][600], colors['gray'][300])};\n\n &::before {\n top: 0px;\n content: ' ';\n display: block;\n left: 50%;\n transform: translate(-50%, -100%);\n position: absolute;\n border-color: transparent transparent\n ${t(colors.gray[400], colors.gray[600])} transparent;\n border-style: solid;\n border-width: 7px;\n /* transform: rotate(180deg); */\n }\n\n &::after {\n top: 0px;\n content: ' ';\n display: block;\n left: 50%;\n transform: translate(-50%, calc(-100% + 2px));\n position: absolute;\n border-color: transparent transparent\n ${t(colors.gray[100], colors.darkGray[500])} transparent;\n border-style: solid;\n border-width: 7px;\n }\n `,\n filtersContainer: css`\n display: flex;\n gap: ${tokens.size[2]};\n & > button {\n cursor: pointer;\n padding: ${tokens.size[0.5]} ${tokens.size[1.5]} ${tokens.size[0.5]}\n ${tokens.size[2]};\n border-radius: ${tokens.border.radius.sm};\n background-color: ${t(colors.gray[100], colors.darkGray[400])};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[200])};\n color: ${t(colors.gray[700], colors.gray[300])};\n font-size: ${font.size.xs};\n display: flex;\n align-items: center;\n line-height: ${font.lineHeight.sm};\n gap: ${tokens.size[1.5]};\n max-width: 160px;\n &:focus-visible {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n & svg {\n width: ${tokens.size[3]};\n height: ${tokens.size[3]};\n color: ${t(colors.gray[500], colors.gray[400])};\n }\n }\n `,\n filterInput: css`\n padding: ${size[0.5]} ${size[2]};\n border-radius: ${tokens.border.radius.sm};\n background-color: ${t(colors.gray[100], colors.darkGray[400])};\n display: flex;\n box-sizing: content-box;\n align-items: center;\n gap: ${tokens.size[1.5]};\n max-width: 160px;\n min-width: 100px;\n border: 1px solid ${t(colors.gray[300], colors.darkGray[200])};\n height: min-content;\n color: ${t(colors.gray[600], colors.gray[400])};\n & > svg {\n width: ${size[3]};\n height: ${size[3]};\n }\n & input {\n font-size: ${font.size.xs};\n width: 100%;\n background-color: ${t(colors.gray[100], colors.darkGray[400])};\n border: none;\n padding: 0;\n line-height: ${font.lineHeight.sm};\n color: ${t(colors.gray[700], colors.gray[300])};\n &::placeholder {\n color: ${t(colors.gray[700], colors.gray[300])};\n }\n &:focus {\n outline: none;\n }\n }\n\n &:focus-within {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n filterSelect: css`\n padding: ${tokens.size[0.5]} ${tokens.size[2]};\n border-radius: ${tokens.border.radius.sm};\n background-color: ${t(colors.gray[100], colors.darkGray[400])};\n display: flex;\n align-items: center;\n gap: ${tokens.size[1.5]};\n box-sizing: content-box;\n max-width: 160px;\n border: 1px solid ${t(colors.gray[300], colors.darkGray[200])};\n height: min-content;\n & > svg {\n color: ${t(colors.gray[600], colors.gray[400])};\n width: ${tokens.size[2]};\n height: ${tokens.size[2]};\n }\n & > select {\n appearance: none;\n color: ${t(colors.gray[700], colors.gray[300])};\n min-width: 100px;\n line-height: ${font.lineHeight.sm};\n font-size: ${font.size.xs};\n background-color: ${t(colors.gray[100], colors.darkGray[400])};\n border: none;\n &:focus {\n outline: none;\n }\n }\n &:focus-within {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n actionsContainer: css`\n display: flex;\n gap: ${tokens.size[2]};\n `,\n actionsBtn: css`\n border-radius: ${tokens.border.radius.sm};\n background-color: ${t(colors.gray[100], colors.darkGray[400])};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[200])};\n width: ${tokens.size[6.5]};\n height: ${tokens.size[6.5]};\n justify-content: center;\n display: flex;\n align-items: center;\n gap: ${tokens.size[1.5]};\n max-width: 160px;\n cursor: pointer;\n padding: 0;\n &:hover {\n background-color: ${t(colors.gray[200], colors.darkGray[500])};\n }\n & svg {\n color: ${t(colors.gray[700], colors.gray[300])};\n width: ${tokens.size[3]};\n height: ${tokens.size[3]};\n }\n &:focus-visible {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n `,\n actionsBtnOffline: css`\n & svg {\n stroke: ${t(colors.yellow[700], colors.yellow[500])};\n fill: ${t(colors.yellow[700], colors.yellow[500])};\n }\n `,\n overflowQueryContainer: css`\n flex: 1;\n overflow-y: auto;\n & > div {\n display: flex;\n flex-direction: column;\n }\n `,\n queryRow: css`\n display: flex;\n align-items: center;\n padding: 0;\n border: none;\n cursor: pointer;\n color: ${t(colors.gray[700], colors.gray[300])};\n background-color: ${t(colors.gray[50], colors.darkGray[700])};\n line-height: 1;\n &:focus {\n outline: none;\n }\n &:focus-visible {\n outline-offset: -2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n &:hover .tsqd-query-hash {\n background-color: ${t(colors.gray[200], colors.darkGray[600])};\n }\n\n & .tsqd-query-observer-count {\n padding: 0 ${tokens.size[1]};\n user-select: none;\n min-width: ${tokens.size[6.5]};\n align-self: stretch;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: ${font.size.xs};\n font-weight: ${font.weight.medium};\n border-bottom-width: 1px;\n border-bottom-style: solid;\n border-bottom: 1px solid ${t(colors.gray[300], colors.darkGray[700])};\n }\n & .tsqd-query-hash {\n user-select: text;\n font-size: ${font.size.xs};\n display: flex;\n align-items: center;\n min-height: ${tokens.size[6]};\n flex: 1;\n padding: ${tokens.size[1]} ${tokens.size[2]};\n font-family:\n ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,\n 'Liberation Mono', 'Courier New', monospace;\n border-bottom: 1px solid ${t(colors.gray[300], colors.darkGray[400])};\n text-align: left;\n text-overflow: clip;\n word-break: break-word;\n }\n\n & .tsqd-query-disabled-indicator {\n align-self: stretch;\n display: flex;\n align-items: center;\n padding: 0 ${tokens.size[2]};\n color: ${t(colors.gray[800], colors.gray[300])};\n background-color: ${t(colors.gray[300], colors.darkGray[600])};\n border-bottom: 1px solid ${t(colors.gray[300], colors.darkGray[400])};\n font-size: ${font.size.xs};\n }\n\n & .tsqd-query-static-indicator {\n align-self: stretch;\n display: flex;\n align-items: center;\n padding: 0 ${tokens.size[2]};\n color: ${t(colors.teal[800], colors.teal[300])};\n background-color: ${t(colors.teal[100], colors.teal[900])};\n border-bottom: 1px solid ${t(colors.teal[300], colors.teal[700])};\n font-size: ${font.size.xs};\n }\n `,\n selectedQueryRow: css`\n background-color: ${t(colors.gray[200], colors.darkGray[500])};\n `,\n detailsContainer: css`\n flex: 1 1 700px;\n background-color: ${t(colors.gray[50], colors.darkGray[700])};\n color: ${t(colors.gray[700], colors.gray[300])};\n font-family: ui-sans-serif, Inter, system-ui, sans-serif, sans-serif;\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n display: flex;\n text-align: left;\n `,\n detailsHeader: css`\n font-family: ui-sans-serif, Inter, system-ui, sans-serif, sans-serif;\n position: sticky;\n top: 0;\n z-index: 2;\n background-color: ${t(colors.gray[200], colors.darkGray[600])};\n padding: ${tokens.size[1.5]} ${tokens.size[2]};\n font-weight: ${font.weight.medium};\n font-size: ${font.size.xs};\n line-height: ${font.lineHeight.xs};\n text-align: left;\n `,\n detailsBody: css`\n margin: ${tokens.size[1.5]} 0px ${tokens.size[2]} 0px;\n & > div {\n display: flex;\n align-items: stretch;\n padding: 0 ${tokens.size[2]};\n line-height: ${font.lineHeight.sm};\n justify-content: space-between;\n & > span {\n font-size: ${font.size.xs};\n }\n & > span:nth-child(2) {\n font-variant-numeric: tabular-nums;\n }\n }\n\n & > div:first-child {\n margin-bottom: ${tokens.size[1.5]};\n }\n\n & code {\n font-family:\n ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,\n 'Liberation Mono', 'Courier New', monospace;\n margin: 0;\n font-size: ${font.size.xs};\n line-height: ${font.lineHeight.xs};\n max-width: 100%;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n word-break: break-word;\n }\n\n & pre {\n margin: 0;\n display: flex;\n align-items: center;\n }\n `,\n queryDetailsStatus: css`\n border: 1px solid ${colors.darkGray[200]};\n border-radius: ${tokens.border.radius.sm};\n font-weight: ${font.weight.medium};\n padding: ${tokens.size[1]} ${tokens.size[2.5]};\n `,\n actionsBody: css`\n flex-wrap: wrap;\n margin: ${tokens.size[2]} 0px ${tokens.size[2]} 0px;\n display: flex;\n gap: ${tokens.size[2]};\n padding: 0px ${tokens.size[2]};\n & > button {\n font-family: ui-sans-serif, Inter, system-ui, sans-serif, sans-serif;\n font-size: ${font.size.xs};\n padding: ${tokens.size[1]} ${tokens.size[2]};\n display: flex;\n border-radius: ${tokens.border.radius.sm};\n background-color: ${t(colors.gray[100], colors.darkGray[600])};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[400])};\n align-items: center;\n gap: ${tokens.size[2]};\n font-weight: ${font.weight.medium};\n line-height: ${font.lineHeight.xs};\n cursor: pointer;\n &:focus-visible {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n &:hover {\n background-color: ${t(colors.gray[200], colors.darkGray[500])};\n }\n\n &:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n & > span {\n width: ${size[1.5]};\n height: ${size[1.5]};\n border-radius: ${tokens.border.radius.full};\n }\n }\n `,\n actionsSelect: css`\n font-size: ${font.size.xs};\n padding: ${tokens.size[0.5]} ${tokens.size[2]};\n display: flex;\n border-radius: ${tokens.border.radius.sm};\n overflow: hidden;\n background-color: ${t(colors.gray[100], colors.darkGray[600])};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[400])};\n align-items: center;\n gap: ${tokens.size[2]};\n font-weight: ${font.weight.medium};\n line-height: ${font.lineHeight.sm};\n color: ${t(colors.red[500], colors.red[400])};\n cursor: pointer;\n position: relative;\n &:hover {\n background-color: ${t(colors.gray[200], colors.darkGray[500])};\n }\n & > span {\n width: ${size[1.5]};\n height: ${size[1.5]};\n border-radius: ${tokens.border.radius.full};\n }\n &:focus-within {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n & select {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n appearance: none;\n background-color: transparent;\n border: none;\n color: transparent;\n outline: none;\n }\n\n & svg path {\n stroke: ${tokens.colors.red[400]};\n }\n & svg {\n width: ${tokens.size[2]};\n height: ${tokens.size[2]};\n }\n `,\n settingsMenu: css`\n display: flex;\n & * {\n font-family: ui-sans-serif, Inter, system-ui, sans-serif, sans-serif;\n }\n flex-direction: column;\n gap: ${size[0.5]};\n border-radius: ${tokens.border.radius.sm};\n border: 1px solid ${t(colors.gray[300], colors.gray[700])};\n background-color: ${t(colors.gray[50], colors.darkGray[600])};\n font-size: ${font.size.xs};\n color: ${t(colors.gray[700], colors.gray[300])};\n z-index: 99999;\n min-width: 120px;\n padding: ${size[0.5]};\n `,\n settingsSubTrigger: css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-radius: ${tokens.border.radius.xs};\n padding: ${tokens.size[1]} ${tokens.size[1]};\n cursor: pointer;\n background-color: transparent;\n border: none;\n color: ${t(colors.gray[700], colors.gray[300])};\n & svg {\n color: ${t(colors.gray[600], colors.gray[400])};\n transform: rotate(-90deg);\n width: ${tokens.size[2]};\n height: ${tokens.size[2]};\n }\n &:hover {\n background-color: ${t(colors.gray[200], colors.darkGray[500])};\n }\n &:focus-visible {\n outline-offset: 2px;\n outline: 2px solid ${colors.blue[800]};\n }\n &.data-disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n `,\n settingsMenuHeader: css`\n padding: ${tokens.size[1]} ${tokens.size[1]};\n font-weight: ${font.weight.medium};\n border-bottom: 1px solid ${t(colors.gray[300], colors.darkGray[400])};\n color: ${t(colors.gray[500], colors.gray[400])};\n font-size: ${font.size['xs']};\n `,\n settingsSubButton: css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n color: ${t(colors.gray[700], colors.gray[300])};\n font-size: ${font.size['xs']};\n border-radius: ${tokens.border.radius.xs};\n padding: ${tokens.size[1]} ${tokens.size[1]};\n cursor: pointer;\n background-color: transparent;\n border: none;\n & svg {\n color: ${t(colors.gray[600], colors.gray[400])};\n }\n &:hover {\n background-color: ${t(colors.gray[200], colors.darkGray[500])};\n }\n &:focus-visible {\n outline-offset: 2px;\n outline: 2px solid ${colors.blue[800]};\n }\n &[data-checked] {\n background-color: ${t(colors.purple[100], colors.purple[900])};\n color: ${t(colors.purple[700], colors.purple[300])};\n & svg {\n color: ${t(colors.purple[700], colors.purple[300])};\n }\n &:hover {\n background-color: ${t(colors.purple[100], colors.purple[900])};\n }\n }\n `,\n viewToggle: css`\n border-radius: ${tokens.border.radius.sm};\n background-color: ${t(colors.gray[200], colors.darkGray[600])};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[200])};\n display: flex;\n padding: 0;\n font-size: ${font.size.xs};\n color: ${t(colors.gray[700], colors.gray[300])};\n overflow: hidden;\n\n &:has(:focus-visible) {\n outline: 2px solid ${colors.blue[800]};\n }\n\n & .tsqd-radio-toggle {\n opacity: 0.5;\n display: flex;\n & label {\n display: flex;\n align-items: center;\n cursor: pointer;\n line-height: ${font.lineHeight.md};\n }\n\n & label:hover {\n background-color: ${t(colors.gray[100], colors.darkGray[500])};\n }\n }\n\n & > [data-checked] {\n opacity: 1;\n background-color: ${t(colors.gray[100], colors.darkGray[400])};\n & label:hover {\n background-color: ${t(colors.gray[100], colors.darkGray[400])};\n }\n }\n\n & .tsqd-radio-toggle:first-child {\n & label {\n padding: 0 ${tokens.size[1.5]} 0 ${tokens.size[2]};\n }\n border-right: 1px solid ${t(colors.gray[300], colors.darkGray[200])};\n }\n\n & .tsqd-radio-toggle:nth-child(2) {\n & label {\n padding: 0 ${tokens.size[2]} 0 ${tokens.size[1.5]};\n }\n }\n `,\n devtoolsEditForm: css`\n padding: ${size[2]};\n & > [data-error='true'] {\n outline: 2px solid ${t(colors.red[200], colors.red[800])};\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n }\n `,\n devtoolsEditTextarea: css`\n width: 100%;\n max-height: 500px;\n font-family: 'Fira Code', monospace;\n font-size: ${font.size.xs};\n border-radius: ${border.radius.sm};\n field-sizing: content;\n padding: ${size[2]};\n background-color: ${t(colors.gray[100], colors.darkGray[800])};\n color: ${t(colors.gray[900], colors.gray[100])};\n border: 1px solid ${t(colors.gray[200], colors.gray[700])};\n resize: none;\n &:focus {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${t(colors.blue[200], colors.blue[800])};\n }\n `,\n devtoolsEditFormActions: css`\n display: flex;\n justify-content: space-between;\n gap: ${size[2]};\n align-items: center;\n padding-top: ${size[1]};\n font-size: ${font.size.xs};\n `,\n devtoolsEditFormError: css`\n color: ${t(colors.red[700], colors.red[500])};\n `,\n devtoolsEditFormActionContainer: css`\n display: flex;\n gap: ${size[2]};\n `,\n devtoolsEditFormAction: css`\n font-family: ui-sans-serif, Inter, system-ui, sans-serif, sans-serif;\n font-size: ${font.size.xs};\n padding: ${size[1]} ${tokens.size[2]};\n display: flex;\n border-radius: ${border.radius.sm};\n background-color: ${t(colors.gray[100], colors.darkGray[600])};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[400])};\n align-items: center;\n gap: ${size[2]};\n font-weight: ${font.weight.medium};\n line-height: ${font.lineHeight.xs};\n cursor: pointer;\n &:focus-visible {\n outline-offset: 2px;\n border-radius: ${border.radius.xs};\n outline: 2px solid ${colors.blue[800]};\n }\n &:hover {\n background-color: ${t(colors.gray[200], colors.darkGray[500])};\n }\n\n &:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n `,\n }\n}\n\nconst lightStyles = (css: (typeof goober)['css']) => stylesFactory('light', css)\nconst darkStyles = (css: (typeof goober)['css']) => stylesFactory('dark', css)\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"mappings":"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H,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,KACH,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,KACH,EAAG,KACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,IACJ,EAAG,IACH,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,EAAG,IAC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"}