@nice2dev/ui-core 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +62 -0
  3. package/dist/core/NiceInlineHelp.d.ts +69 -0
  4. package/dist/core/NiceInlineHelp.d.ts.map +1 -0
  5. package/dist/core/NiceThemeProvider.d.ts +31 -0
  6. package/dist/core/NiceThemeProvider.d.ts.map +1 -0
  7. package/dist/core/NiceThemeVariants.d.ts +55 -0
  8. package/dist/core/NiceThemeVariants.d.ts.map +1 -0
  9. package/dist/core/NiceUserPreferences.d.ts +304 -0
  10. package/dist/core/NiceUserPreferences.d.ts.map +1 -0
  11. package/dist/core/a11y-advanced.d.ts +157 -0
  12. package/dist/core/a11y-advanced.d.ts.map +1 -0
  13. package/dist/core/a11y.d.ts +299 -0
  14. package/dist/core/a11y.d.ts.map +1 -0
  15. package/dist/core/access-control.d.ts +59 -0
  16. package/dist/core/access-control.d.ts.map +1 -0
  17. package/dist/core/adapters.d.ts +178 -0
  18. package/dist/core/adapters.d.ts.map +1 -0
  19. package/dist/core/ai.d.ts +191 -0
  20. package/dist/core/ai.d.ts.map +1 -0
  21. package/dist/core/animations.d.ts +48 -0
  22. package/dist/core/animations.d.ts.map +1 -0
  23. package/dist/core/colorBlind.d.ts +22 -0
  24. package/dist/core/colorBlind.d.ts.map +1 -0
  25. package/dist/core/datasource-advanced.d.ts +261 -0
  26. package/dist/core/datasource-advanced.d.ts.map +1 -0
  27. package/dist/core/datasource-aggregation.d.ts +221 -0
  28. package/dist/core/datasource-aggregation.d.ts.map +1 -0
  29. package/dist/core/datasource-hooks.d.ts +93 -0
  30. package/dist/core/datasource-hooks.d.ts.map +1 -0
  31. package/dist/core/datasource-offline.d.ts +201 -0
  32. package/dist/core/datasource-offline.d.ts.map +1 -0
  33. package/dist/core/datasource.d.ts +181 -0
  34. package/dist/core/datasource.d.ts.map +1 -0
  35. package/dist/core/displayMode.d.ts +46 -0
  36. package/dist/core/displayMode.d.ts.map +1 -0
  37. package/dist/core/displayStyle.d.ts +79 -0
  38. package/dist/core/displayStyle.d.ts.map +1 -0
  39. package/dist/core/helpContext.d.ts +97 -0
  40. package/dist/core/helpContext.d.ts.map +1 -0
  41. package/dist/core/hooks.d.ts +149 -0
  42. package/dist/core/hooks.d.ts.map +1 -0
  43. package/dist/core/i18n.d.ts +10 -0
  44. package/dist/core/i18n.d.ts.map +1 -0
  45. package/dist/core/i18nDictionaries.d.ts +4 -0
  46. package/dist/core/i18nDictionaries.d.ts.map +1 -0
  47. package/dist/core/icons.d.ts +45 -0
  48. package/dist/core/icons.d.ts.map +1 -0
  49. package/dist/core/icuMessageFormat.d.ts +10 -0
  50. package/dist/core/icuMessageFormat.d.ts.map +1 -0
  51. package/dist/core/leak-detector.d.ts +263 -0
  52. package/dist/core/leak-detector.d.ts.map +1 -0
  53. package/dist/core/omniverkTypes.d.ts +164 -0
  54. package/dist/core/omniverkTypes.d.ts.map +1 -0
  55. package/dist/core/pluginSystem.d.ts +97 -0
  56. package/dist/core/pluginSystem.d.ts.map +1 -0
  57. package/dist/core/profiling.d.ts +276 -0
  58. package/dist/core/profiling.d.ts.map +1 -0
  59. package/dist/core/responsive.d.ts +107 -0
  60. package/dist/core/responsive.d.ts.map +1 -0
  61. package/dist/core/rtl.d.ts +47 -0
  62. package/dist/core/rtl.d.ts.map +1 -0
  63. package/dist/core/sanitizeHtml.d.ts +16 -0
  64. package/dist/core/sanitizeHtml.d.ts.map +1 -0
  65. package/dist/core/testing.d.ts +107 -0
  66. package/dist/core/testing.d.ts.map +1 -0
  67. package/dist/core/theme.d.ts +213 -0
  68. package/dist/core/theme.d.ts.map +1 -0
  69. package/dist/core/themeGallery.d.ts +104 -0
  70. package/dist/core/themeGallery.d.ts.map +1 -0
  71. package/dist/core/themePacks.d.ts +53 -0
  72. package/dist/core/themePacks.d.ts.map +1 -0
  73. package/dist/core/themePacksExtended.d.ts +59 -0
  74. package/dist/core/themePacksExtended.d.ts.map +1 -0
  75. package/dist/core/themePresets.d.ts +10 -0
  76. package/dist/core/themePresets.d.ts.map +1 -0
  77. package/dist/core/themeVariants.d.ts +204 -0
  78. package/dist/core/themeVariants.d.ts.map +1 -0
  79. package/dist/core/touch.d.ts +208 -0
  80. package/dist/core/touch.d.ts.map +1 -0
  81. package/dist/core/traceless.d.ts +461 -0
  82. package/dist/core/traceless.d.ts.map +1 -0
  83. package/dist/core/types.d.ts +105 -0
  84. package/dist/core/types.d.ts.map +1 -0
  85. package/dist/core/useThemeIsDark.d.ts +15 -0
  86. package/dist/core/useThemeIsDark.d.ts.map +1 -0
  87. package/dist/index.cjs +128 -0
  88. package/dist/index.cjs.map +1 -0
  89. package/dist/index.d.ts +49 -0
  90. package/dist/index.d.ts.map +1 -0
  91. package/dist/index.mjs +16881 -0
  92. package/dist/index.mjs.map +1 -0
  93. package/dist/performance/concurrent.d.ts +190 -0
  94. package/dist/performance/concurrent.d.ts.map +1 -0
  95. package/dist/performance/images.d.ts +189 -0
  96. package/dist/performance/images.d.ts.map +1 -0
  97. package/dist/performance/index.d.ts +17 -0
  98. package/dist/performance/index.d.ts.map +1 -0
  99. package/dist/performance/memory.d.ts +223 -0
  100. package/dist/performance/memory.d.ts.map +1 -0
  101. package/dist/performance/virtualization.d.ts +166 -0
  102. package/dist/performance/virtualization.d.ts.map +1 -0
  103. package/dist/performance/workers.d.ts +125 -0
  104. package/dist/performance/workers.d.ts.map +1 -0
  105. package/dist/viewSchema.d.ts +81 -0
  106. package/dist/viewSchema.d.ts.map +1 -0
  107. package/package.json +61 -0
@@ -0,0 +1,204 @@
1
+ /**
2
+ * @file themeVariants.ts
3
+ * @description Extended theme variants - radius, shadows, fills, gradients, effects
4
+ *
5
+ * Allows fine-grained customization of theme appearance
6
+ *
7
+ * @version 1.0.0
8
+ * @since 2026-03
9
+ * @license MIT
10
+ */
11
+ import type { NiceTheme } from './theme';
12
+ /**
13
+ * Border radius variants
14
+ */
15
+ export type RadiusVariant = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
16
+ /**
17
+ * Shadow variants
18
+ */
19
+ export type ShadowVariant = 'none' | 'subtle' | 'md' | 'lg' | 'xl' | 'inner' | 'colored' | 'glow';
20
+ /**
21
+ * Fill style variants
22
+ */
23
+ export type FillVariant = 'solid' | 'gradient-linear' | 'gradient-radial' | 'gradient-conic' | 'glass' | 'frosted' | 'pattern' | 'texture' | 'mesh';
24
+ /**
25
+ * Button style variants
26
+ */
27
+ export type ButtonStyleVariant = 'flat' | 'raised' | 'outlined' | 'ghost' | 'soft' | 'gradient' | '3d' | 'neumorphic' | 'pill' | 'link' | 'brutal';
28
+ /**
29
+ * Input style variants
30
+ */
31
+ export type InputStyleVariant = 'bordered' | 'filled' | 'underlined' | 'floating' | 'soft' | 'neumorphic' | 'pill' | 'flush';
32
+ /**
33
+ * Card style variants
34
+ */
35
+ export type CardStyleVariant = 'flat' | 'elevated' | 'bordered' | 'glass' | 'gradient' | 'neumorphic' | 'outlined' | 'paper';
36
+ /**
37
+ * Badge / tag style variants
38
+ */
39
+ export type BadgeStyleVariant = 'solid' | 'soft' | 'outlined' | 'dot' | 'pill' | 'gradient';
40
+ /**
41
+ * Tab style variants
42
+ */
43
+ export type TabStyleVariant = 'underline' | 'pills' | 'enclosed' | 'soft' | 'lifted' | 'bordered';
44
+ /**
45
+ * Toggle / switch style variants
46
+ */
47
+ export type ToggleStyleVariant = 'default' | 'ios' | 'flat' | 'pill' | 'square';
48
+ /**
49
+ * Tooltip style variants
50
+ */
51
+ export type TooltipStyleVariant = 'dark' | 'light' | 'primary' | 'glass' | 'bordered';
52
+ /**
53
+ * Modal / dialog style variants
54
+ */
55
+ export type ModalStyleVariant = 'default' | 'centered' | 'fullscreen' | 'sheet' | 'glass' | 'drawer';
56
+ /**
57
+ * Table style variants
58
+ */
59
+ export type TableStyleVariant = 'default' | 'striped' | 'bordered' | 'compact' | 'hoverable' | 'minimal';
60
+ /**
61
+ * Menu / dropdown style variants
62
+ */
63
+ export type MenuStyleVariant = 'default' | 'compact' | 'glass' | 'bordered' | 'floating';
64
+ /**
65
+ * Animation intensity
66
+ */
67
+ export type AnimationIntensity = 'none' | 'subtle' | 'normal' | 'playful' | 'dramatic';
68
+ /**
69
+ * Density variants
70
+ */
71
+ export type DensityVariant = 'compact' | 'normal' | 'comfortable' | 'spacious';
72
+ /**
73
+ * Border radius values for each variant
74
+ */
75
+ export declare const RADIUS_VALUES: Record<RadiusVariant, Record<string, string>>;
76
+ /**
77
+ * Shadow values for each variant
78
+ */
79
+ export declare const SHADOW_VALUES: Record<ShadowVariant, string>;
80
+ /**
81
+ * Shadow intensity multipliers for dark mode
82
+ */
83
+ export declare const SHADOW_DARK_MODE_VALUES: Record<ShadowVariant, string>;
84
+ /**
85
+ * Density spacing values
86
+ */
87
+ export declare const DENSITY_VALUES: Record<DensityVariant, Record<string, string>>;
88
+ /**
89
+ * Animation timing presets
90
+ */
91
+ export declare const ANIMATION_VALUES: Record<AnimationIntensity, Record<string, string>>;
92
+ /**
93
+ * Generate fill CSS for a variant
94
+ */
95
+ export declare function generateFillStyles(variant: FillVariant, primaryColor: string, secondaryColor?: string): Record<string, string>;
96
+ /**
97
+ * Generate button styles for a variant
98
+ */
99
+ export declare function generateButtonStyles(variant: ButtonStyleVariant, color: string): Record<string, string>;
100
+ /**
101
+ * Generate input styles for a variant
102
+ */
103
+ export declare function generateInputStyles(variant: InputStyleVariant): Record<string, string>;
104
+ /**
105
+ * Generate card styles for a variant
106
+ */
107
+ export declare function generateCardStyles(variant: CardStyleVariant): Record<string, string>;
108
+ /** Generate badge styles */
109
+ export declare function generateBadgeStyles(variant: BadgeStyleVariant, color: string): Record<string, string>;
110
+ /** Generate tab styles */
111
+ export declare function generateTabStyles(variant: TabStyleVariant, activeColor: string): Record<string, string>;
112
+ /** Generate toggle / switch styles */
113
+ export declare function generateToggleStyles(variant: ToggleStyleVariant): Record<string, string>;
114
+ /** Generate tooltip styles */
115
+ export declare function generateTooltipStyles(variant: TooltipStyleVariant): Record<string, string>;
116
+ /** Generate table styles */
117
+ export declare function generateTableStyles(variant: TableStyleVariant): Record<string, string>;
118
+ /**
119
+ * Theme variant configuration
120
+ */
121
+ export interface ThemeVariantConfig {
122
+ /** Border radius variant */
123
+ radius: RadiusVariant;
124
+ /** Shadow variant */
125
+ shadow: ShadowVariant;
126
+ /** Fill style */
127
+ fill: FillVariant;
128
+ /** Button style */
129
+ buttonStyle: ButtonStyleVariant;
130
+ /** Input style */
131
+ inputStyle: InputStyleVariant;
132
+ /** Card style */
133
+ cardStyle: CardStyleVariant;
134
+ /** Badge style */
135
+ badgeStyle?: BadgeStyleVariant;
136
+ /** Tab style */
137
+ tabStyle?: TabStyleVariant;
138
+ /** Toggle style */
139
+ toggleStyle?: ToggleStyleVariant;
140
+ /** Tooltip style */
141
+ tooltipStyle?: TooltipStyleVariant;
142
+ /** Modal style */
143
+ modalStyle?: ModalStyleVariant;
144
+ /** Table style */
145
+ tableStyle?: TableStyleVariant;
146
+ /** Menu style */
147
+ menuStyle?: MenuStyleVariant;
148
+ /** Animation intensity */
149
+ animation: AnimationIntensity;
150
+ /** Density */
151
+ density: DensityVariant;
152
+ /** Custom background image/pattern */
153
+ backgroundImage?: string;
154
+ /** Gradient overlay for backgrounds */
155
+ backgroundOverlay?: string;
156
+ }
157
+ /**
158
+ * Default variant configuration
159
+ */
160
+ export declare const DEFAULT_VARIANT_CONFIG: ThemeVariantConfig;
161
+ /**
162
+ * Preset variant configurations
163
+ */
164
+ export declare const VARIANT_PRESETS: Record<string, ThemeVariantConfig>;
165
+ /**
166
+ * Generate CSS variables from variant config.
167
+ *
168
+ * @param config Resolved variant configuration.
169
+ * @param selector CSS selector the declarations are emitted under.
170
+ * Defaults to `:root` (global). Pass e.g.
171
+ * `'[data-ntd-provider="pr0"]'` to scope the variables
172
+ * to one provider instance.
173
+ */
174
+ export declare function generateVariantCSS(config: ThemeVariantConfig, selector?: string): string;
175
+ /**
176
+ * Apply variant config to DOM.
177
+ *
178
+ * When `scopeId` is omitted, declarations are written under `:root` to a
179
+ * single global `<style id="ntd-variant-styles">` (previous behaviour).
180
+ *
181
+ * When `scopeId` is provided, declarations are scoped to
182
+ * `[data-ntd-provider="<scopeId>"]` and written to a dedicated
183
+ * `<style id="ntd-variant-styles-<scopeId>">`. The attribute is also
184
+ * set on `element` so descendants match the scope. This lets two
185
+ * NiceThemeProviders coexist with different `displayStyle`s without
186
+ * fighting over one global style element.
187
+ */
188
+ export declare function applyVariantConfig(config: ThemeVariantConfig, element?: HTMLElement, scopeId?: string): void;
189
+ /**
190
+ * Remove a scoped variant config previously applied via
191
+ * `applyVariantConfig(config, element, scopeId)`.
192
+ *
193
+ * Safe to call on unmount; if the style element is absent this is a
194
+ * no-op. Does not remove the shared global `ntd-variant-styles` element.
195
+ */
196
+ export declare function removeVariantConfig(scopeId: string, element?: HTMLElement): void;
197
+ /**
198
+ * Create theme with variants applied
199
+ * Returns a modified theme with variant-specific CSS custom properties
200
+ */
201
+ export declare function applyVariantsToTheme(theme: NiceTheme, config: Partial<ThemeVariantConfig>): NiceTheme & {
202
+ variantConfig: ThemeVariantConfig;
203
+ };
204
+ //# sourceMappingURL=themeVariants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themeVariants.d.ts","sourceRoot":"","sources":["../../src/core/themeVariants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,208 @@
1
+ import React from 'react';
2
+ export interface TouchPoint {
3
+ x: number;
4
+ y: number;
5
+ timestamp: number;
6
+ }
7
+ export interface SwipeGesture {
8
+ direction: 'left' | 'right' | 'up' | 'down';
9
+ distance: number;
10
+ velocity: number;
11
+ duration: number;
12
+ }
13
+ export interface PinchGesture {
14
+ scale: number;
15
+ center: {
16
+ x: number;
17
+ y: number;
18
+ };
19
+ }
20
+ export interface PanGesture {
21
+ deltaX: number;
22
+ deltaY: number;
23
+ velocityX: number;
24
+ velocityY: number;
25
+ }
26
+ export interface UseSwipeOptions {
27
+ /** Minimum distance in px to trigger a swipe (default 50) */
28
+ threshold?: number;
29
+ /** Maximum time in ms for a valid swipe (default 300) */
30
+ maxDuration?: number;
31
+ /** Callback when swipe is detected */
32
+ onSwipe?: (gesture: SwipeGesture) => void;
33
+ /** Callback when swiping left */
34
+ onSwipeLeft?: (gesture: SwipeGesture) => void;
35
+ /** Callback when swiping right */
36
+ onSwipeRight?: (gesture: SwipeGesture) => void;
37
+ /** Callback when swiping up */
38
+ onSwipeUp?: (gesture: SwipeGesture) => void;
39
+ /** Callback when swiping down */
40
+ onSwipeDown?: (gesture: SwipeGesture) => void;
41
+ /** Whether swipe detection is enabled (default true) */
42
+ enabled?: boolean;
43
+ }
44
+ export interface UseSwipeResult {
45
+ ref: React.RefObject<HTMLElement | null>;
46
+ isSwiping: boolean;
47
+ swipeDirection: SwipeGesture['direction'] | null;
48
+ }
49
+ /**
50
+ * Hook for detecting swipe gestures on touch devices.
51
+ * Returns a ref to attach to the swipeable element.
52
+ */
53
+ export declare function useSwipe(options?: UseSwipeOptions): UseSwipeResult;
54
+ export interface UsePinchOptions {
55
+ /** Callback during pinch gesture */
56
+ onPinch?: (gesture: PinchGesture) => void;
57
+ /** Callback when pinch starts */
58
+ onPinchStart?: () => void;
59
+ /** Callback when pinch ends */
60
+ onPinchEnd?: (finalScale: number) => void;
61
+ /** Minimum scale factor (default 0.5) */
62
+ minScale?: number;
63
+ /** Maximum scale factor (default 3) */
64
+ maxScale?: number;
65
+ /** Whether pinch is enabled (default true) */
66
+ enabled?: boolean;
67
+ }
68
+ export interface UsePinchResult {
69
+ ref: React.RefObject<HTMLElement | null>;
70
+ scale: number;
71
+ isPinching: boolean;
72
+ }
73
+ /**
74
+ * Hook for detecting pinch-to-zoom gestures.
75
+ */
76
+ export declare function usePinch(options?: UsePinchOptions): UsePinchResult;
77
+ export interface UsePanOptions {
78
+ /** Callback during pan */
79
+ onPan?: (gesture: PanGesture) => void;
80
+ /** Callback when pan starts */
81
+ onPanStart?: () => void;
82
+ /** Callback when pan ends */
83
+ onPanEnd?: (gesture: PanGesture) => void;
84
+ /** Whether pan is enabled (default true) */
85
+ enabled?: boolean;
86
+ }
87
+ export interface UsePanResult {
88
+ ref: React.RefObject<HTMLElement | null>;
89
+ isPanning: boolean;
90
+ deltaX: number;
91
+ deltaY: number;
92
+ }
93
+ /**
94
+ * Hook for detecting pan/drag gestures.
95
+ */
96
+ export declare function usePan(options?: UsePanOptions): UsePanResult;
97
+ export interface UsePullToRefreshOptions {
98
+ /** Callback when refresh is triggered */
99
+ onRefresh: () => Promise<void> | void;
100
+ /** Pull distance to trigger refresh (default 80) */
101
+ threshold?: number;
102
+ /** Maximum pull distance (default 120) */
103
+ maxPull?: number;
104
+ /** Whether pull to refresh is enabled (default true) */
105
+ enabled?: boolean;
106
+ }
107
+ export interface UsePullToRefreshResult {
108
+ ref: React.RefObject<HTMLElement | null>;
109
+ isPulling: boolean;
110
+ isRefreshing: boolean;
111
+ pullDistance: number;
112
+ pullProgress: number;
113
+ }
114
+ /**
115
+ * Hook for implementing pull-to-refresh functionality.
116
+ */
117
+ export declare function usePullToRefresh(options: UsePullToRefreshOptions): UsePullToRefreshResult;
118
+ export interface SwipeAction {
119
+ /** Unique key for the action */
120
+ key: string;
121
+ /** Icon or text content */
122
+ content: React.ReactNode;
123
+ /** Background color */
124
+ color: string;
125
+ /** Callback when action is triggered */
126
+ onAction: () => void;
127
+ }
128
+ export interface NiceSwipeableListItemProps {
129
+ /** Content of the list item */
130
+ children: React.ReactNode;
131
+ /** Actions revealed when swiping left */
132
+ leftActions?: SwipeAction[];
133
+ /** Actions revealed when swiping right */
134
+ rightActions?: SwipeAction[];
135
+ /** Width of each action button (default 80) */
136
+ actionWidth?: number;
137
+ /** Maximum swipe distance as multiplier of action buttons (default 1.5) */
138
+ maxSwipe?: number;
139
+ /** Threshold to auto-complete swipe (default 0.5) */
140
+ threshold?: number;
141
+ /** Additional className */
142
+ className?: string;
143
+ /** Additional styles */
144
+ style?: React.CSSProperties;
145
+ }
146
+ /**
147
+ * A list item component with swipe-to-reveal actions (like iOS).
148
+ */
149
+ export declare const NiceSwipeableListItem: React.FC<NiceSwipeableListItemProps>;
150
+ export interface NicePullToRefreshProps {
151
+ /** Content to display */
152
+ children: React.ReactNode;
153
+ /** Callback when refresh triggered */
154
+ onRefresh: () => Promise<void>;
155
+ /** Pull threshold to trigger refresh (default 80) */
156
+ threshold?: number;
157
+ /** Custom pulling indicator */
158
+ pullingContent?: React.ReactNode;
159
+ /** Custom refreshing indicator */
160
+ refreshingContent?: React.ReactNode;
161
+ /** Whether pull to refresh is enabled */
162
+ enabled?: boolean;
163
+ /** Additional className */
164
+ className?: string;
165
+ /** Additional styles */
166
+ style?: React.CSSProperties;
167
+ }
168
+ /**
169
+ * A container component that adds pull-to-refresh functionality.
170
+ */
171
+ export declare const NicePullToRefresh: React.FC<NicePullToRefreshProps>;
172
+ export type HapticFeedbackType = 'light' | 'medium' | 'heavy' | 'selection' | 'success' | 'warning' | 'error';
173
+ /**
174
+ * Triggers haptic feedback on supported devices.
175
+ * Falls back silently if not supported.
176
+ */
177
+ export declare function triggerHaptic(type?: HapticFeedbackType): void;
178
+ /**
179
+ * Hook that returns a function to trigger haptic feedback.
180
+ */
181
+ export declare function useHaptic(): (type?: HapticFeedbackType) => void;
182
+ export interface TouchTargetProps {
183
+ /** Minimum touch target size in pixels (default 44, WCAG 2.5.8) */
184
+ minSize?: number;
185
+ /** Content to wrap */
186
+ children: React.ReactNode;
187
+ /** Additional className */
188
+ className?: string;
189
+ /** Additional styles */
190
+ style?: React.CSSProperties;
191
+ /** onClick handler */
192
+ onClick?: () => void;
193
+ }
194
+ /**
195
+ * Wrapper component that ensures minimum touch target size.
196
+ * Adds invisible padding to small elements to meet WCAG 2.5.8.
197
+ */
198
+ export declare const NiceTouchTarget: React.FC<TouchTargetProps>;
199
+ export interface UseVirtualKeyboardResult {
200
+ isKeyboardVisible: boolean;
201
+ keyboardHeight: number;
202
+ }
203
+ /**
204
+ * Hook to detect virtual keyboard visibility on mobile devices.
205
+ * Uses viewport height changes as the primary detection method.
206
+ */
207
+ export declare function useVirtualKeyboard(): UseVirtualKeyboardResult;
208
+ //# sourceMappingURL=touch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"touch.d.ts","sourceRoot":"","sources":["../../src/core/touch.tsx"],"names":[],"mappings":"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"}