mirror of
https://github.com/carbon-design-system/carbon-components-svelte.git
synced 2025-09-15 02:11:05 +00:00
* chore(deps): remove clipboard-copy * feat: add copy prop, use navigator.clipboard API * docs: add clipboard-copy back to docsite for more browser support * docs(component-api): use outbound link * docs: add override/prevent copy examples
32 lines
842 B
TypeScript
32 lines
842 B
TypeScript
/// <reference types="svelte" />
|
|
import { SvelteComponentTyped } from "svelte";
|
|
import { CopyProps } from "../Copy/Copy";
|
|
|
|
export interface CopyButtonProps extends CopyProps {
|
|
/**
|
|
* Set the title and ARIA label for the copy button
|
|
* @default "Copy to clipboard"
|
|
*/
|
|
iconDescription?: string;
|
|
|
|
/**
|
|
* Specify the text to copy
|
|
*/
|
|
text?: string;
|
|
|
|
/**
|
|
* Override the default copy behavior of using the navigator.clipboard.writeText API to copy text
|
|
* @default async (text) => { try { await navigator.clipboard.writeText(text); } catch (e) { console.log(e); } }
|
|
*/
|
|
copy?: (text: string) => void;
|
|
}
|
|
|
|
export default class CopyButton extends SvelteComponentTyped<
|
|
CopyButtonProps,
|
|
{
|
|
click: WindowEventMap["click"];
|
|
animationend: WindowEventMap["animationend"];
|
|
copy: CustomEvent<any>;
|
|
},
|
|
{}
|
|
> {}
|