/** * `@suaveplan/clipboard` — enterprise Clipboard API abstraction. * * Browser-tier facade over `navigator.clipboard` with a textarea + * `execCommand` fallback, paste-event read fallback, async FIFO * serialization, secure-context guard, image / blob copy + read via * `ClipboardItem`, permission change subscription, focus-aware retry, * sanitizer hook, OpenTelemetry instrumentation, and a typed error * hierarchy under the `CLIPBOARD.*` namespace. */ // Errors export { asClipboardError, CLIPBOARD_CODES, CLIPBOARD_ERROR_METADATA, type ClipboardCodeMetadata, ClipboardError, type ClipboardErrorCode, } from "./errors/errors.js"; // Fallback export { copyTextFallback, dispatchSyntheticPaste, readTextFallback, } from "./fallback/fallback.js"; // Manager export { ClipboardManager } from "./manager/manager.js"; // Observability export { createClipboardObservability } from "./observability/observability.js"; export type { ClipboardCounters, ClipboardHistograms, ClipboardObservability, ClipboardObservabilityOptions, } from "./observability/observability.types.js"; // Permissions export { checkPermissions, onPermissionChange, } from "./permissions/permissions.js"; // Queue export { AsyncQueue } from "./queue/queue.js"; // Sanitizer export { createTagAllowlistSanitizer, identitySanitizer, } from "./sanitizer/sanitizer.js"; // Security export { isSecure, requireSecureContext, waitForNextFocus, } from "./security/security.js"; // Types export { type ClipboardBlobMap, type ClipboardData, type ClipboardNavigator, type ClipboardOptions, type ClipboardPermissionState, type ClipboardResult, type ClipboardSanitizer, type ClipboardWindowLike, DEFAULT_CLIPBOARD_OPTIONS, type PermissionChangeListener, type PermissionResult, type PermissionStatusLike, } from "./types/clipboard.types.js";