pict-docuserve 0.0.29 → 0.0.31

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.
@@ -52,14 +52,14 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
52
52
  1: [function (require, module, exports) {
53
53
  module.exports = {
54
54
  "name": "fable-serviceproviderbase",
55
- "version": "3.0.18",
55
+ "version": "3.0.19",
56
56
  "description": "Simple base classes for fable services.",
57
57
  "main": "source/Fable-ServiceProviderBase.js",
58
58
  "scripts": {
59
59
  "start": "node source/Fable-ServiceProviderBase.js",
60
- "test": "npx mocha -u tdd -R spec",
61
- "tests": "npx mocha -u tdd --exit -R spec --grep",
62
- "coverage": "npx nyc --reporter=lcov --reporter=text-lcov npx mocha -- -u tdd -R spec",
60
+ "test": "npx quack test",
61
+ "tests": "npx quack test -g",
62
+ "coverage": "npx quack coverage",
63
63
  "build": "npx quack build",
64
64
  "types": "tsc -p ./tsconfig.build.json",
65
65
  "check": "tsc -p . --noEmit"
@@ -89,8 +89,8 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
89
89
  "homepage": "https://github.com/stevenvelozo/fable-serviceproviderbase",
90
90
  "devDependencies": {
91
91
  "@types/mocha": "^10.0.10",
92
- "fable": "^3.1.55",
93
- "quackage": "^1.0.51",
92
+ "fable": "^3.1.62",
93
+ "quackage": "^1.0.58",
94
94
  "typescript": "^5.9.3"
95
95
  }
96
96
  };
@@ -3228,18 +3228,18 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
3228
3228
  4: [function (require, module, exports) {
3229
3229
  module.exports = {
3230
3230
  "name": "pict-application",
3231
- "version": "1.0.32",
3231
+ "version": "1.0.33",
3232
3232
  "description": "Application base class for a pict view-based application",
3233
3233
  "main": "source/Pict-Application.js",
3234
3234
  "scripts": {
3235
- "test": "npx mocha -u tdd -R spec",
3235
+ "test": "npx quack test",
3236
3236
  "start": "node source/Pict-Application.js",
3237
- "coverage": "npx nyc --reporter=lcov --reporter=text-lcov npx mocha -- -u tdd -R spec",
3237
+ "coverage": "npx quack coverage",
3238
3238
  "build": "npx quack build",
3239
3239
  "docker-dev-build": "docker build ./ -f Dockerfile_LUXURYCode -t pict-application-image:local",
3240
3240
  "docker-dev-run": "docker run -it -d --name pict-application-dev -p 30001:8080 -p 38086:8086 -v \"$PWD/.config:/home/coder/.config\" -v \"$PWD:/home/coder/pict-application\" -u \"$(id -u):$(id -g)\" -e \"DOCKER_USER=$USER\" pict-application-image:local",
3241
3241
  "docker-dev-shell": "docker exec -it pict-application-dev /bin/bash",
3242
- "tests": "npx mocha -u tdd --exit -R spec --grep",
3242
+ "tests": "npx quack test -g",
3243
3243
  "lint": "eslint source/**",
3244
3244
  "types": "tsc -p ."
3245
3245
  },
@@ -3261,7 +3261,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
3261
3261
  "pict": "^1.0.348",
3262
3262
  "pict-provider": "^1.0.10",
3263
3263
  "pict-view": "^1.0.66",
3264
- "quackage": "^1.0.51",
3264
+ "quackage": "^1.0.58",
3265
3265
  "typescript": "^5.9.3"
3266
3266
  },
3267
3267
  "mocha": {
@@ -3276,7 +3276,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
3276
3276
  "watch-ignore": ["lib/vendor"]
3277
3277
  },
3278
3278
  "dependencies": {
3279
- "fable-serviceproviderbase": "^3.0.18"
3279
+ "fable-serviceproviderbase": "^3.0.19"
3280
3280
  }
3281
3281
  };
3282
3282
  }, {}],
@@ -4518,14 +4518,14 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
4518
4518
  6: [function (require, module, exports) {
4519
4519
  module.exports = {
4520
4520
  "name": "pict-provider",
4521
- "version": "1.0.10",
4521
+ "version": "1.0.12",
4522
4522
  "description": "Pict Provider Base Class",
4523
4523
  "main": "source/Pict-Provider.js",
4524
4524
  "scripts": {
4525
4525
  "start": "node source/Pict-Provider.js",
4526
- "test": "npx mocha -u tdd -R spec",
4527
- "tests": "npx mocha -u tdd --exit -R spec --grep",
4528
- "coverage": "npx nyc --reporter=lcov --reporter=text-lcov npx mocha -- -u tdd -R spec",
4526
+ "test": "npx quack test",
4527
+ "tests": "npx quack test -g",
4528
+ "coverage": "npx quack coverage",
4529
4529
  "build": "npx quack build",
4530
4530
  "docker-dev-build": "docker build ./ -f Dockerfile_LUXURYCode -t pict-provider-image:local",
4531
4531
  "docker-dev-run": "docker run -it -d --name pict-provider-dev -p 24125:8080 -p 30027:8086 -v \"$PWD/.config:/home/coder/.config\" -v \"$PWD:/home/coder/pict-provider\" -u \"$(id -u):$(id -g)\" -e \"DOCKER_USER=$USER\" pict-provider-image:local",
@@ -4547,12 +4547,12 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
4547
4547
  "devDependencies": {
4548
4548
  "@eslint/js": "^9.39.1",
4549
4549
  "eslint": "^9.39.1",
4550
- "pict": "^1.0.348",
4551
- "quackage": "^1.0.51",
4550
+ "pict": "^1.0.351",
4551
+ "quackage": "^1.0.58",
4552
4552
  "typescript": "^5.9.3"
4553
4553
  },
4554
4554
  "dependencies": {
4555
- "fable-serviceproviderbase": "^3.0.18"
4555
+ "fable-serviceproviderbase": "^3.0.19"
4556
4556
  },
4557
4557
  "mocha": {
4558
4558
  "diff": true,
@@ -4577,6 +4577,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
4577
4577
  AutoInitialize: true,
4578
4578
  AutoInitializeOrdinal: 0,
4579
4579
  AutoLoadDataWithApp: true,
4580
+ AutoLoadDataOrdinal: 0,
4580
4581
  AutoSolveWithApp: true,
4581
4582
  AutoSolveOrdinal: 0,
4582
4583
  Manifests: {},
@@ -5384,14 +5385,14 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
5384
5385
  11: [function (require, module, exports) {
5385
5386
  module.exports = {
5386
5387
  "name": "pict-view",
5387
- "version": "1.0.66",
5388
+ "version": "1.0.67",
5388
5389
  "description": "Pict View Base Class",
5389
5390
  "main": "source/Pict-View.js",
5390
5391
  "scripts": {
5391
- "test": "mocha -u tdd -R spec",
5392
- "tests": "mocha -u tdd -R spec -g",
5392
+ "test": "npx quack test",
5393
+ "tests": "npx quack test -g",
5393
5394
  "start": "node source/Pict-View.js",
5394
- "coverage": "nyc --reporter=lcov --reporter=text-lcov npm test",
5395
+ "coverage": "npx quack coverage",
5395
5396
  "build": "npx quack build",
5396
5397
  "docker-dev-build": "docker build ./ -f Dockerfile_LUXURYCode -t pict-view-image:local",
5397
5398
  "docker-dev-run": "docker run -it -d --name pict-view-dev -p 30001:8080 -p 38086:8086 -v \"$PWD/.config:/home/coder/.config\" -v \"$PWD:/home/coder/pict-view\" -u \"$(id -u):$(id -g)\" -e \"DOCKER_USER=$USER\" pict-view-image:local",
@@ -5415,7 +5416,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
5415
5416
  "browser-env": "^3.3.0",
5416
5417
  "eslint": "^9.39.1",
5417
5418
  "pict": "^1.0.348",
5418
- "quackage": "^1.0.51",
5419
+ "quackage": "^1.0.58",
5419
5420
  "typescript": "^5.9.3"
5420
5421
  },
5421
5422
  "mocha": {
@@ -5430,8 +5431,8 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
5430
5431
  "watch-ignore": ["lib/vendor"]
5431
5432
  },
5432
5433
  "dependencies": {
5433
- "fable": "^3.1.57",
5434
- "fable-serviceproviderbase": "^3.0.18"
5434
+ "fable": "^3.1.63",
5435
+ "fable-serviceproviderbase": "^3.0.19"
5435
5436
  }
5436
5437
  };
5437
5438
  }, {}],
@@ -6672,7 +6673,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
6672
6673
  // Load the catalog, then render the layout
6673
6674
  let tmpDocProvider = this.pict.providers['Docuserve-Documentation'];
6674
6675
  tmpDocProvider.loadCatalog(() => {
6675
- // Set the page title from cover.md or _topbar.md
6676
+ // Set the page title from _cover.md or _topbar.md
6676
6677
  let tmpDocuserve = this.pict.AppData.Docuserve;
6677
6678
  if (tmpDocuserve.CoverLoaded && tmpDocuserve.Cover && tmpDocuserve.Cover.Title) {
6678
6679
  document.title = tmpDocuserve.Cover.Title.replace(/<[^>]*>/g, '');
@@ -6947,10 +6948,40 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
6947
6948
  }
6948
6949
 
6949
6950
  /**
6950
- * Load all documentation data sources: catalog, cover.md, _sidebar.md.
6951
+ * Create an image resolver closure for the content provider.
6952
+ *
6953
+ * Resolves relative image URLs against the directory of the document
6954
+ * being rendered, so that images referenced with relative paths in
6955
+ * markdown (e.g. `![graph](diagram.svg)`) resolve correctly even
6956
+ * when the page uses hash-based routing.
6957
+ *
6958
+ * @param {string} pDocURL - The URL the markdown document was fetched from
6959
+ * @returns {Function} An image resolver callback: (pSrc, pAlt) => resolvedSrc
6960
+ */
6961
+ _createImageResolver(pDocURL) {
6962
+ // Extract the directory portion of the document URL
6963
+ let tmpBaseDir = '';
6964
+ if (pDocURL) {
6965
+ let tmpLastSlash = pDocURL.lastIndexOf('/');
6966
+ if (tmpLastSlash >= 0) {
6967
+ tmpBaseDir = pDocURL.substring(0, tmpLastSlash + 1);
6968
+ }
6969
+ }
6970
+ return (pSrc, pAlt) => {
6971
+ // Leave absolute URLs, data URIs, and root-relative paths unchanged
6972
+ if (pSrc.match(/^https?:\/\//) || pSrc.match(/^data:/) || pSrc.match(/^\//)) {
6973
+ return pSrc;
6974
+ }
6975
+ // Prepend the document's directory to make relative paths work
6976
+ return tmpBaseDir + pSrc;
6977
+ };
6978
+ }
6979
+
6980
+ /**
6981
+ * Load all documentation data sources: catalog, _cover.md, _sidebar.md.
6951
6982
  *
6952
6983
  * Loads the catalog first (it provides the fallback data), then attempts
6953
- * to load cover.md and _sidebar.md in parallel. If those markdown files
6984
+ * to load _cover.md and _sidebar.md in parallel. If those markdown files
6954
6985
  * exist they drive the splash and sidebar views; otherwise the catalog
6955
6986
  * data is used as a fallback.
6956
6987
  *
@@ -6960,7 +6991,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
6960
6991
  let tmpCallback = typeof fCallback === 'function' ? fCallback : () => {};
6961
6992
  let tmpCatalogURL = this.pict.AppData.Docuserve.CatalogURL || 'retold-catalog.json';
6962
6993
  let tmpLoadOptionalFiles = () => {
6963
- // Load cover.md, _sidebar.md, _topbar.md, errorpage.md and keyword index in parallel.
6994
+ // Load _cover.md, _sidebar.md, _topbar.md, errorpage.md and keyword index in parallel.
6964
6995
  // When all are done, if we still have no sidebar data, try to auto-discover
6965
6996
  // a README.md so the site works with plain markdown folders.
6966
6997
  let tmpPending = 5;
@@ -7060,9 +7091,9 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
7060
7091
  }
7061
7092
 
7062
7093
  /**
7063
- * Fetch and parse cover.md into structured data for the splash view.
7094
+ * Fetch and parse _cover.md into structured data for the splash view.
7064
7095
  *
7065
- * The expected cover.md format follows the docsify convention:
7096
+ * The expected _cover.md format follows the docsify convention:
7066
7097
  * # Title
7067
7098
  * > Tagline
7068
7099
  * Description paragraph text.
@@ -7077,29 +7108,29 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
7077
7108
  loadCover(fCallback) {
7078
7109
  let tmpCallback = typeof fCallback === 'function' ? fCallback : () => {};
7079
7110
  let tmpDocsBase = this.pict.AppData.Docuserve.DocsBaseURL || '';
7080
- fetch(tmpDocsBase + 'cover.md').then(pResponse => {
7111
+ fetch(tmpDocsBase + '_cover.md').then(pResponse => {
7081
7112
  if (!pResponse.ok) {
7082
7113
  return null;
7083
7114
  }
7084
7115
  return pResponse.text();
7085
7116
  }).then(pMarkdown => {
7086
7117
  if (!pMarkdown) {
7087
- this.log.info('Docuserve: No cover.md found; splash will use catalog data.');
7118
+ this.log.info('Docuserve: No _cover.md found; splash will use catalog data.');
7088
7119
  return tmpCallback();
7089
7120
  }
7090
7121
  this.pict.AppData.Docuserve.Cover = this.parseCover(pMarkdown);
7091
7122
  this.pict.AppData.Docuserve.CoverLoaded = true;
7092
7123
  return tmpCallback();
7093
7124
  }).catch(pError => {
7094
- this.log.warn("Docuserve: Error loading cover.md: ".concat(pError));
7125
+ this.log.warn("Docuserve: Error loading _cover.md: ".concat(pError));
7095
7126
  return tmpCallback();
7096
7127
  });
7097
7128
  }
7098
7129
 
7099
7130
  /**
7100
- * Parse cover.md markdown text into a structured object.
7131
+ * Parse _cover.md markdown text into a structured object.
7101
7132
  *
7102
- * @param {string} pMarkdown - Raw cover.md content
7133
+ * @param {string} pMarkdown - Raw _cover.md content
7103
7134
  * @returns {Object} Parsed cover data
7104
7135
  */
7105
7136
  parseCover(pMarkdown) {
@@ -7913,7 +7944,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
7913
7944
  if (!pMarkdown) {
7914
7945
  return tmpCallback('Document not found', this.getErrorPageHTML(pURL));
7915
7946
  }
7916
- let tmpHTML = this._ContentProvider.parseMarkdown(pMarkdown, this._createLinkResolver(pCurrentGroup, pCurrentModule, pCurrentDocPath));
7947
+ let tmpHTML = this._ContentProvider.parseMarkdown(pMarkdown, this._createLinkResolver(pCurrentGroup, pCurrentModule, pCurrentDocPath), this._createImageResolver(pURL));
7917
7948
  this._ContentCache[pURL] = tmpHTML;
7918
7949
  return tmpCallback(null, tmpHTML);
7919
7950
  }).catch(pError => {
@@ -8011,7 +8042,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
8011
8042
  // the child provides its own. We cannot read the parent's
8012
8043
  // default_configuration.CSS at module scope because browserify's
8013
8044
  // module initialisation order does not guarantee it is populated yet.
8014
- CSS: /*css*/"\n\t\t.pict-content {\n\t\t\tpadding: 2em 3em;\n\t\t\tmax-width: 900px;\n\t\t\tmargin: 0 auto;\n\t\t}\n\t\t.pict-content-loading {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tmin-height: 200px;\n\t\t\tcolor: #8A7F72;\n\t\t\tfont-size: 1em;\n\t\t}\n\t\t.pict-content h1 {\n\t\t\tfont-size: 2em;\n\t\t\tcolor: #3D3229;\n\t\t\tborder-bottom: 1px solid #DDD6CA;\n\t\t\tpadding-bottom: 0.3em;\n\t\t\tmargin-top: 0;\n\t\t}\n\t\t.pict-content h2 {\n\t\t\tfont-size: 1.5em;\n\t\t\tcolor: #3D3229;\n\t\t\tborder-bottom: 1px solid #EAE3D8;\n\t\t\tpadding-bottom: 0.25em;\n\t\t\tmargin-top: 1.5em;\n\t\t}\n\t\t.pict-content h3 {\n\t\t\tfont-size: 1.25em;\n\t\t\tcolor: #3D3229;\n\t\t\tmargin-top: 1.25em;\n\t\t}\n\t\t.pict-content h4, .pict-content h5, .pict-content h6 {\n\t\t\tcolor: #5E5549;\n\t\t\tmargin-top: 1em;\n\t\t}\n\t\t.pict-content p {\n\t\t\tline-height: 1.7;\n\t\t\tcolor: #423D37;\n\t\t\tmargin: 0.75em 0;\n\t\t}\n\t\t.pict-content a {\n\t\t\tcolor: #2E7D74;\n\t\t\ttext-decoration: none;\n\t\t}\n\t\t.pict-content a:hover {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t\t.pict-content pre {\n\t\t\tbackground: #3D3229;\n\t\t\tcolor: #E8E0D4;\n\t\t\tpadding: 1.25em;\n\t\t\tborder-radius: 6px;\n\t\t\toverflow-x: auto;\n\t\t\tline-height: 1.5;\n\t\t\tfont-size: 0.9em;\n\t\t}\n\t\t.pict-content code {\n\t\t\tbackground: #F0ECE4;\n\t\t\tpadding: 0.15em 0.4em;\n\t\t\tborder-radius: 3px;\n\t\t\tfont-size: 0.9em;\n\t\t\tcolor: #9E6B47;\n\t\t}\n\t\t.pict-content pre code {\n\t\t\tbackground: none;\n\t\t\tpadding: 0;\n\t\t\tcolor: inherit;\n\t\t\tfont-size: inherit;\n\t\t}\n\t\t.pict-content blockquote {\n\t\t\tborder-left: 4px solid #2E7D74;\n\t\t\tmargin: 1em 0;\n\t\t\tpadding: 0.5em 1em;\n\t\t\tbackground: #F7F5F0;\n\t\t\tcolor: #5E5549;\n\t\t}\n\t\t.pict-content blockquote p {\n\t\t\tmargin: 0.25em 0;\n\t\t}\n\t\t.pict-content ul, .pict-content ol {\n\t\t\tpadding-left: 2em;\n\t\t\tline-height: 1.8;\n\t\t}\n\t\t.pict-content li {\n\t\t\tmargin: 0.25em 0;\n\t\t\tcolor: #423D37;\n\t\t}\n\t\t.pict-content hr {\n\t\t\tborder: none;\n\t\t\tborder-top: 1px solid #DDD6CA;\n\t\t\tmargin: 2em 0;\n\t\t}\n\t\t.pict-content table {\n\t\t\twidth: 100%;\n\t\t\tborder-collapse: collapse;\n\t\t\tmargin: 1em 0;\n\t\t}\n\t\t.pict-content table th {\n\t\t\tbackground: #F5F0E8;\n\t\t\tborder: 1px solid #DDD6CA;\n\t\t\tpadding: 0.6em 0.8em;\n\t\t\ttext-align: left;\n\t\t\tfont-weight: 600;\n\t\t\tcolor: #3D3229;\n\t\t}\n\t\t.pict-content table td {\n\t\t\tborder: 1px solid #DDD6CA;\n\t\t\tpadding: 0.5em 0.8em;\n\t\t\tcolor: #423D37;\n\t\t}\n\t\t.pict-content table tr:nth-child(even) {\n\t\t\tbackground: #F7F5F0;\n\t\t}\n\t\t.pict-content img {\n\t\t\tmax-width: 100%;\n\t\t\theight: auto;\n\t\t}\n\t\t.pict-content pre.mermaid {\n\t\t\tbackground: #fff;\n\t\t\tcolor: #3D3229;\n\t\t\ttext-align: center;\n\t\t\tpadding: 1em;\n\t\t}\n\t\t.pict-content .pict-content-katex-display {\n\t\t\ttext-align: center;\n\t\t\tmargin: 1em 0;\n\t\t\tpadding: 0.5em;\n\t\t\toverflow-x: auto;\n\t\t}\n\t\t.pict-content .pict-content-katex-inline {\n\t\t\tdisplay: inline;\n\t\t}\n\t\t.docuserve-module-external-link {\n\t\t\tpadding: 0.5em 0;\n\t\t\tmargin-bottom: 0.5em;\n\t\t\tborder-bottom: 1px solid #EAE3D8;\n\t\t\tfont-size: 0.85em;\n\t\t\ttext-align: right;\n\t\t}\n\t\t.docuserve-module-external-link a {\n\t\t\tcolor: #2E7D74;\n\t\t\ttext-decoration: none;\n\t\t}\n\t\t.docuserve-module-external-link a:hover {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t\t.docuserve-not-found {\n\t\t\ttext-align: center;\n\t\t\tpadding: 3em 1em;\n\t\t\tcolor: #5E5549;\n\t\t}\n\t\t.docuserve-not-found h2 {\n\t\t\tcolor: #8A7F72;\n\t\t\tfont-size: 1.5em;\n\t\t\tborder-bottom: none;\n\t\t}\n\t\t.docuserve-not-found code {\n\t\t\tbackground: #F0ECE4;\n\t\t\tpadding: 0.15em 0.4em;\n\t\t\tborder-radius: 3px;\n\t\t\tfont-size: 0.9em;\n\t\t\tcolor: #9E6B47;\n\t\t}\n\t",
8045
+ CSS: /*css*/"\n\t\t.pict-content {\n\t\t\tpadding: 2em 3em;\n\t\t\tmax-width: 900px;\n\t\t\tmargin: 0 auto;\n\t\t}\n\t\t.pict-content-loading {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tmin-height: 200px;\n\t\t\tcolor: #8A7F72;\n\t\t\tfont-size: 1em;\n\t\t}\n\t\t.pict-content h1 {\n\t\t\tfont-size: 2em;\n\t\t\tcolor: #3D3229;\n\t\t\tborder-bottom: 1px solid #DDD6CA;\n\t\t\tpadding-bottom: 0.3em;\n\t\t\tmargin-top: 0;\n\t\t}\n\t\t.pict-content h2 {\n\t\t\tfont-size: 1.5em;\n\t\t\tcolor: #3D3229;\n\t\t\tborder-bottom: 1px solid #EAE3D8;\n\t\t\tpadding-bottom: 0.25em;\n\t\t\tmargin-top: 1.5em;\n\t\t}\n\t\t.pict-content h3 {\n\t\t\tfont-size: 1.25em;\n\t\t\tcolor: #3D3229;\n\t\t\tmargin-top: 1.25em;\n\t\t}\n\t\t.pict-content h4, .pict-content h5, .pict-content h6 {\n\t\t\tcolor: #5E5549;\n\t\t\tmargin-top: 1em;\n\t\t}\n\t\t.pict-content p {\n\t\t\tline-height: 1.7;\n\t\t\tcolor: #423D37;\n\t\t\tmargin: 0.75em 0;\n\t\t}\n\t\t.pict-content a {\n\t\t\tcolor: #2E7D74;\n\t\t\ttext-decoration: none;\n\t\t}\n\t\t.pict-content a:hover {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t\t.pict-content-code-wrap {\n\t\t\tposition: relative;\n\t\t\tfont-family: 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', 'Liberation Mono', 'Courier New', monospace;\n\t\t\tfont-size: 14px;\n\t\t\tline-height: 1.5;\n\t\t\tborder-radius: 6px;\n\t\t\toverflow: auto;\n\t\t\tmargin: 1em 0;\n\t\t\tbackground: #3D3229;\n\t\t}\n\t\t.pict-content-code-wrap .pict-content-code-line-numbers {\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\twidth: 40px;\n\t\t\tpadding: 1.25em 0;\n\t\t\ttext-align: right;\n\t\t\tbackground: #342A22;\n\t\t\tborder-right: 1px solid #4A3F35;\n\t\t\tcolor: #8A7F72;\n\t\t\tfont-size: 13px;\n\t\t\tline-height: 1.5;\n\t\t\tuser-select: none;\n\t\t\tpointer-events: none;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\t.pict-content-code-wrap .pict-content-code-line-numbers span {\n\t\t\tdisplay: block;\n\t\t\tpadding: 0 8px 0 0;\n\t\t}\n\t\t.pict-content-code-wrap pre {\n\t\t\tmargin: 0;\n\t\t\tbackground: #3D3229;\n\t\t\tcolor: #E8E0D4;\n\t\t\tpadding: 1.25em 1.25em 1.25em 52px;\n\t\t\tborder-radius: 6px;\n\t\t\toverflow-x: auto;\n\t\t\tline-height: 1.5;\n\t\t\tfont-size: inherit;\n\t\t}\n\t\t.pict-content-code-wrap pre code {\n\t\t\tbackground: none;\n\t\t\tpadding: 0;\n\t\t\tcolor: inherit;\n\t\t\tfont-size: inherit;\n\t\t\tfont-family: inherit;\n\t\t}\n\t\t.pict-content-code-wrap .keyword { color: #C678DD; }\n\t\t.pict-content-code-wrap .string { color: #98C379; }\n\t\t.pict-content-code-wrap .number { color: #D19A66; }\n\t\t.pict-content-code-wrap .comment { color: #7F848E; font-style: italic; }\n\t\t.pict-content-code-wrap .operator { color: #56B6C2; }\n\t\t.pict-content-code-wrap .punctuation { color: #E8E0D4; }\n\t\t.pict-content-code-wrap .function-name { color: #61AFEF; }\n\t\t.pict-content-code-wrap .property { color: #E06C75; }\n\t\t.pict-content-code-wrap .tag { color: #E06C75; }\n\t\t.pict-content-code-wrap .attr-name { color: #D19A66; }\n\t\t.pict-content-code-wrap .attr-value { color: #98C379; }\n\t\t.pict-content pre {\n\t\t\tbackground: #3D3229;\n\t\t\tcolor: #E8E0D4;\n\t\t\tpadding: 1.25em;\n\t\t\tborder-radius: 6px;\n\t\t\toverflow-x: auto;\n\t\t\tline-height: 1.5;\n\t\t\tfont-size: 0.9em;\n\t\t}\n\t\t.pict-content code {\n\t\t\tbackground: #F0ECE4;\n\t\t\tpadding: 0.15em 0.4em;\n\t\t\tborder-radius: 3px;\n\t\t\tfont-size: 0.9em;\n\t\t\tcolor: #9E6B47;\n\t\t}\n\t\t.pict-content pre code {\n\t\t\tbackground: none;\n\t\t\tpadding: 0;\n\t\t\tcolor: inherit;\n\t\t\tfont-size: inherit;\n\t\t}\n\t\t.pict-content blockquote {\n\t\t\tborder-left: 4px solid #2E7D74;\n\t\t\tmargin: 1em 0;\n\t\t\tpadding: 0.5em 1em;\n\t\t\tbackground: #F7F5F0;\n\t\t\tcolor: #5E5549;\n\t\t}\n\t\t.pict-content blockquote p {\n\t\t\tmargin: 0.25em 0;\n\t\t}\n\t\t.pict-content ul, .pict-content ol {\n\t\t\tpadding-left: 2em;\n\t\t\tline-height: 1.8;\n\t\t}\n\t\t.pict-content li {\n\t\t\tmargin: 0.25em 0;\n\t\t\tcolor: #423D37;\n\t\t}\n\t\t.pict-content hr {\n\t\t\tborder: none;\n\t\t\tborder-top: 1px solid #DDD6CA;\n\t\t\tmargin: 2em 0;\n\t\t}\n\t\t.pict-content table {\n\t\t\twidth: 100%;\n\t\t\tborder-collapse: collapse;\n\t\t\tmargin: 1em 0;\n\t\t}\n\t\t.pict-content table th {\n\t\t\tbackground: #F5F0E8;\n\t\t\tborder: 1px solid #DDD6CA;\n\t\t\tpadding: 0.6em 0.8em;\n\t\t\ttext-align: left;\n\t\t\tfont-weight: 600;\n\t\t\tcolor: #3D3229;\n\t\t}\n\t\t.pict-content table td {\n\t\t\tborder: 1px solid #DDD6CA;\n\t\t\tpadding: 0.5em 0.8em;\n\t\t\tcolor: #423D37;\n\t\t}\n\t\t.pict-content table tr:nth-child(even) {\n\t\t\tbackground: #F7F5F0;\n\t\t}\n\t\t.pict-content img {\n\t\t\tmax-width: 100%;\n\t\t\theight: auto;\n\t\t}\n\t\t.pict-content pre.mermaid {\n\t\t\tbackground: #fff;\n\t\t\tcolor: #3D3229;\n\t\t\ttext-align: center;\n\t\t\tpadding: 1em;\n\t\t}\n\t\t.pict-content .pict-content-katex-display {\n\t\t\ttext-align: center;\n\t\t\tmargin: 1em 0;\n\t\t\tpadding: 0.5em;\n\t\t\toverflow-x: auto;\n\t\t}\n\t\t.pict-content .pict-content-katex-inline {\n\t\t\tdisplay: inline;\n\t\t}\n\t\t.docuserve-module-external-link {\n\t\t\tpadding: 0.5em 0;\n\t\t\tmargin-bottom: 0.5em;\n\t\t\tborder-bottom: 1px solid #EAE3D8;\n\t\t\tfont-size: 0.85em;\n\t\t\ttext-align: right;\n\t\t}\n\t\t.docuserve-module-external-link a {\n\t\t\tcolor: #2E7D74;\n\t\t\ttext-decoration: none;\n\t\t}\n\t\t.docuserve-module-external-link a:hover {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t\t.docuserve-not-found {\n\t\t\ttext-align: center;\n\t\t\tpadding: 3em 1em;\n\t\t\tcolor: #5E5549;\n\t\t}\n\t\t.docuserve-not-found h2 {\n\t\t\tcolor: #8A7F72;\n\t\t\tfont-size: 1.5em;\n\t\t\tborder-bottom: none;\n\t\t}\n\t\t.docuserve-not-found code {\n\t\t\tbackground: #F0ECE4;\n\t\t\tpadding: 0.15em 0.4em;\n\t\t\tborder-radius: 3px;\n\t\t\tfont-size: 0.9em;\n\t\t\tcolor: #9E6B47;\n\t\t}\n\t",
8015
8046
  Templates: [{
8016
8047
  Hash: "Docuserve-Content-Template",
8017
8048
  Template: /*html*/"\n<div class=\"pict-content\" id=\"Docuserve-Content-Body\">\n\t<div class=\"pict-content-loading\">Loading documentation...</div>\n</div>\n"
@@ -8506,7 +8537,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
8506
8537
  }
8507
8538
 
8508
8539
  /**
8509
- * Render the splash screen from parsed cover.md data.
8540
+ * Render the splash screen from parsed _cover.md data.
8510
8541
  *
8511
8542
  * @param {Object} pCover - The parsed cover data { Title, Tagline, Description, Highlights, Actions }
8512
8543
  */
@@ -8549,7 +8580,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
8549
8580
  }
8550
8581
 
8551
8582
  /**
8552
- * Render the splash screen from catalog data as a fallback when cover.md
8583
+ * Render the splash screen from catalog data as a fallback when _cover.md
8553
8584
  * is not available.
8554
8585
  *
8555
8586
  * @param {Object} pDocuserve - The AppData.Docuserve state