clepit_core
حزمة clepit_core هي التوأم الأصلي لـ @clepit/core بلغة Dart/Flutter: نفس نموذج مستند JSON، والتحرير والعرض للقراءة فقط من قاعدة شيفرة واحدة، للويب والجوال وسطح المكتب. المستندات قابلة للتبادل: ما يكتبه EditorData.toJson() هنا تقرؤه حزمة TypeScript والعكس صحيح.
pub.dev: clepit_core · npm: @clepit/core
التثبيت
flutter pub add clepit_coreEditor
Editor سطح تحرير كامل: أدوات الكتل، والأدوات المضمّنة، وأشرطة الأدوات، ومعالجة التحديد. يقبل EditorController أيضًا tools وinlineTools لتقييد المجموعة المدمجة أو توسيعها، ويكشف واجهات المستند والتحديد والعرض (EditorApi) للتحرير البرمجي.
import 'package:clepit_core/clepit_core.dart';
final controller = EditorController(
initial: EditorData.fromJson(documentJson),
);
Editor(
controller: controller,
config: EditorConfig(
onChange: (data) => save(data),
),
);Renderer
يرسم Renderer المستند للقراءة فقط، دون واجهة تحرير. البيانات غير الصالحة أو المجهولة تُعرض كـ InvalidDataPlaceholder بدل رمي استثناء، فيتدهور مستند من منتج أقدم أو أحدث بشكل مرئي بدلًا من إسقاط العرض.
Renderer(
config: RendererConfig(data: document),
);ClepitTheme
ينساب التنسيق عبر ClepitTheme، وهو ThemeExtension على ThemeData، فيتبع المحرر والعارض سمة تطبيقك في الوضعين الفاتح والداكن. تمر التخصيصات لكل عرض عبر RendererConfig.styles.
قادمًا من @clepit/core
المفهوم نفسه موجود على الجانبين؛ الأسماء تتبع أعراف كل منصة.
| TypeScript | Dart |
|---|---|
| Editor | Editor |
| Renderer | Renderer |
| StyleManager | ThemeExtension<ClepitTheme> + ThemeData |
| Tool | BlockTool / InlineTool |
| Block<T> | sealed class Block |
| EditorAPI | EditorApi + BlocksApi, SelectionApi |