plainframe-ui 0.1.8 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/theme/theme.ts","../src/theme/ThemeProvider.tsx","../src/utils/focusRing.ts","../src/components/Accordion.tsx","../src/components/AccordionSummary.tsx","../src/components/AccordionDetails.tsx","../src/components/AccordionGroup.tsx","../src/components/ActionBar.tsx","../src/components/Alert.tsx","../src/components/TextField.tsx","../src/components/Menu.tsx","../src/components/DropdownMenu.tsx","../src/components/Switch.tsx","../src/components/Checkbox.tsx","../src/components/MenuItems.tsx","../src/components/Container.tsx","../src/components/Card.tsx","../src/components/Autocomplete.tsx","../src/components/Avatar.tsx","../src/components/AvatarGroup.tsx","../src/components/Badge.tsx","../src/components/Backdrop.tsx","../src/components/Breadcrumbs.tsx","../src/components/Progress.tsx","../src/components/Button.tsx","../src/components/ButtonGroup.tsx","../src/components/CardGroup.tsx","../src/components/Chip.tsx","../src/components/CodeField.tsx","../src/components/ColorPatch.tsx","../src/components/ContextZone.tsx","../src/components/Divider.tsx","../src/components/Drawer.tsx","../src/components/Fade.tsx","../src/components/Flex.tsx","../src/components/Grow.tsx","../src/components/Typography.tsx","../src/components/Image.tsx","../src/components/ImageStack.tsx","../src/components/Kbd.tsx","../src/components/Slide.tsx","../src/components/Modal.tsx","../src/components/Pagination.tsx","../src/components/Popover.tsx","../src/components/Quote.tsx","../src/components/RadioGroup.tsx","../src/components/Rotate.tsx","../src/components/Select.tsx","../src/components/Skeleton.tsx","../src/components/Slider.tsx","../src/components/Stepper.tsx","../src/components/Swap.tsx","../src/components/Tabs.tsx","../src/components/TextArea.tsx","../src/components/Toast.tsx","../src/components/Tooltip.tsx","../src/theme/CssBaseline.tsx"],"names":["spacing","radius","fontSizes","componentHeights","fonts","neutralLight","neutralDark","paletteLight","paletteDark","withAliases","p","surfaceFromNeutral","mode","n","textLight","textDark","colorKeys","makeOnColors","defaults","acc","k","defaultLightTheme","defaultDarkTheme","createStore","initial","v","subs","nv","f","aliasOf","resolveAlias","mirrorOnColors","on","out","alias","target","ModeStoreContext","React","PrimaryStoreContext","ModeActionsContext","PrimaryActionsContext","BaseResolvedContext","usePlainframeUITheme","useEmotionTheme","useColorModeValue","s","useColorMode","useContext","usePrimary","primary","setPrimary","usePrimitives","selector","base","raw","theme","chosen","onPrim","onColorFor","mergeTheme","patch","hex","m","r","g","b","x","ensureTag","ref","id","el","selectorFor","scope","buildVarPairs","primaryKey","normalize","name","scale","shade","val","focusShade","onPrimary","renderVars","ThemeProvider","children","initialMode","storageKey","scoped","basePrimary","modeStore","primaryStore","wrapperRef","useRef","scopeDepthRef","scopeId","depth","node","lightResolved","useMemo","withLight","key","selected","mergedOn","nextSurface","nextText","darkResolved","withDark","varsRef","guardRef","useIsoInsertionEffect","initialModeRef","saved","didInitRef","runSwitchGuard","useCallback","sel","keyLight","keyDark","lightCss","darkCss","host","setActiveScope","attachActiveScopeListeners","opts","mark","claimIfActiveScope","act","fresh","pk","cssVars","looksLikePortalRoot","role","cs","watchPortals","mo","recs","detachActive","disconnectMO","applyVarsToWrapper","applyVarsToOwnedPortals","setMode","prev","toggleMode","content","jsx","EmotionThemeProvider","toVarTheme","src","mapObj","o","fontSz","heights","neutral","palette","sh","pickScaleKey","pal","pickFocusColors","colorKey","useFocusRing","css","soft","main","outlineW","haloW","offset","focusSel","useFocusWithinRing","withinSel","toLen","getSlot","Accordion","controlledExpanded","defaultExpanded","onChange","className","variant","disabled","width","userCss","detailsId","useId","T","borderW","borderWStr","isControlled","uncontrolled","setUncontrolled","useState","expanded","focusRing","maxH","setMaxH","ready","setReady","measureRef","toggle","next","arr","c","isValidElement","summaryIdx","detailsIdx","_","i","summaryEl","detailsEl","bg","rootCss","useLayoutEffect","useEffect","ro","clipCss","innerCss","summary","cloneElement","details","jsxs","e","AccordionSummary","forwardRef","expandIcon","onClick","noExpandIcon","expandIconPosition","fontSize","iconSize","gap","paddingX","paddingY","rowH","N","iconColor","baseCss","contentCss","leftIconCss","rightIconCss","chevronCss","ChevronDown","AccordionDetails","paddingBottom","isEl","nameOf","isAccordion","toPx","fallback","AccordionGroup","attached","exclusive","expandedIndex","defaultExpandedIndex","onExpandedIndexChange","nodes","Children","accs","count","internalIndex","setInternalIndex","activeIndex","bw","borderColor","forcedVariant","isOutlined","logical","props","idx","isFirst","isLast","nextVariant","roundCss","separatorCss","killChildOutline","injected","userOnChange","active","nextIdx","resolvePadding","padding","resolveRadius","ActionBar","anchorOrigin","offsetX","offsetY","shadow","height","open","unstyled","containerCss","containerClassName","contentRef","hAlign","vAlign","borderToken","borderWidth","surfaceBg","surfaceBorder","offXVal","offYVal","containerStyles","closedTransform","openTransform","resolvedPadding","resolvedRadius","contentStyles","AlertCtx","createContext","useAlertCtx","Alert","intent","icon","actionButton","onClose","size","rest","map","colors","sem","c50","c300","c600","c700","c800","onColor","iconEl","CircleAlert","TriangleAlert","CircleCheckBig","Info","leftCss","iconWrapCss","rightCss","closeBtnCss","ctxVal","X","AlertTitle","fg","titleCss","AlertDescription","descCss","u","asArray","mergeCss","parts","cloneIcon","px","color","TextField","label","value","defaultValue","placeholder","error","helperText","fullWidth","rounded","startIcon","endIcon","togglePasswordVisible","showClear","type","step","focusRingMode","userWrapperCss","userInputCss","userLabelCss","userHelperRowCss","userHelperTextCss","userStartIconCss","userEndIconCss","userSurfaceCss","onBlur","onFocus","onKeyDown","autoFocus","tabIndex","autoComplete","readOnly","required","maxLength","ring","reactId","isNumberType","isPassword","internal","setInternal","curr","setValue","numberRegex","wantsDecimal","inputMode","pattern","handleNumberTyping","labelCss","surfaceBaseCss","inputBaseCss","startSlotCss","endSlotCss","helperRowCss","helperTextCss","localRef","setRefs","handleTextChange","showPw","setShowPw","togglePw","clear","iconPx","startAdornment","endAdornment","Eye","EyeOff","helperId","inputId","MenuVariantCtx","DenseCtx","LevelCtx","GapCtx","Menu","maxHeight","panelPad","gapValue","emCss","dense","SubMenuCtx","useSub","SubMenu","defaultOpen","onOpenChange","uOpen","setUOpen","controlled","setOpen","menuGap","SubMenuTrigger","chevron","asChild","ChevronNode","inject","Fragment","SubMenuContent","parentLevel","innerRef","root","NATIVES","ROLES","natives","roleItems","cur","setRef","mergeRefs","refs","__scrollLocks","__prevOverflow","__prevPaddingRight","getScrollbarWidth","lockBodyScroll","body","sw","unlockBodyScroll","MenuCtx","useMenu","FocusCtx","RootBusCtx","useRootBus","createRootBus","closers","hovers","isBusClosingRef","fn","ctl","h","useDropdownMenuActiveIndex","DropdownMenu","trigger","lockScroll","referenceRef","listRef","setActiveIndex","hoverTimeoutRef","scheduleHoverClose","delay","clearHoverClose","parentBus","bus","denseFlag","DropdownMenuTrigger","canAsChild","childEl","childOnKeyDown","childOnClick","propOnKeyDown","propOnClick","restProps","focusIdx","list","handleKeyDown","total","delta","current","handleClick","t","hoverProps","widthCss","childCss","DropdownMenuContent","anchor","side","align","sideOffset","alignOffset","collisionPadding","sameWidth","closeOnBlur","allItemsTabbable","exitPlacement","animateOnBusClose","rootBus","off","so","ao","cp","placement","virtualFromPoint","y","normalizedAnchor","a","strategy","context","update","useFloating","autoUpdate","offsetMw","flip","shift","sizeMw","elements","refEl","floatEl","onFocusIn","ae","fl","dismiss","useDismiss","useRole","getFloatingProps","useInteractions","resolvedGap","annotate","kids","enhancedChildren","refWidth","setRefWidth","setNow","computedWidth","placementSide","transformOrigin","exitSide","exit","transition","positionCss","FloatingPortal","AnimatePresence","motion","DropdownMenuSub","cOpen","inheritedDense","finalDense","DropdownMenuSubTrigger","baseHoverProps","DropdownMenuSubContent","Switch","checkedProp","defaultChecked","userRootCss","userTrackCss","userThumbCss","sizeMap","isOn","animating","setAnimating","sizeKey","slide","offTrack","trackColor","thumbColor","trackW","trackH","thumb","pad","rootBaseCss","trackBaseCss","thumbBaseCss","labelBaseCss","getSize","Checkbox","checked","description","checkedIcon","userBoxCss","userCheckCss","userDescriptionCss","internalChecked","setInternalChecked","S","checkedBg","checkColor","borderCol","hoverBg","gapPx","neutralScale","onColors","onKey","chk","gapVal","inputCss","boxBase","checkDims","checkBaseCss","textColCss","baseLabelCss","baseDescriptionCss","useFocusOpts","MenuItem","destructive","inset","closeOnSelect","onSelect","meta","__index","dd","isActive","isSubTrigger","nesting","insetLevel","variantHover","itemCss","iconStartBox","iconEndBox","overlayCss","activate","moveFocus","currentEl","idxGetter","container","candidates","len","CheckboxCtx","MenuCheckboxGroup","values","defaultValues","onValuesChange","vals","ctx","MenuCheckboxItem","onCheckedChange","group","grouped","isChecked","handleToggle","checkboxWrapCss","checkboxCss","MenuSwitchItem","switchSize","switchCss","switchWrapCss","RadioCtx","MenuRadioGroup","onValueChange","uc","setUc","MenuRadioItem","radio","dotBoxCss","dotInnerCss","textCss","MenuLabel","wrap","MenuSeparator","padVar","fullCss","middleCss","insetCss","variantCss","baseBgFor","hoverBgFor","baseBg","Container","hoverable","selectable","controlledSelected","defaultSelected","onSelectedChange","internalSelected","setInternalSelected","selectedBg","rad","interactive","toggleSelected","handleKeyDownInt","resolveTokenPadding","spacingScale","flexAlign","textAlign","resolveGap","sectionPaddingStyles","py","styles","resolveColor","CardDirectionCtx","useCardDirection","Card","cssProp","direction","isVertical","cardBase","CardContent","CardStart","CardEnd","CardTitle","weight","CardDescription","Autocomplete","items","renderItem","rootCssOverride","itemsOpen","onItemsOpenChange","openOnFocus","openOnType","freeItem","maxItems","noResultsText","highlightTypedValue","typedValueHighlightCss","showNoResults","loadItems","loadingProp","loadingText","debounceMs","multiple","selectedValues","defaultSelectedValues","onChangeSelected","inputValue","setInputValue","isOpenControlled","ucOpen","setUcOpen","requestOpen","ucMulti","setUcMulti","currentMulti","setSelected","asyncItems","setAsyncItems","internalLoading","setInternalLoading","isAsync","effectiveItems","isLoading","debounceRef","q","equalExists","allowFree","buildFreeLabel","hasPrefix","hasSuffix","prefix","suffix","filteredBase","res","it","w","baseWithFree","sections","order","groups","keyOf","remaining","take","hasItems","shouldShowNoResults","panelHasContent","emitMultiChange","nextValues","nextItems","pick","handleInputChange","cls","focusFirstMenuItem","menu","first","handleInputFocus","wrapCss","triggerCss","anchorCss","paint","text","rowBaseCss","itemCardCss","contentNodes","Row","item","absIndex","hovered","isSelected","handleSelect","abs","sec","gi","sizeKeys","getPaletteColor","getForegroundColor","getFallbackText","alt","Avatar","showImg","setShowImg","numeric","fallbackText","imgCss","AvatarGroup","max","overlap","bgColor","extraLabelCss","outlineThickness","diameter","hasMax","shown","extra","ringThickness","childFillCss","child","childElement","prevCss","mergedCss","cloned","getPaletteScale","getBadgeBg","getFontColor","fontColor","getDisplayContent","getShouldShow","visible","showZero","Badge","fontWeight","animate","outline","outlineColor","badgeClassName","wrapperCss","badgeCss","isDot","_fontSize","finalFontColor","displayContent","shouldShow","wrapperBase","derivedOffset","offX","offY","vertical","horizontal","pos","translateX","translateY","baseScale","bubbleBase","Backdrop","onClickAway","blur","blurDepth","zIndex","userContentCss","userOverlayCss","transitionDuration","keepMounted","contentClassName","overlayColor","setVisible","show","setShow","hideTimer","rafRef","prevOverflow","prevPad","scrollbar","computedPad","onEsc","handleRootPointerDown","blurValue","overlayBaseCss","contentBaseCss","BreadCrumbItem","unwrapEmotion","BreadCrumbs","separator","userCrumbCss","userActiveCrumbCss","userInactiveCrumbCss","userLinkCrumbCss","userSepCss","hover","sepCss","makeCrumbCss","isLink","baseColor","iconCss","commonClass","commonCss","clamp","lo","hi","asPx","fb","MIN_VISUAL_PCT","spin","keyframes","indet1","indet2","cssColorLike","allowedShades","resolvePaletteColor","Progress","min","thickness","spinDuration","trackCss","barCss","circleCss","ariaLabel","isDeterminate","safeRange","percent","track","Circular","Linear","barBase","pctRender","fillDeterminate","runnerBase","runner1","runner2","ariaProps","d","dashArray","spinnerWrap","svgCss","circleBase","hasText","found","ch","kind","resolveVisuals","P","primaryScale","dangerScale","primaryOn","dangerOn","Button","loading","loadingIndicator","loadingPosition","hoverEffect","vis","isIconOnly","sizedStart","sizedEnd","spinnerNode","resolvedLoadingPos","showCenterLoader","showStartLoader","showEndLoader","nonInteractive","rootBase","hoverOverlayCss","padCss","contentGroupCss","slotSizePx","slotCss","slotLayerCss","centerOverlayCss","renderLeftSlot","has","renderRightSlot","isInteractive","displayNameOf","isOfType","isGroup","isMenu","isTrigger","isOutlinedVariant","visualLeaf","trig","outlinedOnEdge","leaf","ButtonGroup","__clipLeft","__clipRight","tokenRadius","baseRadius","clipLeft","clipRight","realCount","realIndex","prevRightOutlined","nodeProps","mergedDisabled","mergedSize","tl","tr","br","bl","currLeftOutlined","currRightOutlined","killJoinCss","cornerCss","flexCss","visualCss","childClass","injectedToGroup","childrenProp","newChildren","cprops","triggerClass","patchedMenu","isCard","CardGroup","betweenColor","totalCards","radiusCss","collapseCss","betweenCss","mergedClass","Chip","onDelete","deleteIcon","cursor","isClickable","baseCursor","strokeW","paletteKey","softBg","softFg","outlinedBg","outlinedFg","outlinedBr","filledBg","filledFg","ghostBg","ghostFg","leftIconMargins","rightIconMargins","deleteBtnCss","defaultDeleteIcon","CodeBoxes","ringEnabled","boxesRef","setFocusIdx","chars","ph","sideCss","H","boxBg","boxBorder","boxCss","sanitize","focusAt","handleBoxChange","char","clean","handleBoxKeyDown","handlePaste","paste","CodeField","length","userLayoutCss","labelId","defaultGap","rowCss","toCssLen","toNum","ColorPatches","patchCss","patchSize","firstEnabled","focusIndex","setFocusIndex","containerRef","cols","setCols","sz","calc","moveHoriz","dir","moveVert","colsSafe","rows","row","col","targetRow","rowStart","rowEnd","cand","L","R","wrapperStyles","basePatch","isDis","getName","hasDropdownNodes","ContextZone","hoverPosition","hoverOffset","hostRef","setAndNotify","close","ptRef","shellRef","rafId","flush","requestFlush","virtualAnchor","czIdRef","getMenuEl","openT","closeT","clearOpenT","clearCloseT","scheduleClose","centerOfHost","openAt","rendered","isMenuTree","injectForMenu","element","nextChildren","prevEnter","prevLeave","wired","handleNonHoverOpen","onContextMenu","onDoubleClick","onMouseEnter","onMouseMove","onMouseLeave","onMove","hostHovered","menuHovered","onScrollResize","FloatingShell","def","Divider","labelPosition","middleMargin","insetMargin","chip","chipVariant","margin","strokeCss","strokeColor","labelTextColor","chipSubtleBg","chipOutlinedBg","outerM","padX","verticalStrokeMargin","tVal","strokeColorVal","labelTextColorVal","chipSubtleBgVal","chipOutlinedBgVal","outerMVal","padXVal","verticalStrokeMarginVal","strokeBaseCss","strokeEl","__locks","__prevPadRight","getScrollbarW","lockBody","unlockBody","Drawer","defaultOn","position","backdropBlur","backdropBlurDepth","closeOnClickAway","transitionMs","snapClosePct","velocityClosePxS","dragElasticOut","internalOpen","setInternalOpen","marginPx","axis","computedHeight","edgeRadius","computedRadius","posCss","panelRef","sizePx","springTransition","timedTransition","closedOffset","initialTranslate","panelCss","onOverlayClick","dragElastic","dragConstraints","snapPct","onDragEnd","info","velocity","movedOutward","distOk","velOk","safeRest","Fade","duration","onAnimationEnd","baseStyles","handleEnd","mergedClassName","prevOnTransitionEnd","Flex","justify","flexDirection","Grow","initialScale","finalScale","MAP","defaultTagByVariant","Typography","lineHeight","letterSpacing","textTransform","whiteSpace","decoration","decorationStyle","decorationThickness","decorationColor","italic","style","as","Tag","lh","ls","decoColor","decoCss","Image","labelAlign","aspectRatio","decoding","fetchPriority","srcSet","sizes","blurDataURL","placeholderColor","fallbackSrc","onLoad","onError","imgRest","hovering","setHovering","errored","setErrored","loaded","setLoaded","WrapperEl","frameCss","placeholderCss","parseAR","ar","rotatedBBox","deg","variantTx","z","bumpReveal","bumpExpand","SIZE_W","ImageStack","memo","outlineWidth","outlineOffset","AR","wStr","Wn","Hn","baseScales","frameH","frameW","halfW","halfH","bh","worstAng","worstDx","worstDy","bump","rot","w0","h0","sx","sy","stageW0","stageH0","stageScale","hoverMode","hoverAttr","stackCss","stageCss","frameRadius","cardCss","baseTx","expTx","baseTransform","hoverTransform","sizeTokens","token","Kbd","mono","uppercase","gray","subtle","ghost","outlined","Slide","distance","dist","ModalCtx","useModalCtx","Modal","closeOnEsc","handler","ModalTrigger","ModalContent","backdrop","closeOnBackdropClick","transitionVariant","backdropCss","panel","animated","alignCss","Pagination","page","defaultPage","siblingCount","boundaryCount","showFirstLast","loop","cssOverride","inner","setInner","normCount","setPage","buildItems","accent","txt","containerBg","baseBtn","iconSquareBtn","btnCss","goFirst","goLast","goPrev","goNext","prevDisabled","nextDisabled","ChevronFirst","ChevronLeft","ChevronRight","ChevronLast","maxVisibleWithoutEllipses","range","startPages","endPages","siblingsStart","siblingsEnd","push","last","PopoverCtx","usePopover","toCssSize","useBodyScrollLock","locked","prevPaddingRight","resolveToken","Popover","triggerOn","closeTimerRef","ms","cancelClose","PopoverTrigger","onlyChild","childProps","mergedRef","triggerProps","a11y","PopoverAnchor","anchorToPlacement","PopoverContent","sideMain","resolvedSide","initialOffset","motionProps","panelBg","panelFg","panelBorder","resolvedPad","resolvedPadX","resolvedPadY","applyPad","panelShadow","basePos","visualsCss","hoverHandlers","usePopoverContext","Quote","useRadioCtx","normalizeOrigin","RadioGroup","internalValue","setInternalValue","registry","ver","setVer","register","index","enabledIndexes","moveFocusBy","currentIndex","enabled","nextRef","nextVal","moveToEdge","edge","focusValue","enabledItems","RadioItem","groupDisabled","isDisabled","soft100","neutral300","stroke","circleBg","circleShadow","dotColor","hoverCircleBg","btnRef","myIndex","dotCss","Rotate","initialAngle","finalAngle","toCss","labelFromItem","scanChildrenForSelection","radioGroup","rv","match","flat","dfs","nm","labels","selectedLabels","anyCheckbox","lbl","Select","menuAlign","menuWidth","menuMaxHeight","menuCss","menuSize","triggerRender","ids","contentId","sizeCfg","triggerBaseObj","triggerVariantObj","triggerContentObj","triggerStartIconObj","titleObj","ChevronsUpDown","alignMap","onTriggerKeyDown","wave","pulse","Skeleton","animation","highlight","overlayBase","overlayAnim","childWrap","DEFAULT_TRACK_H","DEFAULT_THUMB","DEFAULT_DOT","Slider","showValue","showStepper","thumbCss","trackRef","dragging","setDragging","hoverThumb","setHoverThumb","hoverTip","setHoverTip","quantize","primary600","disabledInk","span","commit","valueFromPointer","clientX","clientY","rect","ratio","onPointerDownTrack","onPointerDownThumb","onPointerMove","stopDrag","showTooltip","showHoverRing","ringColor","stepperCss","stepDotCss","fillCss_default","thumb_default","tipAnchorCss","tooltipCss","rootUserCss","trackUserCss","thumbUserCss","stepsCount","mw","stepWrapCss","connectorTrackCss","connectorFillCss","pct","separatorWrapCss","nodeCss","radiusFull","numCss","layerCss","strong","textPrimary","textSecondary","radiusXs","spacingXs","StepItem","tokens","titlePosition","completed","connectorColor","showConnector","canGoToIndex","MAIN","ACTIVE_TEXT","ACTIVE_TEXT_OUTLINED","COMPLETE_BG","COMPLETE_FG","UPCOMING_BG_FILLED","UPCOMING_OUTLINE","UPCOMING_FG","baseIcon","doneIcon","Check","Step","Stepper","allowForward","allComplete","activeBgColor","activeColor","completeBgColor","completeColor","normalizedVariant","steps","resolve","resolved","afterLast","directIdx","inferred","isStepComplete","toIndex","setAnimate","SwapContext","useSwapContext","ANIMATION_MS","scaleAnim","rotateAnim","scaleRotateAnim","SwapItem","customCss","activeValue","animationEffect","isAnimating","transitionFrom","transitionTo","transitionPhase","isOverlayEffect","opacity","isFrom","isTo","Swap","flashDuration","controlledValue","setIsAnimating","isFlashing","setIsFlashing","setTransitionFrom","setTransitionTo","setTransitionPhase","flashMs","timeoutsRef","clearAllTimeouts","commitValue","runSwap","from","to","after","mid","end","handleSwap","baseIndex","nextIndexFromBase","nextFromBase","nextIndex","nextValue","flashValue","pause","swapCss","contextValue","Tab","TabContent","propsAny","Tabs","activeTabCss","activeIndicatorCss","isV","stretch","effAlign","justifyMap","tabs","contents","origType","isTab","isContent","currentValue","btnRefs","indicator","setIndicator","measure","btn","listRect","onWin","nextEnabledIndex","rev","disabledText","trackBg","thumbBg","underlineColor","showThumb","needsPad","underlineCss","baseTabCss","contentWrapCss","idBase","panelIdByValue","tabIdForIndex","labelledByIndex","labelledBy","asArr","TextArea","maxRows","showCharCount","resizable","userCharCountCss","ctrlMinH","textareaCss","charCountCss","tokenMin","baseMin","isIterable","obj","isPromise","isOptionsInput","ENTER_SPRING","ROOT_ID","getIn","path","paths","resolveToastTokens","padY","hostEl","ensureHost","cfg","store","syncAndNotify","uid","armTimer","override","dur","now","timeoutMs","handle","toast","clearTimer","flushQueueIntoDisplayed","pushOutOldestIntoQueue","oldest","exp","normalizeStatus","statusColors","st","border","fallbackBg","fallbackFg","contentOrOptions","updateIn","msg","left","latest","msgs","err","normalizeDismiss","actionRowCss","ToastHost","snap","useSyncExternalStore","TOK","isBottom","stackStyle","enterY","mt","baseSurface","extraSurface","dismissMode","modeStyles","closeSel","hoverSel","closeCss","innerBlock","SwipeItem","pauseOnHover","controls","useAnimationControls","itemStyle","velo","targetX","ToastViewport","createPortal","TooltipCtx","useTooltipCtx","Tooltip","arrow","autoWidth","disableHoverListener","arrowRef","floating","arrowMw","useHover","safePolygon","focus","useFocus","getReferenceProps","TooltipTrigger","isElement","isDomChild","merged","TooltipContent","arrowCss","floatingStyles","middlewareData","allowArrow","tooltipBase","arrowBase","arrowData","staticSide","CssBaseline","Global"],"mappings":"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","file":"index.js","sourcesContent":["/** @jsxImportSource @emotion/react */\nexport type Scale = {\n 0: string; 50: string; 100: string; 200: string; 300: string; 400: string;\n 500: string; 600: string; 700: string; 800: string; 900: string;\n};\n\nexport type PlainframeUITheme = {\n spacing: Record<\"xxs\"|\"xs\"|\"sm\"|\"md\"|\"lg\"|\"xl\", string|number> & Record<string, string|number>;\n radius: Record<\"xxs\"|\"xs\"|\"sm\"|\"md\"|\"lg\"|\"xl\"|\"full\", string|number> & Record<string, string|number>;\n fontSizes: Record<\"xs\"|\"sm\"|\"md\"|\"lg\"|\"xl\"|\"xxl\", string|number> & Record<string, string|number>;\n componentHeights: Record<\"sm\"|\"md\"|\"lg\"|\"border\", string|number> & Record<string, string|number>;\n fonts: { sans: string; mono: string };\n palette: Record<string, Scale>;\n neutral: Scale;\n surface: {\n appBg: string; panelBg: string; subtleBg: string;\n panelHover: string; subtleHover: string; overlayBg: string; border: string;\n };\n text: { primary: string; secondary: string; muted: string; onColors: Record<string, string> };\n};\n\nexport type Mode = \"light\" | \"dark\";\n\nconst spacing: PlainframeUITheme[\"spacing\"] = {\n xxs:\"0.15rem\", xs:\"0.25rem\", sm:\"0.5rem\", md:\"0.75rem\", lg:\"1rem\", xl:\"1.5rem\"\n};\nconst radius: PlainframeUITheme[\"radius\"] = {\n xxs:\"0.3rem\", xs:\"0.4rem\", sm:\"0.6rem\", md:\"0.7rem\", lg:\"1rem\", xl:\"2rem\", full:\"9999px\"\n};\nconst fontSizes: PlainframeUITheme[\"fontSizes\"] = {\n xs:\"10px\", sm:\"12px\", md:\"14px\", lg:\"16px\", xl:\"20px\", xxl:\"32px\"\n};\nconst componentHeights: PlainframeUITheme[\"componentHeights\"] = {\n sm:32, md:36, lg:40, border:\"1px\"\n};\nconst fonts: PlainframeUITheme[\"fonts\"] = {\n sans: '\"Geist\", system-ui, -apple-system, Segoe UI, Roboto, sans-serif',\n mono: '\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace',\n};\n\nconst neutralLight: Scale = {\n 0:\"#ffffff\",50:\"#f9f9f9\",100:\"#f5f5f5\",200:\"#eeeeee\",300:\"#e5e5e5\",\n 400:\"#C6C6C6\",500:\"#b3b3b3\",600:\"#7a7a7a\",700:\"#4a4a4a\",800:\"#2b2b2b\",900:\"#111111\",\n};\nconst neutralDark: Scale = {\n 0:\"#0c0c0c\",50:\"#121212\",100:\"#1a1a1a\",200:\"#222222\",300:\"#2b2b2b\",\n 400:\"#333333\",500:\"#444444\",600:\"#6e6e6e\",700:\"#a6a6a6\",800:\"#e5e5e5\",900:\"#ffffff\",\n};\n\nconst paletteLight: Record<string, Scale> = {\n mono:{0:\"#FFFFFF\",50:\"#FAFAFA\",100:\"#F2F2F2\",200:\"#E6E6E6\",300:\"#D1D1D1\",400:\"#8A8A8A\",500:\"#2A2A2A\",600:\"#1A1A1A\",700:\"#121212\",800:\"#0B0B0B\",900:\"#000000\"},\n danger:{0:\"#FFFFFF\",50:\"#FFF1F1\",100:\"#FFE0E0\",200:\"#FFC2C5\",300:\"#FF9AA6\",400:\"#FF6A7B\",500:\"#EF2F23\",600:\"#E7000B\",700:\"#DB1424\",800:\"#C11225\",900:\"#7A0A18\"},\n success:{0:\"#FFFFFF\",50:\"#EEFFF3\",100:\"#D7FFE8\",200:\"#B9FBD5\",300:\"#8EF5BB\",400:\"#5BEA9A\",500:\"#0FD45D\",600:\"#00C853\",700:\"#109C47\",800:\"#0E8242\",900:\"#064D2B\"},\n warning:{0:\"#FFFFFF\",50:\"#FFF7EB\",100:\"#FFEFC6\",200:\"#FFE094\",300:\"#FFC552\",400:\"#FFB83A\",500:\"#FFA414\",600:\"#FF9F0A\",700:\"#D97500\",800:\"#AF5E00\",900:\"#6E3600\"},\n info:{0:\"#FFFFFF\",50:\"#ECFAFF\",100:\"#D2F2FF\",200:\"#AEE6FF\",300:\"#84D6FF\",400:\"#4BC1FF\",500:\"#2B9FFF\",600:\"#1093FF\",700:\"#0077C0\",800:\"#0066A8\",900:\"#083B61\"},\n amber:{0:\"#FFFFFF\",50:\"#FFF3EA\",100:\"#FFE3D1\",200:\"#FFC7A6\",300:\"#FFAC80\",400:\"#FF874D\",500:\"#FF6C1F\",600:\"#FF5A00\",700:\"#D24500\",800:\"#B63C00\",900:\"#6F2300\"},\n orange:{0:\"#FFFFFF\",50:\"#FFF4EB\",100:\"#FFE6CC\",200:\"#FFCE9E\",300:\"#FFAE66\",400:\"#FF8B33\",500:\"#FF7310\",600:\"#FF6B00\",700:\"#CC4400\",800:\"#AF3F00\",900:\"#6B2400\"},\n yellow:{0:\"#FFFFFF\",50:\"#FFFAE6\",100:\"#FFF2BF\",200:\"#FFE780\",300:\"#FFDB3D\",400:\"#FFD000\",500:\"#FFE03F\",600:\"#FFD60A\",700:\"#B38600\",800:\"#8E6D00\",900:\"#534300\"},\n lime:{0:\"#FFFFFF\",50:\"#F6FFE8\",100:\"#E7FFC2\",200:\"#CCFF83\",300:\"#A8FA3D\",400:\"#8BE11C\",500:\"#87DE10\",600:\"#7ACC00\",700:\"#4A8C00\",800:\"#3B7100\",900:\"#224300\"},\n green:{0:\"#FFFFFF\",50:\"#F0FFF5\",100:\"#DBFFE9\",200:\"#BDF7CF\",300:\"#8FE7A8\",400:\"#5BD57D\",500:\"#1DAE52\",600:\"#16A34A\",700:\"#168A40\",800:\"#136A34\",900:\"#0B3D1F\"},\n teal:{0:\"#FFFFFF\",50:\"#EDFFFB\",100:\"#D2FFF4\",200:\"#A6FAEA\",300:\"#74EEDC\",400:\"#41DECB\",500:\"#00CFAA\",600:\"#00BFA5\",700:\"#0C8C7F\",800:\"#0B786C\",900:\"#084741\"},\n cyan:{0:\"#FFFFFF\",50:\"#EFFFFF\",100:\"#D4FCFF\",200:\"#AFF5FD\",300:\"#7FE8F6\",400:\"#45D3EB\",500:\"#09C6E7\",600:\"#00B8D9\",700:\"#0A7C92\",800:\"#0B6E81\",900:\"#0A4250\"},\n blue:{0:\"#FFFFFF\",50:\"#EFF6FF\",100:\"#DBE8FF\",200:\"#B8D3FF\",300:\"#90BAFF\",400:\"#5E97FF\",500:\"#406FFF\",600:\"#2F66FF\",700:\"#2452DE\",800:\"#2248C8\",900:\"#172C80\"},\n indigo:{0:\"#FFFFFF\",50:\"#EEF2FF\",100:\"#E0E6FF\",200:\"#C5D0FF\",300:\"#A3B5FF\",400:\"#879CFF\",500:\"#707AF5\",600:\"#5A63F3\",700:\"#4951DA\",800:\"#3E40BF\",900:\"#2A2A82\"},\n purple:{0:\"#FFFFFF\",50:\"#F4F0FF\",100:\"#E8DBFF\",200:\"#D2B8FF\",300:\"#B590FF\",400:\"#996AF5\",500:\"#7A52F1\",600:\"#6B3CF0\",700:\"#592FBE\",800:\"#4D27A3\",900:\"#2F1767\"},\n magenta:{0:\"#FFFFFF\",50:\"#FFF0FE\",100:\"#FCE0FF\",200:\"#F7BCFF\",300:\"#F393FD\",400:\"#E85FF8\",500:\"#C645D6\",600:\"#C026D3\",700:\"#951CAB\",800:\"#801790\",900:\"#4C0C59\"},\n pink:{0:\"#FFFFFF\",50:\"#FFF0F7\",100:\"#FFE0F0\",200:\"#FFC0E2\",300:\"#FF9ACE\",400:\"#FF6CB3\",500:\"#ED5CA2\",600:\"#EC4899\",700:\"#AB236F\",800:\"#96205D\",900:\"#5A1238\"},\n rose:{0:\"#FFFFFF\",50:\"#FFF0F3\",100:\"#FFE1E9\",200:\"#FFC1D3\",300:\"#FF98B8\",400:\"#FF6B98\",500:\"#EE4278\",600:\"#E52E69\",700:\"#B52156\",800:\"#991A43\",900:\"#5B0F28\"},\n};\n\nconst paletteDark: Record<string, Scale> = {\n mono:{0:\"#0B0B0C\",50:\"#0F0F10\",100:\"#151515\",200:\"#1B1B1C\",300:\"#232323\",400:\"#DADADA\",500:\"#E0E0E0\",600:\"#EDEDED\",700:\"#F5F5F5\",800:\"#FCFCFC\",900:\"#FFFFFF\"},\n danger:{0:\"#17080A\",50:\"#1E0B0D\",100:\"#290F11\",200:\"#3A1416\",300:\"#4B191B\",400:\"#6A1D21\",500:\"#FF3B30\",600:\"#E7000B\",700:\"#FF2A20\",800:\"#FF463D\",900:\"#FFD9DB\"},\n success:{0:\"#06150B\",50:\"#0A1B10\",100:\"#0E2416\",200:\"#11301C\",300:\"#143B21\",400:\"#16502C\",500:\"#22D85A\",600:\"#00C853\",700:\"#2FE976\",800:\"#7FF1AE\",900:\"#D6FADF\"},\n warning:{0:\"#150E05\",50:\"#1C1408\",100:\"#261B0B\",200:\"#31240E\",300:\"#3D2C12\",400:\"#583C16\",500:\"#FFA61A\",600:\"#FF9F0A\",700:\"#FFB347\",800:\"#FFD089\",900:\"#FFF0C9\"},\n info:{0:\"#07131E\",50:\"#0A1926\",100:\"#0E2233\",200:\"#112C44\",300:\"#143654\",400:\"#184A78\",500:\"#1C9CFF\",600:\"#1093FF\",700:\"#4FB2FF\",800:\"#9DD2FF\",900:\"#D8ECFF\"},\n amber:{0:\"#150D07\",50:\"#1C120A\",100:\"#26180E\",200:\"#311F12\",300:\"#3E2716\",400:\"#59361C\",500:\"#FF6A1E\",600:\"#FF5A00\",700:\"#FF8747\",800:\"#FFB98A\",900:\"#FFE2CC\"},\n orange:{0:\"#140D07\",50:\"#1B120A\",100:\"#25190D\",200:\"#302010\",300:\"#3B2813\",400:\"#553817\",500:\"#FF7F22\",600:\"#FF6B00\",700:\"#FF9247\",800:\"#FFBE8A\",900:\"#FFE1CC\"},\n yellow:{0:\"#141303\",50:\"#1B1906\",100:\"#25210A\",200:\"#2F2A0D\",300:\"#383212\",400:\"#524717\",500:\"#FFE042\",600:\"#FFD60A\",700:\"#FFE457\",800:\"#FFF194\",900:\"#FFF8CF\"},\n lime:{0:\"#0C1306\",50:\"#101A08\",100:\"#14210B\",200:\"#1A2B0F\",300:\"#203614\",400:\"#2A4A1A\",500:\"#86E21A\",600:\"#7ACC00\",700:\"#9EEA3B\",800:\"#C9F57F\",900:\"#EAFCC4\"},\n green:{0:\"#07140C\",50:\"#0B1B11\",100:\"#0E2416\",200:\"#112C1B\",300:\"#143722\",400:\"#17502F\",500:\"#20BF55\",600:\"#16A34A\",700:\"#39C964\",800:\"#86E5A5\",900:\"#D4F6E1\"},\n teal:{0:\"#081815\",50:\"#0B1F1C\",100:\"#0F2824\",200:\"#13322E\",300:\"#173E39\",400:\"#14584F\",500:\"#14CEBD\",600:\"#00BFA5\",700:\"#2CD6C6\",800:\"#7FEAE3\",900:\"#CFF7F3\"},\n cyan:{0:\"#07171C\",50:\"#0A1E24\",100:\"#0E2830\",200:\"#11333D\",300:\"#153E4A\",400:\"#165B6A\",500:\"#20CBE6\",600:\"#00B8D9\",700:\"#3FD2E9\",800:\"#93EBF6\",900:\"#D5F7FC\"},\n blue:{0:\"#081421\",50:\"#0A1829\",100:\"#0E2139\",200:\"#112A4B\",300:\"#153660\",400:\"#184A86\",500:\"#4A78FF\",600:\"#2F66FF\",700:\"#5A8AFF\",800:\"#A7C3FF\",900:\"#D9E7FF\"},\n indigo:{0:\"#0B1023\",50:\"#0E162C\",100:\"#141F3F\",200:\"#1C2A56\",300:\"#24366E\",400:\"#2F4894\",500:\"#707CF6\",600:\"#5A63F3\",700:\"#7D86FF\",800:\"#B5C0FF\",900:\"#E0E6FF\"},\n purple:{0:\"#100B1F\",50:\"#130E26\",100:\"#1A1638\",200:\"#231F4E\",300:\"#2E2A67\",400:\"#3C388D\",500:\"#8256F3\",600:\"#6B3CF0\",700:\"#8B66FA\",800:\"#C1B0FF\",900:\"#E4DCFF\"},\n magenta:{0:\"#160A18\",50:\"#1C0C21\",100:\"#25102E\",200:\"#321544\",300:\"#421A5C\",400:\"#58247C\",500:\"#CB44DB\",600:\"#C026D3\",700:\"#D960EB\",800:\"#F0B5FA\",900:\"#F9E4FE\"},\n pink:{0:\"#170911\",50:\"#1D0C18\",100:\"#271220\",200:\"#371830\",300:\"#462042\",400:\"#622C5C\",500:\"#F067AE\",600:\"#EC4899\",700:\"#F679BB\",800:\"#FFC2E1\",900:\"#FFE6F3\"},\n rose:{0:\"#17090E\",50:\"#1F0C13\",100:\"#2A121B\",200:\"#3A1B28\",300:\"#4B2636\",400:\"#673449\",500:\"#EE457B\",600:\"#E52E69\",700:\"#FF558A\",800:\"#FFA9C6\",900:\"#FFE0EA\"},\n};\n\nfunction withAliases(p: Record<string, Scale>): Record<string, Scale> {\n return {\n ...p,\n red: p.danger,\n error: p.danger,\n green: p.success,\n success: p.success,\n orange: p.orange,\n amber: p.amber,\n yellow: p.yellow,\n lime: p.lime,\n teal: p.teal,\n cyan: p.cyan,\n blue: p.blue,\n indigo: p.indigo,\n purple: p.purple,\n violet: p.purple,\n magenta: p.magenta,\n fuchsia: p.magenta,\n pink: p.pink,\n rose: p.rose,\n gray: p.mono,\n grey: p.mono,\n neutral: p.mono,\n };\n}\n\nexport const surfaceFromNeutral = (mode: Mode, n: Scale): PlainframeUITheme[\"surface\"] =>\n mode === \"light\"\n ? {\n appBg: n[0], panelBg: n[0], subtleBg: n[100],\n panelHover: n[50], subtleHover: n[200],\n overlayBg: \"linear-gradient(rgba(0,0,0,.15),rgba(0,0,0,.525))\",\n border: n[300],\n }\n : {\n appBg: n[0], panelBg: n[0], subtleBg: n[50],\n panelHover: n[50], subtleHover: n[100],\n overlayBg: \"linear-gradient(rgba(0,0,0,.35),rgba(0,0,0,.75))\",\n border: n[200],\n };\n\nexport const textLight = (n: Scale): PlainframeUITheme[\"text\"] => ({\n primary: n[900], secondary: n[600], muted: n[500], onColors: {} as Record<string, string>,\n});\nexport const textDark = (n: Scale): PlainframeUITheme[\"text\"] => ({\n primary: n[900], secondary: n[700], muted: n[600], onColors: {} as Record<string, string>,\n});\n\nconst colorKeys: readonly string[] = [\n \"danger\",\"success\",\"warning\",\"info\",\"amber\",\"orange\",\"yellow\",\"lime\",\"green\",\"teal\",\"cyan\",\"blue\",\"indigo\",\"purple\",\"magenta\",\"pink\",\"rose\"\n];\nfunction makeOnColors(defaults: Record<string, string>): Record<string, string> {\n const acc: Record<string, string> = {};\n for (const k of colorKeys) acc[k] = defaults[k] ?? \"#FFFFFF\";\n return acc;\n}\n\nexport const defaultLightTheme: PlainframeUITheme = {\n spacing,\n radius,\n fontSizes,\n componentHeights,\n fonts,\n neutral: neutralLight,\n palette: { ...withAliases(paletteLight), primary: paletteLight.mono as Scale },\n surface: surfaceFromNeutral(\"light\", neutralLight),\n text: (() => {\n const base = textLight(neutralLight);\n return {\n ...base,\n onColors: { primary: \"#FFFFFF\", ...makeOnColors({ yellow: \"#000000\" }) },\n };\n })(),\n};\n\nexport const defaultDarkTheme: PlainframeUITheme = {\n spacing,\n radius,\n fontSizes,\n componentHeights,\n fonts,\n neutral: neutralDark,\n palette: { ...withAliases(paletteDark), primary: paletteDark.mono as Scale },\n surface: surfaceFromNeutral(\"dark\", neutralDark),\n text: (() => {\n const base = textDark(neutralDark);\n return {\n ...base,\n onColors: { primary: \"#000000\", ...makeOnColors({ yellow: \"#000000\", lime: \"#000000\" }) },\n };\n })(),\n};\n\ndeclare module \"@emotion/react\" {\n interface Theme extends PlainframeUITheme {}\n}\n","/** @jsxImportSource @emotion/react */\nimport React, { useCallback, useContext, useMemo, useRef } from \"react\";\nimport { ThemeProvider as EmotionThemeProvider, useTheme as useEmotionTheme } from \"@emotion/react\";\nimport {\n defaultDarkTheme,\n defaultLightTheme,\n surfaceFromNeutral,\n textLight,\n textDark,\n type Mode,\n type PlainframeUITheme,\n} from \"./theme\";\n\n/* ───────── types ───────── */\nexport type ThemeProp = Partial<PlainframeUITheme> & {\n primaryKey?: string;\n light?: Partial<PlainframeUITheme> & { primaryKey?: string };\n dark?: Partial<PlainframeUITheme> & { primaryKey?: string };\n};\nexport type ThemeProviderProps = {\n theme?: ThemeProp;\n initialMode?: Mode | \"system\";\n storageKey?: string;\n scope?: string; // unique scope name for a nested provider\n children: React.ReactNode;\n};\n\n/* ───────── tiny store ───────── */\nfunction createStore<T>(initial: T) {\n let v: T = initial;\n const subs: Set<() => void> = new Set();\n return {\n get: (): T => v,\n set: (nv: T): void => {\n v = nv;\n subs.forEach((f) => f());\n },\n subscribe: (f: () => void): (() => void) => {\n subs.add(f);\n return () => subs.delete(f);\n },\n };\n}\n\n/* ───────── alias helpers ───────── */\nconst aliasOf: Record<string, string> = {\n red: \"danger\",\n error: \"danger\",\n green: \"success\",\n violet: \"purple\",\n fuchsia: \"magenta\",\n gray: \"mono\",\n grey: \"mono\",\n neutral: \"mono\",\n};\nconst resolveAlias = (k: string): string => aliasOf[k] ?? k;\nfunction mirrorOnColors(on: Record<string, string>): Record<string, string> {\n const out: Record<string, string> = { ...on };\n Object.entries(aliasOf).forEach(([alias, target]) => {\n if (out[target] != null && out[alias] == null) out[alias] = out[target];\n });\n return out;\n}\n\n/* ───────── ctx ───────── */\nconst ModeStoreContext = React.createContext<ReturnType<typeof createStore<Mode>> | null>(null);\nconst PrimaryStoreContext = React.createContext<ReturnType<typeof createStore<string>> | null>(null);\nconst ModeActionsContext = React.createContext<{ setMode: (m: Mode) => void; toggleMode: () => void }>({\n setMode: () => {},\n toggleMode: () => {},\n});\nconst PrimaryActionsContext = React.createContext<{ setPrimary: (k: string) => void }>({ setPrimary: () => {} });\ntype BaseResolvedCtxT = { light: PlainframeUITheme; dark: PlainframeUITheme } | null;\nconst BaseResolvedContext = React.createContext<BaseResolvedCtxT>(null);\n\n/* ───────── public hooks ───────── */\nexport function usePlainframeUITheme(): PlainframeUITheme {\n return useEmotionTheme() as unknown as PlainframeUITheme;\n}\nexport function useColorModeValue(): Mode {\n const s = React.useContext(ModeStoreContext);\n if (!s) throw new Error(\"useColorModeValue must be used within ThemeProvider\");\n return React.useSyncExternalStore(s.subscribe, s.get, s.get);\n}\nexport function useColorMode(): { setMode: (m: Mode) => void; toggleMode: () => void } {\n return useContext(ModeActionsContext);\n}\nexport function usePrimary(): { primary: string; setPrimary: (k: string) => void } {\n const s = React.useContext(PrimaryStoreContext);\n if (!s) throw new Error(\"usePrimary must be used within ThemeProvider\");\n const primary = React.useSyncExternalStore(s.subscribe, s.get, s.get);\n const setPrimary = useContext(PrimaryActionsContext).setPrimary;\n return { primary, setPrimary };\n}\nexport function usePrimitives<T = PlainframeUITheme>(selector?: (t: PlainframeUITheme) => T): T {\n const base = React.useContext(BaseResolvedContext);\n if (!base) throw new Error(\"usePrimitives must be used within ThemeProvider\");\n const mode = useColorModeValue();\n const { primary } = usePrimary();\n const raw = React.useMemo<PlainframeUITheme>(() => {\n const theme = mode === \"light\" ? base.light : base.dark;\n const chosen = (theme.palette as Record<string, Record<string, string>>)[resolveAlias(primary)] ?? theme.palette.primary;\n const onPrim =\n mirrorOnColors(theme.text.onColors)[resolveAlias(primary)] ?? onColorFor(chosen[\"600\"]);\n return {\n ...theme,\n palette: { ...theme.palette, primary: chosen },\n text: {\n ...theme.text,\n onColors: {\n ...mirrorOnColors(theme.text.onColors),\n primary: onPrim,\n [resolveAlias(primary)]: onPrim,\n [primary]: onPrim,\n },\n },\n } as PlainframeUITheme;\n }, [base, mode, primary]);\n return selector ? selector(raw) : (raw as unknown as T);\n}\n\n/* ───────── helpers ───────── */\nfunction mergeTheme(base: PlainframeUITheme, patch?: Partial<PlainframeUITheme>): PlainframeUITheme {\n if (!patch) return base;\n return {\n ...base,\n spacing: { ...base.spacing, ...(patch.spacing ?? {}) },\n radius: { ...base.radius, ...(patch.radius ?? {}) },\n fontSizes: { ...base.fontSizes, ...(patch.fontSizes ?? {}) },\n componentHeights: { ...base.componentHeights, ...(patch.componentHeights ?? {}) },\n fonts: { ...base.fonts, ...(patch.fonts ?? {}) },\n palette: { ...base.palette, ...(patch.palette ?? {}) },\n neutral: patch.neutral ?? base.neutral,\n surface: { ...base.surface, ...(patch.surface ?? {}) },\n text: {\n ...base.text,\n ...(patch.text ?? {}),\n onColors: { ...base.text.onColors, ...(patch.text?.onColors ?? {}) },\n },\n };\n}\nfunction onColorFor(hex: string): string {\n const m = hex.replace(\"#\", \"\");\n const r = parseInt(m.slice(0, 2), 16),\n g = parseInt(m.slice(2, 4), 16),\n b = parseInt(m.slice(4, 6), 16);\n const f = (x: number): number => {\n const s = x / 255;\n return s <= 0.03928 ? s / 12.92 : Math.pow((s + 0.055) / 1.055, 2.4);\n };\n const L = 0.2126 * f(r) + 0.7152 * f(g) + 0.0722 * f(b);\n return L > 0.53 ? \"#000\" : \"#FFF\";\n}\nconst toCss = (v: string | number): string => (typeof v === \"number\" ? `${v}px` : String(v));\nfunction ensureTag(ref: React.MutableRefObject<HTMLStyleElement | null>, id: string): void {\n if (ref.current) return;\n const el = document.createElement(\"style\");\n el.id = id;\n document.head.appendChild(el);\n ref.current = el;\n}\nfunction selectorFor(scope?: string): string {\n return scope ? `[data-pfui-scope=\"${scope}\"]` : \":root\";\n}\n\nfunction buildVarPairs(theme: PlainframeUITheme, primaryKey: string, mode: Mode): string[] {\n const out: string[] = [];\n const normalize = (v: string): string =>\n v.startsWith(\"var(\") ? v.replace(/^var\\([^,]+,\\s*/, \"\").replace(/\\)\\s*$/, \"\").trim() : v;\n\n // base text/spacing/etc\n out.push(`--pf-font-sans:${normalize(theme.fonts.sans)};`);\n out.push(`--pf-font-mono:${normalize(theme.fonts.mono)};`);\n out.push(`--pf-text-primary:${theme.text.primary};`);\n out.push(`--pf-text-secondary:${theme.text.secondary};`);\n out.push(`--pf-text-muted:${theme.text.muted};`);\n Object.entries(theme.text.onColors).forEach(([k, v]) => out.push(`--pf-text-on-${k}:${v};`));\n Object.entries(theme.spacing).forEach(([k, v]) => out.push(`--pf-space-${k}:${typeof v === \"number\" ? `${v}px` : v};`));\n Object.entries(theme.radius).forEach(([k, v]) => out.push(`--pf-radius-${k}:${typeof v === \"number\" ? `${v}px` : v};`));\n Object.entries(theme.fontSizes).forEach(([k, v]) => out.push(`--pf-fontSize-${k}:${typeof v === \"number\" ? `${v}px` : v};`));\n Object.entries(theme.componentHeights).forEach(([k, v]) => out.push(`--pf-cmph-${k}:${typeof v === \"number\" ? `${v}px` : v};`));\n Object.entries(theme.neutral).forEach(([k, v]) => out.push(`--pf-neutral-${k}:${v};`));\n\n // surfaces\n out.push(`--pf-surface-appBg:${theme.surface.appBg};`);\n out.push(`--pf-surface-panelBg:${theme.surface.panelBg};`);\n out.push(`--pf-surface-subtleBg:${theme.surface.subtleBg};`);\n out.push(`--pf-surface-panelHover:${theme.surface.panelHover};`);\n out.push(`--pf-surface-subtleHover:${theme.surface.subtleHover};`);\n out.push(`--pf-surface-overlayBg:${theme.surface.overlayBg};`);\n out.push(`--pf-surface-border:${theme.surface.border};`);\n\n // neutral focus fallbacks\n out.push(`--pf-focus-main:var(--pf-neutral-400);`);\n out.push(mode === \"dark\" ? `--pf-focus-soft:var(--pf-neutral-200);` : `--pf-focus-soft:var(--pf-neutral-300);`);\n\n // palette vars\n Object.entries(theme.palette).forEach(([name, scale]) => {\n Object.entries(scale).forEach(([shade, val]) => {\n out.push(`--pf-palette-${name}-${shade}:${val};`);\n });\n });\n\n // per-palette focus vars\n const focusShade = \"300\";\n Object.keys(theme.palette).forEach((name) => {\n out.push(`--pf-focus-${name}-main: var(--pf-palette-${name}-${focusShade});`);\n out.push(`--pf-focus-${name}-soft: transparent;`);\n });\n\n // primary aliases\n ([\n 0, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900,\n ] as const).forEach((s) => out.push(`--pf-primary-${s}:var(--pf-palette-${primaryKey}-${s});`));\n out.push(`--pf-focus-accent-main:var(--pf-primary-300);`);\n out.push(`--pf-focus-accent-soft:transparent;`);\n\n // text-on-primary\n const onPrimary =\n theme.text.onColors[primaryKey] ??\n (() => {\n const ref = (theme.palette as Record<string, Record<string, string>>)[primaryKey]?.[\"600\"] ?? theme.palette.primary[\"600\"];\n const m = ref.replace(\"#\", \"\");\n const r = parseInt(m.slice(0, 2), 16),\n g = parseInt(m.slice(2, 4), 16),\n b = parseInt(m.slice(4, 6), 16);\n const f = (x: number): number => {\n const s = x / 255;\n return s <= 0.03928 ? s / 12.92 : Math.pow((s + 0.055) / 1.055, 2.4);\n };\n const L = 0.2126 * f(r) + 0.7152 * f(g) + 0.0722 * f(b);\n return L > 0.53 ? \"#000\" : \"#FFF\";\n })();\n out.push(`--pf-text-on-primary:${onPrimary};`);\n\n out.push(`color-scheme:${mode === \"dark\" ? \"dark\" : \"light\"};`);\n return out;\n}\n\nfunction renderVars(theme: PlainframeUITheme, primaryKey: string, mode: Mode): string {\n return buildVarPairs(theme, primaryKey, mode).join(\"\");\n}\n\n/* ───────── provider ───────── */\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n children,\n theme,\n initialMode = \"light\",\n storageKey = \"pfui:pref\",\n scope,\n}) => {\n const scoped = !!scope;\n const basePrimary = theme?.primaryKey ?? \"primary\";\n\n // stores\n const modeStore = React.useMemo(() => createStore<Mode>(\"light\"), []);\n const primaryStore = React.useMemo(() => createStore<string>(basePrimary), [basePrimary]);\n\n // wrapper + scope info\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const scopeDepthRef = useRef<number>(0);\n const scopeId = useRef<string>(scope ?? \"__root__\");\n React.useLayoutEffect((): void => {\n let depth = 0;\n let node: HTMLElement | null = wrapperRef.current;\n while (node && node !== document.body) {\n if (node.hasAttribute(\"data-pfui-scope\")) depth++;\n node = node.parentElement;\n }\n scopeDepthRef.current = depth;\n }, [scope]);\n\n // base themes\n const lightResolved = useMemo<PlainframeUITheme>(() => {\n const base = mergeTheme(defaultLightTheme, theme);\n const withLight = mergeTheme(base, theme?.light);\n const key = theme?.light?.primaryKey ?? basePrimary;\n const k = resolveAlias(key);\n const selected =\n withLight.palette.primary ?? (withLight.palette as Record<string, Record<string, string>>)[k] ?? withLight.palette.mono;\n const mergedOn = mirrorOnColors({ ...textLight(withLight.neutral).onColors, ...withLight.text.onColors });\n const onPrimary = mergedOn[k] ?? onColorFor(selected[\"600\"]);\n const nextSurface = (theme?.surface || theme?.light?.surface) ? withLight.surface : surfaceFromNeutral(\"light\", withLight.neutral);\n const baseText = (theme?.text || theme?.light?.text) ? withLight.text : textLight(withLight.neutral);\n const nextText = {\n ...baseText,\n onColors: mirrorOnColors({ ...mergedOn, primary: onPrimary, [k]: onPrimary }),\n };\n return {\n ...withLight,\n palette: {\n ...withLight.palette,\n primary: selected as typeof withLight.palette.mono,\n },\n surface: nextSurface,\n text: nextText,\n };\n }, [theme, basePrimary]);\n\n const darkResolved = useMemo<PlainframeUITheme>(() => {\n const base = mergeTheme(defaultDarkTheme, theme);\n const withDark = mergeTheme(base, theme?.dark);\n const key = theme?.dark?.primaryKey ?? basePrimary;\n const k = resolveAlias(key);\n const selected =\n withDark.palette.primary ?? (withDark.palette as Record<string, Record<string, string>>)[k] ?? withDark.palette.mono;\n const mergedOn = mirrorOnColors({ ...textDark(withDark.neutral).onColors, ...withDark.text.onColors });\n const onPrimary = mergedOn[k] ?? onColorFor(selected[\"600\"]);\n const nextSurface = (theme?.surface || theme?.dark?.surface) ? withDark.surface : surfaceFromNeutral(\"dark\", withDark.neutral);\n const baseText = (theme?.text || theme?.dark?.text) ? withDark.text : textDark(withDark.neutral);\n const nextText = {\n ...baseText,\n onColors: mirrorOnColors({ ...mergedOn, primary: onPrimary, [k]: onPrimary }),\n };\n return {\n ...withDark,\n palette: {\n ...withDark.palette,\n primary: selected as typeof withDark.palette.mono,\n },\n surface: nextSurface,\n text: nextText,\n };\n }, [theme, basePrimary]);\n\n // style tags\n const varsRef = useRef<HTMLStyleElement | null>(null);\n const guardRef = useRef<HTMLStyleElement | null>(null);\n const useIsoInsertionEffect: typeof React.useLayoutEffect =\n React.useInsertionEffect || React.useLayoutEffect;\n\n // initial mode (compute once)\n const getInitialMode = (): Mode => {\n if (!scoped) {\n try {\n const saved = JSON.parse(localStorage.getItem(storageKey) || \"null\") as { mode?: Mode } | null;\n if (saved?.mode === \"light\" || saved?.mode === \"dark\") return saved.mode;\n } catch {\n // ignore\n }\n }\n if (initialMode === \"system\") {\n return window.matchMedia?.(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n }\n return (initialMode as Mode) ?? \"light\";\n };\n const initialModeRef = useRef<Mode>(getInitialMode());\n const didInitRef = React.useRef<boolean>(false);\n\n // no-transition guard (scoped)\n const runSwitchGuard = useCallback((): void => {\n const sel = selectorFor(scope);\n ensureTag(guardRef, scoped ? `pfui-guard-${scope}` : \"pfui-guard-root\");\n if (guardRef.current) {\n guardRef.current.textContent = `${sel} *{transition:none!important;animation:none!important}`;\n requestAnimationFrame(() => {\n if (guardRef.current) guardRef.current.textContent = \"\";\n });\n }\n }, [scope, scoped]);\n\n // write var blocks every time theme changes; only set initial mode ONCE\n useIsoInsertionEffect((): void => {\n ensureTag(varsRef, scoped ? `pfui-vars-${scope}` : \"pfui-vars-root\");\n\n const keyLight = theme?.light?.primaryKey ?? theme?.primaryKey ?? basePrimary;\n const keyDark = theme?.dark?.primaryKey ?? theme?.primaryKey ?? basePrimary;\n const sel = selectorFor(scope);\n const lightCss = renderVars(lightResolved, keyLight, \"light\");\n const darkCss = renderVars(darkResolved, keyDark, \"dark\");\n if (varsRef.current) {\n varsRef.current.textContent =\n `${sel}.pf-light{${lightCss}}\\n${sel}.pf-dark{${darkCss}}` +\n (scoped ? `\\n${sel}{background:var(--pf-surface-appBg);color:var(--pf-text-primary);}` : \"\");\n }\n\n if (!didInitRef.current) {\n didInitRef.current = true;\n const host = scoped ? (wrapperRef.current as HTMLElement | null) : document.documentElement;\n host?.classList?.toggle(\"pf-dark\", initialModeRef.current === \"dark\");\n host?.classList?.toggle(\"pf-light\", initialModeRef.current !== \"dark\");\n modeStore.set(initialModeRef.current);\n }\n }, [\n lightResolved,\n darkResolved,\n theme?.primaryKey,\n theme?.light?.primaryKey,\n theme?.dark?.primaryKey,\n scope,\n scoped,\n basePrimary,\n modeStore,\n ]);\n\n /* ───────── ACTIVE SCOPE ROUTING (for portals) ───────── */\n type ActiveScope = { id: string; depth: number; ts: number };\n const setActiveScope = useCallback((): void => {\n (window as unknown as { __pfuiActiveScope?: ActiveScope }).__pfuiActiveScope = {\n id: scopeId.current,\n depth: scopeDepthRef.current,\n ts: Date.now(),\n };\n }, []);\n const attachActiveScopeListeners = useCallback((): (() => void) => {\n const host = scoped ? (wrapperRef.current as HTMLElement | null) : document.documentElement;\n const opts: AddEventListenerOptions = { capture: true };\n const mark = (): void => setActiveScope();\n host?.addEventListener(\"pointerdown\", mark, opts);\n host?.addEventListener(\"mouseenter\", mark, opts);\n host?.addEventListener(\"focusin\", mark, opts);\n host?.addEventListener(\"keydown\", mark, opts);\n return () => {\n host?.removeEventListener(\"pointerdown\", mark, opts);\n host?.removeEventListener(\"mouseenter\", mark, opts);\n host?.removeEventListener(\"focusin\", mark, opts);\n host?.removeEventListener(\"keydown\", mark, opts);\n };\n }, [scoped, setActiveScope]);\n\n const claimIfActiveScope = useCallback(\n (el: HTMLElement): void => {\n const act = (window as unknown as { __pfuiActiveScope?: ActiveScope }).__pfuiActiveScope;\n const fresh = act && Date.now() - act.ts < 1500;\n if (!act || !fresh) return;\n if (act.id !== scopeId.current) return;\n\n const m = modeStore.get();\n const pk = primaryStore.get();\n const t = m === \"light\" ? lightResolved : darkResolved;\n const cssVars = buildVarPairs(t, pk, m).join(\"\");\n el.style.cssText += `;${cssVars}`;\n el.classList.toggle(\"pf-light\", m === \"light\");\n el.classList.toggle(\"pf-dark\", m === \"dark\");\n el.setAttribute(\"data-pfui-portal-owner\", scopeId.current);\n },\n [modeStore, primaryStore, lightResolved, darkResolved]\n );\n\n const looksLikePortalRoot = (el: HTMLElement): boolean => {\n if (el.getAttribute(\"data-floating-ui-portal\") === \"true\") return true;\n if (el.getAttribute(\"data-radix-portal\") === \"true\") return true;\n if (el.getAttribute(\"data-portal\") === \"true\") return true;\n const role = el.getAttribute(\"role\");\n if (role === \"tooltip\" || role === \"dialog\") return true;\n const cs = window.getComputedStyle(el);\n return cs.position === \"fixed\" || cs.position === \"absolute\";\n };\n\n const watchPortals = useCallback((): (() => void) => {\n const mo = new MutationObserver((recs) => {\n for (const r of recs) {\n r.addedNodes.forEach((n) => {\n if (!(n instanceof HTMLElement)) return;\n if (looksLikePortalRoot(n)) claimIfActiveScope(n);\n n.querySelectorAll<HTMLElement>(\n '[data-floating-ui-portal=\"true\"],[data-radix-portal=\"true\"],[data-portal=\"true\"],[role=\"tooltip\"],[role=\"dialog\"]'\n ).forEach((el) => claimIfActiveScope(el));\n });\n }\n });\n mo.observe(document.body, { childList: true, subtree: true });\n return () => mo.disconnect();\n }, [claimIfActiveScope]);\n\n React.useEffect((): (() => void) => {\n const detachActive = attachActiveScopeListeners();\n const disconnectMO = watchPortals();\n return () => {\n detachActive();\n disconnectMO();\n };\n }, [attachActiveScopeListeners, watchPortals]);\n\n /* ───────── helpers to update BOTH wrapper + portals ───────── */\n const applyVarsToWrapper = useCallback(\n (m: Mode): void => {\n const host = scoped ? (wrapperRef.current as HTMLElement | null) : document.documentElement;\n const pk = primaryStore.get();\n const t = m === \"light\" ? lightResolved : darkResolved;\n const cssVars = buildVarPairs(t, pk, m).join(\"\");\n if (host) {\n host.style.cssText += `;${cssVars}`;\n host.classList.toggle(\"pf-light\", m === \"light\");\n host.classList.toggle(\"pf-dark\", m === \"dark\");\n }\n },\n [scoped, lightResolved, darkResolved, primaryStore]\n );\n\n const applyVarsToOwnedPortals = useCallback(\n (m: Mode): void => {\n const pk = primaryStore.get();\n const t = m === \"light\" ? lightResolved : darkResolved;\n const cssVars = buildVarPairs(t, pk, m).join(\"\");\n document\n .querySelectorAll<HTMLElement>(`[data-pfui-portal-owner=\"${scopeId.current}\"]`)\n .forEach((el) => {\n el.style.cssText += `;${cssVars}`;\n el.classList.toggle(\"pf-light\", m === \"light\");\n el.classList.toggle(\"pf-dark\", m === \"dark\");\n });\n },\n [lightResolved, darkResolved, primaryStore]\n );\n\n /* ───────── actions ───────── */\n const setMode = useCallback(\n (m: Mode): void => {\n if (modeStore.get() === m) return;\n runSwitchGuard();\n modeStore.set(m);\n applyVarsToWrapper(m);\n applyVarsToOwnedPortals(m);\n\n if (!scoped) {\n try {\n const prev = JSON.parse(localStorage.getItem(storageKey) || \"{}\") as Record<string, unknown>;\n localStorage.setItem(storageKey, JSON.stringify({ ...prev, mode: m }));\n } catch {\n // ignore\n }\n }\n },\n [modeStore, scoped, storageKey, runSwitchGuard, applyVarsToWrapper, applyVarsToOwnedPortals]\n );\n\n const toggleMode = useCallback((): void => setMode(modeStore.get() === \"light\" ? \"dark\" : \"light\"), [setMode, modeStore]);\n\n const setPrimary = useCallback(\n (key: string): void => {\n primaryStore.set(key);\n\n const sel = selectorFor(scope);\n const lightCss = renderVars(lightResolved, key, \"light\");\n const darkCss = renderVars(darkResolved, key, \"dark\");\n if (varsRef.current) {\n varsRef.current.textContent =\n `${sel}.pf-light{${lightCss}}\\n${sel}.pf-dark{${darkCss}}` +\n (scoped ? `\\n${sel}{background:var(--pf-surface-appBg);color:var(--pf-text-primary);}` : \"\");\n }\n\n runSwitchGuard();\n const m = modeStore.get();\n applyVarsToWrapper(m);\n applyVarsToOwnedPortals(m);\n\n if (!scoped) {\n try {\n const prev = JSON.parse(localStorage.getItem(storageKey) || \"{}\") as Record<string, unknown>;\n localStorage.setItem(storageKey, JSON.stringify({ ...prev, primary: key }));\n } catch {\n // ignore\n }\n }\n },\n [lightResolved, darkResolved, scope, scoped, modeStore, primaryStore, runSwitchGuard, applyVarsToWrapper, applyVarsToOwnedPortals]\n );\n\n /* ───────── content ───────── */\n const content = (\n <BaseResolvedContext.Provider value={{ light: lightResolved, dark: darkResolved }}>\n <ModeStoreContext.Provider value={modeStore}>\n <PrimaryStoreContext.Provider value={primaryStore}>\n <ModeActionsContext.Provider value={{ setMode, toggleMode }}>\n <PrimaryActionsContext.Provider value={{ setPrimary }}>\n <EmotionThemeProvider theme={toVarTheme(lightResolved) as unknown}>\n {children}\n </EmotionThemeProvider>\n </PrimaryActionsContext.Provider>\n </ModeActionsContext.Provider>\n </PrimaryStoreContext.Provider>\n </ModeStoreContext.Provider>\n </BaseResolvedContext.Provider>\n );\n\n if (scoped) {\n return (\n <div\n ref={wrapperRef}\n data-pfui-scope={scope}\n style={{ background: \"var(--pf-surface-appBg)\", color: \"var(--pf-text-primary)\" }}\n >\n {content}\n </div>\n );\n }\n return <div ref={wrapperRef}>{content}</div>;\n};\n\nfunction toVarTheme(src: PlainframeUITheme): PlainframeUITheme {\n const mapObj = <V,>(o: Record<string, V>, p: (k: string) => string): Record<string, string> =>\n Object.fromEntries(Object.keys(o).map((k) => [k, p(k)])) as Record<string, string>;\n const spacing = mapObj(src.spacing, (k) => `var(--pf-space-${k})`);\n const radius = mapObj(src.radius, (k) => `var(--pf-radius-${k})`);\n const fontSz = mapObj(src.fontSizes, (k) => `var(--pf-fontSize-${k})`);\n const heights = mapObj(src.componentHeights, (k) => `var(--pf-cmph-${k})`);\n const fonts = { sans: \"var(--pf-font-sans)\", mono: \"var(--pf-font-mono)\" };\n const neutral = mapObj(src.neutral, (k) => `var(--pf-neutral-${k})`);\n\n const palette: Record<string, Record<string, string>> = {};\n Object.keys(src.palette).forEach((name) => {\n palette[name] = {};\n Object.keys((src.palette as Record<string, Record<string, string>>)[name]).forEach((sh) => {\n (palette as Record<string, Record<string, string>>)[name][sh] = `var(--pf-palette-${name}-${sh})`;\n });\n });\n // primary alias map\n palette.primary = Object.fromEntries(\n [\"0\", \"50\", \"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"700\", \"800\", \"900\"].map((s) => [s, `var(--pf-primary-${s})`])\n );\n\n return {\n ...src,\n spacing: spacing as unknown as PlainframeUITheme[\"spacing\"],\n radius: radius as unknown as PlainframeUITheme[\"radius\"],\n fontSizes: fontSz as unknown as PlainframeUITheme[\"fontSizes\"],\n componentHeights: heights as unknown as PlainframeUITheme[\"componentHeights\"],\n fonts,\n neutral: neutral as unknown as PlainframeUITheme[\"neutral\"],\n palette: palette as unknown as PlainframeUITheme[\"palette\"],\n surface: {\n appBg: \"var(--pf-surface-appBg)\",\n panelBg: \"var(--pf-surface-panelBg)\",\n subtleBg: \"var(--pf-surface-subtleBg)\",\n panelHover: \"var(--pf-surface-panelHover)\",\n subtleHover: \"var(--pf-surface-subtleHover)\",\n overlayBg: \"var(--pf-surface-overlayBg)\",\n border: \"var(--pf-surface-border)\",\n },\n text: {\n primary: \"var(--pf-text-primary)\",\n secondary: \"var(--pf-text-secondary)\",\n muted: \"var(--pf-text-muted)\",\n onColors: Object.fromEntries(\n Object.keys(mirrorOnColors(src.text.onColors)).map((k) => [k, `var(--pf-text-on-${k})`])\n ) as Record<string, string>,\n },\n };\n}\n","/** @jsxImportSource @emotion/react */\nimport { css, type SerializedStyles } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\n\ntype FocusMode = \"always\" | \"visible\" | \"none\";\n\nexport type FocusOpts = {\n color?: string; // \"neutral\" | \"primary\" | any palette key\n outlineWidth?: number;\n haloWidth?: number;\n offset?: number;\n enabled?: boolean;\n disabled?: boolean;\n mode?: FocusMode; // \"visible\" is default focus-visible, \"always\" uses :focus\n};\n\nconst pickScaleKey = (theme: any, key?: string): string => {\n const pal = theme?.palette ?? {};\n if (!key || key === \"neutral\") return \"neutral\";\n return pal[key] ? key : \"neutral\";\n};\n\nconst pickFocusColors = (theme: any, colorKey?: string): { soft: string; main: string } => {\n const key = pickScaleKey(theme, colorKey);\n\n if (key === \"neutral\") {\n return { soft: \"var(--pf-focus-soft)\", main: \"var(--pf-focus-main)\" };\n }\n if (colorKey === \"primary\") {\n // Accent follows current primary (theme provider writes these vars instantly)\n return { soft: \"var(--pf-focus-accent-soft)\", main: \"var(--pf-focus-accent-main)\" };\n }\n // per-palette focus vars emitted by ThemeProvider.buildVarPairs\n return {\n soft: `var(--pf-focus-${key}-soft, transparent)`,\n main: `var(--pf-focus-${key}-main)`,\n };\n};\n\nexport function useFocusRing(): (opts?: FocusOpts) => SerializedStyles {\n const theme = usePlainframeUITheme();\n\n return (opts?: FocusOpts) => {\n const enabled = (opts?.enabled ?? true) && !opts?.disabled;\n if (!enabled || opts?.mode === \"none\") return css({});\n\n const key = pickScaleKey(theme, opts?.color);\n const { soft, main } = pickFocusColors(theme, opts?.color);\n\n const outlineW =\n opts?.outlineWidth ?? (key === \"primary\" || key === \"danger\" ? 3.5 : 1.5);\n const haloW = opts?.haloWidth ?? 3;\n const offset =\n opts?.offset ?? (key === \"primary\" || key === \"danger\" ? -1.5 : -outlineW);\n\n const focusSel = opts?.mode === \"always\" ? \"&:focus\" : \"&:focus-visible\";\n\n const base: Record<string, any> = {\n outline: \"1px solid transparent\",\n boxShadow: \"0 0 0 0 transparent\",\n outlineOffset: offset,\n transition:\n \"box-shadow .16s ease, opacity .16s ease, outline .16s ease, outline-offset .16s ease\",\n \":root.pf-mode-switching &\": { transition: \"none !important\" },\n \"&[disabled], &[aria-disabled='true'], &[data-disabled='true']\": {\n outline: \"0 !important\",\n boxShadow: \"none !important\",\n outlineOffset: 0,\n },\n };\n\n base[focusSel] = {\n boxShadow: `0 0 0 ${haloW}px ${soft}`,\n outline: `${outlineW}px solid ${main}`,\n outlineOffset: offset,\n zIndex: 10000,\n };\n\n return css(base);\n };\n}\n\nexport function useFocusWithinRing(): (opts?: FocusOpts) => SerializedStyles {\n const theme = usePlainframeUITheme();\n\n return (opts?: FocusOpts) => {\n const enabled = (opts?.enabled ?? true) && !opts?.disabled;\n if (!enabled || opts?.mode === \"none\") return css({});\n\n const { soft, main } = pickFocusColors(theme, opts?.color);\n const outlineW = opts?.outlineWidth ?? 1.5;\n const haloW = opts?.haloWidth ?? 3;\n const offset = opts?.offset ?? -outlineW;\n\n const withinSel = opts?.mode === \"always\" ? \"&:focus-within\" : \"&:has(:focus-visible)\";\n\n const base: Record<string, any> = {\n outline: \"1.5px solid transparent\",\n boxShadow: \"0 0 0 0 transparent\",\n outlineOffset: offset,\n position: \"relative\",\n transition:\n \"box-shadow .16s ease, opacity .16s ease, outline .16s ease, outline-offset .16s ease\",\n \":root.pf-mode-switching &\": { transition: \"none !important\" },\n \"&[disabled], &[aria-disabled='true'], &[data-disabled='true']\": {\n outline: \"0 !important\",\n boxShadow: \"none !important\",\n outlineOffset: 0,\n },\n };\n\n base[withinSel] = {\n boxShadow: `0 0 0 ${haloW}px ${soft}`,\n outline: `${outlineW}px solid ${main}`,\n outlineOffset: offset,\n zIndex: 1000,\n };\n\n return css(base);\n };\n}\n","/** @jsxImportSource @emotion/react */\nimport React, {\n useState,\n useLayoutEffect,\n useEffect,\n useRef,\n cloneElement,\n isValidElement,\n useId,\n} from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { useFocusRing } from \"../utils/focusRing\";\n\ntype AccordionVariant = \"subtle\" | \"outlined\" | \"ghost\";\ntype WithCss = { css?: Interpolation<Theme> };\n\ntype AccordionProps = WithCss & {\n expanded?: boolean;\n defaultExpanded?: boolean;\n onChange?: (expanded: boolean) => void;\n className?: string;\n variant?: AccordionVariant;\n disabled?: boolean;\n width?: number | string;\n children: React.ReactNode;\n};\n\nconst toLen = (v: number | string | undefined) =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nconst getSlot = (el: React.ReactElement): string => {\n const t = el.type as { __PFUI_SLOT?: string; displayName?: string; name?: string } | undefined;\n return t?.__PFUI_SLOT || t?.displayName || t?.name || \"\";\n};\n\nexport const Accordion: React.FC<AccordionProps> = ({\n expanded: controlledExpanded,\n defaultExpanded = false,\n onChange,\n className,\n variant = \"subtle\",\n disabled = false,\n width,\n css: userCss,\n children,\n}) => {\n const theme = usePlainframeUITheme();\n const detailsId = useId();\n\n const radius = theme.radius?.md;\n const T = theme.text;\n const borderW = theme.componentHeights?.border ?? 1;\n const borderWStr = toLen(borderW) ?? \"1px\";\n\n const isControlled = controlledExpanded !== undefined;\n const [uncontrolled, setUncontrolled] = useState(!!defaultExpanded);\n const expanded = isControlled ? !!controlledExpanded : uncontrolled;\n\n const focusRing = useFocusRing();\n\n const [maxH, setMaxH] = useState(0);\n const [ready, setReady] = useState(false);\n\n const measureRef = useRef<HTMLDivElement>(null);\n\n const toggle = () => {\n if (disabled) return;\n if (isControlled) {\n onChange?.(!controlledExpanded);\n } else {\n setUncontrolled(prev => {\n const next = !prev;\n onChange?.(next);\n return next;\n });\n }\n };\n\n const arr = React.Children.toArray(children).filter(\n (c): c is React.ReactElement => isValidElement(c)\n );\n\n let summaryIdx = arr.findIndex(el => getSlot(el) === \"AccordionSummary\");\n let detailsIdx = arr.findIndex(el => getSlot(el) === \"AccordionDetails\");\n\n if (summaryIdx === -1 && arr.length) summaryIdx = 0;\n if (detailsIdx === -1) {\n detailsIdx = arr.findIndex((_, i) => i !== summaryIdx);\n if (detailsIdx === -1 && arr.length >= 2) detailsIdx = 1;\n }\n\n const summaryEl = arr[summaryIdx] ?? null;\n const detailsEl = arr[detailsIdx] ?? null;\n\n const bg =\n variant === \"subtle\"\n ? theme.surface.subtleBg\n : variant === \"outlined\"\n ? (theme.surface.panelBg as string)\n : \"transparent\";\n\n const rootCss = css({\n backgroundColor: bg,\n color: T.primary,\n borderRadius: radius,\n outline:\n variant === \"outlined\"\n ? `${borderWStr} solid ${theme.surface.border}`\n : `${borderWStr} solid transparent`,\n outlineOffset: `-${borderWStr}`,\n marginBottom: theme.spacing.sm,\n maxWidth: width != null ? toLen(width) : undefined,\n overflow: \"hidden\",\n boxSizing: \"border-box\",\n cursor: disabled ? \"not-allowed\" : \"default\",\n opacity: disabled ? 0.55 : 1,\n });\n\n useLayoutEffect(() => {\n const el = measureRef.current;\n if (!el) return;\n setMaxH(el.scrollHeight);\n }, [expanded, children]);\n\n useEffect(() => {\n const el = measureRef.current;\n if (!el) return;\n const ro = new ResizeObserver(() => setMaxH(el.scrollHeight));\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n useEffect(() => {\n if (maxH > 0 && !ready) setReady(true);\n }, [maxH, ready]);\n\n const clipCss = css({\n maxHeight: expanded ? (maxH ? maxH : \"none\") : 0,\n overflow: expanded && !ready ? \"visible\" : \"hidden\",\n transition: ready ? \"max-height 0.36s cubic-bezier(.25,.8,.4,1)\" : \"none\",\n willChange: ready ? \"max-height\" : undefined,\n });\n\n const innerCss = css({\n opacity: expanded ? 1 : 0,\n transform: expanded ? \"translateY(0)\" : \"translateY(1rem)\",\n transition: ready ? \"transform 0.28s ease, opacity 0.28s ease\" : \"none\",\n pointerEvents: expanded ? \"auto\" : \"none\",\n });\n\n const summary =\n summaryEl &&\n cloneElement(\n summaryEl,\n {\n ...(typeof summaryEl.props === \"object\" && summaryEl.props ? summaryEl.props : {}),\n expanded,\n disabled,\n onClick: toggle,\n role: \"presentation\",\n tabIndex: -1,\n } as Partial<typeof summaryEl.props> & Record<string, unknown>\n );\n\n const details =\n detailsEl &&\n cloneElement(\n detailsEl,\n typeof detailsEl.props === \"object\" && detailsEl.props ? { ...detailsEl.props } : {}\n );\n\n return (\n <div\n className={[\n \"plainframe-ui-accordion\",\n `plainframe-ui-accordion-${variant}`,\n className || \"\",\n ]\n .join(\" \")\n .trim()}\n data-variant={variant}\n data-expanded={expanded ? \"true\" : \"false\"}\n css={[focusRing(), rootCss, userCss]}\n tabIndex={disabled ? -1 : 0}\n role=\"button\"\n aria-expanded={expanded}\n aria-controls={detailsId}\n aria-disabled={disabled || undefined}\n onKeyDown={e => {\n if (disabled) return;\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n toggle();\n }\n }}\n >\n <div tabIndex={-1} className=\"plainframe-ui-accordion-summary-wrapper\">\n {summary}\n </div>\n\n <div\n id={detailsId}\n aria-hidden={!expanded}\n className=\"plainframe-ui-accordion-details-clip\"\n css={clipCss}\n tabIndex={-1}\n >\n <div\n ref={measureRef}\n className=\"plainframe-ui-accordion-details-inner\"\n css={innerCss}\n >\n {details}\n </div>\n </div>\n </div>\n );\n};\n\nAccordion.displayName = \"Accordion\";\n","/** @jsxImportSource @emotion/react */\nimport React, { forwardRef } from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { ChevronDown } from \"lucide-react\";\n\ntype WithCss = { css?: Interpolation<Theme> };\n\ntype AccordionSummaryProps = WithCss & {\n children?: React.ReactNode;\n expandIcon?: React.ReactNode;\n onClick?: (e: React.MouseEvent) => void;\n expanded?: boolean;\n disabled?: boolean;\n className?: string;\n noExpandIcon?: boolean;\n expandIconPosition?: \"left\" | \"right\";\n};\n\nexport const AccordionSummary: React.ForwardRefExoticComponent<\n AccordionSummaryProps & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, AccordionSummaryProps>(\n (\n {\n children,\n expandIcon,\n onClick,\n expanded,\n disabled,\n className,\n noExpandIcon,\n expandIconPosition = \"right\",\n css: userCss,\n },\n ref\n ) => {\n const theme = usePlainframeUITheme();\n\n const fontSize = theme.fontSizes.md;\n const iconSize = 20;\n const gap = 10;\n const paddingX = theme.spacing.lg;\n const paddingY = theme.spacing.md;\n\n const rowH = Number(theme.componentHeights?.md);\n const N = theme.neutral;\n const T = theme.text;\n\n const iconColor = disabled ? (T.secondary as string) : theme.text.secondary;\n\n const baseCss = css({\n display: \"flex\",\n alignItems: \"center\",\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n outline: \"none\",\n userSelect: \"none\",\n fontWeight: 500,\n minHeight: rowH,\n padding: `${paddingY} ${paddingX}`,\n gap,\n fontSize,\n color: disabled ? N[500] : T.primary,\n });\n\n const contentCss = css({\n flex: 1,\n minWidth: 0,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n });\n\n const leftIconCss = css({ marginRight: 8, marginLeft: -4, lineHeight: 0 });\n const rightIconCss = css({ marginLeft: 14, marginRight: -4, lineHeight: 0 });\n const chevronCss = css({\n transition: \"transform 0.3s cubic-bezier(.6,1.3,.5,1)\",\n transform: expanded ? \"rotate(180deg)\" : \"rotate(0deg)\",\n });\n\n return (\n <div\n ref={ref}\n role=\"button\"\n aria-expanded={!!expanded}\n aria-disabled={disabled || undefined}\n tabIndex={-1}\n className={[\"plainframe-ui-accordion-summary\", className || \"\"]\n .join(\" \")\n .trim()}\n css={[baseCss, userCss]}\n onClick={disabled ? undefined : onClick}\n onKeyDown={e => {\n if (!disabled && (e.key === \" \" || e.key === \"Enter\")) {\n e.preventDefault();\n onClick?.(e as unknown as React.MouseEvent);\n }\n }}\n >\n {!noExpandIcon && expandIconPosition === \"left\" && (\n <span\n className=\"plainframe-ui-accordion-expander-left\"\n css={[leftIconCss, chevronCss]}\n >\n {expandIcon ?? (\n <ChevronDown\n strokeWidth={2.125}\n css={{ width: iconSize, height: iconSize }}\n color={iconColor}\n />\n )}\n </span>\n )}\n\n <span className=\"plainframe-ui-accordion-content\" css={contentCss}>\n {children}\n </span>\n\n {!noExpandIcon && expandIconPosition === \"right\" && (\n <span\n className=\"plainframe-ui-accordion-expander-right\"\n css={[rightIconCss, chevronCss]}\n >\n {expandIcon ?? (\n <ChevronDown\n strokeWidth={2.125}\n css={{ width: iconSize, height: iconSize }}\n color={iconColor}\n />\n )}\n </span>\n )}\n </div>\n );\n }\n);\n\n(AccordionSummary as unknown as { __PFUI_SLOT: string }).__PFUI_SLOT = \"AccordionSummary\";\nAccordionSummary.displayName = \"AccordionSummary\";\n","/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\n\ntype WithCss = { css?: Interpolation<Theme> };\n\ntype AccordionDetailsProps = {\n children?: React.ReactNode;\n className?: string;\n} & WithCss;\n\nexport const AccordionDetails: React.FC<AccordionDetailsProps> = ({\n children,\n className,\n css: userCss,\n}) => {\n const theme = usePlainframeUITheme();\n\n const fontSize = theme.fontSizes.md;\n const paddingX = theme.spacing.lg;\n const paddingY = \"0.15rem\";\n const paddingBottom = theme.spacing.md;\n\n const baseCss = css({\n padding: `${paddingY} ${paddingX} ${paddingBottom} ${paddingX}`,\n fontSize,\n boxSizing: \"border-box\",\n minHeight: 0,\n });\n\n return (\n <div\n className={[\"plainframe-ui-accordion-details\", className || \"\"]\n .join(\" \")\n .trim()}\n css={[baseCss, userCss]}\n tabIndex={-1}\n >\n {children}\n </div>\n );\n};\n\n(AccordionDetails as unknown as { __PFUI_SLOT: string }).__PFUI_SLOT = \"AccordionDetails\";\nAccordionDetails.displayName = \"AccordionDetails\";\n","/** @jsxImportSource @emotion/react */\nimport React, { Children, cloneElement, isValidElement } from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\n\ntype Variant = \"subtle\" | \"outlined\" | \"ghost\";\ntype WithCssProp = { css?: Interpolation<Theme> };\n\ntype AccordionGroupProps = WithCssProp & {\n children: React.ReactNode;\n attached?: boolean;\n variant?: Variant;\n exclusive?: boolean;\n expandedIndex?: number | null;\n defaultExpandedIndex?: number | null;\n onExpandedIndexChange?: (index: number | null) => void;\n disabled?: boolean;\n width?: number | string;\n className?: string;\n role?: React.AriaRole;\n};\n\ntype AccordionLikeProps = {\n variant?: Variant;\n expanded?: boolean;\n defaultExpanded?: boolean;\n onChange?: (expanded: boolean) => void;\n disabled?: boolean;\n width?: number | string;\n css?: Interpolation<Theme>;\n className?: string;\n};\n\nconst isEl = (n: unknown): n is React.ReactElement => isValidElement(n);\nconst nameOf = (n: unknown) =>\n isEl(n)\n ? (n.type as { displayName?: string; name?: string })?.displayName ||\n (n.type as { name?: string })?.name\n : undefined;\n\nconst isAccordion = (n: unknown): n is React.ReactElement<AccordionLikeProps> =>\n nameOf(n) === \"Accordion\";\n\nconst toLen = (v: number | string | undefined) =>\n typeof v === \"number\" ? `${v}px` : v;\n\nconst toPx = (v: number | string | undefined, fallback = 1) => {\n if (v == null) return `${fallback}px`;\n if (typeof v === \"number\") return `${v}px`;\n return /^\\d+(\\.\\d+)?$/.test(v) ? `${v}px` : v;\n};\n\nexport const AccordionGroup: React.FC<AccordionGroupProps> = ({\n children,\n attached = false,\n variant,\n exclusive = false,\n expandedIndex,\n defaultExpandedIndex,\n onExpandedIndexChange,\n disabled = false,\n width,\n className,\n role = \"group\",\n css: userCss,\n}) => {\n const theme = usePlainframeUITheme();\n const nodes = Children.toArray(children);\n const accs = nodes.filter(isAccordion) as React.ReactElement<AccordionLikeProps>[];\n const count = accs.length;\n\n const isControlled = exclusive && expandedIndex !== undefined;\n const [internalIndex, setInternalIndex] = React.useState<number | null>(() => {\n if (!exclusive) return null;\n if (defaultExpandedIndex !== undefined) return defaultExpandedIndex;\n for (let i = 0; i < accs.length; i++) {\n const p = accs[i].props;\n if (p.expanded || p.defaultExpanded) return i;\n }\n return null;\n });\n const activeIndex = exclusive ? (isControlled ? expandedIndex ?? null : internalIndex) : null;\n\n const bw = toPx(theme.componentHeights?.border, 1);\n const borderColor = theme.surface.border;\n const radius = theme.radius.md;\n\n const forcedVariant = variant;\n const isOutlined = forcedVariant === \"outlined\";\n\n const rootCss = css({\n display: \"flex\",\n flexDirection: \"column\",\n width: width != null ? toLen(width) : \"auto\",\n gap: attached ? 0 : theme.spacing.sm,\n border: attached && isOutlined ? `${bw} solid ${borderColor}` : \"none\",\n borderRadius: attached && isOutlined ? radius : undefined,\n background: attached && isOutlined ? theme.surface.panelBg : \"transparent\",\n overflow: attached && isOutlined ? \"hidden\" : \"visible\",\n });\n\n let logical = 0;\n const out: React.ReactNode[] = [];\n\n nodes.forEach((node, i) => {\n if (!isAccordion(node)) {\n out.push(node);\n return;\n }\n\n const props = node.props as AccordionLikeProps;\n const idx = logical++;\n const isFirst = idx === 0;\n const isLast = idx === count - 1;\n\n const nextVariant: Variant | undefined = forcedVariant ?? props.variant;\n\n const roundCss = attached\n ? css({\n width: \"100%\",\n marginBottom: 0,\n borderTopLeftRadius: isFirst ? radius : 0,\n borderTopRightRadius: isFirst ? radius : 0,\n borderBottomLeftRadius: isLast ? radius : 0,\n borderBottomRightRadius: isLast ? radius : 0,\n })\n : css({ width: \"100%\", marginBottom: 0 });\n\n const separatorCss =\n !isFirst && count > 1 && attached\n ? css({\n borderTop: `${bw} solid ${borderColor}`,\n })\n : null;\n\n const killChildOutline =\n isOutlined\n ? css({\n borderLeft: \"0 !important\",\n borderRight: \"0 !important\",\n borderBottom: \"0 !important\",\n outline: \"0 !important\",\n })\n : null;\n\n const injected: Partial<AccordionLikeProps> = {\n variant: nextVariant,\n disabled: disabled || !!props.disabled,\n width: \"100%\",\n css: [props.css, roundCss, killChildOutline, separatorCss],\n className: [props.className, \"plainframe-ui-accordion-group-item\"].filter(Boolean).join(\" \"),\n };\n\n if (exclusive) {\n const userOnChange = props.onChange;\n const active = activeIndex === idx;\n injected.expanded = active;\n injected.defaultExpanded = undefined;\n injected.onChange = (next) => {\n const nextIdx = next ? idx : null;\n if (!isControlled) setInternalIndex(nextIdx);\n onExpandedIndexChange?.(nextIdx);\n userOnChange?.(next);\n };\n }\n\n out.push(\n cloneElement(node, {\n ...props,\n ...injected,\n key: node?.key ?? i,\n })\n );\n });\n\n return (\n <div\n role={role}\n aria-orientation=\"vertical\"\n data-attached={attached || undefined}\n data-exclusive={exclusive || undefined}\n className={[\"plainframe-ui-accordion-group\", className || \"\"].join(\" \").trim()}\n css={[rootCss, userCss]}\n >\n {out}\n </div>\n );\n};\n\nAccordionGroup.displayName = \"AccordionGroup\";\n","/** @jsxImportSource @emotion/react */\nimport React, { useEffect, useRef } from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\n\ntype WithCss = { css?: Interpolation<Theme> };\nconst toLen = (v?: number | string) =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\ntype VerticalAlign = \"top\" | \"center\" | \"bottom\";\ntype HorizontalAlign = \"left\" | \"center\" | \"right\";\ntype SpaceToken = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\ntype RadiusToken = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nfunction resolvePadding(\n padding: ActionBarProps[\"padding\"],\n theme: { spacing?: Record<string, number | string>; space?: Record<string, number | string> }\n) {\n if (padding == null) return undefined;\n if (typeof padding === \"number\") return `${padding}px`;\n if (typeof padding === \"string\") {\n if ([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"].includes(padding)) {\n const val =\n (theme.spacing && theme.spacing[padding]) ??\n (theme.space && theme.space[padding]);\n return toLen(val ?? padding);\n }\n return padding;\n }\n return undefined;\n}\n\nfunction resolveRadius(\n radius: ActionBarProps[\"radius\"],\n theme: { radius?: Record<string, number | string>; radii?: Record<string, number | string> }\n) {\n if (radius == null) return undefined;\n if (typeof radius === \"number\") return `${radius}px`;\n if (typeof radius === \"string\") {\n if ([\"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"full\"].includes(radius)) {\n const val =\n (theme.radius && theme.radius[radius]) ||\n (theme.radii && theme.radii[radius]);\n return toLen(val ?? radius);\n }\n return radius;\n }\n return undefined;\n}\n\nexport type ActionBarAnchorOrigin = {\n vertical?: \"top\" | \"bottom\" | \"center\";\n horizontal?: \"left\" | \"right\" | \"center\";\n};\n\nexport type ActionBarProps = WithCss & {\n children: React.ReactNode;\n\n anchorOrigin?: ActionBarAnchorOrigin;\n\n padding?: number | string | SpaceToken;\n radius?: number | string | RadiusToken;\n gap?: number | string;\n offset?: number | string;\n offsetX?: number | string;\n offsetY?: number | string;\n shadow?: boolean;\n width?: number | string;\n height?: number | string;\n open?: boolean;\n unstyled?: boolean;\n containerCss?: Interpolation<Theme>;\n containerClassName?: string;\n className?: string;\n};\n\nexport const ActionBar: React.FC<ActionBarProps> = ({\n children,\n anchorOrigin = { vertical: \"bottom\", horizontal: \"center\" },\n padding,\n radius,\n gap,\n offset,\n offsetX,\n offsetY,\n shadow = true,\n width,\n height,\n open = true,\n unstyled = false,\n css: userCss,\n className,\n containerCss,\n containerClassName,\n}) => {\n const theme = usePlainframeUITheme();\n const contentRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const el = contentRef.current;\n if (!el) return;\n if (!open) {\n if (el.contains(document.activeElement)) (document.activeElement as HTMLElement | null)?.blur?.();\n el.setAttribute(\"inert\", \"\");\n el.setAttribute(\"aria-hidden\", \"true\");\n } else {\n el.removeAttribute(\"inert\");\n el.removeAttribute(\"aria-hidden\");\n }\n }, [open]);\n\n const hAlign: HorizontalAlign = anchorOrigin.horizontal ?? \"center\";\n const vAlign: VerticalAlign = anchorOrigin.vertical ?? \"bottom\";\n\n const borderToken = theme.componentHeights?.border ?? 1;\n const borderWidth = typeof borderToken === \"number\" ? `${borderToken}px` : borderToken;\n const surfaceBg = theme.surface.panelBg as string;\n const surfaceBorder = `${borderWidth} solid ${theme.surface.border}`;\n\n const offXVal = offsetX ?? offset ?? theme.spacing.lg;\n const offYVal = offsetY ?? offset ?? theme.spacing.lg;\n\n const containerStyles = css({\n position: \"fixed\",\n insetInline: 0,\n top: 0,\n bottom: 0,\n display: \"flex\",\n justifyContent: hAlign === \"left\" ? \"flex-start\" : hAlign === \"right\" ? \"flex-end\" : \"center\",\n alignItems: vAlign === \"top\" ? \"flex-start\" : vAlign === \"bottom\" ? \"flex-end\" : \"center\",\n width: \"100%\",\n zIndex: 1000,\n pointerEvents: \"none\",\n });\n\n let closedTransform: string;\n let openTransform: string;\n\n if (hAlign === \"left\") {\n closedTransform = \"translateX(-100%) scale(0.98)\";\n openTransform = \"translateX(0) scale(1)\";\n } else if (hAlign === \"right\") {\n closedTransform = \"translateX(100%) scale(0.98)\";\n openTransform = \"translateX(0) scale(1)\";\n } else {\n if (vAlign === \"top\") {\n closedTransform = \"translateY(-100%) scale(0.98)\";\n openTransform = \"translateY(0) scale(1)\";\n } else if (vAlign === \"bottom\") {\n closedTransform = \"translateY(100%) scale(0.98)\";\n openTransform = \"translateY(0) scale(1)\";\n } else {\n closedTransform = \"scale(0.95)\";\n openTransform = \"scale(1)\";\n }\n }\n\n const resolvedPadding = resolvePadding(padding, theme) ?? theme.spacing.sm;\n const resolvedRadius = resolveRadius(radius, theme) ?? (theme.radius.lg as string);\n\n const contentStyles = css({\n marginInline: toLen(offXVal),\n marginTop: vAlign === \"top\" || vAlign === \"center\" ? toLen(offYVal) : undefined,\n marginBottom: vAlign === \"bottom\" || vAlign === \"center\" ? toLen(offYVal) : undefined,\n\n padding: unstyled ? undefined : resolvedPadding,\n background: unstyled ? \"transparent\" : surfaceBg,\n border: unstyled ? \"none\" : surfaceBorder,\n borderRadius: unstyled ? 0 : resolvedRadius,\n boxShadow: unstyled || !shadow ? \"none\" : \"0 20px 40px rgba(0,0,0,.08), 0 6px 14px rgba(0,0,0,.06)\",\n\n display: \"flex\",\n alignItems: \"center\",\n gap: unstyled ? 0 : gap ?? theme.spacing.xs,\n width: width ? toLen(width) : \"auto\",\n height: height ? toLen(height) : \"auto\",\n maxWidth: `calc(100% - (${toLen(offXVal) || \"24px\"} * 2))`,\n\n pointerEvents: open ? \"auto\" : \"none\",\n transition: \"transform 0.25s ease, opacity 0.25s ease\",\n transform: open ? openTransform : closedTransform,\n opacity: open ? 1 : 0,\n\n \"& > .plainframe-ui-textfield, & > .plainframe-ui-textarea, & > .plainframe-ui-codefield\": {\n flex: \"1 1 auto\",\n minWidth: 0,\n width: \"auto\",\n maxWidth: \"none\",\n },\n \"& > .plainframe-ui-textfield .plainframe-ui-textfield-surface, & > .plainframe-ui-textarea .plainframe-ui-textarea-surface\": {\n width: \"100%\",\n },\n \"& > *:not(.plainframe-ui-textfield):not(.plainframe-ui-textarea):not(.plainframe-ui-codefield)\": {\n flex: \"0 0 auto\",\n },\n });\n\n return (\n <div\n className={[\"plainframe-ui-action-bar-container\", containerClassName || \"\"].join(\" \").trim()}\n css={[containerStyles, containerCss]}\n >\n <div\n ref={contentRef}\n className={[\"plainframe-ui-action-bar\", className || \"\"].join(\" \").trim()}\n css={[contentStyles, userCss]}\n >\n {children}\n </div>\n </div>\n );\n};\n\nActionBar.displayName = \"ActionBar\";\n","/** @jsxImportSource @emotion/react */\nimport React, { createContext, useContext, forwardRef, useMemo } from \"react\";\nimport { css, type Interpolation } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { CircleAlert, CircleCheckBig, Info, TriangleAlert, X } from \"lucide-react\";\nimport type { Theme } from \"@emotion/react\";\n\ntype AlertVariant = \"filled\" | \"outlined\" | \"soft\" | \"ghost\";\ntype AlertIntent = \"danger\" | \"warning\" | \"info\" | \"success\" | \"neutral\";\n\nexport type AlertProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n intent?: AlertIntent;\n variant?: AlertVariant;\n icon?: React.ReactNode;\n actionButton?: React.ReactNode;\n onClose?: () => void;\n width?: string | number;\n size?: \"sm\" | \"md\" | \"lg\";\n css?: Interpolation<Theme>;\n className?: string;\n};\n\ntype SubProps = Omit<React.HTMLAttributes<HTMLElement>, \"style\"> & {\n css?: Interpolation<Theme>;\n className?: string;\n children?: React.ReactNode;\n};\n\ntype SizeScale = {\n paddingX: number | string;\n paddingY: number | string;\n gap: number | string;\n radius: number | string;\n fontSize: number | string;\n titleWeight: number;\n iconSize: number;\n};\n\ntype AlertCtxT = {\n fg: string;\n iconColor: string;\n s: SizeScale;\n};\n\nconst AlertCtx = createContext<AlertCtxT | null>(null);\nconst useAlertCtx = (): AlertCtxT => {\n const v = useContext(AlertCtx);\n if (!v) throw new Error(\"AlertTitle and AlertDescription must be used inside <Alert>.\");\n return v;\n};\n\nexport const Alert: React.ForwardRefExoticComponent<\n AlertProps & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, AlertProps>(function Alert(\n {\n intent = \"neutral\" as AlertIntent,\n variant = \"soft\",\n icon,\n actionButton,\n onClose,\n width = \"100%\",\n size = \"md\",\n className,\n css: userCss,\n children,\n ...rest\n },\n ref\n): React.ReactElement {\n const theme = usePlainframeUITheme();\n\n const s: SizeScale = useMemo<SizeScale>(() => {\n const map: Record<NonNullable<typeof size>, SizeScale> = {\n sm: {\n paddingX: theme.spacing?.md ?? 12,\n paddingY: \"0.6rem\",\n gap: 8,\n radius: theme.radius?.md ?? 8,\n fontSize: theme.fontSizes?.sm ?? \"0.875rem\",\n titleWeight: 600,\n iconSize: 16,\n },\n md: {\n paddingX: theme.spacing?.lg ?? 16,\n paddingY: \"0.9rem\",\n gap: 8,\n radius: theme.radius?.md ?? 8,\n fontSize: theme.fontSizes?.md ?? \"1rem\",\n titleWeight: 600,\n iconSize: 20,\n },\n lg: {\n paddingX: theme.spacing?.xl ?? 20,\n paddingY: \"1.1rem\",\n gap: 10,\n radius: theme.radius?.md ?? 8,\n fontSize: theme.fontSizes?.lg ?? \"1.125rem\",\n titleWeight: 600,\n iconSize: 24,\n },\n };\n return ([\"sm\", \"md\", \"lg\"].includes(size) ? map[size as \"sm\" | \"md\" | \"lg\"] : map.md);\n }, [size, theme.fontSizes, theme.radius, theme.spacing]);\n\n const palette = theme.palette ?? {};\n const neutral = theme.neutral ?? {};\n\n const colors = useMemo((): { bg: string; fg: string; border?: string; iconColor: string } => {\n const pick = (sem: AlertIntent) => {\n if (sem === \"danger\") return palette.danger ?? palette.error ?? neutral;\n if (sem === \"warning\") return palette.warning ?? neutral;\n if (sem === \"success\") return palette.success ?? neutral;\n if (sem === \"info\") return palette.info ?? palette.primary ?? neutral;\n return neutral;\n };\n const scale = pick(intent) as Record<number, string>;\n const c50 = scale?.[50] ?? neutral[50];\n const c300 = scale?.[300] ?? neutral[300];\n const c600 = scale?.[600] ?? scale?.[500] ?? neutral[600];\n const c700 = scale?.[700] ?? c600;\n const c800 = scale?.[800] ?? theme.text?.primary ?? \"#000\";\n const onColor = theme.text?.onColors?.[intent] ?? theme.text?.onColors?.primary ?? theme.text?.primary ?? \"#fff\";\n\n if (variant === \"filled\") return { bg: c600, fg: onColor, border: undefined, iconColor: onColor };\n if (variant === \"outlined\") return { bg: c50, fg: c800, border: `1px solid ${c300}`, iconColor: c800 };\n if (variant === \"ghost\") return { bg: \"transparent\", fg: c700, border: \"none\", iconColor: c700 };\n return { bg: c50, fg: c800, border: undefined, iconColor: c700 };\n }, [intent, variant, neutral, palette, theme.text]);\n\n const role: \"alert\" | \"status\" = intent === \"danger\" || intent === \"warning\" ? \"alert\" : \"status\";\n\n const iconEl: React.ReactNode = useMemo(() => {\n if (icon !== undefined && icon !== null) return icon;\n if (intent === \"danger\") return <CircleAlert css={{ width: s.iconSize, height: s.iconSize }} color={colors.iconColor} />;\n if (intent === \"warning\") return <TriangleAlert css={{ width: s.iconSize, height: s.iconSize }} color={colors.iconColor} />;\n if (intent === \"success\") return <CircleCheckBig css={{ width: s.iconSize, height: s.iconSize }} color={colors.iconColor} />;\n return <Info css={{ width: s.iconSize, height: s.iconSize }} color={colors.iconColor} />;\n }, [icon, intent, s.iconSize, colors.iconColor]);\n\n const rootCss: Interpolation<Theme> = useMemo(\n () =>\n css({\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n padding: `${s.paddingY} ${s.paddingX}`,\n gap: s.gap,\n borderRadius: s.radius,\n backgroundColor: colors.bg,\n color: colors.fg,\n border: colors.border,\n fontSize: s.fontSize,\n fontWeight: 500,\n width: typeof width === \"number\" ? `${width}px` : width,\n }),\n [colors.bg, colors.border, colors.fg, s.fontSize, s.gap, s.paddingX, s.paddingY, s.radius, width]\n );\n\n const leftCss: Interpolation<Theme> = useMemo(\n () =>\n css({\n display: \"flex\",\n alignItems: \"flex-start\",\n gap: s.gap,\n minWidth: 0,\n flex: 1,\n }),\n [s.gap]\n );\n\n const iconWrapCss: Interpolation<Theme> = useMemo(\n () =>\n css({\n lineHeight: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n color: colors.iconColor,\n flex: \"0 0 auto\",\n }),\n [colors.iconColor]\n );\n\n const contentCss: Interpolation<Theme> = useMemo(\n () =>\n css({\n display: \"flex\",\n flexDirection: \"column\",\n textAlign: \"left\",\n minWidth: 0,\n flex: 1,\n }),\n []\n );\n\n const rightCss: Interpolation<Theme> = useMemo(\n () =>\n css({\n display: \"flex\",\n alignItems: \"center\",\n gap: s.gap,\n marginLeft: s.gap,\n flex: \"0 0 auto\",\n }),\n [s.gap]\n );\n\n const closeBtnCss: Interpolation<Theme> = useMemo(\n () =>\n css({\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n border: \"none\",\n background: \"transparent\",\n padding: 0,\n cursor: onClose ? \"pointer\" : \"default\",\n lineHeight: 0,\n color: colors.fg,\n }),\n [colors.fg, onClose]\n );\n\n const ctxVal: AlertCtxT = useMemo<AlertCtxT>(\n () => ({ fg: colors.fg, iconColor: colors.iconColor, s }),\n [colors.fg, colors.iconColor, s]\n );\n\n return (\n <AlertCtx.Provider value={ctxVal}>\n <div\n ref={ref}\n role={role}\n aria-atomic=\"true\"\n className={[\"plainframe-ui-alert\", `plainframe-ui-alert-${intent}`, `plainframe-ui-alert-${variant}`, className || \"\"]\n .join(\" \")\n .trim()}\n css={[rootCss, userCss]}\n {...rest}\n >\n <div className=\"plainframe-ui-alert-left\" css={leftCss}>\n {iconEl && <span className=\"plainframe-ui-alert-icon\" css={iconWrapCss}>{iconEl}</span>}\n <div className=\"plainframe-ui-alert-content\" css={contentCss}>{children}</div>\n </div>\n {(actionButton || onClose) && (\n <div className=\"plainframe-ui-alert-actions\" css={rightCss}>\n {actionButton}\n {onClose && (\n <button\n type=\"button\"\n aria-label=\"Close alert\"\n onClick={onClose}\n className=\"plainframe-ui-alert-close\"\n css={closeBtnCss}\n >\n <X size={s.iconSize - 2} />\n </button>\n )}\n </div>\n )}\n </div>\n </AlertCtx.Provider>\n );\n});\n\nexport const AlertTitle: React.ForwardRefExoticComponent<\n SubProps & React.RefAttributes<HTMLSpanElement>\n> = forwardRef<HTMLSpanElement, SubProps>(function AlertTitle(\n { children, className, css: userCss, ...rest },\n ref\n): React.ReactElement {\n const { fg, s } = useAlertCtx();\n const titleCss: Interpolation<Theme> = useMemo(\n () =>\n css({\n color: fg,\n fontWeight: s.titleWeight,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }),\n [fg, s.titleWeight]\n );\n return (\n <span\n ref={ref}\n className={[\"plainframe-ui-alert-title\", className || \"\"].join(\" \").trim()}\n css={[titleCss, userCss]}\n {...rest}\n >\n {children}\n </span>\n );\n});\n\nexport const AlertDescription: React.ForwardRefExoticComponent<\n SubProps & React.RefAttributes<HTMLSpanElement>\n> = forwardRef<HTMLSpanElement, SubProps>(function AlertDescription(\n { children, className, css: userCss, ...rest },\n ref\n): React.ReactElement {\n const { fg } = useAlertCtx();\n const descCss: Interpolation<Theme> = useMemo(\n () =>\n css({\n color: fg,\n marginTop: 2,\n lineHeight: 1.35,\n wordBreak: \"break-word\",\n }),\n [fg]\n );\n return (\n <span\n ref={ref}\n className={[\"plainframe-ui-alert-desc\", className || \"\"].join(\" \").trim()}\n css={[descCss, userCss]}\n {...rest}\n >\n {children}\n </span>\n );\n});\n","/** @jsxImportSource @emotion/react */\nimport React, {\n useRef,\n useState,\n isValidElement,\n cloneElement,\n useId,\n useMemo,\n useCallback,\n forwardRef,\n} from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { Eye, EyeOff, X } from \"lucide-react\";\nimport { useFocusWithinRing } from \"../utils/focusRing\";\n\ntype SizeKey = \"sm\" | \"md\" | \"lg\";\ntype Variant = \"outlined\" | \"subtle\" | \"ghost\";\ntype WithCss = { css?: Interpolation<Theme> };\n\nconst u = (v?: number | string) =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nconst asArray = (v?: Interpolation<Theme>): Interpolation<Theme>[] =>\n v == null ? [] : Array.isArray(v) ? v : [v];\n\nconst mergeCss = (\n ...parts: Array<Interpolation<Theme> | false | null | undefined>\n): Interpolation<Theme> => css(parts.filter(Boolean) as any);\n\nfunction cloneIcon(icon: React.ReactNode, px: number, color = \"currentColor\") {\n if (!isValidElement(icon)) return icon;\n const props: any = (icon as any).props || {};\n const next: Record<string, any> = {};\n if (props.size == null) next.size = px;\n if (props.color == null) next.color = color;\n if (props.style?.fontSize == null)\n next.style = { ...(props.style || {}), fontSize: px };\n return cloneElement(icon as any, { ...props, ...next });\n}\n\nexport type TextFieldProps = WithCss & {\n label?: React.ReactNode;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n placeholder?: string;\n error?: boolean;\n helperText?: React.ReactNode;\n disabled?: boolean;\n fullWidth?: boolean;\n width?: number | string;\n size?: SizeKey;\n variant?: Variant;\n rounded?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n togglePasswordVisible?: boolean;\n showClear?: boolean;\n type?: \"text\" | \"password\" | \"number\" | (string & {});\n step?: number;\n focusRingMode?: \"always\" | \"none\";\n wrapperCss?: Interpolation<Theme>;\n inputCss?: Interpolation<Theme>;\n labelCss?: Interpolation<Theme>;\n helperRowCss?: Interpolation<Theme>;\n helperTextCss?: Interpolation<Theme>;\n startIconCss?: Interpolation<Theme>;\n endIconCss?: Interpolation<Theme>;\n className?: string;\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;\n autoFocus?: boolean;\n name?: string;\n id?: string;\n tabIndex?: number;\n autoComplete?: string;\n readOnly?: boolean;\n required?: boolean;\n maxLength?: number;\n};\n\nexport const TextField: React.ForwardRefExoticComponent<\n TextFieldProps & React.RefAttributes<HTMLInputElement>\n> = forwardRef<HTMLInputElement, TextFieldProps>(function TextField(\n {\n label,\n value,\n defaultValue = \"\",\n onChange,\n placeholder,\n error,\n helperText,\n disabled = false,\n fullWidth = false,\n width = 250,\n size = \"md\",\n variant = \"subtle\",\n rounded = false,\n startIcon,\n endIcon,\n togglePasswordVisible = false,\n showClear,\n type = \"text\",\n step,\n focusRingMode = \"always\",\n className,\n wrapperCss: userWrapperCss,\n inputCss: userInputCss,\n labelCss: userLabelCss,\n helperRowCss: userHelperRowCss,\n helperTextCss: userHelperTextCss,\n startIconCss: userStartIconCss,\n endIconCss: userEndIconCss,\n css: userSurfaceCss,\n onBlur,\n onFocus,\n onKeyDown,\n autoFocus,\n name,\n id,\n tabIndex,\n autoComplete,\n readOnly,\n required,\n maxLength,\n },\n ref\n) {\n const theme = usePlainframeUITheme();\n const ring = useFocusWithinRing();\n const reactId = useId();\n\n const s = useMemo(() => {\n const map = {\n sm: {\n fontSize: theme.fontSizes.md,\n minHeight: theme.componentHeights.sm,\n labelFont: theme.fontSizes.sm,\n helperFont: theme.fontSizes.sm,\n width: \"12.5rem\",\n paddingY: 0,\n paddingX: theme.spacing.md,\n iconSize: theme.fontSizes.sm,\n codeFontSize: 21,\n },\n md: {\n fontSize: theme.fontSizes.md,\n minHeight: theme.componentHeights.md,\n labelFont: theme.fontSizes.md,\n helperFont: theme.fontSizes.sm,\n width: \"15rem\",\n paddingY: 0,\n paddingX: theme.spacing.md,\n iconSize: theme.fontSizes.sm,\n codeFontSize: 24,\n },\n lg: {\n fontSize: theme.fontSizes.md,\n minHeight: theme.componentHeights.lg,\n labelFont: theme.fontSizes.lg,\n helperFont: theme.fontSizes.md,\n width: \"18.125rem\",\n paddingY: 0,\n paddingX: theme.spacing.md,\n iconSize: theme.fontSizes.sm,\n codeFontSize: 28,\n },\n } as const;\n const key: SizeKey = ([\"sm\", \"md\", \"lg\"] as const).includes(size as any)\n ? (size as SizeKey)\n : \"md\";\n return map[key];\n }, [size, theme]);\n\n const N = theme.neutral;\n const T = theme.text;\n\n const isNumberType = type === \"number\";\n const isPassword = type === \"password\";\n\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState<string>(defaultValue);\n const curr = isControlled ? (value as string) : internal;\n const setValue = useCallback(\n (next: string) => {\n if (!isControlled) setInternal(next);\n onChange?.(next);\n },\n [isControlled, onChange]\n );\n\n const numberRegex = /^-?\\d*(?:[.,]\\d*)?$/;\n const wantsDecimal =\n isNumberType &&\n ((step != null && String(step).includes(\".\")) || /[.,]/.test(curr ?? \"\"));\n const inputMode = isNumberType ? (wantsDecimal ? \"decimal\" : \"numeric\") : undefined;\n const pattern = isNumberType ? (wantsDecimal ? \"[0-9]*[.,]?[0-9]*\" : \"[0-9]*\") : undefined;\n\n const handleNumberTyping = useCallback(\n (v: string) => {\n if (v === \"\" || numberRegex.test(v)) setValue(v);\n },\n [setValue]\n );\n\n const surfaceBg =\n disabled\n ? N[200]\n : variant === \"outlined\"\n ? theme.surface.panelBg\n : variant === \"subtle\"\n ? theme.surface.subtleBg\n : \"transparent\";\n\n const borderW = theme.componentHeights.border;\n const surfaceBorder =\n variant === \"outlined\"\n ? `${borderW} solid ${error ? theme.palette.danger[600] : theme.surface.border}`\n : \"none\";\n\n const rootCss = mergeCss({\n boxSizing: \"border-box\",\n display: \"block\",\n minWidth: 0,\n width: \"100%\",\n maxWidth: fullWidth ? \"100%\" : width != null ? u(width) : undefined,\n flex: \"0 0 auto\",\n fontWeight: 500,\n });\n\n const labelCss = useMemo(\n () =>\n mergeCss(\n {\n fontSize: s.labelFont,\n fontWeight: 500,\n color: error ? theme.palette.danger?.[700] ?? T.primary : disabled ? N[500] : T.primary,\n marginBottom: 4,\n display: \"inline-block\",\n },\n ...asArray(userLabelCss)\n ),\n [s.labelFont, error, disabled, N, T, theme.palette.danger, userLabelCss]\n );\n\n const surfaceBaseCss = useMemo(\n () =>\n mergeCss(\n {\n display: \"flex\",\n alignItems: \"center\",\n gap: theme.spacing.sm,\n padding: `${u(s.paddingY)} ${u(s.paddingX)}`,\n background: surfaceBg,\n border: surfaceBorder,\n borderRadius: rounded ? (theme.radius.full as string) : (theme.radius.md as string),\n minHeight: s.minHeight,\n boxSizing: \"border-box\",\n width: \"100%\",\n cursor: disabled ? \"not-allowed\" : \"text\",\n opacity: disabled ? 0.65 : 1,\n transition: \"box-shadow .18s, border-color .16s\",\n },\n ...asArray(userWrapperCss),\n ...asArray(userSurfaceCss)\n ),\n [\n theme,\n s.minHeight,\n s.paddingX,\n s.paddingY,\n surfaceBg,\n surfaceBorder,\n rounded,\n disabled,\n userWrapperCss,\n userSurfaceCss,\n ]\n );\n\n const inputBaseCss = useMemo(\n () =>\n mergeCss(\n {\n flex: 1,\n minWidth: 0,\n font: \"inherit\",\n fontWeight: 500,\n fontSize: s.fontSize,\n color: disabled ? N[500] : T.primary,\n background: \"transparent\",\n border: \"none\",\n outline: \"none\",\n padding: 0,\n lineHeight: 1.25,\n cursor: disabled ? \"not-allowed\" : \"text\",\n appearance: isNumberType ? \"textfield\" : \"auto\",\n \"&::placeholder\": { color: T.secondary },\n \"&:-webkit-autofill,&:-webkit-autofill:hover,&:-webkit-autofill:focus\": {\n WebkitTextFillColor: `${T.primary} !important`,\n boxShadow: `0 0 0 1000px ${surfaceBg} inset !important`,\n transition: \"opacity 99999s ease-out\",\n caretColor: T.primary,\n },\n \":focus-within\": { outline: \"none\", border: \"none\", boxShadow: \"none\" },\n },\n ...asArray(userInputCss)\n ),\n [s.fontSize, disabled, N, T, isNumberType, surfaceBg, userInputCss]\n );\n\n const startSlotCss = useMemo(\n () =>\n mergeCss(\n { display: \"inline-flex\", alignItems: \"center\", color: T.secondary, marginLeft: -3 },\n ...asArray(userStartIconCss)\n ),\n [T.secondary, userStartIconCss]\n );\n\n const endSlotCss = useMemo(\n () =>\n mergeCss(\n {\n display: \"inline-flex\",\n alignItems: \"center\",\n color: T.secondary,\n border: \"none\",\n background: \"transparent\",\n lineHeight: 0,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n padding: 0,\n },\n ...asArray(userEndIconCss)\n ),\n [T.secondary, disabled, userEndIconCss]\n );\n\n const helperRowCss = useMemo(\n () =>\n mergeCss(\n {\n minHeight: 16,\n fontSize: s.helperFont,\n color: error ? theme.palette.danger?.[700] ?? T.secondary : T.secondary,\n paddingTop: 3,\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: 8,\n width: \"100%\",\n },\n ...asArray(userHelperRowCss)\n ),\n [s.helperFont, error, theme.palette.danger, T.secondary, userHelperRowCss]\n );\n\n const helperTextCss = useMemo(\n () =>\n mergeCss(\n { flex: 1, wordBreak: \"break-word\", whiteSpace: \"pre-wrap\", minWidth: 0, fontWeight: 400 },\n ...asArray(userHelperTextCss)\n ),\n [userHelperTextCss]\n );\n\n const localRef = useRef<HTMLInputElement>(null);\n const setRefs = useCallback(\n (el: HTMLInputElement | null) => {\n localRef.current = el;\n if (!ref) return;\n if (typeof ref === \"function\") {\n ref(el);\n } else {\n (ref as React.MutableRefObject<HTMLInputElement | null>).current = el;\n }\n },\n [ref]\n );\n\n const handleTextChange: React.ChangeEventHandler<HTMLInputElement> = useCallback(\n (e) => {\n const v = e.target.value;\n if (isNumberType) {\n handleNumberTyping(v);\n return;\n }\n if (maxLength && v.length > maxLength) return;\n setValue(v);\n },\n [isNumberType, maxLength, setValue, handleNumberTyping]\n );\n\n const [showPw, setShowPw] = useState(false);\n const togglePw = useCallback(() => {\n if (!disabled) setShowPw((p) => !p);\n }, [disabled]);\n\n const clear = useCallback(() => {\n if (disabled) return;\n setValue(\"\");\n localRef.current?.focus();\n }, [disabled, setValue]);\n\n const iconPx = useMemo(() => {\n const f = s.fontSize as any;\n if (typeof f === \"number\") return f;\n const n = parseFloat(String(f));\n return Number.isFinite(n) ? n : 16;\n }, [s.fontSize]);\n\n const startAdornment = useMemo(\n () => (startIcon ? <span css={startSlotCss}>{cloneIcon(startIcon, iconPx)}</span> : null),\n [startIcon, startSlotCss, iconPx]\n );\n\n const endAdornment = useMemo(() => {\n if (isPassword && togglePasswordVisible) {\n const node = showPw ? <Eye strokeWidth={2.5} size={iconPx} /> : <EyeOff strokeWidth={2.5} size={iconPx} />;\n return (\n <button\n type=\"button\"\n css={endSlotCss}\n onClick={(e) => {\n e.stopPropagation();\n togglePw();\n }}\n tabIndex={-1}\n aria-label={showPw ? \"Hide password\" : \"Show password\"}\n disabled={disabled}\n >\n {node}\n </button>\n );\n }\n if (showClear && curr && curr.length > 0 && !disabled) {\n return (\n <button\n type=\"button\"\n css={endSlotCss}\n onClick={(e) => {\n e.stopPropagation();\n clear();\n }}\n tabIndex={-1}\n aria-label=\"Clear\"\n >\n <X strokeWidth={2.5} size={iconPx} />\n </button>\n );\n }\n if (endIcon) return <span css={endSlotCss}>{cloneIcon(endIcon, iconPx)}</span>;\n return null;\n }, [\n isPassword,\n togglePasswordVisible,\n showPw,\n iconPx,\n endSlotCss,\n disabled,\n showClear,\n curr,\n endIcon,\n togglePw,\n clear,\n ]);\n\n const helperId = helperText != null ? `${id ?? reactId}-help` : undefined;\n const inputId = id ?? reactId;\n\n return (\n <div className={[\"plainframe-ui-textfield\", className || \"\"].join(\" \").trim()} css={rootCss}>\n {label && (\n <label htmlFor={inputId} className=\"plainframe-ui-textfield-label\" css={labelCss}>\n {label}\n </label>\n )}\n\n <div\n className=\"plainframe-ui-textfield-surface\"\n css={[ring({ enabled: focusRingMode !== \"none\" }), surfaceBaseCss]}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button,[role='button']\")) return;\n localRef.current?.focus();\n }}\n aria-invalid={!!error || undefined}\n >\n {startAdornment}\n\n <input\n ref={setRefs}\n id={inputId}\n className=\"plainframe-ui-textfield-input\"\n css={inputBaseCss}\n type={isPassword && !showPw ? \"password\" : \"text\"}\n inputMode={inputMode}\n pattern={pattern}\n value={curr}\n maxLength={!isNumberType ? maxLength : undefined}\n onChange={isNumberType ? (e) => handleNumberTyping(e.target.value) : handleTextChange}\n placeholder={placeholder || \"\"}\n disabled={disabled}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n autoFocus={autoFocus}\n name={name}\n tabIndex={tabIndex}\n autoComplete={autoComplete}\n readOnly={readOnly}\n required={required}\n aria-invalid={!!error || undefined}\n aria-describedby={helperId}\n />\n\n {endAdornment}\n </div>\n\n {helperText != null && (\n <div className=\"plainframe-ui-textfield-helper-row\" css={helperRowCss}>\n <span id={helperId} className=\"plainframe-ui-textfield-helper-text\" css={helperTextCss}>\n {helperText}\n </span>\n </div>\n )}\n </div>\n );\n});\nTextField.displayName = \"TextField\";\n","/** @jsxImportSource @emotion/react */\nimport React, {\n forwardRef,\n createContext,\n useContext,\n useState,\n isValidElement,\n cloneElement,\n useRef,\n useLayoutEffect,\n type ReactNode,\n useEffect,\n} from \"react\";\nimport { css as emCss, type Interpolation, type Theme, type CSSObject } from \"@emotion/react\";\nimport { ChevronDown } from \"lucide-react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\n\nexport type MenuVariant = \"ghost\" | \"subtle\" | \"outlined\";\nexport const MenuVariantCtx: React.Context<MenuVariant> = React.createContext<MenuVariant>(\"ghost\");\nexport const DenseCtx: React.Context<boolean> = React.createContext<boolean>(false);\nexport const LevelCtx: React.Context<number> = React.createContext<number>(0);\nexport const GapCtx: React.Context<string | number | undefined> =\n React.createContext<string | number | undefined>(undefined);\n\nexport type MenuProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n variant?: MenuVariant;\n size?: \"sm\" | \"md\";\n width?: number | string;\n maxHeight?: number | string;\n unstyled?: boolean;\n css?: Interpolation<Theme>;\n gap?: \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | string | number;\n label?: string;\n};\n\nexport const Menu: React.ForwardRefExoticComponent<\n React.PropsWithoutRef<MenuProps> & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, MenuProps>(function Menu(\n {\n variant = \"ghost\",\n size = \"md\",\n width,\n maxHeight,\n unstyled = false,\n className,\n css: userCss,\n gap,\n children,\n label,\n ...rest\n },\n ref\n) {\n const theme = usePlainframeUITheme();\n\n const panelPad =\n typeof theme.spacing.xs === \"number\" ? `${theme.spacing.xs}px` : String(theme.spacing.xs);\n\n const bg =\n variant === \"outlined\"\n ? theme.surface.panelBg\n : variant === \"subtle\"\n ? theme.surface.subtleBg ?? theme.neutral[50]\n : \"transparent\";\n\n const gapValue =\n gap === undefined\n ? undefined\n : typeof gap === \"string\" && (theme.spacing as any)[gap] !== undefined\n ? (theme.spacing as any)[gap]\n : gap;\n\n const baseCss = unstyled\n ? undefined\n : emCss({\n boxSizing: \"border-box\",\n background: bg,\n border:\n variant === \"outlined\"\n ? `${theme.componentHeights.border} solid ${theme.surface.border}`\n : \"none\",\n borderRadius: theme.radius.lg,\n \"--pfui-panel-pad\": panelPad,\n padding: variant === \"ghost\" ? 0 : \"var(--pfui-panel-pad)\",\n color: theme.text.primary,\n width: typeof width === \"number\" ? `${width}px` : width,\n maxHeight,\n overflowY: maxHeight != null ? \"auto\" : undefined,\n display: \"flex\",\n flexDirection: \"column\",\n gap: gapValue,\n });\n\n const dense = size === \"sm\";\n\n return (\n <DenseCtx.Provider value={dense}>\n <MenuVariantCtx.Provider value={variant}>\n <LevelCtx.Provider value={0}>\n <GapCtx.Provider value={gapValue}>\n <div css={{ display: \"flex\", flexDirection: \"column\", gap: theme.spacing.sm }}>\n {label ? (\n <div css={{ width: \"100%\", textAlign: \"left\", maxWidth: width }}>\n <span\n css={{\n display: \"block\",\n color: theme.text.secondary,\n fontSize: theme.fontSizes.sm,\n fontWeight: 600,\n textTransform: \"uppercase\",\n letterSpacing: \".04em\",\n padding: typeof theme.spacing.sm === \"number\" ? `${theme.spacing.sm}px` : theme.spacing.sm,\n paddingTop: 0,\n }}\n >\n {label}\n </span>\n </div>\n ) : null}\n <div\n ref={ref}\n role=\"menu\"\n aria-label={label || undefined}\n className={[\"plainframe-ui-menu\", className || \"\"].join(\" \").trim()}\n css={[baseCss, userCss]}\n {...rest}\n >\n {children}\n </div>\n </div>\n </GapCtx.Provider>\n </LevelCtx.Provider>\n </MenuVariantCtx.Provider>\n </DenseCtx.Provider>\n );\n});\nMenu.displayName = \"Menu\";\n\ntype SubCtx = { open: boolean; setOpen: (v: boolean) => void };\nconst SubMenuCtx = createContext<SubCtx | null>(null);\nconst useSub = () => {\n const v = useContext(SubMenuCtx);\n if (!v) throw new Error(\"SubMenu components must be used inside <SubMenu>.\");\n return v;\n};\n\nexport const SubMenu: React.FC<{\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (v: boolean) => void;\n children: ReactNode;\n}> = ({ open, defaultOpen = false, onOpenChange, children }) => {\n const [uOpen, setUOpen] = useState<boolean>(() => !!defaultOpen);\n const controlled = open !== undefined;\n const val = controlled ? !!open : uOpen;\n const setOpen = (v: boolean) => {\n if (!controlled) setUOpen(v);\n onOpenChange?.(v);\n };\n\n const menuGap = useContext(GapCtx);\n\n return (\n <SubMenuCtx.Provider value={{ open: val, setOpen }}>\n <div\n className=\"plainframe-ui-submenu-root\"\n css={emCss({\n display: \"flex\",\n flexDirection: \"column\",\n gap: menuGap,\n width: \"100%\",\n })}\n >\n {children}\n </div>\n </SubMenuCtx.Provider>\n );\n};\n\nexport const SubMenuTrigger: React.FC<{\n children: React.ReactElement;\n chevron?: ReactNode;\n asChild?: boolean;\n}> = ({ children, chevron, asChild = true }) => {\n const { open, setOpen } = useSub();\n const theme = usePlainframeUITheme();\n\n const chevronCss = emCss({\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flex: \"0 0 16px\",\n width: 16,\n height: 16,\n lineHeight: 0,\n marginLeft: 6,\n pointerEvents: \"none\",\n color: theme.text.secondary,\n transformOrigin: \"50% 50%\",\n backfaceVisibility: \"hidden\",\n willChange: \"transform\",\n transform: open ? \"rotate(0deg)\" : \"rotate(-90deg)\",\n transition: \"transform 300ms cubic-bezier(.6,1.3,.5,1)\",\n \"& > svg\": { width: 16, height: 16, display: \"block\" },\n });\n\n const ChevronNode = (\n <span className=\"pfui-submenu-chevron\" css={chevronCss} aria-hidden>\n {chevron ?? <ChevronDown strokeWidth={2.5} />}\n </span>\n );\n\n const inject = (el: React.ReactElement) =>\n cloneElement(el, {\n ...(el.props as any),\n \"data-subtrigger\": \"\",\n \"data-open\": open ? \"\" : undefined,\n \"aria-expanded\": open,\n endIcon: (\n <>\n {typeof el.props === \"object\" && el.props && \"endIcon\" in el.props ? (el.props as any).endIcon : null}\n {ChevronNode}\n </>\n ),\n onClick: (e: React.MouseEvent<HTMLElement>) => {\n if (\n typeof el.props === \"object\" &&\n el.props &&\n \"onClick\" in el.props &&\n typeof (el.props as any).onClick === \"function\"\n ) {\n (el.props as any).onClick(e);\n }\n if (e?.defaultPrevented) return;\n if ((e?.currentTarget as HTMLElement)?.tagName === \"A\") e.preventDefault();\n setOpen(!open);\n },\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => {\n if (\n typeof el.props === \"object\" &&\n el.props &&\n typeof (el.props as { onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void }).onKeyDown === \"function\"\n ) {\n (el.props as { onKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void }).onKeyDown!(e);\n }\n if (e.defaultPrevented) return;\n if (e.key === \"Enter\" || e.key === \" \") { e.preventDefault(); setOpen(!open); }\n if (e.key === \"ArrowRight\") { e.preventDefault(); setOpen(true); }\n if (e.key === \"ArrowLeft\") { e.preventDefault(); setOpen(false); }\n },\n onSelect: () => setOpen(!open),\n });\n\n return asChild && isValidElement(children)\n ? inject(children)\n : inject(children as React.ReactElement);\n};\n\nexport const SubMenuContent: React.FC<{\n children: React.ReactNode;\n css?: Interpolation<Theme>;\n}> = ({ children, css: userCss }) => {\n const { open } = useSub();\n const parentLevel = useContext(LevelCtx);\n const menuGap = useContext(GapCtx);\n\n const innerRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n const root = innerRef.current;\n if (!root) return;\n\n const NATIVES =\n \"a[href],button,input,select,textarea,summary,[contenteditable='true']\";\n const ROLES =\n \"[role='menuitem'],[role='menuitemradio'],[role='menuitemcheckbox']\";\n\n const natives = Array.from(root.querySelectorAll<HTMLElement>(NATIVES));\n const roleItems = Array.from(root.querySelectorAll<HTMLElement>(ROLES));\n\n if (open) {\n natives.forEach((el) => {\n if (el.hasAttribute(\"data-pf-prev-tabindex\")) {\n const prev = el.getAttribute(\"data-pf-prev-tabindex\");\n if (prev === \"\") el.removeAttribute(\"tabindex\");\n else if (prev != null) el.setAttribute(\"tabindex\", prev);\n el.removeAttribute(\"data-pf-prev-tabindex\");\n } else {\n el.removeAttribute(\"tabindex\");\n }\n });\n roleItems.forEach((el) => {\n if (!el.hasAttribute(\"tabindex\")) el.setAttribute(\"tabindex\", \"0\");\n else if (el.getAttribute(\"tabindex\") === \"-1\") el.setAttribute(\"tabindex\", \"0\");\n });\n } else {\n natives.forEach((el) => {\n if (!el.hasAttribute(\"data-pf-prev-tabindex\")) {\n const cur = el.getAttribute(\"tabindex\");\n if (cur != null) el.setAttribute(\"data-pf-prev-tabindex\", cur);\n else el.setAttribute(\"data-pf-prev-tabindex\", \"\");\n }\n el.setAttribute(\"tabindex\", \"-1\");\n });\n roleItems.forEach((el) => {\n el.setAttribute(\"tabindex\", \"-1\");\n });\n }\n }, [open]);\n\n const clipCss = emCss({\n display: \"grid\",\n gridTemplateRows: open ? \"1fr\" : \"0fr\",\n transition: \"grid-template-rows 360ms cubic-bezier(.25,.8,.4,1)\",\n overflow: \"hidden\",\n contain: \"layout style\",\n position: \"relative\",\n });\n\n const innerCss = emCss({\n minHeight: 0,\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: menuGap,\n margin: 0,\n padding: 0,\n opacity: open ? 1 : 0,\n transform: open ? \"translateY(0) scale(1)\" : \"translateY(1rem) scale(0.95)\",\n transition: \"opacity 0.35s ease, transform 0.28s ease\",\n pointerEvents: open ? \"auto\" : \"none\",\n willChange: \"opacity, transform\",\n });\n\n return (\n <LevelCtx.Provider value={parentLevel + 1}>\n <div\n role=\"group\"\n data-open={open ? \"\" : undefined}\n className=\"plainframe-ui-submenu-content\"\n css={[emCss({ width: \"100%\" }), userCss]}\n >\n <div className=\"plainframe-ui-submenu-clip\" css={clipCss}>\n <div\n ref={innerRef}\n className=\"plainframe-ui-submenu-inner\"\n css={innerCss}\n >\n {children}\n </div>\n </div>\n </div>\n </LevelCtx.Provider>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, {\n useMemo,\n useState,\n useRef,\n useEffect,\n useContext,\n createContext,\n forwardRef,\n cloneElement,\n useCallback,\n isValidElement,\n} from \"react\";\nimport { css as emCss, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport {\n useFloating,\n flip,\n shift,\n offset as offsetMw,\n size as sizeMw,\n autoUpdate,\n useDismiss,\n useRole,\n useInteractions,\n FloatingPortal,\n type Placement,\n} from \"@floating-ui/react\";\nimport { AnimatePresence, motion, type Transition } from \"framer-motion\";\nimport { DenseCtx } from \"./Menu\";\n\nfunction setRef<T>(ref: React.Ref<T> | undefined, value: T | null): void {\n if (!ref) return;\n if (typeof ref === \"function\") {\n (ref as (v: T | null) => void)(value);\n } else {\n (ref as unknown as { current: T | null }).current = value;\n }\n}\n\nexport const mergeRefs: <T>(\n ...refs: Array<React.Ref<T> | undefined>\n) => (node: T | null) => void =\n <T,>(...refs: Array<React.Ref<T> | undefined>) =>\n (node: T | null): void => {\n for (const ref of refs) setRef(ref, node);\n };\n\nlet __scrollLocks = 0;\nlet __prevOverflow: string | null = null;\nlet __prevPaddingRight: string | null = null;\n\nconst getScrollbarWidth = (): number =>\n typeof window === \"undefined\" || typeof document === \"undefined\"\n ? 0\n : window.innerWidth - document.documentElement.clientWidth;\n\nfunction lockBodyScroll(): void {\n if (typeof document === \"undefined\") return;\n if (__scrollLocks === 0) {\n const body = document.body;\n __prevOverflow = body.style.overflow || \"\";\n __prevPaddingRight = body.style.paddingRight || \"\";\n const sw = getScrollbarWidth();\n body.style.overflow = \"hidden\";\n if (sw > 0) body.style.paddingRight = `${sw}px`;\n }\n __scrollLocks += 1;\n}\nfunction unlockBodyScroll(): void {\n if (typeof document === \"undefined\") return;\n if (__scrollLocks > 0) __scrollLocks -= 1;\n if (__scrollLocks === 0) {\n const body = document.body;\n if (__prevOverflow !== null) body.style.overflow = __prevOverflow;\n if (__prevPaddingRight !== null) body.style.paddingRight = __prevPaddingRight;\n __prevOverflow = null;\n __prevPaddingRight = null;\n }\n}\n\ntype Side = \"top\" | \"bottom\" | \"left\" | \"right\";\ntype Align = \"start\" | \"center\" | \"end\";\nexport type TriggerMode = \"click\" | \"hover\";\n\ntype VirtualRefLike = {\n getBoundingClientRect: () => DOMRect | ClientRect;\n contextElement?: Element;\n};\ntype PointAnchor = { x: number; y: number };\ntype Anchor = HTMLElement | VirtualRefLike | PointAnchor;\n\nexport type DropdownMenuRootProps = {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n trigger?: TriggerMode;\n lockScroll?: boolean;\n size?: \"sm\" | \"md\";\n children: React.ReactNode;\n};\n\nexport type DropdownMenuTriggerProps = Omit<\n React.HTMLAttributes<HTMLElement>,\n \"style\"\n> & {\n asChild?: boolean;\n children: React.ReactElement | React.ReactNode;\n width?: string | number;\n css?: Interpolation<Theme>;\n};\n\nexport type DropdownMenuContentProps = Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"style\"\n> & {\n anchor?: Anchor;\n side?: Side;\n align?: Align;\n sideOffset?: number | string;\n alignOffset?: number | string;\n collisionPadding?: number | string;\n sameWidth?: boolean;\n width?: number | string;\n height?: number | string;\n maxHeight?: number | string;\n unstyled?: boolean;\n closeOnBlur?: boolean;\n allItemsTabbable?: boolean;\n exitPlacement?: Side;\n animateOnBusClose?: boolean;\n gap?: \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | string | number;\n css?: Interpolation<Theme>;\n};\n\ntype Ctx = {\n open: boolean;\n setOpen: (v: boolean) => void;\n trigger: TriggerMode;\n referenceRef: React.MutableRefObject<HTMLElement | null>;\n listRef: React.MutableRefObject<Array<HTMLElement | null>>;\n activeIndex: number | null;\n setActiveIndex: React.Dispatch<React.SetStateAction<number | null>>;\n scheduleHoverClose: (delay?: number) => void;\n clearHoverClose: () => void;\n};\nexport const MenuCtx: React.Context<Ctx | null> = createContext<Ctx | null>(null);\nconst useMenu = (): Ctx => {\n const v = useContext(MenuCtx);\n if (!v) throw new Error(\"DropdownMenu components must be used inside <DropdownMenu>.\");\n return v;\n};\n\nexport const FocusCtx: React.Context<{ allItemsTabbable: boolean }> =\n createContext<{ allItemsTabbable: boolean }>({\n allItemsTabbable: true,\n });\n\ntype RootHoverCtl = { clear: () => void; schedule: (d?: number) => void };\n\ntype RootBus = {\n registerCloser: (fn: () => void) => () => void;\n closeAll: () => void;\n registerHoverCtl: (ctl: RootHoverCtl) => () => void;\n clearAllHover: () => void;\n isBusClosingRef: { current: boolean };\n};\nexport const RootBusCtx: React.Context<RootBus | null> = React.createContext<RootBus | null>(null);\nconst useRootBus = (): RootBus | null => useContext(RootBusCtx);\n\nexport function createRootBus(): RootBus {\n const closers: Array<() => void> = [];\n const hovers = new Set<RootHoverCtl>();\n const isBusClosingRef = { current: false };\n return {\n registerCloser(fn: () => void) {\n closers.push(fn);\n return () => {\n const i = closers.indexOf(fn);\n if (i >= 0) closers.splice(i, 1);\n };\n },\n closeAll() {\n if (isBusClosingRef.current) return;\n isBusClosingRef.current = true;\n for (let i = closers.length - 1; i >= 0; i--) {\n try {\n closers[i]();\n } catch {\n }\n }\n queueMicrotask(() => {\n isBusClosingRef.current = false;\n });\n },\n registerHoverCtl(ctl: RootHoverCtl) {\n hovers.add(ctl);\n return () => hovers.delete(ctl);\n },\n clearAllHover() {\n hovers.forEach((h) => h.clear());\n },\n isBusClosingRef,\n };\n}\n\nexport const useDropdownMenuActiveIndex: () => number | null = (): number | null =>\n useMenu().activeIndex;\n\nexport const DropdownMenu: React.FC<DropdownMenuRootProps> = ({\n open: controlled,\n defaultOpen,\n onOpenChange,\n trigger = \"click\",\n lockScroll = true,\n size = \"md\",\n children,\n}) => {\n const [uncontrolled, setUncontrolled] = useState<boolean>(!!defaultOpen);\n const open = controlled ?? uncontrolled;\n const setOpen = useCallback(\n (v: boolean): void => {\n if (controlled === undefined) setUncontrolled(v);\n onOpenChange?.(v);\n },\n [controlled, onOpenChange]\n );\n\n const referenceRef = useRef<HTMLElement | null>(null);\n const listRef = useRef<Array<HTMLElement | null>>([]);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n\n const hoverTimeoutRef = useRef<number | null>(null);\n const scheduleHoverClose = useCallback(\n (delay = 120): void => {\n if (trigger !== \"hover\") return;\n window.clearTimeout(hoverTimeoutRef.current ?? 0);\n hoverTimeoutRef.current = window.setTimeout(() => setOpen(false), delay);\n },\n [trigger, setOpen]\n );\n const clearHoverClose = useCallback((): void => {\n if (hoverTimeoutRef.current) {\n window.clearTimeout(hoverTimeoutRef.current);\n hoverTimeoutRef.current = null;\n }\n }, []);\n useEffect(() => () => clearHoverClose(), [clearHoverClose]);\n\n useEffect(() => {\n if (!lockScroll || !open) return;\n lockBodyScroll();\n return () => unlockBodyScroll();\n }, [open, lockScroll]);\n\n const parentBus = useRootBus();\n const [bus] = useState<RootBus>(() => parentBus ?? createRootBus());\n\n const value = useMemo<Ctx>(\n () => ({\n open,\n setOpen,\n trigger,\n referenceRef,\n listRef,\n activeIndex,\n setActiveIndex,\n scheduleHoverClose,\n clearHoverClose,\n }),\n [open, setOpen, trigger, activeIndex, scheduleHoverClose, clearHoverClose]\n );\n\n const denseFlag = size === \"sm\";\n\n return (\n <RootBusCtx.Provider value={bus}>\n <DenseCtx.Provider value={denseFlag}>\n <MenuCtx.Provider value={value}>{children}</MenuCtx.Provider>\n </DenseCtx.Provider>\n </RootBusCtx.Provider>\n );\n};\nDropdownMenu.displayName = \"DropdownMenu\";\n\nexport const DropdownMenuTrigger: React.ForwardRefExoticComponent<\n React.PropsWithoutRef<DropdownMenuTriggerProps> & React.RefAttributes<HTMLElement>\n> = React.forwardRef<HTMLElement, DropdownMenuTriggerProps>(\n ({ asChild = true, children, width, className, css: userCss, ...rest }, ref) => {\n const {\n open,\n setOpen,\n trigger,\n referenceRef,\n listRef,\n setActiveIndex,\n scheduleHoverClose,\n clearHoverClose,\n activeIndex,\n } = useMenu();\n\n const canAsChild = !!asChild && isValidElement(children);\n const childEl = canAsChild ? (children as React.ReactElement) : null;\n const childOnKeyDown =\n childEl && childEl.props && typeof childEl.props === \"object\" && \"onKeyDown\" in childEl.props\n ? (childEl.props.onKeyDown as ((e: React.KeyboardEvent) => void) | undefined)\n : undefined;\n const childOnClick =\n childEl && childEl.props && typeof childEl.props === \"object\" && \"onClick\" in childEl.props\n ? (childEl.props.onClick as ((e: React.MouseEvent) => void) | undefined)\n : undefined;\n\n const { onKeyDown: propOnKeyDown, onClick: propOnClick, ...restProps } = rest as any;\n\n const setRefs = useMemo(\n () =>\n mergeRefs<HTMLElement | null>(\n ref,\n canAsChild && typeof (children as any).ref !== \"undefined\" ? (children as any).ref : undefined,\n (referenceRef as unknown) as React.Ref<HTMLElement | null>\n ),\n [ref, canAsChild, children, referenceRef]\n );\n\n const nodes = useCallback((): HTMLElement[] => listRef.current.filter(Boolean) as HTMLElement[], [listRef]);\n\n const focusIdx = useCallback(\n (idx: number): void => {\n const list = nodes();\n requestAnimationFrame(() => list[idx]?.focus());\n },\n [nodes]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent): void => {\n const list = nodes();\n const total = list.length;\n\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n if (!open) {\n e.preventDefault();\n setOpen(true);\n if (total) {\n const next = e.key === \"ArrowDown\" ? 0 : total - 1;\n setActiveIndex(next);\n focusIdx(next);\n }\n childOnKeyDown?.(e);\n propOnKeyDown?.(e);\n return;\n }\n if (open && total) {\n e.preventDefault();\n const delta = e.key === \"ArrowDown\" ? 1 : -1;\n let current = activeIndex ?? (e.key === \"ArrowDown\" ? -1 : total);\n const next = Math.min(Math.max(current + delta, 0), total - 1);\n setActiveIndex(next);\n focusIdx(next);\n childOnKeyDown?.(e);\n propOnKeyDown?.(e);\n return;\n }\n }\n\n if ((e.key === \"Enter\" || e.key === \" \") && !open) {\n e.preventDefault();\n setOpen(true);\n childOnKeyDown?.(e);\n propOnKeyDown?.(e);\n return;\n }\n\n if (e.key === \"Tab\" && open && !e.shiftKey) {\n if (total) {\n e.preventDefault();\n setActiveIndex(0);\n focusIdx(0);\n childOnKeyDown?.(e);\n propOnKeyDown?.(e);\n return;\n }\n }\n\n childOnKeyDown?.(e);\n propOnKeyDown?.(e);\n },\n [open, setOpen, activeIndex, setActiveIndex, childOnKeyDown, propOnKeyDown, nodes, focusIdx]\n );\n\n const handleClick = useCallback(\n (e: React.MouseEvent): void => {\n if (trigger === \"click\") {\n const path: EventTarget[] = (e.nativeEvent as any)?.composedPath?.() ?? [];\n const clickedTextEntry = path.some((el: any) => {\n if (!el || !el.tagName) return false;\n const t = String(el.tagName).toUpperCase();\n if (t === \"INPUT\" || t === \"TEXTAREA\") return true;\n if (el.isContentEditable) return true;\n const role = el.getAttribute?.(\"role\");\n return role === \"textbox\" || role === \"combobox\";\n });\n if (!clickedTextEntry) {\n e.stopPropagation();\n setOpen(!open);\n }\n }\n childOnClick?.(e);\n propOnClick?.(e);\n },\n [trigger, open, setOpen, childOnClick, propOnClick]\n );\n\n const hoverProps =\n trigger === \"hover\"\n ? {\n onMouseEnter: () => {\n clearHoverClose();\n setOpen(true);\n },\n onMouseLeave: () => {\n scheduleHoverClose();\n },\n }\n : {};\n\n const widthCss =\n width != null\n ? emCss({\n width: typeof width === \"number\" ? `${width}px` : width,\n })\n : undefined;\n\n if (canAsChild && childEl) {\n const childCss = (childEl as any).props?.css;\n return cloneElement(childEl, {\n ref: setRefs,\n tabIndex: (childEl.props as any).tabIndex ?? 0,\n className: [(childEl.props as any).className, className].filter(Boolean).join(\" \") || undefined,\n css: [childCss, widthCss, userCss].filter(Boolean),\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n ...hoverProps,\n ...restProps,\n });\n }\n\n return (\n <button\n ref={setRefs}\n className={className}\n css={[emCss({ display: \"inline-block\" }), widthCss, userCss]}\n type=\"button\"\n tabIndex={0}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n {...hoverProps}\n {...restProps}\n >\n {children}\n </button>\n );\n }\n);\nDropdownMenuTrigger.displayName = \"DropdownMenuTrigger\";\n\ntype MotionTransitions = Transition & {\n scale?: Transition;\n x?: Transition;\n y?: Transition;\n opacity?: Transition;\n};\n\nexport const DropdownMenuContent: React.ForwardRefExoticComponent<\n React.PropsWithoutRef<DropdownMenuContentProps> & React.RefAttributes<HTMLDivElement>\n> = React.forwardRef<HTMLDivElement, DropdownMenuContentProps>(\n (\n {\n anchor,\n side = \"bottom\",\n align = \"start\",\n sideOffset = 6,\n alignOffset = 0,\n collisionPadding = 8,\n sameWidth = false,\n width = 200,\n height,\n maxHeight,\n unstyled = false,\n closeOnBlur = false,\n allItemsTabbable = true,\n className,\n css: userCss,\n children,\n exitPlacement,\n animateOnBusClose = true,\n gap,\n ...rest\n },\n ref\n ) => {\n const {\n open,\n setOpen,\n referenceRef,\n scheduleHoverClose,\n clearHoverClose,\n setActiveIndex,\n } = useMenu();\n const theme = usePlainframeUITheme();\n const rootBus = useRootBus();\n\n useEffect(() => {\n if (!rootBus) return;\n const off = rootBus.registerCloser(() => setOpen(false));\n return () => {\n off && off();\n };\n }, [rootBus, setOpen]);\n\n const so = typeof sideOffset === \"string\" ? parseFloat(sideOffset) : sideOffset;\n const ao = typeof alignOffset === \"string\" ? parseFloat(alignOffset) : alignOffset;\n const cp =\n typeof collisionPadding === \"string\" ? parseFloat(collisionPadding) : collisionPadding;\n const placement = `${side}${align === \"center\" ? \"\" : `-${align}`}` as Placement;\n\n const virtualFromPoint = useCallback(\n (p: { x: number; y: number }): VirtualRefLike => ({\n getBoundingClientRect: () => {\n const x = Math.round(p.x);\n const y = Math.round(p.y);\n return {\n x,\n y,\n left: x,\n top: y,\n right: x,\n bottom: y,\n width: 0,\n height: 0,\n toJSON: () => ({ x, y, left: x, top: y, right: x, bottom: y, width: 0, height: 0 }),\n } as DOMRect;\n },\n contextElement: undefined,\n }),\n []\n );\n\n const normalizedAnchor = useMemo<HTMLElement | VirtualRefLike | null>(() => {\n if (!anchor) return null;\n if (anchor instanceof HTMLElement) return anchor;\n if (\n typeof anchor === \"object\" &&\n anchor !== null &&\n \"getBoundingClientRect\" in anchor &&\n typeof (anchor as VirtualRefLike).getBoundingClientRect === \"function\"\n )\n return anchor as VirtualRefLike;\n const a = anchor as { x?: number; y?: number };\n return virtualFromPoint({ x: a.x!, y: a.y! });\n }, [anchor, virtualFromPoint]);\n\n const { refs, x, y, strategy, context, update } = useFloating({\n open,\n onOpenChange: setOpen,\n placement,\n whileElementsMounted: autoUpdate,\n middleware: [\n offsetMw({ mainAxis: so ?? 0, crossAxis: ao ?? 0 }),\n flip({ padding: cp ?? 8 }),\n shift({ padding: cp ?? 8 }),\n sizeMw({\n apply({ elements }) {\n const el = elements.floating as HTMLElement;\n el.style.boxSizing = \"border-box\";\n if (height != null)\n el.style.height = typeof height === \"number\" ? `${height}px` : String(height);\n else el.style.removeProperty(\"height\");\n },\n }),\n ],\n });\n\n useEffect(() => {\n if (normalizedAnchor) refs.setReference(normalizedAnchor);\n else if (referenceRef.current) refs.setReference(referenceRef.current);\n }, [refs, normalizedAnchor, referenceRef]);\n\n useEffect(() => {\n if (!open) return;\n const refEl = normalizedAnchor || referenceRef.current;\n const floatEl = refs.floating.current;\n if (!refEl || !floatEl) return;\n return autoUpdate(refEl, floatEl, update);\n }, [open, normalizedAnchor, referenceRef, refs, update]);\n\n useEffect(() => {\n if (open && !allItemsTabbable) setActiveIndex(0);\n }, [open, allItemsTabbable, setActiveIndex]);\n\n useEffect(() => {\n if (!closeOnBlur || !open) return;\n const onFocusIn = (): void => {\n const ae = document.activeElement as Node | null;\n const refEl = referenceRef.current;\n const fl = refs.floating.current;\n if (!ae) return;\n if (refEl?.contains(ae) || fl?.contains(ae)) return;\n setOpen(false);\n };\n document.addEventListener(\"focusin\", onFocusIn, true);\n return () => document.removeEventListener(\"focusin\", onFocusIn, true);\n }, [closeOnBlur, open, setOpen, referenceRef, refs.floating]);\n\n const dismiss = useDismiss(context, { outsidePressEvent: \"pointerdown\", escapeKey: true });\n const role = useRole(context, { role: \"menu\" });\n const { getFloatingProps } = useInteractions([dismiss, role]);\n\n const panelPad =\n typeof theme.spacing.xs === \"number\" ? `${theme.spacing.xs}px` : String(theme.spacing.xs);\n\n const resolvedGap =\n gap === undefined\n ? undefined\n : typeof gap === \"number\"\n ? gap\n : (theme.spacing as any)[gap] ?? gap;\n\n const baseCss = unstyled\n ? undefined\n : emCss({\n boxSizing: \"border-box\",\n background: theme.surface.panelBg,\n border: `${theme.componentHeights.border} solid ${theme.surface.border}`,\n borderRadius: theme.radius.lg,\n boxShadow: \"0 8px 32px rgba(0,0,0,.05), 0 2px 8px rgba(0,0,0,.02)\",\n \"--pfui-panel-pad\": panelPad,\n padding: \"var(--pfui-panel-pad)\",\n color: theme.text.primary,\n maxHeight,\n overflowY: \"auto\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: resolvedGap,\n });\n\n let idx = -1;\n const annotate: (node: any) => any = (node: any): any => {\n if (!node || typeof node !== \"object\") return node;\n const type: any = (node as any).type;\n const name = type?.displayName;\n\n if (name === \"DropdownMenu\" || name === \"DropdownMenuSub\") return node;\n\n if (\n name === \"MenuItem\" ||\n name === \"MenuCheckboxItem\" ||\n name === \"MenuRadioItem\" ||\n name === \"MenuSwitchItem\"\n ) {\n idx += 1;\n return cloneElement(node, { __index: idx, key: (node as any).key ?? idx });\n }\n\n if (name === \"DropdownMenuTrigger\" || name === \"DropdownMenuSubTrigger\") {\n const kids = (node as any).props?.children;\n return cloneElement(node, { children: React.Children.map(kids, annotate) });\n }\n\n const kids = (node as any).props?.children;\n if (kids == null) return node;\n return cloneElement(node, { children: React.Children.map(kids, annotate) });\n };\n\n const enhancedChildren = React.Children.map(children, annotate);\n\n const [refWidth, setRefWidth] = useState<number | null>(null);\n\n useEffect(() => {\n if (!sameWidth) return;\n const node =\n (normalizedAnchor instanceof HTMLElement && normalizedAnchor) || referenceRef.current;\n if (!node) return;\n const setNow = (): void => setRefWidth(Math.round(node.getBoundingClientRect().width));\n setNow();\n update();\n const ro = new ResizeObserver((): void => {\n setNow();\n update();\n });\n ro.observe(node);\n return () => ro.disconnect();\n }, [normalizedAnchor, referenceRef, sameWidth, update]);\n\n const computedWidth =\n width\n ? typeof width === \"number\"\n ? `${width}px`\n : String(width)\n : sameWidth && refWidth != null\n ? `${refWidth}px`\n : undefined;\n\n const delta = 8;\n const placementSide = (context.placement.split(\"-\")[0] as Side) || \"bottom\";\n const transformOrigin =\n placementSide === \"bottom\"\n ? \"center top\"\n : placementSide === \"top\"\n ? \"center bottom\"\n : placementSide === \"left\"\n ? \"right center\"\n : \"left center\";\n\n const initial =\n placementSide === \"bottom\"\n ? { opacity: 0, y: -delta, scale: 0.96 }\n : placementSide === \"top\"\n ? { opacity: 0, y: +delta, scale: 0.96 }\n : placementSide === \"left\"\n ? { opacity: 0, x: +delta, scale: 0.96 }\n : { opacity: 0, x: -delta, scale: 0.96 };\n\n const exitSide = exitPlacement ?? placementSide;\n const exit =\n exitSide === \"bottom\"\n ? { opacity: 0, y: -delta, scale: 0.96 }\n : exitSide === \"top\"\n ? { opacity: 0, y: +delta, scale: 0.96 }\n : exitSide === \"left\"\n ? { opacity: 0, x: +delta, scale: 0.96 }\n : { opacity: 0, x: -delta, scale: 0.96 };\n\n const busClosing: boolean = !!rootBus?.isBusClosingRef.current;\n\n const transition: MotionTransitions =\n busClosing && !animateOnBusClose\n ? {\n scale: { duration: 0 },\n x: { duration: 0 },\n y: { duration: 0 },\n opacity: { duration: 0 },\n }\n : {\n scale: { type: \"spring\", stiffness: 520, damping: 38, mass: 0.5 },\n x: { type: \"spring\", stiffness: 420, damping: 30, mass: 0.6 },\n y: { type: \"spring\", stiffness: 420, damping: 30, mass: 0.6 },\n opacity: { duration: 0.12, ease: \"linear\" },\n };\n\n const positionCss = emCss({\n position: strategy as React.CSSProperties[\"position\"],\n top: (y ?? 0) as number,\n left: (x ?? 0) as number,\n zIndex: 1000,\n transformOrigin,\n width: computedWidth,\n });\n\n return (\n <FloatingPortal>\n <AnimatePresence>\n {open ? (\n <FocusCtx.Provider value={{ allItemsTabbable }}>\n <motion.div\n {...getFloatingProps({\n ...rest,\n ref: mergeRefs(ref, refs.setFloating),\n })}\n className={className}\n css={[baseCss, positionCss, userCss]}\n initial={initial}\n animate={{ opacity: 1, x: 0, y: 0, scale: 1 }}\n exit={exit}\n transition={transition}\n onMouseEnter={() => {\n clearHoverClose();\n rootBus?.clearAllHover();\n }}\n onMouseLeave={() => scheduleHoverClose()}\n >\n {enhancedChildren}\n </motion.div>\n </FocusCtx.Provider>\n ) : null}\n </AnimatePresence>\n </FloatingPortal>\n );\n }\n);\nDropdownMenuContent.displayName = \"DropdownMenuContent\";\n\nexport const DropdownMenuSub: React.FC<{\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (o: boolean) => void;\n trigger?: TriggerMode;\n dense?: boolean;\n children: React.ReactNode;\n}> = ({ open: cOpen, defaultOpen, onOpenChange, trigger = \"hover\", dense, children }) => {\n const [uOpen, setUOpen] = useState<boolean>(!!defaultOpen);\n const open = cOpen ?? uOpen;\n const setOpen = useCallback(\n (v: boolean): void => {\n if (cOpen === undefined) setUOpen(v);\n onOpenChange?.(v);\n },\n [cOpen, onOpenChange]\n );\n\n const referenceRef = useRef<HTMLElement | null>(null);\n const listRef = useRef<Array<HTMLElement | null>>([]);\n const [activeIndex, setActiveIndex] = useState<number | null>(null);\n\n const hoverTimeoutRef = useRef<number | null>(null);\n const scheduleHoverClose = useCallback(\n (delay = 160): void => {\n if (trigger !== \"hover\") return;\n window.clearTimeout(hoverTimeoutRef.current ?? 0);\n hoverTimeoutRef.current = window.setTimeout(() => setOpen(false), delay);\n },\n [trigger, setOpen]\n );\n const clearHoverClose = useCallback((): void => {\n if (hoverTimeoutRef.current) {\n window.clearTimeout(hoverTimeoutRef.current);\n hoverTimeoutRef.current = null;\n }\n }, []);\n useEffect(() => () => clearHoverClose(), [clearHoverClose]);\n\n const inheritedDense = useContext(DenseCtx);\n const finalDense = dense ?? inheritedDense;\n\n const value = useMemo<Ctx>(\n () => ({\n open,\n setOpen,\n trigger,\n referenceRef,\n listRef,\n activeIndex,\n setActiveIndex,\n scheduleHoverClose,\n clearHoverClose,\n }),\n [open, setOpen, trigger, activeIndex, scheduleHoverClose, clearHoverClose]\n );\n\n return (\n <DenseCtx.Provider value={finalDense}>\n <MenuCtx.Provider value={value}>{children}</MenuCtx.Provider>\n </DenseCtx.Provider>\n );\n};\nDropdownMenuSub.displayName = \"DropdownMenuSub\";\n\nexport const DropdownMenuSubTrigger: React.ForwardRefExoticComponent<\n React.PropsWithoutRef<DropdownMenuTriggerProps> & React.RefAttributes<HTMLElement>\n> = React.forwardRef<HTMLElement, DropdownMenuTriggerProps>(\n ({ asChild = true, children, width, className, css: userCss, ...rest }, ref) => {\n const { open, setOpen, trigger, referenceRef, setActiveIndex, scheduleHoverClose, clearHoverClose } =\n useMenu();\n\n const canAsChild = !!asChild && isValidElement(children);\n const childEl = canAsChild ? (children as React.ReactElement<any, any>) : null;\n const childOnKeyDown = childEl?.props?.onKeyDown as ((e: React.KeyboardEvent) => void) | undefined;\n const childOnClick = childEl?.props?.onClick as ((e: React.MouseEvent) => void) | undefined;\n\n const { onKeyDown: propOnKeyDown, onClick: propOnClick, ...restProps } = rest as any;\n\n const setRefs = useMemo(\n () =>\n mergeRefs<HTMLElement | null>(\n ref,\n canAsChild ? (children as any).ref : undefined,\n (referenceRef as unknown) as React.Ref<HTMLElement | null>\n ),\n [ref, canAsChild, children, referenceRef]\n );\n\n const widthCss =\n width != null ? emCss({ width: typeof width === \"number\" ? `${width}px` : width }) : undefined;\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent): void => {\n if (e.key === \"ArrowRight\") {\n e.preventDefault();\n setActiveIndex(0);\n setOpen(true);\n }\n if (e.key === \"ArrowLeft\") {\n e.preventDefault();\n setOpen(false);\n }\n childOnKeyDown?.(e);\n propOnKeyDown?.(e);\n },\n [setActiveIndex, setOpen, childOnKeyDown, propOnKeyDown]\n );\n\n const baseHoverProps =\n trigger === \"hover\"\n ? {\n onMouseEnter: () => {\n clearHoverClose();\n setOpen(true);\n },\n onMouseLeave: () => {\n scheduleHoverClose();\n },\n }\n : {\n onClick: (e: React.MouseEvent) => {\n e.stopPropagation();\n setOpen(!open);\n childOnClick?.(e);\n propOnClick?.(e);\n },\n };\n\n if (canAsChild && childEl) {\n const childCss = (childEl as any).props?.css;\n return cloneElement(childEl, {\n ref: setRefs,\n tabIndex: childEl.props.tabIndex ?? 0,\n className: [childEl.props.className, className].filter(Boolean).join(\" \") || undefined,\n css: [childCss, widthCss, userCss].filter(Boolean),\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n \"data-subtrigger\": \"\",\n onKeyDown: handleKeyDown,\n ...baseHoverProps,\n ...restProps,\n });\n }\n\n return (\n <div\n ref={setRefs}\n role=\"menuitem\"\n tabIndex={0}\n className={className}\n css={[\n emCss({\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n cursor: \"pointer\",\n }),\n widthCss,\n userCss,\n ]}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n data-subtrigger=\"\"\n onKeyDown={handleKeyDown}\n {...baseHoverProps}\n {...restProps}\n >\n {children}\n </div>\n );\n }\n);\nDropdownMenuSubTrigger.displayName = \"DropdownMenuSubTrigger\";\n\nexport const DropdownMenuSubContent: React.ForwardRefExoticComponent<\n React.PropsWithoutRef<Omit<DropdownMenuContentProps, \"anchor\">> & React.RefAttributes<HTMLDivElement>\n> = React.forwardRef<HTMLDivElement, Omit<DropdownMenuContentProps, \"anchor\">>(\n (props, ref) => {\n const rootBus = useRootBus();\n const { referenceRef, scheduleHoverClose, clearHoverClose } = useMenu();\n return (\n <DropdownMenuContent\n ref={ref}\n side=\"right\"\n align=\"start\"\n exitPlacement=\"bottom\"\n animateOnBusClose={true}\n {...props}\n anchor={referenceRef.current as unknown as Anchor}\n onMouseEnter={(e) => {\n clearHoverClose();\n rootBus?.clearAllHover();\n props.onMouseEnter?.(e);\n }}\n onMouseLeave={(e) => {\n scheduleHoverClose();\n props.onMouseLeave?.(e);\n }}\n />\n );\n }\n);\nDropdownMenuSubContent.displayName = \"DropdownMenuSubContent\";\n","/** @jsxImportSource @emotion/react */\nimport React, { useEffect, useState, forwardRef } from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { useFocusRing } from \"../utils/focusRing\";\n\ntype WithCssProp = { css?: Interpolation<Theme> };\n\ntype SwitchProps = {\n checked?: boolean;\n defaultChecked?: boolean;\n onChange?: (checked: boolean) => void;\n disabled?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n label?: React.ReactNode;\n className?: string;\n trackCss?: Interpolation<Theme>;\n thumbCss?: Interpolation<Theme>;\n labelCss?: Interpolation<Theme>;\n} & WithCssProp &\n Omit<React.HTMLAttributes<HTMLLabelElement>, \"onChange\" | \"className\">;\n\nexport const Switch: React.ForwardRefExoticComponent<\n React.PropsWithoutRef<SwitchProps> & React.RefAttributes<HTMLLabelElement>\n> = forwardRef<HTMLLabelElement, SwitchProps>(function Switch(\n {\n checked: checkedProp,\n defaultChecked = false,\n onChange,\n disabled = false,\n size = \"md\",\n label,\n className,\n css: userRootCss,\n trackCss: userTrackCss,\n thumbCss: userThumbCss,\n labelCss: userLabelCss,\n ...props\n },\n ref\n) {\n const theme = usePlainframeUITheme();\n const focusRing = useFocusRing();\n\n const sizeMap = {\n sm: { trackW: 25, trackH: 16, thumb: 11, labelGap: 8 },\n md: { trackW: 35, trackH: 20, thumb: 14, labelGap: 8 },\n lg: { trackW: 45, trackH: 24, thumb: 18, labelGap: 10 },\n } as const;\n const motion = { slideMs: 250, pressMs: 150, easing: \"ease\" } as const;\n\n const isControlled = checkedProp !== undefined;\n const [internal, setInternal] = useState<boolean>(defaultChecked);\n const isOn = isControlled ? !!checkedProp : internal;\n\n const [animating, setAnimating] = useState(false);\n useEffect(() => {\n if (disabled) return;\n setAnimating(true);\n const t = setTimeout(() => setAnimating(false), motion.pressMs);\n return () => clearTimeout(t);\n }, [isOn, disabled]);\n\n const sizeKey = ([\"sm\", \"md\", \"lg\"].includes(size!) ? size : \"md\") as \"sm\" | \"md\" | \"lg\";\n const s = sizeMap[sizeKey];\n const slide = `${motion.slideMs}ms ${motion.easing}`;\n\n const primary = theme.palette?.primary?.[600] ?? theme.neutral[900];\n const offTrack = theme.neutral[300];\n const trackColor = isOn ? primary : offTrack;\n const thumbColor = isOn ? theme.text.onColors.primary : \"#ffffff\";\n\n const { trackW, trackH, thumb } = s;\n const pad = (trackH - thumb) / 2;\n\n const rootBaseCss = css({\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: s.labelGap,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n width: \"fit-content\",\n padding: theme.spacing.xs,\n borderRadius: theme.radius.sm,\n outline: \"none\",\n });\n\n const trackBaseCss = css({\n position: \"relative\",\n width: trackW,\n height: trackH,\n backgroundColor: trackColor,\n borderRadius: theme.radius.full,\n transition: `background-color ${slide}, opacity 120ms ease`,\n willChange: \"background-color\",\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n opacity: disabled ? 0.5 : 1,\n });\n\n const thumbBaseCss = css({\n position: \"absolute\",\n top: pad,\n left: isOn ? trackW - thumb - pad : pad,\n width: thumb,\n height: thumb,\n backgroundColor: thumbColor,\n borderRadius: theme.radius.full,\n transition: `left ${slide}, transform ${slide}, background-color 0.25s ease`,\n transform: animating ? \"scaleX(1.2)\" : \"scaleX(1)\",\n transformOrigin: isOn ? \"right center\" : \"left center\",\n });\n\n const labelBaseCss = css({\n fontSize: theme.fontSizes.md,\n fontWeight: 500,\n color: disabled ? theme.text.muted : theme.text.primary,\n });\n\n const toggle = () => {\n if (disabled) return;\n const next = !isOn;\n if (!isControlled) setInternal(next);\n onChange?.(next);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLLabelElement>) => {\n if (disabled) return;\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n toggle();\n }\n };\n\n return (\n <label\n ref={ref}\n role=\"switch\"\n aria-checked={isOn}\n aria-disabled={disabled || undefined}\n data-checked={isOn ? \"\" : undefined}\n data-disabled={disabled ? \"\" : undefined}\n tabIndex={disabled ? -1 : 0}\n onClick={toggle}\n onKeyDown={handleKeyDown}\n className={[\"plainframe-ui-switch\", className || \"\"].join(\" \").trim()}\n css={[rootBaseCss, focusRing({ color: isOn ? \"primary\" : \"neutral\" }), userRootCss]}\n {...props}\n >\n <div\n className=\"plainframe-ui-switch-track\"\n css={[trackBaseCss, userTrackCss]}\n >\n <div className=\"plainframe-ui-switch-thumb\" css={[thumbBaseCss, userThumbCss]} />\n </div>\n\n {label != null && (\n <span className=\"plainframe-ui-switch-label\" css={[labelBaseCss, userLabelCss]}>\n {label}\n </span>\n )}\n </label>\n );\n});\n","/** @jsxImportSource @emotion/react */\nimport React, { useCallback, useMemo, useState, forwardRef } from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { useFocusRing } from \"../utils/focusRing\";\n\ntype WithCssProp = { css?: Interpolation<Theme> };\ntype CheckboxSize = \"sm\" | \"md\" | \"lg\";\n\ntype CheckboxProps = WithCssProp & {\n checked?: boolean;\n defaultChecked?: boolean;\n onChange?: (checked: boolean) => void;\n disabled?: boolean;\n size?: CheckboxSize;\n label?: React.ReactNode;\n description?: React.ReactNode;\n rounded?: boolean;\n checkedIcon?: React.ReactNode;\n color?:\n | \"primary\"\n | \"secondary\"\n | \"neutral\"\n | \"danger\"\n | \"success\"\n | \"warning\"\n | \"info\"\n | string;\n boxCss?: Interpolation<Theme>;\n checkCss?: Interpolation<Theme>;\n labelCss?: Interpolation<Theme>;\n descriptionCss?: Interpolation<Theme>;\n className?: string;\n};\n\nconst getSize = (theme: ReturnType<typeof usePlainframeUITheme>, size: CheckboxSize) => {\n if (size === \"sm\") {\n return {\n box: 16,\n labelFont: theme.fontSizes.sm,\n gap: 8,\n borderRadius: theme.radius.xxs,\n borderWidth: theme.componentHeights.border,\n iconRatioW: 0.7,\n iconRatioH: 0.75,\n };\n }\n if (size === \"lg\") {\n return {\n box: 24,\n labelFont: theme.fontSizes.lg,\n gap: 8,\n borderRadius: theme.radius.xs,\n borderWidth: theme.componentHeights.border,\n iconRatioW: 0.7,\n iconRatioH: 0.75,\n };\n }\n return {\n box: 20,\n labelFont: theme.fontSizes.md,\n gap: 8,\n borderRadius: theme.radius.xs,\n borderWidth: theme.componentHeights.border,\n iconRatioW: 0.7,\n iconRatioH: 0.75,\n };\n};\n\nexport const Checkbox = forwardRef<HTMLLabelElement, CheckboxProps>(\n (\n {\n checked,\n defaultChecked = false,\n onChange,\n disabled = false,\n size = \"md\",\n label,\n description,\n rounded = false,\n checkedIcon,\n color = \"primary\",\n css: userCss,\n boxCss: userBoxCss,\n checkCss: userCheckCss,\n labelCss: userLabelCss,\n descriptionCss: userDescriptionCss,\n className,\n ...props\n },\n ref\n ) => {\n const theme = usePlainframeUITheme();\n const focusRing = useFocusRing();\n\n const isControlled = typeof checked === \"boolean\";\n const [internalChecked, setInternalChecked] = useState<boolean>(defaultChecked);\n const isOn = isControlled ? (checked as boolean) : internalChecked;\n\n const sizeKey: CheckboxSize = size === \"sm\" || size === \"lg\" ? size : \"md\";\n const S = useMemo(() => getSize(theme, sizeKey), [theme, sizeKey]);\n\n const { checkedBg, checkColor, borderCol, hoverBg, gapPx } = useMemo(() => {\n const palette = (theme.palette || {}) as Record<string, Record<string, string>>;\n const neutralScale = (theme.neutral || {}) as Record<string, string>;\n const onColors = (theme.text?.onColors || {}) as Record<string, string>;\n\n let scale: Record<string, string>;\n let onKey: string;\n\n if (color === \"neutral\" || color === \"secondary\") {\n scale = neutralScale;\n onKey = \"neutral\";\n } else if (typeof color === \"string\" && Object.prototype.hasOwnProperty.call(palette, color)) {\n scale = palette[color] || palette.primary || neutralScale;\n onKey = color;\n } else {\n scale = palette.primary || neutralScale;\n onKey = \"primary\";\n }\n\n const bg =\n scale[600] ??\n scale[500] ??\n scale[400] ??\n Object.values(scale)[0] ??\n theme.palette.primary[600];\n\n const chk =\n onColors[onKey] ??\n onColors.primary ??\n theme.text?.onColors?.primary ??\n theme.text.primary;\n\n const gapVal = typeof S.gap === \"number\" ? S.gap + 2 : S.gap;\n\n return {\n checkedBg: bg,\n checkColor: chk,\n borderCol: theme.surface.border,\n hoverBg: theme.surface.panelHover,\n gapPx: gapVal,\n };\n }, [S.gap, color, theme]);\n\n const rootCss = useMemo(\n () =>\n css({\n display: \"inline-flex\",\n alignItems: label && description ? \"flex-start\" : \"center\",\n gap: gapPx,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n userSelect: \"auto\",\n position: \"relative\",\n width: \"fit-content\",\n borderRadius: theme.radius.sm,\n padding: theme.spacing.xs,\n transition: \"background-color .16s ease, color .16s ease, opacity .16s ease\",\n '&:not([data-disabled=\"true\"]):hover input:not(:checked) + .plainframe-ui-checkbox-box': {\n backgroundColor: hoverBg as string,\n outlineColor: borderCol as string,\n },\n \"input:checked + .plainframe-ui-checkbox-box\": {\n backgroundColor: checkedBg,\n outlineColor: checkedBg,\n },\n \".plainframe-ui-checkbox-check\": {\n opacity: 0,\n transform: \"scale(0.2)\",\n },\n \"input:checked + .plainframe-ui-checkbox-box .plainframe-ui-checkbox-check\": {\n opacity: 1,\n transform: \"scale(1)\",\n },\n }),\n [borderCol, checkedBg, description, disabled, gapPx, hoverBg, label, theme.radius.sm, theme.spacing.xs]\n );\n\n const inputCss = useMemo(\n () =>\n css({\n position: \"absolute\",\n opacity: 0,\n width: 0,\n height: 0,\n margin: 0,\n padding: 0,\n pointerEvents: \"none\",\n }),\n []\n );\n\n const boxBase = useMemo(\n () =>\n css({\n width: S.box,\n height: S.box,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: \"transparent\",\n outline: `${S.borderWidth} solid ${borderCol}`,\n outlineOffset: `-${S.borderWidth}`,\n borderRadius: rounded ? theme.radius.full : S.borderRadius,\n transition: \"background-color .16s ease, outline-color .05s ease, transform .16s ease\",\n flex: \"0 0 auto\",\n verticalAlign: \"middle\",\n overflow: \"hidden\",\n }),\n [S.box, S.borderRadius, S.borderWidth, borderCol, rounded, theme.radius.full]\n );\n\n const checkDims = useMemo(\n () => ({\n w: Math.round(S.box * S.iconRatioW),\n h: Math.round(S.box * S.iconRatioH),\n }),\n [S.box, S.iconRatioH, S.iconRatioW]\n );\n\n const checkBaseCss = useMemo(\n () =>\n css({\n width: checkDims.w,\n height: checkDims.h,\n transition: \"opacity .14s ease, transform .14s ease\",\n color: checkColor,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n lineHeight: 0,\n pointerEvents: \"none\",\n \"& > svg, & > img\": { width: \"100%\", height: \"100%\", display: \"block\" },\n }),\n [checkColor, checkDims.h, checkDims.w]\n );\n\n const textColCss = useMemo(\n () =>\n css({\n display: \"flex\",\n flexDirection: \"column\",\n minWidth: 0,\n userSelect: \"text\",\n WebkitUserSelect: \"text\",\n }),\n []\n );\n\n const baseLabelCss = useMemo(\n () =>\n css({\n fontSize: S.labelFont,\n lineHeight: 1.1,\n fontWeight: 500,\n userSelect: \"text\",\n WebkitUserSelect: \"text\",\n color: theme.text.primary,\n }),\n [S.labelFont, theme.text.primary]\n );\n\n const baseDescriptionCss = useMemo(\n () =>\n css({\n fontSize: S.labelFont,\n lineHeight: 1.25,\n color: theme.text.secondary,\n fontWeight: 400,\n marginTop: label && description ? theme.spacing.xs : 0,\n userSelect: \"text\",\n WebkitUserSelect: \"text\",\n }),\n [S.labelFont, description, label, theme.spacing.xs, theme.text.secondary]\n );\n\n const toggle = useCallback(() => {\n if (disabled) return;\n if (isControlled) {\n onChange?.(!isOn);\n } else {\n setInternalChecked((prev) => {\n const next = !prev;\n onChange?.(next);\n return next;\n });\n }\n }, [disabled, isControlled, isOn, onChange]);\n\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n toggle();\n }\n },\n [disabled, toggle]\n );\n\n return (\n <label\n ref={ref}\n role=\"checkbox\"\n aria-checked={isOn}\n aria-disabled={disabled || undefined}\n data-state={isOn ? \"checked\" : \"unchecked\"}\n className={[\"plainframe-ui-checkbox\", className || \"\"].join(\" \").trim()}\n css={[rootCss, focusRing({color: isOn ? \"primary\" : \"neutral\"}), userCss, disabled ? css({ opacity: 0.6 }) : null]}\n data-disabled={disabled ? \"true\" : \"false\"}\n tabIndex={!disabled ? 0 : -1}\n onKeyDown={onKeyDown}\n >\n <input\n type=\"checkbox\"\n checked={isOn}\n onChange={toggle}\n disabled={disabled}\n css={inputCss}\n {...props}\n tabIndex={-1}\n />\n\n <span className=\"plainframe-ui-checkbox-box\" css={[boxBase, userBoxCss]} aria-hidden=\"true\">\n <span className=\"plainframe-ui-checkbox-check\" css={[checkBaseCss, userCheckCss]}>\n {isOn &&\n (checkedIcon || (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke={checkColor}\n strokeWidth={3}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n css={css({ width: \"100%\", height: \"100%\", display: \"block\" })}\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n ))}\n </span>\n </span>\n\n {(label || description) && (\n <span className=\"plainframe-ui-checkbox-text\" css={textColCss}>\n {label && (\n <span className=\"plainframe-ui-checkbox-label\" css={[baseLabelCss, userLabelCss]}>\n {label}\n </span>\n )}\n {description && (\n <span className=\"plainframe-ui-checkbox-description\" css={[baseDescriptionCss, userDescriptionCss]}>\n {description}\n </span>\n )}\n </span>\n )}\n </label>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n","/** @jsxImportSource @emotion/react */\nimport React, { useContext, useMemo, useState, forwardRef } from \"react\";\nimport { css as emCss, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { Switch } from \"./Switch\";\nimport { Checkbox } from \"./Checkbox\";\nimport { MenuVariantCtx, DenseCtx as MenuDenseCtx, LevelCtx } from \"./Menu\";\nimport {\n MenuCtx as DropdownMenuCtx,\n FocusCtx as DropdownFocusCtx,\n RootBusCtx as DropdownRootBusCtx,\n} from \"./DropdownMenu\";\nimport { useFocusRing } from \"../utils/focusRing\";\n\nconst useMenu = () => useContext(DropdownMenuCtx);\nconst useFocusOpts = () => useContext(DropdownFocusCtx);\nconst useRootBus = () => useContext(DropdownRootBusCtx);\n\nexport type MenuItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n disabled?: boolean;\n destructive?: boolean;\n inset?: boolean | number;\n closeOnSelect?: boolean;\n onSelect?: () => void;\n css?: Interpolation<Theme>;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n selected?: boolean;\n meta?: React.ReactNode;\n};\n\nexport type MenuCheckboxItemProps = Omit<MenuItemProps, \"onSelect\" | \"startIcon\" | \"endIcon\"> & {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (next: boolean) => void;\n value?: string | number;\n};\n\nexport type MenuRadioGroupProps = {\n value?: string | number;\n defaultValue?: string | number;\n onValueChange?: (val: string | number) => void;\n children?: React.ReactNode;\n};\n\nexport type MenuRadioItemProps = Omit<MenuItemProps, \"onSelect\" | \"startIcon\" | \"endIcon\"> & {\n value: string | number;\n};\n\nexport type MenuLabelProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n inset?: boolean;\n css?: Interpolation<Theme>;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n wrap?: boolean;\n};\n\nexport type MenuSeparatorProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n css?: Interpolation<Theme>;\n variant?: \"full\" | \"middle\" | \"inset\";\n};\n\ntype ItemPrivate = { __index?: number };\n\nexport const MenuItem: React.ForwardRefExoticComponent<\n React.PropsWithoutRef<MenuItemProps & ItemPrivate> & React.RefAttributes<HTMLDivElement>\n> = React.forwardRef<HTMLDivElement, MenuItemProps & ItemPrivate>(\n function MenuItem(\n {\n disabled = false,\n destructive = false,\n inset,\n closeOnSelect = true,\n onSelect,\n children,\n className,\n css: userCss,\n startIcon,\n endIcon,\n selected = false,\n meta,\n __index,\n ...rest\n },\n ref\n ) {\n const dd = useMenu();\n const rootBus = useRootBus();\n const { allItemsTabbable } = useFocusOpts() ?? { allItemsTabbable: true };\n const theme = usePlainframeUITheme();\n const focusRing = useFocusRing();\n\n const denseFromMenu = useContext(MenuDenseCtx);\n const dense = !!denseFromMenu;\n\n const isActive = dd && __index != null && dd.activeIndex === __index;\n const isSubTrigger = (rest as any)[\"data-subtrigger\"] !== undefined;\n\n const nesting = useContext(LevelCtx) ?? 0;\n const insetLevel = typeof inset === \"number\" ? inset : inset === false ? 0 : nesting;\n\n const variant = useContext(MenuVariantCtx);\n const variantHover =\n variant === \"subtle\"\n ? theme.surface?.subtleHover ?? theme.neutral[100]\n : variant === \"outlined\"\n ? theme.surface?.subtleBg ?? theme.neutral[100]\n : theme.surface?.subtleBg ?? theme.neutral[100];\n\n const itemCss = emCss({\n width: \"100%\",\n borderRadius: theme.radius.md,\n padding: `${dense ? theme.spacing.xs : theme.spacing.sm} ${theme.spacing.sm}`,\n paddingLeft:\n insetLevel > 0\n ? `calc(${theme.spacing.md} + (${theme.spacing.xl} * ${insetLevel}))`\n : theme.spacing.md,\n minHeight: dense ? theme.componentHeights.sm : theme.componentHeights.md,\n display: \"flex\",\n alignItems: \"center\",\n gap: theme.spacing.sm,\n fontWeight: 500,\n fontSize: theme.fontSizes.md,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n opacity: disabled ? 0.55 : 1,\n userSelect: \"none\",\n background: selected || isActive\n ? (destructive ? theme.palette.danger[50] : variantHover)\n : \"transparent\",\n color: destructive ? theme.palette.danger[800] : theme.text.primary,\n transition: \"background-color .16s ease, color .16s ease\",\n \"&:hover\": disabled ? {} : { background: destructive ? theme.palette.danger[50] : variantHover },\n \"&:focus-visible\": disabled ? {} : { background: destructive ? theme.palette.danger[50] : variantHover },\n \"& > [data-label]\": {\n flex: 1,\n minWidth: 0,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n });\n\n const iconStartBox = emCss({\n width: 18,\n height: 18,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flex: \"0 0 auto\",\n lineHeight: 0,\n marginLeft: -2,\n \"& > svg\": { width: 16, height: 16, display: \"block\" },\n });\n\n const iconEndBox = emCss({\n marginLeft: \"auto\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n flex: \"0 0 auto\",\n flexShrink: 0,\n whiteSpace: \"nowrap\",\n lineHeight: 0,\n \"& > svg\": { width: 16, height: 16, display: \"block\" },\n color: theme.text.secondary,\n });\n\n const overlayCss: Interpolation<Theme>[] = [];\n if (dense) overlayCss.push({ minHeight: theme.componentHeights.sm });\n\n const activate = () => {\n onSelect?.();\n if (closeOnSelect && !isSubTrigger) rootBus?.closeAll();\n };\n\n const moveFocus = (currentEl: HTMLElement, idxGetter: (len: number, cur: number) => number) => {\n if (dd) {\n const nodes = (dd.listRef.current || []).filter(Boolean) as HTMLElement[];\n if (nodes.length) {\n const cur = Math.max(0, nodes.indexOf(currentEl));\n const next = idxGetter(nodes.length, cur);\n dd.setActiveIndex(next);\n nodes[next]?.focus();\n return;\n }\n }\n const container = currentEl.closest('[role=\"menu\"]') as HTMLElement | null;\n if (!container) return;\n const candidates = Array.from(\n container.querySelectorAll<HTMLElement>(\n '[role=\"menuitem\"],[role=\"menuitemcheckbox\"],[role=\"menuitemradio\"]'\n )\n ).filter((el) => !el.hasAttribute(\"aria-disabled\"));\n if (!candidates.length) return;\n const cur = Math.max(0, candidates.indexOf(currentEl));\n const next = idxGetter(candidates.length, cur);\n candidates[next]?.focus();\n };\n\n return (\n <div\n role=\"menuitem\"\n aria-disabled={disabled || undefined}\n data-disabled={disabled ? \"\" : undefined}\n tabIndex={\n disabled ? -1 : dd ? (allItemsTabbable ? 0 : isActive ? 0 : -1) : 0\n }\n ref={(node) => {\n if (dd) {\n const arr = dd.listRef.current;\n if (node) {\n if (__index != null) arr[__index] = node as any;\n else if (!arr.includes(node as any)) arr.push(node as any);\n }\n }\n if (typeof ref === \"function\") ref(node);\n else if (ref && \"current\" in (ref as any)) (ref as any).current = node;\n }}\n onMouseEnter={() => {\n if (!disabled && dd && __index != null) dd.setActiveIndex(__index);\n }}\n onFocus={() => {\n if (!disabled && dd && __index != null) dd.setActiveIndex(__index);\n }}\n onMouseLeave={() => {\n if (dd && __index != null && dd.activeIndex === __index) dd.setActiveIndex(null);\n }}\n onKeyDown={(e) => {\n if (disabled) return;\n const el = e.currentTarget as HTMLElement;\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n activate();\n return;\n }\n if (e.key === \"Escape\") {\n rootBus?.closeAll();\n return;\n }\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n moveFocus(el, (len, cur) => (cur + 1) % len);\n return;\n }\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n moveFocus(el, (len, cur) => (cur - 1 + len) % len);\n return;\n }\n if (e.key === \"Home\") {\n e.preventDefault();\n moveFocus(el, (len) => 0);\n return;\n }\n if (e.key === \"End\") {\n e.preventDefault();\n moveFocus(el, (len) => len - 1);\n return;\n }\n }}\n className={[\"plainframe-ui-menu-item\", className || \"\"].join(\" \").trim()}\n css={emCss(\n ...[\n focusRing({ color: destructive ? \"danger\" : \"neutral\" }),\n itemCss,\n ...(overlayCss as Interpolation<Theme>[]),\n userCss as any\n ].flat()\n )}\n {...rest}\n onClick={() => {\n if (disabled) return;\n activate();\n }}\n >\n {startIcon && (\n <span className=\"plainframe-ui-menu-item-start\" css={iconStartBox}>\n {startIcon}\n </span>\n )}\n {children}\n {(meta != null || endIcon) && (\n <span className=\"plainframe-ui-menu-item-end\" css={iconEndBox}>\n {meta != null ? (\n <span\n className=\"plainframe-ui-menu-item-meta\"\n css={emCss({\n lineHeight: 1,\n fontSize: theme.fontSizes.md,\n color: theme.text.secondary,\n whiteSpace: \"nowrap\",\n marginRight: endIcon ? 6 : 0,\n })}\n >\n {meta}\n </span>\n ) : null}\n {endIcon}\n </span>\n )}\n </div>\n );\n }\n);\n\ntype CheckboxCtxT = {\n values: Array<string | number>;\n toggle: (v: string | number) => void;\n};\n\nconst CheckboxCtx = React.createContext<CheckboxCtxT | null>(null);\n\nexport const MenuCheckboxGroup: React.FC<{\n values?: Array<string | number>;\n defaultValues?: Array<string | number>;\n onValuesChange?: (v: Array<string | number>) => void;\n children: React.ReactNode;\n}> = ({ values, defaultValues, onValuesChange, children }) => {\n const [internal, setInternal] = useState<Array<string | number>>(defaultValues ?? []);\n const isControlled = values !== undefined;\n const vals = isControlled ? (values as Array<string | number>) : internal;\n\n const toggle = (v: string | number) => {\n const exists = vals.some((x) => Object.is(x, v));\n const next = exists ? vals.filter((x) => !Object.is(x, v)) : [...vals, v];\n if (!isControlled) setInternal(next);\n onValuesChange?.(next);\n };\n\n const ctx = useMemo<CheckboxCtxT>(() => ({ values: vals, toggle }), [vals]);\n return <CheckboxCtx.Provider value={ctx}>{children}</CheckboxCtx.Provider>;\n};\n\nexport const MenuCheckboxItem: React.ForwardRefExoticComponent<\n React.PropsWithoutRef<MenuCheckboxItemProps & ItemPrivate> & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, MenuCheckboxItemProps & ItemPrivate>(\n function MenuCheckboxItem(\n { checked, defaultChecked = false, onCheckedChange, value, children, __index, disabled = false, css: userCss, className, ...rest },\n ref\n ) {\n const group = useContext(CheckboxCtx);\n const grouped = !!group && value !== undefined;\n\n const isControlled = !grouped && checked !== undefined;\n const [internal, setInternal] = useState<boolean>(() => {\n if (grouped) return group!.values.some((v) => Object.is(v, value));\n return !!defaultChecked;\n });\n\n const isChecked = grouped\n ? group!.values.some((v) => Object.is(v, value))\n : isControlled\n ? !!checked\n : internal;\n\n const theme = usePlainframeUITheme();\n\n const handleToggle = () => {\n if (disabled) return;\n if (grouped) {\n group!.toggle(value!);\n } else {\n const next = !isChecked;\n if (!isControlled) setInternal(next);\n onCheckedChange?.(next);\n }\n };\n\n const labelCss = emCss({\n flex: 1,\n minWidth: 0,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n });\n\n const checkboxWrapCss = emCss({\n width: 18,\n height: 18,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flex: \"0 0 auto\",\n lineHeight: 0,\n marginLeft: -2,\n borderRadius: theme.radius.sm,\n transition: \"background-color .12s ease\",\n });\n\n const checkboxCss = emCss({ pointerEvents: \"none\" });\n\n return (\n <MenuItem\n {...rest}\n className={[\"plainframe-ui-menu-checkbox-item\", className || \"\"].join(\" \").trim()}\n ref={ref}\n __index={__index}\n role=\"menuitemcheckbox\"\n aria-checked={isChecked}\n closeOnSelect={false}\n onSelect={handleToggle}\n disabled={disabled}\n startIcon={\n <span\n data-menu-checkbox-wrapper\n className=\"plainframe-ui-menu-checkbox-wrapper\"\n css={checkboxWrapCss}\n >\n <Checkbox\n size=\"sm\"\n checked={isChecked}\n css={checkboxCss}\n className=\"plainframe-ui-menu-checkbox\"\n />\n </span>\n }\n css={userCss}\n >\n <span data-label css={labelCss} className=\"plainframe-ui-menu-item-label\">\n {children}\n </span>\n </MenuItem>\n );\n }\n);\nMenuCheckboxItem.displayName = \"MenuCheckboxItem\";\n\nexport type MenuSwitchItemProps = Omit<MenuItemProps, \"onSelect\" | \"startIcon\" | \"endIcon\"> & {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (next: boolean) => void;\n switchSize?: \"sm\" | \"md\" | \"lg\";\n switchCss?: Interpolation<Theme>;\n startIcon?: React.ReactNode;\n};\n\nexport const MenuSwitchItem: React.ForwardRefExoticComponent<\n React.PropsWithoutRef<MenuSwitchItemProps & ItemPrivate> & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, MenuSwitchItemProps & ItemPrivate>(\n function MenuSwitchItem(\n {\n checked,\n defaultChecked = false,\n onCheckedChange,\n children,\n __index,\n disabled = false,\n css: userCss,\n switchSize = \"md\",\n switchCss,\n startIcon,\n className,\n ...rest\n },\n ref\n ) {\n const isControlled = checked !== undefined;\n const [internal, setInternal] = useState<boolean>(!!defaultChecked);\n const value = isControlled ? !!checked : internal;\n\n const labelCss = emCss({\n flex: 1,\n minWidth: 0,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n });\n\n const switchWrapCss = emCss({\n marginLeft: \"auto\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n flex: \"0 0 auto\",\n flexShrink: 0,\n });\n\n const toggle = () => {\n if (disabled) return;\n const next = !value;\n if (!isControlled) setInternal(next);\n onCheckedChange?.(next);\n };\n\n const iconStartBox = emCss({\n width: 18,\n height: 18,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flex: \"0 0 auto\",\n lineHeight: 0,\n marginLeft: -2,\n \"& > svg\": { width: 16, height: 16, display: \"block\" },\n });\n\n return (\n <MenuItem\n {...rest}\n className={[\"plainframe-ui-menu-switch-item\", className || \"\"].join(\" \").trim()}\n ref={ref}\n __index={__index}\n disabled={disabled}\n closeOnSelect={false}\n onSelect={toggle}\n css={userCss}\n >\n {startIcon && (\n <span className=\"plainframe-ui-menu-item-start\" css={iconStartBox}>\n {startIcon}\n </span>\n )}\n <span data-label css={labelCss} className=\"plainframe-ui-menu-item-label\">\n {children}\n </span>\n <span className=\"plainframe-ui-menu-switch-wrap\" css={switchWrapCss}>\n <Switch\n size={switchSize}\n checked={value}\n css={emCss({ pointerEvents: \"none\", padding: 0, marginRight: -1 }, switchCss as any)}\n className=\"plainframe-ui-menu-switch\"\n tabIndex={-1}\n />\n </span>\n </MenuItem>\n );\n }\n);\nMenuSwitchItem.displayName = \"MenuSwitchItem\";\n\ntype RadioCtxT = {\n value?: string | number;\n onChange?: (v: string | number) => void;\n};\nconst RadioCtx = React.createContext<RadioCtxT | null>(null);\n\nexport const MenuRadioGroup: React.FC<MenuRadioGroupProps> = ({\n value,\n defaultValue,\n onValueChange,\n children,\n}) => {\n const [uc, setUc] = useState<string | number | undefined>(defaultValue);\n const val = value ?? uc;\n const onChange = (v: string | number) => {\n if (value !== undefined) onValueChange?.(v);\n else {\n setUc(v);\n onValueChange?.(v);\n }\n };\n const ctx = useMemo<RadioCtxT>(() => ({ value: val, onChange }), [val]);\n return <RadioCtx.Provider value={ctx}>{children}</RadioCtx.Provider>;\n};\nMenuRadioGroup.displayName = \"MenuRadioGroup\";\n\nexport const MenuRadioItem: React.ForwardRefExoticComponent<\n React.PropsWithoutRef<MenuRadioItemProps & ItemPrivate> & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, MenuRadioItemProps & ItemPrivate>(\n function MenuRadioItem({ value, children, __index, disabled = false, css: userCss, className, ...rest }, ref) {\n const radio = useContext(RadioCtx);\n const checked = radio?.value === value;\n const theme = usePlainframeUITheme();\n\n const dotBoxCss = emCss({\n width: theme.spacing.md,\n display: \"inline-flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n marginLeft: -1,\n });\n\n const dotInnerCss = emCss({\n width: 7,\n height: 7,\n borderRadius: \"100%\",\n backgroundColor: theme.palette.primary[600],\n transform: checked ? \"scale(1)\" : \"scale(0.4)\",\n opacity: checked ? 1 : 0,\n transition: \"transform 140ms ease-out, opacity 140ms linear\",\n transformOrigin: \"center center\",\n });\n\n const textCss = emCss({ flex: 1, minWidth: 0, overflow: \"hidden\", textOverflow: \"ellipsis\", whiteSpace: \"nowrap\" });\n\n return (\n <MenuItem\n {...rest}\n className={[\"plainframe-ui-menu-radio-item\", className || \"\"].join(\" \").trim()}\n ref={ref}\n __index={__index}\n role=\"menuitemradio\"\n aria-checked={checked}\n closeOnSelect={false}\n onSelect={() => {\n if (!disabled) (radio as any)?.onChange?.(value as any);\n }}\n disabled={disabled}\n css={userCss}\n >\n <span className=\"plainframe-ui-menu-radio-dotbox\" css={dotBoxCss}>\n <span className=\"plainframe-ui-menu-radio-dot\" css={dotInnerCss} />\n </span>\n <span className=\"plainframe-ui-menu-item-label\" css={textCss}>\n {children}\n </span>\n </MenuItem>\n );\n }\n);\n\nexport const MenuLabel: React.ForwardRefExoticComponent<\n React.PropsWithoutRef<MenuLabelProps> & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, MenuLabelProps>(function MenuLabel(\n { inset, className, css: userCss, children, startIcon, endIcon, wrap = false, ...rest },\n ref\n) {\n const theme = usePlainframeUITheme();\n\n const base = emCss({\n display: \"flex\",\n alignItems: \"center\",\n padding: `${theme.spacing.sm} ${theme.spacing.md}`,\n fontSize: theme.fontSizes.md,\n color: theme.text.secondary,\n fontWeight: 500,\n ...(inset ? { paddingLeft: `calc(${theme.spacing.lg} * 2)` } : null),\n gap: theme.spacing.xs,\n });\n\n const textCss = emCss({\n flex: 1,\n minWidth: 0,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: wrap ? \"normal\" : \"nowrap\",\n });\n\n const iconStartBox = emCss({\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flex: \"0 0 auto\",\n lineHeight: 0,\n padding: \"0 3px 0 2px\",\n marginLeft: -2,\n \"& > svg\": { width: 16, height: 16, display: \"block\" },\n });\n\n const iconEndBox = emCss({\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n flex: \"0 0 auto\",\n flexShrink: 0,\n lineHeight: 0,\n \"& > svg\": { width: 16, height: 16, display: \"block\" },\n });\n\n return (\n <div\n ref={ref}\n role=\"presentation\"\n className={[\"plainframe-ui-menu-label\", className || \"\"].join(\" \").trim()}\n css={emCss(base, userCss as any)}\n {...rest}\n >\n {startIcon && <span className=\"plainframe-ui-menu-label-start\" css={iconStartBox}>{startIcon}</span>}\n <span className=\"plainframe-ui-menu-label-text\" css={textCss}>\n {children}\n </span>\n {endIcon && <span className=\"plainframe-ui-menu-label-end\" css={iconEndBox}>{endIcon}</span>}\n </div>\n );\n});\nMenuLabel.displayName = \"MenuLabel\";\n\nexport const MenuSeparator: React.FC<MenuSeparatorProps> = ({\n className,\n css: userCss,\n variant = \"full\",\n ...rest\n}) => {\n const theme = usePlainframeUITheme();\n\n const padVar = `var(--pfui-panel-pad, ${\n typeof theme.spacing.xs === \"number\" ? theme.spacing.xs + \"px\" : String(theme.spacing.xs)\n })`;\n\n const fullCss = emCss({\n height: 1,\n background: theme.surface.border,\n marginTop: padVar,\n marginBottom: padVar,\n marginLeft: \"calc(var(--pfui-panel-pad, 0px) * -1)\",\n marginRight: \"calc(var(--pfui-panel-pad, 0px) * -1)\",\n });\n\n const middleCss = emCss({\n height: 1,\n background: theme.surface.border,\n marginTop: padVar,\n marginBottom: padVar,\n marginLeft: `${theme.spacing.md}`,\n marginRight: `${theme.spacing.md}`,\n });\n\n const insetCss = emCss({\n height: 1,\n background: theme.surface.border,\n marginTop: padVar,\n marginBottom: padVar,\n marginLeft: `${theme.spacing.lg}`,\n marginRight: 0,\n });\n\n const variantCss = variant === \"full\" ? fullCss : variant === \"middle\" ? middleCss : insetCss;\n\n return (\n <div\n role=\"separator\"\n className={[\"plainframe-ui-menu-separator\", className || \"\"].join(\" \").trim()}\n css={emCss(variantCss, userCss as any)}\n {...rest}\n />\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, { useMemo, useState, useCallback, forwardRef } from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { useFocusRing } from \"../utils/focusRing\";\n\ntype SpaceToken = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\ntype RadiusToken = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\ntype ContainerVariant = \"panel\" | \"subtle\" | \"outlined\" | \"ghost\";\n\nexport type ContainerProps = Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"style\" | \"color\"\n> & {\n children?: React.ReactNode;\n css?: Interpolation<Theme>;\n variant?: ContainerVariant;\n padding?: number | string | SpaceToken;\n radius?: number | string | RadiusToken;\n hoverable?: boolean;\n selectable?: boolean;\n selected?: boolean;\n defaultSelected?: boolean;\n onSelectedChange?: (selected: boolean) => void;\n width?: number | string;\n height?: number | string;\n className?: string;\n};\n\nconst toLen = (v: number | string | undefined): string | undefined =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nconst resolvePadding = (\n padding: ContainerProps[\"padding\"],\n theme: { spacing?: Record<string, string | number>; space?: Record<string, string | number> }\n): string | undefined => {\n if (padding == null) return undefined;\n if (typeof padding === \"number\") return `${padding}px`;\n if (typeof padding === \"string\") {\n const scale = theme.spacing ?? theme.space;\n return toLen(scale?.[padding] ?? padding);\n }\n return undefined;\n};\n\nconst resolveRadius = (\n radius: ContainerProps[\"radius\"],\n theme: { radius?: Record<string, string | number>; radii?: Record<string, string | number> }\n): string | undefined => {\n if (radius == null) return undefined;\n if (typeof radius === \"number\") return `${radius}px`;\n if (typeof radius === \"string\") {\n const scale = theme.radius ?? theme.radii;\n return toLen(scale?.[radius] ?? radius);\n }\n return undefined;\n};\n\nconst baseBgFor = (\n variant: ContainerVariant,\n theme: { surface?: { panelBg?: string; subtleBg?: string } }\n): string => {\n const s = theme.surface ?? {};\n if (variant === \"panel\" || variant === \"outlined\") return s.panelBg ?? \"transparent\";\n if (variant === \"subtle\") return s.subtleBg ?? \"transparent\";\n return \"transparent\";\n};\n\nconst hoverBgFor = (\n variant: ContainerVariant,\n theme: { surface?: { panelHover?: string; panelBg?: string; subtleHover?: string; subtleBg?: string } },\n baseBg: string\n): string => {\n const s = theme.surface ?? {};\n if (variant === \"panel\" || variant === \"outlined\") return s.panelHover ?? s.panelBg ?? baseBg;\n if (variant === \"subtle\") return s.subtleHover ?? s.subtleBg ?? baseBg;\n return s.subtleBg ?? baseBg;\n};\n\nexport const Container: React.ForwardRefExoticComponent<\n ContainerProps & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, ContainerProps>(function Container(\n {\n children,\n css: userCss,\n variant = \"ghost\",\n padding,\n radius,\n className,\n hoverable,\n selectable,\n selected: controlledSelected,\n defaultSelected,\n onSelectedChange,\n width,\n height,\n onClick,\n onKeyDown,\n role,\n tabIndex,\n ...rest\n },\n ref\n): React.ReactElement | null {\n const theme = usePlainframeUITheme();\n const surface = theme.surface ?? {};\n\n const [internalSelected, setInternalSelected] = useState<boolean>(!!defaultSelected);\n const isControlled = controlledSelected != null;\n const selected = isControlled ? !!controlledSelected : internalSelected;\n\n const baseBg = useMemo<string>(() => baseBgFor(variant, theme), [variant, theme]);\n const hoverBg = useMemo<string>(() => hoverBgFor(variant, theme, baseBg), [variant, theme, baseBg]);\n const selectedBg: string = hoverBg;\n\n const pad = useMemo<string | undefined>(() => resolvePadding(padding, theme), [padding, theme]);\n const rad = useMemo<string | undefined>(() => resolveRadius(radius, theme), [radius, theme]);\n\n const interactive = !!hoverable || !!selectable;\n\n const rootCss = useMemo<Interpolation<Theme>>(\n () =>\n css({\n backgroundColor: baseBg,\n padding: pad,\n borderRadius: rad,\n border:\n variant === \"outlined\"\n ? `${theme.componentHeights?.border ?? \"1px\"} solid ${theme.surface.border ?? \"transparent\"}`\n : undefined,\n backgroundClip: \"padding-box\",\n boxSizing: \"border-box\",\n width: width ? \"100%\" : undefined,\n maxWidth: toLen(width),\n height: toLen(height),\n transition: \"background-color .16s ease, border-color .16s ease\",\n cursor: interactive ? \"pointer\" : undefined,\n ...(interactive ? { \"&:hover\": { backgroundColor: hoverBg } } : {}),\n '&[data-selected=\"true\"]': { backgroundColor: selectedBg },\n ...(interactive\n ? { '&[data-selected=\"true\"]:hover': { backgroundColor: selectedBg } }\n : {}),\n }),\n [baseBg, pad, rad, variant, theme.componentHeights, theme.surface.border, width, height, interactive, hoverBg, selectedBg]\n );\n\n const toggleSelected = useCallback((): void => {\n if (!selectable) return;\n const next = !selected;\n if (!isControlled) setInternalSelected(next);\n onSelectedChange?.(next);\n }, [isControlled, onSelectedChange, selectable, selected]);\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLDivElement>>(\n (e) => {\n if (selectable) toggleSelected();\n onClick?.(e);\n },\n [selectable, toggleSelected, onClick]\n );\n\n const handleKeyDownInt = useCallback<React.KeyboardEventHandler<HTMLDivElement>>(\n (e) => {\n if (selectable && (e.key === \"Enter\" || e.key === \" \")) {\n e.preventDefault();\n toggleSelected();\n }\n onKeyDown?.(e);\n },\n [selectable, toggleSelected, onKeyDown]\n );\n\n const focusRing = useFocusRing();\n\n return (\n <div\n ref={ref}\n data-variant={variant}\n data-selected={selectable && selected ? \"true\" : undefined}\n aria-pressed={selectable ? selected : undefined}\n className={[\"plainframe-ui-container\", className || \"\"].join(\" \").trim()}\n css={[focusRing(), rootCss, userCss]}\n onClick={handleClick}\n onKeyDown={handleKeyDownInt}\n role={selectable ? role ?? \"button\" : role}\n tabIndex={selectable ? tabIndex ?? 0 : tabIndex}\n {...rest}\n >\n {children}\n </div>\n );\n});\n\nContainer.displayName = \"Container\";\n","/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { useFocusRing } from \"../utils/focusRing\";\nimport { Container, type ContainerProps } from \"./Container\";\n\ntype WithCssProp = { css?: Interpolation<Theme> };\ntype CardDirection = \"horizontal\" | \"vertical\";\ntype Align = \"start\" | \"center\" | \"end\";\n\ntype SectionPadding = {\n padding?: ContainerProps[\"padding\"];\n paddingX?: ContainerProps[\"padding\"];\n paddingY?: ContainerProps[\"padding\"];\n};\n\nexport type CardProps = WithCssProp &\n Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\" | \"className\"> & {\n variant?: ContainerProps[\"variant\"];\n padding?: ContainerProps[\"padding\"];\n radius?: ContainerProps[\"radius\"];\n\n hoverable?: ContainerProps[\"hoverable\"];\n selectable?: ContainerProps[\"selectable\"];\n selected?: ContainerProps[\"selected\"];\n defaultSelected?: ContainerProps[\"defaultSelected\"];\n onSelectedChange?: (selected: boolean) => void;\n\n width?: ContainerProps[\"width\"];\n height?: ContainerProps[\"height\"];\n gap?: string | number | ContainerProps[\"padding\"];\n\n direction?: CardDirection;\n\n className?: string;\n };\n\ntype CardSectionBaseProps = WithCssProp &\n SectionPadding &\n Omit<React.HTMLAttributes<HTMLDivElement>, \"className\"> & {\n className?: string;\n align?: Align;\n };\n\ntype CardSideProps = CardSectionBaseProps;\n\nconst toLen = (v: number | string | undefined) =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nfunction resolveTokenPadding(\n padding: ContainerProps[\"padding\"],\n theme: Record<string, unknown>\n): string | undefined {\n if (padding == null) return undefined;\n\n if (typeof padding === \"number\") return `${padding}px`;\n\n if (typeof padding === \"string\") {\n const spacingScale =\n (theme.spacing as Record<string, string | number> | undefined) ??\n (theme.space as Record<string, string | number> | undefined);\n if (spacingScale && padding in spacingScale) {\n const v = spacingScale[padding];\n return toLen(v);\n }\n return padding;\n }\n\n return undefined;\n}\n\nfunction flexAlign(\n align: Align | undefined\n): \"flex-start\" | \"center\" | \"flex-end\" {\n switch (align) {\n case \"center\":\n return \"center\";\n case \"end\":\n return \"flex-end\";\n case \"start\":\n default:\n return \"flex-start\";\n }\n}\n\nfunction textAlign(align: Align | undefined): \"left\" | \"center\" | \"right\" {\n switch (align) {\n case \"center\":\n return \"center\";\n case \"end\":\n return \"right\";\n case \"start\":\n default:\n return \"left\";\n }\n}\n\nfunction resolveGap(\n gap: CardProps[\"gap\"],\n theme: Record<string, unknown>\n): string | number | undefined {\n if (gap === null || gap === undefined) {\n const spacing = theme.spacing as Record<string, string | number> | undefined;\n return spacing?.md ?? undefined;\n }\n\n if (typeof gap === \"number\") return gap;\n\n if (typeof gap === \"string\") {\n const spacingScale =\n (theme.spacing as Record<string, string | number> | undefined) ??\n (theme.space as Record<string, string | number> | undefined) ??\n {};\n if (gap in spacingScale) {\n return spacingScale[gap];\n }\n return gap;\n }\n\n return undefined;\n}\n\nfunction sectionPaddingStyles(\n theme: Record<string, unknown>,\n padding?: ContainerProps[\"padding\"],\n paddingX?: ContainerProps[\"padding\"],\n paddingY?: ContainerProps[\"padding\"]\n) {\n const p = resolveTokenPadding(padding, theme);\n const px = resolveTokenPadding(paddingX, theme);\n const py = resolveTokenPadding(paddingY, theme);\n\n const styles: React.CSSProperties = {};\n\n if (p && !px && !py) {\n styles.padding = p;\n }\n if (px) {\n styles.paddingLeft = px;\n styles.paddingRight = px;\n }\n if (py) {\n styles.paddingTop = py;\n styles.paddingBottom = py;\n }\n\n return styles;\n}\n\nfunction resolveColor(theme: Record<string, unknown>, color?: string | \"primary\" | \"secondary\") {\n if (!color) return undefined;\n if (color === \"primary\") return (theme as { text?: { primary?: string } }).text?.primary;\n if (color === \"secondary\") return (theme as { text?: { secondary?: string } }).text?.secondary;\n return color;\n}\n\nconst CardDirectionCtx = React.createContext<CardDirection>(\"horizontal\");\nconst useCardDirection = () => React.useContext(CardDirectionCtx);\n\nexport const Card: React.ForwardRefExoticComponent<\n React.PropsWithoutRef<CardProps> & React.RefAttributes<HTMLDivElement>\n> = React.forwardRef<HTMLDivElement, CardProps>(\n (\n {\n children,\n css: cssProp,\n variant = \"ghost\",\n padding = \"md\",\n radius = \"lg\",\n hoverable,\n selectable,\n selected,\n defaultSelected,\n onSelectedChange,\n width = \"100%\",\n height,\n gap,\n direction = \"horizontal\",\n className,\n onClick,\n ...rest\n },\n ref\n ) => {\n const theme = usePlainframeUITheme();\n const focusRing = useFocusRing();\n const isVertical = direction === \"vertical\";\n\n const cardBase = css({\n position: \"relative\",\n display: \"flex\",\n flexDirection: isVertical ? \"column\" : \"row\",\n gap: resolveGap(gap, theme),\n alignItems: isVertical ? \"stretch\" : \"center\",\n transition: \"all .16s ease\",\n });\n\n return (\n <CardDirectionCtx.Provider value={direction}>\n <Container\n ref={ref}\n variant={variant}\n padding={padding}\n radius={radius}\n hoverable={hoverable}\n selectable={selectable}\n selected={selected}\n defaultSelected={defaultSelected}\n onSelectedChange={onSelectedChange}\n width={width}\n height={height}\n className={[\"plainframe-ui-card\", className || \"\"]\n .join(\" \")\n .trim()}\n css={[focusRing(), cardBase, cssProp]}\n onClick={onClick}\n tabIndex={onClick ? 0 : undefined}\n {...rest}\n >\n {children}\n </Container>\n </CardDirectionCtx.Provider>\n );\n }\n);\n\nCard.displayName = \"Card\";\n\nexport const CardContent: React.FC<CardSectionBaseProps> = ({\n children,\n css: cssProp,\n className,\n align = \"start\",\n padding,\n paddingX,\n paddingY,\n ...rest\n}) => {\n const theme = usePlainframeUITheme();\n const direction = useCardDirection();\n const isVertical = direction === \"vertical\";\n\n const base = css({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: flexAlign(align),\n textAlign: textAlign(align),\n ...(isVertical ? { width: \"100%\" } : { flex: 1, minWidth: 0 }),\n ...sectionPaddingStyles(theme, padding, paddingX, paddingY),\n });\n\n return (\n <div\n data-slot=\"card-content\"\n className={[\"plainframe-ui-card-content\", className || \"\"]\n .join(\" \")\n .trim()}\n css={[base, cssProp]}\n {...rest}\n >\n {children}\n </div>\n );\n};\n\nexport const CardStart: React.FC<CardSideProps> = ({\n children,\n css: cssProp,\n className,\n align = \"start\",\n padding,\n paddingX,\n paddingY,\n ...rest\n}) => {\n const theme = usePlainframeUITheme();\n const direction = useCardDirection();\n const isVertical = direction === \"vertical\";\n\n const base = css({\n display: \"flex\",\n flexShrink: 0,\n justifyContent: flexAlign(align),\n alignItems: flexAlign(align),\n ...(isVertical ? { width: \"100%\" } : {}),\n ...sectionPaddingStyles(theme, padding, paddingX, paddingY),\n });\n\n return (\n <div\n data-slot=\"card-start\"\n className={[\"plainframe-ui-card-start\", className || \"\"]\n .join(\" \")\n .trim()}\n css={[base, cssProp]}\n {...rest}\n >\n {children}\n </div>\n );\n};\n\nexport const CardEnd: React.FC<CardSideProps> = ({\n children,\n css: cssProp,\n className,\n align = \"start\",\n padding,\n paddingX,\n paddingY,\n ...rest\n}) => {\n const theme = usePlainframeUITheme();\n const direction = useCardDirection();\n const isVertical = direction === \"vertical\";\n\n const base = css({\n display: \"flex\",\n flexShrink: 0,\n justifyContent: flexAlign(align),\n alignItems: flexAlign(align),\n ...(isVertical ? { width: \"100%\" } : {}),\n gap: theme.spacing.xs,\n color: theme.text.secondary,\n ...sectionPaddingStyles(theme, padding, paddingX, paddingY),\n });\n\n return (\n <div\n data-slot=\"card-end\"\n className={[\"plainframe-ui-card-end\", className || \"\"]\n .join(\" \")\n .trim()}\n css={[base, cssProp]}\n {...rest}\n >\n {children}\n </div>\n );\n};\n\ntype TextTune = {\n weight?: number | string;\n size?: number | string;\n color?: string | \"primary\" | \"secondary\";\n};\n\nexport const CardTitle: React.FC<CardSectionBaseProps & TextTune> = ({\n children,\n css: cssProp,\n className,\n align = \"start\",\n padding,\n paddingX,\n paddingY,\n weight,\n size,\n color,\n ...rest\n}) => {\n const theme = usePlainframeUITheme();\n\n const base = css({\n fontWeight: weight ?? 500,\n fontSize:\n size ??\n (theme.fontSizes?.md !== undefined ? theme.fontSizes.md : \"1rem\"),\n color: resolveColor(theme, color) ?? theme.text?.primary,\n textAlign: textAlign(align),\n ...sectionPaddingStyles(theme, padding, paddingX, paddingY),\n display: \"flex\",\n alignItems: \"center\",\n gap: theme.spacing?.xs ?? 6,\n });\n\n return (\n <div\n data-slot=\"card-title\"\n className={[\"plainframe-ui-card-title\", className || \"\"]\n .join(\" \")\n .trim()}\n css={[base, cssProp]}\n {...rest}\n >\n {children}\n </div>\n );\n};\n\nexport const CardDescription: React.FC<CardSectionBaseProps & TextTune> = ({\n children,\n css: cssProp,\n className,\n align = \"start\",\n padding,\n paddingX,\n paddingY,\n weight,\n size,\n color,\n ...rest\n}) => {\n const theme = usePlainframeUITheme();\n\n const base = css({\n fontWeight: weight ?? 400,\n fontSize:\n size ??\n (theme.fontSizes?.md !== undefined ? theme.fontSizes.md : \"0.875rem\"),\n color: resolveColor(theme, color) ?? theme.text?.secondary,\n marginTop: theme.spacing?.xxs ?? 2,\n textAlign: textAlign(align),\n ...sectionPaddingStyles(theme, padding, paddingX, paddingY),\n });\n\n return (\n <div\n data-slot=\"card-description\"\n className={[\"plainframe-ui-card-description\", className || \"\"]\n .join(\" \")\n .trim()}\n css={[base, cssProp]}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, { useMemo, useState, useEffect, useRef } from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { TextField } from \"./TextField\";\nimport {\n DropdownMenu as DropdownRoot,\n DropdownMenuTrigger,\n DropdownMenuContent,\n useDropdownMenuActiveIndex,\n} from \"./DropdownMenu\";\nimport { MenuItem, MenuCheckboxItem, MenuLabel } from \"./MenuItems\";\nimport {\n Card,\n CardStart,\n CardContent,\n CardTitle,\n CardDescription,\n CardEnd,\n} from \"./Card\";\n\ntype AutocompleteItem = {\n value: string;\n title?: string;\n description?: string;\n disabled?: boolean;\n group?: string;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n css?: Interpolation<Theme>;\n [key: string]: unknown;\n};\n\ntype WithCss = { css?: Interpolation<Theme> };\n\ntype AutocompleteProps = WithCss & {\n items?: AutocompleteItem[];\n onSelect?: (item: AutocompleteItem) => void;\n\n width?: number | string;\n fullWidth?: boolean;\n placeholder?: string;\n renderItem?: (\n item: AutocompleteItem,\n selected?: boolean,\n hovered?: boolean\n ) => React.ReactNode;\n\n inputCss?: Interpolation<Theme>;\n containerCss?: Interpolation<Theme>;\n className?: string;\n label?: string;\n helperText?: string;\n\n variant?: \"subtle\" | \"outlined\" | \"ghost\";\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n size?: \"sm\" | \"md\" | \"lg\";\n focusRingMode?: \"always\" | \"none\";\n\n itemsOpen?: boolean;\n onItemsOpenChange?: (open: boolean) => void;\n openOnFocus?: boolean;\n openOnType?: boolean;\n openOnClick?: boolean;\n\n freeItem?: boolean | { prefix?: string; suffix?: string };\n\n maxHeight?: number | string;\n maxItems?: number;\n noResultsText?: string;\n\n highlightTypedValue?: boolean;\n typedValueHighlightCss?: Interpolation<Theme>;\n\n showNoResults?: boolean;\n\n loadItems?: (query: string) => Promise<AutocompleteItem[]>;\n loading?: boolean;\n loadingText?: string;\n debounceMs?: number;\n\n multiple?: boolean;\n selectedValues?: string[];\n defaultSelectedValues?: string[];\n onChangeSelected?: (items: AutocompleteItem[]) => void;\n};\n\nconst normalize = (s: string) =>\n s\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .replace(/\\s+/g, \" \")\n .trim()\n .toLowerCase();\n\nconst toLen = (v?: number | string) =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nexport const Autocomplete: React.FC<AutocompleteProps> = ({\n items = [],\n onSelect,\n\n width = 300,\n fullWidth = false,\n placeholder,\n\n renderItem,\n\n focusRingMode,\n css: rootCssOverride,\n inputCss,\n containerCss,\n className,\n label,\n helperText,\n variant,\n startIcon,\n endIcon,\n size,\n\n itemsOpen,\n onItemsOpenChange,\n openOnFocus = true,\n openOnType = true,\n\n freeItem = false,\n\n maxHeight,\n maxItems = 6,\n noResultsText = \"No results\",\n\n highlightTypedValue,\n typedValueHighlightCss,\n\n showNoResults = false,\n\n loadItems,\n loading: loadingProp,\n loadingText = \"Loading…\",\n debounceMs = 200,\n\n multiple = false,\n selectedValues,\n defaultSelectedValues,\n onChangeSelected,\n}) => {\n const [inputValue, setInputValue] = useState(\"\");\n const isOpenControlled = typeof itemsOpen === \"boolean\";\n const [ucOpen, setUcOpen] = useState(false);\n const open = isOpenControlled ? (itemsOpen as boolean) : ucOpen;\n\n const requestOpen = (next: boolean) => {\n if (!isOpenControlled) setUcOpen(next);\n onItemsOpenChange?.(next);\n };\n\n const [ucMulti, setUcMulti] = useState<string[]>(defaultSelectedValues ?? []);\n const currentMulti = selectedValues ?? ucMulti;\n\n const [selected, setSelected] = useState<AutocompleteItem | null>(null);\n\n const [asyncItems, setAsyncItems] = useState<AutocompleteItem[]>([]);\n const [internalLoading, setInternalLoading] = useState(false);\n const isAsync = typeof loadItems === \"function\";\n const effectiveItems = isAsync ? asyncItems : items;\n const isLoading = Boolean(loadingProp) || (internalLoading && isAsync);\n\n const debounceRef = useRef<number | null>(null);\n useEffect(() => {\n if (!isAsync) return;\n if (debounceRef.current) window.clearTimeout(debounceRef.current);\n const q = inputValue;\n debounceRef.current = window.setTimeout(async () => {\n setInternalLoading(true);\n try {\n const next = (await loadItems!(q)) || [];\n setAsyncItems(Array.isArray(next) ? next : []);\n } catch {\n setAsyncItems([]);\n } finally {\n setInternalLoading(false);\n }\n }, Math.max(0, debounceMs));\n return () => {\n if (debounceRef.current) window.clearTimeout(debounceRef.current);\n };\n }, [inputValue, isAsync, loadItems, debounceMs]);\n\n const equalExists = useMemo(() => {\n const q = normalize(inputValue);\n if (!q) return false;\n return effectiveItems.some((o) => normalize(o.title ?? o.value) === q);\n }, [effectiveItems, inputValue]);\n\n const allowFree = !!freeItem && inputValue.trim().length > 0 && !equalExists;\n\n const buildFreeLabel = (v: string) => {\n if (typeof freeItem === \"object\") {\n const hasPrefix = Object.prototype.hasOwnProperty.call(freeItem, \"prefix\");\n const hasSuffix = Object.prototype.hasOwnProperty.call(freeItem, \"suffix\");\n if (hasPrefix || hasSuffix) {\n const prefix = hasPrefix ? freeItem.prefix ?? \"\" : \"\";\n const suffix = hasSuffix ? freeItem.suffix ?? \"\" : \"\";\n return `${prefix}${v}${suffix}`;\n }\n return `Add \"${v}\"`;\n }\n return `Add \"${v}\"`;\n };\n\n const filteredBase = useMemo(() => {\n if (isAsync) return effectiveItems;\n const q = normalize(inputValue);\n if (!q) return effectiveItems;\n let res = effectiveItems.filter((it) => {\n const label = normalize(it.title ?? it.value);\n return label.split(\" \").some((w) => w.startsWith(q));\n });\n if (res.length === 0) {\n res = effectiveItems.filter((it) =>\n normalize(it.title ?? it.value).includes(q)\n );\n }\n return res;\n }, [effectiveItems, inputValue, isAsync]);\n\n const baseWithFree = useMemo(() => {\n if (allowFree && filteredBase.length === 0) {\n const v = inputValue.trim();\n return [\n ...filteredBase,\n {\n value: v,\n title: buildFreeLabel(v),\n __pfui_free__: true,\n } as AutocompleteItem,\n ];\n }\n return filteredBase;\n }, [filteredBase, allowFree, inputValue]);\n\n const sections = useMemo(() => {\n const order: string[] = [];\n const groups = new Map<string, AutocompleteItem[]>();\n const keyOf = (o: AutocompleteItem) => o.group ?? \"__ungrouped__\";\n for (const o of baseWithFree) {\n const k = keyOf(o);\n if (!groups.has(k)) {\n groups.set(k, []);\n order.push(k);\n }\n groups.get(k)!.push(o);\n }\n const max = typeof maxItems === \"number\" ? Math.max(0, maxItems) : Infinity;\n let remaining = max;\n const out: Array<{ label?: string; items: AutocompleteItem[] }> = [];\n for (const k of order) {\n if (remaining <= 0) break;\n const list = groups.get(k)!;\n const take = list.slice(0, remaining);\n if (take.length > 0) {\n out.push({\n label: k === \"__ungrouped__\" ? undefined : k,\n items: take,\n });\n remaining -= take.length;\n }\n }\n return out;\n }, [baseWithFree, maxItems]);\n\n const hasItems = sections.some((s) => s.items.length > 0);\n const shouldShowNoResults = !hasItems && !!showNoResults && !isLoading;\n const panelHasContent = isLoading || hasItems || shouldShowNoResults;\n\n const emitMultiChange = (nextValues: string[]) => {\n const nextItems = effectiveItems\n .filter((i) => nextValues.includes(i.value))\n .concat(\n nextValues\n .filter((v) => !effectiveItems.some((o) => o.value === v))\n .map((v) => ({ value: v, title: v }))\n );\n onChangeSelected?.(nextItems);\n };\n\n const pick = (value: string) => {\n const it =\n effectiveItems.find((o) => o.value === value) ??\n ({ value, title: value } as AutocompleteItem);\n\n if (it.disabled) return;\n\n onSelect?.(it);\n\n if (multiple) {\n const exists = currentMulti.includes(it.value);\n const next = exists\n ? currentMulti.filter((v) => v !== it.value)\n : [...currentMulti, it.value];\n\n if (selectedValues) {\n emitMultiChange(next);\n } else {\n setUcMulti(next);\n emitMultiChange(next);\n }\n\n setInputValue(\"\");\n if (!isOpenControlled) requestOpen(true);\n } else {\n setSelected(it);\n setInputValue(it.title ?? it.value);\n if (!isOpenControlled) requestOpen(false);\n }\n };\n\n const handleInputChange = (val: string) => {\n if (!multiple) setSelected(null);\n setInputValue(val);\n if (!isOpenControlled && openOnType && val.trim().length > 0) {\n requestOpen(true);\n }\n };\n\n const cls = (s: string) =>\n `plainframe-ui-autocomplete${s ? `-${s}` : \"\"}`;\n\n const focusFirstMenuItem = () => {\n if (typeof document === \"undefined\") return;\n const menu = document.querySelector<HTMLElement>(`.${cls(\"menu\")}`);\n if (!menu) return;\n const first = menu.querySelector<HTMLElement>(\n '[role=\"menuitem\"],[role=\"menuitemcheckbox\"],[role=\"menuitemradio\"]'\n );\n first?.focus();\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \" \" || e.code === \"Space\" || e.key === \"Spacebar\") {\n e.stopPropagation();\n return;\n }\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n if (!open && !isOpenControlled) {\n requestOpen(true);\n requestAnimationFrame(focusFirstMenuItem);\n } else {\n focusFirstMenuItem();\n }\n return;\n }\n if (e.key === \"Tab\" && !e.shiftKey && open) {\n const menu =\n typeof document !== \"undefined\"\n ? document.querySelector<HTMLElement>(`.${cls(\"menu\")}`)\n : null;\n if (menu) {\n const first = menu.querySelector<HTMLElement>(\n '[role=\"menuitem\"],[role=\"menuitemcheckbox\"],[role=\"menuitemradio\"]'\n );\n if (first) {\n e.preventDefault();\n first.focus();\n return;\n }\n }\n }\n if (e.key === \"Enter\") {\n if (open) {\n e.preventDefault();\n return;\n }\n if (!multiple) {\n if (filteredBase.length > 0) {\n pick(filteredBase[0].value);\n } else if (freeItem && inputValue.trim()) {\n pick(inputValue.trim());\n }\n }\n } else if (e.key === \"Escape\") {\n if (!isOpenControlled) requestOpen(false);\n }\n };\n\n const handleInputFocus = () => {\n if (!isOpenControlled && openOnFocus) requestOpen(true);\n };\n\n const wrapCss = css({\n position: \"relative\",\n display: fullWidth ? \"block\" : \"inline-block\",\n width: fullWidth ? \"100%\" : \"auto\",\n });\n\n const triggerCss = css({\n width: fullWidth ? \"100%\" : width != null ? toLen(width) : \"auto\",\n });\n\n const anchorCss = css({\n position: \"absolute\",\n inset: 0,\n pointerEvents: \"none\",\n });\n\n const paint = (text: string) => {\n if (!highlightTypedValue || !inputValue) return text;\n const idx = text.toLowerCase().indexOf(inputValue.toLowerCase());\n if (idx < 0) return text;\n return (\n <span className={cls(\"highlight-wrap\")} css={css({ display: \"inline\" })}>\n {text.slice(0, idx)}\n <span\n className={cls(\"highlight\")}\n css={[css({ display: \"inline\", fontWeight: 600 }), typedValueHighlightCss]}\n >\n {text.slice(idx, idx + inputValue.length)}\n </span>\n {text.slice(idx + inputValue.length)}\n </span>\n );\n };\n\n const rowBaseCss = css({ minWidth: 0 });\n const itemCardCss = css({ width: \"100%\" });\n const contentNodes: React.ReactNode[] = [];\n\n const Row: React.FC<{ item: AutocompleteItem; absIndex: number }> = ({\n item,\n absIndex,\n }) => {\n const activeIndex = useDropdownMenuActiveIndex();\n const hovered = activeIndex === absIndex;\n\n if (multiple) {\n const checked = currentMulti.includes(item.value);\n const content = renderItem ? (\n renderItem(item, checked, hovered)\n ) : (\n <Card variant=\"ghost\" hoverable={false} selectable={false} padding={0} radius=\"sm\" css={itemCardCss}>\n {item.startIcon && <CardStart align=\"center\">{item.startIcon}</CardStart>}\n <CardContent align=\"start\">\n <CardTitle>{paint(String(item.title ?? item.value))}</CardTitle>\n {item.description && <CardDescription>{item.description}</CardDescription>}\n </CardContent>\n {item.endIcon && <CardEnd align=\"center\">{item.endIcon}</CardEnd>}\n </Card>\n );\n\n return (\n <MenuCheckboxItem\n __index={absIndex}\n key={item.value}\n checked={checked}\n onCheckedChange={() => !item.disabled && pick(item.value)}\n aria-disabled={!!item.disabled}\n disabled={!!item.disabled}\n className={cls(\"checkbox-item\")}\n css={css(rowBaseCss as any, item.css as any)}\n >\n {content}\n </MenuCheckboxItem>\n );\n }\n\n const isSelected = selected?.value === item.value;\n\n const content = renderItem ? (\n renderItem(item, isSelected, hovered)\n ) : (\n <Card variant=\"ghost\" hoverable={false} selectable={false} padding={0} radius=\"sm\" css={itemCardCss}>\n {item.startIcon && <CardStart align=\"center\">{item.startIcon}</CardStart>}\n <CardContent align=\"start\">\n <CardTitle>{paint(String(item.title ?? item.value))}</CardTitle>\n {item.description && <CardDescription>{item.description}</CardDescription>}\n </CardContent>\n {item.endIcon && <CardEnd align=\"center\">{item.endIcon}</CardEnd>}\n </Card>\n );\n\n const handleSelect = () => {\n if (!item.disabled) pick(item.value);\n };\n\n return (\n <MenuItem\n __index={absIndex}\n key={item.value}\n onClick={handleSelect}\n onSelect={handleSelect}\n aria-disabled={!!item.disabled}\n disabled={!!item.disabled}\n className={cls(\"item\")}\n css={css(rowBaseCss as any, item.css as any)}\n selected={isSelected}\n >\n {content}\n </MenuItem>\n );\n };\n\n if (isLoading) {\n contentNodes.push(\n <MenuLabel key=\"loading\" className={cls(\"label-loading\")}>\n {loadingText}\n </MenuLabel>\n );\n } else if (shouldShowNoResults) {\n contentNodes.push(\n <MenuLabel key=\"empty\" className={cls(\"label-empty\")}>\n {noResultsText}\n </MenuLabel>\n );\n } else {\n let abs = 0;\n sections.forEach((sec, gi) => {\n if (sec.label)\n contentNodes.push(\n <MenuLabel key={`g-${gi}`} className={cls(\"group-label\")}>\n {sec.label}\n </MenuLabel>\n );\n sec.items.forEach((it) => {\n contentNodes.push(<Row key={`${it.value}-${abs}`} item={it} absIndex={abs} />);\n abs += 1;\n });\n });\n }\n\n return (\n <div\n className={[cls(\"\"), className || \"\"].join(\" \").trim()}\n css={[wrapCss, containerCss, rootCssOverride]}\n tabIndex={-1}\n >\n <DropdownRoot open={open} onOpenChange={requestOpen}>\n <DropdownMenuTrigger asChild>\n <div aria-hidden=\"true\" tabIndex={-1} className={cls(\"anchor\")} css={anchorCss} />\n </DropdownMenuTrigger>\n\n <div className={cls(\"trigger\")} css={triggerCss}>\n <TextField\n className={cls(\"input\")}\n focusRingMode={focusRingMode}\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n onFocus={handleInputFocus}\n placeholder={placeholder}\n label={label}\n helperText={helperText}\n variant={variant}\n startIcon={startIcon}\n endIcon={endIcon}\n size={size}\n width={width}\n fullWidth={fullWidth}\n css={inputCss}\n />\n </div>\n\n {panelHasContent && (\n <DropdownMenuContent\n className={cls(\"menu\")}\n sameWidth\n side=\"bottom\"\n align=\"start\"\n maxHeight={typeof maxHeight === \"number\" ? `${maxHeight}px` : maxHeight}\n >\n {contentNodes}\n </DropdownMenuContent>\n )}\n </DropdownRoot>\n </div>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, { useState, useEffect, forwardRef } from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\n\ntype AvatarProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n src?: string;\n alt?: string;\n size?: \"sm\" | \"md\" | \"lg\" | number;\n color?: string;\n rounded?: boolean;\n css?: Interpolation<Theme>;\n className?: string;\n children?: React.ReactNode;\n};\n\nconst sizeKeys = [\"sm\", \"md\", \"lg\"] as const;\n\nconst getSize = (\n size: AvatarProps[\"size\"],\n theme: ReturnType<typeof usePlainframeUITheme>\n) => {\n if (typeof size === \"number\") return size;\n if (sizeKeys.includes(size as unknown as typeof sizeKeys[number]))\n return theme.componentHeights[size as keyof typeof theme.componentHeights];\n return theme.componentHeights.md;\n};\n\nconst getPaletteColor = (\n theme: ReturnType<typeof usePlainframeUITheme>,\n color?: string\n) => {\n const palette = theme.palette?.[color ?? \"primary\"] ?? theme.palette.primary;\n return palette?.[600] ?? palette?.[500] ?? theme.neutral?.[600] ?? theme.neutral?.[500];\n};\n\nconst getForegroundColor = (\n theme: ReturnType<typeof usePlainframeUITheme>,\n color?: string\n) => {\n const onColors = theme.text?.onColors ?? {};\n return onColors[color ?? \"primary\"] ?? onColors.primary ?? theme.text?.primary ?? \"#fff\";\n};\n\nconst getFallbackText = (children: React.ReactNode, alt?: string) => {\n if (typeof children === \"string\") return children;\n return (alt?.trim()?.[0] || \"\").toUpperCase();\n};\n\nexport const Avatar: React.ForwardRefExoticComponent<\n AvatarProps & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, AvatarProps>(\n (\n {\n src,\n alt,\n size = \"md\",\n color = \"primary\",\n rounded = true,\n className,\n css: userCss,\n children,\n ...rest\n },\n ref\n ) => {\n const theme = usePlainframeUITheme();\n const [showImg, setShowImg] = useState(!!src);\n\n useEffect(() => {\n setShowImg(!!src);\n }, [src]);\n\n const px = getSize(size, theme);\n const numeric = typeof px === \"number\" ? px : Number.parseFloat(String(px)) || 0;\n const fontSize = numeric ? Math.round(numeric * (numeric <= 28 ? 0.55 : 0.52)) : undefined;\n const radius = rounded ? theme.radius.full : theme.radius.md;\n const bg = getPaletteColor(theme, color);\n const fg = getForegroundColor(theme, color);\n const fallbackText = getFallbackText(children, alt);\n\n const baseCss = css({\n width: px,\n height: px,\n borderRadius: radius,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n background: showImg ? \"transparent\" : bg,\n color: showImg ? \"inherit\" : fg,\n boxSizing: \"border-box\",\n userSelect: \"none\",\n });\n\n const imgCss = css({\n width: \"100%\",\n height: \"100%\",\n display: \"block\",\n objectFit: \"cover\",\n });\n\n const textCss = css({\n fontSize,\n lineHeight: 1,\n fontWeight: 600,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n height: \"100%\",\n marginTop: -1,\n });\n\n return (\n <div\n ref={ref}\n className={[\"plainframe-ui-avatar\", className || \"\"].join(\" \").trim()}\n css={[baseCss, userCss]}\n role={showImg ? undefined : \"img\"}\n aria-label={showImg ? undefined : alt}\n {...rest}\n >\n {showImg && src ? (\n <img\n className=\"plainframe-ui-avatar-img\"\n src={src}\n alt={alt}\n css={imgCss}\n onError={() => setShowImg(false)}\n decoding=\"async\"\n loading=\"lazy\"\n />\n ) : typeof children === \"string\" ? (\n <span className=\"plainframe-ui-avatar-initials\" css={textCss}>\n {children}\n </span>\n ) : children ? (\n children\n ) : (\n <span className=\"plainframe-ui-avatar-initials\" css={textCss}>\n {fallbackText}\n </span>\n )}\n </div>\n );\n }\n);\n\nAvatar.displayName = \"Avatar\";\n","/** @jsxImportSource @emotion/react */\nimport React, { Children, isValidElement, cloneElement } from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { useFocusRing } from \"../utils/focusRing\";\n\ntype AvatarGroupProps = {\n children: React.ReactNode;\n max?: number;\n size?: \"sm\" | \"md\" | \"lg\" | string | number;\n overlap?: number;\n css?: Interpolation<Theme>;\n rounded?: boolean;\n bgColor?: string | \"subtle\" | \"panel\";\n extraLabelCss?: Interpolation<Theme>;\n outlineThickness?: number | string;\n className?: string;\n};\n\nconst toLen = (v: number | string | undefined) =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nexport const AvatarGroup: React.FC<AvatarGroupProps> = ({\n children,\n max,\n size = \"md\",\n overlap = -7,\n css: userCss,\n rounded = true,\n bgColor,\n extraLabelCss,\n outlineThickness = 4,\n className,\n}) => {\n const theme = usePlainframeUITheme();\n const focusRing = useFocusRing();\n\n const resolveDiameter = (): string => {\n if (typeof size === \"number\") return `${size}px`;\n if (typeof size === \"string\") {\n const h =\n (theme.componentHeights && theme.componentHeights[size]) ??\n (theme.spacing && theme.spacing[size]);\n return toLen(h ?? size)!;\n }\n return \"32px\";\n };\n\n const diameter = resolveDiameter();\n\n const nodes = Children.toArray(children).filter(Boolean);\n const hasMax = typeof max === \"number\" && max >= 0;\n const shown = hasMax && nodes.length > max ? nodes.slice(0, max) : nodes;\n const extra = hasMax && nodes.length > max ? nodes.length - max : 0;\n\n const ring =\n bgColor === \"panel\"\n ? theme.surface.panelBg\n : bgColor === \"subtle\"\n ? theme.surface.subtleBg\n : bgColor ?? theme.surface.appBg;\n\n const ringThickness = toLen(outlineThickness) ?? \"4px\";\n\n const containerCss = css({\n display: \"flex\",\n alignItems: \"center\",\n });\n\n const itemCss = (i: number) =>\n css({\n marginLeft: i === 0 ? 0 : overlap,\n zIndex: shown.length - i,\n boxShadow: `0 0 0 ${ringThickness} ${ring}`,\n backgroundColor: ring,\n borderRadius: rounded ? theme.radius.full : theme.radius.md,\n display: \"inline-flex\",\n width: diameter,\n height: diameter,\n overflow: \"hidden\",\n alignItems: \"center\",\n justifyContent: \"center\",\n lineHeight: 0,\n flex: \"0 0 auto\",\n });\n\n const childFillCss = css({\n width: \"100%\",\n height: \"100%\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n objectFit: \"cover\",\n boxSizing: \"border-box\",\n });\n\n return (\n <div\n role=\"group\"\n tabIndex={-1}\n aria-label=\"Avatar group\"\n className={`plainframe-ui-avatar-group${className ? ` ${className}` : \"\"}`}\n css={[containerCss, userCss, focusRing()]}\n >\n {shown.map((child, i) => {\n if (!isValidElement(child)) {\n return (\n <div key={i} className=\"plainframe-ui-avatar-group-item\" css={itemCss(i)}>\n <span css={childFillCss}>{child}</span>\n </div>\n );\n }\n\n const childElement = child as React.ReactElement<any>;\n const prevCss = childElement.props?.css;\n const mergedCss = prevCss == null ? childFillCss : [childFillCss, prevCss];\n\n const cloned = cloneElement(childElement, {\n size,\n rounded,\n css: mergedCss,\n style: {\n ...childElement.props?.style,\n width: \"100%\",\n height: \"100%\",\n objectFit: childElement.props?.objectFit ?? \"cover\",\n },\n });\n\n return (\n <div key={i} className=\"plainframe-ui-avatar-group-item\" css={itemCss(i)}>\n {cloned}\n </div>\n );\n })}\n\n {extra > 0 && (\n <span\n className=\"plainframe-ui-avatar-group-extra\"\n css={[\n css({\n marginLeft: 5,\n fontSize: theme.fontSizes.md,\n fontWeight: 600,\n lineHeight: 1,\n padding: \"2px 1px\",\n zIndex: 2,\n color: theme.text.secondary,\n }),\n extraLabelCss,\n ]}\n aria-label={`+${extra} more`}\n >\n +{extra}\n </span>\n )}\n </div>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport { css, Interpolation, type CSSObject } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\n\ntype BadgeAnchorOrigin = {\n vertical?: \"top\" | \"bottom\" | \"center\";\n horizontal?: \"left\" | \"right\" | \"center\";\n};\n\ntype BadgeProps = {\n content?: number | string | React.ReactNode;\n color?:\n | \"primary\"\n | \"secondary\"\n | \"neutral\"\n | \"danger\"\n | \"success\"\n | \"warning\"\n | \"info\"\n | string;\n fontColor?: string;\n fontWeight?: number | string;\n fontSize?: number | string;\n variant?: \"standard\" | \"dot\";\n max?: number;\n showZero?: boolean;\n visible?: boolean;\n anchorOrigin?: BadgeAnchorOrigin;\n overlap?: \"circular\" | \"rectangular\";\n children: React.ReactNode;\n animate?: boolean;\n size?: number;\n outline?: boolean;\n outlineColor?: string;\n className?: string;\n badgeClassName?: string;\n css?: Interpolation<any>;\n badgeCss?: Interpolation<any>;\n offsetX?: number | string;\n offsetY?: number | string;\n};\n\nconst toLen = (v?: number | string) =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\ntype Theme = {\n palette?: Record<string, Record<string, string>>;\n neutral?: Record<string, string>;\n text?: {\n onColors?: Record<string, string>;\n primary?: string;\n };\n surface?: {\n appBg?: string;\n };\n};\n\nconst getPaletteScale = (\n theme: Theme,\n color: string\n): { scale: Record<string, string>; onKey: string } => {\n const palette = theme.palette || {};\n const neutralScale = theme.neutral || {};\n if (color === \"neutral\" || color === \"secondary\") {\n return { scale: neutralScale, onKey: \"neutral\" };\n }\n if (typeof color === \"string\" && palette[color]) {\n return { scale: palette[color], onKey: color };\n }\n return { scale: palette.primary || neutralScale, onKey: \"primary\" };\n};\n\nconst getBadgeBg = (scale: Record<string, string>) =>\n scale[600] ?? scale[500] ?? scale[400] ?? Object.values(scale)[0] ?? \"#000\";\n\nconst getFontColor = (\n theme: Theme,\n onColors: Record<string, string>,\n onKey: string,\n fontColor?: string\n) =>\n fontColor ??\n onColors[onKey] ??\n onColors.primary ??\n theme.text?.primary ??\n \"#fff\";\n\nconst getDisplayContent = (\n content: BadgeProps[\"content\"],\n max: number | undefined,\n variant: BadgeProps[\"variant\"]\n) => {\n if (variant === \"dot\") return \"\";\n if (typeof content === \"number\" && typeof max === \"number\" && content > max)\n return `${max}+`;\n return content ?? \"\";\n};\n\nconst getShouldShow = (\n visible: boolean,\n variant: BadgeProps[\"variant\"],\n content: BadgeProps[\"content\"],\n showZero: boolean\n) =>\n visible &&\n (variant === \"dot\" || !!content || (content === 0 && showZero));\n\nexport const Badge: React.FC<BadgeProps> = ({\n content,\n color = \"primary\",\n fontColor,\n fontWeight = 600,\n fontSize,\n variant = \"dot\",\n max = 99,\n showZero = false,\n visible = true,\n anchorOrigin = { vertical: \"top\", horizontal: \"right\" },\n overlap = \"rectangular\",\n children,\n animate = true,\n size,\n outline = false,\n outlineColor,\n className,\n badgeClassName,\n css: wrapperCss,\n badgeCss,\n offsetX,\n offsetY,\n}) => {\n const theme = usePlainframeUITheme();\n const isDot = variant === \"dot\";\n const diameter = size ?? (isDot ? 8 : 17);\n const _fontSize = fontSize ?? (isDot ? 0 : 10);\n\n const { scale, onKey } = getPaletteScale(theme, color as string);\n const bg = getBadgeBg(scale);\n const onColors = theme.text?.onColors || {};\n const finalFontColor = getFontColor(theme, onColors, onKey, fontColor);\n\n const displayContent = getDisplayContent(content, max, variant);\n const shouldShow = getShouldShow(visible, variant, content, showZero);\n\n const wrapperBase = css({\n position: \"relative\",\n display: \"inline-block\",\n });\n\n const derivedOffset =\n overlap === \"circular\" ? (isDot ? \"12.5%\" : \"5%\") : 0;\n const offX = toLen(offsetX ?? derivedOffset);\n const offY = toLen(offsetY ?? derivedOffset);\n\n const vertical = anchorOrigin.vertical || \"top\";\n const horizontal = anchorOrigin.horizontal || \"right\";\n\n const pos: React.CSSProperties = {};\n let translateX = \"0\",\n translateY = \"0\";\n\n if (vertical === \"center\") {\n pos.top = \"50%\";\n translateY = \"-50%\";\n } else if (vertical === \"top\") {\n pos.top = offY;\n translateY = \"-45%\";\n } else {\n pos.bottom = offY;\n translateY = \"45%\";\n }\n\n if (horizontal === \"center\") {\n pos.left = \"50%\";\n translateX = \"-50%\";\n } else if (horizontal === \"right\") {\n pos.right = offX;\n translateX = \"45%\";\n } else {\n pos.left = offX;\n translateX = \"-45%\";\n }\n\n const baseScale = shouldShow ? 1 : 0.8;\n\n const bubbleBase = css({\n minWidth: isDot ? diameter : diameter / 2,\n height: diameter,\n background: bg,\n color: finalFontColor,\n fontSize: typeof _fontSize === \"number\" ? `${_fontSize}px` : _fontSize,\n fontWeight,\n borderRadius: 999,\n padding: isDot ? 0 : `0 ${diameter / 4}px`,\n boxShadow: \"0 2px 8px rgba(0,0,0,0.04)\",\n lineHeight: 1,\n position: \"absolute\",\n pointerEvents: \"none\",\n zIndex: 10,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...(outline\n ? {\n boxShadow: `0 0 0 2px ${\n outlineColor ?? (theme.surface?.appBg as string)\n }`,\n }\n : {}),\n opacity: shouldShow ? 1 : 0,\n transform: `translate(${translateX}, ${translateY}) scale(${\n shouldShow ? baseScale : 0.5\n })`,\n ...(animate\n ? {\n transition:\n \"opacity .18s cubic-bezier(.4,1.6,.6,1), transform .18s cubic-bezier(.4,1.6,.6,1)\",\n }\n : {}),\n ...pos,\n });\n\n return (\n <div\n className={[\"plainframe-ui-badge-wrapper\", className || \"\"].join(\" \").trim()}\n css={[wrapperBase, wrapperCss]}\n >\n {children}\n <span\n aria-hidden={!shouldShow}\n className={[\"plainframe-ui-badge\", badgeClassName || \"\"].join(\" \").trim()}\n css={[bubbleBase, badgeCss]}\n >\n {displayContent}\n </span>\n </div>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, { useEffect, useRef, useState, useMemo } from \"react\";\nimport { css as emCss, Interpolation, type CSSObject } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { Theme } from \"@emotion/react\";\n\ntype BackdropProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n on: boolean;\n onClickAway?: () => void;\n blur?: boolean;\n blurDepth?: number | string;\n color?: string;\n zIndex?: number;\n css?: Interpolation<Theme>;\n contentCss?: Interpolation<Theme>;\n overlayCss?: Interpolation<Theme>;\n children?: React.ReactNode;\n transitionDuration?: number;\n keepMounted?: boolean;\n className?: string;\n contentClassName?: string;\n lockScroll?: boolean;\n};\n\nexport const Backdrop: React.FC<BackdropProps> = ({\n on,\n onClickAway,\n blur = false,\n blurDepth = 2.5,\n color,\n zIndex = 1000,\n css: userRootCss,\n contentCss: userContentCss,\n overlayCss: userOverlayCss,\n children,\n transitionDuration = 300,\n keepMounted = true,\n className,\n contentClassName,\n lockScroll = true,\n ...rest\n}) => {\n const theme = usePlainframeUITheme();\n const overlayColor = useMemo(\n () => color ?? (theme.surface.overlayBg as string),\n [color, theme.surface.overlayBg]\n );\n\n const [visible, setVisible] = useState(on);\n const [show, setShow] = useState(on);\n const hideTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const rafRef = useRef<number | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (hideTimer.current) {\n clearTimeout(hideTimer.current);\n hideTimer.current = null;\n }\n if (rafRef.current != null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n\n if (on) {\n setVisible(true);\n rafRef.current = requestAnimationFrame(() => {\n setShow(true);\n rafRef.current = null;\n });\n } else {\n setShow(false);\n hideTimer.current = setTimeout(() => {\n setVisible(false);\n hideTimer.current = null;\n }, transitionDuration);\n }\n\n return () => {\n if (hideTimer.current) {\n clearTimeout(hideTimer.current);\n hideTimer.current = null;\n }\n if (rafRef.current != null) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n };\n }, [on, transitionDuration]);\n\n useEffect(() => {\n if (!lockScroll || !on) return;\n const body = document.body;\n const prevOverflow = body.style.overflow;\n const prevPad = body.style.paddingRight;\n const scrollbar = window.innerWidth - document.documentElement.clientWidth;\n const computedPad = parseFloat(getComputedStyle(body).paddingRight || \"0\");\n body.style.overflow = \"hidden\";\n if (scrollbar > 0) body.style.paddingRight = `${computedPad + scrollbar}px`;\n return () => {\n body.style.overflow = prevOverflow;\n body.style.paddingRight = prevPad;\n };\n }, [on, lockScroll]);\n\n useEffect(() => {\n if (!show || !onClickAway) return;\n const onEsc = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClickAway();\n };\n document.addEventListener(\"keydown\", onEsc);\n return () => document.removeEventListener(\"keydown\", onEsc);\n }, [show, onClickAway]);\n\n const handleRootPointerDown = (e: React.PointerEvent<HTMLDivElement>) => {\n if (!show || !onClickAway || !contentRef.current) return;\n const t = e.target as Node | null;\n if (t && !contentRef.current.contains(t)) onClickAway();\n };\n\n const blurValue =\n blur && blurDepth\n ? typeof blurDepth === \"number\"\n ? `${blurDepth}px`\n : blurDepth\n : undefined;\n\n if (!keepMounted && !visible) return null;\n\n const rootBaseCss = emCss({\n position: \"fixed\",\n inset: 0,\n width: \"100vw\",\n height: \"100vh\",\n zIndex,\n display: \"grid\",\n placeItems: \"center\",\n pointerEvents: show ? \"auto\" : \"none\",\n visibility: visible ? \"visible\" : \"hidden\",\n });\n\n const overlayBaseCss = emCss({\n position: \"absolute\",\n inset: 0,\n background: overlayColor,\n backdropFilter: blurValue ? `blur(${blurValue})` : undefined,\n WebkitBackdropFilter: blurValue ? `blur(${blurValue})` : undefined,\n opacity: show ? 1 : 0,\n transition: `opacity ${transitionDuration}ms cubic-bezier(.4,0,.2,1)`,\n pointerEvents: show ? \"auto\" : \"none\",\n });\n\n const contentBaseCss = emCss({\n position: \"relative\",\n zIndex: 1,\n pointerEvents: show ? \"auto\" : \"none\",\n });\n\n return (\n <div\n aria-hidden={!visible || undefined}\n className={[\"plainframe-ui-backdrop\", className || \"\"].join(\" \").trim()}\n css={[rootBaseCss, userRootCss]}\n onPointerDown={handleRootPointerDown}\n {...rest}\n >\n <div\n className=\"plainframe-ui-backdrop-overlay\"\n css={[overlayBaseCss, userOverlayCss]}\n role=\"presentation\"\n />\n <div\n ref={contentRef}\n className={[\n \"plainframe-ui-backdrop-content\",\n contentClassName || \"\",\n ]\n .join(\" \")\n .trim()}\n css={[contentBaseCss, userContentCss]}\n >\n {children}\n </div>\n </div>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport { css, Interpolation, Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { useFocusRing } from \"../utils/focusRing\";\n\ntype WithCss = { css?: Interpolation<Theme> };\n\nexport type BreadCrumbItemProps = Omit<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n \"style\" | \"href\"\n> &\n WithCss & {\n href?: string;\n disabled?: boolean;\n className?: string;\n children?: React.ReactNode;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n };\n\nexport const BreadCrumbItem: React.FC<BreadCrumbItemProps> = () => null;\nObject.defineProperty(BreadCrumbItem, \"displayName\", {\n value: \"PF.BreadCrumbItem\",\n configurable: true,\n});\n\nfunction unwrapEmotion(child: React.ReactElement) {\n const p = child.props ?? {};\n const hasEmotionType =\n typeof (p as { __EMOTION_TYPE_PLEASE_DO_NOT_USE__?: unknown })\n .__EMOTION_TYPE_PLEASE_DO_NOT_USE__ !== \"undefined\";\n const t = hasEmotionType\n ? (p as { __EMOTION_TYPE_PLEASE_DO_NOT_USE__: unknown })\n .__EMOTION_TYPE_PLEASE_DO_NOT_USE__\n : child.type;\n return { type: t, props: p };\n}\n\nexport type BreadCrumbsProps = Omit<\n React.HTMLAttributes<HTMLElement>,\n \"style\"\n> & {\n children?: React.ReactNode;\n separator?: React.ReactNode;\n css?: Interpolation<Theme>;\n crumbCss?: Interpolation<Theme>;\n activeCrumbCss?: Interpolation<Theme>;\n inactiveCrumbCss?: Interpolation<Theme>;\n linkCrumbCss?: Interpolation<Theme>;\n separatorCss?: Interpolation<Theme>;\n hover?: boolean;\n className?: string;\n};\n\nexport const BreadCrumbs: React.FC<BreadCrumbsProps> = React.memo(({\n children,\n separator = \"/\",\n css: userRootCss,\n crumbCss: userCrumbCss,\n activeCrumbCss: userActiveCrumbCss,\n inactiveCrumbCss: userInactiveCrumbCss,\n linkCrumbCss: userLinkCrumbCss,\n separatorCss: userSepCss,\n hover = true,\n className,\n ...rest\n}) => {\n const theme = usePlainframeUITheme();\n const focusRing = useFocusRing();\n\n // Memoize items extraction for performance\n const items = React.useMemo(() =>\n React.Children.toArray(children).flatMap((child) => {\n if (!React.isValidElement(child)) return [];\n const { type, props } = unwrapEmotion(child as React.ReactElement);\n const isCrumb =\n type === BreadCrumbItem ||\n (typeof type === \"function\" && \"displayName\" in type && type.displayName === BreadCrumbItem.displayName);\n if (!isCrumb) return [];\n const p = props as BreadCrumbItemProps;\n return [\n {\n href: p.href,\n disabled: p.disabled,\n node: p.children,\n className: p.className,\n css: p.css,\n onClick: p.onClick,\n startIcon: p.startIcon,\n endIcon: p.endIcon,\n },\n ];\n })\n , [children]);\n\n // Memoize styles\n const rootCss = React.useMemo(() => css({\n display: \"flex\",\n alignItems: \"center\",\n fontSize: theme.fontSizes.md,\n fontWeight: 500,\n gap: theme.spacing.xs,\n cursor: \"default\",\n }), [theme]);\n\n const sepCss = React.useMemo(() => css({\n margin: \"0 0.15rem\",\n color: theme.neutral[500],\n flex: \"0 0 auto\",\n justifyContent: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n }), [theme]);\n\n const makeCrumbCss = React.useCallback((\n isLast: boolean,\n isLink: boolean,\n disabled?: boolean\n ) => {\n const baseColor = isLast ? theme.text.primary : theme.text.secondary;\n const interactive = hover && isLink && !disabled;\n return css({\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: theme.spacing.xs,\n color: baseColor,\n cursor: isLink && !disabled ? \"pointer\" : \"default\",\n textDecoration: \"none\",\n borderRadius: theme.radius.xs,\n fontWeight: 500,\n transition: \"all .16s ease !important\",\n \"&:hover\": interactive\n ? {\n textDecoration: \"underline\",\n color: theme.text.primary,\n }\n : {\n textDecoration: \"none\",\n },\n });\n }, [theme, hover]);\n\n const iconCss = React.useMemo(() => css({\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n lineHeight: 0,\n }), []);\n\n const labelCss = React.useMemo(() => css({\n display: \"inline-block\",\n }), []);\n\n return (\n <nav\n aria-label=\"Breadcrumb\"\n className={[\"plainframe-ui-breadcrumbs\", className || \"\"]\n .join(\" \")\n .trim()}\n css={[rootCss, userRootCss]}\n {...rest}\n >\n {items.map((it, idx) => {\n const isLast = idx === items.length - 1;\n const isLink = !!it.href && !it.disabled && !isLast;\n\n const commonClass = [\n \"plainframe-ui-breadcrumb\",\n isLast\n ? \"plainframe-ui-breadcrumb--active\"\n : \"plainframe-ui-breadcrumb--inactive\",\n isLink ? \"plainframe-ui-breadcrumb--link\" : \"\",\n it.className || \"\",\n ]\n .join(\" \")\n .trim();\n\n const commonCss = [\n makeCrumbCss(isLast, isLink, it.disabled),\n userCrumbCss,\n isLast ? userActiveCrumbCss : userInactiveCrumbCss,\n isLink ? userLinkCrumbCss : undefined,\n focusRing(),\n it.css,\n ];\n\n const content = (\n <>\n {it.startIcon && (\n <span\n className=\"plainframe-ui-breadcrumb-icon-start\"\n css={iconCss}\n >\n {it.startIcon}\n </span>\n )}\n <span className=\"plainframe-ui-breadcrumb-label\" css={labelCss}>\n {it.node}\n </span>\n {it.endIcon && (\n <span\n className=\"plainframe-ui-breadcrumb-icon-end\"\n css={iconCss}\n >\n {it.endIcon}\n </span>\n )}\n </>\n );\n\n return (\n <React.Fragment key={idx}>\n {idx !== 0 && (\n <span\n className=\"plainframe-ui-breadcrumb-separator\"\n css={[sepCss, userSepCss]}\n >\n {separator}\n </span>\n )}\n\n {isLink ? (\n <a\n href={it.href}\n onClick={it.onClick}\n tabIndex={0}\n data-active={isLast ? \"true\" : \"false\"}\n data-link=\"true\"\n className={commonClass}\n css={commonCss}\n >\n {content}\n </a>\n ) : (\n <span\n aria-current={isLast ? \"page\" : undefined}\n tabIndex={isLast ? -1 : 0}\n data-active={isLast ? \"true\" : \"false\"}\n data-link=\"false\"\n className={commonClass}\n css={commonCss}\n >\n {content}\n </span>\n )}\n </React.Fragment>\n );\n })}\n </nav>\n );\n});\n","/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport { css, Interpolation, keyframes, type CSSObject } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { Theme } from \"@emotion/react\";\n\nexport type ProgressProps = {\n variant?: \"linear\" | \"circular\";\n value?: number;\n min?: number;\n max?: number;\n color?: string;\n size?: number | string;\n thickness?: number;\n spinDuration?: number;\n wrapperCss?: Interpolation<Theme>;\n trackCss?: Interpolation<Theme>;\n barCss?: Interpolation<Theme>;\n circleCss?: Interpolation<Theme>;\n \"aria-label\"?: string;\n};\n\ntype LinearProps = {\n thickness?: number;\n active: string;\n track: string;\n radius: number | string | undefined;\n isDeterminate: boolean;\n percent?: number;\n wrapperCss?: Interpolation<Theme>;\n trackCss?: Interpolation<Theme>;\n barCss?: Interpolation<Theme>;\n ariaLabel?: string;\n min: number;\n max: number;\n value?: number;\n};\n\ntype CircularProps = {\n size?: number | string;\n thickness?: number;\n active: string;\n isDeterminate: boolean;\n percent?: number;\n spinDuration: number;\n wrapperCss?: Interpolation<Theme>;\n trackCss?: Interpolation<Theme>;\n circleCss?: Interpolation<Theme>;\n ariaLabel?: string;\n};\n\nconst clamp = (n: number, lo: number, hi: number) => Math.min(hi, Math.max(lo, n));\nconst asPx = (v: number | string | undefined, fb: string) =>\n v == null ? fb : typeof v === \"number\" ? `${v}px` : v;\n\nconst MIN_VISUAL_PCT = 1;\n\nconst spin = keyframes`100% { transform: rotate(360deg); }`;\nconst indet1 = keyframes`\n 0% { left: -35%; right: 100%; }\n 60% { left: 100%; right: -90%; }\n 100% { left: 100%; right: -90%; }\n`;\nconst indet2 = keyframes`\n 0% { left: -200%; right: 100%; }\n 60% { left: 107%; right: -8%; }\n 100% { left: 107%; right: -8%; }\n`;\n\nconst cssColorLike = (s: string) =>\n s.startsWith(\"#\") ||\n s.startsWith(\"rgb(\") || s.startsWith(\"rgba(\") ||\n s.startsWith(\"hsl(\") || s.startsWith(\"hsla(\") ||\n s.startsWith(\"oklch(\") || s.startsWith(\"lab(\") ||\n s.startsWith(\"color(\") || s.startsWith(\"var(\");\n\nconst allowedShades = new Set([\"0\",\"50\",\"100\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\"]);\n\nfunction resolvePaletteColor(theme: ReturnType<typeof usePlainframeUITheme>, color?: string): string {\n if (!color || color.trim() === \"\") return theme.text.primary;\n\n const raw = color.trim();\n\n if (cssColorLike(raw)) return raw;\n\n const m = raw.match(/^([a-zA-Z0-9_-]+)[\\.\\-:\\s]?([0-9]{1,3})?$/);\n if (m) {\n const name = m[1];\n const shade = (m[2] && allowedShades.has(m[2])) ? (m[2] as any) : \"600\";\n\n if (name === \"primary\" && (theme.palette as any).primary?.[shade]) {\n return (theme.palette as any).primary[shade];\n }\n\n const scale = (theme.palette as any)[name];\n if (scale && scale[shade] != null) return scale[shade];\n\n if (name === \"neutral\" || name === \"secondary\" && (theme.neutral as any)[shade] != null) {\n return (theme.neutral as any)[shade];\n }\n }\n\n return theme.palette.primary[600];\n}\n\nexport const Progress: React.FC<ProgressProps> = ({\n variant = \"circular\",\n value,\n min = 0,\n max = 100,\n color,\n size,\n thickness,\n spinDuration = 0.75,\n wrapperCss,\n trackCss,\n barCss,\n circleCss,\n \"aria-label\": ariaLabel,\n}) => {\n const theme = usePlainframeUITheme();\n const isDeterminate = typeof value === \"number\";\n const safeRange = Math.max(max - min, 1);\n const val = isDeterminate ? clamp(value as number, min, max) : undefined;\n const percent = isDeterminate ? ((val! - min) / safeRange) * 100 : undefined;\n\n const active = resolvePaletteColor(theme, color);\n const track = theme.surface.subtleBg;\n const radius = theme.radius?.md;\n\n if (variant === \"circular\") {\n return (\n <Circular\n size={size}\n active={active}\n isDeterminate={isDeterminate}\n percent={percent}\n spinDuration={spinDuration}\n wrapperCss={wrapperCss}\n trackCss={trackCss}\n circleCss={circleCss}\n ariaLabel={ariaLabel}\n thickness={thickness}\n />\n );\n }\n\n return (\n <Linear\n thickness={thickness}\n active={active}\n track={track}\n radius={radius}\n isDeterminate={isDeterminate}\n percent={percent}\n wrapperCss={wrapperCss}\n trackCss={trackCss}\n barCss={barCss}\n ariaLabel={ariaLabel}\n min={min}\n max={max}\n value={val}\n />\n );\n};\n\nconst Linear: React.FC<LinearProps> = ({\n thickness = 4,\n active,\n track,\n radius,\n isDeterminate,\n percent,\n wrapperCss,\n trackCss,\n barCss,\n ariaLabel,\n min,\n max,\n value,\n}) => {\n const r =\n radius == null ? \"8px\" : typeof radius === \"number\" ? `${radius}px` : String(radius);\n\n const rootCss = css([\n { display: \"inline-block\", width: \"100%\" },\n ...(Array.isArray(wrapperCss) ? wrapperCss : wrapperCss ? [wrapperCss] : []),\n ]);\n\n const barBase = css([\n {\n position: \"relative\",\n width: \"100%\",\n height: asPx(thickness, \"6px\"),\n backgroundColor: track,\n borderRadius: r,\n overflow: \"hidden\",\n },\n ...(Array.isArray(trackCss) ? trackCss : trackCss ? [trackCss] : []),\n ]);\n\n const pctRender = isDeterminate ? Math.max(percent ?? 0, MIN_VISUAL_PCT) : MIN_VISUAL_PCT;\n\n const fillDeterminate = css([\n {\n position: \"absolute\",\n inset: 0,\n backgroundColor: active,\n borderRadius: \"inherit\",\n transformOrigin: \"left\",\n transform: `scaleX(${pctRender / 100})`,\n transition: \"transform 160ms cubic-bezier(.2,0,.2,1)\",\n willChange: \"transform\",\n },\n ...(Array.isArray(barCss) ? barCss : barCss ? [barCss] : []),\n ]);\n\n const runnerBase = {\n position: \"absolute\" as const,\n top: 0,\n bottom: 0,\n backgroundColor: active,\n borderRadius: \"inherit\",\n willChange: \"left,right\",\n [\"@media (prefers-reduced-motion: reduce)\"]: { animation: \"none\" } as any,\n };\n\n const runner1 = css([\n {\n ...runnerBase,\n left: \"-35%\",\n right: \"100%\",\n animation: `${indet1} 2.1s cubic-bezier(.65,.815,.735,.395) infinite`,\n },\n ...(Array.isArray(barCss) ? barCss : barCss ? [barCss] : []),\n ]);\n\n const runner2 = css([\n {\n ...runnerBase,\n left: \"-200%\",\n right: \"100%\",\n animation: `${indet2} 2.1s cubic-bezier(.165,.84,.44,1) 1.15s infinite`,\n },\n ...(Array.isArray(barCss) ? barCss : barCss ? [barCss] : []),\n ]);\n\n const ariaProps = isDeterminate\n ? { role: \"progressbar\", \"aria-valuemin\": min, \"aria-valuemax\": max, \"aria-valuenow\": value }\n : { role: \"progressbar\", \"aria-busy\": true };\n\n if (ariaLabel) (ariaProps as any)[\"aria-label\"] = ariaLabel;\n\n return (\n <span css={rootCss} {...ariaProps}>\n <div className=\"plainframe-ui-progress-linear-track\" css={barBase}>\n {isDeterminate ? (\n <div className=\"plainframe-ui-progress-linear-fill\" css={fillDeterminate} />\n ) : (\n <>\n <div className=\"plainframe-ui-progress-linear-runner1\" css={runner1} />\n <div className=\"plainframe-ui-progress-linear-runner2\" css={runner2} />\n </>\n )}\n </div>\n </span>\n );\n};\n\nconst Circular: React.FC<CircularProps> = ({\n size,\n thickness = 4,\n active,\n isDeterminate,\n percent,\n spinDuration,\n wrapperCss,\n trackCss,\n circleCss,\n ariaLabel,\n}) => {\n const theme = usePlainframeUITheme();\n const d = 40;\n const r = (d - thickness) / 2;\n const c = 2 * Math.PI * r;\n\n const arcFraction = isDeterminate ? clamp((percent ?? 0) / 100, 0.01, 1) : 0.7;\n const dashArray = `${arcFraction * c} ${c}`;\n\n const spinnerWrap = css([\n {\n display: \"inline-block\",\n width: asPx(size, `${theme.componentHeights.md}`),\n height: asPx(size, `${theme.componentHeights.md}`),\n },\n ...(Array.isArray(wrapperCss) ? wrapperCss : wrapperCss ? [wrapperCss] : []),\n ]);\n\n const svgCss = css([\n {\n width: \"100%\",\n height: \"100%\",\n transform: \"rotate(-90deg)\",\n transformBox: \"fill-box\",\n transformOrigin: \"50% 50%\",\n },\n ...(Array.isArray(trackCss) ? trackCss : trackCss ? [trackCss] : []),\n ]);\n\n const circleBase = css([\n {\n stroke: active,\n strokeLinecap: \"butt\",\n strokeDasharray: dashArray,\n strokeDashoffset: 0,\n transition: isDeterminate ? \"stroke-dasharray 160ms cubic-bezier(.2,0,.2,1)\" : \"none\",\n transformBox: \"fill-box\",\n transformOrigin: \"50% 50%\",\n fill: \"none\",\n willChange: isDeterminate ? \"stroke-dasharray\" : \"transform\",\n animation: isDeterminate ? \"none\" : `${spin} ${spinDuration}s linear infinite`,\n [\"@media (prefers-reduced-motion: reduce)\"]: { animation: \"none\" } as any,\n },\n ...(Array.isArray(circleCss) ? circleCss : circleCss ? [circleCss] : []),\n ]);\n\n const ariaProps = isDeterminate\n ? {\n role: \"progressbar\",\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n \"aria-valuenow\": Math.round(percent ?? 0),\n }\n : { role: \"progressbar\", \"aria-busy\": true };\n\n if (ariaLabel) (ariaProps as any)[\"aria-label\"] = ariaLabel;\n\n return (\n <span css={spinnerWrap} className=\"plainframe-ui-progress-circular\" {...ariaProps}>\n <svg css={svgCss} viewBox={`0 0 ${d} ${d}`} focusable=\"false\" aria-hidden>\n <circle cx={d / 2} cy={d / 2} r={r} strokeWidth={thickness} css={circleBase} />\n </svg>\n </span>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, {\n useMemo,\n isValidElement,\n cloneElement,\n type ReactNode,\n} from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport type { PlainframeUITheme, Scale } from \"../theme/theme\";\nimport { useFocusRing } from \"../utils/focusRing\";\nimport { Progress } from \"./Progress\";\n\nexport type ButtonVariant =\n | \"primary\"\n | \"destructive\"\n | \"subtle\"\n | \"outlined\"\n | \"ghost\"\n | \"quiet\"\n | \"ghost-destructive\"\n\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\" | number | string;\nexport type LoadingPosition = \"start\" | \"end\" | \"center\";\n\ntype WithCssProp = { css?: Interpolation<Theme> };\n\ntype ButtonBase = Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"color\" | \"style\"\n> &\n WithCssProp & {\n size?: ButtonSize;\n startIcon?: ReactNode;\n endIcon?: ReactNode;\n rounded?: boolean;\n fullWidth?: boolean;\n loading?: boolean;\n loadingIndicator?: ReactNode;\n loadingPosition?: LoadingPosition;\n className?: string;\n hoverEffect?: boolean;\n children?: ReactNode;\n };\n\nexport type ButtonProps = ButtonBase & { variant?: ButtonVariant };\nconst cloneIcon = (icon: ReactNode, size: number | string) => {\n if (!isValidElement(icon)) return icon;\n const props = icon.props as Record<string, unknown>;\n const next: Record<string, unknown> = {};\n if (props.size === undefined) next.size = size;\n if (props.color === undefined) next.color = \"currentColor\";\n return cloneElement(icon, { ...props, ...next });\n};\n\nconst px = (v: number | string) => (typeof v === \"number\" ? `${v}px` : v);\n\nconst hasText = (node: React.ReactNode): boolean => {\n let found = false;\n React.Children.forEach(node, (ch) => {\n if (found) return;\n if (typeof ch === \"string\" || typeof ch === \"number\") {\n if (String(ch).trim() !== \"\") found = true;\n } else if (Array.isArray(ch)) {\n if (hasText(ch)) found = true;\n }\n });\n return found;\n};\n\nfunction getSize(theme: PlainframeUITheme, size: ButtonSize) {\n const t = theme;\n const kind: \"sm\" | \"md\" | \"lg\" =\n typeof size === \"string\" && (size === \"sm\" || size === \"md\" || size === \"lg\")\n ? size\n : \"md\";\n\n if (kind === \"sm\") {\n return {\n fontSize: t.fontSizes.md,\n paddingY: t.spacing.xs,\n paddingX: t.spacing.md,\n paddingXIcon: t.spacing.md,\n iconSize: 14,\n minHeight: t.componentHeights.sm,\n radius: t.radius.sm,\n };\n }\n if (kind === \"lg\") {\n return {\n fontSize: t.fontSizes.lg,\n paddingY: t.spacing.sm,\n paddingX: t.spacing.lg,\n paddingXIcon: t.spacing.md,\n iconSize: 18,\n minHeight: t.componentHeights.lg,\n radius: t.radius.md,\n };\n }\n return {\n fontSize: t.fontSizes.md,\n paddingY: t.spacing.sm,\n paddingX: t.spacing.lg,\n paddingXIcon: t.spacing.md,\n iconSize: 16,\n minHeight: t.componentHeights.md,\n radius: t.radius.md,\n };\n}\n\nfunction resolveVisuals(theme: PlainframeUITheme, variant: ButtonVariant) {\n const N = theme.neutral as Scale;\n const T = theme.text;\n const P = theme.palette as Record<string, Scale>;\n const primaryScale: Scale = (P.primary as Scale) || (N as Scale);\n const dangerScale: Scale = (P.danger as Scale) || (P.error as Scale) || primaryScale;\n const onColors = (theme.text.onColors || {}) as Record<string, string>;\n const primaryOn = onColors.primary ?? T.onColors.primary;\n const dangerOn = onColors.danger ?? primaryOn;\n\n const pick = (scale: Scale, k: keyof Scale, fb?: string) =>\n (scale && scale[k]) || fb;\n\n if (variant === \"primary\") {\n const scale = primaryScale;\n const bg =\n pick(scale, 600, N[900] as string) ||\n pick(scale, 500, N[900] as string);\n const hoverBg =\n pick(scale, 500, N[800] as string) ||\n pick(scale, 600, N[800] as string);\n return { bg, fg: primaryOn, hoverBg, border: \"none\" };\n }\n\n if (variant === \"destructive\") {\n const scale = dangerScale;\n const bg =\n pick(scale, 600, N[900] as string) ||\n pick(scale, 500, N[900] as string);\n const hoverBg =\n pick(scale, 500, N[800] as string) ||\n pick(scale, 600, N[800] as string);\n return { bg, fg: dangerOn, hoverBg, border: \"none\" };\n }\n\n if (variant === \"ghost-destructive\") {\n const D = (dangerScale as Scale);\n const fg = D[700];\n return { bg: \"transparent\", fg, hoverBg: theme.palette.danger[50], border: \"none\" };\n }\n\n if (variant === \"subtle\") {\n return {\n bg: theme.surface.subtleBg,\n fg: T.primary,\n hoverBg: theme.surface.subtleHover,\n border: \"none\",\n };\n }\n\n if (variant === \"outlined\") {\n return {\n bg: theme.surface.panelBg,\n fg: T.primary,\n hoverBg: theme.surface.panelHover,\n border: `${theme.componentHeights.border} solid ${theme.surface.border}`,\n };\n }\n\n if (variant === \"ghost\") {\n return {\n bg: \"transparent\",\n fg: theme.text.primary,\n hoverBg: theme.surface.subtleBg,\n border: \"none\",\n };\n }\n\n if (variant === \"quiet\") {\n return {\n bg: \"transparent\",\n fg: T.secondary,\n hoverBg: theme.surface.subtleBg,\n border: \"none\",\n };\n }\n\n return {\n bg: \"transparent\",\n fg: T.secondary,\n hoverBg: theme.surface.subtleBg,\n border: \"none\",\n };\n}\n\nexport const Button = React.memo(React.forwardRef<HTMLButtonElement, ButtonProps>(({\n variant = \"primary\",\n size = \"md\",\n startIcon,\n endIcon,\n rounded = false,\n fullWidth = false,\n disabled = false,\n loading = false,\n loadingIndicator,\n loadingPosition = \"center\",\n children,\n className,\n hoverEffect = true,\n onClick,\n css: userCss,\n ...props\n}, ref) => {\n const theme = usePlainframeUITheme();\n const focusRing = useFocusRing();\n\n const S = useMemo(() => getSize(theme, size), [theme, size]);\n const vis = useMemo(() => resolveVisuals(theme, variant), [theme, variant]);\n\n const isIconOnly = useMemo(\n () =>\n !startIcon && !endIcon && !hasText(children) && React.Children.count(children) === 1,\n [startIcon, endIcon, children]\n );\n\n const iconSize = S.iconSize;\n const sizedStart = useMemo(() => cloneIcon(startIcon, iconSize), [startIcon, iconSize]);\n const sizedEnd = useMemo(() => cloneIcon(endIcon, iconSize), [endIcon, iconSize]);\n\n const spinnerNode = useMemo(\n () => loadingIndicator ?? <Progress variant=\"circular\" size={14} thickness={5} />,\n [loadingIndicator]\n );\n\n const resolvedLoadingPos: LoadingPosition = useMemo(\n () => (isIconOnly ? \"center\" : loadingPosition ?? \"center\"),\n [isIconOnly, loadingPosition]\n );\n const showCenterLoader = !!loading && resolvedLoadingPos === \"center\";\n const showStartLoader = !!loading && resolvedLoadingPos === \"start\";\n const showEndLoader = !!loading && resolvedLoadingPos === \"end\";\n const nonInteractive = disabled || loading;\n\n const rootBase = useMemo(\n () =>\n css({\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 0,\n width: fullWidth ? \"100%\" : \"auto\",\n minHeight: S.minHeight,\n lineHeight: 1,\n fontWeight: 600,\n cursor: nonInteractive ? \"not-allowed\" : \"pointer\",\n opacity: nonInteractive ? 0.5 : 1,\n userSelect: \"none\",\n position: \"relative\",\n borderRadius: rounded ? theme.radius.full : S.radius,\n willChange: \"box-shadow, transform, outline-offset\",\n transition: \"box-shadow 140ms ease, transform 90ms ease, outline-offset 140ms ease\",\n }),\n [fullWidth, S, rounded, theme, nonInteractive]\n );\n\n const variantCss = useMemo(\n () =>\n css({\n backgroundColor: vis.bg,\n color: vis.fg,\n border: vis.border,\n outline: `${theme.componentHeights.border} solid transparent`,\n }),\n [vis, theme]\n );\n\n const hoverOverlayCss = useMemo(\n () =>\n css({\n overflow: \"hidden\",\n \"::before\": {\n content: '\"\"',\n position: \"absolute\",\n inset: 0,\n backgroundColor: vis.hoverBg,\n opacity: 0,\n pointerEvents: \"none\",\n transition: \"opacity 140ms ease\",\n zIndex: 0,\n },\n \"@media (hover: hover) and (pointer: fine)\":\n hoverEffect && !nonInteractive\n ? {\n \":hover::before\": {\n opacity: 1,\n },\n }\n : {},\n }),\n [vis, hoverEffect, nonInteractive]\n );\n\n const padCss = useMemo(\n () =>\n css(\n isIconOnly && !fullWidth\n ? {\n width: \"100%\",\n height: \"100%\",\n maxWidth: S.minHeight,\n minWidth: S.minHeight,\n maxHeight: S.minHeight,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: px(S.iconSize),\n }\n : {\n fontSize: px(S.fontSize),\n padding:\n startIcon || endIcon\n ? `${S.paddingY} ${S.paddingXIcon}`\n : `${S.paddingY} ${S.paddingX}`,\n }\n ),\n [isIconOnly, fullWidth, S, startIcon, endIcon]\n );\n\n const contentGroupCss = useMemo(\n () =>\n css({\n position: \"relative\",\n zIndex: 1,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: px(theme.spacing.sm),\n opacity: showCenterLoader ? 0 : 1,\n transition: \"opacity 140ms ease\",\n }),\n [theme, showCenterLoader]\n );\n\n const labelCss = useMemo(\n () =>\n css({\n height: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }),\n []\n );\n\n const slotSizePx = useMemo(\n () =>\n typeof S.iconSize === \"number\"\n ? S.iconSize\n : Math.max(12, Math.round(parseFloat(String(S.iconSize)) || 16)),\n [S.iconSize]\n );\n\n const slotCss = useMemo(\n () =>\n css({\n position: \"relative\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: slotSizePx,\n minWidth: slotSizePx,\n maxWidth: slotSizePx,\n height: \"1em\",\n }),\n [slotSizePx]\n );\n\n const slotLayerCss = useMemo(\n () => (visible: boolean) =>\n css({\n position: \"absolute\",\n inset: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n opacity: visible ? 1 : 0,\n transition: \"opacity 140ms ease\",\n }),\n []\n );\n\n const centerOverlayCss = useMemo(\n () =>\n css({\n position: \"absolute\",\n inset: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n opacity: showCenterLoader ? 1 : 0,\n pointerEvents: \"none\",\n zIndex: 2,\n transition: \"opacity 140ms ease\",\n }),\n [showCenterLoader]\n );\n\n const renderLeftSlot = useMemo(\n () => () => {\n if (isIconOnly) return null;\n const has = Boolean(startIcon);\n if (!has && !showStartLoader) return null;\n return (\n <span css={slotCss} aria-hidden={loading ? true : undefined}>\n <span css={slotLayerCss(!showStartLoader)}>\n {has ? (sizedStart || startIcon) : null}\n </span>\n <span css={slotLayerCss(!!showStartLoader)}>{spinnerNode}</span>\n </span>\n );\n },\n [isIconOnly, startIcon, showStartLoader, slotCss, slotLayerCss, sizedStart, loading, spinnerNode]\n );\n\n const renderRightSlot = useMemo(\n () => () => {\n if (isIconOnly) return null;\n const has = Boolean(endIcon);\n if (!has && !showEndLoader) return null;\n return (\n <span css={slotCss} aria-hidden={loading ? true : undefined}>\n <span css={slotLayerCss(!showEndLoader)}>\n {has ? (sizedEnd || endIcon) : null}\n </span>\n <span css={slotLayerCss(!!showEndLoader)}>{spinnerNode}</span>\n </span>\n );\n },\n [isIconOnly, endIcon, showEndLoader, slotCss, slotLayerCss, sizedEnd, loading, spinnerNode]\n );\n\n const isInteractive = !(disabled || loading);\n\n return (\n <button\n ref={ref}\n type={\n \"type\" in props && props.type\n ? props.type\n : \"button\"\n }\n data-variant={variant}\n className={[\"plainframe-ui-button\", className || \"\"].join(\" \").trim()}\n css={[\n rootBase,\n variantCss,\n hoverOverlayCss,\n padCss,\n userCss,\n focusRing({\n color:\n variant === \"primary\"\n ? \"primary\"\n : variant === \"destructive\" || variant === \"ghost-destructive\"\n ? \"danger\"\n : \"neutral\",\n }),\n ]}\n onClick={isInteractive ? onClick : undefined}\n disabled={disabled || loading}\n aria-disabled={disabled || loading || undefined}\n aria-busy={loading || undefined}\n {...props}\n >\n <span className=\"plainframe-ui-button-content\" css={contentGroupCss}>\n {renderLeftSlot()}\n <span className=\"plainframe-ui-button-label\" css={labelCss}>\n {isIconOnly\n ? loading\n ? spinnerNode\n : cloneIcon(children, S.iconSize)\n : children}\n </span>\n {renderRightSlot()}\n </span>\n <span className=\"plainframe-ui-button-center-overlay\" css={centerOverlayCss} aria-hidden=\"true\">\n {showCenterLoader ? spinnerNode : null}\n </span>\n </button>\n );\n}));\n\nButton.displayName = \"Button\";\n","/** @jsxImportSource @emotion/react */\nimport React, {\n Children,\n cloneElement,\n isValidElement,\n type ReactElement,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\n\ntype Direction = \"horizontal\" | \"vertical\";\ntype Size = \"sm\" | \"md\" | \"lg\";\ntype VariantStr = string;\n\ntype WithCssProp = { css?: Interpolation<Theme> };\n\nexport type ButtonGroupProps = WithCssProp &\n Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n children: React.ReactNode;\n attached?: boolean;\n direction?: Direction;\n fullWidth?: boolean;\n disabled?: boolean;\n size?: Size;\n rounded?: boolean;\n gap?: string | number;\n width?: string | number;\n className?: string;\n role?: React.AriaRole;\n };\n\ntype PrivateEdgeFlags = { __clipLeft?: boolean; __clipRight?: boolean };\n\ntype ButtonishProps = {\n disabled?: boolean;\n size?: Size;\n variant?: VariantStr;\n className?: string;\n css?: Interpolation<Theme>;\n};\ntype DropdownMenuProps = { children?: React.ReactNode };\ntype DropdownMenuTriggerProps = ButtonishProps & { children?: React.ReactNode };\n\nconst isEl = (n: unknown): n is ReactElement => isValidElement(n);\n\nconst displayNameOf = (n: ReactElement) => {\n const t = n.type as { displayName?: string; name?: string };\n return t.displayName ?? t.name;\n};\n\nconst isOfType = <P,>(el: ReactElement, name: string): el is ReactElement<P> =>\n displayNameOf(el) === name;\n\nconst isGroup = (n: ReactElement): n is ReactElement<ButtonGroupProps & PrivateEdgeFlags> =>\n isOfType(n, \"ButtonGroup\");\n\nconst isMenu = (n: ReactElement): n is ReactElement<DropdownMenuProps> =>\n isOfType(n, \"DropdownMenu\");\n\nconst isTrigger = (n: ReactElement): n is ReactElement<DropdownMenuTriggerProps> =>\n isOfType(n, \"DropdownMenuTrigger\");\n\nconst toLen = (v: string | number | undefined) =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nconst toPx = (v: number | string | undefined, fallback = 1) => {\n if (v == null) return `${fallback}px`;\n if (typeof v === \"number\") return `${v}px`;\n return /^\\d+(\\.\\d+)?$/.test(v) ? `${v}px` : v;\n};\n\nconst isOutlinedVariant = (v: unknown): boolean =>\n typeof v === \"string\" && /^(outlined|outlined-soft|outline-soft)$/i.test(v);\n\nconst visualLeaf = (node: ReactElement, first: boolean): ReactElement | null => {\n if (!isEl(node)) return null;\n if (isGroup(node)) {\n const kids = Children.toArray(node.props.children).filter(isValidElement) as ReactElement[];\n if (!kids.length) return null;\n return visualLeaf(first ? kids[0] : kids[kids.length - 1], first);\n }\n if (isMenu(node)) {\n const kids = Children.toArray(node.props.children).filter(isValidElement) as ReactElement[];\n const trig = kids.find(isTrigger);\n return trig ? visualLeaf(trig, first) : null;\n }\n if (isTrigger(node)) {\n const kids = Children.toArray(node.props.children ?? []).filter(isValidElement) as ReactElement[];\n return kids.length ? kids[0] : null;\n }\n return node;\n};\n\nconst outlinedOnEdge = (el: ReactElement | null, side: \"left\" | \"right\") => {\n if (!el) return false;\n const leaf = visualLeaf(el, side === \"left\");\n const v: VariantStr | undefined =\n leaf && leaf.props && typeof leaf.props === \"object\" ? (leaf.props as ButtonishProps).variant : undefined;\n return isOutlinedVariant(v);\n};\n\nexport const ButtonGroup: React.MemoExoticComponent<\n React.ForwardRefExoticComponent<\n (ButtonGroupProps & PrivateEdgeFlags & React.RefAttributes<HTMLDivElement>)\n >\n> = React.memo(\n React.forwardRef<HTMLDivElement, ButtonGroupProps & PrivateEdgeFlags>(function ButtonGroup(\n {\n children,\n attached = false,\n direction = \"horizontal\",\n fullWidth = false,\n disabled = false,\n size = \"md\",\n rounded = false,\n gap,\n width,\n className,\n role = \"group\",\n css: userCss,\n __clipLeft,\n __clipRight,\n ...rest\n },\n ref\n ) {\n const theme = usePlainframeUITheme();\n const tokenRadius = size === \"sm\" ? theme.radius.sm : theme.radius.md;\n const baseRadius = rounded ? theme.radius.full : tokenRadius;\n const isVertical = direction === \"vertical\";\n const bw = toPx(theme.componentHeights.border, 1);\n const borderCol = theme.surface.border;\n const clipLeft = attached && !!__clipLeft;\n const clipRight = attached && !!__clipRight;\n\n const rootCss = css({\n display: \"flex\",\n flexDirection: isVertical ? \"column\" : \"row\",\n width: fullWidth ? \"100%\" : width != null ? toLen(width) : \"auto\",\n maxWidth: \"none\",\n backgroundColor: \"transparent\",\n gap: attached ? 0 : toLen(gap ?? theme.spacing.sm),\n });\n\n const nodes = Children.toArray(children);\n const realNodes = nodes.filter(isEl) as ReactElement[];\n const realCount = realNodes.length;\n\n let realIndex = 0;\n let prevRightOutlined = false;\n const out: React.ReactNode[] = [];\n\n for (const node of nodes) {\n if (!isEl(node)) {\n out.push(node);\n continue;\n }\n\n const isFirst = realIndex === 0;\n const isLast = realIndex === realCount - 1;\n\n const nodeProps = (node.props ?? {}) as Record<string, unknown>;\n const mergedDisabled = (nodeProps.disabled as boolean | undefined) ?? disabled;\n const mergedSize = (nodeProps.size as Size | undefined) ?? size;\n\n let tl: string | number = 0, tr: string | number = 0, br: string | number = 0, bl: string | number = 0;\n if (attached) {\n if (isVertical) {\n tl = isFirst ? (clipLeft ? 0 : baseRadius) : 0;\n tr = isFirst ? (clipRight ? 0 : baseRadius) : 0;\n bl = isLast ? (clipLeft ? 0 : baseRadius) : 0;\n br = isLast ? (clipRight ? 0 : baseRadius) : 0;\n } else {\n tl = isFirst ? (clipLeft ? 0 : baseRadius) : 0;\n bl = isFirst ? (clipLeft ? 0 : baseRadius) : 0;\n tr = isLast ? (clipRight ? 0 : baseRadius) : 0;\n br = isLast ? (clipRight ? 0 : baseRadius) : 0;\n }\n }\n\n const currLeftOutlined = outlinedOnEdge(node, \"left\");\n const currRightOutlined = outlinedOnEdge(node, \"right\");\n\n const borderDir = isVertical ? \"borderTop\" : \"borderLeft\";\n const shouldSeparate = attached && !isFirst && !(prevRightOutlined && currLeftOutlined);\n\n const separatorCss = shouldSeparate && !(prevRightOutlined || currLeftOutlined)\n ? css({ [borderDir]: `${bw} solid ${borderCol}` })\n : null;\n\n const killJoinCss =\n attached && !isFirst && prevRightOutlined && currLeftOutlined\n ? css(isVertical ? { borderTopWidth: 0 } : { borderLeftWidth: 0 })\n : null;\n\n const cornerCss = attached\n ? css({\n borderTopLeftRadius: toLen(tl),\n borderTopRightRadius: toLen(tr),\n borderBottomRightRadius: toLen(br),\n borderBottomLeftRadius: toLen(bl),\n })\n : null;\n\n const flexCss = fullWidth ? css({ flex: 1 }) : null;\n const visualCss = css([cornerCss, separatorCss, killJoinCss, flexCss]);\n\n if (!isMenu(node)) {\n const childCss = (nodeProps.css as Interpolation<Theme> | undefined);\n const childClass = [nodeProps.className as string | undefined, \"plainframe-ui-button-group-item\"]\n .filter(Boolean)\n .join(\" \");\n\n const injectedToGroup = isGroup(node) && attached\n ? ({ __clipLeft: !isFirst, __clipRight: !isLast } as Partial<PrivateEdgeFlags>)\n : {};\n\n const cloned = cloneElement<ButtonishProps & Partial<PrivateEdgeFlags>>(\n node as ReactElement<ButtonishProps>,\n {\n ...(nodeProps as ComponentPropsWithoutRef<any>),\n disabled: mergedDisabled,\n size: mergedSize,\n className: childClass,\n css: [childCss, visualCss],\n ...injectedToGroup,\n }\n );\n\n out.push(cloned);\n prevRightOutlined = currRightOutlined;\n realIndex += 1;\n continue;\n }\n\n const childrenProp = nodeProps.children as React.ReactNode;\n const newChildren = Children.map(childrenProp, (ch) => {\n if (!isEl(ch) || !isTrigger(ch)) return ch;\n\n const cprops = ch.props as DropdownMenuTriggerProps;\n const triggerClass = [cprops.className, \"plainframe-ui-button-group-item\"].filter(Boolean).join(\" \");\n\n return cloneElement<DropdownMenuTriggerProps>(ch, {\n ...cprops,\n css: [cprops.css, visualCss],\n className: triggerClass,\n disabled: mergedDisabled,\n size: mergedSize,\n });\n });\n\n const patchedMenu = cloneElement<DropdownMenuProps>(node, { ...(nodeProps as DropdownMenuProps), children: newChildren });\n out.push(patchedMenu);\n prevRightOutlined = currRightOutlined;\n realIndex += 1;\n }\n\n return (\n <div\n ref={ref}\n role={role}\n aria-orientation={isVertical ? \"vertical\" : \"horizontal\"}\n data-attached={attached || undefined}\n data-direction={direction}\n className={[\"plainframe-ui-button-group\", className || \"\"].join(\" \").trim()}\n css={[rootCss, userCss]}\n {...rest}\n >\n {out}\n </div>\n );\n })\n);\n\nButtonGroup.displayName = \"ButtonGroup\";\n","/** @jsxImportSource @emotion/react */\nimport React, { Children, cloneElement, isValidElement } from \"react\";\nimport type { Interpolation, Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport type { CardProps } from \"./Card\";\n\ntype Variant = \"subtle\" | \"outlined\" | \"ghost\";\n\nexport type CardGroupProps = {\n children: React.ReactNode;\n attached?: boolean;\n gap?: string | number;\n width?: string | number;\n direction?: \"vertical\" | \"horizontal\";\n variant?: Variant;\n className?: string;\n role?: React.AriaRole;\n css?: Interpolation<Theme>;\n};\n\nconst isEl = (n: unknown): n is React.ReactElement => isValidElement(n);\nconst nameOf = (n: unknown) =>\n isEl(n)\n ? ((n.type as { displayName?: string; name?: string })?.displayName ||\n (n.type as { displayName?: string; name?: string })?.name)\n : undefined;\nconst isCard = (n: unknown) => nameOf(n) === \"Card\";\n\nconst toLen = (v: unknown) => (typeof v === \"number\" ? `${v}px` : v);\n\nexport const CardGroup: React.FC<CardGroupProps> = ({\n children,\n attached = false,\n gap,\n width,\n direction = \"vertical\",\n variant,\n className,\n role = \"group\",\n css: userCss,\n}) => {\n const theme = usePlainframeUITheme();\n const isVertical = direction === \"vertical\";\n const bw = String(theme.componentHeights?.border ?? \"1px\");\n const betweenColor = theme.surface.border;\n\n const rootCss: Interpolation<Theme> = {\n display: \"flex\",\n flexDirection: isVertical ? \"column\" : \"row\",\n width: width != null ? (toLen(width) as any) : \"auto\",\n maxWidth: \"none\",\n gap: (attached ? 0 : (gap ?? theme.spacing?.sm)) as any,\n };\n\n const nodes = Children.toArray(children);\n const cardNodes = nodes.filter(isCard) as React.ReactElement<CardProps>[];\n const totalCards = cardNodes.length;\n\n let logical = 0;\n const out = nodes.map((node, i) => {\n if (!isCard(node) || !isEl(node)) return node;\n\n const props = node.props as CardProps & { variant?: Variant; radius?: string | number };\n const idx = logical++;\n const isFirst = idx === 0;\n const isLast = idx === totalCards - 1;\n\n const forcedVariant = (variant ?? props.variant) as Variant | undefined;\n\n const radiusCss: Interpolation<Theme> | undefined = attached\n ? isVertical\n ? {\n borderTopLeftRadius: isFirst ? (props.radius as any) : 0,\n borderTopRightRadius: isFirst ? (props.radius as any) : 0,\n borderBottomLeftRadius: isLast ? (props.radius as any) : 0,\n borderBottomRightRadius: isLast ? (props.radius as any) : 0,\n }\n : {\n borderTopLeftRadius: isFirst ? (props.radius as any) : 0,\n borderBottomLeftRadius: isFirst ? (props.radius as any) : 0,\n borderTopRightRadius: isLast ? (props.radius as any) : 0,\n borderBottomRightRadius: isLast ? (props.radius as any) : 0,\n }\n : undefined;\n\n const collapseCss: Interpolation<Theme> | undefined =\n attached && !isFirst\n ? isVertical\n ? { borderTopWidth: 0 }\n : { borderLeftWidth: 0 }\n : undefined;\n\n const betweenCss: Interpolation<Theme> | null =\n forcedVariant === \"subtle\" && totalCards > 1 && !isFirst\n ? isVertical\n ? { borderTop: `${bw} solid ${betweenColor}` }\n : { borderLeft: `${bw} solid ${betweenColor}` }\n : null;\n\n const sizingCss: Interpolation<Theme> =\n attached\n ? { width: \"100%\" }\n : {\n width: \"100%\",\n marginBottom: isVertical ? 0 : undefined,\n marginRight: !isVertical ? 0 : undefined,\n };\n\n const visualCss: Interpolation<Theme>[] = [radiusCss, collapseCss, betweenCss, sizingCss].filter(\n Boolean\n ) as Interpolation<Theme>[];\n\n const mergedClass = [props.className, \"plainframe-ui-card-group-item\"]\n .filter(Boolean)\n .join(\" \");\n\n return cloneElement(node as React.ReactElement<CardProps>, {\n ...props,\n variant: forcedVariant ?? props.variant,\n css: [props.css, ...visualCss],\n className: mergedClass,\n key: typeof node === \"object\" && \"key\" in node ? (node as any).key : i,\n });\n });\n\n return (\n <div\n role={role}\n aria-orientation={isVertical ? \"vertical\" : \"horizontal\"}\n data-attached={attached || undefined}\n data-direction={direction}\n className={[\"plainframe-ui-card-group\", className || \"\"].join(\" \").trim()}\n css={[rootCss, userCss]}\n >\n {out}\n </div>\n );\n};\n\nCardGroup.displayName = \"CardGroup\";\n","/** @jsxImportSource @emotion/react */\nimport React, { useMemo, useCallback, forwardRef } from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { useFocusRing } from \"../utils/focusRing\";\nimport { X } from \"lucide-react\";\n\ntype ChipVariant = \"soft\" | \"outlined\" | \"filled\" | \"ghost\";\ntype ChipSize = \"sm\" | \"md\" | \"lg\";\ntype WithCssProp = { css?: Interpolation<Theme> };\n\nexport type ChipProps = WithCssProp & {\n children?: React.ReactNode;\n labelCss?: Interpolation<Theme>;\n variant?: ChipVariant;\n color?: string;\n rounded?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n size?: ChipSize;\n onClick?: () => void;\n onDelete?: () => void;\n deleteIcon?: React.ReactNode;\n disabled?: boolean;\n cursor?: React.CSSProperties[\"cursor\"];\n className?: string;\n};\n\nconst u = (v: string | number): string => (typeof v === \"number\" ? `${v}px` : v);\n\nconst hasText = (node: React.ReactNode): boolean => {\n let found = false;\n React.Children.forEach(node as any, (ch: any) => {\n if (found) return;\n if (typeof ch === \"string\" || typeof ch === \"number\") {\n if (String(ch).trim() !== \"\") found = true;\n } else if (Array.isArray(ch)) {\n if (hasText(ch)) found = true;\n }\n });\n return found;\n};\n\ntype SizeT = {\n fontSize: string | number;\n paddingX: string | number;\n paddingY: string | number;\n gap: string | number;\n iconSize: string | number;\n radius: string | number;\n soloPadding: string | number;\n iconOffset: string;\n iconOffsetRounded: string;\n};\n\nconst getSize = (theme: ReturnType<typeof usePlainframeUITheme>, size: ChipSize): SizeT => {\n if (size === \"sm\") {\n return {\n fontSize: theme.fontSizes.sm,\n paddingX: `calc(${theme.spacing.sm} * 0.7)`,\n paddingY: theme.spacing.xs,\n gap: theme.spacing.xxs,\n iconSize: theme.fontSizes.sm,\n radius: `calc(${theme.radius.sm} * 0.8)`,\n soloPadding: theme.spacing.xs,\n iconOffset: \"0px\",\n iconOffsetRounded: \"-2px\",\n };\n }\n if (size === \"lg\") {\n return {\n fontSize: theme.fontSizes.lg,\n paddingX: theme.spacing.sm,\n paddingY: `calc(${theme.spacing.sm} * 0.6)`,\n gap: theme.spacing.xs,\n iconSize: theme.fontSizes.lg,\n radius: theme.radius.md,\n soloPadding: theme.spacing.sm,\n iconOffset: \"0px\",\n iconOffsetRounded: \"-3px\",\n };\n }\n return {\n fontSize: theme.fontSizes.md,\n paddingX: `calc(${theme.spacing.sm} * 0.9)`,\n paddingY: theme.spacing.xs,\n gap: theme.spacing.xxs,\n iconSize: theme.fontSizes.md,\n radius: theme.radius.sm,\n soloPadding: theme.spacing.xs,\n iconOffset: \"-1px\",\n iconOffsetRounded: \"-3px\",\n };\n};\n\nexport const Chip: React.ForwardRefExoticComponent<\n ChipProps & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, ChipProps>(function Chip(\n {\n children,\n labelCss: userLabelCss,\n variant = \"soft\",\n color = \"primary\",\n rounded = false,\n startIcon,\n endIcon,\n size = \"md\",\n onClick,\n onDelete,\n deleteIcon,\n disabled,\n cursor,\n className,\n css: userCss,\n },\n ref\n): React.ReactElement {\n const theme = usePlainframeUITheme();\n const focusRing = useFocusRing();\n\n const sizeKey: ChipSize = ([\"sm\", \"md\", \"lg\"].includes(size) ? size : \"md\") as ChipSize;\n const S: SizeT = useMemo<SizeT>(() => getSize(theme, sizeKey), [theme, sizeKey]);\n\n const isClickable = !!onClick && !disabled;\n const baseCursor: React.CSSProperties[\"cursor\"] = disabled\n ? \"not-allowed\"\n : cursor || (isClickable ? \"pointer\" : \"default\");\n const strokeW = String(theme.componentHeights?.border ?? \"1px\");\n\n const paletteKey: string = useMemo<string>(() => {\n const palette = theme.palette as Record<string, Record<string, string>>;\n const isSecondary = color === \"secondary\" || color === \"neutral\";\n if (isSecondary) return \"neutral\";\n return color && palette[color] ? color : \"primary\";\n }, [color, theme.palette]);\n\n const sw = useCallback(\n (shade: 50 | 100 | 300 | 600 | 700 | 800): string => {\n const palette = theme.palette as Record<string, Record<string, string>>;\n return (\n (paletteKey === \"neutral\" ? theme.neutral[shade] : palette[paletteKey]?.[shade]) ??\n (palette.primary?.[shade] as string)\n );\n },\n [paletteKey, theme.neutral, theme.palette]\n );\n\n const softBg: string = useMemo(\n () => (paletteKey === \"neutral\" ? theme.neutral[100] : sw(50)),\n [paletteKey, sw, theme.neutral]\n );\n const softFg: string = useMemo(\n () => (paletteKey === \"neutral\" ? theme.text.secondary : sw(800)),\n [paletteKey, sw, theme.text.secondary]\n );\n\n const outlinedBg: string = useMemo(\n () => (paletteKey === \"neutral\" ? theme.neutral[100] : sw(50)),\n [paletteKey, sw, theme.neutral]\n );\n const outlinedFg: string = useMemo(\n () => (paletteKey === \"neutral\" ? theme.text.secondary : sw(800)),\n [paletteKey, sw, theme.text.secondary]\n );\n const outlinedBr: string = useMemo(\n () => (paletteKey === \"neutral\" ? theme.neutral[400] : sw(300)),\n [paletteKey, sw, theme.neutral]\n );\n\n const filledBg: string = useMemo(\n () => (paletteKey === \"neutral\" ? theme.surface.subtleBg : sw(600)),\n [paletteKey, sw, theme.surface.subtleBg]\n );\n const filledFg: string = useMemo(() => {\n const onMap = theme.text.onColors ?? ({} as Record<string, string>);\n return onMap[paletteKey] ?? (paletteKey === \"neutral\" ? theme.neutral[900] : theme.neutral[0] ?? \"#fff\");\n }, [paletteKey, theme.text.onColors, theme.neutral]);\n\n const ghostBg: string = \"transparent\";\n const ghostFg: string = useMemo(\n () => (paletteKey === \"neutral\" ? theme.text.secondary : sw(700) ?? theme.text.primary),\n [paletteKey, sw, theme.text.primary, theme.text.secondary]\n );\n\n const isIconOnly: boolean = useMemo(\n () =>\n !startIcon && !endIcon && children != null && !hasText(children) && React.Children.count(children) === 1,\n [startIcon, endIcon, children]\n );\n\n const variantCss: Interpolation<Theme> = useMemo(() => {\n if (variant === \"filled\")\n return css({ backgroundColor: filledBg, color: filledFg, border: \"none\", boxShadow: \"none\" });\n if (variant === \"outlined\")\n return css({\n backgroundColor: outlinedBg,\n color: outlinedFg,\n border: \"none\",\n boxShadow: `inset 0 0 0 ${strokeW} ${outlinedBr}`,\n });\n if (variant === \"ghost\")\n return css({ backgroundColor: ghostBg, color: ghostFg, border: \"none\", boxShadow: \"none\" });\n return css({ backgroundColor: softBg, color: softFg, border: \"none\", boxShadow: \"none\" });\n }, [filledBg, filledFg, ghostFg, outlinedBg, outlinedFg, outlinedBr, softBg, softFg, strokeW, variant]);\n\n const rootCss: Interpolation<Theme> = useMemo(\n () =>\n css({\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: u(S.gap),\n padding:\n variant === \"ghost\"\n ? 0\n : isIconOnly || children == null\n ? u(S.soloPadding)\n : `${u(S.paddingY)} ${u(S.paddingX)}`,\n borderRadius: rounded ? (theme.radius.full as string | number) : S.radius,\n fontWeight: 600,\n cursor: baseCursor,\n opacity: disabled ? 0.55 : 1,\n transition: \"outline .16s ease, outline-offset .16s ease\",\n overflow: variant === \"ghost\" ? \"visible\" : \"hidden\",\n ...(isIconOnly\n ? {\n lineHeight: 1,\n minWidth: `calc(${u(S.iconSize)} + ${u(S.soloPadding)} * 2)`,\n minHeight: `calc(${u(S.iconSize)} + ${u(S.soloPadding)} * 2)`,\n justifyContent: \"center\",\n }\n : null),\n }),\n [S, baseCursor, children, disabled, isIconOnly, rounded, theme.radius.full, variant]\n );\n\n const baseLabelCss: Interpolation<Theme> = useMemo(\n () =>\n css({\n fontSize: isIconOnly ? u(S.iconSize) : u(S.fontSize),\n lineHeight: 1.2,\n minWidth: 0,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n \"& > svg\": {\n width: isIconOnly ? u(S.iconSize) : undefined,\n height: isIconOnly ? u(S.iconSize) : undefined,\n display: isIconOnly ? \"block\" : undefined,\n },\n }),\n [S.fontSize, S.iconSize, isIconOnly]\n );\n\n const iconCss: Interpolation<Theme> = useMemo(\n () =>\n css({\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: u(S.iconSize),\n lineHeight: 0,\n \"& > svg\": { width: u(S.iconSize), height: u(S.iconSize), display: \"block\" },\n }),\n [S.iconSize]\n );\n\n const leftIconMargins: Interpolation<Theme> = useMemo(\n () =>\n css({\n marginRight: isIconOnly || children == null ? 0 : u(S.gap),\n marginLeft: isIconOnly || children == null ? 0 : u(S.iconOffset),\n }),\n [S.gap, S.iconOffset, children, isIconOnly]\n );\n\n const rightIconMargins: Interpolation<Theme> = useMemo(\n () =>\n css({\n marginLeft: isIconOnly || children == null ? 0 : u(S.gap),\n marginRight:\n isIconOnly || children == null\n ? 0\n : rounded\n ? u(S.iconOffsetRounded)\n : u(S.iconOffset),\n }),\n [S.gap, S.iconOffset, S.iconOffsetRounded, children, isIconOnly, rounded]\n );\n\n const deleteBtnCss: Interpolation<Theme> = useMemo(\n () =>\n css({\n marginRight: rounded ? 0 : u(S.iconOffset),\n padding: 0,\n border: \"none\",\n outline: \"none\",\n background: \"transparent\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n color: \"currentColor\",\n opacity: disabled ? 0.4 : 0.85,\n transition:\n \"background-color .16s ease, color .16s ease, opacity .16s ease, outline .16s ease, outline-offset .16s ease\",\n fontSize: u(S.iconSize),\n borderRadius: theme.radius.xs,\n }),\n [S.iconOffset, S.iconSize, disabled, rounded, theme.radius.xs]\n );\n\n const onKeyDown = useCallback((e: React.KeyboardEvent): void => {\n if (!isClickable) return;\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick?.();\n }\n }, [isClickable, onClick]);\n\n const defaultDeleteIcon: React.ReactNode = useMemo(\n () => <X css={{ width: S.iconSize, height: S.iconSize }} strokeWidth={2.5} />,\n [S.iconSize]\n );\n\n return (\n <div\n ref={ref}\n className={[\"plainframe-ui-chip\", isClickable ? \"plainframe-ui-chip-clickable\" : \"\", className || \"\"]\n .join(\" \")\n .trim()}\n css={[\n rootCss,\n variantCss,\n isClickable ? focusRing({ color: color ?? \"primary\" }) : null,\n userCss,\n ]}\n onClick={isClickable ? onClick : undefined}\n onKeyDown={onKeyDown}\n role={isClickable ? \"button\" : undefined}\n tabIndex={isClickable ? 0 : undefined}\n aria-disabled={disabled || undefined}\n data-variant={variant}\n data-color={paletteKey}\n data-size={size}\n data-icon-only={isIconOnly || undefined}\n >\n {startIcon && (\n <span css={[iconCss, leftIconMargins]} className=\"plainframe-ui-chip-icon-left\">\n {startIcon}\n </span>\n )}\n\n {children != null && (\n <span css={[baseLabelCss, userLabelCss]} className=\"plainframe-ui-chip-label\">\n {children}\n </span>\n )}\n\n {endIcon && (\n <span css={[iconCss, rightIconMargins]} className=\"plainframe-ui-chip-icon-right\">\n {endIcon}\n </span>\n )}\n\n {onDelete && (\n <button\n type=\"button\"\n aria-label=\"Delete\"\n disabled={disabled}\n tabIndex={0}\n onClick={(e) => {\n e.stopPropagation();\n if (!disabled) onDelete?.();\n }}\n css={[deleteBtnCss, focusRing({ color: color ?? \"primary\" })]}\n className=\"plainframe-ui-chip-delete\"\n >\n {deleteIcon || defaultDeleteIcon}\n </button>\n )}\n </div>\n );\n});\n\nChip.displayName = \"Chip\";\n","/** @jsxImportSource @emotion/react */\nimport React, { useMemo, useRef, useCallback, useId, useState } from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { useFocusRing } from \"../utils/focusRing\";\nimport type { PlainframeUITheme } from \"../theme/theme\";\n\ntype SizeKey = \"sm\" | \"md\" | \"lg\";\ntype Variant = \"outlined\" | \"subtle\" | \"ghost\";\ntype WithCss = { css?: Interpolation<Theme> };\n\nexport type CodeFieldProps = WithCss & {\n label?: React.ReactNode;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n placeholder?: string;\n separator?: React.ReactNode;\n error?: boolean;\n helperText?: React.ReactNode;\n disabled?: boolean;\n gap?: number | string;\n size?: SizeKey;\n variant?: Variant;\n length?: number;\n focusRingMode?: \"always\" | \"none\";\n wrapperCss?: Interpolation<Theme>;\n labelCss?: Interpolation<Theme>;\n helperRowCss?: Interpolation<Theme>;\n helperTextCss?: Interpolation<Theme>;\n className?: string;\n};\n\nconst u = (v: number | string | undefined) =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nconst CodeBoxes: React.FC<{\n value: string;\n onChange: (v: string) => void;\n len: number;\n theme: PlainframeUITheme;\n sizeKey: SizeKey;\n s: { codeFontSize: number };\n variant: Variant;\n error?: boolean;\n disabled?: boolean;\n ringEnabled: boolean;\n focusRingMode: \"always\" | \"none\";\n placeholder?: string;\n separator?: React.ReactNode;\n gapPx: string;\n}> = React.memo(function CodeBoxesImpl({\n value,\n onChange,\n len,\n theme,\n sizeKey,\n s,\n variant,\n error,\n disabled,\n ringEnabled,\n focusRingMode,\n placeholder,\n separator,\n gapPx,\n}) {\n const ring = useFocusRing();\n const N = theme.neutral;\n const T = theme.text;\n const borderW = theme.componentHeights.border;\n\n const boxesRef = useRef<Array<HTMLInputElement | null>>([]);\n const [focusIdx, setFocusIdx] = useState<number>(0);\n\n const chars = useMemo(\n () => (value ?? \"\").padEnd(len, \"\").slice(0, len).split(\"\"),\n [value, len]\n );\n\n const ph = useMemo(() => {\n if (!placeholder) return Array(len).fill(\"\");\n if (placeholder.length === 1) return Array(len).fill(placeholder);\n const a = placeholder.slice(0, len).split(\"\");\n while (a.length < len) a.push(\"\");\n return a;\n }, [placeholder, len]);\n\n const sideCss = useMemo(() => {\n const H = theme.componentHeights[sizeKey] as number | string;\n const Hpx = typeof H === \"number\" ? `${H}px` : H;\n return `calc(${Hpx} * 1.5)`;\n }, [theme.componentHeights, sizeKey]);\n\n const boxBg =\n disabled\n ? (N[200] as string)\n : variant === \"subtle\"\n ? (theme.surface.subtleBg as string)\n : variant === \"outlined\"\n ? (theme.surface.panelBg as string)\n : \"transparent\";\n\n const boxBorder =\n variant === \"outlined\"\n ? `${borderW} solid ${\n error ? (theme.palette.danger?.[600] ?? N[500]) : theme.surface.border\n }`\n : \"none\";\n\n const boxCss = (active: boolean) =>\n css(\n {\n width: sideCss,\n height: sideCss,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n boxSizing: \"border-box\",\n background: boxBg,\n border: boxBorder,\n borderRadius: theme.radius.lg,\n transition: \"box-shadow .16s, border-color .16s, background .16s\",\n fontSize: s.codeFontSize,\n fontWeight: 600,\n color: disabled ? N[500] : T.primary,\n textAlign: \"center\",\n backgroundClip: \"padding-box\",\n appearance: \"textfield\",\n outline: \"none\",\n caretColor: T.primary,\n \"&::placeholder\": { color: T.secondary, opacity: 0.85 },\n },\n ringEnabled\n ? ring({\n enabled: true,\n disabled,\n mode: focusRingMode === \"always\" ? \"always\" : \"visible\",\n })\n : undefined,\n active ? css({}) : null\n );\n\n const wrapCss = css({\n display: \"flex\",\n gap: gapPx,\n justifyContent: \"center\",\n width: \"auto\",\n pointerEvents: disabled ? \"none\" : \"auto\",\n opacity: disabled ? 0.65 : 1,\n });\n\n const sepCss = css({\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n color: T.secondary,\n userSelect: \"none\",\n });\n\n const sanitize = (c: string) => c.replace(/[^a-zA-Z0-9]/g, \"\").toUpperCase();\n\n const focusAt = useCallback(\n (i: number) => {\n const idx = Math.max(0, Math.min(len - 1, i));\n setFocusIdx(idx);\n boxesRef.current[idx]?.focus();\n },\n [len]\n );\n\n const handleBoxChange = useCallback(\n (i: number, char: string) => {\n const clean = sanitize(char).slice(0, 1);\n const next = [...chars];\n next[i] = clean;\n onChange(next.join(\"\"));\n if (clean && i < len - 1) focusAt(i + 1);\n },\n [chars, len, onChange, focusAt]\n );\n\n const handleBoxKeyDown = useCallback(\n (i: number, e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Backspace\") {\n if (!chars[i] && i > 0) {\n const next = [...chars];\n next[i - 1] = \"\";\n onChange(next.join(\"\"));\n focusAt(i - 1);\n e.preventDefault();\n return;\n } else {\n const next = [...chars];\n next[i] = \"\";\n onChange(next.join(\"\"));\n return;\n }\n }\n if (e.key === \"ArrowLeft\" && i > 0) {\n e.preventDefault();\n focusAt(i - 1);\n return;\n }\n if (e.key === \"ArrowRight\" && i < len - 1) {\n e.preventDefault();\n focusAt(i + 1);\n return;\n }\n if (e.key === \"Home\") {\n e.preventDefault();\n focusAt(0);\n return;\n }\n if (e.key === \"End\") {\n e.preventDefault();\n focusAt(len - 1);\n return;\n }\n },\n [chars, len, onChange, focusAt]\n );\n\n const handlePaste = useCallback(\n (e: React.ClipboardEvent<HTMLInputElement>) => {\n const paste = sanitize(e.clipboardData.getData(\"text\")).slice(0, len);\n if (!paste) return;\n onChange(paste);\n requestAnimationFrame(() => {\n const idx = Math.min(paste.length, len - 1);\n focusAt(idx);\n });\n e.preventDefault();\n },\n [len, onChange, focusAt]\n );\n\n return (\n <div className=\"plainframe-ui-code-boxes\" css={wrapCss}>\n {Array.from({ length: len }).map((_, i) => (\n <React.Fragment key={i}>\n <input\n ref={(el) => {\n boxesRef.current[i] = el;\n }}\n type=\"text\"\n inputMode=\"text\"\n maxLength={1}\n value={chars[i] || \"\"}\n placeholder={chars[i] ? \"\" : ph[i] || \"\"}\n disabled={disabled}\n onChange={(e) => handleBoxChange(i, e.target.value)}\n onKeyDown={(e) => handleBoxKeyDown(i, e)}\n onFocus={() => setFocusIdx(i)}\n onPaste={i === 0 ? handlePaste : undefined}\n className=\"plainframe-ui-code-box\"\n css={boxCss(i === focusIdx)}\n aria-label={`Code character ${i + 1}`}\n tabIndex={i === focusIdx ? 0 : -1}\n />\n {separator && i < len - 1 ? (\n <span aria-hidden role=\"presentation\" css={sepCss}>\n {separator}\n </span>\n ) : null}\n </React.Fragment>\n ))}\n </div>\n );\n});\n\nexport const CodeField: React.FC<CodeFieldProps> = ({\n label,\n value,\n defaultValue = \"\",\n onChange,\n placeholder,\n separator,\n error,\n helperText,\n disabled = false,\n gap,\n size = \"md\",\n variant = \"subtle\",\n length = 4,\n focusRingMode = \"always\",\n className,\n wrapperCss: userWrapperCss,\n labelCss: userLabelCss,\n helperRowCss: userHelperRowCss,\n helperTextCss: userHelperTextCss,\n css: userLayoutCss,\n}) => {\n const theme = usePlainframeUITheme();\n const labelId = useId();\n\n const sizeMap = useMemo(\n () =>\n ({\n sm: {\n labelFont: theme.fontSizes.sm,\n helperFont: theme.fontSizes.sm,\n minHeight: theme.componentHeights.sm,\n paddingY: 0,\n paddingX: theme.spacing.md,\n codeFontSize: 21,\n },\n md: {\n labelFont: theme.fontSizes.md,\n helperFont: theme.fontSizes.sm,\n minHeight: theme.componentHeights.md,\n paddingY: 0,\n paddingX: theme.spacing.md,\n codeFontSize: 24,\n },\n lg: {\n labelFont: theme.fontSizes.lg,\n helperFont: theme.fontSizes.md,\n minHeight: theme.componentHeights.lg,\n paddingY: 0,\n paddingX: theme.spacing.md,\n codeFontSize: 28,\n },\n } as const),\n [theme]\n );\n\n const sizeKey: SizeKey = ([\"sm\", \"md\", \"lg\"] as const).includes(size)\n ? size\n : \"md\";\n const s = sizeMap[sizeKey];\n\n const N = theme.neutral;\n const T = theme.text;\n\n const isControlled = value != null;\n const [internal, setInternal] = useState<string>(defaultValue);\n const curr = isControlled ? (value as string) : internal;\n const setValue = (next: string) => {\n if (!isControlled) setInternal(next);\n onChange?.(next);\n };\n\n const len = Math.max(2, Math.min(length, 10));\n const defaultGap = theme.spacing.sm;\n const gapPx = u(gap ?? defaultGap) ?? \"0px\";\n\n const rootCss = css(\n {\n boxSizing: \"border-box\",\n display: \"inline-flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n gap: 4,\n width: \"auto\",\n maxWidth: \"unset\",\n fontWeight: 500,\n cursor: disabled ? \"not-allowed\" : \"auto\",\n },\n ...(Array.isArray(userWrapperCss)\n ? userWrapperCss\n : userWrapperCss\n ? [userWrapperCss]\n : [])\n );\n\n const labelCss = css(\n {\n fontSize: s.labelFont,\n fontWeight: 500,\n color: error\n ? theme.palette.danger?.[700] ?? T.primary\n : disabled\n ? N[500]\n : T.primary,\n marginBottom: 4,\n display: \"block\",\n cursor: disabled ? \"not-allowed\" : \"auto\",\n },\n ...(Array.isArray(userLabelCss)\n ? userLabelCss\n : userLabelCss\n ? [userLabelCss]\n : [])\n );\n\n const rowCss = css(\n {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: gapPx,\n width: \"auto\",\n background: \"transparent\",\n outline: \"none\",\n boxShadow: \"none\",\n },\n ...(Array.isArray(userLayoutCss)\n ? userLayoutCss\n : userLayoutCss\n ? [userLayoutCss]\n : [])\n );\n\n const helperRowCss = css(\n {\n minHeight: 16,\n fontSize: s.helperFont,\n color: error ? theme.palette.danger?.[700] ?? T.secondary : T.secondary,\n paddingTop: 3,\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: 8,\n width: \"100%\",\n },\n ...(Array.isArray(userHelperRowCss)\n ? userHelperRowCss\n : userHelperRowCss\n ? [userHelperRowCss]\n : [])\n );\n\n const helperTextCss = css(\n {\n flex: 1,\n wordBreak: \"break-word\",\n whiteSpace: \"pre-wrap\",\n minWidth: 0,\n fontWeight: 400,\n color: error\n ? theme.palette.danger?.[700] ?? T.primary\n : disabled\n ? N[500]\n : T.primary,\n },\n ...(Array.isArray(userHelperTextCss)\n ? userHelperTextCss\n : userHelperTextCss\n ? [userHelperTextCss]\n : [])\n );\n\n return (\n <div\n className={[\"plainframe-ui-codefield\", className || \"\"].join(\" \").trim()}\n css={rootCss}\n >\n {label && (\n <span id={labelId} className=\"plainframe-ui-codefield-label\" css={labelCss}>\n {label}\n </span>\n )}\n\n <div\n className=\"plainframe-ui-codefield-row\"\n css={rowCss}\n role=\"group\"\n aria-labelledby={label ? labelId : undefined}\n tabIndex={-1}\n >\n <CodeBoxes\n value={curr || \"\"}\n onChange={setValue}\n len={len}\n theme={theme}\n sizeKey={sizeKey}\n s={{ codeFontSize: s.codeFontSize }}\n variant={variant}\n error={!!error}\n disabled={disabled}\n ringEnabled={focusRingMode !== \"none\"}\n focusRingMode={focusRingMode}\n placeholder={placeholder}\n separator={separator}\n gapPx={gapPx}\n />\n </div>\n\n {helperText != null && (\n <div className=\"plainframe-ui-codefield-helper\" css={helperRowCss}>\n <span className=\"plainframe-ui-codefield-helper-text\" css={helperTextCss}>\n {helperText}\n </span>\n </div>\n )}\n </div>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport type { Interpolation, Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\n\nexport type ColorPatchItem = {\n color: string;\n label?: string;\n title?: string;\n disabled?: boolean;\n onClick?: () => void;\n css?: Interpolation<Theme>;\n};\n\nexport type ColorPatchesProps = {\n items: ColorPatchItem[];\n size?: number | string;\n gap?: number | string;\n rounded?: boolean;\n radius?: number | string;\n wrap?: boolean;\n width?: number | string;\n focusOutline?: boolean;\n wrapperCss?: Interpolation<Theme>;\n patchCss?: Interpolation<Theme>;\n};\n\nconst toCssLen = (v: number | string) => (typeof v === \"number\" ? `${v}px` : v);\nconst toNum = (v: number | string | undefined, fb: number) =>\n v == null ? fb : typeof v === \"number\" ? v : Number.parseFloat(v) || fb;\n\nexport const ColorPatches: React.FC<ColorPatchesProps> = React.memo(\n ({\n items,\n size,\n gap,\n rounded = false,\n radius,\n wrap = true,\n width,\n wrapperCss,\n patchCss,\n }) => {\n const theme = usePlainframeUITheme();\n\n const patchSize = size ?? 24;\n const spacing = gap ?? theme.spacing.xs;\n const radiusCss = toCssLen(radius ?? (rounded ? theme.radius.full : theme.radius.sm));\n\n const firstEnabled = React.useMemo(() => items.findIndex((i) => !i.disabled), [items]);\n const [focusIndex, setFocusIndex] = React.useState<number>(firstEnabled >= 0 ? firstEnabled : -1);\n React.useEffect(() => {\n setFocusIndex(firstEnabled >= 0 ? firstEnabled : -1);\n }, [firstEnabled]);\n\n const refs = React.useRef<Array<HTMLButtonElement | null>>([]);\n const containerRef = React.useRef<HTMLDivElement | null>(null);\n\n const [cols, setCols] = React.useState<number>(items.length || 1);\n const g = toNum(spacing as any, 8);\n const sz = toNum(patchSize as any, 24);\n\n React.useLayoutEffect(() => {\n const el = containerRef.current;\n if (!el) return;\n const calc = () => {\n if (!wrap) {\n setCols(items.length || 1);\n return;\n }\n const w = el.clientWidth || 0;\n const c = Math.max(1, Math.floor((w + g) / (sz + g)));\n setCols(c || 1);\n };\n calc();\n const ro = new ResizeObserver(calc);\n ro.observe(el);\n return () => ro.disconnect();\n }, [wrap, items.length, g, sz]);\n\n const focusAt = (i: number) => {\n if (i < 0 || i >= items.length) return;\n if (items[i]?.disabled) return;\n setFocusIndex(i);\n refs.current[i]?.focus();\n };\n\n const moveHoriz = (dir: 1 | -1) => {\n if (!items.length) return;\n let i = focusIndex;\n for (let step = 0; step < items.length; step++) {\n i = (i + dir + items.length) % items.length;\n if (!items[i]?.disabled) {\n focusAt(i);\n return;\n }\n }\n };\n\n const moveVert = (dir: 1 | -1) => {\n if (!wrap || focusIndex < 0) return;\n const colsSafe = Math.max(cols, 1);\n const rows = Math.ceil(items.length / colsSafe);\n const row = Math.floor(focusIndex / colsSafe);\n const col = focusIndex % colsSafe;\n const targetRow = row + dir;\n if (targetRow < 0 || targetRow >= rows) return;\n\n const rowStart = targetRow * colsSafe;\n const rowEnd = Math.min(items.length - 1, rowStart + colsSafe - 1);\n\n let cand = Math.min(rowEnd, rowStart + col);\n if (items[cand]?.disabled) {\n for (let d = 1; d < colsSafe; d++) {\n const L = cand - d;\n const R = cand + d;\n if (L >= rowStart && !items[L]?.disabled) {\n cand = L;\n break;\n }\n if (R <= rowEnd && !items[R]?.disabled) {\n cand = R;\n break;\n }\n }\n }\n if (!items[cand]?.disabled) focusAt(cand);\n };\n\n const wrapperStyles: Interpolation<Theme>[] = [\n {\n display: \"flex\",\n flexWrap: wrap ? \"wrap\" : \"nowrap\",\n gap: spacing as any,\n width: width != null ? toCssLen(width) : undefined,\n alignItems: \"center\",\n boxSizing: \"border-box\",\n },\n wrapperCss,\n ];\n\n const basePatch: Interpolation<Theme> = {\n width: patchSize as any,\n height: patchSize as any,\n borderRadius: radiusCss,\n border: 0,\n padding: 0,\n appearance: \"none\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n position: \"relative\",\n boxSizing: \"border-box\",\n userSelect: \"none\",\n outline: \"none\",\n \"&:focus\": { outline: \"none\" },\n \"&:focus-visible\": { outline: \"none\" },\n \"&::-moz-focus-inner\": { border: 0 },\n };\n\n return (\n <div ref={containerRef} css={wrapperStyles} className=\"plainframe-ui-color-patches\">\n {items.map((it, idx) => {\n const isDis = !!it.disabled;\n return (\n <button\n className=\"plainframe-ui-color-patch\"\n key={idx}\n type=\"button\"\n ref={(el) => {\n refs.current[idx] = el;\n }}\n aria-label={it.label ?? it.title ?? it.color}\n data-disabled={isDis}\n tabIndex={-1}\n onClick={() => {\n if (!isDis) it.onClick?.();\n }}\n onKeyDown={(e) => {\n if (isDis) return;\n switch (e.key) {\n case \"ArrowRight\":\n e.preventDefault();\n moveHoriz(1);\n break;\n case \"ArrowLeft\":\n e.preventDefault();\n moveHoriz(-1);\n break;\n case \"ArrowDown\":\n e.preventDefault();\n moveVert(1);\n break;\n case \"ArrowUp\":\n e.preventDefault();\n moveVert(-1);\n break;\n case \"Home\":\n e.preventDefault();\n focusAt(0);\n break;\n case \"End\":\n e.preventDefault();\n focusAt(items.length - 1);\n break;\n case \"Enter\":\n case \" \":\n e.preventDefault();\n it.onClick?.();\n break;\n }\n }}\n css={[basePatch, { backgroundColor: it.color } as Interpolation<Theme>, patchCss, it.css]}\n title={it.title ?? it.label}\n disabled={isDis}\n />\n );\n })}\n </div>\n );\n }\n);\n","/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport { css } from \"@emotion/react\";\n\ntype TriggerMode = \"contextmenu\" | \"dblclick\" | \"click\" | \"hover\";\n\ntype ContextZoneProps = {\n children: React.ReactNode;\n content?: React.ReactNode | ((api: { close: () => void }) => React.ReactNode);\n trigger?: TriggerMode;\n onOpenChange?: (open: boolean) => void;\n hoverOpenDelay?: number;\n hoverCloseDelay?: number;\n hoverPosition?: \"cursor\" | \"center\";\n hoverOffset?: number;\n};\n\nconst getName = (n: unknown): string => {\n if (\n typeof n === \"object\" &&\n n !== null &&\n \"type\" in n &&\n (n as { type?: unknown }).type\n ) {\n const type = (n as { type: unknown }).type;\n if (typeof type === \"object\" && type !== null) {\n return (type as { displayName?: string })?.displayName || (type as { name?: string })?.name || \"\";\n }\n if (typeof type === \"function\") {\n return (type as { displayName?: string })?.displayName || (type as { name?: string })?.name || \"\";\n }\n return \"\";\n }\n return \"\";\n};\n\nconst hasDropdownNodes = (node: unknown): boolean => {\n if (\n !node ||\n typeof node !== \"object\"\n )\n return false;\n const name = getName(node);\n if (name === \"DropdownMenu\" || name === \"DropdownMenuContent\") return true;\n const props = (node as React.ReactElement | null)?.props;\n const kids =\n props && typeof props === \"object\" && props !== null && \"children\" in props\n ? (props as { children?: unknown }).children\n : undefined;\n if (kids == null) return false;\n return Array.isArray(kids) ? kids.some(hasDropdownNodes) : hasDropdownNodes(kids);\n};\n\nexport const ContextZone: React.FC<ContextZoneProps> = ({\n children,\n content,\n trigger = \"contextmenu\",\n onOpenChange,\n hoverPosition = \"cursor\",\n hoverOffset = 10,\n}) => {\n const hostRef = React.useRef<HTMLDivElement | null>(null);\n const [open, setOpen] = React.useState(false);\n const setAndNotify = React.useCallback(\n (o: boolean) => {\n setOpen(o);\n onOpenChange?.(o);\n },\n [onOpenChange]\n );\n const close = React.useCallback(() => setAndNotify(false), [setAndNotify]);\n\n const ptRef = React.useRef<{ x: number; y: number }>({ x: 0, y: 0 });\n const shellRef = React.useRef<HTMLDivElement | null>(null);\n const rafId = React.useRef<number | null>(null);\n\n const flush = React.useCallback(() => {\n rafId.current = null;\n const el = shellRef.current;\n if (!el) return;\n const x = Math.round(ptRef.current.x);\n const y = Math.round(ptRef.current.y);\n el.style.transform = `translate3d(${x}px, ${y}px, 0)`;\n }, []);\n\n const requestFlush = React.useCallback(() => {\n if (rafId.current != null) return;\n rafId.current = requestAnimationFrame(flush);\n }, [flush]);\n\n React.useEffect(() => {\n return () => {\n if (rafId.current) cancelAnimationFrame(rafId.current);\n };\n }, []);\n\n const virtualAnchor = React.useMemo(\n () => ({\n getBoundingClientRect: () => {\n const x = Math.round(ptRef.current.x);\n const y = Math.round(ptRef.current.y);\n return { x, y, left: x, top: y, right: x, bottom: y, width: 0, height: 0, toJSON: () => ({ x, y }) } as DOMRect;\n },\n }),\n []\n );\n\n const czIdRef = React.useRef(`cz-${Math.random().toString(36).slice(2)}`);\n const getMenuEl = React.useCallback(\n () =>\n typeof document !== \"undefined\"\n ? (document.querySelector(`[data-cz-id=\"${czIdRef.current}\"]`) as HTMLElement | null)\n : null,\n []\n );\n\n const openT = React.useRef<number | null>(null);\n const closeT = React.useRef<number | null>(null);\n const clearOpenT = React.useCallback(() => {\n if (openT.current != null) clearTimeout(openT.current);\n openT.current = null;\n }, []);\n const clearCloseT = React.useCallback(() => {\n if (closeT.current != null) clearTimeout(closeT.current);\n closeT.current = null;\n }, []);\n const scheduleClose = React.useCallback(() => {\n clearCloseT();\n closeT.current = window.setTimeout(() => setAndNotify(false), 0);\n }, [clearCloseT, setAndNotify]);\n\n const centerOfHost = React.useCallback(() => {\n const r = hostRef.current?.getBoundingClientRect();\n return r ? { x: r.left + r.width / 2, y: r.top + r.height / 2 } : { x: 0, y: 0 };\n }, []);\n\n const openAt = React.useCallback(\n (x: number, y: number) => {\n ptRef.current = { x, y };\n requestFlush();\n setAndNotify(true);\n },\n [requestFlush, setAndNotify]\n );\n\n const rendered = typeof content === \"function\" ? content({ close }) : content;\n const isMenuTree = hasDropdownNodes(rendered);\n\n const injectForMenu = (node: React.ReactNode): React.ReactNode => {\n if (!React.isValidElement(node)) return node;\n const name = getName(node);\n const element = node as React.ReactElement<any>;\n const kids = element.props.children;\n const nextChildren =\n kids == null\n ? kids\n : Array.isArray(kids)\n ? kids.map(child => (React.isValidElement(child) ? injectForMenu(child) : child))\n : React.isValidElement(kids)\n ? injectForMenu(kids)\n : kids;\n\n if (name === \"DropdownMenu\") {\n const prev = element.props.onOpenChange as ((o: boolean) => void) | undefined;\n return React.cloneElement<typeof element.props>(element, {\n ...element.props,\n open,\n onOpenChange: (o: boolean) => {\n prev?.(o);\n setAndNotify(o);\n },\n children: nextChildren,\n });\n }\n if (name === \"DropdownMenuContent\") {\n const prevEnter = element.props.onMouseEnter as ((e: React.MouseEvent) => void) | undefined;\n const prevLeave = element.props.onMouseLeave as ((e: React.MouseEvent) => void) | undefined;\n return React.cloneElement<typeof element.props>(element, {\n ...element.props,\n anchor: virtualAnchor,\n \"data-cz-id\": czIdRef.current,\n onMouseEnter: (e: React.MouseEvent) => {\n clearCloseT();\n prevEnter?.(e);\n },\n onMouseLeave: (e: React.MouseEvent) => {\n scheduleClose();\n prevLeave?.(e);\n },\n children: nextChildren,\n });\n }\n return nextChildren === kids ? element : React.cloneElement<typeof element.props>(element, { ...element.props, children: nextChildren });\n };\n\n const wired = isMenuTree ? injectForMenu(rendered) : rendered;\n\n const handleNonHoverOpen = React.useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n openAt(e.clientX, e.clientY);\n },\n [openAt]\n );\n\n const onContextMenu = React.useCallback(\n (e: React.MouseEvent) => {\n if (trigger === \"contextmenu\") handleNonHoverOpen(e);\n },\n [trigger, handleNonHoverOpen]\n );\n\n const onDoubleClick = React.useCallback(\n (e: React.MouseEvent) => {\n if (trigger === \"dblclick\") handleNonHoverOpen(e);\n },\n [trigger, handleNonHoverOpen]\n );\n\n const onClick = React.useCallback(\n (e: React.MouseEvent) => {\n if (trigger === \"click\") handleNonHoverOpen(e);\n },\n [trigger, handleNonHoverOpen]\n );\n\n const onMouseEnter = React.useCallback(\n (e: React.MouseEvent) => {\n if (trigger !== \"hover\") return;\n clearOpenT();\n clearCloseT();\n const base = hoverPosition === \"center\" ? centerOfHost() : { x: e.clientX, y: e.clientY };\n openT.current = window.setTimeout(() => {\n const x = base.x + (hoverPosition === \"cursor\" ? hoverOffset : 0);\n const y = base.y + (hoverPosition === \"cursor\" ? hoverOffset : 0);\n openAt(x, y);\n }, 0);\n },\n [trigger, hoverPosition, hoverOffset, centerOfHost, openAt, clearOpenT, clearCloseT]\n );\n\n const onMouseMove = React.useCallback(\n (e: React.MouseEvent) => {\n if (trigger !== \"hover\") return;\n if (open && hoverPosition === \"cursor\" && !isMenuTree) {\n ptRef.current = { x: e.clientX + hoverOffset, y: e.clientY + hoverOffset };\n requestFlush();\n }\n },\n [trigger, open, hoverPosition, isMenuTree, hoverOffset, requestFlush]\n );\n\n const onMouseLeave = React.useCallback(() => {\n if (trigger !== \"hover\") return;\n clearOpenT();\n scheduleClose();\n }, [trigger, clearOpenT, scheduleClose]);\n\n React.useEffect(() => {\n if (trigger !== \"hover\") return;\n const onMove = () => {\n if (!open) return;\n const hostHovered = hostRef.current?.matches(\":hover\");\n const menuHovered = getMenuEl()?.matches?.(\":hover\");\n if (hostHovered || menuHovered) clearCloseT();\n else scheduleClose();\n };\n window.addEventListener(\"pointermove\", onMove, { passive: true, capture: true });\n return () => window.removeEventListener(\"pointermove\", onMove, { capture: true });\n }, [open, trigger, getMenuEl, clearCloseT, scheduleClose]);\n\n React.useEffect(() => {\n const onScrollResize = () => {\n if (!open) return;\n if (trigger === \"hover\") {\n const hostHovered = hostRef.current?.matches(\":hover\");\n const menuHovered = getMenuEl()?.matches?.(\":hover\");\n if (hostHovered || menuHovered) clearCloseT();\n else scheduleClose();\n if (hoverPosition === \"center\" && hostRef.current) {\n const c = centerOfHost();\n ptRef.current = { x: c.x, y: c.y };\n requestFlush();\n }\n } else {\n setAndNotify(false);\n }\n };\n window.addEventListener(\"scroll\", onScrollResize, true);\n window.addEventListener(\"resize\", onScrollResize, true);\n return () => {\n window.removeEventListener(\"scroll\", onScrollResize, true);\n window.removeEventListener(\"resize\", onScrollResize, true);\n };\n }, [open, trigger, hoverPosition, centerOfHost, requestFlush, setAndNotify, clearCloseT, scheduleClose, getMenuEl]);\n\n React.useEffect(() => {\n return () => {\n clearOpenT();\n clearCloseT();\n };\n }, [clearOpenT, clearCloseT]);\n\n const FloatingShell: React.FC<{ children: React.ReactNode }> = ({ children }) =>\n open ? (\n <div\n ref={shellRef}\n style={{\n position: \"fixed\",\n left: 0,\n top: 0,\n transform: `translate3d(${Math.round(ptRef.current.x)}px, ${Math.round(ptRef.current.y)}px, 0)`,\n willChange: \"transform\",\n zIndex: 1000,\n pointerEvents: \"auto\",\n }}\n onMouseEnter={() => trigger === \"hover\" && clearCloseT()}\n onMouseLeave={() => trigger === \"hover\" && scheduleClose()}\n >\n {children}\n </div>\n ) : null;\n\n return (\n <div\n ref={hostRef}\n onContextMenu={onContextMenu}\n onDoubleClick={onDoubleClick}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n css={css({ position: \"relative\" })}\n className=\"plainframe-ui-context-zone-wrapper\"\n >\n {children}\n {isMenuTree ? wired : <FloatingShell>{wired}</FloatingShell>}\n </div>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, { useMemo, forwardRef } from \"react\";\nimport { css } from \"@emotion/react\";\nimport type { Interpolation, Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\n\ntype DividerVariant = \"full\" | \"inset\" | \"middle\";\ntype LabelPos = \"left\" | \"right\" | \"center\" | \"top\" | \"bottom\";\ntype ChipVariant = \"subtle\" | \"outlined\";\n\nexport type DividerProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n label?: React.ReactNode;\n variant?: DividerVariant;\n direction?: \"vertical\" | \"horizontal\";\n labelPosition?: LabelPos;\n thickness?: number | string;\n width?: number | string;\n middleMargin?: number | string;\n insetMargin?: number | string;\n chip?: boolean;\n chipVariant?: ChipVariant;\n rounded?: boolean;\n margin?: number | string;\n css?: Interpolation<Theme>;\n labelCss?: Interpolation<Theme>;\n strokeCss?: Interpolation<Theme>;\n className?: string;\n};\n\nconst toLen = (v: number | string | undefined, def = \"0px\"): string =>\n v == null ? def : typeof v === \"number\" ? `${v}px` : v;\n\nexport const Divider: React.ForwardRefExoticComponent<\n DividerProps & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, DividerProps>(function Divider(\n {\n label,\n variant = \"full\",\n direction = \"horizontal\",\n labelPosition = \"center\",\n thickness = 1,\n width,\n middleMargin = \"5px\",\n insetMargin = \"10px\",\n chip = false,\n chipVariant = \"subtle\",\n rounded = false,\n margin = 10,\n css: userCss,\n labelCss,\n strokeCss,\n className,\n ...rest\n },\n ref\n) {\n const theme = usePlainframeUITheme();\n\n const {\n t,\n strokeColor,\n labelTextColor,\n chipSubtleBg,\n chipOutlinedBg,\n outerM,\n padX,\n verticalStrokeMargin,\n } = useMemo(() => {\n const tVal = typeof thickness === \"number\" ? `${thickness}px` : thickness;\n const strokeColorVal = theme.surface.border;\n const labelTextColorVal = theme.text.secondary;\n const chipSubtleBgVal = theme.surface.subtleBg;\n const chipOutlinedBgVal = theme.surface.panelBg;\n const outerMVal = toLen(margin, \"10px\");\n const padXVal =\n direction === \"horizontal\"\n ? variant === \"middle\"\n ? toLen(middleMargin)\n : variant === \"inset\"\n ? toLen(insetMargin, \"0px\")\n : \"0\"\n : \"0\";\n const verticalStrokeMarginVal =\n direction === \"vertical\"\n ? variant === \"middle\"\n ? toLen(middleMargin)\n : variant === \"inset\"\n ? toLen(insetMargin, \"0px\")\n : \"0\"\n : \"0\";\n return {\n t: tVal,\n strokeColor: strokeColorVal,\n labelTextColor: labelTextColorVal,\n chipSubtleBg: chipSubtleBgVal,\n chipOutlinedBg: chipOutlinedBgVal,\n outerM: outerMVal,\n padX: padXVal,\n verticalStrokeMargin: verticalStrokeMarginVal,\n };\n }, [thickness, theme, direction, variant, middleMargin, insetMargin, margin]);\n\n const wrapCss = useMemo(\n () =>\n css([\n { display: \"flex\", alignItems: \"center\" },\n direction === \"vertical\"\n ? {\n flexDirection: \"column\",\n alignSelf: \"stretch\",\n width: label ? \"max-content\" : t,\n minWidth: label ? \"max-content\" : t,\n marginLeft: outerM,\n marginRight: outerM,\n }\n : {\n flexDirection: \"row\",\n width: width ? toLen(width) : \"100%\",\n minWidth: 0,\n paddingLeft: padX,\n paddingRight: variant === \"middle\" ? padX : \"0\",\n marginTop: outerM,\n marginBottom: outerM,\n },\n ...(Array.isArray(userCss) ? userCss : userCss ? [userCss] : [])\n ]),\n [direction, label, t, outerM, width, padX, variant, userCss]\n );\n\n const strokeBaseCss = useMemo(\n () =>\n css([\n {\n background: strokeColor,\n borderRadius: rounded ? theme.radius.full : theme.radius.xs,\n },\n direction === \"vertical\"\n ? {\n width: t,\n minHeight: 18,\n flex: 1,\n marginTop: verticalStrokeMargin,\n marginBottom: verticalStrokeMargin,\n }\n : { height: t, flex: 1 }\n ]),\n [strokeColor, rounded, theme.radius.full, theme.radius.xs, direction, t, verticalStrokeMargin]\n );\n\n const labelBaseCss = useMemo(\n () =>\n css([\n {\n margin: chip ? (direction === \"vertical\" ? \"4px 0\" : 0) : direction === \"vertical\" ? \"2px 0\" : 0,\n padding: chip ? \"3px 7px\" : 0,\n borderRadius: chip\n ? rounded\n ? theme.radius.full\n : `calc(${theme.radius.sm} * 0.75)`\n : `calc(${theme.radius.sm} * 0.75)`,\n color: labelTextColor,\n fontWeight: 500,\n fontSize: 13,\n textAlign: \"center\",\n alignSelf: \"center\",\n whiteSpace: direction === \"vertical\" ? \"normal\" : \"pre\",\n wordBreak: direction === \"vertical\" ? \"break-all\" : undefined,\n ...(chip\n ? chipVariant === \"subtle\"\n ? { background: chipSubtleBg, border: \"none\" }\n : { background: chipOutlinedBg, border: `${t} solid ${strokeColor}` }\n : {}),\n },\n ...(Array.isArray(labelCss) ? labelCss : labelCss ? [labelCss] : [])\n ]),\n [\n chip,\n direction,\n rounded,\n theme.radius.full,\n theme.radius.sm,\n labelTextColor,\n chipVariant,\n chipSubtleBg,\n chipOutlinedBg,\n t,\n strokeColor,\n labelCss,\n ]\n );\n\n const strokeEl = useMemo<React.ReactElement>(\n () => <div className=\"plainframe-ui-divider-stroke\" css={[strokeBaseCss, strokeCss]} />,\n [strokeBaseCss, strokeCss]\n );\n\n if (direction === \"vertical\") {\n return (\n <div\n ref={ref}\n data-direction=\"vertical\"\n data-variant={variant}\n data-chip={chip ? \"true\" : undefined}\n className={[\"plainframe-ui-divider-wrapper\", \"is-vertical\", className || \"\"].join(\" \").trim()}\n css={wrapCss}\n {...rest}\n >\n {label && labelPosition !== \"top\" && strokeEl}\n {label && (\n <span className=\"plainframe-ui-divider-label\" css={labelBaseCss}>\n {label}\n </span>\n )}\n {label && labelPosition !== \"bottom\" && strokeEl}\n {!label && strokeEl}\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n data-direction=\"horizontal\"\n data-variant={variant}\n data-chip={chip ? \"true\" : undefined}\n className={[\"plainframe-ui-divider-wrapper\", className || \"\"].join(\" \").trim()}\n css={wrapCss}\n {...rest}\n >\n {label && labelPosition !== \"left\" && strokeEl}\n {label && (\n <span className=\"plainframe-ui-divider-label\" css={labelBaseCss}>\n {label}\n </span>\n )}\n {label && labelPosition !== \"right\" && strokeEl}\n {!label && strokeEl}\n </div>\n );\n});\n","/** @jsxImportSource @emotion/react */\nimport React, {\n useEffect,\n useMemo,\n useRef,\n useState,\n useCallback,\n forwardRef,\n} from \"react\";\nimport { css, type Interpolation } from \"@emotion/react\";\nimport { motion, AnimatePresence, type PanInfo } from \"framer-motion\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport type { Theme } from \"@emotion/react\";\n\ntype DrawerSide = \"left\" | \"right\" | \"top\" | \"bottom\";\ntype DrawerVariant = \"inset\" | \"full\";\n\ntype DomDragKeys =\n | \"onDrag\"\n | \"onDragStart\"\n | \"onDragEnd\"\n | \"onDragOver\"\n | \"onDragEnter\"\n | \"onDragLeave\"\n | \"onDrop\";\n\ntype DomAnimKeys = \"onAnimationStart\" | \"onAnimationEnd\";\n\nexport type DrawerProps = Omit<\n React.HTMLAttributes<HTMLDivElement>,\n DomDragKeys | DomAnimKeys | \"style\"\n> & {\n on?: boolean;\n defaultOn?: boolean;\n onOpenChange?: (open: boolean) => void;\n onClose?: () => void;\n children: React.ReactNode;\n width?: number | string;\n height?: number | string;\n position?: DrawerSide;\n variant?: DrawerVariant;\n margin?: number | string;\n radius?: number | string;\n backdropBlur?: boolean;\n backdropBlurDepth?: number | string;\n closeOnClickAway?: boolean;\n lockScroll?: boolean;\n transitionMs?: number;\n snapClosePct?: number;\n velocityClosePxS?: number;\n dragElasticOut?: number;\n css?: Interpolation<Theme>;\n className?: string;\n};\n\nlet __locks = 0;\nlet __prevOverflow = \"\";\nlet __prevPadRight = \"\";\n\nconst getScrollbarW = (): number =>\n typeof window === \"undefined\"\n ? 0\n : window.innerWidth - document.documentElement.clientWidth;\n\nfunction lockBody(): void {\n if (typeof document === \"undefined\") return;\n if (__locks === 0) {\n const b = document.body;\n __prevOverflow = b.style.overflow || \"\";\n __prevPadRight = b.style.paddingRight || \"\";\n const sw = getScrollbarW();\n b.style.overflow = \"hidden\";\n if (sw > 0) b.style.paddingRight = `${sw}px`;\n }\n __locks += 1;\n}\n\nfunction unlockBody(): void {\n if (typeof document === \"undefined\") return;\n if (__locks > 0) __locks -= 1;\n if (__locks === 0) {\n const b = document.body;\n b.style.overflow = __prevOverflow;\n b.style.paddingRight = __prevPadRight;\n }\n}\n\nconst toNum = (v: number | string | undefined, fb = 0): number =>\n v == null ? fb : typeof v === \"number\" ? v : parseFloat(String(v)) || fb;\n\nexport const Drawer: React.ForwardRefExoticComponent<\n DrawerProps & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, DrawerProps>(function Drawer(\n {\n on,\n defaultOn,\n onOpenChange,\n onClose,\n children,\n width,\n height,\n position = \"left\",\n variant = \"inset\",\n margin = 10,\n radius,\n backdropBlur = true,\n backdropBlurDepth,\n closeOnClickAway = true,\n lockScroll = true,\n transitionMs,\n snapClosePct = 0.33,\n velocityClosePxS = 950,\n dragElasticOut = 0.2,\n className,\n css: userCss,\n ...rest\n },\n ref\n): React.ReactElement | null {\n const theme = usePlainframeUITheme();\n\n const isControlled = on !== undefined;\n const [internalOpen, setInternalOpen] = useState<boolean>(!!defaultOn);\n const open = isControlled ? !!on : internalOpen;\n\n const setOpen = useCallback(\n (v: boolean) => {\n if (!isControlled) setInternalOpen(v);\n if (!v) onClose?.();\n onOpenChange?.(v);\n },\n [isControlled, onClose, onOpenChange]\n );\n\n useEffect(() => {\n if (!lockScroll || !open) return;\n lockBody();\n return () => unlockBody();\n }, [open, lockScroll]);\n\n const marginPx = useMemo(() => toNum(margin, 0), [margin]);\n\n const axis: \"x\" | \"y\" = useMemo(\n () => (position === \"left\" || position === \"right\" ? \"x\" : \"y\"),\n [position]\n );\n const dir = useMemo(\n () => (position === \"left\" || position === \"top\" ? -1 : 1) as 1 | -1,\n [position]\n );\n\n const computedWidth: number | string = useMemo(\n () =>\n width ??\n (position === \"left\" || position === \"right\"\n ? 320\n : variant === \"inset\"\n ? `calc(100% - ${marginPx * 2}px)`\n : \"100%\"),\n [width, position, variant, marginPx]\n );\n\n const computedHeight: number | string = useMemo(\n () =>\n height ??\n (position === \"top\" || position === \"bottom\"\n ? 420\n : variant === \"inset\"\n ? `calc(100% - ${marginPx * 2}px)`\n : \"100%\"),\n [height, position, variant, marginPx]\n );\n\n const edgeRadius = useMemo(() => {\n const r = String(theme.radius.lg);\n switch (position) {\n case \"left\":\n return `0 ${r} ${r} 0`;\n case \"right\":\n return `${r} 0 0 ${r}`;\n case \"top\":\n return `0 0 ${r} ${r}`;\n default:\n return `${r} ${r} 0 0`;\n }\n }, [position, theme.radius.lg]);\n\n const computedRadius = useMemo(\n () => radius ?? (variant === \"inset\" ? theme.radius.lg : edgeRadius),\n [radius, variant, theme.radius.lg, edgeRadius]\n );\n\n const posCss = useMemo<{\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n }>(() => {\n if (variant === \"inset\") {\n return {\n top: position === \"bottom\" ? undefined : marginPx,\n bottom: position === \"top\" ? undefined : marginPx,\n left: position === \"right\" ? undefined : marginPx,\n right: position === \"left\" ? undefined : marginPx,\n };\n }\n return {\n top: position === \"bottom\" ? undefined : 0,\n bottom: position === \"top\" ? undefined : 0,\n left: position === \"right\" ? undefined : 0,\n right: position === \"left\" ? undefined : 0,\n };\n }, [variant, position, marginPx]);\n\n const panelRef = useRef<HTMLDivElement | null>(null);\n\n const sizePx = useCallback((): number => {\n const el = panelRef.current;\n if (!el) return 1;\n const r = el.getBoundingClientRect();\n return axis === \"x\" ? r.width : r.height;\n }, [axis]);\n\n const springTransition = useMemo(\n () => ({ type: \"spring\", stiffness: 520, damping: 40, mass: 0.7 } as const),\n []\n );\n\n const timedTransition = useMemo(\n () =>\n ({\n duration: (transitionMs ?? 280) / 1000,\n ease: [0.22, 1, 0.36, 1] as [number, number, number, number],\n }) as const,\n [transitionMs]\n );\n\n const closedOffset = useMemo(() => dir * 1.1, [dir]);\n const initialTranslate = useMemo(\n () =>\n axis === \"x\"\n ? ({ x: `${closedOffset * 100}%`, y: 0 } as const)\n : ({ y: `${closedOffset * 100}%`, x: 0 } as const),\n [axis, closedOffset]\n );\n\n const panelCss: Interpolation<Theme> = useMemo(\n () =>\n css({\n position: \"fixed\",\n zIndex: 1100,\n ...posCss,\n width: computedWidth as any,\n height: computedHeight as any,\n backgroundColor: (theme.surface as any).panelBg,\n borderRadius: computedRadius as any,\n overflowY: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n overscrollBehavior: \"contain\",\n willChange: \"transform, box-shadow, opacity\",\n backfaceVisibility: \"hidden\",\n pointerEvents: open ? \"auto\" : \"none\",\n touchAction: axis === \"x\" ? \"pan-y\" : \"pan-x\",\n \"@media (prefers-reduced-motion: reduce)\": { transition: \"none\" },\n }),\n [posCss, computedWidth, computedHeight, theme.surface, computedRadius, open, axis]\n );\n\n const overlayCss: Interpolation<Theme> = useMemo(\n () =>\n css({\n position: \"fixed\",\n inset: 0,\n zIndex: 1099,\n background: (theme.surface as any).overlayBg,\n transition: \"all .3s ease\",\n ...(backdropBlur\n ? { backdropFilter: `blur(${backdropBlurDepth ?? \"2px\"})` }\n : null),\n }),\n [backdropBlur, backdropBlurDepth, theme.surface]\n );\n\n const onOverlayClick = useCallback<React.MouseEventHandler<HTMLDivElement>>(\n () => {\n if (closeOnClickAway) setOpen(false);\n },\n [closeOnClickAway, setOpen]\n );\n\n const dragElastic = useMemo((): Record<string, number> => {\n return axis === \"x\"\n ? {\n left: dir === -1 ? dragElasticOut : 0,\n right: dir === 1 ? dragElasticOut : 0,\n }\n : {\n top: dir === -1 ? dragElasticOut : 0,\n bottom: dir === 1 ? dragElasticOut : 0,\n };\n }, [axis, dir, dragElasticOut]);\n\n const dragConstraints = useMemo(\n (): Record<string, number> =>\n axis === \"x\" ? { left: 0, right: 0 } : { top: 0, bottom: 0 },\n [axis]\n );\n\n const snapPct = useMemo(() => Math.max(0, Math.min(1, snapClosePct)), [snapClosePct]);\n\n const onDragEnd = useCallback(\n (_: unknown, info: PanInfo) => {\n const delta = axis === \"x\" ? info.offset.x : info.offset.y;\n const velocity = axis === \"x\" ? info.velocity.x : info.velocity.y;\n const movedOutward = dir * delta > 0;\n const distOk = Math.abs(delta) >= sizePx() * snapPct;\n const velOk = dir * velocity > velocityClosePxS;\n if (movedOutward && (distOk || velOk)) setOpen(false);\n },\n [axis, dir, sizePx, snapPct, velocityClosePxS, setOpen]\n );\n\n useEffect(() => {\n if (!open) return;\n const onKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setOpen(false);\n };\n window.addEventListener(\"keydown\", onKey, { passive: true });\n return () => window.removeEventListener(\"keydown\", onKey);\n }, [open, setOpen]);\n const { ...safeRest } = rest;\n\n return (\n <AnimatePresence>\n {open ? (\n <>\n <motion.div\n key=\"overlay\"\n role=\"presentation\"\n aria-hidden\n css={overlayCss}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={transitionMs ? timedTransition : { duration: 0.18, ease: \"linear\" }}\n onClick={onOverlayClick}\n />\n <motion.div\n key=\"panel\"\n ref={(node: HTMLDivElement | null) => {\n panelRef.current = node;\n if (typeof ref === \"function\") ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }}\n role=\"dialog\"\n aria-modal=\"true\"\n data-position={position}\n data-variant={variant}\n className={[\"plainframe-ui-drawer\", className || \"\"].join(\" \").trim()}\n css={[panelCss, userCss]}\n drag={axis}\n dragConstraints={dragConstraints}\n dragElastic={dragElastic as any}\n dragMomentum={false}\n dragDirectionLock\n onDragEnd={onDragEnd}\n initial={{ ...initialTranslate, opacity: 0.98 }}\n animate={{ x: 0, y: 0, opacity: 1 }}\n exit={{ ...initialTranslate, opacity: 0.98 }}\n transition={transitionMs ? timedTransition : springTransition}\n {...safeRest}\n >\n {children}\n </motion.div>\n </>\n ) : null}\n </AnimatePresence>\n );\n});\n\nDrawer.displayName = \"Drawer\";\n","/** @jsxImportSource @emotion/react */\nimport React, {\n isValidElement,\n cloneElement,\n type ReactNode,\n type CSSProperties,\n} from \"react\";\nimport { css } from \"@emotion/react\";\n\ntype FadeProps = {\n children: ReactNode;\n duration?: number;\n delay?: number;\n on: boolean;\n onAnimationEnd?: () => void;\n asChild?: boolean;\n className?: string;\n blur?: boolean;\n};\n\nexport const Fade: React.FC<FadeProps> = ({\n children,\n duration = 300,\n delay = 0,\n on = false,\n onAnimationEnd,\n asChild = true,\n className,\n blur = false,\n}) => {\n const baseStyles = {\n opacity: on ? 1 : 0,\n filter: blur ? (on ? \"none\" : \"blur(10px)\") : \"none\",\n transition: `opacity ${duration}ms ease ${delay}ms, filter ${duration}ms ease ${delay}ms`,\n pointerEvents: on ? \"auto\" : \"none\",\n willChange: \"opacity, filter\",\n backfaceVisibility: \"hidden\",\n } as const;\n const handleEnd =\n (prev?: (e: React.TransitionEvent<any>) => void) =>\n (e: React.TransitionEvent<any>) => {\n if (\n e.target === e.currentTarget &&\n (e.propertyName === \"opacity\" || e.propertyName === \"filter\")\n ) {\n onAnimationEnd?.();\n }\n prev?.(e);\n };\n\n if (asChild && isValidElement(children)) {\n const child = children as React.ReactElement<any>;\n const prevCss = child.props.css;\n const mergedCss = Array.isArray(prevCss)\n ? [...prevCss, baseStyles]\n : prevCss\n ? [prevCss, baseStyles]\n : [baseStyles];\n\n const mergedClassName = [\n \"plainframe-ui-transition-fade\",\n child.props.className || \"\",\n className || \"\",\n ]\n .join(\" \")\n .trim();\n\n const prevOnTransitionEnd = child.props.onTransitionEnd as\n | ((e: React.TransitionEvent<any>) => void)\n | undefined;\n\n return cloneElement(child, {\n ...child.props,\n css: mergedCss,\n className: mergedClassName,\n onTransitionEnd: handleEnd(prevOnTransitionEnd),\n });\n }\n\n const styles = css(baseStyles as import('@emotion/react').CSSObject);\n\n return (\n <div\n className={[\"plainframe-ui-transition-fade\", className || \"\"]\n .join(\" \")\n .trim()}\n css={styles}\n onTransitionEnd={handleEnd()}\n >\n {children}\n </div>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, { forwardRef } from \"react\";\nimport { css as emCss, type Interpolation } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport type { Theme } from \"@emotion/react\";\n\ntype Dir = \"vertical\" | \"horizontal\" | \"column\" | \"row\";\ntype GapKey = \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport type FlexProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n direction?: Dir;\n gap?: GapKey | number | string;\n justify?: React.CSSProperties[\"justifyContent\"];\n align?: React.CSSProperties[\"alignItems\"];\n css?: Interpolation<Theme>;\n width?: string | number;\n height?: string | number;\n};\n\nconst toLen = (v?: string | number): string | undefined =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nexport const Flex: React.ForwardRefExoticComponent<\n FlexProps & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, FlexProps>(function Flex(\n {\n direction = \"row\",\n gap = \"sm\",\n justify,\n align = \"center\",\n className,\n css: userCss,\n children,\n width,\n height,\n ...rest\n },\n ref\n): React.ReactElement | null {\n const theme = usePlainframeUITheme();\n\n const flexDirection: React.CSSProperties[\"flexDirection\"] =\n direction === \"vertical\" || direction === \"column\" ? \"column\" : \"row\";\n\n const gapVal: string | number | undefined =\n gap === undefined\n ? undefined\n : typeof gap === \"number\"\n ? gap\n : (theme.spacing as Record<string, string | number>)[gap as GapKey] ?? gap;\n\n const base: Interpolation<Theme> = emCss({\n display: \"flex\",\n flexDirection,\n gap: gapVal as any,\n justifyContent: justify,\n alignItems: align,\n maxWidth: toLen(width),\n width: width ? \"100%\" : undefined,\n maxHeight: toLen(height),\n height: height ? \"100%\" : undefined,\n boxSizing: \"border-box\",\n });\n\n return (\n <div\n ref={ref}\n className={[\"plainframe-ui-flex\", className || \"\"].join(\" \").trim()}\n css={[base, userCss]}\n {...rest}\n >\n {children}\n </div>\n );\n});\n\nFlex.displayName = \"Flex\";\n","/** @jsxImportSource @emotion/react */\nimport React, {\n isValidElement,\n cloneElement,\n type ReactNode,\n type CSSProperties,\n} from \"react\";\nimport { css } from \"@emotion/react\";\n\ntype GrowProps = {\n children: ReactNode;\n duration?: number;\n delay?: number;\n on: boolean;\n initialScale?: number;\n finalScale?: number;\n onAnimationEnd?: () => void;\n asChild?: boolean;\n className?: string;\n};\n\nexport const Grow: React.FC<GrowProps> = ({\n children,\n duration = 300,\n delay = 0,\n on = false,\n initialScale = 0,\n finalScale = 1,\n onAnimationEnd,\n asChild = true,\n className,\n}) => {\n const baseStyles = {\n transform: on ? `scale(${finalScale})` : `scale(${initialScale})`,\n transition: `transform ${duration}ms ease ${delay}ms`,\n pointerEvents: on ? (\"auto\" as React.CSSProperties[\"pointerEvents\"]) : (\"none\" as React.CSSProperties[\"pointerEvents\"]),\n willChange: \"transform\" as const,\n backfaceVisibility: \"hidden\" as const,\n };\n\n const handleEnd =\n (prev?: (e: React.TransitionEvent<any>) => void) =>\n (e: React.TransitionEvent<any>) => {\n if (e.target === e.currentTarget && e.propertyName === \"transform\") {\n onAnimationEnd?.();\n }\n prev?.(e);\n };\n\n if (asChild && isValidElement(children)) {\n const child: any = children;\n const prevCss = child.props.css;\n const mergedCss = Array.isArray(prevCss)\n ? [...prevCss, baseStyles]\n : prevCss\n ? [prevCss, baseStyles]\n : [baseStyles];\n\n const prevOnTransitionEnd = child.props.onTransitionEnd as\n | ((e: React.TransitionEvent<any>) => void)\n | undefined;\n\n const mergedClassName = [\n \"plainframe-ui-transition-grow\",\n child.props.className || \"\",\n className || \"\",\n ]\n .join(\" \")\n .trim();\n\n return cloneElement(child, {\n ...child.props,\n css: mergedCss,\n className: mergedClassName,\n onTransitionEnd: handleEnd(prevOnTransitionEnd),\n });\n }\n\n const styles = css(baseStyles);\n\n return (\n <div\n className={[\"plainframe-ui-transition-grow\", className || \"\"]\n .join(\" \")\n .trim()}\n css={styles}\n onTransitionEnd={handleEnd()}\n >\n {children}\n </div>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport { css } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\n\nconst MAP = {\n h1: { size: \"2.25rem\", weight: 700, lh: 1.1, ls: \"-0.02em\" },\n h2: { size: \"1.875rem\", weight: 700, lh: 1.15, ls: \"-0.01em\" },\n h3: { size: \"1.5rem\", weight: 600, lh: 1.2, ls: \"-0.005em\" },\n h4: { size: \"1.25rem\", weight: 600, lh: 1.2, ls: \"0\" },\n body: { size: \"0.95rem\", weight: 500, lh: 1.2, ls: \"0\" },\n caption: { size: \"0.8rem\", weight: 500, lh: 1.2, ls: \"0.01em\" },\n} as const;\n\ntype Variant = keyof typeof MAP;\ntype Align = \"left\" | \"center\" | \"right\";\ntype Decoration = \"none\" | \"underline\" | \"overline\" | \"line-through\";\ntype DecorationStyle = \"solid\" | \"dashed\" | \"dotted\";\n\nexport type TypographyProps = {\n variant?: Variant;\n children: React.ReactNode;\n color?: string | \"primary\" | \"secondary\";\n size?: number | string;\n weight?: number | string;\n lineHeight?: number | string;\n letterSpacing?: number | string;\n align?: Align;\n textTransform?: \"none\" | \"capitalize\" | \"uppercase\" | \"lowercase\";\n whiteSpace?: \"normal\" | \"nowrap\" | \"pre\" | \"pre-wrap\";\n decoration?: Decoration;\n decorationStyle?: DecorationStyle;\n decorationThickness?: number | string;\n decorationColor?: string;\n italic?: boolean;\n className?: string;\n style?: React.CSSProperties;\n as?: keyof JSX.IntrinsicElements;\n};\n\nconst toLen = (v?: number | string) =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : String(v);\n\nconst defaultTagByVariant: Record<Variant, keyof JSX.IntrinsicElements> = {\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n body: \"span\",\n caption: \"span\",\n};\n\nexport const Typography: React.FC<TypographyProps> = ({\n variant = \"body\",\n children,\n color,\n size,\n weight,\n lineHeight,\n letterSpacing,\n align = \"left\",\n textTransform = \"none\",\n whiteSpace = \"normal\",\n decoration = \"none\",\n decorationStyle = \"solid\",\n decorationThickness = 1,\n decorationColor,\n italic,\n className,\n style,\n as,\n}) => {\n const theme = usePlainframeUITheme();\n const def = MAP[variant] ?? MAP.body;\n const Tag = as ?? defaultTagByVariant[variant] ?? \"span\";\n\n const fontSize =\n size ?? (theme?.fontSizes && (theme.fontSizes as any)[variant]) ?? def.size;\n const fontWeight = weight ?? def.weight;\n const lh = lineHeight ?? def.lh;\n const ls = letterSpacing ?? def.ls;\n\n const fg =\n color === \"secondary\"\n ? theme.text.secondary\n : color === \"primary\"\n ? theme.text.primary\n : color ?? \"inherit\";\n\n const decoColor = decorationColor ?? theme.surface.border;\n\n const baseCss = css({\n boxSizing: \"border-box\",\n display: align === \"left\" ? \"inline\" : \"block\",\n textAlign: align === \"left\" ? undefined : align,\n fontFamily: theme?.fonts?.sans || \"inherit\",\n fontSize,\n fontWeight: fontWeight as number | string,\n lineHeight: lh as number | string,\n letterSpacing: ls as number | string,\n color: fg,\n textTransform,\n whiteSpace,\n fontStyle: italic ? \"italic\" : \"normal\",\n margin: 0,\n padding: 0,\n });\n\n const decoCss =\n decoration === \"none\"\n ? css({\n textDecoration: \"none\",\n })\n : css({\n textDecorationLine: decoration,\n textDecorationStyle: decorationStyle,\n textDecorationColor: decoColor,\n textDecorationThickness: toLen(decorationThickness),\n textDecorationSkipInk: \"auto\",\n });\n\n return (\n <Tag\n className={[`pfui-typo-${variant}`, className || \"\"].join(\" \").trim()}\n css={[baseCss, decoCss]}\n style={style}\n data-variant={variant}\n >\n {children}\n </Tag>\n );\n};\nTypography.displayName = \"Typography\";\n","/** @jsxImportSource @emotion/react */\nimport React, { useState, forwardRef } from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { Typography } from \"./Typography\";\n\ntype HoverEffect = \"scale\" | \"rotate\" | \"scale-rotate\" | \"none\";\ntype RadiusToken = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type ImageProps = Omit<React.ImgHTMLAttributes<HTMLImageElement>, \"style\"> & {\n radius?: number | string | RadiusToken;\n shadow?: boolean;\n hoverEffect?: HoverEffect;\n label?: React.ReactNode;\n labelAlign?: \"left\" | \"center\" | \"right\";\n aspectRatio?: number | string;\n placeholder?: \"blur\" | \"color\";\n blurDataURL?: string;\n placeholderColor?: string;\n fallbackSrc?: string;\n css?: Interpolation<Theme>;\n className?: string;\n};\n\nconst toLen = (v: number | string | undefined) =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nconst resolveRadius = (\n radius: RadiusToken | string | number | undefined,\n theme: any\n) => {\n if (radius == null) return undefined;\n if (typeof radius === \"number\") return `${radius}px`;\n if (typeof radius === \"string\") {\n if ([\"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"full\"].includes(radius)) {\n const val =\n (theme.radius && (theme.radius as any)[radius]) ||\n (theme.radii && (theme.radii as any)[radius]);\n return toLen(val ?? radius);\n }\n return radius;\n }\n return undefined;\n};\n\nexport const Image: React.ForwardRefExoticComponent<\n ImageProps & React.RefAttributes<HTMLImageElement>\n> = forwardRef<HTMLImageElement, ImageProps>(function Image(\n {\n src,\n alt = \"\",\n width,\n height,\n radius = \"md\",\n shadow = false,\n hoverEffect = \"none\",\n label,\n labelAlign = \"center\",\n aspectRatio,\n loading = \"lazy\",\n decoding = \"async\",\n fetchPriority,\n srcSet,\n sizes,\n placeholder,\n blurDataURL,\n placeholderColor = \"#f1f1f1\",\n fallbackSrc,\n className,\n css: userCss,\n onClick,\n onLoad,\n onError,\n ...imgRest\n },\n ref\n) {\n const [hovering, setHovering] = useState(false);\n const [errored, setErrored] = useState(false);\n const [loaded, setLoaded] = useState(false);\n const theme = usePlainframeUITheme();\n\n const br = resolveRadius(radius, theme) ?? \"0px\";\n const WrapperEl: any = label ? \"figure\" : \"div\";\n\n const wrapperCss = css({\n display: \"flex\",\n flexDirection: \"column\",\n gap: label ? theme.spacing.xs : 0,\n width: \"fit-content\",\n borderRadius: `var(--pfui-image-radius, ${br})`,\n });\n\n const frameCss = css({\n position: \"relative\",\n borderRadius: `var(--pfui-image-radius, ${br})`,\n maxWidth: width ? toLen(width)! : \"100%\",\n maxHeight: height ? toLen(height)! : undefined,\n width: width ? \"100%\" : undefined,\n height: height ? \"100%\" : undefined,\n aspectRatio: aspectRatio as any,\n boxShadow: shadow ? \"0 12px 32px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.04)\" : \"none\",\n overflow: \"hidden\",\n padding: 0,\n lineHeight: 0,\n transition: \"transform 0.3s ease\",\n willChange: \"transform\",\n transform:\n hovering && (hoverEffect === \"rotate\" || hoverEffect === \"scale-rotate\")\n ? \"rotate(3deg)\"\n : \"none\",\n cursor: onClick ? \"pointer\" : undefined,\n });\n\n const placeholderCss = css({\n position: \"absolute\",\n inset: 0,\n background:\n placeholder === \"color\" ? (placeholderColor as string) : undefined,\n backgroundImage:\n placeholder === \"blur\" && blurDataURL ? `url(${blurDataURL})` : undefined,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n filter: placeholder === \"blur\" ? \"blur(8px)\" : undefined,\n transition: \"opacity 0.3s ease\",\n opacity: loaded ? 0 : 1,\n pointerEvents: \"none\",\n });\n\n const imgCss = css({\n width: \"100%\",\n height: \"100%\",\n display: \"block\",\n objectFit: \"cover\",\n transform:\n hovering && (hoverEffect === \"scale\" || hoverEffect === \"scale-rotate\")\n ? \"scale(1.08)\"\n : \"none\",\n transition: \"transform 0.3s ease\",\n willChange: \"transform\",\n });\n\n return (\n <WrapperEl\n className={[\"plainframe-ui-image\", className || \"\"].join(\" \").trim()}\n css={[wrapperCss, userCss]}\n tabIndex={-1}\n >\n <div\n className=\"plainframe-ui-image-frame\"\n css={frameCss}\n onMouseEnter={() => setHovering(true)}\n onMouseLeave={() => setHovering(false)}\n onClick={onClick as any}\n >\n {!loaded && placeholder && (\n <div aria-hidden className=\"plainframe-ui-image-placeholder\" css={placeholderCss} />\n )}\n <img\n ref={ref}\n className=\"plainframe-ui-image-img\"\n css={imgCss}\n src={errored && fallbackSrc ? fallbackSrc : (src as string)}\n alt={alt}\n srcSet={srcSet}\n sizes={sizes}\n loading={loading}\n decoding={decoding}\n fetchPriority={fetchPriority}\n onLoad={(e) => {\n setLoaded(true);\n onLoad?.(e);\n }}\n onError={(e) => {\n setErrored(true);\n onError?.(e);\n }}\n {...imgRest}\n />\n </div>\n\n {label && (\n <Typography as=\"figcaption\" variant=\"caption\" align={labelAlign}>\n {label}\n </Typography>\n )}\n </WrapperEl>\n );\n});\n\nImage.displayName = \"Image\";\n","/** @jsxImportSource @emotion/react */\nimport React, { memo, Children, isValidElement } from \"react\";\nimport { css, Interpolation, type CSSObject } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { Typography } from \"./Typography\";\nimport { Theme } from \"@emotion/react\";\n\ntype Variant = \"fan\" | \"slide\" | \"domino\" | \"ladder\";\ntype HoverEffect = \"reveal\" | \"expand\" | \"none\";\ntype Size = \"sm\" | \"md\" | \"lg\" | \"xl\";\ntype RadiusToken = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type ImageStackProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n children: React.ReactNode;\n variant?: Variant;\n width?: number | string;\n aspectRatio?: number | string;\n size?: Size;\n hoverEffect?: HoverEffect;\n hovering?: boolean;\n maxItems?: number;\n shadow?: boolean;\n cursor?: React.CSSProperties[\"cursor\"];\n outline?: boolean;\n outlineColor?: string;\n outlineWidth?: number;\n outlineOffset?: number;\n radius?: number | string | RadiusToken;\n label?: React.ReactNode;\n labelAlign?: \"left\" | \"center\" | \"right\";\n css?: Interpolation<Theme>;\n className?: string;\n};\n\nconst px = (v: number | string | undefined) =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nconst parseAR = (ar: unknown): number | undefined => {\n if (typeof ar === \"number\" && isFinite(ar) && ar > 0) return ar;\n if (typeof ar === \"string\") {\n const m = ar.trim().match(/^(\\d+(?:\\.\\d+)?)\\s*\\/\\s*(\\d+(?:\\.\\d+)?)$/);\n if (m) {\n const w = parseFloat(m[1]);\n const h = parseFloat(m[2]);\n if (w > 0 && h > 0) return w / h;\n }\n const n = parseFloat(ar);\n if (isFinite(n) && n > 0) return n;\n }\n return undefined;\n};\n\nconst rad = (d: number) => (d * Math.PI) / 180;\nconst rotatedBBox = (w: number, h: number, deg: number) => {\n const t = Math.abs(rad(deg));\n const c = Math.cos(t);\n const s = Math.sin(t);\n return { w: Math.abs(w * c) + Math.abs(h * s), h: Math.abs(h * c) + Math.abs(w * s) };\n};\n\nfunction variantTx(variant: Variant, n: number) {\n if (n <= 1) {\n const z = { ang: [0], dx: [0], dy: [0] };\n return { base: z, exp: z };\n }\n if (variant === \"fan\") {\n const base = n === 2 ? { ang: [-14, 10], dx: [-40, 24], dy: [0, 0] } : { ang: [-14, 0, 14], dx: [-55, 0, 55], dy: [-7.5, 0, -7.5] };\n const exp = n === 2 ? { ang: [-7, 5], dx: [-20, 12], dy: [0, 0] } : { ang: [-7, 0, 7], dx: [-32.5, 0, 32.5], dy: [0, 0, 0] };\n return { base, exp };\n }\n if (variant === \"slide\") {\n const base = n === 2 ? { ang: [-20, 3], dx: [-10, 5], dy: [-2, 0] } : { ang: [-20, -5, 10], dx: [-35, -10, 12], dy: [4, 0, 4] };\n const exp = n === 2 ? { ang: [-10, 1.5], dx: [-10, 5], dy: [-2, 0] } : { ang: [-10, -2.5, 5], dx: [-30.5, -7.5, 6], dy: [4, 0, 4] };\n return { base, exp };\n }\n if (variant === \"domino\") {\n const base = n === 2 ? { ang: [0, 0], dx: [0, 0], dy: [-11, 5] } : { ang: [0, 0, 0], dx: [0, 0, 0], dy: [-18, -5, 6] };\n const exp = n === 2 ? { ang: [0, 0], dx: [0, 0], dy: [-5, 5] } : { ang: [0, 0, 0], dx: [0, 0, 0], dy: [-14, -2.5, 7] };\n return { base, exp };\n }\n const base = n === 2 ? { ang: [-4, 8], dx: [-22, 18], dy: [-30, 40] } : { ang: [-10, 10, 0.5], dx: [-30, 30, -15], dy: [-65, 2, 65] };\n const exp = n === 2 ? { ang: [-3, 6], dx: [-11, 9], dy: [-22.5, 30] } : { ang: [-7.5, 7.5, 0.35], dx: [-15, 20, -10.5], dy: [-55.5, 2, 55.5] };\n return { base, exp };\n}\n\nconst baseScale = (variant: Variant, n: number, i: number) =>\n variant === \"fan\" ? (n === 2 ? [0.9, 1.08][i] ?? 1 : [0.8, 1.0, 0.8][i] ?? 1)\n : variant === \"slide\" ? (n === 2 ? [0.8, 1.0][i] ?? 1 : [0.7, 0.85, 1.0][i] ?? 1)\n : variant === \"domino\" ? (n === 2 ? [0.9, 1.0][i] ?? 1 : [0.85, 0.95, 1.0][i] ?? 1)\n : 1;\n\nconst bumpReveal = [1.02, 1.03, 1.02];\nconst bumpExpand = [1.06, 1.08, 1.06];\n\nconst SIZE_W: Record<Size, number> = { sm: 150, md: 200, lg: 260, xl: 340 };\n\nconst toLen = (v: number | string | undefined) =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nfunction resolveRadius(radius: RadiusToken | string | number | undefined, theme: any) {\n if (radius == null) return undefined;\n if (typeof radius === \"number\") return `${radius}px`;\n if (typeof radius === \"string\") {\n if ([\"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"full\"].includes(radius)) {\n const val =\n (theme.radius && (theme.radius as any)[radius]) ||\n (theme.radii && (theme.radii as any)[radius]);\n return toLen(val ?? radius);\n }\n return radius;\n }\n return undefined;\n}\n\nexport const ImageStack: React.FC<ImageStackProps> = memo(function ImageStack({\n children,\n variant = \"fan\",\n width,\n aspectRatio = \"4/5\",\n size = \"md\",\n hoverEffect = \"none\",\n hovering,\n maxItems = 3,\n shadow = false,\n cursor,\n outline,\n outlineColor,\n outlineWidth = 3,\n outlineOffset = 0,\n radius = \"md\",\n label,\n labelAlign = \"center\",\n css: userCss,\n className,\n ...rest\n}: ImageStackProps) {\n const theme = usePlainframeUITheme();\n const AR = parseAR(aspectRatio) ?? 4 / 5;\n\n const wStr = typeof width === \"string\" ? width : undefined;\n const Wn =\n typeof width === \"number\"\n ? width\n : wStr && /px$/.test(wStr)\n ? parseFloat(wStr)\n : SIZE_W[size];\n const Hn = Math.max(1, Wn / AR);\n\n const all = Children.toArray(children).filter(isValidElement) as React.ReactElement[];\n const items = all.slice(0, maxItems);\n const n = items.length;\n\n const t = variantTx(variant, n);\n const baseScales = items.map((_, i) => baseScale(variant, n, i));\n const frameH = (i: number) => Hn * 0.6 * baseScales[i];\n const frameW = (i: number) => frameH(i) * AR;\n\n let halfW = 0, halfH = 0;\n for (let i = 0; i < n; i++) {\n const bw = frameW(i);\n const bh = frameH(i);\n const worstAng = Math.max(Math.abs(t.base.ang[i] ?? 0), Math.abs(t.exp.ang[i] ?? 0));\n const worstDx = Math.max(Math.abs(t.base.dx[i] ?? 0), Math.abs(t.exp.dx[i] ?? 0));\n const worstDy = Math.max(Math.abs(t.base.dy[i] ?? 0), Math.abs(t.exp.dy[i] ?? 0));\n const bump = hoverEffect === \"expand\" ? bumpExpand[i] ?? 1.08 : hoverEffect === \"reveal\" ? bumpReveal[i] ?? 1.03 : 1;\n const rot = rotatedBBox(bw, bh, worstAng);\n const w0 = rot.w * bump;\n const h0 = rot.h * bump;\n const sx = (worstDx / 100) * bw * bump;\n const sy = (worstDy / 100) * bh * bump;\n halfW = Math.max(halfW, w0 / 2 + sx);\n halfH = Math.max(halfH, h0 / 2 + sy);\n }\n\n const stageW0 = Math.max(1, 2 * halfW);\n const stageH0 = Math.max(1, 2 * halfH);\n const stageScale = Math.min(1, Wn / stageW0, Hn / stageH0);\n\n const hoverMode = hovering === undefined ? \"pointer\" : \"controlled\";\n const hoverAttr = hovering ? \"true\" : undefined;\n\n const rootCss = css({\n display: \"flex\",\n flexDirection: \"column\",\n cursor: cursor || \"auto\",\n lineHeight: 0,\n position: \"relative\",\n isolation: \"isolate\",\n gap: label ? theme.spacing.xs : 0,\n });\n\n const stackCss = css({\n position: \"relative\",\n width: px(typeof width === \"number\" ? width : Wn) ?? (typeof width === \"string\" ? width : undefined),\n height: px(Hn),\n });\n\n const stageCss = css({\n position: \"absolute\",\n inset: 0,\n left: \"50%\",\n top: \"50%\",\n width: `${stageW0}px`,\n height: `${stageH0}px`,\n transform: `translate(-50%, -50%) scale(${stageScale})`,\n transformOrigin: \"center center\",\n });\n\n const frameRadius = resolveRadius(radius, theme) ?? \"0px\";\n\n const cardCss = (i: number) => {\n const baseTx =\n variant === \"fan\"\n ? `rotate(${t.base.ang[i]}deg) translate(${t.base.dx[i]}%, ${t.base.dy[i]}%)`\n : variant === \"slide\"\n ? `translate(${t.base.dx[i]}%, ${t.base.dy[i]}%) rotate(${t.base.ang[i]}deg)`\n : variant === \"domino\"\n ? `translate(0%, ${t.base.dy[i]}%)`\n : `translate(${t.base.dx[i]}%, ${t.base.dy[i]}%) rotate(${t.base.ang[i]}deg)`;\n const expTx =\n variant === \"fan\"\n ? `rotate(${t.exp.ang[i]}deg) translate(${t.exp.dx[i]}%, ${t.exp.dy[i]}%)`\n : variant === \"slide\"\n ? `translate(${t.exp.dx[i]}%, ${t.exp.dy[i]}%) rotate(${t.exp.ang[i]}deg)`\n : variant === \"domino\"\n ? `translate(0%, ${t.exp.dy[i]}%)`\n : `translate(${t.exp.dx[i]}%, ${t.exp.dy[i]}%) rotate(${t.exp.ang[i]}deg)`;\n\n const baseTransform = hoverEffect === \"reveal\" ? `translate(0,0) rotate(0) scale(1)` : `${baseTx} scale(1)`;\n const hoverTransform =\n hoverEffect === \"expand\"\n ? `${expTx} scale(${bumpExpand[i] ?? 1.06})`\n : hoverEffect === \"reveal\"\n ? `${baseTx} scale(${bumpReveal[i] ?? 1.03})`\n : `${baseTx} scale(1)`;\n\n return css({\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: `translate(-50%, -50%) ${baseTransform}`,\n transition: \"transform .22s ease\",\n willChange: \"transform\",\n backfaceVisibility: \"hidden\",\n zIndex: variant === \"fan\" ? (i === 1 ? 10 : i + 1) : i + 1,\n lineHeight: 0,\n boxShadow: shadow ? \"rgba(0,0,0,.12) 0 8px 20px\" : \"none\",\n outline: outline ? `${outlineWidth}px solid ${outlineColor ?? theme.surface.appBg}` : undefined,\n outlineOffset: outline ? outlineOffset : undefined,\n pointerEvents: \"auto\",\n \".plainframe-ui-image-stack-wrapper[data-hover-mode='pointer']:hover &\": {\n transform: `translate(-50%, -50%) ${hoverTransform}`,\n },\n \".plainframe-ui-image-stack-wrapper[data-hover-mode='controlled'][data-hovered='true'] &\": {\n transform: `translate(-50%, -50%) ${hoverTransform}`,\n },\n });\n };\n\n const frameCss = (i: number) =>\n css({\n width: `${frameW(i)}px`,\n aspectRatio: `${AR}`,\n position: \"relative\",\n overflow: \"hidden\",\n borderRadius: frameRadius,\n [\"--pfui-image-radius\" as any]: frameRadius,\n \"& > *\": {\n position: \"absolute\",\n inset: \"0\",\n width: \"100% !important\",\n height: \"100% !important\",\n maxWidth: \"none !important\",\n maxHeight: \"none !important\",\n display: \"block\",\n },\n \"& img, & picture img, & video, & canvas\": {\n width: \"100% !important\",\n height: \"100% !important\",\n objectFit: \"cover\",\n display: \"block\",\n },\n });\n\n const WrapperEl: any = label ? \"figure\" : \"div\";\n\n return (\n <WrapperEl\n className={[\"plainframe-ui-image-stack-wrapper\", className || \"\"].join(\" \").trim()}\n data-hover-mode={hoverMode}\n data-hovered={hoverAttr}\n css={[rootCss, userCss]}\n tabIndex={-1}\n {...rest}\n >\n <div className=\"plainframe-ui-image-stack\" css={stackCss}>\n <div className=\"plainframe-ui-image-stack-stage\" css={stageCss}>\n {items.map((child, i) => (\n <div key={i} className=\"plainframe-ui-image-stack-item\" css={cardCss(i)}>\n <div className=\"plainframe-ui-image-stack-frame\" css={frameCss(i)}>\n {child}\n </div>\n </div>\n ))}\n </div>\n </div>\n {label && (\n <Typography as=\"figcaption\" variant=\"caption\" align={labelAlign}>\n {label}\n </Typography>\n )}\n </WrapperEl>\n );\n});\n","/** @jsxImportSource @emotion/react */\nimport React, { forwardRef } from \"react\";\nimport { css, Interpolation, type CSSObject } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { useFocusRing } from \"../utils/focusRing\";\nimport { Theme } from \"@emotion/react\";\n\nconst toLen = (v?: number | string) => (typeof v === \"number\" ? `${v}px` : v);\n\nexport type KbdProps = Omit<React.HTMLAttributes<HTMLElement>, \"style\"> & {\n variant?: \"subtle\" | \"outlined\" | \"ghost\";\n size?: \"sm\" | \"md\" | \"lg\";\n radius?: number | string;\n mono?: boolean;\n uppercase?: boolean;\n css?: Interpolation<Theme>;\n className?: string;\n};\n\nconst sizeTokens: Record<NonNullable<KbdProps[\"size\"]>, { h: number; px: number; font: number }> = {\n sm: { h: 20, px: 6, font: 10 },\n md: { h: 24, px: 7, font: 12 },\n lg: { h: 28, px: 8, font: 14 },\n};\n\nfunction resolveRadius(radius: number | string | undefined, theme: any) {\n if (radius == null) {\n const fallback = theme.radius?.xs ?? theme.radius?.sm ?? 3;\n return toLen(fallback);\n }\n if (typeof radius === \"number\") return `${radius}px`;\n const token =\n (theme.radius && (theme.radius as any)[radius]) ||\n (theme.radii && (theme.radii as any)[radius]);\n if (token != null) return toLen(token);\n return radius;\n}\n\nexport const Kbd: React.ForwardRefExoticComponent<\n React.PropsWithoutRef<KbdProps> & React.RefAttributes<HTMLElement>\n> = forwardRef<HTMLElement, KbdProps>(function Kbd(\n {\n children,\n variant = \"outlined\",\n size = \"sm\",\n radius,\n mono = true,\n uppercase = false,\n css: userCss,\n className = \"plainframe-ui-kbd\",\n ...rest\n },\n ref\n) {\n const theme = usePlainframeUITheme();\n const focusRing = useFocusRing();\n const t = sizeTokens[size] ?? sizeTokens.sm;\n const r = resolveRadius(radius, theme);\n\n const gray = {\n br: theme.neutral[300],\n txt: theme.neutral[800],\n inset: theme.neutral[0],\n };\n\n const base = css({\n all: \"unset\",\n boxSizing: \"border-box\",\n display: \"inline-flex !important\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: variant === \"ghost\" ? undefined : `${t.h}px !important`,\n minHeight: variant === \"ghost\" ? undefined : `${t.h}px !important`,\n paddingInline: variant === \"ghost\" ? 0 : `${t.px}px !important`,\n paddingBlock: `0 !important`,\n fontFamily: mono\n ? 'var(--pf-font-mono, Consolas, ui-monospace, SFMono-Regular, Menlo, Monaco, \"Liberation Mono\", \"Courier New\", monospace)'\n : \"inherit\",\n fontSize: variant === \"ghost\" ? `${t.font * 1.2}px !important` : `${t.font}px !important`,\n fontWeight: 600,\n letterSpacing: 0.2,\n lineHeight: `0.2 !important`,\n textTransform: uppercase ? \"uppercase\" : \"none\",\n borderRadius: r as string,\n userSelect: \"none\",\n whiteSpace: \"nowrap\",\n verticalAlign: \"baseline\",\n position: \"relative\",\n transition:\n \"box-shadow .15s ease, background-color .15s ease, border-color .15s ease, color .15s ease\",\n outline: \"none\",\n });\n\n const subtle = css({\n \"&&\": {\n background: theme.neutral[200],\n border: \"none\",\n boxShadow: \"none\",\n color: gray.txt,\n },\n });\n\n const ghost = css({\n \"&&\": {\n background: \"transparent\",\n color: gray.txt,\n border: \"none\",\n boxShadow: \"none\",\n },\n });\n\n const outlined = css({\n \"&&\": {\n background: theme.surface.panelBg,\n color: gray.txt,\n border: `1px solid ${gray.br}`,\n boxShadow: `inset 0 1px 0 ${gray.inset}AA, 0 1px 0 rgba(0,0,0,0.03)`,\n },\n });\n\n const variantCss = variant === \"subtle\" ? subtle : variant === \"ghost\" ? ghost : outlined;\n\n return (\n <kbd ref={ref} className={className} css={[focusRing(), base, variantCss, userCss]} {...rest}>\n {children}\n </kbd>\n );\n});\n","/** @jsxImportSource @emotion/react */\nimport React, {\n isValidElement,\n cloneElement,\n type ReactNode,\n type CSSProperties,\n} from \"react\";\nimport { css } from \"@emotion/react\";\n\ntype Direction = \"left\" | \"right\" | \"up\" | \"down\";\n\ntype SlideProps = {\n children: ReactNode;\n direction?: Direction;\n duration?: number;\n delay?: number;\n on: boolean;\n onAnimationEnd?: () => void;\n asChild?: boolean;\n className?: string;\n distance?: number | string;\n};\n\nconst toLen = (v: number | string | undefined, fb: string) =>\n v == null ? fb : typeof v === \"number\" ? `${v}px` : v;\n\nexport const Slide: React.FC<SlideProps> = ({\n children,\n direction = \"up\",\n duration = 450,\n delay = 0,\n on = false,\n onAnimationEnd,\n asChild = true,\n className,\n distance,\n}) => {\n const defaultDist =\n direction === \"left\" || direction === \"right\" ? \"100vw\" : \"100vh\";\n const dist = toLen(distance, defaultDist);\n\n const offX = direction === \"left\" ? `-${dist}` : direction === \"right\" ? dist : \"0\";\n const offY = direction === \"up\" ? dist : direction === \"down\" ? `-${dist}` : \"0\";\n\n const baseStyles: CSSProperties = {\n transform: on ? \"translate3d(0,0,0)\" : `translate3d(${offX}, ${offY}, 0)`,\n transition: `transform ${duration}ms ease ${delay}ms`,\n pointerEvents: on ? \"auto\" : \"none\",\n willChange: \"transform\",\n backfaceVisibility: \"hidden\",\n };\n\n const handleEnd =\n (prev?: (e: React.TransitionEvent<any>) => void) =>\n (e: React.TransitionEvent<any>) => {\n if (e.target === e.currentTarget && e.propertyName === \"transform\") {\n onAnimationEnd?.();\n }\n prev?.(e);\n };\n\n if (asChild && isValidElement(children)) {\n const child: any = children;\n const prevCss = child.props.css;\n const mergedCss = Array.isArray(prevCss)\n ? [...prevCss, baseStyles]\n : prevCss\n ? [prevCss, baseStyles]\n : [baseStyles];\n\n const mergedClassName = [\n \"plainframe-ui-transition-slide\",\n child.props.className || \"\",\n className || \"\",\n ]\n .join(\" \")\n .trim();\n\n const prevOnTransitionEnd = child.props.onTransitionEnd as\n | ((e: React.TransitionEvent<any>) => void)\n | undefined;\n\n return cloneElement(child, {\n ...child.props,\n css: mergedCss,\n className: mergedClassName,\n onTransitionEnd: handleEnd(prevOnTransitionEnd),\n });\n }\n\n const styles = css(baseStyles as any);\n\n return (\n <div\n className={[\"plainframe-ui-transition-slide\", className || \"\"]\n .join(\" \")\n .trim()}\n css={styles}\n onTransitionEnd={handleEnd()}\n >\n {children}\n </div>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, {\n useState,\n useEffect,\n useMemo,\n useContext,\n forwardRef,\n useCallback,\n} from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { Backdrop } from \"./Backdrop\";\nimport { Slide } from \"./Slide\";\nimport { Fade } from \"./Fade\";\nimport { Grow } from \"./Grow\";\nimport { Container } from \"./Container\";\n\nconst toLen = (v?: number | string): string | undefined =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nconst setRef = <T,>(ref: React.Ref<T> | undefined, value: T | null) => {\n if (!ref) return;\n if (typeof ref === \"function\") (ref as (v: T | null) => void)(value);\n else (ref as unknown as { current: T | null }).current = value;\n};\n\nconst mergeRefs =\n <T,>(...refs: Array<React.Ref<T> | undefined>) =>\n (node: T | null) => {\n for (const ref of refs) setRef(ref, node);\n };\n\ntype ModalCtxT = {\n open: boolean;\n setOpen: (next: boolean) => void;\n lockScroll: boolean;\n closeOnEsc: boolean;\n};\nconst ModalCtx = React.createContext<ModalCtxT | null>(null);\nconst useModalCtx = (): ModalCtxT => {\n const ctx = useContext(ModalCtx);\n if (!ctx) throw new Error(\"Modal components must be used within <Modal>.\");\n return ctx;\n};\n\nexport type ModalProps = {\n children: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n lockScroll?: boolean;\n closeOnEsc?: boolean;\n};\n\nexport const Modal: React.FC<ModalProps> = ({\n children,\n open: controlled,\n defaultOpen,\n onOpenChange,\n lockScroll = true,\n closeOnEsc = true,\n}) => {\n const [uncontrolled, setUncontrolled] = useState<boolean>(!!defaultOpen);\n const open = controlled ?? uncontrolled;\n\n const setOpen = useCallback(\n (next: boolean): void => {\n if (controlled === undefined) setUncontrolled(next);\n onOpenChange?.(next);\n },\n [controlled, onOpenChange]\n );\n\n useEffect(() => {\n if (!open || !closeOnEsc) return;\n const handler = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n e.stopPropagation();\n setOpen(false);\n }\n };\n window.addEventListener(\"keydown\", handler, true);\n return () => window.removeEventListener(\"keydown\", handler, true);\n }, [open, closeOnEsc, setOpen]);\n\n const value = useMemo<ModalCtxT>(\n () => ({ open, setOpen, lockScroll, closeOnEsc }),\n [open, setOpen, lockScroll, closeOnEsc]\n );\n\n return <ModalCtx.Provider value={value}>{children}</ModalCtx.Provider>;\n};\n\nexport type ModalTriggerProps = Omit<React.HTMLAttributes<HTMLElement>, \"style\"> & {\n asChild?: boolean;\n css?: Interpolation<Theme>;\n};\n\nexport const ModalTrigger: React.ForwardRefExoticComponent<\n ModalTriggerProps & React.RefAttributes<HTMLElement>\n> = forwardRef<HTMLElement, ModalTriggerProps>(\n ({ asChild = true, children, className, css: userCss, ...rest }, ref) => {\n const { setOpen } = useModalCtx();\n const canAsChild = !!asChild && React.isValidElement(children);\n\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n if (canAsChild) {\n const onClick = (children as React.ReactElement).props.onClick as\n | ((ev: React.MouseEvent<HTMLElement>) => void)\n | undefined;\n onClick?.(e);\n }\n (rest.onClick as ((ev: React.MouseEvent<HTMLElement>) => void) | undefined)?.(e);\n if (!e.defaultPrevented) setOpen(true);\n },\n [canAsChild, children, rest.onClick, setOpen]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n setOpen(true);\n }\n if (canAsChild) {\n const onKeyDown = (children as React.ReactElement).props.onKeyDown as\n | ((ev: React.KeyboardEvent<HTMLElement>) => void)\n | undefined;\n onKeyDown?.(e);\n }\n (rest.onKeyDown as ((ev: React.KeyboardEvent<HTMLElement>) => void) | undefined)?.(e);\n },\n [canAsChild, children, rest.onKeyDown, setOpen]\n );\n\n if (canAsChild) {\n const child = children as React.ReactElement;\n const childCss = (child.props as any)?.css as Interpolation<Theme> | undefined;\n return React.cloneElement(child, {\n ref: mergeRefs(ref, (child as any).ref),\n className: [child.props.className, className].filter(Boolean).join(\" \") || undefined,\n css: [childCss, userCss].filter(Boolean),\n \"aria-haspopup\": \"dialog\",\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n ...rest,\n });\n }\n\n return (\n <button\n ref={ref as React.Ref<HTMLButtonElement>}\n type=\"button\"\n className={className}\n css={userCss}\n aria-haspopup=\"dialog\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {children}\n </button>\n );\n }\n);\nModalTrigger.displayName = \"ModalTrigger\";\n\nexport type ModalContentProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n variant?: \"inset\" | \"full\";\n width?: number | string;\n height?: number | string;\n radius?: number | string;\n padding?: number | string;\n backdrop?: boolean;\n backdropBlur?: boolean;\n backdropBlurDepth?: number;\n closeOnBackdropClick?: boolean;\n transitionVariant?: \"fade\" | \"slide\" | \"grow\" | \"none\";\n direction?: \"up\" | \"down\" | \"left\" | \"right\";\n transitionDuration?: number;\n containerCss?: Interpolation<Theme>;\n backdropCss?: Interpolation<Theme>;\n className?: string;\n};\n\nexport const ModalContent: React.ForwardRefExoticComponent<\n ModalContentProps & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, ModalContentProps>(\n (\n {\n children,\n variant = \"inset\",\n width = 500,\n height = \"auto\",\n radius = \"lg\",\n padding = \"lg\",\n backdrop = true,\n backdropBlur = true,\n backdropBlurDepth = 5,\n closeOnBackdropClick = true,\n transitionVariant = \"fade\",\n direction = \"up\",\n transitionDuration = 300,\n containerCss,\n backdropCss,\n className,\n ...rest\n },\n ref\n ) => {\n const { open, setOpen, lockScroll } = useModalCtx();\n\n const frameCss = css({\n width: toLen(width),\n height: toLen(height),\n maxWidth: variant === \"inset\" ? \"100%\" : undefined,\n maxHeight: variant === \"inset\" ? \"100%\" : undefined,\n });\n\n const panel = (\n <Container\n role=\"dialog\"\n aria-modal=\"true\"\n className={[\"plainframe-ui-modal\", className || \"\"].join(\" \").trim()}\n padding={padding}\n radius={radius}\n variant=\"panel\"\n css={[frameCss, containerCss]}\n ref={ref}\n {...rest}\n >\n {children}\n </Container>\n );\n\n const animated =\n transitionVariant === \"none\" ? (\n panel\n ) : transitionVariant === \"slide\" ? (\n <Slide on={open} direction={direction} duration={transitionDuration}>\n {panel}\n </Slide>\n ) : transitionVariant === \"grow\" ? (\n <Grow on={open} duration={transitionDuration}>\n {panel}\n </Grow>\n ) : (\n <Fade on={open} duration={transitionDuration}>\n {panel}\n </Fade>\n );\n\n if (!backdrop) return <>{animated}</>;\n\n const alignCss = css(\n variant === \"full\"\n ? { alignItems: \"start\", justifyItems: \"start\", justifyContent: \"start\" }\n : { alignItems: \"center\", justifyItems: \"center\", justifyContent: \"center\" }\n );\n\n return (\n <Backdrop\n on={open}\n blur={backdropBlur}\n blurDepth={backdropBlurDepth}\n onClickAway={closeOnBackdropClick ? () => setOpen(false) : undefined}\n css={[alignCss, backdropCss].filter(Boolean)}\n lockScroll={lockScroll}\n >\n {animated}\n </Backdrop>\n );\n }\n);\nModalContent.displayName = \"ModalContent\";\n","/** @jsxImportSource @emotion/react */\nimport React, { useMemo, useState, useCallback } from \"react\";\nimport { css, Interpolation, type CSSObject } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { ChevronFirst, ChevronLast, ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { useFocusRing } from \"../utils/focusRing\";\nimport { Theme } from \"@emotion/react\";\n\ntype Size = \"xs\" | \"sm\" | \"md\";\ntype Variant = \"subtle\" | \"outlined\" | \"ghost\";\n\nexport type PaginationProps = {\n count: number;\n page?: number;\n defaultPage?: number;\n onChange?: (page: number) => void;\n siblingCount?: number;\n boundaryCount?: number;\n disabled?: boolean;\n showFirstLast?: boolean;\n loop?: boolean;\n size?: Size;\n variant?: Variant;\n gap?: number;\n className?: string;\n css?: Interpolation<Theme>;\n};\n\nconst sizeTokens: Record<\n Size,\n { h: number; px: number; font: number; radius: number; gap: number; icon: number }\n> = {\n xs: { h: 22, px: 8, font: 11, radius: 8, gap: 4, icon: 12 },\n sm: { h: 28, px: 10, font: 13, radius: 9, gap: 6, icon: 14 },\n md: { h: 34, px: 12, font: 14, radius: 10, gap: 8, icon: 16 },\n};\n\nexport const Pagination: React.FC<PaginationProps> = ({\n count,\n page,\n defaultPage = 1,\n onChange,\n siblingCount = 1,\n boundaryCount = 1,\n disabled = false,\n showFirstLast = false,\n loop = false,\n size = \"sm\",\n variant = \"subtle\",\n gap,\n className,\n css: cssOverride,\n}) => {\n const theme = usePlainframeUITheme();\n const focusRing = useFocusRing();\n\n const isControlled = page !== undefined;\n const [inner, setInner] = useState(defaultPage);\n const normCount = Math.max(1, count);\n const current = clamp(isControlled ? (page as number) : inner, 1, normCount);\n\n const setPage = useCallback(\n (p: number) => {\n const next = clamp(p, 1, normCount);\n if (!isControlled) setInner(next);\n onChange?.(next);\n },\n [isControlled, normCount, onChange]\n );\n\n const items = useMemo(\n () => buildItems({ count: normCount, page: current, siblingCount, boundaryCount }),\n [normCount, current, siblingCount, boundaryCount]\n );\n\n const sizes = sizeTokens[size];\n\n const accent = theme.palette?.primary?.[600];\n const borderCol = theme.surface?.border;\n const hoverBg =\n variant === \"subtle\"\n ? theme.surface.subtleHover\n : variant === \"ghost\"\n ? theme.surface?.subtleBg\n : theme.surface.panelHover;\n const txt = theme.text?.primary ?? \"#111\";\n const containerBg = variant === \"subtle\" ? theme.surface?.subtleBg : \"transparent\";\n\n const containerCss = css(\n {\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: gap ?? sizes.gap,\n flexWrap: \"wrap\",\n borderRadius: theme.radius?.md,\n background: containerBg,\n padding: variant === \"subtle\" ? theme.spacing.xs : 0,\n userSelect: \"none\",\n },\n ...(Array.isArray(cssOverride) ? cssOverride : cssOverride ? [cssOverride] : [])\n );\n\n const baseBtn = css({\n minWidth: sizes.h,\n height: sizes.h,\n padding: `0 ${sizes.px}px`,\n borderRadius: sizes.radius,\n fontSize: sizes.font,\n lineHeight: 1,\n border: \"1px solid transparent\",\n background: \"transparent\",\n color: txt,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n transition: \"all .16s ease !important\",\n outline: \"1.5px solid transparent\",\n \"&[aria-disabled='true']\": { opacity: 0.55, pointerEvents: \"none\", cursor: \"not-allowed\" },\n fontWeight: 600,\n });\n\n const iconSquareBtn = css({\n width: sizes.h,\n minWidth: sizes.h,\n height: sizes.h,\n padding: 0,\n });\n\n const btnCss = (selected = false) =>\n css([\n baseBtn,\n focusRing({color: selected ? \"primary\" : \"neutral\"}),\n variant === \"outlined\"\n ? selected\n ? { background: accent, color: theme.text.onColors.primary, borderColor: accent }\n : {\n background: \"transparent\",\n borderColor: borderCol,\n \":hover\": { background: hoverBg },\n }\n : variant === \"ghost\"\n ? selected\n ? { background: accent, color: theme.text.onColors.primary }\n : { \":hover\": { background: hoverBg } }\n : selected\n ? { background: accent, color: theme.text.onColors.primary, borderColor: accent }\n : { \":hover\": { background: hoverBg } },\n ]);\n\n const goFirst = useCallback(() => setPage(1), [setPage]);\n const goLast = useCallback(() => setPage(normCount), [setPage, normCount]);\n const goPrev = useCallback(() => {\n if (current === 1) {\n if (loop) setPage(normCount);\n } else setPage(current - 1);\n }, [current, loop, normCount, setPage]);\n const goNext = useCallback(() => {\n if (current === normCount) {\n if (loop) setPage(1);\n } else setPage(current + 1);\n }, [current, loop, normCount, setPage]);\n\n const prevDisabled = disabled || (current === 1 && !loop);\n const nextDisabled = disabled || (current === normCount && !loop);\n\n return (\n <nav\n aria-label=\"Pagination\"\n className={[\"plainframe-ui-pagination\", className || \"\"].join(\" \").trim()}\n css={containerCss}\n onKeyDown={(e) => {\n if (disabled) return;\n if (e.key === \"ArrowLeft\") {\n e.preventDefault();\n goPrev();\n }\n if (e.key === \"ArrowRight\") {\n e.preventDefault();\n goNext();\n }\n if (e.key === \"Home\") {\n e.preventDefault();\n goFirst();\n }\n if (e.key === \"End\") {\n e.preventDefault();\n goLast();\n }\n }}\n >\n {showFirstLast && (\n <button\n className=\"plainframe-ui-pagination-first-button\"\n type=\"button\"\n aria-label=\"First page\"\n aria-disabled={prevDisabled}\n disabled={prevDisabled}\n css={[btnCss(false), iconSquareBtn]}\n onClick={goFirst}\n style={{ backgroundColor: variant === \"subtle\" ? theme.surface?.panelBg : undefined }}\n >\n <ChevronFirst strokeWidth={3} css={{ width: sizes.icon, height: sizes.icon }} />\n </button>\n )}\n\n <button\n className=\"plainframe-ui-pagination-previous-button\"\n type=\"button\"\n aria-label=\"Previous page\"\n aria-disabled={prevDisabled}\n disabled={prevDisabled}\n css={[btnCss(false), iconSquareBtn]}\n onClick={goPrev}\n style={{ backgroundColor: variant === \"subtle\" ? theme.surface?.panelBg : undefined }}\n >\n <ChevronLeft strokeWidth={3} css={{ width: sizes.icon, height: sizes.icon }} />\n </button>\n\n {items.map((it, idx) =>\n typeof it === \"number\" ? (\n <button\n className=\"plainframe-ui-pagination-page-button\"\n key={it}\n type=\"button\"\n aria-label={it === current ? `Page ${it}, current page` : `Go to page ${it}`}\n aria-current={it === current ? \"page\" : undefined}\n css={btnCss(it === current)}\n onClick={() => setPage(it)}\n >\n {it}\n </button>\n ) : (\n <span\n className=\"plainframe-ui-pagination-ellipsis\"\n key={`e${idx}`}\n aria-hidden\n css={css([\n baseBtn,\n focusRing(),\n { borderColor: \"transparent\", cursor: \"default\", opacity: 0.8, padding: 0, minWidth: sizes.h },\n ])}\n >\n …\n </span>\n )\n )}\n\n <button\n className=\"plainframe-ui-pagination-next-button\"\n type=\"button\"\n aria-label=\"Next page\"\n aria-disabled={nextDisabled}\n disabled={nextDisabled}\n css={[btnCss(false), iconSquareBtn]}\n onClick={goNext}\n style={{ backgroundColor: variant === \"subtle\" ? theme.surface?.panelBg : undefined }}\n >\n <ChevronRight strokeWidth={3} css={{ width: sizes.icon, height: sizes.icon }} />\n </button>\n\n {showFirstLast && (\n <button\n className=\"plainframe-ui-pagination-last-button\"\n type=\"button\"\n aria-label=\"Last page\"\n aria-disabled={nextDisabled}\n disabled={nextDisabled}\n css={[btnCss(false), iconSquareBtn]}\n onClick={goLast}\n style={{ backgroundColor: variant === \"subtle\" ? theme.surface?.panelBg : undefined }}\n >\n <ChevronLast strokeWidth={3} css={{ width: sizes.icon, height: sizes.icon }} />\n </button>\n )}\n </nav>\n );\n};\n\nfunction clamp(v: number, lo: number, hi: number) {\n return Math.max(lo, Math.min(hi, v));\n}\n\nfunction buildItems({\n count,\n page,\n siblingCount,\n boundaryCount,\n}: {\n count: number;\n page: number;\n siblingCount: number;\n boundaryCount: number;\n}): Array<number | \"ellipsis\"> {\n if (count <= 0) return [1];\n const maxVisibleWithoutEllipses = 2 * boundaryCount + 2 * siblingCount + 3;\n if (count <= maxVisibleWithoutEllipses) return range(1, count);\n\n const startPages = range(1, Math.min(boundaryCount, count));\n const endPages = range(Math.max(count - boundaryCount + 1, boundaryCount + 1), count);\n\n const siblingsStart = clamp(\n page - siblingCount,\n boundaryCount + 2,\n Math.max(boundaryCount + 2, count - boundaryCount - 2 * siblingCount - 1)\n );\n const siblingsEnd = clamp(\n page + siblingCount,\n Math.min(boundaryCount + 2 + 2 * siblingCount, count - boundaryCount - 1),\n count - boundaryCount - 1\n );\n\n const out: Array<number | \"ellipsis\"> = [];\n const push = (v: number | \"ellipsis\") => {\n const last = out[out.length - 1];\n if (last === v) return;\n if (last === \"ellipsis\" && v === \"ellipsis\") return;\n out.push(v);\n };\n\n startPages.forEach(push);\n if (siblingsStart > boundaryCount + 2) push(\"ellipsis\");\n else if (boundaryCount + 1 < siblingsStart) push(boundaryCount + 1);\n\n range(siblingsStart, siblingsEnd).forEach(push);\n\n if (siblingsEnd < count - boundaryCount - 1) push(\"ellipsis\");\n else if (count - boundaryCount > siblingsEnd) push(count - boundaryCount);\n\n endPages.forEach(push);\n\n return out;\n}\n\nfunction range(a: number, b: number) {\n if (b < a) return [] as number[];\n const r: number[] = [];\n for (let i = a; i <= b; i++) r.push(i);\n return r;\n}\n","/** @jsxImportSource @emotion/react */\nimport React, {\n useState,\n useRef,\n useMemo,\n useEffect,\n forwardRef,\n createContext,\n useContext,\n} from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport {\n useFloating,\n autoUpdate,\n offset as offsetMw,\n flip,\n shift,\n useDismiss,\n useRole,\n useInteractions,\n FloatingPortal,\n type Placement,\n} from \"@floating-ui/react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\n\ntype WithCss = { css?: Interpolation<Theme> };\ntype Side = \"top\" | \"bottom\" | \"left\" | \"right\";\ntype Align = \"start\" | \"center\" | \"end\";\n\nexport type AnchorOrigin = {\n vertical: \"top\" | \"bottom\" | \"center\";\n horizontal: \"left\" | \"right\" | \"center\";\n};\n\nexport type PopoverRootProps = {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n triggerOn?: \"click\" | \"hover\";\n lockScroll?: boolean;\n children: React.ReactNode;\n};\n\nexport type PopoverTriggerProps = WithCss & {\n asChild?: boolean;\n children: React.ReactElement;\n};\n\nexport type PopoverAnchorProps = WithCss & {\n asChild?: boolean;\n width?: number | string;\n children: React.ReactElement;\n};\n\nexport type PopoverContentProps = WithCss &\n Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n anchorOrigin?: AnchorOrigin;\n sideOffset?: number;\n alignOffset?: number;\n collisionPadding?: number | Partial<Record<Side, number>>;\n unstyled?: boolean;\n width?: string | number;\n height?: string | number;\n padding?: string | number;\n paddingX?: string | number;\n paddingY?: string | number;\n radius?: string | number;\n };\n\ntype Ctx = {\n open: boolean;\n setOpen: (v: boolean) => void;\n triggerOn: \"click\" | \"hover\";\n referenceRef: React.MutableRefObject<HTMLElement | null>;\n scheduleClose: (ms?: number) => void;\n cancelClose: () => void;\n};\n\nconst PopoverCtx = createContext<Ctx | null>(null);\nconst usePopover = (): Ctx => {\n const v = useContext(PopoverCtx);\n if (!v) throw new Error(\"Popover components must be used inside <Popover>.\");\n return v;\n};\n\nfunction setRef<T>(ref: React.Ref<T> | undefined, value: T | null): void {\n if (!ref) return;\n if (typeof ref === \"function\") (ref as (v: T | null) => void)(value);\n else (ref as unknown as { current: T | null }).current = value;\n}\n\nexport const mergeRefs: <T>(\n ...refs: Array<React.Ref<T> | undefined>\n) => (node: T | null) => void =\n <T,>(...refs: Array<React.Ref<T> | undefined>) =>\n (node: T | null) => {\n for (const r of refs) setRef(r, node);\n };\n\nconst toCssSize = (v?: string | number): string | undefined =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nconst useBodyScrollLock = (locked: boolean): void => {\n useEffect(() => {\n if (!locked) return;\n if (typeof document === \"undefined\" || typeof window === \"undefined\") return;\n const body = document.body;\n const prevOverflow = body.style.overflow;\n const prevPaddingRight = body.style.paddingRight;\n const scrollbar = window.innerWidth - document.documentElement.clientWidth;\n const computedPad = parseFloat(getComputedStyle(body).paddingRight || \"0\");\n body.style.overflow = \"hidden\";\n if (scrollbar > 0) body.style.paddingRight = `${computedPad + scrollbar}px`;\n return () => {\n body.style.overflow = prevOverflow;\n body.style.paddingRight = prevPaddingRight;\n };\n }, [locked]);\n};\n\nconst resolveToken = (\n token: string | number | undefined,\n scale: Record<string, string | number> | undefined\n): string | undefined => {\n if (token == null) return undefined;\n if (typeof token === \"number\") return `${token}px`;\n if (typeof token === \"string\" && scale && token in scale) {\n const v = scale[token];\n return typeof v === \"number\" ? `${v}px` : String(v);\n }\n return token;\n};\n\nexport const Popover: React.FC<PopoverRootProps> = ({\n open: controlled,\n defaultOpen,\n onOpenChange,\n triggerOn = \"click\",\n lockScroll = true,\n children,\n}) => {\n const [uncontrolled, setUncontrolled] = useState<boolean>(!!defaultOpen);\n const open = controlled ?? uncontrolled;\n const setOpen = (v: boolean): void => {\n if (controlled === undefined) setUncontrolled(v);\n onOpenChange?.(v);\n };\n\n const referenceRef = useRef<HTMLElement | null>(null);\n const closeTimerRef = useRef<number | null>(null);\n\n const scheduleClose = (ms = 120): void => {\n if (closeTimerRef.current != null) window.clearTimeout(closeTimerRef.current);\n closeTimerRef.current = window.setTimeout(() => setOpen(false), ms);\n };\n const cancelClose = (): void => {\n if (closeTimerRef.current == null) return;\n window.clearTimeout(closeTimerRef.current);\n closeTimerRef.current = null;\n };\n\n useBodyScrollLock(lockScroll && open);\n\n const value = useMemo<Ctx>(\n () => ({ open, setOpen, triggerOn, referenceRef, scheduleClose, cancelClose }),\n [open, triggerOn]\n );\n\n return <PopoverCtx.Provider value={value}>{children}</PopoverCtx.Provider>;\n};\n\nexport const PopoverTrigger: React.FC<\n PopoverTriggerProps & React.RefAttributes<HTMLElement>\n> = forwardRef<HTMLElement, PopoverTriggerProps>(({ asChild = true, children, css: userCss }, ref) => {\n const { open, setOpen, triggerOn, referenceRef, scheduleClose, cancelClose } = usePopover();\n const onlyChild = React.Children.only(children) as React.ReactElement;\n const childProps = (onlyChild.props || {}) as Record<string, unknown>;\n\n const mergedRef = mergeRefs<HTMLElement | null>(\n referenceRef as unknown as React.Ref<HTMLElement | null>,\n ref as React.Ref<HTMLElement | null>,\n (onlyChild as any).ref as React.Ref<HTMLElement | null> | undefined\n );\n\n const triggerProps =\n triggerOn === \"click\"\n ? {\n onClick: (e: React.MouseEvent) => {\n e.stopPropagation();\n setOpen(!open);\n (childProps.onClick as ((e: React.MouseEvent) => void) | undefined)?.(e);\n },\n }\n : {\n onMouseEnter: (e: React.MouseEvent) => {\n cancelClose();\n if (!open) setOpen(true);\n (childProps.onMouseEnter as ((e: React.MouseEvent) => void) | undefined)?.(e);\n },\n onMouseLeave: (e: React.MouseEvent) => {\n scheduleClose();\n (childProps.onMouseLeave as ((e: React.MouseEvent) => void) | undefined)?.(e);\n },\n };\n\n const a11y = { \"aria-haspopup\": \"dialog\", \"aria-expanded\": open };\n\n if (asChild) {\n const childCss = (onlyChild.props as any)?.css as Interpolation<Theme> | undefined;\n return React.cloneElement(onlyChild, {\n ref: mergedRef,\n css: [childCss, userCss].filter(Boolean),\n ...triggerProps,\n ...a11y,\n });\n }\n\n return React.createElement(\"button\", {\n ref: mergedRef,\n type: \"button\",\n css: [userCss],\n ...triggerProps,\n ...a11y,\n children: onlyChild,\n });\n});\nPopoverTrigger.displayName = \"PopoverTrigger\";\n\nexport const PopoverAnchor: React.FC<\n PopoverAnchorProps & React.RefAttributes<HTMLElement>\n> = forwardRef<HTMLElement, PopoverAnchorProps>(({ asChild = true, width, css: userCss, children }, ref) => {\n const { referenceRef } = usePopover();\n const onlyChild = React.Children.only(children) as React.ReactElement;\n\n const mergedRef = mergeRefs<HTMLElement | null>(\n referenceRef as unknown as React.Ref<HTMLElement | null>,\n ref as React.Ref<HTMLElement | null>,\n (onlyChild as any).ref as React.Ref<HTMLElement | null> | undefined\n );\n\n if (asChild) {\n const childCss = (onlyChild.props as any)?.css as Interpolation<Theme> | undefined;\n return React.cloneElement(onlyChild, {\n ref: mergedRef,\n css: [childCss, userCss].filter(Boolean),\n });\n }\n\n const wrapperCss = css({\n display: \"inline-block\",\n width: toCssSize(width),\n verticalAlign: \"middle\",\n ...(userCss as object),\n });\n\n return (\n <span ref={mergedRef as unknown as React.Ref<HTMLSpanElement>} css={wrapperCss}>\n {onlyChild}\n </span>\n );\n});\nPopoverAnchor.displayName = \"PopoverAnchor\";\n\nfunction anchorToPlacement(ao?: AnchorOrigin): Placement {\n const v = ao?.vertical ?? \"bottom\";\n const h = ao?.horizontal ?? \"center\";\n\n if (v === \"top\" || v === \"bottom\") {\n const side = v;\n const align: Align = h === \"left\" ? \"start\" : h === \"right\" ? \"end\" : \"center\";\n return (align === \"center\" ? side : `${side}-${align}`) as Placement;\n }\n\n const side: Side = h === \"left\" ? \"left\" : \"right\";\n const align: Align = \"center\";\n return (align === \"center\" ? side : `${side}-${align}`) as Placement;\n}\n\nexport const PopoverContent: React.FC<\n PopoverContentProps & React.RefAttributes<HTMLDivElement>\n> = forwardRef<HTMLDivElement, PopoverContentProps>(\n (\n {\n anchorOrigin = { vertical: \"bottom\", horizontal: \"center\" },\n sideOffset = 8,\n alignOffset = 0,\n collisionPadding = 8,\n unstyled = false,\n children,\n width,\n height,\n padding,\n paddingX,\n paddingY,\n radius = \"lg\",\n css: userCss,\n ...rest\n },\n ref\n ) => {\n const { open, setOpen, triggerOn, referenceRef, scheduleClose, cancelClose } = usePopover();\n const theme = usePlainframeUITheme();\n\n const placement = anchorToPlacement(anchorOrigin);\n\n const { refs, x, y, strategy, context } = useFloating({\n open,\n onOpenChange: setOpen,\n whileElementsMounted: autoUpdate,\n placement,\n strategy: \"fixed\",\n middleware: [\n offsetMw({ mainAxis: sideOffset, crossAxis: alignOffset }),\n flip({ padding: collisionPadding as number | Partial<Record<Side, number>> }),\n shift({ padding: collisionPadding as number | Partial<Record<Side, number>> }),\n ],\n });\n\n useEffect(() => {\n if (referenceRef.current) refs.setReference(referenceRef.current);\n }, [refs, referenceRef]);\n\n const dismiss = useDismiss(context, { outsidePressEvent: \"pointerdown\", escapeKey: true });\n const role = useRole(context, { role: \"dialog\" });\n const { getFloatingProps } = useInteractions([dismiss, role]);\n\n const [sideMain] = context.placement.split(\"-\") as [Side, Align?];\n const resolvedSide = sideMain;\n\n const transformOrigin = `${resolvedSide === \"left\" ? \"right\" : resolvedSide === \"right\" ? \"left\" : \"center\"} ${\n resolvedSide === \"top\" ? \"bottom\" : resolvedSide === \"bottom\" ? \"top\" : \"center\"\n }`;\n\n const delta = 8;\n const initialOffset =\n resolvedSide === \"top\"\n ? { y: delta }\n : resolvedSide === \"bottom\"\n ? { y: -delta }\n : resolvedSide === \"left\"\n ? { x: delta }\n : { x: -delta };\n\n const motionProps = {\n initial: { opacity: 0, scale: 0.96, ...initialOffset },\n animate: { opacity: 1, scale: 1, x: 0, y: 0 },\n exit: { opacity: 0, scale: 0.96, ...initialOffset },\n transition: {\n scale: { type: \"spring\", stiffness: 520, damping: 32, mass: 0.5 },\n x: { type: \"spring\", stiffness: 420, damping: 30, mass: 0.6 },\n y: { type: \"spring\", stiffness: 420, damping: 30, mass: 0.6 },\n opacity: { duration: 0.16, ease: \"linear\" },\n },\n } as const;\n\n const panelBg = theme.surface.panelBg;\n const panelFg = theme.text.primary;\n const panelBorder = `${theme.componentHeights.border} solid ${theme.surface.border}`;\n\n const resolvedPad = resolveToken(padding, theme.spacing as Record<string, string | number>);\n const resolvedPadX = resolveToken(paddingX, theme.spacing as Record<string, string | number>);\n const resolvedPadY = resolveToken(paddingY, theme.spacing as Record<string, string | number>);\n\n const applyPad: React.CSSProperties = {};\n if (resolvedPad) applyPad.padding = resolvedPad;\n if (resolvedPadX) (applyPad as any).paddingInline = resolvedPadX;\n if (resolvedPadY) (applyPad as any).paddingBlock = resolvedPadY;\n\n const resolvedRadius =\n resolveToken(radius as string | number | undefined, theme.radius as Record<string, string | number>) ??\n (theme.radius.md as unknown as string);\n\n const panelShadow = \"0 8px 32px rgba(0,0,0,.05), 0 2px 8px rgba(0,0,0,.02)\";\n\n const basePos = css({\n position: strategy as React.CSSProperties[\"position\"],\n top: (y ?? 0) as number,\n left: (x ?? 0) as number,\n zIndex: 1000,\n transformOrigin,\n pointerEvents: \"auto\",\n display: \"inline-flex\",\n flexDirection: \"column\",\n width: toCssSize(width) ?? \"fit-content\",\n height: toCssSize(height) ?? \"fit-content\",\n boxSizing: \"border-box\",\n willChange: \"opacity, transform\",\n });\n\n const visualsCss = unstyled\n ? css({})\n : css({\n background: panelBg,\n color: panelFg,\n border: panelBorder,\n borderRadius: resolvedRadius,\n boxShadow: panelShadow,\n ...applyPad,\n ...(applyPad.padding || (applyPad as any).paddingInline || (applyPad as any).paddingBlock\n ? {}\n : {\n padding:\n typeof theme.spacing?.sm === \"number\"\n ? `${theme.spacing.sm}px ${theme.spacing.md}px`\n : `${(theme.spacing as any)?.sm ?? \"0.5rem\"} ${(theme.spacing as any)?.md ?? \"1rem\"}`,\n }),\n });\n\n const hoverHandlers =\n triggerOn === \"hover\"\n ? {\n onMouseEnter: cancelClose as React.MouseEventHandler<HTMLDivElement>,\n onMouseLeave: () => scheduleClose(),\n }\n : {};\n\n const mergedRef = mergeRefs<HTMLDivElement | null>(\n refs.setFloating as unknown as React.Ref<HTMLDivElement | null>,\n ref as React.Ref<HTMLDivElement | null>\n );\n\n const node = (\n <motion.div\n className=\"plainframe-ui-popover\"\n {...getFloatingProps({ ...rest, ref: mergedRef, ...hoverHandlers })}\n {...motionProps}\n css={[basePos, visualsCss, userCss]}\n >\n {children}\n </motion.div>\n );\n\n return (\n <FloatingPortal>\n <AnimatePresence>{open ? node : null}</AnimatePresence>\n </FloatingPortal>\n );\n }\n);\nPopoverContent.displayName = \"PopoverContent\";\n\nexport const usePopoverContext: () => {\n open: boolean;\n close: () => void;\n setOpen: (v: boolean) => void;\n} = () => {\n const ctx = usePopover();\n return { open: ctx.open, close: () => ctx.setOpen(false), setOpen: ctx.setOpen };\n};\n","/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport { css, Interpolation, type CSSObject } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { Theme } from \"@emotion/react\";\n\ntype QuoteVariant = \"solid\" | \"dashed\";\ntype Direction = \"left\" | \"right\";\n\nexport type QuoteProps = {\n children?: React.ReactNode;\n direction?: Direction;\n width?: string | number;\n variant?: QuoteVariant;\n className?: string;\n css?: Interpolation<Theme>;\n as?: keyof JSX.IntrinsicElements;\n};\n\nconst toCssSize = (v?: string | number, fb?: string) =>\n v == null ? fb : typeof v === \"number\" ? `${v}px` : v;\n\nexport const Quote: React.FC<QuoteProps> = ({\n children,\n direction = \"left\",\n width,\n variant = \"solid\",\n className,\n css: userCss,\n as: Tag = \"div\",\n}) => {\n const theme = usePlainframeUITheme();\n const borderColor = theme.surface.border;\n\n const root = css([\n {\n display: \"inline-block\",\n boxSizing: \"border-box\",\n maxWidth: toCssSize(width, \"fit-content\"),\n width: \"100%\",\n padding: `0 ${theme.spacing.md}`,\n borderLeft:\n direction === \"left\"\n ? `3px ${variant === \"dashed\" ? \"dashed\" : \"solid\"} ${borderColor}`\n : \"none\",\n borderRight:\n direction === \"right\"\n ? `3px ${variant === \"dashed\" ? \"dashed\" : \"solid\"} ${borderColor}`\n : \"none\",\n },\n userCss as CSSObject,\n ]);\n\n return (\n <Tag className={className ?? \"plainframe-ui-quote\"} css={root}>\n {children}\n </Tag>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { css, Interpolation, type CSSObject } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { useFocusRing } from \"../utils/focusRing\";\nimport { Theme } from \"@emotion/react\";\n\ntype Direction = \"horizontal\" | \"vertical\";\ntype Variant = \"filled\" | \"outlined\" | \"soft\";\ntype HV = \"left\" | \"center\" | \"right\" | \"top\" | \"bottom\";\n\nexport type RadioGroupProps = {\n value?: string | number;\n defaultValue?: string | number;\n onChange?: (value: string | number) => void;\n disabled?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n direction?: Direction;\n variant?: Variant;\n className?: string;\n children: React.ReactNode;\n anchorOrigin?: {\n horizontal?: Extract<HV, \"left\" | \"center\" | \"right\">;\n vertical?: Extract<HV, \"top\" | \"center\" | \"bottom\">;\n };\n css?: Interpolation<Theme>;\n};\n\nexport type RadioItemProps = {\n value: string | number;\n disabled?: boolean;\n className?: string;\n children?: React.ReactNode;\n css?: Interpolation<Theme>;\n};\n\ntype RegistryItem = { ref: HTMLButtonElement | null; value: string | number; disabled: boolean };\n\ntype Ctx = {\n selected: string | number | undefined;\n setSelected: (v: string | number) => void;\n disabled: boolean;\n size: \"sm\" | \"md\" | \"lg\";\n direction: Direction;\n variant: Variant;\n register: (item: RegistryItem) => number;\n update: (index: number, item: Partial<RegistryItem>) => void;\n moveFocusBy: (currentIndex: number, delta: number) => void;\n moveToEdge: (edge: \"first\" | \"last\") => void;\n focusValue: string | number | undefined;\n theme: ReturnType<typeof usePlainframeUITheme>;\n anchorOrigin: Required<NonNullable<RadioGroupProps[\"anchorOrigin\"]>>;\n};\n\nconst RadioCtx = createContext<Ctx | null>(null);\nconst useRadioCtx = () => {\n const ctx = useContext(RadioCtx);\n if (!ctx) throw new Error(\"RadioItem must be used within a RadioGroup\");\n return ctx;\n};\n\nconst normalizeOrigin = (\n o?: RadioGroupProps[\"anchorOrigin\"]\n): Required<NonNullable<RadioGroupProps[\"anchorOrigin\"]>> => {\n const h = o?.horizontal ?? \"left\";\n const v = o?.vertical ?? \"center\";\n if (h === \"center\" && v === \"center\") return { horizontal: \"left\", vertical: \"center\" };\n return { horizontal: h, vertical: v };\n};\n\nexport const RadioGroup: React.FC<RadioGroupProps> = ({\n value,\n defaultValue,\n onChange,\n disabled = false,\n size = \"md\",\n direction = \"horizontal\",\n variant = \"filled\",\n className,\n children,\n anchorOrigin,\n css: userCss,\n}) => {\n const theme = usePlainframeUITheme();\n const isControlled = value !== undefined && onChange !== undefined;\n const [internalValue, setInternalValue] = useState<string | number | undefined>(defaultValue);\n const selected = (isControlled ? value : internalValue) as string | number | undefined;\n\n const registry = useRef<RegistryItem[]>([]);\n const [ver, setVer] = useState(0);\n const bump = () => setVer((v) => v + 1);\n\n const setSelected = useCallback(\n (v: string | number) => {\n if (!isControlled) setInternalValue(v);\n onChange?.(v);\n },\n [isControlled, onChange]\n );\n\n const register = useCallback((item: RegistryItem) => {\n registry.current.push(item);\n bump();\n return registry.current.length - 1;\n }, []);\n\n const update = useCallback((index: number, item: Partial<RegistryItem>) => {\n const curr = registry.current[index];\n if (!curr) return;\n registry.current[index] = { ...curr, ...item };\n bump();\n }, []);\n\n const enabledIndexes = () =>\n registry.current\n .map((it, i) => ({ it, i }))\n .filter(({ it }) => it.ref && !it.disabled)\n .map(({ i }) => i);\n\n const moveFocusBy = useCallback(\n (currentIndex: number, delta: number) => {\n const enabled = enabledIndexes();\n if (!enabled.length) return;\n const pos = Math.max(0, enabled.indexOf(currentIndex));\n const next = enabled[(pos + delta + enabled.length) % enabled.length];\n const nextRef = registry.current[next]?.ref;\n if (nextRef) {\n nextRef.focus();\n const nextVal = registry.current[next]?.value;\n if (nextVal !== undefined) setSelected(nextVal);\n }\n },\n [setSelected]\n );\n\n const moveToEdge = useCallback(\n (edge: \"first\" | \"last\") => {\n const enabled = enabledIndexes();\n if (!enabled.length) return;\n const next = edge === \"first\" ? enabled[0] : enabled[enabled.length - 1];\n const nextRef = registry.current[next]?.ref;\n if (nextRef) {\n nextRef.focus();\n const nextVal = registry.current[next]?.value;\n if (nextVal !== undefined) setSelected(nextVal);\n }\n },\n [setSelected]\n );\n\n const focusValue: string | number | undefined = useMemo(() => {\n const enabledItems = registry.current.filter((it) => it.ref && !it.disabled);\n if (!enabledItems.length) return undefined;\n const selectedEnabled = enabledItems.some((it) => it.value === selected);\n return selectedEnabled ? selected : enabledItems[0]?.value;\n }, [selected, ver]);\n\n const ctx: Ctx = useMemo(\n () => ({\n selected,\n setSelected,\n disabled,\n size,\n direction,\n variant,\n register,\n update,\n moveFocusBy,\n moveToEdge,\n focusValue,\n theme,\n anchorOrigin: normalizeOrigin(anchorOrigin),\n }),\n [\n selected,\n setSelected,\n disabled,\n size,\n direction,\n variant,\n register,\n update,\n moveFocusBy,\n moveToEdge,\n focusValue,\n theme,\n anchorOrigin,\n ]\n );\n\n const rootCss = css({ width: \"fit-content\" });\n const rowCss = css({\n display: \"flex\",\n flexDirection: direction === \"vertical\" ? \"column\" : \"row\",\n gap: theme.spacing.sm,\n width: \"fit-content\",\n alignItems: direction === \"vertical\" ? \"stretch\" : \"center\",\n });\n\n return (\n <div className={className ?? \"plainframe-ui-radio-group\"} css={[rootCss, userCss as CSSObject]}>\n <div\n className=\"plainframe-ui-radio-row\"\n role=\"radiogroup\"\n aria-disabled={disabled || undefined}\n css={rowCss}\n >\n <RadioCtx.Provider value={ctx}>{children}</RadioCtx.Provider>\n </div>\n </div>\n );\n};\n\nexport const RadioItem: React.FC<RadioItemProps> = ({\n value,\n disabled = false,\n className,\n children,\n css: userCss,\n}) => {\n const {\n selected,\n setSelected,\n disabled: groupDisabled,\n size,\n register,\n update,\n moveFocusBy,\n moveToEdge,\n theme,\n variant,\n focusValue,\n anchorOrigin,\n } = useRadioCtx();\n\n const isDisabled = groupDisabled || disabled;\n const isChecked = selected === value;\n\n const sizeKey: \"sm\" | \"md\" | \"lg\" = ([\"sm\", \"md\", \"lg\"] as const).includes(size) ? size : \"md\";\n const diameter = sizeKey === \"sm\" ? 16 : sizeKey === \"lg\" ? 24 : 20;\n\n const sw = (shade: 50 | 100 | 300 | 600) => (theme.palette?.primary as any)?.[shade];\n const main = sw(600);\n const soft100 = sw(100);\n const neutral300 = theme.neutral[300];\n const stroke = theme.palette.primary[300];\n const onPrimary = theme.text.onColors?.primary ?? theme.neutral[0];\n\n let circleBg = \"transparent\";\n let circleShadow: string | null = stroke;\n let dotColor = onPrimary;\n\n if (variant === \"soft\") {\n circleBg = soft100;\n circleShadow = null;\n dotColor = main;\n } else if (variant === \"outlined\") {\n circleBg = sw(50);\n circleShadow = stroke;\n dotColor = main;\n } else {\n circleBg = theme.neutral[200];\n circleShadow = \"transparent\";\n dotColor = onPrimary;\n }\n\n if (isChecked) {\n if (variant === \"outlined\") {\n circleBg = soft100;\n circleShadow = stroke;\n dotColor = main;\n } else if (variant === \"filled\") {\n circleBg = main;\n circleShadow = null;\n dotColor = onPrimary;\n } else {\n circleBg = soft100;\n circleShadow = null;\n dotColor = main;\n }\n }\n\n const hoverCircleBg = variant === \"filled\" ? neutral300 : variant === \"outlined\" ? theme.palette.primary[100] : theme.palette.primary[100];\n\n const btnRef = useRef<HTMLButtonElement | null>(null);\n const myIndex = useRef<number>(-1);\n\n useEffect(() => {\n myIndex.current = register({ ref: btnRef.current, value, disabled: !!isDisabled });\n }, [register]);\n\n useEffect(() => {\n update(myIndex.current, { ref: btnRef.current, value, disabled: !!isDisabled });\n }, [update, isDisabled, value]);\n\n const btnCss = css({\n border: \"none\",\n background: \"transparent\",\n display: \"inline-grid\",\n gridTemplateColumns: \"auto auto auto\",\n gridTemplateRows: \"auto auto auto\",\n columnGap: anchorOrigin.vertical === \"center\" ? theme.spacing.sm : 0,\n rowGap: anchorOrigin.vertical === \"center\" ? 0 : theme.spacing.xs,\n justifyItems: \"center\",\n alignItems: \"center\",\n opacity: isDisabled ? 0.5 : 1,\n borderRadius: theme.radius.md,\n cursor: isDisabled ? \"not-allowed\" : \"pointer\",\n transition: \"transform .16s ease\",\n fontSize: theme.fontSizes.md,\n fontWeight: 500,\n padding: theme.spacing.sm,\n\n \"&:hover .plainframe-ui-radio-circle-outer\":\n isDisabled || isChecked\n ? {}\n : {\n background: hoverCircleBg,\n boxShadow:\n variant === \"outlined\"\n ? `inset 0 0 0 ${theme.componentHeights.border} ${stroke}`\n : \"none\",\n },\n\n \"&:focus-visible .plainframe-ui-radio-circle-outer\": {\n outline: \"none\",\n filter: \"brightness(1.06)\",\n },\n });\n\n const circleCss = css({\n width: diameter,\n height: diameter,\n minWidth: diameter,\n minHeight: diameter,\n borderRadius: theme.radius.full,\n background: circleBg,\n boxShadow: circleShadow ? `inset 0 0 0 ${theme.componentHeights.border} ${circleShadow}` : \"none\",\n transition: \"background-color .16s ease, box-shadow .16s ease, filter .16s ease\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n });\n\n const dotCss = css({\n width: isChecked ? diameter * 0.45 : 0,\n height: isChecked ? diameter * 0.45 : 0,\n borderRadius: theme.radius.full,\n background: isChecked ? dotColor : \"transparent\",\n transition: \"all 250ms cubic-bezier(.72,1.6,.32,1)\",\n transform: isChecked ? \"scale(1)\" : \"scale(0.6)\",\n opacity: isChecked ? 1 : 0,\n });\n\n const labelCss = css({\n gridColumn: 2,\n gridRow: 2,\n minWidth: 0,\n maxWidth: \"100%\",\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n textAlign: \"left\",\n });\n\n const pos = (() => {\n const h = anchorOrigin.horizontal;\n const v = anchorOrigin.vertical;\n if (v === \"center\") {\n return { col: h === \"right\" ? 3 : 1, row: 2 };\n }\n return { col: 2, row: v === \"top\" ? 1 : 3 };\n })();\n\n const isFocusable = !isDisabled && focusValue === value;\n const tabIndex = isFocusable ? 0 : -1;\n\n const focusRing = useFocusRing()\n\n return (\n <button\n ref={btnRef}\n className={className ?? \"plainframe-ui-radio-item\"}\n type=\"button\"\n role=\"radio\"\n aria-checked={isChecked}\n aria-disabled={isDisabled || undefined}\n disabled={isDisabled}\n tabIndex={tabIndex}\n onClick={() => {\n if (!isDisabled) setSelected(value);\n }}\n onKeyDown={(e) => {\n if (isDisabled) return;\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n setSelected(value);\n } else if (e.key === \"ArrowRight\" || e.key === \"ArrowDown\") {\n e.preventDefault();\n moveFocusBy(myIndex.current, 1);\n } else if (e.key === \"ArrowLeft\" || e.key === \"ArrowUp\") {\n e.preventDefault();\n moveFocusBy(myIndex.current, -1);\n } else if (e.key === \"Home\") {\n e.preventDefault();\n moveToEdge(\"first\");\n } else if (e.key === \"End\") {\n e.preventDefault();\n moveToEdge(\"last\");\n }\n }}\n css={[btnCss, focusRing({color: isChecked ? \"primary\" : \"neutral\"}), userCss as CSSObject]}\n >\n <span\n className=\"plainframe-ui-radio-circle-outer\"\n css={[\n circleCss,\n css({ gridColumn: pos.col, gridRow: pos.row }),\n ]}\n >\n <span className=\"plainframe-ui-radio-circle-dot\" css={dotCss} />\n </span>\n\n {children != null && (\n <span className=\"plainframe-ui-radio-label\" css={labelCss}>\n {children}\n </span>\n )}\n </button>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, {\n isValidElement,\n cloneElement,\n type ReactNode,\n type CSSProperties,\n} from \"react\";\nimport { css } from \"@emotion/react\";\n\ntype RotateProps = {\n children: ReactNode;\n duration?: number;\n delay?: number;\n on: boolean;\n initialAngle?: number;\n finalAngle?: number;\n onAnimationEnd?: () => void;\n asChild?: boolean;\n className?: string;\n};\n\nexport const Rotate: React.FC<RotateProps> = ({\n children,\n duration = 400,\n delay = 0,\n on = false,\n initialAngle = 360,\n finalAngle = 0,\n onAnimationEnd,\n asChild = true,\n className,\n}) => {\n const baseStyles = {\n transform: `rotate(${on ? finalAngle : initialAngle}deg)`,\n transition: `transform ${duration}ms ease ${delay}ms`,\n pointerEvents: on ? \"auto\" : \"none\",\n transformOrigin: \"center center\",\n willChange: \"transform\",\n backfaceVisibility: \"hidden\",\n } as const;\n\n const handleEnd =\n (prev?: (e: React.TransitionEvent<any>) => void) =>\n (e: React.TransitionEvent<any>) => {\n if (e.target === e.currentTarget && e.propertyName === \"transform\") {\n onAnimationEnd?.();\n }\n prev?.(e);\n };\n\n if (asChild && isValidElement(children)) {\n const child: any = children;\n const prevCss = child.props.css;\n const mergedCss = Array.isArray(prevCss)\n ? [...prevCss, baseStyles]\n : prevCss\n ? [prevCss, baseStyles]\n : [baseStyles];\n\n const mergedClassName = [\n \"plainframe-ui-transition-rotate\",\n child.props.className || \"\",\n className || \"\",\n ]\n .join(\" \")\n .trim();\n\n const prevOnTransitionEnd = child.props.onTransitionEnd as\n | ((e: React.TransitionEvent<any>) => void)\n | undefined;\n\n return cloneElement(child, {\n ...child.props,\n css: mergedCss,\n className: mergedClassName,\n onTransitionEnd: handleEnd(prevOnTransitionEnd),\n });\n }\n\n const styles = css(baseStyles);\n\n return (\n <div\n className={[\"plainframe-ui-transition-rotate\", className || \"\"]\n .join(\" \")\n .trim()}\n css={styles}\n onTransitionEnd={handleEnd()}\n >\n {children}\n </div>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport { css as emCss, type Interpolation, type Theme, type CSSObject } from \"@emotion/react\";\nimport { ChevronsUpDown } from \"lucide-react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent } from \"./DropdownMenu\";\nimport { MenuRadioGroup } from \"./MenuItems\";\nimport { useFocusRing } from \"../utils/focusRing\";\n\ntype Align = \"left\" | \"center\" | \"right\";\ntype Variant = \"subtle\" | \"outlined\" | \"ghost\";\n\nexport type SelectProps<T = unknown> = {\n value?: T | T[];\n defaultValue?: T | T[];\n onChange?: (value: T | T[]) => void;\n label?: string;\n placeholder?: string | React.ReactNode;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n disabled?: boolean;\n size?: \"sm\" | \"md\";\n variant?: Variant;\n fullWidth?: boolean;\n width?: number | string;\n menuAlign?: Align;\n menuWidth?: number | string;\n menuMaxHeight?: number | string;\n wrapperCss?: Interpolation<Theme>;\n labelCss?: Interpolation<Theme>;\n triggerCss?: Interpolation<Theme>;\n menuCss?: Interpolation<Theme>;\n children: React.ReactNode;\n className?: string;\n menuSize?: \"sm\" | \"md\";\n triggerRender?: (selected: string | string[] | undefined) => React.ReactNode;\n};\n\ntype AnyEl = React.ReactElement<any>;\n\nconst isEl = (n: unknown): n is AnyEl => React.isValidElement(n);\nconst nameOf = (el: AnyEl) =>\n ((el.type as any)?.displayName || (el.type as any)?.name || \"\") as string;\n\nconst toCss = (v?: number | string) =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nconst labelFromItem = (el: AnyEl): string | undefined => {\n const p = el.props as Record<string, any>;\n if (typeof p.label === \"string\" || typeof p.label === \"number\") return String(p.label);\n const c = p.children;\n if (typeof c === \"string\" || typeof c === \"number\") return String(c);\n return undefined;\n};\n\nfunction scanChildrenForSelection<T = unknown>(\n children: React.ReactNode,\n controlled: T | T[] | undefined\n): {\n mode: \"radio\" | \"checkbox\" | \"menu\";\n selectedLabels: string[];\n} {\n const kids = React.Children.toArray(children).filter(isEl) as AnyEl[];\n\n const radioGroup = kids.find((k) => nameOf(k) === \"MenuRadioGroup\") as\n | (AnyEl & { props: { value?: T; children?: React.ReactNode } })\n | undefined;\n\n if (radioGroup) {\n const rv = (controlled as T) ?? (radioGroup.props.value as T | undefined);\n if (rv === undefined) return { mode: \"radio\", selectedLabels: [] };\n\n const radios = React.Children.toArray(radioGroup.props.children)\n .filter(isEl)\n .filter((c) => nameOf(c).includes(\"MenuRadioItem\")) as AnyEl[];\n\n const match = radios.find((r) => Object.is((r.props as any).value, rv));\n const label = match ? labelFromItem(match) : undefined;\n return { mode: \"radio\", selectedLabels: label ? [label] : [] };\n }\n\n const flat: AnyEl[] = [];\n const dfs = (nodes: React.ReactNode) => {\n React.Children.forEach(nodes, (n) => {\n if (!isEl(n)) return;\n const nm = nameOf(n);\n if (\n nm.includes(\"MenuItem\") ||\n nm.includes(\"MenuCheckboxItem\") ||\n nm.includes(\"MenuRadioItem\")\n ) {\n flat.push(n);\n } else if (n.props && n.props.children) {\n dfs(n.props.children);\n }\n });\n };\n dfs(children);\n\n if (controlled !== undefined) {\n const arr = Array.isArray(controlled) ? (controlled as T[]) : [controlled as T];\n const labels = arr\n .map((v) => {\n const m = flat.find((f) => Object.is((f.props as any).value, v));\n return m ? labelFromItem(m) : undefined;\n })\n .filter((x): x is string => typeof x === \"string\");\n const anyCheckbox = flat.some((f) => nameOf(f).includes(\"Checkbox\"));\n return { mode: anyCheckbox ? \"checkbox\" : \"menu\", selectedLabels: labels };\n }\n\n const selectedLabels: string[] = [];\n let anyCheckbox = false;\n flat.forEach((el) => {\n const p = el.props as Record<string, any>;\n const isChecked = !!p.checked || p[\"aria-checked\"] === true;\n const isSelected = !!p.selected || p[\"aria-selected\"] === true;\n if (isChecked || isSelected) {\n const lbl = labelFromItem(el);\n if (lbl) selectedLabels.push(lbl);\n }\n if (nameOf(el).includes(\"Checkbox\")) anyCheckbox = true;\n });\n\n return { mode: anyCheckbox ? \"checkbox\" : \"menu\", selectedLabels };\n}\n\nexport function Select<T = unknown>({\n value,\n defaultValue,\n onChange,\n label,\n placeholder = \"Select…\",\n startIcon,\n endIcon,\n disabled,\n size = \"md\",\n variant = \"subtle\",\n fullWidth,\n width = 200,\n menuAlign = \"left\",\n menuWidth,\n menuMaxHeight = 280,\n wrapperCss,\n labelCss,\n triggerCss,\n menuCss,\n children,\n className,\n menuSize = \"md\",\n triggerRender,\n}: SelectProps<T>): JSX.Element {\n const theme = usePlainframeUITheme();\n const focusRing = useFocusRing();\n const ids = React.useId();\n const labelId = `${ids}-label`;\n const contentId = `${ids}-menu`;\n\n const [open, setOpen] = React.useState(false);\n\n const { selectedLabels } = scanChildrenForSelection<T>(children, value ?? defaultValue);\n const triggerText =\n selectedLabels.length === 0\n ? typeof placeholder === \"string\"\n ? placeholder\n : undefined\n : selectedLabels.join(\", \");\n\n const sizeCfg: Record<\"sm\" | \"md\" | \"lg\", { minHeight: number | string; radius: number | string }> =\n {\n sm: { minHeight: theme.componentHeights.sm, radius: theme.radius.sm },\n md: { minHeight: theme.componentHeights.md, radius: theme.radius.md },\n lg: { minHeight: theme.componentHeights.lg, radius: theme.radius.md },\n };\n const S = sizeCfg[size] || sizeCfg.md;\n\n const wrapperStyles: CSSObject = {\n position: \"relative\",\n width: fullWidth ? \"100%\" : toCss(width) ?? \"auto\",\n maxWidth: \"100%\",\n };\n\n const triggerBaseObj: CSSObject = {\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n borderRadius: S.radius,\n minHeight: S.minHeight,\n fontSize: theme.fontSizes.md,\n padding: `0 ${typeof theme.spacing.sm === \"number\" ? `${theme.spacing.sm}px` : theme.spacing.sm} 0 ${\n typeof theme.spacing.md === \"number\" ? `${theme.spacing.md}px` : theme.spacing.md\n }`,\n fontWeight: 500,\n lineHeight: 1,\n userSelect: \"none\",\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n border: \"none\",\n outline: \"none\",\n transition: \"box-shadow .16s ease\",\n color: theme.text.primary,\n background: \"transparent\",\n whiteSpace: \"nowrap\",\n };\n\n const triggerVariantObj: CSSObject =\n variant === \"subtle\"\n ? { background: theme.surface.subtleBg }\n : variant === \"outlined\"\n ? { background: theme.surface.panelBg, border: `1px solid ${theme.surface.border}` }\n : { background: \"transparent\" };\n\n const triggerContentObj: CSSObject = {\n flex: 1,\n minWidth: 0,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"flex\",\n alignItems: \"center\",\n textAlign: \"left\",\n gap: 8,\n };\n\n const triggerStartIconObj: CSSObject = {\n flexShrink: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n const titleObj: CSSObject = {\n flex: 1,\n minWidth: 0,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n fontWeight: 500,\n display: \"block\",\n };\n\n const chevron = (\n <ChevronsUpDown\n size={16}\n css={emCss({ color: theme.text.secondary, flexShrink: 0 })}\n strokeWidth={2.5}\n className=\"plainframe-ui-select-chevron\"\n />\n );\n\n const alignMap: Record<Align, \"start\" | \"center\" | \"end\"> = {\n left: \"start\",\n center: \"center\",\n right: \"end\",\n };\n\n const onTriggerKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>): void => {\n if (disabled) return;\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\" || e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n setOpen(true);\n }\n };\n\n return (\n <div\n css={[emCss(wrapperStyles), wrapperCss].filter(Boolean)}\n className={[\"plainframe-ui-select-wrapper\", className || \"\"].join(\" \").trim()}\n >\n {label && (\n <div\n id={labelId}\n className=\"plainframe-ui-select-label\"\n css={[\n emCss({\n marginBottom: 6,\n fontSize: theme.fontSizes.md,\n fontWeight: 500,\n color: theme.text.secondary,\n }),\n labelCss,\n ].filter(Boolean)}\n >\n {label}\n </div>\n )}\n\n <DropdownMenu size={menuSize} open={open} onOpenChange={setOpen}>\n <DropdownMenuTrigger width=\"100%\" asChild>\n <button\n type=\"button\"\n disabled={disabled}\n aria-haspopup=\"menu\"\n aria-expanded={open || undefined}\n aria-controls={contentId}\n aria-labelledby={label ? labelId : undefined}\n onKeyDown={onTriggerKeyDown}\n onClick={() => setOpen((o) => !o)}\n className=\"plainframe-ui-select-trigger\"\n css={[\n emCss(triggerBaseObj),\n emCss(triggerVariantObj),\n triggerCss,\n focusRing(),\n ].filter(Boolean)}\n >\n <div className=\"plainframe-ui-select-trigger-content\" css={emCss(triggerContentObj)}>\n {triggerRender ? (\n triggerRender(\n selectedLabels.length > 1\n ? selectedLabels\n : selectedLabels[0] ?? (typeof placeholder === \"string\" ? undefined : undefined)\n )\n ) : (\n <>\n {startIcon && <span css={emCss(triggerStartIconObj)}>{startIcon}</span>}\n <span\n css={emCss(titleObj)}\n title={\n typeof (selectedLabels.length ? selectedLabels.join(\", \") : placeholder) ===\n \"string\"\n ? (selectedLabels.length\n ? selectedLabels.join(\", \")\n : (placeholder as string)) ?? undefined\n : undefined\n }\n >\n {selectedLabels.length\n ? selectedLabels.join(\", \")\n : placeholder ?? \"Select…\"}\n </span>\n </>\n )}\n </div>\n {endIcon ?? chevron}\n </button>\n </DropdownMenuTrigger>\n\n <DropdownMenuContent\n id={contentId}\n gap={2}\n align={alignMap[menuAlign]}\n sameWidth={menuWidth == null}\n width={menuWidth ?? width}\n className=\"plainframe-ui-select-menu\"\n css={[\n emCss({\n maxHeight:\n typeof menuMaxHeight === \"number\" ? `${menuMaxHeight}px` : menuMaxHeight,\n overflowY: \"auto\",\n }),\n menuCss,\n ].filter(Boolean)}\n >\n {children}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n}\n\nexport default Select;\n","/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport { css, Interpolation, keyframes, type CSSObject } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { Theme } from \"@emotion/react\";\n\ntype SkeletonProps = {\n isLoading?: boolean;\n radius?: number | string;\n animation?: \"wave\" | \"pulse\" | \"none\";\n as?: keyof JSX.IntrinsicElements;\n children?: React.ReactNode;\n width?: string | number;\n height?: string | number;\n style?: React.CSSProperties;\n className?: string;\n css?: Interpolation<Theme>;\n};\n\nconst px = (v: number | string | undefined, fb: string) =>\n v == null ? fb : typeof v === \"number\" ? `${v}px` : v;\n\nconst wave = keyframes`\n 0% { background-position: -200% 0; }\n 100% { background-position: 200% 0; }\n`;\n\nconst pulse = keyframes`\n 0% { opacity: .6; }\n 50% { opacity: 1; }\n 100% { opacity: .6; }\n`;\n\nexport const Skeleton: React.FC<SkeletonProps> = ({\n isLoading = true,\n radius,\n animation = \"wave\",\n as: Tag = \"span\",\n children,\n width,\n height,\n style,\n className,\n css: userCss,\n}) => {\n const theme = usePlainframeUITheme();\n\n const base = theme.surface.subtleBg;\n const highlight = theme.neutral[200];\n const r = px(radius ?? theme.radius?.lg ?? 8, \"8px\");\n\n const container = css({\n position: \"relative\",\n display: \"inline-block\",\n verticalAlign: \"middle\",\n width: width == null ? \"fit-content\" : px(width, String(width)),\n height: height == null ? \"fit-content\" : px(height, String(height)),\n });\n\n const overlayBase = css({\n position: \"absolute\",\n inset: 0,\n borderRadius: r,\n pointerEvents: \"none\",\n background: base,\n willChange: \"background-position, opacity\",\n });\n\n const overlayAnim =\n animation === \"wave\"\n ? css({\n backgroundImage: `linear-gradient(90deg, ${base} 25%, ${highlight} 50%, ${base} 75%)`,\n backgroundSize: \"200% 100%\",\n animation: `${wave} 1.4s ease-in-out infinite`,\n })\n : animation === \"pulse\"\n ? css({ animation: `${pulse} 1.2s ease-in-out infinite` })\n : css({});\n\n const childWrap = css({\n visibility: isLoading ? \"hidden\" : \"visible\",\n display: \"inline-block\",\n borderRadius: r,\n });\n\n return (\n <Tag\n className={[\"plainframe-ui-skeleton\", className || \"\"].join(\" \").trim()}\n css={[container, userCss]}\n style={style}\n aria-busy={isLoading || undefined}\n >\n {isLoading && <span aria-hidden css={[overlayBase, overlayAnim]} />}\n <span className=\"plainframe-ui-skeleton-content\" css={childWrap}>\n {children}\n </span>\n </Tag>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, { useEffect, useMemo, useRef, useState, useCallback } from \"react\";\nimport { css, type CSSObject } from \"@emotion/react\";\nimport type { Interpolation, Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { AnimatePresence, motion } from \"framer-motion\";\n\ntype Direction = \"horizontal\" | \"vertical\";\n\ntype SliderProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n value?: number;\n defaultValue?: number;\n onChange?: (value: number) => void;\n showStepper?: boolean;\n min?: number;\n max?: number;\n step?: number;\n disabled?: boolean;\n rounded?: boolean;\n showValue?: boolean;\n label?: string;\n fullWidth?: boolean;\n css?: Interpolation<Theme>;\n trackCss?: Interpolation<Theme>;\n thumbCss?: Interpolation<Theme>;\n direction?: Direction;\n className?: string;\n};\n\nconst DEFAULT_TRACK_H = 8;\nconst DEFAULT_THUMB = 20;\nconst DEFAULT_DOT = 4;\n\nexport const Slider: React.FC<SliderProps> = ({\n value,\n defaultValue,\n onChange,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n rounded = false,\n showValue = false,\n showStepper = false,\n label,\n fullWidth = false,\n css: userRootCss,\n trackCss,\n thumbCss,\n direction = \"horizontal\",\n className,\n ...rest\n}) => {\n const theme = usePlainframeUITheme();\n const isVertical = direction === \"vertical\";\n const trackRef = useRef<HTMLDivElement | null>(null);\n\n const [dragging, setDragging] = useState(false);\n const [hoverThumb, setHoverThumb] = useState(false);\n const [hoverTip, setHoverTip] = useState(false);\n\n const isControlled = value !== undefined;\n const clamp = useCallback((v: number) => Math.min(max, Math.max(min, v)), [min, max]);\n const quantize = useCallback(\n (raw: number) => clamp(Math.round((raw - min) / step) * step + min),\n [min, step, clamp]\n );\n\n const [internal, setInternal] = useState<number>(() =>\n quantize(defaultValue == null ? min : defaultValue)\n );\n const current = isControlled ? quantize(value as number) : internal;\n\n useEffect(() => {\n if (!isControlled) setInternal((v) => quantize(v));\n }, [min, max, step, isControlled, quantize]);\n\n const primary600 = theme.palette.primary[600];\n const panelBg = theme.surface.panelBg;\n const disabledInk = theme.neutral[500];\n\n const percent = useMemo(() => {\n const span = max - min || 1;\n return ((current - min) / span) * 100;\n }, [current, min, max]);\n\n const commit = useCallback(\n (next: number) => {\n if (!isControlled) setInternal(next);\n onChange?.(next);\n },\n [isControlled, onChange]\n );\n\n const valueFromPointer = useCallback(\n (clientX: number, clientY: number) => {\n const el = trackRef.current;\n if (!el) return current;\n const rect = el.getBoundingClientRect();\n let ratio = isVertical ? (rect.bottom - clientY) / rect.height : (clientX - rect.left) / rect.width;\n ratio = Math.max(0, Math.min(1, ratio));\n return quantize(min + ratio * (max - min));\n },\n [current, isVertical, min, max, quantize]\n );\n\n const onPointerDownTrack = useCallback(\n (e: React.PointerEvent) => {\n if (disabled) return;\n (e.currentTarget as HTMLElement).setPointerCapture?.(e.pointerId);\n commit(valueFromPointer(e.clientX, e.clientY));\n setDragging(true);\n },\n [disabled, commit, valueFromPointer]\n );\n\n const onPointerDownThumb = useCallback(\n (e: React.PointerEvent) => {\n if (disabled) return;\n (e.currentTarget as HTMLElement).setPointerCapture?.(e.pointerId);\n setDragging(true);\n },\n [disabled]\n );\n\n const onPointerMove = useCallback(\n (e: PointerEvent) => {\n if (!dragging || disabled) return;\n commit(valueFromPointer(e.clientX, e.clientY));\n },\n [dragging, disabled, commit, valueFromPointer]\n );\n\n const stopDrag = useCallback(() => setDragging(false), []);\n\n useEffect(() => {\n if (!dragging) return;\n window.addEventListener(\"pointermove\", onPointerMove);\n window.addEventListener(\"pointerup\", stopDrag);\n window.addEventListener(\"pointercancel\", stopDrag);\n return () => {\n window.removeEventListener(\"pointermove\", onPointerMove);\n window.removeEventListener(\"pointerup\", stopDrag);\n window.removeEventListener(\"pointercancel\", stopDrag);\n };\n }, [dragging, onPointerMove, stopDrag]);\n\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n let next = current;\n if (e.key === \"ArrowRight\" || e.key === \"ArrowUp\") next = current + step;\n else if (e.key === \"ArrowLeft\" || e.key === \"ArrowDown\") next = current - step;\n else if (e.key === \"Home\") next = min;\n else if (e.key === \"End\") next = max;\n else return;\n e.preventDefault();\n commit(quantize(next));\n },\n [disabled, current, step, min, max, commit, quantize]\n );\n\n const showTooltip = dragging || hoverThumb || hoverTip;\n const showHoverRing = (hoverThumb || dragging) && !disabled;\n const ringColor = `color-mix(in srgb, ${primary600} 25%, transparent)`;\n\n const rootCss = css({\n display: \"flex\",\n flexDirection: isVertical ? \"row\" : \"column\",\n alignItems: \"center\",\n padding: isVertical ? \"1rem\" : \"1rem 0\",\n width: isVertical ? \"fit-content\" : fullWidth ? \"100%\" : 350,\n height: isVertical ? 250 : \"auto\",\n boxSizing: \"border-box\",\n });\n\n const labelCss = css({\n marginBottom: isVertical ? 0 : 4,\n marginRight: isVertical ? 8 : 0,\n color: theme.text.primary,\n userSelect: \"none\",\n });\n\n const trackBaseCss = css({\n position: \"relative\",\n width: isVertical ? DEFAULT_TRACK_H : \"100%\",\n height: isVertical ? \"100%\" : DEFAULT_TRACK_H,\n backgroundColor: theme.neutral[200],\n borderRadius: theme.radius.xs,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n touchAction: \"none\",\n outline: \"none\",\n overflow: \"visible\",\n });\n\n const stepperCss = css({\n position: \"absolute\",\n left: isVertical ? \"50%\" : 0,\n top: isVertical ? 2 : \"50%\",\n transform: isVertical ? \"translateX(-50%)\" : \"translateY(-50%)\",\n width: isVertical ? DEFAULT_TRACK_H : `calc(100% - ${DEFAULT_DOT * 0.5}px)`,\n height: isVertical ? `calc(100% - ${DEFAULT_DOT * 0.5}px)` : DEFAULT_TRACK_H,\n display: \"flex\",\n flexDirection: isVertical ? \"column\" : \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n pointerEvents: \"none\",\n zIndex: 0,\n padding: 0,\n });\n\n const stepDotCss = css({\n width: DEFAULT_DOT,\n height: DEFAULT_DOT,\n borderRadius: \"50%\",\n backgroundColor: theme.text.primary,\n opacity: 0.15,\n flex: \"0 0 auto\",\n });\n\n const fillCss_default = css({\n position: \"absolute\",\n left: 0,\n top: isVertical ? `calc(${100 - percent}% )` : 0,\n bottom: 0,\n width: isVertical ? \"100%\" : `${percent}%`,\n height: isVertical ? `${percent}%` : \"100%\",\n backgroundColor: disabled ? disabledInk : primary600,\n borderRadius: theme.radius.sm,\n zIndex: 1,\n transition: \"none\",\n pointerEvents: \"none\",\n });\n\n const thumb_default = css({\n position: \"absolute\",\n appearance: \"none\",\n WebkitAppearance: \"none\",\n background: panelBg,\n width: DEFAULT_THUMB,\n height: DEFAULT_THUMB,\n left: isVertical ? \"50%\" : `calc(${percent}% - ${DEFAULT_THUMB / 2}px)`,\n bottom: isVertical ? `${percent}%` : \"auto\",\n top: isVertical ? \"auto\" : \"50%\",\n transform: isVertical ? \"translate(-50%, 50%)\" : \"translateY(-50%)\",\n borderRadius: rounded ? theme.radius.full : `calc(${theme.radius.md} * 0.75)`,\n border: `2px solid ${disabled ? disabledInk : primary600}`,\n cursor: disabled ? \"not-allowed\" : \"grab\",\n zIndex: 5,\n padding: 0,\n lineHeight: 0,\n transition: \"box-shadow .16s ease\",\n boxShadow: showHoverRing ? `0 0 0 ${dragging ? 4 : 8}px ${ringColor}` : `0 0 0 0px ${ringColor}`,\n \"&:focus-visible\": {\n boxShadow: `0 0 0 4px ${ringColor}`,\n outline: \"none\",\n },\n });\n\n const tipAnchorCss = css({\n position: \"relative\",\n backgroundColor: \"transparent\",\n padding: \"1rem\",\n top: !isVertical ? -28 : -7.5,\n left: isVertical ? 9 : -7.5,\n pointerEvents: \"none\",\n });\n\n const tooltipCss = css({\n position: \"absolute\",\n top: isVertical ? `calc(50% - ${DEFAULT_DOT * 2.5}px)` : 0,\n left: isVertical ? \"auto\" : `calc(50% - ${DEFAULT_DOT * 3}px)`,\n transform: isVertical ? \"translateY(-50%)\" : \"translateX(-50%)\",\n backgroundColor: theme.neutral[800],\n color: theme.neutral[0],\n padding: `0.6rem 0.25rem`,\n fontSize: 12,\n borderRadius: 6,\n whiteSpace: \"nowrap\",\n pointerEvents: \"auto\",\n zIndex: 6,\n \"&::after\": {\n content: '\"\"',\n position: \"absolute\",\n width: 6,\n height: 6,\n backgroundColor: theme.neutral[800],\n borderRadius: 2,\n bottom: isVertical ? \"50%\" : -2,\n left: isVertical ? -2.5 : \"50%\",\n transform: isVertical ? \"translateY(50%) rotate(45deg)\" : \"translateX(-50%) rotate(45deg)\",\n },\n });\n\n const rootUserCss = userRootCss as CSSObject | undefined;\n const trackUserCss = trackCss as CSSObject | undefined;\n const thumbUserCss = thumbCss as CSSObject | undefined;\n\n const stepsCount = Math.floor((max - min) / step) + 1;\n\n return (\n <div\n {...rest}\n role=\"group\"\n aria-label={label}\n className={[\"plainframe-ui-slider\", className || \"\"].join(\" \").trim()}\n css={[rootCss, rootUserCss]}\n data-orientation={isVertical ? \"vertical\" : \"horizontal\"}\n >\n {label && !isVertical && (\n <div className=\"plainframe-ui-slider-label\" css={labelCss}>\n {label}\n </div>\n )}\n\n <div\n ref={trackRef}\n className=\"plainframe-ui-slider-track\"\n css={[trackBaseCss, trackUserCss]}\n onPointerDown={onPointerDownTrack}\n >\n {showStepper && step > 0 && (\n <div className=\"plainframe-ui-slider-stepper\" css={stepperCss}>\n {Array.from({ length: stepsCount }).map((_, i) => (\n <span key={i} className=\"plainframe-ui-slider-step-dot\" css={stepDotCss} />\n ))}\n </div>\n )}\n\n <div className=\"plainframe-ui-slider-fill\" css={fillCss_default} />\n\n <button\n type=\"button\"\n role=\"slider\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={current}\n aria-disabled={disabled || undefined}\n tabIndex={disabled ? -1 : 0}\n onKeyDown={onKeyDown}\n onPointerDown={onPointerDownThumb}\n onPointerUp={stopDrag}\n onPointerCancel={stopDrag}\n onMouseEnter={() => setHoverThumb(true)}\n onMouseLeave={() => setHoverThumb(false)}\n className=\"plainframe-ui-slider-thumb\"\n css={[thumb_default, thumbUserCss]}\n >\n <AnimatePresence>\n {showTooltip && (\n <motion.div\n className=\"plainframe-ui-slider-tooltip-anchor\"\n css={tipAnchorCss}\n initial={{ opacity: 0, scale: 0.9, y: isVertical ? 0 : 4, x: isVertical ? 4 : 0 }}\n animate={{ opacity: 1, scale: 1, y: 0, x: 0 }}\n exit={{ opacity: 0, scale: 0.9, y: isVertical ? 0 : 4, x: isVertical ? 4 : 0 }}\n transition={{ duration: 0.16, ease: \"easeOut\" }}\n >\n <motion.div\n className=\"plainframe-ui-slider-tooltip\"\n css={tooltipCss}\n initial={{ opacity: 0, y: isVertical ? 0 : 4, x: isVertical ? -4 : 0 }}\n animate={{ opacity: 1, y: 0, x: 0 }}\n exit={{ opacity: 0, y: isVertical ? 0 : 4, x: isVertical ? -4 : 0 }}\n transition={{ duration: 0.16, ease: \"easeOut\" }}\n onMouseEnter={() => setHoverTip(true)}\n onMouseLeave={() => setHoverTip(false)}\n >\n {current}\n </motion.div>\n </motion.div>\n )}\n </AnimatePresence>\n {showValue && !showTooltip ? null : null}\n </button>\n </div>\n\n {label && isVertical && (\n <div className=\"plainframe-ui-slider-label\" css={[labelCss, { marginLeft: 8 }]}>\n {label}\n </div>\n )}\n </div>\n );\n};\n\nSlider.displayName = \"Slider\";","/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport { css, Interpolation, type CSSObject } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { useFocusRing } from \"../utils/focusRing\";\nimport { Check } from \"lucide-react\";\nimport { Theme } from \"@emotion/react\";\n\nexport type StepProps = {\n value: string | number | boolean;\n index?: number;\n label?: number | React.ReactNode;\n disabled?: boolean;\n complete?: boolean;\n icon?: React.ReactNode;\n completedIcon?: React.ReactNode;\n};\n\ntype TitlePos = \"top\" | \"right\" | \"bottom\" | \"left\";\n\ntype StepperProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"style\"> & {\n variant?: \"subtle\" | \"outlined\" | \"filled\";\n value?: StepProps[\"value\"];\n defaultValue?: StepProps[\"value\"];\n onChange?: (value: StepProps[\"value\"]) => void;\n disabled?: boolean;\n allowForward?: boolean | ((fromIndex: number, toIndex: number) => boolean);\n allComplete?: boolean;\n color?: string;\n activeBgColor?: string;\n activeColor?: string;\n completeBgColor?: string;\n completeColor?: string;\n separator?: React.ReactNode;\n titlePosition?: TitlePos;\n width?: number | string;\n css?: Interpolation<Theme>;\n className?: string;\n children?: React.ReactNode;\n};\n\nconst rootCss = (mw?: number | string) =>\n css({\n \"--pf-ease\": \"cubic-bezier(.4,0,.2,1)\",\n display: \"flex\",\n flexDirection: \"column\",\n maxWidth: mw == null ? \"100%\" : typeof mw === \"number\" ? `${mw}px` : mw,\n width: \"100%\",\n });\n\nconst trackCss = css({\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n gap: 12,\n});\n\nconst stepWrapCss = (pos: TitlePos) =>\n css({\n display: \"flex\",\n minWidth: 0,\n flex: \"0 0 auto\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 8,\n flexDirection:\n pos === \"left\"\n ? \"row-reverse\"\n : pos === \"right\"\n ? \"row\"\n : pos === \"top\"\n ? \"column-reverse\"\n : \"column\",\n });\n\nconst connectorTrackCss = (neutral300: string) =>\n css({\n position: \"relative\",\n flex: \"1 1 24px\",\n minWidth: 6,\n height: 2,\n borderRadius: 1,\n background: neutral300,\n overflow: \"hidden\",\n });\n\nconst connectorFillCss = (pct: number, color: string, animate: boolean) =>\n css({\n position: \"absolute\",\n inset: 0,\n transformOrigin: \"left center\",\n transform: `scaleX(${pct})`,\n background: color,\n transition: animate ? \"all .28s var(--pf-ease)\" : \"none\",\n willChange: \"transform\",\n });\n\nconst separatorWrapCss = css({\n flex: \"1 1 24px\",\n minWidth: 2,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n});\n\nconst nodeCss = (\n size: number,\n bg: string,\n fg: string,\n outline: string,\n radiusFull: string\n) =>\n css({\n position: \"relative\",\n appearance: \"none\",\n border: `2px solid ${outline}`,\n width: size,\n height: size,\n minWidth: size,\n minHeight: size,\n borderRadius: radiusFull,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\",\n userSelect: \"none\",\n background: bg,\n color: fg,\n transition: \"all .22s var(--pf-ease)\",\n \"&:disabled, &[aria-disabled='true']\": { opacity: 0.55, cursor: \"not-allowed\" },\n });\n\nconst numCss = css({\n fontWeight: 700,\n fontSize: 14,\n lineHeight: 1,\n maxWidth: \"100%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n});\n\nconst layerCss = (show: boolean) =>\n css({\n position: \"absolute\",\n inset: 0,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transform: `scale(${show ? 1 : 0.3})`,\n opacity: show ? 1 : 0,\n transition: \"background .22s var(--pf-ease), transform .16s var(--pf-ease), opacity .16s var(--pf-ease)\",\n willChange: \"transform, opacity\",\n });\n\nconst labelCss = (\n strong: boolean,\n textPrimary: string,\n textSecondary: string,\n radiusXs: string,\n spacingXs: number\n) =>\n css({\n fontSize: 14,\n color: strong ? textPrimary : textSecondary,\n maxWidth: \"100%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n transition: \"all .16s ease\",\n textAlign: \"center\",\n fontWeight: 700,\n margin: `0 ${spacingXs}px`,\n borderRadius: radiusXs,\n });\n\ntype NormalizedVariant = \"subtle\" | \"outlined\";\n\ntype StepItemProps = {\n i: number;\n item: StepProps;\n size: number;\n tokens: {\n MAIN: string;\n ACTIVE_TEXT: string;\n ACTIVE_TEXT_OUTLINED: string;\n COMPLETE_BG: string;\n COMPLETE_FG: string;\n UPCOMING_BG_FILLED: string;\n UPCOMING_OUTLINE: string;\n UPCOMING_FG: string;\n };\n variant: NormalizedVariant;\n titlePosition: TitlePos;\n isActive: boolean;\n completed: boolean;\n disabled: boolean;\n connectorColor: string;\n showConnector: boolean;\n animate: boolean;\n separator?: React.ReactNode;\n canGoToIndex: (toIndex: number) => boolean;\n setSelected: (v: StepProps[\"value\"]) => void;\n};\n\nconst StepItem = React.memo<StepItemProps>(function StepItem({\n i,\n item,\n size,\n tokens,\n variant,\n titlePosition,\n isActive,\n completed,\n disabled,\n connectorColor,\n showConnector,\n animate,\n separator,\n canGoToIndex,\n setSelected,\n}) {\n const theme = usePlainframeUITheme();\n const focusRing = useFocusRing();\n\n const {\n MAIN,\n ACTIVE_TEXT,\n ACTIVE_TEXT_OUTLINED,\n COMPLETE_BG,\n COMPLETE_FG,\n UPCOMING_BG_FILLED,\n UPCOMING_OUTLINE,\n UPCOMING_FG,\n } = tokens;\n\n let bg = \"transparent\",\n fg = UPCOMING_FG,\n outline = UPCOMING_OUTLINE;\n\n if (variant === \"subtle\") {\n if (completed) {\n bg = COMPLETE_BG;\n fg = COMPLETE_FG;\n outline = COMPLETE_BG;\n } else if (isActive) {\n bg = MAIN;\n fg = ACTIVE_TEXT;\n outline = MAIN;\n } else {\n bg = UPCOMING_BG_FILLED;\n fg = UPCOMING_FG;\n outline = UPCOMING_BG_FILLED;\n }\n } else {\n if (completed) {\n bg = COMPLETE_BG;\n fg = COMPLETE_FG;\n outline = COMPLETE_BG;\n } else if (isActive) {\n bg = \"transparent\";\n fg = ACTIVE_TEXT_OUTLINED;\n outline = MAIN;\n } else {\n bg = \"transparent\";\n fg = UPCOMING_FG;\n outline = UPCOMING_OUTLINE;\n }\n }\n\n const label = item.label;\n const baseIcon = item.icon ?? <span css={numCss}>{typeof label === \"number\" ? label : i + 1}</span>;\n const doneIcon = item.completedIcon ?? <Check strokeWidth={3.25} size={16} />;\n\n return (\n <>\n <div className=\"plainframe-ui-step\" css={stepWrapCss(titlePosition)}>\n <button\n className=\"plainframe-ui-step-node\"\n css={[nodeCss(size, bg, fg, outline, String(theme.radius.full)), !disabled && focusRing({color: isActive ? \"primary\" : \"neutral\"})]}\n onClick={() => {\n if (!disabled && canGoToIndex(i)) setSelected(item.value);\n }}\n tabIndex={disabled ? -1 : 0}\n aria-current={isActive ? \"step\" : undefined}\n aria-disabled={disabled || undefined}\n disabled={disabled}\n aria-label={typeof label === \"string\" ? label : `Step ${i + 1}`}\n >\n <span className=\"plainframe-ui-step-content\" css={layerCss(!completed)}>\n {baseIcon}\n </span>\n <span className=\"plainframe-ui-step-check\" css={layerCss(!!completed)}>\n {doneIcon}\n </span>\n </button>\n\n {label && (\n <span\n className=\"plainframe-ui-step-label\"\n css={labelCss(\n completed || isActive,\n theme.text.primary,\n theme.text.secondary,\n String(theme.radius.xs),\n Number(theme.spacing.xs)\n )}\n >\n {label}\n </span>\n )}\n </div>\n\n {showConnector &&\n (separator ? (\n <div className=\"plainframe-ui-stepper-separator\" css={separatorWrapCss}>\n {separator}\n </div>\n ) : (\n <div className=\"plainframe-ui-step-connector\" css={connectorTrackCss(theme.neutral[300])}>\n <div\n className=\"plainframe-ui-step-connector-fill\"\n css={connectorFillCss(completed ? 1 : 0, connectorColor, animate)}\n aria-hidden=\"true\"\n />\n </div>\n ))}\n </>\n );\n},\n(a, b) =>\n a.isActive === b.isActive &&\n a.completed === b.completed &&\n a.disabled === b.disabled &&\n a.variant === b.variant &&\n a.separator === b.separator &&\n a.connectorColor === b.connectorColor &&\n a.titlePosition === b.titlePosition &&\n a.size === b.size);\n\nexport const Step: React.FC<StepProps> = () => null;\nStep.displayName = \"PlainframeUIStep\";\n\nexport const Stepper: React.FC<StepperProps> = ({\n variant = \"subtle\",\n value,\n defaultValue,\n onChange,\n disabled = false,\n allowForward = true,\n allComplete = false,\n color,\n activeBgColor,\n activeColor,\n completeBgColor,\n completeColor,\n separator,\n titlePosition = \"right\",\n width,\n css: userCss,\n className,\n children,\n ...rest\n}) => {\n const theme = usePlainframeUITheme();\n const normalizedVariant: NormalizedVariant = variant === \"outlined\" ? \"outlined\" : \"subtle\";\n\n const steps: StepProps[] = React.useMemo(() => {\n const arr = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<StepProps> =>\n React.isValidElement(child) && child.type === Step\n );\n if (!arr.length) return [{ value: 1 }, { value: 2 }, { value: 3 }];\n return arr.map((child, index) => ({ index, ...child.props }));\n }, [children]);\n\n const resolve = React.useCallback(\n (c?: string, fallback?: string) => (c ? ((theme.palette)?.[c] ?? c) : fallback),\n [theme.palette]\n );\n\n const tokens = React.useMemo(\n () => ({\n MAIN: String(resolve(activeBgColor, typeof theme.palette.primary[600] === \"string\" ? theme.palette.primary[600] : \"\")),\n ACTIVE_TEXT: String(resolve(activeColor, typeof theme.text.onColors.primary === \"string\" ? theme.text.onColors.primary : \"\")),\n ACTIVE_TEXT_OUTLINED: String(resolve(activeColor, typeof theme.text.primary === \"string\" ? theme.text.primary : \"\")),\n COMPLETE_BG: String(resolve(completeBgColor, typeof theme.palette.primary[600] === \"string\" ? theme.palette.primary[600] : \"\")),\n COMPLETE_FG: String(resolve(completeColor, typeof theme.text.onColors.primary === \"string\" ? theme.text.onColors.primary : \"\")),\n UPCOMING_BG_FILLED: String(typeof theme.neutral[100] === \"string\" ? theme.neutral[100] : \"\"),\n UPCOMING_OUTLINE: String(typeof theme.neutral[300] === \"string\" ? theme.neutral[300] : \"\"),\n UPCOMING_FG: String(typeof theme.text.secondary === \"string\" ? theme.text.secondary : \"\"),\n }),\n [\n resolve,\n activeBgColor,\n activeColor,\n completeBgColor,\n completeColor,\n theme.palette.primary,\n theme.neutral,\n theme.text,\n ]\n );\n\n const connectorColor = React.useMemo(\n () => {\n const resolved = resolve(color, theme.palette.primary[600]);\n return typeof resolved === \"string\" ? resolved : String(resolved);\n },\n [resolve, color, theme.palette.primary]\n );\n\n const [internal, setInternal] = React.useState<StepProps[\"value\"]>(() => {\n const has = steps.some((i) => i?.value === defaultValue);\n return has ? (defaultValue as StepProps[\"value\"]) : steps[0]?.value;\n });\n\n const isControlled = value !== undefined;\n const current = (isControlled ? value : internal) as StepProps[\"value\"];\n\n const { activeIndex, afterLast } = React.useMemo(() => {\n const directIdx = steps.findIndex((i) => i.value === current);\n if (directIdx !== -1) return { activeIndex: directIdx, afterLast: false };\n if (typeof current === \"number\") {\n const inferred = Math.floor(current) - 1;\n if (inferred >= steps.length) return { activeIndex: steps.length - 1, afterLast: true };\n if (inferred >= 0) return { activeIndex: inferred, afterLast: false };\n }\n return { activeIndex: 0, afterLast: false };\n }, [steps, current]);\n\n const setSelected = React.useCallback(\n (v: StepProps[\"value\"]) => {\n if (disabled) return;\n if (!isControlled) setInternal(v);\n onChange?.(v);\n },\n [disabled, isControlled, onChange]\n );\n\n const isStepComplete = React.useCallback(\n (idx: number) => allComplete || !!steps[idx]?.complete || (afterLast ? true : idx < activeIndex),\n [allComplete, steps, afterLast, activeIndex]\n );\n\n const canGoToIndex = React.useCallback(\n (toIndex: number) => {\n if (disabled) return false;\n const target = steps[toIndex];\n if (!target || target.disabled) return false;\n if (typeof allowForward === \"boolean\") {\n if (allowForward === false && toIndex > activeIndex) return false;\n } else if (typeof allowForward === \"function\") {\n if (!allowForward(activeIndex, toIndex)) return false;\n }\n return true;\n },\n [disabled, steps, allowForward, activeIndex]\n );\n\n const [animate, setAnimate] = React.useState(false);\n React.useEffect(() => {\n const id = requestAnimationFrame(() => setAnimate(true));\n return () => cancelAnimationFrame(id);\n }, []);\n\n const onKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (!steps.length || disabled) return;\n let next = activeIndex;\n if (e.key === \"ArrowRight\") next = Math.min(steps.length - 1, activeIndex + 1);\n else if (e.key === \"ArrowLeft\") next = Math.max(0, activeIndex - 1);\n else if (e.key === \"Home\") next = 0;\n else if (e.key === \"End\") next = steps.length - 1;\n else return;\n e.preventDefault();\n if (canGoToIndex(next)) setSelected(steps[next]!.value);\n },\n [steps, disabled, activeIndex, canGoToIndex, setSelected]\n );\n\n const size = 34;\n\n return (\n <div\n tabIndex={-1}\n className={[\"plainframe-ui-stepper\", className || \"\"].join(\" \").trim()}\n css={[rootCss(width), userCss as CSSObject]}\n {...rest}\n >\n <div\n tabIndex={-1}\n className=\"plainframe-ui-stepper-track\"\n role=\"list\"\n onKeyDown={onKeyDown}\n css={trackCss}\n >\n {steps.map((step, i) => (\n <React.Fragment key={String(step.value ?? i)}>\n <StepItem\n i={i}\n item={step}\n size={size}\n tokens={tokens}\n variant={normalizedVariant}\n titlePosition={titlePosition}\n isActive={!afterLast && i === activeIndex}\n completed={isStepComplete(i)}\n disabled={disabled || !!step.disabled}\n connectorColor={connectorColor}\n showConnector={i < steps.length - 1}\n animate={animate}\n separator={separator}\n canGoToIndex={canGoToIndex}\n setSelected={setSelected}\n />\n </React.Fragment>\n ))}\n </div>\n </div>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, {\n useState,\n useCallback,\n useEffect,\n useRef,\n Children,\n isValidElement,\n createContext,\n useContext,\n} from \"react\";\nimport { css, keyframes, type Interpolation, type Theme } from \"@emotion/react\";\n\ntype Variant = \"toggle\" | \"flash\";\ntype Effect = \"rotate\" | \"scale\" | \"scale-rotate\";\n\ntype Phase = \"idle\" | \"first\" | \"second\";\n\ninterface SwapContextValue {\n activeValue: string;\n variant: Variant;\n animationEffect: Effect;\n flashDuration: number;\n isAnimating: boolean;\n handleSwap: () => void;\n disabled: boolean;\n transitionFrom: string | null;\n transitionTo: string | null;\n transitionPhase: Phase;\n}\n\nconst SwapContext = createContext<SwapContextValue | null>(null);\n\nconst useSwapContext = () => {\n const ctx = useContext(SwapContext);\n if (!ctx) {\n throw new Error(\"SwapItem must be used within Swap\");\n }\n return ctx;\n};\n\nexport interface SwapProps {\n variant?: Variant;\n animationEffect?: Effect;\n flashDuration?: number;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n disabled?: boolean;\n children: React.ReactNode;\n className?: string;\n css?: Interpolation<Theme>;\n}\n\nexport interface SwapItemProps {\n value: string;\n children: React.ReactNode;\n className?: string;\n css?: Interpolation<Theme>;\n}\n\nconst ANIMATION_MS = 220;\n\nconst scaleAnim = keyframes`\n 0% { transform: scale(1); }\n 45% { transform: scale(0.85); }\n 55% { transform: scale(0.85); }\n 100% { transform: scale(1); }\n`;\n\nconst rotateAnim = keyframes`\n 0% { transform: rotate(0deg); }\n 49% { transform: rotate(179deg); }\n 51% { transform: rotate(181deg); }\n 100% { transform: rotate(360deg); }\n`;\n\nconst scaleRotateAnim = keyframes`\n 0% { transform: scale(1) rotate(0deg); }\n 40% { transform: scale(0.9) rotate(140deg); }\n 50% { transform: scale(0.85) rotate(180deg); }\n 60% { transform: scale(0.9) rotate(220deg); }\n 100% { transform: scale(1) rotate(360deg); }\n`;\n\nexport const SwapItem = React.forwardRef<HTMLDivElement, SwapItemProps>(\n ({ value, children, className = \"\", css: customCss }, ref) => {\n const {\n activeValue,\n animationEffect,\n isAnimating,\n transitionFrom,\n transitionTo,\n transitionPhase,\n } = useSwapContext();\n\n const isOverlayEffect =\n animationEffect === \"rotate\" ||\n animationEffect === \"scale-rotate\" ||\n animationEffect === \"scale\";\n\n let shouldShow = false;\n let opacity = 0;\n\n if (!isAnimating || !isOverlayEffect) {\n shouldShow = value === activeValue;\n opacity = shouldShow ? 1 : 0;\n } else {\n const isFrom = value === transitionFrom;\n const isTo = value === transitionTo;\n\n if (isFrom || isTo) {\n shouldShow = true;\n if (transitionPhase === \"first\") {\n opacity = isFrom ? 1 : 0;\n } else {\n opacity = isTo ? 1 : 0;\n }\n } else {\n shouldShow = false;\n opacity = 0;\n }\n }\n\n const itemCss = css({\n gridArea: \"1 / 1 / 2 / 2\",\n transition: `opacity ${ANIMATION_MS / 2}ms ease-out`,\n opacity,\n display: shouldShow ? \"block\" : \"none\",\n });\n\n return (\n <div\n ref={ref}\n className={`pfui-swap-item ${className}`}\n css={[itemCss, customCss]}\n aria-hidden={opacity === 0}\n >\n {children}\n </div>\n );\n }\n);\n\nSwapItem.displayName = \"SwapItem\";\n\nexport const Swap = React.forwardRef<HTMLDivElement, SwapProps>(\n (\n {\n variant = \"toggle\",\n animationEffect = \"scale\",\n flashDuration = 750,\n value: controlledValue,\n defaultValue,\n onChange,\n disabled = false,\n children,\n className = \"\",\n css: customCss,\n },\n ref\n ) => {\n const childArray = Children.toArray(children).filter(isValidElement);\n const values = childArray\n .filter((child: any) => child.type === SwapItem)\n .map((child: any) => child.props.value as string);\n\n const initial = defaultValue ?? values[0] ?? \"\";\n\n const [internalValue, setInternalValue] = useState(initial);\n const [isAnimating, setIsAnimating] = useState(false);\n const [isFlashing, setIsFlashing] = useState(false);\n const [transitionFrom, setTransitionFrom] = useState<string | null>(null);\n const [transitionTo, setTransitionTo] = useState<string | null>(null);\n const [transitionPhase, setTransitionPhase] = useState<Phase>(\"idle\");\n\n const isControlled = controlledValue !== undefined;\n const activeValue = isControlled ? (controlledValue as string) : internalValue;\n\n const flashMs = flashDuration ?? 200;\n\n const timeoutsRef = useRef<number[]>([]);\n\n const clearAllTimeouts = () => {\n timeoutsRef.current.forEach((id) => window.clearTimeout(id));\n timeoutsRef.current = [];\n };\n\n useEffect(() => {\n return () => {\n clearAllTimeouts();\n };\n }, []);\n\n const commitValue = (next: string) => {\n if (isControlled) {\n onChange?.(next);\n } else {\n setInternalValue(next);\n }\n };\n\n const runSwap = useCallback(\n (from: string, to: string, after?: () => void) => {\n clearAllTimeouts();\n setIsAnimating(true);\n setTransitionFrom(from);\n setTransitionTo(to);\n setTransitionPhase(\"first\");\n\n const mid = window.setTimeout(() => {\n commitValue(to);\n setTransitionPhase(\"second\");\n }, ANIMATION_MS / 2);\n\n const end = window.setTimeout(() => {\n setIsAnimating(false);\n setTransitionFrom(null);\n setTransitionTo(null);\n setTransitionPhase(\"idle\");\n after?.();\n }, ANIMATION_MS);\n\n timeoutsRef.current.push(mid, end);\n },\n [isControlled, onChange]\n );\n\n const handleSwap = useCallback(() => {\n if (disabled || isAnimating || isFlashing || values.length <= 1) return;\n\n const base = initial;\n const baseIndex = values.indexOf(base);\n const nextIndexFromBase =\n baseIndex === -1 ? 0 : (baseIndex + 1) % values.length;\n const nextFromBase = values[nextIndexFromBase];\n\n if (variant === \"toggle\") {\n const currentIndex = values.indexOf(activeValue);\n const nextIndex = (currentIndex + 1) % values.length;\n const nextValue = values[nextIndex];\n runSwap(activeValue, nextValue);\n } else {\n setIsFlashing(true);\n\n const flashValue =\n nextFromBase === base\n ? values[(nextIndexFromBase + 1) % values.length]\n : nextFromBase;\n\n runSwap(base, flashValue, () => {\n const pause = window.setTimeout(() => {\n runSwap(flashValue, base, () => {\n setIsFlashing(false);\n });\n }, flashMs);\n timeoutsRef.current.push(pause);\n });\n }\n }, [\n disabled,\n isAnimating,\n isFlashing,\n values,\n activeValue,\n variant,\n flashMs,\n runSwap,\n initial,\n ]);\n\n const animationKeyframes =\n animationEffect === \"rotate\"\n ? rotateAnim\n : animationEffect === \"scale-rotate\"\n ? scaleRotateAnim\n : scaleAnim;\n\n const swapCss = css({\n position: \"relative\",\n display: \"inline-grid\",\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n opacity: disabled ? 0.55 : 1,\n transformOrigin: \"center\",\n backfaceVisibility: \"hidden\",\n ...(isAnimating && {\n animation: `${animationKeyframes} ${ANIMATION_MS}ms cubic-bezier(0.4, 0, 0.2, 1)`,\n }),\n });\n\n const contextValue: SwapContextValue = {\n activeValue,\n variant,\n animationEffect,\n flashDuration: flashMs,\n isAnimating,\n handleSwap,\n disabled,\n transitionFrom,\n transitionTo,\n transitionPhase,\n };\n\n return (\n <SwapContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={`pfui-swap ${className}`}\n css={[swapCss, customCss]}\n onClick={handleSwap}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n onKeyDown={(e) => {\n if (disabled) return;\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleSwap();\n }\n }}\n aria-disabled={disabled}\n >\n {children}\n </div>\n </SwapContext.Provider>\n );\n }\n);\n\nSwap.displayName = \"Swap\";","/** @jsxImportSource @emotion/react */\nimport React from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { useFocusRing } from \"../utils/focusRing\";\n\ntype Variant = \"subtle\" | \"underlined\" | \"text\" | \"ghost\";\ntype Direction = \"horizontal\" | \"vertical\";\n\nexport type TabsProps = {\n children?: React.ReactNode;\n defaultValue?: string | number | boolean;\n value?: string | number | boolean;\n onChange?: (value: string | number | boolean) => void;\n variant?: Variant;\n direction?: Direction;\n className?: string;\n shadow?: boolean;\n width?: number | string;\n fullWidth?: boolean;\n rounded?: boolean;\n titlePosition?: \"top\" | \"right\" | \"bottom\" | \"left\";\n align?: \"left\" | \"center\" | \"right\";\n css?: Interpolation<Theme>;\n trackCss?: Interpolation<Theme>;\n thumbCss?: Interpolation<Theme>;\n activeTabCss?: Interpolation<Theme>;\n activeIndicatorCss?: Interpolation<Theme>;\n};\n\nexport type TabProps = {\n value: string | number | boolean;\n disabled?: boolean;\n className?: string;\n children?: React.ReactNode;\n activeCss?: Interpolation<Theme>;\n css?: Interpolation<Theme>;\n};\n\nexport type TabContentProps = {\n value: string | number | boolean;\n className?: string;\n children?: React.ReactNode;\n css?: Interpolation<Theme>;\n};\n\nexport const Tab: React.FC<TabProps> = () => null;\nTab.displayName = \"PF.Tab\";\n\nexport const TabContent: React.FC<TabContentProps> = ({ children }) => <>{children}</>;\nTabContent.displayName = \"PF.TabContent\";\n\nfunction unwrapEmotion(child: React.ReactElement) {\n const propsAny = child.props as any;\n const origType = propsAny?.__EMOTION_TYPE_PLEASE_DO_NOT_USE__ ?? child.type;\n return { type: origType, props: propsAny };\n}\n\nexport const Tabs: React.FC<TabsProps> = ({\n children,\n defaultValue,\n value,\n onChange,\n variant = \"subtle\",\n direction = \"horizontal\",\n className,\n shadow = false,\n width,\n fullWidth = false,\n rounded = false,\n titlePosition = \"right\",\n align,\n css: userCss,\n trackCss: userTrackCss,\n thumbCss: userThumbCss,\n activeTabCss,\n activeIndicatorCss,\n}) => {\n const theme = usePlainframeUITheme();\n const focusRing = useFocusRing();\n const isV = direction === \"vertical\";\n const stretch = fullWidth || width != null;\n const effAlign: \"left\" | \"center\" | \"right\" = align ?? (isV ? \"left\" : \"center\");\n const justifyMap = { left: \"flex-start\", center: \"center\", right: \"flex-end\" } as const;\n\n type ParsedTab = {\n value: string | number | boolean;\n disabled?: boolean;\n node: React.ReactNode;\n className?: string;\n css?: Interpolation<Theme>;\n activeCss?: Interpolation<Theme>;\n };\n\n const { tabs, contents } = React.useMemo(() => {\n const t: ParsedTab[] = [];\n const c: Array<{ value: TabContentProps[\"value\"]; node: React.ReactNode; className?: string; css?: Interpolation<Theme> }> = [];\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n const { type: origType, props } = unwrapEmotion(child);\n const isTab = origType === Tab || (origType as any)?.displayName === Tab.displayName;\n const isContent = origType === TabContent || (origType as any)?.displayName === TabContent.displayName;\n if (isTab) {\n const p = props as TabProps;\n if (p?.value === undefined) return;\n t.push({ value: p.value, disabled: p.disabled, node: p.children, className: p.className, css: p.css, activeCss: p.activeCss });\n } else if (isContent) {\n const p = props as TabContentProps;\n if (p?.value === undefined) return;\n c.push({ value: p.value, node: p.children, className: p.className, css: p.css });\n }\n });\n return { tabs: t, contents: c };\n }, [children]);\n\n const firstEnabled = React.useMemo(() => tabs.find((t) => !t.disabled)?.value, [tabs]);\n const [internal, setInternal] = React.useState(() => {\n const ok = defaultValue !== undefined && tabs.some((t) => t.value === defaultValue && !t.disabled);\n return ok ? defaultValue : firstEnabled;\n });\n const isControlled = value !== undefined;\n const currentValue = (isControlled ? value : internal) as any;\n\n const listRef = React.useRef<HTMLDivElement>(null);\n const btnRefs = React.useRef<Array<HTMLButtonElement | null>>([]);\n const activeIndex = Math.max(0, tabs.findIndex((t) => t.value === currentValue));\n\n type Ind = { left: number; top: number; width: number; height: number };\n const [indicator, setIndicator] = React.useState<Ind>({ left: 0, top: 0, width: 0, height: 0 });\n const [ready, setReady] = React.useState(false);\n const [animate, setAnimate] = React.useState(false);\n\n const measure = React.useCallback(() => {\n const list = listRef.current;\n const btn = btnRefs.current[activeIndex];\n if (!list || !btn) return;\n const listRect = list.getBoundingClientRect();\n const r = btn.getBoundingClientRect();\n setIndicator({ left: r.left - listRect.left, top: r.top - listRect.top, width: r.width, height: r.height });\n }, [activeIndex]);\n\n React.useLayoutEffect(() => {\n measure();\n if (!ready) {\n setReady(true);\n requestAnimationFrame(() => setAnimate(true));\n }\n }, [measure, ready]);\n\n React.useEffect(() => {\n const ro = new ResizeObserver(() => measure());\n if (listRef.current) ro.observe(listRef.current);\n const btn = btnRefs.current[activeIndex];\n if (btn) ro.observe(btn);\n const onWin = () => measure();\n window.addEventListener(\"resize\", onWin);\n return () => {\n ro.disconnect();\n window.removeEventListener(\"resize\", onWin);\n };\n }, [measure, activeIndex]);\n\n const nextEnabledIndex = (from: number, dir: 1 | -1) => {\n if (!tabs.length) return from;\n let i = from;\n for (let step = 0; step < tabs.length; step++) {\n i = (i + dir + tabs.length) % tabs.length;\n if (!tabs[i].disabled) return i;\n }\n return from;\n };\n\n const setSelected = (v: any) => {\n if (!isControlled) setInternal(v);\n onChange?.(v);\n };\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (!tabs.length) return;\n let next = activeIndex;\n if (e.key === (isV ? \"ArrowDown\" : \"ArrowRight\")) next = nextEnabledIndex(activeIndex, 1);\n else if (e.key === (isV ? \"ArrowUp\" : \"ArrowLeft\")) next = nextEnabledIndex(activeIndex, -1);\n else if (e.key === \"Home\") next = tabs.findIndex((t) => !t.disabled);\n else if (e.key === \"End\") {\n const rev = [...tabs].reverse().findIndex((t) => !t.disabled);\n next = rev === -1 ? activeIndex : tabs.length - 1 - rev;\n } else return;\n e.preventDefault();\n const v = tabs[next]?.value;\n if (v !== undefined) setSelected(v);\n requestAnimationFrame(() => btnRefs.current[next]?.focus());\n };\n\n const textPrimary = theme.text.primary;\n const textSecondary = theme.text.secondary;\n const disabledText = theme.neutral[500];\n\n const trackBg = variant === \"subtle\" ? theme.surface.subtleBg : variant === \"ghost\" ? \"transparent\" : \"transparent\";\n const thumbBg = variant === \"subtle\" ? theme.surface.panelBg ?? theme.surface.panelBg : variant === \"ghost\" ? theme.surface.subtleBg : \"transparent\";\n const underlineColor = theme.text.primary;\n const showThumb = variant === \"subtle\" || variant === \"ghost\" || variant === \"underlined\";\n\n const rootCss = css({\n \"--pf-ease\": \"cubic-bezier(.4,0,.2,1)\",\n display: \"flex\",\n flexDirection: \"column\",\n width: fullWidth ? \"100%\" : width == null ? \"auto\" : typeof width === \"number\" ? `${width}px` : width,\n });\n\n const needsPad = variant === \"subtle\";\n\n const trackBaseCss = css({\n position: \"relative\",\n display: stretch ? \"flex\" : \"inline-flex\",\n width: stretch ? \"100%\" : \"auto\",\n flexDirection: isV ? \"column\" : \"row\",\n alignItems: isV ? \"stretch\" : \"center\",\n flexWrap: \"nowrap\",\n gap: theme.spacing.xs,\n padding: needsPad ? theme.spacing.xs : 0,\n background: trackBg,\n borderRadius:\n variant === \"subtle\"\n ? rounded\n ? isV\n ? (theme.radius.lg as string)\n : (theme.radius.full as string)\n : (theme.radius.lg as string)\n : \"none\",\n });\n\n const thumbBaseCss = css({\n position: \"absolute\",\n zIndex: 0,\n pointerEvents: \"none\",\n opacity: ready ? 1 : 0,\n visibility: ready ? \"visible\" : \"hidden\",\n transition: animate\n ? `${isV ? \"top\" : \"left\"} .24s var(--pf-ease), ${isV ? \"height\" : \"width\"} .24s var(--pf-ease), background-color .18s var(--pf-ease)`\n : \"none\",\n borderRadius: variant === \"subtle\" || variant === \"ghost\" ? (rounded ? (theme.radius.full as string) : (theme.radius.md as string)) : 0,\n background: variant === \"underlined\" ? \"transparent\" : thumbBg,\n ...(isV\n ? { top: `${indicator.top}px`, height: `${indicator.height}px`, left: theme.spacing.xs, right: theme.spacing.xs }\n : { left: `${indicator.left}px`, width: `${indicator.width}px`, top: theme.spacing.xs, bottom: theme.spacing.xs }),\n boxShadow: shadow && variant === \"subtle\" ? \"0 1px 3px rgba(0,0,0,0.04), 0 6px 16px rgba(0,0,0,0.04)\" : \"none\",\n });\n\n const underlineCss = css(\n variant !== \"underlined\"\n ? {}\n : isV\n ? { background: \"transparent\", top: `${indicator.top}px`, height: `${indicator.height}px`, left: 0, width: 0, borderLeft: `2px solid ${underlineColor}`, borderBottom: \"none\", borderRadius: 2 }\n : { background: \"transparent\", left: `${indicator.left}px`, width: `${indicator.width}px`, bottom: 0, top: \"auto\", height: 0, borderBottom: `2px solid ${underlineColor}`, borderLeft: \"none\", borderRadius: 2 }\n );\n\n const baseTabCss = css({\n position: \"relative\",\n zIndex: 1,\n border: \"none\",\n background: \"transparent\",\n padding:\n variant === \"underlined\" && direction !== \"vertical\"\n ? `${theme.spacing.md}`\n : variant === \"ghost\" && direction !== \"vertical\"\n ? `${theme.spacing.md}`\n : `${theme.spacing.xs} ${theme.spacing.md}`,\n borderRadius:\n variant === \"subtle\" || variant === \"ghost\"\n ? rounded\n ? (theme.radius.full as string)\n : (theme.radius.md as string)\n : (theme.radius.md as string),\n minHeight: theme.componentHeights.sm,\n transition: \"color .16s ease !important\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...(isV ? { width: stretch ? \"100%\" : \"auto\", flex: \"0 0 auto\", textAlign: effAlign } : stretch ? { flex: \"1 1 0\", minWidth: 0, textAlign: \"center\" } : { flex: \"0 0 auto\", minWidth: \"max-content\", textAlign: \"center\" }),\n whiteSpace: \"nowrap\",\n boxSizing: \"border-box\",\n cursor: \"pointer\",\n userSelect: \"none\",\n fontSize: theme.fontSizes.md,\n fontWeight: 600,\n color: textSecondary,\n \"&[aria-selected='true']\": { color: textPrimary },\n \"&:hover\": { color: textPrimary },\n \"&[aria-disabled='true'], &:disabled\": { opacity: 0.55, cursor: \"not-allowed\", color: disabledText },\n });\n\n const contentWrapCss = css({\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: isV ? justifyMap[effAlign] : \"center\",\n gap: 6,\n width: \"100%\",\n flexDirection:\n titlePosition === \"top\"\n ? \"column-reverse\"\n : titlePosition === \"bottom\"\n ? \"column\"\n : titlePosition === \"left\"\n ? \"row-reverse\"\n : \"row\",\n });\n\n const panelCss = css({ marginTop: theme.spacing.sm, width: \"100%\" });\n\n const idBase = React.useId();\n const panelIdByValue = new Map<any, string>();\n contents.forEach((c, i) => panelIdByValue.set(c.value, `${idBase}-panel-${i}`));\n const tabIdForIndex = (i: number) => `${idBase}-tab-${i}`;\n\n return (\n <div className={[\"plainframe-ui-tabs\", className || \"\"].join(\" \").trim()} css={[rootCss, userCss]}>\n <div\n className=\"plainframe-ui-tabs-track\"\n ref={listRef}\n role=\"tablist\"\n aria-orientation={isV ? \"vertical\" : \"horizontal\"}\n onKeyDown={onKeyDown}\n css={[trackBaseCss, userTrackCss]}\n >\n {showThumb && <div className=\"plainframe-ui-tabs-thumb\" css={[thumbBaseCss, underlineCss, userThumbCss, activeIndicatorCss]} />}\n {tabs.map((t, i) => {\n const isActive = currentValue === t.value;\n return (\n <button\n key={String(t.value ?? i)}\n ref={(el) => {\n btnRefs.current[i] = el;\n }}\n role=\"tab\"\n id={tabIdForIndex(i)}\n aria-selected={isActive}\n aria-controls={panelIdByValue.get(t.value)}\n aria-disabled={t.disabled || undefined}\n disabled={t.disabled}\n tabIndex={t.disabled ? -1 : i === activeIndex ? 0 : -1}\n className={[\"plainframe-ui-tab\", t.className || \"\"].join(\" \").trim()}\n onClick={() => {\n if (!t.disabled) setSelected(t.value);\n }}\n css={[baseTabCss, !t.disabled && focusRing(), t.css, isActive ? (t.activeCss ?? activeTabCss) : undefined]}\n >\n <span className=\"plainframe-ui-tab-content\" css={contentWrapCss}>\n {t.node}\n </span>\n </button>\n );\n })}\n </div>\n {contents.map((c, i) => {\n const isActive = c.value === currentValue;\n const labelledByIndex = tabs.findIndex((t) => t.value === c.value);\n const labelledBy = labelledByIndex >= 0 ? tabIdForIndex(labelledByIndex) : undefined;\n return (\n <div\n key={i}\n role=\"tabpanel\"\n id={panelIdByValue.get(c.value)}\n aria-labelledby={labelledBy}\n hidden={!isActive}\n className={[\"plainframe-ui-tab-panel\", c.className || \"\"].join(\" \").trim()}\n css={[panelCss, c.css]}\n >\n {isActive ? c.node : null}\n </div>\n );\n })}\n </div>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, {\n useLayoutEffect,\n useRef,\n useState,\n useId,\n useMemo,\n useCallback,\n} from \"react\";\nimport { css, type Interpolation, type Theme } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { useFocusWithinRing } from \"../utils/focusRing\";\n\ntype SizeKey = \"sm\" | \"md\" | \"lg\";\ntype Variant = \"outlined\" | \"subtle\" | \"ghost\";\ntype WithCss = { css?: Interpolation<Theme> };\n\nexport type TextAreaProps = WithCss & {\n label?: React.ReactNode;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n placeholder?: string;\n error?: boolean;\n helperText?: React.ReactNode;\n disabled?: boolean;\n fullWidth?: boolean;\n width?: number | string;\n size?: SizeKey;\n variant?: Variant;\n rounded?: boolean;\n rows?: number;\n maxRows?: number;\n maxLength?: number;\n showCharCount?: boolean;\n focusRingMode?: \"always\" | \"none\";\n resizable?: boolean;\n wrapperCss?: Interpolation<Theme>;\n inputCss?: Interpolation<Theme>;\n labelCss?: Interpolation<Theme>;\n helperRowCss?: Interpolation<Theme>;\n helperTextCss?: Interpolation<Theme>;\n charCountCss?: Interpolation<Theme>;\n className?: string;\n onBlur?: React.FocusEventHandler<HTMLTextAreaElement>;\n onFocus?: React.FocusEventHandler<HTMLTextAreaElement>;\n onKeyDown?: React.KeyboardEventHandler<HTMLTextAreaElement>;\n autoFocus?: boolean;\n name?: string;\n id?: string;\n tabIndex?: number;\n autoComplete?: string;\n readOnly?: boolean;\n required?: boolean;\n};\n\nconst u = (v: number | string | undefined): string | undefined =>\n v == null ? undefined : typeof v === \"number\" ? `${v}px` : v;\n\nconst asArr = (v?: Interpolation<Theme>): Interpolation<Theme>[] =>\n v == null ? [] : (Array.isArray(v) ? v : [v]);\n\nconst mergeCss = (\n ...parts: Array<Interpolation<Theme> | false | null | undefined>\n): Interpolation<Theme> => css(parts.filter(Boolean) as any);\n\nexport const TextArea: React.FC<TextAreaProps> = ({\n label,\n value,\n defaultValue = \"\",\n onChange,\n placeholder,\n error,\n helperText,\n disabled = false,\n fullWidth = false,\n width = 235,\n size = \"md\",\n variant = \"subtle\",\n rounded = false,\n rows = 3,\n maxRows,\n maxLength,\n showCharCount,\n focusRingMode = \"always\",\n resizable = false,\n className,\n wrapperCss: userWrapperCss,\n inputCss: userInputCss,\n labelCss: userLabelCss,\n helperRowCss: userHelperRowCss,\n helperTextCss: userHelperTextCss,\n charCountCss: userCharCountCss,\n css: userSurfaceCss,\n onBlur,\n onFocus,\n onKeyDown,\n autoFocus,\n name,\n id,\n tabIndex,\n autoComplete,\n readOnly,\n required,\n}) => {\n const theme = usePlainframeUITheme();\n const ring = useFocusWithinRing();\n const reactId = useId();\n\n const sizeMap = useMemo(\n () =>\n ({\n sm: {\n fontSize: theme.fontSizes.md,\n minHeight: theme.componentHeights.sm,\n labelFont: theme.fontSizes.sm,\n helperFont: theme.fontSizes.sm,\n width: \"12.5rem\",\n paddingY: 0,\n paddingX: theme.spacing.md,\n },\n md: {\n fontSize: theme.fontSizes.md,\n minHeight: theme.componentHeights.md,\n labelFont: theme.fontSizes.md,\n helperFont: theme.fontSizes.sm,\n width: \"15rem\",\n paddingY: 0,\n paddingX: theme.spacing.md,\n },\n lg: {\n fontSize: theme.fontSizes.md,\n minHeight: theme.componentHeights.lg,\n labelFont: theme.fontSizes.lg,\n helperFont: theme.fontSizes.md,\n width: \"18.125rem\",\n paddingY: 0,\n paddingX: theme.spacing.md,\n },\n }) as const,\n [theme]\n );\n\n const sizeKey: SizeKey = ([\"sm\", \"md\", \"lg\"] as const).includes(size as any)\n ? (size as SizeKey)\n : \"md\";\n const s = sizeMap[sizeKey];\n\n const N = theme.neutral;\n const T = theme.text;\n\n const isControlled = value !== undefined;\n const [internal, setInternal] = useState<string>(defaultValue);\n const curr: string = isControlled ? (value as string) : internal;\n\n const setValue = useCallback(\n (next: string): void => {\n if (!isControlled) setInternal(next);\n onChange?.(next);\n },\n [isControlled, onChange]\n );\n\n const surfaceBg = useMemo<string>(\n () =>\n disabled\n ? N[200]\n : variant === \"outlined\"\n ? theme.surface.panelBg\n : variant === \"subtle\"\n ? theme.surface.subtleBg\n : \"transparent\",\n [disabled, variant, N, theme.surface]\n );\n\n const borderW = theme.componentHeights.border;\n const surfaceBorder = useMemo<string>(\n () =>\n variant === \"outlined\"\n ? `${borderW} solid ${error ? theme.palette.danger[600] : theme.surface.border}`\n : `${borderW} solid transparent`,\n [variant, borderW, error, theme.palette.danger, theme.surface.border]\n );\n\n const rootCss = useMemo(\n () =>\n css({\n boxSizing: \"border-box\",\n display: \"block\",\n minWidth: 0,\n width: \"100%\",\n maxWidth: fullWidth ? \"100%\" : width != null ? u(width) : undefined,\n flex: \"0 0 auto\",\n fontWeight: 500,\n }),\n [fullWidth, width]\n );\n\n const labelCss = useMemo(\n () =>\n mergeCss(\n {\n fontSize: s.labelFont,\n fontWeight: 500,\n color: error ? theme.palette.danger?.[700] ?? T.primary : disabled ? N[500] : T.primary,\n marginBottom: 4,\n display: \"inline-block\",\n },\n ...asArr(userLabelCss)\n ),\n [s.labelFont, error, disabled, N, T, theme.palette.danger, userLabelCss]\n );\n\n const surfaceBaseCss = useMemo(\n () => [\n {\n display: \"flex\",\n alignItems: \"stretch\",\n gap: theme.spacing.sm,\n padding: `${u(s.paddingY)} 0 ${u(s.paddingY)} ${u(s.paddingX)}`,\n background: surfaceBg,\n outline: surfaceBorder,\n outlineOffset: `-${borderW}`,\n borderRadius: rounded ? (theme.radius.full as string) : (theme.radius.md as string),\n minHeight: s.minHeight,\n width: \"100%\",\n cursor: disabled ? \"not-allowed\" : \"text\",\n opacity: disabled ? 0.65 : 1,\n transition: \"box-shadow .18s, border-color .16s\",\n },\n ...asArr(userWrapperCss),\n ...asArr(userSurfaceCss),\n ] as Interpolation<Theme>,\n [theme, s, surfaceBg, surfaceBorder, borderW, rounded, disabled, userWrapperCss, userSurfaceCss]\n );\n\n const ctrlMinH: string = typeof s.minHeight === \"number\" ? `${s.minHeight}px` : s.minHeight;\n\n const textareaCss = useMemo(\n () =>\n mergeCss(\n {\n width: \"100%\",\n minWidth: 0,\n flex: 1,\n resize: resizable ? (\"vertical\" as const) : (\"none\" as const),\n font: \"inherit\",\n fontWeight: 500,\n fontSize: s.fontSize,\n lineHeight: 1.5,\n color: disabled ? N[500] : T.primary,\n background: \"transparent\",\n border: \"none\",\n outline: \"none\",\n padding: 0,\n paddingRight: u(s.paddingX),\n overflowY: \"auto\",\n minHeight: ctrlMinH,\n \"&::placeholder\": { color: T.secondary },\n \"&:-webkit-autofill,&:-webkit-autofill:hover,&:-webkit-autofill:focus\": {\n WebkitTextFillColor: `${T.primary} !important`,\n boxShadow: `0 0 0 1000px ${surfaceBg} inset !important`,\n transition: \"opacity 99999s ease-out\",\n caretColor: T.primary,\n },\n \":focus-within\": { outline: \"none\", border: \"none\", boxShadow: \"none\" },\n ...(rows === 1\n ? { paddingBlock: `calc((${ctrlMinH} - 1.5em) / 2)` }\n : { paddingBlock: \"clamp(4px, 0.5em, 12px)\" }),\n },\n ...asArr(userInputCss)\n ),\n [resizable, s, disabled, N, T, ctrlMinH, surfaceBg, rows, userInputCss]\n );\n\n const helperRowCss = useMemo(\n () =>\n mergeCss(\n {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"flex-start\",\n gap: 8,\n paddingTop: 3,\n },\n ...asArr(userHelperRowCss)\n ),\n [userHelperRowCss]\n );\n\n const helperTextCss = useMemo(\n () =>\n mergeCss(\n {\n fontSize: s.helperFont,\n color: error ? theme.palette.danger?.[700] ?? T.secondary : T.secondary,\n flex: 1,\n minWidth: 0,\n },\n ...asArr(userHelperTextCss)\n ),\n [s.helperFont, error, theme.palette.danger, T, userHelperTextCss]\n );\n\n const charCountCss = useMemo(\n () =>\n mergeCss(\n {\n fontSize: s.helperFont,\n color:\n maxLength && curr.length > maxLength\n ? theme.palette.danger?.[700] ?? T.secondary\n : T.secondary,\n flexShrink: 0,\n },\n ...asArr(userCharCountCss)\n ),\n [s.helperFont, maxLength, curr.length, theme.palette.danger, T, userCharCountCss]\n );\n\n const ref = useRef<HTMLTextAreaElement | null>(null);\n\n useLayoutEffect((): void => {\n if (typeof window === \"undefined\") return;\n const el = ref.current;\n if (!el) return;\n\n if (resizable) {\n const cs = window.getComputedStyle(el);\n const lh = parseFloat(cs.lineHeight || \"20\");\n const tokenMin = typeof s.minHeight === \"number\" ? s.minHeight : parseFloat(String(s.minHeight));\n const baseMin = Math.max(lh * (rows ?? 1), tokenMin);\n el.style.setProperty(\"--pf-minh\", `${baseMin}px`);\n return;\n }\n\n const measure = (): void => {\n const cs = window.getComputedStyle(el);\n const lh = parseFloat(cs.lineHeight || \"20\");\n const tokenMin = typeof s.minHeight === \"number\" ? s.minHeight : parseFloat(String(s.minHeight));\n const baseMin = Math.max(lh * (rows ?? 1), tokenMin);\n el.style.setProperty(\"--pf-minh\", `${baseMin}px`);\n const maxH = maxRows ? lh * maxRows : Infinity;\n el.style.height = \"auto\";\n el.style.height = `${Math.min(el.scrollHeight, maxH)}px`;\n };\n\n measure();\n }, [curr, rows, maxRows, s.minHeight, resizable]);\n\n const helperId: string | undefined =\n helperText != null || showCharCount ? `${id ?? reactId}-help` : undefined;\n const inputId: string = id ?? reactId;\n\n return (\n <div className={[\"plainframe-ui-textarea\", className || \"\"].join(\" \").trim()} css={rootCss}>\n {label && (\n <label htmlFor={inputId} className=\"plainframe-ui-textarea-label\" css={labelCss}>\n {label}\n </label>\n )}\n\n <div\n className=\"plainframe-ui-textarea-surface\"\n css={[ring({ enabled: focusRingMode !== \"none\", disabled }), surfaceBaseCss]}\n aria-invalid={!!error || undefined}\n aria-disabled={disabled || undefined}\n onClick={() => !disabled && ref.current?.focus()}\n >\n <textarea\n ref={ref}\n id={inputId}\n className=\"plainframe-ui-textarea-input\"\n css={textareaCss}\n rows={rows}\n value={curr}\n onChange={(e): void => {\n const next = e.target.value;\n if (maxLength && next.length > maxLength) return;\n setValue(next);\n }}\n placeholder={placeholder || \"\"}\n disabled={disabled}\n onBlur={onBlur}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n autoFocus={autoFocus}\n name={name}\n tabIndex={tabIndex}\n autoComplete={autoComplete}\n readOnly={readOnly}\n required={required}\n aria-invalid={!!error || undefined}\n aria-describedby={helperId}\n />\n </div>\n\n {(helperText != null || (showCharCount && maxLength != null)) && (\n <div className=\"plainframe-ui-textarea-helper-row\" css={helperRowCss}>\n <span id={helperId} className=\"plainframe-ui-textarea-helper-text\" css={helperTextCss}>\n {helperText}\n </span>\n {showCharCount && maxLength != null && (\n <span className=\"plainframe-ui-textarea-char-count\" css={charCountCss}>\n {curr.length}/{maxLength}\n </span>\n )}\n </div>\n )}\n </div>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport React, { useEffect, useSyncExternalStore } from \"react\";\nimport { css, type CSSObject } from \"@emotion/react\";\nimport { AnimatePresence, motion, useAnimationControls } from \"framer-motion\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { X } from \"lucide-react\";\nimport { createPortal } from \"react-dom\";\n\ntype CoreStatus = \"default\" | \"success\" | \"error\" | \"warning\" | \"info\";\ntype Status = CoreStatus | \"danger\";\ntype Position =\n | \"top-left\"\n | \"top-center\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-center\"\n | \"bottom-right\";\ntype ShowDismissMode = \"hover\" | \"always\" | \"never\";\n\nexport type ToastRendererCtx = {\n toast: ToastItem;\n close: (id?: string) => void;\n pause: (id: string) => void;\n resume: (id: string) => void;\n};\nexport type ToastRenderer = (ctx: ToastRendererCtx) => React.ReactNode;\n\nexport type ToastItem = {\n id: string;\n status: Status;\n content?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n render?: React.ReactNode | ToastRenderer;\n bare?: boolean;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n action?: React.ReactNode;\n duration: number | null;\n createdAt: number;\n onClose?: () => void;\n pauseOnHover?: boolean;\n showDismiss?: boolean | ShowDismissMode;\n onClick?: (id: string, e: React.MouseEvent | MouseEvent) => void;\n width?: number | string;\n};\n\ntype Options = Partial<\n Pick<\n ToastItem,\n | \"status\"\n | \"content\"\n | \"title\"\n | \"description\"\n | \"render\"\n | \"bare\"\n | \"startIcon\"\n | \"endIcon\"\n | \"action\"\n | \"onClose\"\n | \"pauseOnHover\"\n | \"showDismiss\"\n | \"onClick\"\n | \"width\"\n | \"duration\"\n | \"createdAt\"\n | \"id\"\n >\n> & { id?: string; duration?: number | null };\n\ntype Styles = {\n stack?: CSSObject;\n item?: CSSObject;\n surface?: CSSObject | ((t: ToastItem) => CSSObject);\n close?: CSSObject;\n};\n\ntype Config = {\n max: number;\n position: Position;\n gutter: number;\n zIndex: number;\n duration: number | null;\n showDismiss: ShowDismissMode;\n styles: Styles;\n renderer?: React.ReactNode | ToastRenderer;\n bareRenderer: boolean;\n};\n\nconst isIterable = (obj: any): obj is Iterable<unknown> =>\n obj != null && typeof obj[Symbol.iterator] === \"function\";\nconst isPromise = (obj: any): obj is Promise<unknown> =>\n !!obj && (typeof obj === \"object\" || typeof obj === \"function\") && typeof (obj as any).then === \"function\";\nfunction isOptionsInput(x: any): x is Options {\n if (x == null) return false;\n if (typeof x !== \"object\") return false;\n if (React.isValidElement(x)) return false;\n if (isPromise(x)) return false;\n if (isIterable(x)) return false;\n const keys = Object.keys(x);\n return (\n keys.length === 0 ||\n [\n \"status\",\n \"content\",\n \"title\",\n \"description\",\n \"render\",\n \"bare\",\n \"startIcon\",\n \"endIcon\",\n \"action\",\n \"onClose\",\n \"pauseOnHover\",\n \"showDismiss\",\n \"onClick\",\n \"width\",\n \"duration\",\n \"createdAt\",\n \"id\",\n ].some((k) => k in x)\n );\n}\n\nconst ENTER_SPRING = { type: \"spring\" as const, stiffness: 920, damping: 100 };\nconst ROOT_ID = \"toast-host\";\n\nconst getIn = (obj: unknown, path: string): any =>\n path.split(\".\").reduce((o: any, k) => (o == null ? o : o[k]), obj as any);\n\nconst first = (theme: any, paths: string[]): any => {\n for (const p of paths) {\n const v = getIn(theme, p);\n if (v != null && v !== \"\") return v;\n }\n return undefined;\n};\n\nconst px = (v: unknown, fb: number): string =>\n v == null ? `${fb}px` : typeof v === \"number\" ? `${v}px` : String(v);\n\nfunction resolveToastTokens(theme: any): { radius: string; padX: string; padY: string; shadow: string } {\n const radius = first(theme, [\"radius.md\", \"shape.borderRadius\", \"radii.md\"]);\n const padX = first(theme, [\"spacing.lg\", \"space.4\", \"spacing.4\"]);\n const padY = first(theme, [\"spacing.md\", \"space.3\", \"spacing.3\"]);\n const shadow =\n first(theme, [\"shadows.lg\", \"elevation.lg\"]) ??\n \"0 8px 24px rgba(0,0,0,.03), 0 2px 8px rgba(0,0,0,.05)\";\n return { radius: px(radius, 16), padX: px(padX, 14), padY: px(padY, 12), shadow: String(shadow) };\n}\n\nlet hostEl: HTMLElement | null = null;\nfunction ensureHost(): void {\n if (typeof document === \"undefined\") return;\n if (!hostEl) {\n hostEl = document.getElementById(ROOT_ID);\n if (!hostEl) {\n hostEl = document.createElement(\"div\");\n hostEl.id = ROOT_ID;\n document.body.appendChild(hostEl);\n }\n }\n}\n\nconst cfg: Config = {\n max: 5,\n position: \"bottom-right\",\n gutter: 10,\n zIndex: 1000,\n duration: 5000,\n showDismiss: \"hover\",\n styles: {},\n renderer: undefined,\n bareRenderer: false,\n};\n\nconst store = {\n displayed: [] as ToastItem[],\n queue: [] as ToastItem[],\n entering: {} as Record<string, boolean>,\n exiting: {} as Record<string, boolean>,\n enterFrom: {} as Record<string, \"head\" | \"tail\">,\n timers: new Map<string, number>(),\n expiry: new Map<string, number>(),\n remaining: new Map<string, number>(),\n paused: new Set<string>(),\n listeners: new Set<() => void>(),\n snapshot: {\n displayed: [] as ToastItem[],\n entering: {} as Record<string, boolean>,\n exiting: {} as Record<string, boolean>,\n enterFrom: {} as Record<string, \"head\" | \"tail\">,\n },\n subscribe(fn: () => void): () => void {\n this.listeners.add(fn);\n return () => this.listeners.delete(fn);\n },\n notify(): void {\n this.listeners.forEach((fn) => fn());\n },\n sync(): void {\n this.snapshot = {\n displayed: [...this.displayed],\n entering: { ...this.entering },\n exiting: { ...this.exiting },\n enterFrom: { ...this.enterFrom },\n };\n },\n};\n\nconst syncAndNotify = (): void => {\n store.sync();\n store.notify();\n};\n\nconst uid = (): string =>\n typeof crypto !== \"undefined\" && (crypto as any).randomUUID\n ? (crypto as any).randomUUID()\n : Math.random().toString(36).slice(2);\n\nfunction armTimer(t: ToastItem, override?: number | null): void {\n if (override === null) return;\n const dur = override ?? t.duration;\n if (dur == null) return;\n if (store.timers.has(t.id)) return;\n const now = Date.now();\n const remaining = store.remaining.get(t.id);\n const timeoutMs = remaining != null ? Math.max(0, remaining) : dur;\n store.expiry.set(t.id, now + timeoutMs);\n const handle = window.setTimeout(() => toast.dismiss(t.id), timeoutMs);\n store.timers.set(t.id, handle);\n}\n\nfunction clearTimer(id: string): void {\n const handle = store.timers.get(id);\n if (handle) {\n clearTimeout(handle);\n store.timers.delete(id);\n }\n}\n\nfunction flushQueueIntoDisplayed(): void {\n while (store.displayed.length < cfg.max && store.queue.length) {\n const t = store.queue.shift()!;\n store.displayed = [t, ...store.displayed];\n store.enterFrom[t.id] = \"head\";\n store.entering[t.id] = true;\n syncAndNotify();\n requestAnimationFrame(() => {\n delete store.entering[t.id];\n syncAndNotify();\n });\n armTimer(t);\n }\n}\n\nfunction pushOutOldestIntoQueue(): void {\n if (store.displayed.length < cfg.max) return;\n const candidates = store.displayed.filter((d) => !store.exiting[d.id]);\n if (!candidates.length) return;\n const oldest = candidates.reduce((a, b) => (a.createdAt <= b.createdAt ? a : b));\n const exp = store.expiry.get(oldest.id);\n if (exp != null) store.remaining.set(oldest.id, Math.max(0, exp - Date.now()));\n clearTimer(oldest.id);\n store.exiting[oldest.id] = true;\n store.displayed = store.displayed.filter((x) => x.id !== oldest.id);\n delete store.enterFrom[oldest.id];\n store.queue.push(oldest);\n syncAndNotify();\n}\n\nconst normalizeStatus = (s: any): CoreStatus => {\n if (s === \"danger\") return \"error\";\n const allowed = [\"default\", \"success\", \"error\", \"warning\", \"info\"] as const;\n return (allowed as readonly string[]).includes(s) ? (s as CoreStatus) : \"default\";\n};\n\nfunction statusColors(theme: any, s: Status): { bg: string; fg: string; border?: string } {\n const st = normalizeStatus(s);\n const panelBg = theme.surface?.panelBg ?? \"#fff\";\n const panelFg = theme.text?.primary ?? \"#111\";\n const border = theme.surface?.border;\n if (st === \"default\" || st === \"info\") return { bg: panelBg, fg: panelFg, border };\n const on = theme.text?.onColors ?? {};\n const pick = (\n k: \"success\" | \"warning\" | \"error\",\n fallbackBg: string,\n fallbackFg: string\n ) => ({\n bg: theme.colors?.[k] ?? theme.palette?.[k]?.[700] ?? fallbackBg,\n fg: on?.[k] ?? fallbackFg,\n border: \"transparent\",\n });\n if (st === \"success\") return pick(\"success\", \"#22C55E\", \"#fff\");\n if (st === \"warning\") return pick(\"warning\", \"#F59E0B\", \"#fff\");\n if (st === \"error\") return pick(\"error\", \"#EF4444\", \"#fff\");\n return { bg: panelBg, fg: panelFg, border };\n}\n\nexport const toast: {\n (\n contentOrOptions: React.ReactNode | Options,\n opts?: Options\n ): string;\n success: (msg: React.ReactNode, o?: Options) => string;\n error: (msg: React.ReactNode, o?: Options) => string;\n warning: (msg: React.ReactNode, o?: Options) => string;\n info: (msg: React.ReactNode, o?: Options) => string;\n custom: (node: React.ReactNode, o?: Options) => string;\n update: (id: string, o: Options) => string;\n dismiss: (id?: string) => void;\n clear: () => void;\n pause: (id: string) => void;\n resume: (id: string) => void;\n pauseLatest: () => void;\n resumeLatest: () => void;\n promise: <T>(\n p: Promise<T>,\n msgs: {\n loading: React.ReactNode;\n success: (val: T) => React.ReactNode;\n error: (err: any) => React.ReactNode;\n },\n o?: Options\n ) => Promise<T>;\n config: (opts: Partial<{\n max: number;\n position: Position;\n gutter: number;\n zIndex: number;\n duration: number | null;\n showDismiss: ShowDismissMode;\n styles: Styles;\n renderer: React.ReactNode | ToastRenderer;\n bareRenderer: boolean;\n }>) => void;\n} = Object.assign(\n (contentOrOptions: React.ReactNode | Options, opts?: Options): string => {\n ensureHost();\n let o: Options;\n if (isOptionsInput(contentOrOptions)) {\n o = contentOrOptions;\n } else {\n o = { content: contentOrOptions as React.ReactNode, ...(opts || {}) };\n }\n if (o.content == null && (o.title != null || o.description != null)) {\n o.content = (\n <div>\n {o.title && <strong style={{ display: \"block\", marginBottom: 2 }}>{o.title}</strong>}\n {o.description}\n </div>\n );\n }\n const id = o.id ?? uid();\n const updateIn = (arr: ToastItem[]): boolean => {\n const i = arr.findIndex((x) => x.id === id);\n if (i === -1) return false;\n const prev = arr[i];\n const next: ToastItem = {\n ...prev,\n status: (o.status ?? prev.status) as Status,\n content: o.content ?? prev.content,\n title: o.title ?? prev.title,\n description: o.description ?? prev.description,\n startIcon: o.startIcon ?? prev.startIcon,\n endIcon: o.endIcon ?? prev.endIcon,\n action: o.action ?? prev.action,\n onClose: o.onClose ?? prev.onClose,\n duration: o.duration === undefined ? prev.duration : o.duration,\n pauseOnHover: o.pauseOnHover ?? prev.pauseOnHover,\n showDismiss: o.showDismiss ?? prev.showDismiss,\n render: o.render ?? prev.render,\n bare: o.bare ?? prev.bare,\n onClick: o.onClick ?? prev.onClick,\n width: o.width ?? prev.width,\n };\n arr[i] = next;\n clearTimer(id);\n store.remaining.delete(id);\n if (!store.paused.has(id)) armTimer(next);\n syncAndNotify();\n return true;\n };\n if (updateIn(store.displayed) || updateIn(store.queue)) return id;\n const t: ToastItem = {\n id,\n status: (o.status ?? \"default\") as Status,\n content: o.content,\n title: o.title,\n description: o.description,\n startIcon: o.startIcon,\n endIcon: o.endIcon,\n action: o.action,\n duration: o.duration === undefined ? cfg.duration : o.duration,\n onClose: o.onClose,\n createdAt: Date.now(),\n pauseOnHover: o.pauseOnHover ?? true,\n showDismiss: o.showDismiss,\n render: o.render,\n bare: o.bare,\n onClick: o.onClick,\n width: o.width ?? 300,\n };\n if (store.displayed.length >= cfg.max) pushOutOldestIntoQueue();\n store.displayed = [...store.displayed, t];\n store.enterFrom[t.id] = \"tail\";\n store.entering[t.id] = true;\n syncAndNotify();\n requestAnimationFrame(() => {\n delete store.entering[t.id];\n syncAndNotify();\n });\n armTimer(t);\n return id;\n },\n {\n success: (msg: React.ReactNode, o: Options = {}): string => toast(msg, { ...o, status: \"success\" }),\n error: (msg: React.ReactNode, o: Options = {}): string => toast(msg, { ...o, status: \"error\" }),\n warning: (msg: React.ReactNode, o: Options = {}): string => toast(msg, { ...o, status: \"warning\" }),\n info: (msg: React.ReactNode, o: Options = {}): string => toast(msg, { ...o, status: \"info\" }),\n custom: (node: React.ReactNode, o: Options = {}): string => toast(node, { ...o }),\n update: (id: string, o: Options): string => toast({ id, ...o }),\n dismiss: (id?: string): void => {\n if (!id) {\n const first = store.displayed.find((d) => !store.exiting[d.id])?.id;\n if (first) toast.dismiss(first);\n return;\n }\n clearTimer(id);\n store.remaining.delete(id);\n store.paused.delete(id);\n store.exiting[id] = true;\n const item = store.displayed.find((x) => x.id === id);\n store.displayed = store.displayed.filter((x) => x.id !== id);\n delete store.enterFrom[id];\n syncAndNotify();\n window.setTimeout(() => item?.onClose?.(), 120);\n flushQueueIntoDisplayed();\n },\n clear: (): void => {\n const ids = [...store.displayed.map((t) => t.id)];\n ids.forEach((id) => toast.dismiss(id));\n },\n pause: (id: string): void => {\n if (store.paused.has(id)) return;\n const exp = store.expiry.get(id);\n if (exp != null) store.remaining.set(id, Math.max(0, exp - Date.now()));\n store.paused.add(id);\n clearTimer(id);\n },\n resume: (id: string): void => {\n if (!store.paused.has(id)) return;\n store.paused.delete(id);\n const t = store.displayed.find((x) => x.id === id) ?? store.queue.find((x) => x.id === id);\n const left = store.remaining.get(id);\n if (t) armTimer(t, left ?? undefined);\n store.remaining.delete(id);\n },\n pauseLatest: (): void => {\n const latest = store.displayed.length ? store.displayed[store.displayed.length - 1] : undefined;\n if (latest) toast.pause(latest.id);\n },\n resumeLatest: (): void => {\n const latest = store.displayed.length ? store.displayed[store.displayed.length - 1] : undefined;\n if (latest) toast.resume(latest.id);\n },\n promise: <T,>(\n p: Promise<T>,\n msgs: {\n loading: React.ReactNode;\n success: (val: T) => React.ReactNode;\n error: (err: any) => React.ReactNode;\n },\n o: Options = {}\n ): Promise<T> => {\n const id = toast(msgs.loading, { ...o, status: \"info\", duration: null });\n p.then((v) => {\n toast.update(id, {\n status: \"success\",\n content: msgs.success(v),\n duration: o.duration ?? 2500,\n });\n }).catch((err) => {\n toast.update(id, {\n status: \"error\",\n content: msgs.error(err),\n duration: o.duration ?? 3000,\n });\n });\n return p;\n },\n config: (opts: Partial<{\n max: number;\n position: Position;\n gutter: number;\n zIndex: number;\n duration: number | null;\n showDismiss: ShowDismissMode;\n styles: Styles;\n renderer: React.ReactNode | ToastRenderer;\n bareRenderer: boolean;\n }>): void => {\n if (opts.max != null) cfg.max = opts.max;\n if (opts.position) cfg.position = opts.position;\n if (opts.gutter != null) cfg.gutter = opts.gutter;\n if (opts.zIndex != null) cfg.zIndex = opts.zIndex;\n if (opts.duration !== undefined) cfg.duration = opts.duration;\n if (opts.showDismiss) cfg.showDismiss = opts.showDismiss;\n if (opts.styles) cfg.styles = { ...cfg.styles, ...opts.styles };\n if (opts.renderer !== undefined) cfg.renderer = opts.renderer;\n if (opts.bareRenderer !== undefined) cfg.bareRenderer = opts.bareRenderer;\n },\n }\n);\n\nfunction normalizeDismiss(show?: boolean | ShowDismissMode): ShowDismissMode {\n if (typeof show === \"string\") return show;\n if (show === true) return \"always\";\n if (show === false) return \"never\";\n return cfg.showDismiss;\n}\n\nfunction positionCss(pos: Position): CSSObject {\n const map: Record<Position, CSSObject> = {\n \"top-left\": { top: 16, left: 16, alignItems: \"flex-start\" },\n \"top-center\": { top: 16, left: \"50%\", transform: \"translateX(-50%)\", alignItems: \"center\" },\n \"top-right\": { top: 16, right: 16, alignItems: \"flex-end\" },\n \"bottom-left\": { bottom: 16, left: 16, alignItems: \"flex-start\" },\n \"bottom-center\": { bottom: 16, left: \"50%\", transform: \"translateX(-50%)\", alignItems: \"center\" },\n \"bottom-right\": { bottom: 16, right: 16, alignItems: \"flex-end\" },\n };\n return map[pos];\n}\n\nconst rowCss = css({ display: \"flex\", alignItems: \"flex-start\", gap: 10 });\nconst iconWrapCss = css({\n flex: \"0 0 auto\",\n paddingTop: 1,\n lineHeight: 0,\n marginLeft: -3,\n \"& svg, & img, & canvas, & video\": { display: \"block\" },\n});\nconst textCss = css({ fontSize: 14, lineHeight: 1.4, fontWeight: 500, flex: 1, minWidth: 0 });\nconst actionRowCss = css({ display: \"flex\", alignItems: \"center\", gap: 6, marginRight: -2 });\n\nfunction ToastHost(): JSX.Element {\n const snap = useSyncExternalStore(store.subscribe.bind(store), () => store.snapshot, () => store.snapshot);\n const theme = usePlainframeUITheme();\n const TOK = resolveToastTokens(theme);\n const isBottom = cfg.position.startsWith(\"bottom\");\n const list = isBottom ? snap.displayed : [...snap.displayed].reverse();\n const stackStyle: CSSObject = {\n position: \"fixed\",\n zIndex: cfg.zIndex,\n pointerEvents: \"none\",\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n ...positionCss(cfg.position),\n ...(cfg.styles.stack ?? {}),\n };\n return (\n <div className=\"plainframe-ui-toast-stack\" css={css(stackStyle)}>\n <AnimatePresence initial={false}>\n {list.map((t, index) => {\n const from = snap.enterFrom[t.id] || \"tail\";\n const enterY = isBottom ? (from === \"head\" ? -16 : 16) : from === \"head\" ? 16 : -16;\n const mt = index > 0 ? cfg.gutter : 0;\n const ctx: ToastRendererCtx = {\n toast: t,\n close: toast.dismiss,\n pause: toast.pause,\n resume: toast.resume,\n };\n const { bg, fg, border } = statusColors(theme, t.status);\n const baseSurface: CSSObject = {\n position: \"relative\",\n overflow: \"hidden\",\n borderRadius: TOK.radius,\n boxShadow: TOK.shadow,\n padding: `${TOK.padY} calc(${TOK.padX} + 30px) ${TOK.padY} ${TOK.padX}`,\n display: \"grid\",\n gridTemplateColumns: \"1fr auto\",\n gap: 10,\n background: bg,\n color: fg,\n cursor: t.onClick ? \"pointer\" : \"default\",\n border: border ? `1px solid ${border}` : \"1px solid transparent\",\n };\n const extraSurface =\n typeof cfg.styles.surface === \"function\" ? cfg.styles.surface(t) : cfg.styles.surface ?? {};\n const dismissMode = normalizeDismiss(t.showDismiss);\n const modeStyles: CSSObject = {};\n const closeSel = \"& .plainframe-ui-toast-close\";\n const hoverSel = \"&:hover .plainframe-ui-toast-close\";\n if (dismissMode === \"hover\") {\n (modeStyles as any)[closeSel] = { opacity: 0, pointerEvents: \"none\" };\n (modeStyles as any)[hoverSel] = { opacity: 1, pointerEvents: \"auto\" };\n } else if (dismissMode === \"always\") {\n (modeStyles as any)[closeSel] = { opacity: 1, pointerEvents: \"auto\" };\n } else if (dismissMode === \"never\") {\n (modeStyles as any)[closeSel] = { display: \"none\" };\n }\n const wrapCss = css({ ...baseSurface, ...extraSurface, ...modeStyles });\n const closeCss = css({\n position: \"absolute\",\n top: 8,\n right: 8,\n appearance: \"none\",\n border: 0,\n background: \"transparent\",\n color: fg,\n width: 28,\n height: 28,\n borderRadius: 8,\n cursor: \"pointer\",\n lineHeight: 1,\n transition: \"opacity .12s ease\",\n display: \"grid\",\n placeItems: \"center\",\n ...(cfg.styles.close ?? {}),\n });\n let content: React.ReactNode;\n if (t.bare && t.render) {\n const inner = typeof t.render === \"function\" ? (t.render as ToastRenderer)(ctx) : t.render;\n content = (\n <div style={{ pointerEvents: \"auto\" }} onClick={(e) => t.onClick?.(t.id, e)}>\n {inner}\n </div>\n );\n } else if (cfg.bareRenderer && cfg.renderer) {\n const inner =\n typeof cfg.renderer === \"function\"\n ? (cfg.renderer as ToastRenderer)(ctx)\n : cfg.renderer;\n content = (\n <div style={{ pointerEvents: \"auto\" }} onClick={(e) => t.onClick?.(t.id, e)}>\n {inner}\n </div>\n );\n } else {\n let innerBlock: React.ReactNode;\n if (cfg.renderer) {\n innerBlock =\n typeof cfg.renderer === \"function\"\n ? (cfg.renderer as ToastRenderer)(ctx)\n : cfg.renderer;\n } else if (t.render && !t.bare) {\n innerBlock = typeof t.render === \"function\" ? (t.render as ToastRenderer)(ctx) : t.render;\n } else {\n innerBlock = (\n <>\n <div css={rowCss}>\n {t.startIcon && <div css={iconWrapCss}>{t.startIcon}</div>}\n <div css={textCss}>{t.content}</div>\n {t.endIcon && <div css={iconWrapCss}>{t.endIcon}</div>}\n </div>\n {t.action && <div css={actionRowCss}>{t.action}</div>}\n </>\n );\n }\n content = (\n <div css={wrapCss} onClick={(e) => t.onClick?.(t.id, e)}>\n {innerBlock}\n <button\n className=\"plainframe-ui-toast-close\"\n aria-label=\"Close\"\n css={closeCss}\n onClick={(e) => {\n e.stopPropagation();\n toast.dismiss(t.id);\n }}\n >\n <X strokeWidth={2.5} size={14} />\n </button>\n </div>\n );\n }\n return (\n <SwipeItem\n key={t.id}\n id={t.id}\n isBottom={isBottom}\n mt={mt}\n enterY={enterY}\n width={t.width}\n pauseOnHover={t.pauseOnHover !== false}\n >\n {content}\n </SwipeItem>\n );\n })}\n </AnimatePresence>\n </div>\n );\n}\n\nfunction SwipeItem(\n props: React.PropsWithChildren<{\n id: string;\n isBottom: boolean;\n mt: number;\n enterY: number;\n width?: number | string;\n pauseOnHover: boolean;\n }>\n): JSX.Element {\n const { id, isBottom, mt, enterY, width, pauseOnHover, children } = props;\n const controls = useAnimationControls();\n useEffect(() => {\n controls.start({ opacity: 1, y: 0, height: \"auto\", x: 0, transition: ENTER_SPRING });\n }, [controls]);\n const itemStyle: CSSObject = {\n pointerEvents: \"auto\",\n willChange: \"transform, opacity, height, margin, scale, width, max-width\",\n marginTop: mt,\n width: \"100%\",\n maxWidth: width != null ? (typeof width === \"number\" ? `${width}px` : width) : \"none\",\n ...(cfg.styles.item ?? {}),\n };\n return (\n <motion.div\n layout\n className=\"plainframe-ui-toast-item\"\n css={css(itemStyle)}\n initial={{ opacity: 0, y: enterY, height: \"auto\", x: 0 }}\n animate={controls}\n exit={{\n opacity: 0,\n y: isBottom ? 6 : -6,\n height: 0,\n marginTop: 0,\n transition: { type: \"tween\", ease: \"easeInOut\", duration: 0.14 },\n }}\n drag=\"x\"\n dragElastic={0.2}\n dragMomentum\n whileDrag={{ scale: 0.98, opacity: 0.95 }}\n onDragEnd={(_, info) => {\n const dist = Math.abs(info.offset.x);\n const velo = Math.abs(info.velocity.x);\n const shouldFling = dist > 60 || velo > 600;\n if (!shouldFling) {\n controls.start({ x: 0, opacity: 1, transition: { type: \"spring\", stiffness: 700, damping: 40 } });\n return;\n }\n const dir = info.offset.x !== 0 ? Math.sign(info.offset.x) : Math.sign(info.velocity.x || 1);\n const targetX = dir * (window.innerWidth + 160);\n controls\n .start({\n x: targetX,\n opacity: 0.9,\n transition: { type: \"spring\", stiffness: 280, damping: 24, velocity: (info.velocity.x as number) / 10 },\n })\n .then(() => toast.dismiss(id));\n }}\n onMouseEnter={pauseOnHover ? () => toast.pause(id) : undefined}\n onMouseLeave={pauseOnHover ? () => toast.resume(id) : undefined}\n >\n {children}\n </motion.div>\n );\n}\n\nexport function ToastViewport(): JSX.Element | null {\n ensureHost();\n return hostEl ? createPortal(<ToastHost />, hostEl) : null;\n}\n","/** @jsxImportSource @emotion/react */\nimport React, {\n createContext,\n useContext,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { css, Interpolation, type CSSObject } from \"@emotion/react\";\nimport {\n useFloating,\n offset,\n flip,\n shift,\n arrow as arrowMw,\n autoUpdate,\n useHover,\n useFocus,\n useDismiss,\n useRole,\n useInteractions,\n safePolygon,\n FloatingPortal,\n type Placement,\n} from \"@floating-ui/react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { usePlainframeUITheme } from \"../theme/ThemeProvider\";\nimport { Theme } from \"@emotion/react\";\n\nconst mergeRefs =\n <T,>(...refs: Array<React.Ref<T> | undefined>) =>\n (node: T) => {\n for (const r of refs) {\n if (!r) continue;\n if (typeof r === \"function\") r(node);\n else try {\n (r as any).current = node;\n } catch {}\n }\n };\n\ntype Ctx = {\n open: boolean;\n setOpen: (o: boolean) => void;\n id: string;\n placement: Placement;\n autoWidth: boolean;\n allowArrow: boolean;\n refs: ReturnType<typeof useFloating>[\"refs\"];\n floatingStyles: ReturnType<typeof useFloating>[\"floatingStyles\"];\n middlewareData: ReturnType<typeof useFloating>[\"middlewareData\"];\n getReferenceProps: ReturnType<typeof useInteractions>[\"getReferenceProps\"];\n getFloatingProps: ReturnType<typeof useInteractions>[\"getFloatingProps\"];\n arrowRef: React.MutableRefObject<HTMLDivElement | null>;\n};\n\nconst TooltipCtx = createContext<Ctx | null>(null);\nconst useTooltipCtx = () => {\n const v = useContext(TooltipCtx);\n if (!v) throw new Error(\"TooltipTrigger/TooltipContent must be inside <Tooltip>.\");\n return v;\n};\n\nexport type TooltipProps = {\n children: React.ReactNode;\n placement?: Placement;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (o: boolean) => void;\n delay?: number;\n arrow?: boolean;\n autoWidth?: boolean;\n disableHoverListener?: boolean;\n};\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n children,\n placement = \"top\",\n open: controlled,\n defaultOpen = false,\n onOpenChange,\n delay = 80,\n arrow = true,\n autoWidth = false,\n disableHoverListener = false,\n}) => {\n const [uc, setUc] = useState(!!defaultOpen);\n const open = controlled ?? uc;\n const setOpen = (o: boolean) => {\n if (controlled === undefined) setUc(o);\n onOpenChange?.(o);\n };\n\n const arrowRef = useRef<HTMLDivElement | null>(null);\n\n const floating = useFloating({\n placement,\n open,\n onOpenChange: setOpen,\n whileElementsMounted: autoUpdate,\n strategy: \"fixed\",\n transform: false,\n middleware: [\n offset(8),\n flip({ padding: 8 }),\n shift({ padding: 8 }),\n arrow ? arrowMw({ element: arrowRef, padding: 4 }) : undefined,\n ].filter(Boolean) as any,\n });\n\n const hover = useHover(floating.context, {\n enabled: !disableHoverListener,\n delay: { open: delay, close: 60 },\n handleClose: safePolygon(),\n restMs: 20,\n });\n const focus = useFocus(floating.context);\n const dismiss = useDismiss(floating.context, { escapeKey: true, outsidePress: true });\n const role = useRole(floating.context, { role: \"tooltip\" });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n hover,\n focus,\n dismiss,\n role,\n ]);\n\n const id = useId();\n\n const ctx = useMemo<Ctx>(\n () => ({\n open,\n setOpen,\n id,\n placement: floating.placement,\n autoWidth,\n allowArrow: !!arrow,\n refs: floating.refs,\n floatingStyles: floating.floatingStyles,\n middlewareData: floating.middlewareData,\n getReferenceProps,\n getFloatingProps,\n arrowRef,\n }),\n [\n open,\n autoWidth,\n arrow,\n floating.placement,\n floating.refs,\n floating.floatingStyles,\n floating.middlewareData,\n getReferenceProps,\n getFloatingProps,\n ]\n );\n\n return <TooltipCtx.Provider value={ctx}>{children}</TooltipCtx.Provider>;\n};\n\nexport type TooltipTriggerProps = {\n asChild?: boolean;\n children: React.ReactNode;\n className?: string;\n css?: Interpolation<Theme>;\n};\n\nexport const TooltipTrigger: React.FC<TooltipTriggerProps> = ({\n asChild = true,\n children,\n className,\n css: userCss,\n}) => {\n const { refs, getReferenceProps, id } = useTooltipCtx();\n const isElement = React.isValidElement(children);\n const isDomChild = isElement && typeof (children as any).type === \"string\";\n\n if (asChild && isElement && isDomChild) {\n const child: any = children;\n const merged = getReferenceProps({\n ...child.props,\n \"aria-describedby\": id,\n ref: mergeRefs(child.ref, refs.setReference),\n className: [child.props?.className || \"\", className || \"\"].join(\" \").trim() || undefined,\n });\n const mergedCss = [\n (child.props?.css as CSSObject) || undefined,\n userCss,\n ].filter(Boolean);\n return React.cloneElement(child, { ...merged, css: mergedCss });\n }\n\n return (\n <span\n ref={refs.setReference}\n className={className}\n css={userCss}\n style={{ display: \"inline-flex\" }}\n {...getReferenceProps({ \"aria-describedby\": id })}\n >\n {children}\n </span>\n );\n};\n\nexport type TooltipContentProps = {\n children: React.ReactNode;\n className?: string;\n css?: Interpolation<Theme>;\n arrowCss?: Interpolation<Theme>;\n};\n\nexport const TooltipContent: React.FC<TooltipContentProps> = ({\n children,\n className,\n css: userCss,\n arrowCss,\n}) => {\n const {\n open,\n refs,\n floatingStyles,\n middlewareData,\n getFloatingProps,\n placement,\n id,\n autoWidth,\n allowArrow,\n arrowRef,\n } = useTooltipCtx();\n\n const theme = usePlainframeUITheme();\n\n const side = (placement.split(\"-\")[0] || \"top\") as \"top\" | \"bottom\" | \"left\" | \"right\";\n const delta = 8;\n const initial =\n side === \"bottom\"\n ? { opacity: 0, y: -delta, scale: 0.98 }\n : side === \"top\"\n ? { opacity: 0, y: +delta, scale: 0.98 }\n : side === \"left\"\n ? { opacity: 0, x: +delta, scale: 0.98 }\n : { opacity: 0, x: -delta, scale: 0.98 };\n\n const exit = initial;\n const transformOrigin =\n side === \"bottom\"\n ? \"center top\"\n : side === \"top\"\n ? \"center bottom\"\n : side === \"left\"\n ? \"right center\"\n : \"left center\";\n\n const tooltipBase = css({\n zIndex: 1300,\n backgroundColor: theme.neutral[900],\n color: theme.neutral[0],\n borderRadius: 8,\n padding: \"6px 9px\",\n fontSize: 12,\n fontWeight: 500,\n lineHeight: 1.25,\n maxWidth: 260,\n whiteSpace: autoWidth ? \"nowrap\" : \"normal\",\n boxShadow: \"0 10px 30px rgba(0,0,0,.18)\",\n pointerEvents: \"auto\",\n transformOrigin,\n });\n\n const arrowBase = css({\n position: \"absolute\",\n width: 10,\n height: 10,\n borderRadius: 2,\n backgroundColor: theme.neutral[900],\n transform: \"rotate(45deg)\",\n pointerEvents: \"none\",\n });\n\n const arrowData = middlewareData.arrow as { x?: number; y?: number } | undefined;\n const staticSide =\n ({ top: \"bottom\", bottom: \"top\", left: \"right\", right: \"left\" } as const)[side];\n\n return (\n <FloatingPortal>\n <AnimatePresence>\n {open && (\n <motion.div\n id={id}\n ref={refs.setFloating}\n role=\"tooltip\"\n data-state=\"open\"\n className={[\"plainframe-ui-tooltip\", className || \"\"].join(\" \").trim()}\n css={[tooltipBase, userCss]}\n style={floatingStyles}\n initial={initial}\n animate={{ opacity: 1, x: 0, y: 0, scale: 1 }}\n exit={exit}\n transition={{\n scale: { type: \"spring\", stiffness: 520, damping: 36, mass: 0.6 },\n x: { type: \"spring\", stiffness: 420, damping: 32, mass: 0.6 },\n y: { type: \"spring\", stiffness: 420, damping: 32, mass: 0.6 },\n opacity: { duration: 0.14, ease: \"linear\" },\n }}\n {...getFloatingProps()}\n >\n {children}\n {allowArrow && (\n <div\n ref={arrowRef}\n className=\"plainframe-ui-tooltip-arrow\"\n css={[arrowBase, arrowCss]}\n style={{\n left: arrowData?.x != null ? `${arrowData.x}px` : undefined,\n top: arrowData?.y != null ? `${arrowData.y}px` : undefined,\n [staticSide]: \"-3px\",\n } as React.CSSProperties}\n />\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </FloatingPortal>\n );\n};\n","/** @jsxImportSource @emotion/react */\nimport { Global, css } from \"@emotion/react\";\nimport { usePlainframeUITheme } from \"./ThemeProvider\";\n\nexport function CssBaseline() {\n const t = usePlainframeUITheme();\n return (\n <Global\n styles={css`\n *,*::before,*::after{box-sizing:border-box}\n :where(html){-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}\n html,body,#root{height:100%}\n body{\n margin:0;\n padding:0;\n font-family:${t.fonts.sans};\n line-height:1.3;\n -webkit-font-smoothing:antialiased;\n -moz-osx-font-smoothing:grayscale;\n text-rendering:optimizeLegibility;\n background:${t.surface.appBg};\n color:${t.text.primary};\n }\n :focus-visible{outline:2px solid var(--pf-focus-main);outline-offset:2px}\n ::selection{background:var(--pf-neutral-300);color:var(--pf-neutral-900)}\n a{color:inherit;text-decoration:none}\n a:hover{text-decoration:underline}\n button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit;background:none;border:0}\n input,select,textarea{border-radius:0}\n img,svg,video,canvas,iframe{display:block;max-width:100%}\n table{border-collapse:collapse;border-spacing:0}\n ul,ol{margin:0;padding:0;list-style:none}\n h1,h2,h3,h4,h5,h6,p,figure{margin:0}\n code,kbd,pre,samp{font-family:${t.fonts.mono}}\n hr{border:0;border-top:1px solid ${t.surface.border};margin:0}\n\n html,body{scrollbar-width:none}\n html:hover,body:hover{scrollbar-width:thin;scrollbar-color:var(--pf-neutral-400) transparent}\n\n html::-webkit-scrollbar{width:0;height:0}\n html:hover::-webkit-scrollbar{width:12px;height:12px}\n html::-webkit-scrollbar-track{background:transparent}\n html::-webkit-scrollbar-thumb{\n background:transparent;\n border:3px solid transparent;\n background-clip:content-box;\n border-radius:9999px\n }\n html:hover::-webkit-scrollbar-thumb{background:var(--pf-neutral-300)}\n html:hover::-webkit-scrollbar-thumb:hover{background:var(--pf-neutral-400)}\n\n @media (prefers-reduced-motion:reduce){\n *{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important}\n }\n `}\n />\n );\n}\n\nexport const BaseStyles = CssBaseline;\n"]}