@furystack/shades-common-components 12.2.0 → 12.4.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 (100) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/esm/components/form.d.ts +5 -2
  3. package/esm/components/form.d.ts.map +1 -1
  4. package/esm/components/form.js +28 -6
  5. package/esm/components/form.js.map +1 -1
  6. package/esm/components/form.spec.js +207 -0
  7. package/esm/components/form.spec.js.map +1 -1
  8. package/esm/components/index.d.ts +1 -0
  9. package/esm/components/index.d.ts.map +1 -1
  10. package/esm/components/index.js +1 -0
  11. package/esm/components/index.js.map +1 -1
  12. package/esm/components/markdown/index.d.ts +5 -0
  13. package/esm/components/markdown/index.d.ts.map +1 -0
  14. package/esm/components/markdown/index.js +5 -0
  15. package/esm/components/markdown/index.js.map +1 -0
  16. package/esm/components/markdown/markdown-display.d.ts +19 -0
  17. package/esm/components/markdown/markdown-display.d.ts.map +1 -0
  18. package/esm/components/markdown/markdown-display.js +149 -0
  19. package/esm/components/markdown/markdown-display.js.map +1 -0
  20. package/esm/components/markdown/markdown-display.spec.d.ts +2 -0
  21. package/esm/components/markdown/markdown-display.spec.d.ts.map +1 -0
  22. package/esm/components/markdown/markdown-display.spec.js +191 -0
  23. package/esm/components/markdown/markdown-display.spec.js.map +1 -0
  24. package/esm/components/markdown/markdown-editor.d.ts +25 -0
  25. package/esm/components/markdown/markdown-editor.d.ts.map +1 -0
  26. package/esm/components/markdown/markdown-editor.js +113 -0
  27. package/esm/components/markdown/markdown-editor.js.map +1 -0
  28. package/esm/components/markdown/markdown-editor.spec.d.ts +2 -0
  29. package/esm/components/markdown/markdown-editor.spec.d.ts.map +1 -0
  30. package/esm/components/markdown/markdown-editor.spec.js +111 -0
  31. package/esm/components/markdown/markdown-editor.spec.js.map +1 -0
  32. package/esm/components/markdown/markdown-input.d.ts +29 -0
  33. package/esm/components/markdown/markdown-input.d.ts.map +1 -0
  34. package/esm/components/markdown/markdown-input.js +100 -0
  35. package/esm/components/markdown/markdown-input.js.map +1 -0
  36. package/esm/components/markdown/markdown-input.spec.d.ts +2 -0
  37. package/esm/components/markdown/markdown-input.spec.d.ts.map +1 -0
  38. package/esm/components/markdown/markdown-input.spec.js +215 -0
  39. package/esm/components/markdown/markdown-input.spec.js.map +1 -0
  40. package/esm/components/markdown/markdown-parser.d.ts +82 -0
  41. package/esm/components/markdown/markdown-parser.d.ts.map +1 -0
  42. package/esm/components/markdown/markdown-parser.js +274 -0
  43. package/esm/components/markdown/markdown-parser.js.map +1 -0
  44. package/esm/components/markdown/markdown-parser.spec.d.ts +2 -0
  45. package/esm/components/markdown/markdown-parser.spec.d.ts.map +1 -0
  46. package/esm/components/markdown/markdown-parser.spec.js +229 -0
  47. package/esm/components/markdown/markdown-parser.spec.js.map +1 -0
  48. package/esm/components/styles.d.ts +1 -0
  49. package/esm/components/styles.d.ts.map +1 -1
  50. package/esm/components/styles.js.map +1 -1
  51. package/esm/components/typography.d.ts.map +1 -1
  52. package/esm/components/typography.js +26 -14
  53. package/esm/components/typography.js.map +1 -1
  54. package/esm/services/css-variable-theme.d.ts +3 -0
  55. package/esm/services/css-variable-theme.d.ts.map +1 -1
  56. package/esm/services/css-variable-theme.js +3 -0
  57. package/esm/services/css-variable-theme.js.map +1 -1
  58. package/esm/services/css-variable-theme.spec.js +3 -0
  59. package/esm/services/css-variable-theme.spec.js.map +1 -1
  60. package/esm/services/default-dark-palette.d.ts +8 -0
  61. package/esm/services/default-dark-palette.d.ts.map +1 -0
  62. package/esm/services/default-dark-palette.js +56 -0
  63. package/esm/services/default-dark-palette.js.map +1 -0
  64. package/esm/services/default-dark-theme.d.ts +3 -0
  65. package/esm/services/default-dark-theme.d.ts.map +1 -1
  66. package/esm/services/default-dark-theme.js +7 -4
  67. package/esm/services/default-dark-theme.js.map +1 -1
  68. package/esm/services/default-light-theme.d.ts +3 -0
  69. package/esm/services/default-light-theme.d.ts.map +1 -1
  70. package/esm/services/default-light-theme.js +3 -0
  71. package/esm/services/default-light-theme.js.map +1 -1
  72. package/esm/services/index.d.ts +1 -0
  73. package/esm/services/index.d.ts.map +1 -1
  74. package/esm/services/index.js +1 -0
  75. package/esm/services/index.js.map +1 -1
  76. package/esm/services/theme-provider-service.d.ts +10 -1
  77. package/esm/services/theme-provider-service.d.ts.map +1 -1
  78. package/esm/services/theme-provider-service.js.map +1 -1
  79. package/package.json +2 -2
  80. package/src/components/form.spec.tsx +309 -0
  81. package/src/components/form.tsx +31 -8
  82. package/src/components/index.ts +1 -0
  83. package/src/components/markdown/index.ts +4 -0
  84. package/src/components/markdown/markdown-display.spec.tsx +243 -0
  85. package/src/components/markdown/markdown-display.tsx +202 -0
  86. package/src/components/markdown/markdown-editor.spec.tsx +142 -0
  87. package/src/components/markdown/markdown-editor.tsx +167 -0
  88. package/src/components/markdown/markdown-input.spec.tsx +274 -0
  89. package/src/components/markdown/markdown-input.tsx +143 -0
  90. package/src/components/markdown/markdown-parser.spec.ts +258 -0
  91. package/src/components/markdown/markdown-parser.ts +333 -0
  92. package/src/components/styles.tsx +1 -0
  93. package/src/components/typography.tsx +28 -15
  94. package/src/services/css-variable-theme.spec.ts +3 -0
  95. package/src/services/css-variable-theme.ts +3 -0
  96. package/src/services/default-dark-palette.ts +57 -0
  97. package/src/services/default-dark-theme.ts +7 -4
  98. package/src/services/default-light-theme.ts +3 -0
  99. package/src/services/index.ts +1 -0
  100. package/src/services/theme-provider-service.ts +7 -1
@@ -0,0 +1,274 @@
1
+ /**
2
+ * Zero-dependency Markdown parser that converts a Markdown string into an AST.
3
+ */
4
+ const HORIZONTAL_RULE_RE = /^(\*{3,}|-{3,}|_{3,})\s*$/;
5
+ const HEADING_RE = /^(#{1,6})\s+(.*)/;
6
+ const FENCED_CODE_OPEN_RE = /^```(\w*)\s*$/;
7
+ const FENCED_CODE_CLOSE_RE = /^```\s*$/;
8
+ const UNORDERED_LIST_RE = /^(\s*)[-*]\s+(.*)/;
9
+ const ORDERED_LIST_RE = /^(\s*)\d+\.\s+(.*)/;
10
+ const BLOCKQUOTE_RE = /^>\s?(.*)/;
11
+ const CHECKBOX_UNCHECKED_RE = /^\[[ ]\]\s+(.*)/;
12
+ const CHECKBOX_CHECKED_RE = /^\[[xX]\]\s+(.*)/;
13
+ /**
14
+ * Parse inline Markdown formatting into an array of InlineNodes.
15
+ *
16
+ * Known limitations:
17
+ * - Backslash escapes (e.g. `\*`) are not supported; special characters are always interpreted.
18
+ * - Underscore `_` markers are not restricted to word boundaries, so identifiers like
19
+ * `some_variable_name` may produce false italic/bold matches.
20
+ */
21
+ export const parseInline = (text) => {
22
+ const nodes = [];
23
+ let pos = 0;
24
+ while (pos < text.length) {
25
+ // Inline code
26
+ if (text[pos] === '`') {
27
+ const closeIdx = text.indexOf('`', pos + 1);
28
+ if (closeIdx !== -1) {
29
+ nodes.push({ type: 'code', content: text.slice(pos + 1, closeIdx) });
30
+ pos = closeIdx + 1;
31
+ continue;
32
+ }
33
+ }
34
+ // Image ![alt](src)
35
+ if (text[pos] === '!' && text[pos + 1] === '[') {
36
+ const altClose = text.indexOf(']', pos + 2);
37
+ if (altClose !== -1 && text[altClose + 1] === '(') {
38
+ const srcClose = text.indexOf(')', altClose + 2);
39
+ if (srcClose !== -1) {
40
+ const alt = text.slice(pos + 2, altClose);
41
+ const src = text.slice(altClose + 2, srcClose);
42
+ nodes.push({ type: 'image', src, alt });
43
+ pos = srcClose + 1;
44
+ continue;
45
+ }
46
+ }
47
+ }
48
+ // Link [text](href)
49
+ if (text[pos] === '[') {
50
+ const textClose = text.indexOf(']', pos + 1);
51
+ if (textClose !== -1 && text[textClose + 1] === '(') {
52
+ const hrefClose = text.indexOf(')', textClose + 2);
53
+ if (hrefClose !== -1) {
54
+ const linkText = text.slice(pos + 1, textClose);
55
+ const href = text.slice(textClose + 2, hrefClose);
56
+ nodes.push({ type: 'link', href, children: parseInline(linkText) });
57
+ pos = hrefClose + 1;
58
+ continue;
59
+ }
60
+ }
61
+ }
62
+ // Bold+Italic (***text***) or Bold (**text**) or Italic (*text*)
63
+ if (text[pos] === '*' || text[pos] === '_') {
64
+ const marker = text[pos];
65
+ // Count consecutive markers
66
+ let markerCount = 0;
67
+ while (pos + markerCount < text.length && text[pos + markerCount] === marker) {
68
+ markerCount++;
69
+ }
70
+ if (markerCount >= 3) {
71
+ const closeIdx = text.indexOf(marker.repeat(3), pos + 3);
72
+ if (closeIdx !== -1) {
73
+ const inner = text.slice(pos + 3, closeIdx);
74
+ nodes.push({ type: 'bold', children: [{ type: 'italic', children: parseInline(inner) }] });
75
+ pos = closeIdx + 3;
76
+ continue;
77
+ }
78
+ }
79
+ if (markerCount >= 2) {
80
+ const closeIdx = text.indexOf(marker.repeat(2), pos + 2);
81
+ if (closeIdx !== -1) {
82
+ const inner = text.slice(pos + 2, closeIdx);
83
+ nodes.push({ type: 'bold', children: parseInline(inner) });
84
+ pos = closeIdx + 2;
85
+ continue;
86
+ }
87
+ }
88
+ if (markerCount >= 1) {
89
+ const closeIdx = text.indexOf(marker, pos + 1);
90
+ if (closeIdx !== -1) {
91
+ const inner = text.slice(pos + 1, closeIdx);
92
+ nodes.push({ type: 'italic', children: parseInline(inner) });
93
+ pos = closeIdx + 1;
94
+ continue;
95
+ }
96
+ }
97
+ }
98
+ // Plain text — consume until the next special character
99
+ let end = pos + 1;
100
+ while (end < text.length && !['`', '!', '[', '*', '_'].includes(text[end])) {
101
+ end++;
102
+ }
103
+ const content = text.slice(pos, end);
104
+ const lastNode = nodes[nodes.length - 1];
105
+ if (lastNode?.type === 'text') {
106
+ lastNode.content += content;
107
+ }
108
+ else {
109
+ nodes.push({ type: 'text', content });
110
+ }
111
+ pos = end;
112
+ }
113
+ return nodes;
114
+ };
115
+ /**
116
+ * Parse a Markdown string into an array of block-level MarkdownNodes.
117
+ */
118
+ export const parseMarkdown = (source) => {
119
+ const lines = source.split('\n');
120
+ const nodes = [];
121
+ let i = 0;
122
+ while (i < lines.length) {
123
+ const line = lines[i];
124
+ // Blank lines — skip
125
+ if (line.trim() === '') {
126
+ i++;
127
+ continue;
128
+ }
129
+ // Fenced code block
130
+ const codeMatch = FENCED_CODE_OPEN_RE.exec(line);
131
+ if (codeMatch) {
132
+ const language = codeMatch[1] || undefined;
133
+ const codeLines = [];
134
+ i++;
135
+ while (i < lines.length && !FENCED_CODE_CLOSE_RE.test(lines[i])) {
136
+ codeLines.push(lines[i]);
137
+ i++;
138
+ }
139
+ nodes.push({ type: 'codeBlock', language, content: codeLines.join('\n') });
140
+ i++; // skip closing ```
141
+ continue;
142
+ }
143
+ // Horizontal rule
144
+ if (HORIZONTAL_RULE_RE.test(line)) {
145
+ nodes.push({ type: 'horizontalRule' });
146
+ i++;
147
+ continue;
148
+ }
149
+ // Heading
150
+ const headingMatch = HEADING_RE.exec(line);
151
+ if (headingMatch) {
152
+ const level = headingMatch[1].length;
153
+ nodes.push({ type: 'heading', level, children: parseInline(headingMatch[2]) });
154
+ i++;
155
+ continue;
156
+ }
157
+ // Blockquote
158
+ const bqMatch = BLOCKQUOTE_RE.exec(line);
159
+ if (bqMatch) {
160
+ const bqLines = [];
161
+ while (i < lines.length) {
162
+ const bqLineMatch = BLOCKQUOTE_RE.exec(lines[i]);
163
+ if (bqLineMatch) {
164
+ bqLines.push(bqLineMatch[1]);
165
+ i++;
166
+ }
167
+ else {
168
+ break;
169
+ }
170
+ }
171
+ nodes.push({ type: 'blockquote', children: parseMarkdown(bqLines.join('\n')) });
172
+ continue;
173
+ }
174
+ // Unordered list
175
+ const ulMatch = UNORDERED_LIST_RE.exec(line);
176
+ if (ulMatch) {
177
+ const items = [];
178
+ while (i < lines.length) {
179
+ const itemMatch = UNORDERED_LIST_RE.exec(lines[i]);
180
+ if (!itemMatch)
181
+ break;
182
+ const itemText = itemMatch[2];
183
+ const checkedMatch = CHECKBOX_CHECKED_RE.exec(itemText);
184
+ const uncheckedMatch = CHECKBOX_UNCHECKED_RE.exec(itemText);
185
+ if (checkedMatch) {
186
+ items.push({
187
+ children: parseInline(checkedMatch[1]),
188
+ checkbox: 'checked',
189
+ sourceLineIndex: i,
190
+ });
191
+ }
192
+ else if (uncheckedMatch) {
193
+ items.push({
194
+ children: parseInline(uncheckedMatch[1]),
195
+ checkbox: 'unchecked',
196
+ sourceLineIndex: i,
197
+ });
198
+ }
199
+ else {
200
+ items.push({
201
+ children: parseInline(itemText),
202
+ sourceLineIndex: i,
203
+ });
204
+ }
205
+ i++;
206
+ }
207
+ nodes.push({ type: 'list', ordered: false, items });
208
+ continue;
209
+ }
210
+ // Ordered list
211
+ const olMatch = ORDERED_LIST_RE.exec(line);
212
+ if (olMatch) {
213
+ const items = [];
214
+ while (i < lines.length) {
215
+ const itemMatch = ORDERED_LIST_RE.exec(lines[i]);
216
+ if (!itemMatch)
217
+ break;
218
+ items.push({
219
+ children: parseInline(itemMatch[2]),
220
+ sourceLineIndex: i,
221
+ });
222
+ i++;
223
+ }
224
+ nodes.push({ type: 'list', ordered: true, items });
225
+ continue;
226
+ }
227
+ // Paragraph — collect consecutive non-blank, non-block-start lines
228
+ const paraLines = [];
229
+ while (i < lines.length) {
230
+ const pLine = lines[i];
231
+ if (pLine.trim() === '')
232
+ break;
233
+ if (HEADING_RE.test(pLine))
234
+ break;
235
+ if (FENCED_CODE_OPEN_RE.test(pLine))
236
+ break;
237
+ if (HORIZONTAL_RULE_RE.test(pLine))
238
+ break;
239
+ if (BLOCKQUOTE_RE.test(pLine))
240
+ break;
241
+ if (UNORDERED_LIST_RE.test(pLine))
242
+ break;
243
+ if (ORDERED_LIST_RE.test(pLine))
244
+ break;
245
+ paraLines.push(pLine);
246
+ i++;
247
+ }
248
+ if (paraLines.length > 0) {
249
+ nodes.push({ type: 'paragraph', children: parseInline(paraLines.join(' ')) });
250
+ }
251
+ }
252
+ return nodes;
253
+ };
254
+ const TOGGLE_UNCHECKED_RE = /^(\s*[-*]\s+)\[ \]/;
255
+ const TOGGLE_CHECKED_RE = /^(\s*[-*]\s+)\[[xX]\]/;
256
+ /**
257
+ * Toggle a checkbox at the given source line index in the raw Markdown string.
258
+ * Only matches checkboxes in unordered list items (`- [ ]` or `* [x]`).
259
+ * Returns the updated string.
260
+ */
261
+ export const toggleCheckbox = (source, sourceLineIndex) => {
262
+ const lines = source.split('\n');
263
+ if (sourceLineIndex < 0 || sourceLineIndex >= lines.length)
264
+ return source;
265
+ const line = lines[sourceLineIndex];
266
+ if (TOGGLE_UNCHECKED_RE.test(line)) {
267
+ lines[sourceLineIndex] = line.replace(TOGGLE_UNCHECKED_RE, '$1[x]');
268
+ }
269
+ else if (TOGGLE_CHECKED_RE.test(line)) {
270
+ lines[sourceLineIndex] = line.replace(TOGGLE_CHECKED_RE, '$1[ ]');
271
+ }
272
+ return lines.join('\n');
273
+ };
274
+ //# sourceMappingURL=markdown-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-parser.js","sourceRoot":"","sources":["../../../src/components/markdown/markdown-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=markdown-parser.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-parser.spec.d.ts","sourceRoot":"","sources":["../../../src/components/markdown/markdown-parser.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,229 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { parseInline, parseMarkdown, toggleCheckbox } from './markdown-parser.js';
3
+ describe('parseInline', () => {
4
+ it('should parse plain text', () => {
5
+ const result = parseInline('hello world');
6
+ expect(result).toEqual([{ type: 'text', content: 'hello world' }]);
7
+ });
8
+ it('should parse inline code', () => {
9
+ const result = parseInline('use `const x = 1` here');
10
+ expect(result).toEqual([
11
+ { type: 'text', content: 'use ' },
12
+ { type: 'code', content: 'const x = 1' },
13
+ { type: 'text', content: ' here' },
14
+ ]);
15
+ });
16
+ it('should parse bold with **', () => {
17
+ const result = parseInline('this is **bold** text');
18
+ expect(result).toEqual([
19
+ { type: 'text', content: 'this is ' },
20
+ { type: 'bold', children: [{ type: 'text', content: 'bold' }] },
21
+ { type: 'text', content: ' text' },
22
+ ]);
23
+ });
24
+ it('should parse italic with *', () => {
25
+ const result = parseInline('this is *italic* text');
26
+ expect(result).toEqual([
27
+ { type: 'text', content: 'this is ' },
28
+ { type: 'italic', children: [{ type: 'text', content: 'italic' }] },
29
+ { type: 'text', content: ' text' },
30
+ ]);
31
+ });
32
+ it('should parse bold+italic with ***', () => {
33
+ const result = parseInline('this is ***bold italic*** text');
34
+ expect(result).toEqual([
35
+ { type: 'text', content: 'this is ' },
36
+ { type: 'bold', children: [{ type: 'italic', children: [{ type: 'text', content: 'bold italic' }] }] },
37
+ { type: 'text', content: ' text' },
38
+ ]);
39
+ });
40
+ it('should parse links', () => {
41
+ const result = parseInline('click [here](https://example.com) now');
42
+ expect(result).toEqual([
43
+ { type: 'text', content: 'click ' },
44
+ { type: 'link', href: 'https://example.com', children: [{ type: 'text', content: 'here' }] },
45
+ { type: 'text', content: ' now' },
46
+ ]);
47
+ });
48
+ it('should parse images', () => {
49
+ const result = parseInline('see ![alt text](image.png) here');
50
+ expect(result).toEqual([
51
+ { type: 'text', content: 'see ' },
52
+ { type: 'image', src: 'image.png', alt: 'alt text' },
53
+ { type: 'text', content: ' here' },
54
+ ]);
55
+ });
56
+ it('should parse nested bold in link', () => {
57
+ const result = parseInline('[**bold link**](url)');
58
+ expect(result).toEqual([
59
+ {
60
+ type: 'link',
61
+ href: 'url',
62
+ children: [{ type: 'bold', children: [{ type: 'text', content: 'bold link' }] }],
63
+ },
64
+ ]);
65
+ });
66
+ it('should handle empty string', () => {
67
+ expect(parseInline('')).toEqual([]);
68
+ });
69
+ });
70
+ describe('parseMarkdown', () => {
71
+ it('should return empty array for empty input', () => {
72
+ expect(parseMarkdown('')).toEqual([]);
73
+ });
74
+ it('should parse headings level 1–6', () => {
75
+ const md = '# H1\n## H2\n### H3\n#### H4\n##### H5\n###### H6';
76
+ const result = parseMarkdown(md);
77
+ expect(result).toHaveLength(6);
78
+ for (let i = 0; i < 6; i++) {
79
+ expect(result[i]).toMatchObject({ type: 'heading', level: i + 1 });
80
+ }
81
+ });
82
+ it('should parse a paragraph', () => {
83
+ const result = parseMarkdown('Hello world\nthis is a paragraph.');
84
+ expect(result).toEqual([
85
+ {
86
+ type: 'paragraph',
87
+ children: [{ type: 'text', content: 'Hello world this is a paragraph.' }],
88
+ },
89
+ ]);
90
+ });
91
+ it('should split paragraphs on blank lines', () => {
92
+ const result = parseMarkdown('First paragraph.\n\nSecond paragraph.');
93
+ expect(result).toHaveLength(2);
94
+ expect(result[0]).toMatchObject({ type: 'paragraph' });
95
+ expect(result[1]).toMatchObject({ type: 'paragraph' });
96
+ });
97
+ it('should parse fenced code blocks', () => {
98
+ const md = '```typescript\nconst x = 1\nconsole.log(x)\n```';
99
+ const result = parseMarkdown(md);
100
+ expect(result).toEqual([
101
+ {
102
+ type: 'codeBlock',
103
+ language: 'typescript',
104
+ content: 'const x = 1\nconsole.log(x)',
105
+ },
106
+ ]);
107
+ });
108
+ it('should parse fenced code blocks without language', () => {
109
+ const md = '```\nhello\n```';
110
+ const result = parseMarkdown(md);
111
+ expect(result).toEqual([
112
+ {
113
+ type: 'codeBlock',
114
+ language: undefined,
115
+ content: 'hello',
116
+ },
117
+ ]);
118
+ });
119
+ it('should parse horizontal rules', () => {
120
+ for (const rule of ['---', '***', '___', '----', '****']) {
121
+ const result = parseMarkdown(rule);
122
+ expect(result).toEqual([{ type: 'horizontalRule' }]);
123
+ }
124
+ });
125
+ it('should parse unordered lists', () => {
126
+ const md = '- Item 1\n- Item 2\n- Item 3';
127
+ const result = parseMarkdown(md);
128
+ expect(result).toHaveLength(1);
129
+ expect(result[0]).toMatchObject({ type: 'list', ordered: false });
130
+ const list = result[0];
131
+ expect(list.items).toHaveLength(3);
132
+ });
133
+ it('should parse ordered lists', () => {
134
+ const md = '1. First\n2. Second\n3. Third';
135
+ const result = parseMarkdown(md);
136
+ expect(result).toHaveLength(1);
137
+ expect(result[0]).toMatchObject({ type: 'list', ordered: true });
138
+ const list = result[0];
139
+ expect(list.items).toHaveLength(3);
140
+ });
141
+ it('should parse checkboxes in unordered lists', () => {
142
+ const md = '- [x] Done task\n- [ ] Todo task\n- Regular item';
143
+ const result = parseMarkdown(md);
144
+ expect(result).toHaveLength(1);
145
+ const list = result[0];
146
+ expect(list.items[0].checkbox).toBe('checked');
147
+ expect(list.items[1].checkbox).toBe('unchecked');
148
+ expect(list.items[2].checkbox).toBeUndefined();
149
+ });
150
+ it('should track sourceLineIndex on list items', () => {
151
+ const md = '- [x] Done\n- [ ] Todo';
152
+ const result = parseMarkdown(md);
153
+ const list = result[0];
154
+ expect(list.items[0].sourceLineIndex).toBe(0);
155
+ expect(list.items[1].sourceLineIndex).toBe(1);
156
+ });
157
+ it('should parse blockquotes', () => {
158
+ const md = '> This is a quote\n> Second line';
159
+ const result = parseMarkdown(md);
160
+ expect(result).toHaveLength(1);
161
+ expect(result[0]).toMatchObject({ type: 'blockquote' });
162
+ const bq = result[0];
163
+ expect(bq.children).toHaveLength(1);
164
+ expect(bq.children[0]).toMatchObject({ type: 'paragraph' });
165
+ });
166
+ it('should parse a complex document', () => {
167
+ const md = [
168
+ '# Title',
169
+ '',
170
+ 'A paragraph with **bold** and *italic*.',
171
+ '',
172
+ '## List Section',
173
+ '',
174
+ '- [x] Task done',
175
+ '- [ ] Task pending',
176
+ '',
177
+ '> A blockquote',
178
+ '',
179
+ '---',
180
+ '',
181
+ '```js',
182
+ 'console.log("hi")',
183
+ '```',
184
+ ].join('\n');
185
+ const result = parseMarkdown(md);
186
+ expect(result[0]).toMatchObject({ type: 'heading', level: 1 });
187
+ expect(result[1]).toMatchObject({ type: 'paragraph' });
188
+ expect(result[2]).toMatchObject({ type: 'heading', level: 2 });
189
+ expect(result[3]).toMatchObject({ type: 'list', ordered: false });
190
+ expect(result[4]).toMatchObject({ type: 'blockquote' });
191
+ expect(result[5]).toMatchObject({ type: 'horizontalRule' });
192
+ expect(result[6]).toMatchObject({ type: 'codeBlock', language: 'js' });
193
+ });
194
+ });
195
+ describe('toggleCheckbox', () => {
196
+ it('should toggle an unchecked checkbox to checked', () => {
197
+ const source = '- [ ] Todo item';
198
+ const result = toggleCheckbox(source, 0);
199
+ expect(result).toBe('- [x] Todo item');
200
+ });
201
+ it('should toggle a checked checkbox to unchecked', () => {
202
+ const source = '- [x] Done item';
203
+ const result = toggleCheckbox(source, 0);
204
+ expect(result).toBe('- [ ] Done item');
205
+ });
206
+ it('should toggle the correct line in a multi-line document', () => {
207
+ const source = '- [x] Done\n- [ ] Todo\n- [ ] Another';
208
+ const result = toggleCheckbox(source, 1);
209
+ expect(result).toBe('- [x] Done\n- [x] Todo\n- [ ] Another');
210
+ });
211
+ it('should return original string for out-of-bounds index', () => {
212
+ const source = '- [ ] Todo';
213
+ expect(toggleCheckbox(source, 5)).toBe(source);
214
+ expect(toggleCheckbox(source, -1)).toBe(source);
215
+ });
216
+ it('should return original string for non-checkbox line', () => {
217
+ const source = 'Regular text';
218
+ expect(toggleCheckbox(source, 0)).toBe(source);
219
+ });
220
+ it('should not toggle [ ] that appears outside a list item', () => {
221
+ const source = 'This line has [ ] in it but is not a list item';
222
+ expect(toggleCheckbox(source, 0)).toBe(source);
223
+ });
224
+ it('should toggle checkboxes with * list marker', () => {
225
+ const source = '* [ ] Star item';
226
+ expect(toggleCheckbox(source, 0)).toBe('* [x] Star item');
227
+ });
228
+ });
229
+ //# sourceMappingURL=markdown-parser.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-parser.spec.js","sourceRoot":"","sources":["../../../src/components/markdown/markdown-parser.spec.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  declare global {
2
2
  interface CSSStyleDeclaration {
3
3
  backdropFilter: string;
4
+ fieldSizing: string;
4
5
  }
5
6
  }
6
7
  export declare const colors: {
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/components/styles.tsx"],"names":[],"mappings":"AAEA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,mBAAmB;QAC3B,cAAc,EAAE,MAAM,CAAA;KACvB;CACF;AASD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;CAgBlB,CAAA;AAED,eAAO,MAAM,MAAM;;CAElB,CAAA"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/components/styles.tsx"],"names":[],"mappings":"AAEA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,mBAAmB;QAC3B,cAAc,EAAE,MAAM,CAAA;QACtB,WAAW,EAAE,MAAM,CAAA;KACpB;CACF;AASD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;CAgBlB,CAAA;AAED,eAAO,MAAM,MAAM;;CAElB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/components/styles.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAQpE,MAAM,QAAQ,GAAiC;IAC7C,cAAc,EAAE,QAAQ,gBAAgB,CAAC,OAAO,CAAC,MAAM,GAAG;IAC1D,YAAY,EAAE,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;IACpD,MAAM,EAAE,aAAa,gBAAgB,CAAC,MAAM,CAAC,YAAY,EAAE;IAC3D,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE;CACvC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO,EAAE;QACP,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK;QAC7C,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;QAC3C,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;QAC3C,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY;KAC5D;IACD,SAAS,EAAE;QACT,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK;QAC/C,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI;QAC7C,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI;QAC7C,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY;KAC9D;IACD,KAAK,EAAE;QACL,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;KAC1C;CACF,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,QAAQ;CACT,CAAA"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/components/styles.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AASpE,MAAM,QAAQ,GAAiC;IAC7C,cAAc,EAAE,QAAQ,gBAAgB,CAAC,OAAO,CAAC,MAAM,GAAG;IAC1D,YAAY,EAAE,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;IACpD,MAAM,EAAE,aAAa,gBAAgB,CAAC,MAAM,CAAC,YAAY,EAAE;IAC3D,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE;CACvC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO,EAAE;QACP,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK;QAC7C,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;QAC3C,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI;QAC3C,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY;KAC5D;IACD,SAAS,EAAE;QACT,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK;QAC/C,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI;QAC7C,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI;QAC7C,YAAY,EAAE,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY;KAC9D;IACD,KAAK,EAAE;QACL,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;KAC1C;CACF,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,QAAQ;CACT,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"typography.d.ts","sourceRoot":"","sources":["../../src/components/typography.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAIvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAA;AAIpE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,WAAW,GACX,WAAW,GACX,OAAO,GACP,OAAO,GACP,SAAS,GACT,UAAU,CAAA;AAEd;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,GAAG,aAAa,GAAG,eAAe,GAAG,cAAc,CAAA;AAE9F,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG;IAC1D,qFAAqF;IACrF,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,6CAA6C;IAC7C,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;CAChD,CAAA;AAgID;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;IAhJrB,qFAAqF;cAC3E,iBAAiB;IAC3B,6CAA6C;YACrC,eAAe;IACvB,wFAAwF;eAC7E,OAAO,GAAG,MAAM;IAC3B,gEAAgE;eACrD,OAAO;IAClB,qCAAqC;mBACtB,OAAO;IACtB,sBAAsB;YACd,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS;sEAwP/C,CAAA"}
1
+ {"version":3,"file":"typography.d.ts","sourceRoot":"","sources":["../../src/components/typography.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAIvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAA;AAIpE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,WAAW,GACX,WAAW,GACX,OAAO,GACP,OAAO,GACP,SAAS,GACT,UAAU,CAAA;AAEd;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,GAAG,aAAa,GAAG,eAAe,GAAG,cAAc,CAAA;AAE9F,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG;IAC1D,qFAAqF;IACrF,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,6CAA6C;IAC7C,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;CAChD,CAAA;AA6ID;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;IA7JrB,qFAAqF;cAC3E,iBAAiB;IAC3B,6CAA6C;YACrC,eAAe;IACvB,wFAAwF;eAC7E,OAAO,GAAG,MAAM;IAC3B,gEAAgE;eACrD,OAAO;IAClB,qCAAqC;mBACtB,OAAO;IACtB,sBAAsB;YACd,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS;sEAqQ/C,CAAA"}