@santi020k/lumen-core 0.4.0 → 1.0.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.
- package/dist/charts.d.ts +6 -1
- package/dist/charts.d.ts.map +1 -1
- package/dist/charts.js +91 -30
- package/dist/code.d.ts.map +1 -1
- package/dist/code.js +45 -34
- package/dist/components.d.ts +859 -1
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +273 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +3 -3
- package/dist/figma.d.ts.map +1 -1
- package/dist/forms.d.ts +29 -0
- package/dist/forms.d.ts.map +1 -0
- package/dist/forms.js +75 -0
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +21 -7
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/props.d.ts +1 -2
- package/dist/props.d.ts.map +1 -1
- package/dist/props.js +1 -1
- package/dist/schedule.d.ts.map +1 -1
- package/dist/schedule.js +7 -7
- package/dist/theme-builder.d.ts.map +1 -1
- package/dist/theme-builder.js +23 -8
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +22 -7
- package/dist/tokens.d.ts.map +1 -1
- package/package.json +3 -3
package/dist/charts.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export declare const lumenChartTones: readonly ["series-1", "series-2", "series-3", "series-4", "series-5", "series-6", "series-7", "series-8", "brand", "accent", "success", "warning", "danger", "neutral"];
|
|
2
|
-
export type LumenChartTone = typeof lumenChartTones[number];
|
|
2
|
+
export type LumenChartTone = (typeof lumenChartTones)[number];
|
|
3
3
|
export interface LumenChartDatum {
|
|
4
4
|
label?: string;
|
|
5
5
|
tone?: LumenChartTone;
|
|
6
6
|
x: number | string;
|
|
7
|
+
xLabel?: string;
|
|
7
8
|
y: number | null;
|
|
8
9
|
}
|
|
9
10
|
export interface LumenChartSeries {
|
|
@@ -47,6 +48,7 @@ export interface LumenBarGeometryMark {
|
|
|
47
48
|
y: number;
|
|
48
49
|
}
|
|
49
50
|
export interface LumenBarGeometryCategory {
|
|
51
|
+
category: number | string;
|
|
50
52
|
label: number | string;
|
|
51
53
|
x: number;
|
|
52
54
|
y: number;
|
|
@@ -59,6 +61,7 @@ export interface LumenBarGeometry {
|
|
|
59
61
|
width: number;
|
|
60
62
|
}
|
|
61
63
|
export interface LumenBarGeometryOptions {
|
|
64
|
+
categoryWidth?: number;
|
|
62
65
|
height?: number;
|
|
63
66
|
layout?: LumenBarChartLayout;
|
|
64
67
|
orientation?: LumenChartOrientation;
|
|
@@ -92,6 +95,8 @@ export declare const getLumenChartDomain: (values: readonly (number | null)[], i
|
|
|
92
95
|
export declare const scaleLumenChartValue: (value: number, domain: LumenChartDomain, rangeStart: number, rangeEnd: number) => number;
|
|
93
96
|
export declare const getLumenChartTicks: (domain: LumenChartDomain, count?: number) => number[];
|
|
94
97
|
export declare const resolveLumenChartTone: (tone: LumenChartTone | undefined, index?: number) => LumenChartTone;
|
|
98
|
+
export declare const getLumenChartToneClassName: (tone: LumenChartTone | undefined, index?: number) => string;
|
|
99
|
+
export declare const getLumenPieChartVariantClassName: (variant: LumenPieChartVariant) => string;
|
|
95
100
|
export declare const createLumenPieGeometry: (data: readonly LumenChartDatum[], options?: LumenPieGeometryOptions) => LumenPieGeometry;
|
|
96
101
|
export declare const createLumenLineGeometry: (data: readonly LumenChartDatum[], options?: LumenLineGeometryOptions) => LumenLineGeometry;
|
|
97
102
|
export declare const getLumenChartValueRatio: (value: number, domain: LumenChartDomain) => number;
|
package/dist/charts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../src/charts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,yKAelB,CAAA;AAEV,MAAM,MAAM,cAAc,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../src/charts.ts"],"names":[],"mappings":"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"}
|
package/dist/charts.js
CHANGED
|
@@ -14,6 +14,26 @@ export const lumenChartTones = [
|
|
|
14
14
|
'danger',
|
|
15
15
|
'neutral'
|
|
16
16
|
];
|
|
17
|
+
const lumenChartToneClassNames = {
|
|
18
|
+
accent: 'ui-chart-tone--accent',
|
|
19
|
+
brand: 'ui-chart-tone--brand',
|
|
20
|
+
danger: 'ui-chart-tone--danger',
|
|
21
|
+
neutral: 'ui-chart-tone--neutral',
|
|
22
|
+
'series-1': 'ui-chart-tone--series-1',
|
|
23
|
+
'series-2': 'ui-chart-tone--series-2',
|
|
24
|
+
'series-3': 'ui-chart-tone--series-3',
|
|
25
|
+
'series-4': 'ui-chart-tone--series-4',
|
|
26
|
+
'series-5': 'ui-chart-tone--series-5',
|
|
27
|
+
'series-6': 'ui-chart-tone--series-6',
|
|
28
|
+
'series-7': 'ui-chart-tone--series-7',
|
|
29
|
+
'series-8': 'ui-chart-tone--series-8',
|
|
30
|
+
success: 'ui-chart-tone--success',
|
|
31
|
+
warning: 'ui-chart-tone--warning'
|
|
32
|
+
};
|
|
33
|
+
const lumenPieChartVariantClassNames = {
|
|
34
|
+
donut: 'ui-pie-chart--donut',
|
|
35
|
+
pie: 'ui-pie-chart--pie'
|
|
36
|
+
};
|
|
17
37
|
const defaultChartSize = 100;
|
|
18
38
|
const defaultChartPadding = 4;
|
|
19
39
|
const finiteValues = (values) => values.filter((value) => value !== null && Number.isFinite(value));
|
|
@@ -49,15 +69,26 @@ export const getLumenChartTicks = (domain, count = 5) => {
|
|
|
49
69
|
return Array.from({ length: safeCount }, (_, index) => domain.min + step * index);
|
|
50
70
|
};
|
|
51
71
|
export const resolveLumenChartTone = (tone, index = 0) => tone ?? lumenChartTones[index % 8] ?? 'series-1';
|
|
72
|
+
export const getLumenChartToneClassName = (tone, index = 0) => lumenChartToneClassNames[resolveLumenChartTone(tone, index)];
|
|
73
|
+
export const getLumenPieChartVariantClassName = (variant) => lumenPieChartVariantClassNames[variant];
|
|
52
74
|
const polarPoint = (center, radius, angle) => {
|
|
53
|
-
const radians = angle * Math.PI / 180;
|
|
75
|
+
const radians = (angle * Math.PI) / 180;
|
|
54
76
|
return {
|
|
55
77
|
x: center + Math.cos(radians) * radius,
|
|
56
78
|
y: center + Math.sin(radians) * radius
|
|
57
79
|
};
|
|
58
80
|
};
|
|
59
81
|
const formatPieCoordinate = (value) => value.toFixed(3);
|
|
60
|
-
const pieArc = (radius, largeArc, sweep, point) =>
|
|
82
|
+
const pieArc = (radius, largeArc, sweep, point) => [
|
|
83
|
+
'A',
|
|
84
|
+
formatPieCoordinate(radius),
|
|
85
|
+
formatPieCoordinate(radius),
|
|
86
|
+
0,
|
|
87
|
+
largeArc ? 1 : 0,
|
|
88
|
+
sweep,
|
|
89
|
+
formatPieCoordinate(point.x),
|
|
90
|
+
formatPieCoordinate(point.y)
|
|
91
|
+
].join(' ');
|
|
61
92
|
const fullPiePath = (center, outerRadius, innerRadius) => {
|
|
62
93
|
const topOuter = polarPoint(center, outerRadius, -90);
|
|
63
94
|
const bottomOuter = polarPoint(center, outerRadius, 90);
|
|
@@ -116,12 +147,10 @@ export const createLumenPieGeometry = (data, options = {}) => {
|
|
|
116
147
|
const slices = available.map((datum, index) => {
|
|
117
148
|
const percentage = total === 0 ? 0 : datum.y / total;
|
|
118
149
|
const startAngle = angle;
|
|
119
|
-
const endAngle = index === available.length - 1
|
|
120
|
-
? 270
|
|
121
|
-
: startAngle + percentage * 360;
|
|
150
|
+
const endAngle = index === available.length - 1 ? 270 : startAngle + percentage * 360;
|
|
122
151
|
angle = endAngle;
|
|
123
152
|
return {
|
|
124
|
-
label: datum.label ?? String(datum.x),
|
|
153
|
+
label: datum.label ?? datum.xLabel ?? String(datum.x),
|
|
125
154
|
path: pieSlicePath(center, outerRadius, innerRadius, startAngle, endAngle),
|
|
126
155
|
percentage,
|
|
127
156
|
tone: resolveLumenChartTone(datum.tone, index),
|
|
@@ -153,7 +182,8 @@ const splitGeometrySegments = (data, domain, width, height, padding) => {
|
|
|
153
182
|
}
|
|
154
183
|
current.push({
|
|
155
184
|
...datum,
|
|
156
|
-
xCoordinate: padding +
|
|
185
|
+
xCoordinate: padding +
|
|
186
|
+
(data.length === 1 ? 0.5 : index / denominator) * drawableWidth,
|
|
157
187
|
yCoordinate: scaleLumenChartValue(datum.y, domain, padding + drawableHeight, padding)
|
|
158
188
|
});
|
|
159
189
|
}
|
|
@@ -176,13 +206,24 @@ export const createLumenLineGeometry = (data, options = {}) => {
|
|
|
176
206
|
const segments = splitGeometrySegments(data, domain, width, height, padding);
|
|
177
207
|
const baseline = scaleLumenChartValue(Math.max(domain.min, Math.min(domain.max, 0)), domain, height - padding, padding);
|
|
178
208
|
return {
|
|
179
|
-
areaPaths: segments
|
|
209
|
+
areaPaths: segments
|
|
210
|
+
.map(points => {
|
|
180
211
|
const first = points[0];
|
|
181
212
|
const last = points[points.length - 1];
|
|
182
213
|
if (!first || !last)
|
|
183
214
|
return '';
|
|
184
|
-
return
|
|
185
|
-
|
|
215
|
+
return [
|
|
216
|
+
segmentPath(points),
|
|
217
|
+
'L',
|
|
218
|
+
last.xCoordinate.toFixed(3),
|
|
219
|
+
baseline.toFixed(3),
|
|
220
|
+
'L',
|
|
221
|
+
first.xCoordinate.toFixed(3),
|
|
222
|
+
baseline.toFixed(3),
|
|
223
|
+
'Z'
|
|
224
|
+
].join(' ');
|
|
225
|
+
})
|
|
226
|
+
.filter(Boolean),
|
|
186
227
|
domain,
|
|
187
228
|
path: segments.map(segmentPath).join(' '),
|
|
188
229
|
points: segments.flat()
|
|
@@ -205,7 +246,10 @@ export const getLumenChartCategories = (series) => {
|
|
|
205
246
|
};
|
|
206
247
|
export const alignLumenChartSeries = (series, categories) => ({
|
|
207
248
|
...series,
|
|
208
|
-
data: categories.map(category => series.data.find(datum => datum.x === category) ?? {
|
|
249
|
+
data: categories.map(category => series.data.find(datum => datum.x === category) ?? {
|
|
250
|
+
x: category,
|
|
251
|
+
y: null
|
|
252
|
+
})
|
|
209
253
|
});
|
|
210
254
|
const getDatumValue = (series, category) => series.data.find(datum => datum.x === category)?.y ?? 0;
|
|
211
255
|
const getStackedDomain = (series, categories) => {
|
|
@@ -236,32 +280,43 @@ export const createLumenBarGeometry = (series, options = {}) => {
|
|
|
236
280
|
const layout = options.layout ?? 'grouped';
|
|
237
281
|
const categories = getLumenChartCategories(series);
|
|
238
282
|
const values = series.flatMap(item => item.data.map(datum => datum.y));
|
|
239
|
-
const domain = layout === 'stacked'
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
const margin = orientation === 'horizontal'
|
|
243
|
-
|
|
244
|
-
|
|
283
|
+
const domain = layout === 'stacked' ?
|
|
284
|
+
getStackedDomain(series, categories) :
|
|
285
|
+
getLumenChartDomain(values);
|
|
286
|
+
const margin = orientation === 'horizontal' ?
|
|
287
|
+
{
|
|
288
|
+
bottom: 24,
|
|
289
|
+
left: Math.max(64, Math.min(240, options.categoryWidth ?? 112)),
|
|
290
|
+
right: 20,
|
|
291
|
+
top: 16
|
|
292
|
+
} :
|
|
293
|
+
{ bottom: 52, left: 52, right: 16, top: 16 };
|
|
245
294
|
const plotWidth = Math.max(1, width - margin.left - margin.right);
|
|
246
295
|
const plotHeight = Math.max(1, height - margin.top - margin.bottom);
|
|
247
|
-
const categorySize = (orientation === 'horizontal' ? plotHeight : plotWidth) /
|
|
296
|
+
const categorySize = (orientation === 'horizontal' ? plotHeight : plotWidth) /
|
|
297
|
+
Math.max(1, categories.length);
|
|
248
298
|
const categoryGap = Math.min(16, categorySize * 0.24);
|
|
249
299
|
const usableCategorySize = Math.max(1, categorySize - categoryGap);
|
|
250
300
|
const seriesSize = usableCategorySize / Math.max(1, series.length);
|
|
251
301
|
const marks = [];
|
|
252
302
|
const categoryPositions = [];
|
|
253
303
|
for (const [categoryIndex, category] of categories.entries()) {
|
|
254
|
-
const categoryStart = (orientation === 'horizontal' ? margin.top : margin.left) +
|
|
304
|
+
const categoryStart = (orientation === 'horizontal' ? margin.top : margin.left) +
|
|
305
|
+
categoryIndex * categorySize +
|
|
306
|
+
categoryGap / 2;
|
|
255
307
|
let positiveOffset = 0;
|
|
256
308
|
let negativeOffset = 0;
|
|
257
309
|
categoryPositions.push({
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
310
|
+
category,
|
|
311
|
+
label: series
|
|
312
|
+
.flatMap(item => item.data)
|
|
313
|
+
.find(datum => datum.x === category)?.xLabel ?? category,
|
|
314
|
+
x: orientation === 'horizontal' ?
|
|
315
|
+
margin.left - 8 :
|
|
316
|
+
categoryStart + usableCategorySize / 2,
|
|
317
|
+
y: orientation === 'horizontal' ?
|
|
318
|
+
categoryStart + usableCategorySize / 2 :
|
|
319
|
+
height - 20
|
|
265
320
|
});
|
|
266
321
|
for (const [seriesIndex, item] of series.entries()) {
|
|
267
322
|
const value = getDatumValue(item, category);
|
|
@@ -273,14 +328,17 @@ export const createLumenBarGeometry = (series, options = {}) => {
|
|
|
273
328
|
const end = scaleLumenChartValue(endValue, domain, margin.left, margin.left + plotWidth);
|
|
274
329
|
marks.push({
|
|
275
330
|
category,
|
|
276
|
-
height: layout === 'stacked' ?
|
|
331
|
+
height: layout === 'stacked' ?
|
|
332
|
+
usableCategorySize :
|
|
333
|
+
Math.max(1, seriesSize - 2),
|
|
277
334
|
seriesId: item.id,
|
|
278
335
|
seriesLabel: item.label,
|
|
279
336
|
tone,
|
|
280
337
|
value,
|
|
281
338
|
width: Math.abs(end - start),
|
|
282
339
|
x: Math.min(start, end),
|
|
283
|
-
y: categoryStart +
|
|
340
|
+
y: categoryStart +
|
|
341
|
+
(layout === 'stacked' ? 0 : seriesIndex * seriesSize + 1)
|
|
284
342
|
});
|
|
285
343
|
}
|
|
286
344
|
else {
|
|
@@ -295,8 +353,11 @@ export const createLumenBarGeometry = (series, options = {}) => {
|
|
|
295
353
|
seriesLabel: item.label,
|
|
296
354
|
tone,
|
|
297
355
|
value,
|
|
298
|
-
width: layout === 'stacked' ?
|
|
299
|
-
|
|
356
|
+
width: layout === 'stacked' ?
|
|
357
|
+
usableCategorySize :
|
|
358
|
+
Math.max(1, seriesSize - 2),
|
|
359
|
+
x: categoryStart +
|
|
360
|
+
(layout === 'stacked' ? 0 : seriesIndex * seriesSize + 1),
|
|
300
361
|
y: Math.min(start, end)
|
|
301
362
|
});
|
|
302
363
|
}
|
package/dist/code.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC5B,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEjE,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,wBAAwB;;;;;;;CAOkB,CAAA;AAiPvD,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,WAc9C,CAAA;AA0LD,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,iBAAa,KACZ,cAAc,EA0BhB,CAAA;AAeD,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,iBAAa,WAA6E,CAAA"}
|
package/dist/code.js
CHANGED
|
@@ -14,11 +14,7 @@ const bashLikeLanguages = new Set([
|
|
|
14
14
|
'terminal',
|
|
15
15
|
'zsh'
|
|
16
16
|
]);
|
|
17
|
-
const jsonLikeLanguages = new Set([
|
|
18
|
-
'json',
|
|
19
|
-
'json5',
|
|
20
|
-
'jsonc'
|
|
21
|
-
]);
|
|
17
|
+
const jsonLikeLanguages = new Set(['json', 'json5', 'jsonc']);
|
|
22
18
|
const javascriptLikeLanguages = new Set([
|
|
23
19
|
'js',
|
|
24
20
|
'jsx',
|
|
@@ -28,14 +24,8 @@ const javascriptLikeLanguages = new Set([
|
|
|
28
24
|
'tsx',
|
|
29
25
|
'typescript'
|
|
30
26
|
]);
|
|
31
|
-
const luaLikeLanguages = new Set([
|
|
32
|
-
|
|
33
|
-
]);
|
|
34
|
-
const markdownLikeLanguages = new Set([
|
|
35
|
-
'md',
|
|
36
|
-
'markdown',
|
|
37
|
-
'mdx'
|
|
38
|
-
]);
|
|
27
|
+
const luaLikeLanguages = new Set(['lua']);
|
|
28
|
+
const markdownLikeLanguages = new Set(['md', 'markdown', 'mdx']);
|
|
39
29
|
const markupLikeLanguages = new Set([
|
|
40
30
|
'astro',
|
|
41
31
|
'html',
|
|
@@ -44,13 +34,8 @@ const markupLikeLanguages = new Set([
|
|
|
44
34
|
'vue',
|
|
45
35
|
'xml'
|
|
46
36
|
]);
|
|
47
|
-
const sqlLikeLanguages = new Set([
|
|
48
|
-
|
|
49
|
-
]);
|
|
50
|
-
const yamlLikeLanguages = new Set([
|
|
51
|
-
'yaml',
|
|
52
|
-
'yml'
|
|
53
|
-
]);
|
|
37
|
+
const sqlLikeLanguages = new Set(['sql']);
|
|
38
|
+
const yamlLikeLanguages = new Set(['yaml', 'yml']);
|
|
54
39
|
const javascriptKeywords = new Set([
|
|
55
40
|
'as',
|
|
56
41
|
'async',
|
|
@@ -123,11 +108,7 @@ const bashKeywords = new Set([
|
|
|
123
108
|
'unset',
|
|
124
109
|
'while'
|
|
125
110
|
]);
|
|
126
|
-
const jsonKeywords = new Set([
|
|
127
|
-
'false',
|
|
128
|
-
'null',
|
|
129
|
-
'true'
|
|
130
|
-
]);
|
|
111
|
+
const jsonKeywords = new Set(['false', 'null', 'true']);
|
|
131
112
|
const luaKeywords = new Set([
|
|
132
113
|
'and',
|
|
133
114
|
'break',
|
|
@@ -192,14 +173,41 @@ const yamlKeywords = new Set([
|
|
|
192
173
|
'true',
|
|
193
174
|
'yes'
|
|
194
175
|
]);
|
|
195
|
-
const bashTokenPattern =
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
const
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
176
|
+
const bashTokenPattern = new RegExp([
|
|
177
|
+
String.raw `#[^\n]*|"(?:\\.|[^"\\])*"|'[^']*'|\$\{?[A-Za-z_][\w]*\}?|`,
|
|
178
|
+
String.raw `--?[A-Za-z][\w-]*|\b[A-Za-z_][\w]*\b|\b\d+(?:\.\d+)?\b|[|&;<>()[\]{}=]+`
|
|
179
|
+
].join(''), 'g');
|
|
180
|
+
const javascriptTokenPattern = new RegExp([
|
|
181
|
+
String.raw `\/\/[^\n]*|\/\*[\s\S]*?\*\/|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|`,
|
|
182
|
+
'`(?:\\\\.|[^`\\\\])*`|',
|
|
183
|
+
String.raw `\b\d[\d._]*\b|\b[A-Za-z_$][\w$]*\b|[=+\-*%<>!?:.,;()[\]{}|&/]+`
|
|
184
|
+
].join(''), 'g');
|
|
185
|
+
const jsonTokenPattern = new RegExp([
|
|
186
|
+
String.raw `\/\/[^\n]*|\/\*[\s\S]*?\*\/|"(?:\\.|[^"\\])*"|`,
|
|
187
|
+
String.raw `\b(?:false|null|true)\b|-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b|[{},:]|\[|\]`
|
|
188
|
+
].join(''), 'gi');
|
|
189
|
+
const luaTokenPattern = new RegExp([
|
|
190
|
+
String.raw `--\[\[[\s\S]*?\]\]|--[^\n]*|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|`,
|
|
191
|
+
String.raw `\b[A-Za-z_][\w]*\b|\b\d+(?:\.\d+)?\b|[=+\-*%<>~#.,:;()[\]{}]+`
|
|
192
|
+
].join(''), 'g');
|
|
193
|
+
const markdownTokenPattern = new RegExp([
|
|
194
|
+
'```[\\s\\S]*?```|`[^`\\n]+`|',
|
|
195
|
+
String.raw `<!--[\s\S]*?-->|^#{1,6}(?=\s)|^>\s?|^\s*(?:[-+*]|\d+\.)\s+|`,
|
|
196
|
+
String.raw `\*\*|__|\*|_|\[[^\]]+\]\([^)]+\)`
|
|
197
|
+
].join(''), 'gm');
|
|
198
|
+
const markupTokenPattern = new RegExp([
|
|
199
|
+
String.raw `<!--[\s\S]*?-->|---|<\/?|\/?>|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|`,
|
|
200
|
+
String.raw `\b[A-Za-z_][\w:.-]*\b|[{}=]`
|
|
201
|
+
].join(''), 'g');
|
|
202
|
+
const sqlTokenPattern = new RegExp([
|
|
203
|
+
String.raw `--[^\n]*|\/\*[\s\S]*?\*\/|"(?:\\.|[^"\\])*"|'(?:''|[^'])*'|`,
|
|
204
|
+
String.raw `\b[A-Za-z_][\w$]*\b|\b\d+(?:\.\d+)?\b|[=+\-*%<>!.,;()[\]]+`
|
|
205
|
+
].join(''), 'g');
|
|
206
|
+
const yamlTokenPattern = new RegExp([
|
|
207
|
+
String.raw `#[^\n]*|"(?:\\.|[^"\\])*"|'(?:''|[^'])*'|\b[A-Za-z_][\w.-]*(?=\s*:)|`,
|
|
208
|
+
String.raw `\b(?:false|no|null|off|on|true|yes)\b|\b\d+(?:\.\d+)?\b|`,
|
|
209
|
+
'[{},:&*!?|>@`~-]+|\\[|\\]'
|
|
210
|
+
].join(''), 'gi');
|
|
203
211
|
const leadingWhitespacePattern = /^[\t ]*/;
|
|
204
212
|
const normalizeLanguage = (language = '') => language.trim().toLowerCase();
|
|
205
213
|
const startsWithIdentifierPattern = /^[A-Za-z_$]/;
|
|
@@ -301,7 +309,10 @@ const getMarkupTokenKind = (value, source, start) => {
|
|
|
301
309
|
const closingTagIndex = source.lastIndexOf('>', start);
|
|
302
310
|
if (openingTagIndex < closingTagIndex)
|
|
303
311
|
return undefined;
|
|
304
|
-
const beforeValue = source
|
|
312
|
+
const beforeValue = source
|
|
313
|
+
.slice(openingTagIndex + 1, start)
|
|
314
|
+
.replace('/', '')
|
|
315
|
+
.trim();
|
|
305
316
|
return beforeValue === '' ? 'keyword' : 'type';
|
|
306
317
|
};
|
|
307
318
|
const getSqlTokenKind = (value) => {
|