@markuplint/ml-spec 2.0.1 → 3.0.0-alpha.82

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 (123) hide show
  1. package/lib/dom-traverse/accname-computation.d.ts +1 -0
  2. package/lib/dom-traverse/accname-computation.js +8 -0
  3. package/lib/dom-traverse/focusability-computation.d.ts +1 -0
  4. package/lib/dom-traverse/focusability-computation.js +8 -0
  5. package/lib/dom-traverse/get-aria.d.ts +9 -0
  6. package/lib/dom-traverse/get-aria.js +54 -0
  7. package/lib/dom-traverse/get-attr-specs.d.ts +2 -0
  8. package/lib/dom-traverse/get-attr-specs.js +8 -0
  9. package/lib/dom-traverse/get-computed-role.d.ts +2 -0
  10. package/lib/dom-traverse/get-computed-role.js +182 -0
  11. package/lib/dom-traverse/get-explicit-role.d.ts +2 -0
  12. package/lib/dom-traverse/get-explicit-role.js +102 -0
  13. package/lib/dom-traverse/get-implicit-role.d.ts +3 -0
  14. package/lib/dom-traverse/get-implicit-role.js +37 -0
  15. package/lib/dom-traverse/get-non-presentational-ancestor.d.ts +5 -0
  16. package/lib/dom-traverse/get-non-presentational-ancestor.js +21 -0
  17. package/lib/dom-traverse/get-permitted-roles.d.ts +5 -0
  18. package/lib/dom-traverse/get-permitted-roles.js +8 -0
  19. package/lib/dom-traverse/get-spec.d.ts +2 -0
  20. package/lib/dom-traverse/get-spec.js +8 -0
  21. package/lib/dom-traverse/has-required-owned-elements.d.ts +3 -0
  22. package/lib/dom-traverse/has-required-owned-elements.js +69 -0
  23. package/lib/index.d.ts +16 -6
  24. package/lib/index.js +17 -7
  25. package/lib/specs/aria-spec.d.ts +5 -0
  26. package/lib/specs/aria-spec.js +12 -0
  27. package/lib/specs/aria-specs.d.ts +6 -0
  28. package/lib/specs/aria-specs.js +8 -0
  29. package/lib/specs/content-model-category-to-tag-names.d.ts +3 -0
  30. package/lib/specs/content-model-category-to-tag-names.js +15 -0
  31. package/lib/specs/get-aria.d.ts +3 -0
  32. package/lib/specs/get-aria.js +71 -0
  33. package/lib/specs/get-attr-specs.d.ts +8 -0
  34. package/lib/{get-attr-specs.js → specs/get-attr-specs.js} +8 -6
  35. package/lib/specs/get-implicit-role.d.ts +2 -0
  36. package/lib/specs/get-implicit-role.js +12 -0
  37. package/lib/specs/get-permitted-roles.d.ts +12 -0
  38. package/lib/specs/get-permitted-roles.js +61 -0
  39. package/lib/specs/get-role-spec.d.ts +5 -0
  40. package/lib/specs/get-role-spec.js +52 -0
  41. package/lib/specs/get-selectors-by-content-model-category.d.ts +3 -0
  42. package/lib/specs/get-selectors-by-content-model-category.js +8 -0
  43. package/lib/specs/get-spec-by-tag-name.d.ts +2 -0
  44. package/lib/specs/get-spec-by-tag-name.js +16 -0
  45. package/lib/{get-spec.d.ts → specs/get-spec.d.ts} +4 -4
  46. package/lib/{get-spec.js → specs/get-spec.js} +1 -1
  47. package/lib/specs/html-spec.d.ts +6 -0
  48. package/lib/specs/html-spec.js +16 -0
  49. package/lib/specs/is-presentational.d.ts +1 -0
  50. package/lib/specs/is-presentational.js +10 -0
  51. package/lib/specs/resolve-namespace.d.ts +9 -0
  52. package/lib/specs/resolve-namespace.js +26 -0
  53. package/lib/specs/resolve-version.d.ts +3 -0
  54. package/lib/specs/resolve-version.js +21 -0
  55. package/lib/specs/schema-to-spec.d.ts +13 -0
  56. package/lib/specs/schema-to-spec.js +93 -0
  57. package/lib/types/aria.d.ts +130 -0
  58. package/lib/{attributes.js → types/aria.js} +0 -0
  59. package/lib/{attributes.d.ts → types/attributes.d.ts} +5 -12
  60. package/lib/{permitted-structres.js → types/attributes.js} +0 -0
  61. package/lib/{types.d.ts → types/index.d.ts} +50 -65
  62. package/lib/{types.js → types/index.js} +0 -0
  63. package/lib/{permitted-structres.d.ts → types/permitted-structres.d.ts} +14 -23
  64. package/lib/types/permitted-structres.js +8 -0
  65. package/lib/utils/get-ns.d.ts +1 -0
  66. package/lib/{get-ns.js → utils/get-ns.js} +0 -0
  67. package/lib/utils/merge-array.d.ts +5 -0
  68. package/lib/utils/merge-array.js +36 -0
  69. package/lib/utils/resolve-namespace.d.ts +9 -0
  70. package/lib/utils/resolve-namespace.js +26 -0
  71. package/lib/utils.d.ts +6 -3
  72. package/lib/utils.js +15 -1
  73. package/package.json +10 -6
  74. package/schemas/aria.schema.json +258 -0
  75. package/schemas/attributes.schema.json +5 -23
  76. package/schemas/{permitted-structures.schema.json → content-models.schema.json} +52 -81
  77. package/schemas/element.schema.json +11 -0
  78. package/schemas/global-attributes.schema.json +6 -2
  79. package/src/dom-traverse/accname-computation.spec.ts +69 -0
  80. package/src/dom-traverse/accname-computation.ts +5 -0
  81. package/src/dom-traverse/get-attr-specs.ts +8 -0
  82. package/src/dom-traverse/get-computed-role.spec.ts +134 -0
  83. package/src/dom-traverse/get-computed-role.ts +193 -0
  84. package/src/dom-traverse/get-explicit-role.ts +112 -0
  85. package/src/dom-traverse/get-implicit-role.ts +36 -0
  86. package/src/dom-traverse/get-non-presentational-ancestor.ts +20 -0
  87. package/src/dom-traverse/get-permitted-roles.ts +7 -0
  88. package/src/dom-traverse/get-spec.ts +7 -0
  89. package/src/dom-traverse/has-required-owned-elements.spec.ts +36 -0
  90. package/src/dom-traverse/has-required-owned-elements.ts +72 -0
  91. package/src/index.ts +16 -6
  92. package/src/specs/aria-specs.ts +6 -0
  93. package/src/specs/content-model-category-to-tag-names.ts +15 -0
  94. package/src/specs/get-aria.ts +85 -0
  95. package/src/{get-attr-specs.spec.ts → specs/get-attr-specs.spec.ts} +9 -6
  96. package/src/{get-attr-specs.ts → specs/get-attr-specs.ts} +12 -7
  97. package/src/specs/get-implicit-role.spec.ts +81 -0
  98. package/src/specs/get-implicit-role.ts +17 -0
  99. package/src/specs/get-permitted-roles.spec.ts +420 -0
  100. package/src/specs/get-permitted-roles.ts +87 -0
  101. package/src/specs/get-role-spec.spec.ts +67 -0
  102. package/src/specs/get-role-spec.ts +72 -0
  103. package/src/specs/get-selectors-by-content-model-category.ts +10 -0
  104. package/src/specs/get-spec-by-tag-name.spec.ts +68 -0
  105. package/src/specs/get-spec-by-tag-name.ts +16 -0
  106. package/src/specs/is-presentational.ts +6 -0
  107. package/src/specs/resolve-version.ts +20 -0
  108. package/src/{get-spec.spec.ts → specs/schema-to-spec.spec.ts} +2 -2
  109. package/src/{get-spec.ts → specs/schema-to-spec.ts} +22 -8
  110. package/src/types/aria.ts +147 -0
  111. package/src/{attributes.ts → types/attributes.ts} +5 -12
  112. package/src/{types.ts → types/index.ts} +70 -69
  113. package/src/{permitted-structres.ts → types/permitted-structres.ts} +15 -25
  114. package/src/{get-ns.ts → utils/get-ns.ts} +1 -1
  115. package/src/{utils.ts → utils/merge-array.ts} +0 -0
  116. package/src/utils/resolve-namespace.ts +36 -0
  117. package/tsconfig.tsbuildinfo +1 -1
  118. package/lib/get-attr-specs.d.ts +0 -7
  119. package/lib/get-ns.d.ts +0 -1
  120. package/lib/get-spec-by-tag-name.d.ts +0 -2
  121. package/lib/get-spec-by-tag-name.js +0 -31
  122. package/schemas/wai-aria.schema.json +0 -87
  123. package/src/get-spec-by-tag-name.ts +0 -32
@@ -1,7 +0,0 @@
1
- import type { MLMLSpec, Attribute } from './types';
2
- export declare function getAttrSpecs(nameWithNS: string, schema: MLMLSpec): Attribute[] | null;
3
- declare type HasName = {
4
- name: string;
5
- };
6
- export declare function nameCompare(a: HasName | string, b: HasName | string): 1 | -1 | 0;
7
- export {};
package/lib/get-ns.d.ts DELETED
@@ -1 +0,0 @@
1
- export declare function getNS(namespaceURI: string): "svg" | "mml" | "html";
@@ -1,2 +0,0 @@
1
- import type { MLDOMElementSpec, MLMLSpec } from './types';
2
- export declare function getSpecByTagName(nameWithNS: string, specs: MLMLSpec): MLDOMElementSpec | null;
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSpecByTagName = void 0;
4
- const get_attr_specs_1 = require("./get-attr-specs");
5
- const cacheMap = new WeakMap();
6
- function getSpecOM(spec) {
7
- const cache = cacheMap.get(spec);
8
- if (cache) {
9
- return cache;
10
- }
11
- const som = {};
12
- for (const el of spec.specs) {
13
- const attributes = (0, get_attr_specs_1.getAttrSpecs)(el.name, spec);
14
- som[el.name] = {
15
- experimental: !!el.experimental,
16
- obsolete: typeof el.obsolete === 'boolean' ? !!el.obsolete : el.obsolete ? el.obsolete.alt : false,
17
- deprecated: !!el.deprecated,
18
- nonStandard: !!el.nonStandard,
19
- categories: el.categories,
20
- permittedStructures: el.permittedStructures,
21
- attributes: Object.values(attributes || {}),
22
- };
23
- }
24
- cacheMap.set(spec, som);
25
- return som;
26
- }
27
- function getSpecByTagName(nameWithNS, specs) {
28
- const specOM = getSpecOM(specs);
29
- return specOM[nameWithNS] || null;
30
- }
31
- exports.getSpecByTagName = getSpecByTagName;
@@ -1,87 +0,0 @@
1
- {
2
- "definitions": {
3
- "permittedRoles": {
4
- "description": "If `true`, this mean is \"Any\". If `false`, this mean is \"No\".",
5
- "oneOf": [
6
- {
7
- "type": "boolean"
8
- },
9
- {
10
- "type": "array",
11
- "items": {
12
- "type": "string"
13
- }
14
- }
15
- ]
16
- },
17
- "implicitRole": {
18
- "description": "If `false`, this mean is \"No corresponding role\".",
19
- "oneOf": [
20
- {
21
- "type": "boolean",
22
- "enum": [false]
23
- },
24
- {
25
- "type": "string"
26
- }
27
- ]
28
- }
29
- },
30
- "type": "object",
31
- "required": ["permittedRoles", "implicitRole"],
32
- "additionalProperties": false,
33
- "properties": {
34
- "permittedRoles": {
35
- "type": "object",
36
- "required": ["roles"],
37
- "additionalProperties": false,
38
- "properties": {
39
- "roles": {
40
- "$ref": "#/definitions/permittedRoles"
41
- },
42
- "conditions": {
43
- "type": "array",
44
- "items": {
45
- "type": "object",
46
- "required": ["condition", "roles"],
47
- "additionalProperties": false,
48
- "properties": {
49
- "condition": {
50
- "type": "string"
51
- },
52
- "roles": {
53
- "$ref": "#/definitions/permittedRoles"
54
- }
55
- }
56
- }
57
- }
58
- }
59
- },
60
- "implicitRole": {
61
- "type": "object",
62
- "required": ["role"],
63
- "additionalProperties": false,
64
- "properties": {
65
- "role": {
66
- "$ref": "#/definitions/implicitRole"
67
- },
68
- "conditions": {
69
- "type": "array",
70
- "items": {
71
- "type": "object",
72
- "required": ["condition", "role"],
73
- "additionalProperties": false,
74
- "properties": {
75
- "condition": {
76
- "type": "string"
77
- },
78
- "role": {
79
- "$ref": "#/definitions/implicitRole"
80
- }
81
- }
82
- }
83
- }
84
- }
85
- }
86
- }
87
- }
@@ -1,32 +0,0 @@
1
- import type { MLDOMElementSpec, MLMLSpec, SpecOM } from './types';
2
-
3
- import { getAttrSpecs } from './get-attr-specs';
4
-
5
- const cacheMap = new WeakMap<MLMLSpec, SpecOM>();
6
-
7
- function getSpecOM(spec: MLMLSpec): SpecOM {
8
- const cache = cacheMap.get(spec);
9
- if (cache) {
10
- return cache;
11
- }
12
- const som: SpecOM = {};
13
- for (const el of spec.specs) {
14
- const attributes = getAttrSpecs(el.name, spec);
15
- som[el.name] = {
16
- experimental: !!el.experimental,
17
- obsolete: typeof el.obsolete === 'boolean' ? !!el.obsolete : el.obsolete ? el.obsolete.alt : false,
18
- deprecated: !!el.deprecated,
19
- nonStandard: !!el.nonStandard,
20
- categories: el.categories,
21
- permittedStructures: el.permittedStructures,
22
- attributes: Object.values(attributes || {}),
23
- };
24
- }
25
- cacheMap.set(spec, som);
26
- return som;
27
- }
28
-
29
- export function getSpecByTagName(nameWithNS: string, specs: MLMLSpec): MLDOMElementSpec | null {
30
- const specOM = getSpecOM(specs);
31
- return specOM[nameWithNS] || null;
32
- }