@medway-ui/core 1.16.3 → 1.16.5

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 CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../node_modules/tailwind-merge/src/lib/utils.ts","../node_modules/tailwind-merge/src/lib/class-group-utils.ts","../node_modules/tailwind-merge/src/lib/lru-cache.ts","../node_modules/tailwind-merge/src/lib/parse-class-name.ts","../node_modules/tailwind-merge/src/lib/sort-modifiers.ts","../node_modules/tailwind-merge/src/lib/config-utils.ts","../node_modules/tailwind-merge/src/lib/merge-classlist.ts","../node_modules/tailwind-merge/src/lib/tw-join.ts","../node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts","../node_modules/tailwind-merge/src/lib/from-theme.ts","../node_modules/tailwind-merge/src/lib/validators.ts","../node_modules/tailwind-merge/src/lib/default-config.ts","../node_modules/tailwind-merge/src/lib/merge-configs.ts","../node_modules/tailwind-merge/src/lib/extend-tailwind-merge.ts","../src/lib/utils.ts","../src/components/Alert.tsx","../src/components/Loading.tsx","../src/components/Badge.tsx","../src/components/Button.tsx","../src/components/AlertDialog.tsx","../src/hooks/use-id.ts","../src/lib/command-score.ts","../src/lib/cmdk.tsx","../src/components/Separator.tsx","../src/components/Dialog.tsx","../src/components/Command.tsx","../src/components/Popover.tsx","../src/components/Autocomplete.tsx","../src/components/Avatar.tsx","../src/components/Breadcrumb.tsx","../src/components/Tag.tsx","../src/components/ProgressCircle.tsx","../src/components/Progress.tsx","../src/components/CardWeek.tsx","../src/components/Checkbox.tsx","../src/components/Collapsible.tsx","../src/hooks/use-mobile.ts","../src/components/DropdownMenu.tsx","../src/components/DatePicker.tsx","../src/components/Input.tsx","../src/components/Label.tsx","../src/components/Logo.tsx","../src/assets/js/tokens.ts","../src/components/Pagination.tsx","../src/components/RadioGroup.tsx","../src/components/Tooltip.tsx","../src/components/Ranking.tsx","../src/components/Rating.tsx","../src/components/ScrollArea.tsx","../src/components/Select.tsx","../src/components/SegmentControl.tsx","../node_modules/shared/src/utils.ts","../node_modules/lucide-react/src/defaultAttributes.ts","../node_modules/lucide-react/src/Icon.ts","../node_modules/lucide-react/src/createLucideIcon.ts","../node_modules/lucide-react/src/icons/x.ts","../src/components/Sheet.tsx","../src/components/Skeleton.tsx","../src/components/Sidebar.tsx","../src/components/Switch.tsx","../src/components/Switcher.tsx","../src/components/Tabs.tsx","../src/components/Tile.tsx","../src/hooks/use-toast.ts","../src/components/Toast.tsx"],"names":["concatArrays","array1","array2","combinedArray","Array","length","i","createClassValidatorObject","classGroupId","validator","createClassPartObject","nextPart","Map","validators","EMPTY_CONFLICTS","ARBITRARY_PROPERTY_PREFIX","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","className","startsWith","endsWith","getGroupIdForArbitraryProperty","classParts","split","CLASS_PART_SEPARATOR","startIndex","getGroupRecursive","getConflictingClassGroupIds","hasPostfixModifier","modifierConflicts","baseConflicts","classPartObject","currentClassPart","nextClassPartObject","get","result","classRest","join","slice","validatorsLength","validatorObj","indexOf","undefined","content","colonIndex","property","theme","classGroups","processClassGroups","group","processClassesRecursively","classGroup","len","classDefinition","processClassDefinition","processStringDefinition","processFunctionDefinition","processObjectDefinition","classPartObjectToEdit","getPart","isThemeGetter","push","entries","Object","key","value","path","current","parts","part","next","set","func","createLruCache","maxCacheSize","cacheSize","cache","create","previousCache","update","EMPTY_MODIFIERS","createResultObject","modifiers","hasImportantModifier","baseClassName","maybePostfixModifierPosition","isExternal","createParseClassName","prefix","experimentalParseClassName","parseClassName","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","index","currentCharacter","MODIFIER_SEPARATOR","baseClassNameWithImportantModifier","IMPORTANT_MODIFIER","fullPrefix","parseClassNameOriginal","createSortModifiers","modifierWeights","orderSensitiveModifiers","forEach","mod","currentSegment","modifier","isArbitrary","isOrderSensitive","has","sort","createConfigUtils","__spreadValues","sortModifiers","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","classGroupsInConflict","classNames","trim","originalClassName","substring","variantModifier","modifierId","classId","conflictGroups","twJoin","classLists","argument","resolvedValue","string","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","reduce","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","args","fallbackThemeArr","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","test","isNumber","Number","isNaN","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryWeight","isLabelWeight","isArbitraryFamilyName","isLabelFamilyName","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","isArbitraryVariableWeight","testLabel","testValue","exec","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","span","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleSizingInline","scaleSizingBlock","scaleColor","scaleBgPosition","position","scaleBgRepeat","repeat","scaleBgSize","size","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","animate","aspect","blur","breakpoint","color","container","ease","font","leading","perspective","radius","shadow","spacing","text","tracking","columns","box","display","sr","float","clear","isolation","object","overflow","overscroll","inset","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","row","gap","justify","items","baseline","self","p","px","py","ps","pe","pbs","pbe","pt","pr","pb","pl","m","mx","my","ms","me","mbs","mbe","mt","mr","mb","ml","inline","block","w","screen","h","list","placeholder","decoration","indent","align","whitespace","break","wrap","hyphens","bg","linear","to","radial","conic","from","via","rounded","border","divide","outline","ring","opacity","mask","closest","farthest","filter","brightness","contrast","grayscale","invert","saturate","sepia","table","caption","transition","duration","delay","backface","rotate","scale","skew","transform","origin","translate","accent","appearance","caret","scheme","cursor","resize","scroll","snap","touch","select","fill","stroke","mergeConfigs","baseConfig","extend","override","overrideProperty","overrideConfigProperties","mergeConfigProperties","mergeArrayProperties","baseObject","overrideKey","overrideValue","overrideObject","mergeObject","mergeValue","concat","extendTailwindMerge","configExtension","createConfig","customTwMerge","cn","inputs","clsx","AlertContext","createContext","alertVariants","cva","Alert","_a","_b","variant","onClose","children","props","__objRest","hasDescription","Children","child","isValidElement","AlertDescription","hasTitle","AlertTitle","jsx","jsxs","__spreadProps","CloseMd","AlertContainer","AlertContent","AlertIcon","icon","AlertActions","context","useContext","alertButtonVariants","AlertButton","alertVariant","Loading","ICON_ONLY_SIZES","CHAR_PADDING","badgeVariants","Badge","animation","asChild","Comp","Slot","hasChildren","isIconOnly","childText","isSingleAlphaNum","isShortAlnumUpTo3","isDigitsWithSuffix","isShortUpTo3","ALERT_CIRCLE_SIZES","badgeSizeMap","buttonVariants","Button","containerClassName","iconRight","iconLeft","badge","loading","alert","shouldShowBadge","renderIcon","renderAlertCircle","renderButtonContent","Fragment","AlertDialog","AlertDialogPrimitive","AlertDialogTrigger","AlertDialogPortal","AlertDialogOverlay","AlertDialogContent","AlertDialogHeader","AlertDialogFooter","AlertDialogTitle","AlertDialogDescription","AlertDialogAction","AlertDialogCancel","count","generateId","useReactId","Xa","useId","reactId","id","IS_GAP_REGEXP","COUNT_GAPS_REGEXP","IS_SPACE_REGEXP","COUNT_SPACE_REGEXP","commandScoreInner","abbreviation","lowerString","lowerAbbreviation","stringIndex","abbreviationIndex","memoizedResults","memoizeKey","abbreviationChar","highScore","score","transposedScore","wordBreaks","spaceBreaks","formatInput","commandScore","aliases","GROUP_SELECTOR","GROUP_ITEMS_SELECTOR","GROUP_HEADING_SELECTOR","ITEM_SELECTOR","VALID_ITEM_SELECTOR","SELECT_EVENT","VALUE_ATTR","defaultFilter","search","keywords","CommandContext","H","useCommand","StoreContext","useStore","GroupContext","Command","forwardedRef","state","useLazyRef","allItems","allGroups","ids","listeners","propsRef","useAsRef","onValueChange","shouldFilter","loop","disablePointerSelection","vimBindings","etc","listId","labelId","inputId","listInnerRef","schedule","useScheduleLayoutEffect","useLayoutEffect","v","store","scrollSelectedIntoView","cb","opts","_c","_d","_e","_f","filterItems","selectFirstItem","input","getSelectedItem","newValue","l","groupId","selectedItem","scores","groups","max","item","s","listInsertionElement","getValidItems","a","b","valueA","valueB","element","itemCount","rank","itemId","updateSelectedToIndex","updateSelectedByItem","change","selected","newSelected","updateSelectedByGroup","findNextSibling","findPreviousSibling","last","e","prev","isComposing","event","srOnlyStyles","SlottableWithNestedChildren","Item","ref","groupContext","forceMount","useValue","useCmdk","render","onSelect","disabled","_value","_onSelect","_forceMount","_keywords","mergeRefs","Group","heading","_children","headingRef","headingId","contextValue","Separator","alwaysRender","Input","isControlled","selectedItemId","List","height","el","wrapper","animationFrame","observer","listEl","handleWheel","Empty","progress","pkg","selector","sibling","data","fn","forceRender","currentValueRef","nextValue","deps","valueRef","alias","ss","fns","f","renderChildren","childrenType","refs","orientation","decorative","SeparatorPrimitive","Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","DialogContainer","overlayClassName","showCloseButton","DialogContent","DialogHeader","separator","DialogFooter","DialogTitle","cloneElement","DialogDescription","CommandInput","SearchMagnifyingGlass","CommandList","CommandEmpty","CommandGroup","CommandItem","Popover","PopoverPrimitive","PopoverTrigger","PopoverContent","sideOffset","showArrow","AutocompleteContext","Autocomplete","invalid","controlledValues","onValuesChange","controlledOpen","onOpenChange","defaultValues","internalValues","setInternalValues","useState","internalOpen","setInternalOpen","snapshot","setSnapshot","isControlledValues","isControlledOpen","values","open","toggleValue","val","setOpen","newOpen","onCancelSelection","AutocompleteWrapper","AutocompleteTrigger","hasSelection","ChevronDown","AutocompleteContentFooter","cancelLabel","confirmLabel","onCancel","onConfirm","Check","AutocompleteContent","searchPlaceholder","emptyMessage","childArray","footerChildren","listChildren","AutocompleteItem","itemValue","name","itemDisabled","isSelected","AutocompleteGroup","AutocompleteText","avatarVariants","Avatar","AvatarPrimitive","AvatarImage","AvatarFallback","User","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbPage","BreadcrumbSeparator","ChevronRightMd","BreadcrumbEllipsis","MoreHorizontal","tagVariants","TagIcon","Tag","ProgressCircle","indicatorClassName","trackClassName","valueClassName","labelClassName","strokeWidth","isStringValue","numericValue","circumference","offset","valueFontSize","labelFontSize","Progress","percentage","ProgressPrimitive","CardWeekContext","CardWeek","done","postponed","skipped","useMemo","CardWeekBreadcrumb","tag","tagIcon","CardWeekContainer","CardWeekHeader","CardWeekTitle","cardWeekContext","CardWeekDescription","CardWeekTags","CardWeekProgressCircle","CardWeekProgress","CardWeekFooter","CardWeekContent","CardWeekText","isTime","TimeRemaining","CardWeekStatus","CardWeekActions","checkboxVariants","Checkbox","uncheckIcon","CheckboxPrimitive","RemoveMinus","CollapsibleContext","Collapsible","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","animationClasses","MOBILE_BREAKPOINT","useIsMobile","isMobile","setIsMobile","useEffect","mql","onChange","DropdownMenu","DropdownMenuPrimitive","DropdownMenuPortal","DropdownMenuTrigger","DropdownMenuContent","side","DropdownMenuGroup","DropdownMenuItem","DropdownMenuCheckboxItem","checked","DropdownMenuRadioGroup","DropdownMenuRadioItem","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","DropdownMenuSub","DropdownMenuSubTrigger","ChevronRight","DropdownMenuSubContent","DatePickerContext","DatePickerWrapper","DatePickerLabel","DatePickerText","startOfDay","date","isSameDay","addMonths","delta","clampToStartOfMonth","isBeforeDay","isAfterDay","isDisabledByBounds","day","min","defaultFormat","DatePicker","defaultValue","format","inputClassName","contentClassName","yearRange","showYearSelector","uncontrolledValue","setUncontrolledValue","viewMonth","setViewMonth","rootRef","useRef","contentId","mobilePopoverStyle","setMobilePopoverStyle","placement","setPlacement","setSelected","useCallback","prevOverflow","close","onPointerDown","onKeyDown","POPOVER_ESTIMATED_HEIGHT","handleTriggerClick","rect","openAbove","today","year","month","firstDayOfMonth","daysInMonth","leadingEmpty","displayValue","months","_","years","handleMonthChange","newMonth","handleYearChange","newYear","Calendar","ChevronLeftMd","y","isToday","isDisabled","DateRangePicker","rangeValue","setRangeValue","POPOVER_ESTIMATED_HEIGHT_RANGE","handleDayClick","isStartDate","isEndDate","isInRange","INPUT_ICON_SIZE_LG","INPUT_ICON_SIZE_MD","INPUT_ICON_STROKE_WIDTH","CHEVRON_SIZE_LG","CHEVRON_SIZE_MD","InputWrapper","InputField","InputLabel","InputText","InputAdornment","InputStartIcon","InputEndIcon","inputVariants","TYPE_DEFAULT_ICON_LEFT","Mail","TYPE_DEFAULT_ICON_RIGHT","applyInputIconSize","InputPassword","visible","setVisible","Lock","Hide","Show","InputNumeric","internalValue","setInternalValue","inputRef","allowNegative","sanitizeToNumbers","raw","firstDot","handleChange","syntheticEvent","minValue","getNextValue","handleStep","nextStr","type","resolvedIconLeft","showInvalidRightIcon","resolvedIconRight","TriangleWarning","labelVariants","Label","LabelPrimitive","Logo","width","svgClassName","LogoShort","screens","PaginationRoot","PaginationContent","PaginationInfo","PaginationItem","PaginationLink","isActive","activeVariant","inactiveVariant","PaginationPrevious","ChevronLeftDuo","PaginationNext","ChevronRightDuo","PaginationEllipsis","calculatePageNumbers","currentPage","totalPages","maxVisible","pages","sidePages","Pagination","maxVisibleItems","onPageChange","itemsPerPage","totalItems","responsive","isTabletOrMobile","setIsTabletOrMobile","tabletPx","onResize","effectiveMaxVisible","shouldHideInfo","renderPageNumbers","page","CIRCLE_SIZES","radioGroupVariants","RadioGroup","RadioGroupPrimitive","RadioGroupItem","CircleIcon","TooltipProvider","delayDuration","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","Ranking","RankingHeader","RankingHeaderCell","tooltip","highlight","Info","RankingBody","RankingItem","RankingNumber","RankingTopicColumn","RankingTopicContent","RankingSpecialty","RankingTopic","RankingSuperFocus","CheckboxFill","RankingAssigneesColumn","RankingAssigneeLabel","RankingAssigneeGroup","RankingAssigneeItem","src","alt","fallback","avatarElement","RankingPriority","LinearProgressBar","getProgressColor","RankingQuestions","questions","answered","PERCENTAGE_STATUS_CONFIG","Warning","remainingQuestions","correct","getPercentageStatus","isNotStarted","minNotReached","condition","RankingPerformance","minQuestions","statusKey","Icon","bgColor","iconColor","titleClassName","title","subtitle","RankingButton","onClick","ArrowRightMd","RatingStarVariants","RatingStarHoveredVariants","RatingButtonVariants","RatingLabelVariants","StarIcon","generatedId","fallbackId","gradientId","getStarState","starIndex","starValue","Rating","maxStars","readOnly","labels","classNameContainer","classNameLabels","hoverIndex","setHoverIndex","currentValue","handleClick","handleMouseEnter","handleMouseLeave","isHovering","isWithinHover","isExactHover","starState","ScrollArea","ScrollAreaPrimitive","ScrollBar","SelectContext","Select","SelectPrimitive","SelectWrapper","SelectLabel","SelectGroup","SelectValue","selectVariants","SelectTrigger","SelectContent","SelectScrollUpButton","SelectScrollDownButton","SelectHeader","SelectItem","SelectSeparator","ChevronUp","SelectText","SegmentControlContext","SegmentControl","TabsPrimitive","SegmentControlList","segmentControlTriggerVariants","SegmentControlTrigger","badgeVariant","ctx","SegmentControlContent","toKebabCase","toCamelCase","match","p1","p2","toPascalCase","camelCase","mergeClasses","classes","array","hasA11yProp","prop","defaultAttributes","forwardRef","absoluteStrokeWidth","iconNode","rest","createElement","attrs","createLucideIcon","iconName","Component","__iconNode","X","Sheet","SheetPrimitive","SheetTrigger","SheetClose","SheetPortal","SheetOverlay","SheetContent","SheetHeader","SheetFooter","SheetTitle","SheetDescription","Skeleton","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","useSidebar","SidebarProvider","defaultOpen","openProp","setOpenProp","openMobile","setOpenMobile","_open","_setOpen","openState","toggleSidebar","handleKeyDown","Sidebar","collapsible","SidebarTrigger","sizeIcon","HamburgerMd","showTooltip","tooltipContent","enableHover","isHovered","setIsHovered","getDisplayIcon","button","SidebarRail","SidebarInset","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","SidebarContent","SidebarGroup","SidebarGroupLabel","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","SidebarMenuButton","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuItemTitle","SidebarMenuItemCollapse","SidebarMenuSubButton","THUMB_SIZES","ICON_SIZES","THUMB_TRANSLATE","switchVariants","Switch","checkedIcon","uncheckedIcon","defaultChecked","internalChecked","setInternalChecked","isChecked","hasIcons","SwitchPrimitive","SwitcherContext","Switcher","SwitcherTrigger","SwitcherContent","SwitcherGroup","SwitcherItem","SwitcherFooter","SwitcherSeparator","TabsContext","DEBOUNCE_DELAY","SCROLL_PADDING","FADE_GRADIENT_WIDTH","useTabsContext","useDebounce","callback","timeoutRef","tabsListVariants","tabsTriggerVariants","tabsWrapperVariants","fadeGradientVariants","tabsContentVariants","Tabs","responsiveSize","setResponsiveSize","handleResize","mobilePx","debouncedResize","TabsList","scrollContainerRef","listRef","showLeftFade","setShowLeftFade","showRightFade","setShowRightFade","indicatorStyle","setIndicatorStyle","checkScroll","scrollLeft","scrollWidth","clientWidth","hasOverflow","updateIndicator","activeTab","listRect","tabRect","scrollActiveTabIntoView","containerRect","resizeObserver","mutations","mutation","TabsTrigger","triggerRef","setIsActive","trigger","checkActiveState","TabsContent","tileVariants","Tile","inactive","EditPencil","TileIcon","TileTitle","TileDescription","TOAST_LIMIT","TOAST_REMOVE_DELAY","actionTypes","genId","toastTimeouts","addToRemoveQueue","toastId","timeout","dispatch","reducer","action","t","toast","memoryState","listener","dismiss","useToast","setState","toastVariants","toastIconVariants","toastActionButtonVariantMap","variantIcons","CircleCheck","OctagonWarning","ToastProvider","ToastPrimitive","ToastViewport","Toast","IconComponent","motion","ToastAction","altText","ToastClose","ToastTitle","ToastDescription","Toaster","toasts","AnimatePresence","description"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Concatenates two arrays faster than the array spread operator.\n */\nexport const concatArrays = <T, U>(\n array1: readonly T[],\n array2: readonly U[],\n): readonly (T | U)[] => {\n // Pre-allocate for better V8 optimization\n const combinedArray: (T | U)[] = new Array(array1.length + array2.length)\n for (let i = 0; i < array1.length; i++) {\n combinedArray[i] = array1[i]!\n }\n for (let i = 0; i < array2.length; i++) {\n combinedArray[array1.length + i] = array2[i]!\n }\n return combinedArray\n}\n","import {\n AnyClassGroupIds,\n AnyConfig,\n AnyThemeGroupIds,\n ClassGroup,\n ClassValidator,\n Config,\n ThemeGetter,\n ThemeObject,\n} from './types'\nimport { concatArrays } from './utils'\n\nexport interface ClassPartObject {\n nextPart: Map<string, ClassPartObject>\n validators: ClassValidatorObject[] | null\n classGroupId: AnyClassGroupIds | undefined // Always define optional props for consistent shape\n}\n\ninterface ClassValidatorObject {\n classGroupId: AnyClassGroupIds\n validator: ClassValidator\n}\n\n// Factory function ensures consistent object shapes\nconst createClassValidatorObject = (\n classGroupId: AnyClassGroupIds,\n validator: ClassValidator,\n): ClassValidatorObject => ({\n classGroupId,\n validator,\n})\n\n// Factory ensures consistent ClassPartObject shape\nconst createClassPartObject = (\n nextPart: Map<string, ClassPartObject> = new Map(),\n validators: ClassValidatorObject[] | null = null,\n classGroupId?: AnyClassGroupIds,\n): ClassPartObject => ({\n nextPart,\n validators,\n classGroupId,\n})\n\nconst CLASS_PART_SEPARATOR = '-'\n\nconst EMPTY_CONFLICTS: readonly AnyClassGroupIds[] = []\n// I use two dots here because one dot is used as prefix for class groups in plugins\nconst ARBITRARY_PROPERTY_PREFIX = 'arbitrary..'\n\nexport const createClassGroupUtils = (config: AnyConfig) => {\n const classMap = createClassMap(config)\n const { conflictingClassGroups, conflictingClassGroupModifiers } = config\n\n const getClassGroupId = (className: string) => {\n if (className.startsWith('[') && className.endsWith(']')) {\n return getGroupIdForArbitraryProperty(className)\n }\n\n const classParts = className.split(CLASS_PART_SEPARATOR)\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and skip it.\n const startIndex = classParts[0] === '' && classParts.length > 1 ? 1 : 0\n return getGroupRecursive(classParts, startIndex, classMap)\n }\n\n const getConflictingClassGroupIds = (\n classGroupId: AnyClassGroupIds,\n hasPostfixModifier: boolean,\n ): readonly AnyClassGroupIds[] => {\n if (hasPostfixModifier) {\n const modifierConflicts = conflictingClassGroupModifiers[classGroupId]\n const baseConflicts = conflictingClassGroups[classGroupId]\n\n if (modifierConflicts) {\n if (baseConflicts) {\n // Merge base conflicts with modifier conflicts\n return concatArrays(baseConflicts, modifierConflicts)\n }\n // Only modifier conflicts\n return modifierConflicts\n }\n // Fall back to without postfix if no modifier conflicts\n return baseConflicts || EMPTY_CONFLICTS\n }\n\n return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS\n }\n\n return {\n getClassGroupId,\n getConflictingClassGroupIds,\n }\n}\n\nconst getGroupRecursive = (\n classParts: string[],\n startIndex: number,\n classPartObject: ClassPartObject,\n): AnyClassGroupIds | undefined => {\n const classPathsLength = classParts.length - startIndex\n if (classPathsLength === 0) {\n return classPartObject.classGroupId\n }\n\n const currentClassPart = classParts[startIndex]!\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart)\n\n if (nextClassPartObject) {\n const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject)\n if (result) return result\n }\n\n const validators = classPartObject.validators\n if (validators === null) {\n return undefined\n }\n\n // Build classRest string efficiently by joining from startIndex onwards\n const classRest =\n startIndex === 0\n ? classParts.join(CLASS_PART_SEPARATOR)\n : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR)\n const validatorsLength = validators.length\n\n for (let i = 0; i < validatorsLength; i++) {\n const validatorObj = validators[i]!\n if (validatorObj.validator(classRest)) {\n return validatorObj.classGroupId\n }\n }\n\n return undefined\n}\n\n/**\n * Get the class group ID for an arbitrary property.\n *\n * @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.\n */\nconst getGroupIdForArbitraryProperty = (className: string): AnyClassGroupIds | undefined =>\n className.slice(1, -1).indexOf(':') === -1\n ? undefined\n : (() => {\n const content = className.slice(1, -1)\n const colonIndex = content.indexOf(':')\n const property = content.slice(0, colonIndex)\n return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined\n })()\n\n/**\n * Exported for testing only\n */\nexport const createClassMap = (config: Config<AnyClassGroupIds, AnyThemeGroupIds>) => {\n const { theme, classGroups } = config\n return processClassGroups(classGroups, theme)\n}\n\n// Split into separate functions to maintain monomorphic call sites\nconst processClassGroups = (\n classGroups: Record<AnyClassGroupIds, ClassGroup<AnyThemeGroupIds>>,\n theme: ThemeObject<AnyThemeGroupIds>,\n): ClassPartObject => {\n const classMap = createClassPartObject()\n\n for (const classGroupId in classGroups) {\n const group = classGroups[classGroupId]!\n processClassesRecursively(group, classMap, classGroupId, theme)\n }\n\n return classMap\n}\n\nconst processClassesRecursively = (\n classGroup: ClassGroup<AnyThemeGroupIds>,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n const len = classGroup.length\n for (let i = 0; i < len; i++) {\n const classDefinition = classGroup[i]!\n processClassDefinition(classDefinition, classPartObject, classGroupId, theme)\n }\n}\n\n// Split into separate functions for each type to maintain monomorphic call sites\nconst processClassDefinition = (\n classDefinition: ClassGroup<AnyThemeGroupIds>[number],\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n if (typeof classDefinition === 'string') {\n processStringDefinition(classDefinition, classPartObject, classGroupId)\n return\n }\n\n if (typeof classDefinition === 'function') {\n processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme)\n return\n }\n\n processObjectDefinition(\n classDefinition as Record<string, ClassGroup<AnyThemeGroupIds>>,\n classPartObject,\n classGroupId,\n theme,\n )\n}\n\nconst processStringDefinition = (\n classDefinition: string,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n) => {\n const classPartObjectToEdit =\n classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition)\n classPartObjectToEdit.classGroupId = classGroupId\n}\n\nconst processFunctionDefinition = (\n classDefinition: Function,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme)\n return\n }\n\n if (classPartObject.validators === null) {\n classPartObject.validators = []\n }\n classPartObject.validators.push(\n createClassValidatorObject(classGroupId, classDefinition as ClassValidator),\n )\n}\n\nconst processObjectDefinition = (\n classDefinition: Record<string, ClassGroup<AnyThemeGroupIds>>,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n const entries = Object.entries(classDefinition)\n const len = entries.length\n for (let i = 0; i < len; i++) {\n const [key, value] = entries[i]!\n processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme)\n }\n}\n\nconst getPart = (classPartObject: ClassPartObject, path: string): ClassPartObject => {\n let current = classPartObject\n const parts = path.split(CLASS_PART_SEPARATOR)\n const len = parts.length\n\n for (let i = 0; i < len; i++) {\n const part = parts[i]!\n\n let next = current.nextPart.get(part)\n if (!next) {\n next = createClassPartObject()\n current.nextPart.set(part, next)\n }\n current = next\n }\n\n return current\n}\n\n// Type guard maintains monomorphic check\nconst isThemeGetter = (func: Function): func is ThemeGetter =>\n 'isThemeGetter' in func && (func as ThemeGetter).isThemeGetter === true\n","// Export is needed because TypeScript complains about an error otherwise:\n// Error: …/tailwind-merge/src/config-utils.ts(8,17): semantic error TS4058: Return type of exported function has or is using name 'LruCache' from external module \"…/tailwind-merge/src/lru-cache\" but cannot be named.\nexport interface LruCache<Key extends string, Value> {\n get(key: Key): Value | undefined\n set(key: Key, value: Value): void\n}\n\n// LRU cache implementation using plain objects for simplicity\nexport const createLruCache = <Key extends string, Value>(\n maxCacheSize: number,\n): LruCache<Key, Value> => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {},\n }\n }\n\n let cacheSize = 0\n let cache: Record<Key, Value> = Object.create(null)\n let previousCache: Record<Key, Value> = Object.create(null)\n\n const update = (key: Key, value: Value) => {\n cache[key] = value\n cacheSize++\n\n if (cacheSize > maxCacheSize) {\n cacheSize = 0\n previousCache = cache\n cache = Object.create(null)\n }\n }\n\n return {\n get(key) {\n let value = cache[key]\n\n if (value !== undefined) {\n return value\n }\n if ((value = previousCache[key]) !== undefined) {\n update(key, value)\n return value\n }\n },\n set(key, value) {\n if (key in cache) {\n cache[key] = value\n } else {\n update(key, value)\n }\n },\n }\n}\n","import { AnyConfig, ParsedClassName } from './types'\n\nexport const IMPORTANT_MODIFIER = '!'\n\nconst MODIFIER_SEPARATOR = ':'\nconst EMPTY_MODIFIERS: string[] = []\n\n// Pre-allocated result object shape for consistency\nconst createResultObject = (\n modifiers: string[],\n hasImportantModifier: boolean,\n baseClassName: string,\n maybePostfixModifierPosition?: number,\n isExternal?: boolean,\n): ParsedClassName => ({\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n isExternal,\n})\n\nexport const createParseClassName = (config: AnyConfig) => {\n const { prefix, experimentalParseClassName } = config\n\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = (className: string): ParsedClassName => {\n // Use simple array with push for better performance\n const modifiers: string[] = []\n\n let bracketDepth = 0\n let parenDepth = 0\n let modifierStart = 0\n let postfixModifierPosition: number | undefined\n\n const len = className.length\n for (let index = 0; index < len; index++) {\n const currentCharacter = className[index]!\n\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index))\n modifierStart = index + 1\n continue\n }\n\n if (currentCharacter === '/') {\n postfixModifierPosition = index\n continue\n }\n }\n\n if (currentCharacter === '[') bracketDepth++\n else if (currentCharacter === ']') bracketDepth--\n else if (currentCharacter === '(') parenDepth++\n else if (currentCharacter === ')') parenDepth--\n }\n\n const baseClassNameWithImportantModifier =\n modifiers.length === 0 ? className : className.slice(modifierStart)\n\n // Inline important modifier check\n let baseClassName = baseClassNameWithImportantModifier\n let hasImportantModifier = false\n\n if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(0, -1)\n hasImportantModifier = true\n } else if (\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)\n ) {\n baseClassName = baseClassNameWithImportantModifier.slice(1)\n hasImportantModifier = true\n }\n\n const maybePostfixModifierPosition =\n postfixModifierPosition && postfixModifierPosition > modifierStart\n ? postfixModifierPosition - modifierStart\n : undefined\n\n return createResultObject(\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n )\n }\n\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR\n const parseClassNameOriginal = parseClassName\n parseClassName = (className: string) =>\n className.startsWith(fullPrefix)\n ? parseClassNameOriginal(className.slice(fullPrefix.length))\n : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true)\n }\n\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName\n parseClassName = (className: string) =>\n experimentalParseClassName({ className, parseClassName: parseClassNameOriginal })\n }\n\n return parseClassName\n}\n","import { AnyConfig } from './types'\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nexport const createSortModifiers = (config: AnyConfig) => {\n // Pre-compute weights for all known modifiers for O(1) comparison\n const modifierWeights = new Map<string, number>()\n\n // Assign weights to sensitive modifiers (highest priority, but preserve order)\n config.orderSensitiveModifiers.forEach((mod, index) => {\n modifierWeights.set(mod, 1000000 + index) // High weights for sensitive mods\n })\n\n return (modifiers: readonly string[]): string[] => {\n const result: string[] = []\n let currentSegment: string[] = []\n\n // Process modifiers in one pass\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i]!\n\n // Check if modifier is sensitive (starts with '[' or in orderSensitiveModifiers)\n const isArbitrary = modifier[0] === '['\n const isOrderSensitive = modifierWeights.has(modifier)\n\n if (isArbitrary || isOrderSensitive) {\n // Sort and flush current segment alphabetically\n if (currentSegment.length > 0) {\n currentSegment.sort()\n result.push(...currentSegment)\n currentSegment = []\n }\n result.push(modifier)\n } else {\n // Regular modifier - add to current segment for batch sorting\n currentSegment.push(modifier)\n }\n }\n\n // Sort and add any remaining segment items\n if (currentSegment.length > 0) {\n currentSegment.sort()\n result.push(...currentSegment)\n }\n\n return result\n }\n}\n","import { createClassGroupUtils } from './class-group-utils'\nimport { createLruCache } from './lru-cache'\nimport { createParseClassName } from './parse-class-name'\nimport { createSortModifiers } from './sort-modifiers'\nimport { AnyConfig } from './types'\n\nexport type ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport const createConfigUtils = (config: AnyConfig) => ({\n cache: createLruCache<string, string>(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config),\n})\n","import { ConfigUtils } from './config-utils'\nimport { IMPORTANT_MODIFIER } from './parse-class-name'\n\nconst SPLIT_CLASSES_REGEX = /\\s+/\n\nexport const mergeClassList = (classList: string, configUtils: ConfigUtils) => {\n const { parseClassName, getClassGroupId, getConflictingClassGroupIds, sortModifiers } =\n configUtils\n\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict: string[] = []\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX)\n\n let result = ''\n\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index]!\n\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n } = parseClassName(originalClassName)\n\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n let hasPostfixModifier = !!maybePostfixModifierPosition\n let classGroupId = getClassGroupId(\n hasPostfixModifier\n ? baseClassName.substring(0, maybePostfixModifierPosition)\n : baseClassName,\n )\n\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n classGroupId = getClassGroupId(baseClassName)\n\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n hasPostfixModifier = false\n }\n\n // Fast path: skip sorting for empty or single modifier\n const variantModifier =\n modifiers.length === 0\n ? ''\n : modifiers.length === 1\n ? modifiers[0]!\n : sortModifiers(modifiers).join(':')\n\n const modifierId = hasImportantModifier\n ? variantModifier + IMPORTANT_MODIFIER\n : variantModifier\n\n const classId = modifierId + classGroupId\n\n if (classGroupsInConflict.indexOf(classId) > -1) {\n // Tailwind class omitted due to conflict\n continue\n }\n\n classGroupsInConflict.push(classId)\n\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier)\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i]!\n classGroupsInConflict.push(modifierId + group)\n }\n\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n }\n\n return result\n}\n","/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\n\nexport type ClassNameValue = ClassNameArray | string | null | undefined | 0 | 0n | false\ntype ClassNameArray = ClassNameValue[]\n\nexport const twJoin = (...classLists: ClassNameValue[]): string => {\n let index = 0\n let argument: ClassNameValue\n let resolvedValue: string\n let string = ''\n\n while (index < classLists.length) {\n if ((argument = classLists[index++])) {\n if ((resolvedValue = toValue(argument))) {\n string && (string += ' ')\n string += resolvedValue\n }\n }\n }\n return string\n}\n\nconst toValue = (mix: ClassNameArray | string): string => {\n // Fast path for strings\n if (typeof mix === 'string') {\n return mix\n }\n\n let resolvedValue: string\n let string = ''\n\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if ((resolvedValue = toValue(mix[k] as ClassNameArray | string))) {\n string && (string += ' ')\n string += resolvedValue\n }\n }\n }\n\n return string\n}\n","import { createConfigUtils } from './config-utils'\nimport { mergeClassList } from './merge-classlist'\nimport { ClassNameValue, twJoin } from './tw-join'\nimport { AnyConfig } from './types'\n\ntype CreateConfigFirst = () => AnyConfig\ntype CreateConfigSubsequent = (config: AnyConfig) => AnyConfig\ntype TailwindMerge = (...classLists: ClassNameValue[]) => string\ntype ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport const createTailwindMerge = (\n createConfigFirst: CreateConfigFirst,\n ...createConfigRest: CreateConfigSubsequent[]\n): TailwindMerge => {\n let configUtils: ConfigUtils\n let cacheGet: ConfigUtils['cache']['get']\n let cacheSet: ConfigUtils['cache']['set']\n let functionToCall: (classList: string) => string\n\n const initTailwindMerge = (classList: string) => {\n const config = createConfigRest.reduce(\n (previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig),\n createConfigFirst() as AnyConfig,\n )\n\n configUtils = createConfigUtils(config)\n cacheGet = configUtils.cache.get\n cacheSet = configUtils.cache.set\n functionToCall = tailwindMerge\n\n return tailwindMerge(classList)\n }\n\n const tailwindMerge = (classList: string) => {\n const cachedResult = cacheGet(classList)\n\n if (cachedResult) {\n return cachedResult\n }\n\n const result = mergeClassList(classList, configUtils)\n cacheSet(classList, result)\n\n return result\n }\n\n functionToCall = initTailwindMerge\n\n return (...args: ClassNameValue[]) => functionToCall(twJoin(...args))\n}\n","import { DefaultThemeGroupIds, NoInfer, ThemeGetter, ThemeObject } from './types'\n\nconst fallbackThemeArr: ThemeObject<DefaultThemeGroupIds>[DefaultThemeGroupIds] = []\n\nexport const fromTheme = <\n AdditionalThemeGroupIds extends string = never,\n DefaultThemeGroupIdsInner extends string = DefaultThemeGroupIds,\n>(\n key: NoInfer<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>,\n): ThemeGetter => {\n const themeGetter = (theme: ThemeObject<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>) =>\n theme[key] || fallbackThemeArr\n\n themeGetter.isThemeGetter = true as const\n\n return themeGetter\n}\n","const arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i\nconst fractionRegex = /^\\d+(?:\\.\\d+)?\\/\\d+(?:\\.\\d+)?$/\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/\nconst lengthUnitRegex =\n /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/\nconst imageRegex =\n /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/\n\nexport const isFraction = (value: string) => fractionRegex.test(value)\n\nexport const isNumber = (value: string) => !!value && !Number.isNaN(Number(value))\n\nexport const isInteger = (value: string) => !!value && Number.isInteger(Number(value))\n\nexport const isPercent = (value: string) => value.endsWith('%') && isNumber(value.slice(0, -1))\n\nexport const isTshirtSize = (value: string) => tshirtUnitRegex.test(value)\n\nexport const isAny = () => true\n\nconst isLengthOnly = (value: string) =>\n // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n // For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\n lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)\n\nconst isNever = () => false\n\nconst isShadow = (value: string) => shadowRegex.test(value)\n\nconst isImage = (value: string) => imageRegex.test(value)\n\nexport const isAnyNonArbitrary = (value: string) =>\n !isArbitraryValue(value) && !isArbitraryVariable(value)\n\nexport const isArbitrarySize = (value: string) => getIsArbitraryValue(value, isLabelSize, isNever)\n\nexport const isArbitraryValue = (value: string) => arbitraryValueRegex.test(value)\n\nexport const isArbitraryLength = (value: string) =>\n getIsArbitraryValue(value, isLabelLength, isLengthOnly)\n\nexport const isArbitraryNumber = (value: string) =>\n getIsArbitraryValue(value, isLabelNumber, isNumber)\n\nexport const isArbitraryWeight = (value: string) => getIsArbitraryValue(value, isLabelWeight, isAny)\n\nexport const isArbitraryFamilyName = (value: string) =>\n getIsArbitraryValue(value, isLabelFamilyName, isNever)\n\nexport const isArbitraryPosition = (value: string) =>\n getIsArbitraryValue(value, isLabelPosition, isNever)\n\nexport const isArbitraryImage = (value: string) => getIsArbitraryValue(value, isLabelImage, isImage)\n\nexport const isArbitraryShadow = (value: string) =>\n getIsArbitraryValue(value, isLabelShadow, isShadow)\n\nexport const isArbitraryVariable = (value: string) => arbitraryVariableRegex.test(value)\n\nexport const isArbitraryVariableLength = (value: string) =>\n getIsArbitraryVariable(value, isLabelLength)\n\nexport const isArbitraryVariableFamilyName = (value: string) =>\n getIsArbitraryVariable(value, isLabelFamilyName)\n\nexport const isArbitraryVariablePosition = (value: string) =>\n getIsArbitraryVariable(value, isLabelPosition)\n\nexport const isArbitraryVariableSize = (value: string) => getIsArbitraryVariable(value, isLabelSize)\n\nexport const isArbitraryVariableImage = (value: string) =>\n getIsArbitraryVariable(value, isLabelImage)\n\nexport const isArbitraryVariableShadow = (value: string) =>\n getIsArbitraryVariable(value, isLabelShadow, true)\n\nexport const isArbitraryVariableWeight = (value: string) =>\n getIsArbitraryVariable(value, isLabelWeight, true)\n\n// Helpers\n\nconst getIsArbitraryValue = (\n value: string,\n testLabel: (label: string) => boolean,\n testValue: (value: string) => boolean,\n) => {\n const result = arbitraryValueRegex.exec(value)\n\n if (result) {\n if (result[1]) {\n return testLabel(result[1])\n }\n\n return testValue(result[2]!)\n }\n\n return false\n}\n\nconst getIsArbitraryVariable = (\n value: string,\n testLabel: (label: string) => boolean,\n shouldMatchNoLabel = false,\n) => {\n const result = arbitraryVariableRegex.exec(value)\n\n if (result) {\n if (result[1]) {\n return testLabel(result[1])\n }\n return shouldMatchNoLabel\n }\n\n return false\n}\n\n// Labels\n\nconst isLabelPosition = (label: string) => label === 'position' || label === 'percentage'\n\nconst isLabelImage = (label: string) => label === 'image' || label === 'url'\n\nconst isLabelSize = (label: string) => label === 'length' || label === 'size' || label === 'bg-size'\n\nconst isLabelLength = (label: string) => label === 'length'\n\nconst isLabelNumber = (label: string) => label === 'number'\n\nconst isLabelFamilyName = (label: string) => label === 'family-name'\n\nconst isLabelWeight = (label: string) => label === 'number' || label === 'weight'\n\nconst isLabelShadow = (label: string) => label === 'shadow'\n","import { fromTheme } from './from-theme'\nimport { Config, DefaultClassGroupIds, DefaultThemeGroupIds } from './types'\nimport {\n isAny,\n isAnyNonArbitrary,\n isArbitraryFamilyName,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isArbitraryVariableWeight,\n isArbitraryWeight,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize,\n} from './validators'\n\nexport const getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n\n const themeColor = fromTheme('color')\n const themeFont = fromTheme('font')\n const themeText = fromTheme('text')\n const themeFontWeight = fromTheme('font-weight')\n const themeTracking = fromTheme('tracking')\n const themeLeading = fromTheme('leading')\n const themeBreakpoint = fromTheme('breakpoint')\n const themeContainer = fromTheme('container')\n const themeSpacing = fromTheme('spacing')\n const themeRadius = fromTheme('radius')\n const themeShadow = fromTheme('shadow')\n const themeInsetShadow = fromTheme('inset-shadow')\n const themeTextShadow = fromTheme('text-shadow')\n const themeDropShadow = fromTheme('drop-shadow')\n const themeBlur = fromTheme('blur')\n const themePerspective = fromTheme('perspective')\n const themeAspect = fromTheme('aspect')\n const themeEase = fromTheme('ease')\n const themeAnimate = fromTheme('animate')\n\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n\n const scaleBreak = () =>\n ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'] as const\n const scalePosition = () =>\n [\n 'center',\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top',\n 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top',\n 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom',\n 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom',\n ] as const\n const scalePositionWithArbitrary = () =>\n [...scalePosition(), isArbitraryVariable, isArbitraryValue] as const\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'] as const\n const scaleOverscroll = () => ['auto', 'contain', 'none'] as const\n const scaleUnambiguousSpacing = () =>\n [isArbitraryVariable, isArbitraryValue, themeSpacing] as const\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()] as const\n const scaleGridTemplateColsRows = () =>\n [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue] as const\n const scaleGridColRowStartAndEnd = () =>\n [\n 'auto',\n { span: ['full', isInteger, isArbitraryVariable, isArbitraryValue] },\n isInteger,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleGridColRowStartOrEnd = () =>\n [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] as const\n const scaleGridAutoColsRows = () =>\n ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue] as const\n const scaleAlignPrimaryAxis = () =>\n [\n 'start',\n 'end',\n 'center',\n 'between',\n 'around',\n 'evenly',\n 'stretch',\n 'baseline',\n 'center-safe',\n 'end-safe',\n ] as const\n const scaleAlignSecondaryAxis = () =>\n ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'] as const\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()] as const\n const scaleSizing = () =>\n [\n isFraction,\n 'auto',\n 'full',\n 'dvw',\n 'dvh',\n 'lvw',\n 'lvh',\n 'svw',\n 'svh',\n 'min',\n 'max',\n 'fit',\n ...scaleUnambiguousSpacing(),\n ] as const\n const scaleSizingInline = () =>\n [\n isFraction,\n 'screen',\n 'full',\n 'dvw',\n 'lvw',\n 'svw',\n 'min',\n 'max',\n 'fit',\n ...scaleUnambiguousSpacing(),\n ] as const\n const scaleSizingBlock = () =>\n [\n isFraction,\n 'screen',\n 'full',\n 'lh',\n 'dvh',\n 'lvh',\n 'svh',\n 'min',\n 'max',\n 'fit',\n ...scaleUnambiguousSpacing(),\n ] as const\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue] as const\n const scaleBgPosition = () =>\n [\n ...scalePosition(),\n isArbitraryVariablePosition,\n isArbitraryPosition,\n { position: [isArbitraryVariable, isArbitraryValue] },\n ] as const\n const scaleBgRepeat = () => ['no-repeat', { repeat: ['', 'x', 'y', 'space', 'round'] }] as const\n const scaleBgSize = () =>\n [\n 'auto',\n 'cover',\n 'contain',\n isArbitraryVariableSize,\n isArbitrarySize,\n { size: [isArbitraryVariable, isArbitraryValue] },\n ] as const\n const scaleGradientStopPosition = () =>\n [isPercent, isArbitraryVariableLength, isArbitraryLength] as const\n const scaleRadius = () =>\n [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n 'full',\n themeRadius,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleBorderWidth = () =>\n ['', isNumber, isArbitraryVariableLength, isArbitraryLength] as const\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'] as const\n const scaleBlendMode = () =>\n [\n 'normal',\n 'multiply',\n 'screen',\n 'overlay',\n 'darken',\n 'lighten',\n 'color-dodge',\n 'color-burn',\n 'hard-light',\n 'soft-light',\n 'difference',\n 'exclusion',\n 'hue',\n 'saturation',\n 'color',\n 'luminosity',\n ] as const\n const scaleMaskImagePosition = () =>\n [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition] as const\n const scaleBlur = () =>\n [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeBlur,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()] as const\n\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': [\n 'thin',\n 'extralight',\n 'light',\n 'normal',\n 'medium',\n 'semibold',\n 'bold',\n 'extrabold',\n 'black',\n ],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest'],\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [\n {\n aspect: [\n 'auto',\n 'square',\n isFraction,\n isArbitraryValue,\n isArbitraryVariable,\n themeAspect,\n ],\n },\n ],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [\n { columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer] },\n ],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{ 'break-after': scaleBreak() }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{ 'break-before': scaleBreak() }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{ 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column'] }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{ 'box-decoration': ['slice', 'clone'] }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{ box: ['border', 'content'] }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: [\n 'block',\n 'inline-block',\n 'inline',\n 'flex',\n 'inline-flex',\n 'table',\n 'inline-table',\n 'table-caption',\n 'table-cell',\n 'table-column',\n 'table-column-group',\n 'table-footer-group',\n 'table-header-group',\n 'table-row-group',\n 'table-row',\n 'flow-root',\n 'grid',\n 'inline-grid',\n 'contents',\n 'list-item',\n 'hidden',\n ],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{ float: ['right', 'left', 'none', 'start', 'end'] }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{ clear: ['left', 'right', 'both', 'none', 'start', 'end'] }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{ object: ['contain', 'cover', 'fill', 'none', 'scale-down'] }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{ object: scalePositionWithArbitrary() }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{ overflow: scaleOverflow() }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{ 'overflow-x': scaleOverflow() }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{ 'overflow-y': scaleOverflow() }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{ overscroll: scaleOverscroll() }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{ 'overscroll-x': scaleOverscroll() }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{ 'overscroll-y': scaleOverscroll() }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Inset\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{ inset: scaleInset() }],\n /**\n * Inset Inline\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{ 'inset-x': scaleInset() }],\n /**\n * Inset Block\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{ 'inset-y': scaleInset() }],\n /**\n * Inset Inline Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n * @todo class group will be renamed to `inset-s` in next major release\n */\n start: [\n {\n 'inset-s': scaleInset(),\n /**\n * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-s-*` utilities.\n * @see https://github.com/tailwindlabs/tailwindcss/pull/19613\n */\n start: scaleInset(),\n },\n ],\n /**\n * Inset Inline End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n * @todo class group will be renamed to `inset-e` in next major release\n */\n end: [\n {\n 'inset-e': scaleInset(),\n /**\n * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-e-*` utilities.\n * @see https://github.com/tailwindlabs/tailwindcss/pull/19613\n */\n end: scaleInset(),\n },\n ],\n /**\n * Inset Block Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-bs': [{ 'inset-bs': scaleInset() }],\n /**\n * Inset Block End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-be': [{ 'inset-be': scaleInset() }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{ top: scaleInset() }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{ right: scaleInset() }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{ bottom: scaleInset() }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{ left: scaleInset() }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{ z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] }],\n\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [\n {\n basis: [\n isFraction,\n 'full',\n 'auto',\n themeContainer,\n ...scaleUnambiguousSpacing(),\n ],\n },\n ],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{ flex: ['row', 'row-reverse', 'col', 'col-reverse'] }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{ flex: ['nowrap', 'wrap', 'wrap-reverse'] }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{ flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue] }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{ grow: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{ shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [\n {\n order: [\n isInteger,\n 'first',\n 'last',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{ 'grid-cols': scaleGridTemplateColsRows() }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{ col: scaleGridColRowStartAndEnd() }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{ 'col-start': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{ 'col-end': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{ 'grid-rows': scaleGridTemplateColsRows() }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{ row: scaleGridColRowStartAndEnd() }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{ 'row-start': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{ 'row-end': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{ 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense'] }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{ 'auto-cols': scaleGridAutoColsRows() }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{ 'auto-rows': scaleGridAutoColsRows() }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{ gap: scaleUnambiguousSpacing() }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{ 'gap-x': scaleUnambiguousSpacing() }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{ 'gap-y': scaleUnambiguousSpacing() }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{ justify: [...scaleAlignPrimaryAxis(), 'normal'] }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{ 'justify-items': [...scaleAlignSecondaryAxis(), 'normal'] }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{ 'justify-self': ['auto', ...scaleAlignSecondaryAxis()] }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{ content: ['normal', ...scaleAlignPrimaryAxis()] }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{ items: [...scaleAlignSecondaryAxis(), { baseline: ['', 'last'] }] }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [\n { self: ['auto', ...scaleAlignSecondaryAxis(), { baseline: ['', 'last'] }] },\n ],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{ 'place-content': scaleAlignPrimaryAxis() }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{ 'place-items': [...scaleAlignSecondaryAxis(), 'baseline'] }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{ 'place-self': ['auto', ...scaleAlignSecondaryAxis()] }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{ p: scaleUnambiguousSpacing() }],\n /**\n * Padding Inline\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{ px: scaleUnambiguousSpacing() }],\n /**\n * Padding Block\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{ py: scaleUnambiguousSpacing() }],\n /**\n * Padding Inline Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{ ps: scaleUnambiguousSpacing() }],\n /**\n * Padding Inline End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{ pe: scaleUnambiguousSpacing() }],\n /**\n * Padding Block Start\n * @see https://tailwindcss.com/docs/padding\n */\n pbs: [{ pbs: scaleUnambiguousSpacing() }],\n /**\n * Padding Block End\n * @see https://tailwindcss.com/docs/padding\n */\n pbe: [{ pbe: scaleUnambiguousSpacing() }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{ pt: scaleUnambiguousSpacing() }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{ pr: scaleUnambiguousSpacing() }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{ pb: scaleUnambiguousSpacing() }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{ pl: scaleUnambiguousSpacing() }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{ m: scaleMargin() }],\n /**\n * Margin Inline\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{ mx: scaleMargin() }],\n /**\n * Margin Block\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{ my: scaleMargin() }],\n /**\n * Margin Inline Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{ ms: scaleMargin() }],\n /**\n * Margin Inline End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{ me: scaleMargin() }],\n /**\n * Margin Block Start\n * @see https://tailwindcss.com/docs/margin\n */\n mbs: [{ mbs: scaleMargin() }],\n /**\n * Margin Block End\n * @see https://tailwindcss.com/docs/margin\n */\n mbe: [{ mbe: scaleMargin() }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{ mt: scaleMargin() }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{ mr: scaleMargin() }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{ mb: scaleMargin() }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{ ml: scaleMargin() }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{ 'space-x': scaleUnambiguousSpacing() }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{ 'space-y': scaleUnambiguousSpacing() }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n\n // --------------\n // --- Sizing ---\n // --------------\n\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{ size: scaleSizing() }],\n /**\n * Inline Size\n * @see https://tailwindcss.com/docs/width\n */\n 'inline-size': [{ inline: ['auto', ...scaleSizingInline()] }],\n /**\n * Min-Inline Size\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-inline-size': [{ 'min-inline': ['auto', ...scaleSizingInline()] }],\n /**\n * Max-Inline Size\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-inline-size': [{ 'max-inline': ['none', ...scaleSizingInline()] }],\n /**\n * Block Size\n * @see https://tailwindcss.com/docs/height\n */\n 'block-size': [{ block: ['auto', ...scaleSizingBlock()] }],\n /**\n * Min-Block Size\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-block-size': [{ 'min-block': ['auto', ...scaleSizingBlock()] }],\n /**\n * Max-Block Size\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-block-size': [{ 'max-block': ['none', ...scaleSizingBlock()] }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{ w: [themeContainer, 'screen', ...scaleSizing()] }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [\n {\n 'min-w': [\n themeContainer,\n 'screen',\n /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none',\n ...scaleSizing(),\n ],\n },\n ],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [\n {\n 'max-w': [\n themeContainer,\n 'screen',\n 'none',\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose',\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n { screen: [themeBreakpoint] },\n ...scaleSizing(),\n ],\n },\n ],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{ h: ['screen', 'lh', ...scaleSizing()] }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{ 'min-h': ['screen', 'lh', 'none', ...scaleSizing()] }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{ 'max-h': ['screen', 'lh', ...scaleSizing()] }],\n\n // ------------------\n // --- Typography ---\n // ------------------\n\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [\n { text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength] },\n ],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [\n {\n font: [themeFontWeight, isArbitraryVariableWeight, isArbitraryWeight],\n },\n ],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [\n {\n 'font-stretch': [\n 'ultra-condensed',\n 'extra-condensed',\n 'condensed',\n 'semi-condensed',\n 'normal',\n 'semi-expanded',\n 'expanded',\n 'extra-expanded',\n 'ultra-expanded',\n isPercent,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [\n { font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont] },\n ],\n /**\n * Font Feature Settings\n * @see https://tailwindcss.com/docs/font-feature-settings\n */\n 'font-features': [{ 'font-features': [isArbitraryValue] }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{ tracking: [themeTracking, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [\n { 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber] },\n ],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [\n {\n leading: [\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading,\n ...scaleUnambiguousSpacing(),\n ],\n },\n ],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{ 'list-image': ['none', isArbitraryVariable, isArbitraryValue] }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{ list: ['inside', 'outside'] }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [\n { list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{ text: ['left', 'center', 'right', 'justify', 'start', 'end'] }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{ placeholder: scaleColor() }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{ text: scaleColor() }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{ decoration: [...scaleLineStyle(), 'wavy'] }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [\n {\n decoration: [\n isNumber,\n 'from-font',\n 'auto',\n isArbitraryVariable,\n isArbitraryLength,\n ],\n },\n ],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{ decoration: scaleColor() }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [\n { 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{ text: ['wrap', 'nowrap', 'balance', 'pretty'] }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{ indent: scaleUnambiguousSpacing() }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [\n {\n align: [\n 'baseline',\n 'top',\n 'middle',\n 'bottom',\n 'text-top',\n 'text-bottom',\n 'sub',\n 'super',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [\n { whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces'] },\n ],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{ break: ['normal', 'words', 'all', 'keep'] }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{ wrap: ['break-word', 'anywhere', 'normal'] }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{ hyphens: ['none', 'manual', 'auto'] }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{ content: ['none', isArbitraryVariable, isArbitraryValue] }],\n\n // -------------------\n // --- Backgrounds ---\n // -------------------\n\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{ bg: ['fixed', 'local', 'scroll'] }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{ 'bg-clip': ['border', 'padding', 'content', 'text'] }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{ 'bg-origin': ['border', 'padding', 'content'] }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{ bg: scaleBgPosition() }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{ bg: scaleBgRepeat() }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{ bg: scaleBgSize() }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [\n {\n bg: [\n 'none',\n {\n linear: [\n { to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl'] },\n isInteger,\n isArbitraryVariable,\n isArbitraryValue,\n ],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue],\n },\n isArbitraryVariableImage,\n isArbitraryImage,\n ],\n },\n ],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{ bg: scaleColor() }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{ from: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{ via: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{ to: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{ from: scaleColor() }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{ via: scaleColor() }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{ to: scaleColor() }],\n\n // ---------------\n // --- Borders ---\n // ---------------\n\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{ rounded: scaleRadius() }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{ 'rounded-s': scaleRadius() }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{ 'rounded-e': scaleRadius() }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{ 'rounded-t': scaleRadius() }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{ 'rounded-r': scaleRadius() }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{ 'rounded-b': scaleRadius() }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{ 'rounded-l': scaleRadius() }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{ 'rounded-ss': scaleRadius() }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{ 'rounded-se': scaleRadius() }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{ 'rounded-ee': scaleRadius() }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{ 'rounded-es': scaleRadius() }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{ 'rounded-tl': scaleRadius() }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{ 'rounded-tr': scaleRadius() }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{ 'rounded-br': scaleRadius() }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{ 'rounded-bl': scaleRadius() }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{ border: scaleBorderWidth() }],\n /**\n * Border Width Inline\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{ 'border-x': scaleBorderWidth() }],\n /**\n * Border Width Block\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{ 'border-y': scaleBorderWidth() }],\n /**\n * Border Width Inline Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{ 'border-s': scaleBorderWidth() }],\n /**\n * Border Width Inline End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{ 'border-e': scaleBorderWidth() }],\n /**\n * Border Width Block Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-bs': [{ 'border-bs': scaleBorderWidth() }],\n /**\n * Border Width Block End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-be': [{ 'border-be': scaleBorderWidth() }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{ 'border-t': scaleBorderWidth() }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{ 'border-r': scaleBorderWidth() }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{ 'border-b': scaleBorderWidth() }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{ 'border-l': scaleBorderWidth() }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{ 'divide-x': scaleBorderWidth() }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{ 'divide-y': scaleBorderWidth() }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{ border: [...scaleLineStyle(), 'hidden', 'none'] }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{ divide: [...scaleLineStyle(), 'hidden', 'none'] }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{ border: scaleColor() }],\n /**\n * Border Color Inline\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{ 'border-x': scaleColor() }],\n /**\n * Border Color Block\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{ 'border-y': scaleColor() }],\n /**\n * Border Color Inline Start\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{ 'border-s': scaleColor() }],\n /**\n * Border Color Inline End\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{ 'border-e': scaleColor() }],\n /**\n * Border Color Block Start\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-bs': [{ 'border-bs': scaleColor() }],\n /**\n * Border Color Block End\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-be': [{ 'border-be': scaleColor() }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{ 'border-t': scaleColor() }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{ 'border-r': scaleColor() }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{ 'border-b': scaleColor() }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{ 'border-l': scaleColor() }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{ divide: scaleColor() }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{ outline: [...scaleLineStyle(), 'none', 'hidden'] }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [\n { 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [\n { outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength] },\n ],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{ outline: scaleColor() }],\n\n // ---------------\n // --- Effects ---\n // ---------------\n\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [\n {\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{ shadow: scaleColor() }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [\n {\n 'inset-shadow': [\n 'none',\n themeInsetShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{ 'inset-shadow': scaleColor() }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{ ring: scaleBorderWidth() }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{ ring: scaleColor() }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{ 'ring-offset': [isNumber, isArbitraryLength] }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{ 'ring-offset': scaleColor() }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{ 'inset-ring': scaleBorderWidth() }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{ 'inset-ring': scaleColor() }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [\n {\n 'text-shadow': [\n 'none',\n themeTextShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{ 'text-shadow': scaleColor() }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{ opacity: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{ 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter'] }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{ 'bg-blend': scaleBlendMode() }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [\n { 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] },\n 'mask-no-clip',\n ],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{ mask: ['add', 'subtract', 'intersect', 'exclude'] }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{ 'mask-linear': [isNumber] }],\n 'mask-image-linear-from-pos': [{ 'mask-linear-from': scaleMaskImagePosition() }],\n 'mask-image-linear-to-pos': [{ 'mask-linear-to': scaleMaskImagePosition() }],\n 'mask-image-linear-from-color': [{ 'mask-linear-from': scaleColor() }],\n 'mask-image-linear-to-color': [{ 'mask-linear-to': scaleColor() }],\n 'mask-image-t-from-pos': [{ 'mask-t-from': scaleMaskImagePosition() }],\n 'mask-image-t-to-pos': [{ 'mask-t-to': scaleMaskImagePosition() }],\n 'mask-image-t-from-color': [{ 'mask-t-from': scaleColor() }],\n 'mask-image-t-to-color': [{ 'mask-t-to': scaleColor() }],\n 'mask-image-r-from-pos': [{ 'mask-r-from': scaleMaskImagePosition() }],\n 'mask-image-r-to-pos': [{ 'mask-r-to': scaleMaskImagePosition() }],\n 'mask-image-r-from-color': [{ 'mask-r-from': scaleColor() }],\n 'mask-image-r-to-color': [{ 'mask-r-to': scaleColor() }],\n 'mask-image-b-from-pos': [{ 'mask-b-from': scaleMaskImagePosition() }],\n 'mask-image-b-to-pos': [{ 'mask-b-to': scaleMaskImagePosition() }],\n 'mask-image-b-from-color': [{ 'mask-b-from': scaleColor() }],\n 'mask-image-b-to-color': [{ 'mask-b-to': scaleColor() }],\n 'mask-image-l-from-pos': [{ 'mask-l-from': scaleMaskImagePosition() }],\n 'mask-image-l-to-pos': [{ 'mask-l-to': scaleMaskImagePosition() }],\n 'mask-image-l-from-color': [{ 'mask-l-from': scaleColor() }],\n 'mask-image-l-to-color': [{ 'mask-l-to': scaleColor() }],\n 'mask-image-x-from-pos': [{ 'mask-x-from': scaleMaskImagePosition() }],\n 'mask-image-x-to-pos': [{ 'mask-x-to': scaleMaskImagePosition() }],\n 'mask-image-x-from-color': [{ 'mask-x-from': scaleColor() }],\n 'mask-image-x-to-color': [{ 'mask-x-to': scaleColor() }],\n 'mask-image-y-from-pos': [{ 'mask-y-from': scaleMaskImagePosition() }],\n 'mask-image-y-to-pos': [{ 'mask-y-to': scaleMaskImagePosition() }],\n 'mask-image-y-from-color': [{ 'mask-y-from': scaleColor() }],\n 'mask-image-y-to-color': [{ 'mask-y-to': scaleColor() }],\n 'mask-image-radial': [{ 'mask-radial': [isArbitraryVariable, isArbitraryValue] }],\n 'mask-image-radial-from-pos': [{ 'mask-radial-from': scaleMaskImagePosition() }],\n 'mask-image-radial-to-pos': [{ 'mask-radial-to': scaleMaskImagePosition() }],\n 'mask-image-radial-from-color': [{ 'mask-radial-from': scaleColor() }],\n 'mask-image-radial-to-color': [{ 'mask-radial-to': scaleColor() }],\n 'mask-image-radial-shape': [{ 'mask-radial': ['circle', 'ellipse'] }],\n 'mask-image-radial-size': [\n { 'mask-radial': [{ closest: ['side', 'corner'], farthest: ['side', 'corner'] }] },\n ],\n 'mask-image-radial-pos': [{ 'mask-radial-at': scalePosition() }],\n 'mask-image-conic-pos': [{ 'mask-conic': [isNumber] }],\n 'mask-image-conic-from-pos': [{ 'mask-conic-from': scaleMaskImagePosition() }],\n 'mask-image-conic-to-pos': [{ 'mask-conic-to': scaleMaskImagePosition() }],\n 'mask-image-conic-from-color': [{ 'mask-conic-from': scaleColor() }],\n 'mask-image-conic-to-color': [{ 'mask-conic-to': scaleColor() }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{ mask: ['alpha', 'luminance', 'match'] }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [\n { 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] },\n ],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{ mask: scaleBgPosition() }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{ mask: scaleBgRepeat() }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{ mask: scaleBgSize() }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{ 'mask-type': ['alpha', 'luminance'] }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{ mask: ['none', isArbitraryVariable, isArbitraryValue] }],\n\n // ---------------\n // --- Filters ---\n // ---------------\n\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [\n {\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{ blur: scaleBlur() }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{ brightness: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{ contrast: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [\n {\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeDropShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{ 'drop-shadow': scaleColor() }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{ grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{ 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{ invert: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{ saturate: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{ sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [\n {\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{ 'backdrop-blur': scaleBlur() }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [\n { 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [\n { 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [\n { 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [\n { 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [\n { 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [\n { 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [\n { 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [\n { 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n\n // --------------\n // --- Tables ---\n // --------------\n\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{ border: ['collapse', 'separate'] }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{ 'border-spacing': scaleUnambiguousSpacing() }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{ 'border-spacing-x': scaleUnambiguousSpacing() }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{ 'border-spacing-y': scaleUnambiguousSpacing() }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{ table: ['auto', 'fixed'] }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{ caption: ['top', 'bottom'] }],\n\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [\n {\n transition: [\n '',\n 'all',\n 'colors',\n 'opacity',\n 'shadow',\n 'transform',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{ transition: ['normal', 'discrete'] }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{ duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue] }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [\n { ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{ delay: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{ animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue] }],\n\n // ------------------\n // --- Transforms ---\n // ------------------\n\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{ backface: ['hidden', 'visible'] }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [\n { perspective: [themePerspective, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{ 'perspective-origin': scalePositionWithArbitrary() }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{ rotate: scaleRotate() }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{ 'rotate-x': scaleRotate() }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{ 'rotate-y': scaleRotate() }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{ 'rotate-z': scaleRotate() }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{ scale: scaleScale() }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{ 'scale-x': scaleScale() }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{ 'scale-y': scaleScale() }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{ 'scale-z': scaleScale() }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{ skew: scaleSkew() }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{ 'skew-x': scaleSkew() }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{ 'skew-y': scaleSkew() }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [\n { transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu'] },\n ],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{ origin: scalePositionWithArbitrary() }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{ transform: ['3d', 'flat'] }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{ translate: scaleTranslate() }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{ 'translate-x': scaleTranslate() }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{ 'translate-y': scaleTranslate() }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{ 'translate-z': scaleTranslate() }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{ accent: scaleColor() }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{ appearance: ['none', 'auto'] }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{ caret: scaleColor() }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [\n { scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light'] },\n ],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [\n {\n cursor: [\n 'auto',\n 'default',\n 'pointer',\n 'wait',\n 'text',\n 'move',\n 'help',\n 'not-allowed',\n 'none',\n 'context-menu',\n 'progress',\n 'cell',\n 'crosshair',\n 'vertical-text',\n 'alias',\n 'copy',\n 'no-drop',\n 'grab',\n 'grabbing',\n 'all-scroll',\n 'col-resize',\n 'row-resize',\n 'n-resize',\n 'e-resize',\n 's-resize',\n 'w-resize',\n 'ne-resize',\n 'nw-resize',\n 'se-resize',\n 'sw-resize',\n 'ew-resize',\n 'ns-resize',\n 'nesw-resize',\n 'nwse-resize',\n 'zoom-in',\n 'zoom-out',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{ 'field-sizing': ['fixed', 'content'] }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{ 'pointer-events': ['auto', 'none'] }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{ resize: ['none', '', 'y', 'x'] }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{ scroll: ['auto', 'smooth'] }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{ 'scroll-m': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Inline\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{ 'scroll-mx': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Block\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{ 'scroll-my': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Inline Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{ 'scroll-ms': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Inline End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{ 'scroll-me': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Block Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mbs': [{ 'scroll-mbs': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Block End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mbe': [{ 'scroll-mbe': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{ 'scroll-mt': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{ 'scroll-mr': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{ 'scroll-mb': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{ 'scroll-ml': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{ 'scroll-p': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Inline\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{ 'scroll-px': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Block\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{ 'scroll-py': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Inline Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{ 'scroll-ps': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Inline End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{ 'scroll-pe': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Block Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pbs': [{ 'scroll-pbs': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Block End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pbe': [{ 'scroll-pbe': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{ 'scroll-pt': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{ 'scroll-pr': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{ 'scroll-pb': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{ 'scroll-pl': scaleUnambiguousSpacing() }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{ snap: ['start', 'end', 'center', 'align-none'] }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{ snap: ['normal', 'always'] }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{ snap: ['none', 'x', 'y', 'both'] }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{ snap: ['mandatory', 'proximity'] }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{ touch: ['auto', 'none', 'manipulation'] }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{ 'touch-pan': ['x', 'left', 'right'] }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{ 'touch-pan': ['y', 'up', 'down'] }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{ select: ['none', 'text', 'all', 'auto'] }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [\n {\n 'will-change': [\n 'auto',\n 'scroll',\n 'contents',\n 'transform',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n\n // -----------\n // --- SVG ---\n // -----------\n\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{ fill: ['none', ...scaleColor()] }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [\n {\n stroke: [\n isNumber,\n isArbitraryVariableLength,\n isArbitraryLength,\n isArbitraryNumber,\n ],\n },\n ],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{ stroke: ['none', ...scaleColor()] }],\n\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{ 'forced-color-adjust': ['auto', 'none'] }],\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: [\n 'inset-x',\n 'inset-y',\n 'inset-bs',\n 'inset-be',\n 'start',\n 'end',\n 'top',\n 'right',\n 'bottom',\n 'left',\n ],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pbs', 'pbe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mbs', 'mbe', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': [\n 'fvn-ordinal',\n 'fvn-slashed-zero',\n 'fvn-figure',\n 'fvn-spacing',\n 'fvn-fraction',\n ],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: [\n 'rounded-s',\n 'rounded-e',\n 'rounded-t',\n 'rounded-r',\n 'rounded-b',\n 'rounded-l',\n 'rounded-ss',\n 'rounded-se',\n 'rounded-ee',\n 'rounded-es',\n 'rounded-tl',\n 'rounded-tr',\n 'rounded-br',\n 'rounded-bl',\n ],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': [\n 'border-w-x',\n 'border-w-y',\n 'border-w-s',\n 'border-w-e',\n 'border-w-bs',\n 'border-w-be',\n 'border-w-t',\n 'border-w-r',\n 'border-w-b',\n 'border-w-l',\n ],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': [\n 'border-color-x',\n 'border-color-y',\n 'border-color-s',\n 'border-color-e',\n 'border-color-bs',\n 'border-color-be',\n 'border-color-t',\n 'border-color-r',\n 'border-color-b',\n 'border-color-l',\n ],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': [\n 'scroll-mx',\n 'scroll-my',\n 'scroll-ms',\n 'scroll-me',\n 'scroll-mbs',\n 'scroll-mbe',\n 'scroll-mt',\n 'scroll-mr',\n 'scroll-mb',\n 'scroll-ml',\n ],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': [\n 'scroll-px',\n 'scroll-py',\n 'scroll-ps',\n 'scroll-pe',\n 'scroll-pbs',\n 'scroll-pbe',\n 'scroll-pt',\n 'scroll-pr',\n 'scroll-pb',\n 'scroll-pl',\n ],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch'],\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading'],\n },\n orderSensitiveModifiers: [\n '*',\n '**',\n 'after',\n 'backdrop',\n 'before',\n 'details-content',\n 'file',\n 'first-letter',\n 'first-line',\n 'marker',\n 'placeholder',\n 'selection',\n ],\n } as const satisfies Config<DefaultClassGroupIds, DefaultThemeGroupIds>\n}\n","import { AnyConfig, ConfigExtension, NoInfer } from './types'\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nexport const mergeConfigs = <ClassGroupIds extends string, ThemeGroupIds extends string = never>(\n baseConfig: AnyConfig,\n {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {},\n }: ConfigExtension<ClassGroupIds, ThemeGroupIds>,\n) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize)\n overrideProperty(baseConfig, 'prefix', prefix)\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName)\n\n overrideConfigProperties(baseConfig.theme, override.theme)\n overrideConfigProperties(baseConfig.classGroups, override.classGroups)\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups)\n overrideConfigProperties(\n baseConfig.conflictingClassGroupModifiers,\n override.conflictingClassGroupModifiers,\n )\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers)\n\n mergeConfigProperties(baseConfig.theme, extend.theme)\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups)\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups)\n mergeConfigProperties(\n baseConfig.conflictingClassGroupModifiers,\n extend.conflictingClassGroupModifiers,\n )\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers')\n\n return baseConfig\n}\n\nconst overrideProperty = <T extends object, K extends keyof T>(\n baseObject: T,\n overrideKey: K,\n overrideValue: T[K] | undefined,\n) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue\n }\n}\n\nconst overrideConfigProperties = (\n baseObject: Partial<Record<string, readonly unknown[]>>,\n overrideObject: Partial<Record<string, readonly unknown[]>> | undefined,\n) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key])\n }\n }\n}\n\nconst mergeConfigProperties = (\n baseObject: Partial<Record<string, readonly unknown[]>>,\n mergeObject: Partial<Record<string, readonly unknown[]>> | undefined,\n) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key)\n }\n }\n}\n\nconst mergeArrayProperties = <Key extends string>(\n baseObject: Partial<Record<NoInfer<Key>, readonly unknown[]>>,\n mergeObject: Partial<Record<NoInfer<Key>, readonly unknown[]>>,\n key: Key,\n) => {\n const mergeValue = mergeObject[key]\n\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue\n }\n}\n","import { createTailwindMerge } from './create-tailwind-merge'\nimport { getDefaultConfig } from './default-config'\nimport { mergeConfigs } from './merge-configs'\nimport { AnyConfig, ConfigExtension, DefaultClassGroupIds, DefaultThemeGroupIds } from './types'\n\ntype CreateConfigSubsequent = (config: AnyConfig) => AnyConfig\n\nexport const extendTailwindMerge = <\n AdditionalClassGroupIds extends string = never,\n AdditionalThemeGroupIds extends string = never,\n>(\n configExtension:\n | ConfigExtension<\n DefaultClassGroupIds | AdditionalClassGroupIds,\n DefaultThemeGroupIds | AdditionalThemeGroupIds\n >\n | CreateConfigSubsequent,\n ...createConfig: CreateConfigSubsequent[]\n) =>\n typeof configExtension === 'function'\n ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig)\n : createTailwindMerge(\n () => mergeConfigs(getDefaultConfig(), configExtension),\n ...createConfig,\n )\n","import { clsx, type ClassValue } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst customTwMerge = extendTailwindMerge({\n extend: {\n classGroups: {\n \"font-size\": [\n \"text-xxs\",\n \"text-xs\",\n \"text-sm\",\n \"text-md\",\n \"text-lg\",\n \"text-xl\",\n \"text-2xl\",\n \"text-3xl\",\n \"text-4xl\",\n \"text-5xl\",\n \"text-6xl\",\n \"text-7xl\",\n \"text-8xl\",\n \"text-9xl\",\n ],\n },\n },\n});\n\nexport function cn(...inputs: ClassValue[]) {\n return customTwMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport {\n createContext,\n useContext,\n Children,\n isValidElement,\n type ComponentProps,\n type ReactNode,\n} from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { CloseMd } from \"@medway-ui/icons\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface AlertProps extends ComponentProps<\"div\"> {\n variant?: \"regular\" | \"emphasis\" | \"success\" | \"warning\" | \"error\";\n onClose?: () => void;\n}\n\nconst AlertContext = createContext<{\n variant: \"regular\" | \"emphasis\" | \"success\" | \"warning\" | \"error\";\n hasDescription: boolean;\n hasTitle: boolean;\n onClose?: () => void;\n} | null>(null);\n\nconst alertVariants = cva(\n \"relative flex flex-col items-center justify-between gap-5 w-full rounded-md px-4 py-3 text-sm has-[>svg]:gap-x-9 gap-y-1 items-center [&>svg]:translate-y-0 [&>svg]:text-current lg:flex-row\",\n {\n variants: {\n variant: {\n regular:\n \"[background:linear-gradient(0deg,_var(--color-primary-background-soft)_0%,_var(--color-primary-background-soft)_100%),_var(--color-surface-card)] text-primary-foreground [&>svg]:text-primary-foreground\",\n emphasis:\n \"[background:linear-gradient(0deg,_var(--color-secondary-background-soft)_0%,_var(--color-secondary-background-soft)_100%),_var(--color-surface-card)] text-secondary-foreground [&>svg]:text-secondary-foreground\",\n success:\n \"[background:linear-gradient(0deg,_var(--color-green-background-soft)_0%,_var(--color-green-background-soft)_100%),_var(--color-surface-card)] text-green-foreground [&>svg]:text-green-foreground\",\n warning:\n \"[background:linear-gradient(0deg,_var(--color-yellow-background-soft)_0%,_var(--color-yellow-background-soft)_100%),_var(--color-surface-card)] text-yellow-foreground [&>svg]:text-yellow-foreground\",\n error:\n \"[background:linear-gradient(0deg,_var(--color-red-background-soft)_0%,_var(--color-red-background-soft)_100%),_var(--color-surface-card)] text-red-foreground [&>svg]:text-red-foreground\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n },\n }\n);\n\nfunction Alert({\n className,\n variant = \"regular\",\n onClose,\n children,\n ...props\n}: AlertProps) {\n const hasDescription = Children.toArray(children).some(\n (child) => isValidElement(child) && child.type === AlertDescription\n );\n const hasTitle = Children.toArray(children).some(\n (child) => isValidElement(child) && child.type === AlertTitle\n );\n\n return (\n <AlertContext.Provider\n value={{ variant, hasDescription, hasTitle, onClose }}\n >\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n {children}\n {onClose && (\n <CloseMd\n aria-label=\"alert-close\"\n onClick={onClose}\n className=\"absolute right-4 top-2 !size-4 cursor-pointer !text-gray-foreground\"\n />\n )}\n </div>\n </AlertContext.Provider>\n );\n}\n\nfunction AlertContainer({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-container\"\n className={cn(\"flex gap-3\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertContent({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-content\"\n className={cn(\"flex flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertIcon({\n className,\n icon,\n ...props\n}: ComponentProps<\"div\"> & {\n icon?: ReactNode;\n}) {\n return (\n <div data-slot=\"alert-icon\" className={cn(\"size-6\", className)} {...props}>\n {icon}\n </div>\n );\n}\n\nfunction AlertTitle({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\"line-clamp-1 min-h-4 text-md font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"!line-clamp-3 grid justify-items-start gap-1 text-sm leading-5\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertActions({ className, ...props }: ComponentProps<\"div\">) {\n const context = useContext(AlertContext);\n const hasDescription = context?.hasDescription || false;\n const hasTitle = context?.hasTitle || false;\n const onClose = context?.onClose;\n\n return (\n <div\n data-slot=\"alert-actions\"\n className={cn(\n \"relative mt-2 flex flex-wrap items-center gap-x-2 lg:mt-0 lg:flex-nowrap\",\n (!hasDescription || !hasTitle) && onClose && \"lg:right-5\",\n className\n )}\n {...props}\n />\n );\n}\n\nconst alertButtonVariants = cva(\n \"inline-flex items-center justify-center rounded-pill px-3 py-2 min-h-10 text-sm font-semibold transition-colors whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:brightness-90\",\n {\n variants: {\n variant: {\n regular: \"text-current\",\n basic: \"text-current\",\n },\n alertVariant: {\n regular: \"\",\n emphasis: \"\",\n success: \"\",\n warning: \"\",\n error: \"\",\n },\n },\n compoundVariants: [\n {\n variant: \"regular\",\n alertVariant: \"regular\",\n class: \"bg-primary-background-soft\",\n },\n {\n variant: \"regular\",\n alertVariant: \"emphasis\",\n class: \"bg-secondary-background-soft\",\n },\n {\n variant: \"regular\",\n alertVariant: \"success\",\n class: \"bg-green-background-soft\",\n },\n {\n variant: \"regular\",\n alertVariant: \"warning\",\n class: \"bg-yellow-background-soft\",\n },\n {\n variant: \"regular\",\n alertVariant: \"error\",\n class: \"bg-red-background-soft\",\n },\n ],\n defaultVariants: {\n variant: \"regular\",\n alertVariant: \"regular\",\n },\n }\n);\n\ninterface AlertButtonProps\n extends ComponentProps<\"button\">,\n VariantProps<typeof alertButtonVariants> {}\n\nfunction AlertButton({ className, variant, ...props }: AlertButtonProps) {\n const context = useContext(AlertContext);\n const alertVariant = context?.variant || \"regular\";\n\n return (\n <button\n className={cn(alertButtonVariants({ variant, alertVariant }), className)}\n {...props}\n />\n );\n}\n\nexport {\n Alert,\n AlertContainer,\n AlertContent,\n AlertIcon,\n AlertTitle,\n AlertDescription,\n AlertActions,\n AlertButton,\n alertVariants,\n alertButtonVariants,\n};\nexport type { AlertProps, AlertButtonProps };\n","\"use client\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface LoadingProps {\n size?: number;\n className?: string;\n}\n\nfunction Loading({ size = 24, className }: LoadingProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn(\"animate-spin\", className)}\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n );\n}\n\nexport { Loading };\nexport type { LoadingProps };\n","\"use client\";\n\nimport {\n Children,\n type ComponentProps,\n type ReactNode,\n type ElementType,\n} from \"react\";\nimport { Slot } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst ICON_ONLY_SIZES: Record<\"sm\" | \"md\" | \"lg\" | \"xl\", string> = {\n sm: \"size-4 p-0\",\n md: \"size-5 p-0\",\n lg: \"size-6 p-0\",\n xl: \"size-7 p-0\",\n} as const;\n\nconst CHAR_PADDING: Record<\"sm\" | \"md\" | \"lg\" | \"xl\", string> = {\n sm: \"px-1\",\n md: \"px-1\",\n lg: \"px-1\",\n xl: \"px-1.5\",\n} as const;\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center rounded-pill border font-semibold w-fit whitespace-nowrap shrink-0 gap-1 [&>svg]:pointer-events-none overflow-hidden border-transparent px-2\",\n {\n variants: {\n variant: {\n regular:\n \"bg-secondary-background-fill text-secondary-foreground-onfill\",\n error: \"bg-red-background-soft text-red-stroke-emphasis\",\n warning: \"bg-yellow-background-soft text-yellow-foreground\",\n freemium:\n \"[background:radial-gradient(135.09%_111.8%_at_0%_50%,rgba(24,98,188,0.02)_0%,rgba(0,32,91,0)_100%),linear-gradient(46deg,rgba(62,218,199,0.56)_6.54%,rgba(24,98,188,0.17)_85.21%),var(--color-primary)] text-white\",\n },\n size: {\n sm: \"min-w-4 text-xxs [&>svg]:size-2.5\",\n md: \"min-w-5 text-xs [&>svg]:size-3\",\n lg: \"min-w-6 text-xs [&>svg]:size-3.5\",\n xl: \"min-w-7 text-sm [&>svg]:size-4\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n size: \"md\",\n },\n }\n);\n\ntype BadgeAnimation = \"shine\";\n\ninterface BadgeProps\n extends ComponentProps<\"span\">,\n VariantProps<typeof badgeVariants> {\n asChild?: boolean;\n icon?: ReactNode;\n animation?: BadgeAnimation;\n}\n\nfunction Badge({\n className,\n variant,\n size,\n icon,\n animation,\n asChild = false,\n ...props\n}: BadgeProps) {\n const Comp = (asChild ? Slot.Slot : \"span\") as ElementType;\n const hasChildren = Children.count(props.children) > 0;\n const isIconOnly = !!icon && !hasChildren;\n const childText =\n typeof props.children === \"string\" || typeof props.children === \"number\"\n ? String(props.children).trim()\n : \"\";\n const isSingleAlphaNum = /^[A-Za-z0-9]$/.test(childText);\n const isShortAlnumUpTo3 = /^[A-Za-z0-9]{2,3}$/.test(childText);\n const isDigitsWithSuffix = /^\\d{1,2}\\S$/.test(childText); // e.g., 9+, 99%, 9K\n const isShortUpTo3 = isShortAlnumUpTo3 || isDigitsWithSuffix;\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(\n badgeVariants({ variant, size }),\n (isIconOnly || isSingleAlphaNum) && ICON_ONLY_SIZES[size || \"md\"],\n !isIconOnly && isShortUpTo3 && CHAR_PADDING[size || \"md\"],\n animation === \"shine\" &&\n \"animate-shine bg-[linear-gradient(135deg,transparent_25%,var(--color-white-24)_50%,transparent_75%,transparent_100%)] bg-[length:250%_250%,100%_100%] bg-no-repeat\",\n className\n )}\n {...props}\n >\n {icon}\n {props.children}\n </Comp>\n );\n}\n\nexport { Badge, badgeVariants };\nexport type { BadgeProps, BadgeAnimation };\n","\"use client\";\n\nimport { Slot } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { type ComponentProps, type ReactNode, type ElementType } from \"react\";\n\nimport { Loading } from \"@/components/Loading\";\nimport { Badge as BadgeComponent } from \"@/components/Badge\";\nimport { cn } from \"@/lib/utils\";\n\nconst ICON_ONLY_SIZES = {\n sm: \"!h-8 !min-h-8 !w-8 !px-3 !py-2\",\n md: \"!h-10 !min-h-10 !w-10 !px-[14px] !py-[10px]\",\n lg: \"!h-12 !min-h-12 !w-12 !p-3\",\n xl: \"!h-14 !min-h-14 !w-14 !p-3\",\n} as const;\n\nconst ALERT_CIRCLE_SIZES = {\n sm: \"size-2\",\n md: \"size-2.5\",\n lg: \"size-2.5\",\n xl: \"size-3\",\n} as const;\n\nconst badgeSizeMap: Record<\n \"sm\" | \"md\" | \"lg\" | \"xl\",\n \"sm\" | \"md\" | \"lg\" | \"xl\"\n> = {\n sm: \"sm\",\n md: \"md\",\n lg: \"md\",\n xl: \"lg\",\n};\n\ninterface ButtonProps\n extends ComponentProps<\"button\">,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n containerClassName?: string;\n iconRight?: ReactNode;\n iconLeft?: ReactNode;\n badge?: number | string;\n loading?: boolean;\n alert?: string;\n}\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center place-items-center gap-2 rounded-pill text-sm font-semibold whitespace-nowrap transition-all disabled:pointer-events-none shrink-0 [&_svg]:shrink-0 hover:cursor-pointer focus:outline-0 [grid-template-areas:'stack']\",\n {\n variants: {\n variant: {\n regular:\n \"bg-primary-background-fill text-primary-foreground-onfill hover:bg-primary-background-fill-emphasis disabled:bg-gray-background-fill-muted disabled:text-gray-foreground-onfill\",\n \"regular-soft\":\n \"bg-primary-background-soft text-primary-foreground hover:bg-primary-background-soft-emphasis hover:text-primary-foreground-emphasis disabled:bg-gray-background-soft-muted disabled:text-gray-foreground-muted\",\n \"regular-basic\":\n \"bg-transparent text-primary-foreground hover:bg-primary-background-soft-emphasis hover:text-primary-foreground-emphasis disabled:bg-transparent disabled:text-gray-foreground-muted\",\n emphasis:\n \"bg-secondary-background-fill text-secondary-foreground-onfill hover:bg-secondary-background-fill-emphasis disabled:bg-gray-background-fill-muted disabled:text-gray-foreground-onfill\",\n \"emphasis-soft\":\n \"bg-secondary-background-soft text-secondary-foreground hover:bg-secondary-background-soft-emphasis hover:text-secondary-foreground-emphasis disabled:bg-gray-background-soft-muted disabled:text-gray-foreground-muted\",\n \"emphasis-basic\":\n \"bg-transparent text-secondary-foreground hover:bg-secondary-background-soft-emphasis hover:text-secondary-foreground-emphasis disabled:bg-transparent disabled:text-gray-foreground-muted\",\n error:\n \"bg-red-background-fill text-red-foreground-onfill hover:bg-red-background-fill-emphasis disabled:bg-gray-background-fill-muted disabled:text-gray-foreground-onfill\",\n \"error-soft\":\n \"bg-red-background-soft text-red-foreground hover:bg-red-background-soft-emphasis hover:text-red-foreground-emphasis disabled:bg-gray-background-soft-muted disabled:text-gray-foreground-muted\",\n \"error-basic\":\n \"bg-transparent text-red-foreground hover:bg-red-background-soft-emphasis hover:text-red-foreground-emphasis disabled:bg-transparent disabled:text-gray-foreground-muted\",\n warning:\n \"bg-yellow-background-fill text-yellow-foreground-onfill hover:bg-yellow-background-fill-emphasis disabled:bg-gray-background-fill-muted disabled:text-gray-foreground-onfill\",\n \"warning-soft\":\n \"bg-yellow-background-soft text-yellow-foreground hover:bg-yellow-background-soft-emphasis hover:text-yellow-foreground-emphasis disabled:bg-gray-background-soft-muted disabled:text-gray-foreground-muted\",\n \"warning-basic\":\n \"bg-transparent text-yellow-foreground hover:bg-yellow-background-soft-emphasis hover:text-yellow-foreground-emphasis disabled:bg-transparent disabled:text-gray-foreground-muted\",\n success:\n \"bg-green-background-fill text-green-foreground-onfill hover:bg-green-background-fill-emphasis disabled:bg-gray-background-fill-muted disabled:text-gray-foreground-onfill\",\n \"success-soft\":\n \"bg-green-background-soft text-green-foreground hover:bg-green-background-soft-emphasis hover:text-green-foreground-emphasis disabled:bg-gray-background-soft-muted disabled:text-gray-foreground-muted\",\n \"success-basic\":\n \"bg-transparent text-green-foreground hover:bg-green-background-soft-emphasis hover:text-green-foreground-emphasis disabled:bg-transparent disabled:text-gray-foreground-muted\",\n outlined:\n \"border border-gray-stroke-muted bg-transparent text-foreground hover:border-transparent hover:bg-gray-50 disabled:border-transparent dark:bg-transparent hover:dark:border-gray-400 disabled:border-gray-stroke-muted disabled:text-gray-foreground-muted\",\n gradient:\n \"text-white [background:linear-gradient(284deg,var(--color-primary)_2.11%,var(--color-secondary)_128.06%)] hover:[background:linear-gradient(284deg,var(--color-primary)2.11%,var(--color-secondary)102.63%)] disabled:[background:var(--color-gray-50)] disabled:bg-gray-background-fill-muted disabled:text-gray-foreground-onfill\",\n medbrain:\n \"border-2 border-transparent bg-clip-text [background:linear-gradient(var(--color-white),var(--color-white))_padding-box,linear-gradient(75deg,var(--color-secondary),var(--color-cm-lighten-3))_border-box] [box-shadow:-8px_0_8px_0_var(--color-prev-16)_inset,8px_0_8px_0_var(--color-secondary-24)_inset,0_0_8px_0_var(--color-cm-16)_inset] hover:[background:linear-gradient(var(--color-white),var(--color-white))_padding-box,linear-gradient(75deg,var(--color-cm-lighten-3),var(--color-secondary))_border-box] [&_span]:bg-clip-text [&_span]:text-transparent [&_span]:bg-gradient-to-r [&_span]:from-cm [&_span]:to-primary [&_span]:hover:to-secondary disabled:bg-gray-background-fill-muted disabled:text-gray-foreground-onfill [&_svg]:text-cm-darken-1\",\n },\n size: {\n sm: \"min-h-8 min-w-8 px-3 py-1 has-[>svg]:px-3 [&_svg:not([class*='size-'])]:size-[13px] text-xs\",\n md: \"min-h-10 min-w-10 px-3.5 py-2 has-[>svg]:px-3.5 [&_svg:not([class*='size-'])]:size-4 text-sm\",\n lg: \"min-h-12 min-w-12 px-4 py-3 has-[>svg]:px-4 [&_svg:not([class*='size-'])]:size-6 text-md\",\n xl: \"min-h-14 min-w-14 px-[18px] py-3.5 has-[>svg]:px-[18px] [&_svg:not([class*='size-'])]:size-7 text-lg\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n size: \"md\",\n },\n }\n);\n\nfunction Button({\n className,\n containerClassName,\n variant,\n size,\n asChild = false,\n iconRight,\n iconLeft,\n badge,\n loading = false,\n alert,\n ...props\n}: ButtonProps) {\n const Comp = (asChild ? Slot.Slot : \"button\") as ElementType;\n\n const shouldShowBadge = (value: number | string | undefined) => {\n return value != null && value !== 0 && value !== \"\" && value !== \"0\";\n };\n\n const renderIcon = (icon: ReactNode) => icon;\n\n const isIconOnly = !props.children && (iconLeft || iconRight || alert);\n\n const renderAlertCircle = () => {\n if (!alert) return null;\n\n return (\n <span\n className={cn(\n \"relative mr-1 flex size-2.5\",\n ALERT_CIRCLE_SIZES[size || \"md\"]\n )}\n >\n <span\n className=\"absolute inline-flex h-full w-full animate-ping rounded-full opacity-75\"\n style={{ backgroundColor: alert }}\n ></span>\n <span\n className={cn(\n \"relative inline-flex size-2.5 rounded-full\",\n ALERT_CIRCLE_SIZES[size || \"md\"]\n )}\n style={{ backgroundColor: alert }}\n ></span>\n </span>\n );\n };\n\n const renderButtonContent = () => {\n if (loading) {\n return (\n <>\n <Loading className=\"[grid-area:stack]\" />\n <span className={cn(\"[grid-area:stack]\", loading && \"invisible\")}>\n {props.children}\n </span>\n </>\n );\n }\n\n return (\n <>\n {alert ? renderAlertCircle() : iconLeft && renderIcon(iconLeft)}\n {props.children && <span>{props.children}</span>}\n {iconRight && renderIcon(iconRight)}\n </>\n );\n };\n\n return (\n <div className={cn(\"relative\", containerClassName)}>\n {shouldShowBadge(badge) && (\n <BadgeComponent\n size={badgeSizeMap[size || \"md\"]}\n variant=\"regular\"\n className={cn(\"absolute -right-2 -top-1 z-10\")}\n role=\"status\"\n aria-label={`${badge}-notifications`}\n >\n {String(badge)}\n </BadgeComponent>\n )}\n <Comp\n disabled={loading}\n aria-busy={loading}\n aria-live={loading ? \"polite\" : undefined}\n data-slot=\"button\"\n className={cn(\n isIconOnly && ICON_ONLY_SIZES[size || \"md\"],\n loading && \"!inline-grid\",\n buttonVariants({ variant, size, className })\n )}\n {...props}\n >\n {renderButtonContent()}\n </Comp>\n </div>\n );\n}\n\nexport { Button, buttonVariants };\nexport type { ButtonProps };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { AlertDialog as AlertDialogPrimitive } from \"radix-ui\";\nimport { cn } from \"@/lib/utils\";\nimport { buttonVariants } from \"@/components/Button\";\n\nfunction AlertDialog({\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n );\n}\n\nfunction AlertDialogPortal({\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n );\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black-48 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogContent({\n className,\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Content>) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n className={cn(\n \"fixed left-1/2 top-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border bg-surface-elevated p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-1/2 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-1/2 sm:max-w-lg\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\nfunction AlertDialogHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\"text-sm text-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Action>) {\n return (\n <AlertDialogPrimitive.Action\n className={cn(buttonVariants(), className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogCancel({\n className,\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Cancel>) {\n return (\n <AlertDialogPrimitive.Cancel\n className={cn(buttonVariants({ variant: \"outlined\" }), className)}\n {...props}\n />\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n","import * as React from \"react\";\n\nlet count = 0;\n\nfunction generateId() {\n return `medway-id-${++count}`;\n}\n\nconst useReactId = (React as any).useId || (() => undefined);\n\nexport function useId(): string {\n const reactId = useReactId();\n const [id] = React.useState<string>(() => reactId ?? generateId());\n return id;\n}\n","// The scores are arranged so that a continuous match of characters will\n// result in a total score of 1.\n//\n// The best case, this character is a match, and either this is the start\n// of the string, or the previous character was also a match.\nconst SCORE_CONTINUE_MATCH = 1;\n// A new match at the start of a word scores better than a new match\n// elsewhere as it's more likely that the user will type the starts\n// of fragments.\n// NOTE: We score word jumps between spaces slightly higher than slashes, brackets\n// hyphens, etc.\nconst SCORE_SPACE_WORD_JUMP = 0.9;\nconst SCORE_NON_SPACE_WORD_JUMP = 0.8;\n// Any other match isn't ideal, but we include it for completeness.\nconst SCORE_CHARACTER_JUMP = 0.17;\n// If the user transposed two letters, it should be significantly penalized.\nconst SCORE_TRANSPOSITION = 0.1;\n// The goodness of a match should decay slightly with each missing character.\nconst PENALTY_SKIPPED = 0.999;\n// The goodness of an exact-case match should be higher than a case-insensitive match by a small amount.\nconst PENALTY_CASE_MISMATCH = 0.9999;\n// If the word has more characters than the user typed, it should be penalised slightly.\nconst PENALTY_NOT_COMPLETE = 0.99;\n\nconst IS_GAP_REGEXP = /[\\\\\\/_+.#\"@\\[\\(\\{&]/;\nconst COUNT_GAPS_REGEXP = /[\\\\\\/_+.#\"@\\[\\(\\{&]/g;\nconst IS_SPACE_REGEXP = /[\\s-]/;\nconst COUNT_SPACE_REGEXP = /[\\s-]/g;\n\nfunction commandScoreInner(\n string: string,\n abbreviation: string,\n lowerString: string,\n lowerAbbreviation: string,\n stringIndex: number,\n abbreviationIndex: number,\n memoizedResults: Record<string, number>\n): number {\n if (abbreviationIndex === abbreviation.length) {\n if (stringIndex === string.length) {\n return SCORE_CONTINUE_MATCH;\n }\n return PENALTY_NOT_COMPLETE;\n }\n\n const memoizeKey = `${stringIndex},${abbreviationIndex}`;\n if (memoizedResults[memoizeKey] !== undefined) {\n return memoizedResults[memoizeKey];\n }\n\n const abbreviationChar = lowerAbbreviation.charAt(abbreviationIndex);\n let index = lowerString.indexOf(abbreviationChar, stringIndex);\n let highScore = 0;\n\n let score: number;\n let transposedScore: number;\n let wordBreaks: RegExpMatchArray | null;\n let spaceBreaks: RegExpMatchArray | null;\n\n while (index >= 0) {\n score = commandScoreInner(\n string,\n abbreviation,\n lowerString,\n lowerAbbreviation,\n index + 1,\n abbreviationIndex + 1,\n memoizedResults\n );\n if (score > highScore) {\n if (index === stringIndex) {\n score *= SCORE_CONTINUE_MATCH;\n } else if (IS_GAP_REGEXP.test(string.charAt(index - 1))) {\n score *= SCORE_NON_SPACE_WORD_JUMP;\n wordBreaks = string\n .slice(stringIndex, index - 1)\n .match(COUNT_GAPS_REGEXP);\n if (wordBreaks && stringIndex > 0) {\n score *= Math.pow(PENALTY_SKIPPED, wordBreaks.length);\n }\n } else if (IS_SPACE_REGEXP.test(string.charAt(index - 1))) {\n score *= SCORE_SPACE_WORD_JUMP;\n spaceBreaks = string\n .slice(stringIndex, index - 1)\n .match(COUNT_SPACE_REGEXP);\n if (spaceBreaks && stringIndex > 0) {\n score *= Math.pow(PENALTY_SKIPPED, spaceBreaks.length);\n }\n } else {\n score *= SCORE_CHARACTER_JUMP;\n if (stringIndex > 0) {\n score *= Math.pow(PENALTY_SKIPPED, index - stringIndex);\n }\n }\n\n if (string.charAt(index) !== abbreviation.charAt(abbreviationIndex)) {\n score *= PENALTY_CASE_MISMATCH;\n }\n }\n\n if (\n (score < SCORE_TRANSPOSITION &&\n lowerString.charAt(index - 1) ===\n lowerAbbreviation.charAt(abbreviationIndex + 1)) ||\n (lowerAbbreviation.charAt(abbreviationIndex + 1) ===\n lowerAbbreviation.charAt(abbreviationIndex) &&\n lowerString.charAt(index - 1) !==\n lowerAbbreviation.charAt(abbreviationIndex))\n ) {\n transposedScore = commandScoreInner(\n string,\n abbreviation,\n lowerString,\n lowerAbbreviation,\n index + 1,\n abbreviationIndex + 2,\n memoizedResults\n );\n\n if (transposedScore * SCORE_TRANSPOSITION > score) {\n score = transposedScore * SCORE_TRANSPOSITION;\n }\n }\n\n if (score > highScore) {\n highScore = score;\n }\n\n index = lowerString.indexOf(abbreviationChar, index + 1);\n }\n\n memoizedResults[memoizeKey] = highScore;\n return highScore;\n}\n\nfunction formatInput(string: string) {\n return string.toLowerCase().replace(COUNT_SPACE_REGEXP, \" \");\n}\n\nexport function commandScore(\n string: string,\n abbreviation: string,\n aliases?: string[]\n): number {\n string =\n aliases && aliases.length > 0\n ? `${string + \" \" + aliases.join(\" \")}`\n : string;\n return commandScoreInner(\n string,\n abbreviation,\n formatInput(string),\n formatInput(abbreviation),\n 0,\n 0,\n {}\n );\n}\n","\"use client\";\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n * Command component - Forked from cmdk (https://github.com/pacocoursey/cmdk)\n * MIT License - Copyright (c) 2024 Paco Coursey\n *\n * Modified to remove React 18 dependency (useSyncExternalStore)\n * and external @radix-ui/* dependencies, making it compatible with React 17+.\n */\n\nimport * as React from \"react\";\nimport { commandScore } from \"@/lib/command-score\";\nimport { useId } from \"@/hooks/use-id\";\n\ntype Children = { children?: React.ReactNode };\ntype DivProps = React.HTMLAttributes<HTMLDivElement>;\n\ntype LoadingProps = Children &\n DivProps & {\n progress?: number;\n label?: string;\n };\n\ntype EmptyProps = Children & DivProps;\ntype SeparatorProps = DivProps & {\n alwaysRender?: boolean;\n};\ntype ListProps = Children &\n DivProps & {\n label?: string;\n };\ntype ItemProps = Children &\n Omit<DivProps, \"disabled\" | \"onSelect\" | \"value\"> & {\n disabled?: boolean;\n onSelect?: (value: string) => void;\n value?: string;\n keywords?: string[];\n forceMount?: boolean;\n };\ntype GroupProps = Children &\n Omit<DivProps, \"heading\" | \"value\"> & {\n heading?: React.ReactNode;\n value?: string;\n forceMount?: boolean;\n };\ntype InputProps = Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"value\" | \"onChange\" | \"type\"\n> & {\n value?: string;\n onValueChange?: (search: string) => void;\n};\ntype CommandFilter = (\n value: string,\n search: string,\n keywords?: string[]\n) => number;\ntype CommandProps = Children &\n DivProps & {\n label?: string;\n shouldFilter?: boolean;\n filter?: CommandFilter;\n defaultValue?: string;\n value?: string;\n onValueChange?: (value: string) => void;\n loop?: boolean;\n disablePointerSelection?: boolean;\n vimBindings?: boolean;\n };\n\ntype Context = {\n value: (id: string, value: string, keywords?: string[]) => void;\n item: (id: string, groupId: string) => () => void;\n group: (id: string) => () => void;\n filter: () => boolean;\n label: string;\n getDisablePointerSelection: () => boolean;\n listId: string;\n labelId: string;\n inputId: string;\n listInnerRef: React.RefObject<HTMLDivElement | null>;\n};\ntype State = {\n search: string;\n value: string;\n selectedItemId?: string;\n filtered: {\n count: number;\n items: Map<string, number>;\n groups: Set<string>;\n };\n};\ntype Store = {\n subscribe: (callback: () => void) => () => void;\n snapshot: () => State;\n setState: <K extends keyof State>(\n key: K,\n value: State[K],\n opts?: boolean\n ) => void;\n emit: () => void;\n};\ntype Group = {\n id: string;\n forceMount?: boolean;\n};\n\nconst GROUP_SELECTOR = `[cmdk-group=\"\"]`;\nconst GROUP_ITEMS_SELECTOR = `[cmdk-group-items=\"\"]`;\nconst GROUP_HEADING_SELECTOR = `[cmdk-group-heading=\"\"]`;\nconst ITEM_SELECTOR = `[cmdk-item=\"\"]`;\nconst VALID_ITEM_SELECTOR = `${ITEM_SELECTOR}:not([aria-disabled=\"true\"])`;\nconst SELECT_EVENT = `cmdk-item-select`;\nconst VALUE_ATTR = `data-value`;\n\nconst defaultFilter: CommandFilter = (value, search, keywords) =>\n commandScore(value, search, keywords);\n\nconst CommandContext = React.createContext<Context>(undefined as any);\nconst useCommand = () => React.useContext(CommandContext);\nconst StoreContext = React.createContext<Store>(undefined as any);\nconst useStore = () => React.useContext(StoreContext);\nconst GroupContext = React.createContext<Group>(undefined as any);\n\nconst Command = React.forwardRef<HTMLDivElement, CommandProps>(\n (props, forwardedRef) => {\n const state = useLazyRef<State>(() => ({\n search: \"\",\n value: props.value ?? props.defaultValue ?? \"\",\n selectedItemId: undefined,\n filtered: {\n count: 0,\n items: new Map(),\n groups: new Set(),\n },\n }));\n const allItems = useLazyRef<Set<string>>(() => new Set());\n const allGroups = useLazyRef<Map<string, Set<string>>>(() => new Map());\n const ids = useLazyRef<Map<string, { value: string; keywords?: string[] }>>(\n () => new Map()\n );\n const listeners = useLazyRef<Set<() => void>>(() => new Set());\n const propsRef = useAsRef(props);\n const {\n label,\n children,\n value,\n onValueChange,\n filter,\n shouldFilter,\n loop,\n disablePointerSelection = false,\n vimBindings = true,\n ...etc\n } = props;\n\n const listId = useId();\n const labelId = useId();\n const inputId = useId();\n\n const listInnerRef = React.useRef<HTMLDivElement>(null);\n\n const schedule = useScheduleLayoutEffect();\n\n useLayoutEffect(() => {\n if (value !== undefined) {\n const v = value.trim();\n state.current.value = v;\n store.emit();\n }\n }, [value]);\n\n useLayoutEffect(() => {\n schedule(6, scrollSelectedIntoView);\n }, []);\n\n const store: Store = React.useMemo(() => {\n return {\n subscribe: (cb) => {\n listeners.current.add(cb);\n return () => listeners.current.delete(cb);\n },\n snapshot: () => {\n return state.current;\n },\n setState: (key, value, opts) => {\n if (Object.is(state.current[key], value)) return;\n state.current[key] = value as any;\n\n if (key === \"search\") {\n filterItems();\n sort();\n schedule(1, selectFirstItem);\n } else if (key === \"value\") {\n if (\n document.activeElement?.hasAttribute(\"cmdk-input\") ||\n document.activeElement?.hasAttribute(\"cmdk-root\")\n ) {\n const input = document.getElementById(inputId);\n if (input) input.focus();\n else document.getElementById(listId)?.focus();\n }\n\n schedule(7, () => {\n state.current.selectedItemId = getSelectedItem()?.id;\n store.emit();\n });\n\n if (!opts) {\n schedule(5, scrollSelectedIntoView);\n }\n if (propsRef.current?.value !== undefined) {\n const newValue = ((value as string) ?? \"\") as string;\n propsRef.current.onValueChange?.(newValue);\n return;\n }\n }\n\n store.emit();\n },\n emit: () => {\n listeners.current.forEach((l) => l());\n },\n };\n }, []);\n\n const context: Context = React.useMemo(\n () => ({\n value: (id, value, keywords) => {\n if (value !== ids.current.get(id)?.value) {\n ids.current.set(id, { value, keywords });\n state.current.filtered.items.set(id, score(value, keywords));\n schedule(2, () => {\n sort();\n store.emit();\n });\n }\n },\n item: (id, groupId) => {\n allItems.current.add(id);\n\n if (groupId) {\n if (!allGroups.current.has(groupId)) {\n allGroups.current.set(groupId, new Set([id]));\n } else {\n allGroups.current.get(groupId)!.add(id);\n }\n }\n\n schedule(3, () => {\n filterItems();\n sort();\n\n if (!state.current.value) {\n selectFirstItem();\n }\n\n store.emit();\n });\n\n return () => {\n ids.current.delete(id);\n allItems.current.delete(id);\n state.current.filtered.items.delete(id);\n const selectedItem = getSelectedItem();\n\n schedule(4, () => {\n filterItems();\n\n if (selectedItem?.getAttribute(\"id\") === id) selectFirstItem();\n\n store.emit();\n });\n };\n },\n group: (id) => {\n if (!allGroups.current.has(id)) {\n allGroups.current.set(id, new Set());\n }\n\n return () => {\n ids.current.delete(id);\n allGroups.current.delete(id);\n };\n },\n filter: () => {\n return propsRef.current.shouldFilter !== false;\n },\n label: label || props[\"aria-label\"] || \"\",\n getDisablePointerSelection: () => {\n return !!propsRef.current.disablePointerSelection;\n },\n listId,\n inputId,\n labelId,\n listInnerRef,\n }),\n []\n );\n\n function score(value: string, keywords?: string[]) {\n const filter = propsRef.current?.filter ?? defaultFilter;\n return value ? filter(value, state.current.search, keywords) : 0;\n }\n\n function sort() {\n if (!state.current.search || propsRef.current.shouldFilter === false) {\n return;\n }\n\n const scores = state.current.filtered.items;\n\n const groups: [string, number][] = [];\n state.current.filtered.groups.forEach((value) => {\n const items = allGroups.current.get(value);\n\n let max = 0;\n items?.forEach((item) => {\n const s = scores.get(item);\n max = Math.max(s ?? 0, max);\n });\n\n groups.push([value, max]);\n });\n\n const listInsertionElement = listInnerRef.current;\n\n getValidItems()\n .sort((a, b) => {\n const valueA = a.getAttribute(\"id\");\n const valueB = b.getAttribute(\"id\");\n return (scores.get(valueB!) ?? 0) - (scores.get(valueA!) ?? 0);\n })\n .forEach((item) => {\n const group = item.closest(GROUP_ITEMS_SELECTOR);\n\n if (group) {\n group.appendChild(\n item.parentElement === group\n ? item\n : item.closest(`${GROUP_ITEMS_SELECTOR} > *`)!\n );\n } else {\n listInsertionElement?.appendChild(\n item.parentElement === listInsertionElement\n ? item\n : item.closest(`${GROUP_ITEMS_SELECTOR} > *`)!\n );\n }\n });\n\n groups\n .sort((a, b) => b[1] - a[1])\n .forEach((group) => {\n const element = listInnerRef.current?.querySelector(\n `${GROUP_SELECTOR}[${VALUE_ATTR}=\"${encodeURIComponent(group[0])}\"]`\n );\n element?.parentElement?.appendChild(element);\n });\n }\n\n function selectFirstItem() {\n const item = getValidItems().find(\n (item) => item.getAttribute(\"aria-disabled\") !== \"true\"\n );\n const value = item?.getAttribute(VALUE_ATTR);\n store.setState(\"value\", (value || undefined) as string);\n }\n\n function filterItems() {\n if (!state.current.search || propsRef.current.shouldFilter === false) {\n state.current.filtered.count = allItems.current.size;\n return;\n }\n\n state.current.filtered.groups = new Set();\n let itemCount = 0;\n\n for (const id of allItems.current) {\n const value = ids.current.get(id)?.value ?? \"\";\n const keywords = ids.current.get(id)?.keywords ?? [];\n const rank = score(value, keywords);\n state.current.filtered.items.set(id, rank);\n if (rank > 0) itemCount++;\n }\n\n for (const [groupId, group] of allGroups.current) {\n for (const itemId of group) {\n if ((state.current.filtered.items.get(itemId) ?? 0) > 0) {\n state.current.filtered.groups.add(groupId);\n break;\n }\n }\n }\n\n state.current.filtered.count = itemCount;\n }\n\n function scrollSelectedIntoView() {\n const item = getSelectedItem();\n\n if (item) {\n if (item.parentElement?.firstChild === item) {\n item\n .closest(GROUP_SELECTOR)\n ?.querySelector(GROUP_HEADING_SELECTOR)\n ?.scrollIntoView({ block: \"nearest\" });\n }\n\n item.scrollIntoView({ block: \"nearest\" });\n }\n }\n\n function getSelectedItem() {\n return listInnerRef.current?.querySelector<HTMLElement>(\n `${ITEM_SELECTOR}[aria-selected=\"true\"]`\n );\n }\n\n function getValidItems() {\n return Array.from(\n listInnerRef.current?.querySelectorAll<HTMLElement>(\n VALID_ITEM_SELECTOR\n ) || []\n );\n }\n\n function updateSelectedToIndex(index: number) {\n const items = getValidItems();\n const item = items[index];\n if (item)\n store.setState(\"value\", item.getAttribute(VALUE_ATTR) as string);\n }\n\n function updateSelectedByItem(change: 1 | -1) {\n const selected = getSelectedItem();\n const items = getValidItems();\n const index = items.findIndex((item) => item === selected);\n\n let newSelected = items[index + change];\n\n if (propsRef.current?.loop) {\n newSelected =\n index + change < 0\n ? items[items.length - 1]\n : index + change === items.length\n ? items[0]\n : items[index + change];\n }\n\n if (newSelected)\n store.setState(\"value\", newSelected.getAttribute(VALUE_ATTR) as string);\n }\n\n function updateSelectedByGroup(change: 1 | -1) {\n const selected = getSelectedItem();\n let group = selected?.closest(GROUP_SELECTOR);\n let item: Element | null | undefined;\n\n while (group && !item) {\n group =\n change > 0\n ? findNextSibling(group, GROUP_SELECTOR)\n : findPreviousSibling(group, GROUP_SELECTOR);\n item = group?.querySelector(VALID_ITEM_SELECTOR);\n }\n\n if (item) {\n store.setState(\"value\", item.getAttribute(VALUE_ATTR) as string);\n } else {\n updateSelectedByItem(change);\n }\n }\n\n const last = () => updateSelectedToIndex(getValidItems().length - 1);\n\n const next = (e: React.KeyboardEvent) => {\n e.preventDefault();\n\n if (e.metaKey) {\n last();\n } else if (e.altKey) {\n updateSelectedByGroup(1);\n } else {\n updateSelectedByItem(1);\n }\n };\n\n const prev = (e: React.KeyboardEvent) => {\n e.preventDefault();\n\n if (e.metaKey) {\n updateSelectedToIndex(0);\n } else if (e.altKey) {\n updateSelectedByGroup(-1);\n } else {\n updateSelectedByItem(-1);\n }\n };\n\n return (\n <div\n ref={forwardedRef}\n tabIndex={-1}\n {...etc}\n cmdk-root=\"\"\n onKeyDown={(e) => {\n etc.onKeyDown?.(e);\n\n const isComposing = e.nativeEvent.isComposing || e.keyCode === 229;\n\n if (e.defaultPrevented || isComposing) {\n return;\n }\n\n switch (e.key) {\n case \"n\":\n case \"j\": {\n if (vimBindings && e.ctrlKey) {\n next(e);\n }\n break;\n }\n case \"ArrowDown\": {\n next(e);\n break;\n }\n case \"p\":\n case \"k\": {\n if (vimBindings && e.ctrlKey) {\n prev(e);\n }\n break;\n }\n case \"ArrowUp\": {\n prev(e);\n break;\n }\n case \"Home\": {\n e.preventDefault();\n updateSelectedToIndex(0);\n break;\n }\n case \"End\": {\n e.preventDefault();\n last();\n break;\n }\n case \"Enter\": {\n e.preventDefault();\n const item = getSelectedItem();\n if (item) {\n const event = new Event(SELECT_EVENT);\n item.dispatchEvent(event);\n }\n }\n }\n }}\n >\n <label\n cmdk-label=\"\"\n htmlFor={context.inputId}\n id={context.labelId}\n style={srOnlyStyles}\n >\n {label}\n </label>\n {SlottableWithNestedChildren(props, (child) => (\n <StoreContext.Provider value={store}>\n <CommandContext.Provider value={context}>\n {child}\n </CommandContext.Provider>\n </StoreContext.Provider>\n ))}\n </div>\n );\n }\n);\nCommand.displayName = \"Command\";\n\nconst Item = React.forwardRef<HTMLDivElement, ItemProps>(\n (props, forwardedRef) => {\n const id = useId();\n const ref = React.useRef<HTMLDivElement>(null);\n const groupContext = React.useContext(GroupContext);\n const context = useCommand();\n const propsRef = useAsRef(props);\n const forceMount = propsRef.current?.forceMount ?? groupContext?.forceMount;\n\n useLayoutEffect(() => {\n if (!forceMount) {\n return context.item(id, groupContext?.id);\n }\n }, [forceMount]);\n\n const value = useValue(\n id,\n ref,\n [props.value, props.children, ref],\n props.keywords\n );\n\n const store = useStore();\n const selected = useCmdk(\n (state) => state.value && state.value === value.current\n );\n const render = useCmdk((state) =>\n forceMount\n ? true\n : context.filter() === false\n ? true\n : !state.search\n ? true\n : (state.filtered.items.get(id) ?? 0) > 0\n );\n\n React.useEffect(() => {\n const element = ref.current;\n if (!element || props.disabled) return;\n element.addEventListener(SELECT_EVENT, onSelect);\n return () => element.removeEventListener(SELECT_EVENT, onSelect);\n }, [render, props.onSelect, props.disabled]);\n\n function onSelect() {\n select();\n propsRef.current.onSelect?.(value.current ?? \"\");\n }\n\n function select() {\n store.setState(\"value\", value.current ?? \"\", true);\n }\n\n if (!render) return null;\n\n const {\n disabled,\n value: _value,\n onSelect: _onSelect,\n forceMount: _forceMount,\n keywords: _keywords,\n ...etc\n } = props;\n\n return (\n <div\n ref={mergeRefs(ref, forwardedRef)}\n {...etc}\n id={id}\n cmdk-item=\"\"\n role=\"option\"\n aria-disabled={Boolean(disabled)}\n aria-selected={Boolean(selected)}\n data-disabled={Boolean(disabled)}\n data-selected={Boolean(selected)}\n onPointerMove={\n disabled || context.getDisablePointerSelection() ? undefined : select\n }\n onClick={disabled ? undefined : onSelect}\n >\n {props.children}\n </div>\n );\n }\n);\nItem.displayName = \"Item\";\n\nconst Group = React.forwardRef<HTMLDivElement, GroupProps>(\n (props, forwardedRef) => {\n const { heading, children: _children, forceMount, ...etc } = props;\n const id = useId();\n const ref = React.useRef<HTMLDivElement>(null);\n const headingRef = React.useRef<HTMLDivElement>(null);\n const headingId = useId();\n const context = useCommand();\n const render = useCmdk((state) =>\n forceMount\n ? true\n : context.filter() === false\n ? true\n : !state.search\n ? true\n : state.filtered.groups.has(id)\n );\n\n useLayoutEffect(() => {\n return context.group(id);\n }, []);\n\n useValue(id, ref, [props.value, props.heading, headingRef]);\n\n const contextValue = React.useMemo(\n () => ({ id, forceMount }),\n [forceMount]\n );\n\n return (\n <div\n ref={mergeRefs(ref, forwardedRef)}\n {...etc}\n cmdk-group=\"\"\n role=\"presentation\"\n hidden={render ? undefined : true}\n >\n {heading && (\n <div\n ref={headingRef}\n cmdk-group-heading=\"\"\n aria-hidden\n id={headingId}\n >\n {heading}\n </div>\n )}\n {SlottableWithNestedChildren(props, (child) => (\n <div\n cmdk-group-items=\"\"\n role=\"group\"\n aria-labelledby={heading ? headingId : undefined}\n >\n <GroupContext.Provider value={contextValue}>\n {child}\n </GroupContext.Provider>\n </div>\n ))}\n </div>\n );\n }\n);\nGroup.displayName = \"Group\";\n\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n (props, forwardedRef) => {\n const { alwaysRender, ...etc } = props;\n const ref = React.useRef<HTMLDivElement>(null);\n const render = useCmdk((state) => !state.search);\n\n if (!alwaysRender && !render) return null;\n return (\n <div\n ref={mergeRefs(ref, forwardedRef)}\n {...etc}\n cmdk-separator=\"\"\n role=\"separator\"\n />\n );\n }\n);\nSeparator.displayName = \"Separator\";\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n (props, forwardedRef) => {\n const { onValueChange, ...etc } = props;\n const isControlled = props.value != null;\n const store = useStore();\n const search = useCmdk((state) => state.search);\n const selectedItemId = useCmdk((state) => state.selectedItemId);\n const context = useCommand();\n\n React.useEffect(() => {\n if (props.value != null) {\n store.setState(\"search\", props.value);\n }\n }, [props.value]);\n\n return (\n <input\n ref={forwardedRef}\n {...etc}\n cmdk-input=\"\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck={false}\n aria-autocomplete=\"list\"\n role=\"combobox\"\n aria-expanded={true}\n aria-controls={context.listId}\n aria-labelledby={context.labelId}\n aria-activedescendant={selectedItemId}\n id={context.inputId}\n type=\"text\"\n value={isControlled ? props.value : search}\n onChange={(e) => {\n if (!isControlled) {\n store.setState(\"search\", e.target.value);\n }\n\n onValueChange?.(e.target.value);\n }}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nconst List = React.forwardRef<HTMLDivElement, ListProps>(\n (props, forwardedRef) => {\n const { children: _children, label = \"Suggestions\", ...etc } = props;\n const ref = React.useRef<HTMLDivElement>(null);\n const height = React.useRef<HTMLDivElement>(null);\n const selectedItemId = useCmdk((state) => state.selectedItemId);\n const context = useCommand();\n\n React.useEffect(() => {\n if (height.current && ref.current) {\n const el = height.current;\n const wrapper = ref.current;\n let animationFrame: number;\n const observer = new ResizeObserver(() => {\n animationFrame = requestAnimationFrame(() => {\n const h = el.offsetHeight;\n wrapper.style.setProperty(\n `--cmdk-list-height`,\n h.toFixed(1) + \"px\"\n );\n });\n });\n observer.observe(el);\n return () => {\n cancelAnimationFrame(animationFrame);\n observer.unobserve(el);\n };\n }\n }, []);\n\n // Prevent Radix Dialog's react-remove-scroll from blocking wheel events\n // inside the command list when rendered in a Portal outside the Dialog DOM tree.\n React.useEffect(() => {\n const listEl = ref.current;\n if (!listEl) return;\n\n const handleWheel = (e: WheelEvent) => {\n if (listEl.contains(e.target as Node)) {\n e.stopPropagation();\n }\n };\n\n document.addEventListener(\"wheel\", handleWheel, { capture: true });\n return () => {\n document.removeEventListener(\"wheel\", handleWheel, { capture: true });\n };\n }, []);\n\n return (\n <div\n ref={mergeRefs(ref, forwardedRef)}\n {...etc}\n cmdk-list=\"\"\n role=\"listbox\"\n tabIndex={-1}\n aria-activedescendant={selectedItemId}\n aria-label={label}\n id={context.listId}\n >\n {SlottableWithNestedChildren(props, (child) => (\n <div ref={mergeRefs(height, context.listInnerRef)} cmdk-list-sizer=\"\">\n {child}\n </div>\n ))}\n </div>\n );\n }\n);\nList.displayName = \"List\";\n\nconst Empty = React.forwardRef<HTMLDivElement, EmptyProps>(\n (props, forwardedRef) => {\n const render = useCmdk((state) => state.filtered.count === 0);\n\n if (!render) return null;\n return (\n <div ref={forwardedRef} {...props} cmdk-empty=\"\" role=\"presentation\" />\n );\n }\n);\nEmpty.displayName = \"Empty\";\n\nconst Loading = React.forwardRef<HTMLDivElement, LoadingProps>(\n (props, forwardedRef) => {\n const {\n progress,\n children: _children,\n label = \"Loading...\",\n ...etc\n } = props;\n\n return (\n <div\n ref={forwardedRef}\n {...etc}\n cmdk-loading=\"\"\n role=\"progressbar\"\n aria-valuenow={progress}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={label}\n >\n {SlottableWithNestedChildren(props, (child) => (\n <div aria-hidden>{child}</div>\n ))}\n </div>\n );\n }\n);\nLoading.displayName = \"Loading\";\n\nconst pkg = Object.assign(Command, {\n List,\n Item,\n Input,\n Group,\n Separator,\n Empty,\n Loading,\n});\n\nexport { useCmdk as useCommandState };\nexport { pkg as Command };\nexport { defaultFilter };\n\nexport { Command as CommandRoot };\nexport { List as CommandList };\nexport { Item as CommandItem };\nexport { Input as CommandInput };\nexport { Group as CommandGroup };\nexport { Separator as CommandSeparator };\nexport { Empty as CommandEmpty };\nexport { Loading as CommandLoading };\n\n/**\n *\n * Helpers\n *\n */\n\nfunction findNextSibling(el: Element, selector: string) {\n let sibling = el.nextElementSibling;\n\n while (sibling) {\n if (sibling.matches(selector)) return sibling;\n sibling = sibling.nextElementSibling;\n }\n}\n\nfunction findPreviousSibling(el: Element, selector: string) {\n let sibling = el.previousElementSibling;\n\n while (sibling) {\n if (sibling.matches(selector)) return sibling;\n sibling = sibling.previousElementSibling;\n }\n}\n\nfunction useAsRef<T>(data: T) {\n const ref = React.useRef<T>(data);\n\n useLayoutEffect(() => {\n ref.current = data;\n });\n\n return ref;\n}\n\nconst useLayoutEffect =\n typeof window === \"undefined\" ? React.useEffect : React.useLayoutEffect;\n\nfunction useLazyRef<T>(fn: () => T) {\n const ref = React.useRef<T>(undefined as T);\n\n if (ref.current === undefined) {\n ref.current = fn();\n }\n\n return ref as React.MutableRefObject<T>;\n}\n\n/**\n * Drop-in replacement for useSyncExternalStore that works with React 17+.\n * Uses useState + useLayoutEffect to subscribe to the store and re-render on changes.\n * useLayoutEffect is critical here (not useEffect) to ensure the subscription\n * is registered before other layout effects emit store updates (e.g., item registration).\n */\nfunction useCmdk<T = any>(selector: (state: State) => T): T {\n const store = useStore();\n const [, forceRender] = React.useState({});\n const currentValueRef = React.useRef<T>(selector(store.snapshot()));\n\n // Always compute fresh value on render\n currentValueRef.current = selector(store.snapshot());\n\n useLayoutEffect(() => {\n return store.subscribe(() => {\n const nextValue = selector(store.snapshot());\n if (!Object.is(nextValue, currentValueRef.current)) {\n currentValueRef.current = nextValue;\n forceRender({});\n }\n });\n }, [store, selector]);\n\n return currentValueRef.current;\n}\n\nfunction useValue(\n id: string,\n ref: React.RefObject<HTMLElement | null>,\n deps: (string | React.ReactNode | React.RefObject<HTMLElement | null>)[],\n aliases: string[] = []\n) {\n const valueRef = React.useRef<string | undefined>(undefined);\n const context = useCommand();\n\n useLayoutEffect(() => {\n const value = (() => {\n for (const part of deps) {\n if (typeof part === \"string\") {\n return part.trim();\n }\n\n if (typeof part === \"object\" && part !== null && \"current\" in part) {\n if (part.current) {\n return part.current.textContent?.trim();\n }\n return valueRef.current;\n }\n }\n })();\n\n const keywords = aliases.map((alias) => alias.trim());\n\n context.value(id, value ?? \"\", keywords);\n ref.current?.setAttribute(VALUE_ATTR, value ?? \"\");\n valueRef.current = value;\n });\n\n return valueRef;\n}\n\nconst useScheduleLayoutEffect = () => {\n const [s, ss] = React.useState<object>();\n const fns = useLazyRef(() => new Map<string | number, () => void>());\n\n useLayoutEffect(() => {\n fns.current.forEach((f) => f());\n fns.current = new Map();\n }, [s]);\n\n return (id: string | number, cb: () => void) => {\n fns.current.set(id, cb);\n ss({});\n };\n};\n\nfunction renderChildren(children: React.ReactElement) {\n const childrenType = children.type as any;\n if (typeof childrenType === \"function\") return childrenType(children.props);\n else if (\"render\" in childrenType) return childrenType.render(children.props);\n else return children;\n}\n\nfunction SlottableWithNestedChildren(\n { asChild, children }: { asChild?: boolean; children?: React.ReactNode },\n render: (child: React.ReactNode) => React.ReactElement\n) {\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(\n renderChildren(children as React.ReactElement),\n { ref: (children as any).ref },\n render((children as any).props.children)\n );\n }\n return render(children);\n}\n\n/**\n * Merge multiple refs into one callback ref.\n */\nfunction mergeRefs<T>(\n ...refs: (React.Ref<T> | React.RefObject<T | null> | null | undefined)[]\n): React.RefCallback<T> {\n return (value: T | null) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref != null && typeof ref === \"object\") {\n (ref as any).current = value;\n }\n });\n };\n}\n\nconst srOnlyStyles = {\n position: \"absolute\",\n width: \"1px\",\n height: \"1px\",\n padding: \"0\",\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n borderWidth: \"0\",\n} as const;\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { Separator as SeparatorPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator-root\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-gray-stroke-muted data-[orientation=horizontal]:h-px data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n","\"use client\";\n\nimport {\n isValidElement,\n cloneElement,\n type ComponentProps,\n type ReactNode,\n type ReactElement,\n} from \"react\";\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\nimport { CloseMd } from \"@medway-ui/icons\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Separator } from \"@/components/Separator\";\n\nfunction Dialog({ ...props }: ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black-48 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n );\n}\n\ninterface DialogContainerProps\n extends ComponentProps<typeof DialogPrimitive.Content> {\n showCloseButton?: boolean;\n overlayClassName?: string;\n}\n\nfunction DialogContainer({\n className,\n overlayClassName,\n children,\n showCloseButton = true,\n ...props\n}: DialogContainerProps) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay className={overlayClassName} />\n <DialogPrimitive.Content\n data-slot=\"dialog-container\"\n className={cn(\n \"fixed left-1/2 top-1/2 z-50 flex max-h-[calc(100%-2rem)] w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 flex-col gap-0 overflow-y-auto rounded-xl border bg-background p-0 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-1/2 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-1/2 sm:max-h-[85vh] sm:max-w-lg\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"rounded-xs focus:outline-hidden absolute right-4 top-4 disabled:pointer-events-none data-[state=open]:text-gray-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\"\n >\n <CloseMd />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogContent({\n className,\n children,\n}: {\n className?: string;\n children: ReactNode;\n}) {\n return (\n <div className=\"overflow-y-auto\">\n <div\n data-slot=\"dialog-content\"\n className={cn(\n \"px-8 py-6 text-md leading-md text-primary-foreground\",\n className\n )}\n >\n {children}\n </div>\n </div>\n );\n}\n\ninterface DialogHeaderProps extends ComponentProps<\"div\"> {\n separator?: boolean;\n}\n\nfunction DialogHeader({\n className,\n separator = false,\n ...props\n}: DialogHeaderProps) {\n return (\n <>\n <div\n data-slot=\"dialog-header\"\n className={cn(\n \"flex flex-col gap-2 px-8 py-6 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n {separator && <Separator />}\n </>\n );\n}\n\ninterface DialogFooterProps extends ComponentProps<\"div\"> {\n separator?: boolean;\n}\n\nfunction DialogFooter({\n className,\n separator = false,\n ...props\n}: DialogFooterProps) {\n return (\n <>\n {separator && <Separator />}\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 px-8 py-6 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n />\n </>\n );\n}\n\ninterface DialogTitleProps\n extends ComponentProps<typeof DialogPrimitive.Title> {\n iconLeft?: ReactNode;\n iconRight?: ReactNode;\n}\n\nfunction DialogTitle({\n className,\n iconLeft,\n iconRight,\n children,\n ...props\n}: DialogTitleProps) {\n const renderIcon = (icon: ReactNode) => {\n if (isValidElement(icon)) {\n return cloneElement(icon as ReactElement<any>, {\n size: 32,\n strokeWidth: 2.2,\n });\n }\n return icon;\n };\n\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\n \"flex items-center gap-3 text-title-md font-semibold leading-title-md !text-content-title\",\n className\n )}\n {...props}\n >\n {iconLeft && renderIcon(iconLeft)}\n {children}\n {iconRight && renderIcon(iconRight)}\n </DialogPrimitive.Title>\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-md leading-md text-content-paragraph\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContainer,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\nexport type {\n DialogContainerProps,\n DialogHeaderProps,\n DialogFooterProps,\n DialogTitleProps,\n};\n","\"use client\";\n\nimport { Command as CommandPrimitive } from \"@/lib/cmdk\";\nimport { SearchMagnifyingGlass } from \"@medway-ui/icons\";\nimport { cn } from \"@/lib/utils\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"@/components/Dialog\";\nimport { type ComponentProps } from \"react\";\n\nfunction Command({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n className={cn(\n \"flex size-full flex-col overflow-hidden rounded-md bg-surface-card text-gray-foreground\",\n className\n )}\n data-slot=\"command\"\n {...props}\n />\n );\n}\n\nfunction CommandDialog({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n ...props\n}: ComponentProps<typeof Dialog> & {\n title?: string;\n description?: string;\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent className=\"overflow-hidden p-0 sm:max-w-lg [&>button:last-child]:hidden\">\n <Command className=\"**:data-[slot=command-input-wrapper]:h-12 max-h-[100svh] [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-gray-foreground-muted [&_[cmdk-group]]:px-2 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-3 [&_[cmdk-item]]:py-2\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction CommandInput({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div\n className=\"flex items-center border-b border-gray-stroke-muted px-4\"\n cmdk-input-wrapper=\"\"\n >\n <CommandPrimitive.Input\n className={cn(\n \"flex h-12 w-full bg-transparent py-3 text-md font-medium outline-none placeholder:text-gray-foreground-muted disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n data-slot=\"command-input-wrapper\"\n {...props}\n />\n <SearchMagnifyingGlass className=\"text-gray-foreground-muted\" size={24} />\n </div>\n );\n}\n\nfunction CommandList({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n className={cn(\n \"max-h-80 flex-1 overflow-y-auto overflow-x-hidden\",\n className\n )}\n data-slot=\"command-list\"\n data-radix-scroll-area=\"\"\n {...props}\n />\n );\n}\n\nfunction CommandEmpty({\n ...props\n}: ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n className=\"py-6 text-center text-sm\"\n data-slot=\"command-empty\"\n {...props}\n />\n );\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n className={cn(\n \"overflow-hidden p-2 text-gray-foreground [&_[cmdk-group-heading]]:px-3 [&_[cmdk-group-heading]]:py-2 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-gray-foreground-muted\",\n className\n )}\n data-slot=\"command-group\"\n {...props}\n />\n );\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n className={cn(\"-mx-1 h-px bg-gray-stroke-muted\", className)}\n data-slot=\"command-separator\"\n {...props}\n />\n );\n}\n\nfunction CommandItem({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n className={cn(\n \"outline-hidden relative flex cursor-default select-none items-center gap-3 rounded-md px-2 py-1.5 text-sm data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className\n )}\n data-slot=\"command-item\"\n {...props}\n />\n );\n}\n\nfunction CommandShortcut({ className, ...props }: ComponentProps<\"span\">) {\n return (\n <kbd\n className={cn(\n \"-me-1 ms-auto inline-flex h-5 max-h-full items-center rounded border bg-surface-card px-1 font-[inherit] text-[0.625rem] font-medium text-gray-foreground-muted\",\n className\n )}\n data-slot=\"command-shortcut\"\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n};\n","\"use client\";\n\nimport { Popover as PopoverPrimitive } from \"radix-ui\";\nimport { cn } from \"@/lib/utils\";\nimport { type ComponentProps } from \"react\";\n\nfunction Popover({ ...props }: ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n ...props\n}: ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n showArrow = false,\n ...props\n}: ComponentProps<typeof PopoverPrimitive.Content> & {\n showArrow?: boolean;\n}) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n align={align}\n className={cn(\n \"outline-hidden z-50 w-72 rounded-md border bg-surface-card p-4 text-gray-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n data-slot=\"popover-content\"\n sideOffset={sideOffset}\n {...props}\n >\n {props.children}\n {showArrow && (\n <PopoverPrimitive.Arrow className=\"-my-px fill-gray-foreground drop-shadow-[0_1px_0_var(--border)]\" />\n )}\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };\n","\"use client\";\n\nimport { Check, ChevronDown } from \"@medway-ui/icons\";\nimport {\n createContext,\n useContext,\n useState,\n isValidElement,\n Children,\n type HTMLAttributes,\n type ReactNode,\n type ButtonHTMLAttributes,\n type ComponentProps,\n} from \"react\";\nimport { useId } from \"@/hooks/use-id\";\nimport { cn } from \"@/lib/utils\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/Command\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/Popover\";\nimport { Button } from \"@/components/Button\";\n\ntype AutocompleteTextProps = HTMLAttributes<HTMLSpanElement>;\n\ninterface AutocompleteContextValue {\n invalid: boolean;\n disabled: boolean;\n open: boolean;\n setOpen: (open: boolean) => void;\n values: string[];\n toggleValue: (value: string) => void;\n onCancelSelection: () => void;\n listId: string;\n}\n\ninterface AutocompleteProps {\n children: ReactNode;\n invalid?: boolean;\n disabled?: boolean;\n values?: string[];\n onValuesChange?: (values: string[]) => void;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n defaultValues?: string[];\n}\n\ninterface AutocompleteTriggerProps\n extends ButtonHTMLAttributes<HTMLButtonElement> {\n placeholder?: string;\n}\n\ninterface AutocompleteContentProps {\n children: ReactNode;\n className?: string;\n searchPlaceholder?: string;\n emptyMessage?: string;\n}\n\ninterface AutocompleteItemProps {\n children: ReactNode;\n value: string;\n name?: string;\n className?: string;\n disabled?: boolean;\n}\n\ninterface AutocompleteContentFooterProps {\n className?: string;\n cancelLabel?: string;\n confirmLabel?: string;\n onCancel?: () => void;\n onConfirm?: (values: string[]) => void;\n}\n\nconst AutocompleteContext = createContext<AutocompleteContextValue>({\n invalid: false,\n disabled: false,\n open: false,\n setOpen: () => {},\n values: [],\n toggleValue: () => {},\n onCancelSelection: () => {},\n listId: \"\",\n});\n\nfunction Autocomplete({\n children,\n invalid = false,\n disabled = false,\n values: controlledValues,\n onValuesChange,\n open: controlledOpen,\n onOpenChange,\n defaultValues = [],\n}: AutocompleteProps) {\n const [internalValues, setInternalValues] = useState<string[]>(defaultValues);\n const [internalOpen, setInternalOpen] = useState(false);\n const [snapshot, setSnapshot] = useState<string[]>([]);\n const isControlledValues = controlledValues !== undefined;\n const isControlledOpen = controlledOpen !== undefined;\n const values = isControlledValues ? controlledValues : internalValues;\n const open = isControlledOpen ? controlledOpen : internalOpen;\n\n const toggleValue = (val: string) => {\n const next = values.includes(val)\n ? values.filter((v) => v !== val)\n : [...values, val];\n if (!isControlledValues) setInternalValues(next);\n onValuesChange?.(next);\n };\n\n const setOpen = (newOpen: boolean) => {\n if (disabled) return;\n if (newOpen) {\n setSnapshot(values);\n }\n if (!isControlledOpen) setInternalOpen(newOpen);\n onOpenChange?.(newOpen);\n };\n\n const onCancelSelection = () => {\n if (!isControlledValues) setInternalValues(snapshot);\n onValuesChange?.(snapshot);\n };\n\n const listId = useId();\n\n return (\n <AutocompleteContext.Provider\n value={{\n invalid,\n disabled,\n open,\n setOpen,\n values,\n toggleValue,\n onCancelSelection,\n listId,\n }}\n >\n <Popover open={open} onOpenChange={setOpen}>\n {children}\n </Popover>\n </AutocompleteContext.Provider>\n );\n}\n\nfunction AutocompleteWrapper({\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"group relative flex flex-col gap-2\", className)}\n data-slot=\"autocomplete-wrapper\"\n {...props}\n />\n );\n}\n\nfunction AutocompleteTrigger({\n className,\n placeholder = \"Selecione uma opção\",\n children,\n ...props\n}: AutocompleteTriggerProps) {\n const { invalid, disabled, open, values, listId } =\n useContext(AutocompleteContext);\n const id = useId();\n const hasSelection = values.length > 0;\n\n return (\n <PopoverTrigger asChild>\n <button\n aria-controls={listId}\n aria-expanded={open}\n aria-invalid={invalid || undefined}\n className={cn(\n \"shadow-xs flex h-12 max-h-12 w-full items-center justify-between gap-2 rounded-md border-2 border-gray-stroke-muted bg-surface-card px-4 py-3 text-left text-md text-gray-foreground outline-none transition-[color,box-shadow] hover:border-gray-stroke-emphasis hover:ring-[3px] hover:ring-state-focus disabled:cursor-default disabled:bg-gray-background-soft-muted disabled:hover:border-gray-stroke-muted disabled:hover:ring-0 aria-[invalid]:border-feedback-error-stroke aria-[invalid]:hover:ring-[3px] aria-[invalid]:hover:ring-state-error [&>span]:line-clamp-1 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n hasSelection && !invalid && \"border-gray-stroke-emphasis\",\n className\n )}\n data-slot=\"autocomplete-trigger\"\n data-placeholder=\"\"\n disabled={disabled}\n id={id}\n role=\"combobox\"\n type=\"button\"\n {...props}\n >\n <span className=\"truncate text-gray-foreground-emphasis\">\n {children ?? placeholder}\n </span>\n <ChevronDown\n aria-hidden=\"true\"\n className=\"shrink-0 text-gray-foreground\"\n size={24}\n strokeWidth={1.6}\n />\n </button>\n </PopoverTrigger>\n );\n}\n\nfunction AutocompleteContentFooter({\n className,\n cancelLabel = \"Cancelar\",\n confirmLabel = \"Concluir\",\n onCancel,\n onConfirm,\n}: AutocompleteContentFooterProps) {\n const { setOpen, onCancelSelection, values } =\n useContext(AutocompleteContext);\n\n return (\n <div\n className={cn(\n \"flex items-center justify-between border-t border-gray-stroke-muted px-4 py-3\",\n className\n )}\n data-slot=\"autocomplete-content-footer\"\n >\n <Button\n size=\"sm\"\n variant=\"regular-soft\"\n onClick={() => {\n onCancelSelection();\n onCancel?.();\n setOpen(false);\n }}\n >\n {cancelLabel}\n </Button>\n <Button\n size=\"sm\"\n variant=\"emphasis\"\n iconLeft={<Check strokeWidth={2.6} />}\n onClick={() => {\n onConfirm?.(values);\n setOpen(false);\n }}\n >\n {confirmLabel}\n </Button>\n </div>\n );\n}\n\nfunction AutocompleteContent({\n children,\n className,\n searchPlaceholder = \"Buscar...\",\n emptyMessage = \"Nenhum resultado encontrado\",\n}: AutocompleteContentProps) {\n const childArray = Children.toArray(children);\n const footerChildren = childArray.filter(\n (child) => isValidElement(child) && child.type === AutocompleteContentFooter\n );\n const listChildren = childArray.filter(\n (child) =>\n !(isValidElement(child) && child.type === AutocompleteContentFooter)\n );\n\n return (\n <PopoverContent\n align=\"start\"\n className={cn(\n \"w-full min-w-[var(--radix-popper-anchor-width)] border-gray-stroke-muted p-0\",\n className\n )}\n >\n <Command>\n <CommandInput placeholder={searchPlaceholder} />\n <CommandList id={useContext(AutocompleteContext).listId}>\n <CommandEmpty>{emptyMessage}</CommandEmpty>\n {listChildren}\n </CommandList>\n </Command>\n {footerChildren}\n </PopoverContent>\n );\n}\n\nfunction AutocompleteItem({\n children,\n value: itemValue,\n name,\n className,\n disabled: itemDisabled = false,\n}: AutocompleteItemProps) {\n const { values, toggleValue } = useContext(AutocompleteContext);\n const isSelected = values.includes(itemValue);\n\n return (\n <CommandItem\n className={cn(\n \"relative flex w-full cursor-default select-none items-center gap-3 rounded px-2 py-2.5 text-base font-medium text-gray-foreground outline-none hover:cursor-pointer hover:bg-secondary-background-soft-emphasis data-[selected=true]:bg-secondary-background-soft-emphasis\",\n className\n )}\n disabled={itemDisabled}\n onSelect={() => {\n toggleValue(itemValue);\n }}\n value={itemValue}\n keywords={name ? [name] : undefined}\n >\n <span\n className={cn(\n \"inline-flex size-[18px] shrink-0 items-center justify-center rounded-sm border-2 transition-all\",\n isSelected\n ? \"border-primary-background-fill bg-primary-background-fill\"\n : \"border-gray-stroke-muted bg-surface-card\"\n )}\n >\n {isSelected && (\n <Check\n size={12}\n strokeWidth={2.6}\n className=\"text-primary-foreground-onfill\"\n />\n )}\n </span>\n {children}\n </CommandItem>\n );\n}\n\nfunction AutocompleteGroup({\n className,\n ...props\n}: ComponentProps<typeof CommandGroup>) {\n return <CommandGroup className={className} {...props} />;\n}\n\nfunction AutocompleteText({ className, ...props }: AutocompleteTextProps) {\n const { invalid } = useContext(AutocompleteContext);\n\n return (\n <span\n className={cn(\n \"-mt-1 text-xs\",\n invalid ? \"text-feedback-error-foreground\" : \"text-gray-foreground\",\n className\n )}\n data-slot=\"autocomplete-text\"\n {...props}\n />\n );\n}\n\nexport {\n Autocomplete,\n AutocompleteContent,\n AutocompleteContentFooter,\n AutocompleteGroup,\n AutocompleteItem,\n AutocompleteText,\n AutocompleteTrigger,\n AutocompleteWrapper,\n};\nexport type {\n AutocompleteContextValue,\n AutocompleteContentFooterProps,\n AutocompleteItemProps,\n AutocompleteContentProps,\n AutocompleteTriggerProps,\n AutocompleteProps,\n};\n","\"use client\";\n\nimport { type ComponentProps, type ReactNode } from \"react\";\nimport { Avatar as AvatarPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\nimport { User } from \"@medway-ui/icons\";\nimport { Badge as BadgeComponent } from \"@/components/Badge\";\n\nconst badgeSizeMap: Record<\n \"sm\" | \"md\" | \"lg\" | \"xl\",\n \"sm\" | \"md\" | \"lg\" | \"xl\"\n> = {\n sm: \"sm\",\n md: \"md\",\n lg: \"md\",\n xl: \"lg\",\n};\n\nconst avatarVariants = cva(\n \"relative flex shrink-0 overflow-hidden rounded-full\",\n {\n variants: {\n size: {\n sm: \"size-8\",\n md: \"size-10\",\n lg: \"size-12\",\n xl: \"size-14\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\ninterface AvatarProps\n extends ComponentProps<typeof AvatarPrimitive.Root>,\n VariantProps<typeof avatarVariants> {\n src?: string;\n alt?: string;\n fallback?: ReactNode;\n badge?: number | string;\n}\n\nfunction Avatar({ className, size, badge, children, ...props }: AvatarProps) {\n return (\n <div className=\"relative\">\n {badge && (\n <BadgeComponent\n size={badgeSizeMap[size || \"md\"]}\n className={cn(\"absolute -right-2 -top-1 z-10\")}\n >\n {String(badge)}\n </BadgeComponent>\n )}\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(avatarVariants({ size, className }))}\n {...props}\n >\n {children}\n </AvatarPrimitive.Root>\n </div>\n );\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"size-full object-cover\", className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"flex size-full items-center justify-center rounded-full bg-gray-background-soft text-sm font-semibold text-primary-foreground\",\n className\n )}\n {...props}\n >\n {props.children ? props.children : <User className=\"size-1/2\" />}\n </AvatarPrimitive.Fallback>\n );\n}\n\nexport { Avatar, AvatarImage, AvatarFallback, avatarVariants };\nexport type { AvatarProps };\n","import { Slot } from \"radix-ui\";\nimport { type ComponentProps, type ReactNode } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { ChevronRightMd, MoreHorizontal } from \"@medway-ui/icons\";\n\nfunction Breadcrumb({ ...props }: ComponentProps<\"nav\">) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />;\n}\n\nfunction BreadcrumbList({ className, ...props }: ComponentProps<\"ol\">) {\n return (\n <ol\n className={cn(\n \"line-clamp-1 flex flex-wrap items-center gap-1.5 text-sm font-medium text-gray-foreground [&_svg]:shrink-0\",\n className\n )}\n data-slot=\"breadcrumb-list\"\n {...props}\n />\n );\n}\n\ninterface BreadcrumbItemProps extends ComponentProps<\"li\"> {\n icon?: ReactNode;\n}\n\nfunction BreadcrumbItem({\n className,\n icon,\n children,\n ...props\n}: BreadcrumbItemProps) {\n return (\n <li\n className={cn(\n \"inline-flex items-center gap-1.5 [&_svg]:text-primary-foreground\",\n className\n )}\n data-slot=\"breadcrumb-item\"\n {...props}\n >\n <span className=\"inline-flex items-center gap-2\">\n {icon && icon}\n {children}\n </span>\n </li>\n );\n}\n\ninterface BreadcrumbLinkProps extends ComponentProps<\"a\"> {\n asChild?: boolean;\n}\n\nfunction BreadcrumbLink({ asChild, className, ...props }: BreadcrumbLinkProps) {\n const Comp = asChild ? Slot.Root : \"a\";\n\n return (\n <Comp\n className={cn(\"transition-colors hover:underline\", className)}\n data-slot=\"breadcrumb-link\"\n {...props}\n />\n );\n}\n\nfunction BreadcrumbPage({ className, ...props }: ComponentProps<\"span\">) {\n return (\n <span\n aria-current=\"page\"\n aria-disabled=\"true\"\n className={cn(\"font-semibold text-primary-foreground\", className)}\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: ComponentProps<\"li\">) {\n return (\n <li\n aria-hidden=\"true\"\n className={className}\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n {...props}\n >\n {children ?? (\n <ChevronRightMd\n className=\"text-gray-foreground\"\n strokeWidth={1.33}\n size={20}\n />\n )}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({ className, ...props }: ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden=\"true\"\n className={cn(\"flex size-5 items-center justify-center\", className)}\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n {...props}\n >\n <MoreHorizontal className=\"text-gray-foreground\" size={18} />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\nexport type { BreadcrumbItemProps, BreadcrumbLinkProps };\n","\"use client\";\n\nimport {\n type ComponentProps,\n type ReactElement,\n type ReactNode,\n type ElementType,\n} from \"react\";\nimport { Slot } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface TagProps\n extends ComponentProps<\"span\">,\n VariantProps<typeof tagVariants> {\n asChild?: boolean;\n icon?: ReactElement;\n}\n\nconst tagVariants = cva(\n \"inline-flex items-center justify-center rounded-md px-2 py-1 text-xs font-semibold w-fit whitespace-nowrap shrink-0 gap-1.5 transition-colors overflow-hidden max-h-6\",\n {\n variants: {\n variant: {\n regular:\n \"bg-primary-background-fill text-primary-foreground-onfill fill-primary-foreground-onfill\",\n \"regular-soft\":\n \"bg-primary-background-soft text-primary-foreground fill-primary-foreground\",\n \"regular-basic\":\n \"bg-transparent text-primary-foreground fill-primary-foreground\",\n emphasis:\n \"bg-secondary-background-fill text-secondary-foreground-onfill fill-secondary-foreground-onfill\",\n \"emphasis-soft\":\n \"bg-secondary-background-soft text-secondary-foreground fill-secondary-foreground\",\n \"emphasis-basic\":\n \"bg-transparent text-secondary-foreground fill-secondary-foreground\",\n gray: \"bg-gray-background-fill text-gray-foreground-onfill fill-gray-foreground-onfill\",\n \"gray-soft\":\n \"bg-gray-background-soft text-gray-foreground fill-gray-foreground\",\n \"gray-basic\":\n \"bg-transparent text-gray-foreground fill-gray-foreground\",\n success:\n \"bg-green-background-fill text-green-foreground-onfill fill-green-foreground-onfill\",\n \"success-soft\":\n \"bg-green-background-soft text-green-foreground fill-green-foreground\",\n \"success-basic\":\n \"bg-transparent text-green-foreground fill-green-foreground\",\n error:\n \"bg-red-background-fill text-red-foreground-onfill fill-red-foreground-onfill\",\n \"error-soft\":\n \"bg-red-background-soft text-red-foreground fill-red-foreground\",\n \"error-basic\": \"bg-transparent text-red-foreground fill-red-foreground\",\n warning:\n \"bg-yellow-background-fill text-yellow-foreground-onfill fill-yellow-foreground-onfill\",\n \"warning-soft\":\n \"bg-yellow-background-soft text-yellow-foreground fill-yellow-foreground\",\n \"warning-basic\":\n \"bg-transparent text-yellow-foreground fill-yellow-foreground\",\n cm: \"bg-cm-background-fill text-cm-foreground-onfill fill-cm-foreground-onfill\",\n \"cm-soft\":\n \"bg-cm-background-soft text-cm-foreground fill-cm-foreground\",\n \"cm-basic\": \"bg-transparent text-cm-foreground fill-cm-foreground\",\n go: \"bg-go-background-fill text-go-foreground-onfill fill-go-foreground-onfill\",\n \"go-soft\":\n \"bg-go-background-soft text-go-foreground fill-go-foreground\",\n \"go-basic\": \"bg-transparent text-go-foreground fill-go-foreground\",\n cir: \"bg-cir-background-fill text-cir-foreground-onfill fill-cir-foreground-onfill\",\n \"cir-soft\":\n \"bg-cir-background-soft text-cir-foreground fill-cir-foreground\",\n \"cir-basic\": \"bg-transparent text-cir-foreground fill-cir-foreground\",\n ped: \"bg-ped-background-fill text-ped-foreground-onfill fill-ped-foreground-onfill\",\n \"ped-soft\":\n \"bg-ped-background-soft text-ped-foreground fill-ped-foreground\",\n \"ped-basic\": \"bg-transparent text-ped-foreground fill-ped-foreground\",\n prev: \"bg-prev-background-fill text-prev-foreground-onfill fill-prev-foreground-onfill\",\n \"prev-soft\":\n \"bg-prev-background-soft text-prev-foreground fill-prev-foreground\",\n \"prev-basic\":\n \"bg-transparent text-prev-foreground fill-prev-foreground\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n },\n }\n);\n\nfunction TagIcon({\n className,\n icon,\n ...props\n}: ComponentProps<\"div\"> & {\n icon?: ReactNode;\n}) {\n return (\n <div\n data-slot=\"tag-icon\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {icon}\n </div>\n );\n}\n\nfunction Tag({\n className,\n variant,\n asChild = false,\n icon,\n children,\n ...props\n}: TagProps) {\n const Comp = (asChild ? Slot.Slot : \"span\") as ElementType;\n\n return (\n <Comp\n data-slot=\"tag\"\n className={cn(tagVariants({ variant }), className)}\n {...props}\n >\n {icon && <TagIcon icon={icon} />}\n {children}\n </Comp>\n );\n}\n\nexport { Tag, tagVariants };\nexport type { TagProps };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface ProgressCircleProps extends ComponentProps<\"div\"> {\n value: number | string;\n size?: number;\n strokeWidth?: number;\n indicatorClassName?: string;\n trackClassName?: string;\n valueClassName?: string;\n label?: string;\n labelClassName?: string;\n}\n\nfunction ProgressCircle({\n className,\n indicatorClassName,\n trackClassName,\n valueClassName,\n label,\n labelClassName,\n value = 0,\n size = 96,\n strokeWidth = 2,\n ...props\n}: ProgressCircleProps) {\n const isStringValue = typeof value === \"string\";\n const numericValue = isStringValue ? 0 : Math.round(value);\n\n const radius = (size - strokeWidth) / 2;\n const circumference = radius * 2 * Math.PI;\n const offset = circumference - (numericValue / 100) * circumference;\n const valueFontSize = Math.max(18, Math.min(size / 5));\n const labelFontSize = Math.max(10, Math.min(size / 9, 16));\n\n return (\n <div\n data-slot=\"progress-circle\"\n className={cn(\n \"relative inline-flex items-center justify-center\",\n className\n )}\n style={{ width: size, height: size }}\n {...props}\n >\n <svg\n className=\"absolute inset-0 -rotate-90\"\n width={size}\n height={size}\n viewBox={`0 0 ${size} ${size}`}\n >\n <circle\n data-slot=\"progress-circle-track\"\n cx={size / 2}\n cy={size / 2}\n r={radius}\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n fill=\"none\"\n className={cn(\"text-gray-stroke-muted\", trackClassName)}\n />\n <circle\n data-slot=\"progress-circle-indicator\"\n cx={size / 2}\n cy={size / 2}\n r={radius}\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n fill=\"none\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n strokeLinecap=\"round\"\n className={cn(\n \"text-primary-stroke transition-all duration-300 ease-in-out\",\n indicatorClassName\n )}\n />\n </svg>\n <div\n data-slot=\"progress-circle-content\"\n className=\"relative z-10 flex flex-col items-center justify-center px-2 text-sm font-medium text-gray-foreground-muted\"\n >\n <div>\n <span\n className={cn(\"mr-px font-semibold\", valueClassName)}\n style={{ fontSize: `${valueFontSize}px` }}\n >\n {value}\n </span>\n {!isStringValue && \"%\"}\n </div>\n {label && (\n <div\n data-slot=\"progress-circle-label\"\n className={cn(\n \"text-center font-medium leading-tight text-gray-foreground-muted\",\n labelClassName\n )}\n style={{ fontSize: `${labelFontSize}px` }}\n >\n {label}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport { ProgressCircle };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { Progress as ProgressPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface ProgressProps\n extends ComponentProps<typeof ProgressPrimitive.Root> {\n indicatorClassName?: string;\n label?: string;\n}\n\nfunction Progress({\n className,\n indicatorClassName,\n label,\n value,\n ...props\n}: ProgressProps) {\n const percentage = Math.round(value || 0);\n\n return (\n <div className=\"flex w-full flex-col gap-2\">\n {label && (\n <div\n data-slot=\"progress-label\"\n className=\"text-xs font-medium text-gray-foreground-muted\"\n >\n <span className=\"font-semibold text-gray-foreground\">\n {percentage}%\n </span>{\" \"}\n <span>{label}</span>\n </div>\n )}\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(\n \"relative flex h-px w-full overflow-x-clip rounded-pill bg-gray-stroke-muted\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(\n \"relative -top-[0.5px] flex h-0.5 w-full flex-1 bg-primary-stroke transition-all\",\n indicatorClassName\n )}\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n </div>\n );\n}\n\nexport { Progress };\n","\"use client\";\n\nimport {\n createContext,\n useContext,\n useMemo,\n type ComponentProps,\n type ReactElement,\n} from \"react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Breadcrumb, BreadcrumbList } from \"@/components/Breadcrumb\";\nimport { Tag } from \"@/components/Tag\";\nimport { Check, TimeRemaining } from \"@medway-ui/icons\";\nimport {\n ProgressCircle,\n ProgressCircleProps,\n} from \"@/components/ProgressCircle\";\nimport { Progress, ProgressProps } from \"@/components/Progress\";\n\ninterface CardWeekProps extends ComponentProps<\"div\"> {\n done?: boolean;\n postponed?: boolean;\n skipped?: boolean;\n}\n\ninterface CardWeekBreadcrumbProps extends ComponentProps<\"div\"> {\n tag?: string;\n tagIcon?: ReactElement;\n}\n\ninterface CardWeekTextProps extends ComponentProps<\"div\"> {\n isTime?: boolean;\n}\n\ntype CardWeekContextValue = Pick<\n CardWeekProps,\n \"done\" | \"postponed\" | \"skipped\"\n>;\n\nconst CardWeekContext = createContext<CardWeekContextValue | null>(null);\n\nfunction CardWeek({\n className,\n done,\n postponed,\n skipped,\n ...props\n}: CardWeekProps) {\n const contextValue = useMemo(\n () => ({ done, postponed, skipped }),\n [done, postponed, skipped]\n );\n\n return (\n <CardWeekContext.Provider value={contextValue}>\n <div\n data-slot=\"card-week\"\n className={cn(\n \"flex flex-col overflow-hidden rounded-xl border border-gray-stroke-muted text-gray-foreground-muted\",\n className\n )}\n {...props}\n />\n </CardWeekContext.Provider>\n );\n}\n\nfunction CardWeekBreadcrumb({\n className,\n children,\n tag,\n tagIcon,\n ...props\n}: CardWeekBreadcrumbProps) {\n return (\n <div\n data-slot=\"card-week-breadcrumb\"\n className={cn(\n \"flex items-center gap-4 bg-primary-background-soft-muted px-6 py-3\",\n className\n )}\n {...props}\n >\n <Breadcrumb className=\"flex-1 overflow-hidden\">\n <BreadcrumbList className=\"flex-nowrap gap-1.5 text-xs [&>[data-slot=breadcrumb-item]:last-of-type>span]:min-w-0 [&>[data-slot=breadcrumb-item]:last-of-type>span]:overflow-hidden [&>[data-slot=breadcrumb-item]:last-of-type]:min-w-0 [&>[data-slot=breadcrumb-item]:last-of-type]:flex-1 [&>[data-slot=breadcrumb-item]:last-of-type_[data-slot=breadcrumb-page]]:truncate [&_[data-slot=breadcrumb-page]]:block\">\n {children}\n </BreadcrumbList>\n </Breadcrumb>\n {tag && (\n <Tag variant=\"regular-soft\" icon={tagIcon}>\n {tag}\n </Tag>\n )}\n </div>\n );\n}\n\nfunction CardWeekContainer({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-week-container\"\n className={cn(\n \"flex flex-1 flex-col gap-5 bg-surface-card px-6 py-5\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardWeekHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-week-header\"\n className={cn(\"flex justify-between [&.border-b]:pb-6\", className)}\n {...props}\n />\n );\n}\n\nfunction CardWeekTitle({ className, ...props }: ComponentProps<\"div\">) {\n const cardWeekContext = useContext(CardWeekContext);\n const done = cardWeekContext?.done;\n const postponed = cardWeekContext?.postponed;\n const skipped = cardWeekContext?.skipped;\n\n return (\n <div\n data-slot=\"card-week-title\"\n className={cn(\n \"text-lg font-semibold leading-lg text-primary-foreground\",\n (done || postponed || skipped) &&\n \"text-primary-foreground-muted line-through\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardWeekDescription({ className, ...props }: ComponentProps<\"div\">) {\n const cardWeekContext = useContext(CardWeekContext);\n const done = cardWeekContext?.done;\n const postponed = cardWeekContext?.postponed;\n const skipped = cardWeekContext?.skipped;\n\n return (\n <div\n data-slot=\"card-week-description\"\n className={cn(\n \"text-xs font-semibold leading-xs text-gray-foreground\",\n (done || postponed || skipped) && \"text-gray-foreground-muted\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardWeekTags({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-week-tags\"\n className={cn(\n \"flex flex-wrap items-center gap-2 [[data-slot=card-week-header]:not(:has([data-slot=card-week-progress]))+&]:mt-6\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardWeekProgressCircle({ className, ...props }: ProgressCircleProps) {\n return (\n <div\n data-slot=\"card-week-progress-circle\"\n className={cn(\"flex flex-1 justify-end\", className)}\n {...props}\n >\n <ProgressCircle size={104} {...props} />\n </div>\n );\n}\n\nfunction CardWeekProgress({ className, ...props }: ProgressProps) {\n const cardWeekContext = useContext(CardWeekContext);\n const done = cardWeekContext?.done;\n\n return (\n <div\n data-slot=\"card-week-progress\"\n className={cn(\"flex flex-1\", className)}\n {...props}\n >\n <Progress value={done ? 100 : props.value} {...props} />\n </div>\n );\n}\n\nfunction CardWeekFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-week-footer\"\n className={cn(\"mt-auto flex flex-col gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction CardWeekContent({\n className,\n children,\n ...props\n}: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-week-content\"\n className={cn(\"flex flex-col text-xs font-medium\", className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nfunction CardWeekText({\n className,\n children,\n isTime,\n ...props\n}: CardWeekTextProps) {\n return (\n <div\n data-slot=\"card-week-text\"\n className={cn(\n \"flex items-center gap-1.5\",\n isTime ? \"text-secondary-foreground\" : \"text-gray-foreground-muted\",\n className\n )}\n {...props}\n >\n {isTime && <TimeRemaining size={16} />}\n <span>{children}</span>\n </div>\n );\n}\n\nfunction CardWeekStatus({ className, ...props }: ComponentProps<\"div\">) {\n const cardWeekContext = useContext(CardWeekContext);\n const done = cardWeekContext?.done;\n const postponed = cardWeekContext?.postponed;\n const skipped = cardWeekContext?.skipped;\n\n if (!done && !postponed && !skipped) return null;\n\n if (postponed || skipped) {\n return (\n <div\n data-slot=\"card-week-status\"\n className={cn(\"flex items-center gap-1.5\", className)}\n {...props}\n >\n <div className=\"flex size-4 items-center justify-center rounded-full bg-yellow-24 text-yellow-darken-4\">\n <Check size={12} strokeWidth={1.67} />\n </div>\n <div className=\"font-semibold text-yellow-darken-4\">\n {postponed ? \"Adiado\" : \"Pulado\"}\n </div>\n </div>\n );\n }\n\n return (\n <div\n data-slot=\"card-week-status\"\n className={cn(\"flex items-center gap-1.5\", className)}\n {...props}\n >\n <div className=\"flex size-4 items-center justify-center rounded-full bg-secondary-background-soft text-secondary-foreground\">\n <Check size={12} strokeWidth={1.67} />\n </div>\n <div className=\"font-semibold\">Feito</div>\n </div>\n );\n}\n\nfunction CardWeekActions({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-week-actions\"\n className={cn(\n \"flex flex-wrap items-center justify-end gap-2 pt-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n CardWeek,\n CardWeekTags,\n CardWeekBreadcrumb,\n CardWeekContainer,\n CardWeekContent,\n CardWeekDescription,\n CardWeekFooter,\n CardWeekProgress,\n CardWeekProgressCircle,\n CardWeekText,\n CardWeekStatus,\n CardWeekActions,\n CardWeekHeader,\n CardWeekTitle,\n};\nexport type { CardWeekProps, CardWeekBreadcrumbProps, CardWeekTextProps };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\";\nimport { Check, RemoveMinus } from \"@medway-ui/icons\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst checkboxVariants = cva(\n \"inline-flex items-center justify-center place-items-center gap-2 rounded-sm whitespace-nowrap transition-all disabled:pointer-events-none shrink-0 [&_svg]:shrink-0 hover:cursor-pointer focus:outline-0 [grid-template-areas:'stack']\",\n {\n variants: {\n variant: {\n regular:\n \"bg-surface-card border-2 border-gray-stroke-muted enabled:hover:ring-4 data-[state=unchecked]:enabled:hover:ring-state-hover data-[state=unchecked]:enabled:hover:border-gray-stroke disabled:bg-gray-background-soft-muted data-[state=checked]:bg-primary-background-fill data-[state=checked]:border-primary-background-fill data-[state=checked]:enabled:hover:bg-primary-background-fill-emphasis data-[state=checked]:enabled:hover:border-primary-background-fill-emphasis data-[state=checked]:enabled:hover:ring-state-active disabled:data-[state=checked]:bg-gray-background-soft-muted disabled:data-[state=checked]:border-gray-stroke-muted data-[state=unchecked]:enabled:hover:border-gray-stroke data-[state=checked]:enabled:hover:bg-primary-background-fill-emphasis [&:disabled_svg]:text-gray-background-fill-muted\",\n },\n size: {\n sm: \"size-4 [&_svg]:size-3\",\n md: \"size-5 [&_svg]:size-4\",\n lg: \"size-6 [&_svg]:size-5\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n size: \"md\",\n },\n }\n);\n\ninterface CheckboxProps\n extends ComponentProps<typeof CheckboxPrimitive.Root>,\n VariantProps<typeof checkboxVariants> {\n uncheckIcon?: boolean;\n}\n\nfunction Checkbox({\n className,\n size,\n variant,\n uncheckIcon,\n ...props\n}: CheckboxProps) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"group peer\",\n checkboxVariants({ size, variant }),\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n {uncheckIcon ? (\n <RemoveMinus\n className={cn(\n \"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-primary-foreground-onfill\"\n )}\n strokeWidth={2.6}\n />\n ) : (\n <Check\n className={cn(\n \"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-primary-foreground-onfill\"\n )}\n strokeWidth={2.6}\n />\n )}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox, checkboxVariants };\nexport type { CheckboxProps };\n","\"use client\";\n\nimport { createContext, useContext, type ComponentProps } from \"react\";\nimport { Collapsible as CollapsiblePrimitive } from \"radix-ui\";\nimport { cn } from \"@/lib/utils\";\n\ntype AnimationType = \"accordion\" | \"fade\";\n\ninterface CollapsibleContextValue {\n animation?: AnimationType;\n}\n\ninterface CollapsibleContentProps\n extends ComponentProps<typeof CollapsiblePrimitive.Content> {\n className?: string;\n}\n\nconst CollapsibleContext = createContext<CollapsibleContextValue>({\n animation: undefined,\n});\n\ninterface CollapsibleProps\n extends ComponentProps<typeof CollapsiblePrimitive.Root> {\n animation?: AnimationType;\n}\n\nfunction Collapsible({ animation, ...props }: CollapsibleProps) {\n return (\n <CollapsibleContext.Provider value={{ animation }}>\n <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n </CollapsibleContext.Provider>\n );\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: ComponentProps<typeof CollapsiblePrimitive.Trigger>) {\n return (\n <CollapsiblePrimitive.Trigger data-slot=\"collapsible-trigger\" {...props} />\n );\n}\n\nfunction CollapsibleContent({ className, ...props }: CollapsibleContentProps) {\n const { animation } = useContext(CollapsibleContext);\n\n const animationClasses: Record<AnimationType, string> = {\n accordion:\n \"overflow-hidden data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down\",\n fade: \"data-[state=closed]:animate-fade-out data-[state=open]:animate-fade-in\",\n };\n\n return (\n <CollapsiblePrimitive.Content\n data-slot=\"collapsible-content\"\n className={cn(animation && animationClasses[animation], className)}\n {...props}\n />\n );\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\nexport type { AnimationType, CollapsibleProps, CollapsibleContentProps };\n","import { useState, useEffect } from \"react\";\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = useState<boolean | undefined>(undefined);\n\n useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener(\"change\", onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return !!isMobile;\n}\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\nimport { Check, ChevronRight } from \"@medway-ui/icons\";\n\nimport { cn } from \"@/lib/utils\";\nimport { useIsMobile } from \"@/hooks/use-mobile\";\n\nfunction DropdownMenu({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n className={cn(\"cursor-pointer\", props.className)}\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n side,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n const isMobile = useIsMobile();\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n side={isMobile ? \"bottom\" : side}\n className={cn(\n \"max-h-(--radix-dropdown-menu-content-available-height) origin-(--radix-dropdown-menu-content-transform-origin) z-50 max-h-screen min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-surface-elevated p-3 pb-2 text-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"data-[variant=destructive]:*:[svg]:!text-destructive outline-hidden relative flex cursor-pointer select-none items-center gap-2.5 rounded-sm px-2 py-2 text-sm font-medium text-gray-foreground hover:bg-secondary-background-soft-emphasis focus:outline-0 data-[disabled]:pointer-events-none data-[inset]:pl-8 data-[variant=destructive]:text-red-foreground data-[disabled]:opacity-50 data-[variant=destructive]:hover:bg-red-background-soft-emphasis dark:[&_img]:brightness-0 dark:[&_img]:invert [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"outline-hidden relative flex cursor-pointer select-none items-center gap-2 rounded-md py-2 pl-2 pr-7 text-sm font-medium text-gray-foreground hover:bg-secondary-background-soft-emphasis focus:outline-0 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:[&_img]:brightness-0 dark:[&_img]:invert [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:text-secondary-foreground\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"flex min-w-0 flex-1 gap-2 break-words\">{children}</span>\n <span className=\"pointer-events-none absolute right-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"outline-hidden relative flex cursor-pointer select-none items-center gap-2 rounded-md py-3 pl-2 pr-7 text-sm font-medium text-gray-foreground hover:bg-secondary-background-soft-emphasis focus:outline-0 aria-checked:text-secondary-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:[&_img]:brightness-0 dark:[&_img]:invert [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:text-secondary-foreground\",\n className\n )}\n {...props}\n >\n <span className=\"flex min-w-0 flex-1 gap-2 break-words\">{children}</span>\n <span className=\"pointer-events-none absolute right-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\ninterface DropdownMenuLabelProps\n extends ComponentProps<typeof DropdownMenuPrimitive.Label> {\n inset?: boolean;\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: DropdownMenuLabelProps) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-3 text-xs font-medium text-gray-foreground-muted data-[inset]:pl-8 [&:not(:first-child)]:mt-2.5\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-3 my-2 h-px bg-gray-stroke-muted\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-gray-foreground\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-pointer select-none items-center rounded-sm px-2 py-2 text-sm font-medium text-gray-foreground outline-0 focus:outline-0 data-[inset]:pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto size-3\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"origin-(--radix-dropdown-menu-content-transform-origin) z-50 min-w-[8rem] overflow-hidden rounded-md border bg-surface-elevated p-1 text-gray-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\nexport type { DropdownMenuLabelProps };\n","\"use client\";\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useRef,\n useState,\n type CSSProperties,\n type ComponentPropsWithoutRef,\n type HTMLAttributes,\n} from \"react\";\nimport {\n Calendar,\n ChevronDown,\n ChevronLeftMd,\n ChevronRightMd,\n} from \"@medway-ui/icons\";\nimport { cn } from \"@/lib/utils\";\n\nconst DatePickerContext = createContext<{ invalid: boolean }>({\n invalid: false,\n});\n\ntype DatePickerValue = Date | null;\n\ntype DateRangeValue = { start: Date | null; end: Date | null } | null;\n\ninterface DatePickerLabelProps extends HTMLAttributes<HTMLLabelElement> {\n htmlFor?: string;\n}\n\ninterface DatePickerProps\n extends Omit<\n ComponentPropsWithoutRef<\"button\">,\n \"value\" | \"defaultValue\" | \"onChange\"\n > {\n value?: DatePickerValue;\n defaultValue?: DatePickerValue;\n onValueChange?: (value: DatePickerValue) => void;\n placeholder?: string;\n disabled?: boolean;\n min?: Date;\n max?: Date;\n format?: (date: Date) => string;\n inputClassName?: string;\n contentClassName?: string;\n yearRange?: { start: number; end: number };\n showYearSelector?: boolean;\n invalid?: boolean;\n}\n\ninterface DateRangePickerProps\n extends Omit<\n ComponentPropsWithoutRef<\"button\">,\n \"value\" | \"defaultValue\" | \"onChange\"\n > {\n value?: DateRangeValue;\n defaultValue?: DateRangeValue;\n onValueChange?: (value: DateRangeValue) => void;\n placeholder?: string;\n disabled?: boolean;\n min?: Date;\n max?: Date;\n format?: (date: Date) => string;\n inputClassName?: string;\n contentClassName?: string;\n yearRange?: { start: number; end: number };\n showYearSelector?: boolean;\n invalid?: boolean;\n}\n\nfunction DatePickerWrapper({\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"group relative flex flex-col gap-2\", className)}\n data-slot=\"date-picker-wrapper\"\n {...props}\n />\n );\n}\n\nfunction DatePickerLabel({\n className,\n children,\n ...props\n}: DatePickerLabelProps) {\n return (\n <label\n className={cn(\n \"pointer-events-none absolute start-3 top-0 z-10 origin-left -translate-y-1/2 bg-surface-card px-1 text-xs font-medium text-gray-foreground transition-all duration-200 ease-out\",\n // Floating label styles\n \"group-has-[[data-slot=date-picker-trigger][data-placeholder]:not([data-state=open])]:start-4 group-has-[[data-slot=date-picker-trigger][data-placeholder]:not([data-state=open])]:top-6 group-has-[[data-slot=date-picker-trigger][data-placeholder]:not([data-state=open])]:px-0 group-has-[[data-slot=date-picker-trigger][data-placeholder]:not([data-state=open])]:text-md group-has-[[data-slot=date-picker-trigger][data-placeholder]:not([data-state=open])]:font-normal group-has-[[data-slot=date-picker-trigger][data-placeholder]:not([data-state=open])]:text-gray-foreground\",\n className\n )}\n data-slot=\"date-picker-label\"\n {...props}\n >\n {children}\n </label>\n );\n}\n\nfunction DatePickerText({\n className,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n const { invalid } = useContext(DatePickerContext);\n\n return (\n <span\n className={cn(\n \"-mt-1 text-xs\",\n invalid ? \"text-feedback-error-foreground\" : \"text-gray-foreground\",\n className\n )}\n data-slot=\"date-picker-text\"\n {...props}\n />\n );\n}\n\nfunction startOfDay(date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\n\nfunction isSameDay(a: Date, b: Date) {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nfunction addMonths(date: Date, delta: number) {\n return new Date(date.getFullYear(), date.getMonth() + delta, 1);\n}\n\nfunction clampToStartOfMonth(date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\n\nfunction isBeforeDay(a: Date, b: Date) {\n return startOfDay(a).getTime() < startOfDay(b).getTime();\n}\n\nfunction isAfterDay(a: Date, b: Date) {\n return startOfDay(a).getTime() > startOfDay(b).getTime();\n}\n\nfunction isDisabledByBounds(day: Date, min?: Date, max?: Date) {\n if (min && isBeforeDay(day, min)) return true;\n if (max && isAfterDay(day, max)) return true;\n return false;\n}\n\nfunction defaultFormat(date: Date) {\n return new Intl.DateTimeFormat(\"pt-BR\", {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n }).format(date);\n}\n\nfunction DatePicker({\n value,\n defaultValue = null,\n onValueChange,\n placeholder = \"Pick a date\",\n disabled,\n min,\n max,\n format = defaultFormat,\n className,\n inputClassName,\n contentClassName,\n yearRange = { start: 1950, end: 2026 },\n showYearSelector = true,\n invalid = false,\n children,\n ...props\n}: DatePickerProps) {\n const isControlled = value !== undefined;\n\n const [uncontrolledValue, setUncontrolledValue] =\n useState<DatePickerValue>(defaultValue);\n\n const selected = isControlled ? value : uncontrolledValue;\n\n const [open, setOpen] = useState(false);\n const [viewMonth, setViewMonth] = useState<Date>(() =>\n clampToStartOfMonth(selected ?? new Date())\n );\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n const contentId = useId();\n\n const [mobilePopoverStyle, setMobilePopoverStyle] =\n useState<CSSProperties | null>(null);\n const [placement, setPlacement] = useState<\"above\" | \"below\">(\"below\");\n\n const setSelected = useCallback(\n (next: DatePickerValue) => {\n if (!isControlled) setUncontrolledValue(next);\n onValueChange?.(next);\n },\n [isControlled, onValueChange]\n );\n\n useEffect(() => {\n if (!open) return;\n // When opening, show the month of the current selection (or today).\n setViewMonth(clampToStartOfMonth(selected ?? new Date()));\n }, [open, selected]);\n\n // Clear mobile style whenever popover closes.\n useEffect(() => {\n if (!open) {\n setMobilePopoverStyle(null);\n setPlacement(\"below\");\n }\n }, [open]);\n\n useEffect(() => {\n if (!open) return;\n const prevOverflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = prevOverflow;\n };\n }, [open]);\n\n // Close on scroll while the fixed popover is visible.\n useEffect(() => {\n if (!mobilePopoverStyle) return;\n const close = () => setOpen(false);\n window.addEventListener(\"scroll\", close, { passive: true, capture: true });\n return () =>\n window.removeEventListener(\"scroll\", close, { capture: true } as any);\n }, [mobilePopoverStyle]);\n\n useEffect(() => {\n if (!open) return;\n const onPointerDown = (event: MouseEvent | PointerEvent) => {\n const el = rootRef.current;\n if (!el) return;\n if (event.target instanceof Node && !el.contains(event.target)) {\n setOpen(false);\n }\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") setOpen(false);\n };\n window.addEventListener(\"pointerdown\", onPointerDown, { capture: true });\n window.addEventListener(\"keydown\", onKeyDown);\n return () => {\n window.removeEventListener(\"pointerdown\", onPointerDown, {\n capture: true,\n } as any);\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [open]);\n\n // Compute fixed position from the trigger rect so the style is ready\n // before the first render — avoids blink and transform mismatch.\n const POPOVER_ESTIMATED_HEIGHT = 290;\n const handleTriggerClick = () => {\n if (open) {\n setOpen(false);\n } else {\n const rect = rootRef.current?.getBoundingClientRect();\n if (rect) {\n const spaceBelow = window.innerHeight - rect.bottom;\n const openAbove = spaceBelow < POPOVER_ESTIMATED_HEIGHT;\n setPlacement(openAbove ? \"above\" : \"below\");\n if (window.matchMedia(\"(max-width: 639px)\").matches) {\n setMobilePopoverStyle({\n position: \"fixed\",\n ...(openAbove\n ? { bottom: window.innerHeight - rect.top + 8 }\n : { top: rect.bottom + 8 }),\n left: rect.left + rect.width / 2,\n transform: \"translateX(-50%)\",\n });\n }\n }\n setOpen(true);\n }\n };\n\n const today = startOfDay(new Date());\n const year = viewMonth.getFullYear();\n const month = viewMonth.getMonth();\n const firstDayOfMonth = new Date(year, month, 1);\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n const leadingEmpty = firstDayOfMonth.getDay();\n const displayValue = selected ? format(selected) : \"\";\n\n // Generate month options in Portuguese\n const months = Array.from({ length: 12 }, (_, i) => ({\n value: i,\n label: new Intl.DateTimeFormat(\"pt-BR\", { month: \"long\" }).format(\n new Date(2000, i, 1)\n ),\n }));\n\n // Generate year options\n const years = Array.from(\n { length: yearRange.end - yearRange.start + 1 },\n (_, i) => yearRange.start + i\n );\n\n const handleMonthChange = (newMonth: number) => {\n setViewMonth(new Date(year, newMonth, 1));\n };\n\n const handleYearChange = (newYear: number) => {\n setViewMonth(new Date(newYear, month, 1));\n };\n\n return (\n <DatePickerContext.Provider value={{ invalid }}>\n <div\n ref={rootRef}\n className={cn(\"relative inline-flex w-full\", className)}\n >\n <button\n type=\"button\"\n disabled={disabled}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n aria-controls={open ? contentId : undefined}\n data-invalid={invalid || undefined}\n data-slot=\"date-picker-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n {...(!displayValue && { \"data-placeholder\": \"\" })}\n className={cn(\n \"shadow-xs peer flex h-12 w-full items-center justify-between gap-2 rounded-md border-2 border-gray-stroke-muted bg-surface-card px-4 py-3 text-left text-md text-gray-foreground outline-none transition-[color,box-shadow] enabled:hover:border-gray-stroke-emphasis enabled:hover:ring-[3px] enabled:hover:ring-state-focus disabled:pointer-events-none disabled:bg-gray-background-soft-muted disabled:text-gray-foreground-muted data-[invalid]:border-feedback-error-stroke data-[invalid]:enabled:hover:border-feedback-error-stroke data-[invalid]:enabled:hover:ring-[3px] data-[invalid]:enabled:hover:ring-state-error max-sm:h-14 max-sm:text-base\",\n open && \"border-gray-stroke-emphasis ring-[3px] ring-state-focus\",\n displayValue &&\n !invalid &&\n \"border-gray-stroke-emphasis ring-[3px] ring-state-focus\",\n displayValue &&\n invalid &&\n \"border-feedback-error-stroke ring-[3px] ring-state-error\",\n // Floating label styles - hide placeholder text when label is present and field is empty\n \"group-has-[[data-slot=date-picker-label]]:data-[placeholder]:text-transparent\",\n inputClassName\n )}\n onClick={handleTriggerClick}\n {...props}\n >\n <span className=\"truncate\">{displayValue || placeholder}</span>\n <Calendar\n size={20}\n strokeWidth={1.6}\n className=\"shrink-0 !text-gray-foreground\"\n aria-hidden=\"true\"\n />\n </button>\n\n {open && (\n <div\n id={contentId}\n role=\"dialog\"\n aria-label=\"Calendário\"\n data-slot=\"date-picker-content\"\n style={mobilePopoverStyle ?? undefined}\n className={cn(\n \"absolute left-0 z-50 w-[min(20rem,100%)] overflow-hidden rounded-md border border-gray-stroke-muted bg-surface-elevated p-3 shadow-md max-sm:left-1/2 max-sm:w-[min(32rem,calc(100vw-1rem))] max-sm:-translate-x-1/2\",\n placement === \"below\" && \"top-[calc(100%+8px)]\",\n placement === \"above\" && \"bottom-[calc(100%+8px)]\",\n contentClassName\n )}\n >\n <div className=\"mb-3 flex items-center justify-center gap-2\">\n <button\n type=\"button\"\n className=\"inline-flex size-8 items-center justify-center rounded-md hover:bg-secondary-background-soft-emphasis max-sm:size-10\"\n onClick={() => setViewMonth((m) => addMonths(m, -1))}\n aria-label=\"Mês anterior\"\n >\n <ChevronLeftMd size={18} strokeWidth={1.8} />\n </button>\n\n <div className=\"flex items-center gap-2\">\n <div className=\"relative\">\n <select\n value={month}\n onChange={(e) => handleMonthChange(Number(e.target.value))}\n className=\"min-w-[7rem] appearance-none rounded-md border border-gray-stroke-muted bg-surface-card py-1 pl-2 pr-7 text-sm font-medium capitalize text-gray-foreground outline-none hover:border-gray-stroke-emphasis focus:border-gray-stroke-emphasis focus:ring-2 focus:ring-state-focus max-sm:min-w-[8rem] max-sm:py-2 max-sm:text-base\"\n aria-label=\"Selecionar mês\"\n >\n {months.map((m) => (\n <option\n key={m.value}\n value={m.value}\n className=\"capitalize\"\n >\n {m.label}\n </option>\n ))}\n </select>\n <ChevronDown\n size={12}\n strokeWidth={1.8}\n className=\"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-gray-foreground\"\n aria-hidden\n />\n </div>\n\n {showYearSelector ? (\n <div className=\"relative\">\n <select\n value={year}\n onChange={(e) => handleYearChange(Number(e.target.value))}\n className=\"min-w-[5rem] appearance-none rounded-md border border-gray-stroke-muted bg-surface-card py-1 pl-2 pr-7 text-sm font-medium text-gray-foreground outline-none hover:border-gray-stroke-emphasis focus:border-gray-stroke-emphasis focus:ring-2 focus:ring-state-focus max-sm:min-w-[5.5rem] max-sm:py-2 max-sm:text-base\"\n aria-label=\"Selecionar ano\"\n >\n {years.map((y) => (\n <option key={y} value={y}>\n {y}\n </option>\n ))}\n </select>\n <ChevronDown\n size={12}\n strokeWidth={1.8}\n className=\"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-gray-foreground\"\n aria-hidden\n />\n </div>\n ) : (\n <div className=\"text-sm font-semibold text-gray-foreground\">\n {year}\n </div>\n )}\n </div>\n\n <button\n type=\"button\"\n className=\"inline-flex size-8 items-center justify-center rounded-md hover:bg-secondary-background-soft-emphasis max-sm:size-10\"\n onClick={() => setViewMonth((m) => addMonths(m, 1))}\n aria-label=\"Próximo mês\"\n >\n <ChevronRightMd size={18} strokeWidth={1.8} />\n </button>\n </div>\n\n <div className=\"grid grid-cols-7 gap-1 text-center text-xs font-medium text-gray-foreground-muted max-sm:text-sm\">\n <div>Dom</div>\n <div>Seg</div>\n <div>Ter</div>\n <div>Qua</div>\n <div>Qui</div>\n <div>Sex</div>\n <div>Sáb</div>\n </div>\n\n <div className=\"mt-2 grid grid-cols-7 gap-1\">\n {Array.from({ length: leadingEmpty }).map((_, i) => (\n <div key={`empty-${i}`} />\n ))}\n\n {Array.from({ length: daysInMonth }).map((_, i) => {\n const day = new Date(year, month, i + 1);\n const isSelected = selected ? isSameDay(day, selected) : false;\n const isToday = isSameDay(day, today);\n const isDisabled =\n disabled || isDisabledByBounds(day, min, max);\n\n return (\n <button\n key={day.toISOString()}\n type=\"button\"\n disabled={isDisabled}\n onClick={() => {\n setSelected(day);\n setOpen(false);\n }}\n className={cn(\n \"inline-flex h-9 w-full items-center justify-center rounded-md text-sm font-medium outline-none transition-colors hover:bg-secondary-background-soft-emphasis disabled:pointer-events-none disabled:opacity-50 max-sm:h-11 max-sm:text-base\",\n isToday && \"ring-1 ring-gray-stroke-emphasis\",\n isSelected &&\n \"bg-primary-background-fill text-primary-foreground-onfill hover:bg-primary-background-fill-emphasis\"\n )}\n aria-pressed={isSelected}\n >\n {i + 1}\n </button>\n );\n })}\n </div>\n\n <div className=\"mt-3 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n className=\"rounded-md px-2 py-1 text-xs font-medium text-gray-foreground hover:bg-secondary-background-soft-emphasis max-sm:px-3 max-sm:py-2 max-sm:text-sm\"\n onClick={() => {\n setSelected(today);\n setOpen(false);\n }}\n disabled={disabled || isDisabledByBounds(today, min, max)}\n >\n Hoje\n </button>\n\n <button\n type=\"button\"\n className=\"rounded-md px-2 py-1 text-xs font-medium text-gray-foreground hover:bg-secondary-background-soft-emphasis max-sm:px-3 max-sm:py-2 max-sm:text-sm\"\n onClick={() => setSelected(null)}\n disabled={disabled || !selected}\n >\n Limpar\n </button>\n </div>\n </div>\n )}\n </div>\n {children}\n </DatePickerContext.Provider>\n );\n}\n\nfunction DateRangePicker({\n value,\n defaultValue = null,\n onValueChange,\n placeholder = \"Selecionar período\",\n disabled,\n min,\n max,\n format = defaultFormat,\n className,\n inputClassName,\n contentClassName,\n yearRange = { start: 1900, end: 2100 },\n showYearSelector = true,\n invalid = false,\n children,\n ...props\n}: DateRangePickerProps) {\n const isControlled = value !== undefined;\n\n const [uncontrolledValue, setUncontrolledValue] =\n useState<DateRangeValue>(defaultValue);\n\n const rangeValue = isControlled ? value : uncontrolledValue;\n\n const [open, setOpen] = useState(false);\n const [viewMonth, setViewMonth] = useState<Date>(() =>\n clampToStartOfMonth(rangeValue?.start ?? rangeValue?.end ?? new Date())\n );\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n const contentId = useId();\n\n const [mobilePopoverStyle, setMobilePopoverStyle] =\n useState<CSSProperties | null>(null);\n const [placement, setPlacement] = useState<\"above\" | \"below\">(\"below\");\n\n const setRangeValue = useCallback(\n (next: DateRangeValue) => {\n if (!isControlled) setUncontrolledValue(next);\n onValueChange?.(next);\n },\n [isControlled, onValueChange]\n );\n\n useEffect(() => {\n if (!open) return;\n setViewMonth(\n clampToStartOfMonth(rangeValue?.start ?? rangeValue?.end ?? new Date())\n );\n }, [open, rangeValue]);\n\n // Clear mobile style whenever popover closes.\n useEffect(() => {\n if (!open) {\n setMobilePopoverStyle(null);\n setPlacement(\"below\");\n }\n }, [open]);\n\n // Disable body scroll while popover is open.\n useEffect(() => {\n if (!open) return;\n const prevOverflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = prevOverflow;\n };\n }, [open]);\n\n // Close on scroll while the fixed popover is visible.\n useEffect(() => {\n if (!mobilePopoverStyle) return;\n const close = () => setOpen(false);\n window.addEventListener(\"scroll\", close, { passive: true, capture: true });\n return () =>\n window.removeEventListener(\"scroll\", close, { capture: true } as any);\n }, [mobilePopoverStyle]);\n\n useEffect(() => {\n if (!open) return;\n const onPointerDown = (event: MouseEvent | PointerEvent) => {\n const el = rootRef.current;\n if (!el) return;\n if (event.target instanceof Node && !el.contains(event.target)) {\n setOpen(false);\n }\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") setOpen(false);\n };\n window.addEventListener(\"pointerdown\", onPointerDown, { capture: true });\n window.addEventListener(\"keydown\", onKeyDown);\n return () => {\n window.removeEventListener(\"pointerdown\", onPointerDown, {\n capture: true,\n } as any);\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [open]);\n\n // Compute fixed position from the trigger rect so the style is ready\n // before the first render — avoids blink and transform mismatch.\n const POPOVER_ESTIMATED_HEIGHT_RANGE = 290;\n const handleTriggerClick = () => {\n if (open) {\n setOpen(false);\n } else {\n const rect = rootRef.current?.getBoundingClientRect();\n if (rect) {\n const spaceBelow = window.innerHeight - rect.bottom;\n const openAbove = spaceBelow < POPOVER_ESTIMATED_HEIGHT_RANGE;\n setPlacement(openAbove ? \"above\" : \"below\");\n if (window.matchMedia(\"(max-width: 639px)\").matches) {\n setMobilePopoverStyle({\n position: \"fixed\",\n ...(openAbove\n ? { bottom: window.innerHeight - rect.top + 8 }\n : { top: rect.bottom + 8 }),\n left: rect.left + rect.width / 2,\n transform: \"translateX(-50%)\",\n });\n }\n }\n setOpen(true);\n }\n };\n\n const today = startOfDay(new Date());\n\n const year = viewMonth.getFullYear();\n const month = viewMonth.getMonth();\n const firstDayOfMonth = new Date(year, month, 1);\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n const leadingEmpty = firstDayOfMonth.getDay();\n\n const months = Array.from({ length: 12 }, (_, i) => ({\n value: i,\n label: new Intl.DateTimeFormat(\"pt-BR\", { month: \"long\" }).format(\n new Date(2000, i, 1)\n ),\n }));\n\n const years = Array.from(\n { length: yearRange.end - yearRange.start + 1 },\n (_, i) => yearRange.start + i\n );\n\n const handleMonthChange = (newMonth: number) => {\n setViewMonth(new Date(year, newMonth, 1));\n };\n\n const handleYearChange = (newYear: number) => {\n setViewMonth(new Date(newYear, month, 1));\n };\n\n const handleDayClick = (day: Date) => {\n if (disabled || isDisabledByBounds(day, min, max)) return;\n if (!rangeValue || !rangeValue.start || rangeValue.end) {\n // Start new range\n setRangeValue({ start: day, end: null });\n } else {\n // Complete range\n if (isBeforeDay(day, rangeValue.start)) {\n setRangeValue({ start: day, end: rangeValue.start });\n } else {\n setRangeValue({ start: rangeValue.start, end: day });\n }\n setOpen(false);\n }\n };\n\n const displayValue =\n rangeValue?.start && rangeValue?.end\n ? `${format(rangeValue.start)} - ${format(rangeValue.end)}`\n : rangeValue?.start\n ? format(rangeValue.start)\n : \"\";\n\n return (\n <DatePickerContext.Provider value={{ invalid }}>\n <div\n ref={rootRef}\n className={cn(\"relative inline-flex w-full\", className)}\n >\n <button\n type=\"button\"\n disabled={disabled}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n aria-controls={open ? contentId : undefined}\n data-invalid={invalid || undefined}\n data-slot=\"date-picker-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n {...(!displayValue && { \"data-placeholder\": \"\" })}\n className={cn(\n \"shadow-xs peer flex h-12 w-full items-center justify-between gap-2 rounded-md border-2 border-gray-stroke-muted bg-surface-card px-4 py-3 text-left text-md text-gray-foreground outline-none transition-[color,box-shadow] enabled:hover:border-gray-stroke-emphasis enabled:hover:ring-[3px] enabled:hover:ring-state-focus disabled:pointer-events-none disabled:bg-gray-background-soft-muted disabled:text-gray-foreground-muted data-[invalid]:border-feedback-error-stroke data-[invalid]:enabled:hover:border-feedback-error-stroke data-[invalid]:enabled:hover:ring-[3px] data-[invalid]:enabled:hover:ring-state-error max-sm:h-14 max-sm:text-base\",\n open && \"border-gray-stroke-emphasis ring-[3px] ring-state-focus\",\n displayValue &&\n !invalid &&\n \"border-gray-stroke-emphasis ring-[3px] ring-state-focus\",\n displayValue &&\n invalid &&\n \"border-feedback-error-stroke ring-[3px] ring-state-error\",\n \"group-has-[[data-slot=date-picker-label]]:data-[placeholder]:text-transparent\",\n inputClassName\n )}\n onClick={handleTriggerClick}\n {...props}\n >\n <span className=\"truncate\">{displayValue || placeholder}</span>\n <Calendar\n size={20}\n strokeWidth={1.6}\n className=\"shrink-0 !text-gray-foreground\"\n aria-hidden=\"true\"\n />\n </button>\n\n {open && (\n <div\n id={contentId}\n role=\"dialog\"\n aria-label=\"Calendário\"\n data-slot=\"date-picker-content\"\n style={mobilePopoverStyle ?? undefined}\n className={cn(\n \"absolute left-0 z-50 w-[min(20rem,100%)] overflow-hidden rounded-md border border-gray-stroke-muted bg-surface-elevated p-3 shadow-md max-sm:left-1/2 max-sm:w-[min(32rem,calc(100vw-1rem))] max-sm:-translate-x-1/2\",\n placement === \"below\" && \"top-[calc(100%+8px)]\",\n placement === \"above\" && \"bottom-[calc(100%+8px)]\",\n contentClassName\n )}\n >\n <div className=\"mb-3 flex items-center justify-center gap-2\">\n <button\n type=\"button\"\n className=\"inline-flex size-8 items-center justify-center rounded-md hover:bg-secondary-background-soft-emphasis max-sm:size-10\"\n onClick={() => setViewMonth((m) => addMonths(m, -1))}\n aria-label=\"Mês anterior\"\n >\n <ChevronLeftMd size={18} strokeWidth={1.8} />\n </button>\n\n <div className=\"flex items-center gap-2\">\n <div className=\"relative\">\n <select\n value={month}\n onChange={(e) => handleMonthChange(Number(e.target.value))}\n className=\"min-w-[7rem] appearance-none rounded-md border border-gray-stroke-muted bg-surface-card py-1 pl-2 pr-7 text-sm font-medium capitalize text-gray-foreground outline-none hover:border-gray-stroke-emphasis focus:border-gray-stroke-emphasis focus:ring-2 focus:ring-state-focus max-sm:min-w-[8rem] max-sm:py-2 max-sm:text-base\"\n aria-label=\"Selecionar mês\"\n >\n {months.map((m) => (\n <option\n key={m.value}\n value={m.value}\n className=\"capitalize\"\n >\n {m.label}\n </option>\n ))}\n </select>\n <ChevronDown\n size={16}\n strokeWidth={1.8}\n className=\"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-gray-foreground\"\n aria-hidden\n />\n </div>\n\n {showYearSelector ? (\n <div className=\"relative\">\n <select\n value={year}\n onChange={(e) => handleYearChange(Number(e.target.value))}\n className=\"min-w-[5rem] appearance-none rounded-md border border-gray-stroke-muted bg-surface-card py-1 pl-2 pr-7 text-sm font-medium text-gray-foreground outline-none hover:border-gray-stroke-emphasis focus:border-gray-stroke-emphasis focus:ring-2 focus:ring-state-focus max-sm:min-w-[5.5rem] max-sm:py-2 max-sm:text-base\"\n aria-label=\"Selecionar ano\"\n >\n {years.map((y) => (\n <option key={y} value={y}>\n {y}\n </option>\n ))}\n </select>\n <ChevronDown\n size={16}\n strokeWidth={1.8}\n className=\"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-gray-foreground\"\n aria-hidden\n />\n </div>\n ) : (\n <div className=\"text-sm font-semibold text-gray-foreground\">\n {year}\n </div>\n )}\n </div>\n\n <button\n type=\"button\"\n className=\"inline-flex size-8 items-center justify-center rounded-md hover:bg-secondary-background-soft-emphasis max-sm:size-10\"\n onClick={() => setViewMonth((m) => addMonths(m, 1))}\n aria-label=\"Próximo mês\"\n >\n <ChevronRightMd size={18} strokeWidth={1.8} />\n </button>\n </div>\n\n <div className=\"grid grid-cols-7 gap-1 text-center text-xs font-medium text-gray-foreground-muted max-sm:text-sm\">\n <div>Dom</div>\n <div>Seg</div>\n <div>Ter</div>\n <div>Qua</div>\n <div>Qui</div>\n <div>Sex</div>\n <div>Sáb</div>\n </div>\n\n <div className=\"mt-2 grid grid-cols-7 gap-1\">\n {Array.from({ length: leadingEmpty }).map((_, i) => (\n <div key={`empty-${i}`} />\n ))}\n\n {Array.from({ length: daysInMonth }).map((_, i) => {\n const day = new Date(year, month, i + 1);\n const isStartDate =\n rangeValue?.start && isSameDay(day, rangeValue.start);\n const isEndDate =\n rangeValue?.end && isSameDay(day, rangeValue.end);\n const isInRange =\n rangeValue?.start &&\n rangeValue?.end &&\n isAfterDay(day, rangeValue.start) &&\n isBeforeDay(day, rangeValue.end);\n const isToday = isSameDay(day, today);\n const isDisabled =\n disabled || isDisabledByBounds(day, min, max);\n\n return (\n <button\n key={day.toISOString()}\n type=\"button\"\n disabled={isDisabled}\n onClick={() => handleDayClick(day)}\n className={cn(\n \"inline-flex h-9 w-full items-center justify-center rounded-md text-sm font-medium outline-none transition-colors hover:bg-secondary-background-soft-emphasis disabled:pointer-events-none disabled:opacity-50\",\n isToday && \"ring-1 ring-gray-stroke-emphasis\",\n isInRange && \"bg-primary-background-soft\",\n (isStartDate || isEndDate) &&\n \"bg-primary-background-fill text-primary-foreground-onfill hover:bg-primary-background-fill-emphasis\"\n )}\n aria-pressed={isStartDate || isEndDate || undefined}\n >\n {i + 1}\n </button>\n );\n })}\n </div>\n\n <div className=\"mt-3 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n className=\"rounded-md px-2 py-1 text-xs font-medium text-gray-foreground hover:bg-secondary-background-soft-emphasis\"\n onClick={() => {\n setRangeValue({ start: today, end: today });\n setOpen(false);\n }}\n disabled={disabled || isDisabledByBounds(today, min, max)}\n >\n Hoje\n </button>\n\n <button\n type=\"button\"\n className=\"rounded-md px-2 py-1 text-xs font-medium text-gray-foreground hover:bg-secondary-background-soft-emphasis\"\n onClick={() => setRangeValue(null)}\n disabled={disabled || !rangeValue}\n >\n Limpar\n </button>\n </div>\n </div>\n )}\n </div>\n {children}\n </DatePickerContext.Provider>\n );\n}\n\nexport {\n DatePicker,\n DateRangePicker,\n DatePickerWrapper,\n DatePickerLabel,\n DatePickerText,\n};\nexport type {\n DatePickerProps,\n DatePickerValue,\n DateRangePickerProps,\n DateRangeValue,\n DatePickerLabelProps,\n};\n","\"use client\";\n\nimport {\n cloneElement,\n useCallback,\n useRef,\n useState,\n type ChangeEvent,\n type ComponentProps,\n type HTMLAttributes,\n type ReactElement,\n} from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport {\n ChevronDown,\n Hide,\n Lock,\n Mail,\n Show,\n TriangleWarning,\n} from \"@medway-ui/icons\";\nimport { cn } from \"@/lib/utils\";\n\nexport type InputType = \"text\" | \"email\" | \"numeric\" | \"password\";\n\nexport interface InputProps\n extends Omit<ComponentProps<\"input\">, \"type\" | \"size\">,\n VariantProps<typeof inputVariants> {\n type?: InputType;\n invalid?: boolean;\n iconLeft?: ReactElement;\n iconRight?: ReactElement;\n}\n\nexport interface InputPasswordProps\n extends Omit<ComponentProps<\"input\">, \"type\" | \"size\">,\n VariantProps<typeof inputVariants> {\n invalid?: boolean;\n}\n\nexport interface InputNumericProps\n extends Omit<ComponentProps<\"input\">, \"type\" | \"onChange\" | \"size\">,\n VariantProps<typeof inputVariants> {\n invalid?: boolean;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n iconLeft?: ReactElement;\n}\n\nexport interface InputLabelProps extends HTMLAttributes<HTMLLabelElement> {\n htmlFor?: string;\n}\n\nexport interface InputTextProps extends HTMLAttributes<HTMLSpanElement> {\n invalid?: boolean;\n}\n\nconst INPUT_ICON_SIZE_LG = 24;\nconst INPUT_ICON_SIZE_MD = 20;\nconst INPUT_ICON_STROKE_WIDTH = 1.6;\nconst CHEVRON_SIZE_LG = 10;\nconst CHEVRON_SIZE_MD = 8;\n\nfunction InputWrapper({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"group relative flex flex-col gap-2\", className)}\n data-slot=\"input-wrapper\"\n {...props}\n />\n );\n}\n\nfunction InputField({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"relative\", className)}\n data-slot=\"input-field\"\n {...props}\n />\n );\n}\n\nfunction InputLabel({ className, children, ...props }: InputLabelProps) {\n return (\n <label\n className={cn(\n \"pointer-events-none absolute start-3 top-0 z-10 origin-left -translate-y-1/2 bg-surface-card px-1 text-xs font-medium text-gray-foreground transition-all duration-200 ease-out\",\n \"group-has-[[data-slot=input][disabled]]:bg-transparent\",\n \"group-has-[[data-slot=input]:placeholder-shown:not(:focus)]:start-4 group-has-[[data-slot=input]:placeholder-shown:not(:focus)]:top-1/2 group-has-[[data-slot=input]:placeholder-shown:not(:focus)]:px-0 group-has-[[data-slot=input]:placeholder-shown:not(:focus)]:text-md group-has-[[data-slot=input]:placeholder-shown:not(:focus)]:font-normal\",\n \"group-has-[[data-slot=input][data-empty]:not(:focus)]:start-4 group-has-[[data-slot=input][data-empty]:not(:focus)]:top-1/2 group-has-[[data-slot=input][data-empty]:not(:focus)]:px-0 group-has-[[data-slot=input][data-empty]:not(:focus)]:text-md group-has-[[data-slot=input][data-empty]:not(:focus)]:font-normal\",\n \"group-has-[[data-slot=input][data-size=md]]:group-has-[[data-slot=input]:placeholder-shown:not(:focus)]:!text-sm\",\n \"group-has-[[data-slot=input][data-size=md]]:group-has-[[data-slot=input][data-empty]:not(:focus)]:!text-sm\",\n \"group-has-[[data-slot=input][aria-invalid=true]]:text-feedback-error-foreground\",\n \"group-has-[[data-slot=input-start-icon]]:group-has-[[data-slot=input]:placeholder-shown:not(:focus)]:start-12\",\n \"group-has-[[data-slot=input-start-icon]]:group-has-[[data-slot=input][data-empty]:not(:focus)]:start-12\",\n className\n )}\n data-slot=\"input-label\"\n {...props}\n >\n {children}\n </label>\n );\n}\n\nfunction InputText({ className, invalid = false, ...props }: InputTextProps) {\n return (\n <span\n className={cn(\n \"-mt-1 text-xs\",\n invalid ? \"text-feedback-error-foreground\" : \"text-gray-foreground\",\n className\n )}\n data-slot=\"input-text\"\n {...props}\n />\n );\n}\n\nfunction InputAdornment({\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"group/adornment relative flex w-full\", className)}\n data-slot=\"input-adornment\"\n {...props}\n />\n );\n}\n\nfunction InputStartIcon({\n className,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n className={cn(\n \"pointer-events-none absolute start-4 top-1/2 z-10 flex -translate-y-1/2 items-center pr-3 text-gray-foreground\",\n className\n )}\n data-slot=\"input-start-icon\"\n {...props}\n />\n );\n}\n\nfunction InputEndIcon({\n className,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n className={cn(\n \"absolute end-4 top-1/2 z-10 flex -translate-y-1/2 items-center text-gray-foreground\",\n className\n )}\n data-slot=\"input-end-icon\"\n {...props}\n />\n );\n}\n\nconst inputVariants = cva(\n [\n \"shadow-xs w-full min-w-0 rounded-md border-2 border-gray-stroke-muted bg-surface-card px-4 py-3 text-gray-foreground outline-none transition-[color,box-shadow] selection:bg-secondary-background-soft-emphasis selection:text-gray-foreground placeholder:text-gray-foreground-emphasis hover:border-gray-stroke-emphasis hover:ring-[3px] hover:ring-state-focus disabled:cursor-default disabled:bg-gray-background-soft-muted disabled:placeholder:text-gray-foreground-muted disabled:hover:border-gray-stroke-muted disabled:hover:ring-0\",\n \"focus-visible:border-gray-stroke-emphasis focus-visible:ring-[3px] focus-visible:ring-state-focus\",\n \"aria-[invalid]:border-feedback-error-stroke aria-[invalid]:hover:ring-state-error aria-[invalid]:focus-visible:ring-state-error\",\n \"aria-[invalid]:[&:not(:placeholder-shown)]:border-feedback-error-stroke aria-[invalid]:[&:not(:placeholder-shown)]:ring-[3px] aria-[invalid]:[&:not(:placeholder-shown)]:ring-state-error\",\n \"group-has-[[data-slot=input-label]]:py-3 group-has-[[data-slot=input-label]]:placeholder:text-transparent\",\n \"group-has-[[data-slot=input-start-icon]]/adornment:placeholder:ps-3\",\n \"[&:not(:placeholder-shown)]:border-gray-stroke-emphasis [&:not(:placeholder-shown)]:ring-[3px] [&:not(:placeholder-shown)]:ring-state-focus\",\n \"group-has-[[data-slot=input-end-icon]]/adornment:pr-10\",\n ],\n {\n variants: {\n size: {\n lg: [\n \"h-12 max-h-12 text-md\",\n \"group-has-[[data-slot=input-label]]:h-14\",\n \"group-has-[[data-slot=input-start-icon]]/adornment:pl-[48px]\",\n ],\n md: [\n \"h-10 max-h-10 text-sm\",\n \"group-has-[[data-slot=input-label]]:h-11\",\n \"group-has-[[data-slot=input-start-icon]]/adornment:pl-[44px]\",\n ],\n },\n },\n defaultVariants: {\n size: \"lg\",\n },\n }\n);\n\nconst TYPE_DEFAULT_ICON_LEFT: Partial<Record<InputType, ReactElement>> = {\n email: <Mail />,\n};\n\nconst TYPE_DEFAULT_ICON_RIGHT: Partial<Record<InputType, ReactElement>> = {};\n\nfunction applyInputIconSize(\n icon: ReactElement,\n size: VariantProps<typeof inputVariants>[\"size\"] = \"lg\"\n): ReactElement {\n const iconSize = size === \"md\" ? INPUT_ICON_SIZE_MD : INPUT_ICON_SIZE_LG;\n return cloneElement(icon, {\n size: iconSize,\n strokeWidth: INPUT_ICON_STROKE_WIDTH,\n } as Record<string, unknown>);\n}\n\nfunction InputPassword({\n className,\n invalid = false,\n size = \"lg\",\n disabled,\n ...props\n}: InputPasswordProps) {\n const [visible, setVisible] = useState(false);\n\n return (\n <InputAdornment>\n <InputStartIcon>{applyInputIconSize(<Lock />, size)}</InputStartIcon>\n <input\n type={visible ? \"text\" : \"password\"}\n data-slot=\"input\"\n data-size={size}\n disabled={disabled}\n className={cn(inputVariants({ size, className }))}\n aria-invalid={invalid || props[\"aria-invalid\"] ? true : undefined}\n {...props}\n />\n <InputEndIcon>\n <button\n type=\"button\"\n tabIndex={-1}\n disabled={disabled}\n onClick={() => setVisible((v) => !v)}\n className={cn(\n \"text-gray-foreground transition-colors hover:text-gray-foreground-emphasis disabled:cursor-default disabled:opacity-50\"\n )}\n data-invalid={invalid}\n aria-label={visible ? \"Hide password\" : \"Show password\"}\n >\n {applyInputIconSize(visible ? <Hide /> : <Show />, size)}\n </button>\n </InputEndIcon>\n </InputAdornment>\n );\n}\n\nfunction InputNumeric({\n className,\n invalid = false,\n size = \"lg\",\n iconLeft,\n min,\n value,\n defaultValue,\n onChange,\n disabled,\n ...props\n}: InputNumericProps) {\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState(() => defaultValue ?? \"\");\n\n const inputRef = useRef<HTMLInputElement>(null);\n const displayValue = isControlled\n ? value === \"\"\n ? \"\"\n : String(value)\n : internalValue;\n const numericValue = displayValue === \"\" ? NaN : Number(displayValue);\n const allowNegative = min !== undefined && Number(min) < 0;\n\n const sanitizeToNumbers = useCallback(\n (raw: string): string => {\n const allowNegative = min !== undefined && Number(min) < 0;\n let s = raw.replace(/[^\\d.-]/g, \"\");\n if (!allowNegative) s = s.replace(/-/g, \"\");\n else s = (s.startsWith(\"-\") ? \"-\" : \"\") + s.replace(/-/g, \"\");\n const firstDot = s.indexOf(\".\");\n if (firstDot === -1) return s;\n return (\n s.slice(0, firstDot + 1) + s.slice(firstDot + 1).replace(/\\./g, \"\")\n );\n },\n [min]\n );\n\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const next = sanitizeToNumbers(e.target.value);\n if (next === e.target.value) {\n if (isControlled) onChange?.(e);\n else {\n setInternalValue(next);\n onChange?.({ ...e, target: { ...e.target, value: next } });\n }\n } else {\n const syntheticEvent = { ...e, target: { ...e.target, value: next } };\n if (!isControlled) setInternalValue(next);\n onChange?.(syntheticEvent);\n }\n },\n [isControlled, onChange, sanitizeToNumbers]\n );\n\n const minValue = min !== undefined ? Number(min) : undefined;\n\n const getNextValue = useCallback(\n (delta: number): number => {\n const base = Number.isNaN(numericValue) ? (minValue ?? 0) : numericValue;\n const next = base + delta;\n if (minValue !== undefined && next < minValue) return minValue;\n return next;\n },\n [numericValue, minValue]\n );\n\n const handleStep = useCallback(\n (delta: number) => {\n const next = getNextValue(delta);\n const nextStr = String(next);\n const input = inputRef.current;\n const targetLike = input\n ? {\n value: nextStr,\n name: input.name,\n id: input.id,\n form: input.form,\n type: input.type,\n }\n : { value: nextStr };\n const syntheticEvent = {\n type: \"change\" as const,\n target: targetLike as HTMLInputElement,\n currentTarget: input,\n bubbles: true,\n cancelable: false,\n nativeEvent: {} as Event,\n } as ChangeEvent<HTMLInputElement>;\n if (!isControlled) setInternalValue(nextStr);\n onChange?.(syntheticEvent);\n },\n [getNextValue, isControlled, onChange]\n );\n\n return (\n <InputAdornment>\n {iconLeft != null && (\n <InputStartIcon>{applyInputIconSize(iconLeft, size)}</InputStartIcon>\n )}\n <input\n ref={inputRef}\n type=\"text\"\n inputMode=\"decimal\"\n pattern={allowNegative ? \"-?[0-9]*\" : \"[0-9]*\"}\n data-slot=\"input\"\n data-size={size}\n data-empty={displayValue === \"\" ? \"\" : undefined}\n min={min}\n value={displayValue}\n onChange={handleChange}\n disabled={disabled}\n className={cn(\n inputVariants({ size }),\n \"pr-12\",\n \"[appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none\",\n className\n )}\n aria-invalid={invalid || props[\"aria-invalid\"] ? true : undefined}\n {...props}\n />\n <div className=\"absolute end-0 top-0 flex h-full flex-col items-center justify-center gap-0.5 px-4\">\n <button\n type=\"button\"\n tabIndex={-1}\n disabled={disabled}\n onClick={() => handleStep(1)}\n className=\"flex items-center justify-center rounded-full !p-0.5 px-2 text-gray-foreground transition-colors disabled:cursor-default disabled:opacity-50 disabled:hover:bg-transparent\"\n aria-label=\"Increase value\"\n >\n <ChevronDown\n className=\"rotate-180\"\n size={size === \"md\" ? CHEVRON_SIZE_MD : CHEVRON_SIZE_LG}\n strokeWidth={3}\n />\n </button>\n <button\n type=\"button\"\n tabIndex={-1}\n disabled={disabled}\n onClick={() => handleStep(-1)}\n className=\"flex items-center justify-center rounded-full !p-0.5 px-2 text-gray-foreground transition-colors disabled:cursor-default disabled:opacity-50 disabled:hover:bg-transparent\"\n aria-label=\"Decrease value\"\n >\n <ChevronDown\n size={size === \"md\" ? CHEVRON_SIZE_MD : CHEVRON_SIZE_LG}\n strokeWidth={3}\n />\n </button>\n </div>\n </InputAdornment>\n );\n}\n\nfunction Input({\n className,\n type = \"text\",\n size = \"lg\",\n invalid = false,\n iconLeft,\n iconRight,\n ...props\n}: InputProps) {\n if (type === \"numeric\") {\n return (\n <InputNumeric\n className={className}\n size={size}\n invalid={invalid}\n iconLeft={iconLeft}\n {...props}\n />\n );\n }\n\n if (type === \"password\") {\n return (\n <InputPassword\n className={className}\n size={size}\n invalid={invalid}\n {...props}\n />\n );\n }\n\n const resolvedIconLeft = iconLeft ?? TYPE_DEFAULT_ICON_LEFT[type];\n const showInvalidRightIcon = (type === \"text\" || type === \"email\") && invalid;\n const resolvedIconRight = showInvalidRightIcon ? (\n <TriangleWarning />\n ) : (\n (iconRight ?? TYPE_DEFAULT_ICON_RIGHT[type])\n );\n const hasIcons = resolvedIconLeft != null || resolvedIconRight != null;\n\n if (hasIcons) {\n return (\n <div\n className=\"group/adornment relative flex w-full\"\n data-slot=\"input-adornment\"\n >\n {resolvedIconLeft != null && (\n <InputStartIcon>\n {applyInputIconSize(resolvedIconLeft, size)}\n </InputStartIcon>\n )}\n <input\n type=\"text\"\n data-slot=\"input\"\n data-size={size}\n className={cn(inputVariants({ size, className }))}\n aria-invalid={invalid || props[\"aria-invalid\"] ? true : undefined}\n {...props}\n />\n {resolvedIconRight != null && (\n <InputEndIcon\n className={\n showInvalidRightIcon\n ? \"text-feedback-error-foreground\"\n : undefined\n }\n >\n {applyInputIconSize(resolvedIconRight, size)}\n </InputEndIcon>\n )}\n </div>\n );\n }\n\n return (\n <input\n type=\"text\"\n data-slot=\"input\"\n data-size={size}\n className={cn(inputVariants({ size, className }))}\n aria-invalid={invalid || props[\"aria-invalid\"] ? true : undefined}\n {...props}\n />\n );\n}\n\nexport {\n Input,\n InputAdornment,\n applyInputIconSize,\n InputEndIcon,\n InputField,\n InputLabel,\n InputNumeric,\n InputPassword,\n InputStartIcon,\n InputText,\n InputWrapper,\n inputVariants,\n};\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { Label as LabelPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface LabelProps\n extends ComponentProps<typeof LabelPrimitive.Root>,\n VariantProps<typeof labelVariants> {\n block?: boolean;\n}\n\nconst labelVariants = cva(\n \"inline-flex select-none items-center gap-3 text-sm font-medium leading-none disabled:cursor-default disabled:text-gray-foreground-muted peer-disabled:cursor-default peer-disabled:text-gray-foreground-muted group-data-[disabled]:pointer-events-none group-data-[disabled]:text-gray-foreground-muted whitespace-nowrap transition-all shrink-0 [&_svg]:shrink-0 hover:cursor-pointer focus:outline-0\",\n {\n variants: {\n variant: {\n regular: \"text-gray-foreground hover:text-gray-foreground-emphasis\",\n },\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-md\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n size: \"md\",\n },\n }\n);\n\nfunction Label({ className, variant, size, block, ...props }: LabelProps) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n className,\n labelVariants({ className, size, variant }),\n block &&\n \"flex flex-col items-start justify-center gap-4 whitespace-normal rounded-lg border border-gray-stroke-muted p-4 font-normal\"\n )}\n {...props}\n />\n );\n}\n\nexport { Label, labelVariants };\nexport type { LabelProps };\n","\"use client\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface LogoProps {\n width?: string | number;\n height?: string | number;\n className?: string;\n svgClassName?: string;\n}\n\nfunction Logo({\n width = 171,\n height = 36,\n className,\n svgClassName,\n}: LogoProps) {\n return (\n <svg\n className={cn(\"dark:brightness-0 dark:invert\", className)}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 171 36\"\n width={width}\n height={height}\n >\n <path\n fill=\"#01CFB5\"\n d=\"M170.246 8.366 158.874 34.77c-.317.744-1.131 1.23-2.038 1.23h-3.47c-1.552 0-2.606-1.377-2.011-2.628l2.875-6.066-8.476-18.918c-.563-1.246.492-2.59 2.027-2.59h3.541c.929 0 1.755.513 2.061 1.278l4.688 11.864h.093l4.464-11.836c.295-.782 1.126-1.306 2.066-1.306h3.514c1.524 0 2.573 1.322 2.038 2.568Zm-24.869 8.623v10.42a.823.823 0 0 1-.82.826h-3.956a.818.818 0 0 1-.82-.825v-.667a11.207 11.207 0 0 1-5.699 1.541c-6.235 0-11.295-5.054-11.295-11.295 0-6.24 5.06-11.295 11.295-11.295 2.076 0 4.027.557 5.694 1.541v-.006a11.295 11.295 0 0 1 5.601 9.76Zm-5.984.005c0-2.94-2.377-5.327-5.306-5.327-2.929 0-5.306 2.388-5.306 5.327 0 2.94 2.377 5.323 5.306 5.323 2.929 0 5.306-2.383 5.306-5.323Zm5.793.4c.005-.099.005-.192.005-.29 0-.098-.005-.191-.005-.284v.573Zm-26.17-11.722h-4.355a.977.977 0 0 0-.978.978v11.902a3.416 3.416 0 0 1-6.831 0V6.65a.977.977 0 0 0-.978-.978h-4.355a.977.977 0 0 0-.978.978v11.902a3.417 3.417 0 0 1-5.83 2.415c-.618-.617-1-1.47-1-2.415V6.65a.977.977 0 0 0-.979-.978h-4.355a.977.977 0 0 0-.978.978v13.088h-.006c0 .781.115 1.535.334 2.256 1.098 3.623 4.765 6.29 9.13 6.29 2.739 0 5.209-1.054 6.935-2.732 1.689 1.83 4.197 2.994 7 2.994 4.53 0 8.295-3.043 9.06-7.043.093-.487.143-.99.143-1.497V6.65a.978.978 0 0 0-.979-.978Z\"\n />\n <path\n fill=\"#00205B\"\n className={svgClassName}\n d=\"M65.557 7.694c-.639.399-1.235.863-1.781 1.388.54-.536 1.137-1 1.781-1.388ZM82.727.831v26.617a.82.82 0 0 1-.82.825h-3.956a.77.77 0 0 1-.415-.12.81.81 0 0 1-.405-.71v-.755a11.018 11.018 0 0 1-5.689 1.574c-5.47 0-10.01-3.967-10.923-9.191-.016-.098-.038-.197-.054-.3-.011-.088-.028-.18-.039-.268 0-.028-.005-.055-.01-.088-.006-.06-.012-.12-.023-.18-.005-.076-.01-.159-.021-.24v-.028c-.006-.093-.017-.18-.017-.273a9.516 9.516 0 0 1 0-1.11l.017-.273v-.027l.032-.311c0-.033.006-.066.006-.099a.665.665 0 0 0 .01-.104c.012-.087.023-.18.039-.267.016-.11.033-.213.055-.323a11.09 11.09 0 0 1 3.17-6.005 11.548 11.548 0 0 1 1.88-1.48 9.127 9.127 0 0 1 1.31-.646c1.039-.42 2.186-.65 3.405-.683-.071 0-.142.011-.213.011a9.587 9.587 0 0 0-3.203.672c-.453.18-.896.4-1.311.65.393-.245.809-.459 1.23-.655-.006 0-.011.005-.017.005l.033-.016c-.011.005-.022.005-.038.01a8.79 8.79 0 0 1 .519-.229c-.039.017-.071.033-.104.05.038-.017.07-.033.11-.05.087-.033.174-.065.267-.098.087-.038.175-.066.268-.099.033-.016.065-.021.098-.032.055-.017.104-.039.158-.055.11-.033.214-.066.323-.098a9.584 9.584 0 0 1 .607-.153c.092-.022.196-.044.295-.066.098-.016.196-.033.295-.055l.295-.049h.005a2.82 2.82 0 0 0 .197-.027c.07-.005.131-.022.202-.022.087-.01.18-.016.268-.022.082-.01.164-.01.246-.016.07 0 .142-.011.213-.011.136-.006.273-.006.415-.006.093 0 .191.006.284.006h.12c.083 0 .159.005.236.01.098.006.196.012.295.023.087.005.174.01.256.022.05.005.099.01.142.016.088.01.175.022.257.038l.312.05c1.06.185 2.07.519 3.005.983v.115c-.038-.022-.076-.038-.12-.06.038.022.077.038.12.065v-.12c.268.131.525.273.77.426V.825a.827.827 0 0 1 .82-.825h3.957a.838.838 0 0 1 .836.83Zm-5.694 16.213a5.32 5.32 0 0 0-5.312-5.323c-2.929 0-5.306 2.388-5.306 5.323 0 2.94 2.377 5.322 5.306 5.322a5.316 5.316 0 0 0 5.312-5.322Zm-19.59.431c0 .41-.017.765-.066 1.132a.597.597 0 0 1-.596.524H42.284a.598.598 0 0 0-.574.77c.623 1.94 2.46 3.192 4.749 3.192 1.607 0 2.678-.574 3.656-1.749a.614.614 0 0 1 .47-.213h5.191c.448 0 .738.47.53.869-2.093 4.033-5.705 6.372-9.847 6.372-6.06 0-11.137-5.055-11.137-11.088 0-6.033 4.847-11.235 11.022-11.235h.006c6.284 0 11.093 4.94 11.093 11.426Zm-6.563-3.393c-.738-1.683-2.437-2.754-4.541-2.754-1.973 0-3.721 1.027-4.47 2.754a.594.594 0 0 0 .552.825h7.907a.593.593 0 0 0 .552-.825ZM23.13 5.803c-2.738 0-5.207 1.055-6.934 2.733-1.689-1.831-4.197-2.995-7-2.995-4.53 0-8.295 3.044-9.06 7.044-.088.486-.137.989-.137 1.497v13.35c0 .54.437.978.978.978h4.355a.977.977 0 0 0 .978-.978V15.618c0-1.65 1.328-3.263 2.962-3.476a3.398 3.398 0 0 1 2.87.973c.617.617 1 1.47 1 2.415v11.902c0 .54.436.978.977.978h4.355a.977.977 0 0 0 .979-.978V15.618c0-1.65 1.327-3.263 2.961-3.476a3.398 3.398 0 0 1 2.87.973c.617.617 1 1.47 1 2.415v11.902c0 .54.436.978.977.978h4.355a.977.977 0 0 0 .979-.978V14.344a7.75 7.75 0 0 0-.334-2.257c-1.098-3.623-4.77-6.284-9.13-6.284Z\"\n />\n </svg>\n );\n}\n\nfunction LogoShort({\n width = 60,\n height = 67,\n className,\n svgClassName,\n}: LogoProps) {\n return (\n <svg\n className={cn(\"dark:brightness-0 dark:invert\", className)}\n width={width}\n height={height}\n viewBox=\"0 0 60 67\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill=\"#00205B\"\n className={svgClassName}\n d=\"M42.33 10.8959C37.32 10.8959 32.8 12.8259 29.64 15.8959C26.55 12.5459 21.96 10.4159 16.83 10.4159C8.54 10.4159 1.65 15.9859 0.25 23.3059C0.09 24.1959 0 25.1159 0 26.0459V50.4759C0 51.4659 0.8 52.2659 1.79 52.2659H9.76C10.75 52.2659 11.55 51.4659 11.55 50.4759V28.8559C11.55 25.8359 13.98 22.8859 16.97 22.4959C19.03 22.2259 20.91 22.9659 22.22 24.2759C23.35 25.4059 24.05 26.9659 24.05 28.6959V50.4759C24.05 51.4659 24.85 52.2659 25.84 52.2659H33.81C34.8 52.2659 35.6 51.4659 35.6 50.4759V28.8559C35.6 25.8359 38.03 22.8859 41.02 22.4959C43.08 22.2259 44.96 22.9659 46.27 24.2759C47.4 25.4059 48.1 26.9659 48.1 28.6959V50.4759C48.1 51.4659 48.9 52.2659 49.89 52.2659H57.86C58.85 52.2659 59.65 51.4659 59.65 50.4759V26.5259C59.65 25.0959 59.44 23.7159 59.04 22.3959C57.03 15.7659 50.31 10.8959 42.33 10.8959Z\"\n />\n </svg>\n );\n}\n\nexport { Logo, LogoShort };\n","export const content = [\n \"./src/**/*.{js,ts,jsx,tsx,md,mdx}\",\n \"./node_modules/@medway-ui/core/**/*.{js,ts,jsx,tsx}\",\n];\n\nexport const colors = {\n background: \"var(--color-background)\",\n foreground: \"var(--color-foreground)\",\n ring: \"var(--color-ring)\",\n content: {\n title: \"var(--color-content-title)\",\n paragraph: \"var(--color-content-paragraph)\",\n link: \"var(--color-content-link)\",\n },\n state: {\n hover: \"var(--color-state-hover)\",\n focus: \"var(--color-state-focus)\",\n active: \"var(--color-state-active)\",\n error: \"var(--color-state-error)\",\n },\n feedback: {\n success: {\n foreground: \"var(--color-feedback-success-foreground)\",\n \"foreground-emphasis\":\n \"var(--color-feedback-success-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-feedback-success-foreground-onfill)\",\n stroke: \"var(--color-feedback-success-stroke)\",\n \"stroke-emphasis\": \"var(--color-feedback-success-stroke-emphasis)\",\n \"background-fill\": \"var(--color-feedback-success-background-fill)\",\n \"background-fill-emphasis\":\n \"var(--color-feedback-success-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-feedback-success-background-soft)\",\n \"background-soft-emphasis\":\n \"var(--color-feedback-success-background-soft-emphasis)\",\n \"background-soft-muted\":\n \"var(--color-feedback-success-background-soft-muted)\",\n },\n error: {\n foreground: \"var(--color-feedback-error-foreground)\",\n \"foreground-emphasis\": \"var(--color-feedback-error-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-feedback-error-foreground-onfill)\",\n stroke: \"var(--color-feedback-error-stroke)\",\n \"stroke-emphasis\": \"var(--color-feedback-error-stroke-emphasis)\",\n \"background-fill\": \"var(--color-feedback-error-background-fill)\",\n \"background-fill-emphasis\":\n \"var(--color-feedback-error-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-feedback-error-background-soft)\",\n \"background-soft-emphasis\":\n \"var(--color-feedback-error-background-soft-emphasis)\",\n \"background-soft-muted\":\n \"var(--color-feedback-error-background-soft-muted)\",\n },\n warning: {\n foreground: \"var(--color-feedback-warning-foreground)\",\n \"foreground-emphasis\":\n \"var(--color-feedback-warning-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-feedback-warning-foreground-onfill)\",\n stroke: \"var(--color-feedback-warning-stroke)\",\n \"stroke-emphasis\": \"var(--color-feedback-warning-stroke-emphasis)\",\n \"background-fill\": \"var(--color-feedback-warning-background-fill)\",\n \"background-fill-emphasis\":\n \"var(--color-feedback-warning-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-feedback-warning-background-soft)\",\n \"background-soft-emphasis\":\n \"var(--color-feedback-warning-background-soft-emphasis)\",\n \"background-soft-muted\":\n \"var(--color-feedback-warning-background-soft-muted)\",\n },\n },\n surface: {\n elevated: \"var(--color-surface-elevated)\",\n card: \"var(--color-surface-card)\",\n navigation: \"var(--color-surface-navigation)\",\n section: \"var(--color-surface-section)\",\n page: \"var(--color-surface-page)\",\n disable: \"var(--color-surface-disable)\",\n \"settings-on\": \"var(--color-surface-settings-on)\",\n \"settings-off\": \"var(--color-surface-settings-off)\",\n },\n dropShadow: {\n \"layer-a\": \"var(--color-drop-shadow-layer-a)\",\n \"layer-b\": \"var(--color-drop-shadow-layer-b)\",\n },\n white: {\n DEFAULT: \"var(--color-white)\",\n \"80\": \"var(--color-white-80)\",\n \"48\": \"var(--color-white-48)\",\n \"24\": \"var(--color-white-24)\",\n \"16\": \"var(--color-white-16)\",\n \"12\": \"var(--color-white-12)\",\n \"8\": \"var(--color-white-8)\",\n \"6\": \"var(--color-white-6)\",\n \"4\": \"var(--color-white-4)\",\n \"0\": \"var(--color-white-0)\",\n },\n black: {\n DEFAULT: \"var(--color-black)\",\n \"80\": \"var(--color-black-80)\",\n \"48\": \"var(--color-black-48)\",\n \"24\": \"var(--color-black-24)\",\n \"16\": \"var(--color-black-16)\",\n \"12\": \"var(--color-black-12)\",\n \"8\": \"var(--color-black-8)\",\n \"6\": \"var(--color-black-6)\",\n \"4\": \"var(--color-black-4)\",\n \"0\": \"var(--color-black-0)\",\n },\n gray: {\n 950: \"var(--color-gray-950)\",\n 900: \"var(--color-gray-900)\",\n 850: \"var(--color-gray-850)\",\n 800: \"var(--color-gray-800)\",\n 700: \"var(--color-gray-700)\",\n 600: \"var(--color-gray-600)\",\n 500: \"var(--color-gray-500)\",\n 450: \"var(--color-gray-450)\",\n 400: \"var(--color-gray-400)\",\n 300: \"var(--color-gray-300)\",\n 200: \"var(--color-gray-200)\",\n 150: \"var(--color-gray-150)\",\n 100: \"var(--color-gray-100)\",\n 70: \"var(--color-gray-70)\",\n 50: \"var(--color-gray-50)\",\n 30: \"var(--color-gray-30)\",\n 10: \"var(--color-gray-10)\",\n \"0\": \"var(--color-gray-0)\",\n foreground: \"var(--color-gray-foreground)\",\n \"foreground-emphasis\": \"var(--color-gray-foreground-emphasis)\",\n \"foreground-muted\": \"var(--color-gray-foreground-muted)\",\n \"foreground-onfill\": \"var(--color-gray-foreground-onfill)\",\n stroke: \"var(--color-gray-stroke)\",\n \"stroke-emphasis\": \"var(--color-gray-stroke-emphasis)\",\n \"stroke-muted\": \"var(--color-gray-stroke-muted)\",\n \"background-fill\": \"var(--color-gray-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-gray-background-fill-emphasis)\",\n \"background-fill-muted\": \"var(--color-gray-background-fill-muted)\",\n \"background-soft\": \"var(--color-gray-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-gray-background-soft-emphasis)\",\n \"background-soft-muted\": \"var(--color-gray-background-soft-muted)\",\n },\n green: {\n DEFAULT: \"var(--color-green)\",\n \"darken-1\": \"var(--color-green-darken-1)\",\n \"darken-2\": \"var(--color-green-darken-2)\",\n \"darken-3\": \"var(--color-green-darken-3)\",\n \"darken-4\": \"var(--color-green-darken-4)\",\n \"darken-5\": \"var(--color-green-darken-5)\",\n \"darken-6\": \"var(--color-green-darken-6)\",\n \"lighten-1\": \"var(--color-green-lighten-1)\",\n \"lighten-2\": \"var(--color-green-lighten-2)\",\n \"lighten-3\": \"var(--color-green-lighten-3)\",\n \"lighten-4\": \"var(--color-green-lighten-4)\",\n \"lighten-5\": \"var(--color-green-lighten-5)\",\n \"lighten-6\": \"var(--color-green-lighten-6)\",\n \"80\": \"var(--color-green-80)\",\n \"64\": \"var(--color-green-64)\",\n \"48\": \"var(--color-green-48)\",\n \"24\": \"var(--color-green-24)\",\n \"16\": \"var(--color-green-16)\",\n \"12\": \"var(--color-green-12)\",\n \"8\": \"var(--color-green-8)\",\n \"6\": \"var(--color-green-6)\",\n \"4\": \"var(--color-green-4)\",\n \"0\": \"var(--color-green-0)\",\n foreground: \"var(--color-green-foreground)\",\n \"foreground-emphasis\": \"var(--color-green-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-green-foreground-onfill)\",\n stroke: \"var(--color-green-stroke)\",\n \"stroke-emphasis\": \"var(--color-green-stroke-emphasis)\",\n \"background-fill\": \"var(--color-green-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-green-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-green-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-green-background-soft-emphasis)\",\n \"background-soft-muted\": \"var(--color-green-background-soft-muted)\",\n },\n red: {\n DEFAULT: \"var(--color-red)\",\n \"darken-1\": \"var(--color-red-darken-1)\",\n \"darken-2\": \"var(--color-red-darken-2)\",\n \"darken-3\": \"var(--color-red-darken-3)\",\n \"darken-4\": \"var(--color-red-darken-4)\",\n \"darken-5\": \"var(--color-red-darken-5)\",\n \"darken-6\": \"var(--color-red-darken-6)\",\n \"darken-7\": \"var(--color-red-darken-7)\",\n \"lighten-1\": \"var(--color-red-lighten-1)\",\n \"lighten-2\": \"var(--color-red-lighten-2)\",\n \"lighten-3\": \"var(--color-red-lighten-3)\",\n \"lighten-4\": \"var(--color-red-lighten-4)\",\n \"lighten-5\": \"var(--color-red-lighten-5)\",\n \"lighten-6\": \"var(--color-red-lighten-6)\",\n \"80\": \"var(--color-red-80)\",\n \"64\": \"var(--color-red-64)\",\n \"48\": \"var(--color-red-48)\",\n \"24\": \"var(--color-red-24)\",\n \"16\": \"var(--color-red-16)\",\n \"12\": \"var(--color-red-12)\",\n \"8\": \"var(--color-red-8)\",\n \"6\": \"var(--color-red-6)\",\n \"4\": \"var(--color-red-4)\",\n \"0\": \"var(--color-red-0)\",\n foreground: \"var(--color-red-foreground)\",\n \"foreground-emphasis\": \"var(--color-red-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-red-foreground-onfill)\",\n stroke: \"var(--color-red-stroke)\",\n \"stroke-emphasis\": \"var(--color-red-stroke-emphasis)\",\n \"background-fill\": \"var(--color-red-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-red-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-red-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-red-background-soft-emphasis)\",\n \"background-soft-muted\": \"var(--color-red-background-soft-muted)\",\n },\n yellow: {\n DEFAULT: \"var(--color-yellow)\",\n \"darken-1\": \"var(--color-yellow-darken-1)\",\n \"darken-2\": \"var(--color-yellow-darken-2)\",\n \"darken-3\": \"var(--color-yellow-darken-3)\",\n \"darken-4\": \"var(--color-yellow-darken-4)\",\n \"darken-5\": \"var(--color-yellow-darken-5)\",\n \"darken-6\": \"var(--color-yellow-darken-6)\",\n \"lighten-1\": \"var(--color-yellow-lighten-1)\",\n \"lighten-2\": \"var(--color-yellow-lighten-2)\",\n \"lighten-3\": \"var(--color-yellow-lighten-3)\",\n \"lighten-4\": \"var(--color-yellow-lighten-4)\",\n \"lighten-5\": \"var(--color-yellow-lighten-5)\",\n \"lighten-6\": \"var(--color-yellow-lighten-6)\",\n \"80\": \"var(--color-yellow-80)\",\n \"64\": \"var(--color-yellow-64)\",\n \"48\": \"var(--color-yellow-48)\",\n \"24\": \"var(--color-yellow-24)\",\n \"12\": \"var(--color-yellow-12)\",\n \"16\": \"var(--color-yellow-16)\",\n \"8\": \"var(--color-yellow-8)\",\n \"6\": \"var(--color-yellow-6)\",\n \"4\": \"var(--color-yellow-4)\",\n \"0\": \"var(--color-yellow-0)\",\n foreground: \"var(--color-yellow-foreground)\",\n \"foreground-emphasis\": \"var(--color-yellow-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-yellow-foreground-onfill)\",\n stroke: \"var(--color-yellow-stroke)\",\n \"stroke-emphasis\": \"var(--color-yellow-stroke-emphasis)\",\n \"background-fill\": \"var(--color-yellow-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-yellow-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-yellow-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-yellow-background-soft-emphasis)\",\n \"background-soft-muted\": \"var(--color-yellow-background-soft-muted)\",\n },\n cm: {\n DEFAULT: \"var(--color-cm)\",\n \"darken-1\": \"var(--color-cm-darken-1)\",\n \"darken-2\": \"var(--color-cm-darken-2)\",\n \"darken-3\": \"var(--color-cm-darken-3)\",\n \"darken-4\": \"var(--color-cm-darken-4)\",\n \"darken-5\": \"var(--color-cm-darken-5)\",\n \"darken-6\": \"var(--color-cm-darken-6)\",\n \"lighten-1\": \"var(--color-cm-lighten-1)\",\n \"lighten-2\": \"var(--color-cm-lighten-2)\",\n \"lighten-3\": \"var(--color-cm-lighten-3)\",\n \"lighten-4\": \"var(--color-cm-lighten-4)\",\n \"lighten-5\": \"var(--color-cm-lighten-5)\",\n \"lighten-6\": \"var(--color-cm-lighten-6)\",\n \"80\": \"var(--color-cm-80)\",\n \"64\": \"var(--color-cm-64)\",\n \"48\": \"var(--color-cm-48)\",\n \"24\": \"var(--color-cm-24)\",\n \"16\": \"var(--color-cm-16)\",\n \"12\": \"var(--color-cm-12)\",\n \"8\": \"var(--color-cm-8)\",\n \"6\": \"var(--color-cm-6)\",\n \"4\": \"var(--color-cm-4)\",\n \"0\": \"var(--color-cm-0)\",\n foreground: \"var(--color-cm-foreground)\",\n \"foreground-emphasis\": \"var(--color-cm-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-cm-foreground-onfill)\",\n \"background-fill\": \"var(--color-cm-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-cm-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-cm-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-cm-background-soft-emphasis)\",\n },\n go: {\n DEFAULT: \"var(--color-go)\",\n \"darken-1\": \"var(--color-go-darken-1)\",\n \"darken-2\": \"var(--color-go-darken-2)\",\n \"darken-3\": \"var(--color-go-darken-3)\",\n \"darken-4\": \"var(--color-go-darken-4)\",\n \"darken-5\": \"var(--color-go-darken-5)\",\n \"darken-6\": \"var(--color-go-darken-6)\",\n \"lighten-1\": \"var(--color-go-lighten-1)\",\n \"lighten-2\": \"var(--color-go-lighten-2)\",\n \"lighten-3\": \"var(--color-go-lighten-3)\",\n \"lighten-4\": \"var(--color-go-lighten-4)\",\n \"lighten-5\": \"var(--color-go-lighten-5)\",\n \"lighten-6\": \"var(--color-go-lighten-6)\",\n \"80\": \"var(--color-go-80)\",\n \"64\": \"var(--color-go-64)\",\n \"48\": \"var(--color-go-48)\",\n \"24\": \"var(--color-go-24)\",\n \"16\": \"var(--color-go-16)\",\n \"12\": \"var(--color-go-12)\",\n \"8\": \"var(--color-go-8)\",\n \"6\": \"var(--color-go-6)\",\n \"4\": \"var(--color-go-4)\",\n \"0\": \"var(--color-go-0)\",\n foreground: \"var(--color-go-foreground)\",\n \"foreground-emphasis\": \"var(--color-go-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-go-foreground-onfill)\",\n \"background-fill\": \"var(--color-go-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-go-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-go-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-go-background-soft-emphasis)\",\n },\n cir: {\n DEFAULT: \"var(--color-cir)\",\n \"darken-1\": \"var(--color-cir-darken-1)\",\n \"darken-2\": \"var(--color-cir-darken-2)\",\n \"darken-3\": \"var(--color-cir-darken-3)\",\n \"darken-4\": \"var(--color-cir-darken-4)\",\n \"darken-5\": \"var(--color-cir-darken-5)\",\n \"darken-6\": \"var(--color-cir-darken-6)\",\n \"lighten-1\": \"var(--color-cir-lighten-1)\",\n \"lighten-2\": \"var(--color-cir-lighten-2)\",\n \"lighten-3\": \"var(--color-cir-lighten-3)\",\n \"lighten-4\": \"var(--color-cir-lighten-4)\",\n \"lighten-5\": \"var(--color-cir-lighten-5)\",\n \"lighten-6\": \"var(--color-cir-lighten-6)\",\n \"80\": \"var(--color-cir-80)\",\n \"64\": \"var(--color-cir-64)\",\n \"48\": \"var(--color-cir-48)\",\n \"24\": \"var(--color-cir-24)\",\n \"16\": \"var(--color-cir-16)\",\n \"12\": \"var(--color-cir-12)\",\n \"8\": \"var(--color-cir-8)\",\n \"6\": \"var(--color-cir-6)\",\n \"4\": \"var(--color-cir-4)\",\n \"0\": \"var(--color-cir-0)\",\n foreground: \"var(--color-cir-foreground)\",\n \"foreground-emphasis\": \"var(--color-cir-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-cir-foreground-onfill)\",\n \"background-fill\": \"var(--color-cir-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-cir-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-cir-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-cir-background-soft-emphasis)\",\n },\n ped: {\n DEFAULT: \"var(--color-ped)\",\n \"darken-1\": \"var(--color-ped-darken-1)\",\n \"darken-2\": \"var(--color-ped-darken-2)\",\n \"darken-3\": \"var(--color-ped-darken-3)\",\n \"darken-4\": \"var(--color-ped-darken-4)\",\n \"darken-5\": \"var(--color-ped-darken-5)\",\n \"darken-6\": \"var(--color-ped-darken-6)\",\n \"darken-7\": \"var(--color-ped-darken-7)\",\n \"lighten-1\": \"var(--color-ped-lighten-1)\",\n \"lighten-2\": \"var(--color-ped-lighten-2)\",\n \"lighten-3\": \"var(--color-ped-lighten-3)\",\n \"lighten-4\": \"var(--color-ped-lighten-4)\",\n \"lighten-5\": \"var(--color-ped-lighten-5)\",\n \"lighten-6\": \"var(--color-ped-lighten-6)\",\n \"80\": \"var(--color-ped-80)\",\n \"64\": \"var(--color-ped-64)\",\n \"48\": \"var(--color-ped-48)\",\n \"24\": \"var(--color-ped-24)\",\n \"16\": \"var(--color-ped-16)\",\n \"12\": \"var(--color-ped-12)\",\n \"8\": \"var(--color-ped-8)\",\n \"6\": \"var(--color-ped-6)\",\n \"4\": \"var(--color-ped-4)\",\n \"0\": \"var(--color-ped-0)\",\n foreground: \"var(--color-ped-foreground)\",\n \"foreground-emphasis\": \"var(--color-ped-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-ped-foreground-onfill)\",\n \"background-fill\": \"var(--color-ped-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-ped-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-ped-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-ped-background-soft-emphasis)\",\n },\n prev: {\n DEFAULT: \"var(--color-prev)\",\n \"darken-1\": \"var(--color-prev-darken-1)\",\n \"darken-2\": \"var(--color-prev-darken-2)\",\n \"darken-3\": \"var(--color-prev-darken-3)\",\n \"darken-4\": \"var(--color-prev-darken-4)\",\n \"darken-5\": \"var(--color-prev-darken-5)\",\n \"darken-6\": \"var(--color-prev-darken-6)\",\n \"lighten-1\": \"var(--color-prev-lighten-1)\",\n \"lighten-2\": \"var(--color-prev-lighten-2)\",\n \"lighten-3\": \"var(--color-prev-lighten-3)\",\n \"lighten-4\": \"var(--color-prev-lighten-4)\",\n \"lighten-5\": \"var(--color-prev-lighten-5)\",\n \"lighten-6\": \"var(--color-prev-lighten-6)\",\n \"80\": \"var(--color-prev-80)\",\n \"64\": \"var(--color-prev-64)\",\n \"48\": \"var(--color-prev-48)\",\n \"24\": \"var(--color-prev-24)\",\n \"16\": \"var(--color-prev-16)\",\n \"12\": \"var(--color-prev-12)\",\n \"8\": \"var(--color-prev-8)\",\n \"6\": \"var(--color-prev-6)\",\n \"4\": \"var(--color-prev-4)\",\n \"0\": \"var(--color-prev-0)\",\n foreground: \"var(--color-prev-foreground)\",\n \"foreground-emphasis\": \"var(--color-prev-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-prev-foreground-onfill)\",\n \"background-fill\": \"var(--color-prev-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-prev-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-prev-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-prev-background-soft-emphasis)\",\n },\n primary: {\n DEFAULT: \"var(--color-primary)\",\n \"darken-1\": \"var(--color-primary-darken-1)\",\n \"darken-2\": \"var(--color-primary-darken-2)\",\n \"lighten-1\": \"var(--color-primary-lighten-1)\",\n \"lighten-2\": \"var(--color-primary-lighten-2)\",\n \"lighten-3\": \"var(--color-primary-lighten-3)\",\n \"lighten-4\": \"var(--color-primary-lighten-4)\",\n \"lighten-5\": \"var(--color-primary-lighten-5)\",\n \"lighten-6\": \"var(--color-primary-lighten-6)\",\n \"80\": \"var(--color-primary-80)\",\n \"64\": \"var(--color-primary-64)\",\n \"48\": \"var(--color-primary-48)\",\n \"24\": \"var(--color-primary-24)\",\n \"16\": \"var(--color-primary-16)\",\n \"12\": \"var(--color-primary-12)\",\n \"8\": \"var(--color-primary-8)\",\n \"6\": \"var(--color-primary-6)\",\n \"4\": \"var(--color-primary-4)\",\n \"0\": \"var(--color-primary-0)\",\n foreground: \"var(--color-primary-foreground)\",\n \"foreground-emphasis\": \"var(--color-primary-foreground-emphasis)\",\n \"foreground-muted\": \"var(--color-primary-foreground-muted)\",\n \"foreground-onfill\": \"var(--color-primary-foreground-onfill)\",\n stroke: \"var(--color-primary-stroke)\",\n \"stroke-emphasis\": \"var(--color-primary-stroke-emphasis)\",\n \"background-fill\": \"var(--color-primary-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-primary-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-primary-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-primary-background-soft-emphasis)\",\n \"background-soft-muted\": \"var(--color-primary-background-soft-muted)\",\n },\n secondary: {\n DEFAULT: \"var(--color-secondary)\",\n \"darken-1\": \"var(--color-secondary-darken-1)\",\n \"darken-2\": \"var(--color-secondary-darken-2)\",\n \"darken-3\": \"var(--color-secondary-darken-3)\",\n \"darken-4\": \"var(--color-secondary-darken-4)\",\n \"darken-5\": \"var(--color-secondary-darken-5)\",\n \"darken-6\": \"var(--color-secondary-darken-6)\",\n \"lighten-1\": \"var(--color-secondary-lighten-1)\",\n \"lighten-2\": \"var(--color-secondary-lighten-2)\",\n \"lighten-3\": \"var(--color-secondary-lighten-3)\",\n \"lighten-4\": \"var(--color-secondary-lighten-4)\",\n \"lighten-5\": \"var(--color-secondary-lighten-5)\",\n \"lighten-6\": \"var(--color-secondary-lighten-6)\",\n \"80\": \"var(--color-secondary-80)\",\n \"64\": \"var(--color-secondary-64)\",\n \"48\": \"var(--color-secondary-48)\",\n \"24\": \"var(--color-secondary-24)\",\n \"16\": \"var(--color-secondary-16)\",\n \"12\": \"var(--color-secondary-12)\",\n \"8\": \"var(--color-secondary-8)\",\n \"6\": \"var(--color-secondary-6)\",\n \"4\": \"var(--color-secondary-4)\",\n \"0\": \"var(--color-secondary-0)\",\n foreground: \"var(--color-secondary-foreground)\",\n \"foreground-emphasis\": \"var(--color-secondary-foreground-emphasis)\",\n \"foreground-muted\": \"var(--color-secondary-foreground-muted)\",\n \"foreground-onfill\": \"var(--color-secondary-foreground-onfill)\",\n stroke: \"var(--color-secondary-stroke)\",\n \"stroke-emphasis\": \"var(--color-secondary-stroke-emphasis)\",\n \"background-fill\": \"var(--color-secondary-background-fill)\",\n \"background-fill-emphasis\":\n \"var(--color-secondary-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-secondary-background-soft)\",\n \"background-soft-emphasis\":\n \"var(--color-secondary-background-soft-emphasis)\",\n \"background-soft-muted\": \"var(--color-secondary-background-soft-muted)\",\n },\n gradient: {\n base: {\n \"blur-1\": \"var(--color-gradient-base-blur-1)\",\n \"blur-2\": \"var(--color-gradient-base-blur-2)\",\n \"blur-3\": \"var(--color-gradient-base-blur-3)\",\n \"bg-1\": \"var(--color-gradient-base-bg-1)\",\n \"bg-2\": \"var(--color-gradient-base-bg-2)\",\n },\n cir: {\n \"blur-1\": \"var(--color-gradient-cir-blur-1)\",\n \"blur-2\": \"var(--color-gradient-cir-blur-2)\",\n \"blur-3\": \"var(--color-gradient-cir-blur-3)\",\n \"bg-1\": \"var(--color-gradient-cir-bg-1)\",\n \"bg-2\": \"var(--color-gradient-cir-bg-2)\",\n },\n cm: {\n \"blur-1\": \"var(--color-gradient-cm-blur-1)\",\n \"blur-2\": \"var(--color-gradient-cm-blur-2)\",\n \"blur-3\": \"var(--color-gradient-cm-blur-3)\",\n \"bg-1\": \"var(--color-gradient-cm-bg-1)\",\n \"bg-2\": \"var(--color-gradient-cm-bg-2)\",\n },\n go: {\n \"blur-1\": \"var(--color-gradient-go-blur-1)\",\n \"blur-2\": \"var(--color-gradient-go-blur-2)\",\n \"blur-3\": \"var(--color-gradient-go-blur-3)\",\n \"bg-1\": \"var(--color-gradient-go-bg-1)\",\n \"bg-2\": \"var(--color-gradient-go-bg-2)\",\n },\n ped: {\n \"blur-1\": \"var(--color-gradient-ped-blur-1)\",\n \"blur-2\": \"var(--color-gradient-ped-blur-2)\",\n \"blur-3\": \"var(--color-gradient-ped-blur-3)\",\n \"bg-1\": \"var(--color-gradient-ped-bg-1)\",\n \"bg-2\": \"var(--color-gradient-ped-bg-2)\",\n },\n prev: {\n \"blur-1\": \"var(--color-gradient-prev-blur-1)\",\n \"blur-2\": \"var(--color-gradient-prev-blur-2)\",\n \"blur-3\": \"var(--color-gradient-prev-blur-3)\",\n \"bg-1\": \"var(--color-gradient-prev-bg-1)\",\n \"bg-2\": \"var(--color-gradient-prev-bg-2)\",\n },\n r1: {\n \"blur-1\": \"var(--color-gradient-r1-blur-1)\",\n \"blur-2\": \"var(--color-gradient-r1-blur-2)\",\n \"blur-3\": \"var(--color-gradient-r1-blur-3)\",\n \"bg-1\": \"var(--color-gradient-r1-bg-1)\",\n \"bg-2\": \"var(--color-gradient-r1-bg-2)\",\n },\n rplus: {\n \"blur-1\": \"var(--color-gradient-rplus-blur-1)\",\n \"blur-2\": \"var(--color-gradient-rplus-blur-2)\",\n \"blur-3\": \"var(--color-gradient-rplus-blur-3)\",\n \"bg-1\": \"var(--color-gradient-rplus-bg-1)\",\n \"bg-2\": \"var(--color-gradient-rplus-bg-2)\",\n },\n pt: {\n \"blur-1\": \"var(--color-gradient-pt-blur-1)\",\n \"blur-2\": \"var(--color-gradient-pt-blur-2)\",\n \"blur-3\": \"var(--color-gradient-pt-blur-3)\",\n \"bg-1\": \"var(--color-gradient-pt-bg-1)\",\n \"bg-2\": \"var(--color-gradient-pt-bg-2)\",\n },\n },\n};\n\nexport const fontFamily = {\n sans: \"var(--font-sans)\",\n};\n\nexport const fontSize = {\n xxs: \"var(--text-xxs)\",\n xs: \"var(--text-xs)\",\n sm: \"var(--text-sm)\",\n base: \"var(--text-base)\",\n md: \"var(--text-md)\",\n lg: \"var(--text-lg)\",\n xl: \"var(--text-xl)\",\n \"title-xs\": \"var(--text-title-xs)\",\n \"title-sm\": \"var(--text-title-sm)\",\n \"title-md\": \"var(--text-title-md)\",\n \"title-lg\": \"var(--text-title-lg)\",\n \"title-xl\": \"var(--text-title-xl)\",\n \"title-xxl\": \"var(--text-title-xxl)\",\n \"display-sm\": \"var(--text-display-sm)\",\n \"display-md\": \"var(--text-display-md)\",\n \"display-lg\": \"var(--text-display-lg)\",\n};\n\nexport const lineHeight = {\n xxs: \"var(--leading-xxs)\",\n xs: \"var(--leading-xs)\",\n sm: \"var(--leading-sm)\",\n md: \"var(--leading-md)\",\n lg: \"var(--leading-lg)\",\n \"title-xs\": \"var(--leading-title-xs)\",\n \"title-sm\": \"var(--leading-title-sm)\",\n \"title-md\": \"var(--leading-title-md)\",\n \"title-lg\": \"var(--leading-title-lg)\",\n \"title-xl\": \"var(--leading-title-xl)\",\n \"title-xxl\": \"var(--leading-title-xxl)\",\n \"display-sm\": \"var(--leading-display-sm)\",\n \"display-md\": \"var(--leading-display-md)\",\n \"display-lg\": \"var(--leading-display-lg)\",\n};\n\nexport const fontWeight = {\n regular: \"var(--font-weight-regular)\",\n medium: \"var(--font-weight-medium)\",\n semibold: \"var(--font-weight-semibold)\",\n bold: \"var(--font-weight-bold)\",\n extrabold: \"var(--font-weight-extrabold)\",\n};\n\nexport const screens = {\n tv: \"1920px\",\n desktop: \"1024px\",\n tablet: \"600px\",\n mobile: \"320px\",\n sm: \"320px\",\n md: \"600px\",\n lg: \"1024px\",\n xl: \"1920px\",\n};\n\nexport const breakpoints = {\n tv: \"var(--breakpoint-tv)\",\n desktop: \"var(--breakpoint-desktop)\",\n tablet: \"var(--breakpoint-tablet)\",\n mobile: \"var(--breakpoint-mobile)\",\n};\n\nexport const container = {\n tv: \"var(--container-tv)\",\n desktop: \"var(--container-desktop)\",\n tablet: \"var(--container-tablet)\",\n mobile: \"var(--container-mobile)\",\n};\n\nexport const sidebar = {\n width: \"var(--sidebar-width)\",\n \"width-mobile\": \"var(--sidebar-width-mobile)\",\n \"width-icon\": \"var(--sidebar-width-icon)\",\n};\n\nexport const borderRadius = {\n none: \"var(--radius-none)\",\n sm: \"var(--radius-sm)\",\n md: \"var(--radius-md)\",\n lg: \"var(--radius-lg)\",\n pill: \"var(--radius-pill)\",\n circular: \"var(--radius-circular)\",\n full: \"var(--radius-full)\",\n};\n\nexport const boxShadow = {\n \"level-1\":\n \"0 0 2px 0 var(--color-drop-shadow-layer-a), 0 2px 4px 0 var(--color-drop-shadow-layer-b)\",\n};\n\nexport const keyframes = {\n \"accordion-down\": {\n from: {\n height: \"0\",\n },\n to: {\n height: \"var(--radix-accordion-content-height)\",\n },\n },\n \"accordion-up\": {\n from: {\n height: \"var(--radix-accordion-content-height)\",\n },\n to: {\n height: \"0\",\n },\n },\n \"collapsible-down\": {\n from: {\n height: \"0\",\n },\n to: {\n height: \"var(--radix-collapsible-content-height)\",\n },\n },\n shine: {\n from: {\n backgroundPosition: \"200% 0\",\n },\n to: {\n backgroundPosition: \"-200% 0\",\n },\n },\n \"collapsible-up\": {\n from: {\n height: \"var(--radix-collapsible-content-height)\",\n },\n to: {\n height: \"0\",\n },\n },\n \"fade-in\": {\n from: {\n opacity: \"0\",\n },\n to: {\n opacity: \"1\",\n },\n },\n \"fade-out\": {\n from: {\n opacity: \"1\",\n },\n to: {\n opacity: \"0\",\n },\n },\n};\n\nexport const animation = {\n \"accordion-down\": \"accordion-down 0.2s ease-out\",\n \"accordion-up\": \"accordion-up 0.2s ease-out\",\n \"collapsible-down\": \"collapsible-down 0.2s ease-out\",\n \"collapsible-up\": \"collapsible-up 0.2s ease-out\",\n \"fade-in\": \"fade-in 0.2s ease-out\",\n \"fade-out\": \"fade-out 0.2s ease-out\",\n shine: \"shine 2s infinite linear\",\n};\n","\"use client\";\n\nimport { screens } from \"@/assets/js/tokens\";\nimport { Button, buttonVariants } from \"@/components/Button\";\nimport { cn } from \"@/lib/utils\";\nimport {\n ChevronLeftDuo,\n ChevronRightDuo,\n MoreHorizontal,\n} from \"@medway-ui/icons\";\nimport type { VariantProps } from \"class-variance-authority\";\nimport {\n useState,\n useEffect,\n type ComponentProps,\n type ReactNode,\n} from \"react\";\n\ninterface PaginationProps {\n currentPage: number;\n totalPages: number;\n maxVisibleItems?: number;\n onPageChange: (page: number) => void;\n className?: string;\n itemsPerPage?: number;\n totalItems?: number;\n responsive?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n variant?:\n | \"regular\"\n | \"emphasis\"\n | \"error\"\n | \"warning\"\n | \"outlined\"\n | \"success\";\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean;\n iconLeft?: ReactNode;\n iconRight?: ReactNode;\n size?: \"sm\" | \"md\" | \"lg\";\n variant?: ButtonVariant;\n activeVariant?: ButtonVariant;\n inactiveVariant?: ButtonVariant;\n} & ComponentProps<\"button\">;\n\ntype ButtonVariant = NonNullable<\n VariantProps<typeof buttonVariants>[\"variant\"]\n>;\n\nfunction PaginationRoot({ className, ...props }: ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn(\"flex w-full items-center justify-between\", className)}\n {...props}\n />\n );\n}\n\nfunction PaginationContent({ className, ...props }: ComponentProps<\"ul\">) {\n return (\n <ul\n className={cn(\"flex flex-row items-center gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction PaginationInfo({\n count,\n label = \"itens\",\n className,\n ...props\n}: ComponentProps<\"p\"> & { count?: number; label?: string }) {\n return (\n <p\n className={cn(\n \"text-xs font-medium text-gray-foreground-muted\",\n className\n )}\n {...props}\n >\n {label === \"itens\" ? (\n <>\n Mostrando{\" \"}\n <span className=\"font-semibold text-gray-foreground\">{count}</span>{\" \"}\n {label}\n </>\n ) : (\n <>\n <span className=\"font-semibold text-gray-foreground\">{count}</span>{\" \"}\n {label}\n </>\n )}\n </p>\n );\n}\n\nfunction PaginationItem({ className, ...props }: ComponentProps<\"li\">) {\n return <li className={cn(\"\", className)} {...props} />;\n}\n\nfunction PaginationLink({\n className,\n isActive,\n iconLeft,\n iconRight,\n size = \"md\",\n variant = \"regular\",\n activeVariant,\n inactiveVariant,\n ...props\n}: PaginationLinkProps) {\n const getVariant = () => {\n if (isActive && activeVariant) return activeVariant;\n if (!isActive && inactiveVariant) return inactiveVariant;\n return isActive ? variant : `${variant}-soft`;\n };\n\n return (\n <Button\n aria-current={isActive ? \"page\" : undefined}\n variant={getVariant() as ButtonVariant}\n className={cn(\"\", className)}\n size={size}\n iconLeft={iconLeft}\n iconRight={iconRight}\n {...props}\n >\n {props.children}\n </Button>\n );\n}\n\nfunction PaginationPrevious({\n className,\n size = \"md\",\n variant = \"regular-basic\",\n ...props\n}: ComponentProps<typeof PaginationLink>) {\n return (\n <Button\n aria-label=\"Go to previous page\"\n className={cn(\"\", className)}\n iconLeft={<ChevronLeftDuo />}\n variant={variant}\n size={size}\n {...props}\n >\n {props.children || \"Anterior\"}\n </Button>\n );\n}\n\nfunction PaginationNext({\n className,\n size = \"md\",\n variant = \"regular-basic\",\n ...props\n}: ComponentProps<typeof PaginationLink>) {\n return (\n <Button\n aria-label=\"Go to next page\"\n className={cn(\"\", className)}\n variant={variant}\n iconRight={<ChevronRightDuo />}\n size={size}\n {...props}\n >\n {props.children || \"Próximo\"}\n </Button>\n );\n}\n\nfunction PaginationEllipsis({\n className,\n size = \"md\",\n ...props\n}: ComponentProps<\"span\"> & { size?: \"sm\" | \"md\" | \"lg\" }) {\n const sizeClasses = {\n sm: \"h-8 w-8\",\n md: \"h-9 w-9\",\n lg: \"h-10 w-10\",\n } as const;\n\n return (\n <span\n aria-hidden\n className={cn(\n \"flex items-center justify-center\",\n sizeClasses[size],\n className\n )}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n </span>\n );\n}\n\nfunction calculatePageNumbers(\n currentPage: number,\n totalPages: number,\n maxVisible: number = 2\n): number[] {\n const pages: number[] = [];\n\n if (totalPages <= maxVisible + 2) {\n // Se o total de páginas cabe confortavelmente, mostra todas\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n const sidePages = Math.floor(maxVisible / 2);\n if (currentPage <= sidePages + 1) {\n // Início: 1,2,3...N\n for (let i = 1; i <= maxVisible + 1; i++) {\n pages.push(i);\n }\n if (maxVisible + 1 < totalPages) {\n pages.push(-1, totalPages);\n }\n } else if (currentPage >= totalPages - sidePages) {\n // Final: 1...N-2,N-1,N\n pages.push(1);\n if (totalPages - maxVisible > 1) {\n pages.push(-1);\n }\n for (let i = totalPages - maxVisible; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n // Meio: 1...X-1,X,X+1...N\n pages.push(1, -1);\n for (let i = currentPage - sidePages; i <= currentPage + sidePages; i++) {\n pages.push(i);\n }\n pages.push(-1, totalPages);\n }\n }\n\n return pages;\n}\n\nfunction Pagination({\n currentPage,\n totalPages,\n maxVisibleItems,\n onPageChange,\n itemsPerPage,\n totalItems,\n className,\n responsive = true,\n size = \"md\",\n}: PaginationProps) {\n // Detect tablet/mobile based on tokens.screens.tablet\n const [isTabletOrMobile, setIsTabletOrMobile] = useState<boolean>(() => {\n if (typeof window === \"undefined\") return false;\n return window.innerWidth <= parseInt(screens.tablet);\n });\n\n useEffect(() => {\n if (typeof window === \"undefined\" || !responsive) return;\n const tabletPx = parseInt(screens.tablet);\n const onResize = () => {\n setIsTabletOrMobile(window.innerWidth <= tabletPx);\n };\n window.addEventListener(\"resize\", onResize);\n onResize();\n return () => window.removeEventListener(\"resize\", onResize);\n }, [responsive]);\n\n // If prop not provided, default to 0 on tablet/mobile, otherwise fallback to 2\n const effectiveMaxVisible =\n typeof maxVisibleItems === \"number\"\n ? maxVisibleItems\n : responsive && isTabletOrMobile\n ? 0\n : 2;\n\n const shouldHideInfo = responsive && isTabletOrMobile;\n\n const renderPageNumbers = () => {\n return calculatePageNumbers(currentPage, totalPages, effectiveMaxVisible);\n };\n\n return (\n <PaginationRoot className={cn(\"\", className)}>\n {itemsPerPage !== undefined && !shouldHideInfo ? (\n <PaginationInfo count={itemsPerPage} label=\"itens\" />\n ) : (\n <div />\n )}\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious\n onClick={() => onPageChange(Math.max(1, currentPage - 1))}\n disabled={currentPage === 1}\n size={size}\n />\n </PaginationItem>\n\n {renderPageNumbers().map((page, index) => (\n <PaginationItem key={index}>\n {page === -1 ? (\n <PaginationEllipsis size={size} />\n ) : (\n <PaginationLink\n onClick={() => onPageChange(page)}\n isActive={page === currentPage}\n size={size}\n >\n {page}\n </PaginationLink>\n )}\n </PaginationItem>\n ))}\n\n <PaginationItem>\n <PaginationNext\n onClick={() => onPageChange(Math.min(totalPages, currentPage + 1))}\n disabled={currentPage === totalPages}\n size={size}\n />\n </PaginationItem>\n </PaginationContent>\n {totalItems !== undefined && !shouldHideInfo ? (\n <PaginationInfo count={totalItems} label=\"total\" />\n ) : (\n <div />\n )}\n </PaginationRoot>\n );\n}\nexport {\n calculatePageNumbers,\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationInfo,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n PaginationRoot,\n};\nexport type { PaginationProps };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\";\nimport { Circle as CircleIcon } from \"@medway-ui/icons\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst CIRCLE_SIZES = {\n sm: \"size-2 group-data-[disabled]:group-data-[state=checked]:size-1.5\",\n md: \"size-2.5 group-data-[disabled]:group-data-[state=checked]:size-1.5\",\n lg: \"size-3.5 group-data-[disabled]:group-data-[state=checked]:size-2\",\n} as const;\n\nconst radioGroupVariants = cva(\n \"inline-flex items-center justify-center place-items-center gap-2 rounded-pill whitespace-nowrap transition-all disabled:pointer-events-none shrink-0 [&_svg]:shrink-0 hover:cursor-pointer focus:outline-0 [grid-template-areas:'stack']\",\n {\n variants: {\n variant: {\n regular:\n \"bg-surface-card border-2 border-gray-stroke-muted enabled:hover:ring-4 data-[state=unchecked]:enabled:hover:ring-state-hover data-[state=unchecked]:enabled:hover:border-gray-stroke disabled:bg-gray-background-soft-muted data-[state=checked]:bg-primary-background-fill data-[state=checked]:border-primary-background-fill data-[state=checked]:enabled:hover:bg-primary-background-fill-emphasis data-[state=checked]:enabled:hover:border-primary-background-fill-emphasis data-[state=checked]:enabled:hover:ring-state-active disabled:data-[state=checked]:bg-gray-background-soft-muted disabled:data-[state=checked]:border-gray-stroke-muted data-[state=unchecked]:enabled:hover:border-gray-stroke data-[state=checked]:enabled:hover:bg-primary-background-fill-emphasis [&:disabled_svg]:fill-gray-background-fill-muted\",\n },\n size: {\n sm: \"size-4\",\n md: \"size-5\",\n lg: \"size-6\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n size: \"md\",\n },\n }\n);\n\nfunction RadioGroup({\n className,\n ...props\n}: ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid gap-3\", className)}\n {...props}\n />\n );\n}\n\ninterface RadioGroupItemProps\n extends ComponentProps<typeof RadioGroupPrimitive.Item>,\n VariantProps<typeof radioGroupVariants> {}\n\nfunction RadioGroupItem({\n className,\n size,\n variant,\n ...props\n}: RadioGroupItemProps) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"shadow-xs group peer aspect-square size-4 shrink-0 rounded-full outline-none transition-[color,box-shadow] disabled:cursor-not-allowed\",\n radioGroupVariants({ size, variant }),\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon\n className={cn(\n \"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 fill-surface-card\",\n CIRCLE_SIZES[size || \"md\"]\n )}\n />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem, radioGroupVariants };\nexport type { RadioGroupItemProps };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({ ...props }: ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger({\n ...props\n}: ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"origin-(--radix-tooltip-content-transform-origin) z-50 w-fit text-balance rounded-md bg-surface-elevated px-3 py-2 text-sm font-medium text-gray-foreground-emphasis animate-in fade-in-0 zoom-in-95 [filter:drop-shadow(0_0_1px_var(--color-drop-shadow-layer-a))_drop-shadow(0_2px_2px_var(--color-drop-shadow-layer-b))] data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-3 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-surface-elevated fill-surface-elevated\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","\"use client\";\n\nimport {\n type ComponentProps,\n type ReactNode,\n type ReactElement,\n type ComponentType,\n type TableHTMLAttributes,\n type HTMLAttributes,\n type ThHTMLAttributes,\n} from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n ArrowRightMd,\n CloseMd,\n Check,\n CheckboxFill,\n Info,\n RemoveMinus,\n Warning,\n} from \"@medway-ui/icons\";\nimport { Button } from \"@/components/Button\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/Avatar\";\nimport { Tag } from \"@/components/Tag\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/Tooltip\";\n\ninterface RankingProps extends TableHTMLAttributes<HTMLTableElement> {\n children?: ReactNode;\n}\n\ninterface RankingHeaderProps extends HTMLAttributes<HTMLTableSectionElement> {\n children?: ReactNode;\n}\n\ninterface RankingHeaderCellProps\n extends ThHTMLAttributes<HTMLTableCellElement> {\n children?: ReactNode;\n tooltip?: string;\n highlight?: boolean;\n}\n\ninterface RankingItemProps extends HTMLAttributes<HTMLTableRowElement> {\n children?: ReactNode;\n}\n\ninterface RankingNumberProps extends HTMLAttributes<HTMLTableCellElement> {\n children: ReactNode;\n}\n\ninterface RankingTopicColumnProps extends HTMLAttributes<HTMLTableCellElement> {\n children: ReactNode;\n}\n\ninterface RankingTopicContentProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\ninterface RankingSpecialtyProps extends HTMLAttributes<HTMLSpanElement> {\n children: ReactNode;\n}\n\ninterface RankingTopicProps extends HTMLAttributes<HTMLSpanElement> {\n children: ReactNode;\n}\n\ninterface RankingSuperFocusProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n}\n\ninterface RankingAssigneesColumnProps\n extends HTMLAttributes<HTMLTableCellElement> {\n children: ReactNode;\n}\n\ninterface RankingAssigneeLabelProps\n extends HTMLAttributes<HTMLParagraphElement> {\n children: ReactNode;\n}\n\ninterface RankingAssigneeGroupProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\ninterface RankingAssigneeItemProps extends ComponentProps<typeof Avatar> {\n src?: string;\n alt?: string;\n fallback?: string;\n tooltip?: ReactNode;\n}\n\ninterface RankingPriorityProps extends HTMLAttributes<HTMLTableCellElement> {\n children: ReactNode;\n icon?: ReactElement;\n}\n\ninterface RankingQuestionsProps extends HTMLAttributes<HTMLTableCellElement> {\n questions: number;\n answered: number;\n}\n\ninterface RankingPerformanceProps extends HTMLAttributes<HTMLTableCellElement> {\n answered: number;\n correct: number;\n minQuestions: number;\n}\n\ninterface RankingButtonProps\n extends Omit<ComponentProps<typeof Button>, \"iconRight\" | \"onClick\"> {\n onClick?: () => void;\n}\n\ninterface PerformanceData {\n progress: number;\n correct: number;\n answered: number;\n remainingQuestions: number;\n}\n\ntype ProgressStatusKey =\n | \"notStarted\"\n | \"minNotReached\"\n | \"dominated\"\n | \"notDominated\";\n\nfunction Ranking({ children, className, ...props }: RankingProps) {\n return (\n <div className=\"w-full overflow-x-auto rounded-lg border border-gray-stroke-muted\">\n <table\n className={cn(\"w-full border-collapse text-left\", className)}\n {...props}\n >\n {children}\n </table>\n </div>\n );\n}\n\nfunction RankingHeader({ children, className, ...props }: RankingHeaderProps) {\n return (\n <thead\n className={cn(\n \"h-11 border-b border-gray-stroke-muted bg-surface-card\",\n className\n )}\n {...props}\n >\n <tr>{children}</tr>\n </thead>\n );\n}\n\nfunction RankingHeaderCell({\n children,\n className,\n tooltip,\n highlight,\n ...props\n}: RankingHeaderCellProps) {\n return (\n <th\n className={cn(\n \"text-ellipsis whitespace-nowrap px-5 text-sm font-semibold text-gray-foreground first:pr-0\",\n className\n )}\n {...props}\n >\n <div className=\"flex items-center gap-1.5\">\n <span\n className={cn(\n highlight &&\n \"flex size-7 shrink-0 items-center justify-center rounded-full bg-primary-foreground-onfill\"\n )}\n >\n {children}\n </span>\n {tooltip && (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Info className=\"size-4\" />\n </TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )}\n </div>\n </th>\n );\n}\n\nfunction RankingBody({\n children,\n className,\n ...props\n}: HTMLAttributes<HTMLTableSectionElement>) {\n return (\n <tbody className={cn(\"bg-surface-card\", className)} {...props}>\n {children}\n </tbody>\n );\n}\n\nfunction RankingItem({ children, className, ...props }: RankingItemProps) {\n return (\n <tr\n className={cn(\n \"w-full border-t border-solid border-gray-stroke-muted first:border-t-0\",\n className\n )}\n {...props}\n >\n {children}\n </tr>\n );\n}\n\nfunction RankingNumber({ children, className, ...props }: RankingNumberProps) {\n return (\n <td className=\"py-4 pl-5 align-middle\">\n <div\n className={cn(\n \"flex size-7 shrink-0 items-center justify-center overflow-hidden whitespace-nowrap rounded-full bg-primary-foreground text-sm font-semibold text-primary-foreground-onfill\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </td>\n );\n}\n\nfunction RankingTopicColumn({\n children,\n className,\n ...props\n}: RankingTopicColumnProps) {\n return (\n <td className=\"px-5 py-4 align-middle\" {...props}>\n <div className={cn(\"flex items-center gap-5\", className)}>\n <div className=\"flex shrink-0 items-center gap-5 pr-8\">{children}</div>\n </div>\n </td>\n );\n}\n\nfunction RankingTopicContent({\n children,\n className,\n ...props\n}: RankingTopicContentProps) {\n return (\n <div\n className={cn(\n \"flex shrink-0 flex-col items-start whitespace-nowrap text-gray-foreground\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nfunction RankingSpecialty({\n children,\n className,\n ...props\n}: RankingSpecialtyProps) {\n return (\n <span\n className={cn(\n \"shrink-0 overflow-hidden text-ellipsis font-sans text-xxs font-medium leading-xxs\",\n className\n )}\n {...props}\n >\n {children}\n </span>\n );\n}\n\nfunction RankingTopic({ children, className, ...props }: RankingTopicProps) {\n return (\n <span\n className={cn(\n \"shrink-0 overflow-hidden text-ellipsis font-sans text-sm font-semibold leading-5\",\n className\n )}\n {...props}\n >\n {children}\n </span>\n );\n}\n\nfunction RankingSuperFocus({\n children,\n className,\n ...props\n}: RankingSuperFocusProps) {\n return (\n <Tag\n className={cn(\n \"bg-gradient-to-r from-cm-24 to-secondary-24 text-primary-foreground\",\n className\n )}\n {...props}\n icon={<CheckboxFill className=\"text-primary-foreground\" />}\n >\n {children}\n </Tag>\n );\n}\n\nfunction RankingAssigneesColumn({\n children,\n className,\n ...props\n}: RankingAssigneesColumnProps) {\n return (\n <td className=\"px-5 py-4 align-middle\" {...props}>\n <div className={cn(\"flex flex-col items-start gap-2\", className)}>\n {children}\n </div>\n </td>\n );\n}\n\nfunction RankingAssigneeLabel({\n children,\n className,\n ...props\n}: RankingAssigneeLabelProps) {\n return (\n <p\n className={cn(\n \"relative shrink-0 overflow-hidden text-ellipsis whitespace-nowrap text-[10px] font-medium leading-[12px] text-gray-foreground\",\n className\n )}\n {...props}\n >\n {children}\n </p>\n );\n}\n\nfunction RankingAssigneeGroup({\n children,\n className,\n ...props\n}: RankingAssigneeGroupProps) {\n return (\n <div\n className={cn(\"avatar-group flex shrink-0 items-center gap-2\", className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nfunction RankingAssigneeItem({\n src,\n alt,\n fallback = \"?\",\n className,\n tooltip,\n ...props\n}: RankingAssigneeItemProps) {\n const avatarElement = (\n <Avatar\n size=\"sm\"\n className={cn(\"ring-2 ring-background\", className)}\n {...props}\n >\n <AvatarImage src={src} alt={alt} />\n <AvatarFallback>{fallback}</AvatarFallback>\n </Avatar>\n );\n\n if (!tooltip) {\n return avatarElement;\n }\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{avatarElement}</TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n}\n\nfunction RankingPriority({\n children,\n className,\n icon,\n ...props\n}: RankingPriorityProps) {\n return (\n <td className=\"px-5 py-4 align-middle\" {...props}>\n <Tag variant=\"regular-soft\" className={className} icon={icon}>\n {children}\n </Tag>\n </td>\n );\n}\n\nfunction LinearProgressBar({\n className,\n percentage,\n}: {\n className?: string;\n percentage: number;\n}) {\n const getProgressColor = (value: number) => {\n if (value >= 0 && value <= 49) return \"bg-primary-stroke\";\n if (value >= 50 && value <= 80) return \"bg-primary-stroke\";\n if (value >= 81 && value <= 100) return \"bg-primary-stroke\";\n return \"bg-gray-100\";\n };\n\n return (\n <div\n className={cn(\n \"relative h-0.5 w-full overflow-hidden rounded-pill bg-gray-100\",\n className\n )}\n >\n <div\n className={cn(\n \"absolute inset-y-0 left-0 rounded-pill transition-all duration-300\",\n getProgressColor(percentage)\n )}\n style={{ width: `${percentage}%` }}\n />\n </div>\n );\n}\n\nfunction RankingQuestions({\n questions,\n answered,\n className,\n ...props\n}: RankingQuestionsProps) {\n const percentage = answered > 0 ? (answered / questions) * 100 : 0;\n const isNotStarted = answered === 0;\n\n if (isNotStarted) {\n return (\n <td className=\"px-5 py-4 align-middle\" {...props}>\n <div\n className={cn(\n \"flex min-w-[140px] flex-col items-start justify-center gap-2\",\n className\n )}\n >\n <div className=\"flex shrink-0 items-center justify-center gap-2 text-xs font-medium text-gray-foreground-muted\">\n <div className=\"flex size-4 items-center justify-center rounded-full bg-gray-background-soft\">\n <RemoveMinus\n className=\"size-3 text-gray-foreground\"\n strokeWidth={2.6}\n />\n </div>\n <span className=\"whitespace-nowrap font-medium text-gray-foreground-muted\">\n Não iniciado\n </span>\n </div>\n </div>\n </td>\n );\n }\n\n return (\n <td className=\"px-5 py-4 align-middle\" {...props}>\n <div\n className={cn(\n \"flex min-w-[140px] flex-col items-start justify-center gap-2\",\n className\n )}\n >\n <div className=\"flex shrink-0 items-center gap-0.5 text-xs leading-4\">\n <span className=\"relative shrink-0 whitespace-nowrap font-medium text-gray-foreground-muted\">\n <span className=\"font-semibold text-gray-foreground\">\n {answered}\n </span>{\" \"}\n {answered > 1 ? \"respondidas\" : \"respondida\"}\n </span>\n </div>\n <LinearProgressBar percentage={percentage} />\n </div>\n </td>\n );\n}\n\nconst PERCENTAGE_STATUS_CONFIG: Record<\n ProgressStatusKey,\n {\n icon: ComponentType<{ className?: string; strokeWidth?: number }>;\n bgColor: string;\n iconColor: string;\n titleClassName: string;\n title: (data: PerformanceData) => ReactNode;\n subtitle: (data: PerformanceData) => ReactNode;\n }\n> = {\n notStarted: {\n icon: RemoveMinus,\n bgColor: \"bg-gray-background-soft\",\n iconColor: \"text-gray-foreground\",\n titleClassName: \"font-medium text-gray-foreground-muted\",\n title: () => \"Não iniciado\",\n subtitle: () => \"\",\n },\n minNotReached: {\n icon: Warning,\n bgColor: \"bg-feedback-warning-background-soft\",\n iconColor: \"text-feedback-warning-foreground\",\n titleClassName: \"font-medium text-gray-foreground-muted\",\n title: () => \"Mínimo não atingido\",\n subtitle: ({ remainingQuestions }) =>\n remainingQuestions > 1\n ? `Faltam ${remainingQuestions} questões`\n : `Falta ${remainingQuestions} questão`,\n },\n dominated: {\n icon: Check,\n bgColor: \"bg-feedback-success-background-soft\",\n iconColor: \"text-feedback-success-foreground\",\n titleClassName: \"font-medium text-gray-foreground-muted\",\n title: ({ progress }) => (\n <>\n <span className=\"font-semibold text-gray-foreground\">\n {Math.round(progress)}%\n </span>{\" \"}\n de {progress > 1 ? \"acertos\" : \"acerto\"}\n </>\n ),\n subtitle: ({ correct, answered }) => `${correct} de ${answered} acertos`,\n },\n notDominated: {\n icon: CloseMd,\n bgColor: \"bg-feedback-error-background-soft\",\n iconColor: \"text-feedback-error-foreground\",\n titleClassName: \"font-medium text-gray-foreground-muted\",\n title: ({ progress }) => (\n <>\n <span className=\"font-semibold text-gray-foreground\">\n {Math.round(progress)}%\n </span>{\" \"}\n de {progress > 1 ? \"acertos\" : \"acerto\"}\n </>\n ),\n subtitle: ({ correct, answered }) => `${correct} de ${answered} acertos`,\n },\n};\n\nfunction getPercentageStatus(\n isNotStarted: boolean,\n minNotReached: boolean,\n progress: number\n): ProgressStatusKey {\n const rules: [boolean, ProgressStatusKey][] = [\n [isNotStarted, \"notStarted\"],\n [minNotReached, \"minNotReached\"],\n [progress >= 80, \"dominated\"],\n [true, \"notDominated\"],\n ];\n return rules.find(([condition]) => condition)![1];\n}\n\nfunction RankingPerformance({\n answered,\n correct,\n minQuestions,\n className,\n ...props\n}: RankingPerformanceProps) {\n const progress = answered > 0 ? (correct / answered) * 100 : 0;\n const isNotStarted = answered === 0;\n const minNotReached = correct < minQuestions;\n const remainingQuestions = minQuestions - correct;\n\n const statusKey = getPercentageStatus(isNotStarted, minNotReached, progress);\n\n const {\n icon: Icon,\n bgColor,\n iconColor,\n titleClassName,\n title,\n subtitle,\n } = PERCENTAGE_STATUS_CONFIG[statusKey];\n\n const data: PerformanceData = {\n progress,\n correct,\n answered,\n remainingQuestions,\n };\n\n return (\n <td className=\"px-5 py-4 align-middle\" {...props}>\n <div\n className={cn(\n \"flex min-w-[140px] flex-col items-start justify-center gap-2\",\n className\n )}\n >\n <div className=\"flex shrink-0 items-center justify-center gap-2 text-xs font-medium text-gray-foreground-muted\">\n <div\n className={cn(\n \"flex size-4 items-center justify-center rounded-full\",\n bgColor\n )}\n >\n <Icon className={cn(\"size-3\", iconColor)} strokeWidth={2.6} />\n </div>\n <div className=\"flex flex-col items-start justify-center\">\n <span className={cn(\"whitespace-nowrap\", titleClassName)}>\n {title(data)}\n </span>\n <span className=\"whitespace-nowrap text-xxs font-semibold text-gray-foreground-muted\">\n {subtitle(data)}\n </span>\n </div>\n </div>\n </div>\n </td>\n );\n}\n\nfunction RankingButton({\n children,\n className,\n onClick,\n ...props\n}: RankingButtonProps) {\n return (\n <td\n className=\"px-5 py-4 align-middle\"\n {...(props as HTMLAttributes<HTMLTableCellElement>)}\n >\n <Button\n variant=\"regular-soft\"\n size=\"sm\"\n iconRight={<ArrowRightMd className=\"size-4\" />}\n onClick={onClick}\n className={className}\n >\n {children}\n </Button>\n </td>\n );\n}\n\nexport {\n Ranking,\n RankingHeader,\n RankingHeaderCell,\n RankingBody,\n RankingItem,\n RankingNumber,\n RankingTopicColumn,\n RankingTopicContent,\n RankingSpecialty,\n RankingTopic,\n RankingSuperFocus,\n RankingAssigneesColumn,\n RankingAssigneeLabel,\n RankingAssigneeGroup,\n RankingAssigneeItem,\n RankingPriority,\n RankingQuestions,\n RankingPerformance,\n RankingButton,\n};\n\nexport type {\n RankingProps,\n RankingHeaderProps,\n RankingHeaderCellProps,\n RankingItemProps,\n RankingNumberProps,\n RankingTopicColumnProps,\n RankingTopicContentProps,\n RankingSpecialtyProps,\n RankingTopicProps,\n RankingSuperFocusProps,\n RankingAssigneesColumnProps,\n RankingAssigneeLabelProps,\n RankingAssigneeGroupProps,\n RankingAssigneeItemProps,\n RankingPriorityProps,\n RankingQuestionsProps,\n RankingPerformanceProps,\n RankingButtonProps,\n PerformanceData,\n ProgressStatusKey,\n};\n","\"use client\";\n\nimport { cn } from \"@/lib/utils\";\nimport { cva } from \"class-variance-authority\";\nimport { useRef, useState } from \"react\";\nimport { useId } from \"@/hooks/use-id\";\n\ntype RatingSize = \"sm\" | \"md\" | \"lg\";\ntype RatingStarState = \"empty\" | \"half\" | \"full\";\n\ninterface RatingProps {\n value?: number;\n onChange?: (value: number) => void;\n maxStars?: number;\n readOnly?: boolean;\n labels?: [string, string];\n size?: RatingSize;\n className?: string;\n classNameContainer?: string;\n classNameLabels?: string;\n}\n\ninterface StarIconProps {\n state: RatingStarState;\n className?: string;\n}\n\nconst RatingStarVariants = cva(\"transition-all duration-150\", {\n variants: {\n size: {\n sm: \"size-6\",\n md: \"size-7\",\n lg: \"size-8\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nconst RatingStarHoveredVariants = cva(\"\", {\n variants: {\n size: {\n sm: \"size-7\",\n md: \"size-8\",\n lg: \"size-9\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nconst RatingButtonVariants = cva(\"inline-flex items-center justify-center\", {\n variants: {\n size: {\n sm: \"size-7\",\n md: \"size-8\",\n lg: \"size-9\",\n },\n readOnly: {\n true: \"cursor-default\",\n false: \"cursor-pointer\",\n },\n },\n defaultVariants: {\n size: \"md\",\n readOnly: false,\n },\n});\n\nconst RatingLabelVariants = cva(\n \"flex w-full min-w-0 justify-between text-gray-foreground font-medium gap-2\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-xs\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nfunction StarIcon({ state, className }: StarIconProps) {\n const generatedId = useId();\n const fallbackId = useRef(`rating-${Math.random().toString(36).slice(2)}`);\n const gradientId = generatedId || fallbackId.current;\n\n if (state === \"full\") {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n className={className}\n >\n <path\n d=\"M0.888855 9.61676C0.523397 9.27879 0.721914 8.66782 1.21623 8.60921L8.2204 7.77843C8.42186 7.75455 8.59685 7.62803 8.68182 7.44381L11.6361 1.03906C11.8446 0.587053 12.4872 0.586967 12.6957 1.03898L15.6499 7.44368C15.7349 7.6279 15.9087 7.75475 16.1102 7.77864L23.1148 8.60921C23.6091 8.66782 23.807 9.27897 23.4416 9.61694L18.2638 14.4061C18.1148 14.5438 18.0485 14.7488 18.0881 14.9478L19.4622 21.8658C19.5593 22.354 19.0396 22.7323 18.6053 22.4892L12.4507 19.0432C12.2737 18.9441 12.0586 18.9446 11.8816 19.0437L5.72641 22.4883C5.29205 22.7314 4.7715 22.354 4.86851 21.8658L6.2429 14.9483C6.28244 14.7493 6.21629 14.5438 6.06735 14.406L0.888855 9.61676Z\"\n className=\"fill-feedback-warning-background-soft stroke-feedback-warning-stroke hover:stroke-feedback-warning-stroke-emphasis\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n\n if (state === \"half\") {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n className={className}\n >\n <defs>\n <linearGradient id={gradientId} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop\n offset=\"50%\"\n className=\"[stop-color:var(--color-feedback-warning-background-soft)]\"\n stopOpacity=\"1\"\n />\n <stop offset=\"50%\" stopColor=\"transparent\" stopOpacity=\"0\" />\n </linearGradient>\n </defs>\n <path\n d=\"M0.888855 9.61676C0.523397 9.27879 0.721914 8.66782 1.21623 8.60921L8.2204 7.77843C8.42186 7.75455 8.59685 7.62803 8.68182 7.44381L11.6361 1.03906C11.8446 0.587053 12.4872 0.586967 12.6957 1.03898L15.6499 7.44368C15.7349 7.6279 15.9087 7.75475 16.1102 7.77864L23.1148 8.60921C23.6091 8.66782 23.807 9.27897 23.4416 9.61694L18.2638 14.4061C18.1148 14.5438 18.0485 14.7488 18.0881 14.9478L19.4622 21.8658C19.5593 22.354 19.0396 22.7323 18.6053 22.4892L12.4507 19.0432C12.2737 18.9441 12.0586 18.9446 11.8816 19.0437L5.72641 22.4883C5.29205 22.7314 4.7715 22.354 4.86851 21.8658L6.2429 14.9483C6.28244 14.7493 6.21629 14.5438 6.06735 14.406L0.888855 9.61676Z\"\n fill={`url(#${gradientId})`}\n className=\"stroke-feedback-warning-stroke hover:stroke-feedback-warning-stroke-emphasis\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n className={className}\n >\n <path\n d=\"M0.888855 9.61676C0.523397 9.27879 0.721914 8.66782 1.21623 8.60921L8.2204 7.77843C8.42186 7.75455 8.59685 7.62803 8.68182 7.44381L11.6361 1.03906C11.8446 0.587053 12.4872 0.586967 12.6957 1.03898L15.6499 7.44368C15.7349 7.6279 15.9087 7.75475 16.1102 7.77864L23.1148 8.60921C23.6091 8.66782 23.807 9.27897 23.4416 9.61694L18.2638 14.4061C18.1148 14.5438 18.0485 14.7488 18.0881 14.9478L19.4622 21.8658C19.5593 22.354 19.0396 22.7323 18.6053 22.4892L12.4507 19.0432C12.2737 18.9441 12.0586 18.9446 11.8816 19.0437L5.72641 22.4883C5.29205 22.7314 4.7715 22.354 4.86851 21.8658L6.2429 14.9483C6.28244 14.7493 6.21629 14.5438 6.06735 14.406L0.888855 9.61676Z\"\n fill=\"transparent\"\n className=\"stroke-gray-stroke-emphasis\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nfunction getStarState(starIndex: number, value: number): RatingStarState {\n const starValue = starIndex + 1;\n if (value >= starValue) {\n return \"full\";\n }\n if (value >= starValue - 0.5) {\n return \"half\";\n }\n return \"empty\";\n}\n\nfunction Rating({\n value,\n onChange,\n maxStars = 5,\n readOnly = false,\n labels,\n size = \"md\",\n className,\n classNameContainer,\n classNameLabels,\n}: RatingProps) {\n const [internalValue, setInternalValue] = useState(value ?? 0);\n const [hoverIndex, setHoverIndex] = useState<number | null>(null);\n\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const handleClick = (starIndex: number) => {\n if (readOnly) return;\n\n const newValue = starIndex + 1;\n\n if (!isControlled) {\n setInternalValue(newValue);\n }\n\n onChange?.(newValue);\n };\n\n const handleMouseEnter = (starIndex: number) => {\n if (readOnly) return;\n setHoverIndex(starIndex);\n };\n\n const handleMouseLeave = () => {\n if (readOnly) return;\n setHoverIndex(null);\n };\n\n return (\n <div\n data-slot=\"rating\"\n className={cn(\"inline-flex w-fit flex-col gap-2\", className)}\n >\n <div\n className={cn(\"inline-flex flex-row gap-1\", classNameContainer)}\n onMouseLeave={handleMouseLeave}\n >\n {Array.from({ length: maxStars }, (_, index) => {\n const isHovering = hoverIndex !== null;\n const isWithinHover = isHovering && index <= hoverIndex;\n const isExactHover = hoverIndex === index;\n\n const starState = isHovering\n ? isWithinHover\n ? \"full\"\n : \"empty\"\n : getStarState(index, currentValue);\n\n return (\n <button\n key={index}\n type=\"button\"\n disabled={readOnly}\n onClick={() => handleClick(index)}\n onMouseEnter={() => handleMouseEnter(index)}\n className={RatingButtonVariants({ size, readOnly })}\n aria-label={`Rate ${index + 1} out of ${maxStars}`}\n >\n <StarIcon\n state={starState}\n className={\n isExactHover && !readOnly\n ? RatingStarHoveredVariants({ size })\n : RatingStarVariants({ size })\n }\n />\n </button>\n );\n })}\n </div>\n {labels && labels.length === 2 && (\n <div className={cn(RatingLabelVariants({ size }), classNameLabels)}>\n <span className=\"truncate\">{labels[0]}</span>\n <span className=\"truncate text-right\">{labels[1]}</span>\n </div>\n )}\n </div>\n );\n}\n\nexport {\n Rating,\n RatingButtonVariants,\n RatingLabelVariants,\n RatingStarVariants,\n};\nexport type { RatingProps, RatingSize, RatingStarState };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { ScrollArea as ScrollAreaPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit]\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollBar orientation=\"horizontal\" />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-px\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-px\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-gray-stroke-muted\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n","\"use client\";\n\nimport { Check, ChevronDown, ChevronUp } from \"@medway-ui/icons\";\nimport { Select as SelectPrimitive } from \"radix-ui\";\nimport {\n createContext,\n useContext,\n HTMLAttributes,\n ComponentProps,\n} from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { cva } from \"class-variance-authority\";\n\nexport type SelectSize = \"md\" | \"lg\";\n\ninterface SelectProps extends ComponentProps<typeof SelectPrimitive.Root> {\n invalid?: boolean;\n size?: SelectSize;\n}\n\nconst SelectContext = createContext<{ invalid: boolean; size: SelectSize }>({\n invalid: false,\n size: \"lg\",\n});\n\nfunction Select({ invalid = false, size = \"lg\", ...props }: SelectProps) {\n return (\n <SelectContext.Provider value={{ invalid, size }}>\n <SelectPrimitive.Root data-slot=\"select\" {...props} />\n </SelectContext.Provider>\n );\n}\n\ninterface SelectLabelProps extends HTMLAttributes<HTMLLabelElement> {\n htmlFor?: string;\n}\n\nfunction SelectWrapper({\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"group relative flex flex-col gap-2\", className)}\n data-slot=\"select-wrapper\"\n {...props}\n />\n );\n}\n\nfunction SelectLabel({ className, children, ...props }: SelectLabelProps) {\n return (\n <label\n className={cn(\n \"pointer-events-none absolute start-3 top-0 origin-left -translate-y-1/2 bg-surface-card px-1 text-xs font-medium text-gray-foreground transition-all duration-200 ease-out\",\n // Floating label styles\n \"group-has-[[data-slot=select-trigger][data-placeholder]:not([data-state=open])]:start-4 group-has-[[data-slot=select-trigger][data-placeholder]:not([data-state=open])]:top-1/2 group-has-[[data-slot=select-trigger][data-placeholder]:not([data-state=open])]:px-0 group-has-[[data-slot=select-trigger][data-placeholder]:not([data-state=open])]:text-md group-has-[[data-slot=select-trigger][data-placeholder]:not([data-state=open])]:font-normal group-has-[[data-slot=select-trigger][data-placeholder]:not([data-state=open])]:text-gray-foreground\",\n \"group-has-[[data-slot=select-trigger][data-size=md]]:group-has-[[data-slot=select-trigger][data-placeholder]:not([data-state=open])]:!text-sm\",\n className\n )}\n data-slot=\"select-label\"\n {...props}\n >\n {children}\n </label>\n );\n}\n\nfunction SelectGroup({\n ...props\n}: ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({\n ...props\n}: ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nconst selectVariants = cva(\n [\n \"shadow-xs flex w-full items-center justify-between gap-2 rounded-md border-2 border-gray-stroke-muted bg-surface-card px-4 py-3 text-left text-gray-foreground outline-none transition-[color,box-shadow] hover:border-gray-stroke-emphasis hover:ring-[3px] hover:ring-state-focus disabled:cursor-default disabled:bg-gray-background-soft-muted disabled:hover:border-gray-stroke-muted disabled:hover:ring-0 aria-[invalid]:border-feedback-error-stroke aria-[invalid]:hover:ring-[3px] aria-[invalid]:hover:ring-state-error data-[placeholder]:text-gray-foreground-emphasis *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 disabled:data-[placeholder]:text-gray-foreground-muted [&>span]:line-clamp-1 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ],\n {\n variants: {\n size: {\n lg: [\n \"h-12 max-h-12 text-md\",\n \"group-has-[[data-slot=select-label]]:h-14\",\n ],\n md: [\n \"h-10 max-h-10 text-sm\",\n \"group-has-[[data-slot=select-label]]:h-11\",\n ],\n },\n },\n defaultVariants: {\n size: \"lg\",\n },\n }\n);\n\nfunction SelectTrigger({\n className,\n children,\n ...props\n}: ComponentProps<typeof SelectPrimitive.Trigger>) {\n const { invalid, size } = useContext(SelectContext);\n\n return (\n <SelectPrimitive.Trigger\n className={cn(\n selectVariants({ size }),\n !invalid && \"[&:not([data-placeholder])]:border-gray-stroke-emphasis\",\n // Floating label styles\n \"group-has-[[data-slot=select-label]]:py-3 group-has-[[data-slot=select-label]]:data-[placeholder]:text-transparent\",\n className\n )}\n data-slot=\"select-trigger\"\n data-size={size}\n aria-invalid={invalid || undefined}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown\n className={cn(\"shrink-0 text-gray-foreground\")}\n size={size === \"md\" ? 20 : 24}\n strokeWidth={1.6}\n />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"popper\",\n ...props\n}: ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={cn(\n \"relative z-50 max-h-[min(24rem,var(--radix-select-content-available-height))] min-w-32 overflow-hidden rounded-md border border-gray-stroke-muted bg-surface-elevated text-gray-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 [&_[role=group]]:py-1\",\n position === \"popper\" &&\n \"w-full min-w-[var(--radix-select-trigger-width)] data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n data-slot=\"select-content\"\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-2\",\n position === \"popper\" && \"h-[var(--radix-select-trigger-height)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectHeader({\n className,\n ...props\n}: ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n className={cn(\n \"px-2 py-2 text-xs font-medium text-gray-foreground-muted\",\n className\n )}\n data-slot=\"select-header\"\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: ComponentProps<typeof SelectPrimitive.Item>) {\n const { size } = useContext(SelectContext);\n\n return (\n <SelectPrimitive.Item\n className={cn(\n \"data-disabled:pointer-events-none relative flex w-full cursor-default select-none items-center rounded px-2 font-medium text-gray-foreground outline-none hover:cursor-pointer hover:bg-secondary-background-soft-emphasis\",\n size === \"lg\" && \"py-2.5 text-base\",\n size === \"md\" && \"py-2 text-sm\",\n className\n )}\n data-slot=\"select-item\"\n {...props}\n >\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n <span className=\"absolute end-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check\n size={20}\n strokeWidth={2}\n className=\"text-secondary-foreground\"\n />\n </SelectPrimitive.ItemIndicator>\n </span>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n className={cn(\"-mx-1 my-1 h-px bg-gray-stroke-muted\", className)}\n data-slot=\"select-separator\"\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n data-slot=\"select-scroll-up-button\"\n {...props}\n >\n <ChevronUp size={16} strokeWidth={1.6} className=\"text-gray-foreground\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n data-slot=\"select-scroll-down-button\"\n {...props}\n >\n <ChevronDown\n size={24}\n strokeWidth={1.6}\n className=\"text-gray-foreground\"\n />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nfunction SelectText({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n const { invalid } = useContext(SelectContext);\n\n return (\n <span\n className={cn(\n \"-mt-1 text-xs\",\n invalid ? \"text-feedback-error-foreground\" : \"text-gray-foreground\",\n className\n )}\n data-slot=\"select-text\"\n {...props}\n />\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectHeader,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectText,\n SelectTrigger,\n SelectValue,\n SelectWrapper,\n selectVariants,\n};\n","\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Tabs as TabsPrimitive } from \"radix-ui\";\nimport {\n createContext,\n useContext,\n type ComponentProps,\n type ReactNode,\n} from \"react\";\n\nimport { Badge as BadgeComponent, BadgeProps } from \"@/components/Badge\";\nimport { ScrollArea, ScrollBar } from \"@/components/ScrollArea\";\nimport { cn } from \"@/lib/utils\";\n\ntype SegmentSize = \"sm\" | \"md\" | \"lg\";\n\nconst SegmentControlContext = createContext<{\n size: SegmentSize;\n} | null>(null);\n\nfunction SegmentControl({\n className,\n size = \"md\",\n children,\n ...props\n}: ComponentProps<typeof TabsPrimitive.Root> & {\n size?: SegmentSize;\n}) {\n return (\n <SegmentControlContext.Provider value={{ size }}>\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n >\n {children}\n </TabsPrimitive.Root>\n </SegmentControlContext.Provider>\n );\n}\n\ninterface SegmentControlListProps\n extends ComponentProps<typeof TabsPrimitive.List> {\n containerClassName?: string;\n}\n\nfunction SegmentControlList({\n className,\n containerClassName,\n ...props\n}: SegmentControlListProps) {\n return (\n <ScrollArea\n className={cn(\n \"[&_[data-slot=scroll-area-scrollbar][data-orientation=horizontal]]:h-1\",\n containerClassName\n )}\n >\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(\n \"inline-flex w-fit items-center justify-center rounded-md bg-gray-background-soft p-0.5\",\n className\n )}\n {...props}\n />\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n );\n}\n\ninterface SegmentControlTriggerProps\n extends ComponentProps<typeof TabsPrimitive.Trigger> {\n icon?: ReactNode;\n badge?: number | string;\n badgeVariant?: BadgeProps[\"variant\"];\n}\n\nconst segmentControlTriggerVariants = cva(\n \"shadow-transparent data-[state=active]:shadow-level-1 group inline-flex items-center justify-center gap-2.5 whitespace-nowrap rounded-[6px] font-medium text-gray-foreground outline-none data-[state=active]:bg-surface-card data-[state=active]:text-primary-foreground [&_svg]:shrink-0 [&_svg]:text-inherit disabled:text-gray-foreground-muted disabled:pointer-events-none\",\n {\n variants: {\n size: {\n sm: \"max-h-7 px-3 py-1.5 text-xs [&_svg]:size-4\",\n md: \"max-h-9 px-4 py-2 text-sm [&_svg]:size-5\",\n lg: \"max-h-11 px-4 py-2.5 text-md [&_svg]:size-6\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nfunction SegmentControlTrigger({\n className,\n icon,\n badge,\n badgeVariant,\n children,\n ...props\n}: SegmentControlTriggerProps) {\n const shouldShowBadge = (value: number | string | undefined) => {\n return (\n value != null &&\n value !== 0 &&\n value !== \"\" &&\n value !== \"0\" &&\n !props.disabled\n );\n };\n const ctx = useContext(SegmentControlContext);\n const size = ctx?.size ?? \"md\";\n\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(segmentControlTriggerVariants({ size, className }))}\n {...props}\n >\n {icon}\n {children && (\n <span className=\"inline-grid [grid-template-areas:'stack']\">\n <span\n aria-hidden=\"true\"\n className=\"invisible font-semibold [grid-area:stack]\"\n >\n {children}\n </span>\n <span className=\"font-medium [grid-area:stack] group-data-[state=active]:font-semibold\">\n {children}\n </span>\n </span>\n )}\n {shouldShowBadge(badge) && (\n <BadgeComponent size={size} variant={badgeVariant}>\n {String(badge)}\n </BadgeComponent>\n )}\n </TabsPrimitive.Trigger>\n );\n}\n\nfunction SegmentControlContent({\n className,\n ...props\n}: ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n );\n}\n\nexport {\n SegmentControl,\n SegmentControlContent,\n SegmentControlList,\n SegmentControlTrigger,\n segmentControlTriggerVariants,\n};\nexport type { SegmentControlListProps, SegmentControlTriggerProps };\n","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n\n/**\n * Is empty string\n *\n * @param {unknown} value\n * @returns {boolean} Whether the value is an empty string\n */\nexport const isEmptyString = (value: unknown): boolean => value === '';\n\n/**\n * Check if a component has an accessibility prop\n *\n * @param {object} props\n * @returns {boolean} Whether the component has an accessibility prop\n */\nexport const hasA11yProp = (props: Record<string, any>) => {\n for (const prop in props) {\n if (prop.startsWith('aria-') || prop === 'role' || prop === 'title') {\n return true;\n }\n }\n};\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses, hasA11yProp } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) =>\n createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...(!children && !hasA11yProp(rest) && { 'aria-hidden': 'true' }),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n ),\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className,\n ),\n ...props,\n }),\n );\n\n Component.displayName = toPascalCase(iconName);\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n];\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNiA2IDE4IiAvPgogIDxwYXRoIGQ9Im02IDYgMTIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('x', __iconNode);\n\nexport default X;\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { Dialog as SheetPrimitive } from \"radix-ui\";\nimport { XIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Sheet({ ...props }: ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nfunction SheetTrigger({\n ...props\n}: ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetClose({ ...props }: ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\nfunction SheetPortal({\n ...props\n}: ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\nfunction SheetOverlay({\n className,\n ...props\n}: ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n \"bg-black/50 fixed inset-0 z-50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n );\n}\n\ninterface SheetContentProps\n extends ComponentProps<typeof SheetPrimitive.Content> {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n ...props\n}: SheetContentProps) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n \"fixed z-50 flex flex-col gap-4 bg-background shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out\",\n side === \"right\" &&\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n side === \"left\" &&\n \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n side === \"top\" &&\n \"inset-x-0 top-0 h-auto border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n side === \"bottom\" &&\n \"inset-x-0 bottom-0 h-auto border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n className\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"rounded-xs focus:outline-hidden absolute right-4 top-4 opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\nfunction SheetHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-1.5 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetTitle({\n className,\n ...props\n}: ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\"font-semibold text-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\nexport type { SheetContentProps };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nfunction Skeleton({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-md bg-gray-150\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","\"use client\";\n\nimport {\n createContext,\n useContext,\n useState,\n useCallback,\n useEffect,\n useMemo,\n isValidElement,\n cloneElement,\n type ComponentProps,\n type ReactNode,\n type CSSProperties,\n type ElementType,\n} from \"react\";\nimport { Slot } from \"radix-ui\";\nimport { VariantProps, cva } from \"class-variance-authority\";\nimport { HamburgerMd, ChevronRightMd, ChevronLeftMd } from \"@medway-ui/icons\";\n\nimport { useIsMobile } from \"@/hooks/use-mobile\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/Button\";\nimport { Input } from \"@/components/Input\";\nimport { Separator } from \"@/components/Separator\";\nimport { Sheet, SheetContent } from \"@/components/Sheet\";\nimport { Skeleton } from \"@/components/Skeleton\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/Tooltip\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open]\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n className={cn(\n \"group/sidebar-wrapper has-data-[variant=inset]:bg-surface-navigation flex min-h-svh w-full\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n containerClassName,\n children,\n ...props\n}: ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n containerClassName?: string;\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"flex h-full w-[var(--sidebar-width)] flex-col bg-surface-navigation text-gray-foreground\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className={cn(\n \"w-[var(--sidebar-width-mobile)] bg-surface-navigation p-0 text-gray-foreground [&>button]:hidden\",\n className\n )}\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className={cn(\n \"group peer hidden text-gray-foreground md:block\",\n className\n )}\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n \"relative w-[var(--sidebar-width)] bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)]\"\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-[var(--sidebar-width)] border-gray-stroke-muted transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)] group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n containerClassName\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"flex h-full w-full flex-col bg-surface-navigation group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-gray-stroke-muted group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SidebarTrigger({\n className,\n onClick,\n sizeIcon = \"size-5\",\n icon = <HamburgerMd className={sizeIcon} />,\n showTooltip = false,\n tooltipContent,\n enableHover = false,\n ...props\n}: ComponentProps<typeof Button> & {\n icon?: ReactNode;\n sizeIcon?: string;\n showTooltip?: boolean;\n tooltipContent?: { open?: string; closed?: string };\n enableHover?: boolean;\n}) {\n const { toggleSidebar, open, isMobile } = useSidebar();\n const [isHovered, setIsHovered] = useState(false);\n\n const defaultTooltipContent = {\n open: \"Esconder\",\n closed: \"Mostrar\",\n };\n\n const tooltip = tooltipContent || defaultTooltipContent;\n\n // Determina qual ícone mostrar baseado no hover e estado do sidebar\n const getDisplayIcon = () => {\n if (enableHover && isHovered) {\n return open ? (\n <ChevronLeftMd className={sizeIcon} />\n ) : (\n <ChevronRightMd className={sizeIcon} />\n );\n }\n return icon;\n };\n\n const button = (\n <button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n className={cn(\n \"flex min-h-8 min-w-8 items-center justify-center rounded-full bg-surface-elevated text-gray-foreground transition-all duration-200 hover:shadow-[0px_0px_2px_0px_rgba(24,26,30,0.16),0px_2px_4px_0px_rgba(24,26,30,0.08)] [&>svg]:text-gray-foreground\",\n className\n )}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n onMouseEnter={\n !isMobile && enableHover ? () => setIsHovered(true) : undefined\n }\n onMouseLeave={\n !isMobile && enableHover ? () => setIsHovered(false) : undefined\n }\n {...props}\n >\n {getDisplayIcon()}\n\n <span className=\"sr-only\">Toggle Sidebar</span>\n </button>\n );\n\n if (!showTooltip || isMobile) {\n return button;\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\">\n {open ? tooltip.open : tooltip.closed}\n </TooltipContent>\n </Tooltip>\n );\n}\n\nfunction SidebarRail({ className, ...props }: ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-gray-stroke-muted group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-surface-navigation\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInset({ className, ...props }: ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n \"relative flex w-full flex-1 flex-col bg-surface-navigation\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInput({ className, ...props }: ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\n \"bg-bg-surface-navigation h-8 w-full shadow-none\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-0.5 px-4 pt-3\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\n \"flex flex-col gap-0.5 px-4 pb-3 [[data-state=collapsed]_&]:px-2\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({\n className,\n ...props\n}: ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-gray-stroke-muted\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-0.5 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroup({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\n \"relative flex w-full min-w-0 flex-col p-2 px-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: ComponentProps<\"div\"> & { asChild?: boolean }) {\n const Comp = (asChild ? Slot.Slot : \"div\") as ElementType;\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"outline-hidden flex h-12 shrink-0 items-center whitespace-nowrap rounded-md px-2 text-xs font-semibold uppercase text-gray-foreground-muted ring-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:mt-0 group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: ComponentProps<\"button\"> & { asChild?: boolean }) {\n const Comp = (asChild ? Slot.Slot : \"button\") as ElementType;\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"outline-hidden absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-gray-foreground ring-ring transition-transform hover:bg-secondary-background-soft-emphasis focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenu({ className, ...props }: ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({\n className,\n isActive,\n children,\n ...props\n}: ComponentProps<\"li\"> & { isActive?: boolean }) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative hover:cursor-pointer\", className)}\n {...props}\n >\n {isActive && (\n <span\n className=\"absolute -left-4 top-0 h-full w-0.5 bg-secondary-stroke-emphasis\"\n aria-hidden=\"true\"\n />\n )}\n {children}\n </li>\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button font-medium flex w-full items-center gap-2.5 overflow-hidden rounded-md p-[.55rem] text-left text-sm outline-hidden ring-ring transition-[width,height,padding] hover:bg-secondary-background-soft-emphasis focus-visible:ring-2 active:text-secondary-foreground active:font-semibold disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:text-secondary-foreground data-[active=true]:font-semibold data-[active=true]:hover:bg-secondary-background-soft-emphasis data-[active=true]:hover:text-secondary-foreground group-data-[collapsible=icon]:size-10! group-data-[collapsible=icon]:p-2.5! [&>span:last-child]:truncate [&>svg]:data-[active=true]:stroke-[2.2] [&>svg]:size-5 [&>svg]:shrink-0 mx-auto\",\n {\n variants: {\n variant: {\n default: \"hover:bg-secondary-background-soft-emphasis\",\n section: \"[[data-state=collapsed]_&]:p-[5px]\",\n outline:\n \"bg-surface-navigation shadow-[0_0_0_1px_hsl(var(--color-border))] hover:bg-secondary-background-soft-emphasis hover:shadow-[0_0_0_1px_hsl(var(--secondary))]\",\n },\n size: {\n sm: \"h-8 text-xs\",\n md: \"h-10 text-sm\",\n lg: \"h-12 text-md group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"md\",\n tooltip,\n className,\n ...props\n}: ComponentProps<\"button\"> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = (asChild ? Slot.Slot : \"button\") as ElementType;\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = (asChild ? Slot.Slot : \"button\") as ElementType;\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"outline-hidden absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-gray-foreground ring-ring transition-transform hover:bg-secondary-background-soft-emphasis focus-visible:ring-2 peer-hover/menu-button:text-secondary-stroke-emphasis [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-secondary md:opacity-0\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuBadge({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-gray-foreground\",\n \"peer-hover/menu-button:text-secondary peer-data-[active=true]/menu-button:text-secondary\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: ComponentProps<\"div\"> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-0.5 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"max-w-(--skeleton-width) h-4 flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as CSSProperties\n }\n />\n </div>\n );\n}\n\nfunction SidebarMenuSub({ className, ...props }: ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-gray-stroke-muted px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItemTitle({\n icon,\n title,\n}: {\n icon?: ReactNode;\n title: string;\n}) {\n const { state, isMobile } = useSidebar();\n\n return (\n <>\n {isValidElement(icon)\n ? cloneElement(icon, { strokeWidth: 1.8 } as any)\n : icon}\n <span\n className={cn(\n \"whitespace-nowrap\",\n state === \"collapsed\" && \"opacity-0\",\n isMobile && \"opacity-100\"\n )}\n >\n {title}\n </span>\n </>\n );\n}\n\nfunction SidebarMenuItemCollapse() {\n return (\n <div className=\"ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90\">\n <ChevronRightMd size={20} strokeWidth={1.5} />\n </div>\n );\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n}) {\n const Comp = (asChild ? Slot.Slot : \"a\") as ElementType;\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"outline-hidden flex h-9 min-w-0 -translate-x-px items-center gap-0.5 overflow-hidden rounded-md px-2 font-medium text-gray-foreground ring-ring hover:bg-secondary-background-soft-emphasis focus-visible:ring-2 active:font-semibold active:text-secondary-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-gray-foreground\",\n \"data-[active=true]:font-semibold data-[active=true]:text-secondary-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuItemTitle,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarMenuItemCollapse,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n","\"use client\";\n\nimport { useState, type ReactNode, type ComponentProps } from \"react\";\nimport { Switch as SwitchPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst THUMB_SIZES = {\n sm: \"size-2\",\n md: \"size-3\",\n lg: \"size-4\",\n} as const;\n\nconst ICON_SIZES = {\n sm: \"[&_svg]:size-2\",\n md: \"[&_svg]:size-3\",\n lg: \"[&_svg]:size-3.5\",\n} as const;\n\nconst THUMB_TRANSLATE = {\n sm: \"data-[state=checked]:translate-x-[11px] data-[state=checked]:rtl:-translate-x-[11px] data-[state=checked]:data-[disabled]:translate-x-[10px] data-[state=checked]:data-[disabled]:rtl:-translate-x-[10px]\",\n md: \"data-[state=checked]:translate-x-[15px] data-[state=checked]:rtl:-translate-x-[15px] data-[state=checked]:data-[disabled]:translate-x-[14px] data-[state=checked]:data-[disabled]:rtl:-translate-x-[14px]\",\n lg: \"data-[state=checked]:translate-x-[19px] data-[state=checked]:rtl:-translate-x-[19px] data-[state=checked]:data-[disabled]:translate-x-[18px] data-[state=checked]:data-[disabled]:rtl:-translate-x-[18px]\",\n} as const;\n\nconst switchVariants = cva(\n \"peer inline-flex shrink-0 items-center rounded-pill outline-none transition-all disabled:pointer-events-none focus:outline-0\",\n {\n variants: {\n variant: {\n regular:\n \"border-2 border-gray-stroke-muted data-[disabled]:cursor-default data-[disabled]:!bg-gray-background-soft-muted data-[state=checked]:bg-primary-background-fill data-[state=unchecked]:bg-surface-card data-[state=checked]:border-transparent data-[disabled]:data-[state=checked]:bg-gray-background-soft-muted data-[disabled]:data-[state=checked]:border-gray-stroke-muted enabled:hover:ring-4 data-[state=unchecked]:enabled:hover:ring-state-hover data-[state=checked]:enabled:hover:ring-state-active data-[state=unchecked]:enabled:hover:border-gray-stroke data-[state=checked]:enabled:hover:bg-primary-background-fill-emphasis\",\n },\n size: {\n sm: \"h-4 w-6\",\n md: \"h-5 w-8\",\n lg: \"h-6 w-10\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n size: \"md\",\n },\n }\n);\n\ninterface SwitchProps\n extends ComponentProps<typeof SwitchPrimitive.Root>,\n VariantProps<typeof switchVariants> {\n checkedIcon?: ReactNode;\n uncheckedIcon?: ReactNode;\n}\n\nfunction Switch({\n className,\n size,\n variant,\n checkedIcon,\n uncheckedIcon,\n checked,\n defaultChecked,\n ...props\n}: SwitchProps) {\n const [internalChecked, setInternalChecked] = useState(\n defaultChecked || false\n );\n\n const isControlled = checked !== undefined;\n const isChecked = isControlled ? checked : internalChecked;\n\n const hasIcons = checkedIcon || uncheckedIcon;\n\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\"group\", switchVariants({ size, variant }), className)}\n checked={checked}\n defaultChecked={defaultChecked}\n onCheckedChange={(checked) => {\n if (!isControlled) {\n setInternalChecked(checked);\n }\n props.onCheckedChange?.(checked);\n }}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"pointer-events-none flex items-center justify-center rounded-full ring-0 transition-transform data-[state=unchecked]:translate-x-0.5 data-[disabled]:!bg-gray-background-fill-muted data-[state=checked]:bg-primary-foreground-onfill data-[state=unchecked]:bg-gray-foreground-muted data-[state=unchecked]:group-hover:bg-gray-foreground data-[state=unchecked]:group-data-[disabled]:group-hover:bg-gray-foreground-muted\",\n hasIcons && \"!bg-transparent data-[disabled]:!bg-transparent\",\n THUMB_SIZES[size || \"md\"],\n THUMB_TRANSLATE[size || \"md\"]\n )}\n >\n {hasIcons && (\n <>\n {isChecked && checkedIcon && (\n <span\n className={cn(\n \"flex items-center justify-center text-primary-foreground-onfill group-data-[disabled]:text-gray-300\",\n ICON_SIZES[size || \"md\"]\n )}\n >\n {checkedIcon}\n </span>\n )}\n {!isChecked && uncheckedIcon && (\n <span\n className={cn(\n \"flex items-center justify-center text-gray-foreground group-data-[disabled]:text-gray-300\",\n ICON_SIZES[size || \"md\"]\n )}\n >\n {uncheckedIcon}\n </span>\n )}\n </>\n )}\n </SwitchPrimitive.Thumb>\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch, switchVariants };\nexport type { SwitchProps };\n","\"use client\";\n\nimport { createContext, useContext, useState, type ReactNode } from \"react\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/DropdownMenu\";\n\ninterface SwitcherContextValue {\n value?: string;\n onValueChange?: (value: string) => void;\n}\n\nconst SwitcherContext = createContext<SwitcherContextValue>({});\n\ninterface SwitcherItem {\n id: string;\n label: string;\n icon?: string;\n onClick?: () => void;\n}\n\ninterface SwitcherGroup {\n label: string;\n items: SwitcherItem[];\n}\n\ninterface SwitcherProps {\n children: ReactNode;\n value?: string;\n onValueChange?: (value: string) => void;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\ninterface SwitcherTriggerProps {\n children: ReactNode;\n asChild?: boolean;\n className?: string;\n}\n\ninterface SwitcherContentProps {\n children: ReactNode;\n className?: string;\n align?: \"start\" | \"center\" | \"end\";\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n}\n\ninterface SwitcherGroupProps {\n children: ReactNode;\n label?: string;\n}\n\ninterface SwitcherItemProps {\n children: ReactNode;\n value?: string;\n onClick?: () => void;\n icon?: string | ReactNode;\n}\n\ninterface SwitcherFooterProps {\n children: ReactNode;\n onClick?: () => void;\n icon?: ReactNode;\n}\n\nfunction Switcher({\n children,\n value,\n onValueChange,\n open,\n defaultOpen,\n onOpenChange,\n}: SwitcherProps) {\n const [internalValue, setInternalValue] = useState(value || \"\");\n\n const contextValue: SwitcherContextValue = {\n value: value || internalValue,\n onValueChange: onValueChange || setInternalValue,\n };\n\n return (\n <SwitcherContext.Provider value={contextValue}>\n <DropdownMenu\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n >\n {children}\n </DropdownMenu>\n </SwitcherContext.Provider>\n );\n}\n\nfunction SwitcherTrigger({\n children,\n asChild = true,\n className,\n}: SwitcherTriggerProps) {\n return (\n <DropdownMenuTrigger className={className} asChild={asChild}>\n {children}\n </DropdownMenuTrigger>\n );\n}\n\nfunction SwitcherContent({\n children,\n align = \"center\",\n side = \"right\",\n className,\n}: SwitcherContentProps) {\n return (\n <DropdownMenuContent className={className} align={align} side={side}>\n {children}\n </DropdownMenuContent>\n );\n}\n\nfunction SwitcherGroup({ children, label }: SwitcherGroupProps) {\n const { value, onValueChange } = useContext(SwitcherContext);\n\n if (label) {\n return (\n <>\n <DropdownMenuLabel>{label}</DropdownMenuLabel>\n <DropdownMenuRadioGroup value={value} onValueChange={onValueChange}>\n {children}\n </DropdownMenuRadioGroup>\n </>\n );\n }\n\n return (\n <DropdownMenuRadioGroup value={value} onValueChange={onValueChange}>\n {children}\n </DropdownMenuRadioGroup>\n );\n}\n\nfunction SwitcherItem({ children, value, onClick, icon }: SwitcherItemProps) {\n const handleClick = () => {\n if (onClick) {\n onClick();\n }\n };\n\n if (value) {\n return (\n <DropdownMenuRadioItem value={value} onClick={handleClick}>\n {typeof icon === \"string\" ? (\n // eslint-disable-next-line @next/next/no-img-element\n <img src={icon} alt=\"\" width={20} height={14} />\n ) : (\n icon\n )}\n {children}\n </DropdownMenuRadioItem>\n );\n }\n\n return (\n <DropdownMenuItem onClick={handleClick}>\n {typeof icon === \"string\" ? (\n // eslint-disable-next-line @next/next/no-img-element\n <img src={icon} alt=\"\" width={20} height={14} />\n ) : (\n icon\n )}\n {children}\n </DropdownMenuItem>\n );\n}\n\nfunction SwitcherFooter({ children, onClick, icon }: SwitcherFooterProps) {\n return (\n <DropdownMenuItem onClick={onClick}>\n {icon}\n {children}\n </DropdownMenuItem>\n );\n}\n\nfunction SwitcherSeparator() {\n return <DropdownMenuSeparator />;\n}\n\nexport {\n Switcher,\n SwitcherTrigger,\n SwitcherContent,\n SwitcherGroup,\n SwitcherItem,\n SwitcherFooter,\n SwitcherSeparator,\n};\n\nexport type {\n SwitcherProps,\n SwitcherTriggerProps,\n SwitcherContentProps,\n SwitcherGroupProps,\n SwitcherItemProps,\n SwitcherFooterProps,\n SwitcherGroup as SwitcherGroupType,\n SwitcherItem as SwitcherItemType,\n};\n","\"use client\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Tabs as TabsPrimitive } from \"radix-ui\";\nimport {\n createContext,\n useContext,\n useState,\n useCallback,\n useEffect,\n useRef,\n isValidElement,\n cloneElement,\n type ComponentProps,\n type ReactNode,\n type ReactElement,\n} from \"react\";\n\nimport { screens } from \"@/assets/js/tokens\";\nimport { cn } from \"@/lib/utils\";\n\ntype TabsVariant = \"header\" | \"standalone\";\ntype TabsSize = \"md\" | \"lg\";\n\ninterface TabsProps\n extends ComponentProps<typeof TabsPrimitive.Root>,\n VariantProps<typeof tabsListVariants> {\n size?: TabsSize;\n responsive?: boolean;\n}\n\ntype TabsListProps = ComponentProps<typeof TabsPrimitive.List>;\n\ninterface TabsTriggerProps\n extends ComponentProps<typeof TabsPrimitive.Trigger> {\n icon?: ReactNode;\n badge?: ReactNode;\n}\n\nconst TabsContext = createContext<{\n variant: TabsVariant;\n size: TabsSize;\n responsiveSize: TabsSize;\n} | null>(null);\n\nconst DEBOUNCE_DELAY = 150;\nconst SCROLL_PADDING = 16;\nconst FADE_GRADIENT_WIDTH = \"w-8\";\n\nfunction useTabsContext() {\n const context = useContext(TabsContext);\n if (!context) {\n throw new Error(\"useTabsContext must be used within a Tabs component.\");\n }\n return context;\n}\n\nfunction useDebounce<T extends (...args: unknown[]) => void>(\n callback: T,\n delay: number\n): T {\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n return useCallback(\n ((...args: Parameters<T>) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n timeoutRef.current = setTimeout(() => callback(...args), delay);\n }) as T,\n [callback, delay]\n );\n}\n\nconst tabsListVariants = cva(\n \"relative inline-flex min-w-full items-center justify-between gap-0 bg-surface-section\",\n {\n variants: {\n variant: {\n standalone: \"rounded-lg border border-gray-stroke-muted px-6\",\n header:\n \"border-b border-gray-stroke-muted px-3.5 sm:px-6 lg:px-8 bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"standalone\",\n },\n }\n);\n\nconst tabsTriggerVariants = cva(\n [\n \"inline-flex min-w-fit flex-1 items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n \"disabled:pointer-events-none disabled:text-gray-foreground-muted\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:transition-all\",\n \"relative font-medium text-gray-foreground hover:text-gray-foreground data-[state=active]:text-primary-foreground data-[state=active]:font-semibold\",\n ],\n {\n variants: {\n variant: {\n standalone: \"px-3.5 md:px-10 lg:px-16\",\n header: \"px-4\",\n },\n size: {\n md: \"h-[46px] text-sm\",\n lg: \"h-[54px] text-base\",\n },\n },\n defaultVariants: {\n variant: \"standalone\",\n size: \"md\",\n },\n }\n);\n\nconst tabsWrapperVariants = cva(\"relative min-w-0 max-w-full\", {\n variants: {\n variant: {\n standalone: \"\",\n header: \"px-3.5 sm:px-6 lg:px-8\",\n },\n },\n defaultVariants: {\n variant: \"standalone\",\n },\n});\n\nconst fadeGradientVariants = cva(\n [\n \"pointer-events-none absolute top-0 z-10 h-full transition-opacity duration-200\",\n FADE_GRADIENT_WIDTH,\n ],\n {\n variants: {\n side: {\n left: \"left-0 bg-gradient-to-r from-background to-transparent\",\n right: \"right-0 bg-gradient-to-l from-background to-transparent\",\n },\n variant: {\n standalone: \"\",\n header: \"\",\n },\n },\n compoundVariants: [\n {\n side: \"left\",\n variant: \"header\",\n class: \"left-3.5 sm:left-6 lg:left-8\",\n },\n {\n side: \"right\",\n variant: \"header\",\n class: \"right-3.5 sm:right-6 lg:right-8\",\n },\n ],\n defaultVariants: {\n side: \"left\",\n variant: \"standalone\",\n },\n }\n);\n\nconst tabsContentVariants = cva(\n \"ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n {\n variants: {\n variant: {\n standalone: \"\",\n header: \"\",\n },\n size: {\n md: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n {\n variant: \"standalone\",\n size: \"md\",\n class: \"m-4\",\n },\n {\n variant: \"standalone\",\n size: \"lg\",\n class: \"m-6\",\n },\n {\n variant: \"header\",\n size: \"md\",\n class: \"my-4\",\n },\n {\n variant: \"header\",\n size: \"lg\",\n class: \"my-6\",\n },\n ],\n defaultVariants: {\n variant: \"standalone\",\n size: \"md\",\n },\n }\n);\n\nfunction Tabs({\n className,\n variant = \"standalone\",\n size = \"md\",\n responsive = true,\n children,\n ...props\n}: TabsProps) {\n const [responsiveSize, setResponsiveSize] = useState<TabsSize>(size);\n\n const handleResize = useCallback(() => {\n if (typeof window === \"undefined\") return;\n\n const tabletPx = parseInt(screens.tablet);\n const mobilePx = parseInt(screens.mobile);\n const width = window.innerWidth;\n\n if (width <= mobilePx || width <= tabletPx) {\n setResponsiveSize(\"md\");\n } else {\n setResponsiveSize(size);\n }\n }, [size]);\n\n const debouncedResize = useDebounce(handleResize, DEBOUNCE_DELAY);\n\n useEffect(() => {\n if (typeof window === \"undefined\" || !responsive) {\n setResponsiveSize(size);\n return;\n }\n\n handleResize();\n window.addEventListener(\"resize\", debouncedResize);\n\n return () => window.removeEventListener(\"resize\", debouncedResize);\n }, [responsive, size, handleResize, debouncedResize]);\n\n return (\n <TabsContext.Provider value={{ variant: variant!, size, responsiveSize }}>\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-variant={variant}\n data-size={responsiveSize}\n className={cn(\n \"flex w-full max-w-full flex-col overflow-hidden\",\n className\n )}\n {...props}\n >\n {children}\n </TabsPrimitive.Root>\n </TabsContext.Provider>\n );\n}\nfunction TabsList({ className, children, ...props }: TabsListProps) {\n const { variant, responsiveSize } = useTabsContext();\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const [showLeftFade, setShowLeftFade] = useState(false);\n const [showRightFade, setShowRightFade] = useState(false);\n const [indicatorStyle, setIndicatorStyle] = useState<{\n left: number;\n width: number;\n } | null>(null);\n\n const checkScroll = useCallback(() => {\n const container = scrollContainerRef.current;\n if (!container) return;\n\n const { scrollLeft, scrollWidth, clientWidth } = container;\n const hasOverflow = scrollWidth > clientWidth;\n\n setShowLeftFade(hasOverflow && scrollLeft > 0);\n setShowRightFade(hasOverflow && scrollLeft < scrollWidth - clientWidth - 1);\n }, []);\n\n const updateIndicator = useCallback(() => {\n const list = listRef.current;\n if (!list) return;\n\n const activeTab = list.querySelector<HTMLElement>('[data-state=\"active\"]');\n if (activeTab) {\n const listRect = list.getBoundingClientRect();\n const tabRect = activeTab.getBoundingClientRect();\n setIndicatorStyle({\n left: tabRect.left - listRect.left,\n width: tabRect.width,\n });\n }\n }, []);\n\n const scrollActiveTabIntoView = useCallback(() => {\n const container = scrollContainerRef.current;\n const list = listRef.current;\n if (!container || !list) return;\n\n const activeTab = list.querySelector<HTMLElement>('[data-state=\"active\"]');\n if (activeTab) {\n const containerRect = container.getBoundingClientRect();\n const tabRect = activeTab.getBoundingClientRect();\n\n if (tabRect.left < containerRect.left) {\n container.scrollBy({\n left: tabRect.left - containerRect.left - SCROLL_PADDING,\n behavior: \"smooth\",\n });\n } else if (tabRect.right > containerRect.right) {\n container.scrollBy({\n left: tabRect.right - containerRect.right + SCROLL_PADDING,\n behavior: \"smooth\",\n });\n }\n }\n }, []);\n\n useEffect(() => {\n const container = scrollContainerRef.current;\n if (!container) return;\n\n checkScroll();\n\n const resizeObserver = new ResizeObserver(() => {\n checkScroll();\n updateIndicator();\n });\n resizeObserver.observe(container);\n\n container.addEventListener(\"scroll\", checkScroll, { passive: true });\n\n return () => {\n resizeObserver.disconnect();\n container.removeEventListener(\"scroll\", checkScroll);\n };\n }, [checkScroll, updateIndicator]);\n\n useEffect(() => {\n updateIndicator();\n }, [updateIndicator, children]);\n\n useEffect(() => {\n const list = listRef.current;\n if (!list) return;\n\n const observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (\n mutation.type === \"attributes\" &&\n mutation.attributeName === \"data-state\"\n ) {\n updateIndicator();\n scrollActiveTabIntoView();\n break;\n }\n }\n });\n\n observer.observe(list, {\n attributes: true,\n subtree: true,\n attributeFilter: [\"data-state\"],\n });\n\n return () => observer.disconnect();\n }, [updateIndicator, scrollActiveTabIntoView]);\n\n return (\n <div\n data-slot=\"tabs-list-wrapper\"\n className={tabsWrapperVariants({ variant })}\n >\n {/* Left fade gradient */}\n <div\n className={cn(\n fadeGradientVariants({ side: \"left\", variant }),\n showLeftFade ? \"opacity-100\" : \"opacity-0\"\n )}\n aria-hidden=\"true\"\n />\n\n {/* Right fade gradient */}\n <div\n className={cn(\n fadeGradientVariants({ side: \"right\", variant }),\n showRightFade ? \"opacity-100\" : \"opacity-0\"\n )}\n aria-hidden=\"true\"\n />\n\n <div\n ref={scrollContainerRef}\n className=\"overflow-x-auto overflow-y-hidden [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\"\n >\n <div ref={listRef} className=\"relative\">\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n data-size={responsiveSize}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n >\n {children}\n </TabsPrimitive.List>\n\n {/* Sliding indicator */}\n {indicatorStyle && (\n <div\n className=\"pointer-events-none absolute bottom-0 h-0.5 bg-secondary-stroke-emphasis transition-all duration-300 ease-out\"\n style={{\n left: indicatorStyle.left,\n width: indicatorStyle.width,\n }}\n aria-hidden=\"true\"\n />\n )}\n </div>\n </div>\n </div>\n );\n}\n\nfunction TabsTrigger({\n className,\n children,\n icon,\n badge,\n ...props\n}: TabsTriggerProps) {\n const { variant, responsiveSize } = useTabsContext();\n const triggerRef = useRef<HTMLButtonElement>(null);\n const [isActive, setIsActive] = useState(false);\n\n useEffect(() => {\n const trigger = triggerRef.current;\n if (!trigger) return;\n\n const checkActiveState = () => {\n setIsActive(trigger.getAttribute(\"data-state\") === \"active\");\n };\n\n checkActiveState();\n\n const observer = new MutationObserver(checkActiveState);\n observer.observe(trigger, {\n attributes: true,\n attributeFilter: [\"data-state\"],\n });\n\n return () => observer.disconnect();\n }, []);\n\n const renderIcon = () => {\n if (!icon) return null;\n\n if (isValidElement(icon)) {\n return cloneElement(icon as ReactElement<{ strokeWidth?: number }>, {\n strokeWidth: isActive ? 2 : 1.6,\n });\n }\n\n return icon;\n };\n\n return (\n <TabsPrimitive.Trigger\n ref={triggerRef}\n data-slot=\"tabs-trigger\"\n data-variant={variant}\n data-size={responsiveSize}\n className={cn(\n tabsTriggerVariants({ variant, size: responsiveSize }),\n className\n )}\n {...props}\n >\n {icon && (\n <span\n data-slot=\"tabs-icon\"\n className=\"flex shrink-0 items-center\"\n aria-hidden=\"true\"\n >\n {renderIcon()}\n </span>\n )}\n <span>{children}</span>\n {badge && (\n <span\n data-slot=\"tabs-badge\"\n className=\"flex shrink-0 items-center\"\n role=\"status\"\n >\n {badge}\n </span>\n )}\n </TabsPrimitive.Trigger>\n );\n}\n\nfunction TabsContent({\n className,\n ...props\n}: ComponentProps<typeof TabsPrimitive.Content>) {\n const { variant, responsiveSize } = useTabsContext();\n\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n data-variant={variant}\n data-size={responsiveSize}\n className={cn(\n tabsContentVariants({ variant, size: responsiveSize }),\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Tabs,\n TabsContent,\n tabsContentVariants,\n TabsList,\n tabsListVariants,\n TabsTrigger,\n tabsTriggerVariants,\n useTabsContext,\n};\nexport type { TabsProps, TabsTriggerProps, TabsVariant, TabsSize };\n","\"use client\";\n\nimport { type ComponentProps, type ElementType, type ReactNode } from \"react\";\nimport { Slot } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { EditPencil } from \"@medway-ui/icons\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst tileVariants = cva(\n \"group/tile relative flex flex-col justify-center rounded-lg gap-0.5 px-5 py-4 cursor-default data-[disabled=true]:pointer-events-none\",\n {\n variants: {\n variant: {\n regular:\n \"bg-surface-settings-on text-primary-foreground fill-primary-foreground data-[disabled=false]:hover:[background:radial-gradient(51.96%_112.02%_at_50%_112.02%,_var(--color-surface-card)_0%,_var(--color-surface-settings-on)_100%)] data-[disabled=true]:bg-surface-disable data-[inactive=true]:bg-surface-settings-off data-[inactive=true]:hover:[background:radial-gradient(51.96%_112.02%_at_50%_112.02%,_var(--color-surface-card)_0%,_var(--color-surface-settings-off)_100%)]\",\n cm: \"bg-cm-background-fill text-cm-foreground-onfill fill-cm-foreground-onfill data-[disabled=false]:hover:[background:radial-gradient(63.78%_137.5%_at_50%_137.5%,_var(--color-cm-background-fill-emphasis)_0%,_var(--color-cm-background-fill)_100%)] data-[disabled=true]:opacity-70 data-[inactive=true]:[filter:brightness(.8)]\",\n go: \"bg-go-background-fill text-go-foreground-onfill fill-go-foreground-onfill data-[disabled=false]:hover:[background:radial-gradient(63.78%_137.5%_at_50%_137.5%,_var(--color-go-background-fill-emphasis)_0%,_var(--color-go-background-fill)_100%)] data-[disabled=true]:opacity-70 data-[inactive=true]:[filter:brightness(.8)]\",\n cir: \"bg-cir-background-fill text-cir-foreground-onfill fill-cir-foreground-onfill data-[disabled=false]:hover:[background:radial-gradient(63.78%_137.5%_at_50%_137.5%,_var(--color-cir-background-fill-emphasis)_0%,_var(--color-cir-background-fill)_100%)] data-[disabled=true]:opacity-70 data-[inactive=true]:[filter:brightness(.8)]\",\n ped: \"bg-ped-background-fill text-ped-foreground-onfill fill-ped-foreground-onfill data-[disabled=false]:hover:[background:radial-gradient(51.96%_112.02%_at_50%_112.02%,_var(--color-ped-background-fill-emphasis)_0%,_var(--color-ped-background-fill)_100%)] data-[disabled=true]:opacity-70 data-[inactive=true]:[filter:brightness(.8)]\",\n prev: \"bg-prev-background-fill text-prev-foreground-onfill fill-prev-foreground-onfill data-[disabled=false]:hover:[background:radial-gradient(63.78%_137.5%_at_50%_137.5%,_var(--color-prev-background-fill-emphasis)_0%,_var(--color-prev-background-fill)_100%)] data-[disabled=true]:opacity-70 data-[inactive=true]:[filter:brightness(.8)]\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n },\n }\n);\n\ninterface TileProps\n extends ComponentProps<\"div\">,\n VariantProps<typeof tileVariants> {\n asChild?: boolean;\n disabled?: boolean;\n inactive?: boolean;\n}\n\nfunction Tile({\n className,\n variant = \"regular\",\n asChild = false,\n disabled = false,\n inactive = false,\n ...props\n}: TileProps) {\n const Comp = (asChild ? Slot.Slot : \"div\") as ElementType;\n\n return (\n <Comp\n data-slot=\"tile\"\n data-variant={variant}\n data-inactive={inactive}\n data-disabled={disabled}\n aria-disabled={disabled || inactive}\n className={cn(\n tileVariants({ variant, className }),\n props.onClick && !disabled && \"cursor-pointer\"\n )}\n {...props}\n >\n {props.children}\n {props.onClick && !disabled && (\n <EditPencil className=\"absolute right-5 top-4 size-5 opacity-0 transition-opacity group-hover/tile:opacity-100\" />\n )}\n </Comp>\n );\n}\n\nfunction TileIcon({\n className,\n icon,\n ...props\n}: ComponentProps<\"div\"> & {\n icon?: ReactNode;\n}) {\n return (\n <div\n data-slot=\"tile-icon\"\n className={cn(\"mb-2.5 last:mb-0 [&>svg]:size-5\", className)}\n {...props}\n >\n {icon}\n </div>\n );\n}\n\nfunction TileTitle({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"tile-title\"\n className={cn(\"line-clamp-1 flex w-fit text-xs font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction TileDescription({ className, ...props }: ComponentProps<\"p\">) {\n return (\n <span\n data-slot=\"tile-description\"\n className={cn(\"line-clamp-1 flex w-fit text-sm font-semibold\", className)}\n {...props}\n />\n );\n}\n\nexport { Tile, TileIcon, TileTitle, TileDescription, tileVariants };\nexport type { TileProps };\n","\"use client\";\n\n// Inspired by shadcn/ui toast implementation\nimport { useState, useEffect, type ReactNode } from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/Toast\";\n\nconst TOAST_LIMIT = 3;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: ReactNode;\n description?: ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: actionTypes.REMOVE_TOAST,\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case actionTypes.ADD_TOAST:\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case actionTypes.UPDATE_TOAST:\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t\n ),\n };\n\n case actionTypes.DISMISS_TOAST: {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || action.toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t\n ),\n };\n }\n case actionTypes.REMOVE_TOAST:\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: actionTypes.UPDATE_TOAST,\n toast: { ...props, id },\n });\n const dismiss = () =>\n dispatch({ type: actionTypes.DISMISS_TOAST, toastId: id });\n\n dispatch({\n type: actionTypes.ADD_TOAST,\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = useState<State>(memoryState);\n\n useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) =>\n dispatch({ type: actionTypes.DISMISS_TOAST, toastId }),\n };\n}\n\nexport { useToast, toast };\n","\"use client\";\n\nimport {\n CloseMd,\n Info,\n CircleCheck,\n TriangleWarning,\n OctagonWarning,\n} from \"@medway-ui/icons\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { Toast as ToastPrimitive } from \"radix-ui\";\nimport { type ComponentPropsWithoutRef, type ReactElement } from \"react\";\n\nimport { Button, type ButtonProps } from \"@/components/Button\";\nimport { useToast } from \"@/hooks/use-toast\";\nimport { cn } from \"@/lib/utils\";\n\ntype ToastActionVariant =\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"warning\"\n | \"error\";\n\ninterface ToastProps\n extends ComponentPropsWithoutRef<typeof ToastPrimitive.Root>,\n VariantProps<typeof toastVariants> {\n showIcon?: boolean;\n duration?: number;\n}\n\ninterface ToastActionProps\n extends Omit<ButtonProps, \"variant\">,\n ComponentPropsWithoutRef<typeof ToastPrimitive.Action> {\n variant?: ToastActionVariant;\n}\n\ninterface ToastCloseProps\n extends ComponentPropsWithoutRef<typeof ToastPrimitive.Close> {\n label?: string;\n}\n\ntype ToastActionElement = ReactElement<typeof ToastAction>;\n\nconst toastVariants = cva(\n \"group pointer-events-auto relative flex w-full items-center justify-between gap-4 overflow-hidden rounded-md bg-surface-elevated p-2 pl-4 shadow-lg\",\n {\n variants: {\n variant: {\n primary: \"text-primary-foreground\",\n secondary: \"text-secondary-foreground\",\n success: \"text-feedback-success-foreground\",\n warning: \"text-feedback-warning-foreground\",\n error: \"text-feedback-error-foreground\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n },\n }\n);\n\nconst toastIconVariants = cva(\"size-6 shrink-0\", {\n variants: {\n variant: {\n primary: \"text-primary-foreground fill-primary-background-soft\",\n secondary: \"text-secondary-foreground fill-secondary-background-soft\",\n success:\n \"text-feedback-success-foreground fill-feedback-success-background-soft\",\n warning:\n \"text-feedback-warning-foreground fill-feedback-warning-background-soft\",\n error:\n \"text-feedback-error-foreground fill-feedback-error-background-soft\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n },\n});\n\nconst toastActionButtonVariantMap: Record<\n ToastActionVariant,\n ButtonProps[\"variant\"]\n> = {\n primary: \"regular-soft\",\n secondary: \"emphasis-soft\",\n success: \"success-soft\",\n warning: \"warning-soft\",\n error: \"error-soft\",\n};\n\nconst variantIcons = {\n primary: Info,\n secondary: Info,\n success: CircleCheck,\n warning: TriangleWarning,\n error: OctagonWarning,\n};\n\nconst ToastProvider = ToastPrimitive.Provider;\n\nfunction ToastViewport({\n className,\n ...props\n}: ComponentPropsWithoutRef<typeof ToastPrimitive.Viewport>) {\n return (\n <ToastPrimitive.Viewport\n className={cn(\n \"fixed right-0 top-0 z-[100] flex max-h-screen w-full min-w-0 max-w-[500px] flex-col gap-2 p-4 md:w-[500px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction Toast({\n className,\n variant = \"primary\",\n showIcon = true,\n duration = 5000,\n children,\n ...props\n}: ToastProps) {\n const IconComponent = variantIcons[variant || \"primary\"];\n\n return (\n <ToastPrimitive.Root duration={duration} {...props} forceMount asChild>\n <motion.li\n initial={{ opacity: 0, y: -50 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -50, zIndex: -1 }}\n transition={{ duration: 0.4, ease: \"easeInOut\" }}\n layout\n className={cn(toastVariants({ variant }), className)}\n >\n {showIcon && (\n <IconComponent className={cn(toastIconVariants({ variant }))} />\n )}\n <div className=\"flex flex-1 items-center justify-between gap-4\">\n {children}\n </div>\n </motion.li>\n </ToastPrimitive.Root>\n );\n}\n\nfunction ToastAction({\n className,\n variant = \"primary\",\n size = \"sm\",\n iconLeft,\n iconRight,\n children,\n altText = \"Toast action\",\n ...props\n}: ToastActionProps) {\n return (\n <ToastPrimitive.Action\n asChild\n altText={altText}\n className={cn(\"inline-flex items-center justify-center\", className)}\n {...props}\n >\n <Button\n iconLeft={iconLeft}\n iconRight={iconRight}\n size={size}\n variant={toastActionButtonVariantMap[variant]}\n >\n {children}\n </Button>\n </ToastPrimitive.Action>\n );\n}\n\nfunction ToastClose({\n className,\n label = \"Fechar\",\n ...props\n}: ToastCloseProps) {\n return (\n <ToastPrimitive.Close\n className={cn(\"shrink-0\", className)}\n {...props}\n asChild\n >\n <Button\n iconLeft={<CloseMd className=\"size-4\" />}\n size=\"sm\"\n aria-label={label}\n variant=\"regular-basic\"\n />\n </ToastPrimitive.Close>\n );\n}\n\nfunction ToastTitle({\n className,\n ...props\n}: ComponentPropsWithoutRef<typeof ToastPrimitive.Title>) {\n return (\n <ToastPrimitive.Title\n className={cn(\"flex-1 text-md font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction ToastDescription({\n className,\n ...props\n}: ComponentPropsWithoutRef<typeof ToastPrimitive.Description>) {\n return (\n <ToastPrimitive.Description\n className={cn(\"text-xs\", className)}\n {...props}\n />\n );\n}\n\nfunction Toaster() {\n const { toasts } = useToast();\n\n return (\n <ToastProvider>\n <AnimatePresence mode=\"popLayout\">\n {toasts\n .filter((t) => t.open)\n .map(function ({ id, title, description, action, ...props }) {\n return (\n <Toast key={id} {...props}>\n <div className=\"grid\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && (\n <ToastDescription>{description}</ToastDescription>\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n {action}\n <ToastClose />\n </div>\n </Toast>\n );\n })}\n </AnimatePresence>\n <ToastViewport />\n </ToastProvider>\n );\n}\n\nexport {\n Toast,\n ToastAction,\n ToastClose,\n ToastDescription,\n Toaster,\n ToastProvider,\n ToastTitle,\n toastVariants,\n ToastViewport,\n};\nexport type { ToastActionElement, ToastProps };\n"]}
1
+ {"version":3,"sources":["../node_modules/tailwind-merge/src/lib/utils.ts","../node_modules/tailwind-merge/src/lib/class-group-utils.ts","../node_modules/tailwind-merge/src/lib/lru-cache.ts","../node_modules/tailwind-merge/src/lib/parse-class-name.ts","../node_modules/tailwind-merge/src/lib/sort-modifiers.ts","../node_modules/tailwind-merge/src/lib/config-utils.ts","../node_modules/tailwind-merge/src/lib/merge-classlist.ts","../node_modules/tailwind-merge/src/lib/tw-join.ts","../node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts","../node_modules/tailwind-merge/src/lib/from-theme.ts","../node_modules/tailwind-merge/src/lib/validators.ts","../node_modules/tailwind-merge/src/lib/default-config.ts","../node_modules/tailwind-merge/src/lib/merge-configs.ts","../node_modules/tailwind-merge/src/lib/extend-tailwind-merge.ts","../src/lib/utils.ts","../src/components/Alert.tsx","../src/components/Loading.tsx","../src/components/Badge.tsx","../src/components/Button.tsx","../src/components/AlertDialog.tsx","../src/hooks/use-id.ts","../src/lib/command-score.ts","../src/lib/cmdk.tsx","../src/components/Separator.tsx","../src/components/Dialog.tsx","../src/components/Command.tsx","../src/components/Popover.tsx","../src/components/Autocomplete.tsx","../src/components/Avatar.tsx","../src/components/Breadcrumb.tsx","../src/components/Tag.tsx","../src/components/ProgressCircle.tsx","../src/components/Progress.tsx","../src/components/CardWeek.tsx","../src/components/Checkbox.tsx","../src/components/Collapsible.tsx","../src/hooks/use-mobile.ts","../src/components/DropdownMenu.tsx","../src/components/DatePicker.tsx","../src/components/Input.tsx","../src/components/Label.tsx","../src/components/Logo.tsx","../src/assets/js/tokens.ts","../src/components/Pagination.tsx","../src/components/RadioGroup.tsx","../src/components/Tooltip.tsx","../src/components/Ranking.tsx","../src/components/Rating.tsx","../src/components/ScrollArea.tsx","../src/components/Select.tsx","../src/components/SegmentControl.tsx","../node_modules/shared/src/utils.ts","../node_modules/lucide-react/src/defaultAttributes.ts","../node_modules/lucide-react/src/Icon.ts","../node_modules/lucide-react/src/createLucideIcon.ts","../node_modules/lucide-react/src/icons/x.ts","../src/components/Sheet.tsx","../src/components/Skeleton.tsx","../src/components/Sidebar.tsx","../src/components/Switch.tsx","../src/components/Switcher.tsx","../src/components/Tabs.tsx","../src/components/Tile.tsx","../src/hooks/use-toast.ts","../src/components/Toast.tsx"],"names":["concatArrays","array1","array2","combinedArray","Array","length","i","createClassValidatorObject","classGroupId","validator","createClassPartObject","nextPart","Map","validators","EMPTY_CONFLICTS","ARBITRARY_PROPERTY_PREFIX","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","className","startsWith","endsWith","getGroupIdForArbitraryProperty","classParts","split","CLASS_PART_SEPARATOR","startIndex","getGroupRecursive","getConflictingClassGroupIds","hasPostfixModifier","modifierConflicts","baseConflicts","classPartObject","currentClassPart","nextClassPartObject","get","result","classRest","join","slice","validatorsLength","validatorObj","indexOf","undefined","content","colonIndex","property","theme","classGroups","processClassGroups","group","processClassesRecursively","classGroup","len","classDefinition","processClassDefinition","processStringDefinition","processFunctionDefinition","processObjectDefinition","classPartObjectToEdit","getPart","isThemeGetter","push","entries","Object","key","value","path","current","parts","part","next","set","func","createLruCache","maxCacheSize","cacheSize","cache","create","previousCache","update","EMPTY_MODIFIERS","createResultObject","modifiers","hasImportantModifier","baseClassName","maybePostfixModifierPosition","isExternal","createParseClassName","prefix","experimentalParseClassName","parseClassName","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","index","currentCharacter","MODIFIER_SEPARATOR","baseClassNameWithImportantModifier","IMPORTANT_MODIFIER","fullPrefix","parseClassNameOriginal","createSortModifiers","modifierWeights","orderSensitiveModifiers","forEach","mod","currentSegment","modifier","isArbitrary","isOrderSensitive","has","sort","createConfigUtils","__spreadValues","sortModifiers","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","classGroupsInConflict","classNames","trim","originalClassName","substring","variantModifier","modifierId","classId","conflictGroups","twJoin","classLists","argument","resolvedValue","string","toValue","mix","k","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","reduce","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","args","fallbackThemeArr","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","test","isNumber","Number","isNaN","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryWeight","isLabelWeight","isArbitraryFamilyName","isLabelFamilyName","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","isArbitraryVariableWeight","testLabel","testValue","exec","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","span","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleSizingInline","scaleSizingBlock","scaleColor","scaleBgPosition","position","scaleBgRepeat","repeat","scaleBgSize","size","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","animate","aspect","blur","breakpoint","color","container","ease","font","leading","perspective","radius","shadow","spacing","text","tracking","columns","box","display","sr","float","clear","isolation","object","overflow","overscroll","inset","start","end","top","right","bottom","left","visibility","z","basis","flex","grow","shrink","order","col","row","gap","justify","items","baseline","self","p","px","py","ps","pe","pbs","pbe","pt","pr","pb","pl","m","mx","my","ms","me","mbs","mbe","mt","mr","mb","ml","inline","block","w","screen","h","list","placeholder","decoration","indent","align","whitespace","break","wrap","hyphens","bg","linear","to","radial","conic","from","via","rounded","border","divide","outline","ring","opacity","mask","closest","farthest","filter","brightness","contrast","grayscale","invert","saturate","sepia","table","caption","transition","duration","delay","backface","rotate","scale","skew","transform","origin","translate","accent","appearance","caret","scheme","cursor","resize","scroll","snap","touch","select","fill","stroke","mergeConfigs","baseConfig","extend","override","overrideProperty","overrideConfigProperties","mergeConfigProperties","mergeArrayProperties","baseObject","overrideKey","overrideValue","overrideObject","mergeObject","mergeValue","concat","extendTailwindMerge","configExtension","createConfig","customTwMerge","cn","inputs","clsx","AlertContext","createContext","alertVariants","cva","Alert","_a","_b","variant","onClose","children","props","__objRest","hasDescription","Children","child","isValidElement","AlertDescription","hasTitle","AlertTitle","jsx","jsxs","__spreadProps","CloseMd","AlertContainer","AlertContent","AlertIcon","icon","AlertActions","context","useContext","alertButtonVariants","AlertButton","alertVariant","Loading","ICON_ONLY_SIZES","CHAR_PADDING","badgeVariants","Badge","animation","asChild","Comp","Slot","hasChildren","isIconOnly","childText","isSingleAlphaNum","isShortAlnumUpTo3","isDigitsWithSuffix","isShortUpTo3","ALERT_CIRCLE_SIZES","badgeSizeMap","buttonVariants","Button","containerClassName","iconRight","iconLeft","badge","loading","alert","shouldShowBadge","renderIcon","renderAlertCircle","renderButtonContent","Fragment","AlertDialog","AlertDialogPrimitive","AlertDialogTrigger","AlertDialogPortal","AlertDialogOverlay","AlertDialogContent","AlertDialogHeader","AlertDialogFooter","AlertDialogTitle","AlertDialogDescription","AlertDialogAction","AlertDialogCancel","count","generateId","useReactId","Xa","useId","reactId","id","IS_GAP_REGEXP","COUNT_GAPS_REGEXP","IS_SPACE_REGEXP","COUNT_SPACE_REGEXP","commandScoreInner","abbreviation","lowerString","lowerAbbreviation","stringIndex","abbreviationIndex","memoizedResults","memoizeKey","abbreviationChar","highScore","score","transposedScore","wordBreaks","spaceBreaks","formatInput","commandScore","aliases","GROUP_SELECTOR","GROUP_ITEMS_SELECTOR","GROUP_HEADING_SELECTOR","ITEM_SELECTOR","VALID_ITEM_SELECTOR","SELECT_EVENT","VALUE_ATTR","defaultFilter","search","keywords","CommandContext","H","useCommand","StoreContext","useStore","GroupContext","Command","forwardedRef","state","useLazyRef","allItems","allGroups","ids","listeners","propsRef","useAsRef","onValueChange","shouldFilter","loop","disablePointerSelection","vimBindings","etc","listId","labelId","inputId","listInnerRef","schedule","useScheduleLayoutEffect","useLayoutEffect","v","store","scrollSelectedIntoView","cb","opts","_c","_d","_e","_f","filterItems","selectFirstItem","input","getSelectedItem","newValue","l","groupId","selectedItem","scores","groups","max","item","s","listInsertionElement","getValidItems","a","b","valueA","valueB","element","itemCount","rank","itemId","updateSelectedToIndex","updateSelectedByItem","change","selected","newSelected","updateSelectedByGroup","findNextSibling","findPreviousSibling","last","e","prev","isComposing","event","srOnlyStyles","SlottableWithNestedChildren","Item","ref","groupContext","forceMount","useValue","useCmdk","render","onSelect","disabled","_value","_onSelect","_forceMount","_keywords","mergeRefs","Group","heading","_children","headingRef","headingId","contextValue","Separator","alwaysRender","Input","isControlled","selectedItemId","List","height","el","wrapper","animationFrame","observer","listEl","handleWheel","Empty","progress","pkg","selector","sibling","data","fn","forceRender","currentValueRef","nextValue","deps","valueRef","alias","ss","fns","f","renderChildren","childrenType","refs","orientation","decorative","SeparatorPrimitive","Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","DialogContainer","overlayClassName","showCloseButton","DialogContent","DialogHeader","separator","DialogFooter","DialogTitle","cloneElement","DialogDescription","CommandInput","SearchMagnifyingGlass","CommandList","CommandEmpty","CommandGroup","CommandItem","Popover","PopoverPrimitive","PopoverTrigger","PopoverContent","sideOffset","showArrow","AutocompleteContext","Autocomplete","invalid","controlledValues","onValuesChange","controlledOpen","onOpenChange","defaultValues","internalValues","setInternalValues","useState","internalOpen","setInternalOpen","snapshot","setSnapshot","isControlledValues","isControlledOpen","values","open","toggleValue","val","setOpen","newOpen","onCancelSelection","AutocompleteWrapper","AutocompleteTrigger","hasSelection","ChevronDown","AutocompleteContentFooter","cancelLabel","confirmLabel","onCancel","onConfirm","Check","AutocompleteContent","searchPlaceholder","emptyMessage","childArray","footerChildren","listChildren","AutocompleteItem","itemValue","name","itemDisabled","isSelected","AutocompleteGroup","AutocompleteText","avatarVariants","Avatar","AvatarPrimitive","AvatarImage","AvatarFallback","User","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbPage","BreadcrumbSeparator","ChevronRightMd","BreadcrumbEllipsis","MoreHorizontal","tagVariants","TagIcon","Tag","ProgressCircle","indicatorClassName","trackClassName","valueClassName","labelClassName","strokeWidth","isStringValue","numericValue","circumference","offset","valueFontSize","labelFontSize","Progress","percentage","ProgressPrimitive","CardWeekContext","CardWeek","done","postponed","skipped","useMemo","CardWeekBreadcrumb","tag","tagIcon","CardWeekContainer","CardWeekHeader","CardWeekTitle","cardWeekContext","CardWeekDescription","CardWeekTags","CardWeekProgressCircle","CardWeekProgress","CardWeekFooter","CardWeekContent","CardWeekText","isTime","TimeRemaining","CardWeekStatus","CardWeekActions","checkboxVariants","Checkbox","uncheckIcon","CheckboxPrimitive","RemoveMinus","CollapsibleContext","Collapsible","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","animationClasses","MOBILE_BREAKPOINT","useIsMobile","isMobile","setIsMobile","useEffect","mql","onChange","DropdownMenu","DropdownMenuPrimitive","DropdownMenuPortal","DropdownMenuTrigger","DropdownMenuContent","side","DropdownMenuGroup","DropdownMenuItem","DropdownMenuCheckboxItem","checked","DropdownMenuRadioGroup","DropdownMenuRadioItem","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","DropdownMenuSub","DropdownMenuSubTrigger","ChevronRight","DropdownMenuSubContent","DatePickerContext","DatePickerWrapper","DatePickerLabel","DatePickerText","startOfDay","date","isSameDay","addMonths","delta","clampToStartOfMonth","isBeforeDay","isAfterDay","isDisabledByBounds","day","min","defaultFormat","DatePicker","defaultValue","format","inputClassName","contentClassName","yearRange","showYearSelector","uncontrolledValue","setUncontrolledValue","viewMonth","setViewMonth","rootRef","useRef","contentId","mobilePopoverStyle","setMobilePopoverStyle","placement","setPlacement","setSelected","useCallback","prevOverflow","close","onPointerDown","onKeyDown","POPOVER_ESTIMATED_HEIGHT","handleTriggerClick","rect","openAbove","today","year","month","firstDayOfMonth","daysInMonth","leadingEmpty","displayValue","months","_","years","handleMonthChange","newMonth","handleYearChange","newYear","Calendar","ChevronLeftMd","y","isToday","isDisabled","DateRangePicker","rangeValue","setRangeValue","POPOVER_ESTIMATED_HEIGHT_RANGE","handleDayClick","isStartDate","isEndDate","isInRange","INPUT_ICON_SIZE_LG","INPUT_ICON_SIZE_MD","INPUT_ICON_STROKE_WIDTH","CHEVRON_SIZE_LG","CHEVRON_SIZE_MD","InputWrapper","InputField","InputLabel","InputText","InputAdornment","InputStartIcon","InputEndIcon","inputVariants","TYPE_DEFAULT_ICON_LEFT","Mail","TYPE_DEFAULT_ICON_RIGHT","applyInputIconSize","InputPassword","visible","setVisible","Lock","Hide","Show","InputNumeric","internalValue","setInternalValue","inputRef","allowNegative","sanitizeToNumbers","raw","firstDot","handleChange","syntheticEvent","minValue","getNextValue","handleStep","nextStr","type","resolvedIconLeft","showInvalidRightIcon","resolvedIconRight","TriangleWarning","labelVariants","Label","LabelPrimitive","Logo","width","svgClassName","LogoShort","screens","PaginationRoot","PaginationContent","PaginationInfo","PaginationItem","PaginationLink","isActive","activeVariant","inactiveVariant","PaginationPrevious","ChevronLeftDuo","PaginationNext","ChevronRightDuo","PaginationEllipsis","calculatePageNumbers","currentPage","totalPages","maxVisible","pages","sidePages","Pagination","maxVisibleItems","onPageChange","itemsPerPage","totalItems","responsive","isTabletOrMobile","setIsTabletOrMobile","tabletPx","onResize","effectiveMaxVisible","shouldHideInfo","renderPageNumbers","page","CIRCLE_SIZES","radioGroupVariants","RadioGroup","RadioGroupPrimitive","RadioGroupItem","CircleIcon","TooltipProvider","delayDuration","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","Ranking","RankingHeader","RankingHeaderCell","tooltip","highlight","Info","RankingBody","RankingItem","RankingNumber","RankingTopicColumn","RankingTopicContent","RankingSpecialty","RankingTopic","RankingSuperFocus","CheckboxFill","RankingAssigneesColumn","RankingAssigneeLabel","RankingAssigneeGroup","RankingAssigneeItem","src","alt","fallback","avatarElement","RankingPriority","LinearProgressBar","getProgressColor","RankingQuestions","questions","answered","PERCENTAGE_STATUS_CONFIG","Warning","remainingQuestions","correct","getPercentageStatus","isNotStarted","minNotReached","condition","RankingPerformance","minQuestions","statusKey","Icon","bgColor","iconColor","titleClassName","title","subtitle","RankingButton","onClick","ArrowRightMd","RatingStarVariants","RatingStarHoveredVariants","RatingButtonVariants","RatingLabelVariants","StarIcon","generatedId","fallbackId","gradientId","getStarState","starIndex","starValue","Rating","maxStars","readOnly","labels","classNameContainer","classNameLabels","hoverIndex","setHoverIndex","currentValue","handleClick","handleMouseEnter","handleMouseLeave","isHovering","isWithinHover","isExactHover","starState","ScrollArea","ScrollAreaPrimitive","ScrollBar","SelectContext","Select","SelectPrimitive","SelectWrapper","SelectLabel","SelectGroup","SelectValue","selectVariants","SelectTrigger","SelectContent","SelectScrollUpButton","SelectScrollDownButton","SelectHeader","SelectItem","SelectSeparator","ChevronUp","SelectText","SegmentControlContext","SegmentControl","TabsPrimitive","SegmentControlList","segmentControlTriggerVariants","SegmentControlTrigger","badgeVariant","ctx","SegmentControlContent","toKebabCase","toCamelCase","match","p1","p2","toPascalCase","camelCase","mergeClasses","classes","array","hasA11yProp","prop","defaultAttributes","forwardRef","absoluteStrokeWidth","iconNode","rest","createElement","attrs","createLucideIcon","iconName","Component","__iconNode","X","Sheet","SheetPrimitive","SheetTrigger","SheetClose","SheetPortal","SheetOverlay","SheetContent","SheetHeader","SheetFooter","SheetTitle","SheetDescription","Skeleton","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","useSidebar","SidebarProvider","defaultOpen","openProp","setOpenProp","openMobile","setOpenMobile","_open","_setOpen","openState","toggleSidebar","handleKeyDown","Sidebar","collapsible","SidebarTrigger","sizeIcon","HamburgerMd","showTooltip","tooltipContent","enableHover","isHovered","setIsHovered","getDisplayIcon","button","SidebarRail","SidebarInset","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","SidebarContent","SidebarGroup","SidebarGroupLabel","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","SidebarMenuButton","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuItemTitle","SidebarMenuItemCollapse","SidebarMenuSubButton","THUMB_SIZES","ICON_SIZES","THUMB_TRANSLATE","switchVariants","Switch","checkedIcon","uncheckedIcon","defaultChecked","internalChecked","setInternalChecked","isChecked","hasIcons","SwitchPrimitive","SwitcherContext","Switcher","SwitcherTrigger","SwitcherContent","SwitcherGroup","SwitcherItem","SwitcherFooter","SwitcherSeparator","TabsContext","DEBOUNCE_DELAY","SCROLL_PADDING","FADE_GRADIENT_WIDTH","useTabsContext","useDebounce","callback","timeoutRef","tabsListVariants","tabsTriggerVariants","tabsWrapperVariants","fadeGradientVariants","tabsContentVariants","Tabs","responsiveSize","setResponsiveSize","handleResize","mobilePx","debouncedResize","TabsList","scrollContainerRef","listRef","showLeftFade","setShowLeftFade","showRightFade","setShowRightFade","indicatorStyle","setIndicatorStyle","checkScroll","scrollLeft","scrollWidth","clientWidth","hasOverflow","updateIndicator","activeTab","listRect","tabRect","scrollActiveTabIntoView","containerRect","resizeObserver","mutations","mutation","TabsTrigger","triggerRef","setIsActive","trigger","checkActiveState","TabsContent","tileVariants","Tile","inactive","EditPencil","TileIcon","TileTitle","TileDescription","TOAST_LIMIT","TOAST_REMOVE_DELAY","actionTypes","genId","toastTimeouts","addToRemoveQueue","toastId","timeout","dispatch","reducer","action","t","toast","memoryState","listener","dismiss","useToast","setState","toastVariants","toastIconVariants","toastActionButtonVariantMap","variantIcons","CircleCheck","OctagonWarning","ToastProvider","ToastPrimitive","ToastViewport","Toast","IconComponent","motion","ToastAction","altText","ToastClose","ToastTitle","ToastDescription","Toaster","toasts","AnimatePresence","description"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Concatenates two arrays faster than the array spread operator.\n */\nexport const concatArrays = <T, U>(\n array1: readonly T[],\n array2: readonly U[],\n): readonly (T | U)[] => {\n // Pre-allocate for better V8 optimization\n const combinedArray: (T | U)[] = new Array(array1.length + array2.length)\n for (let i = 0; i < array1.length; i++) {\n combinedArray[i] = array1[i]!\n }\n for (let i = 0; i < array2.length; i++) {\n combinedArray[array1.length + i] = array2[i]!\n }\n return combinedArray\n}\n","import {\n AnyClassGroupIds,\n AnyConfig,\n AnyThemeGroupIds,\n ClassGroup,\n ClassValidator,\n Config,\n ThemeGetter,\n ThemeObject,\n} from './types'\nimport { concatArrays } from './utils'\n\nexport interface ClassPartObject {\n nextPart: Map<string, ClassPartObject>\n validators: ClassValidatorObject[] | null\n classGroupId: AnyClassGroupIds | undefined // Always define optional props for consistent shape\n}\n\ninterface ClassValidatorObject {\n classGroupId: AnyClassGroupIds\n validator: ClassValidator\n}\n\n// Factory function ensures consistent object shapes\nconst createClassValidatorObject = (\n classGroupId: AnyClassGroupIds,\n validator: ClassValidator,\n): ClassValidatorObject => ({\n classGroupId,\n validator,\n})\n\n// Factory ensures consistent ClassPartObject shape\nconst createClassPartObject = (\n nextPart: Map<string, ClassPartObject> = new Map(),\n validators: ClassValidatorObject[] | null = null,\n classGroupId?: AnyClassGroupIds,\n): ClassPartObject => ({\n nextPart,\n validators,\n classGroupId,\n})\n\nconst CLASS_PART_SEPARATOR = '-'\n\nconst EMPTY_CONFLICTS: readonly AnyClassGroupIds[] = []\n// I use two dots here because one dot is used as prefix for class groups in plugins\nconst ARBITRARY_PROPERTY_PREFIX = 'arbitrary..'\n\nexport const createClassGroupUtils = (config: AnyConfig) => {\n const classMap = createClassMap(config)\n const { conflictingClassGroups, conflictingClassGroupModifiers } = config\n\n const getClassGroupId = (className: string) => {\n if (className.startsWith('[') && className.endsWith(']')) {\n return getGroupIdForArbitraryProperty(className)\n }\n\n const classParts = className.split(CLASS_PART_SEPARATOR)\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and skip it.\n const startIndex = classParts[0] === '' && classParts.length > 1 ? 1 : 0\n return getGroupRecursive(classParts, startIndex, classMap)\n }\n\n const getConflictingClassGroupIds = (\n classGroupId: AnyClassGroupIds,\n hasPostfixModifier: boolean,\n ): readonly AnyClassGroupIds[] => {\n if (hasPostfixModifier) {\n const modifierConflicts = conflictingClassGroupModifiers[classGroupId]\n const baseConflicts = conflictingClassGroups[classGroupId]\n\n if (modifierConflicts) {\n if (baseConflicts) {\n // Merge base conflicts with modifier conflicts\n return concatArrays(baseConflicts, modifierConflicts)\n }\n // Only modifier conflicts\n return modifierConflicts\n }\n // Fall back to without postfix if no modifier conflicts\n return baseConflicts || EMPTY_CONFLICTS\n }\n\n return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS\n }\n\n return {\n getClassGroupId,\n getConflictingClassGroupIds,\n }\n}\n\nconst getGroupRecursive = (\n classParts: string[],\n startIndex: number,\n classPartObject: ClassPartObject,\n): AnyClassGroupIds | undefined => {\n const classPathsLength = classParts.length - startIndex\n if (classPathsLength === 0) {\n return classPartObject.classGroupId\n }\n\n const currentClassPart = classParts[startIndex]!\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart)\n\n if (nextClassPartObject) {\n const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject)\n if (result) return result\n }\n\n const validators = classPartObject.validators\n if (validators === null) {\n return undefined\n }\n\n // Build classRest string efficiently by joining from startIndex onwards\n const classRest =\n startIndex === 0\n ? classParts.join(CLASS_PART_SEPARATOR)\n : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR)\n const validatorsLength = validators.length\n\n for (let i = 0; i < validatorsLength; i++) {\n const validatorObj = validators[i]!\n if (validatorObj.validator(classRest)) {\n return validatorObj.classGroupId\n }\n }\n\n return undefined\n}\n\n/**\n * Get the class group ID for an arbitrary property.\n *\n * @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.\n */\nconst getGroupIdForArbitraryProperty = (className: string): AnyClassGroupIds | undefined =>\n className.slice(1, -1).indexOf(':') === -1\n ? undefined\n : (() => {\n const content = className.slice(1, -1)\n const colonIndex = content.indexOf(':')\n const property = content.slice(0, colonIndex)\n return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined\n })()\n\n/**\n * Exported for testing only\n */\nexport const createClassMap = (config: Config<AnyClassGroupIds, AnyThemeGroupIds>) => {\n const { theme, classGroups } = config\n return processClassGroups(classGroups, theme)\n}\n\n// Split into separate functions to maintain monomorphic call sites\nconst processClassGroups = (\n classGroups: Record<AnyClassGroupIds, ClassGroup<AnyThemeGroupIds>>,\n theme: ThemeObject<AnyThemeGroupIds>,\n): ClassPartObject => {\n const classMap = createClassPartObject()\n\n for (const classGroupId in classGroups) {\n const group = classGroups[classGroupId]!\n processClassesRecursively(group, classMap, classGroupId, theme)\n }\n\n return classMap\n}\n\nconst processClassesRecursively = (\n classGroup: ClassGroup<AnyThemeGroupIds>,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n const len = classGroup.length\n for (let i = 0; i < len; i++) {\n const classDefinition = classGroup[i]!\n processClassDefinition(classDefinition, classPartObject, classGroupId, theme)\n }\n}\n\n// Split into separate functions for each type to maintain monomorphic call sites\nconst processClassDefinition = (\n classDefinition: ClassGroup<AnyThemeGroupIds>[number],\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n if (typeof classDefinition === 'string') {\n processStringDefinition(classDefinition, classPartObject, classGroupId)\n return\n }\n\n if (typeof classDefinition === 'function') {\n processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme)\n return\n }\n\n processObjectDefinition(\n classDefinition as Record<string, ClassGroup<AnyThemeGroupIds>>,\n classPartObject,\n classGroupId,\n theme,\n )\n}\n\nconst processStringDefinition = (\n classDefinition: string,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n) => {\n const classPartObjectToEdit =\n classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition)\n classPartObjectToEdit.classGroupId = classGroupId\n}\n\nconst processFunctionDefinition = (\n classDefinition: Function,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme)\n return\n }\n\n if (classPartObject.validators === null) {\n classPartObject.validators = []\n }\n classPartObject.validators.push(\n createClassValidatorObject(classGroupId, classDefinition as ClassValidator),\n )\n}\n\nconst processObjectDefinition = (\n classDefinition: Record<string, ClassGroup<AnyThemeGroupIds>>,\n classPartObject: ClassPartObject,\n classGroupId: AnyClassGroupIds,\n theme: ThemeObject<AnyThemeGroupIds>,\n) => {\n const entries = Object.entries(classDefinition)\n const len = entries.length\n for (let i = 0; i < len; i++) {\n const [key, value] = entries[i]!\n processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme)\n }\n}\n\nconst getPart = (classPartObject: ClassPartObject, path: string): ClassPartObject => {\n let current = classPartObject\n const parts = path.split(CLASS_PART_SEPARATOR)\n const len = parts.length\n\n for (let i = 0; i < len; i++) {\n const part = parts[i]!\n\n let next = current.nextPart.get(part)\n if (!next) {\n next = createClassPartObject()\n current.nextPart.set(part, next)\n }\n current = next\n }\n\n return current\n}\n\n// Type guard maintains monomorphic check\nconst isThemeGetter = (func: Function): func is ThemeGetter =>\n 'isThemeGetter' in func && (func as ThemeGetter).isThemeGetter === true\n","// Export is needed because TypeScript complains about an error otherwise:\n// Error: …/tailwind-merge/src/config-utils.ts(8,17): semantic error TS4058: Return type of exported function has or is using name 'LruCache' from external module \"…/tailwind-merge/src/lru-cache\" but cannot be named.\nexport interface LruCache<Key extends string, Value> {\n get(key: Key): Value | undefined\n set(key: Key, value: Value): void\n}\n\n// LRU cache implementation using plain objects for simplicity\nexport const createLruCache = <Key extends string, Value>(\n maxCacheSize: number,\n): LruCache<Key, Value> => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {},\n }\n }\n\n let cacheSize = 0\n let cache: Record<Key, Value> = Object.create(null)\n let previousCache: Record<Key, Value> = Object.create(null)\n\n const update = (key: Key, value: Value) => {\n cache[key] = value\n cacheSize++\n\n if (cacheSize > maxCacheSize) {\n cacheSize = 0\n previousCache = cache\n cache = Object.create(null)\n }\n }\n\n return {\n get(key) {\n let value = cache[key]\n\n if (value !== undefined) {\n return value\n }\n if ((value = previousCache[key]) !== undefined) {\n update(key, value)\n return value\n }\n },\n set(key, value) {\n if (key in cache) {\n cache[key] = value\n } else {\n update(key, value)\n }\n },\n }\n}\n","import { AnyConfig, ParsedClassName } from './types'\n\nexport const IMPORTANT_MODIFIER = '!'\n\nconst MODIFIER_SEPARATOR = ':'\nconst EMPTY_MODIFIERS: string[] = []\n\n// Pre-allocated result object shape for consistency\nconst createResultObject = (\n modifiers: string[],\n hasImportantModifier: boolean,\n baseClassName: string,\n maybePostfixModifierPosition?: number,\n isExternal?: boolean,\n): ParsedClassName => ({\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n isExternal,\n})\n\nexport const createParseClassName = (config: AnyConfig) => {\n const { prefix, experimentalParseClassName } = config\n\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = (className: string): ParsedClassName => {\n // Use simple array with push for better performance\n const modifiers: string[] = []\n\n let bracketDepth = 0\n let parenDepth = 0\n let modifierStart = 0\n let postfixModifierPosition: number | undefined\n\n const len = className.length\n for (let index = 0; index < len; index++) {\n const currentCharacter = className[index]!\n\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index))\n modifierStart = index + 1\n continue\n }\n\n if (currentCharacter === '/') {\n postfixModifierPosition = index\n continue\n }\n }\n\n if (currentCharacter === '[') bracketDepth++\n else if (currentCharacter === ']') bracketDepth--\n else if (currentCharacter === '(') parenDepth++\n else if (currentCharacter === ')') parenDepth--\n }\n\n const baseClassNameWithImportantModifier =\n modifiers.length === 0 ? className : className.slice(modifierStart)\n\n // Inline important modifier check\n let baseClassName = baseClassNameWithImportantModifier\n let hasImportantModifier = false\n\n if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(0, -1)\n hasImportantModifier = true\n } else if (\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)\n ) {\n baseClassName = baseClassNameWithImportantModifier.slice(1)\n hasImportantModifier = true\n }\n\n const maybePostfixModifierPosition =\n postfixModifierPosition && postfixModifierPosition > modifierStart\n ? postfixModifierPosition - modifierStart\n : undefined\n\n return createResultObject(\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n )\n }\n\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR\n const parseClassNameOriginal = parseClassName\n parseClassName = (className: string) =>\n className.startsWith(fullPrefix)\n ? parseClassNameOriginal(className.slice(fullPrefix.length))\n : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true)\n }\n\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName\n parseClassName = (className: string) =>\n experimentalParseClassName({ className, parseClassName: parseClassNameOriginal })\n }\n\n return parseClassName\n}\n","import { AnyConfig } from './types'\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nexport const createSortModifiers = (config: AnyConfig) => {\n // Pre-compute weights for all known modifiers for O(1) comparison\n const modifierWeights = new Map<string, number>()\n\n // Assign weights to sensitive modifiers (highest priority, but preserve order)\n config.orderSensitiveModifiers.forEach((mod, index) => {\n modifierWeights.set(mod, 1000000 + index) // High weights for sensitive mods\n })\n\n return (modifiers: readonly string[]): string[] => {\n const result: string[] = []\n let currentSegment: string[] = []\n\n // Process modifiers in one pass\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i]!\n\n // Check if modifier is sensitive (starts with '[' or in orderSensitiveModifiers)\n const isArbitrary = modifier[0] === '['\n const isOrderSensitive = modifierWeights.has(modifier)\n\n if (isArbitrary || isOrderSensitive) {\n // Sort and flush current segment alphabetically\n if (currentSegment.length > 0) {\n currentSegment.sort()\n result.push(...currentSegment)\n currentSegment = []\n }\n result.push(modifier)\n } else {\n // Regular modifier - add to current segment for batch sorting\n currentSegment.push(modifier)\n }\n }\n\n // Sort and add any remaining segment items\n if (currentSegment.length > 0) {\n currentSegment.sort()\n result.push(...currentSegment)\n }\n\n return result\n }\n}\n","import { createClassGroupUtils } from './class-group-utils'\nimport { createLruCache } from './lru-cache'\nimport { createParseClassName } from './parse-class-name'\nimport { createSortModifiers } from './sort-modifiers'\nimport { AnyConfig } from './types'\n\nexport type ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport const createConfigUtils = (config: AnyConfig) => ({\n cache: createLruCache<string, string>(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config),\n})\n","import { ConfigUtils } from './config-utils'\nimport { IMPORTANT_MODIFIER } from './parse-class-name'\n\nconst SPLIT_CLASSES_REGEX = /\\s+/\n\nexport const mergeClassList = (classList: string, configUtils: ConfigUtils) => {\n const { parseClassName, getClassGroupId, getConflictingClassGroupIds, sortModifiers } =\n configUtils\n\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict: string[] = []\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX)\n\n let result = ''\n\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index]!\n\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n } = parseClassName(originalClassName)\n\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n let hasPostfixModifier = !!maybePostfixModifierPosition\n let classGroupId = getClassGroupId(\n hasPostfixModifier\n ? baseClassName.substring(0, maybePostfixModifierPosition)\n : baseClassName,\n )\n\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n classGroupId = getClassGroupId(baseClassName)\n\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n continue\n }\n\n hasPostfixModifier = false\n }\n\n // Fast path: skip sorting for empty or single modifier\n const variantModifier =\n modifiers.length === 0\n ? ''\n : modifiers.length === 1\n ? modifiers[0]!\n : sortModifiers(modifiers).join(':')\n\n const modifierId = hasImportantModifier\n ? variantModifier + IMPORTANT_MODIFIER\n : variantModifier\n\n const classId = modifierId + classGroupId\n\n if (classGroupsInConflict.indexOf(classId) > -1) {\n // Tailwind class omitted due to conflict\n continue\n }\n\n classGroupsInConflict.push(classId)\n\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier)\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i]!\n classGroupsInConflict.push(modifierId + group)\n }\n\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result)\n }\n\n return result\n}\n","/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\n\nexport type ClassNameValue = ClassNameArray | string | null | undefined | 0 | 0n | false\ntype ClassNameArray = ClassNameValue[]\n\nexport const twJoin = (...classLists: ClassNameValue[]): string => {\n let index = 0\n let argument: ClassNameValue\n let resolvedValue: string\n let string = ''\n\n while (index < classLists.length) {\n if ((argument = classLists[index++])) {\n if ((resolvedValue = toValue(argument))) {\n string && (string += ' ')\n string += resolvedValue\n }\n }\n }\n return string\n}\n\nconst toValue = (mix: ClassNameArray | string): string => {\n // Fast path for strings\n if (typeof mix === 'string') {\n return mix\n }\n\n let resolvedValue: string\n let string = ''\n\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if ((resolvedValue = toValue(mix[k] as ClassNameArray | string))) {\n string && (string += ' ')\n string += resolvedValue\n }\n }\n }\n\n return string\n}\n","import { createConfigUtils } from './config-utils'\nimport { mergeClassList } from './merge-classlist'\nimport { ClassNameValue, twJoin } from './tw-join'\nimport { AnyConfig } from './types'\n\ntype CreateConfigFirst = () => AnyConfig\ntype CreateConfigSubsequent = (config: AnyConfig) => AnyConfig\ntype TailwindMerge = (...classLists: ClassNameValue[]) => string\ntype ConfigUtils = ReturnType<typeof createConfigUtils>\n\nexport const createTailwindMerge = (\n createConfigFirst: CreateConfigFirst,\n ...createConfigRest: CreateConfigSubsequent[]\n): TailwindMerge => {\n let configUtils: ConfigUtils\n let cacheGet: ConfigUtils['cache']['get']\n let cacheSet: ConfigUtils['cache']['set']\n let functionToCall: (classList: string) => string\n\n const initTailwindMerge = (classList: string) => {\n const config = createConfigRest.reduce(\n (previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig),\n createConfigFirst() as AnyConfig,\n )\n\n configUtils = createConfigUtils(config)\n cacheGet = configUtils.cache.get\n cacheSet = configUtils.cache.set\n functionToCall = tailwindMerge\n\n return tailwindMerge(classList)\n }\n\n const tailwindMerge = (classList: string) => {\n const cachedResult = cacheGet(classList)\n\n if (cachedResult) {\n return cachedResult\n }\n\n const result = mergeClassList(classList, configUtils)\n cacheSet(classList, result)\n\n return result\n }\n\n functionToCall = initTailwindMerge\n\n return (...args: ClassNameValue[]) => functionToCall(twJoin(...args))\n}\n","import { DefaultThemeGroupIds, NoInfer, ThemeGetter, ThemeObject } from './types'\n\nconst fallbackThemeArr: ThemeObject<DefaultThemeGroupIds>[DefaultThemeGroupIds] = []\n\nexport const fromTheme = <\n AdditionalThemeGroupIds extends string = never,\n DefaultThemeGroupIdsInner extends string = DefaultThemeGroupIds,\n>(\n key: NoInfer<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>,\n): ThemeGetter => {\n const themeGetter = (theme: ThemeObject<DefaultThemeGroupIdsInner | AdditionalThemeGroupIds>) =>\n theme[key] || fallbackThemeArr\n\n themeGetter.isThemeGetter = true as const\n\n return themeGetter\n}\n","const arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i\nconst fractionRegex = /^\\d+(?:\\.\\d+)?\\/\\d+(?:\\.\\d+)?$/\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/\nconst lengthUnitRegex =\n /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/\nconst imageRegex =\n /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/\n\nexport const isFraction = (value: string) => fractionRegex.test(value)\n\nexport const isNumber = (value: string) => !!value && !Number.isNaN(Number(value))\n\nexport const isInteger = (value: string) => !!value && Number.isInteger(Number(value))\n\nexport const isPercent = (value: string) => value.endsWith('%') && isNumber(value.slice(0, -1))\n\nexport const isTshirtSize = (value: string) => tshirtUnitRegex.test(value)\n\nexport const isAny = () => true\n\nconst isLengthOnly = (value: string) =>\n // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n // For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\n lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)\n\nconst isNever = () => false\n\nconst isShadow = (value: string) => shadowRegex.test(value)\n\nconst isImage = (value: string) => imageRegex.test(value)\n\nexport const isAnyNonArbitrary = (value: string) =>\n !isArbitraryValue(value) && !isArbitraryVariable(value)\n\nexport const isArbitrarySize = (value: string) => getIsArbitraryValue(value, isLabelSize, isNever)\n\nexport const isArbitraryValue = (value: string) => arbitraryValueRegex.test(value)\n\nexport const isArbitraryLength = (value: string) =>\n getIsArbitraryValue(value, isLabelLength, isLengthOnly)\n\nexport const isArbitraryNumber = (value: string) =>\n getIsArbitraryValue(value, isLabelNumber, isNumber)\n\nexport const isArbitraryWeight = (value: string) => getIsArbitraryValue(value, isLabelWeight, isAny)\n\nexport const isArbitraryFamilyName = (value: string) =>\n getIsArbitraryValue(value, isLabelFamilyName, isNever)\n\nexport const isArbitraryPosition = (value: string) =>\n getIsArbitraryValue(value, isLabelPosition, isNever)\n\nexport const isArbitraryImage = (value: string) => getIsArbitraryValue(value, isLabelImage, isImage)\n\nexport const isArbitraryShadow = (value: string) =>\n getIsArbitraryValue(value, isLabelShadow, isShadow)\n\nexport const isArbitraryVariable = (value: string) => arbitraryVariableRegex.test(value)\n\nexport const isArbitraryVariableLength = (value: string) =>\n getIsArbitraryVariable(value, isLabelLength)\n\nexport const isArbitraryVariableFamilyName = (value: string) =>\n getIsArbitraryVariable(value, isLabelFamilyName)\n\nexport const isArbitraryVariablePosition = (value: string) =>\n getIsArbitraryVariable(value, isLabelPosition)\n\nexport const isArbitraryVariableSize = (value: string) => getIsArbitraryVariable(value, isLabelSize)\n\nexport const isArbitraryVariableImage = (value: string) =>\n getIsArbitraryVariable(value, isLabelImage)\n\nexport const isArbitraryVariableShadow = (value: string) =>\n getIsArbitraryVariable(value, isLabelShadow, true)\n\nexport const isArbitraryVariableWeight = (value: string) =>\n getIsArbitraryVariable(value, isLabelWeight, true)\n\n// Helpers\n\nconst getIsArbitraryValue = (\n value: string,\n testLabel: (label: string) => boolean,\n testValue: (value: string) => boolean,\n) => {\n const result = arbitraryValueRegex.exec(value)\n\n if (result) {\n if (result[1]) {\n return testLabel(result[1])\n }\n\n return testValue(result[2]!)\n }\n\n return false\n}\n\nconst getIsArbitraryVariable = (\n value: string,\n testLabel: (label: string) => boolean,\n shouldMatchNoLabel = false,\n) => {\n const result = arbitraryVariableRegex.exec(value)\n\n if (result) {\n if (result[1]) {\n return testLabel(result[1])\n }\n return shouldMatchNoLabel\n }\n\n return false\n}\n\n// Labels\n\nconst isLabelPosition = (label: string) => label === 'position' || label === 'percentage'\n\nconst isLabelImage = (label: string) => label === 'image' || label === 'url'\n\nconst isLabelSize = (label: string) => label === 'length' || label === 'size' || label === 'bg-size'\n\nconst isLabelLength = (label: string) => label === 'length'\n\nconst isLabelNumber = (label: string) => label === 'number'\n\nconst isLabelFamilyName = (label: string) => label === 'family-name'\n\nconst isLabelWeight = (label: string) => label === 'number' || label === 'weight'\n\nconst isLabelShadow = (label: string) => label === 'shadow'\n","import { fromTheme } from './from-theme'\nimport { Config, DefaultClassGroupIds, DefaultThemeGroupIds } from './types'\nimport {\n isAny,\n isAnyNonArbitrary,\n isArbitraryFamilyName,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isArbitraryVariableWeight,\n isArbitraryWeight,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize,\n} from './validators'\n\nexport const getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n\n const themeColor = fromTheme('color')\n const themeFont = fromTheme('font')\n const themeText = fromTheme('text')\n const themeFontWeight = fromTheme('font-weight')\n const themeTracking = fromTheme('tracking')\n const themeLeading = fromTheme('leading')\n const themeBreakpoint = fromTheme('breakpoint')\n const themeContainer = fromTheme('container')\n const themeSpacing = fromTheme('spacing')\n const themeRadius = fromTheme('radius')\n const themeShadow = fromTheme('shadow')\n const themeInsetShadow = fromTheme('inset-shadow')\n const themeTextShadow = fromTheme('text-shadow')\n const themeDropShadow = fromTheme('drop-shadow')\n const themeBlur = fromTheme('blur')\n const themePerspective = fromTheme('perspective')\n const themeAspect = fromTheme('aspect')\n const themeEase = fromTheme('ease')\n const themeAnimate = fromTheme('animate')\n\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n\n const scaleBreak = () =>\n ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'] as const\n const scalePosition = () =>\n [\n 'center',\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top',\n 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top',\n 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom',\n 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom',\n ] as const\n const scalePositionWithArbitrary = () =>\n [...scalePosition(), isArbitraryVariable, isArbitraryValue] as const\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'] as const\n const scaleOverscroll = () => ['auto', 'contain', 'none'] as const\n const scaleUnambiguousSpacing = () =>\n [isArbitraryVariable, isArbitraryValue, themeSpacing] as const\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()] as const\n const scaleGridTemplateColsRows = () =>\n [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue] as const\n const scaleGridColRowStartAndEnd = () =>\n [\n 'auto',\n { span: ['full', isInteger, isArbitraryVariable, isArbitraryValue] },\n isInteger,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleGridColRowStartOrEnd = () =>\n [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] as const\n const scaleGridAutoColsRows = () =>\n ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue] as const\n const scaleAlignPrimaryAxis = () =>\n [\n 'start',\n 'end',\n 'center',\n 'between',\n 'around',\n 'evenly',\n 'stretch',\n 'baseline',\n 'center-safe',\n 'end-safe',\n ] as const\n const scaleAlignSecondaryAxis = () =>\n ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'] as const\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()] as const\n const scaleSizing = () =>\n [\n isFraction,\n 'auto',\n 'full',\n 'dvw',\n 'dvh',\n 'lvw',\n 'lvh',\n 'svw',\n 'svh',\n 'min',\n 'max',\n 'fit',\n ...scaleUnambiguousSpacing(),\n ] as const\n const scaleSizingInline = () =>\n [\n isFraction,\n 'screen',\n 'full',\n 'dvw',\n 'lvw',\n 'svw',\n 'min',\n 'max',\n 'fit',\n ...scaleUnambiguousSpacing(),\n ] as const\n const scaleSizingBlock = () =>\n [\n isFraction,\n 'screen',\n 'full',\n 'lh',\n 'dvh',\n 'lvh',\n 'svh',\n 'min',\n 'max',\n 'fit',\n ...scaleUnambiguousSpacing(),\n ] as const\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue] as const\n const scaleBgPosition = () =>\n [\n ...scalePosition(),\n isArbitraryVariablePosition,\n isArbitraryPosition,\n { position: [isArbitraryVariable, isArbitraryValue] },\n ] as const\n const scaleBgRepeat = () => ['no-repeat', { repeat: ['', 'x', 'y', 'space', 'round'] }] as const\n const scaleBgSize = () =>\n [\n 'auto',\n 'cover',\n 'contain',\n isArbitraryVariableSize,\n isArbitrarySize,\n { size: [isArbitraryVariable, isArbitraryValue] },\n ] as const\n const scaleGradientStopPosition = () =>\n [isPercent, isArbitraryVariableLength, isArbitraryLength] as const\n const scaleRadius = () =>\n [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n 'full',\n themeRadius,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleBorderWidth = () =>\n ['', isNumber, isArbitraryVariableLength, isArbitraryLength] as const\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'] as const\n const scaleBlendMode = () =>\n [\n 'normal',\n 'multiply',\n 'screen',\n 'overlay',\n 'darken',\n 'lighten',\n 'color-dodge',\n 'color-burn',\n 'hard-light',\n 'soft-light',\n 'difference',\n 'exclusion',\n 'hue',\n 'saturation',\n 'color',\n 'luminosity',\n ] as const\n const scaleMaskImagePosition = () =>\n [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition] as const\n const scaleBlur = () =>\n [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeBlur,\n isArbitraryVariable,\n isArbitraryValue,\n ] as const\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue] as const\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()] as const\n\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': [\n 'thin',\n 'extralight',\n 'light',\n 'normal',\n 'medium',\n 'semibold',\n 'bold',\n 'extrabold',\n 'black',\n ],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest'],\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [\n {\n aspect: [\n 'auto',\n 'square',\n isFraction,\n isArbitraryValue,\n isArbitraryVariable,\n themeAspect,\n ],\n },\n ],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [\n { columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer] },\n ],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{ 'break-after': scaleBreak() }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{ 'break-before': scaleBreak() }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{ 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column'] }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{ 'box-decoration': ['slice', 'clone'] }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{ box: ['border', 'content'] }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: [\n 'block',\n 'inline-block',\n 'inline',\n 'flex',\n 'inline-flex',\n 'table',\n 'inline-table',\n 'table-caption',\n 'table-cell',\n 'table-column',\n 'table-column-group',\n 'table-footer-group',\n 'table-header-group',\n 'table-row-group',\n 'table-row',\n 'flow-root',\n 'grid',\n 'inline-grid',\n 'contents',\n 'list-item',\n 'hidden',\n ],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{ float: ['right', 'left', 'none', 'start', 'end'] }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{ clear: ['left', 'right', 'both', 'none', 'start', 'end'] }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{ object: ['contain', 'cover', 'fill', 'none', 'scale-down'] }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{ object: scalePositionWithArbitrary() }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{ overflow: scaleOverflow() }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{ 'overflow-x': scaleOverflow() }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{ 'overflow-y': scaleOverflow() }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{ overscroll: scaleOverscroll() }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{ 'overscroll-x': scaleOverscroll() }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{ 'overscroll-y': scaleOverscroll() }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Inset\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{ inset: scaleInset() }],\n /**\n * Inset Inline\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{ 'inset-x': scaleInset() }],\n /**\n * Inset Block\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{ 'inset-y': scaleInset() }],\n /**\n * Inset Inline Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n * @todo class group will be renamed to `inset-s` in next major release\n */\n start: [\n {\n 'inset-s': scaleInset(),\n /**\n * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-s-*` utilities.\n * @see https://github.com/tailwindlabs/tailwindcss/pull/19613\n */\n start: scaleInset(),\n },\n ],\n /**\n * Inset Inline End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n * @todo class group will be renamed to `inset-e` in next major release\n */\n end: [\n {\n 'inset-e': scaleInset(),\n /**\n * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-e-*` utilities.\n * @see https://github.com/tailwindlabs/tailwindcss/pull/19613\n */\n end: scaleInset(),\n },\n ],\n /**\n * Inset Block Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-bs': [{ 'inset-bs': scaleInset() }],\n /**\n * Inset Block End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-be': [{ 'inset-be': scaleInset() }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{ top: scaleInset() }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{ right: scaleInset() }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{ bottom: scaleInset() }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{ left: scaleInset() }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{ z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue] }],\n\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [\n {\n basis: [\n isFraction,\n 'full',\n 'auto',\n themeContainer,\n ...scaleUnambiguousSpacing(),\n ],\n },\n ],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{ flex: ['row', 'row-reverse', 'col', 'col-reverse'] }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{ flex: ['nowrap', 'wrap', 'wrap-reverse'] }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{ flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue] }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{ grow: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{ shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [\n {\n order: [\n isInteger,\n 'first',\n 'last',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{ 'grid-cols': scaleGridTemplateColsRows() }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{ col: scaleGridColRowStartAndEnd() }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{ 'col-start': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{ 'col-end': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{ 'grid-rows': scaleGridTemplateColsRows() }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{ row: scaleGridColRowStartAndEnd() }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{ 'row-start': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{ 'row-end': scaleGridColRowStartOrEnd() }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{ 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense'] }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{ 'auto-cols': scaleGridAutoColsRows() }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{ 'auto-rows': scaleGridAutoColsRows() }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{ gap: scaleUnambiguousSpacing() }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{ 'gap-x': scaleUnambiguousSpacing() }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{ 'gap-y': scaleUnambiguousSpacing() }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{ justify: [...scaleAlignPrimaryAxis(), 'normal'] }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{ 'justify-items': [...scaleAlignSecondaryAxis(), 'normal'] }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{ 'justify-self': ['auto', ...scaleAlignSecondaryAxis()] }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{ content: ['normal', ...scaleAlignPrimaryAxis()] }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{ items: [...scaleAlignSecondaryAxis(), { baseline: ['', 'last'] }] }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [\n { self: ['auto', ...scaleAlignSecondaryAxis(), { baseline: ['', 'last'] }] },\n ],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{ 'place-content': scaleAlignPrimaryAxis() }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{ 'place-items': [...scaleAlignSecondaryAxis(), 'baseline'] }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{ 'place-self': ['auto', ...scaleAlignSecondaryAxis()] }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{ p: scaleUnambiguousSpacing() }],\n /**\n * Padding Inline\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{ px: scaleUnambiguousSpacing() }],\n /**\n * Padding Block\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{ py: scaleUnambiguousSpacing() }],\n /**\n * Padding Inline Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{ ps: scaleUnambiguousSpacing() }],\n /**\n * Padding Inline End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{ pe: scaleUnambiguousSpacing() }],\n /**\n * Padding Block Start\n * @see https://tailwindcss.com/docs/padding\n */\n pbs: [{ pbs: scaleUnambiguousSpacing() }],\n /**\n * Padding Block End\n * @see https://tailwindcss.com/docs/padding\n */\n pbe: [{ pbe: scaleUnambiguousSpacing() }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{ pt: scaleUnambiguousSpacing() }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{ pr: scaleUnambiguousSpacing() }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{ pb: scaleUnambiguousSpacing() }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{ pl: scaleUnambiguousSpacing() }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{ m: scaleMargin() }],\n /**\n * Margin Inline\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{ mx: scaleMargin() }],\n /**\n * Margin Block\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{ my: scaleMargin() }],\n /**\n * Margin Inline Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{ ms: scaleMargin() }],\n /**\n * Margin Inline End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{ me: scaleMargin() }],\n /**\n * Margin Block Start\n * @see https://tailwindcss.com/docs/margin\n */\n mbs: [{ mbs: scaleMargin() }],\n /**\n * Margin Block End\n * @see https://tailwindcss.com/docs/margin\n */\n mbe: [{ mbe: scaleMargin() }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{ mt: scaleMargin() }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{ mr: scaleMargin() }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{ mb: scaleMargin() }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{ ml: scaleMargin() }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{ 'space-x': scaleUnambiguousSpacing() }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{ 'space-y': scaleUnambiguousSpacing() }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n\n // --------------\n // --- Sizing ---\n // --------------\n\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{ size: scaleSizing() }],\n /**\n * Inline Size\n * @see https://tailwindcss.com/docs/width\n */\n 'inline-size': [{ inline: ['auto', ...scaleSizingInline()] }],\n /**\n * Min-Inline Size\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-inline-size': [{ 'min-inline': ['auto', ...scaleSizingInline()] }],\n /**\n * Max-Inline Size\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-inline-size': [{ 'max-inline': ['none', ...scaleSizingInline()] }],\n /**\n * Block Size\n * @see https://tailwindcss.com/docs/height\n */\n 'block-size': [{ block: ['auto', ...scaleSizingBlock()] }],\n /**\n * Min-Block Size\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-block-size': [{ 'min-block': ['auto', ...scaleSizingBlock()] }],\n /**\n * Max-Block Size\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-block-size': [{ 'max-block': ['none', ...scaleSizingBlock()] }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{ w: [themeContainer, 'screen', ...scaleSizing()] }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [\n {\n 'min-w': [\n themeContainer,\n 'screen',\n /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none',\n ...scaleSizing(),\n ],\n },\n ],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [\n {\n 'max-w': [\n themeContainer,\n 'screen',\n 'none',\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose',\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n { screen: [themeBreakpoint] },\n ...scaleSizing(),\n ],\n },\n ],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{ h: ['screen', 'lh', ...scaleSizing()] }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{ 'min-h': ['screen', 'lh', 'none', ...scaleSizing()] }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{ 'max-h': ['screen', 'lh', ...scaleSizing()] }],\n\n // ------------------\n // --- Typography ---\n // ------------------\n\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [\n { text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength] },\n ],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [\n {\n font: [themeFontWeight, isArbitraryVariableWeight, isArbitraryWeight],\n },\n ],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [\n {\n 'font-stretch': [\n 'ultra-condensed',\n 'extra-condensed',\n 'condensed',\n 'semi-condensed',\n 'normal',\n 'semi-expanded',\n 'expanded',\n 'extra-expanded',\n 'ultra-expanded',\n isPercent,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [\n { font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont] },\n ],\n /**\n * Font Feature Settings\n * @see https://tailwindcss.com/docs/font-feature-settings\n */\n 'font-features': [{ 'font-features': [isArbitraryValue] }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{ tracking: [themeTracking, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [\n { 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber] },\n ],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [\n {\n leading: [\n /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading,\n ...scaleUnambiguousSpacing(),\n ],\n },\n ],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{ 'list-image': ['none', isArbitraryVariable, isArbitraryValue] }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{ list: ['inside', 'outside'] }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [\n { list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{ text: ['left', 'center', 'right', 'justify', 'start', 'end'] }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{ placeholder: scaleColor() }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{ text: scaleColor() }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{ decoration: [...scaleLineStyle(), 'wavy'] }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [\n {\n decoration: [\n isNumber,\n 'from-font',\n 'auto',\n isArbitraryVariable,\n isArbitraryLength,\n ],\n },\n ],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{ decoration: scaleColor() }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [\n { 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{ text: ['wrap', 'nowrap', 'balance', 'pretty'] }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{ indent: scaleUnambiguousSpacing() }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [\n {\n align: [\n 'baseline',\n 'top',\n 'middle',\n 'bottom',\n 'text-top',\n 'text-bottom',\n 'sub',\n 'super',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [\n { whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces'] },\n ],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{ break: ['normal', 'words', 'all', 'keep'] }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{ wrap: ['break-word', 'anywhere', 'normal'] }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{ hyphens: ['none', 'manual', 'auto'] }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{ content: ['none', isArbitraryVariable, isArbitraryValue] }],\n\n // -------------------\n // --- Backgrounds ---\n // -------------------\n\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{ bg: ['fixed', 'local', 'scroll'] }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{ 'bg-clip': ['border', 'padding', 'content', 'text'] }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{ 'bg-origin': ['border', 'padding', 'content'] }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{ bg: scaleBgPosition() }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{ bg: scaleBgRepeat() }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{ bg: scaleBgSize() }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [\n {\n bg: [\n 'none',\n {\n linear: [\n { to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl'] },\n isInteger,\n isArbitraryVariable,\n isArbitraryValue,\n ],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue],\n },\n isArbitraryVariableImage,\n isArbitraryImage,\n ],\n },\n ],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{ bg: scaleColor() }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{ from: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{ via: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{ to: scaleGradientStopPosition() }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{ from: scaleColor() }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{ via: scaleColor() }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{ to: scaleColor() }],\n\n // ---------------\n // --- Borders ---\n // ---------------\n\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{ rounded: scaleRadius() }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{ 'rounded-s': scaleRadius() }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{ 'rounded-e': scaleRadius() }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{ 'rounded-t': scaleRadius() }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{ 'rounded-r': scaleRadius() }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{ 'rounded-b': scaleRadius() }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{ 'rounded-l': scaleRadius() }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{ 'rounded-ss': scaleRadius() }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{ 'rounded-se': scaleRadius() }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{ 'rounded-ee': scaleRadius() }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{ 'rounded-es': scaleRadius() }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{ 'rounded-tl': scaleRadius() }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{ 'rounded-tr': scaleRadius() }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{ 'rounded-br': scaleRadius() }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{ 'rounded-bl': scaleRadius() }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{ border: scaleBorderWidth() }],\n /**\n * Border Width Inline\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{ 'border-x': scaleBorderWidth() }],\n /**\n * Border Width Block\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{ 'border-y': scaleBorderWidth() }],\n /**\n * Border Width Inline Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{ 'border-s': scaleBorderWidth() }],\n /**\n * Border Width Inline End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{ 'border-e': scaleBorderWidth() }],\n /**\n * Border Width Block Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-bs': [{ 'border-bs': scaleBorderWidth() }],\n /**\n * Border Width Block End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-be': [{ 'border-be': scaleBorderWidth() }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{ 'border-t': scaleBorderWidth() }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{ 'border-r': scaleBorderWidth() }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{ 'border-b': scaleBorderWidth() }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{ 'border-l': scaleBorderWidth() }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{ 'divide-x': scaleBorderWidth() }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{ 'divide-y': scaleBorderWidth() }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{ border: [...scaleLineStyle(), 'hidden', 'none'] }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{ divide: [...scaleLineStyle(), 'hidden', 'none'] }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{ border: scaleColor() }],\n /**\n * Border Color Inline\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{ 'border-x': scaleColor() }],\n /**\n * Border Color Block\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{ 'border-y': scaleColor() }],\n /**\n * Border Color Inline Start\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{ 'border-s': scaleColor() }],\n /**\n * Border Color Inline End\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{ 'border-e': scaleColor() }],\n /**\n * Border Color Block Start\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-bs': [{ 'border-bs': scaleColor() }],\n /**\n * Border Color Block End\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-be': [{ 'border-be': scaleColor() }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{ 'border-t': scaleColor() }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{ 'border-r': scaleColor() }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{ 'border-b': scaleColor() }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{ 'border-l': scaleColor() }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{ divide: scaleColor() }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{ outline: [...scaleLineStyle(), 'none', 'hidden'] }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [\n { 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [\n { outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength] },\n ],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{ outline: scaleColor() }],\n\n // ---------------\n // --- Effects ---\n // ---------------\n\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [\n {\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{ shadow: scaleColor() }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [\n {\n 'inset-shadow': [\n 'none',\n themeInsetShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{ 'inset-shadow': scaleColor() }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{ ring: scaleBorderWidth() }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{ ring: scaleColor() }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{ 'ring-offset': [isNumber, isArbitraryLength] }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{ 'ring-offset': scaleColor() }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{ 'inset-ring': scaleBorderWidth() }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{ 'inset-ring': scaleColor() }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [\n {\n 'text-shadow': [\n 'none',\n themeTextShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{ 'text-shadow': scaleColor() }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{ opacity: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{ 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter'] }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{ 'bg-blend': scaleBlendMode() }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [\n { 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] },\n 'mask-no-clip',\n ],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{ mask: ['add', 'subtract', 'intersect', 'exclude'] }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{ 'mask-linear': [isNumber] }],\n 'mask-image-linear-from-pos': [{ 'mask-linear-from': scaleMaskImagePosition() }],\n 'mask-image-linear-to-pos': [{ 'mask-linear-to': scaleMaskImagePosition() }],\n 'mask-image-linear-from-color': [{ 'mask-linear-from': scaleColor() }],\n 'mask-image-linear-to-color': [{ 'mask-linear-to': scaleColor() }],\n 'mask-image-t-from-pos': [{ 'mask-t-from': scaleMaskImagePosition() }],\n 'mask-image-t-to-pos': [{ 'mask-t-to': scaleMaskImagePosition() }],\n 'mask-image-t-from-color': [{ 'mask-t-from': scaleColor() }],\n 'mask-image-t-to-color': [{ 'mask-t-to': scaleColor() }],\n 'mask-image-r-from-pos': [{ 'mask-r-from': scaleMaskImagePosition() }],\n 'mask-image-r-to-pos': [{ 'mask-r-to': scaleMaskImagePosition() }],\n 'mask-image-r-from-color': [{ 'mask-r-from': scaleColor() }],\n 'mask-image-r-to-color': [{ 'mask-r-to': scaleColor() }],\n 'mask-image-b-from-pos': [{ 'mask-b-from': scaleMaskImagePosition() }],\n 'mask-image-b-to-pos': [{ 'mask-b-to': scaleMaskImagePosition() }],\n 'mask-image-b-from-color': [{ 'mask-b-from': scaleColor() }],\n 'mask-image-b-to-color': [{ 'mask-b-to': scaleColor() }],\n 'mask-image-l-from-pos': [{ 'mask-l-from': scaleMaskImagePosition() }],\n 'mask-image-l-to-pos': [{ 'mask-l-to': scaleMaskImagePosition() }],\n 'mask-image-l-from-color': [{ 'mask-l-from': scaleColor() }],\n 'mask-image-l-to-color': [{ 'mask-l-to': scaleColor() }],\n 'mask-image-x-from-pos': [{ 'mask-x-from': scaleMaskImagePosition() }],\n 'mask-image-x-to-pos': [{ 'mask-x-to': scaleMaskImagePosition() }],\n 'mask-image-x-from-color': [{ 'mask-x-from': scaleColor() }],\n 'mask-image-x-to-color': [{ 'mask-x-to': scaleColor() }],\n 'mask-image-y-from-pos': [{ 'mask-y-from': scaleMaskImagePosition() }],\n 'mask-image-y-to-pos': [{ 'mask-y-to': scaleMaskImagePosition() }],\n 'mask-image-y-from-color': [{ 'mask-y-from': scaleColor() }],\n 'mask-image-y-to-color': [{ 'mask-y-to': scaleColor() }],\n 'mask-image-radial': [{ 'mask-radial': [isArbitraryVariable, isArbitraryValue] }],\n 'mask-image-radial-from-pos': [{ 'mask-radial-from': scaleMaskImagePosition() }],\n 'mask-image-radial-to-pos': [{ 'mask-radial-to': scaleMaskImagePosition() }],\n 'mask-image-radial-from-color': [{ 'mask-radial-from': scaleColor() }],\n 'mask-image-radial-to-color': [{ 'mask-radial-to': scaleColor() }],\n 'mask-image-radial-shape': [{ 'mask-radial': ['circle', 'ellipse'] }],\n 'mask-image-radial-size': [\n { 'mask-radial': [{ closest: ['side', 'corner'], farthest: ['side', 'corner'] }] },\n ],\n 'mask-image-radial-pos': [{ 'mask-radial-at': scalePosition() }],\n 'mask-image-conic-pos': [{ 'mask-conic': [isNumber] }],\n 'mask-image-conic-from-pos': [{ 'mask-conic-from': scaleMaskImagePosition() }],\n 'mask-image-conic-to-pos': [{ 'mask-conic-to': scaleMaskImagePosition() }],\n 'mask-image-conic-from-color': [{ 'mask-conic-from': scaleColor() }],\n 'mask-image-conic-to-color': [{ 'mask-conic-to': scaleColor() }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{ mask: ['alpha', 'luminance', 'match'] }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [\n { 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view'] },\n ],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{ mask: scaleBgPosition() }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{ mask: scaleBgRepeat() }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{ mask: scaleBgSize() }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{ 'mask-type': ['alpha', 'luminance'] }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{ mask: ['none', isArbitraryVariable, isArbitraryValue] }],\n\n // ---------------\n // --- Filters ---\n // ---------------\n\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [\n {\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{ blur: scaleBlur() }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{ brightness: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{ contrast: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [\n {\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '',\n 'none',\n themeDropShadow,\n isArbitraryVariableShadow,\n isArbitraryShadow,\n ],\n },\n ],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{ 'drop-shadow': scaleColor() }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{ grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{ 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{ invert: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{ saturate: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{ sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [\n {\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{ 'backdrop-blur': scaleBlur() }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [\n { 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [\n { 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [\n { 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [\n { 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [\n { 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [\n { 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [\n { 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [\n { 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue] },\n ],\n\n // --------------\n // --- Tables ---\n // --------------\n\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{ border: ['collapse', 'separate'] }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{ 'border-spacing': scaleUnambiguousSpacing() }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{ 'border-spacing-x': scaleUnambiguousSpacing() }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{ 'border-spacing-y': scaleUnambiguousSpacing() }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{ table: ['auto', 'fixed'] }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{ caption: ['top', 'bottom'] }],\n\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [\n {\n transition: [\n '',\n 'all',\n 'colors',\n 'opacity',\n 'shadow',\n 'transform',\n 'none',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{ transition: ['normal', 'discrete'] }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{ duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue] }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [\n { ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{ delay: [isNumber, isArbitraryVariable, isArbitraryValue] }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{ animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue] }],\n\n // ------------------\n // --- Transforms ---\n // ------------------\n\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{ backface: ['hidden', 'visible'] }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [\n { perspective: [themePerspective, isArbitraryVariable, isArbitraryValue] },\n ],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{ 'perspective-origin': scalePositionWithArbitrary() }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{ rotate: scaleRotate() }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{ 'rotate-x': scaleRotate() }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{ 'rotate-y': scaleRotate() }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{ 'rotate-z': scaleRotate() }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{ scale: scaleScale() }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{ 'scale-x': scaleScale() }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{ 'scale-y': scaleScale() }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{ 'scale-z': scaleScale() }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{ skew: scaleSkew() }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{ 'skew-x': scaleSkew() }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{ 'skew-y': scaleSkew() }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [\n { transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu'] },\n ],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{ origin: scalePositionWithArbitrary() }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{ transform: ['3d', 'flat'] }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{ translate: scaleTranslate() }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{ 'translate-x': scaleTranslate() }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{ 'translate-y': scaleTranslate() }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{ 'translate-z': scaleTranslate() }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{ accent: scaleColor() }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{ appearance: ['none', 'auto'] }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{ caret: scaleColor() }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [\n { scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light'] },\n ],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [\n {\n cursor: [\n 'auto',\n 'default',\n 'pointer',\n 'wait',\n 'text',\n 'move',\n 'help',\n 'not-allowed',\n 'none',\n 'context-menu',\n 'progress',\n 'cell',\n 'crosshair',\n 'vertical-text',\n 'alias',\n 'copy',\n 'no-drop',\n 'grab',\n 'grabbing',\n 'all-scroll',\n 'col-resize',\n 'row-resize',\n 'n-resize',\n 'e-resize',\n 's-resize',\n 'w-resize',\n 'ne-resize',\n 'nw-resize',\n 'se-resize',\n 'sw-resize',\n 'ew-resize',\n 'ns-resize',\n 'nesw-resize',\n 'nwse-resize',\n 'zoom-in',\n 'zoom-out',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{ 'field-sizing': ['fixed', 'content'] }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{ 'pointer-events': ['auto', 'none'] }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{ resize: ['none', '', 'y', 'x'] }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{ scroll: ['auto', 'smooth'] }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{ 'scroll-m': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Inline\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{ 'scroll-mx': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Block\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{ 'scroll-my': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Inline Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{ 'scroll-ms': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Inline End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{ 'scroll-me': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Block Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mbs': [{ 'scroll-mbs': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Block End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mbe': [{ 'scroll-mbe': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{ 'scroll-mt': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{ 'scroll-mr': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{ 'scroll-mb': scaleUnambiguousSpacing() }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{ 'scroll-ml': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{ 'scroll-p': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Inline\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{ 'scroll-px': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Block\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{ 'scroll-py': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Inline Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{ 'scroll-ps': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Inline End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{ 'scroll-pe': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Block Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pbs': [{ 'scroll-pbs': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Block End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pbe': [{ 'scroll-pbe': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{ 'scroll-pt': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{ 'scroll-pr': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{ 'scroll-pb': scaleUnambiguousSpacing() }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{ 'scroll-pl': scaleUnambiguousSpacing() }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{ snap: ['start', 'end', 'center', 'align-none'] }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{ snap: ['normal', 'always'] }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{ snap: ['none', 'x', 'y', 'both'] }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{ snap: ['mandatory', 'proximity'] }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{ touch: ['auto', 'none', 'manipulation'] }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{ 'touch-pan': ['x', 'left', 'right'] }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{ 'touch-pan': ['y', 'up', 'down'] }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{ select: ['none', 'text', 'all', 'auto'] }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [\n {\n 'will-change': [\n 'auto',\n 'scroll',\n 'contents',\n 'transform',\n isArbitraryVariable,\n isArbitraryValue,\n ],\n },\n ],\n\n // -----------\n // --- SVG ---\n // -----------\n\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{ fill: ['none', ...scaleColor()] }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [\n {\n stroke: [\n isNumber,\n isArbitraryVariableLength,\n isArbitraryLength,\n isArbitraryNumber,\n ],\n },\n ],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{ stroke: ['none', ...scaleColor()] }],\n\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{ 'forced-color-adjust': ['auto', 'none'] }],\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: [\n 'inset-x',\n 'inset-y',\n 'inset-bs',\n 'inset-be',\n 'start',\n 'end',\n 'top',\n 'right',\n 'bottom',\n 'left',\n ],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pbs', 'pbe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mbs', 'mbe', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': [\n 'fvn-ordinal',\n 'fvn-slashed-zero',\n 'fvn-figure',\n 'fvn-spacing',\n 'fvn-fraction',\n ],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: [\n 'rounded-s',\n 'rounded-e',\n 'rounded-t',\n 'rounded-r',\n 'rounded-b',\n 'rounded-l',\n 'rounded-ss',\n 'rounded-se',\n 'rounded-ee',\n 'rounded-es',\n 'rounded-tl',\n 'rounded-tr',\n 'rounded-br',\n 'rounded-bl',\n ],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': [\n 'border-w-x',\n 'border-w-y',\n 'border-w-s',\n 'border-w-e',\n 'border-w-bs',\n 'border-w-be',\n 'border-w-t',\n 'border-w-r',\n 'border-w-b',\n 'border-w-l',\n ],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': [\n 'border-color-x',\n 'border-color-y',\n 'border-color-s',\n 'border-color-e',\n 'border-color-bs',\n 'border-color-be',\n 'border-color-t',\n 'border-color-r',\n 'border-color-b',\n 'border-color-l',\n ],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': [\n 'scroll-mx',\n 'scroll-my',\n 'scroll-ms',\n 'scroll-me',\n 'scroll-mbs',\n 'scroll-mbe',\n 'scroll-mt',\n 'scroll-mr',\n 'scroll-mb',\n 'scroll-ml',\n ],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': [\n 'scroll-px',\n 'scroll-py',\n 'scroll-ps',\n 'scroll-pe',\n 'scroll-pbs',\n 'scroll-pbe',\n 'scroll-pt',\n 'scroll-pr',\n 'scroll-pb',\n 'scroll-pl',\n ],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch'],\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading'],\n },\n orderSensitiveModifiers: [\n '*',\n '**',\n 'after',\n 'backdrop',\n 'before',\n 'details-content',\n 'file',\n 'first-letter',\n 'first-line',\n 'marker',\n 'placeholder',\n 'selection',\n ],\n } as const satisfies Config<DefaultClassGroupIds, DefaultThemeGroupIds>\n}\n","import { AnyConfig, ConfigExtension, NoInfer } from './types'\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nexport const mergeConfigs = <ClassGroupIds extends string, ThemeGroupIds extends string = never>(\n baseConfig: AnyConfig,\n {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {},\n }: ConfigExtension<ClassGroupIds, ThemeGroupIds>,\n) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize)\n overrideProperty(baseConfig, 'prefix', prefix)\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName)\n\n overrideConfigProperties(baseConfig.theme, override.theme)\n overrideConfigProperties(baseConfig.classGroups, override.classGroups)\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups)\n overrideConfigProperties(\n baseConfig.conflictingClassGroupModifiers,\n override.conflictingClassGroupModifiers,\n )\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers)\n\n mergeConfigProperties(baseConfig.theme, extend.theme)\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups)\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups)\n mergeConfigProperties(\n baseConfig.conflictingClassGroupModifiers,\n extend.conflictingClassGroupModifiers,\n )\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers')\n\n return baseConfig\n}\n\nconst overrideProperty = <T extends object, K extends keyof T>(\n baseObject: T,\n overrideKey: K,\n overrideValue: T[K] | undefined,\n) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue\n }\n}\n\nconst overrideConfigProperties = (\n baseObject: Partial<Record<string, readonly unknown[]>>,\n overrideObject: Partial<Record<string, readonly unknown[]>> | undefined,\n) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key])\n }\n }\n}\n\nconst mergeConfigProperties = (\n baseObject: Partial<Record<string, readonly unknown[]>>,\n mergeObject: Partial<Record<string, readonly unknown[]>> | undefined,\n) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key)\n }\n }\n}\n\nconst mergeArrayProperties = <Key extends string>(\n baseObject: Partial<Record<NoInfer<Key>, readonly unknown[]>>,\n mergeObject: Partial<Record<NoInfer<Key>, readonly unknown[]>>,\n key: Key,\n) => {\n const mergeValue = mergeObject[key]\n\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue\n }\n}\n","import { createTailwindMerge } from './create-tailwind-merge'\nimport { getDefaultConfig } from './default-config'\nimport { mergeConfigs } from './merge-configs'\nimport { AnyConfig, ConfigExtension, DefaultClassGroupIds, DefaultThemeGroupIds } from './types'\n\ntype CreateConfigSubsequent = (config: AnyConfig) => AnyConfig\n\nexport const extendTailwindMerge = <\n AdditionalClassGroupIds extends string = never,\n AdditionalThemeGroupIds extends string = never,\n>(\n configExtension:\n | ConfigExtension<\n DefaultClassGroupIds | AdditionalClassGroupIds,\n DefaultThemeGroupIds | AdditionalThemeGroupIds\n >\n | CreateConfigSubsequent,\n ...createConfig: CreateConfigSubsequent[]\n) =>\n typeof configExtension === 'function'\n ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig)\n : createTailwindMerge(\n () => mergeConfigs(getDefaultConfig(), configExtension),\n ...createConfig,\n )\n","import { clsx, type ClassValue } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst customTwMerge = extendTailwindMerge({\n extend: {\n classGroups: {\n \"font-size\": [\n \"text-xxs\",\n \"text-xs\",\n \"text-sm\",\n \"text-md\",\n \"text-lg\",\n \"text-xl\",\n \"text-2xl\",\n \"text-3xl\",\n \"text-4xl\",\n \"text-5xl\",\n \"text-6xl\",\n \"text-7xl\",\n \"text-8xl\",\n \"text-9xl\",\n ],\n },\n },\n});\n\nexport function cn(...inputs: ClassValue[]) {\n return customTwMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport {\n createContext,\n useContext,\n Children,\n isValidElement,\n type ComponentProps,\n type ReactNode,\n} from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { CloseMd } from \"@medway-ui/icons\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface AlertProps extends ComponentProps<\"div\"> {\n variant?: \"regular\" | \"emphasis\" | \"success\" | \"warning\" | \"error\";\n onClose?: () => void;\n}\n\nconst AlertContext = createContext<{\n variant: \"regular\" | \"emphasis\" | \"success\" | \"warning\" | \"error\";\n hasDescription: boolean;\n hasTitle: boolean;\n onClose?: () => void;\n} | null>(null);\n\nconst alertVariants = cva(\n \"relative flex flex-col items-center justify-between gap-5 w-full rounded-md px-4 py-3 text-sm has-[>svg]:gap-x-9 gap-y-1 items-center [&>svg]:translate-y-0 [&>svg]:text-current lg:flex-row\",\n {\n variants: {\n variant: {\n regular:\n \"[background:linear-gradient(0deg,_var(--color-primary-background-soft)_0%,_var(--color-primary-background-soft)_100%),_var(--color-surface-card)] text-primary-foreground [&>svg]:text-primary-foreground\",\n emphasis:\n \"[background:linear-gradient(0deg,_var(--color-secondary-background-soft)_0%,_var(--color-secondary-background-soft)_100%),_var(--color-surface-card)] text-secondary-foreground [&>svg]:text-secondary-foreground\",\n success:\n \"[background:linear-gradient(0deg,_var(--color-green-background-soft)_0%,_var(--color-green-background-soft)_100%),_var(--color-surface-card)] text-green-foreground [&>svg]:text-green-foreground\",\n warning:\n \"[background:linear-gradient(0deg,_var(--color-yellow-background-soft)_0%,_var(--color-yellow-background-soft)_100%),_var(--color-surface-card)] text-yellow-foreground [&>svg]:text-yellow-foreground\",\n error:\n \"[background:linear-gradient(0deg,_var(--color-red-background-soft)_0%,_var(--color-red-background-soft)_100%),_var(--color-surface-card)] text-red-foreground [&>svg]:text-red-foreground\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n },\n }\n);\n\nfunction Alert({\n className,\n variant = \"regular\",\n onClose,\n children,\n ...props\n}: AlertProps) {\n const hasDescription = Children.toArray(children).some(\n (child) => isValidElement(child) && child.type === AlertDescription\n );\n const hasTitle = Children.toArray(children).some(\n (child) => isValidElement(child) && child.type === AlertTitle\n );\n\n return (\n <AlertContext.Provider\n value={{ variant, hasDescription, hasTitle, onClose }}\n >\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n {children}\n {onClose && (\n <CloseMd\n aria-label=\"alert-close\"\n onClick={onClose}\n className=\"absolute right-4 top-2 !size-4 cursor-pointer !text-gray-foreground\"\n />\n )}\n </div>\n </AlertContext.Provider>\n );\n}\n\nfunction AlertContainer({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-container\"\n className={cn(\"flex gap-3\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertContent({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-content\"\n className={cn(\"flex flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertIcon({\n className,\n icon,\n ...props\n}: ComponentProps<\"div\"> & {\n icon?: ReactNode;\n}) {\n return (\n <div data-slot=\"alert-icon\" className={cn(\"size-6\", className)} {...props}>\n {icon}\n </div>\n );\n}\n\nfunction AlertTitle({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\"line-clamp-1 min-h-4 text-md font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"!line-clamp-3 grid justify-items-start gap-1 text-sm leading-5\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertActions({ className, ...props }: ComponentProps<\"div\">) {\n const context = useContext(AlertContext);\n const hasDescription = context?.hasDescription || false;\n const hasTitle = context?.hasTitle || false;\n const onClose = context?.onClose;\n\n return (\n <div\n data-slot=\"alert-actions\"\n className={cn(\n \"relative mt-2 flex flex-wrap items-center gap-x-2 lg:mt-0 lg:flex-nowrap\",\n (!hasDescription || !hasTitle) && onClose && \"lg:right-5\",\n className\n )}\n {...props}\n />\n );\n}\n\nconst alertButtonVariants = cva(\n \"inline-flex items-center justify-center rounded-pill px-3 py-2 min-h-10 text-sm font-semibold transition-colors whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:brightness-90\",\n {\n variants: {\n variant: {\n regular: \"text-current\",\n basic: \"text-current\",\n },\n alertVariant: {\n regular: \"\",\n emphasis: \"\",\n success: \"\",\n warning: \"\",\n error: \"\",\n },\n },\n compoundVariants: [\n {\n variant: \"regular\",\n alertVariant: \"regular\",\n class: \"bg-primary-background-soft\",\n },\n {\n variant: \"regular\",\n alertVariant: \"emphasis\",\n class: \"bg-secondary-background-soft\",\n },\n {\n variant: \"regular\",\n alertVariant: \"success\",\n class: \"bg-green-background-soft\",\n },\n {\n variant: \"regular\",\n alertVariant: \"warning\",\n class: \"bg-yellow-background-soft\",\n },\n {\n variant: \"regular\",\n alertVariant: \"error\",\n class: \"bg-red-background-soft\",\n },\n ],\n defaultVariants: {\n variant: \"regular\",\n alertVariant: \"regular\",\n },\n }\n);\n\ninterface AlertButtonProps\n extends ComponentProps<\"button\">,\n VariantProps<typeof alertButtonVariants> {}\n\nfunction AlertButton({ className, variant, ...props }: AlertButtonProps) {\n const context = useContext(AlertContext);\n const alertVariant = context?.variant || \"regular\";\n\n return (\n <button\n className={cn(alertButtonVariants({ variant, alertVariant }), className)}\n {...props}\n />\n );\n}\n\nexport {\n Alert,\n AlertContainer,\n AlertContent,\n AlertIcon,\n AlertTitle,\n AlertDescription,\n AlertActions,\n AlertButton,\n alertVariants,\n alertButtonVariants,\n};\nexport type { AlertProps, AlertButtonProps };\n","\"use client\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface LoadingProps {\n size?: number;\n className?: string;\n}\n\nfunction Loading({ size = 24, className }: LoadingProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn(\"animate-spin\", className)}\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n );\n}\n\nexport { Loading };\nexport type { LoadingProps };\n","\"use client\";\n\nimport {\n Children,\n type ComponentProps,\n type ReactNode,\n type ElementType,\n} from \"react\";\nimport { Slot } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst ICON_ONLY_SIZES: Record<\"sm\" | \"md\" | \"lg\" | \"xl\", string> = {\n sm: \"size-4 p-0\",\n md: \"size-5 p-0\",\n lg: \"size-6 p-0\",\n xl: \"size-7 p-0\",\n} as const;\n\nconst CHAR_PADDING: Record<\"sm\" | \"md\" | \"lg\" | \"xl\", string> = {\n sm: \"px-1\",\n md: \"px-1\",\n lg: \"px-1\",\n xl: \"px-1.5\",\n} as const;\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center rounded-pill border font-semibold w-fit whitespace-nowrap shrink-0 gap-1 [&>svg]:pointer-events-none overflow-hidden border-transparent px-2\",\n {\n variants: {\n variant: {\n regular:\n \"bg-secondary-background-fill text-secondary-foreground-onfill\",\n error: \"bg-red-background-soft text-red-stroke-emphasis\",\n warning: \"bg-yellow-background-soft text-yellow-foreground\",\n freemium:\n \"[background:radial-gradient(135.09%_111.8%_at_0%_50%,rgba(24,98,188,0.02)_0%,rgba(0,32,91,0)_100%),linear-gradient(46deg,rgba(62,218,199,0.56)_6.54%,rgba(24,98,188,0.17)_85.21%),var(--color-primary)] text-white\",\n },\n size: {\n sm: \"min-w-4 text-xxs [&>svg]:size-2.5\",\n md: \"min-w-5 text-xs [&>svg]:size-3\",\n lg: \"min-w-6 text-xs [&>svg]:size-3.5\",\n xl: \"min-w-7 text-sm [&>svg]:size-4\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n size: \"md\",\n },\n }\n);\n\ntype BadgeAnimation = \"shine\";\n\ninterface BadgeProps\n extends ComponentProps<\"span\">,\n VariantProps<typeof badgeVariants> {\n asChild?: boolean;\n icon?: ReactNode;\n animation?: BadgeAnimation;\n}\n\nfunction Badge({\n className,\n variant,\n size,\n icon,\n animation,\n asChild = false,\n ...props\n}: BadgeProps) {\n const Comp = (asChild ? Slot.Slot : \"span\") as ElementType;\n const hasChildren = Children.count(props.children) > 0;\n const isIconOnly = !!icon && !hasChildren;\n const childText =\n typeof props.children === \"string\" || typeof props.children === \"number\"\n ? String(props.children).trim()\n : \"\";\n const isSingleAlphaNum = /^[A-Za-z0-9]$/.test(childText);\n const isShortAlnumUpTo3 = /^[A-Za-z0-9]{2,3}$/.test(childText);\n const isDigitsWithSuffix = /^\\d{1,2}\\S$/.test(childText); // e.g., 9+, 99%, 9K\n const isShortUpTo3 = isShortAlnumUpTo3 || isDigitsWithSuffix;\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(\n badgeVariants({ variant, size }),\n (isIconOnly || isSingleAlphaNum) && ICON_ONLY_SIZES[size || \"md\"],\n !isIconOnly && isShortUpTo3 && CHAR_PADDING[size || \"md\"],\n animation === \"shine\" &&\n \"animate-shine bg-[linear-gradient(135deg,transparent_25%,var(--color-white-24)_50%,transparent_75%,transparent_100%)] bg-[length:250%_250%,100%_100%] bg-no-repeat\",\n className\n )}\n {...props}\n >\n {icon}\n {props.children}\n </Comp>\n );\n}\n\nexport { Badge, badgeVariants };\nexport type { BadgeProps, BadgeAnimation };\n","\"use client\";\n\nimport { Slot } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { type ComponentProps, type ReactNode, type ElementType } from \"react\";\n\nimport { Loading } from \"@/components/Loading\";\nimport { Badge as BadgeComponent } from \"@/components/Badge\";\nimport { cn } from \"@/lib/utils\";\n\nconst ICON_ONLY_SIZES = {\n sm: \"!h-8 !min-h-8 !w-8 !px-3 !py-2\",\n md: \"!h-10 !min-h-10 !w-10 !px-[14px] !py-[10px]\",\n lg: \"!h-12 !min-h-12 !w-12 !p-3\",\n xl: \"!h-14 !min-h-14 !w-14 !p-3\",\n} as const;\n\nconst ALERT_CIRCLE_SIZES = {\n sm: \"size-2\",\n md: \"size-2.5\",\n lg: \"size-2.5\",\n xl: \"size-3\",\n} as const;\n\nconst badgeSizeMap: Record<\n \"sm\" | \"md\" | \"lg\" | \"xl\",\n \"sm\" | \"md\" | \"lg\" | \"xl\"\n> = {\n sm: \"sm\",\n md: \"md\",\n lg: \"md\",\n xl: \"lg\",\n};\n\ninterface ButtonProps\n extends ComponentProps<\"button\">,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n containerClassName?: string;\n iconRight?: ReactNode;\n iconLeft?: ReactNode;\n badge?: number | string;\n loading?: boolean;\n alert?: string;\n}\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center place-items-center gap-2 rounded-pill text-sm font-semibold whitespace-nowrap transition-all disabled:pointer-events-none shrink-0 [&_svg]:shrink-0 hover:cursor-pointer focus:outline-0 [grid-template-areas:'stack']\",\n {\n variants: {\n variant: {\n regular:\n \"bg-primary-background-fill text-primary-foreground-onfill hover:bg-primary-background-fill-emphasis disabled:bg-gray-background-fill-muted disabled:text-gray-foreground-onfill\",\n \"regular-soft\":\n \"bg-primary-background-soft text-primary-foreground hover:bg-primary-background-soft-emphasis hover:text-primary-foreground-emphasis disabled:bg-gray-background-soft-muted disabled:text-gray-foreground-muted\",\n \"regular-basic\":\n \"bg-transparent text-primary-foreground hover:bg-primary-background-soft-emphasis hover:text-primary-foreground-emphasis disabled:bg-transparent disabled:text-gray-foreground-muted\",\n emphasis:\n \"bg-secondary-background-fill text-secondary-foreground-onfill hover:bg-secondary-background-fill-emphasis disabled:bg-gray-background-fill-muted disabled:text-gray-foreground-onfill\",\n \"emphasis-soft\":\n \"bg-secondary-background-soft text-secondary-foreground hover:bg-secondary-background-soft-emphasis hover:text-secondary-foreground-emphasis disabled:bg-gray-background-soft-muted disabled:text-gray-foreground-muted\",\n \"emphasis-basic\":\n \"bg-transparent text-secondary-foreground hover:bg-secondary-background-soft-emphasis hover:text-secondary-foreground-emphasis disabled:bg-transparent disabled:text-gray-foreground-muted\",\n error:\n \"bg-red-background-fill text-red-foreground-onfill hover:bg-red-background-fill-emphasis disabled:bg-gray-background-fill-muted disabled:text-gray-foreground-onfill\",\n \"error-soft\":\n \"bg-red-background-soft text-red-foreground hover:bg-red-background-soft-emphasis hover:text-red-foreground-emphasis disabled:bg-gray-background-soft-muted disabled:text-gray-foreground-muted\",\n \"error-basic\":\n \"bg-transparent text-red-foreground hover:bg-red-background-soft-emphasis hover:text-red-foreground-emphasis disabled:bg-transparent disabled:text-gray-foreground-muted\",\n warning:\n \"bg-yellow-background-fill text-yellow-foreground-onfill hover:bg-yellow-background-fill-emphasis disabled:bg-gray-background-fill-muted disabled:text-gray-foreground-onfill\",\n \"warning-soft\":\n \"bg-yellow-background-soft text-yellow-foreground hover:bg-yellow-background-soft-emphasis hover:text-yellow-foreground-emphasis disabled:bg-gray-background-soft-muted disabled:text-gray-foreground-muted\",\n \"warning-basic\":\n \"bg-transparent text-yellow-foreground hover:bg-yellow-background-soft-emphasis hover:text-yellow-foreground-emphasis disabled:bg-transparent disabled:text-gray-foreground-muted\",\n success:\n \"bg-green-background-fill text-green-foreground-onfill hover:bg-green-background-fill-emphasis disabled:bg-gray-background-fill-muted disabled:text-gray-foreground-onfill\",\n \"success-soft\":\n \"bg-green-background-soft text-green-foreground hover:bg-green-background-soft-emphasis hover:text-green-foreground-emphasis disabled:bg-gray-background-soft-muted disabled:text-gray-foreground-muted\",\n \"success-basic\":\n \"bg-transparent text-green-foreground hover:bg-green-background-soft-emphasis hover:text-green-foreground-emphasis disabled:bg-transparent disabled:text-gray-foreground-muted\",\n outlined:\n \"border border-gray-stroke-muted bg-transparent text-foreground hover:border-transparent hover:bg-gray-50 disabled:border-transparent dark:bg-transparent hover:dark:border-gray-400 disabled:border-gray-stroke-muted disabled:text-gray-foreground-muted\",\n gradient:\n \"text-white [background:linear-gradient(284deg,var(--color-primary)_2.11%,var(--color-secondary)_128.06%)] hover:[background:linear-gradient(284deg,var(--color-primary)2.11%,var(--color-secondary)102.63%)] disabled:[background:var(--color-gray-50)] disabled:bg-gray-background-fill-muted disabled:text-gray-foreground-onfill\",\n medbrain:\n \"border-2 border-transparent bg-clip-text [background:linear-gradient(var(--color-white),var(--color-white))_padding-box,linear-gradient(75deg,var(--color-secondary),var(--color-cm-lighten-3))_border-box] [box-shadow:-8px_0_8px_0_var(--color-prev-16)_inset,8px_0_8px_0_var(--color-secondary-24)_inset,0_0_8px_0_var(--color-cm-16)_inset] hover:[background:linear-gradient(var(--color-white),var(--color-white))_padding-box,linear-gradient(75deg,var(--color-cm-lighten-3),var(--color-secondary))_border-box] [&_span]:bg-clip-text [&_span]:text-transparent [&_span]:bg-gradient-to-r [&_span]:from-cm [&_span]:to-primary [&_span]:hover:to-secondary disabled:bg-gray-background-fill-muted disabled:text-gray-foreground-onfill [&_svg]:text-cm-darken-1\",\n },\n size: {\n sm: \"min-h-8 min-w-8 px-3 py-1 has-[>svg]:px-3 [&_svg:not([class*='size-'])]:size-[13px] text-xs\",\n md: \"min-h-10 min-w-10 px-3.5 py-2 has-[>svg]:px-3.5 [&_svg:not([class*='size-'])]:size-4 text-sm\",\n lg: \"min-h-12 min-w-12 px-4 py-3 has-[>svg]:px-4 [&_svg:not([class*='size-'])]:size-6 text-md\",\n xl: \"min-h-14 min-w-14 px-[18px] py-3.5 has-[>svg]:px-[18px] [&_svg:not([class*='size-'])]:size-7 text-lg\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n size: \"md\",\n },\n }\n);\n\nfunction Button({\n className,\n containerClassName,\n variant,\n size,\n asChild = false,\n iconRight,\n iconLeft,\n badge,\n loading = false,\n alert,\n ...props\n}: ButtonProps) {\n const Comp = (asChild ? Slot.Slot : \"button\") as ElementType;\n\n const shouldShowBadge = (value: number | string | undefined) => {\n return value != null && value !== 0 && value !== \"\" && value !== \"0\";\n };\n\n const renderIcon = (icon: ReactNode) => icon;\n\n const isIconOnly = !props.children && (iconLeft || iconRight || alert);\n\n const renderAlertCircle = () => {\n if (!alert) return null;\n\n return (\n <span\n className={cn(\n \"relative mr-1 flex size-2.5\",\n ALERT_CIRCLE_SIZES[size || \"md\"]\n )}\n >\n <span\n className=\"absolute inline-flex h-full w-full animate-ping rounded-full opacity-75\"\n style={{ backgroundColor: alert }}\n ></span>\n <span\n className={cn(\n \"relative inline-flex size-2.5 rounded-full\",\n ALERT_CIRCLE_SIZES[size || \"md\"]\n )}\n style={{ backgroundColor: alert }}\n ></span>\n </span>\n );\n };\n\n const renderButtonContent = () => {\n if (loading) {\n return (\n <>\n <Loading className=\"[grid-area:stack]\" />\n <span className={cn(\"[grid-area:stack]\", loading && \"invisible\")}>\n {props.children}\n </span>\n </>\n );\n }\n\n return (\n <>\n {alert ? renderAlertCircle() : iconLeft && renderIcon(iconLeft)}\n {props.children && <span>{props.children}</span>}\n {iconRight && renderIcon(iconRight)}\n </>\n );\n };\n\n return (\n <div className={cn(\"relative\", containerClassName)}>\n {shouldShowBadge(badge) && (\n <BadgeComponent\n size={badgeSizeMap[size || \"md\"]}\n variant=\"regular\"\n className={cn(\"absolute -right-2 -top-1 z-10\")}\n role=\"status\"\n aria-label={`${badge}-notifications`}\n >\n {String(badge)}\n </BadgeComponent>\n )}\n <Comp\n disabled={loading}\n aria-busy={loading}\n aria-live={loading ? \"polite\" : undefined}\n data-slot=\"button\"\n className={cn(\n isIconOnly && ICON_ONLY_SIZES[size || \"md\"],\n loading && \"!inline-grid\",\n buttonVariants({ variant, size, className })\n )}\n {...props}\n >\n {renderButtonContent()}\n </Comp>\n </div>\n );\n}\n\nexport { Button, buttonVariants };\nexport type { ButtonProps };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { AlertDialog as AlertDialogPrimitive } from \"radix-ui\";\nimport { cn } from \"@/lib/utils\";\nimport { buttonVariants } from \"@/components/Button\";\n\nfunction AlertDialog({\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n );\n}\n\nfunction AlertDialogPortal({\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n );\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black-48 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogContent({\n className,\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Content>) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n className={cn(\n \"fixed left-1/2 top-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border bg-surface-elevated p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-1/2 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-1/2 sm:max-w-lg\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\nfunction AlertDialogHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\"text-sm text-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Action>) {\n return (\n <AlertDialogPrimitive.Action\n className={cn(buttonVariants(), className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogCancel({\n className,\n ...props\n}: ComponentProps<typeof AlertDialogPrimitive.Cancel>) {\n return (\n <AlertDialogPrimitive.Cancel\n className={cn(buttonVariants({ variant: \"outlined\" }), className)}\n {...props}\n />\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n","import * as React from \"react\";\n\nlet count = 0;\n\nfunction generateId() {\n return `medway-id-${++count}`;\n}\n\nconst useReactId = (React as any).useId || (() => undefined);\n\nexport function useId(): string {\n const reactId = useReactId();\n const [id] = React.useState<string>(() => reactId ?? generateId());\n return id;\n}\n","// The scores are arranged so that a continuous match of characters will\n// result in a total score of 1.\n//\n// The best case, this character is a match, and either this is the start\n// of the string, or the previous character was also a match.\nconst SCORE_CONTINUE_MATCH = 1;\n// A new match at the start of a word scores better than a new match\n// elsewhere as it's more likely that the user will type the starts\n// of fragments.\n// NOTE: We score word jumps between spaces slightly higher than slashes, brackets\n// hyphens, etc.\nconst SCORE_SPACE_WORD_JUMP = 0.9;\nconst SCORE_NON_SPACE_WORD_JUMP = 0.8;\n// Any other match isn't ideal, but we include it for completeness.\nconst SCORE_CHARACTER_JUMP = 0.17;\n// If the user transposed two letters, it should be significantly penalized.\nconst SCORE_TRANSPOSITION = 0.1;\n// The goodness of a match should decay slightly with each missing character.\nconst PENALTY_SKIPPED = 0.999;\n// The goodness of an exact-case match should be higher than a case-insensitive match by a small amount.\nconst PENALTY_CASE_MISMATCH = 0.9999;\n// If the word has more characters than the user typed, it should be penalised slightly.\nconst PENALTY_NOT_COMPLETE = 0.99;\n\nconst IS_GAP_REGEXP = /[\\\\\\/_+.#\"@\\[\\(\\{&]/;\nconst COUNT_GAPS_REGEXP = /[\\\\\\/_+.#\"@\\[\\(\\{&]/g;\nconst IS_SPACE_REGEXP = /[\\s-]/;\nconst COUNT_SPACE_REGEXP = /[\\s-]/g;\n\nfunction commandScoreInner(\n string: string,\n abbreviation: string,\n lowerString: string,\n lowerAbbreviation: string,\n stringIndex: number,\n abbreviationIndex: number,\n memoizedResults: Record<string, number>\n): number {\n if (abbreviationIndex === abbreviation.length) {\n if (stringIndex === string.length) {\n return SCORE_CONTINUE_MATCH;\n }\n return PENALTY_NOT_COMPLETE;\n }\n\n const memoizeKey = `${stringIndex},${abbreviationIndex}`;\n if (memoizedResults[memoizeKey] !== undefined) {\n return memoizedResults[memoizeKey];\n }\n\n const abbreviationChar = lowerAbbreviation.charAt(abbreviationIndex);\n let index = lowerString.indexOf(abbreviationChar, stringIndex);\n let highScore = 0;\n\n let score: number;\n let transposedScore: number;\n let wordBreaks: RegExpMatchArray | null;\n let spaceBreaks: RegExpMatchArray | null;\n\n while (index >= 0) {\n score = commandScoreInner(\n string,\n abbreviation,\n lowerString,\n lowerAbbreviation,\n index + 1,\n abbreviationIndex + 1,\n memoizedResults\n );\n if (score > highScore) {\n if (index === stringIndex) {\n score *= SCORE_CONTINUE_MATCH;\n } else if (IS_GAP_REGEXP.test(string.charAt(index - 1))) {\n score *= SCORE_NON_SPACE_WORD_JUMP;\n wordBreaks = string\n .slice(stringIndex, index - 1)\n .match(COUNT_GAPS_REGEXP);\n if (wordBreaks && stringIndex > 0) {\n score *= Math.pow(PENALTY_SKIPPED, wordBreaks.length);\n }\n } else if (IS_SPACE_REGEXP.test(string.charAt(index - 1))) {\n score *= SCORE_SPACE_WORD_JUMP;\n spaceBreaks = string\n .slice(stringIndex, index - 1)\n .match(COUNT_SPACE_REGEXP);\n if (spaceBreaks && stringIndex > 0) {\n score *= Math.pow(PENALTY_SKIPPED, spaceBreaks.length);\n }\n } else {\n score *= SCORE_CHARACTER_JUMP;\n if (stringIndex > 0) {\n score *= Math.pow(PENALTY_SKIPPED, index - stringIndex);\n }\n }\n\n if (string.charAt(index) !== abbreviation.charAt(abbreviationIndex)) {\n score *= PENALTY_CASE_MISMATCH;\n }\n }\n\n if (\n (score < SCORE_TRANSPOSITION &&\n lowerString.charAt(index - 1) ===\n lowerAbbreviation.charAt(abbreviationIndex + 1)) ||\n (lowerAbbreviation.charAt(abbreviationIndex + 1) ===\n lowerAbbreviation.charAt(abbreviationIndex) &&\n lowerString.charAt(index - 1) !==\n lowerAbbreviation.charAt(abbreviationIndex))\n ) {\n transposedScore = commandScoreInner(\n string,\n abbreviation,\n lowerString,\n lowerAbbreviation,\n index + 1,\n abbreviationIndex + 2,\n memoizedResults\n );\n\n if (transposedScore * SCORE_TRANSPOSITION > score) {\n score = transposedScore * SCORE_TRANSPOSITION;\n }\n }\n\n if (score > highScore) {\n highScore = score;\n }\n\n index = lowerString.indexOf(abbreviationChar, index + 1);\n }\n\n memoizedResults[memoizeKey] = highScore;\n return highScore;\n}\n\nfunction formatInput(string: string) {\n return string.toLowerCase().replace(COUNT_SPACE_REGEXP, \" \");\n}\n\nexport function commandScore(\n string: string,\n abbreviation: string,\n aliases?: string[]\n): number {\n string =\n aliases && aliases.length > 0\n ? `${string + \" \" + aliases.join(\" \")}`\n : string;\n return commandScoreInner(\n string,\n abbreviation,\n formatInput(string),\n formatInput(abbreviation),\n 0,\n 0,\n {}\n );\n}\n","\"use client\";\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n * Command component - Forked from cmdk (https://github.com/pacocoursey/cmdk)\n * MIT License - Copyright (c) 2024 Paco Coursey\n *\n * Modified to remove React 18 dependency (useSyncExternalStore)\n * and external @radix-ui/* dependencies, making it compatible with React 17+.\n */\n\nimport * as React from \"react\";\nimport { commandScore } from \"@/lib/command-score\";\nimport { useId } from \"@/hooks/use-id\";\n\ntype Children = { children?: React.ReactNode };\ntype DivProps = React.HTMLAttributes<HTMLDivElement>;\n\ntype LoadingProps = Children &\n DivProps & {\n progress?: number;\n label?: string;\n };\n\ntype EmptyProps = Children & DivProps;\ntype SeparatorProps = DivProps & {\n alwaysRender?: boolean;\n};\ntype ListProps = Children &\n DivProps & {\n label?: string;\n };\ntype ItemProps = Children &\n Omit<DivProps, \"disabled\" | \"onSelect\" | \"value\"> & {\n disabled?: boolean;\n onSelect?: (value: string) => void;\n value?: string;\n keywords?: string[];\n forceMount?: boolean;\n };\ntype GroupProps = Children &\n Omit<DivProps, \"heading\" | \"value\"> & {\n heading?: React.ReactNode;\n value?: string;\n forceMount?: boolean;\n };\ntype InputProps = Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"value\" | \"onChange\" | \"type\"\n> & {\n value?: string;\n onValueChange?: (search: string) => void;\n};\ntype CommandFilter = (\n value: string,\n search: string,\n keywords?: string[]\n) => number;\ntype CommandProps = Children &\n DivProps & {\n label?: string;\n shouldFilter?: boolean;\n filter?: CommandFilter;\n defaultValue?: string;\n value?: string;\n onValueChange?: (value: string) => void;\n loop?: boolean;\n disablePointerSelection?: boolean;\n vimBindings?: boolean;\n };\n\ntype Context = {\n value: (id: string, value: string, keywords?: string[]) => void;\n item: (id: string, groupId: string) => () => void;\n group: (id: string) => () => void;\n filter: () => boolean;\n label: string;\n getDisablePointerSelection: () => boolean;\n listId: string;\n labelId: string;\n inputId: string;\n listInnerRef: React.RefObject<HTMLDivElement | null>;\n};\ntype State = {\n search: string;\n value: string;\n selectedItemId?: string;\n filtered: {\n count: number;\n items: Map<string, number>;\n groups: Set<string>;\n };\n};\ntype Store = {\n subscribe: (callback: () => void) => () => void;\n snapshot: () => State;\n setState: <K extends keyof State>(\n key: K,\n value: State[K],\n opts?: boolean\n ) => void;\n emit: () => void;\n};\ntype Group = {\n id: string;\n forceMount?: boolean;\n};\n\nconst GROUP_SELECTOR = `[cmdk-group=\"\"]`;\nconst GROUP_ITEMS_SELECTOR = `[cmdk-group-items=\"\"]`;\nconst GROUP_HEADING_SELECTOR = `[cmdk-group-heading=\"\"]`;\nconst ITEM_SELECTOR = `[cmdk-item=\"\"]`;\nconst VALID_ITEM_SELECTOR = `${ITEM_SELECTOR}:not([aria-disabled=\"true\"])`;\nconst SELECT_EVENT = `cmdk-item-select`;\nconst VALUE_ATTR = `data-value`;\n\nconst defaultFilter: CommandFilter = (value, search, keywords) =>\n commandScore(value, search, keywords);\n\nconst CommandContext = React.createContext<Context>(undefined as any);\nconst useCommand = () => React.useContext(CommandContext);\nconst StoreContext = React.createContext<Store>(undefined as any);\nconst useStore = () => React.useContext(StoreContext);\nconst GroupContext = React.createContext<Group>(undefined as any);\n\nconst Command = React.forwardRef<HTMLDivElement, CommandProps>(\n (props, forwardedRef) => {\n const state = useLazyRef<State>(() => ({\n search: \"\",\n value: props.value ?? props.defaultValue ?? \"\",\n selectedItemId: undefined,\n filtered: {\n count: 0,\n items: new Map(),\n groups: new Set(),\n },\n }));\n const allItems = useLazyRef<Set<string>>(() => new Set());\n const allGroups = useLazyRef<Map<string, Set<string>>>(() => new Map());\n const ids = useLazyRef<Map<string, { value: string; keywords?: string[] }>>(\n () => new Map()\n );\n const listeners = useLazyRef<Set<() => void>>(() => new Set());\n const propsRef = useAsRef(props);\n const {\n label,\n children,\n value,\n onValueChange,\n filter,\n shouldFilter,\n loop,\n disablePointerSelection = false,\n vimBindings = true,\n ...etc\n } = props;\n\n const listId = useId();\n const labelId = useId();\n const inputId = useId();\n\n const listInnerRef = React.useRef<HTMLDivElement>(null);\n\n const schedule = useScheduleLayoutEffect();\n\n useLayoutEffect(() => {\n if (value !== undefined) {\n const v = value.trim();\n state.current.value = v;\n store.emit();\n }\n }, [value]);\n\n useLayoutEffect(() => {\n schedule(6, scrollSelectedIntoView);\n }, []);\n\n const store: Store = React.useMemo(() => {\n return {\n subscribe: (cb) => {\n listeners.current.add(cb);\n return () => listeners.current.delete(cb);\n },\n snapshot: () => {\n return state.current;\n },\n setState: (key, value, opts) => {\n if (Object.is(state.current[key], value)) return;\n state.current[key] = value as any;\n\n if (key === \"search\") {\n filterItems();\n sort();\n schedule(1, selectFirstItem);\n } else if (key === \"value\") {\n if (\n document.activeElement?.hasAttribute(\"cmdk-input\") ||\n document.activeElement?.hasAttribute(\"cmdk-root\")\n ) {\n const input = document.getElementById(inputId);\n if (input) input.focus();\n else document.getElementById(listId)?.focus();\n }\n\n schedule(7, () => {\n state.current.selectedItemId = getSelectedItem()?.id;\n store.emit();\n });\n\n if (!opts) {\n schedule(5, scrollSelectedIntoView);\n }\n if (propsRef.current?.value !== undefined) {\n const newValue = ((value as string) ?? \"\") as string;\n propsRef.current.onValueChange?.(newValue);\n return;\n }\n }\n\n store.emit();\n },\n emit: () => {\n listeners.current.forEach((l) => l());\n },\n };\n }, []);\n\n const context: Context = React.useMemo(\n () => ({\n value: (id, value, keywords) => {\n if (value !== ids.current.get(id)?.value) {\n ids.current.set(id, { value, keywords });\n state.current.filtered.items.set(id, score(value, keywords));\n schedule(2, () => {\n sort();\n store.emit();\n });\n }\n },\n item: (id, groupId) => {\n allItems.current.add(id);\n\n if (groupId) {\n if (!allGroups.current.has(groupId)) {\n allGroups.current.set(groupId, new Set([id]));\n } else {\n allGroups.current.get(groupId)!.add(id);\n }\n }\n\n schedule(3, () => {\n filterItems();\n sort();\n\n if (!state.current.value) {\n selectFirstItem();\n }\n\n store.emit();\n });\n\n return () => {\n ids.current.delete(id);\n allItems.current.delete(id);\n state.current.filtered.items.delete(id);\n const selectedItem = getSelectedItem();\n\n schedule(4, () => {\n filterItems();\n\n if (selectedItem?.getAttribute(\"id\") === id) selectFirstItem();\n\n store.emit();\n });\n };\n },\n group: (id) => {\n if (!allGroups.current.has(id)) {\n allGroups.current.set(id, new Set());\n }\n\n return () => {\n ids.current.delete(id);\n allGroups.current.delete(id);\n };\n },\n filter: () => {\n return propsRef.current.shouldFilter !== false;\n },\n label: label || props[\"aria-label\"] || \"\",\n getDisablePointerSelection: () => {\n return !!propsRef.current.disablePointerSelection;\n },\n listId,\n inputId,\n labelId,\n listInnerRef,\n }),\n []\n );\n\n function score(value: string, keywords?: string[]) {\n const filter = propsRef.current?.filter ?? defaultFilter;\n return value ? filter(value, state.current.search, keywords) : 0;\n }\n\n function sort() {\n if (!state.current.search || propsRef.current.shouldFilter === false) {\n return;\n }\n\n const scores = state.current.filtered.items;\n\n const groups: [string, number][] = [];\n state.current.filtered.groups.forEach((value) => {\n const items = allGroups.current.get(value);\n\n let max = 0;\n items?.forEach((item) => {\n const s = scores.get(item);\n max = Math.max(s ?? 0, max);\n });\n\n groups.push([value, max]);\n });\n\n const listInsertionElement = listInnerRef.current;\n\n getValidItems()\n .sort((a, b) => {\n const valueA = a.getAttribute(\"id\");\n const valueB = b.getAttribute(\"id\");\n return (scores.get(valueB!) ?? 0) - (scores.get(valueA!) ?? 0);\n })\n .forEach((item) => {\n const group = item.closest(GROUP_ITEMS_SELECTOR);\n\n if (group) {\n group.appendChild(\n item.parentElement === group\n ? item\n : item.closest(`${GROUP_ITEMS_SELECTOR} > *`)!\n );\n } else {\n listInsertionElement?.appendChild(\n item.parentElement === listInsertionElement\n ? item\n : item.closest(`${GROUP_ITEMS_SELECTOR} > *`)!\n );\n }\n });\n\n groups\n .sort((a, b) => b[1] - a[1])\n .forEach((group) => {\n const element = listInnerRef.current?.querySelector(\n `${GROUP_SELECTOR}[${VALUE_ATTR}=\"${encodeURIComponent(group[0])}\"]`\n );\n element?.parentElement?.appendChild(element);\n });\n }\n\n function selectFirstItem() {\n const item = getValidItems().find(\n (item) => item.getAttribute(\"aria-disabled\") !== \"true\"\n );\n const value = item?.getAttribute(VALUE_ATTR);\n store.setState(\"value\", (value || undefined) as string);\n }\n\n function filterItems() {\n if (!state.current.search || propsRef.current.shouldFilter === false) {\n state.current.filtered.count = allItems.current.size;\n return;\n }\n\n state.current.filtered.groups = new Set();\n let itemCount = 0;\n\n for (const id of allItems.current) {\n const value = ids.current.get(id)?.value ?? \"\";\n const keywords = ids.current.get(id)?.keywords ?? [];\n const rank = score(value, keywords);\n state.current.filtered.items.set(id, rank);\n if (rank > 0) itemCount++;\n }\n\n for (const [groupId, group] of allGroups.current) {\n for (const itemId of group) {\n if ((state.current.filtered.items.get(itemId) ?? 0) > 0) {\n state.current.filtered.groups.add(groupId);\n break;\n }\n }\n }\n\n state.current.filtered.count = itemCount;\n }\n\n function scrollSelectedIntoView() {\n const item = getSelectedItem();\n\n if (item) {\n if (item.parentElement?.firstChild === item) {\n item\n .closest(GROUP_SELECTOR)\n ?.querySelector(GROUP_HEADING_SELECTOR)\n ?.scrollIntoView({ block: \"nearest\" });\n }\n\n item.scrollIntoView({ block: \"nearest\" });\n }\n }\n\n function getSelectedItem() {\n return listInnerRef.current?.querySelector<HTMLElement>(\n `${ITEM_SELECTOR}[aria-selected=\"true\"]`\n );\n }\n\n function getValidItems() {\n return Array.from(\n listInnerRef.current?.querySelectorAll<HTMLElement>(\n VALID_ITEM_SELECTOR\n ) || []\n );\n }\n\n function updateSelectedToIndex(index: number) {\n const items = getValidItems();\n const item = items[index];\n if (item)\n store.setState(\"value\", item.getAttribute(VALUE_ATTR) as string);\n }\n\n function updateSelectedByItem(change: 1 | -1) {\n const selected = getSelectedItem();\n const items = getValidItems();\n const index = items.findIndex((item) => item === selected);\n\n let newSelected = items[index + change];\n\n if (propsRef.current?.loop) {\n newSelected =\n index + change < 0\n ? items[items.length - 1]\n : index + change === items.length\n ? items[0]\n : items[index + change];\n }\n\n if (newSelected)\n store.setState(\"value\", newSelected.getAttribute(VALUE_ATTR) as string);\n }\n\n function updateSelectedByGroup(change: 1 | -1) {\n const selected = getSelectedItem();\n let group = selected?.closest(GROUP_SELECTOR);\n let item: Element | null | undefined;\n\n while (group && !item) {\n group =\n change > 0\n ? findNextSibling(group, GROUP_SELECTOR)\n : findPreviousSibling(group, GROUP_SELECTOR);\n item = group?.querySelector(VALID_ITEM_SELECTOR);\n }\n\n if (item) {\n store.setState(\"value\", item.getAttribute(VALUE_ATTR) as string);\n } else {\n updateSelectedByItem(change);\n }\n }\n\n const last = () => updateSelectedToIndex(getValidItems().length - 1);\n\n const next = (e: React.KeyboardEvent) => {\n e.preventDefault();\n\n if (e.metaKey) {\n last();\n } else if (e.altKey) {\n updateSelectedByGroup(1);\n } else {\n updateSelectedByItem(1);\n }\n };\n\n const prev = (e: React.KeyboardEvent) => {\n e.preventDefault();\n\n if (e.metaKey) {\n updateSelectedToIndex(0);\n } else if (e.altKey) {\n updateSelectedByGroup(-1);\n } else {\n updateSelectedByItem(-1);\n }\n };\n\n return (\n <div\n ref={forwardedRef}\n tabIndex={-1}\n {...etc}\n cmdk-root=\"\"\n onKeyDown={(e) => {\n etc.onKeyDown?.(e);\n\n const isComposing = e.nativeEvent.isComposing || e.keyCode === 229;\n\n if (e.defaultPrevented || isComposing) {\n return;\n }\n\n switch (e.key) {\n case \"n\":\n case \"j\": {\n if (vimBindings && e.ctrlKey) {\n next(e);\n }\n break;\n }\n case \"ArrowDown\": {\n next(e);\n break;\n }\n case \"p\":\n case \"k\": {\n if (vimBindings && e.ctrlKey) {\n prev(e);\n }\n break;\n }\n case \"ArrowUp\": {\n prev(e);\n break;\n }\n case \"Home\": {\n e.preventDefault();\n updateSelectedToIndex(0);\n break;\n }\n case \"End\": {\n e.preventDefault();\n last();\n break;\n }\n case \"Enter\": {\n e.preventDefault();\n const item = getSelectedItem();\n if (item) {\n const event = new Event(SELECT_EVENT);\n item.dispatchEvent(event);\n }\n }\n }\n }}\n >\n <label\n cmdk-label=\"\"\n htmlFor={context.inputId}\n id={context.labelId}\n style={srOnlyStyles}\n >\n {label}\n </label>\n {SlottableWithNestedChildren(props, (child) => (\n <StoreContext.Provider value={store}>\n <CommandContext.Provider value={context}>\n {child}\n </CommandContext.Provider>\n </StoreContext.Provider>\n ))}\n </div>\n );\n }\n);\nCommand.displayName = \"Command\";\n\nconst Item = React.forwardRef<HTMLDivElement, ItemProps>(\n (props, forwardedRef) => {\n const id = useId();\n const ref = React.useRef<HTMLDivElement>(null);\n const groupContext = React.useContext(GroupContext);\n const context = useCommand();\n const propsRef = useAsRef(props);\n const forceMount = propsRef.current?.forceMount ?? groupContext?.forceMount;\n\n useLayoutEffect(() => {\n if (!forceMount) {\n return context.item(id, groupContext?.id);\n }\n }, [forceMount]);\n\n const value = useValue(\n id,\n ref,\n [props.value, props.children, ref],\n props.keywords\n );\n\n const store = useStore();\n const selected = useCmdk(\n (state) => state.value && state.value === value.current\n );\n const render = useCmdk((state) =>\n forceMount\n ? true\n : context.filter() === false\n ? true\n : !state.search\n ? true\n : (state.filtered.items.get(id) ?? 0) > 0\n );\n\n React.useEffect(() => {\n const element = ref.current;\n if (!element || props.disabled) return;\n element.addEventListener(SELECT_EVENT, onSelect);\n return () => element.removeEventListener(SELECT_EVENT, onSelect);\n }, [render, props.onSelect, props.disabled]);\n\n function onSelect() {\n select();\n propsRef.current.onSelect?.(value.current ?? \"\");\n }\n\n function select() {\n store.setState(\"value\", value.current ?? \"\", true);\n }\n\n if (!render) return null;\n\n const {\n disabled,\n value: _value,\n onSelect: _onSelect,\n forceMount: _forceMount,\n keywords: _keywords,\n ...etc\n } = props;\n\n return (\n <div\n ref={mergeRefs(ref, forwardedRef)}\n {...etc}\n id={id}\n cmdk-item=\"\"\n role=\"option\"\n aria-disabled={Boolean(disabled)}\n aria-selected={Boolean(selected)}\n data-disabled={Boolean(disabled)}\n data-selected={Boolean(selected)}\n onPointerMove={\n disabled || context.getDisablePointerSelection() ? undefined : select\n }\n onClick={disabled ? undefined : onSelect}\n >\n {props.children}\n </div>\n );\n }\n);\nItem.displayName = \"Item\";\n\nconst Group = React.forwardRef<HTMLDivElement, GroupProps>(\n (props, forwardedRef) => {\n const { heading, children: _children, forceMount, ...etc } = props;\n const id = useId();\n const ref = React.useRef<HTMLDivElement>(null);\n const headingRef = React.useRef<HTMLDivElement>(null);\n const headingId = useId();\n const context = useCommand();\n const render = useCmdk((state) =>\n forceMount\n ? true\n : context.filter() === false\n ? true\n : !state.search\n ? true\n : state.filtered.groups.has(id)\n );\n\n useLayoutEffect(() => {\n return context.group(id);\n }, []);\n\n useValue(id, ref, [props.value, props.heading, headingRef]);\n\n const contextValue = React.useMemo(\n () => ({ id, forceMount }),\n [forceMount]\n );\n\n return (\n <div\n ref={mergeRefs(ref, forwardedRef)}\n {...etc}\n cmdk-group=\"\"\n role=\"presentation\"\n hidden={render ? undefined : true}\n >\n {heading && (\n <div\n ref={headingRef}\n cmdk-group-heading=\"\"\n aria-hidden\n id={headingId}\n >\n {heading}\n </div>\n )}\n {SlottableWithNestedChildren(props, (child) => (\n <div\n cmdk-group-items=\"\"\n role=\"group\"\n aria-labelledby={heading ? headingId : undefined}\n >\n <GroupContext.Provider value={contextValue}>\n {child}\n </GroupContext.Provider>\n </div>\n ))}\n </div>\n );\n }\n);\nGroup.displayName = \"Group\";\n\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n (props, forwardedRef) => {\n const { alwaysRender, ...etc } = props;\n const ref = React.useRef<HTMLDivElement>(null);\n const render = useCmdk((state) => !state.search);\n\n if (!alwaysRender && !render) return null;\n return (\n <div\n ref={mergeRefs(ref, forwardedRef)}\n {...etc}\n cmdk-separator=\"\"\n role=\"separator\"\n />\n );\n }\n);\nSeparator.displayName = \"Separator\";\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n (props, forwardedRef) => {\n const { onValueChange, ...etc } = props;\n const isControlled = props.value != null;\n const store = useStore();\n const search = useCmdk((state) => state.search);\n const selectedItemId = useCmdk((state) => state.selectedItemId);\n const context = useCommand();\n\n React.useEffect(() => {\n if (props.value != null) {\n store.setState(\"search\", props.value);\n }\n }, [props.value]);\n\n return (\n <input\n ref={forwardedRef}\n {...etc}\n cmdk-input=\"\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck={false}\n aria-autocomplete=\"list\"\n role=\"combobox\"\n aria-expanded={true}\n aria-controls={context.listId}\n aria-labelledby={context.labelId}\n aria-activedescendant={selectedItemId}\n id={context.inputId}\n type=\"text\"\n value={isControlled ? props.value : search}\n onChange={(e) => {\n if (!isControlled) {\n store.setState(\"search\", e.target.value);\n }\n\n onValueChange?.(e.target.value);\n }}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nconst List = React.forwardRef<HTMLDivElement, ListProps>(\n (props, forwardedRef) => {\n const { children: _children, label = \"Suggestions\", ...etc } = props;\n const ref = React.useRef<HTMLDivElement>(null);\n const height = React.useRef<HTMLDivElement>(null);\n const selectedItemId = useCmdk((state) => state.selectedItemId);\n const context = useCommand();\n\n React.useEffect(() => {\n if (height.current && ref.current) {\n const el = height.current;\n const wrapper = ref.current;\n let animationFrame: number;\n const observer = new ResizeObserver(() => {\n animationFrame = requestAnimationFrame(() => {\n const h = el.offsetHeight;\n wrapper.style.setProperty(\n `--cmdk-list-height`,\n h.toFixed(1) + \"px\"\n );\n });\n });\n observer.observe(el);\n return () => {\n cancelAnimationFrame(animationFrame);\n observer.unobserve(el);\n };\n }\n }, []);\n\n // Prevent Radix Dialog's react-remove-scroll from blocking wheel events\n // inside the command list when rendered in a Portal outside the Dialog DOM tree.\n React.useEffect(() => {\n const listEl = ref.current;\n if (!listEl) return;\n\n const handleWheel = (e: WheelEvent) => {\n if (listEl.contains(e.target as Node)) {\n e.stopPropagation();\n }\n };\n\n document.addEventListener(\"wheel\", handleWheel, { capture: true });\n return () => {\n document.removeEventListener(\"wheel\", handleWheel, { capture: true });\n };\n }, []);\n\n return (\n <div\n ref={mergeRefs(ref, forwardedRef)}\n {...etc}\n cmdk-list=\"\"\n role=\"listbox\"\n tabIndex={-1}\n aria-activedescendant={selectedItemId}\n aria-label={label}\n id={context.listId}\n >\n {SlottableWithNestedChildren(props, (child) => (\n <div ref={mergeRefs(height, context.listInnerRef)} cmdk-list-sizer=\"\">\n {child}\n </div>\n ))}\n </div>\n );\n }\n);\nList.displayName = \"List\";\n\nconst Empty = React.forwardRef<HTMLDivElement, EmptyProps>(\n (props, forwardedRef) => {\n const render = useCmdk((state) => state.filtered.count === 0);\n\n if (!render) return null;\n return (\n <div ref={forwardedRef} {...props} cmdk-empty=\"\" role=\"presentation\" />\n );\n }\n);\nEmpty.displayName = \"Empty\";\n\nconst Loading = React.forwardRef<HTMLDivElement, LoadingProps>(\n (props, forwardedRef) => {\n const {\n progress,\n children: _children,\n label = \"Loading...\",\n ...etc\n } = props;\n\n return (\n <div\n ref={forwardedRef}\n {...etc}\n cmdk-loading=\"\"\n role=\"progressbar\"\n aria-valuenow={progress}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={label}\n >\n {SlottableWithNestedChildren(props, (child) => (\n <div aria-hidden>{child}</div>\n ))}\n </div>\n );\n }\n);\nLoading.displayName = \"Loading\";\n\nconst pkg = Object.assign(Command, {\n List,\n Item,\n Input,\n Group,\n Separator,\n Empty,\n Loading,\n});\n\nexport { useCmdk as useCommandState };\nexport { pkg as Command };\nexport { defaultFilter };\n\nexport { Command as CommandRoot };\nexport { List as CommandList };\nexport { Item as CommandItem };\nexport { Input as CommandInput };\nexport { Group as CommandGroup };\nexport { Separator as CommandSeparator };\nexport { Empty as CommandEmpty };\nexport { Loading as CommandLoading };\n\n/**\n *\n * Helpers\n *\n */\n\nfunction findNextSibling(el: Element, selector: string) {\n let sibling = el.nextElementSibling;\n\n while (sibling) {\n if (sibling.matches(selector)) return sibling;\n sibling = sibling.nextElementSibling;\n }\n}\n\nfunction findPreviousSibling(el: Element, selector: string) {\n let sibling = el.previousElementSibling;\n\n while (sibling) {\n if (sibling.matches(selector)) return sibling;\n sibling = sibling.previousElementSibling;\n }\n}\n\nfunction useAsRef<T>(data: T) {\n const ref = React.useRef<T>(data);\n\n useLayoutEffect(() => {\n ref.current = data;\n });\n\n return ref;\n}\n\nconst useLayoutEffect =\n typeof window === \"undefined\" ? React.useEffect : React.useLayoutEffect;\n\nfunction useLazyRef<T>(fn: () => T) {\n const ref = React.useRef<T>(undefined as T);\n\n if (ref.current === undefined) {\n ref.current = fn();\n }\n\n return ref as React.MutableRefObject<T>;\n}\n\n/**\n * Drop-in replacement for useSyncExternalStore that works with React 17+.\n * Uses useState + useLayoutEffect to subscribe to the store and re-render on changes.\n * useLayoutEffect is critical here (not useEffect) to ensure the subscription\n * is registered before other layout effects emit store updates (e.g., item registration).\n */\nfunction useCmdk<T = any>(selector: (state: State) => T): T {\n const store = useStore();\n const [, forceRender] = React.useState({});\n const currentValueRef = React.useRef<T>(selector(store.snapshot()));\n\n // Always compute fresh value on render\n currentValueRef.current = selector(store.snapshot());\n\n useLayoutEffect(() => {\n return store.subscribe(() => {\n const nextValue = selector(store.snapshot());\n if (!Object.is(nextValue, currentValueRef.current)) {\n currentValueRef.current = nextValue;\n forceRender({});\n }\n });\n }, [store, selector]);\n\n return currentValueRef.current;\n}\n\nfunction useValue(\n id: string,\n ref: React.RefObject<HTMLElement | null>,\n deps: (string | React.ReactNode | React.RefObject<HTMLElement | null>)[],\n aliases: string[] = []\n) {\n const valueRef = React.useRef<string | undefined>(undefined);\n const context = useCommand();\n\n useLayoutEffect(() => {\n const value = (() => {\n for (const part of deps) {\n if (typeof part === \"string\") {\n return part.trim();\n }\n\n if (typeof part === \"object\" && part !== null && \"current\" in part) {\n if (part.current) {\n return part.current.textContent?.trim();\n }\n return valueRef.current;\n }\n }\n })();\n\n const keywords = aliases.map((alias) => alias.trim());\n\n context.value(id, value ?? \"\", keywords);\n ref.current?.setAttribute(VALUE_ATTR, value ?? \"\");\n valueRef.current = value;\n });\n\n return valueRef;\n}\n\nconst useScheduleLayoutEffect = () => {\n const [s, ss] = React.useState<object>();\n const fns = useLazyRef(() => new Map<string | number, () => void>());\n\n useLayoutEffect(() => {\n fns.current.forEach((f) => f());\n fns.current = new Map();\n }, [s]);\n\n return (id: string | number, cb: () => void) => {\n fns.current.set(id, cb);\n ss({});\n };\n};\n\nfunction renderChildren(children: React.ReactElement) {\n const childrenType = children.type as any;\n if (typeof childrenType === \"function\") return childrenType(children.props);\n else if (\"render\" in childrenType) return childrenType.render(children.props);\n else return children;\n}\n\nfunction SlottableWithNestedChildren(\n { asChild, children }: { asChild?: boolean; children?: React.ReactNode },\n render: (child: React.ReactNode) => React.ReactElement\n) {\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(\n renderChildren(children as React.ReactElement),\n { ref: (children as any).ref },\n render((children as any).props.children)\n );\n }\n return render(children);\n}\n\n/**\n * Merge multiple refs into one callback ref.\n */\nfunction mergeRefs<T>(\n ...refs: (React.Ref<T> | React.RefObject<T | null> | null | undefined)[]\n): React.RefCallback<T> {\n return (value: T | null) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref != null && typeof ref === \"object\") {\n (ref as any).current = value;\n }\n });\n };\n}\n\nconst srOnlyStyles = {\n position: \"absolute\",\n width: \"1px\",\n height: \"1px\",\n padding: \"0\",\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n borderWidth: \"0\",\n} as const;\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { Separator as SeparatorPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator-root\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-gray-stroke-muted data-[orientation=horizontal]:h-px data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n","\"use client\";\n\nimport {\n isValidElement,\n cloneElement,\n type ComponentProps,\n type ReactNode,\n type ReactElement,\n} from \"react\";\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\nimport { CloseMd } from \"@medway-ui/icons\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Separator } from \"@/components/Separator\";\n\nfunction Dialog({ ...props }: ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black-48 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n );\n}\n\ninterface DialogContainerProps\n extends ComponentProps<typeof DialogPrimitive.Content> {\n showCloseButton?: boolean;\n overlayClassName?: string;\n}\n\nfunction DialogContainer({\n className,\n overlayClassName,\n children,\n showCloseButton = true,\n ...props\n}: DialogContainerProps) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay className={overlayClassName} />\n <DialogPrimitive.Content\n data-slot=\"dialog-container\"\n className={cn(\n \"fixed left-1/2 top-1/2 z-50 flex max-h-[calc(100%-2rem)] w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 flex-col gap-0 overflow-y-auto rounded-xl border bg-background p-0 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-1/2 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-1/2 sm:max-h-[85vh] sm:max-w-lg\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"focus:outline-hidden absolute right-3 top-3 rounded-pill p-1.5 hover:bg-gray-background-soft disabled:pointer-events-none data-[state=open]:text-gray-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\"\n >\n <CloseMd />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogContent({\n className,\n children,\n}: {\n className?: string;\n children: ReactNode;\n}) {\n return (\n <div className=\"overflow-y-auto\">\n <div\n data-slot=\"dialog-content\"\n className={cn(\n \"px-8 py-6 text-md leading-md text-primary-foreground\",\n className\n )}\n >\n {children}\n </div>\n </div>\n );\n}\n\ninterface DialogHeaderProps extends ComponentProps<\"div\"> {\n separator?: boolean;\n}\n\nfunction DialogHeader({\n className,\n separator = false,\n ...props\n}: DialogHeaderProps) {\n return (\n <>\n <div\n data-slot=\"dialog-header\"\n className={cn(\n \"flex flex-col gap-2 px-8 py-6 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n {separator && <Separator />}\n </>\n );\n}\n\ninterface DialogFooterProps extends ComponentProps<\"div\"> {\n separator?: boolean;\n}\n\nfunction DialogFooter({\n className,\n separator = false,\n ...props\n}: DialogFooterProps) {\n return (\n <>\n {separator && <Separator />}\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 px-8 py-6 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n />\n </>\n );\n}\n\ninterface DialogTitleProps\n extends ComponentProps<typeof DialogPrimitive.Title> {\n iconLeft?: ReactNode;\n iconRight?: ReactNode;\n}\n\nfunction DialogTitle({\n className,\n iconLeft,\n iconRight,\n children,\n ...props\n}: DialogTitleProps) {\n const renderIcon = (icon: ReactNode) => {\n if (isValidElement(icon)) {\n return cloneElement(icon as ReactElement<any>, {\n size: 32,\n strokeWidth: 2.2,\n className: \"flex-shrink-0\",\n });\n }\n return icon;\n };\n\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\n \"flex items-center gap-3 text-title-md font-semibold leading-title-md !text-content-title\",\n className\n )}\n {...props}\n >\n {iconLeft && renderIcon(iconLeft)}\n {children}\n {iconRight && renderIcon(iconRight)}\n </DialogPrimitive.Title>\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-md leading-md text-content-paragraph\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContainer,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\nexport type {\n DialogContainerProps,\n DialogHeaderProps,\n DialogFooterProps,\n DialogTitleProps,\n};\n","\"use client\";\n\nimport { Command as CommandPrimitive } from \"@/lib/cmdk\";\nimport { SearchMagnifyingGlass } from \"@medway-ui/icons\";\nimport { cn } from \"@/lib/utils\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"@/components/Dialog\";\nimport { type ComponentProps } from \"react\";\n\nfunction Command({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n className={cn(\n \"flex size-full flex-col overflow-hidden rounded-md bg-surface-card text-gray-foreground\",\n className\n )}\n data-slot=\"command\"\n {...props}\n />\n );\n}\n\nfunction CommandDialog({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n ...props\n}: ComponentProps<typeof Dialog> & {\n title?: string;\n description?: string;\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent className=\"overflow-hidden p-0 sm:max-w-lg [&>button:last-child]:hidden\">\n <Command className=\"**:data-[slot=command-input-wrapper]:h-12 max-h-[100svh] [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-gray-foreground-muted [&_[cmdk-group]]:px-2 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-3 [&_[cmdk-item]]:py-2\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction CommandInput({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div\n className=\"flex items-center border-b border-gray-stroke-muted px-4\"\n cmdk-input-wrapper=\"\"\n >\n <CommandPrimitive.Input\n className={cn(\n \"flex h-12 w-full bg-transparent py-3 text-md font-medium outline-none placeholder:text-gray-foreground-muted disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n data-slot=\"command-input-wrapper\"\n {...props}\n />\n <SearchMagnifyingGlass className=\"text-gray-foreground-muted\" size={24} />\n </div>\n );\n}\n\nfunction CommandList({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n className={cn(\n \"max-h-80 flex-1 overflow-y-auto overflow-x-hidden\",\n className\n )}\n data-slot=\"command-list\"\n data-radix-scroll-area=\"\"\n {...props}\n />\n );\n}\n\nfunction CommandEmpty({\n ...props\n}: ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n className=\"py-6 text-center text-sm\"\n data-slot=\"command-empty\"\n {...props}\n />\n );\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n className={cn(\n \"overflow-hidden p-2 text-gray-foreground [&_[cmdk-group-heading]]:px-3 [&_[cmdk-group-heading]]:py-2 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-gray-foreground-muted\",\n className\n )}\n data-slot=\"command-group\"\n {...props}\n />\n );\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n className={cn(\"-mx-1 h-px bg-gray-stroke-muted\", className)}\n data-slot=\"command-separator\"\n {...props}\n />\n );\n}\n\nfunction CommandItem({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n className={cn(\n \"outline-hidden relative flex cursor-default select-none items-center gap-3 rounded-md px-2 py-1.5 text-sm data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className\n )}\n data-slot=\"command-item\"\n {...props}\n />\n );\n}\n\nfunction CommandShortcut({ className, ...props }: ComponentProps<\"span\">) {\n return (\n <kbd\n className={cn(\n \"-me-1 ms-auto inline-flex h-5 max-h-full items-center rounded border bg-surface-card px-1 font-[inherit] text-[0.625rem] font-medium text-gray-foreground-muted\",\n className\n )}\n data-slot=\"command-shortcut\"\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n};\n","\"use client\";\n\nimport { Popover as PopoverPrimitive } from \"radix-ui\";\nimport { cn } from \"@/lib/utils\";\nimport { type ComponentProps } from \"react\";\n\nfunction Popover({ ...props }: ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n ...props\n}: ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n showArrow = false,\n ...props\n}: ComponentProps<typeof PopoverPrimitive.Content> & {\n showArrow?: boolean;\n}) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n align={align}\n className={cn(\n \"outline-hidden z-50 w-72 rounded-md border bg-surface-card p-4 text-gray-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n data-slot=\"popover-content\"\n sideOffset={sideOffset}\n {...props}\n >\n {props.children}\n {showArrow && (\n <PopoverPrimitive.Arrow className=\"-my-px fill-gray-foreground drop-shadow-[0_1px_0_var(--border)]\" />\n )}\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };\n","\"use client\";\n\nimport { Check, ChevronDown } from \"@medway-ui/icons\";\nimport {\n createContext,\n useContext,\n useState,\n isValidElement,\n Children,\n type HTMLAttributes,\n type ReactNode,\n type ButtonHTMLAttributes,\n type ComponentProps,\n} from \"react\";\nimport { useId } from \"@/hooks/use-id\";\nimport { cn } from \"@/lib/utils\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/Command\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/Popover\";\nimport { Button } from \"@/components/Button\";\n\ntype AutocompleteTextProps = HTMLAttributes<HTMLSpanElement>;\n\ninterface AutocompleteContextValue {\n invalid: boolean;\n disabled: boolean;\n open: boolean;\n setOpen: (open: boolean) => void;\n values: string[];\n toggleValue: (value: string) => void;\n onCancelSelection: () => void;\n listId: string;\n}\n\ninterface AutocompleteProps {\n children: ReactNode;\n invalid?: boolean;\n disabled?: boolean;\n values?: string[];\n onValuesChange?: (values: string[]) => void;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n defaultValues?: string[];\n}\n\ninterface AutocompleteTriggerProps\n extends ButtonHTMLAttributes<HTMLButtonElement> {\n placeholder?: string;\n}\n\ninterface AutocompleteContentProps {\n children: ReactNode;\n className?: string;\n searchPlaceholder?: string;\n emptyMessage?: string;\n}\n\ninterface AutocompleteItemProps {\n children: ReactNode;\n value: string;\n name?: string;\n className?: string;\n disabled?: boolean;\n}\n\ninterface AutocompleteContentFooterProps {\n className?: string;\n cancelLabel?: string;\n confirmLabel?: string;\n onCancel?: () => void;\n onConfirm?: (values: string[]) => void;\n}\n\nconst AutocompleteContext = createContext<AutocompleteContextValue>({\n invalid: false,\n disabled: false,\n open: false,\n setOpen: () => {},\n values: [],\n toggleValue: () => {},\n onCancelSelection: () => {},\n listId: \"\",\n});\n\nfunction Autocomplete({\n children,\n invalid = false,\n disabled = false,\n values: controlledValues,\n onValuesChange,\n open: controlledOpen,\n onOpenChange,\n defaultValues = [],\n}: AutocompleteProps) {\n const [internalValues, setInternalValues] = useState<string[]>(defaultValues);\n const [internalOpen, setInternalOpen] = useState(false);\n const [snapshot, setSnapshot] = useState<string[]>([]);\n const isControlledValues = controlledValues !== undefined;\n const isControlledOpen = controlledOpen !== undefined;\n const values = isControlledValues ? controlledValues : internalValues;\n const open = isControlledOpen ? controlledOpen : internalOpen;\n\n const toggleValue = (val: string) => {\n const next = values.includes(val)\n ? values.filter((v) => v !== val)\n : [...values, val];\n if (!isControlledValues) setInternalValues(next);\n onValuesChange?.(next);\n };\n\n const setOpen = (newOpen: boolean) => {\n if (disabled) return;\n if (newOpen) {\n setSnapshot(values);\n }\n if (!isControlledOpen) setInternalOpen(newOpen);\n onOpenChange?.(newOpen);\n };\n\n const onCancelSelection = () => {\n if (!isControlledValues) setInternalValues(snapshot);\n onValuesChange?.(snapshot);\n };\n\n const listId = useId();\n\n return (\n <AutocompleteContext.Provider\n value={{\n invalid,\n disabled,\n open,\n setOpen,\n values,\n toggleValue,\n onCancelSelection,\n listId,\n }}\n >\n <Popover open={open} onOpenChange={setOpen}>\n {children}\n </Popover>\n </AutocompleteContext.Provider>\n );\n}\n\nfunction AutocompleteWrapper({\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"group relative flex flex-col gap-2\", className)}\n data-slot=\"autocomplete-wrapper\"\n {...props}\n />\n );\n}\n\nfunction AutocompleteTrigger({\n className,\n placeholder = \"Selecione uma opção\",\n children,\n ...props\n}: AutocompleteTriggerProps) {\n const { invalid, disabled, open, values, listId } =\n useContext(AutocompleteContext);\n const id = useId();\n const hasSelection = values.length > 0;\n\n return (\n <PopoverTrigger asChild>\n <button\n aria-controls={listId}\n aria-expanded={open}\n aria-invalid={invalid || undefined}\n className={cn(\n \"shadow-xs flex h-12 max-h-12 w-full items-center justify-between gap-2 rounded-md border-2 border-gray-stroke-muted bg-surface-card px-4 py-3 text-left text-md text-gray-foreground outline-none transition-[color,box-shadow] hover:border-gray-stroke-emphasis hover:ring-[3px] hover:ring-state-focus disabled:cursor-default disabled:bg-gray-background-soft-muted disabled:hover:border-gray-stroke-muted disabled:hover:ring-0 aria-[invalid]:border-feedback-error-stroke aria-[invalid]:hover:ring-[3px] aria-[invalid]:hover:ring-state-error [&>span]:line-clamp-1 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n hasSelection && !invalid && \"border-gray-stroke-emphasis\",\n className\n )}\n data-slot=\"autocomplete-trigger\"\n data-placeholder=\"\"\n disabled={disabled}\n id={id}\n role=\"combobox\"\n type=\"button\"\n {...props}\n >\n <span className=\"truncate text-gray-foreground-emphasis\">\n {children ?? placeholder}\n </span>\n <ChevronDown\n aria-hidden=\"true\"\n className=\"shrink-0 text-gray-foreground\"\n size={24}\n strokeWidth={1.6}\n />\n </button>\n </PopoverTrigger>\n );\n}\n\nfunction AutocompleteContentFooter({\n className,\n cancelLabel = \"Cancelar\",\n confirmLabel = \"Concluir\",\n onCancel,\n onConfirm,\n}: AutocompleteContentFooterProps) {\n const { setOpen, onCancelSelection, values } =\n useContext(AutocompleteContext);\n\n return (\n <div\n className={cn(\n \"flex items-center justify-between border-t border-gray-stroke-muted px-4 py-3\",\n className\n )}\n data-slot=\"autocomplete-content-footer\"\n >\n <Button\n size=\"sm\"\n variant=\"regular-soft\"\n onClick={() => {\n onCancelSelection();\n onCancel?.();\n setOpen(false);\n }}\n >\n {cancelLabel}\n </Button>\n <Button\n size=\"sm\"\n variant=\"emphasis\"\n iconLeft={<Check strokeWidth={2.6} />}\n onClick={() => {\n onConfirm?.(values);\n setOpen(false);\n }}\n >\n {confirmLabel}\n </Button>\n </div>\n );\n}\n\nfunction AutocompleteContent({\n children,\n className,\n searchPlaceholder = \"Buscar...\",\n emptyMessage = \"Nenhum resultado encontrado\",\n}: AutocompleteContentProps) {\n const childArray = Children.toArray(children);\n const footerChildren = childArray.filter(\n (child) => isValidElement(child) && child.type === AutocompleteContentFooter\n );\n const listChildren = childArray.filter(\n (child) =>\n !(isValidElement(child) && child.type === AutocompleteContentFooter)\n );\n\n return (\n <PopoverContent\n align=\"start\"\n className={cn(\n \"w-full min-w-[var(--radix-popper-anchor-width)] border-gray-stroke-muted p-0\",\n className\n )}\n >\n <Command>\n <CommandInput placeholder={searchPlaceholder} />\n <CommandList id={useContext(AutocompleteContext).listId}>\n <CommandEmpty>{emptyMessage}</CommandEmpty>\n {listChildren}\n </CommandList>\n </Command>\n {footerChildren}\n </PopoverContent>\n );\n}\n\nfunction AutocompleteItem({\n children,\n value: itemValue,\n name,\n className,\n disabled: itemDisabled = false,\n}: AutocompleteItemProps) {\n const { values, toggleValue } = useContext(AutocompleteContext);\n const isSelected = values.includes(itemValue);\n\n return (\n <CommandItem\n className={cn(\n \"relative flex w-full cursor-default select-none items-center gap-3 rounded px-2 py-2.5 text-base font-medium text-gray-foreground outline-none hover:cursor-pointer hover:bg-secondary-background-soft-emphasis data-[selected=true]:bg-secondary-background-soft-emphasis\",\n className\n )}\n disabled={itemDisabled}\n onSelect={() => {\n toggleValue(itemValue);\n }}\n value={itemValue}\n keywords={name ? [name] : undefined}\n >\n <span\n className={cn(\n \"inline-flex size-[18px] shrink-0 items-center justify-center rounded-sm border-2 transition-all\",\n isSelected\n ? \"border-primary-background-fill bg-primary-background-fill\"\n : \"border-gray-stroke-muted bg-surface-card\"\n )}\n >\n {isSelected && (\n <Check\n size={12}\n strokeWidth={2.6}\n className=\"text-primary-foreground-onfill\"\n />\n )}\n </span>\n {children}\n </CommandItem>\n );\n}\n\nfunction AutocompleteGroup({\n className,\n ...props\n}: ComponentProps<typeof CommandGroup>) {\n return <CommandGroup className={className} {...props} />;\n}\n\nfunction AutocompleteText({ className, ...props }: AutocompleteTextProps) {\n const { invalid } = useContext(AutocompleteContext);\n\n return (\n <span\n className={cn(\n \"-mt-1 text-xs\",\n invalid ? \"text-feedback-error-foreground\" : \"text-gray-foreground\",\n className\n )}\n data-slot=\"autocomplete-text\"\n {...props}\n />\n );\n}\n\nexport {\n Autocomplete,\n AutocompleteContent,\n AutocompleteContentFooter,\n AutocompleteGroup,\n AutocompleteItem,\n AutocompleteText,\n AutocompleteTrigger,\n AutocompleteWrapper,\n};\nexport type {\n AutocompleteContextValue,\n AutocompleteContentFooterProps,\n AutocompleteItemProps,\n AutocompleteContentProps,\n AutocompleteTriggerProps,\n AutocompleteProps,\n};\n","\"use client\";\n\nimport { type ComponentProps, type ReactNode } from \"react\";\nimport { Avatar as AvatarPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\nimport { User } from \"@medway-ui/icons\";\nimport { Badge as BadgeComponent } from \"@/components/Badge\";\n\nconst badgeSizeMap: Record<\n \"sm\" | \"md\" | \"lg\" | \"xl\",\n \"sm\" | \"md\" | \"lg\" | \"xl\"\n> = {\n sm: \"sm\",\n md: \"md\",\n lg: \"md\",\n xl: \"lg\",\n};\n\nconst avatarVariants = cva(\n \"relative flex shrink-0 overflow-hidden rounded-full\",\n {\n variants: {\n size: {\n sm: \"size-8\",\n md: \"size-10\",\n lg: \"size-12\",\n xl: \"size-14\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\ninterface AvatarProps\n extends ComponentProps<typeof AvatarPrimitive.Root>,\n VariantProps<typeof avatarVariants> {\n src?: string;\n alt?: string;\n fallback?: ReactNode;\n badge?: number | string;\n}\n\nfunction Avatar({ className, size, badge, children, ...props }: AvatarProps) {\n return (\n <div className=\"relative\">\n {badge && (\n <BadgeComponent\n size={badgeSizeMap[size || \"md\"]}\n className={cn(\"absolute -right-2 -top-1 z-10\")}\n >\n {String(badge)}\n </BadgeComponent>\n )}\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(avatarVariants({ size, className }))}\n {...props}\n >\n {children}\n </AvatarPrimitive.Root>\n </div>\n );\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"size-full object-cover\", className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"flex size-full items-center justify-center rounded-full bg-gray-background-soft text-sm font-semibold text-primary-foreground\",\n className\n )}\n {...props}\n >\n {props.children ? props.children : <User className=\"size-1/2\" />}\n </AvatarPrimitive.Fallback>\n );\n}\n\nexport { Avatar, AvatarImage, AvatarFallback, avatarVariants };\nexport type { AvatarProps };\n","import { Slot } from \"radix-ui\";\nimport { type ComponentProps, type ReactNode } from \"react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { ChevronRightMd, MoreHorizontal } from \"@medway-ui/icons\";\n\nfunction Breadcrumb({ ...props }: ComponentProps<\"nav\">) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />;\n}\n\nfunction BreadcrumbList({ className, ...props }: ComponentProps<\"ol\">) {\n return (\n <ol\n className={cn(\n \"line-clamp-1 flex flex-wrap items-center gap-1.5 text-sm font-medium text-gray-foreground [&_svg]:shrink-0\",\n className\n )}\n data-slot=\"breadcrumb-list\"\n {...props}\n />\n );\n}\n\ninterface BreadcrumbItemProps extends ComponentProps<\"li\"> {\n icon?: ReactNode;\n}\n\nfunction BreadcrumbItem({\n className,\n icon,\n children,\n ...props\n}: BreadcrumbItemProps) {\n return (\n <li\n className={cn(\n \"inline-flex items-center gap-1.5 [&_svg]:text-primary-foreground\",\n className\n )}\n data-slot=\"breadcrumb-item\"\n {...props}\n >\n <span className=\"inline-flex items-center gap-2\">\n {icon && icon}\n {children}\n </span>\n </li>\n );\n}\n\ninterface BreadcrumbLinkProps extends ComponentProps<\"a\"> {\n asChild?: boolean;\n}\n\nfunction BreadcrumbLink({ asChild, className, ...props }: BreadcrumbLinkProps) {\n const Comp = asChild ? Slot.Root : \"a\";\n\n return (\n <Comp\n className={cn(\"transition-colors hover:underline\", className)}\n data-slot=\"breadcrumb-link\"\n {...props}\n />\n );\n}\n\nfunction BreadcrumbPage({ className, ...props }: ComponentProps<\"span\">) {\n return (\n <span\n aria-current=\"page\"\n aria-disabled=\"true\"\n className={cn(\"font-semibold text-primary-foreground\", className)}\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: ComponentProps<\"li\">) {\n return (\n <li\n aria-hidden=\"true\"\n className={className}\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n {...props}\n >\n {children ?? (\n <ChevronRightMd\n className=\"text-gray-foreground\"\n strokeWidth={1.33}\n size={20}\n />\n )}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({ className, ...props }: ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden=\"true\"\n className={cn(\"flex size-5 items-center justify-center\", className)}\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n {...props}\n >\n <MoreHorizontal className=\"text-gray-foreground\" size={18} />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\nexport type { BreadcrumbItemProps, BreadcrumbLinkProps };\n","\"use client\";\n\nimport {\n type ComponentProps,\n type ReactElement,\n type ReactNode,\n type ElementType,\n} from \"react\";\nimport { Slot } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface TagProps\n extends ComponentProps<\"span\">,\n VariantProps<typeof tagVariants> {\n asChild?: boolean;\n icon?: ReactElement;\n}\n\nconst tagVariants = cva(\n \"inline-flex items-center justify-center rounded-md px-2 py-1 text-xs font-semibold w-fit whitespace-nowrap shrink-0 gap-1.5 transition-colors overflow-hidden max-h-6\",\n {\n variants: {\n variant: {\n regular:\n \"bg-primary-background-fill text-primary-foreground-onfill fill-primary-foreground-onfill\",\n \"regular-soft\":\n \"bg-primary-background-soft text-primary-foreground fill-primary-foreground\",\n \"regular-basic\":\n \"bg-transparent text-primary-foreground fill-primary-foreground\",\n emphasis:\n \"bg-secondary-background-fill text-secondary-foreground-onfill fill-secondary-foreground-onfill\",\n \"emphasis-soft\":\n \"bg-secondary-background-soft text-secondary-foreground fill-secondary-foreground\",\n \"emphasis-basic\":\n \"bg-transparent text-secondary-foreground fill-secondary-foreground\",\n gray: \"bg-gray-background-fill text-gray-foreground-onfill fill-gray-foreground-onfill\",\n \"gray-soft\":\n \"bg-gray-background-soft text-gray-foreground fill-gray-foreground\",\n \"gray-basic\":\n \"bg-transparent text-gray-foreground fill-gray-foreground\",\n success:\n \"bg-green-background-fill text-green-foreground-onfill fill-green-foreground-onfill\",\n \"success-soft\":\n \"bg-green-background-soft text-green-foreground fill-green-foreground\",\n \"success-basic\":\n \"bg-transparent text-green-foreground fill-green-foreground\",\n error:\n \"bg-red-background-fill text-red-foreground-onfill fill-red-foreground-onfill\",\n \"error-soft\":\n \"bg-red-background-soft text-red-foreground fill-red-foreground\",\n \"error-basic\": \"bg-transparent text-red-foreground fill-red-foreground\",\n warning:\n \"bg-yellow-background-fill text-yellow-foreground-onfill fill-yellow-foreground-onfill\",\n \"warning-soft\":\n \"bg-yellow-background-soft text-yellow-foreground fill-yellow-foreground\",\n \"warning-basic\":\n \"bg-transparent text-yellow-foreground fill-yellow-foreground\",\n cm: \"bg-cm-background-fill text-cm-foreground-onfill fill-cm-foreground-onfill\",\n \"cm-soft\":\n \"bg-cm-background-soft text-cm-foreground fill-cm-foreground\",\n \"cm-basic\": \"bg-transparent text-cm-foreground fill-cm-foreground\",\n go: \"bg-go-background-fill text-go-foreground-onfill fill-go-foreground-onfill\",\n \"go-soft\":\n \"bg-go-background-soft text-go-foreground fill-go-foreground\",\n \"go-basic\": \"bg-transparent text-go-foreground fill-go-foreground\",\n cir: \"bg-cir-background-fill text-cir-foreground-onfill fill-cir-foreground-onfill\",\n \"cir-soft\":\n \"bg-cir-background-soft text-cir-foreground fill-cir-foreground\",\n \"cir-basic\": \"bg-transparent text-cir-foreground fill-cir-foreground\",\n ped: \"bg-ped-background-fill text-ped-foreground-onfill fill-ped-foreground-onfill\",\n \"ped-soft\":\n \"bg-ped-background-soft text-ped-foreground fill-ped-foreground\",\n \"ped-basic\": \"bg-transparent text-ped-foreground fill-ped-foreground\",\n prev: \"bg-prev-background-fill text-prev-foreground-onfill fill-prev-foreground-onfill\",\n \"prev-soft\":\n \"bg-prev-background-soft text-prev-foreground fill-prev-foreground\",\n \"prev-basic\":\n \"bg-transparent text-prev-foreground fill-prev-foreground\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n },\n }\n);\n\nfunction TagIcon({\n className,\n icon,\n ...props\n}: ComponentProps<\"div\"> & {\n icon?: ReactNode;\n}) {\n return (\n <div\n data-slot=\"tag-icon\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {icon}\n </div>\n );\n}\n\nfunction Tag({\n className,\n variant,\n asChild = false,\n icon,\n children,\n ...props\n}: TagProps) {\n const Comp = (asChild ? Slot.Slot : \"span\") as ElementType;\n\n return (\n <Comp\n data-slot=\"tag\"\n className={cn(tagVariants({ variant }), className)}\n {...props}\n >\n {icon && <TagIcon icon={icon} />}\n {children}\n </Comp>\n );\n}\n\nexport { Tag, tagVariants };\nexport type { TagProps };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface ProgressCircleProps extends ComponentProps<\"div\"> {\n value: number | string;\n size?: number;\n strokeWidth?: number;\n indicatorClassName?: string;\n trackClassName?: string;\n valueClassName?: string;\n label?: string;\n labelClassName?: string;\n}\n\nfunction ProgressCircle({\n className,\n indicatorClassName,\n trackClassName,\n valueClassName,\n label,\n labelClassName,\n value = 0,\n size = 96,\n strokeWidth = 2,\n ...props\n}: ProgressCircleProps) {\n const isStringValue = typeof value === \"string\";\n const numericValue = isStringValue ? 0 : Math.round(value);\n\n const radius = (size - strokeWidth) / 2;\n const circumference = radius * 2 * Math.PI;\n const offset = circumference - (numericValue / 100) * circumference;\n const valueFontSize = Math.max(18, Math.min(size / 5));\n const labelFontSize = Math.max(10, Math.min(size / 9, 16));\n\n return (\n <div\n data-slot=\"progress-circle\"\n className={cn(\n \"relative inline-flex items-center justify-center\",\n className\n )}\n style={{ width: size, height: size }}\n {...props}\n >\n <svg\n className=\"absolute inset-0 -rotate-90\"\n width={size}\n height={size}\n viewBox={`0 0 ${size} ${size}`}\n >\n <circle\n data-slot=\"progress-circle-track\"\n cx={size / 2}\n cy={size / 2}\n r={radius}\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n fill=\"none\"\n className={cn(\"text-gray-stroke-muted\", trackClassName)}\n />\n <circle\n data-slot=\"progress-circle-indicator\"\n cx={size / 2}\n cy={size / 2}\n r={radius}\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n fill=\"none\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n strokeLinecap=\"round\"\n className={cn(\n \"text-primary-stroke transition-all duration-300 ease-in-out\",\n indicatorClassName\n )}\n />\n </svg>\n <div\n data-slot=\"progress-circle-content\"\n className=\"relative z-10 flex flex-col items-center justify-center px-2 text-sm font-medium text-gray-foreground-muted\"\n >\n <div>\n <span\n className={cn(\"mr-px font-semibold\", valueClassName)}\n style={{ fontSize: `${valueFontSize}px` }}\n >\n {value}\n </span>\n {!isStringValue && \"%\"}\n </div>\n {label && (\n <div\n data-slot=\"progress-circle-label\"\n className={cn(\n \"text-center font-medium leading-tight text-gray-foreground-muted\",\n labelClassName\n )}\n style={{ fontSize: `${labelFontSize}px` }}\n >\n {label}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport { ProgressCircle };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { Progress as ProgressPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface ProgressProps\n extends ComponentProps<typeof ProgressPrimitive.Root> {\n indicatorClassName?: string;\n label?: string;\n}\n\nfunction Progress({\n className,\n indicatorClassName,\n label,\n value,\n ...props\n}: ProgressProps) {\n const percentage = Math.round(value || 0);\n\n return (\n <div className=\"flex w-full flex-col gap-2\">\n {label && (\n <div\n data-slot=\"progress-label\"\n className=\"text-xs font-medium text-gray-foreground-muted\"\n >\n <span className=\"font-semibold text-gray-foreground\">\n {percentage}%\n </span>{\" \"}\n <span>{label}</span>\n </div>\n )}\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(\n \"relative flex h-px w-full overflow-x-clip rounded-pill bg-gray-stroke-muted\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(\n \"relative -top-[0.5px] flex h-0.5 w-full flex-1 bg-primary-stroke transition-all\",\n indicatorClassName\n )}\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n </div>\n );\n}\n\nexport { Progress };\n","\"use client\";\n\nimport {\n createContext,\n useContext,\n useMemo,\n type ComponentProps,\n type ReactElement,\n} from \"react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Breadcrumb, BreadcrumbList } from \"@/components/Breadcrumb\";\nimport { Tag } from \"@/components/Tag\";\nimport { Check, TimeRemaining } from \"@medway-ui/icons\";\nimport {\n ProgressCircle,\n ProgressCircleProps,\n} from \"@/components/ProgressCircle\";\nimport { Progress, ProgressProps } from \"@/components/Progress\";\n\ninterface CardWeekProps extends ComponentProps<\"div\"> {\n done?: boolean;\n postponed?: boolean;\n skipped?: boolean;\n}\n\ninterface CardWeekBreadcrumbProps extends ComponentProps<\"div\"> {\n tag?: string;\n tagIcon?: ReactElement;\n}\n\ninterface CardWeekTextProps extends ComponentProps<\"div\"> {\n isTime?: boolean;\n}\n\ntype CardWeekContextValue = Pick<\n CardWeekProps,\n \"done\" | \"postponed\" | \"skipped\"\n>;\n\nconst CardWeekContext = createContext<CardWeekContextValue | null>(null);\n\nfunction CardWeek({\n className,\n done,\n postponed,\n skipped,\n ...props\n}: CardWeekProps) {\n const contextValue = useMemo(\n () => ({ done, postponed, skipped }),\n [done, postponed, skipped]\n );\n\n return (\n <CardWeekContext.Provider value={contextValue}>\n <div\n data-slot=\"card-week\"\n className={cn(\n \"flex flex-col overflow-hidden rounded-xl border border-gray-stroke-muted text-gray-foreground-muted\",\n className\n )}\n {...props}\n />\n </CardWeekContext.Provider>\n );\n}\n\nfunction CardWeekBreadcrumb({\n className,\n children,\n tag,\n tagIcon,\n ...props\n}: CardWeekBreadcrumbProps) {\n return (\n <div\n data-slot=\"card-week-breadcrumb\"\n className={cn(\n \"flex items-center gap-4 bg-primary-background-soft-muted px-6 py-3\",\n className\n )}\n {...props}\n >\n <Breadcrumb className=\"flex-1 overflow-hidden\">\n <BreadcrumbList className=\"flex-nowrap gap-1.5 text-xs [&>[data-slot=breadcrumb-item]:last-of-type>span]:min-w-0 [&>[data-slot=breadcrumb-item]:last-of-type>span]:overflow-hidden [&>[data-slot=breadcrumb-item]:last-of-type]:min-w-0 [&>[data-slot=breadcrumb-item]:last-of-type]:flex-1 [&>[data-slot=breadcrumb-item]:last-of-type_[data-slot=breadcrumb-page]]:truncate [&_[data-slot=breadcrumb-page]]:block\">\n {children}\n </BreadcrumbList>\n </Breadcrumb>\n {tag && (\n <Tag variant=\"regular-soft\" icon={tagIcon}>\n {tag}\n </Tag>\n )}\n </div>\n );\n}\n\nfunction CardWeekContainer({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-week-container\"\n className={cn(\n \"flex flex-1 flex-col gap-5 bg-surface-card px-6 py-5\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardWeekHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-week-header\"\n className={cn(\"flex justify-between [&.border-b]:pb-6\", className)}\n {...props}\n />\n );\n}\n\nfunction CardWeekTitle({ className, ...props }: ComponentProps<\"div\">) {\n const cardWeekContext = useContext(CardWeekContext);\n const done = cardWeekContext?.done;\n const postponed = cardWeekContext?.postponed;\n const skipped = cardWeekContext?.skipped;\n\n return (\n <div\n data-slot=\"card-week-title\"\n className={cn(\n \"text-lg font-semibold leading-lg text-primary-foreground\",\n (done || postponed || skipped) &&\n \"text-primary-foreground-muted line-through\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardWeekDescription({ className, ...props }: ComponentProps<\"div\">) {\n const cardWeekContext = useContext(CardWeekContext);\n const done = cardWeekContext?.done;\n const postponed = cardWeekContext?.postponed;\n const skipped = cardWeekContext?.skipped;\n\n return (\n <div\n data-slot=\"card-week-description\"\n className={cn(\n \"text-xs font-semibold leading-xs text-gray-foreground\",\n (done || postponed || skipped) && \"text-gray-foreground-muted\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardWeekTags({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-week-tags\"\n className={cn(\n \"flex flex-wrap items-center gap-2 [[data-slot=card-week-header]:not(:has([data-slot=card-week-progress]))+&]:mt-6\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardWeekProgressCircle({ className, ...props }: ProgressCircleProps) {\n return (\n <div\n data-slot=\"card-week-progress-circle\"\n className={cn(\"flex flex-1 justify-end\", className)}\n {...props}\n >\n <ProgressCircle size={104} {...props} />\n </div>\n );\n}\n\nfunction CardWeekProgress({ className, ...props }: ProgressProps) {\n const cardWeekContext = useContext(CardWeekContext);\n const done = cardWeekContext?.done;\n\n return (\n <div\n data-slot=\"card-week-progress\"\n className={cn(\"flex flex-1\", className)}\n {...props}\n >\n <Progress value={done ? 100 : props.value} {...props} />\n </div>\n );\n}\n\nfunction CardWeekFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-week-footer\"\n className={cn(\"mt-auto flex flex-col gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction CardWeekContent({\n className,\n children,\n ...props\n}: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-week-content\"\n className={cn(\"flex flex-col text-xs font-medium\", className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nfunction CardWeekText({\n className,\n children,\n isTime,\n ...props\n}: CardWeekTextProps) {\n return (\n <div\n data-slot=\"card-week-text\"\n className={cn(\n \"flex items-center gap-1.5\",\n isTime ? \"text-secondary-foreground\" : \"text-gray-foreground-muted\",\n className\n )}\n {...props}\n >\n {isTime && <TimeRemaining size={16} />}\n <span>{children}</span>\n </div>\n );\n}\n\nfunction CardWeekStatus({ className, ...props }: ComponentProps<\"div\">) {\n const cardWeekContext = useContext(CardWeekContext);\n const done = cardWeekContext?.done;\n const postponed = cardWeekContext?.postponed;\n const skipped = cardWeekContext?.skipped;\n\n if (!done && !postponed && !skipped) return null;\n\n if (postponed || skipped) {\n return (\n <div\n data-slot=\"card-week-status\"\n className={cn(\"flex items-center gap-1.5\", className)}\n {...props}\n >\n <div className=\"flex size-4 items-center justify-center rounded-full bg-yellow-24 text-yellow-darken-4\">\n <Check size={12} strokeWidth={1.67} />\n </div>\n <div className=\"font-semibold text-yellow-darken-4\">\n {postponed ? \"Adiado\" : \"Pulado\"}\n </div>\n </div>\n );\n }\n\n return (\n <div\n data-slot=\"card-week-status\"\n className={cn(\"flex items-center gap-1.5\", className)}\n {...props}\n >\n <div className=\"flex size-4 items-center justify-center rounded-full bg-secondary-background-soft text-secondary-foreground\">\n <Check size={12} strokeWidth={1.67} />\n </div>\n <div className=\"font-semibold\">Feito</div>\n </div>\n );\n}\n\nfunction CardWeekActions({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-week-actions\"\n className={cn(\n \"flex flex-wrap items-center justify-end gap-2 pt-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n CardWeek,\n CardWeekTags,\n CardWeekBreadcrumb,\n CardWeekContainer,\n CardWeekContent,\n CardWeekDescription,\n CardWeekFooter,\n CardWeekProgress,\n CardWeekProgressCircle,\n CardWeekText,\n CardWeekStatus,\n CardWeekActions,\n CardWeekHeader,\n CardWeekTitle,\n};\nexport type { CardWeekProps, CardWeekBreadcrumbProps, CardWeekTextProps };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\";\nimport { Check, RemoveMinus } from \"@medway-ui/icons\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst checkboxVariants = cva(\n \"inline-flex items-center justify-center place-items-center gap-2 rounded-sm whitespace-nowrap transition-all disabled:pointer-events-none shrink-0 [&_svg]:shrink-0 hover:cursor-pointer focus:outline-0 [grid-template-areas:'stack']\",\n {\n variants: {\n variant: {\n regular:\n \"bg-surface-card border-2 border-gray-stroke-muted enabled:hover:ring-4 data-[state=unchecked]:enabled:hover:ring-state-hover data-[state=unchecked]:enabled:hover:border-gray-stroke disabled:bg-gray-background-soft-muted data-[state=checked]:bg-primary-background-fill data-[state=checked]:border-primary-background-fill data-[state=checked]:enabled:hover:bg-primary-background-fill-emphasis data-[state=checked]:enabled:hover:border-primary-background-fill-emphasis data-[state=checked]:enabled:hover:ring-state-active disabled:data-[state=checked]:bg-gray-background-soft-muted disabled:data-[state=checked]:border-gray-stroke-muted data-[state=unchecked]:enabled:hover:border-gray-stroke data-[state=checked]:enabled:hover:bg-primary-background-fill-emphasis [&:disabled_svg]:text-gray-background-fill-muted\",\n },\n size: {\n sm: \"size-4 [&_svg]:size-3\",\n md: \"size-5 [&_svg]:size-4\",\n lg: \"size-6 [&_svg]:size-5\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n size: \"md\",\n },\n }\n);\n\ninterface CheckboxProps\n extends ComponentProps<typeof CheckboxPrimitive.Root>,\n VariantProps<typeof checkboxVariants> {\n uncheckIcon?: boolean;\n}\n\nfunction Checkbox({\n className,\n size,\n variant,\n uncheckIcon,\n ...props\n}: CheckboxProps) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"group peer\",\n checkboxVariants({ size, variant }),\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n {uncheckIcon ? (\n <RemoveMinus\n className={cn(\n \"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-primary-foreground-onfill\"\n )}\n strokeWidth={2.6}\n />\n ) : (\n <Check\n className={cn(\n \"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-primary-foreground-onfill\"\n )}\n strokeWidth={2.6}\n />\n )}\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox, checkboxVariants };\nexport type { CheckboxProps };\n","\"use client\";\n\nimport { createContext, useContext, type ComponentProps } from \"react\";\nimport { Collapsible as CollapsiblePrimitive } from \"radix-ui\";\nimport { cn } from \"@/lib/utils\";\n\ntype AnimationType = \"accordion\" | \"fade\";\n\ninterface CollapsibleContextValue {\n animation?: AnimationType;\n}\n\ninterface CollapsibleContentProps\n extends ComponentProps<typeof CollapsiblePrimitive.Content> {\n className?: string;\n}\n\nconst CollapsibleContext = createContext<CollapsibleContextValue>({\n animation: undefined,\n});\n\ninterface CollapsibleProps\n extends ComponentProps<typeof CollapsiblePrimitive.Root> {\n animation?: AnimationType;\n}\n\nfunction Collapsible({ animation, ...props }: CollapsibleProps) {\n return (\n <CollapsibleContext.Provider value={{ animation }}>\n <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n </CollapsibleContext.Provider>\n );\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: ComponentProps<typeof CollapsiblePrimitive.Trigger>) {\n return (\n <CollapsiblePrimitive.Trigger data-slot=\"collapsible-trigger\" {...props} />\n );\n}\n\nfunction CollapsibleContent({ className, ...props }: CollapsibleContentProps) {\n const { animation } = useContext(CollapsibleContext);\n\n const animationClasses: Record<AnimationType, string> = {\n accordion:\n \"overflow-hidden data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down\",\n fade: \"data-[state=closed]:animate-fade-out data-[state=open]:animate-fade-in\",\n };\n\n return (\n <CollapsiblePrimitive.Content\n data-slot=\"collapsible-content\"\n className={cn(animation && animationClasses[animation], className)}\n {...props}\n />\n );\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\nexport type { AnimationType, CollapsibleProps, CollapsibleContentProps };\n","import { useState, useEffect } from \"react\";\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = useState<boolean | undefined>(undefined);\n\n useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener(\"change\", onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return !!isMobile;\n}\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\nimport { Check, ChevronRight } from \"@medway-ui/icons\";\n\nimport { cn } from \"@/lib/utils\";\nimport { useIsMobile } from \"@/hooks/use-mobile\";\n\nfunction DropdownMenu({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n className={cn(\"cursor-pointer\", props.className)}\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n side,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n const isMobile = useIsMobile();\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n side={isMobile ? \"bottom\" : side}\n className={cn(\n \"max-h-(--radix-dropdown-menu-content-available-height) origin-(--radix-dropdown-menu-content-transform-origin) z-50 max-h-screen min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-surface-elevated p-3 pb-2 text-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"data-[variant=destructive]:*:[svg]:!text-destructive outline-hidden relative flex cursor-pointer select-none items-center gap-2.5 rounded-sm px-2 py-2 text-sm font-medium text-gray-foreground hover:bg-secondary-background-soft-emphasis focus:outline-0 data-[disabled]:pointer-events-none data-[inset]:pl-8 data-[variant=destructive]:text-red-foreground data-[disabled]:opacity-50 data-[variant=destructive]:hover:bg-red-background-soft-emphasis dark:[&_img]:brightness-0 dark:[&_img]:invert [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"outline-hidden relative flex cursor-pointer select-none items-center gap-2 rounded-md py-2 pl-2 pr-7 text-sm font-medium text-gray-foreground hover:bg-secondary-background-soft-emphasis focus:outline-0 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:[&_img]:brightness-0 dark:[&_img]:invert [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:text-secondary-foreground\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"flex min-w-0 flex-1 gap-2 break-words\">{children}</span>\n <span className=\"pointer-events-none absolute right-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"outline-hidden relative flex cursor-pointer select-none items-center gap-2 rounded-md py-3 pl-2 pr-7 text-sm font-medium text-gray-foreground hover:bg-secondary-background-soft-emphasis focus:outline-0 aria-checked:text-secondary-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:[&_img]:brightness-0 dark:[&_img]:invert [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:text-secondary-foreground\",\n className\n )}\n {...props}\n >\n <span className=\"flex min-w-0 flex-1 gap-2 break-words\">{children}</span>\n <span className=\"pointer-events-none absolute right-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\ninterface DropdownMenuLabelProps\n extends ComponentProps<typeof DropdownMenuPrimitive.Label> {\n inset?: boolean;\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: DropdownMenuLabelProps) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-3 text-xs font-medium text-gray-foreground-muted data-[inset]:pl-8 [&:not(:first-child)]:mt-2.5\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-3 my-2 h-px bg-gray-stroke-muted\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-gray-foreground\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-pointer select-none items-center rounded-sm px-2 py-2 text-sm font-medium text-gray-foreground outline-0 focus:outline-0 data-[inset]:pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto size-3\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"origin-(--radix-dropdown-menu-content-transform-origin) z-50 min-w-[8rem] overflow-hidden rounded-md border bg-surface-elevated p-1 text-gray-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\nexport type { DropdownMenuLabelProps };\n","\"use client\";\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useId,\n useRef,\n useState,\n type CSSProperties,\n type ComponentPropsWithoutRef,\n type HTMLAttributes,\n} from \"react\";\nimport {\n Calendar,\n ChevronDown,\n ChevronLeftMd,\n ChevronRightMd,\n} from \"@medway-ui/icons\";\nimport { cn } from \"@/lib/utils\";\n\nconst DatePickerContext = createContext<{ invalid: boolean }>({\n invalid: false,\n});\n\ntype DatePickerValue = Date | null;\n\ntype DateRangeValue = { start: Date | null; end: Date | null } | null;\n\ninterface DatePickerLabelProps extends HTMLAttributes<HTMLLabelElement> {\n htmlFor?: string;\n}\n\ninterface DatePickerProps\n extends Omit<\n ComponentPropsWithoutRef<\"button\">,\n \"value\" | \"defaultValue\" | \"onChange\"\n > {\n value?: DatePickerValue;\n defaultValue?: DatePickerValue;\n onValueChange?: (value: DatePickerValue) => void;\n placeholder?: string;\n disabled?: boolean;\n min?: Date;\n max?: Date;\n format?: (date: Date) => string;\n inputClassName?: string;\n contentClassName?: string;\n yearRange?: { start: number; end: number };\n showYearSelector?: boolean;\n invalid?: boolean;\n}\n\ninterface DateRangePickerProps\n extends Omit<\n ComponentPropsWithoutRef<\"button\">,\n \"value\" | \"defaultValue\" | \"onChange\"\n > {\n value?: DateRangeValue;\n defaultValue?: DateRangeValue;\n onValueChange?: (value: DateRangeValue) => void;\n placeholder?: string;\n disabled?: boolean;\n min?: Date;\n max?: Date;\n format?: (date: Date) => string;\n inputClassName?: string;\n contentClassName?: string;\n yearRange?: { start: number; end: number };\n showYearSelector?: boolean;\n invalid?: boolean;\n}\n\nfunction DatePickerWrapper({\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"group relative flex flex-col gap-2\", className)}\n data-slot=\"date-picker-wrapper\"\n {...props}\n />\n );\n}\n\nfunction DatePickerLabel({\n className,\n children,\n ...props\n}: DatePickerLabelProps) {\n return (\n <label\n className={cn(\n \"pointer-events-none absolute start-3 top-0 z-10 origin-left -translate-y-1/2 bg-surface-card px-1 text-xs font-medium text-gray-foreground transition-all duration-200 ease-out\",\n // Floating label styles\n \"group-has-[[data-slot=date-picker-trigger][data-placeholder]:not([data-state=open])]:start-4 group-has-[[data-slot=date-picker-trigger][data-placeholder]:not([data-state=open])]:top-6 group-has-[[data-slot=date-picker-trigger][data-placeholder]:not([data-state=open])]:px-0 group-has-[[data-slot=date-picker-trigger][data-placeholder]:not([data-state=open])]:text-md group-has-[[data-slot=date-picker-trigger][data-placeholder]:not([data-state=open])]:font-normal group-has-[[data-slot=date-picker-trigger][data-placeholder]:not([data-state=open])]:text-gray-foreground\",\n className\n )}\n data-slot=\"date-picker-label\"\n {...props}\n >\n {children}\n </label>\n );\n}\n\nfunction DatePickerText({\n className,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n const { invalid } = useContext(DatePickerContext);\n\n return (\n <span\n className={cn(\n \"-mt-1 text-xs\",\n invalid ? \"text-feedback-error-foreground\" : \"text-gray-foreground\",\n className\n )}\n data-slot=\"date-picker-text\"\n {...props}\n />\n );\n}\n\nfunction startOfDay(date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\n\nfunction isSameDay(a: Date, b: Date) {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nfunction addMonths(date: Date, delta: number) {\n return new Date(date.getFullYear(), date.getMonth() + delta, 1);\n}\n\nfunction clampToStartOfMonth(date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\n\nfunction isBeforeDay(a: Date, b: Date) {\n return startOfDay(a).getTime() < startOfDay(b).getTime();\n}\n\nfunction isAfterDay(a: Date, b: Date) {\n return startOfDay(a).getTime() > startOfDay(b).getTime();\n}\n\nfunction isDisabledByBounds(day: Date, min?: Date, max?: Date) {\n if (min && isBeforeDay(day, min)) return true;\n if (max && isAfterDay(day, max)) return true;\n return false;\n}\n\nfunction defaultFormat(date: Date) {\n return new Intl.DateTimeFormat(\"pt-BR\", {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n }).format(date);\n}\n\nfunction DatePicker({\n value,\n defaultValue = null,\n onValueChange,\n placeholder = \"Pick a date\",\n disabled,\n min,\n max,\n format = defaultFormat,\n className,\n inputClassName,\n contentClassName,\n yearRange = { start: 1950, end: 2026 },\n showYearSelector = true,\n invalid = false,\n children,\n ...props\n}: DatePickerProps) {\n const isControlled = value !== undefined;\n\n const [uncontrolledValue, setUncontrolledValue] =\n useState<DatePickerValue>(defaultValue);\n\n const selected = isControlled ? value : uncontrolledValue;\n\n const [open, setOpen] = useState(false);\n const [viewMonth, setViewMonth] = useState<Date>(() =>\n clampToStartOfMonth(selected ?? new Date())\n );\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n const contentId = useId();\n\n const [mobilePopoverStyle, setMobilePopoverStyle] =\n useState<CSSProperties | null>(null);\n const [placement, setPlacement] = useState<\"above\" | \"below\">(\"below\");\n\n const setSelected = useCallback(\n (next: DatePickerValue) => {\n if (!isControlled) setUncontrolledValue(next);\n onValueChange?.(next);\n },\n [isControlled, onValueChange]\n );\n\n useEffect(() => {\n if (!open) return;\n // When opening, show the month of the current selection (or today).\n setViewMonth(clampToStartOfMonth(selected ?? new Date()));\n }, [open, selected]);\n\n // Clear mobile style whenever popover closes.\n useEffect(() => {\n if (!open) {\n setMobilePopoverStyle(null);\n setPlacement(\"below\");\n }\n }, [open]);\n\n useEffect(() => {\n if (!open) return;\n const prevOverflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = prevOverflow;\n };\n }, [open]);\n\n // Close on scroll while the fixed popover is visible.\n useEffect(() => {\n if (!mobilePopoverStyle) return;\n const close = () => setOpen(false);\n window.addEventListener(\"scroll\", close, { passive: true, capture: true });\n return () =>\n window.removeEventListener(\"scroll\", close, { capture: true } as any);\n }, [mobilePopoverStyle]);\n\n useEffect(() => {\n if (!open) return;\n const onPointerDown = (event: MouseEvent | PointerEvent) => {\n const el = rootRef.current;\n if (!el) return;\n if (event.target instanceof Node && !el.contains(event.target)) {\n setOpen(false);\n }\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") setOpen(false);\n };\n window.addEventListener(\"pointerdown\", onPointerDown, { capture: true });\n window.addEventListener(\"keydown\", onKeyDown);\n return () => {\n window.removeEventListener(\"pointerdown\", onPointerDown, {\n capture: true,\n } as any);\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [open]);\n\n // Compute fixed position from the trigger rect so the style is ready\n // before the first render — avoids blink and transform mismatch.\n const POPOVER_ESTIMATED_HEIGHT = 290;\n const handleTriggerClick = () => {\n if (open) {\n setOpen(false);\n } else {\n const rect = rootRef.current?.getBoundingClientRect();\n if (rect) {\n const spaceBelow = window.innerHeight - rect.bottom;\n const openAbove = spaceBelow < POPOVER_ESTIMATED_HEIGHT;\n setPlacement(openAbove ? \"above\" : \"below\");\n if (window.matchMedia(\"(max-width: 639px)\").matches) {\n setMobilePopoverStyle({\n position: \"fixed\",\n ...(openAbove\n ? { bottom: window.innerHeight - rect.top + 8 }\n : { top: rect.bottom + 8 }),\n left: rect.left + rect.width / 2,\n transform: \"translateX(-50%)\",\n });\n }\n }\n setOpen(true);\n }\n };\n\n const today = startOfDay(new Date());\n const year = viewMonth.getFullYear();\n const month = viewMonth.getMonth();\n const firstDayOfMonth = new Date(year, month, 1);\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n const leadingEmpty = firstDayOfMonth.getDay();\n const displayValue = selected ? format(selected) : \"\";\n\n // Generate month options in Portuguese\n const months = Array.from({ length: 12 }, (_, i) => ({\n value: i,\n label: new Intl.DateTimeFormat(\"pt-BR\", { month: \"long\" }).format(\n new Date(2000, i, 1)\n ),\n }));\n\n // Generate year options\n const years = Array.from(\n { length: yearRange.end - yearRange.start + 1 },\n (_, i) => yearRange.start + i\n );\n\n const handleMonthChange = (newMonth: number) => {\n setViewMonth(new Date(year, newMonth, 1));\n };\n\n const handleYearChange = (newYear: number) => {\n setViewMonth(new Date(newYear, month, 1));\n };\n\n return (\n <DatePickerContext.Provider value={{ invalid }}>\n <div\n ref={rootRef}\n className={cn(\"relative inline-flex w-full\", className)}\n >\n <button\n type=\"button\"\n disabled={disabled}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n aria-controls={open ? contentId : undefined}\n data-invalid={invalid || undefined}\n data-slot=\"date-picker-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n {...(!displayValue && { \"data-placeholder\": \"\" })}\n className={cn(\n \"shadow-xs peer flex h-12 w-full items-center justify-between gap-2 rounded-md border-2 border-gray-stroke-muted bg-surface-card px-4 py-3 text-left text-md text-gray-foreground outline-none transition-[color,box-shadow] enabled:hover:border-gray-stroke-emphasis enabled:hover:ring-[3px] enabled:hover:ring-state-focus disabled:pointer-events-none disabled:bg-gray-background-soft-muted disabled:text-gray-foreground-muted data-[invalid]:border-feedback-error-stroke data-[invalid]:enabled:hover:border-feedback-error-stroke data-[invalid]:enabled:hover:ring-[3px] data-[invalid]:enabled:hover:ring-state-error max-sm:h-14 max-sm:text-base\",\n open && \"border-gray-stroke-emphasis ring-[3px] ring-state-focus\",\n displayValue &&\n !invalid &&\n \"border-gray-stroke-emphasis ring-[3px] ring-state-focus\",\n displayValue &&\n invalid &&\n \"border-feedback-error-stroke ring-[3px] ring-state-error\",\n // Floating label styles - hide placeholder text when label is present and field is empty\n \"group-has-[[data-slot=date-picker-label]]:data-[placeholder]:text-transparent\",\n inputClassName\n )}\n onClick={handleTriggerClick}\n {...props}\n >\n <span className=\"truncate\">{displayValue || placeholder}</span>\n <Calendar\n size={20}\n strokeWidth={1.6}\n className=\"shrink-0 !text-gray-foreground\"\n aria-hidden=\"true\"\n />\n </button>\n\n {open && (\n <div\n id={contentId}\n role=\"dialog\"\n aria-label=\"Calendário\"\n data-slot=\"date-picker-content\"\n style={mobilePopoverStyle ?? undefined}\n className={cn(\n \"absolute left-0 z-50 w-[min(20rem,100%)] overflow-hidden rounded-md border border-gray-stroke-muted bg-surface-elevated p-3 shadow-md max-sm:left-1/2 max-sm:w-[min(32rem,calc(100vw-1rem))] max-sm:-translate-x-1/2\",\n placement === \"below\" && \"top-[calc(100%+8px)]\",\n placement === \"above\" && \"bottom-[calc(100%+8px)]\",\n contentClassName\n )}\n >\n <div className=\"mb-3 flex items-center justify-center gap-2\">\n <button\n type=\"button\"\n className=\"inline-flex size-8 items-center justify-center rounded-md hover:bg-secondary-background-soft-emphasis max-sm:size-10\"\n onClick={() => setViewMonth((m) => addMonths(m, -1))}\n aria-label=\"Mês anterior\"\n >\n <ChevronLeftMd size={18} strokeWidth={1.8} />\n </button>\n\n <div className=\"flex items-center gap-2\">\n <div className=\"relative\">\n <select\n value={month}\n onChange={(e) => handleMonthChange(Number(e.target.value))}\n className=\"min-w-[7rem] appearance-none rounded-md border border-gray-stroke-muted bg-surface-card py-1 pl-2 pr-7 text-sm font-medium capitalize text-gray-foreground outline-none hover:border-gray-stroke-emphasis focus:border-gray-stroke-emphasis focus:ring-2 focus:ring-state-focus max-sm:min-w-[8rem] max-sm:py-2 max-sm:text-base\"\n aria-label=\"Selecionar mês\"\n >\n {months.map((m) => (\n <option\n key={m.value}\n value={m.value}\n className=\"capitalize\"\n >\n {m.label}\n </option>\n ))}\n </select>\n <ChevronDown\n size={12}\n strokeWidth={1.8}\n className=\"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-gray-foreground\"\n aria-hidden\n />\n </div>\n\n {showYearSelector ? (\n <div className=\"relative\">\n <select\n value={year}\n onChange={(e) => handleYearChange(Number(e.target.value))}\n className=\"min-w-[5rem] appearance-none rounded-md border border-gray-stroke-muted bg-surface-card py-1 pl-2 pr-7 text-sm font-medium text-gray-foreground outline-none hover:border-gray-stroke-emphasis focus:border-gray-stroke-emphasis focus:ring-2 focus:ring-state-focus max-sm:min-w-[5.5rem] max-sm:py-2 max-sm:text-base\"\n aria-label=\"Selecionar ano\"\n >\n {years.map((y) => (\n <option key={y} value={y}>\n {y}\n </option>\n ))}\n </select>\n <ChevronDown\n size={12}\n strokeWidth={1.8}\n className=\"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-gray-foreground\"\n aria-hidden\n />\n </div>\n ) : (\n <div className=\"text-sm font-semibold text-gray-foreground\">\n {year}\n </div>\n )}\n </div>\n\n <button\n type=\"button\"\n className=\"inline-flex size-8 items-center justify-center rounded-md hover:bg-secondary-background-soft-emphasis max-sm:size-10\"\n onClick={() => setViewMonth((m) => addMonths(m, 1))}\n aria-label=\"Próximo mês\"\n >\n <ChevronRightMd size={18} strokeWidth={1.8} />\n </button>\n </div>\n\n <div className=\"grid grid-cols-7 gap-1 text-center text-xs font-medium text-gray-foreground-muted max-sm:text-sm\">\n <div>Dom</div>\n <div>Seg</div>\n <div>Ter</div>\n <div>Qua</div>\n <div>Qui</div>\n <div>Sex</div>\n <div>Sáb</div>\n </div>\n\n <div className=\"mt-2 grid grid-cols-7 gap-1\">\n {Array.from({ length: leadingEmpty }).map((_, i) => (\n <div key={`empty-${i}`} />\n ))}\n\n {Array.from({ length: daysInMonth }).map((_, i) => {\n const day = new Date(year, month, i + 1);\n const isSelected = selected ? isSameDay(day, selected) : false;\n const isToday = isSameDay(day, today);\n const isDisabled =\n disabled || isDisabledByBounds(day, min, max);\n\n return (\n <button\n key={day.toISOString()}\n type=\"button\"\n disabled={isDisabled}\n onClick={() => {\n setSelected(day);\n setOpen(false);\n }}\n className={cn(\n \"inline-flex h-9 w-full items-center justify-center rounded-md text-sm font-medium outline-none transition-colors hover:bg-secondary-background-soft-emphasis disabled:pointer-events-none disabled:opacity-50 max-sm:h-11 max-sm:text-base\",\n isToday && \"ring-1 ring-gray-stroke-emphasis\",\n isSelected &&\n \"bg-primary-background-fill text-primary-foreground-onfill hover:bg-primary-background-fill-emphasis\"\n )}\n aria-pressed={isSelected}\n >\n {i + 1}\n </button>\n );\n })}\n </div>\n\n <div className=\"mt-3 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n className=\"rounded-md px-2 py-1 text-xs font-medium text-gray-foreground hover:bg-secondary-background-soft-emphasis max-sm:px-3 max-sm:py-2 max-sm:text-sm\"\n onClick={() => {\n setSelected(today);\n setOpen(false);\n }}\n disabled={disabled || isDisabledByBounds(today, min, max)}\n >\n Hoje\n </button>\n\n <button\n type=\"button\"\n className=\"rounded-md px-2 py-1 text-xs font-medium text-gray-foreground hover:bg-secondary-background-soft-emphasis max-sm:px-3 max-sm:py-2 max-sm:text-sm\"\n onClick={() => setSelected(null)}\n disabled={disabled || !selected}\n >\n Limpar\n </button>\n </div>\n </div>\n )}\n </div>\n {children}\n </DatePickerContext.Provider>\n );\n}\n\nfunction DateRangePicker({\n value,\n defaultValue = null,\n onValueChange,\n placeholder = \"Selecionar período\",\n disabled,\n min,\n max,\n format = defaultFormat,\n className,\n inputClassName,\n contentClassName,\n yearRange = { start: 1900, end: 2100 },\n showYearSelector = true,\n invalid = false,\n children,\n ...props\n}: DateRangePickerProps) {\n const isControlled = value !== undefined;\n\n const [uncontrolledValue, setUncontrolledValue] =\n useState<DateRangeValue>(defaultValue);\n\n const rangeValue = isControlled ? value : uncontrolledValue;\n\n const [open, setOpen] = useState(false);\n const [viewMonth, setViewMonth] = useState<Date>(() =>\n clampToStartOfMonth(rangeValue?.start ?? rangeValue?.end ?? new Date())\n );\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n const contentId = useId();\n\n const [mobilePopoverStyle, setMobilePopoverStyle] =\n useState<CSSProperties | null>(null);\n const [placement, setPlacement] = useState<\"above\" | \"below\">(\"below\");\n\n const setRangeValue = useCallback(\n (next: DateRangeValue) => {\n if (!isControlled) setUncontrolledValue(next);\n onValueChange?.(next);\n },\n [isControlled, onValueChange]\n );\n\n useEffect(() => {\n if (!open) return;\n setViewMonth(\n clampToStartOfMonth(rangeValue?.start ?? rangeValue?.end ?? new Date())\n );\n }, [open, rangeValue]);\n\n // Clear mobile style whenever popover closes.\n useEffect(() => {\n if (!open) {\n setMobilePopoverStyle(null);\n setPlacement(\"below\");\n }\n }, [open]);\n\n // Disable body scroll while popover is open.\n useEffect(() => {\n if (!open) return;\n const prevOverflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = prevOverflow;\n };\n }, [open]);\n\n // Close on scroll while the fixed popover is visible.\n useEffect(() => {\n if (!mobilePopoverStyle) return;\n const close = () => setOpen(false);\n window.addEventListener(\"scroll\", close, { passive: true, capture: true });\n return () =>\n window.removeEventListener(\"scroll\", close, { capture: true } as any);\n }, [mobilePopoverStyle]);\n\n useEffect(() => {\n if (!open) return;\n const onPointerDown = (event: MouseEvent | PointerEvent) => {\n const el = rootRef.current;\n if (!el) return;\n if (event.target instanceof Node && !el.contains(event.target)) {\n setOpen(false);\n }\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") setOpen(false);\n };\n window.addEventListener(\"pointerdown\", onPointerDown, { capture: true });\n window.addEventListener(\"keydown\", onKeyDown);\n return () => {\n window.removeEventListener(\"pointerdown\", onPointerDown, {\n capture: true,\n } as any);\n window.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [open]);\n\n // Compute fixed position from the trigger rect so the style is ready\n // before the first render — avoids blink and transform mismatch.\n const POPOVER_ESTIMATED_HEIGHT_RANGE = 290;\n const handleTriggerClick = () => {\n if (open) {\n setOpen(false);\n } else {\n const rect = rootRef.current?.getBoundingClientRect();\n if (rect) {\n const spaceBelow = window.innerHeight - rect.bottom;\n const openAbove = spaceBelow < POPOVER_ESTIMATED_HEIGHT_RANGE;\n setPlacement(openAbove ? \"above\" : \"below\");\n if (window.matchMedia(\"(max-width: 639px)\").matches) {\n setMobilePopoverStyle({\n position: \"fixed\",\n ...(openAbove\n ? { bottom: window.innerHeight - rect.top + 8 }\n : { top: rect.bottom + 8 }),\n left: rect.left + rect.width / 2,\n transform: \"translateX(-50%)\",\n });\n }\n }\n setOpen(true);\n }\n };\n\n const today = startOfDay(new Date());\n\n const year = viewMonth.getFullYear();\n const month = viewMonth.getMonth();\n const firstDayOfMonth = new Date(year, month, 1);\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n const leadingEmpty = firstDayOfMonth.getDay();\n\n const months = Array.from({ length: 12 }, (_, i) => ({\n value: i,\n label: new Intl.DateTimeFormat(\"pt-BR\", { month: \"long\" }).format(\n new Date(2000, i, 1)\n ),\n }));\n\n const years = Array.from(\n { length: yearRange.end - yearRange.start + 1 },\n (_, i) => yearRange.start + i\n );\n\n const handleMonthChange = (newMonth: number) => {\n setViewMonth(new Date(year, newMonth, 1));\n };\n\n const handleYearChange = (newYear: number) => {\n setViewMonth(new Date(newYear, month, 1));\n };\n\n const handleDayClick = (day: Date) => {\n if (disabled || isDisabledByBounds(day, min, max)) return;\n if (!rangeValue || !rangeValue.start || rangeValue.end) {\n // Start new range\n setRangeValue({ start: day, end: null });\n } else {\n // Complete range\n if (isBeforeDay(day, rangeValue.start)) {\n setRangeValue({ start: day, end: rangeValue.start });\n } else {\n setRangeValue({ start: rangeValue.start, end: day });\n }\n setOpen(false);\n }\n };\n\n const displayValue =\n rangeValue?.start && rangeValue?.end\n ? `${format(rangeValue.start)} - ${format(rangeValue.end)}`\n : rangeValue?.start\n ? format(rangeValue.start)\n : \"\";\n\n return (\n <DatePickerContext.Provider value={{ invalid }}>\n <div\n ref={rootRef}\n className={cn(\"relative inline-flex w-full\", className)}\n >\n <button\n type=\"button\"\n disabled={disabled}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n aria-controls={open ? contentId : undefined}\n data-invalid={invalid || undefined}\n data-slot=\"date-picker-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n {...(!displayValue && { \"data-placeholder\": \"\" })}\n className={cn(\n \"shadow-xs peer flex h-12 w-full items-center justify-between gap-2 rounded-md border-2 border-gray-stroke-muted bg-surface-card px-4 py-3 text-left text-md text-gray-foreground outline-none transition-[color,box-shadow] enabled:hover:border-gray-stroke-emphasis enabled:hover:ring-[3px] enabled:hover:ring-state-focus disabled:pointer-events-none disabled:bg-gray-background-soft-muted disabled:text-gray-foreground-muted data-[invalid]:border-feedback-error-stroke data-[invalid]:enabled:hover:border-feedback-error-stroke data-[invalid]:enabled:hover:ring-[3px] data-[invalid]:enabled:hover:ring-state-error max-sm:h-14 max-sm:text-base\",\n open && \"border-gray-stroke-emphasis ring-[3px] ring-state-focus\",\n displayValue &&\n !invalid &&\n \"border-gray-stroke-emphasis ring-[3px] ring-state-focus\",\n displayValue &&\n invalid &&\n \"border-feedback-error-stroke ring-[3px] ring-state-error\",\n \"group-has-[[data-slot=date-picker-label]]:data-[placeholder]:text-transparent\",\n inputClassName\n )}\n onClick={handleTriggerClick}\n {...props}\n >\n <span className=\"truncate\">{displayValue || placeholder}</span>\n <Calendar\n size={20}\n strokeWidth={1.6}\n className=\"shrink-0 !text-gray-foreground\"\n aria-hidden=\"true\"\n />\n </button>\n\n {open && (\n <div\n id={contentId}\n role=\"dialog\"\n aria-label=\"Calendário\"\n data-slot=\"date-picker-content\"\n style={mobilePopoverStyle ?? undefined}\n className={cn(\n \"absolute left-0 z-50 w-[min(20rem,100%)] overflow-hidden rounded-md border border-gray-stroke-muted bg-surface-elevated p-3 shadow-md max-sm:left-1/2 max-sm:w-[min(32rem,calc(100vw-1rem))] max-sm:-translate-x-1/2\",\n placement === \"below\" && \"top-[calc(100%+8px)]\",\n placement === \"above\" && \"bottom-[calc(100%+8px)]\",\n contentClassName\n )}\n >\n <div className=\"mb-3 flex items-center justify-center gap-2\">\n <button\n type=\"button\"\n className=\"inline-flex size-8 items-center justify-center rounded-md hover:bg-secondary-background-soft-emphasis max-sm:size-10\"\n onClick={() => setViewMonth((m) => addMonths(m, -1))}\n aria-label=\"Mês anterior\"\n >\n <ChevronLeftMd size={18} strokeWidth={1.8} />\n </button>\n\n <div className=\"flex items-center gap-2\">\n <div className=\"relative\">\n <select\n value={month}\n onChange={(e) => handleMonthChange(Number(e.target.value))}\n className=\"min-w-[7rem] appearance-none rounded-md border border-gray-stroke-muted bg-surface-card py-1 pl-2 pr-7 text-sm font-medium capitalize text-gray-foreground outline-none hover:border-gray-stroke-emphasis focus:border-gray-stroke-emphasis focus:ring-2 focus:ring-state-focus max-sm:min-w-[8rem] max-sm:py-2 max-sm:text-base\"\n aria-label=\"Selecionar mês\"\n >\n {months.map((m) => (\n <option\n key={m.value}\n value={m.value}\n className=\"capitalize\"\n >\n {m.label}\n </option>\n ))}\n </select>\n <ChevronDown\n size={16}\n strokeWidth={1.8}\n className=\"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-gray-foreground\"\n aria-hidden\n />\n </div>\n\n {showYearSelector ? (\n <div className=\"relative\">\n <select\n value={year}\n onChange={(e) => handleYearChange(Number(e.target.value))}\n className=\"min-w-[5rem] appearance-none rounded-md border border-gray-stroke-muted bg-surface-card py-1 pl-2 pr-7 text-sm font-medium text-gray-foreground outline-none hover:border-gray-stroke-emphasis focus:border-gray-stroke-emphasis focus:ring-2 focus:ring-state-focus max-sm:min-w-[5.5rem] max-sm:py-2 max-sm:text-base\"\n aria-label=\"Selecionar ano\"\n >\n {years.map((y) => (\n <option key={y} value={y}>\n {y}\n </option>\n ))}\n </select>\n <ChevronDown\n size={16}\n strokeWidth={1.8}\n className=\"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-gray-foreground\"\n aria-hidden\n />\n </div>\n ) : (\n <div className=\"text-sm font-semibold text-gray-foreground\">\n {year}\n </div>\n )}\n </div>\n\n <button\n type=\"button\"\n className=\"inline-flex size-8 items-center justify-center rounded-md hover:bg-secondary-background-soft-emphasis max-sm:size-10\"\n onClick={() => setViewMonth((m) => addMonths(m, 1))}\n aria-label=\"Próximo mês\"\n >\n <ChevronRightMd size={18} strokeWidth={1.8} />\n </button>\n </div>\n\n <div className=\"grid grid-cols-7 gap-1 text-center text-xs font-medium text-gray-foreground-muted max-sm:text-sm\">\n <div>Dom</div>\n <div>Seg</div>\n <div>Ter</div>\n <div>Qua</div>\n <div>Qui</div>\n <div>Sex</div>\n <div>Sáb</div>\n </div>\n\n <div className=\"mt-2 grid grid-cols-7 gap-1\">\n {Array.from({ length: leadingEmpty }).map((_, i) => (\n <div key={`empty-${i}`} />\n ))}\n\n {Array.from({ length: daysInMonth }).map((_, i) => {\n const day = new Date(year, month, i + 1);\n const isStartDate =\n rangeValue?.start && isSameDay(day, rangeValue.start);\n const isEndDate =\n rangeValue?.end && isSameDay(day, rangeValue.end);\n const isInRange =\n rangeValue?.start &&\n rangeValue?.end &&\n isAfterDay(day, rangeValue.start) &&\n isBeforeDay(day, rangeValue.end);\n const isToday = isSameDay(day, today);\n const isDisabled =\n disabled || isDisabledByBounds(day, min, max);\n\n return (\n <button\n key={day.toISOString()}\n type=\"button\"\n disabled={isDisabled}\n onClick={() => handleDayClick(day)}\n className={cn(\n \"inline-flex h-9 w-full items-center justify-center rounded-md text-sm font-medium outline-none transition-colors hover:bg-secondary-background-soft-emphasis disabled:pointer-events-none disabled:opacity-50\",\n isToday && \"ring-1 ring-gray-stroke-emphasis\",\n isInRange && \"bg-primary-background-soft\",\n (isStartDate || isEndDate) &&\n \"bg-primary-background-fill text-primary-foreground-onfill hover:bg-primary-background-fill-emphasis\"\n )}\n aria-pressed={isStartDate || isEndDate || undefined}\n >\n {i + 1}\n </button>\n );\n })}\n </div>\n\n <div className=\"mt-3 flex items-center justify-between gap-2\">\n <button\n type=\"button\"\n className=\"rounded-md px-2 py-1 text-xs font-medium text-gray-foreground hover:bg-secondary-background-soft-emphasis\"\n onClick={() => {\n setRangeValue({ start: today, end: today });\n setOpen(false);\n }}\n disabled={disabled || isDisabledByBounds(today, min, max)}\n >\n Hoje\n </button>\n\n <button\n type=\"button\"\n className=\"rounded-md px-2 py-1 text-xs font-medium text-gray-foreground hover:bg-secondary-background-soft-emphasis\"\n onClick={() => setRangeValue(null)}\n disabled={disabled || !rangeValue}\n >\n Limpar\n </button>\n </div>\n </div>\n )}\n </div>\n {children}\n </DatePickerContext.Provider>\n );\n}\n\nexport {\n DatePicker,\n DateRangePicker,\n DatePickerWrapper,\n DatePickerLabel,\n DatePickerText,\n};\nexport type {\n DatePickerProps,\n DatePickerValue,\n DateRangePickerProps,\n DateRangeValue,\n DatePickerLabelProps,\n};\n","\"use client\";\n\nimport {\n cloneElement,\n useCallback,\n useRef,\n useState,\n type ChangeEvent,\n type ComponentProps,\n type HTMLAttributes,\n type ReactElement,\n} from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport {\n ChevronDown,\n Hide,\n Lock,\n Mail,\n Show,\n TriangleWarning,\n} from \"@medway-ui/icons\";\nimport { cn } from \"@/lib/utils\";\n\nexport type InputType = \"text\" | \"email\" | \"numeric\" | \"password\";\n\nexport interface InputProps\n extends Omit<ComponentProps<\"input\">, \"type\" | \"size\">,\n VariantProps<typeof inputVariants> {\n type?: InputType;\n invalid?: boolean;\n iconLeft?: ReactElement;\n iconRight?: ReactElement;\n}\n\nexport interface InputPasswordProps\n extends Omit<ComponentProps<\"input\">, \"type\" | \"size\">,\n VariantProps<typeof inputVariants> {\n invalid?: boolean;\n}\n\nexport interface InputNumericProps\n extends Omit<ComponentProps<\"input\">, \"type\" | \"onChange\" | \"size\">,\n VariantProps<typeof inputVariants> {\n invalid?: boolean;\n onChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n iconLeft?: ReactElement;\n}\n\nexport interface InputLabelProps extends HTMLAttributes<HTMLLabelElement> {\n htmlFor?: string;\n}\n\nexport interface InputTextProps extends HTMLAttributes<HTMLSpanElement> {\n invalid?: boolean;\n}\n\nconst INPUT_ICON_SIZE_LG = 24;\nconst INPUT_ICON_SIZE_MD = 20;\nconst INPUT_ICON_STROKE_WIDTH = 1.6;\nconst CHEVRON_SIZE_LG = 10;\nconst CHEVRON_SIZE_MD = 8;\n\nfunction InputWrapper({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"group relative flex flex-col gap-2\", className)}\n data-slot=\"input-wrapper\"\n {...props}\n />\n );\n}\n\nfunction InputField({ className, ...props }: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"relative\", className)}\n data-slot=\"input-field\"\n {...props}\n />\n );\n}\n\nfunction InputLabel({ className, children, ...props }: InputLabelProps) {\n return (\n <label\n className={cn(\n \"pointer-events-none absolute start-3 top-0 z-10 origin-left -translate-y-1/2 bg-surface-card px-1 text-xs font-medium text-gray-foreground transition-all duration-200 ease-out\",\n \"group-has-[[data-slot=input][disabled]]:bg-transparent\",\n \"group-has-[[data-slot=input]:placeholder-shown:not(:focus)]:start-4 group-has-[[data-slot=input]:placeholder-shown:not(:focus)]:top-1/2 group-has-[[data-slot=input]:placeholder-shown:not(:focus)]:px-0 group-has-[[data-slot=input]:placeholder-shown:not(:focus)]:text-md group-has-[[data-slot=input]:placeholder-shown:not(:focus)]:font-normal\",\n \"group-has-[[data-slot=input][data-empty]:not(:focus)]:start-4 group-has-[[data-slot=input][data-empty]:not(:focus)]:top-1/2 group-has-[[data-slot=input][data-empty]:not(:focus)]:px-0 group-has-[[data-slot=input][data-empty]:not(:focus)]:text-md group-has-[[data-slot=input][data-empty]:not(:focus)]:font-normal\",\n \"group-has-[[data-slot=input][data-size=md]]:group-has-[[data-slot=input]:placeholder-shown:not(:focus)]:!text-sm\",\n \"group-has-[[data-slot=input][data-size=md]]:group-has-[[data-slot=input][data-empty]:not(:focus)]:!text-sm\",\n \"group-has-[[data-slot=input][aria-invalid=true]]:text-feedback-error-foreground\",\n \"group-has-[[data-slot=input-start-icon]]:group-has-[[data-slot=input]:placeholder-shown:not(:focus)]:start-12\",\n \"group-has-[[data-slot=input-start-icon]]:group-has-[[data-slot=input][data-empty]:not(:focus)]:start-12\",\n className\n )}\n data-slot=\"input-label\"\n {...props}\n >\n {children}\n </label>\n );\n}\n\nfunction InputText({ className, invalid = false, ...props }: InputTextProps) {\n return (\n <span\n className={cn(\n \"-mt-1 text-xs\",\n invalid ? \"text-feedback-error-foreground\" : \"text-gray-foreground\",\n className\n )}\n data-slot=\"input-text\"\n {...props}\n />\n );\n}\n\nfunction InputAdornment({\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"group/adornment relative flex w-full\", className)}\n data-slot=\"input-adornment\"\n {...props}\n />\n );\n}\n\nfunction InputStartIcon({\n className,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n className={cn(\n \"pointer-events-none absolute start-4 top-1/2 z-10 flex -translate-y-1/2 items-center pr-3 text-gray-foreground\",\n className\n )}\n data-slot=\"input-start-icon\"\n {...props}\n />\n );\n}\n\nfunction InputEndIcon({\n className,\n ...props\n}: HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n className={cn(\n \"absolute end-4 top-1/2 z-10 flex -translate-y-1/2 items-center text-gray-foreground\",\n className\n )}\n data-slot=\"input-end-icon\"\n {...props}\n />\n );\n}\n\nconst inputVariants = cva(\n [\n \"shadow-xs w-full min-w-0 rounded-md border-2 border-gray-stroke-muted bg-surface-card px-4 py-3 text-gray-foreground outline-none transition-[color,box-shadow] selection:bg-secondary-background-soft-emphasis selection:text-gray-foreground placeholder:text-gray-foreground-emphasis hover:border-gray-stroke-emphasis hover:ring-[3px] hover:ring-state-focus disabled:cursor-default disabled:bg-gray-background-soft-muted disabled:placeholder:text-gray-foreground-muted disabled:hover:border-gray-stroke-muted disabled:hover:ring-0\",\n \"focus-visible:border-gray-stroke-emphasis focus-visible:ring-[3px] focus-visible:ring-state-focus\",\n \"aria-[invalid]:border-feedback-error-stroke aria-[invalid]:hover:ring-state-error aria-[invalid]:focus-visible:ring-state-error\",\n \"aria-[invalid]:[&:not(:placeholder-shown)]:border-feedback-error-stroke aria-[invalid]:[&:not(:placeholder-shown)]:ring-[3px] aria-[invalid]:[&:not(:placeholder-shown)]:ring-state-error\",\n \"group-has-[[data-slot=input-label]]:py-3 group-has-[[data-slot=input-label]]:placeholder:text-transparent\",\n \"[&:not(:placeholder-shown)]:border-gray-stroke-emphasis [&:not(:placeholder-shown)]:ring-[3px] [&:not(:placeholder-shown)]:ring-state-focus\",\n \"group-has-[[data-slot=input-end-icon]]/adornment:pr-10\",\n ],\n {\n variants: {\n size: {\n lg: [\n \"h-12 max-h-12 text-md\",\n \"group-has-[[data-slot=input-label]]:h-14\",\n \"group-has-[[data-slot=input-start-icon]]/adornment:pl-[48px]\",\n ],\n md: [\n \"h-10 max-h-10 text-sm\",\n \"group-has-[[data-slot=input-label]]:h-11\",\n \"group-has-[[data-slot=input-start-icon]]/adornment:pl-[44px]\",\n ],\n },\n },\n defaultVariants: {\n size: \"lg\",\n },\n }\n);\n\nconst TYPE_DEFAULT_ICON_LEFT: Partial<Record<InputType, ReactElement>> = {\n email: <Mail />,\n};\n\nconst TYPE_DEFAULT_ICON_RIGHT: Partial<Record<InputType, ReactElement>> = {};\n\nfunction applyInputIconSize(\n icon: ReactElement,\n size: VariantProps<typeof inputVariants>[\"size\"] = \"lg\"\n): ReactElement {\n const iconSize = size === \"md\" ? INPUT_ICON_SIZE_MD : INPUT_ICON_SIZE_LG;\n return cloneElement(icon, {\n size: iconSize,\n strokeWidth: INPUT_ICON_STROKE_WIDTH,\n } as Record<string, unknown>);\n}\n\nfunction InputPassword({\n className,\n invalid = false,\n size = \"lg\",\n disabled,\n ...props\n}: InputPasswordProps) {\n const [visible, setVisible] = useState(false);\n\n return (\n <InputAdornment>\n <InputStartIcon>{applyInputIconSize(<Lock />, size)}</InputStartIcon>\n <input\n type={visible ? \"text\" : \"password\"}\n data-slot=\"input\"\n data-size={size}\n disabled={disabled}\n className={cn(inputVariants({ size, className }))}\n aria-invalid={invalid || props[\"aria-invalid\"] ? true : undefined}\n {...props}\n />\n <InputEndIcon>\n <button\n type=\"button\"\n tabIndex={-1}\n disabled={disabled}\n onClick={() => setVisible((v) => !v)}\n className={cn(\n \"text-gray-foreground transition-colors hover:text-gray-foreground-emphasis disabled:cursor-default disabled:opacity-50\"\n )}\n data-invalid={invalid}\n aria-label={visible ? \"Hide password\" : \"Show password\"}\n >\n {applyInputIconSize(visible ? <Hide /> : <Show />, size)}\n </button>\n </InputEndIcon>\n </InputAdornment>\n );\n}\n\nfunction InputNumeric({\n className,\n invalid = false,\n size = \"lg\",\n iconLeft,\n min,\n value,\n defaultValue,\n onChange,\n disabled,\n ...props\n}: InputNumericProps) {\n const isControlled = value !== undefined;\n const [internalValue, setInternalValue] = useState(() => defaultValue ?? \"\");\n\n const inputRef = useRef<HTMLInputElement>(null);\n const displayValue = isControlled\n ? value === \"\"\n ? \"\"\n : String(value)\n : internalValue;\n const numericValue = displayValue === \"\" ? NaN : Number(displayValue);\n const allowNegative = min !== undefined && Number(min) < 0;\n\n const sanitizeToNumbers = useCallback(\n (raw: string): string => {\n const allowNegative = min !== undefined && Number(min) < 0;\n let s = raw.replace(/[^\\d.-]/g, \"\");\n if (!allowNegative) s = s.replace(/-/g, \"\");\n else s = (s.startsWith(\"-\") ? \"-\" : \"\") + s.replace(/-/g, \"\");\n const firstDot = s.indexOf(\".\");\n if (firstDot === -1) return s;\n return (\n s.slice(0, firstDot + 1) + s.slice(firstDot + 1).replace(/\\./g, \"\")\n );\n },\n [min]\n );\n\n const handleChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const next = sanitizeToNumbers(e.target.value);\n if (next === e.target.value) {\n if (isControlled) onChange?.(e);\n else {\n setInternalValue(next);\n onChange?.({ ...e, target: { ...e.target, value: next } });\n }\n } else {\n const syntheticEvent = { ...e, target: { ...e.target, value: next } };\n if (!isControlled) setInternalValue(next);\n onChange?.(syntheticEvent);\n }\n },\n [isControlled, onChange, sanitizeToNumbers]\n );\n\n const minValue = min !== undefined ? Number(min) : undefined;\n\n const getNextValue = useCallback(\n (delta: number): number => {\n const base = Number.isNaN(numericValue) ? (minValue ?? 0) : numericValue;\n const next = base + delta;\n if (minValue !== undefined && next < minValue) return minValue;\n return next;\n },\n [numericValue, minValue]\n );\n\n const handleStep = useCallback(\n (delta: number) => {\n const next = getNextValue(delta);\n const nextStr = String(next);\n const input = inputRef.current;\n const targetLike = input\n ? {\n value: nextStr,\n name: input.name,\n id: input.id,\n form: input.form,\n type: input.type,\n }\n : { value: nextStr };\n const syntheticEvent = {\n type: \"change\" as const,\n target: targetLike as HTMLInputElement,\n currentTarget: input,\n bubbles: true,\n cancelable: false,\n nativeEvent: {} as Event,\n } as ChangeEvent<HTMLInputElement>;\n if (!isControlled) setInternalValue(nextStr);\n onChange?.(syntheticEvent);\n },\n [getNextValue, isControlled, onChange]\n );\n\n return (\n <InputAdornment>\n {iconLeft != null && (\n <InputStartIcon>{applyInputIconSize(iconLeft, size)}</InputStartIcon>\n )}\n <input\n ref={inputRef}\n type=\"text\"\n inputMode=\"decimal\"\n pattern={allowNegative ? \"-?[0-9]*\" : \"[0-9]*\"}\n data-slot=\"input\"\n data-size={size}\n data-empty={displayValue === \"\" ? \"\" : undefined}\n min={min}\n value={displayValue}\n onChange={handleChange}\n disabled={disabled}\n className={cn(\n inputVariants({ size }),\n \"pr-12\",\n \"[appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none\",\n className\n )}\n aria-invalid={invalid || props[\"aria-invalid\"] ? true : undefined}\n {...props}\n />\n <div className=\"absolute end-0 top-0 flex h-full flex-col items-center justify-center gap-0.5 px-4\">\n <button\n type=\"button\"\n tabIndex={-1}\n disabled={disabled}\n onClick={() => handleStep(1)}\n className=\"flex items-center justify-center rounded-full !p-0.5 px-2 text-gray-foreground transition-colors disabled:cursor-default disabled:opacity-50 disabled:hover:bg-transparent\"\n aria-label=\"Increase value\"\n >\n <ChevronDown\n className=\"rotate-180\"\n size={size === \"md\" ? CHEVRON_SIZE_MD : CHEVRON_SIZE_LG}\n strokeWidth={3}\n />\n </button>\n <button\n type=\"button\"\n tabIndex={-1}\n disabled={disabled}\n onClick={() => handleStep(-1)}\n className=\"flex items-center justify-center rounded-full !p-0.5 px-2 text-gray-foreground transition-colors disabled:cursor-default disabled:opacity-50 disabled:hover:bg-transparent\"\n aria-label=\"Decrease value\"\n >\n <ChevronDown\n size={size === \"md\" ? CHEVRON_SIZE_MD : CHEVRON_SIZE_LG}\n strokeWidth={3}\n />\n </button>\n </div>\n </InputAdornment>\n );\n}\n\nfunction Input({\n className,\n type = \"text\",\n size = \"lg\",\n invalid = false,\n iconLeft,\n iconRight,\n ...props\n}: InputProps) {\n if (type === \"numeric\") {\n return (\n <InputNumeric\n className={className}\n size={size}\n invalid={invalid}\n iconLeft={iconLeft}\n {...props}\n />\n );\n }\n\n if (type === \"password\") {\n return (\n <InputPassword\n className={className}\n size={size}\n invalid={invalid}\n {...props}\n />\n );\n }\n\n const resolvedIconLeft = iconLeft ?? TYPE_DEFAULT_ICON_LEFT[type];\n const showInvalidRightIcon = (type === \"text\" || type === \"email\") && invalid;\n const resolvedIconRight = showInvalidRightIcon ? (\n <TriangleWarning />\n ) : (\n (iconRight ?? TYPE_DEFAULT_ICON_RIGHT[type])\n );\n const hasIcons = resolvedIconLeft != null || resolvedIconRight != null;\n\n if (hasIcons) {\n return (\n <div\n className=\"group/adornment relative flex w-full\"\n data-slot=\"input-adornment\"\n >\n {resolvedIconLeft != null && (\n <InputStartIcon>\n {applyInputIconSize(resolvedIconLeft, size)}\n </InputStartIcon>\n )}\n <input\n type=\"text\"\n data-slot=\"input\"\n data-size={size}\n className={cn(inputVariants({ size, className }))}\n aria-invalid={invalid || props[\"aria-invalid\"] ? true : undefined}\n {...props}\n />\n {resolvedIconRight != null && (\n <InputEndIcon\n className={\n showInvalidRightIcon\n ? \"text-feedback-error-foreground\"\n : undefined\n }\n >\n {applyInputIconSize(resolvedIconRight, size)}\n </InputEndIcon>\n )}\n </div>\n );\n }\n\n return (\n <input\n type=\"text\"\n data-slot=\"input\"\n data-size={size}\n className={cn(inputVariants({ size, className }))}\n aria-invalid={invalid || props[\"aria-invalid\"] ? true : undefined}\n {...props}\n />\n );\n}\n\nexport {\n Input,\n InputAdornment,\n applyInputIconSize,\n InputEndIcon,\n InputField,\n InputLabel,\n InputNumeric,\n InputPassword,\n InputStartIcon,\n InputText,\n InputWrapper,\n inputVariants,\n};\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { Label as LabelPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface LabelProps\n extends ComponentProps<typeof LabelPrimitive.Root>,\n VariantProps<typeof labelVariants> {\n block?: boolean;\n}\n\nconst labelVariants = cva(\n \"inline-flex select-none items-center gap-3 text-sm font-medium leading-none disabled:cursor-default disabled:text-gray-foreground-muted peer-disabled:cursor-default peer-disabled:text-gray-foreground-muted group-data-[disabled]:pointer-events-none group-data-[disabled]:text-gray-foreground-muted whitespace-nowrap transition-all shrink-0 [&_svg]:shrink-0 hover:cursor-pointer focus:outline-0\",\n {\n variants: {\n variant: {\n regular: \"text-gray-foreground hover:text-gray-foreground-emphasis\",\n },\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-md\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n size: \"md\",\n },\n }\n);\n\nfunction Label({ className, variant, size, block, ...props }: LabelProps) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n className,\n labelVariants({ className, size, variant }),\n block &&\n \"flex flex-col items-start justify-center gap-4 whitespace-normal rounded-lg border border-gray-stroke-muted p-4 font-normal\"\n )}\n {...props}\n />\n );\n}\n\nexport { Label, labelVariants };\nexport type { LabelProps };\n","\"use client\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface LogoProps {\n width?: string | number;\n height?: string | number;\n className?: string;\n svgClassName?: string;\n}\n\nfunction Logo({\n width = 171,\n height = 36,\n className,\n svgClassName,\n}: LogoProps) {\n return (\n <svg\n className={cn(\"dark:brightness-0 dark:invert\", className)}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 171 36\"\n width={width}\n height={height}\n >\n <path\n fill=\"#01CFB5\"\n d=\"M170.246 8.366 158.874 34.77c-.317.744-1.131 1.23-2.038 1.23h-3.47c-1.552 0-2.606-1.377-2.011-2.628l2.875-6.066-8.476-18.918c-.563-1.246.492-2.59 2.027-2.59h3.541c.929 0 1.755.513 2.061 1.278l4.688 11.864h.093l4.464-11.836c.295-.782 1.126-1.306 2.066-1.306h3.514c1.524 0 2.573 1.322 2.038 2.568Zm-24.869 8.623v10.42a.823.823 0 0 1-.82.826h-3.956a.818.818 0 0 1-.82-.825v-.667a11.207 11.207 0 0 1-5.699 1.541c-6.235 0-11.295-5.054-11.295-11.295 0-6.24 5.06-11.295 11.295-11.295 2.076 0 4.027.557 5.694 1.541v-.006a11.295 11.295 0 0 1 5.601 9.76Zm-5.984.005c0-2.94-2.377-5.327-5.306-5.327-2.929 0-5.306 2.388-5.306 5.327 0 2.94 2.377 5.323 5.306 5.323 2.929 0 5.306-2.383 5.306-5.323Zm5.793.4c.005-.099.005-.192.005-.29 0-.098-.005-.191-.005-.284v.573Zm-26.17-11.722h-4.355a.977.977 0 0 0-.978.978v11.902a3.416 3.416 0 0 1-6.831 0V6.65a.977.977 0 0 0-.978-.978h-4.355a.977.977 0 0 0-.978.978v11.902a3.417 3.417 0 0 1-5.83 2.415c-.618-.617-1-1.47-1-2.415V6.65a.977.977 0 0 0-.979-.978h-4.355a.977.977 0 0 0-.978.978v13.088h-.006c0 .781.115 1.535.334 2.256 1.098 3.623 4.765 6.29 9.13 6.29 2.739 0 5.209-1.054 6.935-2.732 1.689 1.83 4.197 2.994 7 2.994 4.53 0 8.295-3.043 9.06-7.043.093-.487.143-.99.143-1.497V6.65a.978.978 0 0 0-.979-.978Z\"\n />\n <path\n fill=\"#00205B\"\n className={svgClassName}\n d=\"M65.557 7.694c-.639.399-1.235.863-1.781 1.388.54-.536 1.137-1 1.781-1.388ZM82.727.831v26.617a.82.82 0 0 1-.82.825h-3.956a.77.77 0 0 1-.415-.12.81.81 0 0 1-.405-.71v-.755a11.018 11.018 0 0 1-5.689 1.574c-5.47 0-10.01-3.967-10.923-9.191-.016-.098-.038-.197-.054-.3-.011-.088-.028-.18-.039-.268 0-.028-.005-.055-.01-.088-.006-.06-.012-.12-.023-.18-.005-.076-.01-.159-.021-.24v-.028c-.006-.093-.017-.18-.017-.273a9.516 9.516 0 0 1 0-1.11l.017-.273v-.027l.032-.311c0-.033.006-.066.006-.099a.665.665 0 0 0 .01-.104c.012-.087.023-.18.039-.267.016-.11.033-.213.055-.323a11.09 11.09 0 0 1 3.17-6.005 11.548 11.548 0 0 1 1.88-1.48 9.127 9.127 0 0 1 1.31-.646c1.039-.42 2.186-.65 3.405-.683-.071 0-.142.011-.213.011a9.587 9.587 0 0 0-3.203.672c-.453.18-.896.4-1.311.65.393-.245.809-.459 1.23-.655-.006 0-.011.005-.017.005l.033-.016c-.011.005-.022.005-.038.01a8.79 8.79 0 0 1 .519-.229c-.039.017-.071.033-.104.05.038-.017.07-.033.11-.05.087-.033.174-.065.267-.098.087-.038.175-.066.268-.099.033-.016.065-.021.098-.032.055-.017.104-.039.158-.055.11-.033.214-.066.323-.098a9.584 9.584 0 0 1 .607-.153c.092-.022.196-.044.295-.066.098-.016.196-.033.295-.055l.295-.049h.005a2.82 2.82 0 0 0 .197-.027c.07-.005.131-.022.202-.022.087-.01.18-.016.268-.022.082-.01.164-.01.246-.016.07 0 .142-.011.213-.011.136-.006.273-.006.415-.006.093 0 .191.006.284.006h.12c.083 0 .159.005.236.01.098.006.196.012.295.023.087.005.174.01.256.022.05.005.099.01.142.016.088.01.175.022.257.038l.312.05c1.06.185 2.07.519 3.005.983v.115c-.038-.022-.076-.038-.12-.06.038.022.077.038.12.065v-.12c.268.131.525.273.77.426V.825a.827.827 0 0 1 .82-.825h3.957a.838.838 0 0 1 .836.83Zm-5.694 16.213a5.32 5.32 0 0 0-5.312-5.323c-2.929 0-5.306 2.388-5.306 5.323 0 2.94 2.377 5.322 5.306 5.322a5.316 5.316 0 0 0 5.312-5.322Zm-19.59.431c0 .41-.017.765-.066 1.132a.597.597 0 0 1-.596.524H42.284a.598.598 0 0 0-.574.77c.623 1.94 2.46 3.192 4.749 3.192 1.607 0 2.678-.574 3.656-1.749a.614.614 0 0 1 .47-.213h5.191c.448 0 .738.47.53.869-2.093 4.033-5.705 6.372-9.847 6.372-6.06 0-11.137-5.055-11.137-11.088 0-6.033 4.847-11.235 11.022-11.235h.006c6.284 0 11.093 4.94 11.093 11.426Zm-6.563-3.393c-.738-1.683-2.437-2.754-4.541-2.754-1.973 0-3.721 1.027-4.47 2.754a.594.594 0 0 0 .552.825h7.907a.593.593 0 0 0 .552-.825ZM23.13 5.803c-2.738 0-5.207 1.055-6.934 2.733-1.689-1.831-4.197-2.995-7-2.995-4.53 0-8.295 3.044-9.06 7.044-.088.486-.137.989-.137 1.497v13.35c0 .54.437.978.978.978h4.355a.977.977 0 0 0 .978-.978V15.618c0-1.65 1.328-3.263 2.962-3.476a3.398 3.398 0 0 1 2.87.973c.617.617 1 1.47 1 2.415v11.902c0 .54.436.978.977.978h4.355a.977.977 0 0 0 .979-.978V15.618c0-1.65 1.327-3.263 2.961-3.476a3.398 3.398 0 0 1 2.87.973c.617.617 1 1.47 1 2.415v11.902c0 .54.436.978.977.978h4.355a.977.977 0 0 0 .979-.978V14.344a7.75 7.75 0 0 0-.334-2.257c-1.098-3.623-4.77-6.284-9.13-6.284Z\"\n />\n </svg>\n );\n}\n\nfunction LogoShort({\n width = 60,\n height = 67,\n className,\n svgClassName,\n}: LogoProps) {\n return (\n <svg\n className={cn(\"dark:brightness-0 dark:invert\", className)}\n width={width}\n height={height}\n viewBox=\"0 0 60 67\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill=\"#00205B\"\n className={svgClassName}\n d=\"M42.33 10.8959C37.32 10.8959 32.8 12.8259 29.64 15.8959C26.55 12.5459 21.96 10.4159 16.83 10.4159C8.54 10.4159 1.65 15.9859 0.25 23.3059C0.09 24.1959 0 25.1159 0 26.0459V50.4759C0 51.4659 0.8 52.2659 1.79 52.2659H9.76C10.75 52.2659 11.55 51.4659 11.55 50.4759V28.8559C11.55 25.8359 13.98 22.8859 16.97 22.4959C19.03 22.2259 20.91 22.9659 22.22 24.2759C23.35 25.4059 24.05 26.9659 24.05 28.6959V50.4759C24.05 51.4659 24.85 52.2659 25.84 52.2659H33.81C34.8 52.2659 35.6 51.4659 35.6 50.4759V28.8559C35.6 25.8359 38.03 22.8859 41.02 22.4959C43.08 22.2259 44.96 22.9659 46.27 24.2759C47.4 25.4059 48.1 26.9659 48.1 28.6959V50.4759C48.1 51.4659 48.9 52.2659 49.89 52.2659H57.86C58.85 52.2659 59.65 51.4659 59.65 50.4759V26.5259C59.65 25.0959 59.44 23.7159 59.04 22.3959C57.03 15.7659 50.31 10.8959 42.33 10.8959Z\"\n />\n </svg>\n );\n}\n\nexport { Logo, LogoShort };\n","export const content = [\n \"./src/**/*.{js,ts,jsx,tsx,md,mdx}\",\n \"./node_modules/@medway-ui/core/**/*.{js,ts,jsx,tsx}\",\n];\n\nexport const colors = {\n background: \"var(--color-background)\",\n foreground: \"var(--color-foreground)\",\n ring: \"var(--color-ring)\",\n content: {\n title: \"var(--color-content-title)\",\n paragraph: \"var(--color-content-paragraph)\",\n link: \"var(--color-content-link)\",\n },\n state: {\n hover: \"var(--color-state-hover)\",\n focus: \"var(--color-state-focus)\",\n active: \"var(--color-state-active)\",\n error: \"var(--color-state-error)\",\n },\n feedback: {\n success: {\n foreground: \"var(--color-feedback-success-foreground)\",\n \"foreground-emphasis\":\n \"var(--color-feedback-success-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-feedback-success-foreground-onfill)\",\n stroke: \"var(--color-feedback-success-stroke)\",\n \"stroke-emphasis\": \"var(--color-feedback-success-stroke-emphasis)\",\n \"background-fill\": \"var(--color-feedback-success-background-fill)\",\n \"background-fill-emphasis\":\n \"var(--color-feedback-success-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-feedback-success-background-soft)\",\n \"background-soft-emphasis\":\n \"var(--color-feedback-success-background-soft-emphasis)\",\n \"background-soft-muted\":\n \"var(--color-feedback-success-background-soft-muted)\",\n },\n error: {\n foreground: \"var(--color-feedback-error-foreground)\",\n \"foreground-emphasis\": \"var(--color-feedback-error-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-feedback-error-foreground-onfill)\",\n stroke: \"var(--color-feedback-error-stroke)\",\n \"stroke-emphasis\": \"var(--color-feedback-error-stroke-emphasis)\",\n \"background-fill\": \"var(--color-feedback-error-background-fill)\",\n \"background-fill-emphasis\":\n \"var(--color-feedback-error-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-feedback-error-background-soft)\",\n \"background-soft-emphasis\":\n \"var(--color-feedback-error-background-soft-emphasis)\",\n \"background-soft-muted\":\n \"var(--color-feedback-error-background-soft-muted)\",\n },\n warning: {\n foreground: \"var(--color-feedback-warning-foreground)\",\n \"foreground-emphasis\":\n \"var(--color-feedback-warning-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-feedback-warning-foreground-onfill)\",\n stroke: \"var(--color-feedback-warning-stroke)\",\n \"stroke-emphasis\": \"var(--color-feedback-warning-stroke-emphasis)\",\n \"background-fill\": \"var(--color-feedback-warning-background-fill)\",\n \"background-fill-emphasis\":\n \"var(--color-feedback-warning-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-feedback-warning-background-soft)\",\n \"background-soft-emphasis\":\n \"var(--color-feedback-warning-background-soft-emphasis)\",\n \"background-soft-muted\":\n \"var(--color-feedback-warning-background-soft-muted)\",\n },\n },\n surface: {\n elevated: \"var(--color-surface-elevated)\",\n card: \"var(--color-surface-card)\",\n navigation: \"var(--color-surface-navigation)\",\n section: \"var(--color-surface-section)\",\n page: \"var(--color-surface-page)\",\n disable: \"var(--color-surface-disable)\",\n \"settings-on\": \"var(--color-surface-settings-on)\",\n \"settings-off\": \"var(--color-surface-settings-off)\",\n },\n dropShadow: {\n \"layer-a\": \"var(--color-drop-shadow-layer-a)\",\n \"layer-b\": \"var(--color-drop-shadow-layer-b)\",\n },\n white: {\n DEFAULT: \"var(--color-white)\",\n \"80\": \"var(--color-white-80)\",\n \"48\": \"var(--color-white-48)\",\n \"24\": \"var(--color-white-24)\",\n \"16\": \"var(--color-white-16)\",\n \"12\": \"var(--color-white-12)\",\n \"8\": \"var(--color-white-8)\",\n \"6\": \"var(--color-white-6)\",\n \"4\": \"var(--color-white-4)\",\n \"0\": \"var(--color-white-0)\",\n },\n black: {\n DEFAULT: \"var(--color-black)\",\n \"80\": \"var(--color-black-80)\",\n \"48\": \"var(--color-black-48)\",\n \"24\": \"var(--color-black-24)\",\n \"16\": \"var(--color-black-16)\",\n \"12\": \"var(--color-black-12)\",\n \"8\": \"var(--color-black-8)\",\n \"6\": \"var(--color-black-6)\",\n \"4\": \"var(--color-black-4)\",\n \"0\": \"var(--color-black-0)\",\n },\n gray: {\n 950: \"var(--color-gray-950)\",\n 900: \"var(--color-gray-900)\",\n 850: \"var(--color-gray-850)\",\n 800: \"var(--color-gray-800)\",\n 700: \"var(--color-gray-700)\",\n 600: \"var(--color-gray-600)\",\n 500: \"var(--color-gray-500)\",\n 450: \"var(--color-gray-450)\",\n 400: \"var(--color-gray-400)\",\n 300: \"var(--color-gray-300)\",\n 200: \"var(--color-gray-200)\",\n 150: \"var(--color-gray-150)\",\n 100: \"var(--color-gray-100)\",\n 70: \"var(--color-gray-70)\",\n 50: \"var(--color-gray-50)\",\n 30: \"var(--color-gray-30)\",\n 10: \"var(--color-gray-10)\",\n \"0\": \"var(--color-gray-0)\",\n foreground: \"var(--color-gray-foreground)\",\n \"foreground-emphasis\": \"var(--color-gray-foreground-emphasis)\",\n \"foreground-muted\": \"var(--color-gray-foreground-muted)\",\n \"foreground-onfill\": \"var(--color-gray-foreground-onfill)\",\n stroke: \"var(--color-gray-stroke)\",\n \"stroke-emphasis\": \"var(--color-gray-stroke-emphasis)\",\n \"stroke-muted\": \"var(--color-gray-stroke-muted)\",\n \"background-fill\": \"var(--color-gray-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-gray-background-fill-emphasis)\",\n \"background-fill-muted\": \"var(--color-gray-background-fill-muted)\",\n \"background-soft\": \"var(--color-gray-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-gray-background-soft-emphasis)\",\n \"background-soft-muted\": \"var(--color-gray-background-soft-muted)\",\n },\n green: {\n DEFAULT: \"var(--color-green)\",\n \"darken-1\": \"var(--color-green-darken-1)\",\n \"darken-2\": \"var(--color-green-darken-2)\",\n \"darken-3\": \"var(--color-green-darken-3)\",\n \"darken-4\": \"var(--color-green-darken-4)\",\n \"darken-5\": \"var(--color-green-darken-5)\",\n \"darken-6\": \"var(--color-green-darken-6)\",\n \"lighten-1\": \"var(--color-green-lighten-1)\",\n \"lighten-2\": \"var(--color-green-lighten-2)\",\n \"lighten-3\": \"var(--color-green-lighten-3)\",\n \"lighten-4\": \"var(--color-green-lighten-4)\",\n \"lighten-5\": \"var(--color-green-lighten-5)\",\n \"lighten-6\": \"var(--color-green-lighten-6)\",\n \"80\": \"var(--color-green-80)\",\n \"64\": \"var(--color-green-64)\",\n \"48\": \"var(--color-green-48)\",\n \"24\": \"var(--color-green-24)\",\n \"16\": \"var(--color-green-16)\",\n \"12\": \"var(--color-green-12)\",\n \"8\": \"var(--color-green-8)\",\n \"6\": \"var(--color-green-6)\",\n \"4\": \"var(--color-green-4)\",\n \"0\": \"var(--color-green-0)\",\n foreground: \"var(--color-green-foreground)\",\n \"foreground-emphasis\": \"var(--color-green-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-green-foreground-onfill)\",\n stroke: \"var(--color-green-stroke)\",\n \"stroke-emphasis\": \"var(--color-green-stroke-emphasis)\",\n \"background-fill\": \"var(--color-green-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-green-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-green-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-green-background-soft-emphasis)\",\n \"background-soft-muted\": \"var(--color-green-background-soft-muted)\",\n },\n red: {\n DEFAULT: \"var(--color-red)\",\n \"darken-1\": \"var(--color-red-darken-1)\",\n \"darken-2\": \"var(--color-red-darken-2)\",\n \"darken-3\": \"var(--color-red-darken-3)\",\n \"darken-4\": \"var(--color-red-darken-4)\",\n \"darken-5\": \"var(--color-red-darken-5)\",\n \"darken-6\": \"var(--color-red-darken-6)\",\n \"darken-7\": \"var(--color-red-darken-7)\",\n \"lighten-1\": \"var(--color-red-lighten-1)\",\n \"lighten-2\": \"var(--color-red-lighten-2)\",\n \"lighten-3\": \"var(--color-red-lighten-3)\",\n \"lighten-4\": \"var(--color-red-lighten-4)\",\n \"lighten-5\": \"var(--color-red-lighten-5)\",\n \"lighten-6\": \"var(--color-red-lighten-6)\",\n \"80\": \"var(--color-red-80)\",\n \"64\": \"var(--color-red-64)\",\n \"48\": \"var(--color-red-48)\",\n \"24\": \"var(--color-red-24)\",\n \"16\": \"var(--color-red-16)\",\n \"12\": \"var(--color-red-12)\",\n \"8\": \"var(--color-red-8)\",\n \"6\": \"var(--color-red-6)\",\n \"4\": \"var(--color-red-4)\",\n \"0\": \"var(--color-red-0)\",\n foreground: \"var(--color-red-foreground)\",\n \"foreground-emphasis\": \"var(--color-red-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-red-foreground-onfill)\",\n stroke: \"var(--color-red-stroke)\",\n \"stroke-emphasis\": \"var(--color-red-stroke-emphasis)\",\n \"background-fill\": \"var(--color-red-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-red-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-red-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-red-background-soft-emphasis)\",\n \"background-soft-muted\": \"var(--color-red-background-soft-muted)\",\n },\n yellow: {\n DEFAULT: \"var(--color-yellow)\",\n \"darken-1\": \"var(--color-yellow-darken-1)\",\n \"darken-2\": \"var(--color-yellow-darken-2)\",\n \"darken-3\": \"var(--color-yellow-darken-3)\",\n \"darken-4\": \"var(--color-yellow-darken-4)\",\n \"darken-5\": \"var(--color-yellow-darken-5)\",\n \"darken-6\": \"var(--color-yellow-darken-6)\",\n \"lighten-1\": \"var(--color-yellow-lighten-1)\",\n \"lighten-2\": \"var(--color-yellow-lighten-2)\",\n \"lighten-3\": \"var(--color-yellow-lighten-3)\",\n \"lighten-4\": \"var(--color-yellow-lighten-4)\",\n \"lighten-5\": \"var(--color-yellow-lighten-5)\",\n \"lighten-6\": \"var(--color-yellow-lighten-6)\",\n \"80\": \"var(--color-yellow-80)\",\n \"64\": \"var(--color-yellow-64)\",\n \"48\": \"var(--color-yellow-48)\",\n \"24\": \"var(--color-yellow-24)\",\n \"12\": \"var(--color-yellow-12)\",\n \"16\": \"var(--color-yellow-16)\",\n \"8\": \"var(--color-yellow-8)\",\n \"6\": \"var(--color-yellow-6)\",\n \"4\": \"var(--color-yellow-4)\",\n \"0\": \"var(--color-yellow-0)\",\n foreground: \"var(--color-yellow-foreground)\",\n \"foreground-emphasis\": \"var(--color-yellow-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-yellow-foreground-onfill)\",\n stroke: \"var(--color-yellow-stroke)\",\n \"stroke-emphasis\": \"var(--color-yellow-stroke-emphasis)\",\n \"background-fill\": \"var(--color-yellow-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-yellow-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-yellow-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-yellow-background-soft-emphasis)\",\n \"background-soft-muted\": \"var(--color-yellow-background-soft-muted)\",\n },\n cm: {\n DEFAULT: \"var(--color-cm)\",\n \"darken-1\": \"var(--color-cm-darken-1)\",\n \"darken-2\": \"var(--color-cm-darken-2)\",\n \"darken-3\": \"var(--color-cm-darken-3)\",\n \"darken-4\": \"var(--color-cm-darken-4)\",\n \"darken-5\": \"var(--color-cm-darken-5)\",\n \"darken-6\": \"var(--color-cm-darken-6)\",\n \"lighten-1\": \"var(--color-cm-lighten-1)\",\n \"lighten-2\": \"var(--color-cm-lighten-2)\",\n \"lighten-3\": \"var(--color-cm-lighten-3)\",\n \"lighten-4\": \"var(--color-cm-lighten-4)\",\n \"lighten-5\": \"var(--color-cm-lighten-5)\",\n \"lighten-6\": \"var(--color-cm-lighten-6)\",\n \"80\": \"var(--color-cm-80)\",\n \"64\": \"var(--color-cm-64)\",\n \"48\": \"var(--color-cm-48)\",\n \"24\": \"var(--color-cm-24)\",\n \"16\": \"var(--color-cm-16)\",\n \"12\": \"var(--color-cm-12)\",\n \"8\": \"var(--color-cm-8)\",\n \"6\": \"var(--color-cm-6)\",\n \"4\": \"var(--color-cm-4)\",\n \"0\": \"var(--color-cm-0)\",\n foreground: \"var(--color-cm-foreground)\",\n \"foreground-emphasis\": \"var(--color-cm-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-cm-foreground-onfill)\",\n \"background-fill\": \"var(--color-cm-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-cm-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-cm-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-cm-background-soft-emphasis)\",\n },\n go: {\n DEFAULT: \"var(--color-go)\",\n \"darken-1\": \"var(--color-go-darken-1)\",\n \"darken-2\": \"var(--color-go-darken-2)\",\n \"darken-3\": \"var(--color-go-darken-3)\",\n \"darken-4\": \"var(--color-go-darken-4)\",\n \"darken-5\": \"var(--color-go-darken-5)\",\n \"darken-6\": \"var(--color-go-darken-6)\",\n \"lighten-1\": \"var(--color-go-lighten-1)\",\n \"lighten-2\": \"var(--color-go-lighten-2)\",\n \"lighten-3\": \"var(--color-go-lighten-3)\",\n \"lighten-4\": \"var(--color-go-lighten-4)\",\n \"lighten-5\": \"var(--color-go-lighten-5)\",\n \"lighten-6\": \"var(--color-go-lighten-6)\",\n \"80\": \"var(--color-go-80)\",\n \"64\": \"var(--color-go-64)\",\n \"48\": \"var(--color-go-48)\",\n \"24\": \"var(--color-go-24)\",\n \"16\": \"var(--color-go-16)\",\n \"12\": \"var(--color-go-12)\",\n \"8\": \"var(--color-go-8)\",\n \"6\": \"var(--color-go-6)\",\n \"4\": \"var(--color-go-4)\",\n \"0\": \"var(--color-go-0)\",\n foreground: \"var(--color-go-foreground)\",\n \"foreground-emphasis\": \"var(--color-go-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-go-foreground-onfill)\",\n \"background-fill\": \"var(--color-go-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-go-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-go-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-go-background-soft-emphasis)\",\n },\n cir: {\n DEFAULT: \"var(--color-cir)\",\n \"darken-1\": \"var(--color-cir-darken-1)\",\n \"darken-2\": \"var(--color-cir-darken-2)\",\n \"darken-3\": \"var(--color-cir-darken-3)\",\n \"darken-4\": \"var(--color-cir-darken-4)\",\n \"darken-5\": \"var(--color-cir-darken-5)\",\n \"darken-6\": \"var(--color-cir-darken-6)\",\n \"lighten-1\": \"var(--color-cir-lighten-1)\",\n \"lighten-2\": \"var(--color-cir-lighten-2)\",\n \"lighten-3\": \"var(--color-cir-lighten-3)\",\n \"lighten-4\": \"var(--color-cir-lighten-4)\",\n \"lighten-5\": \"var(--color-cir-lighten-5)\",\n \"lighten-6\": \"var(--color-cir-lighten-6)\",\n \"80\": \"var(--color-cir-80)\",\n \"64\": \"var(--color-cir-64)\",\n \"48\": \"var(--color-cir-48)\",\n \"24\": \"var(--color-cir-24)\",\n \"16\": \"var(--color-cir-16)\",\n \"12\": \"var(--color-cir-12)\",\n \"8\": \"var(--color-cir-8)\",\n \"6\": \"var(--color-cir-6)\",\n \"4\": \"var(--color-cir-4)\",\n \"0\": \"var(--color-cir-0)\",\n foreground: \"var(--color-cir-foreground)\",\n \"foreground-emphasis\": \"var(--color-cir-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-cir-foreground-onfill)\",\n \"background-fill\": \"var(--color-cir-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-cir-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-cir-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-cir-background-soft-emphasis)\",\n },\n ped: {\n DEFAULT: \"var(--color-ped)\",\n \"darken-1\": \"var(--color-ped-darken-1)\",\n \"darken-2\": \"var(--color-ped-darken-2)\",\n \"darken-3\": \"var(--color-ped-darken-3)\",\n \"darken-4\": \"var(--color-ped-darken-4)\",\n \"darken-5\": \"var(--color-ped-darken-5)\",\n \"darken-6\": \"var(--color-ped-darken-6)\",\n \"darken-7\": \"var(--color-ped-darken-7)\",\n \"lighten-1\": \"var(--color-ped-lighten-1)\",\n \"lighten-2\": \"var(--color-ped-lighten-2)\",\n \"lighten-3\": \"var(--color-ped-lighten-3)\",\n \"lighten-4\": \"var(--color-ped-lighten-4)\",\n \"lighten-5\": \"var(--color-ped-lighten-5)\",\n \"lighten-6\": \"var(--color-ped-lighten-6)\",\n \"80\": \"var(--color-ped-80)\",\n \"64\": \"var(--color-ped-64)\",\n \"48\": \"var(--color-ped-48)\",\n \"24\": \"var(--color-ped-24)\",\n \"16\": \"var(--color-ped-16)\",\n \"12\": \"var(--color-ped-12)\",\n \"8\": \"var(--color-ped-8)\",\n \"6\": \"var(--color-ped-6)\",\n \"4\": \"var(--color-ped-4)\",\n \"0\": \"var(--color-ped-0)\",\n foreground: \"var(--color-ped-foreground)\",\n \"foreground-emphasis\": \"var(--color-ped-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-ped-foreground-onfill)\",\n \"background-fill\": \"var(--color-ped-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-ped-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-ped-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-ped-background-soft-emphasis)\",\n },\n prev: {\n DEFAULT: \"var(--color-prev)\",\n \"darken-1\": \"var(--color-prev-darken-1)\",\n \"darken-2\": \"var(--color-prev-darken-2)\",\n \"darken-3\": \"var(--color-prev-darken-3)\",\n \"darken-4\": \"var(--color-prev-darken-4)\",\n \"darken-5\": \"var(--color-prev-darken-5)\",\n \"darken-6\": \"var(--color-prev-darken-6)\",\n \"lighten-1\": \"var(--color-prev-lighten-1)\",\n \"lighten-2\": \"var(--color-prev-lighten-2)\",\n \"lighten-3\": \"var(--color-prev-lighten-3)\",\n \"lighten-4\": \"var(--color-prev-lighten-4)\",\n \"lighten-5\": \"var(--color-prev-lighten-5)\",\n \"lighten-6\": \"var(--color-prev-lighten-6)\",\n \"80\": \"var(--color-prev-80)\",\n \"64\": \"var(--color-prev-64)\",\n \"48\": \"var(--color-prev-48)\",\n \"24\": \"var(--color-prev-24)\",\n \"16\": \"var(--color-prev-16)\",\n \"12\": \"var(--color-prev-12)\",\n \"8\": \"var(--color-prev-8)\",\n \"6\": \"var(--color-prev-6)\",\n \"4\": \"var(--color-prev-4)\",\n \"0\": \"var(--color-prev-0)\",\n foreground: \"var(--color-prev-foreground)\",\n \"foreground-emphasis\": \"var(--color-prev-foreground-emphasis)\",\n \"foreground-onfill\": \"var(--color-prev-foreground-onfill)\",\n \"background-fill\": \"var(--color-prev-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-prev-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-prev-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-prev-background-soft-emphasis)\",\n },\n primary: {\n DEFAULT: \"var(--color-primary)\",\n \"darken-1\": \"var(--color-primary-darken-1)\",\n \"darken-2\": \"var(--color-primary-darken-2)\",\n \"lighten-1\": \"var(--color-primary-lighten-1)\",\n \"lighten-2\": \"var(--color-primary-lighten-2)\",\n \"lighten-3\": \"var(--color-primary-lighten-3)\",\n \"lighten-4\": \"var(--color-primary-lighten-4)\",\n \"lighten-5\": \"var(--color-primary-lighten-5)\",\n \"lighten-6\": \"var(--color-primary-lighten-6)\",\n \"80\": \"var(--color-primary-80)\",\n \"64\": \"var(--color-primary-64)\",\n \"48\": \"var(--color-primary-48)\",\n \"24\": \"var(--color-primary-24)\",\n \"16\": \"var(--color-primary-16)\",\n \"12\": \"var(--color-primary-12)\",\n \"8\": \"var(--color-primary-8)\",\n \"6\": \"var(--color-primary-6)\",\n \"4\": \"var(--color-primary-4)\",\n \"0\": \"var(--color-primary-0)\",\n foreground: \"var(--color-primary-foreground)\",\n \"foreground-emphasis\": \"var(--color-primary-foreground-emphasis)\",\n \"foreground-muted\": \"var(--color-primary-foreground-muted)\",\n \"foreground-onfill\": \"var(--color-primary-foreground-onfill)\",\n stroke: \"var(--color-primary-stroke)\",\n \"stroke-emphasis\": \"var(--color-primary-stroke-emphasis)\",\n \"background-fill\": \"var(--color-primary-background-fill)\",\n \"background-fill-emphasis\": \"var(--color-primary-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-primary-background-soft)\",\n \"background-soft-emphasis\": \"var(--color-primary-background-soft-emphasis)\",\n \"background-soft-muted\": \"var(--color-primary-background-soft-muted)\",\n },\n secondary: {\n DEFAULT: \"var(--color-secondary)\",\n \"darken-1\": \"var(--color-secondary-darken-1)\",\n \"darken-2\": \"var(--color-secondary-darken-2)\",\n \"darken-3\": \"var(--color-secondary-darken-3)\",\n \"darken-4\": \"var(--color-secondary-darken-4)\",\n \"darken-5\": \"var(--color-secondary-darken-5)\",\n \"darken-6\": \"var(--color-secondary-darken-6)\",\n \"lighten-1\": \"var(--color-secondary-lighten-1)\",\n \"lighten-2\": \"var(--color-secondary-lighten-2)\",\n \"lighten-3\": \"var(--color-secondary-lighten-3)\",\n \"lighten-4\": \"var(--color-secondary-lighten-4)\",\n \"lighten-5\": \"var(--color-secondary-lighten-5)\",\n \"lighten-6\": \"var(--color-secondary-lighten-6)\",\n \"80\": \"var(--color-secondary-80)\",\n \"64\": \"var(--color-secondary-64)\",\n \"48\": \"var(--color-secondary-48)\",\n \"24\": \"var(--color-secondary-24)\",\n \"16\": \"var(--color-secondary-16)\",\n \"12\": \"var(--color-secondary-12)\",\n \"8\": \"var(--color-secondary-8)\",\n \"6\": \"var(--color-secondary-6)\",\n \"4\": \"var(--color-secondary-4)\",\n \"0\": \"var(--color-secondary-0)\",\n foreground: \"var(--color-secondary-foreground)\",\n \"foreground-emphasis\": \"var(--color-secondary-foreground-emphasis)\",\n \"foreground-muted\": \"var(--color-secondary-foreground-muted)\",\n \"foreground-onfill\": \"var(--color-secondary-foreground-onfill)\",\n stroke: \"var(--color-secondary-stroke)\",\n \"stroke-emphasis\": \"var(--color-secondary-stroke-emphasis)\",\n \"background-fill\": \"var(--color-secondary-background-fill)\",\n \"background-fill-emphasis\":\n \"var(--color-secondary-background-fill-emphasis)\",\n \"background-soft\": \"var(--color-secondary-background-soft)\",\n \"background-soft-emphasis\":\n \"var(--color-secondary-background-soft-emphasis)\",\n \"background-soft-muted\": \"var(--color-secondary-background-soft-muted)\",\n },\n gradient: {\n base: {\n \"blur-1\": \"var(--color-gradient-base-blur-1)\",\n \"blur-2\": \"var(--color-gradient-base-blur-2)\",\n \"blur-3\": \"var(--color-gradient-base-blur-3)\",\n \"bg-1\": \"var(--color-gradient-base-bg-1)\",\n \"bg-2\": \"var(--color-gradient-base-bg-2)\",\n },\n cir: {\n \"blur-1\": \"var(--color-gradient-cir-blur-1)\",\n \"blur-2\": \"var(--color-gradient-cir-blur-2)\",\n \"blur-3\": \"var(--color-gradient-cir-blur-3)\",\n \"bg-1\": \"var(--color-gradient-cir-bg-1)\",\n \"bg-2\": \"var(--color-gradient-cir-bg-2)\",\n },\n cm: {\n \"blur-1\": \"var(--color-gradient-cm-blur-1)\",\n \"blur-2\": \"var(--color-gradient-cm-blur-2)\",\n \"blur-3\": \"var(--color-gradient-cm-blur-3)\",\n \"bg-1\": \"var(--color-gradient-cm-bg-1)\",\n \"bg-2\": \"var(--color-gradient-cm-bg-2)\",\n },\n go: {\n \"blur-1\": \"var(--color-gradient-go-blur-1)\",\n \"blur-2\": \"var(--color-gradient-go-blur-2)\",\n \"blur-3\": \"var(--color-gradient-go-blur-3)\",\n \"bg-1\": \"var(--color-gradient-go-bg-1)\",\n \"bg-2\": \"var(--color-gradient-go-bg-2)\",\n },\n ped: {\n \"blur-1\": \"var(--color-gradient-ped-blur-1)\",\n \"blur-2\": \"var(--color-gradient-ped-blur-2)\",\n \"blur-3\": \"var(--color-gradient-ped-blur-3)\",\n \"bg-1\": \"var(--color-gradient-ped-bg-1)\",\n \"bg-2\": \"var(--color-gradient-ped-bg-2)\",\n },\n prev: {\n \"blur-1\": \"var(--color-gradient-prev-blur-1)\",\n \"blur-2\": \"var(--color-gradient-prev-blur-2)\",\n \"blur-3\": \"var(--color-gradient-prev-blur-3)\",\n \"bg-1\": \"var(--color-gradient-prev-bg-1)\",\n \"bg-2\": \"var(--color-gradient-prev-bg-2)\",\n },\n r1: {\n \"blur-1\": \"var(--color-gradient-r1-blur-1)\",\n \"blur-2\": \"var(--color-gradient-r1-blur-2)\",\n \"blur-3\": \"var(--color-gradient-r1-blur-3)\",\n \"bg-1\": \"var(--color-gradient-r1-bg-1)\",\n \"bg-2\": \"var(--color-gradient-r1-bg-2)\",\n },\n rplus: {\n \"blur-1\": \"var(--color-gradient-rplus-blur-1)\",\n \"blur-2\": \"var(--color-gradient-rplus-blur-2)\",\n \"blur-3\": \"var(--color-gradient-rplus-blur-3)\",\n \"bg-1\": \"var(--color-gradient-rplus-bg-1)\",\n \"bg-2\": \"var(--color-gradient-rplus-bg-2)\",\n },\n pt: {\n \"blur-1\": \"var(--color-gradient-pt-blur-1)\",\n \"blur-2\": \"var(--color-gradient-pt-blur-2)\",\n \"blur-3\": \"var(--color-gradient-pt-blur-3)\",\n \"bg-1\": \"var(--color-gradient-pt-bg-1)\",\n \"bg-2\": \"var(--color-gradient-pt-bg-2)\",\n },\n },\n};\n\nexport const fontFamily = {\n sans: \"var(--font-sans)\",\n};\n\nexport const fontSize = {\n xxs: \"var(--text-xxs)\",\n xs: \"var(--text-xs)\",\n sm: \"var(--text-sm)\",\n base: \"var(--text-base)\",\n md: \"var(--text-md)\",\n lg: \"var(--text-lg)\",\n xl: \"var(--text-xl)\",\n \"title-xs\": \"var(--text-title-xs)\",\n \"title-sm\": \"var(--text-title-sm)\",\n \"title-md\": \"var(--text-title-md)\",\n \"title-lg\": \"var(--text-title-lg)\",\n \"title-xl\": \"var(--text-title-xl)\",\n \"title-xxl\": \"var(--text-title-xxl)\",\n \"display-sm\": \"var(--text-display-sm)\",\n \"display-md\": \"var(--text-display-md)\",\n \"display-lg\": \"var(--text-display-lg)\",\n};\n\nexport const lineHeight = {\n xxs: \"var(--leading-xxs)\",\n xs: \"var(--leading-xs)\",\n sm: \"var(--leading-sm)\",\n md: \"var(--leading-md)\",\n lg: \"var(--leading-lg)\",\n \"title-xs\": \"var(--leading-title-xs)\",\n \"title-sm\": \"var(--leading-title-sm)\",\n \"title-md\": \"var(--leading-title-md)\",\n \"title-lg\": \"var(--leading-title-lg)\",\n \"title-xl\": \"var(--leading-title-xl)\",\n \"title-xxl\": \"var(--leading-title-xxl)\",\n \"display-sm\": \"var(--leading-display-sm)\",\n \"display-md\": \"var(--leading-display-md)\",\n \"display-lg\": \"var(--leading-display-lg)\",\n};\n\nexport const fontWeight = {\n regular: \"var(--font-weight-regular)\",\n medium: \"var(--font-weight-medium)\",\n semibold: \"var(--font-weight-semibold)\",\n bold: \"var(--font-weight-bold)\",\n extrabold: \"var(--font-weight-extrabold)\",\n};\n\nexport const screens = {\n tv: \"1920px\",\n desktop: \"1024px\",\n tablet: \"600px\",\n mobile: \"320px\",\n sm: \"320px\",\n md: \"600px\",\n lg: \"1024px\",\n xl: \"1920px\",\n};\n\nexport const breakpoints = {\n tv: \"var(--breakpoint-tv)\",\n desktop: \"var(--breakpoint-desktop)\",\n tablet: \"var(--breakpoint-tablet)\",\n mobile: \"var(--breakpoint-mobile)\",\n};\n\nexport const container = {\n tv: \"var(--container-tv)\",\n desktop: \"var(--container-desktop)\",\n tablet: \"var(--container-tablet)\",\n mobile: \"var(--container-mobile)\",\n};\n\nexport const sidebar = {\n width: \"var(--sidebar-width)\",\n \"width-mobile\": \"var(--sidebar-width-mobile)\",\n \"width-icon\": \"var(--sidebar-width-icon)\",\n};\n\nexport const borderRadius = {\n none: \"var(--radius-none)\",\n sm: \"var(--radius-sm)\",\n md: \"var(--radius-md)\",\n lg: \"var(--radius-lg)\",\n pill: \"var(--radius-pill)\",\n circular: \"var(--radius-circular)\",\n full: \"var(--radius-full)\",\n};\n\nexport const boxShadow = {\n \"level-1\":\n \"0 0 2px 0 var(--color-drop-shadow-layer-a), 0 2px 4px 0 var(--color-drop-shadow-layer-b)\",\n};\n\nexport const keyframes = {\n \"accordion-down\": {\n from: {\n height: \"0\",\n },\n to: {\n height: \"var(--radix-accordion-content-height)\",\n },\n },\n \"accordion-up\": {\n from: {\n height: \"var(--radix-accordion-content-height)\",\n },\n to: {\n height: \"0\",\n },\n },\n \"collapsible-down\": {\n from: {\n height: \"0\",\n },\n to: {\n height: \"var(--radix-collapsible-content-height)\",\n },\n },\n shine: {\n from: {\n backgroundPosition: \"200% 0\",\n },\n to: {\n backgroundPosition: \"-200% 0\",\n },\n },\n \"collapsible-up\": {\n from: {\n height: \"var(--radix-collapsible-content-height)\",\n },\n to: {\n height: \"0\",\n },\n },\n \"fade-in\": {\n from: {\n opacity: \"0\",\n },\n to: {\n opacity: \"1\",\n },\n },\n \"fade-out\": {\n from: {\n opacity: \"1\",\n },\n to: {\n opacity: \"0\",\n },\n },\n};\n\nexport const animation = {\n \"accordion-down\": \"accordion-down 0.2s ease-out\",\n \"accordion-up\": \"accordion-up 0.2s ease-out\",\n \"collapsible-down\": \"collapsible-down 0.2s ease-out\",\n \"collapsible-up\": \"collapsible-up 0.2s ease-out\",\n \"fade-in\": \"fade-in 0.2s ease-out\",\n \"fade-out\": \"fade-out 0.2s ease-out\",\n shine: \"shine 2s infinite linear\",\n};\n","\"use client\";\n\nimport { screens } from \"@/assets/js/tokens\";\nimport { Button, buttonVariants } from \"@/components/Button\";\nimport { cn } from \"@/lib/utils\";\nimport {\n ChevronLeftDuo,\n ChevronRightDuo,\n MoreHorizontal,\n} from \"@medway-ui/icons\";\nimport type { VariantProps } from \"class-variance-authority\";\nimport {\n useState,\n useEffect,\n type ComponentProps,\n type ReactNode,\n} from \"react\";\n\ninterface PaginationProps {\n currentPage: number;\n totalPages: number;\n maxVisibleItems?: number;\n onPageChange: (page: number) => void;\n className?: string;\n itemsPerPage?: number;\n totalItems?: number;\n responsive?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n variant?:\n | \"regular\"\n | \"emphasis\"\n | \"error\"\n | \"warning\"\n | \"outlined\"\n | \"success\";\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean;\n iconLeft?: ReactNode;\n iconRight?: ReactNode;\n size?: \"sm\" | \"md\" | \"lg\";\n variant?: ButtonVariant;\n activeVariant?: ButtonVariant;\n inactiveVariant?: ButtonVariant;\n} & ComponentProps<\"button\">;\n\ntype ButtonVariant = NonNullable<\n VariantProps<typeof buttonVariants>[\"variant\"]\n>;\n\nfunction PaginationRoot({ className, ...props }: ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn(\"flex w-full items-center justify-between\", className)}\n {...props}\n />\n );\n}\n\nfunction PaginationContent({ className, ...props }: ComponentProps<\"ul\">) {\n return (\n <ul\n className={cn(\"flex flex-row items-center gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction PaginationInfo({\n count,\n label = \"itens\",\n className,\n ...props\n}: ComponentProps<\"p\"> & { count?: number; label?: string }) {\n return (\n <p\n className={cn(\n \"text-xs font-medium text-gray-foreground-muted\",\n className\n )}\n {...props}\n >\n {label === \"itens\" ? (\n <>\n Mostrando{\" \"}\n <span className=\"font-semibold text-gray-foreground\">{count}</span>{\" \"}\n {label}\n </>\n ) : (\n <>\n <span className=\"font-semibold text-gray-foreground\">{count}</span>{\" \"}\n {label}\n </>\n )}\n </p>\n );\n}\n\nfunction PaginationItem({ className, ...props }: ComponentProps<\"li\">) {\n return <li className={cn(\"\", className)} {...props} />;\n}\n\nfunction PaginationLink({\n className,\n isActive,\n iconLeft,\n iconRight,\n size = \"md\",\n variant = \"regular\",\n activeVariant,\n inactiveVariant,\n ...props\n}: PaginationLinkProps) {\n const getVariant = () => {\n if (isActive && activeVariant) return activeVariant;\n if (!isActive && inactiveVariant) return inactiveVariant;\n return isActive ? variant : `${variant}-soft`;\n };\n\n return (\n <Button\n aria-current={isActive ? \"page\" : undefined}\n variant={getVariant() as ButtonVariant}\n className={cn(\"\", className)}\n size={size}\n iconLeft={iconLeft}\n iconRight={iconRight}\n {...props}\n >\n {props.children}\n </Button>\n );\n}\n\nfunction PaginationPrevious({\n className,\n size = \"md\",\n variant = \"regular-basic\",\n ...props\n}: ComponentProps<typeof PaginationLink>) {\n return (\n <Button\n aria-label=\"Go to previous page\"\n className={cn(\"\", className)}\n iconLeft={<ChevronLeftDuo />}\n variant={variant}\n size={size}\n {...props}\n >\n {props.children || \"Anterior\"}\n </Button>\n );\n}\n\nfunction PaginationNext({\n className,\n size = \"md\",\n variant = \"regular-basic\",\n ...props\n}: ComponentProps<typeof PaginationLink>) {\n return (\n <Button\n aria-label=\"Go to next page\"\n className={cn(\"\", className)}\n variant={variant}\n iconRight={<ChevronRightDuo />}\n size={size}\n {...props}\n >\n {props.children || \"Próximo\"}\n </Button>\n );\n}\n\nfunction PaginationEllipsis({\n className,\n size = \"md\",\n ...props\n}: ComponentProps<\"span\"> & { size?: \"sm\" | \"md\" | \"lg\" }) {\n const sizeClasses = {\n sm: \"h-8 w-8\",\n md: \"h-9 w-9\",\n lg: \"h-10 w-10\",\n } as const;\n\n return (\n <span\n aria-hidden\n className={cn(\n \"flex items-center justify-center\",\n sizeClasses[size],\n className\n )}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n </span>\n );\n}\n\nfunction calculatePageNumbers(\n currentPage: number,\n totalPages: number,\n maxVisible: number = 2\n): number[] {\n const pages: number[] = [];\n\n if (totalPages <= maxVisible + 2) {\n // Se o total de páginas cabe confortavelmente, mostra todas\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n const sidePages = Math.floor(maxVisible / 2);\n if (currentPage <= sidePages + 1) {\n // Início: 1,2,3...N\n for (let i = 1; i <= maxVisible + 1; i++) {\n pages.push(i);\n }\n if (maxVisible + 1 < totalPages) {\n pages.push(-1, totalPages);\n }\n } else if (currentPage >= totalPages - sidePages) {\n // Final: 1...N-2,N-1,N\n pages.push(1);\n if (totalPages - maxVisible > 1) {\n pages.push(-1);\n }\n for (let i = totalPages - maxVisible; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n // Meio: 1...X-1,X,X+1...N\n pages.push(1, -1);\n for (let i = currentPage - sidePages; i <= currentPage + sidePages; i++) {\n pages.push(i);\n }\n pages.push(-1, totalPages);\n }\n }\n\n return pages;\n}\n\nfunction Pagination({\n currentPage,\n totalPages,\n maxVisibleItems,\n onPageChange,\n itemsPerPage,\n totalItems,\n className,\n responsive = true,\n size = \"md\",\n}: PaginationProps) {\n // Detect tablet/mobile based on tokens.screens.tablet\n const [isTabletOrMobile, setIsTabletOrMobile] = useState<boolean>(() => {\n if (typeof window === \"undefined\") return false;\n return window.innerWidth <= parseInt(screens.tablet);\n });\n\n useEffect(() => {\n if (typeof window === \"undefined\" || !responsive) return;\n const tabletPx = parseInt(screens.tablet);\n const onResize = () => {\n setIsTabletOrMobile(window.innerWidth <= tabletPx);\n };\n window.addEventListener(\"resize\", onResize);\n onResize();\n return () => window.removeEventListener(\"resize\", onResize);\n }, [responsive]);\n\n // If prop not provided, default to 0 on tablet/mobile, otherwise fallback to 2\n const effectiveMaxVisible =\n typeof maxVisibleItems === \"number\"\n ? maxVisibleItems\n : responsive && isTabletOrMobile\n ? 0\n : 2;\n\n const shouldHideInfo = responsive && isTabletOrMobile;\n\n const renderPageNumbers = () => {\n return calculatePageNumbers(currentPage, totalPages, effectiveMaxVisible);\n };\n\n return (\n <PaginationRoot className={cn(\"\", className)}>\n {itemsPerPage !== undefined && !shouldHideInfo ? (\n <PaginationInfo count={itemsPerPage} label=\"itens\" />\n ) : (\n <div />\n )}\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious\n onClick={() => onPageChange(Math.max(1, currentPage - 1))}\n disabled={currentPage === 1}\n size={size}\n />\n </PaginationItem>\n\n {renderPageNumbers().map((page, index) => (\n <PaginationItem key={index}>\n {page === -1 ? (\n <PaginationEllipsis size={size} />\n ) : (\n <PaginationLink\n onClick={() => onPageChange(page)}\n isActive={page === currentPage}\n size={size}\n >\n {page}\n </PaginationLink>\n )}\n </PaginationItem>\n ))}\n\n <PaginationItem>\n <PaginationNext\n onClick={() => onPageChange(Math.min(totalPages, currentPage + 1))}\n disabled={currentPage === totalPages}\n size={size}\n />\n </PaginationItem>\n </PaginationContent>\n {totalItems !== undefined && !shouldHideInfo ? (\n <PaginationInfo count={totalItems} label=\"total\" />\n ) : (\n <div />\n )}\n </PaginationRoot>\n );\n}\nexport {\n calculatePageNumbers,\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationInfo,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n PaginationRoot,\n};\nexport type { PaginationProps };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\";\nimport { Circle as CircleIcon } from \"@medway-ui/icons\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst CIRCLE_SIZES = {\n sm: \"size-2 group-data-[disabled]:group-data-[state=checked]:size-1.5\",\n md: \"size-2.5 group-data-[disabled]:group-data-[state=checked]:size-1.5\",\n lg: \"size-3.5 group-data-[disabled]:group-data-[state=checked]:size-2\",\n} as const;\n\nconst radioGroupVariants = cva(\n \"inline-flex items-center justify-center place-items-center gap-2 rounded-pill whitespace-nowrap transition-all disabled:pointer-events-none shrink-0 [&_svg]:shrink-0 hover:cursor-pointer focus:outline-0 [grid-template-areas:'stack']\",\n {\n variants: {\n variant: {\n regular:\n \"bg-surface-card border-2 border-gray-stroke-muted enabled:hover:ring-4 data-[state=unchecked]:enabled:hover:ring-state-hover data-[state=unchecked]:enabled:hover:border-gray-stroke disabled:bg-gray-background-soft-muted data-[state=checked]:bg-primary-background-fill data-[state=checked]:border-primary-background-fill data-[state=checked]:enabled:hover:bg-primary-background-fill-emphasis data-[state=checked]:enabled:hover:border-primary-background-fill-emphasis data-[state=checked]:enabled:hover:ring-state-active disabled:data-[state=checked]:bg-gray-background-soft-muted disabled:data-[state=checked]:border-gray-stroke-muted data-[state=unchecked]:enabled:hover:border-gray-stroke data-[state=checked]:enabled:hover:bg-primary-background-fill-emphasis [&:disabled_svg]:fill-gray-background-fill-muted\",\n },\n size: {\n sm: \"size-4\",\n md: \"size-5\",\n lg: \"size-6\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n size: \"md\",\n },\n }\n);\n\nfunction RadioGroup({\n className,\n ...props\n}: ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid gap-3\", className)}\n {...props}\n />\n );\n}\n\ninterface RadioGroupItemProps\n extends ComponentProps<typeof RadioGroupPrimitive.Item>,\n VariantProps<typeof radioGroupVariants> {}\n\nfunction RadioGroupItem({\n className,\n size,\n variant,\n ...props\n}: RadioGroupItemProps) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"shadow-xs group peer aspect-square size-4 shrink-0 rounded-full outline-none transition-[color,box-shadow] disabled:cursor-not-allowed\",\n radioGroupVariants({ size, variant }),\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon\n className={cn(\n \"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 fill-surface-card\",\n CIRCLE_SIZES[size || \"md\"]\n )}\n />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem, radioGroupVariants };\nexport type { RadioGroupItemProps };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({ ...props }: ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger({\n ...props\n}: ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"origin-(--radix-tooltip-content-transform-origin) z-50 w-fit text-balance rounded-md bg-surface-elevated px-3 py-2 text-sm font-medium text-gray-foreground-emphasis animate-in fade-in-0 zoom-in-95 [filter:drop-shadow(0_0_1px_var(--color-drop-shadow-layer-a))_drop-shadow(0_2px_2px_var(--color-drop-shadow-layer-b))] data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-3 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-surface-elevated fill-surface-elevated\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","\"use client\";\n\nimport {\n type ComponentProps,\n type ReactNode,\n type ReactElement,\n type ComponentType,\n type TableHTMLAttributes,\n type HTMLAttributes,\n type ThHTMLAttributes,\n} from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n ArrowRightMd,\n CloseMd,\n Check,\n CheckboxFill,\n Info,\n RemoveMinus,\n Warning,\n} from \"@medway-ui/icons\";\nimport { Button } from \"@/components/Button\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/Avatar\";\nimport { Tag } from \"@/components/Tag\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/Tooltip\";\n\ninterface RankingProps extends TableHTMLAttributes<HTMLTableElement> {\n children?: ReactNode;\n}\n\ninterface RankingHeaderProps extends HTMLAttributes<HTMLTableSectionElement> {\n children?: ReactNode;\n}\n\ninterface RankingHeaderCellProps\n extends ThHTMLAttributes<HTMLTableCellElement> {\n children?: ReactNode;\n tooltip?: string;\n highlight?: boolean;\n}\n\ninterface RankingItemProps extends HTMLAttributes<HTMLTableRowElement> {\n children?: ReactNode;\n}\n\ninterface RankingNumberProps extends HTMLAttributes<HTMLTableCellElement> {\n children: ReactNode;\n}\n\ninterface RankingTopicColumnProps extends HTMLAttributes<HTMLTableCellElement> {\n children: ReactNode;\n}\n\ninterface RankingTopicContentProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\ninterface RankingSpecialtyProps extends HTMLAttributes<HTMLSpanElement> {\n children: ReactNode;\n}\n\ninterface RankingTopicProps extends HTMLAttributes<HTMLSpanElement> {\n children: ReactNode;\n}\n\ninterface RankingSuperFocusProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n}\n\ninterface RankingAssigneesColumnProps\n extends HTMLAttributes<HTMLTableCellElement> {\n children: ReactNode;\n}\n\ninterface RankingAssigneeLabelProps\n extends HTMLAttributes<HTMLParagraphElement> {\n children: ReactNode;\n}\n\ninterface RankingAssigneeGroupProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\ninterface RankingAssigneeItemProps extends ComponentProps<typeof Avatar> {\n src?: string;\n alt?: string;\n fallback?: string;\n tooltip?: ReactNode;\n}\n\ninterface RankingPriorityProps extends HTMLAttributes<HTMLTableCellElement> {\n children: ReactNode;\n icon?: ReactElement;\n}\n\ninterface RankingQuestionsProps extends HTMLAttributes<HTMLTableCellElement> {\n questions: number;\n answered: number;\n}\n\ninterface RankingPerformanceProps extends HTMLAttributes<HTMLTableCellElement> {\n answered: number;\n correct: number;\n minQuestions: number;\n}\n\ninterface RankingButtonProps\n extends Omit<ComponentProps<typeof Button>, \"iconRight\" | \"onClick\"> {\n onClick?: () => void;\n}\n\ninterface PerformanceData {\n progress: number;\n correct: number;\n answered: number;\n remainingQuestions: number;\n}\n\ntype ProgressStatusKey =\n | \"notStarted\"\n | \"minNotReached\"\n | \"dominated\"\n | \"notDominated\";\n\nfunction Ranking({ children, className, ...props }: RankingProps) {\n return (\n <div className=\"w-full overflow-x-auto rounded-lg border border-gray-stroke-muted\">\n <table\n className={cn(\"w-full border-collapse text-left\", className)}\n {...props}\n >\n {children}\n </table>\n </div>\n );\n}\n\nfunction RankingHeader({ children, className, ...props }: RankingHeaderProps) {\n return (\n <thead\n className={cn(\n \"h-11 border-b border-gray-stroke-muted bg-surface-card\",\n className\n )}\n {...props}\n >\n <tr>{children}</tr>\n </thead>\n );\n}\n\nfunction RankingHeaderCell({\n children,\n className,\n tooltip,\n highlight,\n ...props\n}: RankingHeaderCellProps) {\n return (\n <th\n className={cn(\n \"text-ellipsis whitespace-nowrap px-5 text-sm font-semibold text-gray-foreground first:pr-0\",\n className\n )}\n {...props}\n >\n <div className=\"flex items-center gap-1.5\">\n <span\n className={cn(\n highlight &&\n \"flex size-7 shrink-0 items-center justify-center rounded-full bg-primary-foreground-onfill\"\n )}\n >\n {children}\n </span>\n {tooltip && (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <Info className=\"size-4\" />\n </TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )}\n </div>\n </th>\n );\n}\n\nfunction RankingBody({\n children,\n className,\n ...props\n}: HTMLAttributes<HTMLTableSectionElement>) {\n return (\n <tbody className={cn(\"bg-surface-card\", className)} {...props}>\n {children}\n </tbody>\n );\n}\n\nfunction RankingItem({ children, className, ...props }: RankingItemProps) {\n return (\n <tr\n className={cn(\n \"w-full border-t border-solid border-gray-stroke-muted first:border-t-0\",\n className\n )}\n {...props}\n >\n {children}\n </tr>\n );\n}\n\nfunction RankingNumber({ children, className, ...props }: RankingNumberProps) {\n return (\n <td className=\"py-4 pl-5 align-middle\">\n <div\n className={cn(\n \"flex size-7 shrink-0 items-center justify-center overflow-hidden whitespace-nowrap rounded-full bg-primary-foreground text-sm font-semibold text-primary-foreground-onfill\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </td>\n );\n}\n\nfunction RankingTopicColumn({\n children,\n className,\n ...props\n}: RankingTopicColumnProps) {\n return (\n <td className=\"px-5 py-4 align-middle\" {...props}>\n <div className={cn(\"flex items-center gap-5\", className)}>\n <div className=\"flex shrink-0 items-center gap-5 pr-8\">{children}</div>\n </div>\n </td>\n );\n}\n\nfunction RankingTopicContent({\n children,\n className,\n ...props\n}: RankingTopicContentProps) {\n return (\n <div\n className={cn(\n \"flex shrink-0 flex-col items-start whitespace-nowrap text-gray-foreground\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nfunction RankingSpecialty({\n children,\n className,\n ...props\n}: RankingSpecialtyProps) {\n return (\n <span\n className={cn(\n \"shrink-0 overflow-hidden text-ellipsis font-sans text-xxs font-medium leading-xxs\",\n className\n )}\n {...props}\n >\n {children}\n </span>\n );\n}\n\nfunction RankingTopic({ children, className, ...props }: RankingTopicProps) {\n return (\n <span\n className={cn(\n \"shrink-0 overflow-hidden text-ellipsis font-sans text-sm font-semibold leading-5\",\n className\n )}\n {...props}\n >\n {children}\n </span>\n );\n}\n\nfunction RankingSuperFocus({\n children,\n className,\n ...props\n}: RankingSuperFocusProps) {\n return (\n <Tag\n className={cn(\n \"bg-gradient-to-r from-cm-24 to-secondary-24 text-primary-foreground\",\n className\n )}\n {...props}\n icon={<CheckboxFill className=\"text-primary-foreground\" />}\n >\n {children}\n </Tag>\n );\n}\n\nfunction RankingAssigneesColumn({\n children,\n className,\n ...props\n}: RankingAssigneesColumnProps) {\n return (\n <td className=\"px-5 py-4 align-middle\" {...props}>\n <div className={cn(\"flex flex-col items-start gap-2\", className)}>\n {children}\n </div>\n </td>\n );\n}\n\nfunction RankingAssigneeLabel({\n children,\n className,\n ...props\n}: RankingAssigneeLabelProps) {\n return (\n <p\n className={cn(\n \"relative shrink-0 overflow-hidden text-ellipsis whitespace-nowrap text-[10px] font-medium leading-[12px] text-gray-foreground\",\n className\n )}\n {...props}\n >\n {children}\n </p>\n );\n}\n\nfunction RankingAssigneeGroup({\n children,\n className,\n ...props\n}: RankingAssigneeGroupProps) {\n return (\n <div\n className={cn(\"avatar-group flex shrink-0 items-center gap-2\", className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nfunction RankingAssigneeItem({\n src,\n alt,\n fallback = \"?\",\n className,\n tooltip,\n ...props\n}: RankingAssigneeItemProps) {\n const avatarElement = (\n <Avatar\n size=\"sm\"\n className={cn(\"ring-2 ring-background\", className)}\n {...props}\n >\n <AvatarImage src={src} alt={alt} />\n <AvatarFallback>{fallback}</AvatarFallback>\n </Avatar>\n );\n\n if (!tooltip) {\n return avatarElement;\n }\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{avatarElement}</TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n}\n\nfunction RankingPriority({\n children,\n className,\n icon,\n ...props\n}: RankingPriorityProps) {\n return (\n <td className=\"px-5 py-4 align-middle\" {...props}>\n <Tag variant=\"regular-soft\" className={className} icon={icon}>\n {children}\n </Tag>\n </td>\n );\n}\n\nfunction LinearProgressBar({\n className,\n percentage,\n}: {\n className?: string;\n percentage: number;\n}) {\n const getProgressColor = (value: number) => {\n if (value >= 0 && value <= 49) return \"bg-primary-stroke\";\n if (value >= 50 && value <= 80) return \"bg-primary-stroke\";\n if (value >= 81 && value <= 100) return \"bg-primary-stroke\";\n return \"bg-gray-100\";\n };\n\n return (\n <div\n className={cn(\n \"relative h-0.5 w-full overflow-hidden rounded-pill bg-gray-100\",\n className\n )}\n >\n <div\n className={cn(\n \"absolute inset-y-0 left-0 rounded-pill transition-all duration-300\",\n getProgressColor(percentage)\n )}\n style={{ width: `${percentage}%` }}\n />\n </div>\n );\n}\n\nfunction RankingQuestions({\n questions,\n answered,\n className,\n ...props\n}: RankingQuestionsProps) {\n const percentage = answered > 0 ? (answered / questions) * 100 : 0;\n const isNotStarted = answered === 0;\n\n if (isNotStarted) {\n return (\n <td className=\"px-5 py-4 align-middle\" {...props}>\n <div\n className={cn(\n \"flex min-w-[140px] flex-col items-start justify-center gap-2\",\n className\n )}\n >\n <div className=\"flex shrink-0 items-center justify-center gap-2 text-xs font-medium text-gray-foreground-muted\">\n <div className=\"flex size-4 items-center justify-center rounded-full bg-gray-background-soft\">\n <RemoveMinus\n className=\"size-3 text-gray-foreground\"\n strokeWidth={2.6}\n />\n </div>\n <span className=\"whitespace-nowrap font-medium text-gray-foreground-muted\">\n Não iniciado\n </span>\n </div>\n </div>\n </td>\n );\n }\n\n return (\n <td className=\"px-5 py-4 align-middle\" {...props}>\n <div\n className={cn(\n \"flex min-w-[140px] flex-col items-start justify-center gap-2\",\n className\n )}\n >\n <div className=\"flex shrink-0 items-center gap-0.5 text-xs leading-4\">\n <span className=\"relative shrink-0 whitespace-nowrap font-medium text-gray-foreground-muted\">\n <span className=\"font-semibold text-gray-foreground\">\n {answered}\n </span>{\" \"}\n {answered > 1 ? \"respondidas\" : \"respondida\"}\n </span>\n </div>\n <LinearProgressBar percentage={percentage} />\n </div>\n </td>\n );\n}\n\nconst PERCENTAGE_STATUS_CONFIG: Record<\n ProgressStatusKey,\n {\n icon: ComponentType<{ className?: string; strokeWidth?: number }>;\n bgColor: string;\n iconColor: string;\n titleClassName: string;\n title: (data: PerformanceData) => ReactNode;\n subtitle: (data: PerformanceData) => ReactNode;\n }\n> = {\n notStarted: {\n icon: RemoveMinus,\n bgColor: \"bg-gray-background-soft\",\n iconColor: \"text-gray-foreground\",\n titleClassName: \"font-medium text-gray-foreground-muted\",\n title: () => \"Não iniciado\",\n subtitle: () => \"\",\n },\n minNotReached: {\n icon: Warning,\n bgColor: \"bg-feedback-warning-background-soft\",\n iconColor: \"text-feedback-warning-foreground\",\n titleClassName: \"font-medium text-gray-foreground-muted\",\n title: () => \"Mínimo não atingido\",\n subtitle: ({ remainingQuestions }) =>\n remainingQuestions > 1\n ? `Faltam ${remainingQuestions} questões`\n : `Falta ${remainingQuestions} questão`,\n },\n dominated: {\n icon: Check,\n bgColor: \"bg-feedback-success-background-soft\",\n iconColor: \"text-feedback-success-foreground\",\n titleClassName: \"font-medium text-gray-foreground-muted\",\n title: ({ progress }) => (\n <>\n <span className=\"font-semibold text-gray-foreground\">\n {Math.round(progress)}%\n </span>{\" \"}\n de {progress > 1 ? \"acertos\" : \"acerto\"}\n </>\n ),\n subtitle: ({ correct, answered }) => `${correct} de ${answered} acertos`,\n },\n notDominated: {\n icon: CloseMd,\n bgColor: \"bg-feedback-error-background-soft\",\n iconColor: \"text-feedback-error-foreground\",\n titleClassName: \"font-medium text-gray-foreground-muted\",\n title: ({ progress }) => (\n <>\n <span className=\"font-semibold text-gray-foreground\">\n {Math.round(progress)}%\n </span>{\" \"}\n de {progress > 1 ? \"acertos\" : \"acerto\"}\n </>\n ),\n subtitle: ({ correct, answered }) => `${correct} de ${answered} acertos`,\n },\n};\n\nfunction getPercentageStatus(\n isNotStarted: boolean,\n minNotReached: boolean,\n progress: number\n): ProgressStatusKey {\n const rules: [boolean, ProgressStatusKey][] = [\n [isNotStarted, \"notStarted\"],\n [minNotReached, \"minNotReached\"],\n [progress >= 80, \"dominated\"],\n [true, \"notDominated\"],\n ];\n return rules.find(([condition]) => condition)![1];\n}\n\nfunction RankingPerformance({\n answered,\n correct,\n minQuestions,\n className,\n ...props\n}: RankingPerformanceProps) {\n const progress = answered > 0 ? (correct / answered) * 100 : 0;\n const isNotStarted = answered === 0;\n const minNotReached = correct < minQuestions;\n const remainingQuestions = minQuestions - correct;\n\n const statusKey = getPercentageStatus(isNotStarted, minNotReached, progress);\n\n const {\n icon: Icon,\n bgColor,\n iconColor,\n titleClassName,\n title,\n subtitle,\n } = PERCENTAGE_STATUS_CONFIG[statusKey];\n\n const data: PerformanceData = {\n progress,\n correct,\n answered,\n remainingQuestions,\n };\n\n return (\n <td className=\"px-5 py-4 align-middle\" {...props}>\n <div\n className={cn(\n \"flex min-w-[140px] flex-col items-start justify-center gap-2\",\n className\n )}\n >\n <div className=\"flex shrink-0 items-center justify-center gap-2 text-xs font-medium text-gray-foreground-muted\">\n <div\n className={cn(\n \"flex size-4 items-center justify-center rounded-full\",\n bgColor\n )}\n >\n <Icon className={cn(\"size-3\", iconColor)} strokeWidth={2.6} />\n </div>\n <div className=\"flex flex-col items-start justify-center\">\n <span className={cn(\"whitespace-nowrap\", titleClassName)}>\n {title(data)}\n </span>\n <span className=\"whitespace-nowrap text-xxs font-semibold text-gray-foreground-muted\">\n {subtitle(data)}\n </span>\n </div>\n </div>\n </div>\n </td>\n );\n}\n\nfunction RankingButton({\n children,\n className,\n onClick,\n ...props\n}: RankingButtonProps) {\n return (\n <td\n className=\"px-5 py-4 align-middle\"\n {...(props as HTMLAttributes<HTMLTableCellElement>)}\n >\n <Button\n variant=\"regular-soft\"\n size=\"sm\"\n iconRight={<ArrowRightMd className=\"size-4\" />}\n onClick={onClick}\n className={className}\n >\n {children}\n </Button>\n </td>\n );\n}\n\nexport {\n Ranking,\n RankingHeader,\n RankingHeaderCell,\n RankingBody,\n RankingItem,\n RankingNumber,\n RankingTopicColumn,\n RankingTopicContent,\n RankingSpecialty,\n RankingTopic,\n RankingSuperFocus,\n RankingAssigneesColumn,\n RankingAssigneeLabel,\n RankingAssigneeGroup,\n RankingAssigneeItem,\n RankingPriority,\n RankingQuestions,\n RankingPerformance,\n RankingButton,\n};\n\nexport type {\n RankingProps,\n RankingHeaderProps,\n RankingHeaderCellProps,\n RankingItemProps,\n RankingNumberProps,\n RankingTopicColumnProps,\n RankingTopicContentProps,\n RankingSpecialtyProps,\n RankingTopicProps,\n RankingSuperFocusProps,\n RankingAssigneesColumnProps,\n RankingAssigneeLabelProps,\n RankingAssigneeGroupProps,\n RankingAssigneeItemProps,\n RankingPriorityProps,\n RankingQuestionsProps,\n RankingPerformanceProps,\n RankingButtonProps,\n PerformanceData,\n ProgressStatusKey,\n};\n","\"use client\";\n\nimport { cn } from \"@/lib/utils\";\nimport { cva } from \"class-variance-authority\";\nimport { useRef, useState } from \"react\";\nimport { useId } from \"@/hooks/use-id\";\n\ntype RatingSize = \"sm\" | \"md\" | \"lg\";\ntype RatingStarState = \"empty\" | \"half\" | \"full\";\n\ninterface RatingProps {\n value?: number;\n onChange?: (value: number) => void;\n maxStars?: number;\n readOnly?: boolean;\n labels?: [string, string];\n size?: RatingSize;\n className?: string;\n classNameContainer?: string;\n classNameLabels?: string;\n}\n\ninterface StarIconProps {\n state: RatingStarState;\n className?: string;\n}\n\nconst RatingStarVariants = cva(\"transition-all duration-150\", {\n variants: {\n size: {\n sm: \"size-6\",\n md: \"size-7\",\n lg: \"size-8\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nconst RatingStarHoveredVariants = cva(\"\", {\n variants: {\n size: {\n sm: \"size-7\",\n md: \"size-8\",\n lg: \"size-9\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nconst RatingButtonVariants = cva(\"inline-flex items-center justify-center\", {\n variants: {\n size: {\n sm: \"size-7\",\n md: \"size-8\",\n lg: \"size-9\",\n },\n readOnly: {\n true: \"cursor-default\",\n false: \"cursor-pointer\",\n },\n },\n defaultVariants: {\n size: \"md\",\n readOnly: false,\n },\n});\n\nconst RatingLabelVariants = cva(\n \"flex w-full min-w-0 justify-between text-gray-foreground font-medium gap-2\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-xs\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nfunction StarIcon({ state, className }: StarIconProps) {\n const generatedId = useId();\n const fallbackId = useRef(`rating-${Math.random().toString(36).slice(2)}`);\n const gradientId = generatedId || fallbackId.current;\n\n if (state === \"full\") {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n className={className}\n >\n <path\n d=\"M0.888855 9.61676C0.523397 9.27879 0.721914 8.66782 1.21623 8.60921L8.2204 7.77843C8.42186 7.75455 8.59685 7.62803 8.68182 7.44381L11.6361 1.03906C11.8446 0.587053 12.4872 0.586967 12.6957 1.03898L15.6499 7.44368C15.7349 7.6279 15.9087 7.75475 16.1102 7.77864L23.1148 8.60921C23.6091 8.66782 23.807 9.27897 23.4416 9.61694L18.2638 14.4061C18.1148 14.5438 18.0485 14.7488 18.0881 14.9478L19.4622 21.8658C19.5593 22.354 19.0396 22.7323 18.6053 22.4892L12.4507 19.0432C12.2737 18.9441 12.0586 18.9446 11.8816 19.0437L5.72641 22.4883C5.29205 22.7314 4.7715 22.354 4.86851 21.8658L6.2429 14.9483C6.28244 14.7493 6.21629 14.5438 6.06735 14.406L0.888855 9.61676Z\"\n className=\"fill-feedback-warning-background-soft stroke-feedback-warning-stroke hover:stroke-feedback-warning-stroke-emphasis\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n\n if (state === \"half\") {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n className={className}\n >\n <defs>\n <linearGradient id={gradientId} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop\n offset=\"50%\"\n className=\"[stop-color:var(--color-feedback-warning-background-soft)]\"\n stopOpacity=\"1\"\n />\n <stop offset=\"50%\" stopColor=\"transparent\" stopOpacity=\"0\" />\n </linearGradient>\n </defs>\n <path\n d=\"M0.888855 9.61676C0.523397 9.27879 0.721914 8.66782 1.21623 8.60921L8.2204 7.77843C8.42186 7.75455 8.59685 7.62803 8.68182 7.44381L11.6361 1.03906C11.8446 0.587053 12.4872 0.586967 12.6957 1.03898L15.6499 7.44368C15.7349 7.6279 15.9087 7.75475 16.1102 7.77864L23.1148 8.60921C23.6091 8.66782 23.807 9.27897 23.4416 9.61694L18.2638 14.4061C18.1148 14.5438 18.0485 14.7488 18.0881 14.9478L19.4622 21.8658C19.5593 22.354 19.0396 22.7323 18.6053 22.4892L12.4507 19.0432C12.2737 18.9441 12.0586 18.9446 11.8816 19.0437L5.72641 22.4883C5.29205 22.7314 4.7715 22.354 4.86851 21.8658L6.2429 14.9483C6.28244 14.7493 6.21629 14.5438 6.06735 14.406L0.888855 9.61676Z\"\n fill={`url(#${gradientId})`}\n className=\"stroke-feedback-warning-stroke hover:stroke-feedback-warning-stroke-emphasis\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n }\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n className={className}\n >\n <path\n d=\"M0.888855 9.61676C0.523397 9.27879 0.721914 8.66782 1.21623 8.60921L8.2204 7.77843C8.42186 7.75455 8.59685 7.62803 8.68182 7.44381L11.6361 1.03906C11.8446 0.587053 12.4872 0.586967 12.6957 1.03898L15.6499 7.44368C15.7349 7.6279 15.9087 7.75475 16.1102 7.77864L23.1148 8.60921C23.6091 8.66782 23.807 9.27897 23.4416 9.61694L18.2638 14.4061C18.1148 14.5438 18.0485 14.7488 18.0881 14.9478L19.4622 21.8658C19.5593 22.354 19.0396 22.7323 18.6053 22.4892L12.4507 19.0432C12.2737 18.9441 12.0586 18.9446 11.8816 19.0437L5.72641 22.4883C5.29205 22.7314 4.7715 22.354 4.86851 21.8658L6.2429 14.9483C6.28244 14.7493 6.21629 14.5438 6.06735 14.406L0.888855 9.61676Z\"\n fill=\"transparent\"\n className=\"stroke-gray-stroke-emphasis\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nfunction getStarState(starIndex: number, value: number): RatingStarState {\n const starValue = starIndex + 1;\n if (value >= starValue) {\n return \"full\";\n }\n if (value >= starValue - 0.5) {\n return \"half\";\n }\n return \"empty\";\n}\n\nfunction Rating({\n value,\n onChange,\n maxStars = 5,\n readOnly = false,\n labels,\n size = \"md\",\n className,\n classNameContainer,\n classNameLabels,\n}: RatingProps) {\n const [internalValue, setInternalValue] = useState(value ?? 0);\n const [hoverIndex, setHoverIndex] = useState<number | null>(null);\n\n const isControlled = value !== undefined;\n const currentValue = isControlled ? value : internalValue;\n\n const handleClick = (starIndex: number) => {\n if (readOnly) return;\n\n const newValue = starIndex + 1;\n\n if (!isControlled) {\n setInternalValue(newValue);\n }\n\n onChange?.(newValue);\n };\n\n const handleMouseEnter = (starIndex: number) => {\n if (readOnly) return;\n setHoverIndex(starIndex);\n };\n\n const handleMouseLeave = () => {\n if (readOnly) return;\n setHoverIndex(null);\n };\n\n return (\n <div\n data-slot=\"rating\"\n className={cn(\"inline-flex w-fit flex-col gap-2\", className)}\n >\n <div\n className={cn(\"inline-flex flex-row gap-1\", classNameContainer)}\n onMouseLeave={handleMouseLeave}\n >\n {Array.from({ length: maxStars }, (_, index) => {\n const isHovering = hoverIndex !== null;\n const isWithinHover = isHovering && index <= hoverIndex;\n const isExactHover = hoverIndex === index;\n\n const starState = isHovering\n ? isWithinHover\n ? \"full\"\n : \"empty\"\n : getStarState(index, currentValue);\n\n return (\n <button\n key={index}\n type=\"button\"\n disabled={readOnly}\n onClick={() => handleClick(index)}\n onMouseEnter={() => handleMouseEnter(index)}\n className={RatingButtonVariants({ size, readOnly })}\n aria-label={`Rate ${index + 1} out of ${maxStars}`}\n >\n <StarIcon\n state={starState}\n className={\n isExactHover && !readOnly\n ? RatingStarHoveredVariants({ size })\n : RatingStarVariants({ size })\n }\n />\n </button>\n );\n })}\n </div>\n {labels && labels.length === 2 && (\n <div className={cn(RatingLabelVariants({ size }), classNameLabels)}>\n <span className=\"truncate\">{labels[0]}</span>\n <span className=\"truncate text-right\">{labels[1]}</span>\n </div>\n )}\n </div>\n );\n}\n\nexport {\n Rating,\n RatingButtonVariants,\n RatingLabelVariants,\n RatingStarVariants,\n};\nexport type { RatingProps, RatingSize, RatingStarState };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { ScrollArea as ScrollAreaPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit]\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollBar orientation=\"horizontal\" />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-px\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-px\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-gray-stroke-muted\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n","\"use client\";\n\nimport { Check, ChevronDown, ChevronUp } from \"@medway-ui/icons\";\nimport { Select as SelectPrimitive } from \"radix-ui\";\nimport {\n createContext,\n useContext,\n HTMLAttributes,\n ComponentProps,\n} from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { cva } from \"class-variance-authority\";\n\nexport type SelectSize = \"md\" | \"lg\";\n\ninterface SelectProps extends ComponentProps<typeof SelectPrimitive.Root> {\n invalid?: boolean;\n size?: SelectSize;\n}\n\nconst SelectContext = createContext<{ invalid: boolean; size: SelectSize }>({\n invalid: false,\n size: \"lg\",\n});\n\nfunction Select({ invalid = false, size = \"lg\", ...props }: SelectProps) {\n return (\n <SelectContext.Provider value={{ invalid, size }}>\n <SelectPrimitive.Root data-slot=\"select\" {...props} />\n </SelectContext.Provider>\n );\n}\n\ninterface SelectLabelProps extends HTMLAttributes<HTMLLabelElement> {\n htmlFor?: string;\n}\n\nfunction SelectWrapper({\n className,\n ...props\n}: HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"group relative flex flex-col gap-2\", className)}\n data-slot=\"select-wrapper\"\n {...props}\n />\n );\n}\n\nfunction SelectLabel({ className, children, ...props }: SelectLabelProps) {\n return (\n <label\n className={cn(\n \"pointer-events-none absolute start-3 top-0 origin-left -translate-y-1/2 bg-surface-card px-1 text-xs font-medium text-gray-foreground transition-all duration-200 ease-out\",\n // Floating label styles\n \"group-has-[[data-slot=select-trigger][data-placeholder]:not([data-state=open])]:start-4 group-has-[[data-slot=select-trigger][data-placeholder]:not([data-state=open])]:top-1/2 group-has-[[data-slot=select-trigger][data-placeholder]:not([data-state=open])]:px-0 group-has-[[data-slot=select-trigger][data-placeholder]:not([data-state=open])]:text-md group-has-[[data-slot=select-trigger][data-placeholder]:not([data-state=open])]:font-normal group-has-[[data-slot=select-trigger][data-placeholder]:not([data-state=open])]:text-gray-foreground\",\n \"group-has-[[data-slot=select-trigger][data-size=md]]:group-has-[[data-slot=select-trigger][data-placeholder]:not([data-state=open])]:!text-sm\",\n className\n )}\n data-slot=\"select-label\"\n {...props}\n >\n {children}\n </label>\n );\n}\n\nfunction SelectGroup({\n ...props\n}: ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({\n ...props\n}: ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nconst selectVariants = cva(\n [\n \"shadow-xs flex w-full items-center justify-between gap-2 rounded-md border-2 border-gray-stroke-muted bg-surface-card px-4 py-3 text-left text-gray-foreground outline-none transition-[color,box-shadow] hover:border-gray-stroke-emphasis hover:ring-[3px] hover:ring-state-focus disabled:cursor-default disabled:bg-gray-background-soft-muted disabled:hover:border-gray-stroke-muted disabled:hover:ring-0 aria-[invalid]:border-feedback-error-stroke aria-[invalid]:hover:ring-[3px] aria-[invalid]:hover:ring-state-error data-[placeholder]:text-gray-foreground-emphasis *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 disabled:data-[placeholder]:text-gray-foreground-muted [&>span]:line-clamp-1 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ],\n {\n variants: {\n size: {\n lg: [\n \"h-12 max-h-12 text-md\",\n \"group-has-[[data-slot=select-label]]:h-14\",\n ],\n md: [\n \"h-10 max-h-10 text-sm\",\n \"group-has-[[data-slot=select-label]]:h-11\",\n ],\n },\n },\n defaultVariants: {\n size: \"lg\",\n },\n }\n);\n\nfunction SelectTrigger({\n className,\n children,\n ...props\n}: ComponentProps<typeof SelectPrimitive.Trigger>) {\n const { invalid, size } = useContext(SelectContext);\n\n return (\n <SelectPrimitive.Trigger\n className={cn(\n selectVariants({ size }),\n !invalid && \"[&:not([data-placeholder])]:border-gray-stroke-emphasis\",\n // Floating label styles\n \"group-has-[[data-slot=select-label]]:py-3 group-has-[[data-slot=select-label]]:data-[placeholder]:text-transparent\",\n className\n )}\n data-slot=\"select-trigger\"\n data-size={size}\n aria-invalid={invalid || undefined}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown\n className={cn(\"shrink-0 text-gray-foreground\")}\n size={size === \"md\" ? 20 : 24}\n strokeWidth={1.6}\n />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"popper\",\n ...props\n}: ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={cn(\n \"relative z-50 max-h-[min(24rem,var(--radix-select-content-available-height))] min-w-32 overflow-hidden rounded-md border border-gray-stroke-muted bg-surface-elevated text-gray-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 [&_[role=group]]:py-1\",\n position === \"popper\" &&\n \"w-full min-w-[var(--radix-select-trigger-width)] data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n data-slot=\"select-content\"\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-2\",\n position === \"popper\" && \"h-[var(--radix-select-trigger-height)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectHeader({\n className,\n ...props\n}: ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n className={cn(\n \"px-2 py-2 text-xs font-medium text-gray-foreground-muted\",\n className\n )}\n data-slot=\"select-header\"\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: ComponentProps<typeof SelectPrimitive.Item>) {\n const { size } = useContext(SelectContext);\n\n return (\n <SelectPrimitive.Item\n className={cn(\n \"data-disabled:pointer-events-none relative flex w-full cursor-default select-none items-center rounded px-2 font-medium text-gray-foreground outline-none hover:cursor-pointer hover:bg-secondary-background-soft-emphasis\",\n size === \"lg\" && \"py-2.5 text-base\",\n size === \"md\" && \"py-2 text-sm\",\n className\n )}\n data-slot=\"select-item\"\n {...props}\n >\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n <span className=\"absolute end-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check\n size={20}\n strokeWidth={2}\n className=\"text-secondary-foreground\"\n />\n </SelectPrimitive.ItemIndicator>\n </span>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n className={cn(\"-mx-1 my-1 h-px bg-gray-stroke-muted\", className)}\n data-slot=\"select-separator\"\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n data-slot=\"select-scroll-up-button\"\n {...props}\n >\n <ChevronUp size={16} strokeWidth={1.6} className=\"text-gray-foreground\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n data-slot=\"select-scroll-down-button\"\n {...props}\n >\n <ChevronDown\n size={24}\n strokeWidth={1.6}\n className=\"text-gray-foreground\"\n />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nfunction SelectText({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n const { invalid } = useContext(SelectContext);\n\n return (\n <span\n className={cn(\n \"-mt-1 text-xs\",\n invalid ? \"text-feedback-error-foreground\" : \"text-gray-foreground\",\n className\n )}\n data-slot=\"select-text\"\n {...props}\n />\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectHeader,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectText,\n SelectTrigger,\n SelectValue,\n SelectWrapper,\n selectVariants,\n};\n","\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Tabs as TabsPrimitive } from \"radix-ui\";\nimport {\n createContext,\n useContext,\n type ComponentProps,\n type ReactNode,\n} from \"react\";\n\nimport { Badge as BadgeComponent, BadgeProps } from \"@/components/Badge\";\nimport { ScrollArea, ScrollBar } from \"@/components/ScrollArea\";\nimport { cn } from \"@/lib/utils\";\n\ntype SegmentSize = \"sm\" | \"md\" | \"lg\";\n\nconst SegmentControlContext = createContext<{\n size: SegmentSize;\n} | null>(null);\n\nfunction SegmentControl({\n className,\n size = \"md\",\n children,\n ...props\n}: ComponentProps<typeof TabsPrimitive.Root> & {\n size?: SegmentSize;\n}) {\n return (\n <SegmentControlContext.Provider value={{ size }}>\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n >\n {children}\n </TabsPrimitive.Root>\n </SegmentControlContext.Provider>\n );\n}\n\ninterface SegmentControlListProps\n extends ComponentProps<typeof TabsPrimitive.List> {\n containerClassName?: string;\n}\n\nfunction SegmentControlList({\n className,\n containerClassName,\n ...props\n}: SegmentControlListProps) {\n return (\n <ScrollArea\n className={cn(\n \"[&_[data-slot=scroll-area-scrollbar][data-orientation=horizontal]]:h-1\",\n containerClassName\n )}\n >\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(\n \"inline-flex w-fit items-center justify-center rounded-md bg-gray-background-soft p-0.5\",\n className\n )}\n {...props}\n />\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n );\n}\n\ninterface SegmentControlTriggerProps\n extends ComponentProps<typeof TabsPrimitive.Trigger> {\n icon?: ReactNode;\n badge?: number | string;\n badgeVariant?: BadgeProps[\"variant\"];\n}\n\nconst segmentControlTriggerVariants = cva(\n \"shadow-transparent data-[state=active]:shadow-level-1 group inline-flex items-center justify-center gap-2.5 whitespace-nowrap rounded-[6px] font-medium text-gray-foreground outline-none data-[state=active]:bg-surface-card data-[state=active]:text-primary-foreground [&_svg]:shrink-0 [&_svg]:text-inherit disabled:text-gray-foreground-muted disabled:pointer-events-none\",\n {\n variants: {\n size: {\n sm: \"max-h-7 px-3 py-1.5 text-xs [&_svg]:size-4\",\n md: \"max-h-9 px-4 py-2 text-sm [&_svg]:size-5\",\n lg: \"max-h-11 px-4 py-2.5 text-md [&_svg]:size-6\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nfunction SegmentControlTrigger({\n className,\n icon,\n badge,\n badgeVariant,\n children,\n ...props\n}: SegmentControlTriggerProps) {\n const shouldShowBadge = (value: number | string | undefined) => {\n return (\n value != null &&\n value !== 0 &&\n value !== \"\" &&\n value !== \"0\" &&\n !props.disabled\n );\n };\n const ctx = useContext(SegmentControlContext);\n const size = ctx?.size ?? \"md\";\n\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(segmentControlTriggerVariants({ size, className }))}\n {...props}\n >\n {icon}\n {children && (\n <span className=\"inline-grid [grid-template-areas:'stack']\">\n <span\n aria-hidden=\"true\"\n className=\"invisible font-semibold [grid-area:stack]\"\n >\n {children}\n </span>\n <span className=\"font-medium [grid-area:stack] group-data-[state=active]:font-semibold\">\n {children}\n </span>\n </span>\n )}\n {shouldShowBadge(badge) && (\n <BadgeComponent size={size} variant={badgeVariant}>\n {String(badge)}\n </BadgeComponent>\n )}\n </TabsPrimitive.Trigger>\n );\n}\n\nfunction SegmentControlContent({\n className,\n ...props\n}: ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n );\n}\n\nexport {\n SegmentControl,\n SegmentControlContent,\n SegmentControlList,\n SegmentControlTrigger,\n segmentControlTriggerVariants,\n};\nexport type { SegmentControlListProps, SegmentControlTriggerProps };\n","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n\n/**\n * Is empty string\n *\n * @param {unknown} value\n * @returns {boolean} Whether the value is an empty string\n */\nexport const isEmptyString = (value: unknown): boolean => value === '';\n\n/**\n * Check if a component has an accessibility prop\n *\n * @param {object} props\n * @returns {boolean} Whether the component has an accessibility prop\n */\nexport const hasA11yProp = (props: Record<string, any>) => {\n for (const prop in props) {\n if (prop.startsWith('aria-') || prop === 'role' || prop === 'title') {\n return true;\n }\n }\n};\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses, hasA11yProp } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) =>\n createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...(!children && !hasA11yProp(rest) && { 'aria-hidden': 'true' }),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n ),\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className,\n ),\n ...props,\n }),\n );\n\n Component.displayName = toPascalCase(iconName);\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n];\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNiA2IDE4IiAvPgogIDxwYXRoIGQ9Im02IDYgMTIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('x', __iconNode);\n\nexport default X;\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { Dialog as SheetPrimitive } from \"radix-ui\";\nimport { XIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Sheet({ ...props }: ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nfunction SheetTrigger({\n ...props\n}: ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetClose({ ...props }: ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\nfunction SheetPortal({\n ...props\n}: ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\nfunction SheetOverlay({\n className,\n ...props\n}: ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n \"bg-black/50 fixed inset-0 z-50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n );\n}\n\ninterface SheetContentProps\n extends ComponentProps<typeof SheetPrimitive.Content> {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n ...props\n}: SheetContentProps) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n \"fixed z-50 flex flex-col gap-4 bg-background shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out\",\n side === \"right\" &&\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n side === \"left\" &&\n \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n side === \"top\" &&\n \"inset-x-0 top-0 h-auto border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n side === \"bottom\" &&\n \"inset-x-0 bottom-0 h-auto border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n className\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"rounded-xs focus:outline-hidden absolute right-4 top-4 opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\nfunction SheetHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-1.5 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetTitle({\n className,\n ...props\n}: ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\"font-semibold text-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\nexport type { SheetContentProps };\n","\"use client\";\n\nimport { type ComponentProps } from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nfunction Skeleton({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-md bg-gray-150\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n","\"use client\";\n\nimport {\n createContext,\n useContext,\n useState,\n useCallback,\n useEffect,\n useMemo,\n isValidElement,\n cloneElement,\n type ComponentProps,\n type ReactNode,\n type CSSProperties,\n type ElementType,\n} from \"react\";\nimport { Slot } from \"radix-ui\";\nimport { VariantProps, cva } from \"class-variance-authority\";\nimport { HamburgerMd, ChevronRightMd, ChevronLeftMd } from \"@medway-ui/icons\";\n\nimport { useIsMobile } from \"@/hooks/use-mobile\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/Button\";\nimport { Input } from \"@/components/Input\";\nimport { Separator } from \"@/components/Separator\";\nimport { Sheet, SheetContent } from \"@/components/Sheet\";\nimport { Skeleton } from \"@/components/Skeleton\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/Tooltip\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open]\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n className={cn(\n \"group/sidebar-wrapper has-data-[variant=inset]:bg-surface-navigation flex min-h-svh w-full\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n containerClassName,\n children,\n ...props\n}: ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n containerClassName?: string;\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"flex h-full w-[var(--sidebar-width)] flex-col bg-surface-navigation text-gray-foreground\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className={cn(\n \"w-[var(--sidebar-width-mobile)] bg-surface-navigation p-0 text-gray-foreground [&>button]:hidden\",\n className\n )}\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className={cn(\n \"group peer hidden text-gray-foreground md:block\",\n className\n )}\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n \"relative w-[var(--sidebar-width)] bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)]\"\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-[var(--sidebar-width)] border-gray-stroke-muted transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-[var(--sidebar-width-icon)] group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n containerClassName\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"flex h-full w-full flex-col bg-surface-navigation group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-gray-stroke-muted group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SidebarTrigger({\n className,\n onClick,\n sizeIcon = \"size-5\",\n icon = <HamburgerMd className={sizeIcon} />,\n showTooltip = false,\n tooltipContent,\n enableHover = false,\n ...props\n}: ComponentProps<typeof Button> & {\n icon?: ReactNode;\n sizeIcon?: string;\n showTooltip?: boolean;\n tooltipContent?: { open?: string; closed?: string };\n enableHover?: boolean;\n}) {\n const { toggleSidebar, open, isMobile } = useSidebar();\n const [isHovered, setIsHovered] = useState(false);\n\n const defaultTooltipContent = {\n open: \"Esconder\",\n closed: \"Mostrar\",\n };\n\n const tooltip = tooltipContent || defaultTooltipContent;\n\n // Determina qual ícone mostrar baseado no hover e estado do sidebar\n const getDisplayIcon = () => {\n if (enableHover && isHovered) {\n return open ? (\n <ChevronLeftMd className={sizeIcon} />\n ) : (\n <ChevronRightMd className={sizeIcon} />\n );\n }\n return icon;\n };\n\n const button = (\n <button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n className={cn(\n \"flex min-h-8 min-w-8 items-center justify-center rounded-full bg-surface-elevated text-gray-foreground transition-all duration-200 hover:shadow-[0px_0px_2px_0px_rgba(24,26,30,0.16),0px_2px_4px_0px_rgba(24,26,30,0.08)] [&>svg]:text-gray-foreground\",\n className\n )}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n onMouseEnter={\n !isMobile && enableHover ? () => setIsHovered(true) : undefined\n }\n onMouseLeave={\n !isMobile && enableHover ? () => setIsHovered(false) : undefined\n }\n {...props}\n >\n {getDisplayIcon()}\n\n <span className=\"sr-only\">Toggle Sidebar</span>\n </button>\n );\n\n if (!showTooltip || isMobile) {\n return button;\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\">\n {open ? tooltip.open : tooltip.closed}\n </TooltipContent>\n </Tooltip>\n );\n}\n\nfunction SidebarRail({ className, ...props }: ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-gray-stroke-muted group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-surface-navigation\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInset({ className, ...props }: ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n \"relative flex w-full flex-1 flex-col bg-surface-navigation\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInput({ className, ...props }: ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\n \"bg-bg-surface-navigation h-8 w-full shadow-none\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarHeader({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-0.5 px-4 pt-3\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\n \"flex flex-col gap-0.5 px-4 pb-3 [[data-state=collapsed]_&]:px-2\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({\n className,\n ...props\n}: ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-gray-stroke-muted\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-0.5 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroup({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\n \"relative flex w-full min-w-0 flex-col p-2 px-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: ComponentProps<\"div\"> & { asChild?: boolean }) {\n const Comp = (asChild ? Slot.Slot : \"div\") as ElementType;\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"outline-hidden flex h-12 shrink-0 items-center whitespace-nowrap rounded-md px-2 text-xs font-semibold uppercase text-gray-foreground-muted ring-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:mt-0 group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: ComponentProps<\"button\"> & { asChild?: boolean }) {\n const Comp = (asChild ? Slot.Slot : \"button\") as ElementType;\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"outline-hidden absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-gray-foreground ring-ring transition-transform hover:bg-secondary-background-soft-emphasis focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenu({ className, ...props }: ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({\n className,\n isActive,\n children,\n ...props\n}: ComponentProps<\"li\"> & { isActive?: boolean }) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative hover:cursor-pointer\", className)}\n {...props}\n >\n {isActive && (\n <span\n className=\"absolute -left-4 top-0 h-full w-0.5 bg-secondary-stroke-emphasis\"\n aria-hidden=\"true\"\n />\n )}\n {children}\n </li>\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button font-medium flex w-full items-center gap-2.5 overflow-hidden rounded-md p-[.55rem] text-left text-sm outline-hidden ring-ring transition-[width,height,padding] hover:bg-secondary-background-soft-emphasis focus-visible:ring-2 active:text-secondary-foreground active:font-semibold disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:text-secondary-foreground data-[active=true]:font-semibold data-[active=true]:hover:bg-secondary-background-soft-emphasis data-[active=true]:hover:text-secondary-foreground group-data-[collapsible=icon]:size-10! group-data-[collapsible=icon]:p-2.5! [&>span:last-child]:truncate [&>svg]:data-[active=true]:stroke-[2.2] [&>svg]:size-5 [&>svg]:shrink-0 mx-auto\",\n {\n variants: {\n variant: {\n default: \"hover:bg-secondary-background-soft-emphasis\",\n section: \"[[data-state=collapsed]_&]:p-[5px]\",\n outline:\n \"bg-surface-navigation shadow-[0_0_0_1px_hsl(var(--color-border))] hover:bg-secondary-background-soft-emphasis hover:shadow-[0_0_0_1px_hsl(var(--secondary))]\",\n },\n size: {\n sm: \"h-8 text-xs\",\n md: \"h-10 text-sm\",\n lg: \"h-12 text-md group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"md\",\n tooltip,\n className,\n ...props\n}: ComponentProps<\"button\"> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = (asChild ? Slot.Slot : \"button\") as ElementType;\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = (asChild ? Slot.Slot : \"button\") as ElementType;\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"outline-hidden absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-gray-foreground ring-ring transition-transform hover:bg-secondary-background-soft-emphasis focus-visible:ring-2 peer-hover/menu-button:text-secondary-stroke-emphasis [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-secondary md:opacity-0\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuBadge({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-gray-foreground\",\n \"peer-hover/menu-button:text-secondary peer-data-[active=true]/menu-button:text-secondary\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: ComponentProps<\"div\"> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-0.5 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"max-w-(--skeleton-width) h-4 flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as CSSProperties\n }\n />\n </div>\n );\n}\n\nfunction SidebarMenuSub({ className, ...props }: ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-gray-stroke-muted px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItemTitle({\n icon,\n title,\n}: {\n icon?: ReactNode;\n title: string;\n}) {\n const { state, isMobile } = useSidebar();\n\n return (\n <>\n {isValidElement(icon)\n ? cloneElement(icon, { strokeWidth: 1.8 } as any)\n : icon}\n <span\n className={cn(\n \"whitespace-nowrap\",\n state === \"collapsed\" && \"opacity-0\",\n isMobile && \"opacity-100\"\n )}\n >\n {title}\n </span>\n </>\n );\n}\n\nfunction SidebarMenuItemCollapse() {\n return (\n <div className=\"ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90\">\n <ChevronRightMd size={20} strokeWidth={1.5} />\n </div>\n );\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n}) {\n const Comp = (asChild ? Slot.Slot : \"a\") as ElementType;\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"outline-hidden flex h-9 min-w-0 -translate-x-px items-center gap-0.5 overflow-hidden rounded-md px-2 font-medium text-gray-foreground ring-ring hover:bg-secondary-background-soft-emphasis focus-visible:ring-2 active:font-semibold active:text-secondary-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-gray-foreground\",\n \"data-[active=true]:font-semibold data-[active=true]:text-secondary-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuItemTitle,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarMenuItemCollapse,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n","\"use client\";\n\nimport { useState, type ReactNode, type ComponentProps } from \"react\";\nimport { Switch as SwitchPrimitive } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst THUMB_SIZES = {\n sm: \"size-2\",\n md: \"size-3\",\n lg: \"size-4\",\n} as const;\n\nconst ICON_SIZES = {\n sm: \"[&_svg]:size-2\",\n md: \"[&_svg]:size-3\",\n lg: \"[&_svg]:size-3.5\",\n} as const;\n\nconst THUMB_TRANSLATE = {\n sm: \"data-[state=checked]:translate-x-[11px] data-[state=checked]:rtl:-translate-x-[11px] data-[state=checked]:data-[disabled]:translate-x-[10px] data-[state=checked]:data-[disabled]:rtl:-translate-x-[10px]\",\n md: \"data-[state=checked]:translate-x-[15px] data-[state=checked]:rtl:-translate-x-[15px] data-[state=checked]:data-[disabled]:translate-x-[14px] data-[state=checked]:data-[disabled]:rtl:-translate-x-[14px]\",\n lg: \"data-[state=checked]:translate-x-[19px] data-[state=checked]:rtl:-translate-x-[19px] data-[state=checked]:data-[disabled]:translate-x-[18px] data-[state=checked]:data-[disabled]:rtl:-translate-x-[18px]\",\n} as const;\n\nconst switchVariants = cva(\n \"peer inline-flex shrink-0 items-center rounded-pill outline-none transition-all disabled:pointer-events-none focus:outline-0\",\n {\n variants: {\n variant: {\n regular:\n \"border-2 border-gray-stroke-muted data-[disabled]:cursor-default data-[disabled]:!bg-gray-background-soft-muted data-[state=checked]:bg-primary-background-fill data-[state=unchecked]:bg-surface-card data-[state=checked]:border-transparent data-[disabled]:data-[state=checked]:bg-gray-background-soft-muted data-[disabled]:data-[state=checked]:border-gray-stroke-muted enabled:hover:ring-4 data-[state=unchecked]:enabled:hover:ring-state-hover data-[state=checked]:enabled:hover:ring-state-active data-[state=unchecked]:enabled:hover:border-gray-stroke data-[state=checked]:enabled:hover:bg-primary-background-fill-emphasis\",\n },\n size: {\n sm: \"h-4 w-6\",\n md: \"h-5 w-8\",\n lg: \"h-6 w-10\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n size: \"md\",\n },\n }\n);\n\ninterface SwitchProps\n extends ComponentProps<typeof SwitchPrimitive.Root>,\n VariantProps<typeof switchVariants> {\n checkedIcon?: ReactNode;\n uncheckedIcon?: ReactNode;\n}\n\nfunction Switch({\n className,\n size,\n variant,\n checkedIcon,\n uncheckedIcon,\n checked,\n defaultChecked,\n ...props\n}: SwitchProps) {\n const [internalChecked, setInternalChecked] = useState(\n defaultChecked || false\n );\n\n const isControlled = checked !== undefined;\n const isChecked = isControlled ? checked : internalChecked;\n\n const hasIcons = checkedIcon || uncheckedIcon;\n\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\"group\", switchVariants({ size, variant }), className)}\n checked={checked}\n defaultChecked={defaultChecked}\n onCheckedChange={(checked) => {\n if (!isControlled) {\n setInternalChecked(checked);\n }\n props.onCheckedChange?.(checked);\n }}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"pointer-events-none flex items-center justify-center rounded-full ring-0 transition-transform data-[state=unchecked]:translate-x-0.5 data-[disabled]:!bg-gray-background-fill-muted data-[state=checked]:bg-primary-foreground-onfill data-[state=unchecked]:bg-gray-foreground-muted data-[state=unchecked]:group-hover:bg-gray-foreground data-[state=unchecked]:group-data-[disabled]:group-hover:bg-gray-foreground-muted\",\n hasIcons && \"!bg-transparent data-[disabled]:!bg-transparent\",\n THUMB_SIZES[size || \"md\"],\n THUMB_TRANSLATE[size || \"md\"]\n )}\n >\n {hasIcons && (\n <>\n {isChecked && checkedIcon && (\n <span\n className={cn(\n \"flex items-center justify-center text-primary-foreground-onfill group-data-[disabled]:text-gray-300\",\n ICON_SIZES[size || \"md\"]\n )}\n >\n {checkedIcon}\n </span>\n )}\n {!isChecked && uncheckedIcon && (\n <span\n className={cn(\n \"flex items-center justify-center text-gray-foreground group-data-[disabled]:text-gray-300\",\n ICON_SIZES[size || \"md\"]\n )}\n >\n {uncheckedIcon}\n </span>\n )}\n </>\n )}\n </SwitchPrimitive.Thumb>\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch, switchVariants };\nexport type { SwitchProps };\n","\"use client\";\n\nimport { createContext, useContext, useState, type ReactNode } from \"react\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/DropdownMenu\";\n\ninterface SwitcherContextValue {\n value?: string;\n onValueChange?: (value: string) => void;\n}\n\nconst SwitcherContext = createContext<SwitcherContextValue>({});\n\ninterface SwitcherItem {\n id: string;\n label: string;\n icon?: string;\n onClick?: () => void;\n}\n\ninterface SwitcherGroup {\n label: string;\n items: SwitcherItem[];\n}\n\ninterface SwitcherProps {\n children: ReactNode;\n value?: string;\n onValueChange?: (value: string) => void;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\ninterface SwitcherTriggerProps {\n children: ReactNode;\n asChild?: boolean;\n className?: string;\n}\n\ninterface SwitcherContentProps {\n children: ReactNode;\n className?: string;\n align?: \"start\" | \"center\" | \"end\";\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n}\n\ninterface SwitcherGroupProps {\n children: ReactNode;\n label?: string;\n}\n\ninterface SwitcherItemProps {\n children: ReactNode;\n value?: string;\n onClick?: () => void;\n icon?: string | ReactNode;\n}\n\ninterface SwitcherFooterProps {\n children: ReactNode;\n onClick?: () => void;\n icon?: ReactNode;\n}\n\nfunction Switcher({\n children,\n value,\n onValueChange,\n open,\n defaultOpen,\n onOpenChange,\n}: SwitcherProps) {\n const [internalValue, setInternalValue] = useState(value || \"\");\n\n const contextValue: SwitcherContextValue = {\n value: value || internalValue,\n onValueChange: onValueChange || setInternalValue,\n };\n\n return (\n <SwitcherContext.Provider value={contextValue}>\n <DropdownMenu\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n >\n {children}\n </DropdownMenu>\n </SwitcherContext.Provider>\n );\n}\n\nfunction SwitcherTrigger({\n children,\n asChild = true,\n className,\n}: SwitcherTriggerProps) {\n return (\n <DropdownMenuTrigger className={className} asChild={asChild}>\n {children}\n </DropdownMenuTrigger>\n );\n}\n\nfunction SwitcherContent({\n children,\n align = \"center\",\n side = \"right\",\n className,\n}: SwitcherContentProps) {\n return (\n <DropdownMenuContent className={className} align={align} side={side}>\n {children}\n </DropdownMenuContent>\n );\n}\n\nfunction SwitcherGroup({ children, label }: SwitcherGroupProps) {\n const { value, onValueChange } = useContext(SwitcherContext);\n\n if (label) {\n return (\n <>\n <DropdownMenuLabel>{label}</DropdownMenuLabel>\n <DropdownMenuRadioGroup value={value} onValueChange={onValueChange}>\n {children}\n </DropdownMenuRadioGroup>\n </>\n );\n }\n\n return (\n <DropdownMenuRadioGroup value={value} onValueChange={onValueChange}>\n {children}\n </DropdownMenuRadioGroup>\n );\n}\n\nfunction SwitcherItem({ children, value, onClick, icon }: SwitcherItemProps) {\n const handleClick = () => {\n if (onClick) {\n onClick();\n }\n };\n\n if (value) {\n return (\n <DropdownMenuRadioItem value={value} onClick={handleClick}>\n {typeof icon === \"string\" ? (\n // eslint-disable-next-line @next/next/no-img-element\n <img src={icon} alt=\"\" width={20} height={14} />\n ) : (\n icon\n )}\n {children}\n </DropdownMenuRadioItem>\n );\n }\n\n return (\n <DropdownMenuItem onClick={handleClick}>\n {typeof icon === \"string\" ? (\n // eslint-disable-next-line @next/next/no-img-element\n <img src={icon} alt=\"\" width={20} height={14} />\n ) : (\n icon\n )}\n {children}\n </DropdownMenuItem>\n );\n}\n\nfunction SwitcherFooter({ children, onClick, icon }: SwitcherFooterProps) {\n return (\n <DropdownMenuItem onClick={onClick}>\n {icon}\n {children}\n </DropdownMenuItem>\n );\n}\n\nfunction SwitcherSeparator() {\n return <DropdownMenuSeparator />;\n}\n\nexport {\n Switcher,\n SwitcherTrigger,\n SwitcherContent,\n SwitcherGroup,\n SwitcherItem,\n SwitcherFooter,\n SwitcherSeparator,\n};\n\nexport type {\n SwitcherProps,\n SwitcherTriggerProps,\n SwitcherContentProps,\n SwitcherGroupProps,\n SwitcherItemProps,\n SwitcherFooterProps,\n SwitcherGroup as SwitcherGroupType,\n SwitcherItem as SwitcherItemType,\n};\n","\"use client\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Tabs as TabsPrimitive } from \"radix-ui\";\nimport {\n createContext,\n useContext,\n useState,\n useCallback,\n useEffect,\n useRef,\n isValidElement,\n cloneElement,\n type ComponentProps,\n type ReactNode,\n type ReactElement,\n} from \"react\";\n\nimport { screens } from \"@/assets/js/tokens\";\nimport { cn } from \"@/lib/utils\";\n\ntype TabsVariant = \"header\" | \"standalone\";\ntype TabsSize = \"md\" | \"lg\";\n\ninterface TabsProps\n extends ComponentProps<typeof TabsPrimitive.Root>,\n VariantProps<typeof tabsListVariants> {\n size?: TabsSize;\n responsive?: boolean;\n}\n\ntype TabsListProps = ComponentProps<typeof TabsPrimitive.List>;\n\ninterface TabsTriggerProps\n extends ComponentProps<typeof TabsPrimitive.Trigger> {\n icon?: ReactNode;\n badge?: ReactNode;\n}\n\nconst TabsContext = createContext<{\n variant: TabsVariant;\n size: TabsSize;\n responsiveSize: TabsSize;\n} | null>(null);\n\nconst DEBOUNCE_DELAY = 150;\nconst SCROLL_PADDING = 16;\nconst FADE_GRADIENT_WIDTH = \"w-8\";\n\nfunction useTabsContext() {\n const context = useContext(TabsContext);\n if (!context) {\n throw new Error(\"useTabsContext must be used within a Tabs component.\");\n }\n return context;\n}\n\nfunction useDebounce<T extends (...args: unknown[]) => void>(\n callback: T,\n delay: number\n): T {\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n return useCallback(\n ((...args: Parameters<T>) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n timeoutRef.current = setTimeout(() => callback(...args), delay);\n }) as T,\n [callback, delay]\n );\n}\n\nconst tabsListVariants = cva(\n \"relative inline-flex min-w-full items-center justify-between gap-0 bg-surface-section\",\n {\n variants: {\n variant: {\n standalone: \"rounded-lg border border-gray-stroke-muted px-6\",\n header:\n \"border-b border-gray-stroke-muted px-3.5 sm:px-6 lg:px-8 bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"standalone\",\n },\n }\n);\n\nconst tabsTriggerVariants = cva(\n [\n \"inline-flex min-w-fit flex-1 items-center justify-center gap-2 whitespace-nowrap font-medium transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n \"disabled:pointer-events-none disabled:text-gray-foreground-muted\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:transition-all\",\n \"relative font-medium text-gray-foreground hover:text-gray-foreground data-[state=active]:text-primary-foreground data-[state=active]:font-semibold\",\n ],\n {\n variants: {\n variant: {\n standalone: \"px-3.5 md:px-10 lg:px-16\",\n header: \"px-4\",\n },\n size: {\n md: \"h-[46px] text-sm\",\n lg: \"h-[54px] text-base\",\n },\n },\n defaultVariants: {\n variant: \"standalone\",\n size: \"md\",\n },\n }\n);\n\nconst tabsWrapperVariants = cva(\"relative min-w-0 max-w-full\", {\n variants: {\n variant: {\n standalone: \"\",\n header: \"px-3.5 sm:px-6 lg:px-8\",\n },\n },\n defaultVariants: {\n variant: \"standalone\",\n },\n});\n\nconst fadeGradientVariants = cva(\n [\n \"pointer-events-none absolute top-0 z-10 h-full transition-opacity duration-200\",\n FADE_GRADIENT_WIDTH,\n ],\n {\n variants: {\n side: {\n left: \"left-0 bg-gradient-to-r from-background to-transparent\",\n right: \"right-0 bg-gradient-to-l from-background to-transparent\",\n },\n variant: {\n standalone: \"\",\n header: \"\",\n },\n },\n compoundVariants: [\n {\n side: \"left\",\n variant: \"header\",\n class: \"left-3.5 sm:left-6 lg:left-8\",\n },\n {\n side: \"right\",\n variant: \"header\",\n class: \"right-3.5 sm:right-6 lg:right-8\",\n },\n ],\n defaultVariants: {\n side: \"left\",\n variant: \"standalone\",\n },\n }\n);\n\nconst tabsContentVariants = cva(\n \"ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n {\n variants: {\n variant: {\n standalone: \"\",\n header: \"\",\n },\n size: {\n md: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n {\n variant: \"standalone\",\n size: \"md\",\n class: \"m-4\",\n },\n {\n variant: \"standalone\",\n size: \"lg\",\n class: \"m-6\",\n },\n {\n variant: \"header\",\n size: \"md\",\n class: \"my-4\",\n },\n {\n variant: \"header\",\n size: \"lg\",\n class: \"my-6\",\n },\n ],\n defaultVariants: {\n variant: \"standalone\",\n size: \"md\",\n },\n }\n);\n\nfunction Tabs({\n className,\n variant = \"standalone\",\n size = \"md\",\n responsive = true,\n children,\n ...props\n}: TabsProps) {\n const [responsiveSize, setResponsiveSize] = useState<TabsSize>(size);\n\n const handleResize = useCallback(() => {\n if (typeof window === \"undefined\") return;\n\n const tabletPx = parseInt(screens.tablet);\n const mobilePx = parseInt(screens.mobile);\n const width = window.innerWidth;\n\n if (width <= mobilePx || width <= tabletPx) {\n setResponsiveSize(\"md\");\n } else {\n setResponsiveSize(size);\n }\n }, [size]);\n\n const debouncedResize = useDebounce(handleResize, DEBOUNCE_DELAY);\n\n useEffect(() => {\n if (typeof window === \"undefined\" || !responsive) {\n setResponsiveSize(size);\n return;\n }\n\n handleResize();\n window.addEventListener(\"resize\", debouncedResize);\n\n return () => window.removeEventListener(\"resize\", debouncedResize);\n }, [responsive, size, handleResize, debouncedResize]);\n\n return (\n <TabsContext.Provider value={{ variant: variant!, size, responsiveSize }}>\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-variant={variant}\n data-size={responsiveSize}\n className={cn(\n \"flex w-full max-w-full flex-col overflow-hidden\",\n className\n )}\n {...props}\n >\n {children}\n </TabsPrimitive.Root>\n </TabsContext.Provider>\n );\n}\nfunction TabsList({ className, children, ...props }: TabsListProps) {\n const { variant, responsiveSize } = useTabsContext();\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const [showLeftFade, setShowLeftFade] = useState(false);\n const [showRightFade, setShowRightFade] = useState(false);\n const [indicatorStyle, setIndicatorStyle] = useState<{\n left: number;\n width: number;\n } | null>(null);\n\n const checkScroll = useCallback(() => {\n const container = scrollContainerRef.current;\n if (!container) return;\n\n const { scrollLeft, scrollWidth, clientWidth } = container;\n const hasOverflow = scrollWidth > clientWidth;\n\n setShowLeftFade(hasOverflow && scrollLeft > 0);\n setShowRightFade(hasOverflow && scrollLeft < scrollWidth - clientWidth - 1);\n }, []);\n\n const updateIndicator = useCallback(() => {\n const list = listRef.current;\n if (!list) return;\n\n const activeTab = list.querySelector<HTMLElement>('[data-state=\"active\"]');\n if (activeTab) {\n const listRect = list.getBoundingClientRect();\n const tabRect = activeTab.getBoundingClientRect();\n setIndicatorStyle({\n left: tabRect.left - listRect.left,\n width: tabRect.width,\n });\n }\n }, []);\n\n const scrollActiveTabIntoView = useCallback(() => {\n const container = scrollContainerRef.current;\n const list = listRef.current;\n if (!container || !list) return;\n\n const activeTab = list.querySelector<HTMLElement>('[data-state=\"active\"]');\n if (activeTab) {\n const containerRect = container.getBoundingClientRect();\n const tabRect = activeTab.getBoundingClientRect();\n\n if (tabRect.left < containerRect.left) {\n container.scrollBy({\n left: tabRect.left - containerRect.left - SCROLL_PADDING,\n behavior: \"smooth\",\n });\n } else if (tabRect.right > containerRect.right) {\n container.scrollBy({\n left: tabRect.right - containerRect.right + SCROLL_PADDING,\n behavior: \"smooth\",\n });\n }\n }\n }, []);\n\n useEffect(() => {\n const container = scrollContainerRef.current;\n if (!container) return;\n\n checkScroll();\n\n const resizeObserver = new ResizeObserver(() => {\n checkScroll();\n updateIndicator();\n });\n resizeObserver.observe(container);\n\n container.addEventListener(\"scroll\", checkScroll, { passive: true });\n\n return () => {\n resizeObserver.disconnect();\n container.removeEventListener(\"scroll\", checkScroll);\n };\n }, [checkScroll, updateIndicator]);\n\n useEffect(() => {\n updateIndicator();\n }, [updateIndicator, children]);\n\n useEffect(() => {\n const list = listRef.current;\n if (!list) return;\n\n const observer = new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (\n mutation.type === \"attributes\" &&\n mutation.attributeName === \"data-state\"\n ) {\n updateIndicator();\n scrollActiveTabIntoView();\n break;\n }\n }\n });\n\n observer.observe(list, {\n attributes: true,\n subtree: true,\n attributeFilter: [\"data-state\"],\n });\n\n return () => observer.disconnect();\n }, [updateIndicator, scrollActiveTabIntoView]);\n\n return (\n <div\n data-slot=\"tabs-list-wrapper\"\n className={tabsWrapperVariants({ variant })}\n >\n {/* Left fade gradient */}\n <div\n className={cn(\n fadeGradientVariants({ side: \"left\", variant }),\n showLeftFade ? \"opacity-100\" : \"opacity-0\"\n )}\n aria-hidden=\"true\"\n />\n\n {/* Right fade gradient */}\n <div\n className={cn(\n fadeGradientVariants({ side: \"right\", variant }),\n showRightFade ? \"opacity-100\" : \"opacity-0\"\n )}\n aria-hidden=\"true\"\n />\n\n <div\n ref={scrollContainerRef}\n className=\"overflow-x-auto overflow-y-hidden [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\"\n >\n <div ref={listRef} className=\"relative\">\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n data-size={responsiveSize}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n >\n {children}\n </TabsPrimitive.List>\n\n {/* Sliding indicator */}\n {indicatorStyle && (\n <div\n className=\"pointer-events-none absolute bottom-0 h-0.5 bg-secondary-stroke-emphasis transition-all duration-300 ease-out\"\n style={{\n left: indicatorStyle.left,\n width: indicatorStyle.width,\n }}\n aria-hidden=\"true\"\n />\n )}\n </div>\n </div>\n </div>\n );\n}\n\nfunction TabsTrigger({\n className,\n children,\n icon,\n badge,\n ...props\n}: TabsTriggerProps) {\n const { variant, responsiveSize } = useTabsContext();\n const triggerRef = useRef<HTMLButtonElement>(null);\n const [isActive, setIsActive] = useState(false);\n\n useEffect(() => {\n const trigger = triggerRef.current;\n if (!trigger) return;\n\n const checkActiveState = () => {\n setIsActive(trigger.getAttribute(\"data-state\") === \"active\");\n };\n\n checkActiveState();\n\n const observer = new MutationObserver(checkActiveState);\n observer.observe(trigger, {\n attributes: true,\n attributeFilter: [\"data-state\"],\n });\n\n return () => observer.disconnect();\n }, []);\n\n const renderIcon = () => {\n if (!icon) return null;\n\n if (isValidElement(icon)) {\n return cloneElement(icon as ReactElement<{ strokeWidth?: number }>, {\n strokeWidth: isActive ? 2 : 1.6,\n });\n }\n\n return icon;\n };\n\n return (\n <TabsPrimitive.Trigger\n ref={triggerRef}\n data-slot=\"tabs-trigger\"\n data-variant={variant}\n data-size={responsiveSize}\n className={cn(\n tabsTriggerVariants({ variant, size: responsiveSize }),\n className\n )}\n {...props}\n >\n {icon && (\n <span\n data-slot=\"tabs-icon\"\n className=\"flex shrink-0 items-center\"\n aria-hidden=\"true\"\n >\n {renderIcon()}\n </span>\n )}\n <span>{children}</span>\n {badge && (\n <span\n data-slot=\"tabs-badge\"\n className=\"flex shrink-0 items-center\"\n role=\"status\"\n >\n {badge}\n </span>\n )}\n </TabsPrimitive.Trigger>\n );\n}\n\nfunction TabsContent({\n className,\n ...props\n}: ComponentProps<typeof TabsPrimitive.Content>) {\n const { variant, responsiveSize } = useTabsContext();\n\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n data-variant={variant}\n data-size={responsiveSize}\n className={cn(\n tabsContentVariants({ variant, size: responsiveSize }),\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Tabs,\n TabsContent,\n tabsContentVariants,\n TabsList,\n tabsListVariants,\n TabsTrigger,\n tabsTriggerVariants,\n useTabsContext,\n};\nexport type { TabsProps, TabsTriggerProps, TabsVariant, TabsSize };\n","\"use client\";\n\nimport { type ComponentProps, type ElementType, type ReactNode } from \"react\";\nimport { Slot } from \"radix-ui\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { EditPencil } from \"@medway-ui/icons\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst tileVariants = cva(\n \"group/tile relative flex flex-col justify-center rounded-lg gap-0.5 px-5 py-4 cursor-default data-[disabled=true]:pointer-events-none\",\n {\n variants: {\n variant: {\n regular:\n \"bg-surface-settings-on text-primary-foreground fill-primary-foreground data-[disabled=false]:hover:[background:radial-gradient(51.96%_112.02%_at_50%_112.02%,_var(--color-surface-card)_0%,_var(--color-surface-settings-on)_100%)] data-[disabled=true]:bg-surface-disable data-[inactive=true]:bg-surface-settings-off data-[inactive=true]:hover:[background:radial-gradient(51.96%_112.02%_at_50%_112.02%,_var(--color-surface-card)_0%,_var(--color-surface-settings-off)_100%)]\",\n cm: \"bg-cm-background-fill text-cm-foreground-onfill fill-cm-foreground-onfill data-[disabled=false]:hover:[background:radial-gradient(63.78%_137.5%_at_50%_137.5%,_var(--color-cm-background-fill-emphasis)_0%,_var(--color-cm-background-fill)_100%)] data-[disabled=true]:opacity-70 data-[inactive=true]:[filter:brightness(.8)]\",\n go: \"bg-go-background-fill text-go-foreground-onfill fill-go-foreground-onfill data-[disabled=false]:hover:[background:radial-gradient(63.78%_137.5%_at_50%_137.5%,_var(--color-go-background-fill-emphasis)_0%,_var(--color-go-background-fill)_100%)] data-[disabled=true]:opacity-70 data-[inactive=true]:[filter:brightness(.8)]\",\n cir: \"bg-cir-background-fill text-cir-foreground-onfill fill-cir-foreground-onfill data-[disabled=false]:hover:[background:radial-gradient(63.78%_137.5%_at_50%_137.5%,_var(--color-cir-background-fill-emphasis)_0%,_var(--color-cir-background-fill)_100%)] data-[disabled=true]:opacity-70 data-[inactive=true]:[filter:brightness(.8)]\",\n ped: \"bg-ped-background-fill text-ped-foreground-onfill fill-ped-foreground-onfill data-[disabled=false]:hover:[background:radial-gradient(51.96%_112.02%_at_50%_112.02%,_var(--color-ped-background-fill-emphasis)_0%,_var(--color-ped-background-fill)_100%)] data-[disabled=true]:opacity-70 data-[inactive=true]:[filter:brightness(.8)]\",\n prev: \"bg-prev-background-fill text-prev-foreground-onfill fill-prev-foreground-onfill data-[disabled=false]:hover:[background:radial-gradient(63.78%_137.5%_at_50%_137.5%,_var(--color-prev-background-fill-emphasis)_0%,_var(--color-prev-background-fill)_100%)] data-[disabled=true]:opacity-70 data-[inactive=true]:[filter:brightness(.8)]\",\n },\n },\n defaultVariants: {\n variant: \"regular\",\n },\n }\n);\n\ninterface TileProps\n extends ComponentProps<\"div\">,\n VariantProps<typeof tileVariants> {\n asChild?: boolean;\n disabled?: boolean;\n inactive?: boolean;\n}\n\nfunction Tile({\n className,\n variant = \"regular\",\n asChild = false,\n disabled = false,\n inactive = false,\n ...props\n}: TileProps) {\n const Comp = (asChild ? Slot.Slot : \"div\") as ElementType;\n\n return (\n <Comp\n data-slot=\"tile\"\n data-variant={variant}\n data-inactive={inactive}\n data-disabled={disabled}\n aria-disabled={disabled || inactive}\n className={cn(\n tileVariants({ variant, className }),\n props.onClick && !disabled && \"cursor-pointer\"\n )}\n {...props}\n >\n {props.children}\n {props.onClick && !disabled && (\n <EditPencil className=\"absolute right-5 top-4 size-5 opacity-0 transition-opacity group-hover/tile:opacity-100\" />\n )}\n </Comp>\n );\n}\n\nfunction TileIcon({\n className,\n icon,\n ...props\n}: ComponentProps<\"div\"> & {\n icon?: ReactNode;\n}) {\n return (\n <div\n data-slot=\"tile-icon\"\n className={cn(\"mb-2.5 last:mb-0 [&>svg]:size-5\", className)}\n {...props}\n >\n {icon}\n </div>\n );\n}\n\nfunction TileTitle({ className, ...props }: ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"tile-title\"\n className={cn(\"line-clamp-1 flex w-fit text-xs font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction TileDescription({ className, ...props }: ComponentProps<\"p\">) {\n return (\n <span\n data-slot=\"tile-description\"\n className={cn(\"line-clamp-1 flex w-fit text-sm font-semibold\", className)}\n {...props}\n />\n );\n}\n\nexport { Tile, TileIcon, TileTitle, TileDescription, tileVariants };\nexport type { TileProps };\n","\"use client\";\n\n// Inspired by shadcn/ui toast implementation\nimport { useState, useEffect, type ReactNode } from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/Toast\";\n\nconst TOAST_LIMIT = 3;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: ReactNode;\n description?: ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: actionTypes.REMOVE_TOAST,\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case actionTypes.ADD_TOAST:\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case actionTypes.UPDATE_TOAST:\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t\n ),\n };\n\n case actionTypes.DISMISS_TOAST: {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || action.toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t\n ),\n };\n }\n case actionTypes.REMOVE_TOAST:\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: actionTypes.UPDATE_TOAST,\n toast: { ...props, id },\n });\n const dismiss = () =>\n dispatch({ type: actionTypes.DISMISS_TOAST, toastId: id });\n\n dispatch({\n type: actionTypes.ADD_TOAST,\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = useState<State>(memoryState);\n\n useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) =>\n dispatch({ type: actionTypes.DISMISS_TOAST, toastId }),\n };\n}\n\nexport { useToast, toast };\n","\"use client\";\n\nimport {\n CloseMd,\n Info,\n CircleCheck,\n TriangleWarning,\n OctagonWarning,\n} from \"@medway-ui/icons\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { Toast as ToastPrimitive } from \"radix-ui\";\nimport { type ComponentPropsWithoutRef, type ReactElement } from \"react\";\n\nimport { Button, type ButtonProps } from \"@/components/Button\";\nimport { useToast } from \"@/hooks/use-toast\";\nimport { cn } from \"@/lib/utils\";\n\ntype ToastActionVariant =\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"warning\"\n | \"error\";\n\ninterface ToastProps\n extends ComponentPropsWithoutRef<typeof ToastPrimitive.Root>,\n VariantProps<typeof toastVariants> {\n showIcon?: boolean;\n duration?: number;\n}\n\ninterface ToastActionProps\n extends Omit<ButtonProps, \"variant\">,\n ComponentPropsWithoutRef<typeof ToastPrimitive.Action> {\n variant?: ToastActionVariant;\n}\n\ninterface ToastCloseProps\n extends ComponentPropsWithoutRef<typeof ToastPrimitive.Close> {\n label?: string;\n}\n\ntype ToastActionElement = ReactElement<typeof ToastAction>;\n\nconst toastVariants = cva(\n \"group pointer-events-auto relative flex w-full items-center justify-between gap-4 overflow-hidden rounded-md bg-surface-elevated p-2 pl-4 shadow-lg\",\n {\n variants: {\n variant: {\n primary: \"text-primary-foreground\",\n secondary: \"text-secondary-foreground\",\n success: \"text-feedback-success-foreground\",\n warning: \"text-feedback-warning-foreground\",\n error: \"text-feedback-error-foreground\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n },\n }\n);\n\nconst toastIconVariants = cva(\"size-6 shrink-0\", {\n variants: {\n variant: {\n primary: \"text-primary-foreground fill-primary-background-soft\",\n secondary: \"text-secondary-foreground fill-secondary-background-soft\",\n success:\n \"text-feedback-success-foreground fill-feedback-success-background-soft\",\n warning:\n \"text-feedback-warning-foreground fill-feedback-warning-background-soft\",\n error:\n \"text-feedback-error-foreground fill-feedback-error-background-soft\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n },\n});\n\nconst toastActionButtonVariantMap: Record<\n ToastActionVariant,\n ButtonProps[\"variant\"]\n> = {\n primary: \"regular-soft\",\n secondary: \"emphasis-soft\",\n success: \"success-soft\",\n warning: \"warning-soft\",\n error: \"error-soft\",\n};\n\nconst variantIcons = {\n primary: Info,\n secondary: Info,\n success: CircleCheck,\n warning: TriangleWarning,\n error: OctagonWarning,\n};\n\nconst ToastProvider = ToastPrimitive.Provider;\n\nfunction ToastViewport({\n className,\n ...props\n}: ComponentPropsWithoutRef<typeof ToastPrimitive.Viewport>) {\n return (\n <ToastPrimitive.Viewport\n className={cn(\n \"fixed right-0 top-0 z-[100] flex max-h-screen w-full min-w-0 max-w-[500px] flex-col gap-2 p-4 md:w-[500px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction Toast({\n className,\n variant = \"primary\",\n showIcon = true,\n duration = 5000,\n children,\n ...props\n}: ToastProps) {\n const IconComponent = variantIcons[variant || \"primary\"];\n\n return (\n <ToastPrimitive.Root duration={duration} {...props} forceMount asChild>\n <motion.li\n initial={{ opacity: 0, y: -50 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -50, zIndex: -1 }}\n transition={{ duration: 0.4, ease: \"easeInOut\" }}\n layout\n className={cn(toastVariants({ variant }), className)}\n >\n {showIcon && (\n <IconComponent className={cn(toastIconVariants({ variant }))} />\n )}\n <div className=\"flex flex-1 items-center justify-between gap-4\">\n {children}\n </div>\n </motion.li>\n </ToastPrimitive.Root>\n );\n}\n\nfunction ToastAction({\n className,\n variant = \"primary\",\n size = \"sm\",\n iconLeft,\n iconRight,\n children,\n altText = \"Toast action\",\n ...props\n}: ToastActionProps) {\n return (\n <ToastPrimitive.Action\n asChild\n altText={altText}\n className={cn(\"inline-flex items-center justify-center\", className)}\n {...props}\n >\n <Button\n iconLeft={iconLeft}\n iconRight={iconRight}\n size={size}\n variant={toastActionButtonVariantMap[variant]}\n >\n {children}\n </Button>\n </ToastPrimitive.Action>\n );\n}\n\nfunction ToastClose({\n className,\n label = \"Fechar\",\n ...props\n}: ToastCloseProps) {\n return (\n <ToastPrimitive.Close\n className={cn(\"shrink-0\", className)}\n {...props}\n asChild\n >\n <Button\n iconLeft={<CloseMd className=\"size-4\" />}\n size=\"sm\"\n aria-label={label}\n variant=\"regular-basic\"\n />\n </ToastPrimitive.Close>\n );\n}\n\nfunction ToastTitle({\n className,\n ...props\n}: ComponentPropsWithoutRef<typeof ToastPrimitive.Title>) {\n return (\n <ToastPrimitive.Title\n className={cn(\"flex-1 text-md font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction ToastDescription({\n className,\n ...props\n}: ComponentPropsWithoutRef<typeof ToastPrimitive.Description>) {\n return (\n <ToastPrimitive.Description\n className={cn(\"text-xs\", className)}\n {...props}\n />\n );\n}\n\nfunction Toaster() {\n const { toasts } = useToast();\n\n return (\n <ToastProvider>\n <AnimatePresence mode=\"popLayout\">\n {toasts\n .filter((t) => t.open)\n .map(function ({ id, title, description, action, ...props }) {\n return (\n <Toast key={id} {...props}>\n <div className=\"grid\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && (\n <ToastDescription>{description}</ToastDescription>\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n {action}\n <ToastClose />\n </div>\n </Toast>\n );\n })}\n </AnimatePresence>\n <ToastViewport />\n </ToastProvider>\n );\n}\n\nexport {\n Toast,\n ToastAction,\n ToastClose,\n ToastDescription,\n Toaster,\n ToastProvider,\n ToastTitle,\n toastVariants,\n ToastViewport,\n};\nexport type { ToastActionElement, ToastProps };\n"]}