UNPKG

questro

Version:

A lightweight, modular gamification library for React with unique visual components. Features combo meters, daily challenges, achievement toasts, and progress rings. Add points, badges, quests, leaderboards, levels/XP, streaks, and notifications with zero

70 lines (65 loc) 5.71 kB
import { E as EventEmitter, S as StorageAdapter, T as Timestamp } from './types-B4P_iNGe.js'; export { b as Entity, a as EntityId, R as Result, U as User } from './types-B4P_iNGe.js'; export { LifetimePointsDisplay, PointReason, PointTransaction, PointsAnimation, PointsConfig, PointsDisplay, PointsEvents, PointsProvider, PointsService, PointsServiceImpl, PointsState, usePoints, usePointsContext } from './points/index.js'; export { Badge, BadgeCard, BadgeCategory, BadgeCondition, BadgeCount, BadgeGrid, BadgeProgress, BadgeProgressBar, BadgeRarity, BadgesConfig, BadgesEvents, BadgesProvider, BadgesService, BadgesServiceImpl, BadgesState, UnlockedBadge, useBadges, useBadgesContext } from './badges/index.js'; export { Quest, QuestCard, QuestCardProps, QuestDifficulty, QuestList, QuestListProps, QuestObjective, QuestRecurrence, QuestReward, QuestStats, QuestStatsProps, QuestStatus, QuestsConfig, QuestsEvents, QuestsProvider, QuestsProviderProps, QuestsService, QuestsServiceImpl, QuestsState, UseQuestsReturn, useQuests, useQuestsContext } from './quests/index.js'; export { CurrentUserRank, CurrentUserRankProps, Leaderboard, LeaderboardConfig, LeaderboardEntry, LeaderboardEvents, LeaderboardFilters, LeaderboardFiltersProps, LeaderboardMetric, LeaderboardPeriod, LeaderboardProps, LeaderboardProvider, LeaderboardProviderProps, LeaderboardService, LeaderboardServiceImpl, LeaderboardState, UseLeaderboardReturn, useLeaderboard, useLeaderboardContext } from './leaderboard/index.js'; export { LevelConfig, LevelData, LevelDisplay, LevelDisplayProps, LevelFormula, LevelUpEvent, LevelsProvider, LevelsProviderProps, LevelsService, LevelsState, XPBar, XPBarProps, XPTransaction, XP_FORMULAS, calculateLevelFromXP, calculateLevelProgress, calculateXPForLevel, useLevels } from './levels/index.js'; export { Notification, NotificationConfig, NotificationContainer, NotificationContainerProps, NotificationInput, NotificationPosition, NotificationType, NotificationsProvider, NotificationsProviderProps, NotificationsService, NotificationsState, Toast, ToastPosition, ToastProps, useNotifications } from './notifications/index.js'; export { CalendarDay, StreakCalendar, StreakCalendarProps, StreakConfig, StreakData, StreakDisplay, StreakDisplayProps, StreakEntry, StreakMilestone, StreakType, StreakUpdateEvent, StreaksProvider, StreaksProviderProps, StreaksService, StreaksState, calculateStreak, formatDate, getCurrentPeriodKey, hasActivityToday, isStreakActive, useStreaks } from './streaks/index.js'; export { ComboAction, ComboConfig, ComboDisplay, ComboEvents, ComboMeter, ComboPopup, ComboProvider, ComboService, ComboServiceImpl, ComboState, comboStyles, useCombo, useComboContext } from './combo/index.js'; export { ChallengeDifficulty, ChallengeStatus, ChallengeStreakDisplay, ChallengeTemplate, ChallengeTimer, DailyChallenge, DailyChallengeCard, DailyChallengeConfig, DailyChallengeEvents, DailyChallengeProvider, DailyChallengeService, DailyChallengeServiceImpl, DailyChallengeState, useDailyChallenge, useDailyChallengeContext } from './daily-challenge/index.js'; export { Achievement, AchievementToast, AchievementToastProps, AchievementType, achievementToastStyles } from './achievement-toast/index.js'; export { ProgressRing, ProgressRingProps, ProgressRings, ProgressRingsProps, ProgressRingsWithLabels, RingData } from './progress-rings/index.js'; import 'react/jsx-runtime'; import 'react'; declare function createEventEmitter<TEvents extends Record<string, unknown>>(): EventEmitter<TEvents>; declare class LocalStorageAdapter<T> implements StorageAdapter<T> { private readonly prefix; constructor(prefix?: string); private getKey; get(key: string): Promise<T | null>; set(key: string, value: T): Promise<void>; remove(key: string): Promise<void>; clear(): Promise<void>; } declare class SessionStorageAdapter<T> implements StorageAdapter<T> { private readonly prefix; constructor(prefix?: string); private getKey; get(key: string): Promise<T | null>; set(key: string, value: T): Promise<void>; remove(key: string): Promise<void>; clear(): Promise<void>; } declare class MemoryStorageAdapter<T> implements StorageAdapter<T> { private storage; get(key: string): Promise<T | null>; set(key: string, value: T): Promise<void>; remove(key: string): Promise<void>; clear(): Promise<void>; } declare class AsyncStorageAdapter<T> implements StorageAdapter<T> { private readonly asyncStorage; private readonly prefix; constructor(asyncStorage: { getItem: (key: string) => Promise<string | null>; setItem: (key: string, value: string) => Promise<void>; removeItem: (key: string) => Promise<void>; getAllKeys?: () => Promise<readonly string[]>; multiRemove?: (keys: readonly string[]) => Promise<void>; }, prefix?: string); private getKey; get(key: string): Promise<T | null>; set(key: string, value: T): Promise<void>; remove(key: string): Promise<void>; clear(): Promise<void>; } declare const now: () => Timestamp; declare const generateId: () => string; declare const deepClone: <T>(obj: T) => T; declare const isBrowser: () => boolean; declare const debounce: <T extends (...args: unknown[]) => void>(fn: T, delay: number) => ((...args: Parameters<T>) => void); declare const clamp: (value: number, min: number, max: number) => number; declare const percentage: (current: number, total: number) => number; export { AsyncStorageAdapter, EventEmitter, LocalStorageAdapter, MemoryStorageAdapter, SessionStorageAdapter, StorageAdapter, Timestamp, clamp, createEventEmitter, debounce, deepClone, generateId, isBrowser, now, percentage };