@mindfiredigital/ignix-lite-mcp 1.2.0 → 1.3.0

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 (90) hide show
  1. package/README.md +108 -0
  2. package/dist/server.js +187 -1954
  3. package/dist/server.js.map +1 -1
  4. package/dist/utils/check-api.js +2 -0
  5. package/dist/utils/check-api.js.map +1 -1
  6. package/package.json +14 -6
  7. package/.turbo/turbo-build.log +0 -25
  8. package/CHANGELOG.md +0 -7
  9. package/dist/manifests/accordion.json +0 -61
  10. package/dist/manifests/alert.json +0 -69
  11. package/dist/manifests/avatar.json +0 -75
  12. package/dist/manifests/badge.json +0 -74
  13. package/dist/manifests/breadcrumb.json +0 -87
  14. package/dist/manifests/button.json +0 -85
  15. package/dist/manifests/card.json +0 -91
  16. package/dist/manifests/checkbox.json +0 -122
  17. package/dist/manifests/codeblock.json +0 -63
  18. package/dist/manifests/combobox.json +0 -33
  19. package/dist/manifests/dialog.json +0 -64
  20. package/dist/manifests/divider.json +0 -47
  21. package/dist/manifests/dropdown.json +0 -105
  22. package/dist/manifests/form.json +0 -81
  23. package/dist/manifests/grid.json +0 -143
  24. package/dist/manifests/input.json +0 -99
  25. package/dist/manifests/meter.json +0 -103
  26. package/dist/manifests/navigation.json +0 -70
  27. package/dist/manifests/progress.json +0 -88
  28. package/dist/manifests/radio.json +0 -121
  29. package/dist/manifests/select.json +0 -109
  30. package/dist/manifests/skeleton.json +0 -101
  31. package/dist/manifests/tab.json +0 -88
  32. package/dist/manifests/table.json +0 -92
  33. package/dist/manifests/textarea.json +0 -117
  34. package/dist/manifests/toast.json +0 -157
  35. package/dist/manifests/tooltip.json +0 -115
  36. package/dist/vector-index.json +0 -14015
  37. package/src/context/api-context.ts +0 -14
  38. package/src/global.d.ts +0 -15
  39. package/src/manifests/accordion.json +0 -61
  40. package/src/manifests/alert.json +0 -69
  41. package/src/manifests/avatar.json +0 -75
  42. package/src/manifests/badge.json +0 -74
  43. package/src/manifests/breadcrumb.json +0 -87
  44. package/src/manifests/button.json +0 -85
  45. package/src/manifests/card.json +0 -91
  46. package/src/manifests/checkbox.json +0 -122
  47. package/src/manifests/codeblock.json +0 -63
  48. package/src/manifests/combobox.json +0 -33
  49. package/src/manifests/dialog.json +0 -64
  50. package/src/manifests/divider.json +0 -47
  51. package/src/manifests/dropdown.json +0 -105
  52. package/src/manifests/form.json +0 -81
  53. package/src/manifests/grid.json +0 -143
  54. package/src/manifests/index.ts +0 -45
  55. package/src/manifests/input.json +0 -99
  56. package/src/manifests/meter.json +0 -103
  57. package/src/manifests/navigation.json +0 -70
  58. package/src/manifests/progress.json +0 -88
  59. package/src/manifests/radio.json +0 -121
  60. package/src/manifests/select.json +0 -109
  61. package/src/manifests/skeleton.json +0 -101
  62. package/src/manifests/tab.json +0 -88
  63. package/src/manifests/table.json +0 -92
  64. package/src/manifests/textarea.json +0 -117
  65. package/src/manifests/toast.json +0 -157
  66. package/src/manifests/tooltip.json +0 -115
  67. package/src/server.ts +0 -201
  68. package/src/tools/build-index.ts +0 -55
  69. package/src/tools/check-a11y.ts +0 -106
  70. package/src/tools/embedder.ts +0 -18
  71. package/src/tools/generate-theme.ts +0 -42
  72. package/src/tools/get-emmet.ts +0 -64
  73. package/src/tools/get-manifests.ts +0 -55
  74. package/src/tools/intent-engine.ts +0 -197
  75. package/src/tools/list-components.ts +0 -20
  76. package/src/tools/search-index.ts +0 -66
  77. package/src/tools/theme-palette.ts +0 -65
  78. package/src/tools/theme-tokens.ts +0 -176
  79. package/src/tools/validator.ts +0 -367
  80. package/src/types.ts +0 -63
  81. package/src/utils/a11y-rules.ts +0 -873
  82. package/src/utils/a11y-types.ts +0 -15
  83. package/src/utils/check-api.ts +0 -13
  84. package/src/utils/cosine.ts +0 -15
  85. package/src/utils/emmet-helpers.ts +0 -171
  86. package/src/utils/intent-helpers.ts +0 -66
  87. package/src/utils/intent-parser.ts +0 -186
  88. package/src/utils/tokenizer.ts +0 -7
  89. package/tsconfig.json +0 -14
  90. package/tsup.config.ts +0 -13
@@ -1,75 +0,0 @@
1
- {
2
- "component": "avatar",
3
- "version": "2.0",
4
-
5
- "description": "Displays user profile visuals using native img element with text fallback support through span. Supports multiple sizes and loading skeletons.",
6
-
7
- "element": "img | span",
8
-
9
- "emmet": "img[src=? alt=? data-size=?]",
10
-
11
-
12
- "props": {
13
- "data-size": {
14
- "type": "enum",
15
- "values": ["sm", "md", "lg"],
16
- "default": "md",
17
- "native": false,
18
- "agent_hint": "Use sm for compact lists, md for profile previews, lg for detailed cards."
19
- },
20
-
21
- "src": {
22
- "type": "string",
23
- "native": true,
24
- "agent_hint": "Image URL for avatar image."
25
- },
26
-
27
- "alt": {
28
- "type": "string",
29
- "native": true,
30
- "agent_hint": "Always provide descriptive alt text for accessibility."
31
- }
32
- },
33
-
34
- "states": ["loading"],
35
-
36
- "forbidden_props": ["size", "variant", "shape", "rounded", "class"],
37
-
38
- "required_props": [],
39
-
40
- "required_slots": [],
41
-
42
- "fallback_element": "span",
43
-
44
- "do": [
45
- "Use img for avatar images",
46
- "Use span fallback for initials",
47
- "Always provide alt text on images"
48
- ],
49
-
50
- "dont": [
51
- "Do not use class attribute",
52
- "Do not use size prop instead of data-size",
53
- "Do not omit alt attribute on img"
54
- ],
55
-
56
- "examples": [
57
- {
58
- "label": "Small avatar",
59
- "emmet": "img[src=? alt=User data-size=sm]",
60
- "html": "<img src=\"https://picsum.photos/100\" alt=\"User\" data-size=\"sm\">"
61
- },
62
-
63
- {
64
- "label": "Medium avatar",
65
- "emmet": "img[src=? alt=Sarah data-size=md]",
66
- "html": "<img src=\"https://picsum.photos/100\" alt=\"Sarah\" data-size=\"md\">"
67
- },
68
-
69
- {
70
- "label": "Fallback initials",
71
- "emmet": "span[data-size=md]{JD}",
72
- "html": "<span data-size=\"md\">JD</span>"
73
- }
74
- ]
75
- }
@@ -1,74 +0,0 @@
1
- {
2
- "component": "badge",
3
- "version": "2.0",
4
- "description": "Status indicator using mark or span[role=status] with intent styling.",
5
-
6
- "element": "badge",
7
-
8
- "emmet": "mark[data-intent=?]{Label}",
9
- "tokens": 3,
10
-
11
- "props": {
12
- "data-intent": {
13
- "type": "enum",
14
- "values": ["success", "danger", "warning", "neutral"],
15
- "default": "neutral",
16
- "native": false,
17
- "agent_hint": "Controls badge color"
18
- },
19
-
20
- "role": {
21
- "type": "enum",
22
- "values": ["status"],
23
- "native": true,
24
- "agent_hint": "Required when using span"
25
- }
26
- },
27
-
28
- "allowed_elements": ["mark", "span"],
29
-
30
- "required_conditions": ["span must have role=status"],
31
-
32
- "states": [],
33
-
34
- "required_props": [],
35
-
36
- "forbidden_props": ["class", "variant", "color", "style", "onclick"],
37
-
38
- "do": [
39
- "Use mark for standard badges",
40
- "Use span with role=status for accessibility cases",
41
- "Use data-intent to convey meaning",
42
- "Keep text short"
43
- ],
44
-
45
- "dont": [
46
- "Do not use class attribute",
47
- "Do not use variant or color props",
48
- "Do not attach JS handlers",
49
- "Do not use span without role=status"
50
- ],
51
-
52
- "examples": [
53
- {
54
- "label": "Basic badge",
55
- "emmet": "mark[data-intent=neutral]{Active}",
56
- "html": "<mark data-intent=\"neutral\">Active</mark>"
57
- },
58
- {
59
- "label": "Success badge",
60
- "emmet": "mark[data-intent=success]{Active}",
61
- "html": "<mark data-intent=\"success\">Active</mark>"
62
- },
63
- {
64
- "label": "Danger badge",
65
- "emmet": "mark[data-intent=danger]{Error}",
66
- "html": "<mark data-intent=\"danger\">Error</mark>"
67
- },
68
- {
69
- "label": "Status badge",
70
- "emmet": "span[role=status data-intent=success]{Active}",
71
- "html": "<span role=\"status\" data-intent=\"success\">Active</span>"
72
- }
73
- ]
74
- }
@@ -1,87 +0,0 @@
1
- {
2
- "component": "breadcrumb",
3
- "version": "2.0",
4
- "description": "Displays hierarchical navigation path using native nav > ol > li > a structure.",
5
-
6
- "element": "nav",
7
-
8
- "emmet": "nav[aria-label=Breadcrumb]>ol>(li>a[href=?])*3",
9
-
10
- "props": {
11
- "data-style": {
12
- "type": "enum",
13
-
14
- "values": ["chevron", "slash", "guillemet", "arrow", "thread", "pipe"],
15
-
16
- "default": "chevron",
17
- "native": false,
18
- "agent_hint": "Controls breadcrumb separator style."
19
- },
20
-
21
- "data-intent": {
22
- "type": "enum",
23
-
24
- "values": ["primary", "success", "warning", "danger", "gradient"],
25
-
26
- "default": "primary",
27
- "native": false,
28
- "agent_hint": "Controls active breadcrumb color intent."
29
- },
30
-
31
- "aria-label": {
32
- "type": "string",
33
- "native": true,
34
- "required": true,
35
- "agent_hint": "Use aria-label='Breadcrumb' for accessibility."
36
- }
37
- },
38
-
39
- "states": [],
40
- "slots": {},
41
-
42
- "forbidden_props": [
43
- "variant",
44
- "color",
45
- "appearance",
46
- "separator",
47
- "items",
48
- "activeItem",
49
- "class"
50
- ],
51
-
52
- "required_props": ["aria-label"],
53
-
54
- "required_slots": [],
55
-
56
- "do": [
57
- "Use nav as breadcrumb container",
58
- "Use ordered list structure",
59
- "Mark current page using aria-current='page'"
60
- ],
61
-
62
- "dont": [
63
- "Do not use class attribute",
64
- "Do not replace nav with div",
65
- "Do not pass breadcrumb items as props"
66
- ],
67
-
68
- "examples": [
69
- {
70
- "label": "Default breadcrumb",
71
- "emmet": "nav[aria-label=Breadcrumb]>ol>(li>a[href=?])*3",
72
- "html": "<nav aria-label=\"Breadcrumb\"><ol><li><a href=\"#\">Home</a></li><li><a href=\"#\">Docs</a></li><li><a aria-current=\"page\">Breadcrumb</a></li></ol></nav>"
73
- },
74
-
75
- {
76
- "label": "Slash style",
77
- "emmet": "nav[aria-label=Breadcrumb data-style=slash]>ol>(li>a[href=?])*3",
78
- "html": "<nav aria-label=\"Breadcrumb\" data-style=\"slash\"></nav>"
79
- },
80
-
81
- {
82
- "label": "Danger intent",
83
- "emmet": "nav[aria-label=Breadcrumb data-intent=danger]>ol>(li>a[href=?])*3",
84
- "html": "<nav aria-label=\"Breadcrumb\" data-intent=\"danger\"></nav>"
85
- }
86
- ]
87
- }
@@ -1,85 +0,0 @@
1
- {
2
- "component": "button",
3
- "version": "2.0",
4
- "description": "Triggers an action. Renders as native <button>.",
5
-
6
- "element": "button",
7
-
8
- "emmet": "button[data-intent=?]{label}",
9
-
10
-
11
- "props": {
12
- "data-intent": {
13
- "type": "enum",
14
- "values": ["primary", "danger", "warning", "success", "neutral", "ghost"],
15
- "default": "primary",
16
- "native": false,
17
- "agent_hint": "Use danger for destructive actions. Use ghost for secondary actions."
18
- },
19
-
20
- "disabled": {
21
- "type": "boolean",
22
- "native": true,
23
- "agent_hint": "Use native disabled attribute"
24
- },
25
-
26
- "aria-busy": {
27
- "type": "boolean",
28
- "native": true,
29
- "agent_hint": "Use for loading state"
30
- },
31
-
32
- "type": {
33
- "type": "enum",
34
- "values": ["button", "submit", "reset"],
35
- "default": "button",
36
- "native": true
37
- }
38
- },
39
-
40
- "states": ["disabled", "aria-busy"],
41
-
42
- "forbidden_props": [
43
- "variant",
44
- "color",
45
- "appearance",
46
- "colorScheme",
47
- "isLoading",
48
- "isDisabled",
49
- "size",
50
- "class"
51
- ],
52
-
53
- "required_props": [],
54
- "required_slots": [],
55
-
56
- "do": [
57
- "Use data-intent='danger' for destructive actions",
58
- "Use aria-busy='true' for loading state",
59
- "Use type='submit' inside forms"
60
- ],
61
-
62
- "dont": [
63
- "Do not use class attribute",
64
- "Do not use variant or color props",
65
- "Do not use isLoading or isDisabled"
66
- ],
67
-
68
- "examples": [
69
- {
70
- "label": "Primary button",
71
- "emmet": "button[data-intent=primary]{Save}",
72
- "html": "<button data-intent=\"primary\">Save</button>"
73
- },
74
- {
75
- "label": "Danger button",
76
- "emmet": "button[data-intent=danger]{Delete}",
77
- "html": "<button data-intent=\"danger\">Delete</button>"
78
- },
79
- {
80
- "label": "Loading button",
81
- "emmet": "button[aria-busy=true]{Saving...}",
82
- "html": "<button aria-busy=\"true\">Saving...</button>"
83
- }
84
- ]
85
- }
@@ -1,91 +0,0 @@
1
- {
2
- "component": "card",
3
- "version": "2.0",
4
- "description": "Displays structured content using semantic slots for avatar, title, metadata, body, actions, and footer. Renders as native article element.",
5
-
6
- "element": "article",
7
-
8
- "emmet": "article>(img[slot=avatar])+(span[slot=title])+(p[slot=body])",
9
-
10
-
11
- "props": {},
12
-
13
- "states": [],
14
-
15
- "slots": {
16
- "avatar": {
17
- "required": false,
18
-
19
- "element": ["img", "span"],
20
-
21
- "agent_hint": "Avatar image or visual content."
22
- },
23
-
24
- "title": {
25
- "required": true,
26
-
27
- "element": ["span", "h1", "h2", "h3"],
28
-
29
- "agent_hint": "Primary card heading."
30
- },
31
-
32
- "meta": {
33
- "required": false,
34
-
35
- "element": ["span", "small"],
36
-
37
- "agent_hint": "Subtitle or metadata."
38
- },
39
-
40
- "body": {
41
- "required": true,
42
-
43
- "element": ["p"],
44
-
45
- "agent_hint": "Main content area."
46
- },
47
-
48
- "action": {
49
- "required": false,
50
-
51
- "element": ["button", "a"],
52
-
53
- "agent_hint": "Primary action area."
54
- },
55
-
56
- "footer": {
57
- "required": false,
58
-
59
- "element": ["span", "small"],
60
-
61
- "agent_hint": "Footer metadata."
62
- }
63
- },
64
-
65
- "forbidden_props": [
66
- "title",
67
- "subtitle",
68
- "avatar",
69
- "image",
70
- "body",
71
- "footer",
72
- "actionLabel",
73
- "class"
74
- ],
75
-
76
- "required_props": [],
77
-
78
- "required_slots": ["title", "body"],
79
-
80
- "do": [
81
- "Use slot attributes for content placement",
82
- "Use article as card container",
83
- "Place actions inside slot='action'"
84
- ],
85
-
86
- "dont": [
87
- "Do not pass title or body as props",
88
- "Do not replace slots with attributes",
89
- "Do not use class attribute"
90
- ]
91
- }
@@ -1,122 +0,0 @@
1
- {
2
- "component": "checkbox",
3
- "version": "2.0",
4
- "description": "Checkbox for boolean selection. Must be wrapped inside a label element.",
5
-
6
- "element": "input",
7
-
8
- "emmet": "label[data-intent=? data-size=?]>(input[type=checkbox]+{Label})",
9
-
10
-
11
- "props": {
12
- "type": {
13
- "type": "enum",
14
- "values": ["checkbox"],
15
- "default": "checkbox",
16
- "native": true,
17
- "agent_hint": "Always use type=checkbox"
18
- },
19
-
20
- "checked": {
21
- "type": "boolean",
22
- "native": true,
23
- "agent_hint": "Marks checkbox as checked"
24
- },
25
-
26
- "disabled": {
27
- "type": "boolean",
28
- "native": true,
29
- "agent_hint": "Disables checkbox"
30
- },
31
-
32
- "required": {
33
- "type": "boolean",
34
- "native": true,
35
- "agent_hint": "Marks checkbox as required"
36
- },
37
-
38
- "name": {
39
- "type": "string",
40
- "native": true,
41
- "agent_hint": "Used for grouping checkboxes"
42
- },
43
-
44
- "value": {
45
- "type": "string",
46
- "native": true,
47
- "agent_hint": "Submitted value in forms"
48
- },
49
-
50
- "data-intent": {
51
- "type": "enum",
52
- "values": ["success", "danger", "warning", "neutral"],
53
- "default": "neutral",
54
- "native": false,
55
- "agent_hint": "Controls checkbox color (applied on label)"
56
- },
57
-
58
- "data-size": {
59
- "type": "enum",
60
- "values": ["sm", "md", "lg"],
61
- "default": "md",
62
- "native": false,
63
- "agent_hint": "Controls checkbox size (applied on label)"
64
- }
65
- },
66
-
67
- "states": ["checked", "disabled"],
68
-
69
- "required_props": ["type"],
70
-
71
- "required_wrapper": "label",
72
-
73
- "forbidden_props": ["class", "variant", "color", "style", "onclick"],
74
-
75
- "do": [
76
- "Wrap checkbox inside label",
77
- "Use checked for default state",
78
- "Use name and value for grouping",
79
- "Use data-intent for styling",
80
- "Use data-size for scaling"
81
- ],
82
-
83
- "dont": [
84
- "Do not use class attribute",
85
- "Do not use variant or color props",
86
- "Do not use inline JS handlers",
87
- "Do not place checkbox outside label"
88
- ],
89
-
90
- "examples": [
91
- {
92
- "label": "Basic checkbox",
93
- "emmet": "label>(input[type=checkbox]+{Accept terms})",
94
- "html": "<label><input type=\"checkbox\" />Accept terms</label>"
95
- },
96
- {
97
- "label": "Checked checkbox",
98
- "emmet": "label>(input[type=checkbox checked]+{Checked})",
99
- "html": "<label><input type=\"checkbox\" checked />Checked</label>"
100
- },
101
- {
102
- "label": "Disabled checkbox",
103
- "emmet": "label>(input[type=checkbox disabled]+{Disabled})",
104
- "html": "<label><input type=\"checkbox\" disabled />Disabled</label>"
105
- },
106
- {
107
- "label": "Intent variant",
108
- "emmet": "label[data-intent=success]>(input[type=checkbox checked]+{Success})",
109
- "html": "<label data-intent=\"success\"><input type=\"checkbox\" checked />Success</label>"
110
- },
111
- {
112
- "label": "Size variant",
113
- "emmet": "label[data-size=lg]>(input[type=checkbox]+{Large})",
114
- "html": "<label data-size=\"lg\"><input type=\"checkbox\" />Large</label>"
115
- },
116
- {
117
- "label": "Checkbox group",
118
- "emmet": "label>(input[type=checkbox name=lang value=js]+{JavaScript})",
119
- "html": "<label><input type=\"checkbox\" name=\"lang\" value=\"js\" />JavaScript</label>"
120
- }
121
- ]
122
- }
@@ -1,63 +0,0 @@
1
- {
2
- "component": "code",
3
- "version": "2.0",
4
-
5
- "description": "Displays formatted code snippets using native pre and code elements with language metadata support and horizontal scrolling.",
6
-
7
- "element": "pre > code",
8
-
9
- "emmet": "pre>code[data-lang=?]{content}",
10
-
11
-
12
- "props": {
13
- "data-lang": {
14
- "type": "string",
15
- "values": ["js", "ts", "python", "bash", "html", "css", "json"],
16
- "default": "text",
17
- "native": false,
18
- "agent_hint": "Specify language metadata for code examples."
19
- }
20
- },
21
-
22
- "states": [],
23
-
24
- "forbidden_props": ["language", "variant", "theme", "class"],
25
-
26
- "required_props": [],
27
-
28
- "required_slots": [],
29
-
30
- "required_children": ["code"],
31
-
32
- "do": [
33
- "Wrap code inside pre element",
34
- "Use data-lang to indicate language",
35
- "Use code element for code content"
36
- ],
37
-
38
- "dont": [
39
- "Do not use div instead of pre",
40
- "Do not use language prop",
41
- "Do not use class attribute"
42
- ],
43
-
44
- "examples": [
45
- {
46
- "label": "JavaScript code",
47
- "emmet": "pre>code[data-lang=js]{function greet(){}}",
48
- "html": "<pre><code data-lang=\"js\">function greet(){}</code></pre>"
49
- },
50
-
51
- {
52
- "label": "Python code",
53
- "emmet": "pre>code[data-lang=python]{print('Hello')}",
54
- "html": "<pre><code data-lang=\"python\">print('Hello')</code></pre>"
55
- },
56
-
57
- {
58
- "label": "Bash command",
59
- "emmet": "pre>code[data-lang=bash]{npm install ignix-lite}",
60
- "html": "<pre><code data-lang=\"bash\">npm install ignix-lite</code></pre>"
61
- }
62
- ]
63
- }
@@ -1,33 +0,0 @@
1
- {
2
- "component": "ix-combobox",
3
- "element": "ix-combobox",
4
-
5
- "emmet": "ix-combobox>(label>(span[data-chips])+input[placeholder=?]+button[data-clear]{Clear})+ul>(li{Option})*",
6
-
7
- "required_children": ["label", "input", "ul", "li"],
8
-
9
- "optional_children": ["[data-chips]", "button[data-clear]"],
10
-
11
- "props": {
12
- "multiple": {
13
- "type": "boolean",
14
- "native": true,
15
- "agent_hint": "Enables chip rendering and multi-select mode."
16
- },
17
-
18
- "data-intent": {
19
- "type": "enum",
20
- "values": ["primary", "success", "warning", "danger", "gradient"]
21
- },
22
-
23
- "data-clear": {
24
- "type": "boolean",
25
- "native": false
26
- },
27
-
28
- "data-chips": {
29
- "type": "boolean",
30
- "native": false
31
- }
32
- }
33
- }