Skip to content

API 概要

パッケージは3つ。必須なのは core だけです。

パッケージ内容実行時依存
@headless-canvas/coreエディタ、シェイプ、状態、座標変換、ツール、コントロールのプリミティブなし
@headless-canvas/ui既定のコントロール、スタイルシート、クリップボード連携core
@headless-canvas/reactReact バインディングcore / ui / react

@headless-canvas/core

領域エクスポート
エディタEditor, EditorOptions, CreateShapeInput, ZIndexAnchor
コントロールControls, HandleId, HandleDescriptor, SelectionBoxDescriptor, A11yShapeDescriptor, RESIZE_HANDLES
シェイプShapeUtil, ShapeUtilRegistry, ShapeRegistry, ShapeBase, AnyShape, ShapeId, ZIndex, asShapeId, asZIndex, RenderInfo, 組み込み7種の *ShapeUtil, defaultShapeUtils
シェイプの propsRectProps, EllipseProps, LineProps, PathProps, TextProps, ImageProps, GroupProps, Fill, Stroke, Shadow, PaintProps, GradientStop
描画補助resolveFill, applyStrokeStyle, applyShadow, paintPath, fontString
幾何pointInPolygon, distanceToSegment, distanceToPolyline, parsePath, emitPath, pathData, flattenPath, pathBounds, simplifyPolyline, polylineToPath, PathCommand, PathSink
数学Vec, Bounds, OrientedBounds, Matrix と各種演算
ビューポートCamera, screenToWorldPoint, worldToScreenPoint, cameraMatrix, visibleBounds, clampZoom, DEFAULT_ZOOM_RANGE
変換decomposeTransform, worldTransformOf, worldCorners, inheritedOpacity
状態Store, StoreSnapshot, TransactOptions, CommitEvent, Patch, invertPatch, invertPatches
履歴History, HistoryEntry, HistoryOptions
ドキュメントHcDocument, SCHEMA_VERSION, serialize, deserialize, SerializeOptions, DeserializeResult
レンダリングRenderer, RenderItem, RenderScene, Canvas2dRenderer, worldAabb, exportToBlob, ExportOptions, HcTaintedCanvasError
SVG 書き出しexportToSvg, SvgExportOptions, SvgExportParams, SvgNode, SvgRenderInfo
リソースResourceCache, ResourceCacheOptions, ResourceStatus, ResourceRequest
ツールTool, ToolState, HcPointerEvent, SelectTool, HandTool, DrawTool, DrawToolOptions, defaultDrawOptions, strokeFromPoints, StrokeGeometry
スナップSnapSettings, SnapGuide, SnapResult, defaultSnapSettings
通知Notification, NotificationEmitter
i18nMessages, defaultMessages, formatMessage
ユーティリティcreateId, RTree, SpatialIndex, compareIndexes, generateIndexBetween, generateNIndexesBetween, DEV

@headless-canvas/ui

ts
function createDefaultControls(
  editor: Editor,
  options?: { accessibleList?: boolean },
): { dispose(): void }

function createClipboardBinding(
  editor: Editor,
  options?: ClipboardBindingOptions,
): ClipboardBinding

function createTextEditor(
  editor: Editor,
  options?: { submitOnEnter?: boolean },
): { dispose(): void }

加えてスタイルシート。実行時に注入されないよう、独立したサブパスから import します。

ts
import '@headless-canvas/ui/styles.css'

そこで定義されるクラス名と data 属性は公開 API です。CSS 契約を参照してください。

@headless-canvas/react

React リファレンスを参照してください。

安定性

これらのページに書かれているものは v1.0 以降 semver に従います。CSS 契約も同様で、クラスや data 属性の改名は、メソッドの改名とまったく同じく破壊的変更です。

ここに記載のないものは、export されていても内部実装です。

0.x の間は minor バージョンに破壊的変更が含まれ得ます。その場合は CHANGELOG に記載されます。

MIT ライセンスで公開しています。