@datametria/vue-components
Version:
DATAMETRIA Vue.js 3 Component Library with Multi-Brand Theming - 51 components + 10 composables with theming support, WCAG 2.2 AA, dark mode, responsive system
35 lines (34 loc) • 1.56 kB
TypeScript
type HapticType = 'light' | 'medium' | 'heavy' | 'selection' | 'impact' | 'notification';
type NotificationType = 'success' | 'warning' | 'error';
interface HapticOptions {
enabled?: boolean;
fallbackToVisual?: boolean;
visualDuration?: number;
}
/**
* Composable para feedback háptico e visual
* Suporta dispositivos iOS/Android com fallback visual
*/
export declare function useHapticFeedback(options?: HapticOptions): {
isSupported: import('vue').Ref<boolean, boolean>;
isEnabled: import('vue').Ref<boolean, boolean>;
canVibrate: import('vue').ComputedRef<boolean>;
hasVisualFeedback: import('vue').ComputedRef<boolean>;
activeVisualFeedback: import('vue').Ref<string | null, string | null>;
triggerHaptic: (type?: HapticType | NotificationType) => any;
triggerVisualFeedback: (element: HTMLElement | null, type: HapticType | NotificationType) => void;
feedback: (element: HTMLElement | null, type: HapticType | NotificationType) => any;
checkSupport: () => boolean;
light: (element?: HTMLElement) => void;
medium: (element?: HTMLElement) => void;
heavy: (element?: HTMLElement) => void;
selection: (element?: HTMLElement) => void;
impact: (intensity?: "light" | "medium" | "heavy", element?: HTMLElement) => void;
notification: (type: NotificationType, element?: HTMLElement) => void;
custom: (pattern: number | number[], element?: HTMLElement) => void;
enable: () => void;
disable: () => void;
toggle: () => void;
detectHapticSupport: () => boolean;
};
export {};