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
dev ca9359c32f
Add ActiveClipboard service for Soma clipboard
5 months ago
..
test Add ActiveClipboard service for Soma clipboard 5 months ago
README.md Add ActiveClipboard service for Soma clipboard 5 months ago
active-clipboard.ts Add ActiveClipboard service for Soma clipboard 5 months ago
errors.ts Add ActiveClipboard service for Soma clipboard 5 months ago
index.ts Add ActiveClipboard service for Soma clipboard 5 months ago

README.md

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.