@wakastellar/ui 1.0.12 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/README.md +163 -193
  2. package/dist/charts.cjs.js +1 -0
  3. package/dist/charts.es.js +16 -0
  4. package/dist/cn-B-fTneHh.js +1 -0
  5. package/dist/cn-DzRe1GWm.mjs +21 -0
  6. package/dist/components/index.d.ts +122 -0
  7. package/dist/components/waka-3d-pie-chart/index.d.ts +67 -0
  8. package/dist/components/waka-achievement-unlock/index.d.ts +83 -0
  9. package/dist/components/waka-activity-feed/index.d.ts +78 -0
  10. package/dist/components/waka-address-autocomplete/index.d.ts +124 -0
  11. package/dist/components/waka-alert-stack/index.d.ts +58 -0
  12. package/dist/components/waka-allocation-matrix/index.d.ts +193 -0
  13. package/dist/components/waka-approval-chain/index.d.ts +43 -0
  14. package/dist/components/waka-audit-log/index.d.ts +142 -0
  15. package/dist/components/waka-badge-showcase/index.d.ts +51 -0
  16. package/dist/components/waka-biometric-prompt/index.d.ts +84 -0
  17. package/dist/components/waka-bottom-sheet/index.d.ts +61 -0
  18. package/dist/components/waka-breadcrumb-path/index.d.ts +46 -0
  19. package/dist/components/waka-budget-burn/index.d.ts +154 -0
  20. package/dist/components/waka-capacity-planner/index.d.ts +132 -0
  21. package/dist/components/waka-cart-summary/index.d.ts +154 -0
  22. package/dist/components/waka-challenge-timer/index.d.ts +86 -0
  23. package/dist/components/waka-chat-bubble/index.d.ts +127 -0
  24. package/dist/components/waka-checklist/index.d.ts +123 -0
  25. package/dist/components/waka-checkout-stepper/index.d.ts +154 -0
  26. package/dist/components/waka-cohort-table/index.d.ts +130 -0
  27. package/dist/components/waka-combo-counter/index.d.ts +53 -0
  28. package/dist/components/waka-command-bar/index.d.ts +45 -0
  29. package/dist/components/waka-compare-period/index.d.ts +122 -0
  30. package/dist/components/waka-connection-matrix/index.d.ts +117 -0
  31. package/dist/components/waka-contribution-graph/index.d.ts +34 -0
  32. package/dist/components/waka-cost-breakdown/index.d.ts +50 -0
  33. package/dist/components/waka-coupon-input/index.d.ts +105 -0
  34. package/dist/components/waka-credit-card-input/index.d.ts +95 -0
  35. package/dist/components/waka-daily-reward/index.d.ts +76 -0
  36. package/dist/components/waka-deployment-lane/index.d.ts +43 -0
  37. package/dist/components/waka-device-trust/index.d.ts +95 -0
  38. package/dist/components/waka-dock/index.d.ts +44 -0
  39. package/dist/components/waka-empty-state/index.d.ts +85 -0
  40. package/dist/components/waka-error-shake/index.d.ts +49 -0
  41. package/dist/components/waka-feature-announcement/index.d.ts +112 -0
  42. package/dist/components/waka-floating-nav/index.d.ts +51 -0
  43. package/dist/components/waka-flow-diagram/index.d.ts +71 -0
  44. package/dist/components/waka-funnel-chart/index.d.ts +108 -0
  45. package/dist/components/waka-glow-card/index.d.ts +32 -0
  46. package/dist/components/waka-goal-progress/index.d.ts +139 -0
  47. package/dist/components/waka-haptic-button/index.d.ts +45 -0
  48. package/dist/components/waka-health-pulse/index.d.ts +28 -0
  49. package/dist/components/waka-heatmap/index.d.ts +135 -0
  50. package/dist/components/waka-hotspot/index.d.ts +106 -0
  51. package/dist/components/waka-incident-timeline/index.d.ts +38 -0
  52. package/dist/components/waka-invoice-preview/index.d.ts +137 -0
  53. package/dist/components/waka-kpi-dashboard/index.d.ts +80 -0
  54. package/dist/components/waka-leaderboard/index.d.ts +85 -0
  55. package/dist/components/waka-level-progress/index.d.ts +89 -0
  56. package/dist/components/waka-liquid-button/index.d.ts +41 -0
  57. package/dist/components/waka-loading-orbit/index.d.ts +90 -0
  58. package/dist/components/waka-loot-box/index.d.ts +87 -0
  59. package/dist/components/waka-magic-link/index.d.ts +34 -0
  60. package/dist/components/waka-magnetic-button/index.d.ts +56 -0
  61. package/dist/components/waka-mention-input/index.d.ts +106 -0
  62. package/dist/components/waka-metric-sparkline/index.d.ts +46 -0
  63. package/dist/components/waka-milestone-road/index.d.ts +91 -0
  64. package/dist/components/waka-morph-button/index.d.ts +62 -0
  65. package/dist/components/waka-network-topology/index.d.ts +35 -0
  66. package/dist/components/waka-orbital-menu/index.d.ts +61 -0
  67. package/dist/components/waka-order-tracker/index.d.ts +121 -0
  68. package/dist/components/waka-password-strength/index.d.ts +98 -0
  69. package/dist/components/waka-payment-method-picker/index.d.ts +88 -0
  70. package/dist/components/waka-permission-matrix/index.d.ts +197 -0
  71. package/dist/components/waka-phone-input/index.d.ts +93 -0
  72. package/dist/components/waka-pipeline-view/index.d.ts +49 -0
  73. package/dist/components/waka-player-card/index.d.ts +36 -0
  74. package/dist/components/waka-points-popup/index.d.ts +75 -0
  75. package/dist/components/waka-power-up/index.d.ts +103 -0
  76. package/dist/components/waka-presence-indicator/index.d.ts +188 -0
  77. package/dist/components/waka-pricing-table/index.d.ts +77 -0
  78. package/dist/components/waka-product-card/index.d.ts +81 -0
  79. package/dist/components/waka-progress-onboarding/index.d.ts +97 -0
  80. package/dist/components/waka-pull-to-refresh/index.d.ts +45 -0
  81. package/dist/components/waka-quest-card/index.d.ts +110 -0
  82. package/dist/components/waka-quota-bar/index.d.ts +100 -0
  83. package/dist/components/waka-radar-score/index.d.ts +95 -0
  84. package/dist/components/waka-rank-badge/index.d.ts +58 -0
  85. package/dist/components/waka-rating-input/index.d.ts +110 -0
  86. package/dist/components/waka-reaction-picker/index.d.ts +77 -0
  87. package/dist/components/waka-region-map/index.d.ts +27 -0
  88. package/dist/components/waka-resource-gauge/index.d.ts +78 -0
  89. package/dist/components/waka-resource-pool/index.d.ts +81 -0
  90. package/dist/components/waka-rollback-slider/index.d.ts +79 -0
  91. package/dist/components/waka-sankey-diagram/index.d.ts +120 -0
  92. package/dist/components/waka-schedule-picker/index.d.ts +100 -0
  93. package/dist/components/waka-scratch-card/index.d.ts +87 -0
  94. package/dist/components/waka-season-pass/index.d.ts +65 -0
  95. package/dist/components/waka-security-score/index.d.ts +124 -0
  96. package/dist/components/waka-server-rack/index.d.ts +44 -0
  97. package/dist/components/waka-session-manager/index.d.ts +116 -0
  98. package/dist/components/waka-signature-pad/index.d.ts +87 -0
  99. package/dist/components/waka-skeleton-wave/index.d.ts +79 -0
  100. package/dist/components/waka-skill-tree/index.d.ts +78 -0
  101. package/dist/components/waka-sla-tracker/index.d.ts +65 -0
  102. package/dist/components/waka-slider-range/index.d.ts +88 -0
  103. package/dist/components/waka-spin-wheel/index.d.ts +51 -0
  104. package/dist/components/waka-spotlight/index.d.ts +47 -0
  105. package/dist/components/waka-stats-hexagon/index.d.ts +149 -0
  106. package/dist/components/waka-status-matrix/index.d.ts +38 -0
  107. package/dist/components/waka-streak-counter/index.d.ts +27 -0
  108. package/dist/components/waka-success-explosion/index.d.ts +51 -0
  109. package/dist/components/waka-swipe-card/index.d.ts +64 -0
  110. package/dist/components/waka-tabs-morph/index.d.ts +66 -0
  111. package/dist/components/waka-tag-input/index.d.ts +134 -0
  112. package/dist/components/waka-team-banner/index.d.ts +122 -0
  113. package/dist/components/waka-terminal-output/index.d.ts +48 -0
  114. package/dist/components/waka-thread-view/index.d.ts +101 -0
  115. package/dist/components/waka-tilt-card/index.d.ts +36 -0
  116. package/dist/components/waka-tooltip-tour/index.d.ts +118 -0
  117. package/dist/components/waka-tour-guide/index.d.ts +122 -0
  118. package/dist/components/waka-tournament-bracket/index.d.ts +101 -0
  119. package/dist/components/waka-treemap-chart/index.d.ts +104 -0
  120. package/dist/components/waka-two-factor-setup/index.d.ts +93 -0
  121. package/dist/components/waka-typewriter/index.d.ts +98 -0
  122. package/dist/components/waka-typing-indicator/index.d.ts +64 -0
  123. package/dist/components/waka-versus-card/index.d.ts +117 -0
  124. package/dist/components/waka-video-call/index.d.ts +170 -0
  125. package/dist/components/waka-voice-message/index.d.ts +117 -0
  126. package/dist/components/waka-welcome-modal/index.d.ts +120 -0
  127. package/dist/components/waka-xp-bar/index.d.ts +54 -0
  128. package/dist/export.cjs.js +1 -0
  129. package/dist/export.d.ts +3 -1
  130. package/dist/export.es.js +5 -0
  131. package/dist/index-B9GTFkji.js +1 -0
  132. package/dist/index-c0jcWyEL.mjs +466 -0
  133. package/dist/index.cjs.js +2530 -22
  134. package/dist/index.d.ts +1 -0
  135. package/dist/index.es.js +72081 -19512
  136. package/dist/rich-text.cjs.js +1 -0
  137. package/dist/rich-text.es.js +4 -0
  138. package/dist/types-BOWIoR7j.mjs +1111 -0
  139. package/dist/types-D2yCJ91P.js +1 -0
  140. package/dist/useDataTableImport-D8R2HQl6.mjs +229 -0
  141. package/dist/useDataTableImport-S_hhA5Wo.js +9 -0
  142. package/package.json +57 -20
  143. package/src/styles/base.css +108 -0
  144. package/src/styles/code-highlight.css +82 -86
  145. package/src/styles/globals-v3.css +9 -0
  146. package/src/styles/globals.css +57 -74
  147. package/src/styles/tailwind.preset.js +69 -0
@@ -0,0 +1,93 @@
1
+ export interface Country {
2
+ code: string;
3
+ name: string;
4
+ dialCode: string;
5
+ flag: string;
6
+ format?: string;
7
+ priority?: number;
8
+ }
9
+ declare const COUNTRIES: Country[];
10
+ export interface PhoneValue {
11
+ countryCode: string;
12
+ dialCode: string;
13
+ nationalNumber: string;
14
+ fullNumber: string;
15
+ isValid: boolean;
16
+ }
17
+ export interface WakaPhoneInputProps {
18
+ /** Current value */
19
+ value?: PhoneValue | string;
20
+ /** Callback when value changes */
21
+ onChange?: (value: PhoneValue) => void;
22
+ /** Default country code (ISO 3166-1 alpha-2) */
23
+ defaultCountry?: string;
24
+ /** Placeholder text */
25
+ placeholder?: string;
26
+ /** Disabled state */
27
+ disabled?: boolean;
28
+ /** Error state */
29
+ error?: boolean;
30
+ /** Size variant */
31
+ size?: "sm" | "md" | "lg";
32
+ /** Show copy button */
33
+ showCopy?: boolean;
34
+ /** Show clear button */
35
+ showClear?: boolean;
36
+ /** Callback when copy is clicked */
37
+ onCopy?: (value: string) => void;
38
+ /** Country filter - only show these countries */
39
+ countries?: string[];
40
+ /** Popular countries to show at top */
41
+ preferredCountries?: string[];
42
+ /** Custom validation function */
43
+ validate?: (value: PhoneValue) => boolean;
44
+ /** Additional CSS classes */
45
+ className?: string;
46
+ /** ID for accessibility */
47
+ id?: string;
48
+ /** Name for form submission */
49
+ name?: string;
50
+ /** Required field */
51
+ required?: boolean;
52
+ /** Auto focus on mount */
53
+ autoFocus?: boolean;
54
+ }
55
+ declare function formatPhoneNumber(value: string, format?: string): string;
56
+ declare function unformatPhoneNumber(value: string): string;
57
+ declare function getCountryByCode(code: string): Country | undefined;
58
+ declare function getCountryByDialCode(dialCode: string): Country | undefined;
59
+ export interface UsePhoneInputOptions {
60
+ /** Initial country code */
61
+ initialCountry?: string;
62
+ /** Initial phone number */
63
+ initialValue?: string;
64
+ /** Custom validation function */
65
+ validate?: (value: PhoneValue) => boolean;
66
+ }
67
+ export interface UsePhoneInputReturn {
68
+ /** Current country */
69
+ country: Country;
70
+ /** Set country by code */
71
+ setCountry: (code: string) => void;
72
+ /** Current national number (without dial code) */
73
+ nationalNumber: string;
74
+ /** Set national number */
75
+ setNationalNumber: (value: string) => void;
76
+ /** Full phone value object */
77
+ value: PhoneValue;
78
+ /** Whether the phone number is valid */
79
+ isValid: boolean;
80
+ /** Format a phone number */
81
+ format: (value: string) => string;
82
+ /** Unformat a phone number (get only digits) */
83
+ unformat: (value: string) => string;
84
+ /** Clear the input */
85
+ clear: () => void;
86
+ /** Get full international number */
87
+ getFullNumber: () => string;
88
+ }
89
+ export declare function usePhoneInput(options?: UsePhoneInputOptions): UsePhoneInputReturn;
90
+ export declare function WakaPhoneInput({ value, onChange, defaultCountry, placeholder, disabled, error, size, showCopy, showClear, onCopy, countries, preferredCountries, validate, className, id, name, required, autoFocus, }: WakaPhoneInputProps): import("react/jsx-runtime").JSX.Element;
91
+ export { COUNTRIES };
92
+ export { formatPhoneNumber, unformatPhoneNumber, getCountryByCode, getCountryByDialCode };
93
+ export default WakaPhoneInput;
@@ -0,0 +1,49 @@
1
+ export type StageStatus = "pending" | "running" | "success" | "failed" | "skipped" | "cancelled";
2
+ export interface PipelineJob {
3
+ /** Unique identifier */
4
+ id: string;
5
+ /** Job name */
6
+ name: string;
7
+ /** Job status */
8
+ status: StageStatus;
9
+ /** Duration in seconds */
10
+ duration?: number;
11
+ }
12
+ export interface PipelineStage {
13
+ /** Unique identifier */
14
+ id: string;
15
+ /** Stage name */
16
+ name: string;
17
+ /** Stage status */
18
+ status: StageStatus;
19
+ /** Duration in seconds */
20
+ duration?: number;
21
+ /** Parallel jobs within this stage */
22
+ jobs?: PipelineJob[];
23
+ /** When the stage started */
24
+ startedAt?: Date;
25
+ /** When the stage finished */
26
+ finishedAt?: Date;
27
+ }
28
+ export interface WakaPipelineViewProps {
29
+ /** Pipeline stages */
30
+ stages: PipelineStage[];
31
+ /** Callback when a stage is clicked */
32
+ onStageClick?: (stageId: string) => void;
33
+ /** Callback when retry is triggered on a failed stage */
34
+ onRetry?: (stageId: string) => void;
35
+ /** Layout variant */
36
+ variant?: "horizontal" | "vertical";
37
+ /** Size variant */
38
+ size?: "sm" | "md" | "lg";
39
+ /** Show duration for each stage */
40
+ showDuration?: boolean;
41
+ /** Show parallel jobs within stages */
42
+ showJobs?: boolean;
43
+ /** Enable animations */
44
+ animated?: boolean;
45
+ /** Additional CSS classes */
46
+ className?: string;
47
+ }
48
+ export declare function WakaPipelineView({ stages, onStageClick, onRetry, variant, size, showDuration, showJobs, animated, className, }: WakaPipelineViewProps): import("react/jsx-runtime").JSX.Element;
49
+ export default WakaPipelineView;
@@ -0,0 +1,36 @@
1
+ import * as React from "react";
2
+ export type PlayerRarity = "common" | "rare" | "epic" | "legendary" | "mythic";
3
+ export interface PlayerStat {
4
+ name: string;
5
+ value: number;
6
+ max?: number;
7
+ }
8
+ export interface Player {
9
+ id: string;
10
+ name: string;
11
+ avatar: string;
12
+ title?: string;
13
+ level: number;
14
+ rarity: PlayerRarity;
15
+ stats: PlayerStat[];
16
+ achievements?: number;
17
+ joinedAt?: Date;
18
+ }
19
+ export interface WakaPlayerCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onClick"> {
20
+ /** Player data */
21
+ player: Player;
22
+ /** Card variant */
23
+ variant?: "default" | "compact" | "full";
24
+ /** Show back side on hover */
25
+ showBack?: boolean;
26
+ /** Custom back content */
27
+ backContent?: React.ReactNode;
28
+ /** Click handler */
29
+ onClick?: () => void;
30
+ /** Card size */
31
+ size?: "sm" | "md" | "lg";
32
+ /** Enable animations */
33
+ animated?: boolean;
34
+ }
35
+ export declare function WakaPlayerCard({ player, variant, showBack, backContent, onClick, size, animated, className, ...props }: WakaPlayerCardProps): import("react/jsx-runtime").JSX.Element;
36
+ export default WakaPlayerCard;
@@ -0,0 +1,75 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from "react";
3
+ export interface WakaPointsPopupProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof pointsPopupVariants> {
4
+ /** The points value to display (positive or negative) */
5
+ points: number;
6
+ /** X position (defaults to center) */
7
+ x?: number;
8
+ /** Y position (defaults to center) */
9
+ y?: number;
10
+ /** Custom color (overrides automatic color coding) */
11
+ color?: string;
12
+ /** Animation duration in milliseconds */
13
+ duration?: number;
14
+ /** Callback when animation completes */
15
+ onComplete?: () => void;
16
+ /** Size variant */
17
+ size?: "sm" | "md" | "lg";
18
+ /** Optional prefix (e.g., "XP", "pts") */
19
+ prefix?: string;
20
+ /** Optional icon to display before the points */
21
+ icon?: React.ReactNode;
22
+ }
23
+ export interface PopupInstance {
24
+ id: string;
25
+ points: number;
26
+ x: number;
27
+ y: number;
28
+ color?: string;
29
+ duration: number;
30
+ size: "sm" | "md" | "lg";
31
+ prefix?: string;
32
+ icon?: React.ReactNode;
33
+ }
34
+ export interface TriggerOptions {
35
+ x?: number;
36
+ y?: number;
37
+ color?: string;
38
+ duration?: number;
39
+ size?: "sm" | "md" | "lg";
40
+ prefix?: string;
41
+ icon?: React.ReactNode;
42
+ }
43
+ export interface UsePointsPopupReturn {
44
+ /** Trigger a new popup */
45
+ trigger: (points: number, options?: TriggerOptions) => void;
46
+ /** Container component to render popups */
47
+ PopupContainer: React.FC;
48
+ /** Clear all active popups */
49
+ clearAll: () => void;
50
+ }
51
+ declare const pointsPopupVariants: (props?: ({
52
+ size?: "sm" | "lg" | "md" | null | undefined;
53
+ } & import('class-variance-authority/dist/types').ClassProp) | undefined) => string;
54
+ export declare const WakaPointsPopup: React.ForwardRefExoticComponent<WakaPointsPopupProps & React.RefAttributes<HTMLDivElement>>;
55
+ export declare function usePointsPopup(): UsePointsPopupReturn;
56
+ export interface PointsPreset {
57
+ color: string;
58
+ prefix: string;
59
+ icon?: React.ReactNode;
60
+ }
61
+ export declare const POINTS_PRESETS: Record<string, PointsPreset>;
62
+ export interface UsePointsPopupWithPresetsReturn extends UsePointsPopupReturn {
63
+ /** Trigger XP popup */
64
+ triggerXP: (points: number, options?: Omit<TriggerOptions, "prefix" | "color">) => void;
65
+ /** Trigger coins popup */
66
+ triggerCoins: (points: number, options?: Omit<TriggerOptions, "prefix" | "color">) => void;
67
+ /** Trigger health popup */
68
+ triggerHealth: (points: number, options?: Omit<TriggerOptions, "prefix" | "color">) => void;
69
+ /** Trigger mana popup */
70
+ triggerMana: (points: number, options?: Omit<TriggerOptions, "prefix" | "color">) => void;
71
+ /** Trigger score popup */
72
+ triggerScore: (points: number, options?: Omit<TriggerOptions, "prefix" | "color">) => void;
73
+ }
74
+ export declare function usePointsPopupWithPresets(): UsePointsPopupWithPresetsReturn;
75
+ export {};
@@ -0,0 +1,103 @@
1
+ import { LucideIcon } from 'lucide-react';
2
+ export type PowerUpType = "speed" | "shield" | "damage" | "time" | "star" | "boost" | "accuracy" | "health" | "coins" | "luck" | "custom";
3
+ export interface PowerUp {
4
+ /** Unique identifier */
5
+ id: string;
6
+ /** Power-up type */
7
+ type: PowerUpType;
8
+ /** Display name */
9
+ name: string;
10
+ /** Description text */
11
+ description: string;
12
+ /** Duration in milliseconds */
13
+ duration: number;
14
+ /** Multiplier or boost amount (e.g., 2 for x2, 1.5 for +50%) */
15
+ multiplier: number;
16
+ /** Stack count if multiple are active */
17
+ stackCount?: number;
18
+ /** Maximum stack count allowed */
19
+ maxStack?: number;
20
+ /** Custom icon (only used when type is "custom") */
21
+ customIcon?: LucideIcon;
22
+ /** Custom color (overrides type default) */
23
+ customColor?: string;
24
+ /** Whether the power-up is currently active */
25
+ isActive?: boolean;
26
+ /** Activation timestamp */
27
+ activatedAt?: number;
28
+ }
29
+ export interface WakaPowerUpProps {
30
+ /** Power-up data */
31
+ powerUp: PowerUp;
32
+ /** Size variant */
33
+ size?: "sm" | "md" | "lg";
34
+ /** Visual style variant */
35
+ variant?: "card" | "badge" | "compact";
36
+ /** Show countdown timer */
37
+ showCountdown?: boolean;
38
+ /** Show description */
39
+ showDescription?: boolean;
40
+ /** Enable glow animation */
41
+ glowEnabled?: boolean;
42
+ /** Enable pulse animation */
43
+ pulseEnabled?: boolean;
44
+ /** Callback when power-up expires */
45
+ onExpire?: (powerUp: PowerUp) => void;
46
+ /** Callback when power-up is clicked */
47
+ onClick?: (powerUp: PowerUp) => void;
48
+ /** Additional CSS classes */
49
+ className?: string;
50
+ }
51
+ export interface UsePowerUpOptions {
52
+ /** Initial power-ups */
53
+ initialPowerUps?: PowerUp[];
54
+ /** Callback when any power-up expires */
55
+ onPowerUpExpire?: (powerUp: PowerUp) => void;
56
+ /** Callback when any power-up activates */
57
+ onPowerUpActivate?: (powerUp: PowerUp) => void;
58
+ }
59
+ export interface UsePowerUpReturn {
60
+ /** Active power-ups */
61
+ activePowerUps: PowerUp[];
62
+ /** Activate a power-up */
63
+ activate: (powerUp: Omit<PowerUp, "isActive" | "activatedAt">) => void;
64
+ /** Deactivate a power-up by ID */
65
+ deactivate: (id: string) => void;
66
+ /** Get remaining time for a power-up */
67
+ getRemainingTime: (id: string) => number;
68
+ /** Check if a specific power-up type is active */
69
+ isTypeActive: (type: PowerUpType) => boolean;
70
+ /** Get combined multiplier for a type (considering stacks) */
71
+ getCombinedMultiplier: (type: PowerUpType) => number;
72
+ /** Stack a power-up (increases stack count or extends duration) */
73
+ stack: (id: string, mode?: "count" | "duration") => void;
74
+ /** Clear all active power-ups */
75
+ clearAll: () => void;
76
+ }
77
+ export declare function WakaPowerUp({ powerUp, size, variant, showCountdown, showDescription, glowEnabled, pulseEnabled, onExpire, onClick, className, }: WakaPowerUpProps): import("react/jsx-runtime").JSX.Element;
78
+ export declare namespace WakaPowerUp {
79
+ var displayName: string;
80
+ }
81
+ export declare function usePowerUp({ initialPowerUps, onPowerUpExpire, onPowerUpActivate, }?: UsePowerUpOptions): UsePowerUpReturn;
82
+ export interface WakaPowerUpListProps {
83
+ /** List of power-ups to display */
84
+ powerUps: PowerUp[];
85
+ /** Size variant */
86
+ size?: "sm" | "md" | "lg";
87
+ /** Visual style variant */
88
+ variant?: "card" | "badge" | "compact";
89
+ /** Layout direction */
90
+ direction?: "horizontal" | "vertical";
91
+ /** Gap between items */
92
+ gap?: "sm" | "md" | "lg";
93
+ /** Callback when a power-up expires */
94
+ onExpire?: (powerUp: PowerUp) => void;
95
+ /** Callback when a power-up is clicked */
96
+ onClick?: (powerUp: PowerUp) => void;
97
+ /** Additional CSS classes */
98
+ className?: string;
99
+ }
100
+ export declare function WakaPowerUpList({ powerUps, size, variant, direction, gap, onExpire, onClick, className, }: WakaPowerUpListProps): import("react/jsx-runtime").JSX.Element;
101
+ export declare namespace WakaPowerUpList {
102
+ var displayName: string;
103
+ }
@@ -0,0 +1,188 @@
1
+ export type PresenceStatus = "online" | "away" | "busy" | "offline" | "invisible";
2
+ export interface PresenceState {
3
+ /** Current status */
4
+ status: PresenceStatus;
5
+ /** Custom status message */
6
+ customMessage?: string;
7
+ /** When the status was last updated */
8
+ updatedAt?: Date;
9
+ /** Last seen timestamp (for offline status) */
10
+ lastSeen?: Date;
11
+ /** Do not disturb mode */
12
+ doNotDisturb?: boolean;
13
+ }
14
+ export interface UsePresenceOptions {
15
+ /** Initial presence state */
16
+ initialState?: Partial<PresenceState>;
17
+ /** Callback when status changes */
18
+ onStatusChange?: (status: PresenceStatus) => void;
19
+ /** Auto-away timeout in milliseconds */
20
+ autoAwayTimeout?: number;
21
+ /** Persist state to localStorage */
22
+ persistKey?: string;
23
+ }
24
+ export interface UsePresenceReturn {
25
+ /** Current presence state */
26
+ presence: PresenceState;
27
+ /** Set presence status */
28
+ setStatus: (status: PresenceStatus) => void;
29
+ /** Set custom message */
30
+ setCustomMessage: (message: string | undefined) => void;
31
+ /** Toggle do not disturb */
32
+ toggleDoNotDisturb: () => void;
33
+ /** Set entire presence state */
34
+ setPresence: (state: Partial<PresenceState>) => void;
35
+ /** Get formatted status duration */
36
+ getStatusDuration: () => string | null;
37
+ /** Get formatted last seen */
38
+ getLastSeen: () => string | null;
39
+ }
40
+ export declare function usePresence(options?: UsePresenceOptions): UsePresenceReturn;
41
+ export interface WakaPresenceIndicatorProps {
42
+ /** Current presence status */
43
+ status: PresenceStatus;
44
+ /** Size variant */
45
+ size?: "xs" | "sm" | "md" | "lg" | "xl";
46
+ /** Show pulsing animation for online status */
47
+ pulse?: boolean;
48
+ /** Do not disturb mode */
49
+ doNotDisturb?: boolean;
50
+ /** Custom class name */
51
+ className?: string;
52
+ }
53
+ export declare function WakaPresenceIndicator({ status, size, pulse, doNotDisturb, className, }: WakaPresenceIndicatorProps): import("react/jsx-runtime").JSX.Element;
54
+ export interface WakaPresenceWithAvatarProps {
55
+ /** Avatar image source */
56
+ src?: string;
57
+ /** Avatar fallback text (usually initials) */
58
+ fallback?: string;
59
+ /** Alt text for avatar */
60
+ alt?: string;
61
+ /** Current presence status */
62
+ status: PresenceStatus;
63
+ /** Size variant */
64
+ size?: "xs" | "sm" | "md" | "lg" | "xl";
65
+ /** Show pulsing animation */
66
+ pulse?: boolean;
67
+ /** Do not disturb mode */
68
+ doNotDisturb?: boolean;
69
+ /** Custom class name */
70
+ className?: string;
71
+ /** Avatar ring style */
72
+ showRing?: boolean;
73
+ /** Click handler */
74
+ onClick?: () => void;
75
+ }
76
+ export declare function WakaPresenceWithAvatar({ src, fallback, alt, status, size, pulse, doNotDisturb, className, showRing, onClick, }: WakaPresenceWithAvatarProps): import("react/jsx-runtime").JSX.Element;
77
+ export interface WakaPresenceStatusBadgeProps {
78
+ /** Current presence status */
79
+ status: PresenceStatus;
80
+ /** Custom status message */
81
+ customMessage?: string;
82
+ /** Show status duration */
83
+ showDuration?: boolean;
84
+ /** Status updated timestamp */
85
+ updatedAt?: Date;
86
+ /** Size variant */
87
+ size?: "sm" | "md" | "lg";
88
+ /** Do not disturb mode */
89
+ doNotDisturb?: boolean;
90
+ /** Custom class name */
91
+ className?: string;
92
+ }
93
+ export declare function WakaPresenceStatusBadge({ status, customMessage, showDuration, updatedAt, size, doNotDisturb, className, }: WakaPresenceStatusBadgeProps): import("react/jsx-runtime").JSX.Element;
94
+ export interface WakaPresenceSelectorProps {
95
+ /** Current presence state */
96
+ presence: PresenceState;
97
+ /** Set status callback */
98
+ onStatusChange: (status: PresenceStatus) => void;
99
+ /** Toggle DND callback */
100
+ onToggleDND?: () => void;
101
+ /** Set custom message callback */
102
+ onSetCustomMessage?: (message: string | undefined) => void;
103
+ /** Show custom message input */
104
+ showCustomMessage?: boolean;
105
+ /** Size variant */
106
+ size?: "sm" | "md" | "lg";
107
+ /** Disabled state */
108
+ disabled?: boolean;
109
+ /** Custom class name */
110
+ className?: string;
111
+ /** Avatar props for trigger */
112
+ avatar?: {
113
+ src?: string;
114
+ fallback?: string;
115
+ alt?: string;
116
+ };
117
+ /** Trigger variant */
118
+ triggerVariant?: "avatar" | "badge" | "minimal";
119
+ }
120
+ export declare function WakaPresenceSelector({ presence, onStatusChange, onToggleDND, onSetCustomMessage, showCustomMessage, size, disabled, className, avatar, triggerVariant, }: WakaPresenceSelectorProps): import("react/jsx-runtime").JSX.Element;
121
+ export interface WakaPresenceLastSeenProps {
122
+ /** Last seen timestamp */
123
+ lastSeen: Date;
124
+ /** Size variant */
125
+ size?: "sm" | "md" | "lg";
126
+ /** Show "Last seen" prefix */
127
+ showPrefix?: boolean;
128
+ /** Custom class name */
129
+ className?: string;
130
+ }
131
+ export declare function WakaPresenceLastSeen({ lastSeen, size, showPrefix, className, }: WakaPresenceLastSeenProps): import("react/jsx-runtime").JSX.Element;
132
+ export interface WakaPresenceCardProps {
133
+ /** User name */
134
+ name: string;
135
+ /** Avatar source */
136
+ avatarSrc?: string;
137
+ /** Avatar fallback */
138
+ avatarFallback?: string;
139
+ /** Presence state */
140
+ presence: PresenceState;
141
+ /** Show status duration */
142
+ showDuration?: boolean;
143
+ /** Show last seen for offline */
144
+ showLastSeen?: boolean;
145
+ /** Size variant */
146
+ size?: "sm" | "md" | "lg";
147
+ /** Custom class name */
148
+ className?: string;
149
+ /** Click handler */
150
+ onClick?: () => void;
151
+ }
152
+ export declare function WakaPresenceCard({ name, avatarSrc, avatarFallback, presence, showDuration, showLastSeen, size, className, onClick, }: WakaPresenceCardProps): import("react/jsx-runtime").JSX.Element;
153
+ export interface PresenceUser {
154
+ id: string;
155
+ name: string;
156
+ avatarSrc?: string;
157
+ avatarFallback?: string;
158
+ presence: PresenceState;
159
+ }
160
+ export interface WakaPresenceListProps {
161
+ /** List of users with presence */
162
+ users: PresenceUser[];
163
+ /** Size variant */
164
+ size?: "sm" | "md" | "lg";
165
+ /** Show last seen for offline users */
166
+ showLastSeen?: boolean;
167
+ /** Group users by status */
168
+ groupByStatus?: boolean;
169
+ /** Max users to show (shows "+X more" for rest) */
170
+ maxVisible?: number;
171
+ /** User click handler */
172
+ onUserClick?: (userId: string) => void;
173
+ /** Custom class name */
174
+ className?: string;
175
+ }
176
+ export declare function WakaPresenceList({ users, size, showLastSeen, groupByStatus, maxVisible, onUserClick, className, }: WakaPresenceListProps): import("react/jsx-runtime").JSX.Element;
177
+ export interface WakaPresenceAvatarStackProps {
178
+ /** List of users with presence */
179
+ users: PresenceUser[];
180
+ /** Max avatars to show */
181
+ max?: number;
182
+ /** Size variant */
183
+ size?: "xs" | "sm" | "md" | "lg";
184
+ /** Custom class name */
185
+ className?: string;
186
+ }
187
+ export declare function WakaPresenceAvatarStack({ users, max, size, className, }: WakaPresenceAvatarStackProps): import("react/jsx-runtime").JSX.Element;
188
+ export default WakaPresenceIndicator;
@@ -0,0 +1,77 @@
1
+ export interface PricingFeature {
2
+ /** Feature name/description */
3
+ name: string;
4
+ /** Tooltip/additional info */
5
+ tooltip?: string;
6
+ }
7
+ export interface PricingTierFeature {
8
+ /** Feature reference (matches PricingFeature.name) */
9
+ name: string;
10
+ /** Whether this feature is included */
11
+ included: boolean;
12
+ /** Custom value to display instead of checkmark (e.g., "10 GB", "Unlimited") */
13
+ value?: string;
14
+ }
15
+ export interface PricingTier {
16
+ /** Unique identifier */
17
+ id: string;
18
+ /** Tier name (e.g., "Free", "Pro", "Enterprise") */
19
+ name: string;
20
+ /** Short description */
21
+ description?: string;
22
+ /** Monthly price in cents (null for custom pricing) */
23
+ monthlyPrice: number | null;
24
+ /** Annual price in cents (null for custom pricing) */
25
+ annualPrice: number | null;
26
+ /** Custom price label (e.g., "Contact us") */
27
+ customPriceLabel?: string;
28
+ /** Currency symbol */
29
+ currency?: string;
30
+ /** Features included in this tier */
31
+ features: PricingTierFeature[];
32
+ /** Whether this tier is highlighted as popular/recommended */
33
+ highlighted?: boolean;
34
+ /** Highlight label (e.g., "Most Popular", "Best Value") */
35
+ highlightLabel?: string;
36
+ /** CTA button text */
37
+ ctaText?: string;
38
+ /** CTA button variant */
39
+ ctaVariant?: "default" | "primary" | "outline";
40
+ /** Whether the tier is disabled */
41
+ disabled?: boolean;
42
+ }
43
+ export interface WakaPricingTableProps {
44
+ /** Pricing tiers to display */
45
+ tiers: PricingTier[];
46
+ /** All available features (for comparison table) */
47
+ features?: PricingFeature[];
48
+ /** Currently selected billing period */
49
+ billingPeriod?: "monthly" | "annual";
50
+ /** Callback when billing period changes */
51
+ onBillingPeriodChange?: (period: "monthly" | "annual") => void;
52
+ /** Callback when CTA is clicked */
53
+ onCtaClick?: (tier: PricingTier) => void;
54
+ /** Annual discount percentage to display */
55
+ annualDiscount?: number;
56
+ /** Show billing toggle */
57
+ showBillingToggle?: boolean;
58
+ /** Layout variant */
59
+ variant?: "cards" | "table" | "auto";
60
+ /** Additional class names */
61
+ className?: string;
62
+ }
63
+ export declare function WakaPricingTable({ tiers, features, billingPeriod: controlledBillingPeriod, onBillingPeriodChange, onCtaClick, annualDiscount, showBillingToggle, variant, className, }: WakaPricingTableProps): import("react/jsx-runtime").JSX.Element;
64
+ export interface UsePricingTableOptions {
65
+ initialBillingPeriod?: "monthly" | "annual";
66
+ }
67
+ export declare function usePricingTable(options?: UsePricingTableOptions): {
68
+ billingPeriod: "monthly" | "annual";
69
+ selectedTier: PricingTier | null;
70
+ onBillingPeriodChange: (period: "monthly" | "annual") => void;
71
+ onCtaClick: (tier: PricingTier) => void;
72
+ calculateSavings: (tier: PricingTier) => number;
73
+ getEffectiveMonthlyPrice: (tier: PricingTier) => number | null;
74
+ };
75
+ export declare const defaultTiers: PricingTier[];
76
+ export declare const defaultFeatures: PricingFeature[];
77
+ export default WakaPricingTable;