pro-editor-schema 0.0.1-alpha.5 → 0.0.1-alpha.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.
package/dist/index.d.mts CHANGED
@@ -42,6 +42,18 @@ declare const TRACK_CHANGES_ATTR_DATA_DATE = "data-date";
42
42
  declare const TRACK_CHANGES_ATTRS: readonly ["data-username", "data-userid", "data-time", "data-date"];
43
43
  declare const ID_ATTRS: readonly ["store", "ele-id"];
44
44
 
45
+ type AttributeValue<TAttribute extends AttributeDefinition> = TAttribute extends string ? string : TAttribute extends RestrictedAttribute<infer TValues> ? TValues extends readonly string[] ? TValues[number] : string : never;
46
+ type SchemaAttributes<TSchema extends Schema> = TSchema extends Schema<infer TRequired extends readonly AttributeDefinition[], infer TOptional extends readonly AttributeDefinition[]> ? {
47
+ [TAttribute in TRequired[number] as TAttribute extends string ? TAttribute : TAttribute extends RestrictedAttribute ? TAttribute["name"] : never]: AttributeValue<TAttribute>;
48
+ } & {
49
+ [TAttribute in TOptional[number] as TAttribute extends string ? TAttribute : TAttribute extends RestrictedAttribute ? TAttribute["name"] : never]?: AttributeValue<TAttribute>;
50
+ } : never;
51
+ type CreateElementParams<TSchema extends Schema> = {
52
+ schema: TSchema;
53
+ attributes: SchemaAttributes<TSchema>;
54
+ };
55
+ declare const createElement: <TSchema extends Schema>({ schema, attributes, }: CreateElementParams<TSchema>) => HTMLElement;
56
+
45
57
  declare const ELEMENT_SCHEMAS: ReadonlyArray<Schema>;
46
58
 
47
59
  declare const PARA_SCHEMA: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date"]>;
@@ -64,4 +76,4 @@ declare const INLINE_ELEMENT_SCHEMAS: ReadonlyArray<Schema>;
64
76
 
65
77
  declare const ATOM_SCHEMAS: ReadonlyArray<Schema>;
66
78
 
67
- export { ATOM_SCHEMAS, type AttributeDefinition, ELEMENT_ROLE, ELEMENT_SCHEMAS, type FreeAttribute, GROUP_ELEMENT_SCHEMAS, ID_ATTRS, IGNORED_ATTRIBUTES, IGNORED_ELEMENT_SELECTORS, INLINE_ELEMENT_SCHEMAS, PARA_SCHEMA, type RestrictedAttribute, SCHEMAS, SCHEMA_MAP, SECTION_SCHEMA, type Schema, type SchemaKind, TITLE_SCHEMA, TRACK_CHANGES_ATTRS, TRACK_CHANGES_ATTR_DATA_DATE, TRACK_CHANGES_ATTR_DATA_TIME, TRACK_CHANGES_ATTR_DATA_USERID, TRACK_CHANGES_ATTR_DATA_USERNAME, findAttributeDefinitionByName, findSchemaByTag, getAttributeName, isAttributeRestricted, isIgnoredAttribute, isIgnoredElement };
79
+ export { ATOM_SCHEMAS, type AttributeDefinition, ELEMENT_ROLE, ELEMENT_SCHEMAS, type FreeAttribute, GROUP_ELEMENT_SCHEMAS, ID_ATTRS, IGNORED_ATTRIBUTES, IGNORED_ELEMENT_SELECTORS, INLINE_ELEMENT_SCHEMAS, PARA_SCHEMA, type RestrictedAttribute, SCHEMAS, SCHEMA_MAP, SECTION_SCHEMA, type Schema, type SchemaKind, TITLE_SCHEMA, TRACK_CHANGES_ATTRS, TRACK_CHANGES_ATTR_DATA_DATE, TRACK_CHANGES_ATTR_DATA_TIME, TRACK_CHANGES_ATTR_DATA_USERID, TRACK_CHANGES_ATTR_DATA_USERNAME, createElement, findAttributeDefinitionByName, findSchemaByTag, getAttributeName, isAttributeRestricted, isIgnoredAttribute, isIgnoredElement };
package/dist/index.d.ts CHANGED
@@ -42,6 +42,18 @@ declare const TRACK_CHANGES_ATTR_DATA_DATE = "data-date";
42
42
  declare const TRACK_CHANGES_ATTRS: readonly ["data-username", "data-userid", "data-time", "data-date"];
43
43
  declare const ID_ATTRS: readonly ["store", "ele-id"];
44
44
 
45
+ type AttributeValue<TAttribute extends AttributeDefinition> = TAttribute extends string ? string : TAttribute extends RestrictedAttribute<infer TValues> ? TValues extends readonly string[] ? TValues[number] : string : never;
46
+ type SchemaAttributes<TSchema extends Schema> = TSchema extends Schema<infer TRequired extends readonly AttributeDefinition[], infer TOptional extends readonly AttributeDefinition[]> ? {
47
+ [TAttribute in TRequired[number] as TAttribute extends string ? TAttribute : TAttribute extends RestrictedAttribute ? TAttribute["name"] : never]: AttributeValue<TAttribute>;
48
+ } & {
49
+ [TAttribute in TOptional[number] as TAttribute extends string ? TAttribute : TAttribute extends RestrictedAttribute ? TAttribute["name"] : never]?: AttributeValue<TAttribute>;
50
+ } : never;
51
+ type CreateElementParams<TSchema extends Schema> = {
52
+ schema: TSchema;
53
+ attributes: SchemaAttributes<TSchema>;
54
+ };
55
+ declare const createElement: <TSchema extends Schema>({ schema, attributes, }: CreateElementParams<TSchema>) => HTMLElement;
56
+
45
57
  declare const ELEMENT_SCHEMAS: ReadonlyArray<Schema>;
46
58
 
47
59
  declare const PARA_SCHEMA: Schema<readonly ["store", "ele-id"], readonly ["data-username", "data-userid", "data-time", "data-date"]>;
@@ -64,4 +76,4 @@ declare const INLINE_ELEMENT_SCHEMAS: ReadonlyArray<Schema>;
64
76
 
65
77
  declare const ATOM_SCHEMAS: ReadonlyArray<Schema>;
66
78
 
67
- export { ATOM_SCHEMAS, type AttributeDefinition, ELEMENT_ROLE, ELEMENT_SCHEMAS, type FreeAttribute, GROUP_ELEMENT_SCHEMAS, ID_ATTRS, IGNORED_ATTRIBUTES, IGNORED_ELEMENT_SELECTORS, INLINE_ELEMENT_SCHEMAS, PARA_SCHEMA, type RestrictedAttribute, SCHEMAS, SCHEMA_MAP, SECTION_SCHEMA, type Schema, type SchemaKind, TITLE_SCHEMA, TRACK_CHANGES_ATTRS, TRACK_CHANGES_ATTR_DATA_DATE, TRACK_CHANGES_ATTR_DATA_TIME, TRACK_CHANGES_ATTR_DATA_USERID, TRACK_CHANGES_ATTR_DATA_USERNAME, findAttributeDefinitionByName, findSchemaByTag, getAttributeName, isAttributeRestricted, isIgnoredAttribute, isIgnoredElement };
79
+ export { ATOM_SCHEMAS, type AttributeDefinition, ELEMENT_ROLE, ELEMENT_SCHEMAS, type FreeAttribute, GROUP_ELEMENT_SCHEMAS, ID_ATTRS, IGNORED_ATTRIBUTES, IGNORED_ELEMENT_SELECTORS, INLINE_ELEMENT_SCHEMAS, PARA_SCHEMA, type RestrictedAttribute, SCHEMAS, SCHEMA_MAP, SECTION_SCHEMA, type Schema, type SchemaKind, TITLE_SCHEMA, TRACK_CHANGES_ATTRS, TRACK_CHANGES_ATTR_DATA_DATE, TRACK_CHANGES_ATTR_DATA_TIME, TRACK_CHANGES_ATTR_DATA_USERID, TRACK_CHANGES_ATTR_DATA_USERNAME, createElement, findAttributeDefinitionByName, findSchemaByTag, getAttributeName, isAttributeRestricted, isIgnoredAttribute, isIgnoredElement };
package/dist/index.js CHANGED
@@ -38,6 +38,7 @@ __export(index_exports, {
38
38
  TRACK_CHANGES_ATTR_DATA_TIME: () => TRACK_CHANGES_ATTR_DATA_TIME,
39
39
  TRACK_CHANGES_ATTR_DATA_USERID: () => TRACK_CHANGES_ATTR_DATA_USERID,
40
40
  TRACK_CHANGES_ATTR_DATA_USERNAME: () => TRACK_CHANGES_ATTR_DATA_USERNAME,
41
+ createElement: () => createElement,
41
42
  findAttributeDefinitionByName: () => findAttributeDefinitionByName,
42
43
  findSchemaByTag: () => findSchemaByTag,
43
44
  getAttributeName: () => getAttributeName,
@@ -521,6 +522,21 @@ var findAttributeDefinitionByName = (definitions, name) => {
521
522
  }
522
523
  return void 0;
523
524
  };
525
+
526
+ // src/schema/shared/createElement.ts
527
+ var createElement = ({
528
+ schema,
529
+ attributes
530
+ }) => {
531
+ const element = document.createElement(schema.tag.toLowerCase());
532
+ for (const [name, value] of Object.entries(attributes)) {
533
+ if (value === void 0) {
534
+ continue;
535
+ }
536
+ element.setAttribute(name, String(value));
537
+ }
538
+ return element;
539
+ };
524
540
  // Annotate the CommonJS export names for ESM import in node:
525
541
  0 && (module.exports = {
526
542
  ATOM_SCHEMAS,
@@ -541,6 +557,7 @@ var findAttributeDefinitionByName = (definitions, name) => {
541
557
  TRACK_CHANGES_ATTR_DATA_TIME,
542
558
  TRACK_CHANGES_ATTR_DATA_USERID,
543
559
  TRACK_CHANGES_ATTR_DATA_USERNAME,
560
+ createElement,
544
561
  findAttributeDefinitionByName,
545
562
  findSchemaByTag,
546
563
  getAttributeName,
package/dist/index.mjs CHANGED
@@ -472,6 +472,21 @@ var findAttributeDefinitionByName = (definitions, name) => {
472
472
  }
473
473
  return void 0;
474
474
  };
475
+
476
+ // src/schema/shared/createElement.ts
477
+ var createElement = ({
478
+ schema,
479
+ attributes
480
+ }) => {
481
+ const element = document.createElement(schema.tag.toLowerCase());
482
+ for (const [name, value] of Object.entries(attributes)) {
483
+ if (value === void 0) {
484
+ continue;
485
+ }
486
+ element.setAttribute(name, String(value));
487
+ }
488
+ return element;
489
+ };
475
490
  export {
476
491
  ATOM_SCHEMAS,
477
492
  ELEMENT_ROLE,
@@ -491,6 +506,7 @@ export {
491
506
  TRACK_CHANGES_ATTR_DATA_TIME,
492
507
  TRACK_CHANGES_ATTR_DATA_USERID,
493
508
  TRACK_CHANGES_ATTR_DATA_USERNAME,
509
+ createElement,
494
510
  findAttributeDefinitionByName,
495
511
  findSchemaByTag,
496
512
  getAttributeName,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pro-editor-schema",
3
- "version": "0.0.1-alpha.5",
3
+ "version": "0.0.1-alpha.7",
4
4
  "description": "Pro Editor XML schemas",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",