pro-editor-schema 0.0.1-alpha.6 → 0.0.1-alpha.8

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,
@@ -458,7 +459,10 @@ var SCHEMAS = [
458
459
  ...INLINE_ELEMENT_SCHEMAS
459
460
  ];
460
461
  var SCHEMA_MAP = new Map(
461
- SCHEMAS.map((schema) => [schema.tag + schema.role, schema])
462
+ SCHEMAS.map((schema) => [
463
+ schema.tag.toUpperCase() + (schema.role?.toUpperCase() ?? ""),
464
+ schema
465
+ ])
462
466
  );
463
467
 
464
468
  // src/schema/shared/ignoredElements.ts
@@ -521,6 +525,21 @@ var findAttributeDefinitionByName = (definitions, name) => {
521
525
  }
522
526
  return void 0;
523
527
  };
528
+
529
+ // src/schema/shared/createElement.ts
530
+ var createElement = ({
531
+ schema,
532
+ attributes
533
+ }) => {
534
+ const element = document.createElement(schema.tag.toLowerCase());
535
+ for (const [name, value] of Object.entries(attributes)) {
536
+ if (value === void 0) {
537
+ continue;
538
+ }
539
+ element.setAttribute(name, String(value));
540
+ }
541
+ return element;
542
+ };
524
543
  // Annotate the CommonJS export names for ESM import in node:
525
544
  0 && (module.exports = {
526
545
  ATOM_SCHEMAS,
@@ -541,6 +560,7 @@ var findAttributeDefinitionByName = (definitions, name) => {
541
560
  TRACK_CHANGES_ATTR_DATA_TIME,
542
561
  TRACK_CHANGES_ATTR_DATA_USERID,
543
562
  TRACK_CHANGES_ATTR_DATA_USERNAME,
563
+ createElement,
544
564
  findAttributeDefinitionByName,
545
565
  findSchemaByTag,
546
566
  getAttributeName,
package/dist/index.mjs CHANGED
@@ -409,7 +409,10 @@ var SCHEMAS = [
409
409
  ...INLINE_ELEMENT_SCHEMAS
410
410
  ];
411
411
  var SCHEMA_MAP = new Map(
412
- SCHEMAS.map((schema) => [schema.tag + schema.role, schema])
412
+ SCHEMAS.map((schema) => [
413
+ schema.tag.toUpperCase() + (schema.role?.toUpperCase() ?? ""),
414
+ schema
415
+ ])
413
416
  );
414
417
 
415
418
  // src/schema/shared/ignoredElements.ts
@@ -472,6 +475,21 @@ var findAttributeDefinitionByName = (definitions, name) => {
472
475
  }
473
476
  return void 0;
474
477
  };
478
+
479
+ // src/schema/shared/createElement.ts
480
+ var createElement = ({
481
+ schema,
482
+ attributes
483
+ }) => {
484
+ const element = document.createElement(schema.tag.toLowerCase());
485
+ for (const [name, value] of Object.entries(attributes)) {
486
+ if (value === void 0) {
487
+ continue;
488
+ }
489
+ element.setAttribute(name, String(value));
490
+ }
491
+ return element;
492
+ };
475
493
  export {
476
494
  ATOM_SCHEMAS,
477
495
  ELEMENT_ROLE,
@@ -491,6 +509,7 @@ export {
491
509
  TRACK_CHANGES_ATTR_DATA_TIME,
492
510
  TRACK_CHANGES_ATTR_DATA_USERID,
493
511
  TRACK_CHANGES_ATTR_DATA_USERNAME,
512
+ createElement,
494
513
  findAttributeDefinitionByName,
495
514
  findSchemaByTag,
496
515
  getAttributeName,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pro-editor-schema",
3
- "version": "0.0.1-alpha.6",
3
+ "version": "0.0.1-alpha.8",
4
4
  "description": "Pro Editor XML schemas",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",