@codefluss/base-types 0.0.1-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,658 @@
1
+ /**
2
+ * Plugin System Type Definitions
3
+ *
4
+ * Core types for the headless plugin architecture.
5
+ * These types define the contract between plugins and the Context Panel UI.
6
+ *
7
+ * @package @codefluss/base-types
8
+ * @version 1.0.0
9
+ */
10
+ import type { ComponentType } from "react";
11
+ import type { PluginDesignSystem, PluginUtils } from "./dependencies";
12
+ /**
13
+ * Property control type
14
+ * Defines which UI control to render in Context Panel
15
+ */
16
+ export type PropertyControlType = "input" | "slider" | "select" | "color-picker" | "toggle" | "textarea" | "number-input" | "number-with-unit" | "box-model" | "spacing" | "spacing-combined" | "grid" | "typography-toolbar" | "gradient-editor" | "border-editor" | "font-preset-select" | "color-preset-select" | "text-align-toggle" | "vertical-align-toggle";
17
+ /**
18
+ * Property type
19
+ * Semantic type of the property value
20
+ */
21
+ export type PropertyType = "text" | "number" | "range" | "select" | "color" | "toggle" | "multiLangText" | "boxModel" | "box-model" | "spacing" | "spacing-combined" | "grid" | "toolbar" | "gradient" | "border";
22
+ /**
23
+ * Property category for organization
24
+ */
25
+ export type PropertyCategory = "content" | "style" | "layout" | "advanced";
26
+ /**
27
+ * Slider control configuration
28
+ */
29
+ export interface SliderConfig {
30
+ min: number;
31
+ max: number;
32
+ step: number;
33
+ showValue?: boolean;
34
+ unit?: string;
35
+ marks?: Array<{
36
+ value: number;
37
+ label: string;
38
+ }>;
39
+ }
40
+ /**
41
+ * Number input control configuration
42
+ */
43
+ export interface NumberConfig {
44
+ min?: number;
45
+ max?: number;
46
+ step?: number;
47
+ unit?: string;
48
+ }
49
+ /**
50
+ * Number with unit control configuration (Container-specific)
51
+ */
52
+ export interface NumberWithUnitConfig {
53
+ min?: number;
54
+ max?: number;
55
+ step?: number;
56
+ units?: string[];
57
+ defaultUnit?: string;
58
+ allowEmpty?: boolean;
59
+ }
60
+ /**
61
+ * Select control configuration
62
+ */
63
+ export interface SelectConfig {
64
+ options: Array<{
65
+ value: string;
66
+ label: string;
67
+ icon?: ComponentType;
68
+ }>;
69
+ searchable?: boolean;
70
+ }
71
+ /**
72
+ * Text input control configuration
73
+ */
74
+ export interface InputConfig {
75
+ placeholder?: string;
76
+ pattern?: RegExp;
77
+ validationMessage?: string;
78
+ }
79
+ /**
80
+ * Color picker control configuration
81
+ */
82
+ export interface ColorPickerConfig {
83
+ format?: "hex" | "rgb" | "hsl";
84
+ alpha?: boolean;
85
+ presets?: string[];
86
+ }
87
+ /**
88
+ * Textarea control configuration
89
+ */
90
+ export interface TextareaConfig {
91
+ rows?: number;
92
+ autoResize?: boolean;
93
+ placeholder?: string;
94
+ }
95
+ /**
96
+ * Box model control configuration
97
+ */
98
+ export interface BoxModelConfig {
99
+ min?: number;
100
+ max?: number;
101
+ unit?: string;
102
+ linkedByDefault?: boolean;
103
+ }
104
+ /**
105
+ * Spacing control configuration (combined margin + padding)
106
+ */
107
+ export interface SpacingConfig {
108
+ paddingMin?: number;
109
+ paddingMax?: number;
110
+ marginMin?: number;
111
+ marginMax?: number;
112
+ unit?: string;
113
+ }
114
+ /**
115
+ * Typography toolbar control configuration
116
+ */
117
+ export interface TypographyToolbarConfig {
118
+ showBold?: boolean;
119
+ showItalic?: boolean;
120
+ showUnderline?: boolean;
121
+ showAlignment?: boolean;
122
+ showFontSize?: boolean;
123
+ showColor?: boolean;
124
+ }
125
+ /**
126
+ * Gradient editor control configuration
127
+ */
128
+ export interface GradientEditorConfig {
129
+ allowLinear?: boolean;
130
+ allowRadial?: boolean;
131
+ maxStops?: number;
132
+ colorFormat?: "hex" | "rgb" | "hsl";
133
+ }
134
+ /**
135
+ * Border editor control configuration
136
+ */
137
+ export interface BorderEditorConfig {
138
+ allowIndividualSides?: boolean;
139
+ allowRadius?: boolean;
140
+ maxWidth?: number;
141
+ }
142
+ /**
143
+ * Font preset select control configuration
144
+ * Shows typography presets from Design System
145
+ */
146
+ export interface FontPresetSelectConfig {
147
+ /** Filter fonts by category (e.g., "heading", "body") */
148
+ category?: string;
149
+ /** Placeholder text */
150
+ placeholder?: string;
151
+ }
152
+ /**
153
+ * Color preset select control configuration
154
+ * Shows color presets from Design System (no free text)
155
+ */
156
+ export interface ColorPresetSelectConfig {
157
+ /** Filter colors by category */
158
+ category?: string;
159
+ /** Placeholder text */
160
+ placeholder?: string;
161
+ /** Show color preview swatch */
162
+ showSwatch?: boolean;
163
+ /** Allow "None" option for transparent/no color */
164
+ allowNone?: boolean;
165
+ }
166
+ /**
167
+ * Alignment toggle control configuration
168
+ * Icon-based toggle buttons for text-align or align-self
169
+ */
170
+ export interface AlignmentToggleConfig {
171
+ /** Include justify option for horizontal alignment */
172
+ includeJustify?: boolean;
173
+ /** Include stretch option for vertical alignment */
174
+ includeStretch?: boolean;
175
+ /** Include auto/inherit option */
176
+ includeAuto?: boolean;
177
+ }
178
+ /**
179
+ * Display mode configuration
180
+ */
181
+ export interface DisplayConfig {
182
+ /**
183
+ * Show in tooltip on hover vs always visible in panel
184
+ */
185
+ mode?: "tooltip" | "panel" | "both";
186
+ /**
187
+ * Collapsible section
188
+ */
189
+ collapsible?: boolean;
190
+ /**
191
+ * Default collapsed state
192
+ */
193
+ defaultCollapsed?: boolean;
194
+ /**
195
+ * Layout mode for property controls in panel (container-specific)
196
+ * Determines how controls are arranged (single column, 2-column grid, etc.)
197
+ */
198
+ layout?: "grid-2" | "grid-3" | "single" | string;
199
+ /**
200
+ * Conditional visibility based on other property values
201
+ * @example { when: 'layout.mode', equals: 'flexbox' }
202
+ */
203
+ condition?: {
204
+ when: string;
205
+ equals?: unknown;
206
+ notEquals?: unknown;
207
+ };
208
+ }
209
+ /**
210
+ * UI configuration for property
211
+ * This is the metadata that tells Context Panel HOW to render
212
+ */
213
+ export interface PropertyUIConfig {
214
+ control: PropertyControlType;
215
+ slider?: SliderConfig;
216
+ number?: NumberConfig;
217
+ numberWithUnit?: NumberWithUnitConfig;
218
+ select?: SelectConfig;
219
+ input?: InputConfig;
220
+ textarea?: TextareaConfig;
221
+ colorPicker?: ColorPickerConfig;
222
+ boxModel?: BoxModelConfig;
223
+ spacing?: SpacingConfig;
224
+ typographyToolbar?: TypographyToolbarConfig;
225
+ gradientEditor?: GradientEditorConfig;
226
+ borderEditor?: BorderEditorConfig;
227
+ fontPresetSelect?: FontPresetSelectConfig;
228
+ colorPresetSelect?: ColorPresetSelectConfig;
229
+ alignmentToggle?: AlignmentToggleConfig;
230
+ display?: DisplayConfig;
231
+ }
232
+ /**
233
+ * Property validation rules
234
+ */
235
+ export interface PropertyValidation {
236
+ pattern?: RegExp;
237
+ min?: number;
238
+ max?: number;
239
+ message?: string;
240
+ custom?: (value: unknown) => boolean | string;
241
+ }
242
+ /**
243
+ * Property priority for progressive disclosure
244
+ * Determines visual hierarchy and default visibility in Context Panel
245
+ */
246
+ export type PropertyPriority = "quick" | "common" | "advanced";
247
+ /**
248
+ * Property definition (headless metadata)
249
+ *
250
+ * This is the core interface that plugins use to define their properties.
251
+ * The Context Panel UI reads this and auto-generates appropriate controls.
252
+ */
253
+ export interface PropertyDefinition {
254
+ /**
255
+ * Property key (dot notation for nested properties)
256
+ * @example 'style.fontSize', 'layout.padding.top'
257
+ */
258
+ key: string;
259
+ /**
260
+ * Property type (semantic)
261
+ */
262
+ type: PropertyType;
263
+ /**
264
+ * Display label for UI
265
+ */
266
+ label: string;
267
+ /**
268
+ * Default value (null = use global default if applicable)
269
+ */
270
+ default: unknown;
271
+ /**
272
+ * Description shown in UI
273
+ */
274
+ description?: string;
275
+ /**
276
+ * Property category for organization
277
+ */
278
+ category?: PropertyCategory;
279
+ /**
280
+ * Whether property is required
281
+ */
282
+ required?: boolean;
283
+ /**
284
+ * Property priority for progressive disclosure (optional)
285
+ * - quick: Always visible, no accordion (most important)
286
+ * - common: Collapsible, default open (frequently used)
287
+ * - advanced: Collapsible, default closed (rarely used)
288
+ * Defaults to 'common' if not specified
289
+ */
290
+ priority?: PropertyPriority;
291
+ /**
292
+ * Design System integration
293
+ * If true, shows "Use Global Default" toggle
294
+ */
295
+ useGlobal?: boolean;
296
+ /**
297
+ * Design System key to reference
298
+ * @example 'fonts.body.size', 'colors.text-primary'
299
+ */
300
+ globalKey?: string;
301
+ /**
302
+ * UI control configuration (headless)
303
+ */
304
+ ui?: PropertyUIConfig;
305
+ /**
306
+ * Validation rules
307
+ */
308
+ validation?: PropertyValidation;
309
+ }
310
+ /**
311
+ * Plugin metadata
312
+ */
313
+ export interface PluginMeta {
314
+ description?: string;
315
+ tags?: string[];
316
+ thumbnail?: string;
317
+ documentation?: string;
318
+ }
319
+ /**
320
+ * Plugin Capabilities - PLUGIN-DRIVEN ARCHITECTURE
321
+ *
322
+ * Declares what the plugin can do and how it should be handled by the app.
323
+ * This is the core of the plugin-driven architecture:
324
+ * The plugin ITSELF defines its capabilities, not the app.
325
+ */
326
+ export interface PluginCapabilities {
327
+ /**
328
+ * Can this plugin contain child components?
329
+ * true = container/layout component
330
+ * false = leaf component (text, image, button, etc.)
331
+ */
332
+ supportsChildren: boolean;
333
+ /**
334
+ * Is this a root component?
335
+ * true = can be placed at canvas/section level (containers, sections)
336
+ * false = must be inside another component (text, buttons, images)
337
+ */
338
+ isRootComponent: boolean;
339
+ /**
340
+ * Does this plugin require a parent container?
341
+ * true = cannot exist at top level, must be inside a container
342
+ * false = can be placed directly on canvas
343
+ *
344
+ * @example Text component: requiresParent = true (must be in container)
345
+ * @example Container component: requiresParent = false (can be at top level)
346
+ */
347
+ requiresParent: boolean;
348
+ /**
349
+ * Children architecture type
350
+ * 'nested' = NESTED architecture with direct children arrays (RECOMMENDED)
351
+ * 'flat' = FLAT architecture with parentId references (DEPRECATED)
352
+ * null = does not support children
353
+ */
354
+ childrenType: "nested" | "flat" | null;
355
+ /**
356
+ * Allowed child plugin IDs
357
+ * Empty array = all plugins allowed as children
358
+ * ['text', 'image'] = only specific plugins allowed
359
+ * Only applicable if supportsChildren = true
360
+ */
361
+ allowedChildPlugins: string[];
362
+ /**
363
+ * Allowed parent plugin IDs
364
+ * Empty array = can be child of any container
365
+ * ['base-container'] = can only be inside specific containers
366
+ * Only applicable if requiresParent = true
367
+ */
368
+ allowedParentPlugins?: string[];
369
+ /**
370
+ * Maximum number of children allowed
371
+ * null = unlimited children
372
+ * number = specific limit
373
+ * Only applicable if supportsChildren = true
374
+ */
375
+ maxChildren: number | null;
376
+ /**
377
+ * Minimum number of children required
378
+ * 0 = no minimum requirement
379
+ * Only applicable if supportsChildren = true
380
+ */
381
+ minChildren: number;
382
+ }
383
+ /**
384
+ * ============================================================================
385
+ * Dual-Component Architecture Props
386
+ * ============================================================================
387
+ *
388
+ * These interfaces support the Dual-Component Pattern where plugins have:
389
+ * - Editor Component ('use client') - Interactive editing with React hooks
390
+ * - Renderer Component (NO 'use client') - Server-side rendering for view mode
391
+ *
392
+ * This pattern enables:
393
+ * - Better SEO (content in initial HTML)
394
+ * - Improved performance (smaller JS bundles, faster FCP/LCP)
395
+ * - Clear separation between editor and view mode
396
+ */
397
+ /**
398
+ * Plugin Dependencies
399
+ *
400
+ * External dependencies injected by host application.
401
+ * These are provided by the web-app and contain design system,
402
+ * utilities, and callbacks needed by plugins.
403
+ */
404
+ export interface PluginDependencies {
405
+ /**
406
+ * Design System instance
407
+ * Provides access to fonts, colors, spacing, and other design tokens
408
+ */
409
+ designSystem: PluginDesignSystem;
410
+ /**
411
+ * Utility functions
412
+ * Helper functions for common operations
413
+ */
414
+ utils: PluginUtils;
415
+ /**
416
+ * Callbacks (Editor only)
417
+ * Functions to update element data and properties
418
+ */
419
+ onContentChange?: (elementId: string, language: string, content: unknown) => void;
420
+ onPropertyChange?: (elementId: string, property: string, value: unknown) => void;
421
+ }
422
+ /**
423
+ * Base Props for ALL Plugin Components
424
+ *
425
+ * Defines the minimal required props that EVERY plugin must accept.
426
+ * Both Editor Components and Renderers should extend this interface.
427
+ *
428
+ * @template TData - Plugin-specific data type
429
+ *
430
+ * @example
431
+ * ```typescript
432
+ * interface HeadingEditorProps extends BasePluginProps<HeadingComponentData>, EditorModeProps {}
433
+ * interface HeadingRendererProps extends RendererProps<HeadingComponentData> {}
434
+ * ```
435
+ */
436
+ export interface BasePluginProps<TData = unknown> {
437
+ /**
438
+ * Unique element ID
439
+ * Used for data attributes, callbacks, and DOM references
440
+ */
441
+ elementId: string;
442
+ /**
443
+ * Plugin-specific data
444
+ * Contains all configurable properties and content
445
+ */
446
+ data: TData;
447
+ /**
448
+ * Current language (ISO code)
449
+ * Used for multi-language content resolution
450
+ * @example 'de', 'en', 'fr', 'es', 'it'
451
+ */
452
+ language: string;
453
+ /**
454
+ * Injected dependencies
455
+ * Design system, utilities, and callbacks provided by host application
456
+ */
457
+ dependencies: PluginDependencies;
458
+ }
459
+ /**
460
+ * Editor Mode Props
461
+ *
462
+ * Additional props needed ONLY for Editor Components.
463
+ * These props enable interactive editing functionality.
464
+ *
465
+ * Editor Components should combine:
466
+ * - BasePluginProps<TData> (required base props)
467
+ * - EditorModeProps (editor-specific features)
468
+ *
469
+ * @example
470
+ * ```typescript
471
+ * export interface HeadingEditorProps
472
+ * extends BasePluginProps<HeadingComponentData>,
473
+ * EditorModeProps {}
474
+ * ```
475
+ */
476
+ export interface EditorModeProps {
477
+ /**
478
+ * Is component currently selected in editor?
479
+ * Used for visual feedback and activation of editing features
480
+ */
481
+ isSelected?: boolean;
482
+ /**
483
+ * Click handler for component selection
484
+ * Called when user clicks on the component
485
+ */
486
+ onClick?: (elementId: string) => void;
487
+ /**
488
+ * Content change callback
489
+ * Called when user edits text content (contentEditable)
490
+ * @example onContentChange('heading-1', 'de', 'Neuer Titel')
491
+ */
492
+ onContentChange?: (elementId: string, language: string, content: unknown) => void;
493
+ /**
494
+ * Property change callback
495
+ * Called when user changes properties via Context Panel
496
+ * @example onPropertyChange('heading-1', 'style.fontSize', '32px')
497
+ */
498
+ onPropertyChange?: (elementId: string, property: string, value: unknown) => void;
499
+ }
500
+ /**
501
+ * Renderer Props (View/SSR Mode)
502
+ *
503
+ * Minimal props for Server-Side Rendering components.
504
+ * These components do NOT use 'use client' and should work in Node.js environment.
505
+ *
506
+ * Key differences from BasePluginProps:
507
+ * - No callbacks (onContentChange, onPropertyChange)
508
+ * - Minimal dependencies (only designSystem and utils, no callbacks)
509
+ * - Should use pure functions, no React hooks
510
+ *
511
+ * @template TData - Plugin-specific data type
512
+ *
513
+ * @example
514
+ * ```typescript
515
+ * // heading-renderer.tsx (NO 'use client')
516
+ * export interface HeadingRendererProps extends RendererProps<HeadingComponentData> {}
517
+ *
518
+ * export function HeadingRenderer({ elementId, data, language, dependencies }: HeadingRendererProps) {
519
+ * const content = resolveTextContent(data, language); // Pure function
520
+ * const styles = resolveTextStyles(data, dependencies.designSystem); // Pure function
521
+ * return <h1 style={styles}>{content}</h1>;
522
+ * }
523
+ * ```
524
+ */
525
+ export interface RendererProps<TData = unknown> {
526
+ /**
527
+ * Unique element ID
528
+ * Used for data attributes and DOM references
529
+ */
530
+ elementId: string;
531
+ /**
532
+ * Plugin-specific data
533
+ * Contains all configurable properties and content
534
+ */
535
+ data: TData;
536
+ /**
537
+ * Current language (ISO code)
538
+ * Used for multi-language content resolution
539
+ */
540
+ language: string;
541
+ /**
542
+ * Minimal dependencies (design system and utils only)
543
+ * No callbacks since renderers are read-only
544
+ */
545
+ dependencies: Pick<PluginDependencies, "designSystem" | "utils">;
546
+ }
547
+ /**
548
+ * Container Props
549
+ *
550
+ * Additional props for plugins that support children (containers, layouts).
551
+ * Used by both Editor Components and Renderers when the plugin has supportsChildren = true.
552
+ *
553
+ * @example
554
+ * ```typescript
555
+ * // Editor Component
556
+ * export interface ContainerEditorProps
557
+ * extends BasePluginProps<ContainerData>,
558
+ * EditorModeProps,
559
+ * ContainerProps {}
560
+ *
561
+ * // Renderer Component
562
+ * export interface ContainerRendererProps
563
+ * extends RendererProps<ContainerData>,
564
+ * Pick<ContainerProps, 'children'> {}
565
+ * ```
566
+ */
567
+ export interface ContainerProps {
568
+ /**
569
+ * Child components (rendered recursively)
570
+ * React nodes to be rendered inside this container
571
+ */
572
+ children?: React.ReactNode;
573
+ /**
574
+ * Drop event handler (Editor only)
575
+ * Called when user drops an element into this container
576
+ *
577
+ * @param targetId - Container element ID
578
+ * @param droppedId - Dragged element ID
579
+ * @param position - Drop position ('before', 'after', 'inside')
580
+ */
581
+ onDrop?: (targetId: string, droppedId: string, position: "before" | "after" | "inside") => void;
582
+ }
583
+ /**
584
+ * Plugin configuration (headless)
585
+ *
586
+ * Complete plugin definition with component, properties, and metadata.
587
+ */
588
+ export interface PluginConfig {
589
+ /**
590
+ * Unique plugin identifier
591
+ */
592
+ id: string;
593
+ /**
594
+ * Display name
595
+ */
596
+ name: string;
597
+ /**
598
+ * Semantic version
599
+ */
600
+ version: string;
601
+ /**
602
+ * Plugin category
603
+ */
604
+ category: "basic" | "layout" | "advanced";
605
+ /**
606
+ * Project types this plugin is available for.
607
+ * - undefined or [] = available for ALL project types (default, backward-compatible)
608
+ * - ['landing'] = only available for landing page projects
609
+ * - ['blog'] = only available for blog projects
610
+ * - ['landing', 'blog'] = available for both
611
+ */
612
+ projectTypes?: string[];
613
+ /**
614
+ * Semantic context for dynamic data binding.
615
+ * - 'static' = content defined at design time (default for most plugins)
616
+ * - 'dynamic' = content bound to collection entry at runtime (blog, shop items)
617
+ */
618
+ contentBinding?: "static" | "dynamic";
619
+ /**
620
+ * Icon component (optional)
621
+ */
622
+ icon?: ComponentType;
623
+ /**
624
+ * React component to render
625
+ */
626
+ component: ComponentType<any>;
627
+ /**
628
+ * Property definitions
629
+ */
630
+ properties: PropertyDefinition[];
631
+ /**
632
+ * Default values for new instances
633
+ */
634
+ defaults: Record<string, unknown>;
635
+ /**
636
+ * Localized strings for UI
637
+ */
638
+ locales: Record<string, unknown>;
639
+ /**
640
+ * Server-side rendering support
641
+ */
642
+ ssr: boolean;
643
+ /**
644
+ * Responsive design support
645
+ */
646
+ responsive: boolean;
647
+ /**
648
+ * PLUGIN-DRIVEN ARCHITECTURE:
649
+ * Plugin capabilities define what the plugin can do
650
+ * The app reads these to understand how to handle the plugin
651
+ */
652
+ capabilities: PluginCapabilities;
653
+ /**
654
+ * Plugin metadata
655
+ */
656
+ meta?: PluginMeta;
657
+ }
658
+ //# sourceMappingURL=plugin-system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-system.d.ts","sourceRoot":"","sources":["../src/plugin-system.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Plugin System Type Definitions
3
+ *
4
+ * Core types for the headless plugin architecture.
5
+ * These types define the contract between plugins and the Context Panel UI.
6
+ *
7
+ * @package @codefluss/base-types
8
+ * @version 1.0.0
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=plugin-system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-system.js","sourceRoot":"","sources":["../src/plugin-system.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}