This content contains an actions slot
-Hello person who opened the dialog!
Look how nice this dialog looks!
-| - country name - | -- region code - | -- country code - | -
|---|---|---|
| ${nameForLocale} | -${regionCode} | -${countryCode} | -
undefined`;
- }
- if (typeof p === 'object' && p !== null) {
- return JSON.stringify(p);
- }
- resultText = p;
- } else {
- resultText = prop.processor(field);
- }
-
- return html`${resultText}`;
- }
-
- constructor() {
- super();
- this.title = 'States';
- }
-
- render() {
- const computePropName = prop => (typeof prop === 'string' ? prop : prop.name);
- return html`
- | ${computePropName(prop)} | `)} -
|---|
| ${this.__renderProp(prop)} | `)} -
Overlays Status:
-Name: ${overlays.name}
-Blocked: ${overlays.blockBody}
- - - - `; - } -} - - -customElements.define('page-a', PageA); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/index.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/index.js deleted file mode 100644 index 5c5ae99b9..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/index.js +++ /dev/null @@ -1,30 +0,0 @@ -export class OverlaysManager { - name = 'OverlayManager 2.x'; - - _blockBody = false; - - constructor() { - this._setupBlocker(); - } - - _setupBlocker() { - const blocker = document.createElement('div'); - blocker.setAttribute('style', 'border: 2px solid #8d0606; margin: 10px; padding: 10px; width: 140px; text-align: center;'); - blocker.innerText = `Blocker for ${this.name}`; - - const target = document.getElementById('overlay-target'); - target.appendChild(blocker); - - this.blocker = blocker; - } - - blockBody() { - this._blockBody = true; - this.blocker.style.backgroundColor = '#ff6161'; - } - - unBlockBody() { - this._blockBody = false; - this.blocker.style.backgroundColor = 'transparent'; - } -} diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/instance.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/instance.js deleted file mode 100644 index c3e546133..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/node_modules/overlays/instance.js +++ /dev/null @@ -1,4 +0,0 @@ -import { OverlaysManager } from './index.js'; -import { singletonManager } from 'singleton-manager'; - -export const overlays = singletonManager.get('overlays::overlays::2.x') || new OverlaysManager(); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/page-b.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/page-b.js deleted file mode 100644 index bc65fde08..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/node_modules/page-b/page-b.js +++ /dev/null @@ -1,49 +0,0 @@ -import { LitElement, html, css } from 'lit-element'; -import { overlays } from 'overlays/instance.js'; - -export class PageB extends LitElement { - getInstance(sym, fallback) { - const ev = new CustomEvent('request-instance', { - detail: { key: sym }, - bubbles: true, - cancelable: true, - composed: true, - }); - this.dispatchEvent(ev); - return ev.detail.instance || fallback(); - } - - connectedCallback() { - super.connectedCallback(); - } - - static get styles() { - return css` - :host { - display: block; - padding: 10px; - border: 2px solid #ccc; - } - `; - } - - render() { - return html` -Overlays Status:
-Name: ${overlays.name}
-Blocked: ${overlays._blockBody}
- - - - `; - } -} - -customElements.define('page-b', PageB); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/overlayCompatibility.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/overlayCompatibility.js deleted file mode 100644 index 384537215..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-complex/overlayCompatibility.js +++ /dev/null @@ -1,70 +0,0 @@ -import { OverlaysManager } from 'overlays'; -import { singletonManager } from 'singleton-manager'; -import { OverlaysManager as OverlaysManager2 } from './node_modules/page-b/node_modules/overlays/index.js'; - -let compatibleManager1; -let compatibleManager2; - -const blocker = document.createElement('div'); -blocker.setAttribute( - 'style', - 'border: 2px solid #8d0606; margin: 10px; padding: 10px; width: 140px; text-align: center;', -); -blocker.innerText = `Shared Blocker for App`; -document.body.appendChild(blocker); - -class CompatibleManager1 extends OverlaysManager { - constructor() { - super(); - this.name = 'Compatible1 from App'; - } - - block(sync = true) { - super.block(); - if (sync) { - compatibleManager2.blockBody(false); - } - } - - unBlock(sync = true) { - super.unBlock(); - if (sync) { - compatibleManager2.unBlockBody(false); - } - } - - _setupBlocker() { - this.blocker = blocker; - } -} - -class CompatibleManager2 extends OverlaysManager2 { - constructor() { - super(); - this.name = 'Compatible2 from App'; - } - - blockBody(sync = true) { - super.blockBody(); - if (sync) { - compatibleManager1.block(); - } - } - - unBlockBody(sync = true) { - super.unBlockBody(); - if (sync) { - compatibleManager1.unBlock(); - } - } - - _setupBlocker() { - this.blocker = blocker; - } -} - -compatibleManager1 = new CompatibleManager1(); -compatibleManager2 = new CompatibleManager2(); - -singletonManager.set('overlays::overlays::1.x', compatibleManager1); -singletonManager.set('overlays::overlays::2.x', compatibleManager2); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js deleted file mode 100644 index 802bb6d85..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js +++ /dev/null @@ -1,91 +0,0 @@ -import { LitElement, css, html } from 'lit'; - -import 'page-a/page-a.js'; -import 'page-b/page-b.js'; - -class DemoApp extends LitElement { - constructor() { - super(); - this.page = 'A'; - } - - static get properties() { - return { - page: { type: String }, - }; - } - - static get styles() { - return css` - :host { - display: block; - max-width: 680px; - margin: 0 auto; - } - - nav { - padding: 0 10px 10px 10px; - } - - button { - border: none; - padding: 1rem 2rem; - background: #0069ed; - color: #fff; - font-size: 1rem; - cursor: pointer; - text-align: center; - transition: background 250ms ease-in-out, transform 150ms ease; - } - - button:hover, - button:focus { - background: #0053ba; - } - - button:focus { - outline: 1px solid #fff; - outline-offset: -4px; - } - - button:active { - transform: scale(0.99); - } - - button.active { - background: #33a43f; - } - - h1 { - text-align: center; - } - `; - } - - render() { - return html` -Overlays Status:
-Name: ${overlays.name}
-Blocked: ${overlays.blockBody}
- - - - `; - } -} - -customElements.define('page-a', PageA); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/node_modules/overlays/index.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/node_modules/overlays/index.js deleted file mode 100644 index ea2f3b178..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/node_modules/overlays/index.js +++ /dev/null @@ -1,30 +0,0 @@ -export class OverlaysManager { - name = 'OverlayManager 2.x'; - - _blockBody = false; - - constructor() { - this._setupBlocker(); - } - - _setupBlocker() { - const blocker = document.createElement('div'); - blocker.setAttribute('style', 'border: 2px solid #8d0606; margin: 10px; padding: 10px; width: 180px; text-align: center;'); - blocker.innerText = `Blocker for ${this.name}`; - - const target = document.getElementById('overlay-target'); - target.appendChild(blocker); - - this.blocker = blocker; - } - - blockBody() { - this._blockBody = true; - this.blocker.style.backgroundColor = '#ff6161'; - } - - unBlockBody() { - this._blockBody = false; - this.blocker.style.backgroundColor = 'transparent'; - } -} diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/node_modules/overlays/instance.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/node_modules/overlays/instance.js deleted file mode 100644 index f73ca3b47..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/node_modules/overlays/instance.js +++ /dev/null @@ -1,3 +0,0 @@ -import { OverlaysManager } from './index.js'; - -export const overlays = new OverlaysManager(); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/page-b.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/page-b.js deleted file mode 100644 index 94a90c0c0..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/page-b/page-b.js +++ /dev/null @@ -1,34 +0,0 @@ -import { LitElement, html, css } from 'lit-element'; -import { overlays } from 'overlays/instance.js'; - -export class PageB extends LitElement { - static get styles() { - return css` - :host { - display: block; - padding: 10px; - border: 2px solid #ccc; - } - `; - } - - render() { - return html` -Overlays Status:
-Name: ${overlays.name}
-Blocked: ${overlays._blockBody}
- - - - `; - } -} - -customElements.define('page-b', PageB); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js deleted file mode 100644 index 057392db9..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js +++ /dev/null @@ -1,93 +0,0 @@ -import { LitElement, css, html } from 'lit'; - -import './overlayCompatibility.js'; - -import 'page-a/page-a.js'; -import 'page-b/page-b.js'; - -class DemoApp extends LitElement { - constructor() { - super(); - this.page = 'A'; - } - - static get properties() { - return { - page: { type: String }, - }; - } - - static get styles() { - return css` - :host { - display: block; - max-width: 680px; - margin: 0 auto; - } - - nav { - padding: 0 10px 10px 10px; - } - - button { - border: none; - padding: 1rem 2rem; - background: #0069ed; - color: #fff; - font-size: 1rem; - cursor: pointer; - text-align: center; - transition: background 250ms ease-in-out, transform 150ms ease; - } - - button:hover, - button:focus { - background: #0053ba; - } - - button:focus { - outline: 1px solid #fff; - outline-offset: -4px; - } - - button:active { - transform: scale(0.99); - } - - button.active { - background: #33a43f; - } - - h1 { - text-align: center; - } - `; - } - - render() { - return html` -Overlays Status:
-Name: ${overlays.name}
-Blocked: ${overlays.blockBody}
- - - - `; - } -} - -customElements.define('page-a', PageA); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/node_modules/overlays/index.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/node_modules/overlays/index.js deleted file mode 100644 index a2e56314e..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/node_modules/overlays/index.js +++ /dev/null @@ -1,30 +0,0 @@ -export class OverlaysManager { - name = 'OverlayManager 2.x'; - - blockBody = false; - - constructor() { - this._setupBlocker(); - } - - _setupBlocker() { - const blocker = document.createElement('div'); - blocker.setAttribute('style', 'border: 2px solid #8d0606; margin: 10px; padding: 10px; width: 140px; text-align: center;'); - blocker.innerText = `Blocker for ${this.name}`; - - const target = document.getElementById('overlay-target'); - target.appendChild(blocker); - - this.blocker = blocker; - } - - blockingBody() { - this.blockBody = true; - this.blocker.style.backgroundColor = '#ff6161'; - } - - unBlockingBody() { - this.blockBody = false; - this.blocker.style.backgroundColor = 'transparent'; - } -} diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/node_modules/overlays/instance.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/node_modules/overlays/instance.js deleted file mode 100644 index c3e546133..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/node_modules/overlays/instance.js +++ /dev/null @@ -1,4 +0,0 @@ -import { OverlaysManager } from './index.js'; -import { singletonManager } from 'singleton-manager'; - -export const overlays = singletonManager.get('overlays::overlays::2.x') || new OverlaysManager(); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/page-b.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/page-b.js deleted file mode 100644 index 41fa08ad4..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/node_modules/page-b/page-b.js +++ /dev/null @@ -1,34 +0,0 @@ -import { LitElement, html, css } from 'lit-element'; -import { overlays } from 'overlays/instance.js'; - -export class PageB extends LitElement { - static get styles() { - return css` - :host { - display: block; - padding: 10px; - border: 2px solid #ccc; - } - `; - } - - render() { - return html` -Overlays Status:
-Name: ${overlays.name}
-Blocked: ${overlays.blockBody}
- - - - `; - } -} - -customElements.define('page-b', PageB); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/overlayCompatibility.js b/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/overlayCompatibility.js deleted file mode 100644 index 36a9c73c0..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/example-success/overlayCompatibility.js +++ /dev/null @@ -1,23 +0,0 @@ -import { OverlaysManager } from 'overlays'; -import { singletonManager } from 'singleton-manager'; - -class CompatibleManager extends OverlaysManager { - constructor() { - super(); - this.name = 'Compatible from App'; - this.blocker.innerText = `Blocker for ${this.name}`; - } - - blockingBody() { - this.block(); - } - - unBlockingBody() { - this.unBlock(); - } -} - -const compatibleManager = new CompatibleManager(); - -singletonManager.set('overlays::overlays::1.x', compatibleManager); -singletonManager.set('overlays::overlays::2.x', compatibleManager); diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/index.md b/packages/ui/docs/fundamentals/tools/singleton-manager/index.md deleted file mode 100644 index c596d52a8..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/tools/singleton-manager/index.md) diff --git a/packages/ui/docs/fundamentals/tools/singleton-manager/overview.md b/packages/ui/docs/fundamentals/tools/singleton-manager/overview.md deleted file mode 100644 index bcb433e30..000000000 --- a/packages/ui/docs/fundamentals/tools/singleton-manager/overview.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../../docs/fundamentals/tools/singleton-manager/overview.md) diff --git a/packages/ui/docs/guides/how-to/create-a-custom-field.md b/packages/ui/docs/guides/how-to/create-a-custom-field.md deleted file mode 100644 index abf05508a..000000000 --- a/packages/ui/docs/guides/how-to/create-a-custom-field.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/how-to/create-a-custom-field.md) diff --git a/packages/ui/docs/guides/how-to/extend-a-native-input.md b/packages/ui/docs/guides/how-to/extend-a-native-input.md deleted file mode 100644 index 732d29738..000000000 --- a/packages/ui/docs/guides/how-to/extend-a-native-input.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/how-to/extend-a-native-input.md) diff --git a/packages/ui/docs/guides/how-to/get-started.md b/packages/ui/docs/guides/how-to/get-started.md deleted file mode 100644 index c6c257997..000000000 --- a/packages/ui/docs/guides/how-to/get-started.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/how-to/get-started.md) diff --git a/packages/ui/docs/guides/how-to/index.md b/packages/ui/docs/guides/how-to/index.md deleted file mode 100644 index f277f8c7c..000000000 --- a/packages/ui/docs/guides/how-to/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/how-to/index.md) diff --git a/packages/ui/docs/guides/index.md b/packages/ui/docs/guides/index.md deleted file mode 100644 index fda6dd4b0..000000000 --- a/packages/ui/docs/guides/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../docs/guides/index.md) diff --git a/packages/ui/docs/guides/principles/definitions-and-terms.md b/packages/ui/docs/guides/principles/definitions-and-terms.md deleted file mode 100644 index 6ddd68b5b..000000000 --- a/packages/ui/docs/guides/principles/definitions-and-terms.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/principles/definitions-and-terms.md) diff --git a/packages/ui/docs/guides/principles/index.md b/packages/ui/docs/guides/principles/index.md deleted file mode 100644 index 782a0ca05..000000000 --- a/packages/ui/docs/guides/principles/index.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/principles/index.md) diff --git a/packages/ui/docs/guides/principles/scoped-elements.md b/packages/ui/docs/guides/principles/scoped-elements.md deleted file mode 100644 index fe49e687c..000000000 --- a/packages/ui/docs/guides/principles/scoped-elements.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/principles/scoped-elements.md) diff --git a/packages/ui/docs/guides/principles/styling.md b/packages/ui/docs/guides/principles/styling.md deleted file mode 100644 index b642e31f1..000000000 --- a/packages/ui/docs/guides/principles/styling.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/principles/styling.md) diff --git a/packages/ui/docs/guides/principles/subclasser-apis.md b/packages/ui/docs/guides/principles/subclasser-apis.md deleted file mode 100644 index 62c703759..000000000 --- a/packages/ui/docs/guides/principles/subclasser-apis.md +++ /dev/null @@ -1 +0,0 @@ -[=> See Source <=](../../../../../docs/guides/principles/subclasser-apis.md) diff --git a/packages/ui/docs/override.js b/packages/ui/docs/override.js deleted file mode 100644 index 552d7c9b9..000000000 --- a/packages/ui/docs/override.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * This will override all md files within the folder to only contain [=> See Source <=](../path/to/source.md) - */ - -import { writeFile } from 'fs/promises'; -import glob from 'glob'; - -const allFiles = glob.sync('**/*.md', { nodir: true }); -const files = allFiles; - -for (const filePath of files) { - const insert = 3 + filePath.match(/\//g).length; - const srcPath = `${'../'.repeat(insert)}docs/${filePath}`; - await writeFile(filePath, `[=> See Source <=](${srcPath})`); -} diff --git a/packages/ui/package.json b/packages/ui/package.json index 158bd4159..ff56e9145 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -41,7 +41,7 @@ "debug:firefox": "cd ../../ && npm run debug:firefox", "debug:webkit": "cd ../../ && npm run debug:webkit", "publish-docs": "node ../../packages-node/publish-docs/src/cli.js --github-url https://github.com/ing-bank/lion/ --git-root-dir ../../", - "prepublishOnly": "npm run types && node ./scripts/copy-doc-assets.js && npm run publish-docs && npm run custom-elements-manifest", + "prepublishOnly": "npm run types && node ./scripts/create-docs-for-npm-publish.js && npm run publish-docs && npm run custom-elements-manifest", "test": "cd ../../ && npm run test:browser", "types": "wireit", "types-check-only": "tsc --project tsconfig-check-only.json", diff --git a/packages/ui/scripts/copy-doc-assets.js b/packages/ui/scripts/copy-doc-assets.js deleted file mode 100644 index 47d0ffcad..000000000 --- a/packages/ui/scripts/copy-doc-assets.js +++ /dev/null @@ -1,29 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -// eslint-disable-next-line import/no-extraneous-dependencies -import { globby } from 'globby'; -import { fileURLToPath } from 'url'; - -const monoDocsRoot = fileURLToPath(new URL('../../../docs', import.meta.url)); -const localDocsRoot = fileURLToPath(new URL('../docs', import.meta.url)); - -async function copyDocAssets() { - // Folders generated by Rocket - const oldDestinations = await globby([`${monoDocsRoot}/**/**/*.{js,cjs,mjs}`]); - - for (const oldDestination of oldDestinations) { - const relPath = oldDestination.replace(monoDocsRoot, ''); - - // don't handle private folders and Rocket specifics - if (relPath.startsWith('/_') || oldDestination.endsWith('11tydata.cjs')) { - // eslint-disable-next-line no-continue - continue; - } - const newDestination = `${localDocsRoot}${relPath}`; - - await fs.promises.mkdir(path.dirname(newDestination), { recursive: true }); - fs.promises.copyFile(oldDestination, newDestination); - } -} - -copyDocAssets(); diff --git a/packages/ui/scripts/create-docs-for-npm-publish.js b/packages/ui/scripts/create-docs-for-npm-publish.js new file mode 100644 index 000000000..ec3cf83c8 --- /dev/null +++ b/packages/ui/scripts/create-docs-for-npm-publish.js @@ -0,0 +1,76 @@ +import fs from 'fs'; +import path from 'path'; +// eslint-disable-next-line import/no-extraneous-dependencies +import { globby } from 'globby'; +import { fileURLToPath } from 'url'; + +const monoRoot = fileURLToPath(new URL('../../../', import.meta.url)); +const lionUiPkgRoot = fileURLToPath(new URL('../', import.meta.url)); + +const monoDocsRoot = fileURLToPath(new URL('../../../docs', import.meta.url)); +const localDocsRoot = fileURLToPath(new URL('../docs', import.meta.url)); +const foldersWeAreInterestedIn = ['components', 'fundamentals', 'guides']; + +/** + * @param {string} rootPath + * @returns {object|undefined} + */ +function getPackageJson(rootPath) { + try { + const fileContent = fs.readFileSync(`${rootPath}/package.json`, 'utf8'); + return JSON.parse(fileContent); + } catch { + return undefined; + } +} + +async function sanityCheck() { + const pkgJsonMonoRoot = getPackageJson(monoRoot); + const pkgJsonLionUi = getPackageJson(lionUiPkgRoot); + + if (pkgJsonMonoRoot?.name !== '@lion/root' || pkgJsonLionUi.name !== '@lion/ui') { + throw new Error( + 'It seems like this script has moved. Adjust variables "monoRoot" and/or "lionUiPkgRoot"', + ); + } +} + +async function generateMdFilesWithSourceReferrals() { + const mdPaths = await globby(`${monoDocsRoot}/{${foldersWeAreInterestedIn.join(',')}}/**/*.md`, { + nodir: true, + }); + + for (const mdPath of mdPaths) { + const localPath = mdPath.replace(monoDocsRoot, ''); + const newDestination = `${localDocsRoot}${localPath}`; + const relSrcPath = path.relative(path.dirname(newDestination), monoDocsRoot); + await fs.promises.mkdir(path.dirname(newDestination), { recursive: true }); + // Make it ready for publish-docs + await fs.promises.writeFile(newDestination, `[=> See Source <=](${relSrcPath}${localPath})`); + } +} + +async function copyDocAssets() { + // Folders generated by Rocket + const originalAssetPaths = await globby([ + `${monoDocsRoot}/{${foldersWeAreInterestedIn.join(',')}}/**/**/*.{js,cjs,mjs}`, + ]); + + for (const originalAssetPath of originalAssetPaths) { + const localPath = originalAssetPath.replace(monoDocsRoot, ''); + + // don't handle private folders and Rocket specifics + if (localPath.startsWith('/_') || originalAssetPath.endsWith('11tydata.cjs')) { + // eslint-disable-next-line no-continue + continue; + } + const newDestination = `${localDocsRoot}${localPath}`; + + await fs.promises.mkdir(path.dirname(newDestination), { recursive: true }); + fs.promises.copyFile(originalAssetPath, newDestination); + } +} + +await sanityCheck(); +await generateMdFilesWithSourceReferrals(); +await copyDocAssets();