Lumaktaw sa pangunahing nilalaman

API Reference

Mga public export mula sa @clepit/core. Bawat simbolo sa ibaba ay may typed signature at minimal na halimbawa ng paggamit.

Editor

Ang pangunahing editor class. Ang Editor ay may dalawang pampublikong static na pamamaraan: create (ang pangunahing factory) at destroy. Ang paraan ng create() ay nagbabalik ng EditorAPI na object kung saan lahat ng instance method ay accessible pagkatapos i-mount ang editor.

PamamaraanLagdaPaglalarawan
Editor.createEditor.create(config: EditorConfig): EditorAPIGumawa ng bagong editor instance at i-mount ito sa DOM element na may ibinigay na containerId.
Editor.destroyEditor.destroy(containerId: string): voidAng paraan ng destroy() sa EditorAPI object ay tumatawag ng Editor.destroy() para sa instance na ito.
PamamaraanLagdaPaglalarawan
data.extractdata.extract(): EditorDataI-extract ang kasalukuyang block data mula sa isang editor instance bilang JSON-safe na EditorData.
data.setdata.set(data: EditorData): voidPalitan ang buong block list ng bagong data payload. Nagti-trigger ng buong re-render.
data.cleardata.clear(): voidNililinis ang parehong block content at ang na-persist na state data.
data.clearContentdata.clearContent(): voidInaalis lamang ang mga block, naiiwanang buo ang data ng store.
data.clearStoragedata.clearStorage(): voidNililinis lamang ang store data, naiiwanang buo ang kasalukuyang mga block.
blocks.insertblocks.insert<T extends BlockToolType>(type: T, data: Block<T>['data'], index: number): HTMLElement | nullMag-insert ng block sa ibinigay na index. Tumatanggap ng parehong data shape gaya ng target na block type.
blocks.convertblocks.convert(blockId: string, newType: BlockToolType): voidI-convert ang isang block sa bagong type in-place.
blocks.removeblocks.remove(index: number): voidAlisin ang block sa ibinigay na index.
blocks.moveblocks.move(fromIndex: number, toIndex: number): voidInililipat ang isang block mula sa isang index papunta sa isa pa.
blocks.updateblocks.update<T extends BlockToolType>(blockId: string, data: Block<T>['data']): voidIna-update ang data ng isang kasalukuyang block in-place. Hindi nagbabago ang type.
blocks.getblocks.get(blockId: string): EditorData['blocks'][number] | nullKumukuha ng isang block sa pamamagitan ng ID nito. Nagbabalik ng null kung hindi natagpuan.
blocks.getAllblocks.getAll(): EditorData['blocks']Ibinabalik ang data ng lahat ng block bilang isang array.
blocks.countblocks.count(): numberIbinabalik ang bilang ng mga block sa editor.
focusfocus(): voidInililipat ang focus sa editor, na nagfo-focus sa unang block.
blurblur(): voidInaalis ang anumang aktibong focus mula sa loob ng editor.
destroydestroy(): voidAng paraan ng destroy() sa EditorAPI object ay tumatawag ng Editor.destroy() para sa instance na ito.
selection.getselection.get(): Selection | nullIbinabalik ang window selection object o null.
selection.setselection.set(selection: Selection): voidItinatakda ang window selection sa ibinigay na Selection object.
selection.clearselection.clear(): voidInaalis ang lahat ng range mula sa window selection.
ui.showBlockMenuui.showBlockMenu(block: HTMLElement): voidIpinapakita ang block type menu para sa ibinigay na block DOM element.
ui.hideBlockMenuui.hideBlockMenu(): voidItinatago ang block type menu kung bukas ito.
ui.showToolbarui.showToolbar(x: number, y: number): voidIpinapakita ang inline toolbar sa ibinigay na x, y viewport coordinates.
ui.hideToolbarui.hideToolbar(): voidItinatago ang inline toolbar kung ito ay nakikita.
view.getCurrentViewview.getCurrentView(containerId: string): EditorView | nullIbinabalik ang kasalukuyang view (edit, preview, o json) para sa ibinigay na containerId.
view.switchViewview.switchView(containerId: string, view: EditorView): voidInililipat ang editor sa isang tinukoy na view: edit, preview, o json.

Tipikal na halimbawa ng paggamit

TypeScript
import { Editor } from '@clepit/core';

const editor = Editor.create({
  containerId: 'editor',
  theme: 'auto',
  placeholder: 'Start writing...',
  minHeight: 300,
});

// Insert a block
editor.blocks.insert('paragraph', { html: 'Hello world' }, 0);

// Extract data
const data = editor.data.extract();

// Switch view
editor.view.switchView('editor', 'preview');

// Tear down
editor.destroy();

Renderer

Isang klase na nagko-convert ng naka-save na block data sa read-only na HTML sa loob ng isang DOM element. Ang klase na ito ay may isang pampublikong static na pamamaraan: render().

PamamaraanLagdaPaglalarawan
Renderer.renderRenderer.render(config: RendererConfig): HTMLElementI-render ang naka-save na block JSON sa isang container bilang read-only na HTML. Gamitin ito saanman gusto mong ipakita ang nilalaman nang walang editing affordances.

Tipikal na halimbawa ng paggamit

TypeScript
import { Renderer } from '@clepit/core';

Renderer.render({
  containerId: 'output',
  data,
  theme: 'auto',
  margins: { bottom: 12, top: 0 },
});

StyleManager

Isang sentralisadong klase na namamahala sa sistema ng tema. Nagbibigay ng tatlong kapaki-pakinabang na pampublikong static na pamamaraan para sa mga consumer: subscribe (para sa mga pagbabago ng tema sa antas ng OS), getResolvedTheme (para mabasa ang kasalukuyang tema ng OS), at injectStyles (para mag-inject ng custom na CSS).

PamamaraanLagdaPaglalarawan
StyleManager.subscribeStyleManager.subscribe(cb: (theme: 'light' | 'dark') => void): () => voidMag-subscribe sa mga pagbabago ng runtime theme token. Nagfa-fire ang listener tuwing nagbabago ang theme o themeOverrides.
StyleManager.getResolvedThemeStyleManager.getResolvedTheme(): 'light' | 'dark'Binabasa ang kasalukuyang tema ng OS ("light" o "dark"). Nagbabalik ng "light" kung hindi available ang matchMedia.
StyleManager.injectStylesStyleManager.injectStyles(styleId: string, styles: string): booleanNag-inject ng CSS string sa document.head (gumamit ng natatanging styleId). Nagbabalik ng false kung mayroon na, true kung hindi.

Tipikal na halimbawa ng paggamit

TypeScript
import { StyleManager } from '@clepit/core';

// React to OS theme changes
const unsubscribe = StyleManager.subscribe(theme => {
  console.log('OS theme:', theme); // 'light' | 'dark'
});

// Read current OS theme
const current = StyleManager.getResolvedTheme();

// Inject custom CSS once
StyleManager.injectStyles('my-overrides', `
  .clepit-editor { font-family: 'Inter', sans-serif; }
`);

// Unsubscribe when done
unsubscribe();