@exyconn/common 1.0.0 → 2.1.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 (46) hide show
  1. package/README.md +121 -36
  2. package/dist/client/index.d.mts +3 -2
  3. package/dist/client/index.d.ts +3 -2
  4. package/dist/client/index.js +5059 -231
  5. package/dist/client/index.js.map +1 -1
  6. package/dist/client/index.mjs +4951 -232
  7. package/dist/client/index.mjs.map +1 -1
  8. package/dist/client/utils/index.d.mts +123 -1
  9. package/dist/client/utils/index.d.ts +123 -1
  10. package/dist/client/utils/index.js +207 -0
  11. package/dist/client/utils/index.js.map +1 -1
  12. package/dist/client/utils/index.mjs +204 -1
  13. package/dist/client/utils/index.mjs.map +1 -1
  14. package/dist/index-BcxL4_V4.d.ts +2946 -0
  15. package/dist/{index-iTKxFa78.d.ts → index-DEzgM15j.d.ts} +10 -2
  16. package/dist/{index-ClWtDfwk.d.ts → index-DNFVgQx8.d.ts} +544 -2
  17. package/dist/{index-CcrANHAQ.d.mts → index-DbV04Dx8.d.mts} +10 -2
  18. package/dist/{index-DSW6JfD-.d.mts → index-DfqEP6Oe.d.mts} +544 -2
  19. package/dist/index-bvvCev9Q.d.mts +2946 -0
  20. package/dist/index.d.mts +433 -7
  21. package/dist/index.d.ts +433 -7
  22. package/dist/index.js +6101 -220
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.mjs +6083 -221
  25. package/dist/index.mjs.map +1 -1
  26. package/dist/server/index.d.mts +1 -1
  27. package/dist/server/index.d.ts +1 -1
  28. package/dist/server/index.js +197 -0
  29. package/dist/server/index.js.map +1 -1
  30. package/dist/server/index.mjs +194 -2
  31. package/dist/server/index.mjs.map +1 -1
  32. package/dist/server/utils/index.d.mts +73 -1
  33. package/dist/server/utils/index.d.ts +73 -1
  34. package/dist/server/utils/index.js +199 -0
  35. package/dist/server/utils/index.js.map +1 -1
  36. package/dist/server/utils/index.mjs +195 -1
  37. package/dist/server/utils/index.mjs.map +1 -1
  38. package/dist/shared/index.d.mts +1 -1
  39. package/dist/shared/index.d.ts +1 -1
  40. package/dist/shared/index.js +296 -0
  41. package/dist/shared/index.js.map +1 -1
  42. package/dist/shared/index.mjs +274 -1
  43. package/dist/shared/index.mjs.map +1 -1
  44. package/package.json +41 -4
  45. package/dist/index-BNdT-2X4.d.ts +0 -229
  46. package/dist/index-Du0LLt9f.d.mts +0 -229
@@ -0,0 +1,2946 @@
1
+ import { ApiResponse, HttpClientOptions, PaginatedResponse, createHttpClient, isForbidden, isNotFound, isServerError, isStatusError, isSuccess, isUnauthorized, parseError, parseFullResponse, parseResponse, withAbortSignal, withFormData, withTimeout } from './client/http/index.mjs';
2
+ import { ClientLogger, ClientLoggerConfig, LogLevel, clientLogger, createClientLogger } from './client/logger/index.mjs';
3
+ import { ApiUrlBuilder, ApiUrlConfig, EventEmitter, NpmRegistryResponse, PackageCheckResult, PackageJson, PackageVersion, addDays, appEvents, camelToKebab, capitalize, capitalizeWords, checkPackage, copyToClipboard, createApiEndpoints, createApiUrlBuilder, createEmptyPaginationMeta, createErrorResponse, createEventEmitter, createSuccessResponse, endOfDay, formatDate, formatDateForInput, formatDateTime, formatDateTimeForInput, formatPackageCheckResult, formatRelativeTime, generateNcuCommand, getErrorMessage, getNextPage, getPrevPage, getResponseData, hasData, hasMorePages, isClipboardAvailable, isErrorResponse, isFuture, isPast, isSuccessResponse, isToday, kebabToCamel, packageCheck, readFromClipboard, slugify, slugifyUnique, startOfDay, truncate, truncateWords, unslugify } from './client/utils/index.mjs';
4
+ import React$1, { RefObject } from 'react';
5
+ import * as Yup from 'yup';
6
+
7
+ interface UseToggleReturn {
8
+ /** Current boolean value */
9
+ value: boolean;
10
+ /** Toggle the value */
11
+ toggle: () => void;
12
+ /** Set to true */
13
+ setTrue: () => void;
14
+ /** Set to false */
15
+ setFalse: () => void;
16
+ /** Set to specific value */
17
+ setValue: (value: boolean) => void;
18
+ }
19
+ /**
20
+ * Hook to manage boolean state with toggle functionality
21
+ * @param initialValue - Initial boolean value (default: false)
22
+ */
23
+ declare function useToggle(initialValue?: boolean): UseToggleReturn;
24
+
25
+ interface UseCounterOptions {
26
+ /** Minimum value */
27
+ min?: number;
28
+ /** Maximum value */
29
+ max?: number;
30
+ /** Step value for increment/decrement */
31
+ step?: number;
32
+ }
33
+ interface UseCounterReturn {
34
+ /** Current count value */
35
+ count: number;
36
+ /** Increment by step */
37
+ increment: () => void;
38
+ /** Decrement by step */
39
+ decrement: () => void;
40
+ /** Set to specific value */
41
+ set: (value: number) => void;
42
+ /** Reset to initial value */
43
+ reset: () => void;
44
+ }
45
+ /**
46
+ * Hook to manage numeric counter with min/max bounds
47
+ * @param initialValue - Initial counter value (default: 0)
48
+ * @param options - Configuration options
49
+ */
50
+ declare function useCounter(initialValue?: number, options?: UseCounterOptions): UseCounterReturn;
51
+
52
+ /**
53
+ * Hook that returns a default value when state is null or undefined
54
+ * @param initialValue - Initial value (can be null/undefined)
55
+ * @param defaultValue - Default value to use when state is null/undefined
56
+ */
57
+ declare function useDefault<T>(initialValue: T | null | undefined, defaultValue: T): [T, (value: T | null | undefined) => void];
58
+
59
+ /**
60
+ * Hook to get the previous value of a state or prop
61
+ * @param value - Current value to track
62
+ * @param initialValue - Optional initial previous value
63
+ */
64
+ declare function usePrevious<T>(value: T, initialValue?: T): T | undefined;
65
+
66
+ type ObjectStateUpdate<T> = Partial<T> | ((prevState: T) => Partial<T>);
67
+ interface UseObjectStateReturn<T extends object> {
68
+ /** Current state object */
69
+ state: T;
70
+ /** Update state with partial object (merges with existing) */
71
+ setState: (update: ObjectStateUpdate<T>) => void;
72
+ /** Reset to initial state */
73
+ resetState: () => void;
74
+ /** Set a single property */
75
+ setProperty: <K extends keyof T>(key: K, value: T[K]) => void;
76
+ /** Remove a property (sets to undefined) */
77
+ removeProperty: <K extends keyof T>(key: K) => void;
78
+ }
79
+ /**
80
+ * Hook to manage object state with partial updates
81
+ * @param initialState - Initial state object
82
+ */
83
+ declare function useObjectState<T extends object>(initialState: T): UseObjectStateReturn<T>;
84
+
85
+ interface UseHistoryStateReturn<T> {
86
+ /** Current state value */
87
+ state: T;
88
+ /** Set new state (adds to history) */
89
+ setState: (value: T | ((prev: T) => T)) => void;
90
+ /** Undo to previous state */
91
+ undo: () => void;
92
+ /** Redo to next state */
93
+ redo: () => void;
94
+ /** Clear all history and reset to current or initial */
95
+ clear: (value?: T) => void;
96
+ /** Can undo? */
97
+ canUndo: boolean;
98
+ /** Can redo? */
99
+ canRedo: boolean;
100
+ /** Full history array */
101
+ history: T[];
102
+ /** Current position in history */
103
+ pointer: number;
104
+ /** Go to specific position in history */
105
+ go: (index: number) => void;
106
+ }
107
+ interface UseHistoryStateOptions {
108
+ /** Maximum history length (default: 100) */
109
+ maxLength?: number;
110
+ }
111
+ /**
112
+ * Hook to manage state with undo/redo functionality
113
+ * @param initialValue - Initial state value
114
+ * @param options - Configuration options
115
+ */
116
+ declare function useHistoryState<T>(initialValue: T, options?: UseHistoryStateOptions): UseHistoryStateReturn<T>;
117
+
118
+ interface UseQueueReturn<T> {
119
+ /** Current queue items */
120
+ queue: T[];
121
+ /** Add item to end of queue */
122
+ enqueue: (item: T) => void;
123
+ /** Add multiple items to end of queue */
124
+ enqueueAll: (items: T[]) => void;
125
+ /** Remove and return first item */
126
+ dequeue: () => T | undefined;
127
+ /** Peek at first item without removing */
128
+ peek: () => T | undefined;
129
+ /** Clear the queue */
130
+ clear: () => void;
131
+ /** Queue size */
132
+ size: number;
133
+ /** Is queue empty? */
134
+ isEmpty: boolean;
135
+ /** First item in queue */
136
+ first: T | undefined;
137
+ /** Last item in queue */
138
+ last: T | undefined;
139
+ }
140
+ /**
141
+ * Hook to manage a FIFO queue
142
+ * @param initialValue - Initial queue items (default: [])
143
+ */
144
+ declare function useQueue<T>(initialValue?: T[]): UseQueueReturn<T>;
145
+
146
+ interface UseListReturn<T> {
147
+ /** Current list items */
148
+ list: T[];
149
+ /** Set entire list */
150
+ set: (newList: T[]) => void;
151
+ /** Add item to end */
152
+ push: (item: T) => void;
153
+ /** Add item to beginning */
154
+ unshift: (item: T) => void;
155
+ /** Remove item at index */
156
+ removeAt: (index: number) => void;
157
+ /** Remove first matching item */
158
+ remove: (item: T) => void;
159
+ /** Remove items matching predicate */
160
+ removeWhere: (predicate: (item: T) => boolean) => void;
161
+ /** Update item at index */
162
+ updateAt: (index: number, item: T) => void;
163
+ /** Update item at index with function */
164
+ updateWhere: (predicate: (item: T) => boolean, updater: (item: T) => T) => void;
165
+ /** Insert item at index */
166
+ insertAt: (index: number, item: T) => void;
167
+ /** Move item from one index to another */
168
+ move: (fromIndex: number, toIndex: number) => void;
169
+ /** Clear the list */
170
+ clear: () => void;
171
+ /** Reset to initial value */
172
+ reset: () => void;
173
+ /** Filter items */
174
+ filter: (predicate: (item: T) => boolean) => void;
175
+ /** Sort items */
176
+ sort: (compareFn?: (a: T, b: T) => number) => void;
177
+ /** Reverse items */
178
+ reverse: () => void;
179
+ /** List size */
180
+ size: number;
181
+ /** Is list empty? */
182
+ isEmpty: boolean;
183
+ /** First item */
184
+ first: T | undefined;
185
+ /** Last item */
186
+ last: T | undefined;
187
+ }
188
+ /**
189
+ * Hook to manage array/list with utility methods
190
+ * @param initialValue - Initial list items (default: [])
191
+ */
192
+ declare function useList<T>(initialValue?: T[]): UseListReturn<T>;
193
+
194
+ interface UseMapReturn<K, V> {
195
+ /** Current map */
196
+ map: Map<K, V>;
197
+ /** Get value by key */
198
+ get: (key: K) => V | undefined;
199
+ /** Set key-value pair */
200
+ set: (key: K, value: V) => void;
201
+ /** Set multiple entries */
202
+ setAll: (entries: Iterable<[K, V]>) => void;
203
+ /** Check if key exists */
204
+ has: (key: K) => boolean;
205
+ /** Delete by key */
206
+ remove: (key: K) => void;
207
+ /** Delete multiple keys */
208
+ removeAll: (keys: K[]) => void;
209
+ /** Clear the map */
210
+ clear: () => void;
211
+ /** Reset to initial value */
212
+ reset: () => void;
213
+ /** Map size */
214
+ size: number;
215
+ /** All keys */
216
+ keys: K[];
217
+ /** All values */
218
+ values: V[];
219
+ /** All entries */
220
+ entries: [K, V][];
221
+ /** Is map empty? */
222
+ isEmpty: boolean;
223
+ }
224
+ /**
225
+ * Hook to manage Map state with utility methods
226
+ * @param initialValue - Initial entries (default: [])
227
+ */
228
+ declare function useMap<K, V>(initialValue?: Iterable<[K, V]>): UseMapReturn<K, V>;
229
+
230
+ interface UseSetReturn<T> {
231
+ /** Current set */
232
+ set: Set<T>;
233
+ /** Add item to set */
234
+ add: (item: T) => void;
235
+ /** Add multiple items */
236
+ addAll: (items: Iterable<T>) => void;
237
+ /** Check if item exists */
238
+ has: (item: T) => boolean;
239
+ /** Remove item from set */
240
+ remove: (item: T) => void;
241
+ /** Remove multiple items */
242
+ removeAll: (items: Iterable<T>) => void;
243
+ /** Toggle item (add if not exists, remove if exists) */
244
+ toggle: (item: T) => void;
245
+ /** Clear the set */
246
+ clear: () => void;
247
+ /** Reset to initial value */
248
+ reset: () => void;
249
+ /** Set size */
250
+ size: number;
251
+ /** All values as array */
252
+ values: T[];
253
+ /** Is set empty? */
254
+ isEmpty: boolean;
255
+ }
256
+ /**
257
+ * Hook to manage Set state with utility methods
258
+ * @param initialValue - Initial items (default: [])
259
+ */
260
+ declare function useSet<T>(initialValue?: Iterable<T>): UseSetReturn<T>;
261
+
262
+ /**
263
+ * Debounce a value with configurable delay
264
+ * @param value - Value to debounce
265
+ * @param delay - Delay in milliseconds (default: 500)
266
+ */
267
+ declare function useDebounce<T>(value: T, delay?: number): T;
268
+
269
+ /**
270
+ * Throttle a value with configurable interval
271
+ * @param value - Value to throttle
272
+ * @param interval - Minimum interval between updates in milliseconds (default: 500)
273
+ */
274
+ declare function useThrottle<T>(value: T, interval?: number): T;
275
+
276
+ interface UseTimeoutReturn {
277
+ /** Reset the timeout */
278
+ reset: () => void;
279
+ /** Clear/cancel the timeout */
280
+ clear: () => void;
281
+ }
282
+ /**
283
+ * Hook to manage setTimeout declaratively
284
+ * @param callback - Function to call after timeout
285
+ * @param delay - Delay in milliseconds (null to disable)
286
+ */
287
+ declare function useTimeout(callback: () => void, delay: number | null): UseTimeoutReturn;
288
+
289
+ /**
290
+ * Run a callback on an interval
291
+ * @param callback - Function to call on each interval
292
+ * @param delay - Interval delay in ms (null to pause)
293
+ */
294
+ declare function useInterval(callback: () => void, delay: number | null): void;
295
+
296
+ /**
297
+ * Hook to run interval conditionally
298
+ * @param callback - Function to call on each interval
299
+ * @param delay - Interval delay in milliseconds
300
+ * @param when - Condition to run the interval
301
+ * @param immediate - Run callback immediately when condition becomes true
302
+ */
303
+ declare function useIntervalWhen(callback: () => void, delay: number, when: boolean, immediate?: boolean): void;
304
+
305
+ /**
306
+ * Hook to run callback at random intervals
307
+ * @param callback - Function to call on each interval
308
+ * @param minDelay - Minimum delay in milliseconds
309
+ * @param maxDelay - Maximum delay in milliseconds
310
+ * @param enabled - Whether the interval is enabled (default: true)
311
+ */
312
+ declare function useRandomInterval(callback: () => void, minDelay: number, maxDelay: number, enabled?: boolean): void;
313
+
314
+ interface UseCountdownOptions {
315
+ /** Interval in milliseconds (default: 1000) */
316
+ interval?: number;
317
+ /** Callback when countdown reaches zero */
318
+ onComplete?: () => void;
319
+ /** Auto-start the countdown (default: false) */
320
+ autoStart?: boolean;
321
+ }
322
+ interface UseCountdownReturn {
323
+ /** Current countdown value in milliseconds */
324
+ count: number;
325
+ /** Start the countdown */
326
+ start: () => void;
327
+ /** Pause the countdown */
328
+ pause: () => void;
329
+ /** Resume the countdown */
330
+ resume: () => void;
331
+ /** Reset to initial value */
332
+ reset: (newCount?: number) => void;
333
+ /** Is countdown running? */
334
+ isRunning: boolean;
335
+ /** Is countdown complete? */
336
+ isComplete: boolean;
337
+ /** Formatted time { days, hours, minutes, seconds } */
338
+ formatted: {
339
+ days: number;
340
+ hours: number;
341
+ minutes: number;
342
+ seconds: number;
343
+ };
344
+ }
345
+ /**
346
+ * Hook to manage countdown timer
347
+ * @param initialCount - Initial countdown value in milliseconds
348
+ * @param options - Configuration options
349
+ */
350
+ declare function useCountdown(initialCount: number, options?: UseCountdownOptions): UseCountdownReturn;
351
+
352
+ interface UseContinuousRetryOptions {
353
+ /** Maximum number of retry attempts (default: Infinity) */
354
+ maxAttempts?: number;
355
+ /** Delay between retries in milliseconds (default: 1000) */
356
+ delay?: number;
357
+ /** Whether to use exponential backoff (default: false) */
358
+ exponentialBackoff?: boolean;
359
+ /** Maximum delay when using exponential backoff (default: 30000) */
360
+ maxDelay?: number;
361
+ /** Auto-start retrying (default: true) */
362
+ autoStart?: boolean;
363
+ }
364
+ interface UseContinuousRetryReturn {
365
+ /** Number of attempts made */
366
+ attempts: number;
367
+ /** Last error encountered */
368
+ error: Error | null;
369
+ /** Is currently retrying? */
370
+ isRetrying: boolean;
371
+ /** Has succeeded? */
372
+ isSuccess: boolean;
373
+ /** Has reached max attempts? */
374
+ isMaxAttempts: boolean;
375
+ /** Start/restart retrying */
376
+ start: () => void;
377
+ /** Stop retrying */
378
+ stop: () => void;
379
+ /** Reset state */
380
+ reset: () => void;
381
+ }
382
+ /**
383
+ * Hook to continuously retry a function until success
384
+ * @param callback - Async function to retry (return true for success, false for retry)
385
+ * @param options - Configuration options
386
+ */
387
+ declare function useContinuousRetry(callback: () => Promise<boolean> | boolean, options?: UseContinuousRetryOptions): UseContinuousRetryReturn;
388
+
389
+ interface WindowSize {
390
+ width: number;
391
+ height: number;
392
+ }
393
+ /**
394
+ * Track window dimensions with resize updates
395
+ * @param debounceMs - Debounce resize events (default: 100ms)
396
+ */
397
+ declare function useWindowSize(debounceMs?: number): WindowSize;
398
+
399
+ interface WindowScrollPosition {
400
+ /** Horizontal scroll position */
401
+ x: number;
402
+ /** Vertical scroll position */
403
+ y: number;
404
+ /** Scroll direction (up, down, left, right, or null) */
405
+ direction: 'up' | 'down' | 'left' | 'right' | null;
406
+ /** Is scrolling? */
407
+ isScrolling: boolean;
408
+ }
409
+ interface UseWindowScrollReturn extends WindowScrollPosition {
410
+ /** Scroll to position */
411
+ scrollTo: (options: ScrollToOptions) => void;
412
+ /** Scroll to top */
413
+ scrollToTop: (behavior?: ScrollBehavior) => void;
414
+ /** Scroll to bottom */
415
+ scrollToBottom: (behavior?: ScrollBehavior) => void;
416
+ }
417
+ /**
418
+ * Hook to track and control window scroll position
419
+ */
420
+ declare function useWindowScroll(): UseWindowScrollReturn;
421
+
422
+ interface UseDocumentTitleOptions {
423
+ /** Restore previous title on unmount (default: true) */
424
+ restoreOnUnmount?: boolean;
425
+ /** Title template, use %s for title placeholder */
426
+ template?: string;
427
+ }
428
+ /**
429
+ * Hook to set document title
430
+ * @param title - Document title
431
+ * @param options - Configuration options
432
+ */
433
+ declare function useDocumentTitle(title: string, options?: UseDocumentTitleOptions): void;
434
+
435
+ interface UsePageTitleOptions {
436
+ /** Suffix to append to the title (e.g., organization name) */
437
+ suffix?: string;
438
+ /** Separator between title and suffix (default: ' | ') */
439
+ separator?: string;
440
+ /** Whether to restore original title on unmount (default: true) */
441
+ restoreOnUnmount?: boolean;
442
+ }
443
+ /**
444
+ * Set the document title with optional suffix
445
+ * @param title - Page title
446
+ * @param options - Configuration options
447
+ */
448
+ declare function usePageTitle(title: string, options?: UsePageTitleOptions): void;
449
+
450
+ /**
451
+ * Hook to dynamically change favicon
452
+ * @param href - URL of the favicon image
453
+ * @param restoreOnUnmount - Whether to restore original favicon on unmount (default: true)
454
+ */
455
+ declare function useFavicon(href: string, restoreOnUnmount?: boolean): void;
456
+
457
+ interface UseVisibilityChangeReturn {
458
+ /** Is document visible? */
459
+ isVisible: boolean;
460
+ /** Visibility state ('visible', 'hidden', 'prerender') */
461
+ visibilityState: DocumentVisibilityState;
462
+ /** Time when visibility last changed */
463
+ lastChanged: Date | null;
464
+ }
465
+ /**
466
+ * Hook to track document visibility state
467
+ * @param onVisibilityChange - Optional callback when visibility changes
468
+ */
469
+ declare function useVisibilityChange(onVisibilityChange?: (isVisible: boolean) => void): UseVisibilityChangeReturn;
470
+
471
+ interface UsePageLeaveOptions {
472
+ /** Show confirmation dialog on page leave (default: false) */
473
+ showConfirmation?: boolean;
474
+ /** Custom confirmation message (browser may override) */
475
+ confirmationMessage?: string;
476
+ }
477
+ /**
478
+ * Hook to detect when user is leaving the page
479
+ * @param onLeave - Callback when user attempts to leave
480
+ * @param options - Configuration options
481
+ */
482
+ declare function usePageLeave(onLeave?: () => void, options?: UsePageLeaveOptions): void;
483
+
484
+ /**
485
+ * Hook to lock body scroll
486
+ * @param locked - Whether scroll should be locked (default: true)
487
+ */
488
+ declare function useLockBodyScroll(locked?: boolean): void;
489
+
490
+ /**
491
+ * Hook to check if rendering on client side
492
+ * Useful for SSR/SSG environments
493
+ */
494
+ declare function useIsClient(): boolean;
495
+
496
+ /**
497
+ * Hook to check if it's the first render
498
+ */
499
+ declare function useIsFirstRender(): boolean;
500
+
501
+ type EventMap = WindowEventMap & DocumentEventMap & HTMLElementEventMap;
502
+ /**
503
+ * Hook to attach event listeners declaratively
504
+ * @param eventName - Name of the event to listen for
505
+ * @param handler - Event handler function
506
+ * @param element - Target element (default: window)
507
+ * @param options - AddEventListener options
508
+ */
509
+ declare function useEventListener<K extends keyof EventMap>(eventName: K, handler: (event: EventMap[K]) => void, element?: HTMLElement | Window | Document | null, options?: boolean | AddEventListenerOptions): void;
510
+
511
+ interface UseKeyPressOptions {
512
+ /** Target element (default: document) */
513
+ target?: HTMLElement | Document | Window | null;
514
+ /** Event type: 'keydown' | 'keyup' | 'keypress' */
515
+ event?: 'keydown' | 'keyup' | 'keypress';
516
+ /** Prevent default behavior */
517
+ preventDefault?: boolean;
518
+ /** Stop event propagation */
519
+ stopPropagation?: boolean;
520
+ }
521
+ interface UseKeyPressReturn {
522
+ /** Is the key currently pressed? */
523
+ pressed: boolean;
524
+ /** Event object from last press */
525
+ event: KeyboardEvent | null;
526
+ }
527
+ /**
528
+ * Hook to detect key press
529
+ * @param targetKey - Key to detect (e.g., 'Enter', 'Escape', 'a')
530
+ * @param callback - Optional callback when key is pressed
531
+ * @param options - Configuration options
532
+ */
533
+ declare function useKeyPress(targetKey: string | string[], callback?: (event: KeyboardEvent) => void, options?: UseKeyPressOptions): UseKeyPressReturn;
534
+
535
+ interface UseHoverReturn<T extends HTMLElement = HTMLElement> {
536
+ /** Ref to attach to the target element */
537
+ ref: React.RefObject<T | null>;
538
+ /** Is element being hovered? */
539
+ isHovered: boolean;
540
+ /** Bind props to spread on element */
541
+ bind: {
542
+ onMouseEnter: () => void;
543
+ onMouseLeave: () => void;
544
+ };
545
+ }
546
+ /**
547
+ * Hook to detect hover state
548
+ * @param onHoverChange - Optional callback when hover state changes
549
+ */
550
+ declare function useHover<T extends HTMLElement = HTMLElement>(onHoverChange?: (isHovered: boolean) => void): UseHoverReturn<T>;
551
+
552
+ type EventType = 'mousedown' | 'mouseup' | 'touchstart' | 'touchend';
553
+ /**
554
+ * Hook to detect clicks outside of an element
555
+ * @param callback - Function to call when click outside occurs
556
+ * @param events - Event types to listen for (default: ['mousedown', 'touchstart'])
557
+ */
558
+ declare function useClickAway<T extends HTMLElement = HTMLElement>(callback: (event: MouseEvent | TouchEvent) => void, events?: EventType[]): React.RefObject<T | null>;
559
+
560
+ /**
561
+ * useOnClickOutside Hook
562
+ * Detect clicks outside of a referenced element
563
+ */
564
+
565
+ type Handler = (event: MouseEvent | TouchEvent) => void;
566
+ /**
567
+ * Detect clicks outside of a referenced element
568
+ * @param ref - React ref to the element
569
+ * @param handler - Callback when click outside occurs
570
+ * @param enabled - Whether the hook is enabled (default: true)
571
+ */
572
+ declare function useOnClickOutside<T extends HTMLElement = HTMLElement>(ref: RefObject<T>, handler: Handler, enabled?: boolean): void;
573
+
574
+ interface UseLongPressOptions {
575
+ /** Threshold in milliseconds (default: 400) */
576
+ threshold?: number;
577
+ /** Callback on long press */
578
+ onLongPress?: (event: React.MouseEvent | React.TouchEvent) => void;
579
+ /** Callback on regular click */
580
+ onClick?: (event: React.MouseEvent | React.TouchEvent) => void;
581
+ /** Callback when press starts */
582
+ onStart?: (event: React.MouseEvent | React.TouchEvent) => void;
583
+ /** Callback when press ends */
584
+ onFinish?: (event: React.MouseEvent | React.TouchEvent) => void;
585
+ /** Callback when press is cancelled */
586
+ onCancel?: (event: React.MouseEvent | React.TouchEvent) => void;
587
+ }
588
+ interface UseLongPressReturn {
589
+ /** Is currently pressing? */
590
+ isPressed: boolean;
591
+ /** Is long press achieved? */
592
+ isLongPress: boolean;
593
+ /** Bind props to spread on element */
594
+ bind: {
595
+ onMouseDown: (e: React.MouseEvent) => void;
596
+ onMouseUp: (e: React.MouseEvent) => void;
597
+ onMouseLeave: (e: React.MouseEvent) => void;
598
+ onTouchStart: (e: React.TouchEvent) => void;
599
+ onTouchEnd: (e: React.TouchEvent) => void;
600
+ };
601
+ }
602
+ /**
603
+ * Hook to detect long press gesture
604
+ * @param options - Configuration options
605
+ */
606
+ declare function useLongPress(options?: UseLongPressOptions): UseLongPressReturn;
607
+
608
+ interface MousePosition {
609
+ /** X position relative to viewport */
610
+ x: number;
611
+ /** Y position relative to viewport */
612
+ y: number;
613
+ /** X position relative to page */
614
+ pageX: number;
615
+ /** Y position relative to page */
616
+ pageY: number;
617
+ /** X position relative to element (if ref provided) */
618
+ elementX: number;
619
+ /** Y position relative to element (if ref provided) */
620
+ elementY: number;
621
+ /** Is mouse within element bounds? */
622
+ isInElement: boolean;
623
+ }
624
+ interface UseMouseOptions {
625
+ /** Whether to track (default: true) */
626
+ enabled?: boolean;
627
+ }
628
+ interface UseMouseReturn<T extends HTMLElement = HTMLElement> extends MousePosition {
629
+ /** Ref to attach to element for relative positioning */
630
+ ref: React.RefObject<T | null>;
631
+ }
632
+ /**
633
+ * Hook to track mouse position
634
+ * @param options - Configuration options
635
+ */
636
+ declare function useMouse<T extends HTMLElement = HTMLElement>(options?: UseMouseOptions): UseMouseReturn<T>;
637
+
638
+ interface UseCopyToClipboardReturn {
639
+ /** Copy text to clipboard */
640
+ copy: (text: string) => Promise<boolean>;
641
+ /** Whether copy was successful (resets after timeout) */
642
+ copied: boolean;
643
+ /** Error message if copy failed */
644
+ error: string | null;
645
+ /** Reset state */
646
+ reset: () => void;
647
+ }
648
+ /**
649
+ * Copy text to clipboard with feedback
650
+ * @param resetDelay - Time in ms before copied state resets (default: 2000)
651
+ */
652
+ declare function useCopyToClipboard(resetDelay?: number): UseCopyToClipboardReturn;
653
+
654
+ /**
655
+ * Track a media query match
656
+ * @param query - CSS media query string (e.g., '(min-width: 768px)')
657
+ */
658
+ declare function useMediaQuery(query: string): boolean;
659
+ declare const useIsMobile: () => boolean;
660
+ declare const useIsTablet: () => boolean;
661
+ declare const useIsDesktop: () => boolean;
662
+ declare const useIsMobileOrTablet: () => boolean;
663
+
664
+ interface OrientationState {
665
+ /** Device orientation angle */
666
+ angle: number;
667
+ /** Orientation type */
668
+ type: OrientationType;
669
+ /** Is portrait? */
670
+ isPortrait: boolean;
671
+ /** Is landscape? */
672
+ isLandscape: boolean;
673
+ }
674
+ /**
675
+ * Hook to track device/screen orientation
676
+ */
677
+ declare function useOrientation(): OrientationState;
678
+
679
+ interface BatteryState {
680
+ /** Is battery API supported? */
681
+ isSupported: boolean;
682
+ /** Is device charging? */
683
+ charging: boolean;
684
+ /** Time until fully charged (seconds), Infinity if not charging */
685
+ chargingTime: number;
686
+ /** Time until discharged (seconds), Infinity if charging */
687
+ dischargingTime: number;
688
+ /** Battery level (0 to 1) */
689
+ level: number;
690
+ /** Battery percentage (0 to 100) */
691
+ percentage: number;
692
+ }
693
+ /**
694
+ * Hook to track battery status
695
+ */
696
+ declare function useBattery(): BatteryState;
697
+
698
+ interface NetworkState {
699
+ /** Is online? */
700
+ online: boolean;
701
+ /** Is offline? */
702
+ offline: boolean;
703
+ /** Connection downlink speed (Mbps) */
704
+ downlink?: number;
705
+ /** Effective connection type */
706
+ effectiveType?: 'slow-2g' | '2g' | '3g' | '4g';
707
+ /** Round-trip time (ms) */
708
+ rtt?: number;
709
+ /** Is data saver enabled? */
710
+ saveData?: boolean;
711
+ /** Connection type */
712
+ type?: string;
713
+ /** Time when status last changed */
714
+ since?: Date;
715
+ }
716
+ /**
717
+ * Hook to track network status
718
+ */
719
+ declare function useNetworkState(): NetworkState;
720
+
721
+ interface UseIdleOptions {
722
+ /** Idle timeout in milliseconds (default: 60000 = 1 minute) */
723
+ timeout?: number;
724
+ /** Events to consider as activity */
725
+ events?: string[];
726
+ /** Initial idle state */
727
+ initialState?: boolean;
728
+ /** Callback when user becomes idle */
729
+ onIdle?: () => void;
730
+ /** Callback when user becomes active */
731
+ onActive?: () => void;
732
+ }
733
+ interface UseIdleReturn {
734
+ /** Is user idle? */
735
+ isIdle: boolean;
736
+ /** Last active timestamp */
737
+ lastActive: Date;
738
+ /** Reset idle timer */
739
+ reset: () => void;
740
+ /** Start tracking */
741
+ start: () => void;
742
+ /** Stop tracking */
743
+ stop: () => void;
744
+ }
745
+ /**
746
+ * Hook to detect user idle state
747
+ * @param options - Configuration options
748
+ */
749
+ declare function useIdle(options?: UseIdleOptions): UseIdleReturn;
750
+
751
+ interface GeolocationState {
752
+ /** Is loading? */
753
+ loading: boolean;
754
+ /** Error message */
755
+ error: string | null;
756
+ /** Latitude */
757
+ latitude: number | null;
758
+ /** Longitude */
759
+ longitude: number | null;
760
+ /** Accuracy in meters */
761
+ accuracy: number | null;
762
+ /** Altitude in meters */
763
+ altitude: number | null;
764
+ /** Altitude accuracy in meters */
765
+ altitudeAccuracy: number | null;
766
+ /** Heading in degrees */
767
+ heading: number | null;
768
+ /** Speed in m/s */
769
+ speed: number | null;
770
+ /** Timestamp */
771
+ timestamp: number | null;
772
+ }
773
+ interface UseGeolocationOptions {
774
+ /** Enable high accuracy mode */
775
+ enableHighAccuracy?: boolean;
776
+ /** Maximum age of cached position (ms) */
777
+ maximumAge?: number;
778
+ /** Timeout for getting position (ms) */
779
+ timeout?: number;
780
+ /** Watch position continuously */
781
+ watch?: boolean;
782
+ }
783
+ interface UseGeolocationReturn extends GeolocationState {
784
+ /** Refresh position */
785
+ refresh: () => void;
786
+ /** Is geolocation supported? */
787
+ isSupported: boolean;
788
+ }
789
+ /**
790
+ * Hook to track geolocation
791
+ * @param options - Configuration options
792
+ */
793
+ declare function useGeolocation(options?: UseGeolocationOptions): UseGeolocationReturn;
794
+
795
+ interface UsePreferredLanguageReturn {
796
+ /** Primary preferred language */
797
+ language: string;
798
+ /** All preferred languages */
799
+ languages: readonly string[];
800
+ }
801
+ /**
802
+ * Hook to get user's preferred language
803
+ */
804
+ declare function usePreferredLanguage(): UsePreferredLanguageReturn;
805
+
806
+ type ThemeMode$1 = 'light' | 'dark';
807
+ /**
808
+ * Detect and track system color scheme preference
809
+ * @returns Current theme mode based on system preference
810
+ */
811
+ declare function useThemeDetector(): ThemeMode$1;
812
+
813
+ type SetValue<T> = T | ((prevValue: T) => T);
814
+ interface UseLocalStorageOptions<T> {
815
+ /** Serialize function (default: JSON.stringify) */
816
+ serializer?: (value: T) => string;
817
+ /** Deserialize function (default: JSON.parse) */
818
+ deserializer?: (value: string) => T;
819
+ /** Enable cross-tab synchronization (default: true) */
820
+ syncTabs?: boolean;
821
+ /** Enable logging (default: false) */
822
+ debug?: boolean;
823
+ }
824
+ /**
825
+ * Hook to persist state in localStorage with cross-tab sync
826
+ * @param key - localStorage key
827
+ * @param initialValue - initial/fallback value
828
+ * @param options - configuration options
829
+ */
830
+ declare function useLocalStorage<T>(key: string, initialValue: T, options?: UseLocalStorageOptions<T>): [T, (value: SetValue<T>) => void, () => void];
831
+
832
+ interface UseSessionStorageOptions<T> {
833
+ /** Serialize function (default: JSON.stringify) */
834
+ serializer?: (value: T) => string;
835
+ /** Deserialize function (default: JSON.parse) */
836
+ deserializer?: (value: string) => T;
837
+ /** Enable logging (default: false) */
838
+ debug?: boolean;
839
+ }
840
+ /**
841
+ * Hook to persist state in sessionStorage
842
+ * @param key - sessionStorage key
843
+ * @param initialValue - initial/fallback value
844
+ * @param options - configuration options
845
+ */
846
+ declare function useSessionStorage<T>(key: string, initialValue: T, options?: UseSessionStorageOptions<T>): [T, (value: SetValue<T>) => void, () => void];
847
+
848
+ interface UseFetchOptions<T> extends Omit<RequestInit, 'body'> {
849
+ /** Request body (will be JSON.stringify'd if object) */
850
+ body?: BodyInit | object | null;
851
+ /** Skip initial fetch */
852
+ skip?: boolean;
853
+ /** Transform response data */
854
+ transform?: (data: unknown) => T;
855
+ /** Retry count on failure */
856
+ retries?: number;
857
+ /** Retry delay in ms */
858
+ retryDelay?: number;
859
+ /** Cache key (default: url) */
860
+ cacheKey?: string;
861
+ /** Cache time in ms */
862
+ cacheTime?: number;
863
+ /** Callback on success */
864
+ onSuccess?: (data: T) => void;
865
+ /** Callback on error */
866
+ onError?: (error: Error) => void;
867
+ }
868
+ interface UseFetchReturn<T> {
869
+ /** Response data */
870
+ data: T | null;
871
+ /** Is loading? */
872
+ loading: boolean;
873
+ /** Error */
874
+ error: Error | null;
875
+ /** Refetch data */
876
+ refetch: () => Promise<T | null>;
877
+ /** Abort current request */
878
+ abort: () => void;
879
+ /** Is fetching? (includes refetch) */
880
+ isFetching: boolean;
881
+ /** HTTP status code */
882
+ status: number | null;
883
+ }
884
+ /**
885
+ * Hook for data fetching with caching and retry support
886
+ * @param url - URL to fetch
887
+ * @param options - Fetch options
888
+ */
889
+ declare function useFetch<T = unknown>(url: string | null, options?: UseFetchOptions<T>): UseFetchReturn<T>;
890
+
891
+ type ScriptStatus = 'idle' | 'loading' | 'ready' | 'error';
892
+ interface UseScriptOptions {
893
+ /** Should load script immediately (default: true) */
894
+ shouldLoad?: boolean;
895
+ /** Remove script on unmount (default: false) */
896
+ removeOnUnmount?: boolean;
897
+ /** Script attributes */
898
+ attributes?: Record<string, string>;
899
+ }
900
+ interface UseScriptReturn {
901
+ /** Script loading status */
902
+ status: ScriptStatus;
903
+ /** Is script ready? */
904
+ ready: boolean;
905
+ /** Is loading? */
906
+ loading: boolean;
907
+ /** Has error? */
908
+ error: boolean;
909
+ /** Load script manually */
910
+ load: () => void;
911
+ /** Remove script */
912
+ remove: () => void;
913
+ }
914
+ /**
915
+ * Hook to dynamically load external scripts
916
+ * @param src - Script source URL
917
+ * @param options - Configuration options
918
+ */
919
+ declare function useScript(src: string, options?: UseScriptOptions): UseScriptReturn;
920
+
921
+ interface RenderInfo {
922
+ /** Component name (if provided) */
923
+ name: string;
924
+ /** Total render count */
925
+ renders: number;
926
+ /** Time since last render (ms) */
927
+ sinceLastRender: number;
928
+ /** Timestamp of last render */
929
+ timestamp: number;
930
+ }
931
+ /**
932
+ * Hook to track render information for debugging
933
+ * @param componentName - Optional component name for identification
934
+ */
935
+ declare function useRenderInfo(componentName?: string): RenderInfo;
936
+
937
+ /**
938
+ * Hook to count component renders
939
+ */
940
+ declare function useRenderCount(): number;
941
+
942
+ interface UseLoggerOptions {
943
+ /** Log props changes */
944
+ logProps?: boolean;
945
+ /** Log lifecycle events */
946
+ logLifecycle?: boolean;
947
+ /** Custom logger function */
948
+ logger?: (...args: unknown[]) => void;
949
+ }
950
+ /**
951
+ * Hook to log component lifecycle and changes
952
+ * @param componentName - Name of the component
953
+ * @param props - Props to track changes
954
+ * @param options - Configuration options
955
+ */
956
+ declare function useLogger(componentName: string, props?: Record<string, unknown>, options?: UseLoggerOptions): void;
957
+
958
+ interface Dimensions {
959
+ /** Element width */
960
+ width: number;
961
+ /** Element height */
962
+ height: number;
963
+ /** Top position relative to viewport */
964
+ top: number;
965
+ /** Left position relative to viewport */
966
+ left: number;
967
+ /** Bottom position relative to viewport */
968
+ bottom: number;
969
+ /** Right position relative to viewport */
970
+ right: number;
971
+ /** X position (same as left) */
972
+ x: number;
973
+ /** Y position (same as top) */
974
+ y: number;
975
+ }
976
+ interface UseMeasureReturn<T extends HTMLElement = HTMLElement> {
977
+ /** Ref to attach to element */
978
+ ref: React.RefCallback<T>;
979
+ /** Element dimensions */
980
+ dimensions: Dimensions;
981
+ /** Manually trigger measurement */
982
+ measure: () => void;
983
+ }
984
+ /**
985
+ * Hook to measure element dimensions
986
+ */
987
+ declare function useMeasure<T extends HTMLElement = HTMLElement>(): UseMeasureReturn<T>;
988
+
989
+ interface UseIntersectionObserverOptions {
990
+ /** Root element (default: viewport) */
991
+ root?: Element | null;
992
+ /** Root margin (default: '0px') */
993
+ rootMargin?: string;
994
+ /** Intersection threshold(s) (default: 0) */
995
+ threshold?: number | number[];
996
+ /** Freeze after first intersection */
997
+ freezeOnceVisible?: boolean;
998
+ /** Initial visibility state */
999
+ initialIsIntersecting?: boolean;
1000
+ /** Callback when intersection changes */
1001
+ onChange?: (isIntersecting: boolean, entry: IntersectionObserverEntry) => void;
1002
+ }
1003
+ interface UseIntersectionObserverReturn<T extends Element = Element> {
1004
+ /** Ref to attach to element */
1005
+ ref: React.RefCallback<T>;
1006
+ /** Is element intersecting? */
1007
+ isIntersecting: boolean;
1008
+ /** Full intersection entry */
1009
+ entry: IntersectionObserverEntry | null;
1010
+ }
1011
+ /**
1012
+ * Hook to observe element intersection with viewport
1013
+ * @param options - IntersectionObserver options
1014
+ */
1015
+ declare function useIntersectionObserver<T extends Element = Element>(options?: UseIntersectionObserverOptions): UseIntersectionObserverReturn<T>;
1016
+
1017
+ type SnackbarSeverity = 'success' | 'error' | 'warning' | 'info';
1018
+ interface SnackbarState {
1019
+ open: boolean;
1020
+ message: string;
1021
+ severity: SnackbarSeverity;
1022
+ autoHideDuration?: number;
1023
+ }
1024
+ interface UseSnackbarReturn {
1025
+ /** Current snackbar state */
1026
+ state: SnackbarState;
1027
+ /** Show snackbar with message */
1028
+ show: (message: string, severity?: SnackbarSeverity, duration?: number) => void;
1029
+ /** Show success snackbar */
1030
+ success: (message: string, duration?: number) => void;
1031
+ /** Show error snackbar */
1032
+ error: (message: string, duration?: number) => void;
1033
+ /** Show warning snackbar */
1034
+ warning: (message: string, duration?: number) => void;
1035
+ /** Show info snackbar */
1036
+ info: (message: string, duration?: number) => void;
1037
+ /** Close snackbar */
1038
+ close: () => void;
1039
+ }
1040
+ /**
1041
+ * Manage snackbar/toast notification state
1042
+ * @param defaultDuration - Default auto-hide duration in ms
1043
+ */
1044
+ declare function useSnackbar(defaultDuration?: number): UseSnackbarReturn;
1045
+
1046
+ /**
1047
+ * Brand Identity Configuration
1048
+ * Complete brand identity for all Exyconn projects including logos,
1049
+ * colors, contact info, and social links
1050
+ */
1051
+ /**
1052
+ * Logo variants interface
1053
+ * - light: Logo for light backgrounds (dark colored logo)
1054
+ * - dark: Logo for dark backgrounds (light colored logo)
1055
+ * - logoOnly: Just the icon/symbol without text (light bg)
1056
+ * - darkLogoOnly: Just the icon/symbol without text (dark bg)
1057
+ */
1058
+ interface LogoSet {
1059
+ /** Full logo with text for light backgrounds */
1060
+ light: string;
1061
+ /** Full logo with text for dark backgrounds */
1062
+ dark: string;
1063
+ /** Icon only for light backgrounds */
1064
+ logoOnly: string;
1065
+ /** Icon only for dark backgrounds */
1066
+ darkLogoOnly: string;
1067
+ /** Favicon URL */
1068
+ favicon: string;
1069
+ }
1070
+ /**
1071
+ * Brand colors
1072
+ */
1073
+ interface BrandColors {
1074
+ primary: string;
1075
+ secondary: string;
1076
+ accent?: string;
1077
+ background?: string;
1078
+ foreground?: string;
1079
+ }
1080
+ /**
1081
+ * Social media links
1082
+ */
1083
+ interface SocialLinks {
1084
+ twitter?: string;
1085
+ facebook?: string;
1086
+ instagram?: string;
1087
+ linkedin?: string;
1088
+ github?: string;
1089
+ youtube?: string;
1090
+ discord?: string;
1091
+ tiktok?: string;
1092
+ }
1093
+ /**
1094
+ * Contact information
1095
+ */
1096
+ interface ContactInfo {
1097
+ supportEmail: string;
1098
+ salesEmail?: string;
1099
+ phone?: string;
1100
+ address?: string;
1101
+ }
1102
+ /**
1103
+ * SEO Configuration
1104
+ */
1105
+ interface SEOConfig {
1106
+ title: string;
1107
+ description: string;
1108
+ keywords: string[];
1109
+ ogImage?: string;
1110
+ }
1111
+ /**
1112
+ * Complete Brand Identity
1113
+ */
1114
+ interface BrandIdentity {
1115
+ id: string;
1116
+ name: string;
1117
+ tagline: string;
1118
+ domain: string;
1119
+ logo: LogoSet;
1120
+ colors: BrandColors;
1121
+ contact: ContactInfo;
1122
+ social?: SocialLinks;
1123
+ seo?: SEOConfig;
1124
+ }
1125
+ /**
1126
+ * App configuration for runtime
1127
+ * Use this in your apps for consistent branding
1128
+ */
1129
+ interface AppConfig {
1130
+ name: string;
1131
+ tagline: string;
1132
+ domain: string;
1133
+ supportEmail: string;
1134
+ logo: LogoSet;
1135
+ colors: BrandColors;
1136
+ }
1137
+ declare const BRANDS: Record<string, BrandIdentity>;
1138
+ /**
1139
+ * Pre-configured APP objects for each project
1140
+ * Import directly: import { APP } from '@exyconn/common'
1141
+ * Then configure which APP to use based on environment
1142
+ */
1143
+ declare const APPS: {
1144
+ readonly BOTIFY: AppConfig;
1145
+ readonly EXYCONN: AppConfig;
1146
+ readonly PARTYWINGS: AppConfig;
1147
+ readonly SIBERA: AppConfig;
1148
+ readonly SPENTIVA: AppConfig;
1149
+ };
1150
+ /**
1151
+ * Create an AppConfig from a brand
1152
+ */
1153
+ declare function createAppConfig(brandId: string): AppConfig;
1154
+ /**
1155
+ * Get brand by ID
1156
+ */
1157
+ declare function getBrandById(id: string): BrandIdentity | undefined;
1158
+ /**
1159
+ * Get brand by domain
1160
+ */
1161
+ declare function getBrandByDomain(domain: string): BrandIdentity | undefined;
1162
+ /**
1163
+ * Get all brands
1164
+ */
1165
+ declare function getAllBrands(): BrandIdentity[];
1166
+ /**
1167
+ * Get all brand IDs
1168
+ */
1169
+ declare function getAllBrandIds(): string[];
1170
+ /**
1171
+ * Get logo for a brand
1172
+ * @param brandId - Brand identifier
1173
+ * @param variant - 'light' | 'dark' | 'logoOnly' | 'darkLogoOnly'
1174
+ */
1175
+ declare function getLogo(brandId: string, variant: keyof LogoSet): string | undefined;
1176
+ /**
1177
+ * Get appropriate logo based on theme
1178
+ * @param brandId - Brand identifier
1179
+ * @param theme - 'light' | 'dark'
1180
+ * @param iconOnly - Whether to return icon only logo
1181
+ */
1182
+ declare function getThemedLogo(brandId: string, theme: 'light' | 'dark', iconOnly?: boolean): string | undefined;
1183
+ /**
1184
+ * Get current app config based on domain
1185
+ * Useful for multi-tenant applications
1186
+ */
1187
+ declare function getAppConfigByDomain(domain: string): AppConfig | undefined;
1188
+ /**
1189
+ * Detect brand from current window.location.hostname
1190
+ * For browser environments only
1191
+ */
1192
+ declare function detectCurrentBrand(): BrandIdentity | undefined;
1193
+
1194
+ /**
1195
+ * Theme System Types
1196
+ * Deep-level theming with micro-level customization
1197
+ * Supports light/dark themes with fallback options
1198
+ */
1199
+
1200
+ interface ColorPalette {
1201
+ 50: string;
1202
+ 100: string;
1203
+ 200: string;
1204
+ 300: string;
1205
+ 400: string;
1206
+ 500: string;
1207
+ 600: string;
1208
+ 700: string;
1209
+ 800: string;
1210
+ 900: string;
1211
+ 950: string;
1212
+ }
1213
+ interface SemanticColors {
1214
+ primary: string;
1215
+ primaryHover: string;
1216
+ primaryActive: string;
1217
+ primaryDisabled: string;
1218
+ secondary: string;
1219
+ secondaryHover: string;
1220
+ secondaryActive: string;
1221
+ secondaryDisabled: string;
1222
+ accent: string;
1223
+ accentHover: string;
1224
+ success: string;
1225
+ successHover: string;
1226
+ warning: string;
1227
+ warningHover: string;
1228
+ error: string;
1229
+ errorHover: string;
1230
+ info: string;
1231
+ infoHover: string;
1232
+ }
1233
+ interface BackgroundColors {
1234
+ /** Main page background */
1235
+ default: string;
1236
+ /** Alternate background for sections */
1237
+ paper: string;
1238
+ /** Card backgrounds */
1239
+ card: string;
1240
+ /** Modal/overlay backgrounds */
1241
+ overlay: string;
1242
+ /** Input field backgrounds */
1243
+ input: string;
1244
+ /** Disabled element backgrounds */
1245
+ disabled: string;
1246
+ /** Hover state background */
1247
+ hover: string;
1248
+ /** Selected state background */
1249
+ selected: string;
1250
+ }
1251
+ interface SurfaceColors {
1252
+ light: string;
1253
+ main: string;
1254
+ dark: string;
1255
+ }
1256
+ interface TextColors {
1257
+ /** Primary text color */
1258
+ primary: string;
1259
+ /** Secondary/muted text */
1260
+ secondary: string;
1261
+ /** Disabled text */
1262
+ disabled: string;
1263
+ /** Placeholder text */
1264
+ placeholder: string;
1265
+ /** Link text */
1266
+ link: string;
1267
+ /** Link hover */
1268
+ linkHover: string;
1269
+ /** Inverted text (for dark backgrounds) */
1270
+ inverse: string;
1271
+ /** On primary color background */
1272
+ onPrimary: string;
1273
+ /** On secondary color background */
1274
+ onSecondary: string;
1275
+ }
1276
+ interface BorderColors {
1277
+ default: string;
1278
+ light: string;
1279
+ dark: string;
1280
+ focus: string;
1281
+ error: string;
1282
+ success: string;
1283
+ disabled: string;
1284
+ }
1285
+ interface Shadows {
1286
+ none: string;
1287
+ xs: string;
1288
+ sm: string;
1289
+ md: string;
1290
+ lg: string;
1291
+ xl: string;
1292
+ '2xl': string;
1293
+ inner: string;
1294
+ /** Button specific shadows */
1295
+ button: string;
1296
+ buttonHover: string;
1297
+ /** Card shadows */
1298
+ card: string;
1299
+ cardHover: string;
1300
+ /** Modal/dropdown shadows */
1301
+ modal: string;
1302
+ dropdown: string;
1303
+ }
1304
+ interface FontFamily {
1305
+ sans: string;
1306
+ serif: string;
1307
+ mono: string;
1308
+ heading: string;
1309
+ body: string;
1310
+ }
1311
+ interface FontSize {
1312
+ xs: string;
1313
+ sm: string;
1314
+ base: string;
1315
+ lg: string;
1316
+ xl: string;
1317
+ '2xl': string;
1318
+ '3xl': string;
1319
+ '4xl': string;
1320
+ '5xl': string;
1321
+ '6xl': string;
1322
+ }
1323
+ interface FontWeight {
1324
+ light: number;
1325
+ normal: number;
1326
+ medium: number;
1327
+ semibold: number;
1328
+ bold: number;
1329
+ extrabold: number;
1330
+ }
1331
+ interface LineHeight {
1332
+ none: number;
1333
+ tight: number;
1334
+ snug: number;
1335
+ normal: number;
1336
+ relaxed: number;
1337
+ loose: number;
1338
+ }
1339
+ interface Typography {
1340
+ fontFamily: FontFamily;
1341
+ fontSize: FontSize;
1342
+ fontWeight: FontWeight;
1343
+ lineHeight: LineHeight;
1344
+ }
1345
+ interface Spacing {
1346
+ 0: string;
1347
+ px: string;
1348
+ 0.5: string;
1349
+ 1: string;
1350
+ 1.5: string;
1351
+ 2: string;
1352
+ 2.5: string;
1353
+ 3: string;
1354
+ 3.5: string;
1355
+ 4: string;
1356
+ 5: string;
1357
+ 6: string;
1358
+ 7: string;
1359
+ 8: string;
1360
+ 9: string;
1361
+ 10: string;
1362
+ 11: string;
1363
+ 12: string;
1364
+ 14: string;
1365
+ 16: string;
1366
+ 20: string;
1367
+ 24: string;
1368
+ 28: string;
1369
+ 32: string;
1370
+ 36: string;
1371
+ 40: string;
1372
+ 44: string;
1373
+ 48: string;
1374
+ 52: string;
1375
+ 56: string;
1376
+ 60: string;
1377
+ 64: string;
1378
+ 72: string;
1379
+ 80: string;
1380
+ 96: string;
1381
+ }
1382
+ interface BorderRadius {
1383
+ none: string;
1384
+ sm: string;
1385
+ default: string;
1386
+ md: string;
1387
+ lg: string;
1388
+ xl: string;
1389
+ '2xl': string;
1390
+ '3xl': string;
1391
+ full: string;
1392
+ }
1393
+ interface Breakpoints {
1394
+ xs: string;
1395
+ sm: string;
1396
+ md: string;
1397
+ lg: string;
1398
+ xl: string;
1399
+ '2xl': string;
1400
+ }
1401
+ interface ZIndex {
1402
+ hide: number;
1403
+ auto: string;
1404
+ base: number;
1405
+ dropdown: number;
1406
+ sticky: number;
1407
+ fixed: number;
1408
+ modalBackdrop: number;
1409
+ modal: number;
1410
+ popover: number;
1411
+ tooltip: number;
1412
+ toast: number;
1413
+ }
1414
+ interface Transitions {
1415
+ none: string;
1416
+ fast: string;
1417
+ normal: string;
1418
+ slow: string;
1419
+ slower: string;
1420
+ /** Specific transitions */
1421
+ colors: string;
1422
+ transform: string;
1423
+ opacity: string;
1424
+ shadow: string;
1425
+ all: string;
1426
+ }
1427
+ interface ButtonTheme {
1428
+ /** Background colors */
1429
+ bg: string;
1430
+ bgHover: string;
1431
+ bgActive: string;
1432
+ bgDisabled: string;
1433
+ /** Text colors */
1434
+ color: string;
1435
+ colorHover: string;
1436
+ colorDisabled: string;
1437
+ /** Border */
1438
+ border: string;
1439
+ borderHover: string;
1440
+ borderWidth: string;
1441
+ borderRadius: string;
1442
+ /** Shadow */
1443
+ shadow: string;
1444
+ shadowHover: string;
1445
+ /** Sizes */
1446
+ paddingX: string;
1447
+ paddingY: string;
1448
+ fontSize: string;
1449
+ fontWeight: number;
1450
+ /** Variants */
1451
+ variants: {
1452
+ primary: Partial<ButtonTheme>;
1453
+ secondary: Partial<ButtonTheme>;
1454
+ outline: Partial<ButtonTheme>;
1455
+ ghost: Partial<ButtonTheme>;
1456
+ link: Partial<ButtonTheme>;
1457
+ danger: Partial<ButtonTheme>;
1458
+ success: Partial<ButtonTheme>;
1459
+ };
1460
+ /** Sizes */
1461
+ sizes: {
1462
+ xs: Partial<ButtonTheme>;
1463
+ sm: Partial<ButtonTheme>;
1464
+ md: Partial<ButtonTheme>;
1465
+ lg: Partial<ButtonTheme>;
1466
+ xl: Partial<ButtonTheme>;
1467
+ };
1468
+ }
1469
+ interface InputTheme {
1470
+ bg: string;
1471
+ bgFocus: string;
1472
+ bgDisabled: string;
1473
+ bgError: string;
1474
+ color: string;
1475
+ colorPlaceholder: string;
1476
+ colorDisabled: string;
1477
+ border: string;
1478
+ borderFocus: string;
1479
+ borderError: string;
1480
+ borderWidth: string;
1481
+ borderRadius: string;
1482
+ shadow: string;
1483
+ shadowFocus: string;
1484
+ paddingX: string;
1485
+ paddingY: string;
1486
+ fontSize: string;
1487
+ /** Label styles */
1488
+ labelColor: string;
1489
+ labelFontSize: string;
1490
+ labelFontWeight: number;
1491
+ /** Helper/Error text */
1492
+ helperColor: string;
1493
+ errorColor: string;
1494
+ /** Sizes */
1495
+ sizes: {
1496
+ sm: Partial<InputTheme>;
1497
+ md: Partial<InputTheme>;
1498
+ lg: Partial<InputTheme>;
1499
+ };
1500
+ }
1501
+ interface CardTheme {
1502
+ bg: string;
1503
+ bgHover: string;
1504
+ border: string;
1505
+ borderWidth: string;
1506
+ borderRadius: string;
1507
+ shadow: string;
1508
+ shadowHover: string;
1509
+ padding: string;
1510
+ /** Header */
1511
+ headerBg: string;
1512
+ headerBorder: string;
1513
+ headerPadding: string;
1514
+ /** Footer */
1515
+ footerBg: string;
1516
+ footerBorder: string;
1517
+ footerPadding: string;
1518
+ }
1519
+ interface HeaderTheme {
1520
+ bg: string;
1521
+ bgScrolled: string;
1522
+ color: string;
1523
+ border: string;
1524
+ shadow: string;
1525
+ shadowScrolled: string;
1526
+ height: string;
1527
+ paddingX: string;
1528
+ /** Logo */
1529
+ logoHeight: string;
1530
+ /** Nav links */
1531
+ navColor: string;
1532
+ navColorHover: string;
1533
+ navColorActive: string;
1534
+ navFontSize: string;
1535
+ navFontWeight: number;
1536
+ /** Mobile menu */
1537
+ mobileMenuBg: string;
1538
+ mobileMenuShadow: string;
1539
+ }
1540
+ interface FooterTheme {
1541
+ bg: string;
1542
+ color: string;
1543
+ colorMuted: string;
1544
+ border: string;
1545
+ padding: string;
1546
+ /** Links */
1547
+ linkColor: string;
1548
+ linkColorHover: string;
1549
+ /** Headings */
1550
+ headingColor: string;
1551
+ headingFontSize: string;
1552
+ headingFontWeight: number;
1553
+ /** Copyright */
1554
+ copyrightBg: string;
1555
+ copyrightColor: string;
1556
+ }
1557
+ interface BannerTheme {
1558
+ bg: string;
1559
+ color: string;
1560
+ border: string;
1561
+ borderRadius: string;
1562
+ padding: string;
1563
+ shadow: string;
1564
+ /** Close button */
1565
+ closeBg: string;
1566
+ closeColor: string;
1567
+ /** Variants */
1568
+ variants: {
1569
+ info: Partial<BannerTheme>;
1570
+ success: Partial<BannerTheme>;
1571
+ warning: Partial<BannerTheme>;
1572
+ error: Partial<BannerTheme>;
1573
+ promo: Partial<BannerTheme>;
1574
+ };
1575
+ }
1576
+ interface LoaderTheme {
1577
+ color: string;
1578
+ colorSecondary: string;
1579
+ size: string;
1580
+ borderWidth: string;
1581
+ /** Overlay */
1582
+ overlayBg: string;
1583
+ overlayOpacity: number;
1584
+ /** Sizes */
1585
+ sizes: {
1586
+ xs: string;
1587
+ sm: string;
1588
+ md: string;
1589
+ lg: string;
1590
+ xl: string;
1591
+ };
1592
+ }
1593
+ interface ModalTheme {
1594
+ bg: string;
1595
+ color: string;
1596
+ border: string;
1597
+ borderRadius: string;
1598
+ shadow: string;
1599
+ padding: string;
1600
+ /** Overlay */
1601
+ overlayBg: string;
1602
+ overlayOpacity: number;
1603
+ /** Header */
1604
+ headerBg: string;
1605
+ headerBorder: string;
1606
+ headerPadding: string;
1607
+ /** Footer */
1608
+ footerBg: string;
1609
+ footerBorder: string;
1610
+ footerPadding: string;
1611
+ /** Close button */
1612
+ closeBg: string;
1613
+ closeColor: string;
1614
+ closeHoverBg: string;
1615
+ /** Sizes */
1616
+ sizes: {
1617
+ sm: string;
1618
+ md: string;
1619
+ lg: string;
1620
+ xl: string;
1621
+ full: string;
1622
+ };
1623
+ }
1624
+ interface ToastTheme {
1625
+ bg: string;
1626
+ color: string;
1627
+ border: string;
1628
+ borderRadius: string;
1629
+ shadow: string;
1630
+ padding: string;
1631
+ /** Variants */
1632
+ variants: {
1633
+ success: Partial<ToastTheme>;
1634
+ error: Partial<ToastTheme>;
1635
+ warning: Partial<ToastTheme>;
1636
+ info: Partial<ToastTheme>;
1637
+ };
1638
+ }
1639
+ interface NewsletterTheme {
1640
+ bg: string;
1641
+ color: string;
1642
+ border: string;
1643
+ borderRadius: string;
1644
+ padding: string;
1645
+ /** Title */
1646
+ titleColor: string;
1647
+ titleFontSize: string;
1648
+ /** Description */
1649
+ descColor: string;
1650
+ descFontSize: string;
1651
+ /** Input override */
1652
+ inputBg: string;
1653
+ inputBorder: string;
1654
+ /** Button override */
1655
+ buttonBg: string;
1656
+ buttonColor: string;
1657
+ }
1658
+ interface ComponentThemes {
1659
+ button: ButtonTheme;
1660
+ input: InputTheme;
1661
+ card: CardTheme;
1662
+ header: HeaderTheme;
1663
+ footer: FooterTheme;
1664
+ banner: BannerTheme;
1665
+ loader: LoaderTheme;
1666
+ modal: ModalTheme;
1667
+ toast: ToastTheme;
1668
+ newsletter: NewsletterTheme;
1669
+ }
1670
+ type ThemeMode = 'light' | 'dark' | 'system';
1671
+ interface Theme {
1672
+ /** Theme identifier */
1673
+ name: string;
1674
+ /** Light or dark mode */
1675
+ mode: ThemeMode;
1676
+ /** Brand identity reference */
1677
+ brand?: Partial<BrandIdentity>;
1678
+ /** Color system */
1679
+ colors: {
1680
+ brand: BrandColors;
1681
+ semantic: SemanticColors;
1682
+ background: BackgroundColors;
1683
+ surface: SurfaceColors;
1684
+ text: TextColors;
1685
+ border: BorderColors;
1686
+ };
1687
+ /** Shadow system */
1688
+ shadows: Shadows;
1689
+ /** Typography */
1690
+ typography: Typography;
1691
+ /** Spacing */
1692
+ spacing: Spacing;
1693
+ /** Border radius */
1694
+ borderRadius: BorderRadius;
1695
+ /** Breakpoints */
1696
+ breakpoints: Breakpoints;
1697
+ /** Z-index */
1698
+ zIndex: ZIndex;
1699
+ /** Transitions */
1700
+ transitions: Transitions;
1701
+ /** Component-specific themes */
1702
+ components: ComponentThemes;
1703
+ }
1704
+ interface ThemeConfig {
1705
+ /** Default theme mode */
1706
+ defaultMode?: ThemeMode;
1707
+ /** URL to load theme from */
1708
+ themeUrl?: string;
1709
+ /** Custom light theme overrides */
1710
+ light?: DeepPartial<Theme>;
1711
+ /** Custom dark theme overrides */
1712
+ dark?: DeepPartial<Theme>;
1713
+ /** Brand identity to apply */
1714
+ brandIdentity?: BrandIdentity;
1715
+ /** Enable system theme detection */
1716
+ enableSystemTheme?: boolean;
1717
+ /** Persist theme preference */
1718
+ persistTheme?: boolean;
1719
+ /** Storage key for persistence */
1720
+ storageKey?: string;
1721
+ /** CSS variable prefix */
1722
+ cssVarPrefix?: string;
1723
+ }
1724
+ interface ThemeContextValue {
1725
+ /** Current theme */
1726
+ theme: Theme;
1727
+ /** Current mode */
1728
+ mode: ThemeMode;
1729
+ /** Set theme mode */
1730
+ setMode: (mode: ThemeMode) => void;
1731
+ /** Toggle between light/dark */
1732
+ toggleMode: () => void;
1733
+ /** Update theme */
1734
+ updateTheme: (updates: DeepPartial<Theme>) => void;
1735
+ /** Reset to default theme */
1736
+ resetTheme: () => void;
1737
+ /** Check if dark mode */
1738
+ isDark: boolean;
1739
+ /** Check if light mode */
1740
+ isLight: boolean;
1741
+ /** Loading state (for URL themes) */
1742
+ isLoading: boolean;
1743
+ /** Error state */
1744
+ error: string | null;
1745
+ }
1746
+ type DeepPartial<T> = {
1747
+ [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
1748
+ };
1749
+
1750
+ /**
1751
+ * Default Light Theme
1752
+ * Complete theme definition with all micro-level customizations
1753
+ */
1754
+
1755
+ declare const defaultLightTheme: Theme;
1756
+
1757
+ /**
1758
+ * Default Dark Theme
1759
+ * Complete dark theme with all micro-level customizations
1760
+ */
1761
+
1762
+ declare const defaultDarkTheme: Theme;
1763
+
1764
+ /**
1765
+ * Theme Utilities
1766
+ * Functions for theme manipulation, loading, and CSS variable generation
1767
+ */
1768
+
1769
+ /**
1770
+ * Deep merge two objects
1771
+ */
1772
+ declare function deepMerge<T extends object>(target: T, source: DeepPartial<T>): T;
1773
+ /**
1774
+ * Generate theme colors from brand identity
1775
+ */
1776
+ declare function createThemeFromBrand(brand: BrandIdentity, baseTheme?: Theme): Theme;
1777
+ /**
1778
+ * Adjust color brightness
1779
+ * @param hex - Hex color
1780
+ * @param percent - Positive to lighten, negative to darken
1781
+ */
1782
+ declare function adjustColor(hex: string, percent: number): string;
1783
+ /**
1784
+ * Convert hex to rgba
1785
+ */
1786
+ declare function hexToRgba(hex: string, alpha?: number): string;
1787
+ /**
1788
+ * Get contrasting text color (black or white)
1789
+ */
1790
+ declare function getContrastColor(hex: string): string;
1791
+ /**
1792
+ * Flatten nested object to CSS variables
1793
+ */
1794
+ declare function flattenToCssVars(obj: Record<string, unknown>, prefix?: string): Record<string, string>;
1795
+ /**
1796
+ * Generate CSS variables string from theme
1797
+ */
1798
+ declare function generateCssVars(theme: Theme, prefix?: string): string;
1799
+ /**
1800
+ * Inject CSS variables into document
1801
+ */
1802
+ declare function injectCssVars(theme: Theme, prefix?: string): void;
1803
+ /**
1804
+ * Remove CSS variables from document
1805
+ */
1806
+ declare function removeCssVars(prefix?: string): void;
1807
+ /**
1808
+ * Load theme from URL
1809
+ */
1810
+ declare function loadThemeFromUrl(url: string): Promise<DeepPartial<Theme> | null>;
1811
+ /**
1812
+ * Create theme with config
1813
+ */
1814
+ declare function createTheme(config?: ThemeConfig): Promise<{
1815
+ light: Theme;
1816
+ dark: Theme;
1817
+ }>;
1818
+ /**
1819
+ * Save theme mode to storage
1820
+ */
1821
+ declare function saveThemeMode(mode: ThemeMode, storageKey?: string): void;
1822
+ /**
1823
+ * Load theme mode from storage
1824
+ */
1825
+ declare function loadThemeMode(storageKey?: string): ThemeMode | null;
1826
+ /**
1827
+ * Get system preferred color scheme
1828
+ */
1829
+ declare function getSystemColorScheme(): 'light' | 'dark';
1830
+ /**
1831
+ * Resolve theme mode (handle 'system')
1832
+ */
1833
+ declare function resolveThemeMode(mode: ThemeMode): 'light' | 'dark';
1834
+
1835
+ /**
1836
+ * ThemeProvider Component
1837
+ * Global theme provider with light/dark mode support and brand identity integration
1838
+ */
1839
+
1840
+ declare const ThemeContext: React$1.Context<ThemeContextValue | null>;
1841
+ /**
1842
+ * Hook to access theme context
1843
+ */
1844
+ declare function useTheme(): ThemeContextValue;
1845
+ interface ThemeProviderProps {
1846
+ children: React$1.ReactNode;
1847
+ config?: ThemeConfig;
1848
+ /** Initial theme (overrides config) */
1849
+ initialTheme?: Theme;
1850
+ }
1851
+ declare function ThemeProvider({ children, config, initialTheme, }: ThemeProviderProps): React$1.ReactElement;
1852
+ /**
1853
+ * Get CSS variable value from theme path
1854
+ * @example cssVar('colors.brand.primary') => 'var(--ec-colors-brand-primary)'
1855
+ */
1856
+ declare function cssVar(path: string, prefix?: string): string;
1857
+ /**
1858
+ * Get theme value directly
1859
+ */
1860
+ declare function useThemeValue<T>(selector: (theme: Theme) => T): T;
1861
+ interface ThemeToggleProps {
1862
+ className?: string;
1863
+ size?: number;
1864
+ showLabel?: boolean;
1865
+ lightLabel?: string;
1866
+ darkLabel?: string;
1867
+ }
1868
+ declare function ThemeToggle({ className, size, showLabel, lightLabel, darkLabel, }: ThemeToggleProps): React$1.ReactElement;
1869
+
1870
+ /**
1871
+ * Astro Component Types
1872
+ * Highly typed props for all Astro components with Tailwind class support
1873
+ */
1874
+ /** Common Tailwind text colors */
1875
+ type TailwindTextColor = 'text-white' | 'text-black' | 'text-gray-50' | 'text-gray-100' | 'text-gray-200' | 'text-gray-300' | 'text-gray-400' | 'text-gray-500' | 'text-gray-600' | 'text-gray-700' | 'text-gray-800' | 'text-gray-900' | 'text-slate-50' | 'text-slate-100' | 'text-slate-200' | 'text-slate-300' | 'text-slate-400' | 'text-slate-500' | 'text-slate-600' | 'text-slate-700' | 'text-slate-800' | 'text-slate-900' | 'text-blue-500' | 'text-blue-600' | 'text-blue-700' | 'text-green-500' | 'text-green-600' | 'text-green-700' | 'text-red-500' | 'text-red-600' | 'text-red-700' | 'text-yellow-500' | 'text-yellow-600' | 'text-yellow-700' | 'text-purple-500' | 'text-purple-600' | 'text-purple-700' | 'text-pink-500' | 'text-pink-600' | 'text-pink-700' | 'text-indigo-500' | 'text-indigo-600' | 'text-indigo-700' | string;
1876
+ /** Common Tailwind background colors */
1877
+ type TailwindBgColor = 'bg-white' | 'bg-black' | 'bg-transparent' | 'bg-gray-50' | 'bg-gray-100' | 'bg-gray-200' | 'bg-gray-300' | 'bg-gray-400' | 'bg-gray-500' | 'bg-gray-600' | 'bg-gray-700' | 'bg-gray-800' | 'bg-gray-900' | 'bg-slate-50' | 'bg-slate-100' | 'bg-slate-200' | 'bg-slate-300' | 'bg-slate-400' | 'bg-slate-500' | 'bg-slate-600' | 'bg-slate-700' | 'bg-slate-800' | 'bg-slate-900' | 'bg-blue-500' | 'bg-blue-600' | 'bg-blue-700' | 'bg-green-500' | 'bg-green-600' | 'bg-green-700' | 'bg-red-500' | 'bg-red-600' | 'bg-red-700' | 'bg-yellow-500' | 'bg-yellow-600' | 'bg-yellow-700' | 'bg-purple-500' | 'bg-purple-600' | 'bg-purple-700' | 'bg-gradient-to-r' | 'bg-gradient-to-l' | 'bg-gradient-to-t' | 'bg-gradient-to-b' | 'bg-gradient-to-br' | 'bg-gradient-to-bl' | 'bg-gradient-to-tr' | 'bg-gradient-to-tl' | string;
1878
+ /** Common Tailwind padding */
1879
+ type TailwindPadding = 'p-0' | 'p-1' | 'p-2' | 'p-3' | 'p-4' | 'p-5' | 'p-6' | 'p-8' | 'p-10' | 'p-12' | 'p-16' | 'p-20' | 'p-24' | 'px-0' | 'px-1' | 'px-2' | 'px-3' | 'px-4' | 'px-5' | 'px-6' | 'px-8' | 'px-10' | 'px-12' | 'px-16' | 'py-0' | 'py-1' | 'py-2' | 'py-3' | 'py-4' | 'py-5' | 'py-6' | 'py-8' | 'py-10' | 'py-12' | 'py-16' | 'py-20' | 'py-24' | 'pt-0' | 'pt-4' | 'pt-8' | 'pt-12' | 'pt-16' | 'pt-20' | 'pt-24' | 'pb-0' | 'pb-4' | 'pb-8' | 'pb-12' | 'pb-16' | 'pb-20' | 'pb-24' | string;
1880
+ /** Common Tailwind margin */
1881
+ type TailwindMargin = 'm-0' | 'm-1' | 'm-2' | 'm-3' | 'm-4' | 'm-5' | 'm-6' | 'm-8' | 'm-auto' | 'mx-auto' | 'mx-0' | 'mx-4' | 'mx-6' | 'mx-8' | 'my-0' | 'my-4' | 'my-6' | 'my-8' | 'my-10' | 'my-12' | 'my-16' | 'mt-0' | 'mt-2' | 'mt-4' | 'mt-6' | 'mt-8' | 'mt-10' | 'mt-12' | 'mt-16' | 'mb-0' | 'mb-2' | 'mb-4' | 'mb-6' | 'mb-8' | 'mb-10' | 'mb-12' | 'mb-16' | 'ml-auto' | 'mr-auto' | string;
1882
+ /** Common Tailwind font sizes */
1883
+ type TailwindFontSize = 'text-xs' | 'text-sm' | 'text-base' | 'text-lg' | 'text-xl' | 'text-2xl' | 'text-3xl' | 'text-4xl' | 'text-5xl' | 'text-6xl' | 'text-7xl' | 'text-8xl' | 'text-9xl' | string;
1884
+ /** Common Tailwind font weights */
1885
+ type TailwindFontWeight = 'font-thin' | 'font-extralight' | 'font-light' | 'font-normal' | 'font-medium' | 'font-semibold' | 'font-bold' | 'font-extrabold' | 'font-black' | string;
1886
+ /** Common Tailwind border radius */
1887
+ type TailwindBorderRadius = 'rounded-none' | 'rounded-sm' | 'rounded' | 'rounded-md' | 'rounded-lg' | 'rounded-xl' | 'rounded-2xl' | 'rounded-3xl' | 'rounded-full' | string;
1888
+ /** Common Tailwind shadow */
1889
+ type TailwindShadow = 'shadow-none' | 'shadow-sm' | 'shadow' | 'shadow-md' | 'shadow-lg' | 'shadow-xl' | 'shadow-2xl' | 'shadow-inner' | string;
1890
+ /** Common Tailwind width */
1891
+ type TailwindWidth = 'w-full' | 'w-screen' | 'w-auto' | 'w-fit' | 'w-max' | 'w-min' | 'w-1/2' | 'w-1/3' | 'w-2/3' | 'w-1/4' | 'w-3/4' | 'w-1/5' | 'w-2/5' | 'w-3/5' | 'w-4/5' | 'w-8' | 'w-10' | 'w-12' | 'w-16' | 'w-20' | 'w-24' | 'w-32' | 'w-40' | 'w-48' | 'w-56' | 'w-64' | 'max-w-sm' | 'max-w-md' | 'max-w-lg' | 'max-w-xl' | 'max-w-2xl' | 'max-w-3xl' | 'max-w-4xl' | 'max-w-5xl' | 'max-w-6xl' | 'max-w-7xl' | 'max-w-full' | string;
1892
+ /** Common Tailwind height */
1893
+ type TailwindHeight = 'h-full' | 'h-screen' | 'h-auto' | 'h-fit' | 'h-max' | 'h-min' | 'h-8' | 'h-10' | 'h-12' | 'h-16' | 'h-20' | 'h-24' | 'h-32' | 'h-40' | 'h-48' | 'h-56' | 'h-64' | 'min-h-screen' | 'min-h-full' | string;
1894
+ /** Common Tailwind gap */
1895
+ type TailwindGap = 'gap-0' | 'gap-1' | 'gap-2' | 'gap-3' | 'gap-4' | 'gap-5' | 'gap-6' | 'gap-8' | 'gap-10' | 'gap-12' | 'gap-x-0' | 'gap-x-2' | 'gap-x-4' | 'gap-x-6' | 'gap-x-8' | 'gap-y-0' | 'gap-y-2' | 'gap-y-4' | 'gap-y-6' | 'gap-y-8' | string;
1896
+ /** Custom class string */
1897
+ type TailwindClasses$1 = string;
1898
+ type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'link' | 'danger' | 'success';
1899
+ type ButtonSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
1900
+ interface ButtonProps {
1901
+ /** Button text content */
1902
+ text: string;
1903
+ /** Button variant */
1904
+ variant?: ButtonVariant;
1905
+ /** Button size */
1906
+ size?: ButtonSize;
1907
+ /** Full width button */
1908
+ fullWidth?: boolean;
1909
+ /** Disabled state */
1910
+ disabled?: boolean;
1911
+ /** Button type */
1912
+ type?: 'button' | 'submit' | 'reset';
1913
+ /** Link href (renders as anchor) */
1914
+ href?: string;
1915
+ /** Open in new tab */
1916
+ target?: '_blank' | '_self' | '_parent' | '_top';
1917
+ /** Left icon (SVG string or component) */
1918
+ leftIcon?: string;
1919
+ /** Right icon (SVG string or component) */
1920
+ rightIcon?: string;
1921
+ /** Additional class override */
1922
+ class?: TailwindClasses$1;
1923
+ /** Container class */
1924
+ containerClass?: TailwindClasses$1;
1925
+ /** ID attribute */
1926
+ id?: string;
1927
+ /** Aria label */
1928
+ ariaLabel?: string;
1929
+ }
1930
+ type LoaderVariant = 'spinner' | 'dots' | 'pulse' | 'bars';
1931
+ type LoaderSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
1932
+ interface LoaderProps {
1933
+ /** Loader variant */
1934
+ variant?: LoaderVariant;
1935
+ /** Loader size */
1936
+ size?: LoaderSize;
1937
+ /** Custom color */
1938
+ color?: TailwindTextColor;
1939
+ /** Label text */
1940
+ label?: string;
1941
+ /** Show label */
1942
+ showLabel?: boolean;
1943
+ /** Additional classes */
1944
+ class?: TailwindClasses$1;
1945
+ }
1946
+ interface ContainerProps {
1947
+ /** Max width */
1948
+ maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | 'full';
1949
+ /** Padding */
1950
+ padding?: TailwindPadding;
1951
+ /** Center content */
1952
+ centered?: boolean;
1953
+ /** Additional classes */
1954
+ class?: TailwindClasses$1;
1955
+ }
1956
+ interface RowProps {
1957
+ /** Gap between columns */
1958
+ gap?: TailwindGap;
1959
+ /** Vertical alignment */
1960
+ alignItems?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';
1961
+ /** Horizontal alignment */
1962
+ justifyContent?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
1963
+ /** Wrap behavior */
1964
+ wrap?: boolean;
1965
+ /** Reverse order */
1966
+ reverse?: boolean;
1967
+ /** Additional classes */
1968
+ class?: TailwindClasses$1;
1969
+ }
1970
+ interface ColProps {
1971
+ /** Column span (1-12) */
1972
+ span?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'auto' | 'full';
1973
+ /** Span on sm screens */
1974
+ sm?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'auto' | 'full';
1975
+ /** Span on md screens */
1976
+ md?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'auto' | 'full';
1977
+ /** Span on lg screens */
1978
+ lg?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'auto' | 'full';
1979
+ /** Span on xl screens */
1980
+ xl?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'auto' | 'full';
1981
+ /** Additional classes */
1982
+ class?: TailwindClasses$1;
1983
+ }
1984
+ interface TwoColumnProps {
1985
+ /** Left column content ratio */
1986
+ leftRatio?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11;
1987
+ /** Gap between columns */
1988
+ gap?: TailwindGap;
1989
+ /** Reverse on mobile */
1990
+ reverseMobile?: boolean;
1991
+ /** Vertical alignment */
1992
+ alignItems?: 'start' | 'center' | 'end' | 'stretch';
1993
+ /** Additional classes */
1994
+ class?: TailwindClasses$1;
1995
+ /** Left column class */
1996
+ leftClass?: TailwindClasses$1;
1997
+ /** Right column class */
1998
+ rightClass?: TailwindClasses$1;
1999
+ }
2000
+ interface ThreeColumnProps {
2001
+ /** Gap between columns */
2002
+ gap?: TailwindGap;
2003
+ /** Vertical alignment */
2004
+ alignItems?: 'start' | 'center' | 'end' | 'stretch';
2005
+ /** Additional classes */
2006
+ class?: TailwindClasses$1;
2007
+ /** Column 1 class */
2008
+ col1Class?: TailwindClasses$1;
2009
+ /** Column 2 class */
2010
+ col2Class?: TailwindClasses$1;
2011
+ /** Column 3 class */
2012
+ col3Class?: TailwindClasses$1;
2013
+ }
2014
+ interface NavLink {
2015
+ /** Link text */
2016
+ text: string;
2017
+ /** Link URL */
2018
+ href: string;
2019
+ /** Active state */
2020
+ active?: boolean;
2021
+ /** Open in new tab */
2022
+ external?: boolean;
2023
+ /** Dropdown items */
2024
+ children?: NavLink[];
2025
+ /** Icon SVG string */
2026
+ icon?: string;
2027
+ }
2028
+ interface HeaderProps {
2029
+ /** Logo image URL */
2030
+ logo?: string;
2031
+ /** Logo alt text */
2032
+ logoAlt?: string;
2033
+ /** Logo text (if no image) */
2034
+ logoText?: string;
2035
+ /** Navigation links */
2036
+ navLinks?: NavLink[];
2037
+ /** CTA button */
2038
+ cta?: {
2039
+ text: string;
2040
+ href: string;
2041
+ variant?: ButtonVariant;
2042
+ };
2043
+ /** Sticky header */
2044
+ sticky?: boolean;
2045
+ /** Transparent background */
2046
+ transparent?: boolean;
2047
+ /** Background class */
2048
+ bgClass?: TailwindBgColor;
2049
+ /** Text color class */
2050
+ textClass?: TailwindTextColor;
2051
+ /** Additional classes */
2052
+ class?: TailwindClasses$1;
2053
+ /** Logo class */
2054
+ logoClass?: TailwindClasses$1;
2055
+ /** Nav class */
2056
+ navClass?: TailwindClasses$1;
2057
+ /** Container max width */
2058
+ maxWidth?: ContainerProps['maxWidth'];
2059
+ }
2060
+ interface FooterColumn {
2061
+ /** Column title */
2062
+ title: string;
2063
+ /** Column links */
2064
+ links: NavLink[];
2065
+ }
2066
+ interface SocialLink {
2067
+ /** Platform name */
2068
+ platform: 'facebook' | 'twitter' | 'instagram' | 'linkedin' | 'youtube' | 'github' | 'discord' | 'tiktok';
2069
+ /** Profile URL */
2070
+ href: string;
2071
+ /** Icon SVG (optional, defaults based on platform) */
2072
+ icon?: string;
2073
+ }
2074
+ interface FooterProps {
2075
+ /** Logo image URL */
2076
+ logo?: string;
2077
+ /** Logo alt text */
2078
+ logoAlt?: string;
2079
+ /** Logo text */
2080
+ logoText?: string;
2081
+ /** Company description */
2082
+ description?: string;
2083
+ /** Footer columns */
2084
+ columns?: FooterColumn[];
2085
+ /** Social links */
2086
+ socialLinks?: SocialLink[];
2087
+ /** Copyright text */
2088
+ copyright?: string;
2089
+ /** Background class */
2090
+ bgClass?: TailwindBgColor;
2091
+ /** Text color class */
2092
+ textClass?: TailwindTextColor;
2093
+ /** Additional classes */
2094
+ class?: TailwindClasses$1;
2095
+ /** Container max width */
2096
+ maxWidth?: ContainerProps['maxWidth'];
2097
+ /** Show newsletter signup */
2098
+ showNewsletter?: boolean;
2099
+ /** Newsletter title */
2100
+ newsletterTitle?: string;
2101
+ /** Newsletter description */
2102
+ newsletterDescription?: string;
2103
+ }
2104
+ interface BannerProps {
2105
+ /** Main heading */
2106
+ title: string;
2107
+ /** Subtitle/description */
2108
+ subtitle?: string;
2109
+ /** Background image URL */
2110
+ backgroundImage?: string;
2111
+ /** Background gradient/color */
2112
+ bgClass?: TailwindBgColor;
2113
+ /** Text color */
2114
+ textClass?: TailwindTextColor;
2115
+ /** Overlay opacity (0-100) */
2116
+ overlayOpacity?: number;
2117
+ /** Overlay color class */
2118
+ overlayClass?: string;
2119
+ /** Primary CTA */
2120
+ primaryCta?: {
2121
+ text: string;
2122
+ href: string;
2123
+ variant?: ButtonVariant;
2124
+ };
2125
+ /** Secondary CTA */
2126
+ secondaryCta?: {
2127
+ text: string;
2128
+ href: string;
2129
+ variant?: ButtonVariant;
2130
+ };
2131
+ /** Banner height */
2132
+ height?: 'sm' | 'md' | 'lg' | 'xl' | 'screen';
2133
+ /** Content alignment */
2134
+ align?: 'left' | 'center' | 'right';
2135
+ /** Additional classes */
2136
+ class?: TailwindClasses$1;
2137
+ /** Title class */
2138
+ titleClass?: TailwindClasses$1;
2139
+ /** Subtitle class */
2140
+ subtitleClass?: TailwindClasses$1;
2141
+ /** Content container class */
2142
+ contentClass?: TailwindClasses$1;
2143
+ }
2144
+ interface CtaSectionProps {
2145
+ /** Main heading */
2146
+ title: string;
2147
+ /** Description text */
2148
+ description?: string;
2149
+ /** Primary button */
2150
+ primaryButton?: {
2151
+ text: string;
2152
+ href: string;
2153
+ variant?: ButtonVariant;
2154
+ };
2155
+ /** Secondary button */
2156
+ secondaryButton?: {
2157
+ text: string;
2158
+ href: string;
2159
+ variant?: ButtonVariant;
2160
+ };
2161
+ /** Background class */
2162
+ bgClass?: TailwindBgColor;
2163
+ /** Text color */
2164
+ textClass?: TailwindTextColor;
2165
+ /** Content alignment */
2166
+ align?: 'left' | 'center' | 'right';
2167
+ /** Additional classes */
2168
+ class?: TailwindClasses$1;
2169
+ /** Padding */
2170
+ padding?: TailwindPadding;
2171
+ }
2172
+ interface NewsletterSectionProps {
2173
+ /** Main heading */
2174
+ title?: string;
2175
+ /** Description text */
2176
+ description?: string;
2177
+ /** Placeholder text */
2178
+ placeholder?: string;
2179
+ /** Submit button text */
2180
+ buttonText?: string;
2181
+ /** Success message */
2182
+ successMessage?: string;
2183
+ /** Error message */
2184
+ errorMessage?: string;
2185
+ /** Form action URL */
2186
+ actionUrl?: string;
2187
+ /** Background class */
2188
+ bgClass?: TailwindBgColor;
2189
+ /** Text color */
2190
+ textClass?: TailwindTextColor;
2191
+ /** Additional classes */
2192
+ class?: TailwindClasses$1;
2193
+ /** Input class */
2194
+ inputClass?: TailwindClasses$1;
2195
+ /** Button class */
2196
+ buttonClass?: TailwindClasses$1;
2197
+ /** Show privacy note */
2198
+ showPrivacyNote?: boolean;
2199
+ /** Privacy note text */
2200
+ privacyNote?: string;
2201
+ }
2202
+ interface CardProps {
2203
+ /** Card title */
2204
+ title?: string;
2205
+ /** Card description */
2206
+ description?: string;
2207
+ /** Card image URL */
2208
+ image?: string;
2209
+ /** Image alt text */
2210
+ imageAlt?: string;
2211
+ /** Image position */
2212
+ imagePosition?: 'top' | 'bottom' | 'left' | 'right';
2213
+ /** Card link */
2214
+ href?: string;
2215
+ /** Background class */
2216
+ bgClass?: TailwindBgColor;
2217
+ /** Text color */
2218
+ textClass?: TailwindTextColor;
2219
+ /** Border radius */
2220
+ rounded?: TailwindBorderRadius;
2221
+ /** Shadow */
2222
+ shadow?: TailwindShadow;
2223
+ /** Hover effect */
2224
+ hoverEffect?: boolean;
2225
+ /** Additional classes */
2226
+ class?: TailwindClasses$1;
2227
+ /** Image class */
2228
+ imageClass?: TailwindClasses$1;
2229
+ /** Content class */
2230
+ contentClass?: TailwindClasses$1;
2231
+ /** Title class */
2232
+ titleClass?: TailwindClasses$1;
2233
+ /** Description class */
2234
+ descriptionClass?: TailwindClasses$1;
2235
+ /** Padding */
2236
+ padding?: TailwindPadding;
2237
+ }
2238
+ interface Feature {
2239
+ /** Feature title */
2240
+ title: string;
2241
+ /** Feature description */
2242
+ description: string;
2243
+ /** Feature icon (SVG string) */
2244
+ icon?: string;
2245
+ /** Feature image */
2246
+ image?: string;
2247
+ /** Feature link */
2248
+ href?: string;
2249
+ }
2250
+ interface FeatureSectionProps {
2251
+ /** Section title */
2252
+ title?: string;
2253
+ /** Section subtitle */
2254
+ subtitle?: string;
2255
+ /** Features array */
2256
+ features: Feature[];
2257
+ /** Layout columns */
2258
+ columns?: 2 | 3 | 4;
2259
+ /** Background class */
2260
+ bgClass?: TailwindBgColor;
2261
+ /** Text color */
2262
+ textClass?: TailwindTextColor;
2263
+ /** Additional classes */
2264
+ class?: TailwindClasses$1;
2265
+ /** Feature card class */
2266
+ featureClass?: TailwindClasses$1;
2267
+ /** Icon class */
2268
+ iconClass?: TailwindClasses$1;
2269
+ }
2270
+ interface Testimonial {
2271
+ /** Author name */
2272
+ name: string;
2273
+ /** Author role/title */
2274
+ role?: string;
2275
+ /** Author company */
2276
+ company?: string;
2277
+ /** Author avatar URL */
2278
+ avatar?: string;
2279
+ /** Testimonial text */
2280
+ text: string;
2281
+ /** Rating (1-5) */
2282
+ rating?: 1 | 2 | 3 | 4 | 5;
2283
+ }
2284
+ interface TestimonialSectionProps {
2285
+ /** Section title */
2286
+ title?: string;
2287
+ /** Section subtitle */
2288
+ subtitle?: string;
2289
+ /** Testimonials array */
2290
+ testimonials: Testimonial[];
2291
+ /** Layout style */
2292
+ layout?: 'grid' | 'carousel' | 'single';
2293
+ /** Background class */
2294
+ bgClass?: TailwindBgColor;
2295
+ /** Text color */
2296
+ textClass?: TailwindTextColor;
2297
+ /** Additional classes */
2298
+ class?: TailwindClasses$1;
2299
+ /** Testimonial card class */
2300
+ cardClass?: TailwindClasses$1;
2301
+ }
2302
+ interface PricingFeature {
2303
+ /** Feature text */
2304
+ text: string;
2305
+ /** Included or not */
2306
+ included: boolean;
2307
+ }
2308
+ interface PricingPlan {
2309
+ /** Plan name */
2310
+ name: string;
2311
+ /** Plan description */
2312
+ description?: string;
2313
+ /** Price */
2314
+ price: string;
2315
+ /** Price period */
2316
+ period?: string;
2317
+ /** Features list */
2318
+ features: PricingFeature[];
2319
+ /** CTA button text */
2320
+ ctaText: string;
2321
+ /** CTA button href */
2322
+ ctaHref: string;
2323
+ /** Highlighted/popular plan */
2324
+ popular?: boolean;
2325
+ /** Badge text */
2326
+ badge?: string;
2327
+ }
2328
+ interface PricingSectionProps {
2329
+ /** Section title */
2330
+ title?: string;
2331
+ /** Section subtitle */
2332
+ subtitle?: string;
2333
+ /** Pricing plans */
2334
+ plans: PricingPlan[];
2335
+ /** Background class */
2336
+ bgClass?: TailwindBgColor;
2337
+ /** Text color */
2338
+ textClass?: TailwindTextColor;
2339
+ /** Additional classes */
2340
+ class?: TailwindClasses$1;
2341
+ /** Plan card class */
2342
+ planClass?: TailwindClasses$1;
2343
+ }
2344
+ interface FaqItem {
2345
+ /** Question */
2346
+ question: string;
2347
+ /** Answer */
2348
+ answer: string;
2349
+ }
2350
+ interface FaqSectionProps {
2351
+ /** Section title */
2352
+ title?: string;
2353
+ /** Section subtitle */
2354
+ subtitle?: string;
2355
+ /** FAQ items */
2356
+ items: FaqItem[];
2357
+ /** Layout style */
2358
+ layout?: 'accordion' | 'grid' | 'list';
2359
+ /** Background class */
2360
+ bgClass?: TailwindBgColor;
2361
+ /** Text color */
2362
+ textClass?: TailwindTextColor;
2363
+ /** Additional classes */
2364
+ class?: TailwindClasses$1;
2365
+ }
2366
+ /** Generate dummy image URL */
2367
+ declare function dummyImage(width: number, height: number, text?: string, bgColor?: string, textColor?: string): string;
2368
+ /** Lorem ipsum generator */
2369
+ declare function loremIpsum(type?: 'word' | 'sentence' | 'paragraph', count?: number): string;
2370
+ declare const dummyHeaderData: HeaderProps;
2371
+ declare const dummyFooterData: FooterProps;
2372
+ declare const dummyBannerData: BannerProps;
2373
+ declare const dummyFeatures: Feature[];
2374
+ declare const dummyTestimonials: Testimonial[];
2375
+ declare const dummyPricingPlans: PricingPlan[];
2376
+ declare const dummyFaqItems: FaqItem[];
2377
+
2378
+ /**
2379
+ * Form Types
2380
+ * Types for all form components
2381
+ */
2382
+ type TailwindClasses = string;
2383
+ interface FormFieldError {
2384
+ field: string;
2385
+ message: string;
2386
+ }
2387
+ interface FormSubmitResult {
2388
+ success: boolean;
2389
+ message?: string;
2390
+ errors?: FormFieldError[];
2391
+ data?: Record<string, unknown>;
2392
+ }
2393
+ interface ContactFormValues {
2394
+ name: string;
2395
+ email: string;
2396
+ phone?: string;
2397
+ subject?: string;
2398
+ message: string;
2399
+ }
2400
+ interface ContactFormProps {
2401
+ /** Form action URL */
2402
+ actionUrl?: string;
2403
+ /** Submit handler */
2404
+ onSubmit?: (values: ContactFormValues) => Promise<FormSubmitResult>;
2405
+ /** Initial values */
2406
+ initialValues?: Partial<ContactFormValues>;
2407
+ /** Show phone field */
2408
+ showPhone?: boolean;
2409
+ /** Show subject field */
2410
+ showSubject?: boolean;
2411
+ /** Subject options (if select) */
2412
+ subjectOptions?: string[];
2413
+ /** Submit button text */
2414
+ submitText?: string;
2415
+ /** Success message */
2416
+ successMessage?: string;
2417
+ /** Container class */
2418
+ className?: TailwindClasses;
2419
+ /** Form class */
2420
+ formClass?: TailwindClasses;
2421
+ /** Input class */
2422
+ inputClass?: TailwindClasses;
2423
+ /** Label class */
2424
+ labelClass?: TailwindClasses;
2425
+ /** Button class */
2426
+ buttonClass?: TailwindClasses;
2427
+ /** Error class */
2428
+ errorClass?: TailwindClasses;
2429
+ }
2430
+ interface NewsletterFormValues {
2431
+ email: string;
2432
+ firstName?: string;
2433
+ lastName?: string;
2434
+ }
2435
+ interface NewsletterFormProps {
2436
+ /** Form action URL */
2437
+ actionUrl?: string;
2438
+ /** Submit handler */
2439
+ onSubmit?: (values: NewsletterFormValues) => Promise<FormSubmitResult>;
2440
+ /** Initial values */
2441
+ initialValues?: Partial<NewsletterFormValues>;
2442
+ /** Show name fields */
2443
+ showName?: boolean;
2444
+ /** Placeholder */
2445
+ placeholder?: string;
2446
+ /** Submit button text */
2447
+ submitText?: string;
2448
+ /** Success message */
2449
+ successMessage?: string;
2450
+ /** Layout */
2451
+ layout?: 'inline' | 'stacked';
2452
+ /** Container class */
2453
+ className?: TailwindClasses;
2454
+ /** Form class */
2455
+ formClass?: TailwindClasses;
2456
+ /** Input class */
2457
+ inputClass?: TailwindClasses;
2458
+ /** Button class */
2459
+ buttonClass?: TailwindClasses;
2460
+ }
2461
+ interface LoginFormValues {
2462
+ email: string;
2463
+ password: string;
2464
+ rememberMe?: boolean;
2465
+ }
2466
+ interface LoginFormProps {
2467
+ /** Form action URL */
2468
+ actionUrl?: string;
2469
+ /** Submit handler */
2470
+ onSubmit?: (values: LoginFormValues) => Promise<FormSubmitResult>;
2471
+ /** Initial values */
2472
+ initialValues?: Partial<LoginFormValues>;
2473
+ /** Show remember me */
2474
+ showRememberMe?: boolean;
2475
+ /** Forgot password link */
2476
+ forgotPasswordLink?: string;
2477
+ /** Register link */
2478
+ registerLink?: string;
2479
+ /** Submit button text */
2480
+ submitText?: string;
2481
+ /** Success redirect URL */
2482
+ successRedirect?: string;
2483
+ /** Container class */
2484
+ className?: TailwindClasses;
2485
+ /** Form class */
2486
+ formClass?: TailwindClasses;
2487
+ /** Input class */
2488
+ inputClass?: TailwindClasses;
2489
+ /** Button class */
2490
+ buttonClass?: TailwindClasses;
2491
+ }
2492
+ interface RegisterFormValues {
2493
+ firstName: string;
2494
+ lastName: string;
2495
+ email: string;
2496
+ password: string;
2497
+ confirmPassword: string;
2498
+ acceptTerms: boolean;
2499
+ }
2500
+ interface RegisterFormProps {
2501
+ /** Form action URL */
2502
+ actionUrl?: string;
2503
+ /** Submit handler */
2504
+ onSubmit?: (values: RegisterFormValues) => Promise<FormSubmitResult>;
2505
+ /** Initial values */
2506
+ initialValues?: Partial<RegisterFormValues>;
2507
+ /** Terms link */
2508
+ termsLink?: string;
2509
+ /** Privacy link */
2510
+ privacyLink?: string;
2511
+ /** Login link */
2512
+ loginLink?: string;
2513
+ /** Submit button text */
2514
+ submitText?: string;
2515
+ /** Success redirect URL */
2516
+ successRedirect?: string;
2517
+ /** Password requirements */
2518
+ passwordRequirements?: {
2519
+ minLength?: number;
2520
+ requireUppercase?: boolean;
2521
+ requireLowercase?: boolean;
2522
+ requireNumber?: boolean;
2523
+ requireSpecial?: boolean;
2524
+ };
2525
+ /** Container class */
2526
+ className?: TailwindClasses;
2527
+ /** Form class */
2528
+ formClass?: TailwindClasses;
2529
+ /** Input class */
2530
+ inputClass?: TailwindClasses;
2531
+ /** Button class */
2532
+ buttonClass?: TailwindClasses;
2533
+ }
2534
+ declare const VALIDATION_MESSAGES: {
2535
+ readonly required: "This field is required";
2536
+ readonly email: "Please enter a valid email address";
2537
+ readonly phone: "Please enter a valid phone number";
2538
+ readonly minLength: (min: number) => string;
2539
+ readonly maxLength: (max: number) => string;
2540
+ readonly passwordMatch: "Passwords must match";
2541
+ readonly acceptTerms: "You must accept the terms and conditions";
2542
+ readonly passwordUppercase: "Password must contain at least one uppercase letter";
2543
+ readonly passwordLowercase: "Password must contain at least one lowercase letter";
2544
+ readonly passwordNumber: "Password must contain at least one number";
2545
+ readonly passwordSpecial: "Password must contain at least one special character";
2546
+ };
2547
+
2548
+ /**
2549
+ * Form Validation Schemas
2550
+ * Yup validation schemas for all forms
2551
+ */
2552
+
2553
+ declare const contactFormSchema: Yup.ObjectSchema<{
2554
+ name: string;
2555
+ email: string;
2556
+ phone: string | null | undefined;
2557
+ subject: string | null | undefined;
2558
+ message: string;
2559
+ }, Yup.AnyObject, {
2560
+ name: undefined;
2561
+ email: undefined;
2562
+ phone: undefined;
2563
+ subject: undefined;
2564
+ message: undefined;
2565
+ }, "">;
2566
+ declare const newsletterFormSchema: Yup.ObjectSchema<{
2567
+ email: string;
2568
+ firstName: string | null | undefined;
2569
+ lastName: string | null | undefined;
2570
+ }, Yup.AnyObject, {
2571
+ email: undefined;
2572
+ firstName: undefined;
2573
+ lastName: undefined;
2574
+ }, "">;
2575
+ declare const loginFormSchema: Yup.ObjectSchema<{
2576
+ email: string;
2577
+ password: string;
2578
+ rememberMe: boolean | undefined;
2579
+ }, Yup.AnyObject, {
2580
+ email: undefined;
2581
+ password: undefined;
2582
+ rememberMe: undefined;
2583
+ }, "">;
2584
+ interface PasswordRequirements {
2585
+ minLength?: number;
2586
+ requireUppercase?: boolean;
2587
+ requireLowercase?: boolean;
2588
+ requireNumber?: boolean;
2589
+ requireSpecial?: boolean;
2590
+ }
2591
+ declare function createRegisterFormSchema(requirements?: PasswordRequirements): Yup.ObjectSchema<{
2592
+ firstName: string;
2593
+ lastName: string;
2594
+ email: string;
2595
+ password: string;
2596
+ confirmPassword: string;
2597
+ acceptTerms: boolean | undefined;
2598
+ }, Yup.AnyObject, {
2599
+ firstName: undefined;
2600
+ lastName: undefined;
2601
+ email: undefined;
2602
+ password: undefined;
2603
+ confirmPassword: undefined;
2604
+ acceptTerms: undefined;
2605
+ }, "">;
2606
+ declare const registerFormSchema: Yup.ObjectSchema<{
2607
+ firstName: string;
2608
+ lastName: string;
2609
+ email: string;
2610
+ password: string;
2611
+ confirmPassword: string;
2612
+ acceptTerms: boolean | undefined;
2613
+ }, Yup.AnyObject, {
2614
+ firstName: undefined;
2615
+ lastName: undefined;
2616
+ email: undefined;
2617
+ password: undefined;
2618
+ confirmPassword: undefined;
2619
+ acceptTerms: undefined;
2620
+ }, "">;
2621
+
2622
+ /**
2623
+ * Contact Form Component
2624
+ * React form with Formik and Yup validation
2625
+ */
2626
+
2627
+ declare function ContactForm({ actionUrl, onSubmit, initialValues, showPhone, showSubject, subjectOptions, submitText, successMessage, className, formClass, inputClass, labelClass, buttonClass, errorClass, }: ContactFormProps): React$1.ReactElement;
2628
+
2629
+ /**
2630
+ * Newsletter Form Component
2631
+ * React form with Formik and Yup validation
2632
+ */
2633
+
2634
+ declare function NewsletterForm({ actionUrl, onSubmit, initialValues, showName, placeholder, submitText, successMessage, layout, className, formClass, inputClass, buttonClass, }: NewsletterFormProps): React$1.ReactElement;
2635
+
2636
+ /**
2637
+ * Login Form Component
2638
+ * React form with Formik and Yup validation
2639
+ */
2640
+
2641
+ declare function LoginForm({ actionUrl, onSubmit, initialValues, showRememberMe, forgotPasswordLink, registerLink, submitText, successRedirect, className, formClass, inputClass, buttonClass, }: LoginFormProps): React$1.ReactElement;
2642
+
2643
+ /**
2644
+ * Register Form Component
2645
+ * React form with Formik and Yup validation
2646
+ */
2647
+
2648
+ declare function RegisterForm({ actionUrl, onSubmit, initialValues, termsLink, privacyLink, loginLink, submitText, successRedirect, passwordRequirements, className, formClass, inputClass, buttonClass, }: RegisterFormProps): React$1.ReactElement;
2649
+
2650
+ declare const index_ApiResponse: typeof ApiResponse;
2651
+ declare const index_ApiUrlBuilder: typeof ApiUrlBuilder;
2652
+ declare const index_ApiUrlConfig: typeof ApiUrlConfig;
2653
+ type index_BannerProps = BannerProps;
2654
+ type index_BatteryState = BatteryState;
2655
+ type index_BorderRadius = BorderRadius;
2656
+ type index_Breakpoints = Breakpoints;
2657
+ type index_ButtonProps = ButtonProps;
2658
+ type index_ButtonSize = ButtonSize;
2659
+ type index_ButtonVariant = ButtonVariant;
2660
+ type index_CardProps = CardProps;
2661
+ declare const index_ClientLogger: typeof ClientLogger;
2662
+ declare const index_ClientLoggerConfig: typeof ClientLoggerConfig;
2663
+ type index_ColProps = ColProps;
2664
+ type index_ColorPalette = ColorPalette;
2665
+ type index_ComponentThemes = ComponentThemes;
2666
+ declare const index_ContactForm: typeof ContactForm;
2667
+ type index_ContactFormProps = ContactFormProps;
2668
+ type index_ContactFormValues = ContactFormValues;
2669
+ type index_ContainerProps = ContainerProps;
2670
+ type index_CtaSectionProps = CtaSectionProps;
2671
+ type index_Dimensions = Dimensions;
2672
+ declare const index_EventEmitter: typeof EventEmitter;
2673
+ type index_FaqItem = FaqItem;
2674
+ type index_FaqSectionProps = FaqSectionProps;
2675
+ type index_Feature = Feature;
2676
+ type index_FeatureSectionProps = FeatureSectionProps;
2677
+ type index_FooterColumn = FooterColumn;
2678
+ type index_FooterProps = FooterProps;
2679
+ type index_FormFieldError = FormFieldError;
2680
+ type index_FormSubmitResult = FormSubmitResult;
2681
+ type index_GeolocationState = GeolocationState;
2682
+ type index_HeaderProps = HeaderProps;
2683
+ declare const index_HttpClientOptions: typeof HttpClientOptions;
2684
+ type index_LoaderProps = LoaderProps;
2685
+ type index_LoaderSize = LoaderSize;
2686
+ type index_LoaderVariant = LoaderVariant;
2687
+ declare const index_LogLevel: typeof LogLevel;
2688
+ declare const index_LoginForm: typeof LoginForm;
2689
+ type index_LoginFormProps = LoginFormProps;
2690
+ type index_LoginFormValues = LoginFormValues;
2691
+ type index_MousePosition = MousePosition;
2692
+ type index_NavLink = NavLink;
2693
+ type index_NetworkState = NetworkState;
2694
+ declare const index_NewsletterForm: typeof NewsletterForm;
2695
+ type index_NewsletterFormProps = NewsletterFormProps;
2696
+ type index_NewsletterFormValues = NewsletterFormValues;
2697
+ type index_NewsletterSectionProps = NewsletterSectionProps;
2698
+ declare const index_NpmRegistryResponse: typeof NpmRegistryResponse;
2699
+ type index_ObjectStateUpdate<T> = ObjectStateUpdate<T>;
2700
+ type index_OrientationState = OrientationState;
2701
+ declare const index_PackageCheckResult: typeof PackageCheckResult;
2702
+ declare const index_PackageJson: typeof PackageJson;
2703
+ declare const index_PackageVersion: typeof PackageVersion;
2704
+ declare const index_PaginatedResponse: typeof PaginatedResponse;
2705
+ type index_PasswordRequirements = PasswordRequirements;
2706
+ type index_PricingFeature = PricingFeature;
2707
+ type index_PricingPlan = PricingPlan;
2708
+ type index_PricingSectionProps = PricingSectionProps;
2709
+ declare const index_RegisterForm: typeof RegisterForm;
2710
+ type index_RegisterFormProps = RegisterFormProps;
2711
+ type index_RegisterFormValues = RegisterFormValues;
2712
+ type index_RenderInfo = RenderInfo;
2713
+ type index_RowProps = RowProps;
2714
+ type index_ScriptStatus = ScriptStatus;
2715
+ type index_SemanticColors = SemanticColors;
2716
+ type index_SetValue<T> = SetValue<T>;
2717
+ type index_Shadows = Shadows;
2718
+ type index_SnackbarSeverity = SnackbarSeverity;
2719
+ type index_SnackbarState = SnackbarState;
2720
+ type index_SocialLink = SocialLink;
2721
+ type index_Spacing = Spacing;
2722
+ type index_TailwindBgColor = TailwindBgColor;
2723
+ type index_TailwindBorderRadius = TailwindBorderRadius;
2724
+ type index_TailwindFontSize = TailwindFontSize;
2725
+ type index_TailwindFontWeight = TailwindFontWeight;
2726
+ type index_TailwindGap = TailwindGap;
2727
+ type index_TailwindHeight = TailwindHeight;
2728
+ type index_TailwindMargin = TailwindMargin;
2729
+ type index_TailwindPadding = TailwindPadding;
2730
+ type index_TailwindShadow = TailwindShadow;
2731
+ type index_TailwindTextColor = TailwindTextColor;
2732
+ type index_TailwindWidth = TailwindWidth;
2733
+ type index_Testimonial = Testimonial;
2734
+ type index_TestimonialSectionProps = TestimonialSectionProps;
2735
+ type index_Theme = Theme;
2736
+ type index_ThemeConfig = ThemeConfig;
2737
+ declare const index_ThemeContext: typeof ThemeContext;
2738
+ type index_ThemeContextValue = ThemeContextValue;
2739
+ declare const index_ThemeProvider: typeof ThemeProvider;
2740
+ type index_ThemeProviderProps = ThemeProviderProps;
2741
+ declare const index_ThemeToggle: typeof ThemeToggle;
2742
+ type index_ThemeToggleProps = ThemeToggleProps;
2743
+ type index_ThreeColumnProps = ThreeColumnProps;
2744
+ type index_TwoColumnProps = TwoColumnProps;
2745
+ type index_Typography = Typography;
2746
+ type index_UseContinuousRetryOptions = UseContinuousRetryOptions;
2747
+ type index_UseContinuousRetryReturn = UseContinuousRetryReturn;
2748
+ type index_UseCopyToClipboardReturn = UseCopyToClipboardReturn;
2749
+ type index_UseCountdownOptions = UseCountdownOptions;
2750
+ type index_UseCountdownReturn = UseCountdownReturn;
2751
+ type index_UseCounterOptions = UseCounterOptions;
2752
+ type index_UseCounterReturn = UseCounterReturn;
2753
+ type index_UseDocumentTitleOptions = UseDocumentTitleOptions;
2754
+ type index_UseFetchOptions<T> = UseFetchOptions<T>;
2755
+ type index_UseFetchReturn<T> = UseFetchReturn<T>;
2756
+ type index_UseGeolocationOptions = UseGeolocationOptions;
2757
+ type index_UseGeolocationReturn = UseGeolocationReturn;
2758
+ type index_UseHistoryStateOptions = UseHistoryStateOptions;
2759
+ type index_UseHistoryStateReturn<T> = UseHistoryStateReturn<T>;
2760
+ type index_UseHoverReturn<T extends HTMLElement = HTMLElement> = UseHoverReturn<T>;
2761
+ type index_UseIdleOptions = UseIdleOptions;
2762
+ type index_UseIdleReturn = UseIdleReturn;
2763
+ type index_UseIntersectionObserverOptions = UseIntersectionObserverOptions;
2764
+ type index_UseIntersectionObserverReturn<T extends Element = Element> = UseIntersectionObserverReturn<T>;
2765
+ type index_UseKeyPressOptions = UseKeyPressOptions;
2766
+ type index_UseKeyPressReturn = UseKeyPressReturn;
2767
+ type index_UseListReturn<T> = UseListReturn<T>;
2768
+ type index_UseLocalStorageOptions<T> = UseLocalStorageOptions<T>;
2769
+ type index_UseLoggerOptions = UseLoggerOptions;
2770
+ type index_UseLongPressOptions = UseLongPressOptions;
2771
+ type index_UseLongPressReturn = UseLongPressReturn;
2772
+ type index_UseMapReturn<K, V> = UseMapReturn<K, V>;
2773
+ type index_UseMeasureReturn<T extends HTMLElement = HTMLElement> = UseMeasureReturn<T>;
2774
+ type index_UseMouseOptions = UseMouseOptions;
2775
+ type index_UseMouseReturn<T extends HTMLElement = HTMLElement> = UseMouseReturn<T>;
2776
+ type index_UseObjectStateReturn<T extends object> = UseObjectStateReturn<T>;
2777
+ type index_UsePageLeaveOptions = UsePageLeaveOptions;
2778
+ type index_UsePageTitleOptions = UsePageTitleOptions;
2779
+ type index_UsePreferredLanguageReturn = UsePreferredLanguageReturn;
2780
+ type index_UseQueueReturn<T> = UseQueueReturn<T>;
2781
+ type index_UseScriptOptions = UseScriptOptions;
2782
+ type index_UseScriptReturn = UseScriptReturn;
2783
+ type index_UseSessionStorageOptions<T> = UseSessionStorageOptions<T>;
2784
+ type index_UseSetReturn<T> = UseSetReturn<T>;
2785
+ type index_UseSnackbarReturn = UseSnackbarReturn;
2786
+ type index_UseTimeoutReturn = UseTimeoutReturn;
2787
+ type index_UseToggleReturn = UseToggleReturn;
2788
+ type index_UseVisibilityChangeReturn = UseVisibilityChangeReturn;
2789
+ type index_UseWindowScrollReturn = UseWindowScrollReturn;
2790
+ declare const index_VALIDATION_MESSAGES: typeof VALIDATION_MESSAGES;
2791
+ type index_WindowScrollPosition = WindowScrollPosition;
2792
+ type index_WindowSize = WindowSize;
2793
+ declare const index_addDays: typeof addDays;
2794
+ declare const index_adjustColor: typeof adjustColor;
2795
+ declare const index_appEvents: typeof appEvents;
2796
+ declare const index_camelToKebab: typeof camelToKebab;
2797
+ declare const index_capitalize: typeof capitalize;
2798
+ declare const index_capitalizeWords: typeof capitalizeWords;
2799
+ declare const index_checkPackage: typeof checkPackage;
2800
+ declare const index_clientLogger: typeof clientLogger;
2801
+ declare const index_contactFormSchema: typeof contactFormSchema;
2802
+ declare const index_copyToClipboard: typeof copyToClipboard;
2803
+ declare const index_createApiEndpoints: typeof createApiEndpoints;
2804
+ declare const index_createApiUrlBuilder: typeof createApiUrlBuilder;
2805
+ declare const index_createClientLogger: typeof createClientLogger;
2806
+ declare const index_createEmptyPaginationMeta: typeof createEmptyPaginationMeta;
2807
+ declare const index_createErrorResponse: typeof createErrorResponse;
2808
+ declare const index_createEventEmitter: typeof createEventEmitter;
2809
+ declare const index_createHttpClient: typeof createHttpClient;
2810
+ declare const index_createRegisterFormSchema: typeof createRegisterFormSchema;
2811
+ declare const index_createSuccessResponse: typeof createSuccessResponse;
2812
+ declare const index_createTheme: typeof createTheme;
2813
+ declare const index_createThemeFromBrand: typeof createThemeFromBrand;
2814
+ declare const index_cssVar: typeof cssVar;
2815
+ declare const index_deepMerge: typeof deepMerge;
2816
+ declare const index_defaultDarkTheme: typeof defaultDarkTheme;
2817
+ declare const index_defaultLightTheme: typeof defaultLightTheme;
2818
+ declare const index_dummyBannerData: typeof dummyBannerData;
2819
+ declare const index_dummyFaqItems: typeof dummyFaqItems;
2820
+ declare const index_dummyFeatures: typeof dummyFeatures;
2821
+ declare const index_dummyFooterData: typeof dummyFooterData;
2822
+ declare const index_dummyHeaderData: typeof dummyHeaderData;
2823
+ declare const index_dummyImage: typeof dummyImage;
2824
+ declare const index_dummyPricingPlans: typeof dummyPricingPlans;
2825
+ declare const index_dummyTestimonials: typeof dummyTestimonials;
2826
+ declare const index_endOfDay: typeof endOfDay;
2827
+ declare const index_flattenToCssVars: typeof flattenToCssVars;
2828
+ declare const index_formatDate: typeof formatDate;
2829
+ declare const index_formatDateForInput: typeof formatDateForInput;
2830
+ declare const index_formatDateTime: typeof formatDateTime;
2831
+ declare const index_formatDateTimeForInput: typeof formatDateTimeForInput;
2832
+ declare const index_formatPackageCheckResult: typeof formatPackageCheckResult;
2833
+ declare const index_formatRelativeTime: typeof formatRelativeTime;
2834
+ declare const index_generateCssVars: typeof generateCssVars;
2835
+ declare const index_generateNcuCommand: typeof generateNcuCommand;
2836
+ declare const index_getContrastColor: typeof getContrastColor;
2837
+ declare const index_getErrorMessage: typeof getErrorMessage;
2838
+ declare const index_getNextPage: typeof getNextPage;
2839
+ declare const index_getPrevPage: typeof getPrevPage;
2840
+ declare const index_getResponseData: typeof getResponseData;
2841
+ declare const index_getSystemColorScheme: typeof getSystemColorScheme;
2842
+ declare const index_hasData: typeof hasData;
2843
+ declare const index_hasMorePages: typeof hasMorePages;
2844
+ declare const index_hexToRgba: typeof hexToRgba;
2845
+ declare const index_injectCssVars: typeof injectCssVars;
2846
+ declare const index_isClipboardAvailable: typeof isClipboardAvailable;
2847
+ declare const index_isErrorResponse: typeof isErrorResponse;
2848
+ declare const index_isForbidden: typeof isForbidden;
2849
+ declare const index_isFuture: typeof isFuture;
2850
+ declare const index_isNotFound: typeof isNotFound;
2851
+ declare const index_isPast: typeof isPast;
2852
+ declare const index_isServerError: typeof isServerError;
2853
+ declare const index_isStatusError: typeof isStatusError;
2854
+ declare const index_isSuccess: typeof isSuccess;
2855
+ declare const index_isSuccessResponse: typeof isSuccessResponse;
2856
+ declare const index_isToday: typeof isToday;
2857
+ declare const index_isUnauthorized: typeof isUnauthorized;
2858
+ declare const index_kebabToCamel: typeof kebabToCamel;
2859
+ declare const index_loadThemeFromUrl: typeof loadThemeFromUrl;
2860
+ declare const index_loadThemeMode: typeof loadThemeMode;
2861
+ declare const index_loginFormSchema: typeof loginFormSchema;
2862
+ declare const index_loremIpsum: typeof loremIpsum;
2863
+ declare const index_newsletterFormSchema: typeof newsletterFormSchema;
2864
+ declare const index_packageCheck: typeof packageCheck;
2865
+ declare const index_parseError: typeof parseError;
2866
+ declare const index_parseFullResponse: typeof parseFullResponse;
2867
+ declare const index_parseResponse: typeof parseResponse;
2868
+ declare const index_readFromClipboard: typeof readFromClipboard;
2869
+ declare const index_registerFormSchema: typeof registerFormSchema;
2870
+ declare const index_removeCssVars: typeof removeCssVars;
2871
+ declare const index_resolveThemeMode: typeof resolveThemeMode;
2872
+ declare const index_saveThemeMode: typeof saveThemeMode;
2873
+ declare const index_slugify: typeof slugify;
2874
+ declare const index_slugifyUnique: typeof slugifyUnique;
2875
+ declare const index_startOfDay: typeof startOfDay;
2876
+ declare const index_truncate: typeof truncate;
2877
+ declare const index_truncateWords: typeof truncateWords;
2878
+ declare const index_unslugify: typeof unslugify;
2879
+ declare const index_useBattery: typeof useBattery;
2880
+ declare const index_useClickAway: typeof useClickAway;
2881
+ declare const index_useContinuousRetry: typeof useContinuousRetry;
2882
+ declare const index_useCopyToClipboard: typeof useCopyToClipboard;
2883
+ declare const index_useCountdown: typeof useCountdown;
2884
+ declare const index_useCounter: typeof useCounter;
2885
+ declare const index_useDebounce: typeof useDebounce;
2886
+ declare const index_useDefault: typeof useDefault;
2887
+ declare const index_useDocumentTitle: typeof useDocumentTitle;
2888
+ declare const index_useEventListener: typeof useEventListener;
2889
+ declare const index_useFavicon: typeof useFavicon;
2890
+ declare const index_useFetch: typeof useFetch;
2891
+ declare const index_useGeolocation: typeof useGeolocation;
2892
+ declare const index_useHistoryState: typeof useHistoryState;
2893
+ declare const index_useHover: typeof useHover;
2894
+ declare const index_useIdle: typeof useIdle;
2895
+ declare const index_useIntersectionObserver: typeof useIntersectionObserver;
2896
+ declare const index_useInterval: typeof useInterval;
2897
+ declare const index_useIntervalWhen: typeof useIntervalWhen;
2898
+ declare const index_useIsClient: typeof useIsClient;
2899
+ declare const index_useIsDesktop: typeof useIsDesktop;
2900
+ declare const index_useIsFirstRender: typeof useIsFirstRender;
2901
+ declare const index_useIsMobile: typeof useIsMobile;
2902
+ declare const index_useIsMobileOrTablet: typeof useIsMobileOrTablet;
2903
+ declare const index_useIsTablet: typeof useIsTablet;
2904
+ declare const index_useKeyPress: typeof useKeyPress;
2905
+ declare const index_useList: typeof useList;
2906
+ declare const index_useLocalStorage: typeof useLocalStorage;
2907
+ declare const index_useLockBodyScroll: typeof useLockBodyScroll;
2908
+ declare const index_useLogger: typeof useLogger;
2909
+ declare const index_useLongPress: typeof useLongPress;
2910
+ declare const index_useMap: typeof useMap;
2911
+ declare const index_useMeasure: typeof useMeasure;
2912
+ declare const index_useMediaQuery: typeof useMediaQuery;
2913
+ declare const index_useMouse: typeof useMouse;
2914
+ declare const index_useNetworkState: typeof useNetworkState;
2915
+ declare const index_useObjectState: typeof useObjectState;
2916
+ declare const index_useOnClickOutside: typeof useOnClickOutside;
2917
+ declare const index_useOrientation: typeof useOrientation;
2918
+ declare const index_usePageLeave: typeof usePageLeave;
2919
+ declare const index_usePageTitle: typeof usePageTitle;
2920
+ declare const index_usePreferredLanguage: typeof usePreferredLanguage;
2921
+ declare const index_usePrevious: typeof usePrevious;
2922
+ declare const index_useQueue: typeof useQueue;
2923
+ declare const index_useRandomInterval: typeof useRandomInterval;
2924
+ declare const index_useRenderCount: typeof useRenderCount;
2925
+ declare const index_useRenderInfo: typeof useRenderInfo;
2926
+ declare const index_useScript: typeof useScript;
2927
+ declare const index_useSessionStorage: typeof useSessionStorage;
2928
+ declare const index_useSet: typeof useSet;
2929
+ declare const index_useSnackbar: typeof useSnackbar;
2930
+ declare const index_useTheme: typeof useTheme;
2931
+ declare const index_useThemeDetector: typeof useThemeDetector;
2932
+ declare const index_useThemeValue: typeof useThemeValue;
2933
+ declare const index_useThrottle: typeof useThrottle;
2934
+ declare const index_useTimeout: typeof useTimeout;
2935
+ declare const index_useToggle: typeof useToggle;
2936
+ declare const index_useVisibilityChange: typeof useVisibilityChange;
2937
+ declare const index_useWindowScroll: typeof useWindowScroll;
2938
+ declare const index_useWindowSize: typeof useWindowSize;
2939
+ declare const index_withAbortSignal: typeof withAbortSignal;
2940
+ declare const index_withFormData: typeof withFormData;
2941
+ declare const index_withTimeout: typeof withTimeout;
2942
+ declare namespace index {
2943
+ export { index_ApiResponse as ApiResponse, index_ApiUrlBuilder as ApiUrlBuilder, index_ApiUrlConfig as ApiUrlConfig, type index_BannerProps as BannerProps, type index_BatteryState as BatteryState, type index_BorderRadius as BorderRadius, type index_Breakpoints as Breakpoints, type index_ButtonProps as ButtonProps, type index_ButtonSize as ButtonSize, type index_ButtonVariant as ButtonVariant, type index_CardProps as CardProps, index_ClientLogger as ClientLogger, index_ClientLoggerConfig as ClientLoggerConfig, type index_ColProps as ColProps, type index_ColorPalette as ColorPalette, type index_ComponentThemes as ComponentThemes, index_ContactForm as ContactForm, type index_ContactFormProps as ContactFormProps, type index_ContactFormValues as ContactFormValues, type index_ContainerProps as ContainerProps, type index_CtaSectionProps as CtaSectionProps, type index_Dimensions as Dimensions, index_EventEmitter as EventEmitter, type index_FaqItem as FaqItem, type index_FaqSectionProps as FaqSectionProps, type index_Feature as Feature, type index_FeatureSectionProps as FeatureSectionProps, type index_FooterColumn as FooterColumn, type index_FooterProps as FooterProps, type index_FormFieldError as FormFieldError, type index_FormSubmitResult as FormSubmitResult, type index_GeolocationState as GeolocationState, type index_HeaderProps as HeaderProps, index_HttpClientOptions as HttpClientOptions, type index_LoaderProps as LoaderProps, type index_LoaderSize as LoaderSize, type index_LoaderVariant as LoaderVariant, index_LogLevel as LogLevel, index_LoginForm as LoginForm, type index_LoginFormProps as LoginFormProps, type index_LoginFormValues as LoginFormValues, type index_MousePosition as MousePosition, type index_NavLink as NavLink, type index_NetworkState as NetworkState, index_NewsletterForm as NewsletterForm, type index_NewsletterFormProps as NewsletterFormProps, type index_NewsletterFormValues as NewsletterFormValues, type index_NewsletterSectionProps as NewsletterSectionProps, index_NpmRegistryResponse as NpmRegistryResponse, type index_ObjectStateUpdate as ObjectStateUpdate, type index_OrientationState as OrientationState, index_PackageCheckResult as PackageCheckResult, index_PackageJson as PackageJson, index_PackageVersion as PackageVersion, index_PaginatedResponse as PaginatedResponse, type index_PasswordRequirements as PasswordRequirements, type index_PricingFeature as PricingFeature, type index_PricingPlan as PricingPlan, type index_PricingSectionProps as PricingSectionProps, index_RegisterForm as RegisterForm, type index_RegisterFormProps as RegisterFormProps, type index_RegisterFormValues as RegisterFormValues, type index_RenderInfo as RenderInfo, type index_RowProps as RowProps, type index_ScriptStatus as ScriptStatus, type index_SemanticColors as SemanticColors, type index_SetValue as SetValue, type index_Shadows as Shadows, type index_SnackbarSeverity as SnackbarSeverity, type index_SnackbarState as SnackbarState, type index_SocialLink as SocialLink, type index_Spacing as Spacing, type index_TailwindBgColor as TailwindBgColor, type index_TailwindBorderRadius as TailwindBorderRadius, type TailwindClasses$1 as TailwindClasses, type index_TailwindFontSize as TailwindFontSize, type index_TailwindFontWeight as TailwindFontWeight, type index_TailwindGap as TailwindGap, type index_TailwindHeight as TailwindHeight, type index_TailwindMargin as TailwindMargin, type index_TailwindPadding as TailwindPadding, type index_TailwindShadow as TailwindShadow, type index_TailwindTextColor as TailwindTextColor, type index_TailwindWidth as TailwindWidth, type index_Testimonial as Testimonial, type index_TestimonialSectionProps as TestimonialSectionProps, type index_Theme as Theme, type index_ThemeConfig as ThemeConfig, index_ThemeContext as ThemeContext, type index_ThemeContextValue as ThemeContextValue, type ThemeMode$1 as ThemeMode, index_ThemeProvider as ThemeProvider, type index_ThemeProviderProps as ThemeProviderProps, index_ThemeToggle as ThemeToggle, type index_ThemeToggleProps as ThemeToggleProps, type index_ThreeColumnProps as ThreeColumnProps, type index_TwoColumnProps as TwoColumnProps, type index_Typography as Typography, type index_UseContinuousRetryOptions as UseContinuousRetryOptions, type index_UseContinuousRetryReturn as UseContinuousRetryReturn, type index_UseCopyToClipboardReturn as UseCopyToClipboardReturn, type index_UseCountdownOptions as UseCountdownOptions, type index_UseCountdownReturn as UseCountdownReturn, type index_UseCounterOptions as UseCounterOptions, type index_UseCounterReturn as UseCounterReturn, type index_UseDocumentTitleOptions as UseDocumentTitleOptions, type index_UseFetchOptions as UseFetchOptions, type index_UseFetchReturn as UseFetchReturn, type index_UseGeolocationOptions as UseGeolocationOptions, type index_UseGeolocationReturn as UseGeolocationReturn, type index_UseHistoryStateOptions as UseHistoryStateOptions, type index_UseHistoryStateReturn as UseHistoryStateReturn, type index_UseHoverReturn as UseHoverReturn, type index_UseIdleOptions as UseIdleOptions, type index_UseIdleReturn as UseIdleReturn, type index_UseIntersectionObserverOptions as UseIntersectionObserverOptions, type index_UseIntersectionObserverReturn as UseIntersectionObserverReturn, type index_UseKeyPressOptions as UseKeyPressOptions, type index_UseKeyPressReturn as UseKeyPressReturn, type index_UseListReturn as UseListReturn, type index_UseLocalStorageOptions as UseLocalStorageOptions, type index_UseLoggerOptions as UseLoggerOptions, type index_UseLongPressOptions as UseLongPressOptions, type index_UseLongPressReturn as UseLongPressReturn, type index_UseMapReturn as UseMapReturn, type index_UseMeasureReturn as UseMeasureReturn, type index_UseMouseOptions as UseMouseOptions, type index_UseMouseReturn as UseMouseReturn, type index_UseObjectStateReturn as UseObjectStateReturn, type index_UsePageLeaveOptions as UsePageLeaveOptions, type index_UsePageTitleOptions as UsePageTitleOptions, type index_UsePreferredLanguageReturn as UsePreferredLanguageReturn, type index_UseQueueReturn as UseQueueReturn, type index_UseScriptOptions as UseScriptOptions, type index_UseScriptReturn as UseScriptReturn, type index_UseSessionStorageOptions as UseSessionStorageOptions, type index_UseSetReturn as UseSetReturn, type index_UseSnackbarReturn as UseSnackbarReturn, type index_UseTimeoutReturn as UseTimeoutReturn, type index_UseToggleReturn as UseToggleReturn, type index_UseVisibilityChangeReturn as UseVisibilityChangeReturn, type index_UseWindowScrollReturn as UseWindowScrollReturn, index_VALIDATION_MESSAGES as VALIDATION_MESSAGES, type ThemeMode as WebThemeMode, type index_WindowScrollPosition as WindowScrollPosition, type index_WindowSize as WindowSize, index_addDays as addDays, index_adjustColor as adjustColor, index_appEvents as appEvents, index_camelToKebab as camelToKebab, index_capitalize as capitalize, index_capitalizeWords as capitalizeWords, index_checkPackage as checkPackage, index_clientLogger as clientLogger, index_contactFormSchema as contactFormSchema, index_copyToClipboard as copyToClipboard, index_createApiEndpoints as createApiEndpoints, index_createApiUrlBuilder as createApiUrlBuilder, index_createClientLogger as createClientLogger, index_createEmptyPaginationMeta as createEmptyPaginationMeta, index_createErrorResponse as createErrorResponse, index_createEventEmitter as createEventEmitter, index_createHttpClient as createHttpClient, index_createRegisterFormSchema as createRegisterFormSchema, index_createSuccessResponse as createSuccessResponse, index_createTheme as createTheme, index_createThemeFromBrand as createThemeFromBrand, index_cssVar as cssVar, index_deepMerge as deepMerge, index_defaultDarkTheme as defaultDarkTheme, index_defaultLightTheme as defaultLightTheme, index_dummyBannerData as dummyBannerData, index_dummyFaqItems as dummyFaqItems, index_dummyFeatures as dummyFeatures, index_dummyFooterData as dummyFooterData, index_dummyHeaderData as dummyHeaderData, index_dummyImage as dummyImage, index_dummyPricingPlans as dummyPricingPlans, index_dummyTestimonials as dummyTestimonials, index_endOfDay as endOfDay, index_flattenToCssVars as flattenToCssVars, index_formatDate as formatDate, index_formatDateForInput as formatDateForInput, index_formatDateTime as formatDateTime, index_formatDateTimeForInput as formatDateTimeForInput, index_formatPackageCheckResult as formatPackageCheckResult, index_formatRelativeTime as formatRelativeTime, index_generateCssVars as generateCssVars, index_generateNcuCommand as generateNcuCommand, index_getContrastColor as getContrastColor, index_getErrorMessage as getErrorMessage, index_getNextPage as getNextPage, index_getPrevPage as getPrevPage, index_getResponseData as getResponseData, index_getSystemColorScheme as getSystemColorScheme, index_hasData as hasData, index_hasMorePages as hasMorePages, index_hexToRgba as hexToRgba, index_injectCssVars as injectCssVars, index_isClipboardAvailable as isClipboardAvailable, index_isErrorResponse as isErrorResponse, index_isForbidden as isForbidden, index_isFuture as isFuture, index_isNotFound as isNotFound, index_isPast as isPast, index_isServerError as isServerError, index_isStatusError as isStatusError, index_isSuccess as isSuccess, index_isSuccessResponse as isSuccessResponse, index_isToday as isToday, index_isUnauthorized as isUnauthorized, index_kebabToCamel as kebabToCamel, index_loadThemeFromUrl as loadThemeFromUrl, index_loadThemeMode as loadThemeMode, index_loginFormSchema as loginFormSchema, index_loremIpsum as loremIpsum, index_newsletterFormSchema as newsletterFormSchema, index_packageCheck as packageCheck, index_parseError as parseError, index_parseFullResponse as parseFullResponse, index_parseResponse as parseResponse, index_readFromClipboard as readFromClipboard, index_registerFormSchema as registerFormSchema, index_removeCssVars as removeCssVars, index_resolveThemeMode as resolveThemeMode, index_saveThemeMode as saveThemeMode, index_slugify as slugify, index_slugifyUnique as slugifyUnique, index_startOfDay as startOfDay, index_truncate as truncate, index_truncateWords as truncateWords, index_unslugify as unslugify, index_useBattery as useBattery, index_useClickAway as useClickAway, index_useContinuousRetry as useContinuousRetry, index_useCopyToClipboard as useCopyToClipboard, index_useCountdown as useCountdown, index_useCounter as useCounter, index_useDebounce as useDebounce, index_useDefault as useDefault, index_useDocumentTitle as useDocumentTitle, index_useEventListener as useEventListener, index_useFavicon as useFavicon, index_useFetch as useFetch, index_useGeolocation as useGeolocation, index_useHistoryState as useHistoryState, index_useHover as useHover, index_useIdle as useIdle, index_useIntersectionObserver as useIntersectionObserver, index_useInterval as useInterval, index_useIntervalWhen as useIntervalWhen, index_useIsClient as useIsClient, index_useIsDesktop as useIsDesktop, index_useIsFirstRender as useIsFirstRender, index_useIsMobile as useIsMobile, index_useIsMobileOrTablet as useIsMobileOrTablet, index_useIsTablet as useIsTablet, index_useKeyPress as useKeyPress, index_useList as useList, index_useLocalStorage as useLocalStorage, index_useLockBodyScroll as useLockBodyScroll, index_useLogger as useLogger, index_useLongPress as useLongPress, index_useMap as useMap, index_useMeasure as useMeasure, index_useMediaQuery as useMediaQuery, index_useMouse as useMouse, index_useNetworkState as useNetworkState, index_useObjectState as useObjectState, index_useOnClickOutside as useOnClickOutside, index_useOrientation as useOrientation, index_usePageLeave as usePageLeave, index_usePageTitle as usePageTitle, index_usePreferredLanguage as usePreferredLanguage, index_usePrevious as usePrevious, index_useQueue as useQueue, index_useRandomInterval as useRandomInterval, index_useRenderCount as useRenderCount, index_useRenderInfo as useRenderInfo, index_useScript as useScript, index_useSessionStorage as useSessionStorage, index_useSet as useSet, index_useSnackbar as useSnackbar, index_useTheme as useTheme, index_useThemeDetector as useThemeDetector, index_useThemeValue as useThemeValue, index_useThrottle as useThrottle, index_useTimeout as useTimeout, index_useToggle as useToggle, index_useVisibilityChange as useVisibilityChange, index_useWindowScroll as useWindowScroll, index_useWindowSize as useWindowSize, index_withAbortSignal as withAbortSignal, index_withFormData as withFormData, index_withTimeout as withTimeout };
2944
+ }
2945
+
2946
+ export { useMouse as $, APPS as A, BRANDS as B, type ContactInfo as C, useTimeout as D, useInterval as E, useIntervalWhen as F, useRandomInterval as G, useCountdown as H, useContinuousRetry as I, useWindowSize as J, useWindowScroll as K, type LogoSet as L, useDocumentTitle as M, usePageTitle as N, useFavicon as O, useVisibilityChange as P, usePageLeave as Q, useLockBodyScroll as R, type SEOConfig as S, useIsClient as T, useIsFirstRender as U, useEventListener as V, useKeyPress as W, useHover as X, useClickAway as Y, useOnClickOutside as Z, useLongPress as _, type AppConfig as a, type UsePreferredLanguageReturn as a$, useCopyToClipboard as a0, useMediaQuery as a1, useOrientation as a2, useBattery as a3, useNetworkState as a4, useIdle as a5, useGeolocation as a6, usePreferredLanguage as a7, useThemeDetector as a8, useLocalStorage as a9, type WindowScrollPosition as aA, type UseWindowScrollReturn as aB, type UseDocumentTitleOptions as aC, type UsePageTitleOptions as aD, type UseVisibilityChangeReturn as aE, type UsePageLeaveOptions as aF, type UseKeyPressOptions as aG, type UseKeyPressReturn as aH, type UseHoverReturn as aI, type UseLongPressOptions as aJ, type UseLongPressReturn as aK, type MousePosition as aL, type UseMouseOptions as aM, type UseMouseReturn as aN, type UseCopyToClipboardReturn as aO, useIsMobile as aP, useIsTablet as aQ, useIsDesktop as aR, useIsMobileOrTablet as aS, type OrientationState as aT, type BatteryState as aU, type NetworkState as aV, type UseIdleOptions as aW, type UseIdleReturn as aX, type GeolocationState as aY, type UseGeolocationOptions as aZ, type UseGeolocationReturn as a_, useSessionStorage as aa, useFetch as ab, useScript as ac, useRenderInfo as ad, useRenderCount as ae, useLogger as af, useMeasure as ag, useIntersectionObserver as ah, useSnackbar as ai, type UseToggleReturn as aj, type UseCounterOptions as ak, type UseCounterReturn as al, type ObjectStateUpdate as am, type UseObjectStateReturn as an, type UseHistoryStateReturn as ao, type UseHistoryStateOptions as ap, type UseQueueReturn as aq, type UseListReturn as ar, type UseMapReturn as as, type UseSetReturn as at, type UseTimeoutReturn as au, type UseCountdownOptions as av, type UseCountdownReturn as aw, type UseContinuousRetryOptions as ax, type UseContinuousRetryReturn as ay, type WindowSize as az, type BrandColors as b, type TailwindWidth as b$, type ThemeMode$1 as b0, type SetValue as b1, type UseLocalStorageOptions as b2, type UseSessionStorageOptions as b3, type UseFetchOptions as b4, type UseFetchReturn as b5, type ScriptStatus as b6, type UseScriptOptions as b7, type UseScriptReturn as b8, type RenderInfo as b9, cssVar as bA, ThemeContext as bB, defaultLightTheme as bC, defaultDarkTheme as bD, deepMerge as bE, createThemeFromBrand as bF, adjustColor as bG, hexToRgba as bH, getContrastColor as bI, flattenToCssVars as bJ, generateCssVars as bK, injectCssVars as bL, removeCssVars as bM, loadThemeFromUrl as bN, createTheme as bO, saveThemeMode as bP, loadThemeMode as bQ, getSystemColorScheme as bR, resolveThemeMode as bS, type TailwindTextColor as bT, type TailwindBgColor as bU, type TailwindPadding as bV, type TailwindMargin as bW, type TailwindFontSize as bX, type TailwindFontWeight as bY, type TailwindBorderRadius as bZ, type TailwindShadow as b_, type UseLoggerOptions as ba, type Dimensions as bb, type UseMeasureReturn as bc, type UseIntersectionObserverOptions as bd, type UseIntersectionObserverReturn as be, type SnackbarSeverity as bf, type SnackbarState as bg, type UseSnackbarReturn as bh, type Theme as bi, type ThemeMode as bj, type ThemeConfig as bk, type ThemeContextValue as bl, type ColorPalette as bm, type SemanticColors as bn, type Typography as bo, type Spacing as bp, type BorderRadius as bq, type Shadows as br, type Breakpoints as bs, type ComponentThemes as bt, type ThemeProviderProps as bu, type ThemeToggleProps as bv, ThemeProvider as bw, useTheme as bx, ThemeToggle as by, useThemeValue as bz, type BrandIdentity as c, type TailwindHeight as c0, type TailwindGap as c1, type TailwindClasses$1 as c2, type ButtonVariant as c3, type ButtonSize as c4, type ButtonProps as c5, type LoaderVariant as c6, type LoaderSize as c7, type LoaderProps as c8, type ContainerProps as c9, dummyBannerData as cA, dummyFeatures as cB, dummyTestimonials as cC, dummyPricingPlans as cD, dummyFaqItems as cE, type FormFieldError as cF, type FormSubmitResult as cG, type ContactFormValues as cH, type ContactFormProps as cI, type NewsletterFormValues as cJ, type NewsletterFormProps as cK, type LoginFormValues as cL, type LoginFormProps as cM, type RegisterFormValues as cN, type RegisterFormProps as cO, VALIDATION_MESSAGES as cP, contactFormSchema as cQ, newsletterFormSchema as cR, loginFormSchema as cS, registerFormSchema as cT, createRegisterFormSchema as cU, type PasswordRequirements as cV, ContactForm as cW, NewsletterForm as cX, LoginForm as cY, RegisterForm as cZ, type RowProps as ca, type ColProps as cb, type TwoColumnProps as cc, type ThreeColumnProps as cd, type NavLink as ce, type HeaderProps as cf, type FooterColumn as cg, type SocialLink as ch, type FooterProps as ci, type BannerProps as cj, type CtaSectionProps as ck, type NewsletterSectionProps as cl, type CardProps as cm, type Feature as cn, type FeatureSectionProps as co, type Testimonial as cp, type TestimonialSectionProps as cq, type PricingFeature as cr, type PricingPlan as cs, type PricingSectionProps as ct, type FaqItem as cu, type FaqSectionProps as cv, dummyImage as cw, loremIpsum as cx, dummyHeaderData as cy, dummyFooterData as cz, type SocialLinks as d, createAppConfig as e, detectCurrentBrand as f, getAllBrandIds as g, getAllBrands as h, getAppConfigByDomain as i, getBrandByDomain as j, getBrandById as k, getLogo as l, getThemedLogo as m, index as n, useCounter as o, useDefault as p, usePrevious as q, useObjectState as r, useHistoryState as s, useQueue as t, useToggle as u, useList as v, useMap as w, useSet as x, useDebounce as y, useThrottle as z };