@nowline/embed 0.0.0-dev.20261007201417.g52bd711 → 0.0.0-dev.20261007204002.g0c1b43f

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/meta.json CHANGED
@@ -5671,17 +5671,17 @@
5671
5671
  "format": "esm"
5672
5672
  },
5673
5673
  "../core/dist/i18n/codes.js": {
5674
- "bytes": 2317,
5674
+ "bytes": 2477,
5675
5675
  "imports": [],
5676
5676
  "format": "esm"
5677
5677
  },
5678
5678
  "../core/dist/i18n/messages.en.js": {
5679
- "bytes": 18753,
5679
+ "bytes": 20058,
5680
5680
  "imports": [],
5681
5681
  "format": "esm"
5682
5682
  },
5683
5683
  "../core/dist/i18n/messages.fr.js": {
5684
- "bytes": 21864,
5684
+ "bytes": 23729,
5685
5685
  "imports": [],
5686
5686
  "format": "esm"
5687
5687
  },
@@ -5790,7 +5790,7 @@
5790
5790
  "format": "esm"
5791
5791
  },
5792
5792
  "../core/dist/language/nowline-validator.js": {
5793
- "bytes": 80915,
5793
+ "bytes": 81710,
5794
5794
  "imports": [
5795
5795
  {
5796
5796
  "path": "../../node_modules/.pnpm/langium@4.4.0/node_modules/langium/lib/index.js",
@@ -9838,7 +9838,7 @@
9838
9838
  "imports": [],
9839
9839
  "exports": [],
9840
9840
  "inputs": {},
9841
- "bytes": 3764529
9841
+ "bytes": 3770522
9842
9842
  },
9843
9843
  "dist/nowline.min.js": {
9844
9844
  "imports": [],
@@ -10791,10 +10791,10 @@
10791
10791
  "bytesInOutput": 182
10792
10792
  },
10793
10793
  "../core/dist/i18n/messages.en.js": {
10794
- "bytesInOutput": 13920
10794
+ "bytesInOutput": 15111
10795
10795
  },
10796
10796
  "../core/dist/i18n/messages.fr.js": {
10797
- "bytesInOutput": 17420
10797
+ "bytesInOutput": 19110
10798
10798
  },
10799
10799
  "../core/dist/i18n/messages.fr-CA.js": {
10800
10800
  "bytesInOutput": 10
@@ -10821,7 +10821,7 @@
10821
10821
  "bytesInOutput": 9921
10822
10822
  },
10823
10823
  "../core/dist/language/nowline-validator.js": {
10824
- "bytesInOutput": 26556
10824
+ "bytesInOutput": 26242
10825
10825
  },
10826
10826
  "../core/dist/language/include-waves.js": {
10827
10827
  "bytesInOutput": 3829
@@ -10977,13 +10977,13 @@
10977
10977
  "bytesInOutput": 4941
10978
10978
  },
10979
10979
  "../renderer/dist/svg/xml.js": {
10980
- "bytesInOutput": 688
10980
+ "bytesInOutput": 689
10981
10981
  },
10982
10982
  "../renderer/dist/svg/shadow.js": {
10983
- "bytesInOutput": 727
10983
+ "bytesInOutput": 728
10984
10984
  },
10985
10985
  "../renderer/dist/svg/render.js": {
10986
- "bytesInOutput": 29887
10986
+ "bytesInOutput": 29971
10987
10987
  },
10988
10988
  "../renderer/dist/index.js": {
10989
10989
  "bytesInOutput": 0
@@ -11013,7 +11013,7 @@
11013
11013
  "bytesInOutput": 257
11014
11014
  }
11015
11015
  },
11016
- "bytes": 730759
11016
+ "bytes": 733412
11017
11017
  }
11018
11018
  }
11019
11019
  }
@@ -1,4 +1,4 @@
1
- /*! @nowline/embed 0.0.0-dev.20261007201417.g52bd711 sha=52bd711 built=2026-10-07T13:13:07-07:00 */
1
+ /*! @nowline/embed 0.0.0-dev.20261007204002.g0c1b43f sha=0c1b43f built=2026-10-07T13:39:28-07:00 */
2
2
  var __create = Object.create;
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -29915,10 +29915,20 @@ var messages = {
29915
29915
  "NL.E0801": (a) => `Invalid color "${a.value}" for "${a.key}". Use a named color, hex value, or "none".`,
29916
29916
  "NL.E0802": (a) => `Invalid value "${a.value}" for "${a.key}". Allowed: ${a.allowed}.`,
29917
29917
  "NL.E0803": (a) => `Unknown style property "${a.key}".`,
29918
+ "NL.E0804": (a) => `Raw style property "${a.key}" is not allowed on ${a.entity}. Declare a named style in config and reference it via "style:id".`,
29919
+ "NL.E0805": (a) => `Symbol id "${a.name}" collides with a built-in icon name. Reserved built-ins: ${a.builtins}.`,
29920
+ "NL.E0806": (a) => `Symbol "${a.name}" requires a "unicode:" property (e.g. unicode:"\u{1F4B0}" or unicode:"\\u{1F464}").`,
29921
+ "NL.E0807": (a) => `Symbol "${a.name}" unicode: must be a non-empty value.`,
29922
+ "NL.E0808": (a) => `Symbol "${a.name}" ascii: must be 1-3 ASCII characters (got ${a.length} character${a.length === 1 ? "" : "s"}).`,
29923
+ "NL.E0809": (a) => `Unknown symbol property "${a.key}". Allowed: unicode, ascii, link, description.`,
29924
+ "NL.E0810": (a) => `Duplicate symbol id "${a.name}". First declared at ${a.location}.`,
29925
+ "NL.E0811": (a) => `${a.key}: "${a.value}" is neither a built-in (${a.builtins}) nor a declared symbol. Add "symbol ${a.value} unicode:..." earlier in config or use a quoted Unicode literal.`,
29926
+ "NL.E0812": (a) => `${a.key}: symbol "${a.value}" is referenced before its declaration. Move "symbol ${a.value}" above this entry.`,
29918
29927
  // Warnings
29919
29928
  "NL.W0700": (a) => `Unknown property "${a.key}" on ${a.entity}. The renderer ignores it.${a.suggested ? ` Did you mean "${a.suggested}"?` : ""}`,
29920
29929
  "NL.W0701": (a) => `Wave "${a.id}" in "${a.path}" differs from this file's definition (${a.fields.map((f) => `${f.field} ${f.there === "" ? "none" : `"${f.there}"`} there, ${f.here === "" ? "none" : `"${f.here}"`} here`).join("; ")}); this file's definition is used.`,
29921
29930
  "NL.W0702": (a) => `"wave:" on ${a.target.kind === "default" ? `"default ${a.target.entityType}"` : !a.target.name && a.target.line !== void 0 ? `the ${a.target.kind === "parallel" ? "parallel block" : a.target.kind} on line ${a.target.line}` : `${a.target.kind} "${a.target.name}"`} is ignored: this roadmap declares no waves. Declare waves with "wave <id>" to use it, or remove the property.`,
29931
+ "NL.W0703": (a) => `"${a.key}" on "default ${a.entityType}" is ignored: it is a roadmap-only style key. Set it on "default roadmap" instead.`,
29922
29932
  // Waves
29923
29933
  "NL.E1100": (a) => `Wave ${a.title === void 0 ? `on line ${a.line}` : `"${a.title}"`} needs an explicit identifier so work can reference it with wave:<id>, e.g. wave build "Build".`,
29924
29934
  "NL.E1101": (a) => {
@@ -30163,10 +30173,21 @@ var messages2 = {
30163
30173
  "NL.E0801": (a) => `Couleur invalide \xAB\xA0${a.value}\xA0\xBB pour \xAB\xA0${a.key}\xA0\xBB. Utilisez une couleur nomm\xE9e, une valeur hexad\xE9cimale ou \xAB\xA0none\xA0\xBB.`,
30164
30174
  "NL.E0802": (a) => `Valeur invalide \xAB\xA0${a.value}\xA0\xBB pour \xAB\xA0${a.key}\xA0\xBB. Valeurs admises\xA0: ${a.allowed}.`,
30165
30175
  "NL.E0803": (a) => `Propri\xE9t\xE9 de style inconnue \xAB\xA0${a.key}\xA0\xBB.`,
30176
+ "NL.E0804": (a) => `La propri\xE9t\xE9 de style brute \xAB\xA0${a.key}\xA0\xBB n'est pas permise sur ${a.entity}. D\xE9clarez un style nomm\xE9 dans la config et r\xE9f\xE9rencez-le avec \xAB\xA0style:id\xA0\xBB.`,
30177
+ "NL.E0805": (a) => `L'identifiant de symbole \xAB\xA0${a.name}\xA0\xBB entre en conflit avec le nom d'une ic\xF4ne int\xE9gr\xE9e. Noms r\xE9serv\xE9s\xA0: ${a.builtins}.`,
30178
+ "NL.E0806": (a) => `Le symbole \xAB\xA0${a.name}\xA0\xBB exige une propri\xE9t\xE9 \xAB\xA0unicode:\xA0\xBB (p.\xA0ex. unicode:"\u{1F4B0}" ou unicode:"\\u{1F464}").`,
30179
+ "NL.E0807": (a) => `La propri\xE9t\xE9 \xAB\xA0unicode:\xA0\xBB du symbole \xAB\xA0${a.name}\xA0\xBB doit avoir une valeur non vide.`,
30180
+ // Le français met le singulier à 0 et à 1.
30181
+ "NL.E0808": (a) => `La propri\xE9t\xE9 \xAB\xA0ascii:\xA0\xBB du symbole \xAB\xA0${a.name}\xA0\xBB doit compter de 1 \xE0 3 caract\xE8res ASCII (re\xE7u\xA0: ${a.length} caract\xE8re${a.length > 1 ? "s" : ""}).`,
30182
+ "NL.E0809": (a) => `Propri\xE9t\xE9 de symbole inconnue \xAB\xA0${a.key}\xA0\xBB. Valeurs admises\xA0: unicode, ascii, link, description.`,
30183
+ "NL.E0810": (a) => `Identifiant de symbole en double \xAB\xA0${a.name}\xA0\xBB. Premi\xE8re d\xE9claration \xE0 ${a.location}.`,
30184
+ "NL.E0811": (a) => `${a.key}: \xAB\xA0${a.value}\xA0\xBB n'est ni une ic\xF4ne int\xE9gr\xE9e (${a.builtins}) ni un symbole d\xE9clar\xE9. Ajoutez \xAB\xA0symbol ${a.value} unicode:...\xA0\xBB plus haut dans la config ou utilisez un litt\xE9ral Unicode entre guillemets.`,
30185
+ "NL.E0812": (a) => `${a.key}: le symbole \xAB\xA0${a.value}\xA0\xBB est r\xE9f\xE9renc\xE9 avant sa d\xE9claration. D\xE9placez \xAB\xA0symbol ${a.value}\xA0\xBB au-dessus de cette entr\xE9e.`,
30166
30186
  // Avertissements
30167
30187
  "NL.W0700": (a) => `Propri\xE9t\xE9 inconnue \xAB\xA0${a.key}\xA0\xBB sur ${a.entity}. Le moteur de rendu l'ignore.${a.suggested ? ` Vouliez-vous dire \xAB\xA0${a.suggested}\xA0\xBB\xA0?` : ""}`,
30168
30188
  "NL.W0701": (a) => `La vague ${q(a.id)} dans ${q(a.path)} diff\xE8re de la d\xE9finition de ce fichier (${a.fields.map((f) => `${FIELD_FR[f.field]} ${noneIfEmpty(f.there)} l\xE0-bas, ${noneIfEmpty(f.here)} ici`).join("\xA0; ")})\xA0; la d\xE9finition de ce fichier est utilis\xE9e.`,
30169
30189
  "NL.W0702": (a) => `\xAB\xA0wave:\xA0\xBB sur ${a.target.kind === "default" ? q(`default ${a.target.entityType}`) : !a.target.name && a.target.line !== void 0 ? a.target.kind === "item" || a.target.kind === "group" || a.target.kind === "parallel" ? entityText2({ kind: a.target.kind, name: "", line: a.target.line }) : `${a.target.kind} \xE0 la ligne ${a.target.line}` : `${a.target.kind} ${q(a.target.name)}`} est ignor\xE9\xA0: cette roadmap ne d\xE9clare aucune vague. D\xE9clarez des vagues avec \xAB\xA0wave <id>\xA0\xBB pour l'utiliser, ou retirez la propri\xE9t\xE9.`,
30190
+ "NL.W0703": (a) => `${q(a.key)} sur ${q(`default ${a.entityType}`)} est ignor\xE9\xA0: c'est une cl\xE9 de style propre \xE0 la roadmap. D\xE9finissez-la plut\xF4t sur \xAB\xA0default roadmap\xA0\xBB.`,
30170
30191
  // Vagues
30171
30192
  "NL.E1100": (a) => `La vague ${a.title === void 0 ? `\xE0 la ligne ${a.line}` : q(a.title)} exige un identifiant explicite pour que le travail puisse la r\xE9f\xE9rencer avec wave:<id>, p.\xA0ex. wave build "Build".`,
30172
30193
  "NL.E1101": (a) => {
@@ -31686,6 +31707,12 @@ var STYLE_PROP_KEYS = /* @__PURE__ */ new Set([
31686
31707
  "non-working"
31687
31708
  ]);
31688
31709
  var NON_WORKING_VALUES = /* @__PURE__ */ new Set(["hide", "show"]);
31710
+ var ROADMAP_ONLY_STYLE_KEYS = /* @__PURE__ */ new Set([
31711
+ "header-height",
31712
+ "timeline-position",
31713
+ "minor-grid",
31714
+ "non-working"
31715
+ ]);
31689
31716
  var BUILTIN_CAPACITY_ICONS2 = /* @__PURE__ */ new Set([
31690
31717
  "none",
31691
31718
  "multiplier",
@@ -32477,7 +32504,10 @@ var NowlineValidator = class {
32477
32504
  for (const prop of node.properties) {
32478
32505
  const key = propKey2(prop);
32479
32506
  if (STYLE_PROP_KEYS.has(key)) {
32480
- accept("error", `Raw style property "${key}" is not allowed on ${describeNode(node)}. Declare a named style in config and reference it via "style:id".`, { node: prop });
32507
+ acceptTr(accept, "error", { node: prop }, "NL.E0804", {
32508
+ key,
32509
+ entity: describeNode(node)
32510
+ });
32481
32511
  }
32482
32512
  }
32483
32513
  }
@@ -32637,6 +32667,7 @@ var NowlineValidator = class {
32637
32667
  }
32638
32668
  }
32639
32669
  // --- Defaults rules 21-23: entity-type whitelist, duplicate-per-entity, banned props ---
32670
+ // Plus rule 20's roadmap-only keys on another entity's default (NL.W0703).
32640
32671
  checkDefaultDeclaration(decl, accept) {
32641
32672
  if (!DEFAULT_ENTITY_TYPES.has(decl.entityType)) {
32642
32673
  accept("error", `"${decl.entityType}" is not a supported entity type for default. Allowed: ${[...DEFAULT_ENTITY_TYPES].join(", ")}.`, { node: decl, property: "entityType" });
@@ -32664,6 +32695,17 @@ var NowlineValidator = class {
32664
32695
  }
32665
32696
  }
32666
32697
  }
32698
+ if (decl.entityType !== "roadmap") {
32699
+ for (const prop of decl.properties) {
32700
+ const key = propKey2(prop);
32701
+ if (ROADMAP_ONLY_STYLE_KEYS.has(key)) {
32702
+ acceptTr(accept, "warning", { node: prop, property: "key" }, "NL.W0703", {
32703
+ key,
32704
+ entityType: decl.entityType
32705
+ });
32706
+ }
32707
+ }
32708
+ }
32667
32709
  }
32668
32710
  // --- Rule 7 (calendar): calendar block only valid when roadmap calendar:custom ---
32669
32711
  // Rule 8: custom calendar requires all four fields.
@@ -33026,28 +33068,33 @@ var NowlineValidator = class {
33026
33068
  // `unicode:foo`, which we treat permissively (it's a single-grapheme literal).
33027
33069
  checkSymbolDeclaration(decl, accept) {
33028
33070
  if (decl.name && BUILTIN_ICON_NAMES.has(decl.name)) {
33029
- accept("error", `Symbol id "${decl.name}" collides with a built-in icon name. Reserved built-ins: ${[...BUILTIN_ICON_NAMES].sort().join(", ")}.`, { node: decl, property: "name" });
33071
+ acceptTr(accept, "error", { node: decl, property: "name" }, "NL.E0805", {
33072
+ name: decl.name,
33073
+ builtins: [...BUILTIN_ICON_NAMES].sort().join(", ")
33074
+ });
33030
33075
  }
33031
33076
  const unicodeProp = decl.properties.find((p) => propKey2(p) === "unicode");
33032
33077
  if (!unicodeProp) {
33033
- accept("error", `Symbol "${displayName(decl)}" requires a "unicode:" property (e.g. unicode:"\u{1F4B0}" or unicode:"\\u{1F464}").`, { node: decl });
33078
+ acceptTr(accept, "error", { node: decl }, "NL.E0806", { name: displayName(decl) });
33034
33079
  } else if (!unicodeProp.value || unicodeProp.value.length === 0) {
33035
- accept("error", `Symbol "${displayName(decl)}" unicode: must be a non-empty value.`, {
33036
- node: unicodeProp,
33037
- property: "value"
33080
+ acceptTr(accept, "error", { node: unicodeProp, property: "value" }, "NL.E0807", {
33081
+ name: displayName(decl)
33038
33082
  });
33039
33083
  }
33040
33084
  const asciiProp = decl.properties.find((p) => propKey2(p) === "ascii");
33041
33085
  if (asciiProp) {
33042
33086
  const raw = asciiProp.value ?? "";
33043
33087
  if (!ASCII_FALLBACK_RE.test(raw)) {
33044
- accept("error", `Symbol "${displayName(decl)}" ascii: must be 1-3 ASCII characters (got ${raw.length} character${raw.length === 1 ? "" : "s"}).`, { node: asciiProp, property: "value" });
33088
+ acceptTr(accept, "error", { node: asciiProp, property: "value" }, "NL.E0808", {
33089
+ name: displayName(decl),
33090
+ length: raw.length
33091
+ });
33045
33092
  }
33046
33093
  }
33047
33094
  for (const prop of decl.properties) {
33048
33095
  const key = propKey2(prop);
33049
33096
  if (key !== "unicode" && key !== "ascii" && key !== "link" && key !== "description") {
33050
- accept("error", `Unknown symbol property "${key}". Allowed: unicode, ascii, link, description.`, { node: prop, property: "key" });
33097
+ acceptTr(accept, "error", { node: prop, property: "key" }, "NL.E0809", { key });
33051
33098
  }
33052
33099
  }
33053
33100
  }
@@ -33058,7 +33105,10 @@ var NowlineValidator = class {
33058
33105
  if (isSymbolDeclaration(entry) && entry.name) {
33059
33106
  const existing = seen.get(entry.name);
33060
33107
  if (existing) {
33061
- accept("error", `Duplicate symbol id "${entry.name}". First declared at ${locationOf(existing)}.`, { node: entry, property: "name" });
33108
+ acceptTr(accept, "error", { node: entry, property: "name" }, "NL.E0810", {
33109
+ name: entry.name,
33110
+ location: locationOf(existing)
33111
+ });
33062
33112
  } else {
33063
33113
  seen.set(entry.name, entry);
33064
33114
  }
@@ -33093,9 +33143,16 @@ var NowlineValidator = class {
33093
33143
  const declIdx = symbolOrder.get(val);
33094
33144
  if (declIdx === void 0) {
33095
33145
  const builtins = key === "capacity-icon" ? [...BUILTIN_CAPACITY_ICONS2].sort().join(", ") : [...BUILTIN_ICON_NAMES].sort().join(", ");
33096
- accept("error", `${key}: "${val}" is neither a built-in (${builtins}) nor a declared symbol. Add "symbol ${val} unicode:..." earlier in config or use a quoted Unicode literal.`, { node: propNode, property: "value" });
33146
+ acceptTr(accept, "error", { node: propNode, property: "value" }, "NL.E0811", {
33147
+ key,
33148
+ value: val,
33149
+ builtins
33150
+ });
33097
33151
  } else if (declIdx >= entryIdx) {
33098
- accept("error", `${key}: symbol "${val}" is referenced before its declaration. Move "symbol ${val}" above this entry.`, { node: propNode, property: "value" });
33152
+ acceptTr(accept, "error", { node: propNode, property: "value" }, "NL.E0812", {
33153
+ key,
33154
+ value: val
33155
+ });
33099
33156
  }
33100
33157
  };
33101
33158
  for (let i2 = 0; i2 < file.configEntries.length; i2++) {
@@ -42796,8 +42853,8 @@ function effectiveTheme(theme, systemTheme) {
42796
42853
  }
42797
42854
 
42798
42855
  // src/index.ts
42799
- var version = true ? "0.0.0-dev.20261007201417.g52bd711" : "0.0.0";
42800
- var sha = true ? "52bd711" : "unknown";
42856
+ var version = true ? "0.0.0-dev.20261007204002.g0c1b43f" : "0.0.0";
42857
+ var sha = true ? "0c1b43f" : "unknown";
42801
42858
  var DEFAULT_SELECTOR = "pre code.language-nowline, code.language-nowline";
42802
42859
  var initialConfig = {
42803
42860
  theme: "auto",