sdocs-dev 1.3.0 → 1.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.
@@ -11,82 +11,82 @@ const COLOR_DEFAULT = '#1c1917';
11
11
 
12
12
  // Control ID → CSS variable name (color controls only)
13
13
  const COLOR_VAR_MAP = {
14
- 'ctrl-color': '--md-color',
15
- 'ctrl-h-color': '--md-h-color',
16
- 'ctrl-h1-color': '--md-h1-color',
17
- 'ctrl-h2-color': '--md-h2-color',
18
- 'ctrl-h3-color': '--md-h3-color',
19
- 'ctrl-h4-color': '--md-h4-color',
20
- 'ctrl-p-color': '--md-p-color',
21
- 'ctrl-list-color': '--md-list-color',
14
+ '_sd_ctrl-color': '--md-color',
15
+ '_sd_ctrl-h-color': '--md-h-color',
16
+ '_sd_ctrl-h1-color': '--md-h1-color',
17
+ '_sd_ctrl-h2-color': '--md-h2-color',
18
+ '_sd_ctrl-h3-color': '--md-h3-color',
19
+ '_sd_ctrl-h4-color': '--md-h4-color',
20
+ '_sd_ctrl-p-color': '--md-p-color',
21
+ '_sd_ctrl-list-color': '--md-list-color',
22
22
  // Block cascade
23
- 'ctrl-block-bg': '--md-block-bg',
24
- 'ctrl-block-text': '--md-block-text',
25
- 'ctrl-code-bg': ['--md-code-bg', '--md-pre-bg'],
26
- 'ctrl-code-color': '--md-code-color',
27
- 'ctrl-bq-bg': '--md-bq-bg',
28
- 'ctrl-bq-color': '--md-bq-color',
29
- 'ctrl-chart-bg': '--md-chart-bg',
30
- 'ctrl-chart-text': '--md-chart-text',
23
+ '_sd_ctrl-block-bg': '--md-block-bg',
24
+ '_sd_ctrl-block-text': '--md-block-text',
25
+ '_sd_ctrl-code-bg': ['--md-code-bg', '--md-pre-bg'],
26
+ '_sd_ctrl-code-color': '--md-code-color',
27
+ '_sd_ctrl-bq-bg': '--md-bq-bg',
28
+ '_sd_ctrl-bq-color': '--md-bq-color',
29
+ '_sd_ctrl-chart-bg': '--md-chart-bg',
30
+ '_sd_ctrl-chart-text': '--md-chart-text',
31
31
  };
32
32
 
33
33
  // Cascade tree: parent → direct children
34
34
  const COLOR_CASCADE = {
35
- 'ctrl-color': ['ctrl-h-color', 'ctrl-p-color'],
36
- 'ctrl-h-color': ['ctrl-h1-color', 'ctrl-h2-color', 'ctrl-h3-color', 'ctrl-h4-color'],
37
- 'ctrl-p-color': ['ctrl-list-color'],
38
- 'ctrl-block-bg': ['ctrl-code-bg', 'ctrl-bq-bg', 'ctrl-chart-bg'],
39
- 'ctrl-block-text': ['ctrl-code-color', 'ctrl-bq-color', 'ctrl-chart-text'],
35
+ '_sd_ctrl-color': ['_sd_ctrl-h-color', '_sd_ctrl-p-color'],
36
+ '_sd_ctrl-h-color': ['_sd_ctrl-h1-color', '_sd_ctrl-h2-color', '_sd_ctrl-h3-color', '_sd_ctrl-h4-color'],
37
+ '_sd_ctrl-p-color': ['_sd_ctrl-list-color'],
38
+ '_sd_ctrl-block-bg': ['_sd_ctrl-code-bg', '_sd_ctrl-bq-bg', '_sd_ctrl-chart-bg'],
39
+ '_sd_ctrl-block-text': ['_sd_ctrl-code-color', '_sd_ctrl-bq-color', '_sd_ctrl-chart-text'],
40
40
  };
41
41
 
42
42
  // Control ID → { cssVar, suffix?, compound? }
43
43
  // Maps every non-color control to its CSS variable and optional unit suffix
44
44
  const CTRL_CSS_MAP = {
45
- 'ctrl-bg-color': { cssVar: '--md-bg' },
46
- 'ctrl-font-family': { cssVar: '--md-font-family' },
47
- 'ctrl-base-size-num': { cssVar: '--md-base-size', suffix: 'px' },
48
- 'ctrl-line-height-num': { cssVar: '--md-line-height' },
49
- 'ctrl-h-font-family': { cssVar: '--md-h-font-family' },
50
- 'ctrl-h-scale-num': { cssVar: '--md-h-scale' },
51
- 'ctrl-h-mb-num': { cssVar: '--md-h-margin-bottom', suffix: 'em' },
52
- 'ctrl-h1-size-num': { cssVar: '--md-h1-size', suffix: 'em' },
53
- 'ctrl-h1-weight': { cssVar: '--md-h1-weight' },
54
- 'ctrl-h2-size-num': { cssVar: '--md-h2-size', suffix: 'em' },
55
- 'ctrl-h2-weight': { cssVar: '--md-h2-weight' },
56
- 'ctrl-h3-size-num': { cssVar: '--md-h3-size', suffix: 'em' },
57
- 'ctrl-h3-weight': { cssVar: '--md-h3-weight' },
58
- 'ctrl-h4-size-num': { cssVar: '--md-h4-size', suffix: 'em' },
59
- 'ctrl-h4-weight': { cssVar: '--md-h4-weight' },
60
- 'ctrl-p-lh-num': { cssVar: '--md-p-line-height' },
61
- 'ctrl-p-mb-num': { cssVar: '--md-p-margin', template: '0 0 {v}em' },
62
- 'ctrl-link-color': { cssVar: '--md-link-color' },
63
- 'ctrl-link-decoration': { cssVar: '--md-link-decoration' },
64
- 'ctrl-code-font': { cssVar: '--md-code-font' },
65
- 'ctrl-bq-border-color': { cssVar: '--md-bq-border', compound: 'bq-border' },
66
- 'ctrl-bq-bw-num': { cssVar: '--md-bq-border', compound: 'bq-border' },
67
- 'ctrl-bq-size-num': { cssVar: '--md-bq-size', suffix: 'em' },
68
- 'ctrl-list-spacing-num': { cssVar: '--md-list-spacing', suffix: 'em' },
69
- 'ctrl-list-indent-num': { cssVar: '--md-list-indent', suffix: 'em' },
70
- 'ctrl-chart-accent': { cssVar: '--md-chart-accent' },
71
- 'ctrl-chart-palette': { cssVar: '--md-chart-palette' },
45
+ '_sd_ctrl-bg-color': { cssVar: '--md-bg' },
46
+ '_sd_ctrl-font-family': { cssVar: '--md-font-family' },
47
+ '_sd_ctrl-base-size-num': { cssVar: '--md-base-size', suffix: 'px' },
48
+ '_sd_ctrl-line-height-num': { cssVar: '--md-line-height' },
49
+ '_sd_ctrl-h-font-family': { cssVar: '--md-h-font-family' },
50
+ '_sd_ctrl-h-scale-num': { cssVar: '--md-h-scale' },
51
+ '_sd_ctrl-h-mb-num': { cssVar: '--md-h-margin-bottom', suffix: 'em' },
52
+ '_sd_ctrl-h1-size-num': { cssVar: '--md-h1-size', suffix: 'em' },
53
+ '_sd_ctrl-h1-weight': { cssVar: '--md-h1-weight' },
54
+ '_sd_ctrl-h2-size-num': { cssVar: '--md-h2-size', suffix: 'em' },
55
+ '_sd_ctrl-h2-weight': { cssVar: '--md-h2-weight' },
56
+ '_sd_ctrl-h3-size-num': { cssVar: '--md-h3-size', suffix: 'em' },
57
+ '_sd_ctrl-h3-weight': { cssVar: '--md-h3-weight' },
58
+ '_sd_ctrl-h4-size-num': { cssVar: '--md-h4-size', suffix: 'em' },
59
+ '_sd_ctrl-h4-weight': { cssVar: '--md-h4-weight' },
60
+ '_sd_ctrl-p-lh-num': { cssVar: '--md-p-line-height' },
61
+ '_sd_ctrl-p-mb-num': { cssVar: '--md-p-margin', template: '0 0 {v}em' },
62
+ '_sd_ctrl-link-color': { cssVar: '--md-link-color' },
63
+ '_sd_ctrl-link-decoration': { cssVar: '--md-link-decoration' },
64
+ '_sd_ctrl-code-font': { cssVar: '--md-code-font' },
65
+ '_sd_ctrl-bq-border-color': { cssVar: '--md-bq-border', compound: 'bq-border' },
66
+ '_sd_ctrl-bq-bw-num': { cssVar: '--md-bq-border', compound: 'bq-border' },
67
+ '_sd_ctrl-bq-size-num': { cssVar: '--md-bq-size', suffix: 'em' },
68
+ '_sd_ctrl-list-spacing-num': { cssVar: '--md-list-spacing', suffix: 'em' },
69
+ '_sd_ctrl-list-indent-num': { cssVar: '--md-list-indent', suffix: 'em' },
70
+ '_sd_ctrl-chart-accent': { cssVar: '--md-chart-accent' },
71
+ '_sd_ctrl-chart-palette': { cssVar: '--md-chart-palette' },
72
72
  };
73
73
 
74
74
  // Range ↔ Number input pairs
75
75
  const RANGE_NUM_PAIRS = [
76
- ['ctrl-base-size-range', 'ctrl-base-size-num'],
77
- ['ctrl-line-height-range', 'ctrl-line-height-num'],
78
- ['ctrl-h-scale-range', 'ctrl-h-scale-num'],
79
- ['ctrl-h-mb-range', 'ctrl-h-mb-num'],
80
- ['ctrl-h1-size-range', 'ctrl-h1-size-num'],
81
- ['ctrl-h2-size-range', 'ctrl-h2-size-num'],
82
- ['ctrl-h3-size-range', 'ctrl-h3-size-num'],
83
- ['ctrl-h4-size-range', 'ctrl-h4-size-num'],
84
- ['ctrl-p-lh-range', 'ctrl-p-lh-num'],
85
- ['ctrl-p-mb-range', 'ctrl-p-mb-num'],
86
- ['ctrl-bq-bw-range', 'ctrl-bq-bw-num'],
87
- ['ctrl-bq-size-range', 'ctrl-bq-size-num'],
88
- ['ctrl-list-spacing-range', 'ctrl-list-spacing-num'],
89
- ['ctrl-list-indent-range', 'ctrl-list-indent-num'],
76
+ ['_sd_ctrl-base-size-range', '_sd_ctrl-base-size-num'],
77
+ ['_sd_ctrl-line-height-range', '_sd_ctrl-line-height-num'],
78
+ ['_sd_ctrl-h-scale-range', '_sd_ctrl-h-scale-num'],
79
+ ['_sd_ctrl-h-mb-range', '_sd_ctrl-h-mb-num'],
80
+ ['_sd_ctrl-h1-size-range', '_sd_ctrl-h1-size-num'],
81
+ ['_sd_ctrl-h2-size-range', '_sd_ctrl-h2-size-num'],
82
+ ['_sd_ctrl-h3-size-range', '_sd_ctrl-h3-size-num'],
83
+ ['_sd_ctrl-h4-size-range', '_sd_ctrl-h4-size-num'],
84
+ ['_sd_ctrl-p-lh-range', '_sd_ctrl-p-lh-num'],
85
+ ['_sd_ctrl-p-mb-range', '_sd_ctrl-p-mb-num'],
86
+ ['_sd_ctrl-bq-bw-range', '_sd_ctrl-bq-bw-num'],
87
+ ['_sd_ctrl-bq-size-range', '_sd_ctrl-bq-size-num'],
88
+ ['_sd_ctrl-list-spacing-range', '_sd_ctrl-list-spacing-num'],
89
+ ['_sd_ctrl-list-indent-range', '_sd_ctrl-list-indent-num'],
90
90
  ];
91
91
 
92
92
  // ═══════════════════════════════════════════════════════
@@ -199,8 +199,8 @@ function controlToCssVars(ctrlId, value, allValues) {
199
199
 
200
200
  // Compound: bq-border combines color + width
201
201
  if (entry.compound === 'bq-border') {
202
- const col = allValues['ctrl-bq-border-color'] || '#2563EB';
203
- const w = allValues['ctrl-bq-bw-num'] || '3';
202
+ const col = allValues['_sd_ctrl-bq-border-color'] || '#2563EB';
203
+ const w = allValues['_sd_ctrl-bq-bw-num'] || '3';
204
204
  return [{ cssVar: '--md-bq-border', value: `${w}px solid ${col}` }];
205
205
  }
206
206
 
@@ -246,66 +246,66 @@ function collectStyles(values, overriddenColors) {
246
246
  const gn = id => parseFloat(values[id]) || 0;
247
247
 
248
248
  const styles = {
249
- fontFamily: gv('ctrl-font-family').replace(/['"]/g, '').split(',')[0].trim(),
250
- baseFontSize: gn('ctrl-base-size-num'),
251
- lineHeight: gn('ctrl-line-height-num'),
249
+ fontFamily: gv('_sd_ctrl-font-family').replace(/['"]/g, '').split(',')[0].trim(),
250
+ baseFontSize: gn('_sd_ctrl-base-size-num'),
251
+ lineHeight: gn('_sd_ctrl-line-height-num'),
252
252
  headers: {
253
- fontFamily: gv('ctrl-h-font-family').replace(/['"]/g, '').split(',')[0].trim(),
254
- scale: gn('ctrl-h-scale-num'),
255
- marginBottom: gn('ctrl-h-mb-num'),
253
+ fontFamily: gv('_sd_ctrl-h-font-family').replace(/['"]/g, '').split(',')[0].trim(),
254
+ scale: gn('_sd_ctrl-h-scale-num'),
255
+ marginBottom: gn('_sd_ctrl-h-mb-num'),
256
256
  },
257
- h1: { fontSize: gn('ctrl-h1-size-num'), fontWeight: parseInt(gv('ctrl-h1-weight')) || 0 },
258
- h2: { fontSize: gn('ctrl-h2-size-num'), fontWeight: parseInt(gv('ctrl-h2-weight')) || 0 },
259
- h3: { fontSize: gn('ctrl-h3-size-num'), fontWeight: parseInt(gv('ctrl-h3-weight')) || 0 },
260
- h4: { fontSize: gn('ctrl-h4-size-num'), fontWeight: parseInt(gv('ctrl-h4-weight')) || 0 },
257
+ h1: { fontSize: gn('_sd_ctrl-h1-size-num'), fontWeight: parseInt(gv('_sd_ctrl-h1-weight')) || 0 },
258
+ h2: { fontSize: gn('_sd_ctrl-h2-size-num'), fontWeight: parseInt(gv('_sd_ctrl-h2-weight')) || 0 },
259
+ h3: { fontSize: gn('_sd_ctrl-h3-size-num'), fontWeight: parseInt(gv('_sd_ctrl-h3-weight')) || 0 },
260
+ h4: { fontSize: gn('_sd_ctrl-h4-size-num'), fontWeight: parseInt(gv('_sd_ctrl-h4-weight')) || 0 },
261
261
  p: {
262
- lineHeight: gn('ctrl-p-lh-num'),
263
- marginBottom: gn('ctrl-p-mb-num'),
262
+ lineHeight: gn('_sd_ctrl-p-lh-num'),
263
+ marginBottom: gn('_sd_ctrl-p-mb-num'),
264
264
  },
265
- link: { color: gv('ctrl-link-color'), decoration: gv('ctrl-link-decoration') },
265
+ link: { color: gv('_sd_ctrl-link-color'), decoration: gv('_sd_ctrl-link-decoration') },
266
266
  code: {
267
- font: gv('ctrl-code-font').replace(/['"]/g, '').split(',')[0].trim(),
267
+ font: gv('_sd_ctrl-code-font').replace(/['"]/g, '').split(',')[0].trim(),
268
268
  },
269
269
  blockquote: {
270
- borderColor: gv('ctrl-bq-border-color'),
271
- borderWidth: gn('ctrl-bq-bw-num'),
272
- fontSize: gn('ctrl-bq-size-num'),
270
+ borderColor: gv('_sd_ctrl-bq-border-color'),
271
+ borderWidth: gn('_sd_ctrl-bq-bw-num'),
272
+ fontSize: gn('_sd_ctrl-bq-size-num'),
273
273
  },
274
274
  };
275
275
 
276
276
  styles.list = {
277
- spacing: gn('ctrl-list-spacing-num'),
278
- indent: gn('ctrl-list-indent-num'),
277
+ spacing: gn('_sd_ctrl-list-spacing-num'),
278
+ indent: gn('_sd_ctrl-list-indent-num'),
279
279
  };
280
280
 
281
281
  // Only emit colors that were explicitly overridden
282
- if (overriddenColors.has('ctrl-bg-color')) styles.background = gv('ctrl-bg-color');
283
- if (overriddenColors.has('ctrl-color')) styles.color = gv('ctrl-color');
284
- if (overriddenColors.has('ctrl-h-color')) styles.headers.color = gv('ctrl-h-color');
285
- if (overriddenColors.has('ctrl-h1-color')) styles.h1.color = gv('ctrl-h1-color');
286
- if (overriddenColors.has('ctrl-h2-color')) styles.h2.color = gv('ctrl-h2-color');
287
- if (overriddenColors.has('ctrl-h3-color')) styles.h3.color = gv('ctrl-h3-color');
288
- if (overriddenColors.has('ctrl-h4-color')) styles.h4.color = gv('ctrl-h4-color');
289
- if (overriddenColors.has('ctrl-p-color')) styles.p.color = gv('ctrl-p-color');
290
- if (overriddenColors.has('ctrl-list-color')) styles.list.color = gv('ctrl-list-color');
282
+ if (overriddenColors.has('_sd_ctrl-bg-color')) styles.background = gv('_sd_ctrl-bg-color');
283
+ if (overriddenColors.has('_sd_ctrl-color')) styles.color = gv('_sd_ctrl-color');
284
+ if (overriddenColors.has('_sd_ctrl-h-color')) styles.headers.color = gv('_sd_ctrl-h-color');
285
+ if (overriddenColors.has('_sd_ctrl-h1-color')) styles.h1.color = gv('_sd_ctrl-h1-color');
286
+ if (overriddenColors.has('_sd_ctrl-h2-color')) styles.h2.color = gv('_sd_ctrl-h2-color');
287
+ if (overriddenColors.has('_sd_ctrl-h3-color')) styles.h3.color = gv('_sd_ctrl-h3-color');
288
+ if (overriddenColors.has('_sd_ctrl-h4-color')) styles.h4.color = gv('_sd_ctrl-h4-color');
289
+ if (overriddenColors.has('_sd_ctrl-p-color')) styles.p.color = gv('_sd_ctrl-p-color');
290
+ if (overriddenColors.has('_sd_ctrl-list-color')) styles.list.color = gv('_sd_ctrl-list-color');
291
291
 
292
292
  // Block cascade colors
293
- if (overriddenColors.has('ctrl-block-bg') || overriddenColors.has('ctrl-block-text')) {
293
+ if (overriddenColors.has('_sd_ctrl-block-bg') || overriddenColors.has('_sd_ctrl-block-text')) {
294
294
  styles.blocks = {};
295
- if (overriddenColors.has('ctrl-block-bg')) styles.blocks.background = gv('ctrl-block-bg');
296
- if (overriddenColors.has('ctrl-block-text')) styles.blocks.color = gv('ctrl-block-text');
295
+ if (overriddenColors.has('_sd_ctrl-block-bg')) styles.blocks.background = gv('_sd_ctrl-block-bg');
296
+ if (overriddenColors.has('_sd_ctrl-block-text')) styles.blocks.color = gv('_sd_ctrl-block-text');
297
297
  }
298
- if (overriddenColors.has('ctrl-code-bg')) styles.code.background = gv('ctrl-code-bg');
299
- if (overriddenColors.has('ctrl-code-color')) styles.code.color = gv('ctrl-code-color');
300
- if (overriddenColors.has('ctrl-bq-bg')) styles.blockquote.background = gv('ctrl-bq-bg');
301
- if (overriddenColors.has('ctrl-bq-color')) styles.blockquote.color = gv('ctrl-bq-color');
298
+ if (overriddenColors.has('_sd_ctrl-code-bg')) styles.code.background = gv('_sd_ctrl-code-bg');
299
+ if (overriddenColors.has('_sd_ctrl-code-color')) styles.code.color = gv('_sd_ctrl-code-color');
300
+ if (overriddenColors.has('_sd_ctrl-bq-bg')) styles.blockquote.background = gv('_sd_ctrl-bq-bg');
301
+ if (overriddenColors.has('_sd_ctrl-bq-color')) styles.blockquote.color = gv('_sd_ctrl-bq-color');
302
302
 
303
303
  // Chart styles
304
304
  var chartObj = {};
305
- if (overriddenColors.has('ctrl-chart-accent')) chartObj.accent = gv('ctrl-chart-accent');
306
- if (gv('ctrl-chart-palette') && gv('ctrl-chart-palette') !== 'monochrome') chartObj.palette = gv('ctrl-chart-palette');
307
- if (overriddenColors.has('ctrl-chart-bg')) chartObj.background = gv('ctrl-chart-bg');
308
- if (overriddenColors.has('ctrl-chart-text')) chartObj.textColor = gv('ctrl-chart-text');
305
+ if (overriddenColors.has('_sd_ctrl-chart-accent')) chartObj.accent = gv('_sd_ctrl-chart-accent');
306
+ if (gv('_sd_ctrl-chart-palette') && gv('_sd_ctrl-chart-palette') !== 'monochrome') chartObj.palette = gv('_sd_ctrl-chart-palette');
307
+ if (overriddenColors.has('_sd_ctrl-chart-bg')) chartObj.background = gv('_sd_ctrl-chart-bg');
308
+ if (overriddenColors.has('_sd_ctrl-chart-text')) chartObj.textColor = gv('_sd_ctrl-chart-text');
309
309
  if (Object.keys(chartObj).length) styles.chart = chartObj;
310
310
 
311
311
  return styles;
@@ -322,80 +322,80 @@ function stylesToControls(styles) {
322
322
  const controls = {};
323
323
  const overridden = new Set();
324
324
 
325
- if (styles.fontFamily) controls['ctrl-font-family'] = styles.fontFamily;
326
- if (styles.baseFontSize) controls['ctrl-base-size-num'] = styles.baseFontSize;
327
- if (styles.lineHeight) controls['ctrl-line-height-num'] = styles.lineHeight;
325
+ if (styles.fontFamily) controls['_sd_ctrl-font-family'] = styles.fontFamily;
326
+ if (styles.baseFontSize) controls['_sd_ctrl-base-size-num'] = styles.baseFontSize;
327
+ if (styles.lineHeight) controls['_sd_ctrl-line-height-num'] = styles.lineHeight;
328
328
 
329
329
  if (styles.background) {
330
- controls['ctrl-bg-color'] = styles.background;
331
- overridden.add('ctrl-bg-color');
330
+ controls['_sd_ctrl-bg-color'] = styles.background;
331
+ overridden.add('_sd_ctrl-bg-color');
332
332
  }
333
333
  if (styles.color) {
334
- controls['ctrl-color'] = styles.color;
335
- overridden.add('ctrl-color');
334
+ controls['_sd_ctrl-color'] = styles.color;
335
+ overridden.add('_sd_ctrl-color');
336
336
  }
337
337
 
338
338
  const h = styles.headers || {};
339
- if (h.fontFamily) controls['ctrl-h-font-family'] = h.fontFamily;
340
- if (h.scale) controls['ctrl-h-scale-num'] = h.scale;
341
- if (h.marginBottom) controls['ctrl-h-mb-num'] = h.marginBottom;
339
+ if (h.fontFamily) controls['_sd_ctrl-h-font-family'] = h.fontFamily;
340
+ if (h.scale) controls['_sd_ctrl-h-scale-num'] = h.scale;
341
+ if (h.marginBottom) controls['_sd_ctrl-h-mb-num'] = h.marginBottom;
342
342
  if (h.color) {
343
- controls['ctrl-h-color'] = h.color;
344
- overridden.add('ctrl-h-color');
343
+ controls['_sd_ctrl-h-color'] = h.color;
344
+ overridden.add('_sd_ctrl-h-color');
345
345
  }
346
346
 
347
347
  ['h1', 'h2', 'h3', 'h4'].forEach(t => {
348
348
  const hs = styles[t] || {};
349
- if (hs.fontSize) controls[`ctrl-${t}-size-num`] = hs.fontSize;
350
- if (hs.fontWeight) controls[`ctrl-${t}-weight`] = String(hs.fontWeight);
349
+ if (hs.fontSize) controls[`_sd_ctrl-${t}-size-num`] = hs.fontSize;
350
+ if (hs.fontWeight) controls[`_sd_ctrl-${t}-weight`] = String(hs.fontWeight);
351
351
  if (hs.color) {
352
- controls[`ctrl-${t}-color`] = hs.color;
353
- overridden.add(`ctrl-${t}-color`);
352
+ controls[`_sd_ctrl-${t}-color`] = hs.color;
353
+ overridden.add(`_sd_ctrl-${t}-color`);
354
354
  }
355
355
  });
356
356
 
357
357
  const p = styles.p || {};
358
- if (p.lineHeight) controls['ctrl-p-lh-num'] = p.lineHeight;
359
- if (p.marginBottom) controls['ctrl-p-mb-num'] = p.marginBottom;
358
+ if (p.lineHeight) controls['_sd_ctrl-p-lh-num'] = p.lineHeight;
359
+ if (p.marginBottom) controls['_sd_ctrl-p-mb-num'] = p.marginBottom;
360
360
  if (p.color) {
361
- controls['ctrl-p-color'] = p.color;
362
- overridden.add('ctrl-p-color');
361
+ controls['_sd_ctrl-p-color'] = p.color;
362
+ overridden.add('_sd_ctrl-p-color');
363
363
  }
364
364
 
365
365
  const lk = styles.link || {};
366
- if (lk.color) controls['ctrl-link-color'] = lk.color;
367
- if (lk.decoration) controls['ctrl-link-decoration'] = lk.decoration;
366
+ if (lk.color) controls['_sd_ctrl-link-color'] = lk.color;
367
+ if (lk.decoration) controls['_sd_ctrl-link-decoration'] = lk.decoration;
368
368
 
369
369
  // Blocks cascade parent
370
370
  const bl = styles.blocks || {};
371
- if (bl.background) { controls['ctrl-block-bg'] = bl.background; overridden.add('ctrl-block-bg'); }
372
- if (bl.color) { controls['ctrl-block-text'] = bl.color; overridden.add('ctrl-block-text'); }
371
+ if (bl.background) { controls['_sd_ctrl-block-bg'] = bl.background; overridden.add('_sd_ctrl-block-bg'); }
372
+ if (bl.color) { controls['_sd_ctrl-block-text'] = bl.color; overridden.add('_sd_ctrl-block-text'); }
373
373
 
374
374
  const cd = styles.code || {};
375
- if (cd.font) controls['ctrl-code-font'] = cd.font;
376
- if (cd.background) { controls['ctrl-code-bg'] = cd.background; overridden.add('ctrl-code-bg'); }
377
- if (cd.color) { controls['ctrl-code-color'] = cd.color; overridden.add('ctrl-code-color'); }
375
+ if (cd.font) controls['_sd_ctrl-code-font'] = cd.font;
376
+ if (cd.background) { controls['_sd_ctrl-code-bg'] = cd.background; overridden.add('_sd_ctrl-code-bg'); }
377
+ if (cd.color) { controls['_sd_ctrl-code-color'] = cd.color; overridden.add('_sd_ctrl-code-color'); }
378
378
 
379
379
  const bq = styles.blockquote || {};
380
- if (bq.borderColor) controls['ctrl-bq-border-color'] = bq.borderColor;
381
- if (bq.borderWidth) controls['ctrl-bq-bw-num'] = bq.borderWidth;
382
- if (bq.background) { controls['ctrl-bq-bg'] = bq.background; overridden.add('ctrl-bq-bg'); }
383
- if (bq.fontSize) controls['ctrl-bq-size-num'] = bq.fontSize;
384
- if (bq.color) { controls['ctrl-bq-color'] = bq.color; overridden.add('ctrl-bq-color'); }
380
+ if (bq.borderColor) controls['_sd_ctrl-bq-border-color'] = bq.borderColor;
381
+ if (bq.borderWidth) controls['_sd_ctrl-bq-bw-num'] = bq.borderWidth;
382
+ if (bq.background) { controls['_sd_ctrl-bq-bg'] = bq.background; overridden.add('_sd_ctrl-bq-bg'); }
383
+ if (bq.fontSize) controls['_sd_ctrl-bq-size-num'] = bq.fontSize;
384
+ if (bq.color) { controls['_sd_ctrl-bq-color'] = bq.color; overridden.add('_sd_ctrl-bq-color'); }
385
385
 
386
386
  const ll = styles.list || {};
387
- if (ll.spacing) controls['ctrl-list-spacing-num'] = ll.spacing;
388
- if (ll.indent) controls['ctrl-list-indent-num'] = ll.indent;
387
+ if (ll.spacing) controls['_sd_ctrl-list-spacing-num'] = ll.spacing;
388
+ if (ll.indent) controls['_sd_ctrl-list-indent-num'] = ll.indent;
389
389
  if (ll.color) {
390
- controls['ctrl-list-color'] = ll.color;
391
- overridden.add('ctrl-list-color');
390
+ controls['_sd_ctrl-list-color'] = ll.color;
391
+ overridden.add('_sd_ctrl-list-color');
392
392
  }
393
393
 
394
394
  const ch = styles.chart || {};
395
- if (ch.accent) { controls['ctrl-chart-accent'] = ch.accent; overridden.add('ctrl-chart-accent'); }
396
- if (ch.palette) controls['ctrl-chart-palette'] = ch.palette;
397
- if (ch.background) { controls['ctrl-chart-bg'] = ch.background; overridden.add('ctrl-chart-bg'); }
398
- if (ch.textColor) { controls['ctrl-chart-text'] = ch.textColor; overridden.add('ctrl-chart-text'); }
395
+ if (ch.accent) { controls['_sd_ctrl-chart-accent'] = ch.accent; overridden.add('_sd_ctrl-chart-accent'); }
396
+ if (ch.palette) controls['_sd_ctrl-chart-palette'] = ch.palette;
397
+ if (ch.background) { controls['_sd_ctrl-chart-bg'] = ch.background; overridden.add('_sd_ctrl-chart-bg'); }
398
+ if (ch.textColor) { controls['_sd_ctrl-chart-text'] = ch.textColor; overridden.add('_sd_ctrl-chart-text'); }
399
399
 
400
400
  return { controls, overriddenColors: overridden };
401
401
  }
@@ -405,9 +405,9 @@ function stylesToControls(styles) {
405
405
  // ═══════════════════════════════════════════════════════
406
406
 
407
407
  var STANDALONE_COLOR_IDS = [
408
- 'ctrl-bg-color','ctrl-link-color',
409
- 'ctrl-bq-border-color',
410
- 'ctrl-chart-accent',
408
+ '_sd_ctrl-bg-color','_sd_ctrl-link-color',
409
+ '_sd_ctrl-bq-border-color',
410
+ '_sd_ctrl-chart-accent',
411
411
  ];
412
412
 
413
413
  var CASCADE_COLOR_IDS = Object.keys(COLOR_VAR_MAP);
@@ -426,34 +426,34 @@ function parseDarkBlock(block) {
426
426
  if (!block) return {};
427
427
  var colors = {};
428
428
 
429
- if (block.background) colors['ctrl-bg-color'] = block.background;
430
- if (block.color) colors['ctrl-color'] = block.color;
429
+ if (block.background) colors['_sd_ctrl-bg-color'] = block.background;
430
+ if (block.color) colors['_sd_ctrl-color'] = block.color;
431
431
 
432
- if (block.headers && block.headers.color) colors['ctrl-h-color'] = block.headers.color;
432
+ if (block.headers && block.headers.color) colors['_sd_ctrl-h-color'] = block.headers.color;
433
433
  ['h1','h2','h3','h4'].forEach(function(t) {
434
434
  var obj = block[t];
435
- if (obj && obj.color) colors['ctrl-' + t + '-color'] = obj.color;
435
+ if (obj && obj.color) colors['_sd_ctrl-' + t + '-color'] = obj.color;
436
436
  });
437
- if (block.p && block.p.color) colors['ctrl-p-color'] = block.p.color;
438
- if (block.list && block.list.color) colors['ctrl-list-color'] = block.list.color;
439
- if (block.link && block.link.color) colors['ctrl-link-color'] = block.link.color;
437
+ if (block.p && block.p.color) colors['_sd_ctrl-p-color'] = block.p.color;
438
+ if (block.list && block.list.color) colors['_sd_ctrl-list-color'] = block.list.color;
439
+ if (block.link && block.link.color) colors['_sd_ctrl-link-color'] = block.link.color;
440
440
 
441
441
  if (block.blocks) {
442
- if (block.blocks.background) colors['ctrl-block-bg'] = block.blocks.background;
443
- if (block.blocks.color) colors['ctrl-block-text'] = block.blocks.color;
442
+ if (block.blocks.background) colors['_sd_ctrl-block-bg'] = block.blocks.background;
443
+ if (block.blocks.color) colors['_sd_ctrl-block-text'] = block.blocks.color;
444
444
  }
445
445
  if (block.code) {
446
- if (block.code.background) colors['ctrl-code-bg'] = block.code.background;
447
- if (block.code.color) colors['ctrl-code-color'] = block.code.color;
446
+ if (block.code.background) colors['_sd_ctrl-code-bg'] = block.code.background;
447
+ if (block.code.color) colors['_sd_ctrl-code-color'] = block.code.color;
448
448
  }
449
449
  if (block.blockquote) {
450
- if (block.blockquote.borderColor) colors['ctrl-bq-border-color'] = block.blockquote.borderColor;
451
- if (block.blockquote.background) colors['ctrl-bq-bg'] = block.blockquote.background;
452
- if (block.blockquote.color) colors['ctrl-bq-color'] = block.blockquote.color;
450
+ if (block.blockquote.borderColor) colors['_sd_ctrl-bq-border-color'] = block.blockquote.borderColor;
451
+ if (block.blockquote.background) colors['_sd_ctrl-bq-bg'] = block.blockquote.background;
452
+ if (block.blockquote.color) colors['_sd_ctrl-bq-color'] = block.blockquote.color;
453
453
  }
454
454
  if (block.chart) {
455
- if (block.chart.background) colors['ctrl-chart-bg'] = block.chart.background;
456
- if (block.chart.textColor) colors['ctrl-chart-text'] = block.chart.textColor;
455
+ if (block.chart.background) colors['_sd_ctrl-chart-bg'] = block.chart.background;
456
+ if (block.chart.textColor) colors['_sd_ctrl-chart-text'] = block.chart.textColor;
457
457
  }
458
458
 
459
459
  return colors;