* docs: polish localized documentation - Rewrite Russian documentation for natural terminology and current source parity\n- Continue the Polish editorial pass across guides and SDK references\n- Refresh shared localized SDK API data imports * docs(pl): complete editorial pass - Rewrite the remaining advanced Vue SDK references\n- Refresh the Figma compatibility matrix against the canonical source\n- Align terminology and behavior across every Polish documentation page * docs(de): complete editorial pass - Rewrite German guides, automation docs, and Vue SDK references\n- Restore current AI, export, component, and variable behavior\n- Refresh the Penpot comparison and Figma compatibility matrix * docs(es): complete editorial pass - Rewrite Spanish guides, automation docs, and Vue SDK references\n- Restore current AI, export, component, and variable behavior\n- Refresh the Penpot comparison and Figma compatibility matrix * docs(fr): complete editorial pass - Rewrite French guides, automation docs, and Vue SDK references\n- Restore current AI, export, component, and variable behavior\n- Refresh the Penpot comparison and Figma compatibility matrix * docs: correct localized terminology - Replace unnecessary English prose with natural localized terminology\n- Derive documentation aliases from named directory roots\n- Preserve English only for identifiers, APIs, and exact product terms * docs(it): continue editorial pass - Rewrite Italian user guides and automation documentation\n- Update Vue SDK composables and component references\n- Restore current AI, export, component, and variable behavior * docs(it): complete editorial pass - Finish Italian advanced SDK and reference documentation\n- Refresh the Penpot comparison and Figma compatibility matrix\n- Replace literal machine translations with natural technical prose * docs(pl): refine property panel terminology * docs: refine remaining localized prose - Replace overfitted English prose in Polish feature documentation\n- Rewrite the Russian property-list reference in natural terminology * docs(ru): rewrite Penpot comparison naturally - Replace remaining English prose with natural Russian\n- Preserve code identifiers and library names only where required * docs: rewrite localized feature overviews naturally - Replace avoidable English prose in German, Spanish, and French\n- Keep identifiers and product names unchanged * docs(de): refine property panel terminology * docs: refine Spanish and French SDK terminology * docs(ru): continue full prose audit - Rewrite homepage, setup, navigation, and guide index naturally\n- Restore missing zoom shortcuts * docs(ru): audit user and automation guides - Rewrite selection, collaboration, and automation prose naturally\n- Preserve API identifiers while localizing ordinary terminology * docs(ru): audit CLI inspection and analysis * docs(ru): audit Vue SDK overview and guides * docs(ru): audit Vue SDK API prose - Localize ordinary component and composable terminology\n- Preserve API symbols and code identifiers * docs(ru): audit advanced and gradient API references * docs(ru): finish advanced API prose audit * docs(ru): audit JSX renderer guide * docs(ru): audit CLI export and scripting guides * docs(pl): audit Penpot comparison prose * docs(pl): audit selection and automation guides * docs(pl): audit homepage and variable guides * docs(pl): audit vector, layers, and Pen guides * docs(pl): audit Auto layout and shape guides * docs(pl): audit context menu and export guides * docs(pl): audit JSX and analysis guides * docs(pl): audit AI Chat guide * docs(pl): audit components and CLI inspection * docs(pl): audit scripting and SDK overview prose * docs(pl): audit SDK API indexes * docs(pl): audit SDK component references * docs(pl): audit SDK composable references * docs(ru): refine usePosition terminology * docs(pl): audit advanced SDK references * docs(pl): audit Figma compatibility matrix * docs(pl): finish residual SDK terminology audit * docs(pl): finish component terminology audit * docs(pl): finish SDK guide terminology audit * docs(de): begin full user guide prose audit * docs(de): audit navigation, Pen, and layers guides * docs(de): audit Auto Layout, shapes, menu, and export * docs(de): audit components, text, and vector guides * docs(de): audit variables and automation overview * docs(de): audit AI Chat and collaboration guides * docs(de): audit CLI inspection, analysis, and export * docs(de): audit scripting and JSX guides * docs(de): audit Vue SDK overview and guides * docs(de): audit SDK API indexes * docs(de): audit SDK component references * docs(de): audit SDK composable references * docs(de): audit advanced SDK references * docs(de): audit Penpot comparison prose * docs(de): audit Figma compatibility reference * docs(es): begin full user guide prose audit * docs(es): audit document organization guides * docs(es): audit editing workflow guides * docs(es): audit automation and collaboration prose * docs(es): audit CLI inspection and export guides * docs(es): audit CLI scripting guide * docs(es): audit JSX and feature overview prose * docs(es): audit Penpot comparison prose * docs(es): audit SDK overview and guides * docs(es): begin SDK component reference audit * docs(es): audit SDK navigation component references * docs(es): audit SDK color and layout components * docs(es): begin SDK composable reference audit * docs(es): audit SDK property composable references * docs(es): audit SDK editor composable references * docs(es): begin advanced SDK reference audit * docs(es): audit advanced SDK state references * docs(es): complete advanced SDK reference audit * docs(es): audit Figma compatibility reference * docs(es): complete residual terminology sweep * docs(fr): begin full prose second audit * docs(fr): audit AI and variables prose * docs(fr): audit core user guide prose * docs(fr): audit editing workflow guides * docs(fr): audit CLI and JSX prose * docs(fr): audit Penpot comparison prose * docs(fr): audit SDK overview and guides * docs(fr): begin SDK API reference audit * docs(fr): audit SDK navigation component references * docs(fr): audit SDK color and layout components * docs(fr): begin SDK composable reference audit * docs(fr): audit SDK property composable references * docs(fr): audit editor composables and advanced APIs * docs(fr): audit advanced SDK state references * docs(fr): complete advanced SDK reference audit * docs(fr): audit Figma compatibility reference * docs(fr): complete residual terminology sweep * docs(it): begin full prose second audit * docs(it): audit document workflow guides * docs(it): audit editing and automation prose * docs(it): audit CLI and JSX prose * docs(it): audit Penpot comparison and SDK guides * docs(it): begin SDK API reference audit * docs(it): audit SDK component and state references * docs(it): audit residual SDK references * docs(it): audit Figma compatibility reference * docs(it): complete residual terminology sweep * docs(i18n): verify residual locale terminology
130 lines
2.9 KiB
Markdown
130 lines
2.9 KiB
Markdown
---
|
|
title: Pierwsze kroki z SDK
|
|
description: Podłącz @open-pencil/vue, utwórz edytor i skonfiguruj obszar roboczy.
|
|
---
|
|
|
|
# Pierwsze kroki z SDK
|
|
|
|
## Instalacja
|
|
|
|
```bash
|
|
bun add @open-pencil/core @open-pencil/vue canvaskit-wasm
|
|
```
|
|
|
|
SDK znajduje się w monorepo OpenPencil i jest publikowany jako pakiet `@open-pencil/vue`.
|
|
|
|
```ts
|
|
import { createEditor } from '@open-pencil/core/editor'
|
|
import { provideEditor, useCanvas } from '@open-pencil/vue'
|
|
```
|
|
|
|
## Warstwy aplikacji
|
|
|
|
Aplikacja oparta na SDK składa się z trzech warstw:
|
|
|
|
1. `@open-pencil/core` — silnik edytora niezależny od frameworka;
|
|
2. `@open-pencil/vue` — composables i komponenty bez narzuconego wyglądu dla Vue;
|
|
3. aplikacja — wygląd, routing, obsługa plików i interfejs produktu.
|
|
|
|
## Minimalna konfiguracja
|
|
|
|
### 1. Utwórz edytor
|
|
|
|
```ts
|
|
import { createEditor } from '@open-pencil/core/editor'
|
|
|
|
const editor = createEditor({
|
|
width: 1200,
|
|
height: 800,
|
|
})
|
|
```
|
|
|
|
### 2. Udostępnij edytor komponentom potomnym
|
|
|
|
```vue
|
|
<script setup lang="ts">
|
|
import { provideEditor } from '@open-pencil/vue'
|
|
|
|
import type { Editor } from '@open-pencil/core/editor'
|
|
|
|
const props = defineProps<{
|
|
editor: Editor
|
|
}>()
|
|
|
|
provideEditor(props.editor)
|
|
</script>
|
|
|
|
<template>
|
|
<slot />
|
|
</template>
|
|
```
|
|
|
|
`provideEditor()` udostępnia instancję edytora wszystkim komponentom znajdującym się niżej w drzewie. Dokumentacja wywołuje tę funkcję bezpośrednio, ponieważ należy ona do aktualnego publicznego API.
|
|
|
|
### 3. Podłącz obszar roboczy
|
|
|
|
```vue
|
|
<script setup lang="ts">
|
|
import { ref } from 'vue'
|
|
|
|
import { useCanvas, useEditor } from '@open-pencil/vue'
|
|
|
|
const canvasRef = ref<HTMLCanvasElement | null>(null)
|
|
const editor = useEditor()
|
|
|
|
useCanvas(canvasRef, editor)
|
|
</script>
|
|
|
|
<template>
|
|
<canvas ref="canvasRef" class="size-full" />
|
|
</template>
|
|
```
|
|
|
|
## Korzystanie z composables
|
|
|
|
Po wywołaniu `provideEditor()` komponenty potomne mogą odczytywać zaznaczenie i wykonywać polecenia edytora:
|
|
|
|
```ts
|
|
import { useEditorCommands, useSelectionState } from '@open-pencil/vue'
|
|
|
|
const selection = useSelectionState()
|
|
const commands = useEditorCommands()
|
|
```
|
|
|
|
## Prosty przykład
|
|
|
|
```vue
|
|
<script setup lang="ts">
|
|
import { ref } from 'vue'
|
|
|
|
import { useCanvas, useEditor, useSelectionState } from '@open-pencil/vue'
|
|
|
|
const canvasRef = ref<HTMLCanvasElement | null>(null)
|
|
const editor = useEditor()
|
|
const { selectedCount } = useSelectionState()
|
|
|
|
useCanvas(canvasRef, editor, {
|
|
onReady: () => {
|
|
console.log('Canvas ready')
|
|
},
|
|
})
|
|
</script>
|
|
|
|
<template>
|
|
<div class="grid h-full grid-rows-[1fr_auto]">
|
|
<canvas ref="canvasRef" class="size-full" />
|
|
<div class="border-t px-3 py-2 text-xs text-muted">
|
|
Zaznaczono: {{ selectedCount }}
|
|
</div>
|
|
</div>
|
|
</template>
|
|
```
|
|
|
|
## Co dalej
|
|
|
|
- [Architektura](./architecture)
|
|
- [Dokumentacja API](./api/)
|
|
- [useEditor](./api/composables/use-editor)
|
|
- [useCanvas](./api/composables/use-canvas)
|
|
- [useI18n](./api/composables/use-i18n)
|