You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/src/arts/clipboard/README.md

1.6 KiB

clipboard

arts/clipboard contiene ActiveClipboard, un servicio pequeño para escribir texto en el portapapeles sin que los componentes lean navigator.clipboard directamente.

Ownership

  • ActiveApp puede declararlo con defineActiveClipboard(...).
  • ActiveUix standalone lo crea por defecto y permite desactivarlo con clipboard:false.
  • ActiveUix attach no crea sustitutos: si una capa pide uix.clipboard y app.clipboard no existe, falla con un error explicito.
  • ActiveDom no es el dueño de esta capacidad. El portapapeles es una capability del entorno, no una mutacion visual de nodos DOM.

Uso directo

import { createActiveClipboard } from '$clipboard';

const clipboard = createActiveClipboard();

await clipboard.writeText('Copied text');
clipboard.dispose();

Inyeccion

Tests, SSR shells y apps con permisos propios pueden inyectar un writer:

const clipboard = createActiveClipboard({
	writer: {
		async writeText(text) {
			await customClipboardApi.write(text);
		}
	}
});

Si no hay writer ni navigator.clipboard.writeText, writeText(...) lanza ActiveClipboardUnavailableError.

ActiveApp

import { createActiveApp } from '$active-app';
import { defineActiveClipboard } from '$active-app/services';

const App = createActiveApp({
	services: {
		clipboard: defineActiveClipboard()
	}
});

await App.clipboard.writeText('Copied text');

UIX / Soma

Los componentes Soma que necesitan escribir al portapapeles consumen uix.clipboard a traves de su scope de capa. No importan $clipboard ni leen navigator directamente.

Powered by TurnKey Linux.