@owomark/core 0.1.5 → 0.1.7

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.
Files changed (38) hide show
  1. package/README.md +30 -10
  2. package/dist/.build-manifest.json +130 -0
  3. package/dist/browser.d.ts +66 -0
  4. package/dist/browser.js +396 -0
  5. package/dist/chunk-3KTK7CSS.js +82 -0
  6. package/dist/chunk-5JNL3LHV.js +215 -0
  7. package/dist/chunk-ASRCHEFF.js +0 -0
  8. package/dist/chunk-BKJCBEI7.js +397 -0
  9. package/dist/chunk-CJSBFWKS.js +549 -0
  10. package/dist/chunk-GA5EFGSZ.js +5820 -0
  11. package/dist/chunk-OOH46GIF.js +95 -0
  12. package/dist/chunk-ROJILHRQ.js +192 -0
  13. package/dist/chunk-WFPUIPWU.js +34 -0
  14. package/dist/chunk-WXVKSKP3.js +191 -0
  15. package/dist/chunk-YZYJIXGO.js +0 -0
  16. package/dist/editor-core-DbPhn6aI.d.ts +249 -0
  17. package/dist/index.d.ts +77 -86
  18. package/dist/index.js +161 -245
  19. package/dist/internal/dom-adapter.d.ts +37 -1
  20. package/dist/internal/dom-adapter.js +9 -2
  21. package/dist/public-zMo7BR9l.d.ts +469 -0
  22. package/dist/registry-C849sxCo.d.ts +74 -0
  23. package/dist/semantic/components/index.d.ts +9 -0
  24. package/dist/semantic/components/index.js +11 -0
  25. package/dist/semantic/editor/index.d.ts +9 -0
  26. package/dist/semantic/editor/index.js +13 -0
  27. package/dist/semantic/index.d.ts +7 -0
  28. package/dist/semantic/index.js +106 -0
  29. package/dist/semantic/runtime/index.d.ts +9 -0
  30. package/dist/semantic/runtime/index.js +13 -0
  31. package/dist/semantic/shared/index.d.ts +10 -0
  32. package/dist/semantic/shared/index.js +17 -0
  33. package/dist/semantic/syntax/index.d.ts +151 -0
  34. package/dist/semantic/syntax/index.js +63 -0
  35. package/dist/types-DMqYF6Zn.d.ts +83 -0
  36. package/package.json +29 -1
  37. package/dist/chunk-TRLKIMRD.js +0 -3227
  38. package/dist/dom-adapter-CTSJe5Uo.d.ts +0 -469
@@ -0,0 +1,95 @@
1
+ // src/semantic/shared/registry.ts
2
+ function deepFreezeValue(value) {
3
+ if (Array.isArray(value)) {
4
+ for (const item of value) {
5
+ deepFreezeValue(item);
6
+ }
7
+ return Object.freeze(value);
8
+ }
9
+ if (value && typeof value === "object") {
10
+ for (const nestedValue of Object.values(value)) {
11
+ deepFreezeValue(nestedValue);
12
+ }
13
+ return Object.freeze(value);
14
+ }
15
+ return value;
16
+ }
17
+ function freezeDescriptor(descriptor) {
18
+ return deepFreezeValue(descriptor);
19
+ }
20
+ function createDescriptorRegistry(descriptors, familyName) {
21
+ const frozen = descriptors.map((descriptor) => freezeDescriptor({ ...descriptor }));
22
+ const index = /* @__PURE__ */ new Map();
23
+ for (const descriptor of frozen) {
24
+ if (index.has(descriptor.key)) {
25
+ throw new Error(`[owomark/semantic] duplicate ${familyName} descriptor key "${descriptor.key}"`);
26
+ }
27
+ index.set(descriptor.key, descriptor);
28
+ }
29
+ return {
30
+ list() {
31
+ return frozen;
32
+ },
33
+ get(key) {
34
+ return index.get(key);
35
+ }
36
+ };
37
+ }
38
+ function requireDescriptor(registry, key, familyName) {
39
+ const descriptor = registry.get(key);
40
+ if (!descriptor) {
41
+ throw new Error(`[owomark/semantic] unknown ${familyName} descriptor "${key}"`);
42
+ }
43
+ return descriptor;
44
+ }
45
+
46
+ // src/semantic/shared/validation.ts
47
+ function assertSpecIds(specIds, family, key) {
48
+ if (specIds.length === 0) {
49
+ throw new Error(`[owomark/semantic] ${family} descriptor "${key}" must declare at least one specId`);
50
+ }
51
+ }
52
+ function validateSyntaxDescriptors(descriptors) {
53
+ for (const descriptor of descriptors) {
54
+ assertSpecIds(descriptor.specIds, "syntax", descriptor.key);
55
+ }
56
+ }
57
+ function validateComponentDescriptors(descriptors) {
58
+ const directiveNames = /* @__PURE__ */ new Set();
59
+ for (const descriptor of descriptors) {
60
+ assertSpecIds(descriptor.specIds, "component", descriptor.key);
61
+ if (directiveNames.has(descriptor.directiveName)) {
62
+ throw new Error(`[owomark/semantic] duplicate component directive "${descriptor.directiveName}"`);
63
+ }
64
+ directiveNames.add(descriptor.directiveName);
65
+ }
66
+ }
67
+ function validateRuntimeDescriptors(descriptors) {
68
+ const blockTypes = /* @__PURE__ */ new Set();
69
+ for (const descriptor of descriptors) {
70
+ assertSpecIds(descriptor.specIds, "runtime", descriptor.key);
71
+ if (blockTypes.has(descriptor.blockType)) {
72
+ throw new Error(`[owomark/semantic] duplicate runtime block type "${descriptor.blockType}"`);
73
+ }
74
+ blockTypes.add(descriptor.blockType);
75
+ }
76
+ }
77
+ function validateEditorEntryDescriptors(descriptors) {
78
+ const commandIds = /* @__PURE__ */ new Set();
79
+ for (const descriptor of descriptors) {
80
+ assertSpecIds(descriptor.specIds, "editor", descriptor.key);
81
+ if (commandIds.has(descriptor.commandId)) {
82
+ throw new Error(`[owomark/semantic] duplicate editor command id "${descriptor.commandId}"`);
83
+ }
84
+ commandIds.add(descriptor.commandId);
85
+ }
86
+ }
87
+
88
+ export {
89
+ createDescriptorRegistry,
90
+ requireDescriptor,
91
+ validateSyntaxDescriptors,
92
+ validateComponentDescriptors,
93
+ validateRuntimeDescriptors,
94
+ validateEditorEntryDescriptors
95
+ };
@@ -0,0 +1,192 @@
1
+ import {
2
+ createDescriptorRegistry,
3
+ requireDescriptor,
4
+ validateRuntimeDescriptors
5
+ } from "./chunk-OOH46GIF.js";
6
+
7
+ // src/semantic/runtime/index.ts
8
+ var builtinRuntimeBlockDescriptors = [
9
+ {
10
+ key: "builtin.runtime.paragraph",
11
+ family: "runtime",
12
+ blockType: "paragraph",
13
+ previewKind: "paragraph",
14
+ projectionStrategy: "plain",
15
+ rendererMode: "html-worker-safe",
16
+ rendererPriority: "realtime",
17
+ specIds: ["docs/specs/owomark-preview.md"]
18
+ },
19
+ {
20
+ key: "builtin.runtime.heading",
21
+ family: "runtime",
22
+ blockType: "heading",
23
+ previewKind: "heading",
24
+ projectionStrategy: "plain",
25
+ rendererMode: "html-worker-safe",
26
+ rendererPriority: "realtime",
27
+ specIds: ["docs/specs/owomark-preview.md"]
28
+ },
29
+ {
30
+ key: "builtin.runtime.unordered-list",
31
+ family: "runtime",
32
+ blockType: "unordered-list",
33
+ previewKind: "unordered-list",
34
+ projectionStrategy: "group-adjacent",
35
+ rendererMode: "html-worker-safe",
36
+ rendererPriority: "realtime",
37
+ specIds: ["docs/specs/owomark-preview.md"]
38
+ },
39
+ {
40
+ key: "builtin.runtime.ordered-list",
41
+ family: "runtime",
42
+ blockType: "ordered-list",
43
+ previewKind: "ordered-list",
44
+ projectionStrategy: "group-adjacent",
45
+ rendererMode: "html-worker-safe",
46
+ rendererPriority: "realtime",
47
+ specIds: ["docs/specs/owomark-preview.md"]
48
+ },
49
+ {
50
+ key: "builtin.runtime.blockquote",
51
+ family: "runtime",
52
+ blockType: "blockquote",
53
+ previewKind: "blockquote",
54
+ projectionStrategy: "group-adjacent",
55
+ rendererMode: "html-worker-safe",
56
+ rendererPriority: "realtime",
57
+ specIds: ["docs/specs/owomark-preview.md"]
58
+ },
59
+ {
60
+ key: "builtin.runtime.code-fence",
61
+ family: "runtime",
62
+ blockType: "code-fence",
63
+ previewKind: "code-fence",
64
+ projectionStrategy: "plain",
65
+ rendererMode: "html-worker-safe",
66
+ rendererPriority: "realtime",
67
+ specIds: ["docs/specs/owomark-preview.md"]
68
+ },
69
+ {
70
+ key: "builtin.runtime.thematic-break",
71
+ family: "runtime",
72
+ blockType: "thematic-break",
73
+ previewKind: "thematic-break",
74
+ projectionStrategy: "plain",
75
+ rendererMode: "html-worker-safe",
76
+ rendererPriority: "realtime",
77
+ specIds: ["docs/specs/owomark-preview.md"]
78
+ },
79
+ {
80
+ key: "builtin.runtime.table",
81
+ family: "runtime",
82
+ blockType: "table",
83
+ previewKind: "table",
84
+ projectionStrategy: "plain",
85
+ rendererMode: "html-worker-safe",
86
+ rendererPriority: "realtime",
87
+ specIds: ["docs/specs/owomark-preview.md"]
88
+ },
89
+ {
90
+ key: "builtin.runtime.math-block",
91
+ family: "runtime",
92
+ blockType: "math-block",
93
+ previewKind: "math-block",
94
+ projectionStrategy: "plain",
95
+ rendererMode: "html-worker-safe",
96
+ rendererPriority: "deferred",
97
+ heavy: true,
98
+ specIds: ["docs/specs/owomark-preview.md", "docs/specs/owomark-math.md"],
99
+ featureFlag: "enableMath"
100
+ },
101
+ {
102
+ key: "builtin.runtime.html-block",
103
+ family: "runtime",
104
+ blockType: "html-block",
105
+ previewKind: "html-block",
106
+ projectionStrategy: "plain",
107
+ rendererMode: "html-worker-safe",
108
+ rendererPriority: "realtime",
109
+ specIds: ["docs/specs/owomark-preview.md"]
110
+ },
111
+ {
112
+ key: "builtin.runtime.side-annotation",
113
+ family: "runtime",
114
+ blockType: "side-annotation",
115
+ previewKind: "custom",
116
+ customBlockKey: "side-annotation",
117
+ projectionStrategy: "custom-grouped",
118
+ rendererMode: "html-worker-safe",
119
+ rendererPriority: "realtime",
120
+ workerRendererId: "builtin:side-annotation",
121
+ sharedStateDirtyReason: "custom-block-change",
122
+ specIds: ["docs/specs/owomark-preview.md", "docs/specs/owomark-side-annotation.md"],
123
+ featureFlag: "enableSideAnnotation"
124
+ },
125
+ {
126
+ key: "builtin.runtime.side-note-definition",
127
+ family: "runtime",
128
+ blockType: "side-note-definition",
129
+ previewKind: "custom",
130
+ customBlockKey: "side-annotation",
131
+ projectionStrategy: "custom-single",
132
+ rendererMode: "html-worker-safe",
133
+ rendererPriority: "realtime",
134
+ workerRendererId: "builtin:side-annotation",
135
+ sharedStateDirtyReason: "custom-block-change",
136
+ specIds: ["docs/specs/owomark-preview.md", "docs/specs/owomark-side-annotation.md"],
137
+ featureFlag: "enableSideAnnotation"
138
+ },
139
+ {
140
+ key: "builtin.runtime.directive-container",
141
+ family: "runtime",
142
+ blockType: "directive-container",
143
+ previewKind: "custom",
144
+ customBlockKey: "directive-container",
145
+ projectionStrategy: "custom-single",
146
+ rendererMode: "html-worker-safe",
147
+ rendererPriority: "realtime",
148
+ specIds: ["docs/specs/owomark-preview.md"]
149
+ },
150
+ {
151
+ key: "builtin.runtime.custom-block",
152
+ family: "runtime",
153
+ blockType: "custom-block",
154
+ previewKind: "custom",
155
+ customBlockKey: "custom-block",
156
+ projectionStrategy: "custom-single",
157
+ rendererMode: "html-worker-safe",
158
+ rendererPriority: "realtime",
159
+ processorFallback: "render-raw",
160
+ sharedStateDirtyReason: "custom-block-change",
161
+ specIds: ["docs/specs/owomark-preview-api.md"]
162
+ },
163
+ {
164
+ key: "builtin.runtime.reference-definition",
165
+ family: "runtime",
166
+ blockType: "reference-definition",
167
+ previewKind: "custom",
168
+ customBlockKey: "reference-definition",
169
+ projectionStrategy: "custom-single",
170
+ rendererMode: "html-worker-safe",
171
+ rendererPriority: "realtime",
172
+ specIds: ["docs/specs/owomark-preview.md"]
173
+ }
174
+ ];
175
+ validateRuntimeDescriptors(builtinRuntimeBlockDescriptors);
176
+ var runtimeBlockRegistry = createDescriptorRegistry(builtinRuntimeBlockDescriptors, "runtime");
177
+ function getRuntimeBlockDescriptor(key) {
178
+ return requireDescriptor(runtimeBlockRegistry, key, "runtime");
179
+ }
180
+ function getRuntimeBlockDescriptorByBlockType(blockType) {
181
+ return runtimeBlockRegistry.list().find((descriptor) => descriptor.blockType === blockType);
182
+ }
183
+ function getRuntimeBlockDescriptorByPreviewKind(previewKind) {
184
+ return runtimeBlockRegistry.list().find((descriptor) => descriptor.previewKind === previewKind);
185
+ }
186
+
187
+ export {
188
+ runtimeBlockRegistry,
189
+ getRuntimeBlockDescriptor,
190
+ getRuntimeBlockDescriptorByBlockType,
191
+ getRuntimeBlockDescriptorByPreviewKind
192
+ };
@@ -0,0 +1,34 @@
1
+ // src/model/dirty-range.ts
2
+ function expandDirtyRange(current, blockIndex, totalBlocks) {
3
+ if (totalBlocks <= 0) return current;
4
+ const clamped = Math.max(0, Math.min(blockIndex, totalBlocks - 1));
5
+ if (!current) {
6
+ return { startBlock: clamped, endBlock: clamped };
7
+ }
8
+ return {
9
+ startBlock: Math.min(current.startBlock, clamped),
10
+ endBlock: Math.max(current.endBlock, clamped)
11
+ };
12
+ }
13
+ function expandWithContext(range, totalBlocks, context = 1) {
14
+ if (totalBlocks <= 0) return null;
15
+ return {
16
+ startBlock: Math.max(0, range.startBlock - context),
17
+ endBlock: Math.min(totalBlocks - 1, range.endBlock + context)
18
+ };
19
+ }
20
+
21
+ // src/preview/block-id.ts
22
+ function deriveBlockId(renderKey, occurrenceIndex) {
23
+ return `${renderKey}#${occurrenceIndex}`;
24
+ }
25
+ function deriveSourceKey(startLine, endLine) {
26
+ return `L${startLine}-${endLine}`;
27
+ }
28
+
29
+ export {
30
+ expandDirtyRange,
31
+ expandWithContext,
32
+ deriveBlockId,
33
+ deriveSourceKey
34
+ };
@@ -0,0 +1,191 @@
1
+ import {
2
+ createDescriptorRegistry,
3
+ requireDescriptor,
4
+ validateComponentDescriptors
5
+ } from "./chunk-OOH46GIF.js";
6
+
7
+ // src/semantic/components/index.ts
8
+ var builtinComponentDescriptors = [
9
+ {
10
+ key: "builtin.component.note",
11
+ family: "component",
12
+ directiveName: "note",
13
+ componentName: "Note",
14
+ componentKind: "block-container",
15
+ allowedAttrs: ["title"],
16
+ requiredAttrs: [],
17
+ requiredParent: null,
18
+ allowedChildDirectives: [],
19
+ payloadStrategy: "none",
20
+ specIds: ["docs/specs/owomark-components-extension.md"],
21
+ featureFlag: "enableComponents"
22
+ },
23
+ {
24
+ key: "builtin.component.callout",
25
+ family: "component",
26
+ directiveName: "callout",
27
+ componentName: "Callout",
28
+ componentKind: "block-container",
29
+ allowedAttrs: ["type"],
30
+ requiredAttrs: [],
31
+ requiredParent: null,
32
+ allowedChildDirectives: [],
33
+ payloadStrategy: "none",
34
+ specIds: ["docs/specs/owomark-components-extension.md"],
35
+ featureFlag: "enableComponents"
36
+ },
37
+ {
38
+ key: "builtin.component.code-demo",
39
+ family: "component",
40
+ directiveName: "code-demo",
41
+ componentName: "CodeDemo",
42
+ componentKind: "block-container",
43
+ allowedAttrs: ["title", "language"],
44
+ requiredAttrs: [],
45
+ requiredParent: null,
46
+ allowedChildDirectives: ["code-tab"],
47
+ payloadStrategy: "code-tabs",
48
+ specIds: ["docs/specs/owomark-components-extension.md"],
49
+ featureFlag: "enableComponents"
50
+ },
51
+ {
52
+ key: "builtin.component.code-tab",
53
+ family: "component",
54
+ directiveName: "code-tab",
55
+ componentName: "CodeTab",
56
+ componentKind: "block-child",
57
+ allowedAttrs: ["label", "language"],
58
+ requiredAttrs: ["label"],
59
+ requiredParent: "code-demo",
60
+ allowedChildDirectives: [],
61
+ payloadStrategy: "single-code-block",
62
+ specIds: ["docs/specs/owomark-components-extension.md"],
63
+ featureFlag: "enableComponents"
64
+ },
65
+ {
66
+ key: "builtin.component.details",
67
+ family: "component",
68
+ directiveName: "details",
69
+ componentName: "Details",
70
+ componentKind: "block-container",
71
+ allowedAttrs: ["summary", "open"],
72
+ requiredAttrs: ["summary"],
73
+ requiredParent: null,
74
+ allowedChildDirectives: [],
75
+ payloadStrategy: "none",
76
+ specIds: ["docs/specs/owomark-components-extension.md"],
77
+ featureFlag: "enableComponents"
78
+ },
79
+ {
80
+ key: "builtin.component.link-card",
81
+ family: "component",
82
+ directiveName: "link-card",
83
+ componentName: "LinkCard",
84
+ componentKind: "block-container",
85
+ allowedAttrs: ["href", "title", "description", "domain"],
86
+ requiredAttrs: ["href", "title"],
87
+ requiredParent: null,
88
+ allowedChildDirectives: [],
89
+ payloadStrategy: "optional-summary",
90
+ specIds: ["docs/specs/owomark-components-extension.md"],
91
+ featureFlag: "enableComponents"
92
+ },
93
+ {
94
+ key: "builtin.component.steps",
95
+ family: "component",
96
+ directiveName: "steps",
97
+ componentName: "Steps",
98
+ componentKind: "block-parent",
99
+ allowedAttrs: [],
100
+ requiredAttrs: [],
101
+ requiredParent: null,
102
+ allowedChildDirectives: ["step"],
103
+ payloadStrategy: "none",
104
+ specIds: ["docs/specs/owomark-components-extension.md"],
105
+ featureFlag: "enableComponents"
106
+ },
107
+ {
108
+ key: "builtin.component.step",
109
+ family: "component",
110
+ directiveName: "step",
111
+ componentName: "Step",
112
+ componentKind: "block-child",
113
+ allowedAttrs: ["title"],
114
+ requiredAttrs: [],
115
+ requiredParent: "steps",
116
+ allowedChildDirectives: [],
117
+ payloadStrategy: "none",
118
+ specIds: ["docs/specs/owomark-components-extension.md"],
119
+ featureFlag: "enableComponents"
120
+ },
121
+ {
122
+ key: "builtin.component.tabs",
123
+ family: "component",
124
+ directiveName: "tabs",
125
+ componentName: "Tabs",
126
+ componentKind: "block-parent",
127
+ allowedAttrs: [],
128
+ requiredAttrs: [],
129
+ requiredParent: null,
130
+ allowedChildDirectives: ["tab"],
131
+ payloadStrategy: "none",
132
+ specIds: ["docs/specs/owomark-components-extension.md"],
133
+ featureFlag: "enableComponents"
134
+ },
135
+ {
136
+ key: "builtin.component.tab",
137
+ family: "component",
138
+ directiveName: "tab",
139
+ componentName: "Tab",
140
+ componentKind: "block-child",
141
+ allowedAttrs: ["label"],
142
+ requiredAttrs: [],
143
+ requiredParent: "tabs",
144
+ allowedChildDirectives: [],
145
+ payloadStrategy: "none",
146
+ specIds: ["docs/specs/owomark-components-extension.md"],
147
+ featureFlag: "enableComponents"
148
+ },
149
+ {
150
+ key: "builtin.component.file-tree",
151
+ family: "component",
152
+ directiveName: "file-tree",
153
+ componentName: "FileTree",
154
+ componentKind: "block-container",
155
+ allowedAttrs: [],
156
+ requiredAttrs: [],
157
+ requiredParent: null,
158
+ allowedChildDirectives: [],
159
+ payloadStrategy: "single-code-block",
160
+ specIds: ["docs/specs/owomark-components-extension.md"],
161
+ featureFlag: "enableComponents"
162
+ },
163
+ {
164
+ key: "builtin.component.kbd",
165
+ family: "component",
166
+ directiveName: "kbd",
167
+ componentName: "Kbd",
168
+ componentKind: "inline-text",
169
+ allowedAttrs: [],
170
+ requiredAttrs: [],
171
+ requiredParent: null,
172
+ allowedChildDirectives: [],
173
+ payloadStrategy: "inline-text",
174
+ specIds: ["docs/specs/owomark-components-extension.md"],
175
+ featureFlag: "enableComponents"
176
+ }
177
+ ];
178
+ validateComponentDescriptors(builtinComponentDescriptors);
179
+ var componentRegistry = createDescriptorRegistry(builtinComponentDescriptors, "component");
180
+ function getComponentDescriptor(key) {
181
+ return requireDescriptor(componentRegistry, key, "component");
182
+ }
183
+ function getComponentDescriptorByDirective(directiveName) {
184
+ return componentRegistry.list().find((descriptor) => descriptor.directiveName === directiveName);
185
+ }
186
+
187
+ export {
188
+ componentRegistry,
189
+ getComponentDescriptor,
190
+ getComponentDescriptorByDirective
191
+ };
File without changes