@phtngyn/cms 0.1.0-beta.2 → 0.1.0-beta.3
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.
- package/README.md +52 -35
- package/bin/cms.mjs +2 -0
- package/package.json +5 -5
- package/src/{Configuration-CA_jvQKG.js → Configuration-CDMYfTre.js} +3 -3
- package/src/{Configuration-CA_jvQKG.js.map → Configuration-CDMYfTre.js.map} +1 -1
- package/src/Configuration.d.ts +60 -2
- package/src/Configuration.js.map +1 -1
- package/src/ContentTransfer-C3Av9sWz.js +53 -0
- package/src/ContentTransfer-C3Av9sWz.js.map +1 -0
- package/src/{DocumentEngine-CgiBQU4g.js → DocumentEngine-J7g-emdf.js} +4 -4
- package/src/{DocumentEngine-CgiBQU4g.js.map → DocumentEngine-J7g-emdf.js.map} +1 -1
- package/src/DocumentModel.d.ts +33 -2
- package/src/{Forms-DxbkU3_5.js → Forms-Dj6NuW66.js} +2 -2
- package/src/{Forms-DxbkU3_5.js.map → Forms-Dj6NuW66.js.map} +1 -1
- package/src/Forms.d.ts +17 -1
- package/src/Forms.js.map +1 -1
- package/src/I18n.d.ts +20 -2
- package/src/Module.js +2 -3
- package/src/Module.js.map +1 -1
- package/src/{S3MediaObjects-JKMAWyVB.js → S3MediaObjects-CpPSzJto.js} +219 -106
- package/src/S3MediaObjects-CpPSzJto.js.map +1 -0
- package/src/cli/content.js +258 -0
- package/src/cli/content.js.map +1 -0
- package/src/cli.js +71 -0
- package/src/cli.js.map +1 -0
- package/src/{connection-B-iz0Y9Y.js → connection-CBAy2qGy.js} +2 -2
- package/src/{connection-B-iz0Y9Y.js.map → connection-CBAy2qGy.js.map} +1 -1
- package/src/{installation-DgF2M1gL.js → installation-CNfIriVm.js} +21 -23
- package/src/installation-CNfIriVm.js.map +1 -0
- package/src/internal/authoring-catalog.js +2 -2
- package/src/internal/authoring-metadata.js +1 -1
- package/src/internal/configuration.js +6 -10
- package/src/internal/configuration.js.map +1 -1
- package/src/internal/document-model.js +7 -4
- package/src/internal/document-model.js.map +1 -1
- package/src/{location-CFKTeK1K.js → location-BTqdfIzX.js} +2 -2
- package/src/{location-CFKTeK1K.js.map → location-BTqdfIzX.js.map} +1 -1
- package/src/{models-BWm1pTAf.js → models-B4IoTmp7.js} +2 -2
- package/src/{models-BWm1pTAf.js.map → models-B4IoTmp7.js.map} +1 -1
- package/src/{models-DwYioyNV.js → models-Bah5B3bT.js} +4 -21
- package/src/models-Bah5B3bT.js.map +1 -0
- package/src/runtime/delivery/context.js +1 -1
- package/src/runtime/delivery/plugin.js +9 -3
- package/src/runtime/delivery/plugin.js.map +1 -1
- package/src/runtime/delivery/useCmsDocumentSeo.d.ts +3 -0
- package/src/runtime/delivery/useCmsDocumentSeo.js +3 -1
- package/src/runtime/delivery/useCmsDocumentSeo.js.map +1 -1
- package/src/runtime/forms/document.js +1 -1
- package/src/runtime/forms/useCmsForm.js +43 -2
- package/src/runtime/forms/useCmsForm.js.map +1 -1
- package/src/runtime/i18n/translator.js +31 -2
- package/src/runtime/i18n/translator.js.map +1 -1
- package/src/runtime/i18n/useCmsI18n.d.ts +3 -1
- package/src/runtime/i18n/useCmsI18n.js +9 -1
- package/src/runtime/i18n/useCmsI18n.js.map +1 -1
- package/src/runtime/installation.js +1 -1
- package/src/runtime/plugin.js +3 -3
- package/src/runtime/plugin.js.map +1 -1
- package/src/runtime/preview/connection.js +1 -1
- package/src/runtime/preview/controller.js +2 -2
- package/src/runtime/preview/plugin.client.js +3 -3
- package/src/runtime/preview/store.js +1 -1
- package/src/runtime/sitemap.js +1 -1
- package/src/{store-DjJs3I7k.js → store-b2CSXgMt.js} +3 -3
- package/src/{store-DjJs3I7k.js.map → store-b2CSXgMt.js.map} +1 -1
- package/studio/{CreateDocumentDialog-CTeIFlPb.js → CreateDocumentDialog-GGey1uBc.js} +1 -1
- package/studio/{documentPlanning-Bfv-d7OU.js → documentPlanning-DRErYmBU.js} +1490 -1450
- package/studio/host.js +2 -2
- package/src/Configuration-Br7tE9Qt.d.ts +0 -68
- package/src/DocumentModel-BB9igGC7.d.ts +0 -34
- package/src/I18n-DZK4CkJF.d.ts +0 -21
- package/src/S3MediaObjects-JKMAWyVB.js.map +0 -1
- package/src/Seed.d.ts +0 -6
- package/src/Seed.js +0 -34
- package/src/Seed.js.map +0 -1
- package/src/installation-DgF2M1gL.js.map +0 -1
- package/src/models-DwYioyNV.js.map +0 -1
package/README.md
CHANGED
|
@@ -30,7 +30,7 @@ Create `cms.config.ts` beside `nuxt.config.ts`:
|
|
|
30
30
|
|
|
31
31
|
```ts
|
|
32
32
|
import { defineCmsConfig } from '@phtngyn/cms/Configuration'
|
|
33
|
-
import {
|
|
33
|
+
import { pageSchema } from './page.schema'
|
|
34
34
|
|
|
35
35
|
function env(name: string): string {
|
|
36
36
|
const value = process.env[name]
|
|
@@ -48,7 +48,7 @@ export default defineCmsConfig({
|
|
|
48
48
|
pages: {
|
|
49
49
|
label: 'Page',
|
|
50
50
|
route: '/:path*',
|
|
51
|
-
schema:
|
|
51
|
+
schema: pageSchema,
|
|
52
52
|
source: '.',
|
|
53
53
|
},
|
|
54
54
|
},
|
|
@@ -74,6 +74,25 @@ These environment variable names are examples; configuration is executable TypeS
|
|
|
74
74
|
|
|
75
75
|
For storage using the AWS credential chain, omit `credentials`. To create a missing bucket automatically, set `provisionBucket: true` and grant bucket-creation permission. Set `media: false` to start without uploads.
|
|
76
76
|
|
|
77
|
+
## Content CLI
|
|
78
|
+
|
|
79
|
+
The installed package provides a `cms` command for importing a plain Markdown folder, exporting Studio-authored Markdown, and moving content between running CMS installations. Create the first administrator in Studio, then sign in to the CLI with that administrator's email and password. The CLI prompts for the site URL, administrator email, and password when they are missing. For noninteractive use, set `CMS_URL`, `CMS_EMAIL`, and `CMS_PASSWORD`; `--url` and `--email` can replace the first two variables. Use HTTPS outside localhost.
|
|
80
|
+
|
|
81
|
+
```sh
|
|
82
|
+
CMS_URL=https://source.example.com CMS_EMAIL=admin@example.com cms content export ./content
|
|
83
|
+
CMS_URL=https://target.example.com CMS_EMAIL=admin@example.com cms content diff ./content
|
|
84
|
+
CMS_URL=https://target.example.com CMS_EMAIL=admin@example.com cms content plan ./content
|
|
85
|
+
CMS_URL=https://target.example.com CMS_EMAIL=admin@example.com cms content apply ./content
|
|
86
|
+
CMS_URL=https://target.example.com CMS_EMAIL=admin@example.com cms content plan ./seed --publish
|
|
87
|
+
CMS_URL=https://target.example.com CMS_EMAIL=admin@example.com cms content apply ./seed --publish
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Export writes each authored source at its CMS path and a `.cms-content.json` index with content hashes and the exact-revision publication state. Commit both to Git to review changes. Export refuses to replace locally edited Markdown or index entries. It does not delete files that disappeared from the CMS; remove stale files and index entries yourself after review. `diff` compares local Markdown and publication state with the current target and reports target-only documents. `plan` validates the whole incoming set and lists creates, updates, publications, and conflicts without writing. `apply` plans again, then commits the batch atomically against the generation it just inspected. Run `plan` and `diff` before applying, especially when targeting another environment.
|
|
91
|
+
|
|
92
|
+
For a folder without `.cms-content.json`, the CLI reads nested `.md` and `.mdc` files and uses folder-relative document paths. These sources are eligible for publication with `--publish`. Imports create drafts by default. Existing content with different Markdown is a conflict until you pass `--overwrite` to `plan` and `apply`. For an exported folder, `--publish` publishes only index entries marked `published: true`; without it, they remain drafts on the target. A newly imported draft does not unpublish an older target revision. The CLI does not delete target documents or move a target-only document. A concurrent change after planning causes `apply` to fail; review and retry.
|
|
93
|
+
|
|
94
|
+
The command tree is intentionally shared: future CMS operations can be added beside `content` without separate executables.
|
|
95
|
+
|
|
77
96
|
## Search and sharing
|
|
78
97
|
|
|
79
98
|
The module installs the focused Nuxt robots, sitemap, schema.org, and SEO utility modules. Published CMS pages receive canonical, robots, social-sharing, and structured-data metadata automatically. The sitemap contains only published, indexable documents and uses their publication revision time for `lastmod`; localized variants are emitted as alternatives when they share a document key.
|
|
@@ -109,7 +128,25 @@ Keep raw robots directives and Nuxt module configuration in application code. Th
|
|
|
109
128
|
|
|
110
129
|
## Collection schemas
|
|
111
130
|
|
|
112
|
-
|
|
131
|
+
Collections use **Standard Schema V1** for validation and **Standard JSON Schema V1** for the input structure Studio renders. This lets you keep your chosen validation library. Both contracts must be available on the collection schema; Standard Schema validation alone cannot describe controls. Studio requests draft 2020-12 JSON Schema input, resolves non-recursive local references, and runs the original validator when validating documents.
|
|
132
|
+
|
|
133
|
+
For a validator that already implements both standards, pass it directly as `schema`. Otherwise, adapt its validator and input/output JSON Schema converters:
|
|
134
|
+
|
|
135
|
+
```ts
|
|
136
|
+
const pageSchema = {
|
|
137
|
+
'~standard': {
|
|
138
|
+
...validator['~standard'],
|
|
139
|
+
jsonSchema: {
|
|
140
|
+
input: () => inputJsonSchema,
|
|
141
|
+
output: () => outputJsonSchema,
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Supply actual draft 2020-12 schemas from the chosen library, using its input and output conversion modes respectively. Studio reads the input structure; the validator remains responsible for execution. A missing input converter produces a configuration error naming Standard JSON Schema V1. Foreign schemas use JSON Schema `title`, `description`, `default`, and `x-cms-input` for presentation.
|
|
148
|
+
|
|
149
|
+
Effect schemas are also accepted directly. The CMS derives Studio inputs from their encoded structure and runs the original decoder, preserving defaults, transformations, and asynchronous validation. Decoders must not require external Effect services, and their output must be a JSON-compatible object.
|
|
113
150
|
|
|
114
151
|
```ts
|
|
115
152
|
import { Effect, Schema } from 'effect'
|
|
@@ -126,24 +163,6 @@ const pageSchema = Schema.Struct({
|
|
|
126
163
|
|
|
127
164
|
Use `Schema.optionalKey` for optional fields and `Schema.Finite` for numeric fields. An encoded `default` annotation supplies Studio's initial value; `Schema.withDecodingDefaultKey` applies that default during validation. `CalendarDate` validates calendar dates stored as `YYYY-MM-DD` strings. `field` adds presentation annotations to the encoded side of an Effect schema.
|
|
128
165
|
|
|
129
|
-
Other libraries are supported through a schema implementing **both Standard Schema V1 and Standard JSON Schema V1**. Standard Schema supplies validation and typed output; Standard JSON Schema's `jsonSchema.input({ target: 'draft-2020-12' })` supplies the editor structure. A library that only implements validation needs an adapter adding JSON Schema conversion; Standard Schema alone cannot generate a form.
|
|
130
|
-
|
|
131
|
-
For example, an existing Standard Schema validator can be adapted with its library's JSON Schema converters:
|
|
132
|
-
|
|
133
|
-
```ts
|
|
134
|
-
const collectionSchema = {
|
|
135
|
-
'~standard': {
|
|
136
|
-
...validator['~standard'],
|
|
137
|
-
jsonSchema: {
|
|
138
|
-
input: () => inputJsonSchema,
|
|
139
|
-
output: () => outputJsonSchema,
|
|
140
|
-
},
|
|
141
|
-
},
|
|
142
|
-
}
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
Supply actual draft 2020-12 schemas from the chosen library, using its input and output conversion modes respectively. Foreign schemas use JSON Schema `title`, `description`, `default`, and `x-cms-input` for presentation. The CMS reads only the input structure and retains the original validator for execution.
|
|
146
|
-
|
|
147
166
|
Studio supports strings, calendar dates, finite numbers, booleans, string arrays, choices, and nested objects. Non-recursive local references are resolved. Ambiguous unions, structural intersections, recursive schemas, and unsupported field shapes fail configuration rather than producing incomplete forms.
|
|
148
167
|
|
|
149
168
|
## Start editing
|
|
@@ -165,12 +184,7 @@ Draft delivery requires the current Studio session and document access permissio
|
|
|
165
184
|
- Define collections with Effect Schema in `documents.collections`. Import `field` from `@phtngyn/cms/DocumentModel` to add field labels and input hints.
|
|
166
185
|
- Use the auto-imported `useDocument` and `useDocumentQuery` composables and `DocumentRenderer`, `DocumentScope`, and `DocumentField` components for custom rendering.
|
|
167
186
|
- Import `defineCmsBlock` from `@phtngyn/cms/Authoring` to declare editable props and slots in your Nuxt Vue components.
|
|
168
|
-
-
|
|
169
|
-
|
|
170
|
-
For a folder of published Markdown files, import `seedFromDirectory` from `@phtngyn/cms/Seed` and set
|
|
171
|
-
`initialSources: seedFromDirectory(new URL('./seed/', import.meta.url))` in `cms.config.ts`.
|
|
172
|
-
The folder is read when Nuxt loads the configuration. Paths within it become document source paths;
|
|
173
|
-
for example, `seed/en/index.md` becomes `en/index.md`. Files are published on the first claim.
|
|
187
|
+
- Import Markdown folders with `cms content plan` and `cms content apply` after creating the first administrator.
|
|
174
188
|
|
|
175
189
|
## Studio and authoring during development
|
|
176
190
|
|
|
@@ -208,6 +222,8 @@ String props can declare `input: 'image'` or `input: 'link'`. Studio uses the ex
|
|
|
208
222
|
|
|
209
223
|
Slots with `input: 'blocks'` accept nested components. Optional `blocks` and `groups` selectors restrict direct children; omitting both permits all collection-allowed blocks. Collection permissions apply at every depth. Studio offers insertion, selection, deletion and sibling reordering inside each region. Existing content is retained when a schema change makes it invalid.
|
|
210
224
|
|
|
225
|
+
For repeatable cards or chapters with formatted copy, give the parent a blocks slot restricted to an item block. Declare the item's title, icon, link, and layout choices as props, and its copy as a `rich-text` slot. Studio keeps each child block's identity and order, so the item needs no separate `id` prop. The [example section](../../examples/nuxt/app/components/documents/ContentSection.vue) hosts repeatable [cards](../../examples/nuxt/app/components/documents/ContentCard.vue); the English and German homepages show their Markdown source.
|
|
226
|
+
|
|
211
227
|
Use object props for structured data and slots for composed content:
|
|
212
228
|
|
|
213
229
|
```ts
|
|
@@ -235,8 +251,6 @@ Every list item needs a required `id: string` in its Vue type. Studio generates
|
|
|
235
251
|
|
|
236
252
|
Collaboration merges object fields and list-item fields independently. List ordering is separate from item values; simultaneous insertions at the same position retain both items in deterministic identity order. Removing an item takes precedence over concurrent edits to it. Competing edits to the same field use Yjs conflict resolution. Authoring schemas and controls update through the existing HMR path without reseeding content.
|
|
237
253
|
|
|
238
|
-
See the example's `ContentSection.vue` for a complete component-local declaration with images, links, layout settings, repeatable features and nested blocks.
|
|
239
|
-
|
|
240
254
|
## Headless forms
|
|
241
255
|
|
|
242
256
|
Register a form under the kebab-case name of your Nuxt Vue renderer. `defineCmsForm` is a normal TypeScript helper, not a compiler macro. It declares the question types and validation rules editors may use:
|
|
@@ -283,6 +297,7 @@ const {
|
|
|
283
297
|
isSuccess,
|
|
284
298
|
isPreview,
|
|
285
299
|
error,
|
|
300
|
+
fieldState,
|
|
286
301
|
next,
|
|
287
302
|
previous,
|
|
288
303
|
validate,
|
|
@@ -291,7 +306,9 @@ const {
|
|
|
291
306
|
} = useCmsForm(() => props.definition)
|
|
292
307
|
```
|
|
293
308
|
|
|
294
|
-
The composable accepts a value, ref, or getter and returns destructurable refs and functions.
|
|
309
|
+
The composable accepts a value, ref, or getter and returns destructurable refs and functions. Use `fieldState(field)` for each visible question. It returns the current `value`, `error`, normalized `setValue(input)`, and `inputAttrs` with an ID, name, required state, and ARIA error/help references. Render help with `id=state.helpId` and errors with `id=state.errorId` so those references have matching elements. For example, a native control can use `v-bind="state.inputAttrs"`, `:value="state.value"`, and `@input="state.setValue($event.target.value)"`. Checkbox controls should pass their checked boolean. Valid number answers become numbers, empty answers become null, and invalid number text remains visible to validation. Empty optional answers reach the server handler as null. `values` and `errors` remain available for custom renderers; `_form` holds a form-wide error. Render accessible labels, error announcements, progress, and focus behavior in your application.
|
|
310
|
+
|
|
311
|
+
`next()` validates the current step, `previous()` preserves answers, and `submit()` validates every step and returns whether submission succeeded. A required checkbox must be checked.
|
|
295
312
|
|
|
296
313
|
Definition replacements preserve answers for matching IDs and field types within the same form, clear validation state, and cancel pending client requests. `reset()` clears answers and submission state. The composable prevents overlapping submissions and repeat submission after success until reset. Scope disposal cancels client work. Cancellation cannot undo a server handler that has already started. An optional `submit(payload, signal)` transport override supports advanced integrations; it must return `CmsFormResult` and preserve server-side validation.
|
|
297
314
|
|
|
@@ -322,18 +339,18 @@ i18n: {
|
|
|
322
339
|
},
|
|
323
340
|
```
|
|
324
341
|
|
|
325
|
-
Locale codes also define the first directory of document source paths: `en/index.md` serves `/`, and `de/index.md` serves `/de`. Collection source matching starts after that directory. Markdown contains the editor-authored language already; it needs no translation key. Markdown and source paths remain stored in document revisions, with collaborative working edits checkpointed into Markdown.
|
|
342
|
+
Locale codes also define the first directory of document source paths: `en/index.md` serves `/`, and `de/index.md` serves `/de`. Collection source matching starts after that directory. Markdown contains the editor-authored language already; it needs no translation key. Markdown and source paths remain stored in document revisions, with collaborative working edits checkpointed into Markdown. Import a Markdown folder with the admin CLI; subsequent changes require another plan and apply, with `--overwrite` for different Markdown.
|
|
326
343
|
|
|
327
344
|
Use the auto-imported composable in website components:
|
|
328
345
|
|
|
329
346
|
```ts
|
|
330
|
-
const { t, locale } = useCmsI18n()
|
|
331
|
-
const navigation = computed(() => [{ label: t('navigation.home'), to:
|
|
347
|
+
const { t, locale, localePath, switchLocalePath } = useCmsI18n()
|
|
348
|
+
const navigation = computed(() => [{ label: t('navigation.home'), to: localePath('/') }])
|
|
349
|
+
const germanVersion = computed(() => switchLocalePath('de'))
|
|
332
350
|
t('footer.copyright', { year: 2026 })
|
|
333
|
-
useHead({ htmlAttrs: { lang: locale } })
|
|
334
351
|
```
|
|
335
352
|
|
|
336
|
-
`locale` is a read-only computed value derived from the current URL, including in Studio's website preview.
|
|
353
|
+
`locale` is a read-only computed value derived from the current URL, including in Studio's website preview. `localePath(path, code?)` builds a path using the configured locale prefix policy; the code defaults to the current locale. `switchLocalePath(code)` changes the current URL's prefix while preserving its query and fragment. For documents with different authored slugs, pass the destination's unprefixed path as the second argument: `switchLocalePath('de', '/ueber-uns')`. The CMS does not infer relationships between different slugs. The Nuxt module sets the document's HTML `lang` automatically. Lists can explicitly pass `locale.value` to `useDocumentQuery`.
|
|
337
354
|
|
|
338
355
|
Message keys receive generated TypeScript completion. Dictionaries contain nested plain strings; dots are reserved for key paths. Named `{parameters}` accept strings and numbers; missing parameters remain visible. Messages fall back from the URL locale to `fallbackLocale`, then to the key. Omit `fallbackLocale` (or set it to `null`) to disable fallback. The same explicit fallback policy applies to document lookup. Development warns about missing requested-locale messages. Render messages as text, and use native `Intl` for date and number formatting.
|
|
339
356
|
|
package/bin/cms.mjs
ADDED
package/package.json
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"author": "Phat (phtngyn)",
|
|
3
|
+
"bin": {
|
|
4
|
+
"cms": "./bin/cms.mjs"
|
|
5
|
+
},
|
|
3
6
|
"description": "A Nuxt CMS with an embedded Studio, collaborative editing, PostgreSQL, and S3-compatible media storage.",
|
|
4
7
|
"homepage": "https://github.com/phtngyn/cms",
|
|
5
8
|
"keywords": [
|
|
@@ -14,9 +17,10 @@
|
|
|
14
17
|
"directory": "packages/nuxt"
|
|
15
18
|
},
|
|
16
19
|
"name": "@phtngyn/cms",
|
|
17
|
-
"version": "0.1.0-beta.
|
|
20
|
+
"version": "0.1.0-beta.3",
|
|
18
21
|
"type": "module",
|
|
19
22
|
"files": [
|
|
23
|
+
"bin",
|
|
20
24
|
"studio",
|
|
21
25
|
"src",
|
|
22
26
|
"README.md",
|
|
@@ -39,10 +43,6 @@
|
|
|
39
43
|
"types": "./src/DocumentModel.d.ts",
|
|
40
44
|
"import": "./src/DocumentModel.js"
|
|
41
45
|
},
|
|
42
|
-
"./Seed": {
|
|
43
|
-
"types": "./src/Seed.d.ts",
|
|
44
|
-
"import": "./src/Seed.js"
|
|
45
|
-
},
|
|
46
46
|
"./I18n": {
|
|
47
47
|
"types": "./src/I18n.d.ts",
|
|
48
48
|
"import": "./src/I18n.js"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as FormCapabilities } from "./Forms-CfcI3tPU.js";
|
|
2
|
-
import { c as resolveCmsComarkAttributes, d as createCmsComarkRenderData, l as withCmsComarkProps, r as formStructureIssues, s as projectCmsEditorComponentAttributes } from "./Forms-
|
|
3
|
-
import {
|
|
2
|
+
import { c as resolveCmsComarkAttributes, d as createCmsComarkRenderData, l as withCmsComarkProps, r as formStructureIssues, s as projectCmsEditorComponentAttributes } from "./Forms-Dj6NuW66.js";
|
|
3
|
+
import { Ct as CollectionName, St as AddressPattern, Tt as SourceDirectory, b as MarkdownNode, n as CmsMarkdownDocument, wt as Locale } from "./models-Bah5B3bT.js";
|
|
4
4
|
import { a as createEditorNodeId, n as editorMetadata, o as editorNodeId } from "./metadata-BEZPWh-3.js";
|
|
5
5
|
import { Effect, Option, Predicate, Schema } from "effect";
|
|
6
6
|
import { Extension } from "@tiptap/core";
|
|
@@ -1030,4 +1030,4 @@ const MediaConfiguration = Schema.Struct({
|
|
|
1030
1030
|
|
|
1031
1031
|
//#endregion
|
|
1032
1032
|
export { finiteNumberAttribute as C, compactJsonAttributes as S, comarkTagForEditorMark as _, BlockAuthoring as a, encodeEditorImageAttributes as b, parseAuthoringContent as c, EditorRenderFailed as d, DOCUMENT_ENGINE_FINGERPRINT as f, EDITOR_MARK_TYPES as g, comarkToEditor as h, MediaConfiguration as i, validateCollectionBody as l, SOURCE_MAPPINGS_META_KEY as m, ComponentDefinition as n, createAuthoringDocumentValidator as o, createDocumentParser as p, DocumentConfiguration as r, createAuthoringSchema as s, AuthoringCatalog as t, EditorDocumentInvalid as u, isEditorMark as v, nonEmptyStringAttribute as w, normalizeEditorImageLayout as x, EDITOR_IMAGE_LAYOUT_ATTRIBUTE as y };
|
|
1033
|
-
//# sourceMappingURL=Configuration-
|
|
1033
|
+
//# sourceMappingURL=Configuration-CDMYfTre.js.map
|