Răsfoiți Sursa

chore: Remove old docs files

Michael Bromley 2 ani în urmă
părinte
comite
b85ab5f516
100 a modificat fișierele cu 0 adăugiri și 3774 ștergeri
  1. 0 6
      docs-old/.gitignore
  2. 0 135
      docs-old/README.md
  3. 0 5
      docs-old/archetypes/default.md
  4. 0 21
      docs-old/assets/scripts/alpine-components/popover.ts
  5. 0 13
      docs-old/assets/scripts/alpine-components/scroll-spy.ts
  6. 0 19
      docs-old/assets/scripts/alpine.types.ts
  7. 0 9
      docs-old/assets/scripts/docs-formatting.ts
  8. 0 42
      docs-old/assets/scripts/main.ts
  9. 0 21
      docs-old/assets/scripts/nav-menu.ts
  10. 0 44
      docs-old/assets/scripts/recent-search-recorder.ts
  11. 0 283
      docs-old/assets/scripts/search-widget.ts
  12. 0 87
      docs-old/assets/scripts/tabs.ts
  13. 0 71
      docs-old/assets/scripts/toc-highlighter.ts
  14. 0 16
      docs-old/assets/styles/_article.scss
  15. 0 73
      docs-old/assets/styles/_blog.scss
  16. 0 52
      docs-old/assets/styles/_fonts.scss
  17. 0 236
      docs-old/assets/styles/_markdown.scss
  18. 0 92
      docs-old/assets/styles/_menu.scss
  19. 0 52
      docs-old/assets/styles/_mixins.scss
  20. 0 84
      docs-old/assets/styles/_search-widget.scss
  21. 0 146
      docs-old/assets/styles/_shortcodes.scss
  22. 0 83
      docs-old/assets/styles/_syntax.scss
  23. 0 43
      docs-old/assets/styles/_toc.scss
  24. 0 2
      docs-old/assets/styles/_utils.scss
  25. 0 56
      docs-old/assets/styles/_variables.scss
  26. 0 236
      docs-old/assets/styles/main.scss
  27. 0 22
      docs-old/config.toml
  28. 0 42
      docs-old/content/_index.md
  29. 0 12
      docs-old/content/searchindex/_index.md
  30. 0 0
      docs-old/data/.gitkeep
  31. 0 4
      docs-old/data/build.json
  32. 0 25
      docs-old/diagrams/channels-currencies-diagram.puml
  33. 0 25
      docs-old/diagrams/channels-diagram.puml
  34. 0 28
      docs-old/diagrams/channels-prices-diagram.puml
  35. 0 37
      docs-old/diagrams/customer-account-order-activity-diagram.puml
  36. 0 39
      docs-old/diagrams/customer-registration-activity-diagram.puml
  37. 0 22
      docs-old/diagrams/customer-session-activity-diagram.puml
  38. 0 25
      docs-old/diagrams/determining-active-channel.puml
  39. 0 44
      docs-old/diagrams/email-component-diagram.puml
  40. 0 118
      docs-old/diagrams/full-class-diagram.puml
  41. 0 12
      docs-old/diagrams/job-queue-req-res-with-queue.puml
  42. 0 9
      docs-old/diagrams/job-queue-req-res.puml
  43. 0 12
      docs-old/diagrams/job-queue.puml
  44. 0 32
      docs-old/diagrams/order-class-diagram.puml
  45. 0 49
      docs-old/diagrams/order-state-diagram-for-admin.puml
  46. 0 77
      docs-old/diagrams/order-state-diagram.puml
  47. 0 21
      docs-old/diagrams/payment-sequence-one-step.puml
  48. 0 28
      docs-old/diagrams/payment-sequence-two-step.puml
  49. 0 46
      docs-old/diagrams/plugin-architecture.puml
  50. 0 31
      docs-old/diagrams/plugin-lifecycle.puml
  51. 0 28
      docs-old/diagrams/product-variants.puml
  52. 0 94
      docs-old/diagrams/theme.puml
  53. 0 42
      docs-old/diagrams/vendure-architecture.puml
  54. 0 106
      docs-old/layouts/404.html
  55. 0 113
      docs-old/layouts/_default/baseof.html
  56. 0 12
      docs-old/layouts/_default/list.html
  57. 0 10
      docs-old/layouts/_default/single.html
  58. 0 33
      docs-old/layouts/partials/announcement-banner.html
  59. 0 24
      docs-old/layouts/partials/breadcrumbs-static.html
  60. 0 57
      docs-old/layouts/partials/breadcrumbs.html
  61. 0 3
      docs-old/layouts/partials/docs/brand.html
  62. 0 18
      docs-old/layouts/partials/docs/git-footer.html
  63. 0 9
      docs-old/layouts/partials/docs/html-head.html
  64. 0 3
      docs-old/layouts/partials/docs/menu-bundle.html
  65. 0 6
      docs-old/layouts/partials/docs/mobile-header.html
  66. 0 11
      docs-old/layouts/partials/docs/shared.html
  67. 0 6
      docs-old/layouts/partials/docs/toc.html
  68. 0 213
      docs-old/layouts/partials/footer.html
  69. 0 14
      docs-old/layouts/partials/light-triangle-pattern.html
  70. 0 41
      docs-old/layouts/partials/menu-filetree.html
  71. 0 60
      docs-old/layouts/partials/top-bar.html
  72. 0 13
      docs-old/layouts/searchindex/searchindex.html
  73. 0 11
      docs-old/layouts/shortcodes/alert.html
  74. 0 16
      docs-old/layouts/shortcodes/generation-info.html
  75. 0 3
      docs-old/layouts/shortcodes/gql-enum-values.html
  76. 0 3
      docs-old/layouts/shortcodes/gql-fields.html
  77. 0 3
      docs-old/layouts/shortcodes/image.html
  78. 0 3
      docs-old/layouts/shortcodes/member-description.html
  79. 0 26
      docs-old/layouts/shortcodes/member-info.html
  80. 0 21
      docs-old/layouts/shortcodes/pull-quote.html
  81. 0 4
      docs-old/layouts/shortcodes/shop-api-operation.html
  82. 0 3
      docs-old/layouts/shortcodes/tab.html
  83. 0 10
      docs-old/netlify.toml
  84. 0 36
      docs-old/package.json
  85. 0 7
      docs-old/postcss.config.js
  86. BIN
      docs-old/static/branding/cube-logo-300.png
  87. BIN
      docs-old/static/branding/cube-logo-800.png
  88. 0 25
      docs-old/static/branding/cube-logo-vector.svg
  89. 0 0
      docs-old/static/branding/wordmark-logo-vector.svg
  90. BIN
      docs-old/static/branding/wordmark-logo.png
  91. 0 0
      docs-old/static/branding/wordmark-vector.svg
  92. BIN
      docs-old/static/branding/wordmark.png
  93. BIN
      docs-old/static/favicon.ico
  94. BIN
      docs-old/static/fonts/Inter-Bold.woff2
  95. BIN
      docs-old/static/fonts/Inter-Light.woff2
  96. BIN
      docs-old/static/fonts/Inter-Regular.woff2
  97. BIN
      docs-old/static/fonts/LexendDeca-Light.woff2
  98. BIN
      docs-old/static/fonts/LexendDeca-Regular.woff2
  99. BIN
      docs-old/static/fonts/didact-gothic-wordmark.woff2
  100. BIN
      docs-old/static/logo.png

+ 0 - 6
docs-old/.gitignore

@@ -1,6 +0,0 @@
-.idea
-node_modules
-public
-static/*.js*
-static/*.css*
-resources/_gen

+ 0 - 135
docs-old/README.md

@@ -1,135 +0,0 @@
-# Vendure Docs
-
-This is the source for the documentation part of the vendure.io website. Docs are written in markdown and the website is generated with [Hugo](https://gohugo.io).
-
-## Structure
-
-```
-docs
-├── content/
-│   └── # The actual markdown files
-│       # which make up the docs, both manually-written
-│       # and auto-generated from source.
-├── data/
-│   └── # Data files used in generating the docs website
-└── diagrams/
-    └── # PlantUML diagrams used in the documentation
-```
-
-The `content` directory contains the actual documentation markdown files and images.
-
-## Docs Generation
-
-All of the documentation for the TypeScript APIs and the GraphQL API is auto-generated.
-
-Run the `docs:build` script from the root of this repo.
-
-This task will:
-
-* Auto-generate the API markdown files based on the Vendure server source (see below)
-* Update the build data to match the current version and commit
-
-The generated markdown is then used by an external project which builds the Vendure website.
-
-### GraphQL Docs
-
-The GraphQL API docs are generated from the `schema.json` file which is created as part of the `codegen` script.
-
-### TypeScript Docs
-
-The TypeScript docs are generated from the TypeScript source files by running the `docs:generate-typescript-docs` script:
-
-```bash
-yarn docs:generate-typescript-docs [-w]
-```
-
-This script uses the TypeScript compiler API to traverse the server source code and extract data about the types as well as other information such as descriptions and default values.
-
-Currently, any `interface`, `class` or `type` which includes the JSDoc `@docCategory` tag will be extracted into a markdown file in the [content/docs/api](./content/docs/api) directory. Hugo can then build the API documentation from these markdown files.
-
-#### Docs-specific JSDoc tags
-
-##### `@docsCategory`
-
-This is required as its presence determines whether the declaration is extracted into the docs. Its value should be a string corresponding to the API sub-section that this declaration belongs to, e.g. "payment", "shipping" etc.
-
-##### `@docsPage`
-
-This optional tag can be used to group declarations together onto a single page. This is useful e.g. in the case of utility functions or
-type aliases, which may be considered too trivial to get an entire page to themselves.
-
-##### `@docsWeight`
-
-This optional tag can be used to define the order of definitions on a single page. By default, multiple definitions on a page are sorted alphabetically,
-but this sometimes leaves the "main" definition near the bottom. In this case, the `@docsWeight` tag can promote it to the top (0 is first).
-
-##### `@description`
-
-This tag specifies the text description of the declaration. It supports markdown, but should not be used for code blocks, which should be tagged with `@example` (see below). Links to other declarations can be made with the `{@link SomeOtherDeclaration}` syntax. Also applies to class/interface members.
-
-##### `@example`
-
-This tag should be used to include any code blocks. Remember to specify the language after the opening delimiter for correct highlighting. Also applies to class/interface members. If the example code includes the `@` character, it must be escaped
-so that it is not interpreted as a JSDoc tag:
-
-```ts
-import { VendureConfig } from '\@vendure/core';
-```
-
-##### `@default`
-
-This is used to specify the default value of a property, e.g. when documenting an optional configuration option.
-
-##### `@internal`
-
-This is used to exclude members from appearing in the docs. For example, a class may need a particular
-public method for internal use, but this method is not intended to be used by external consumers of that
-class.
-
-##### `@since`
-
-The @since tag indicates that a class, method, or other symbol was added in a specific version.
-
-##### `@experimental`
-
-The @experimental tag indicates that a class, method, or other symbol is part of an experimental API and 
-may be subject to changes. This is used to allow the testing of new features to gather developer feedback before
-marking the API as stable
-
-##### Example
-
-````ts
-/**
- * @description
- * Greets people with a friendly message. 
- * Used by the {@link AppInitializer} during the start-up process.
- *
- * @example
- * ```ts
- * const greeter = new Greeter();
- * console.log(greeter.greet('mike'));
- * // -> 'Hi, mike, good to see you!'
- * ```
- *
- * @docsCategory helpers
- * @since 1.2.3
- */
-export class Greeter {
-
-    /**
-     * @description
-     * Greets the person by name
-     */
-    greet(name: string): string {
-      return `Hi, ${name}, good to see you!`;
-    }
-    
-    /**
-     * Required as a work-around for issue #1234
-     * @internal
-     */
-    someMethodUsedOnlyByVendureCore() {
-        // ...
-    }
-}
-````

+ 0 - 5
docs-old/archetypes/default.md

@@ -1,5 +0,0 @@
----
-title: "{{ .Name | humanize | title }}"
-weight: 1
----
-

+ 0 - 21
docs-old/assets/scripts/alpine-components/popover.ts

@@ -1,21 +0,0 @@
-import { AlpineContext, AlpineEvent } from "../alpine.types";
-
-export function popover(open = false, focus = false) {
-    let restoreEl: HTMLDivElement | undefined = undefined;
-
-    return {
-        open,
-        onEscape() {
-            this.open = false;
-            restoreEl?.focus();
-        },
-        onClosePopoverGroup(e: AlpineEvent) {
-            e.detail.contains(this.$el) && (this.open = false);
-        },
-
-        toggle(e: AlpineEvent) {
-            this.open = !this.open;
-            this.open ? restoreEl = e.currentTarget as HTMLDivElement : restoreEl?.focus()
-        },
-    } as AlpineContext;
-}

+ 0 - 13
docs-old/assets/scripts/alpine-components/scroll-spy.ts

@@ -1,13 +0,0 @@
-import { AlpineContext, AlpineEvent } from "../alpine.types";
-
-export function scrollSpy() {
-    return {
-        isScrolledToTop: true,
-        scrollY: 0,
-        onScroll() {
-            this.scrollY = window.scrollY;
-            this.isScrolledToTop = this.scrollY === 0;
-        },
-    } as AlpineContext;
-}
-

+ 0 - 19
docs-old/assets/scripts/alpine.types.ts

@@ -1,19 +0,0 @@
-declare global {
-    interface Window {
-        Components: any;
-    }
-}
-
-export interface AlpineContext {
-    $el?: Element;
-    $refs?: { [name: string]: Element; };
-    $event?: Event;
-    $dispatch?: (name: string, data: any) => void;
-    $watch?: (prop: string, handler: (value: any) => void) => void;
-    $nextTick?: (handler: () => void) => void;
-    [prop: string]: any;
-}
-
-export interface AlpineEvent extends Event {
-    detail: any;
-}

+ 0 - 9
docs-old/assets/scripts/docs-formatting.ts

@@ -1,9 +0,0 @@
-export function formatDocs() {
-
-    Array.from(document.querySelectorAll('h3')).forEach(h1 => {
-        const nextSibling = h1.nextElementSibling;
-        if (nextSibling && nextSibling.classList.contains('member-info')) {
-            h1.classList.add('member-title');
-        }
-    });
-}

+ 0 - 42
docs-old/assets/scripts/main.ts

@@ -1,42 +0,0 @@
-import { formatDocs } from './docs-formatting';
-// import { initGraphQlPlaygroundWidgets } from './graphql-playground-widget';
-import { initNavMenu } from './nav-menu';
-import { SearchWidget } from './search-widget';
-import { initTabs } from './tabs';
-import { TocHighlighter } from './toc-highlighter';
-import 'alpinejs';
-import { popover } from './alpine-components/popover';
-import { scrollSpy } from './alpine-components/scroll-spy';
-
-window.Components = {};
-window.Components.popover = popover;
-window.Components.scrollSpy = scrollSpy;
-
-// tslint:disable-next-line
-require('../styles/main.scss');
-
-document.addEventListener(
-    'DOMContentLoaded',
-    async () => {
-        const toc = document.querySelector('#TableOfContents') as HTMLDivElement;
-        const tocHighlighter = new TocHighlighter(toc);
-        tocHighlighter.highlight();
-
-        const searchInput = document.querySelector('#searchInput') as HTMLInputElement;
-        const autocompleteWrapper = document.querySelector('#autocomplete-wrapper') as HTMLDivElement;
-        const searchTrigger = document.querySelector('#searchInputTrigger') as HTMLInputElement;
-        const searchOverlay = document.querySelector('#searchOverlay') as HTMLDivElement;
-        if (searchTrigger) {
-            const searchWidget = new SearchWidget(
-                searchInput,
-                autocompleteWrapper,
-                searchOverlay,
-                searchTrigger,
-            );
-        }
-        initTabs();
-        initNavMenu();
-        formatDocs();
-    },
-    false,
-);

+ 0 - 21
docs-old/assets/scripts/nav-menu.ts

@@ -1,21 +0,0 @@
-export function initNavMenu() {
-    const sections = document.querySelectorAll('nav li.section');
-    sections.forEach(makeExpandable);
-
-    const activeLink = document.querySelector('nav a.active');
-    if (activeLink) {
-        activeLink.scrollIntoView({ block: 'center' });
-    }
-}
-
-function makeExpandable(section: Element) {
-    const icon = section.querySelector('.section-icon');
-    const sublist = section.querySelector('ul');
-
-    if (icon && sublist) {
-        icon.addEventListener('click', () => {
-            icon.classList.toggle('expanded');
-            sublist.classList.toggle('expanded');
-        });
-    }
-}

+ 0 - 44
docs-old/assets/scripts/recent-search-recorder.ts

@@ -1,44 +0,0 @@
-
-interface RecentSearchResult {
-    parent: string;
-    page: string;
-    title: string;
-    url: string;
-    timestamp: number;
-}
-
-const RECENT_SEARCHES_KEY = '__vendure_io_recent_searches__';
-
-export class RecentSearchRecorder {
-    private recentSearches: RecentSearchResult[] = [];
-    private readonly maxAgeMs = 5 * 24 * 60 * 60 * 1000; // 5 days
-    private readonly maxSize = 5;
-
-    get list() {
-        return this.recentSearches.slice().reverse();
-    }
-
-    init() {
-        try {
-            const data = window.localStorage.getItem(RECENT_SEARCHES_KEY) ?? '[]';
-            const parsed: RecentSearchResult[] = JSON.parse(data);
-            const now = Date.now();
-            this.recentSearches = parsed.filter(x => now - x.timestamp < this.maxAgeMs);
-        } catch (e) {
-            // ...
-        }
-    }
-
-    record(details: Omit<RecentSearchResult, 'timestamp'>) {
-        if (this.recentSearches.find(x => x.url === details.url)) {
-            return;
-        }
-        this.recentSearches.push({
-            ...details, timestamp: Date.now(),
-        });
-        if (this.maxSize < this.recentSearches.length) {
-            this.recentSearches.shift();
-        }
-        window.localStorage.setItem(RECENT_SEARCHES_KEY, JSON.stringify(this.recentSearches));
-    }
-}

+ 0 - 283
docs-old/assets/scripts/search-widget.ts

@@ -1,283 +0,0 @@
-import fuzzy, { FilterResult } from 'fuzzy';
-import { RecentSearchRecorder } from './recent-search-recorder';
-
-type Section = 'developer-guide' | 'user-guide' | 'config' | 'gql';
-
-interface IndexItem {
-    section: Section;
-    title: string;
-    parent: string;
-    headings: string[];
-    url: string;
-}
-
-interface DenormalizedItem {
-    section: Section;
-    title: string;
-    parent: string;
-    heading: string;
-    url: string;
-}
-
-const KeyCode = {
-    UP: 38,
-    DOWN: 40,
-    ENTER: 13,
-    ESCAPE: 27,
-};
-
-/**
- * This class implements the auto-suggest search box for searching the docs.
- */
-export class SearchWidget {
-
-    private readonly MAX_RESULTS = 7;
-    private searchIndex: Promise<DenormalizedItem[]> | undefined;
-    private results: Array<FilterResult<DenormalizedItem>> = [];
-    private selectedIndex = -1;
-    private autocompleteDiv: HTMLDivElement;
-    private wrapperDiv: HTMLDivElement;
-    private listElement: HTMLUListElement;
-    private recentSearchRecorder: RecentSearchRecorder;
-
-    constructor(private inputElement: HTMLInputElement,
-                private autoCompleteWrapperElement: HTMLDivElement,
-                private overlayElement: HTMLDivElement,
-                private triggerElement: HTMLInputElement) {
-        this.attachAutocomplete();
-        this.recentSearchRecorder = new RecentSearchRecorder();
-        this.recentSearchRecorder.init();
-
-        inputElement.addEventListener('input', (e) => {
-            this.handleInput(e as KeyboardEvent);
-        });
-
-        inputElement.addEventListener('keydown', (e: KeyboardEvent) => {
-            const listItemCount = this.inputElement.value === '' ? this.recentSearchRecorder.list.length : this.results.length;
-            switch (e.keyCode) {
-                case KeyCode.UP:
-                    this.selectedIndex = this.selectedIndex === 0 ? listItemCount - 1 : this.selectedIndex - 1;
-                    e.preventDefault();
-                    break;
-                case KeyCode.DOWN:
-                    this.selectedIndex = this.selectedIndex === (listItemCount - 1) ? 0 : this.selectedIndex + 1;
-                    e.preventDefault();
-                    break;
-                case KeyCode.ENTER:
-                    const selected = this.autocompleteDiv.querySelector('li.selected a') as HTMLAnchorElement;
-                    if (selected) {
-                        selected.click();
-                        this.results = [];
-                    }
-                    break;
-                case KeyCode.ESCAPE:
-                    this.results = [];
-                    this.inputElement.blur();
-                    break;
-            }
-            this.render();
-            setTimeout(() => {
-                Array.from(this.listElement.querySelectorAll('.result')).forEach(titleEl => {
-                    titleEl.addEventListener('click', this.recordClickToHistory)
-                });
-            });
-        });
-
-        this.wrapperDiv.addEventListener('click', (e) => {
-            this.results = [];
-            this.render();
-        });
-
-        const openModal = () => {
-            this.overlayElement.click();
-            setTimeout(() => {
-                this.inputElement.value = this.triggerElement.value;
-                this.triggerElement.value = '';
-                this.inputElement.focus();
-            }, 50);
-            this.render();
-        }
-
-        this.triggerElement.addEventListener('click', openModal);
-        this.triggerElement.addEventListener('keypress', openModal);
-        window.addEventListener('keydown', e => {
-            if (e.ctrlKey && e.key === 'k') {
-                openModal();
-                e.preventDefault();
-            }
-        });
-    }
-
-    toggleActive() {
-        this.wrapperDiv.classList.toggle('focus');
-        if (this.wrapperDiv.classList.contains('focus')) {
-            this.inputElement.focus();
-        }
-    }
-
-    /**
-     * Groups the results by section and renders as a list
-     */
-    private render() {
-
-        const sections: Section[] = ['developer-guide', 'user-guide', 'gql', 'config'];
-        let html = '';
-        let i = 0;
-        if (this.inputElement.value === '' && this.recentSearchRecorder.list.length) {
-            html += `<li class="section recent">Recent</li>`;
-            html += this.recentSearchRecorder.list.map(({parent, page, title, url}) => {
-                const inner = `<div class="title"><span class="parent">${parent}</span> › ${page}</div><div class="heading">${title}</div>`;
-                const selected = i === this.selectedIndex ? 'selected' : '';
-                i++;
-                return `<li class="${selected} result recent"><a href="${url}">${inner}</a></li>`;
-            }).join('\n');
-        } else {
-            for (const sec of sections) {
-                const matches = this.results.filter(r => r.original.section === sec);
-                if (matches.length) {
-                    const sectionName = this.getSectionName(sec);
-                    html += `<li class="section ${sec}">${sectionName}</li>`;
-                }
-                html += matches.map((result) => {
-                    const {section, title, parent, heading, url} = result.original;
-                    const anchor = heading !== title ? '#' + this.headingToAnchor(heading) : '';
-                    const inner = `<div class="title"><span class="parent">${parent}</span> › <span class="page">${title}</span></div><div class="heading">${result.string}</div>`;
-                    const selected = i === this.selectedIndex ? 'selected' : '';
-                    i++;
-                    return `<li class="${selected} result ${sec}"><a href="${url + anchor}">${inner}</a></li>`;
-                }).join('\n');
-            }
-        }
-
-        this.listElement.innerHTML = html;
-    }
-
-    private recordClickToHistory = (e: Event) => {
-        const title = (e.currentTarget as HTMLDivElement).querySelector('.heading')?.textContent;
-        const parent = (e.currentTarget as HTMLDivElement).querySelector('.parent')?.textContent;
-        const page = (e.currentTarget as HTMLDivElement).querySelector('.page')?.textContent;
-        const url = (e.currentTarget as HTMLDivElement).querySelector('a')?.href;
-        if (title && url && parent && page) {
-            this.recentSearchRecorder.record({
-                parent,
-                page,
-                title,
-                url,
-            });
-        }
-    }
-
-    private getSectionName(sec: Section): string {
-        switch (sec) {
-            case 'developer-guide':
-                return 'Developer Guide';
-            case 'config':
-                return 'TypeScript API';
-            case 'gql':
-                return 'GraphQL API';
-            case 'user-guide':
-                return 'Administrator Guide';
-        }
-    }
-
-    private attachAutocomplete() {
-        this.autocompleteDiv = document.createElement('div');
-        this.autocompleteDiv.classList.add('autocomplete');
-        this.listElement = document.createElement('ul');
-        this.autocompleteDiv.appendChild(this.listElement);
-        this.wrapperDiv = this.autoCompleteWrapperElement;
-        this.wrapperDiv.classList.add('autocomplete-wrapper');
-
-        const parent = this.inputElement.parentElement;
-        if (parent) {
-            // parent.insertBefore(this.wrapperDiv, this.inputElement);
-            // this.wrapperDiv.appendChild(this.inputElement);
-            this.wrapperDiv.appendChild(this.autocompleteDiv);
-        }
-    }
-
-    private async handleInput(e: KeyboardEvent) {
-        const term = (e.target as HTMLInputElement).value.trim();
-        this.results = term ? await this.getResults(term) : [];
-        this.selectedIndex = 0;
-        this.render();
-    }
-
-    private async getResults(term: string) {
-        const items = await this.getSearchIndex();
-        const results = fuzzy.filter(
-            term,
-            items,
-            {
-                pre: '<span class="hl">',
-                post: '</span>',
-                extract(input: DenormalizedItem): string {
-                    return input.heading;
-                },
-            },
-        );
-
-        if (this.MAX_RESULTS < results.length) {
-            // limit the maximum number of results from a particular
-            // section to prevent other possibly relevant results getting
-            // buried.
-            const devGuides = results.filter(r => r.original.section === 'developer-guide');
-            const adminGuides = results.filter(r => r.original.section === 'user-guide');
-            const gql = results.filter(r => r.original.section === 'gql');
-            const config = results.filter(r => r.original.section === 'config');
-            let pool = [devGuides, adminGuides, gql, config].filter(p => p.length);
-            const balancedResults = [];
-            for (let i = 0; i < this.MAX_RESULTS; i++) {
-                const next = pool[i % pool.length].shift();
-                if (next) {
-                    balancedResults.push(next);
-                }
-                pool = [devGuides, adminGuides, gql, config].filter(p => p.length);
-            }
-            return balancedResults;
-        }
-        return results;
-    }
-
-    private getSearchIndex(): Promise<DenormalizedItem[]> {
-        if (!this.searchIndex) {
-            // tslint:disable:no-eval
-            this.searchIndex = fetch('/searchindex/index.html')
-                .then(res => res.text())
-                .then(res => eval(res))
-                .then((items: IndexItem[]) => {
-                    const denormalized: DenormalizedItem[] = [];
-                    for (const {section, title, parent, headings, url} of items) {
-                        denormalized.push({
-                            section,
-                            title,
-                            parent,
-                            heading: title,
-                            url,
-                        });
-                        if (headings.length) {
-                            for (const heading of headings) {
-                                if (heading !== title) {
-                                    denormalized.push({
-                                        section,
-                                        title,
-                                        parent,
-                                        heading,
-                                        url,
-                                    });
-                                }
-                            }
-                        }
-                    }
-                    return denormalized;
-                });
-        }
-        return this.searchIndex;
-    }
-
-    private headingToAnchor(heading: string): string {
-        return heading.toLowerCase()
-            .replace(/\s/g, '-')
-            .replace(/[:]/g, '');
-    }
-}

+ 0 - 87
docs-old/assets/scripts/tabs.ts

@@ -1,87 +0,0 @@
-type TabGroup = HTMLDivElement[];
-
-const TAB_CLASS = 'tab';
-const TAB_CONTROL_CLASS = 'tab-control';
-const TAB_CONTROL_WRAPPER_CLASS = 'tab-controls';
-const CONTAINER_CLASS = 'tab-container';
-const ACTIVE_CLASS = 'active';
-
-export function initTabs() {
-    const tabs = document.querySelectorAll<HTMLDivElement>(`.${TAB_CLASS}`);
-    const tabGroups = groupTabs(Array.from(tabs));
-    const containers = tabGroups.map(g => wrapTabGroup(g));
-    containers.forEach(container => {
-        container.addEventListener('click', e => {
-            const target = e.target as HTMLElement;
-            if (target.classList.contains(TAB_CONTROL_CLASS)) {
-                const tabId = target.dataset.id;
-                // deactivate all sibling tabs & controls
-                const tabsInGroup = Array.from(container.querySelectorAll(`.${TAB_CLASS}`));
-                const controlsInGroup = Array.from(container.querySelectorAll(`.${TAB_CONTROL_CLASS}`));
-                [...tabsInGroup, ...controlsInGroup].forEach(tab => tab.classList.remove(ACTIVE_CLASS));
-                // activate the newly selected tab & control
-                target.classList.add(ACTIVE_CLASS);
-                tabsInGroup.filter(t => t.id === tabId).forEach(tab => tab.classList.add(ACTIVE_CLASS));
-            }
-        });
-    });
-}
-
-/**
- * Groups sibling tabs together.
- */
-function groupTabs(tabs: HTMLDivElement[]): TabGroup[] {
-    const tabGroups: TabGroup[] = [];
-    const remainingTabs = tabs.slice();
-    let next: HTMLDivElement | undefined;
-    do {
-        next = remainingTabs.shift();
-        if (next) {
-            const group: TabGroup = [next];
-            let nextSibling = next.nextElementSibling;
-            while (nextSibling === remainingTabs[0]) {
-                if (nextSibling) {
-                    next = remainingTabs.shift();
-                    // tslint:disable-next-line:no-non-null-assertion
-                    group.push(next!);
-                }
-                // tslint:disable-next-line:no-non-null-assertion
-                nextSibling = next!.nextElementSibling;
-            }
-            tabGroups.push(group);
-        }
-    } while (next);
-    return tabGroups;
-}
-
-/**
- * Wrap the tabs of the group in a container div and add the tab controls
- */
-function wrapTabGroup(tabGroup: TabGroup): HTMLDivElement {
-    const tabControls = tabGroup.map(({ title }, i) => {
-        return `<button class="${TAB_CONTROL_CLASS} ${i === 0 ? ACTIVE_CLASS : ''}" data-id="${toId(title)}">${title}</button>`;
-    }).join('');
-    const wrapper = document.createElement('div');
-    wrapper.classList.add(CONTAINER_CLASS);
-    wrapper.innerHTML = `<div class="${TAB_CONTROL_WRAPPER_CLASS}">${tabControls}</div>`;
-
-    const parent = tabGroup[0].parentElement;
-    if (parent) {
-        parent.insertBefore(wrapper, tabGroup[0]);
-    }
-    tabGroup.forEach((tab, i) => {
-        tab.id = toId(tab.title);
-        if (i === 0) {
-            tab.classList.add(ACTIVE_CLASS);
-        }
-        wrapper.appendChild(tab);
-    });
-    return wrapper;
-}
-
-/**
- * Generate a normalized ID based on the title
- */
-function toId(title: string): string {
-    return 'tab-' + title.toLowerCase().replace(/[^a-zA-Z]/g, '-');
-}

+ 0 - 71
docs-old/assets/scripts/toc-highlighter.ts

@@ -1,71 +0,0 @@
-/**
- * Highlights the current section in the table of contents when scrolling.
- */
-export class TocHighlighter {
-    constructor(private tocElement: HTMLElement) {}
-
-    highlight() {
-        const article = document.querySelector('article');
-        if (this.tocElement && article) {
-            const headers: HTMLHeadingElement[] = Array.from(
-                article.querySelectorAll('h1[id],h2[id],h3[id],h4[id]'),
-            );
-
-            window.addEventListener('scroll', (e) => {
-                this.highlightCurrentSection(headers);
-            });
-            this.highlightCurrentSection(headers);
-        }
-    }
-
-    private highlightCurrentSection(headers: HTMLElement[]) {
-        const locationHash = location.hash;
-        Array.from(this.tocElement.querySelectorAll('.active')).forEach((el) =>
-            el.classList.remove('active'),
-        );
-
-        // tslint:disable:prefer-for-of
-        for (let i = 0; i < headers.length; i++) {
-            const header = headers[i];
-            const nextHeader = headers[i + 1];
-            const id = header.getAttribute('id') as string;
-            if (
-                !nextHeader ||
-                (nextHeader && window.scrollY < nextHeader.offsetTop)
-            ) {
-                this.highlightItem(id);
-                return;
-            }
-
-            const isCurrentTarget = `#${id}` === locationHash;
-            const currentTargetOffset = isCurrentTarget ? 90 : 0;
-            if (header.offsetTop + currentTargetOffset >= window.scrollY) {
-                this.highlightItem(id);
-                return;
-            }
-        }
-    }
-
-    private highlightItem(id: string) {
-        const tocItem = this.tocElement.querySelector(`[href="#${id}"]`) as HTMLAnchorElement;
-        if (tocItem) {
-            tocItem.classList.add('active');
-
-            // ensure the highlighted item is scrolled into view in the TOC menu
-            const padding = 12;
-            const tocHeight = this.tocElement.offsetHeight;
-            const tocScrollTop = this.tocElement.scrollTop;
-            const outOfRangeTop = tocItem?.offsetTop < tocScrollTop + padding;
-            const outofRangeBottom = tocHeight + tocScrollTop < tocItem.offsetTop + padding;
-            if (outOfRangeTop) {
-                // console.log('¬TOP');
-                this.tocElement.scrollTo({ top: tocItem.offsetTop - tocItem.offsetHeight - padding });
-            }
-            if (outofRangeBottom) {
-                // console.log('$BOTTOm');
-                const delta = tocItem.offsetTop - (tocHeight + tocScrollTop);
-                this.tocElement.scrollTo({ top: tocScrollTop + delta + tocItem.offsetHeight + padding });
-            }
-        }
-    }
-}

+ 0 - 16
docs-old/assets/styles/_article.scss

@@ -1,16 +0,0 @@
-@import "variables";
-
-.article-toc {
-    #TableOfContents > ul {
-        list-style-type: none;
-        padding-left: 0;
-
-        > li > ul {
-            list-style-type: disc;
-            color: $gray-600;
-            > li {
-                margin-bottom: $padding-8;
-            }
-        }
-    }
-}

+ 0 - 73
docs-old/assets/styles/_blog.scss

@@ -1,73 +0,0 @@
-@import "variables";
-
-.blog {
-    display: flex;
-    @media screen and (max-width: $md-breakpoint) {
-        display: block;
-    }
-
-    .book-toc {
-        flex: 1;
-    }
-}
-
-.posts-list {
-    min-height: 50vh;
-    padding: $padding-16 * 1.6;
-    min-width: $body-min-width;
-    max-width: $md-breakpoint;
-    margin: auto;
-
-    h2 {
-        font-size: 2em;
-        font-weight: 400;
-    }
-    h5 {
-        margin-top: -24px;
-    }
-    .featured-image {
-        max-width: 100%;
-    }
-    p {
-        line-height: 1.4em;
-    }
-}
-
-.left-gutter {
-    flex: 1;
-}
-
-.blog-post {
-
-    header {
-        overflow: hidden;
-        padding-bottom: $padding-16;
-        border-bottom: 1px dashed $gray-300;
-        h1 {
-            font-size: 3em;
-            font-weight: 400;
-            color: $brand-color;
-            margin-bottom: 12px;
-        }
-        @media screen and (max-width: $sm-breakpoint) {
-            h1 {
-                font-size: 2em;
-            }
-        }
-    }
-
-    .markdown > p:first-child {
-        font-size: 22px;
-        color: $gray-700;
-        @media screen and (max-width: $sm-breakpoint) {
-            font-size: 16px;
-        }
-    }
-
-    figure {
-        img {
-            max-width: 100%;
-        }
-    }
-}
-

+ 0 - 52
docs-old/assets/styles/_fonts.scss

@@ -1,52 +0,0 @@
-@font-face {
-  font-family: 'Didact Gothic';
-  font-style: normal;
-  font-weight: 400;
-  font-display: swap;
-  src: url(/fonts/didact-gothic-wordmark.woff2) format('woff2');
-}
-
-@font-face {
-  font-family: 'Lexend Deca';
-  font-style: normal;
-  font-weight: 300;
-  font-display: swap;
-  src: url(/fonts/LexendDeca-Light.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-@font-face {
-  font-family: 'Lexend Deca';
-  font-style: normal;
-  font-weight: 400;
-  font-display: swap;
-  src: url(/fonts/LexendDeca-Regular.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-
-@font-face {
-  font-family: 'Inter';
-  font-style: normal;
-  font-weight: 300;
-  font-display: swap;
-  src: url(/fonts/Inter-Light.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-
-
-@font-face {
-  font-family: 'Inter';
-  font-style: normal;
-  font-weight: 400;
-  font-display: swap;
-  src: url(/fonts/Inter-Regular.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-
-@font-face {
-  font-family: 'Inter';
-  font-style: normal;
-  font-weight: 700;
-  font-display: swap;
-  src: url(/fonts/Inter-Bold.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}

+ 0 - 236
docs-old/assets/styles/_markdown.scss

@@ -1,236 +0,0 @@
-@import 'variables';
-
-$block-border-radius: 4px;
-
-@mixin codelike {
-    display: inline-block;
-    border-radius: 3px;
-    font-family: 'Source Code Pro', monospace;
-    background-color: $gray-100;
-    border: 1px solid $gray-200;
-}
-
-.markdown {
-    line-height: 1.8;
-    color: $body-font-color;
-    background: $body-background;
-    font-family: 'Inter', sans-serif;
-    font-weight: $body-font-weight;
-
-    @media all and (min-width: $sm-breakpoint) {
-        margin-left: 12px;
-    }
-
-    h1 {
-        font-size: 1.875rem;
-        line-height: 2.25rem;
-    }
-
-    h1:first-of-type {
-        text-transform: capitalize;
-        margin-top: 0;
-        margin-bottom: 0;
-        font-size: 2.8em;
-
-        @media all and (max-width: $sm-breakpoint) {
-            font-size: 2em;
-        }
-    }
-
-    .symbol {
-        border: 1px solid #ddd;
-        border-radius: 4px;
-        padding: 24px;
-        margin: 24px 0 48px 0;
-        background-color: #fafafa;
-
-        > h1:first-of-type {
-            text-transform: none;
-            font-size: 1.875rem;
-            line-height: 2.25rem;
-        }
-    }
-
-    h1:not(:first-of-type) {
-        margin-top: 48px;
-        padding: 3px 12px;
-        @include codelike;
-    }
-
-    h2 {
-        margin-top: 60px;
-        margin-bottom: 6px;
-        font-size: 1.8em;
-        font-weight: 400;
-    }
-
-    h3 {
-        margin-top: 48px;
-        font-size: 1.4em;
-    }
-
-    h3.member-title {
-        margin-top: 6px;
-        margin-left: 6px;
-        padding: 2px 6px;
-        @include codelike;
-    }
-
-    h4 {
-        margin-top: 32px;
-    }
-
-    h1,
-    h2,
-    h3,
-    h4,
-    h5 {
-        font-family: $brand-font-face;
-        letter-spacing: -0.025em;
-        line-height: 1.25;
-
-        &[id]:target {
-            scroll-margin-top: 60px;
-            text-decoration: underline;
-        }
-    }
-
-    p {
-        margin: 16px 0;
-    }
-
-    b,
-    optgroup,
-    strong {
-        font-weight: 700;
-    }
-
-    a {
-        text-decoration: none;
-        color: $color-link;
-
-        &:hover,
-        &:visited:hover {
-            color: lighten($color-link, 10%);
-        }
-
-        &:visited {
-            color: $color-visited-link;
-        }
-    }
-
-    ul,
-    ol:not(.breadcrumbs) {
-        list-style-type: initial;
-        padding-left: 40px;
-    }
-
-    ol:not(.breadcrumbs) {
-        list-style-type: decimal;
-    }
-
-    li {
-        margin-bottom: 6px;
-    }
-
-    li::marker {
-        color: $gray-600;
-    }
-
-    code:not([data-lang]) {
-        font-family: 'Source Code Pro', monospace;
-        padding: 0 $padding-4;
-        background: $gray-200;
-        color: $gray-700;
-        font-size: 0.9em;
-        border-radius: $block-border-radius;
-        border: 1px solid $gray-300;
-    }
-
-    a > code:not([data-lang]) {
-        color: $color-link;
-    }
-
-    pre:not(.chroma) {
-        padding: $padding-16;
-        background: $color-code-bg;
-        border-radius: $block-border-radius;
-        font-size: $font-size-14;
-        overflow-x: auto;
-
-        code {
-            color: $color-code-text;
-            background: none;
-            padding: none;
-        }
-    }
-
-    blockquote {
-        margin: 0;
-        padding: $padding-16 $padding-16 * 2;
-        position: relative;
-        // font-size: 22px;
-        color: $gray-700;
-        border-left: 2px solid $gray-300;
-
-        :first-child {
-            margin-top: 0;
-        }
-        :last-child {
-            margin-bottom: 0;
-        }
-
-        &::before {
-            content: '“';
-            position: absolute;
-            font-family: Georgia, 'Times New Roman', Times, serif;
-            font-size: 48px;
-            top: 0px;
-            left: 10px;
-            color: $gray-500;
-        }
-    }
-
-    table {
-        width: 100%;
-        th {
-            text-align: left;
-        }
-        td,
-        th {
-            padding: $padding-4;
-        }
-        tr:nth-child(odd) td {
-            background-color: $gray-100;
-        }
-    }
-
-    figure {
-        margin: $padding-16 0;
-        display: flex;
-        flex-direction: column;
-        justify-content: center;
-
-        img {
-            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
-            border-radius: 0.5rem;
-        }
-        &.flat {
-            img {
-                box-shadow: none;
-            }
-        }
-        figcaption p,
-        figcaption h4 {
-            text-align: center;
-            font-size: $font-size-base;
-            margin-top: $padding-4;
-            margin-bottom: $padding-4;
-            font-style: italic;
-        }
-    }
-
-    .highlight + .highlight {
-        margin-top: 16px;
-    }
-}

+ 0 - 92
docs-old/assets/styles/_menu.scss

@@ -1,92 +0,0 @@
-@import "mixins";
-nav.book-menu {
-    @include custom-scrollbar;
-    text-transform: capitalize;
-
-
-    ul {
-        padding: 0;
-        margin: 0;
-        list-style: none;
-
-        li {
-            margin: 1em 0;
-        }
-
-        a {
-            display: block;
-        }
-
-        a:hover {
-            opacity: 0.5;
-        }
-
-        ul {
-            padding-left: $padding-16;
-        }
-    }
-
-    ul:not(.expanded) > .section {
-        &:nth-of-type(7) {
-            &::before {
-                position: absolute;
-                top: 0;
-                left: -1rem;
-                right: 0.5rem;
-                content: ' ';
-                border-top: 1px solid $gray-400;
-            }
-
-            padding-top: 1em;
-        }
-
-        &:nth-of-type(n + 7) {
-            color: $gray-700;
-        }
-    }
-
-    .section {
-        position: relative;
-
-        .section-link {
-            display: flex;
-            align-items: center;
-
-            .section-icon {
-                width: 12px;
-                height: 12px;
-                transform: rotateZ(90deg);
-                opacity: 0.5;
-                margin-left: -15px;
-                margin-right: 3px;
-                cursor: pointer;
-                transition: opacity 0.2s;
-
-                &:hover {
-                    opacity: 0.9;
-                }
-
-                &.expanded {
-                    transform: rotateZ(180deg);
-                }
-            }
-
-            a {
-                flex: 1;
-            }
-        }
-
-        > ul {
-            max-height: 0px;
-            overflow: hidden;
-
-            &.expanded {
-                max-height: initial;
-
-                > li:last-child {
-                    margin-bottom: 0;
-                }
-            }
-        }
-    }
-}

+ 0 - 52
docs-old/assets/styles/_mixins.scss

@@ -1,52 +0,0 @@
-@import "variables";
-
-@mixin code-block {
-    padding: 12px;
-    font-size: 14px;
-    border-radius: 3px;
-    overflow-x: auto;
-    border: 1px solid $color-code-border;
-    color: $color-code-text;
-    background-color: $color-code-bg;
-    position: relative;
-
-    code {
-        font-family: 'Source Code Pro', monospace;
-    }
-}
-
-@mixin code-block-lang {
-    position: absolute;
-    right: 3px;
-    top: 0;
-    font-size: 12px;
-    color: $gray-400;
-    text-transform: uppercase;
-}
-
-@mixin custom-scrollbar {
-
-    &::-webkit-scrollbar {
-        width: 10px;
-        height: 10px;
-    }
-
-    &::-webkit-scrollbar {
-        width: 10px;
-        height: 10px;
-    }
-    &::-webkit-scrollbar-corner {
-        background-color: #{'hsl(0 0% 90%)'};
-    }
-    &::-webkit-scrollbar-thumb {
-        background-color: #{'hsl(0 0% 75%)'};
-        border: 2px solid #{'hsl(0 0% 90%)'};
-        border-radius: 10px;
-    }
-    &::-webkit-scrollbar-thumb:hover {
-        background-color: #{'hsl(0 0% 65%)'}
-    }
-    &::-webkit-scrollbar-track {
-        background-color: #{'hsl(0 0% 90%)'}
-    }
-}

+ 0 - 84
docs-old/assets/styles/_search-widget.scss

@@ -1,84 +0,0 @@
-@import "variables";
-
-.autocomplete {
-    ul {
-        padding: 0;
-        margin: 0;
-        list-style-type: none;
-    }
-    li {
-        background-color: transparent;
-        transition: background-color 0.2s;
-        border-left: 3px solid;
-
-        &.section {
-            padding: 3px 12px;
-
-            &.recent {
-                border-color: #e5e5e5;
-                color: #696969;
-            }
-
-            &.user-guide {
-                border-color: #34D399;
-                color: #064E3B;
-            }
-
-            &.developer-guide {
-                border-color: #60A5FA;
-                color: #1E3A8A;
-            }
-
-            &.config {
-                border-color: #9CA3AF;
-                color: #1F2937;
-            }
-
-            &.gql {
-                border-color: #9CA3AF;
-                color: #1F2937;
-            }
-        }
-
-        &.result {
-            transition: border-color 0.2s, background-color 0.2s;
-            padding: 12px;
-            &.recent {
-                border-color: #c5c5c5;
-            }
-            &.user-guide {
-                border-color: #A7F3D0;
-            }
-            &.developer-guide { border-color: #93C5FD; }
-            &.config { border-color: #D1D5DB; }
-            &.gql { border-color: #D1D5DB; }
-        }
-        &.result.selected {
-            border-color: #24c9fb;
-            background-color: #ebfcff;
-        }
-        &.selected {
-            background-color: $gray-200;
-        }
-        a {
-            display: flex;
-            align-items: center;
-        }
-        .title {
-            color: $gray-800;
-            width: 300px;
-            font-size: 12px;
-            margin-right: 6px;
-        }
-        .parent {
-            color: $gray-600;
-        }
-        .heading {
-            color: $gray-900;
-            .hl {
-                background-color: transparentize($brand-color, 0.85);
-                color: darken($brand-color, 40%);
-            }
-        }
-    }
-}

+ 0 - 146
docs-old/assets/styles/_shortcodes.scss

@@ -1,146 +0,0 @@
-@import "variables";
-@import "mixins";
-
-
-/**
- Member info for generated docs
- */
-.member-info {
-    display: flex;
-    align-items: center;
-    @media screen and (max-width: $sm-breakpoint) {
-        flex-direction: column;
-        align-items: flex-start;
-    }
-    margin-top: 4px;
-    margin-left: 8px;
-    font-size: $font-size-12;
-
-    .since {
-        display: flex;
-    }
-
-    .kind-label {
-        font-size: $font-size-12;
-        background-color: #eaf9f5;
-        color: #38979f;
-        border-radius: 4px;
-        padding: 0 6px;
-        margin-right: 12px;
-    }
-
-    .type, .default {
-        margin-right: 12px;
-        a:link, a:visited {
-            color: darken($brand-color, 20%);
-        }
-    }
-    .type {
-        code {
-        }
-    }
-    .label{
-        display: inline-block;
-        color: $gray-600;
-    }
-}
-
-/**
- Member description for generated docs
- */
-.member-description {
-    margin-top: 3px;
-    margin-left: 8px;
-    margin-bottom: 32px;
-}
-
-/**
- Info on the generated document
- */
-.generation-info {
-    font-size: $font-size-12;
-    border-top: 1px dashed $gray-400;
-    .label {
-        color: $gray-600;
-    }
-    .file {
-        margin-left: 12px;
-    }
-}
-
-/**
- GraphQL field list
- */
-.gql-fields {
-    @include code-block;
-    font-family: 'Oxygen Mono', monospace;
-    &::before {
-        content: 'sdl';
-        @include code-block-lang;
-    }
-    ul {
-        padding: 0;
-        margin: 0;
-        list-style-type: none;
-        font-family: 'Oxygen Mono', monospace;
-    }
-    em {
-        color: #776e71;
-    }
-    a:link, a:visited {
-        color: $brand-color;
-    }
-}
-
-/**
- GraphQL enum values
- */
-.gql-enum-values {
-    @include code-block;
-    &::before {
-        content: 'sdl';
-        @include code-block-lang;
-    }
-    max-height: 80vh;
-    overflow-y: auto;
-    ul {
-        padding: 0;
-        margin: 0;
-        list-style-type: none;
-        font-family: 'Oxygen Mono', monospace;
-    }
-    em {
-        color: #776e71;
-    }
-}
-
-/**
- Tabs
- */
-.tab-container {
-    border-left: 2px solid $gray-200;
-    padding-left: 6px;
-    margin-left: -8px;
-    margin-bottom: 32px;
-    .tab-controls {
-        margin-bottom: 6px;
-        button.tab-control {
-            color: $gray-600;
-            border: none;
-            padding: 3px 6px;
-            margin: 0 3px;
-            border-bottom: 2px solid transparent;
-            background: none;
-            &.active {
-                border-bottom-color: $brand-color;
-                color: $gray-700;
-            }
-        }
-    }
-    .tab {
-        display: none;
-        &.active {
-            display: block;
-        }
-    }
-}

+ 0 - 83
docs-old/assets/styles/_syntax.scss

@@ -1,83 +0,0 @@
-@import "mixins";
-@import "variables";
-
-/**
- Styles for code block syntax highlighting. Extracted from the paraiso-dark theme and then modified.
- */
-
-pre.chroma {
-    @include code-block;
-
-    > code::before {
-        content: attr(data-lang);
-        @include code-block-lang;
-    }
-}
-
-$comment: $gray-500;
-$keyword: #3ed0bd;
-$decorator: #d0ba6f;
-$name: #86e6ff;
-
-/* Background */ .chroma { color: #e7e9db; background-color: #2f1e2e }
-/* Error */ .chroma .err { color: #ef6155 }
-/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
-/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
-/* LineHighlight */ .chroma .hl { width: 100%;background-color: #26a9135c }
-/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; }
-/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; }
-/* Keyword */ .chroma .k { color: $keyword }
-/* KeywordConstant */ .chroma .kc { color: $keyword }
-/* KeywordDeclaration */ .chroma .kd { color: $decorator }
-/* KeywordNamespace */ .chroma .kn { color: #5bc4bf }
-/* KeywordPseudo */ .chroma .kp { color: $keyword }
-/* KeywordReserved */ .chroma .kr { color: $keyword }
-/* KeywordType */ .chroma .kt { color: #fec418 }
-/* NameAttribute */ .chroma .na { color: #06b6ef }
-/* NameClass */ .chroma .nc { color: #fec418 }
-/* NameConstant */ .chroma .no { color: #ef6155 }
-/* NameDecorator */ .chroma .nd { color: #5bc4bf }
-/* NameException */ .chroma .ne { color: #ef6155 }
-/* NameFunction */ .chroma .nf { color: #06b6ef }
-/* NameNamespace */ .chroma .nn { color: #fec418 }
-/* NameOther */ .chroma .nx { color: $name }
-/* NameTag */ .chroma .nt { color: #5bc4bf }
-/* NameVariable */ .chroma .nv { color: #ef6155 }
-/* Literal */ .chroma .l { color: #f99b15 }
-/* LiteralDate */ .chroma .ld { color: #48b685 }
-/* LiteralString */ .chroma .s { color: #48b685 }
-/* LiteralStringAffix */ .chroma .sa { color: #48b685 }
-/* LiteralStringBacktick */ .chroma .sb { color: #48b685 }
-/* LiteralStringDelimiter */ .chroma .dl { color: #48b685 }
-/* LiteralStringDoc */ .chroma .sd { color: $comment }
-/* LiteralStringDouble */ .chroma .s2 { color: #48b685 }
-/* LiteralStringEscape */ .chroma .se { color: #f99b15 }
-/* LiteralStringHeredoc */ .chroma .sh { color: #48b685 }
-/* LiteralStringInterpol */ .chroma .si { color: #f99b15 }
-/* LiteralStringOther */ .chroma .sx { color: #48b685 }
-/* LiteralStringRegex */ .chroma .sr { color: #48b685 }
-/* LiteralStringSingle */ .chroma .s1 { color: #48b685 }
-/* LiteralStringSymbol */ .chroma .ss { color: #48b685 }
-/* LiteralNumber */ .chroma .m { color: #f99b15 }
-/* LiteralNumberBin */ .chroma .mb { color: #f99b15 }
-/* LiteralNumberFloat */ .chroma .mf { color: #f99b15 }
-/* LiteralNumberHex */ .chroma .mh { color: #f99b15 }
-/* LiteralNumberInteger */ .chroma .mi { color: #f99b15 }
-/* LiteralNumberIntegerLong */ .chroma .il { color: #f99b15 }
-/* LiteralNumberOct */ .chroma .mo { color: #f99b15 }
-/* Operator */ .chroma .o { color: #5bc4bf }
-/* OperatorWord */ .chroma .ow { color: #5bc4bf }
-/* Comment */ .chroma .c { color: $comment }
-/* CommentHashbang */ .chroma .ch { color: $comment }
-/* CommentMultiline */ .chroma .cm { color: $comment }
-/* CommentSingle */ .chroma .c1 { color: $comment }
-/* CommentSpecial */ .chroma .cs { color: $comment }
-/* CommentPreproc */ .chroma .cp { color: $comment }
-/* CommentPreprocFile */ .chroma .cpf { color: $comment }
-/* GenericDeleted */ .chroma .gd { color: #ef6155 }
-/* GenericEmph */ .chroma .ge { font-style: italic }
-/* GenericHeading */ .chroma .gh { font-weight: bold }
-/* GenericInserted */ .chroma .gi { color: #48b685 }
-/* GenericPrompt */ .chroma .gp { color: $comment; font-weight: bold }
-/* GenericStrong */ .chroma .gs { font-weight: bold }
-/* GenericSubheading */ .chroma .gu { color: #5bc4bf; font-weight: bold }

+ 0 - 43
docs-old/assets/styles/_toc.scss

@@ -1,43 +0,0 @@
-@import "variables";
-@import "mixins";
-
-aside.book-toc nav {
-    @include custom-scrollbar;
-    ul {
-        padding: 0;
-        margin: 0;
-        list-style: none;
-
-        li {
-            margin: 1em 0;
-        }
-
-        a {
-            display: block;
-        }
-
-        a:hover {
-            opacity: .5;
-        }
-    }
-    & > ul {
-        & > li:first-child {
-            & > a { display: none; }
-        }
-        & > li > a {
-            font-weight: bold;
-        }
-        & > li > ul {
-            padding-left: $padding-16;
-            & > li > ul {
-                padding-left: $padding-16;
-                li {
-                    // margin: 0.5em 0;
-                    a {
-                        color: lighten(desaturate($color-link, 70%), 15%);
-                    }
-                }
-            }
-        }
-    }
-}

+ 0 - 2
docs-old/assets/styles/_utils.scss

@@ -1,2 +0,0 @@
-@import "variables";
-

+ 0 - 56
docs-old/assets/styles/_variables.scss

@@ -1,56 +0,0 @@
-$padding-1: 1px;
-$padding-4: 0.25rem;
-$padding-8: 0.5rem;
-$padding-16: 1rem;
-
-$font-size-base: 16px;
-$font-size-12: 0.75rem;
-$font-size-14: 0.875rem;
-$font-size-16: 1rem;
-
-$brand-font-face: 'Inter', sans-serif;
-
-// Grayscale
-$white: #ffffff;
-$gray-100: #f8f9fa;
-$gray-200: #e9ecef;
-$gray-300: #dee2e6;
-$gray-400: #ced4da;
-$gray-500: #adb5bd;
-$gray-600: #868e96;
-$gray-700: #495057;
-$gray-800: #343a40;
-$gray-900: #212529;
-$black: #000;
-
-$color-link: #087298;
-$color-visited-link: #1e6198;
-$brand-color: #13b7f3;
-$color-default: #0079B8;
-$color-danger: #e12200;
-$color-warning: #FF8400;
-$color-success: #2F8400;
-$color-code-bg: $gray-800;
-$color-code-border: $gray-900;
-$color-code-text: $gray-200;
-
-$body-background: white;
-$body-font-color: $gray-800;
-$body-font-weight: normal;
-$body-min-width: 15rem;
-
-$top-bar-height: 50px;
-
-$nav-background: $body-background;
-$nav-link-color: $gray-800;
-
-$header-height: 3.5rem;
-$menu-width: 18rem;
-$toc-width: 14rem;
-
-$container-min-width: $body-min-width;
-$container-max-width: 80rem;
-
-$sm-breakpoint: $menu-width + $body-min-width;
-$md-breakpoint: $sm-breakpoint + $toc-width;
-$lg-breakpoint: 1200px;

+ 0 - 236
docs-old/assets/styles/main.scss

@@ -1,236 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-@import 'variables';
-@import 'markdown';
-@import 'utils';
-@import 'article';
-@import 'menu';
-@import 'shortcodes';
-@import 'syntax';
-@import 'search-widget';
-@import 'blog';
-@import 'toc';
-@import 'fonts';
-
-
-@layer components {
-  .btn-primary {
-    @apply bg-blue-500 border border-transparent rounded-md py-2 px-4 flex items-center justify-center text-base font-medium text-white font-medium hover:bg-blue-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-indigo-500;
-  }
-}
-
-
-[x-cloak] {
-  display: none !important;
-}
-
-
-ul.pagination {
-  display: flex;
-  justify-content: center;
-  list-style-type: none;
-
-  .page-item a {
-    padding: $padding-8 $padding-16;
-    border: 1px solid $gray-200;
-    border-radius: 3px;
-  }
-
-  .page-item.active a {
-    background-color: $gray-200;
-  }
-
-  .page-item.disabled a {
-    color: $gray-500;
-  }
-
-  li + li {
-    margin-left: $padding-4;
-  }
-}
-
-.container {
-  min-width: $container-min-width;
-  max-width: $container-max-width;
-  margin: $top-bar-height auto 0;
-}
-
-ul.contents-list {
-  padding: 0;
-  list-style-type: none;
-  text-transform: capitalize;
-}
-
-.book-brand {
-  margin-top: 0;
-}
-
-.book-page {
-  min-width: $body-min-width;
-  min-height: 80vh;
-  flex: 1;
-  padding: $padding-16 * 1.6;
-  padding-right: 3px;
-
-  @media all and (max-width: $sm-breakpoint) {
-    padding: 6px;
-  }
-
-  figure {
-    img {
-      max-width: 100%;
-    }
-  }
-}
-
-.book-header {
-  margin-bottom: $padding-16;
-  display: none;
-}
-
-
-.book-toc {
-  font-size: $font-size-12;
-
-  nav {
-    overflow-x: hidden;
-    overflow-y: auto;
-    max-height: 70vh;
-    padding-right: 1em;
-  }
-
-  nav > ul > li {
-    margin-bottom: 12px;
-  }
-
-  a.active {
-    //font-weight: bold;
-    text-decoration: underline;
-    position: relative;
-
-    &::before {
-      content: '';
-      position: absolute;
-      left: -12px;
-      top: 8px;
-      display: block;
-      width: 6px;
-      height: 6px;
-      border-radius: 50%;
-      background-color: $brand-color;
-      opacity: 0.5;
-    }
-  }
-}
-
-.book-git-footer {
-  display: flex;
-  margin-top: $padding-16;
-  font-size: $font-size-14;
-  align-items: baseline;
-
-  img {
-    width: $font-size-14;
-    vertical-align: bottom;
-  }
-}
-
-.book-footer {
-  height: 200px;
-  text-align: center;
-  color: $gray-600;
-  margin-top: 60px;
-  font-size: 12px;
-}
-
-.book-posts {
-  min-width: $body-min-width;
-  max-width: $md-breakpoint;
-  padding: $padding-16;
-
-  article {
-    padding-bottom: $padding-16;
-  }
-}
-
-
-.texture-bg {
-  background-color: #1a1a1a;
-  box-shadow: inset 0px 0px 15px 8px rgba(0, 0, 0, 0.75);
-  background-image: url("/header-bg.png");
-  background-blend-mode: darken;
-}
-
-
-// Responsive styles
-aside nav,
-.book-page,
-.markdown {
-  transition: 0.2s ease-in-out;
-  transition-property: transform, margin-left, opacity;
-  will-change: transform, margin-left;
-}
-
-@media screen and (max-width: $md-breakpoint) {
-  .book-toc {
-    display: none;
-  }
-  .left-gutter {
-    display: none;
-  }
-}
-
-@media screen and (max-width: $sm-breakpoint) {
-  //.book-menu {
-  //    margin-left: -$menu-width;
-  //}
-
-  .book-header {
-    display: flex;
-  }
-
-  #menu-control:checked + main {
-    nav.book-menu,
-    .book-page {
-      transform: translateX($menu-width);
-    }
-
-    .book-header label {
-      transform: rotate(90deg);
-    }
-
-    .markdown {
-      opacity: 0.25;
-    }
-  }
-}
-
-
-//.custom-scrollbar {
-//
-//    &::-webkit-scrollbar {
-//        width: 10px;
-//        height: 10px;
-//    }
-//
-//    &::-webkit-scrollbar {
-//        width: 10px;
-//        height: 10px;
-//    }
-//    &::-webkit-scrollbar-corner {
-//        background-color: hsl(0 0% 90%);
-//    }
-//    &::-webkit-scrollbar-thumb {
-//        background-color: hsl(0 0% 75%);
-//        border: 2px solid hsl(0 0% 90%);
-//        border-radius: 10px;
-//    }
-//    &::-webkit-scrollbar-thumb:hover {
-//        background-color: hsl(0 0% 65%);
-//    }
-//    &::-webkit-scrollbar-track {
-//        background-color: hsl(0 0% 90%);
-//    }
-//}

+ 0 - 22
docs-old/config.toml

@@ -1,22 +0,0 @@
-baseURL = "https://docs.vendure.io/"
-languageCode = "en-us"
-title = "Vendure headless commerce"
-googleAnalytics = "UA-133911942-1"
-pygmentsCodeFences = true
-pygmentsUseClasses = true
-enableGitInfo = true
-images = ["share-image.jpg"]
-disableKinds = [
-  "taxonomy",
-  "taxonomyTerm"
-]
-[params]
-    description = "Vendure is an open-source headless commerce framework built on Node.js, TypeScript and GraphQL"
-    title = "Vendure: open-source headless commerce"
-[markup]
-  [markup.goldmark]
-    [markup.goldmark.renderer]
-      unsafe = true
-  [markup.tableOfContents]
-    endLevel = 3
-    startLevel = 1

+ 0 - 42
docs-old/content/_index.md

@@ -1,42 +0,0 @@
----
-title: "Vendure Documentation"
-weight: 0
----
-
-# Vendure Documentation
-
-## Quick links
-
-<div class="flex space-x-4 w-full">
-{{< alert >}}
-**Developers**
-
-Learn how to build with Vendure in our [Developer Guide]({{< relref "developer-guide" >}})
-{{< /alert >}}
-
-{{< alert "success" >}}
-**Administrators**
-
-Learn how to run your store in our [Administrator Guide]({{< relref "user-guide" >}})
-{{< /alert >}}
-</div>
-
-## What is Vendure?
-
-Vendure is a headless e-commerce framework.
-
-* *Headless* is a term that means it does not concern itself with rendering the HTML pages of a website. Rather, it exposes a GraphQL API which can be *queried* for data ("Give me a list of available products") or issued with *mutation* instructions ("Add product '123' to the current order") by a *client application*. Thus the client is responsible for how the e-commerce "storefront" looks and how it works. Vendure is responsible for the rest.
-* Vendure is a *framework* in that it supplies core e-commerce functionality, but is open to further extension by the developer.
-
-## Who should use Vendure?
-
-Vendure is intended to be used by developers who wish to create a modern e-commerce solution. While we aim for a seamless and simple developer experience, Vendure is not aimed at non-technical users.
-
-## What technologies is Vendure built on?
-
-* Vendure is written in [TypeScript](https://www.typescriptlang.org/).
-* [Node.js](https://nodejs.org/en/) is the runtime platform.
-* The data layer is handled by [TypeORM](http://typeorm.io/), which is compatible with most popular relational databases.
-* [Nest](https://nestjs.com/) is used as the underlying architecture.
-* The API is [GraphQL](https://graphql.org/) powered by [Apollo Server](https://www.apollographql.com/docs/apollo-server/).
-* The Admin UI application is built with [Angular](https://angular.io/).

+ 0 - 12
docs-old/content/searchindex/_index.md

@@ -1,12 +0,0 @@
----
-title: "Search Index"
-layout: "searchindex"
-hideFromMenu: true
----
-
-# search index
-
-The content of this file is not actually used - it is just a placeholder so that Hugo will generate a file named `searchindex/`.
-
-The contents of this file are actually generated by the [searchindex.html](../../layouts/searchindex/searchindex.html) template, which loops over all the content and extracts the title, heading and url data into a JSON data structure which can be loaded async by the [SearchWidget class](../../assets/scripts/search-widget.ts).
-

+ 0 - 0
docs-old/data/.gitkeep


+ 0 - 4
docs-old/data/build.json

@@ -1,4 +0,0 @@
-{
-  "version": "2.0.3",
-  "commit": "923876cff"
-}

+ 0 - 25
docs-old/diagrams/channels-currencies-diagram.puml

@@ -1,25 +0,0 @@
-@startuml
-!include theme.puml
-title Channels & Currencies
-
-node DefaultChannel as "Default Channel" {
-}
-
-package ChannelA as "US Channel" {
-   [currencyCode: USD]
-}
-
-package ChannelB as "EU Channel" {
-   [currencyCode: EUR]
-}
-
-package ChannelC as "UK Channel" {
-  [currencyCode: GBP]
-}
-
-DefaultChannel -down-> ChannelA
-DefaultChannel -down-> ChannelB
-DefaultChannel -down-> ChannelC
-
-
-@enduml

+ 0 - 25
docs-old/diagrams/channels-diagram.puml

@@ -1,25 +0,0 @@
-@startuml
-!include theme.puml
-title Channels in Vendure
-
-node DefaultChannel as "Default Channel" {
-  [All Products\nAll Collections\nAll Customers\nAll Orders]
-}
-
-package ChannelA as "Channel A" {
-  [Products A\nCollections A\nCustomers A\nOrders A]
-}
-
-package ChannelB as "Channel B" {
-  [Products B\nCollections B\nCustomers B\nOrders B]
-}
-
-package ChannelC as "Channel C" {
-  [Products C\nCollections C\nCustomers C\nOrders C]
-}
-
-DefaultChannel -down-> ChannelA
-DefaultChannel -down-> ChannelB
-DefaultChannel -down-> ChannelC
-
-@enduml

+ 0 - 28
docs-old/diagrams/channels-prices-diagram.puml

@@ -1,28 +0,0 @@
-@startuml
-!include theme.puml
-title Channels & Prices
-
-package ProductVariant {
-  [name\nsku\nassets\n...]
-}
-
-package PriceUSD as "ProductVariantPrice" {
-  [US Channel\nprice (in USD)]
-}
-package PriceEUR as "ProductVariantPrice" {
-  [EU Channel\nprice (in EUR)]
-}
-package PriceGBP as "ProductVariantPrice" {
-  [UK Channel\nprice (in GBP)]
-}
-package PriceDefault as "ProductVariantPrice" {
-  [Default Channel\nprice] #LightGray
-}
-
-
-ProductVariant -down-> PriceUSD
-ProductVariant -down-> PriceEUR
-ProductVariant -down-> PriceGBP
-ProductVariant -right-> PriceDefault
-
-@enduml

+ 0 - 37
docs-old/diagrams/customer-account-order-activity-diagram.puml

@@ -1,37 +0,0 @@
-' This diagram illustrates how Customer accounts are handled
-@startuml
-!include theme.puml
-title Customer Account & Order Handling
-start
-:Anonymous;
-if (Has existing account?) then (yes)
-    if (Log in?) then (no)
-    else (yes)
-     stop
-    endif
-else (no)
-    if (Create account?) then (no)
-    else (yes)
-        GREEN:Create authenticated Customer;
-        stop
-    endif
-endif
-:Create anonymous Order;
-:ArrangingShipping;
-if (Has existing account?) then (yes)
-    :Complete Order;
-    stop
-else (no)
-    if (Guest Customer exists\nwith matching email?) then (no)
-        #98a966:Create guest Customer;
-    else (yes)
-        #98a966:Fetch guest Customer;
-    endif
-    :Associate guest Customer\nwith Order;
-endif
-:Complete Order;
-if (Create account?) then (yes)
-    GREEN:Create authenticated Customer;
-endif
-stop
-@enduml

+ 0 - 39
docs-old/diagrams/customer-registration-activity-diagram.puml

@@ -1,39 +0,0 @@
-' This diagram illustrates the Customer signup flow
-@startuml
-
-!include theme.puml
-title Customer Account Registration
-start
-GREEN:registerCustomerAccount;
-note left
-    Args:
-    * emailAddress
-    * title?
-    * firstName?
-    * lastName?
-end note
-:create & store new token;
-repeat
-    :Token sent to email address;
-    :Follow link;
-    :Customer creates password;
-    GREEN:verifyCustomerEmailAddress;
-    note left
-        Args:
-        * token
-        * password
-    end note
-    if (token has expired?) then (yes)
-        GREEN:resendVerification;
-        note left
-            Args:
-            * emailAddress
-        end note
-        :create & store new token;
-    else (no)
-    endif
-repeat while (had to re-verify due to expired token?)
-
-:Verified and logged in;
-stop
-@enduml

+ 0 - 22
docs-old/diagrams/customer-session-activity-diagram.puml

@@ -1,22 +0,0 @@
-' This diagram illustrates the logic governing the handling of anonymous sessions
-' for a Customer making an Order
-@startuml
-!include theme.puml
-title Customer Session Flow
-start
-:addItemToOrder();
-if (authToken exists?) then (yes)
-    :get Session from authToken;
-else (no)
-    :create new AnonymousSession;
-    :set authToken cookie;
-endif
-if (Session has associated Order?) then (yes)
-    :get existing Order;
-else
-    :create new Order;
-endif
-:add item to Order;
-:return Order;
-stop
-@enduml

+ 0 - 25
docs-old/diagrams/determining-active-channel.puml

@@ -1,25 +0,0 @@
-' This diagram illustrates the logic used to determine the
-' active Channel when a request is received by the API
-@startuml
-!include theme.puml
-title Determining the active channelId for a request
-start
-:request received;
-if (token exists?) then (yes)
-    if (is token valid?) then (yes)
-        :get channelId by token lookup;
-    else (no)
-        #cc6666:return error;
-        stop
-    endif
-else (no)
-    if (is SuperAdmin?) then (yes)
-        :get active default channelId;
-    else (no)
-        #cc6666:return error;
-        stop
-    endif
-endif
-#66aa66:add channelId to request context;
-stop
-@enduml

+ 0 - 44
docs-old/diagrams/email-component-diagram.puml

@@ -1,44 +0,0 @@
-@startuml
-!include theme.puml
-title Transactional Email Handling
-
-cloud "Vendure Server" as VS
-cloud "Email Templates" as ET
-node Event
-note right of Event
-    OrderStateTransitionEvent
-    AccountCreatedEvent
-    EmailAddressVerifiedEvent
-    etc.
-end note
-package EmailEventHandlers {
-    [OrderCompletedHandler]
-    [AccountCreatedHandler]
-}
-node EmailContext
-note right of EmailContext
-    new EmailContext({
-        type: 'order-confirmation',
-        recipient: 'user@example.com',
-        data: { ... }
-    })
-end note
-node GeneratedEmail
-note right of GeneratedEmail
-    new GeneratedEmail({
-        ...EmailContext,
-        body: 'Dear Joe Smith...',
-    )
-end note
-
-VS --> Event
-Event -> OrderCompletedHandler
-Event --> AccountCreatedHandler
-OrderCompletedHandler --> EmailContext
-AccountCreatedHandler --> EmailContext
-EmailContext --> [EmailGenerator]
-[EmailGenerator] -left- ET
-[EmailGenerator] --> GeneratedEmail
-GeneratedEmail --> [EmailTransport]
-
-@enduml

+ 0 - 118
docs-old/diagrams/full-class-diagram.puml

@@ -1,118 +0,0 @@
-@startuml
-!include theme.puml
-title Vendure Class Diagram
-
-class Channel {
-    name: string
-    defaultLanguageCode: LanguageCode
-    defaultCurrencyCode: CurrencyCode
-}
-class User {
-    identifier: string
-    passwordHash: string
-    roles: UserRole[]
-}
-class Customer {
-    user: User
-    addresses: Address[]
-    orders: Order[]
-}
-class Administrator {
-    user: User
-}
-class Role {
-    name: string
-    permissions: Permission[]
-    user: User
-    channel: Channel
-}
-enum Permission {
-    CreateCatalog
-    ReadCatalog
-    UpdateCatalog
-    DeleteCatalog
-    CreateUser
-    ...etc
-}
-class Address {
-}
-class Product {
-    variants: ProductVariant[]
-    assets: Asset[]
-}
-class ProductOptionGroup
-class ProductOption {
-    group: ProductOptionGroup
-}
-class ProductVariant {
-    sku: string
-    assets: Asset[]
-    price: ProductVariantPrice[]
-}
-class ProductVariantPrice {
-    value: number
-    currencyCode: CurrencyCode
-}
-class Order {
-    lines: OrderLine[]
-}
-class OrderLine {
-    items: OrderItem[]
-}
-class OrderItem {
-    order: Order
-    productVariant: ProductVariant
-}
-class Adjustment {
-    target: OrderItem | Order
-    source: AdjustmentSource
-}
-enum AdjustmentType {
-    Tax
-    Promotion
-}
-class AdjustmentSource {
-    type: AdjustmentType
-}
-class Facet {
-    values: FacetValue[]
-}
-class FacetValue {
-}
-class Category {
-}
-class Asset {
-}
-
-Customer --  User
-Administrator -- User
-User o-- Role
-Role o-- "1..*" Permission
-Role -- Channel
-Customer *-- "0..*" Address
-Product *-- "1..*" ProductVariant
-Product *-- "0..*" Asset
-ProductOptionGroup *-- "1..*" ProductOption
-Product o-- "0..*" ProductOptionGroup
-ProductVariant o-- "0..*" ProductOption
-ProductVariant o-- "0..*" FacetValue
-ProductVariant o-- "0..*" Asset
-Facet *-- "1..*" FacetValue
-Category o-- "1..*" FacetValue
-Customer *-- "0..*" Order
-OrderLine - ProductVariant
-Order *-- OrderLine
-OrderLine *-- OrderItem
-Order -- Channel
-OrderItem o-- Adjustment
-Order o-- Adjustment
-Adjustment - AdjustmentType
-Adjustment o-- AdjustmentSource
-AdjustmentSource - AdjustmentType
-AdjustmentSource o-- Channel
-Product o-- Channel
-ProductVariant *-- "1..*" ProductVariantPrice
-ProductVariantPrice o-- Channel
-ProductVariantPrice "taxCategory" -- AdjustmentSource
-
-@enduml

+ 0 - 12
docs-old/diagrams/job-queue-req-res-with-queue.puml

@@ -1,12 +0,0 @@
-@startuml
-!include theme.puml
-hide footbox
-title Request-response with job queue
-Client -> "Vendure API": mutation `reindex`
-"Vendure API" -> JobQueue: add "reindex" job to queue
-JobQueue --> "Vendure API": job is pending
-"Vendure API" --> Client: reindex response
-...some time later...
-JobQueue -> Worker: Run reindex logic
-Worker --> JobQueue: Reindexing complete
-@enduml

+ 0 - 9
docs-old/diagrams/job-queue-req-res.puml

@@ -1,9 +0,0 @@
-@startuml
-!include theme.puml
-hide footbox
-title Regular request-response
-Client -> "Vendure API": query `product(ID: 1)`
-"Vendure API" -> DB #99FF99: Lookup data
-DB --> "Vendure API": Return data
-"Vendure API" --> Client: product query response
-@enduml

+ 0 - 12
docs-old/diagrams/job-queue.puml

@@ -1,12 +0,0 @@
-@startuml
-!include theme.puml
-hide footbox
-title Job Queue Sequence
-
-"Vendure Server" -> "Job Queue": JobQueue.add() Job 1
-"Vendure Server" -> "Job Queue": JobQueue.add() Job 2
-"Job Queue" -> "Worker": process() Job 1
-...
-"Job Queue" <-- "Worker": Job 1 complete
-"Job Queue" -> "Worker": process() Job 2
-@enduml

+ 0 - 32
docs-old/diagrams/order-class-diagram.puml

@@ -1,32 +0,0 @@
-@startuml
-!include theme.puml
-title Vendure Order Class Diagram
-
-enum OrderState {
-    AddingItems
-    ArrangingPayment
-    PaymentAuthorized
-    ...
-}
-
-class Order {
-    state: OrderState
-    lines: OrderLine[]
-    subTotal: number
-    shipping: number
-    total: number
-}
-
-class OrderLine {
-    quantity: number
-    unitPrice: number
-    quantity: number
-    totalPrice: number
-    productVariant: ProductVariant
-    items: OrderItem[]
-}
-
-Order -- OrderState
-Order *-- "0..*" OrderLine
-
-@enduml

+ 0 - 49
docs-old/diagrams/order-state-diagram-for-admin.puml

@@ -1,49 +0,0 @@
-@startuml
-!include theme.puml
-title Default Order Workflow
-
-state Storefront {
-    [*] --> AddingItems: Customer adds an item to the shopping cart
-    state AddingItems {
-        AddingItems: The Order is created and the Customer
-        AddingItems: adds the desired items to it.
-    }
-
-    state ArrangingPayment {
-        ArrangingPayment: Payment provider is used to take payment
-    }
-}
-
-state AdminUI as "Admin UI" #f9c876 {
-    state PaymentAuthorized {
-        PaymentAuthorized: The payment has been authorized by the
-        PaymentAuthorized: payment provider.
-    }
-
-    state PaymentSettled {
-        PaymentSettled: The payment has been settled with the payment
-        PaymentSettled: provider, i.e. the transaction is complete.
-    }
-
-
-    state Shipped {
-        Shipped: All OrderItems have been shipped to the Customer
-    }
-
-    state Delivered #9d9 {
-        Delivered: All OrderItems have arrived with the Customer
-    }
-
-    Delivered --> [*]
-}
-
-AddingItems --> ArrangingPayment
-ArrangingPayment -> PaymentAuthorized: Check out is completed
-PaymentAuthorized --> PaymentSettled
-PaymentSettled --> Shipped: One or more Fulfillments are created
-Shipped --> Delivered: All fulfillments are marked as delivered
-
-
-
-
-@enduml

+ 0 - 77
docs-old/diagrams/order-state-diagram.puml

@@ -1,77 +0,0 @@
-@startuml
-!include theme.puml
-title Order State Diagram
-
-state ShopAPI {
-    [*] --> AddingItems: addItemToOrder
-    state AddingItems {
-        AddingItems: Customer adds items to the order
-        AddingItems: Customer details are set
-        AddingItems: Shipping destination is set
-        AddingItems: Shipping method is selected
-    }
-
-    state ArrangingPayment {
-        ArrangingPayment: Payment provider is used to take payment
-    }
-}
-
-state AdminAPI #f9c876 {
-    state PaymentAuthorized {
-        PaymentAuthorized: The payment has been authorized by the
-        PaymentAuthorized: payment provider.
-    }
-
-    state PaymentSettled {
-        PaymentSettled: The payment has been settled with the payment
-        PaymentSettled: provider, i.e. the transaction is complete.
-    }
-
-    state PartiallyShipped {
-        PartiallyShipped: Some, but not all, OrderItems have been shipped to the Customer
-    }
-
-    state Shipped {
-        Shipped: All OrderItems have been shipped to the Customer
-    }
-
-    state PartiallyDelivered {
-        PartiallyDelivered: Some, but not all, OrderItems have arrived with the Customer
-    }
-
-    state Delivered #9d9 {
-        Delivered: All OrderItems have arrived with the Customer
-    }
-
-
-    state Cancelled #d99 {
-        Cancelled: All OrderItems in the Order have been cancelled
-    }
-    Cancelled --> [*]
-
-    Delivered --> [*]
-}
-
-
-AddingItems -> ArrangingPayment: transitionOrderToState
-ArrangingPayment -> AddingItems: transitionOrderToState
-ArrangingPayment -> PaymentAuthorized: addPaymentToOrder
-ArrangingPayment --> PaymentSettled: addPaymentToOrder
-PaymentAuthorized -> PaymentSettled: settlePayment
-PaymentSettled -> Shipped: addFulfillmentToOrder, transitionFulfillmentToState
-PaymentSettled --> PartiallyShipped: addFulfillmentToOrder, transitionFulfillmentToState
-Shipped --> PartiallyDelivered: transitionFulfillmentToState
-Shipped -> Delivered: transitionFulfillmentToState
-PartiallyShipped --> Shipped: transitionFulfillmentToState
-PartiallyDelivered --> Delivered: transitionFulfillmentToState
-
-PaymentAuthorized --> Cancelled: cancelOrder
-PaymentSettled --> Cancelled
-Shipped --> Cancelled
-PartiallyShipped --> Cancelled
-PartiallyDelivered --> Cancelled
-Delivered --> Cancelled
-
-
-
-@enduml

+ 0 - 21
docs-old/diagrams/payment-sequence-one-step.puml

@@ -1,21 +0,0 @@
-@startuml
-!include theme.puml
-title Payment Integration - single-step flow
-skinparam SequenceBoxBorderColor #
-hide footbox
-participant Storefront #555
-box "Vendure Server" #Lightblue
-participant "Shop API" as ShopAPI
-participant PaymentMethodHandler
-end box
-participant "Payment Provider" as PaymentProvider #39a4ac
-
-Storefront -> ShopAPI: **addPaymentToOrder**\nmutation
-ShopAPI -> PaymentMethodHandler++
-PaymentMethodHandler -> PaymentProvider: **createPayment()**
-note right: The Payment Provider **authorizes**\n__and__ **captures** the payment
-PaymentProvider --> PaymentMethodHandler: Transaction ID
-PaymentMethodHandler --> ShopAPI: creates new **Payment**\nfor the Order
-deactivate PaymentMethodHandler
-ShopAPI --> Storefront: Order in\n**PaymentSettled** state
-@enduml

+ 0 - 28
docs-old/diagrams/payment-sequence-two-step.puml

@@ -1,28 +0,0 @@
-@startuml
-!include theme.puml
-title Payment Integration - two-step flow
-skinparam SequenceBoxBorderColor #
-hide footbox
-participant Storefront #555
-box "Vendure Server" #Lightblue
-participant "Shop API" as ShopAPI
-participant "Admin API" as AdminAPI
-participant PaymentMethodHandler
-end box
-participant "Payment Provider" as PaymentProvider #39a4ac
-
-Storefront -> ShopAPI: **addPaymentToOrder**\nmutation
-ShopAPI -> PaymentMethodHandler++
-PaymentMethodHandler -> PaymentProvider: **createPayment()**
-note right: The Payment Provider\n**authorizes** the payment
-PaymentProvider --> PaymentMethodHandler: Transaction ID
-PaymentMethodHandler --> ShopAPI: creates new **Payment**\nfor the Order
-deactivate PaymentMethodHandler
-ShopAPI --> Storefront: Order in\n**PaymentAuthorized** state
-== Second step done via Admin UI / Admin API ==
-AdminAPI -> PaymentMethodHandler: **settlePayment** mutation
-PaymentMethodHandler -> PaymentProvider: **settlePayment()**
-note right: The Payment Provider\n**captures** the payment
-PaymentProvider --> PaymentMethodHandler: Confirmation data
-PaymentMethodHandler --> AdminAPI: Order in\n**PaymentSettled** state
-@enduml

+ 0 - 46
docs-old/diagrams/plugin-architecture.puml

@@ -1,46 +0,0 @@
-@startuml
-!include theme.puml
-title Vendure Plugin Architecture
-
-
-
-package "@vendure/core" {
-    component VendureServer <<Vendure Server>> [
-        AppModule
-    ]
-    component VendureWorker <<Vendure Worker>> [
-        WorkerModule
-    ]
-    [ServiceModule] #efefef
-    [ApiModule] #efefef
-}
-
-cloud "GraphQL API" {
-    [Shop API] #ff88c1
-    [Admin API] #ff88c1
-}
-
-component VendurePlugin #ccffcc
-
-cloud "Internet" {
-    [External Service]
-}
-
-database "Database" {
-}
-
-[VendureServer] ---> [ServiceModule]
-[VendureServer] --> [ApiModule]
-[VendureWorker] --> [ServiceModule]
-[VendureWorker] <.right.> [VendureServer]
-[ApiModule] <...> [Shop API]
-[ApiModule] <...> [Admin API]
-[ServiceModule] <..> Database
-
-VendurePlugin .left.> VendureWorker #88cc88 : 1
-VendurePlugin ..> VendureServer #88cc88 : 2
-VendurePlugin .left.> ApiModule #88cc88 : 3
-VendurePlugin <..> ServiceModule #88cc88 : 4
-VendurePlugin <..> [External Service] #88cc88 : 5
-
-@enduml

+ 0 - 31
docs-old/diagrams/plugin-lifecycle.puml

@@ -1,31 +0,0 @@
-@startuml
-!include theme.puml
-title Vendure Plugin Lifecycle
-hide footbox
-skinparam SequenceBoxBorderColor #efefef
-skinparam SequenceDividerBorderThickness 1
-skinparam BoxPadding 100
-participant VendurePlugin #13b7f3
-box "Vendure Server" #efefef
-participant "Server (NestApplication)" as NestApplication
-participant "Worker (NestMicroservice)" as NestMicroservice
-end box
-
-VendurePlugin -> NestApplication: static beforeVendureBootstrap
-VendurePlugin -> NestMicroservice: static beforeVendureWorkerBootstrap
-||50||
-== Nestjs onModuleInit ==
-VendurePlugin -> NestApplication: onVendureBootstrap
-VendurePlugin -> NestMicroservice: onVendureWorkerBootstrap
-== Nestjs onApplicationBootstrap ==
-||50||
-note over NestApplication, NestMicroservice #ccffcc: Vendure server running...
-||50||
-note over NestApplication, NestMicroservice #ffcccc: Termination signal received
-== Nestjs onModuleDestroy ==
-VendurePlugin -> NestApplication: onVendureClose
-VendurePlugin -> NestMicroservice: onVendureWorkerClose
-== Nestjs beforeApplicationShutdown ==
-== Nestjs onApplicationShutdown ==
-
-@enduml

+ 0 - 28
docs-old/diagrams/product-variants.puml

@@ -1,28 +0,0 @@
-@startuml
-!include theme.puml
-
-map Product {
-  name => Laptop
-  description => This powerful laptop has...
-}
-
-map "ProductVariant" as variant1 {
-  name => Laptop 13" 8GB
-  option:size => 13"
-  option:ram => 8GB
-  sku => 1001308
-  price => $1299
-}
-
-map "ProductVariant" as variant2 {
-  name => Laptop 15" 8GB
-  option:size => 15"
-  option:ram => 8GB
-  sku => 1001508
-  price => $1349
-}
-
-Product --> variant1
-Product --> variant2
-
-@enduml

+ 0 - 94
docs-old/diagrams/theme.puml

@@ -1,94 +0,0 @@
-@startuml
-!define BLACK   #363D5D
-!define LINE    #1a3164
-!define BACKGROUND #b9cefc
-!define BORDER  #e58e26
-!define GREEN   #66aa66
-!define BLUE  #4067af
-!define BLUE_LIGHT  #c6dbff
-
-' Base Setting
-skinparam Shadowing false
-skinparam backgroundColor #fff
-skinparam ComponentStyle uml2
-skinparam TitleFontSize 18
-skinparam Padding 3
-
-skinparam Default {
-  FontName  'Segoe UI'
-  FontColor BLACK
-  FontSize  14
-  FontStyle plain
-}
-
-skinparam Class {
-  BackgroundColor BLUE_LIGHT
-  BorderColor BLACK
-}
-
-skinparam Component {
-  ArrowColor LINE
-  BorderColor BLACK
-  BackgroundColor BACKGROUND
-}
-
-skinparam Note {
-  ArrowThickness 2
-  ArrowColor LINE
-  ActorBorderThickness 1
-  LifeLineBorderColor GREEN
-  BorderColor #666666
-  BackgroundColor #eeeeee
-}
-
-skinparam Interface {
-  BorderColor BLACK
-  BackgroundColor BLUE
-}
-
-skinparam Activity {
-  FontColor white
-  AttributeFontColor white
-  BackgroundColor BLUE
-  BorderColor BLACK
-  ArrowColor #222266
-}
-
-skinparam ActivityDiamond {
-  BackgroundColor BLUE_LIGHT
-  BorderColor BLACK
-  FontColor BLACK
-}
-
-skinparam Sequence {
-  ArrowThickness 2
-  ArrowColor LINE
-  ActorBorderThickness 1
-  LifeLineBorderColor GREEN
-  ParticipantBorderThickness 0
-  BorderColor BORDER
-  BackgroundColor BACKGROUND
-}
-
-skinparam State {
-  FontStyle bold
-  BackgroundColor BLUE_LIGHT
-  BorderColor BLACK
-}
-
-skinparam Participant {
-  BackgroundColor BLACK
-  BorderColor BORDER
-  FontColor #FFFFFF
-}
-
-skinparam Actor {
-  BackgroundColor BLACK
-  BorderColor BLACK
-}
-
-skinparam Object {
-  BorderColor #666666
-  BackgroundColor BACKGROUND
-}
-@enduml

+ 0 - 42
docs-old/diagrams/vendure-architecture.puml

@@ -1,42 +0,0 @@
-@startuml
-!include theme.puml
-title Vendure Architecture
-
-interface "." as bootstrap
-interface "." as bootstrapWorker
-
-
-component VendureServer
-component VendureWorker
-
-cloud "GraphQL API" {
-    [Shop API] #ff88c1
-    [Admin API] #ff88c1
-}
-
-cloud {
-  [Job Queue] #f3fff3
-}
-
-database "Database" {
-component dbTypes #f3fff3 [
-MySQL/MariaDB
-PostgreSQL
-SQLite
-...
-]
-}
-
-'note bottom of Database : MySQL/MariaDB, PostgreSQL, SQLite
-note top of bootstrap : bootstrap()
-note top of bootstrapWorker : bootstrapWorker()
-bootstrap -down- [VendureServer]
-bootstrapWorker -down- [VendureWorker]
-[VendureServer] <.right.> [Shop API]
-[VendureServer] <.> [Admin API]
-[VendureServer] <..> dbTypes
-[VendureWorker] <..> dbTypes
-[VendureServer] ..> [Job Queue]
-[Job Queue] .right.> [VendureWorker]
-
-@enduml

+ 0 - 106
docs-old/layouts/404.html

@@ -1,106 +0,0 @@
-<!DOCTYPE html>
-{{- partial "docs/shared" -}}
-<html>
-
-<head>
-  {{ partial "docs/html-head" . }}
-</head>
-
-
-{{ partial "top-bar" (dict "ctx" . "isDocsPage" true "isLandingPage" false) }}
-<main class="mx-auto lg:max-w-screen-2xl lg:grid lg:grid-cols-12 lg:gap-8">
-
-    <aside class="lg:relative lg:col-span-3" x-data="Components.popover(true)" x-init="open = window.innerWidth > 1024">
-        <div class="sticky top-0 flex flex-col lg:h-screen">
-            <div class="flex justify-center items-center px-6 py-4 bg-gray-100">
-                <label for="search" class="sr-only">Search docs (ctrl + k)</label>
-                <input type="text" name="search" id="searchInputTrigger"
-                       class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md"
-                       placeholder="Search docs (ctrl+k)">
-                <button class="p-2 ml-2 lg:hidden" @click="toggle">
-                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6">
-                      <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" />
-                    </svg>
-                </button>
-            </div>
-            <nav x-show="open"
-                 x-transition:enter="transition ease-out duration-200"
-                 x-transition:enter-start="opacity-0"
-                 x-transition:enter-end="opacity-100"
-                 x-transition:leave="duration-100 ease-in"
-                 x-transition:leave-start="opacity-100"
-                 x-transition:leave-end="opacity-0"
-                 class="book-menu text-sm flex-1 bg-gray-100 overflow-y-auto overflow-x-hidden flex flex-col" role="navigation">
-                <div class="pl-6 flex-1">
-                    {{ if .Site.Params.BookMenuBundle }}
-                    {{ partial "docs/menu-bundle" . }}
-                    {{ else }}
-                    {{ partial "menu-filetree" . }}
-                    {{ end }}
-                </div>
-                <div class="text-sm w-full border-t border-dotted border-gray-200 py-4 text-gray-400 text-center lowercase">
-                    <a href="https://github.com/vendure-ecommerce/vendure/releases/tag/v{{ $.Site.Data.build.version }}">
-                        v{{ $.Site.Data.build.version }}</a>#<a
-                        href="https://github.com/vendure-ecommerce/vendure/commit/{{ $.Site.Data.build.commit }}">{{
-                    $.Site.Data.build.commit }}
-                </a>
-                </div>
-            </nav>
-        </div>
-    </aside>
-
-    <div class="lg:col-span-7 mx-2">
-        <article class="markdown">
-            {{ partial "breadcrumbs" . }}
-        <h1>Page not found</h1>
-            <p class="text-xl text-gray-500">Sorry, that page isn't here anymore! 🤔</p>
-            <p class="text-base text-gray-600">It probably moved to a different url. Try searching instead.</p>
-        </article>
-    </div>
-
-    <div class="lg:col-span-2">
-    </div>
-</main>
-
-<div x-data="Components.popover(false)" @click.self="open = true" id="searchOverlay" @keydown.escape.window="open = false">
-    <div x-show="open" x-cloak class="fixed z-10 inset-0 overflow-y-auto" aria-labelledby="modal-title" role="dialog"
-         aria-modal="true">
-        <div class="items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:p-0">
-            <div class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"
-                 aria-hidden="true"
-                 x-show="open"
-                 x-transition:enter="ease-out duration-300"
-                 x-transition:enter-start="opacity-0"
-                 x-transition:enter-end="opacity-100"
-                 x-transition:leave="ease-in duration-200"
-                 x-transition:leave-start="opacity-100"
-                 x-transition:leave-end="opacity-0"
-            ></div>
-
-            <div class="inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-4xl w-full sm:p-6"
-                 x-show="open"
-                 x-transition:enter="ease-out duration-300"
-                 x-transition:enter-start="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
-                 x-transition:enter-end="opacity-100 translate-y-0 sm:scale-100"
-                 x-transition:leave="ease-in duration-200"
-                 x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100"
-                 x-transition:leave-end="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
-            >
-                <div class="relative">
-                    <input type="text" name="search" id="searchInput"
-                           class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md"
-                           placeholder="Search docs">
-                    <button class="uppercase text-sm font-bold fixed rounded border border-gray-200 text-gray-400 px-2 right-8 top-7"
-                            @click="open = false">
-                        esc
-                    </button>
-                </div>
-                <div id="autocomplete-wrapper" class="mt-4"></div>
-            </div>
-        </div>
-    </div>
-</div>
-
-{{ template "_internal/google_analytics_async.html" . }}
-</body>
-</html>

+ 0 - 113
docs-old/layouts/_default/baseof.html

@@ -1,113 +0,0 @@
-<!DOCTYPE html>
-{{- partial "docs/shared" -}}
-<html>
-
-<head>
-    {{ partial "docs/html-head" . }}
-    {{ template "_internal/opengraph.html" . }}
-    {{ template "_internal/twitter_cards.html" . }}
-</head>
-
-<body>
-
-{{ partial "top-bar" (dict "ctx" . "isDocsPage" true "section" .Section) }}
-<main class="mx-auto lg:max-w-screen-2xl lg:grid lg:grid-cols-12 lg:gap-8">
-
-    <aside class="lg:relative lg:col-span-3" x-data="Components.popover(true)" x-init="open = window.innerWidth > 1024">
-        <div class="sticky top-0 flex flex-col lg:h-screen">
-            <button class="p-2 ml-2 lg:hidden" @click="toggle">
-                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
-                     stroke="currentColor" class="w-6 h-6">
-                    <path stroke-linecap="round" stroke-linejoin="round"
-                          d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"/>
-                </svg>
-            </button>
-            <nav x-show="open"
-                 x-transition:enter="transition ease-out duration-200"
-                 x-transition:enter-start="opacity-0"
-                 x-transition:enter-end="opacity-100"
-                 x-transition:leave="duration-100 ease-in"
-                 x-transition:leave-start="opacity-100"
-                 x-transition:leave-end="opacity-0"
-                 class="book-menu text-sm flex-1 bg-gray-100 overflow-y-auto overflow-x-hidden flex flex-col" role="navigation">
-                <div class="pl-6 flex-1">
-                    {{ if .Site.Params.BookMenuBundle }}
-                    {{ partial "docs/menu-bundle" . }}
-                    {{ else }}
-                    {{ partial "menu-filetree" . }}
-                    {{ end }}
-                </div>
-                <div class="text-sm w-full border-t border-dotted border-gray-200 py-4 text-gray-400 text-center lowercase">
-                    <a href="https://github.com/vendure-ecommerce/vendure/releases/tag/v{{ $.Site.Data.build.version }}">
-                        v{{ $.Site.Data.build.version }}</a>#<a
-                        href="https://github.com/vendure-ecommerce/vendure/commit/{{ $.Site.Data.build.commit }}">{{
-                    $.Site.Data.build.commit }}
-                </a>
-                </div>
-            </nav>
-        </div>
-    </aside>
-
-    <div class="lg:col-span-7 mx-2">
-        {{ template "main" . }}
-
-        <div class="book-footer">
-            {{ if gt (dateFormat "2006" $.Page.Lastmod) 2018 }}
-            Generated on {{ dateFormat "Jan 2 2006 at 15:04" $.Page.Lastmod }}
-            {{ end }}
-        </div>
-    </div>
-
-    <div class="lg:col-span-2">
-        <div class="hidden lg:block sticky top-0 mt-2 py-1 pl-4 rounded">
-            {{ if ge (len .TableOfContents) 150 }}
-                <div class="uppercase text-blue-500 tracking-wider text-sm mt-2">Contents</div>
-                {{ template "toc" . }}
-            {{ end }}
-        </div>
-    </div>
-</main>
-
-<div x-data="Components.popover(false)" @click.self="open = true" id="searchOverlay" @keydown.escape.window="open = false">
-    <div x-show="open" x-cloak class="fixed z-10 inset-0 overflow-y-auto" aria-labelledby="modal-title" role="dialog"
-         aria-modal="true">
-        <div class="items-end justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:p-0">
-            <div class="fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"
-                 aria-hidden="true"
-                 x-show="open"
-                 x-transition:enter="ease-out duration-300"
-                 x-transition:enter-start="opacity-0"
-                 x-transition:enter-end="opacity-100"
-                 x-transition:leave="ease-in duration-200"
-                 x-transition:leave-start="opacity-100"
-                 x-transition:leave-end="opacity-0"
-            ></div>
-
-            <div class="inline-block align-bottom bg-white rounded-lg px-4 pt-5 pb-4 text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-4xl w-full sm:p-6"
-                 x-show="open"
-                 x-transition:enter="ease-out duration-300"
-                 x-transition:enter-start="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
-                 x-transition:enter-end="opacity-100 translate-y-0 sm:scale-100"
-                 x-transition:leave="ease-in duration-200"
-                 x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100"
-                 x-transition:leave-end="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
-            >
-                <div class="relative">
-                    <input type="text" name="search" id="searchInput"
-                           class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md"
-                           placeholder="Search docs">
-                    <button class="uppercase text-sm font-bold fixed rounded border border-gray-200 text-gray-400 px-2 right-8 top-7"
-                            @click="open = false">
-                        esc
-                    </button>
-                </div>
-                <div id="autocomplete-wrapper" class="mt-4"></div>
-            </div>
-        </div>
-    </div>
-</div>
-
-{{ template "_internal/google_analytics_async.html" . }}
-</body>
-
-</html>

+ 0 - 12
docs-old/layouts/_default/list.html

@@ -1,12 +0,0 @@
-{{ define "main" }}
-<article class="markdown">
-    {{ partial "breadcrumbs" . }} {{- .Content -}} {{ if gt (len .Pages) 0 }}
-    <h3>Contents:</h3>
-    <div class="mt-2 grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4">
-        {{ range .Pages.ByParam "title" }}
-            <a href="{{ .RelPermalink }}" class="border border-blue-100 rounded p-4 bg-blue-50 hover:bg-blue-100 hover:no-underline">{{ .Title }}</a>
-        {{ end}}
-    </div>
-    {{ end }}
-</article>
-{{ end }} {{ define "toc" }} {{ partial "docs/toc" . }} {{ end }}

+ 0 - 10
docs-old/layouts/_default/single.html

@@ -1,10 +0,0 @@
-{{ define "main" }}
-<article class="markdown">
-    {{ partial "breadcrumbs" . }}
-    {{- .Content -}}
-</article>
-{{ end }}
-
-{{ define "toc" }}
-{{ partial "docs/toc" . }}
-{{ end }}

+ 0 - 33
docs-old/layouts/partials/announcement-banner.html

@@ -1,33 +0,0 @@
-<script>
-  function bannerComponent() {
-    const bannerId = 5;
-    const key = `banner-${bannerId}-dismissed`;
-    const bannerDismissed = localStorage.getItem(key) ?? false;
-    return {
-      visible: !bannerDismissed,
-      dismiss() {
-        this.visible = false;
-        localStorage.setItem(key, true);
-      }
-    };
-  }
-</script>
-<div class="relative bg-gradient-to-r from-blue-600 via-indigo-700 to-blue-900" x-data="bannerComponent()" x-show="visible" x-cloak>
-  <div class="max-w-7xl mx-auto py-1 px-3 sm:px-6 lg:px-8">
-    <div class="pr-16 sm:text-center sm:px-16">
-      <p class="text-xs md:text-sm lg:text-base text-white">
-          {{ .content | safeHTML }}
-      </p>
-    </div>
-    <div class="absolute inset-y-0 right-0 pt-1 pr-1 flex items-start sm:pt-1 sm:pr-2 sm:items-start">
-      <button type="button" class="flex lg:p-1 rounded-md hover:bg-blue-600 focus:outline-none focus:ring-2 focus:ring-white"
-      @click="dismiss()">
-        <span class="sr-only">Dismiss</span>
-        <!-- Heroicon name: outline/x -->
-        <svg class="h-5 w-5 text-white" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
-          <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
-        </svg>
-      </button>
-    </div>
-  </div>
-</div>

+ 0 - 24
docs-old/layouts/partials/breadcrumbs-static.html

@@ -1,24 +0,0 @@
-<nav class="relative max-w-7xl mx-auto py-6 px-6" aria-label="Breadcrumb">
-    <ol class="flex items-center">
-        <li>
-            <div class="flex items-center space-x-4 mr-4">
-                <a href="/"
-                   class="text-sm font-medium text-gray-500 hover:text-gray-700">Home</a>
-            </div>
-        </li>
-        {{ range . }}
-        <li>
-            <div class="flex items-center space-x-4 mr-4">
-                <svg class="flex-shrink-0 h-5 w-5 text-gray-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"
-                     fill="currentColor" aria-hidden="true">
-                    <path fill-rule="evenodd"
-                          d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
-                          clip-rule="evenodd"/>
-                </svg>
-                <a href="{{ .link }}" class="text-sm font-medium text-gray-500 hover:text-gray-700">{{ .label }}</a>
-            </div>
-        </li>
-        {{ end}}
-
-    </ol>
-</nav>

+ 0 - 57
docs-old/layouts/partials/breadcrumbs.html

@@ -1,57 +0,0 @@
-<nav class="flex my-6" aria-label="Breadcrumb">
-    <ol class="flex flex-wrap items-center breadcrumbs">
-        {{ template "breadcrumb" dict "currentPage" .Page "id" .UniqueID }}
-    </ol>
-</nav>
-
-<!-- templates -->
-{{ define "breadcrumb" }} {{ if .currentPage.Parent }} {{ template "breadcrumb" dict "currentPage"
-.currentPage.Parent }} {{ else }}
-<li class="list-none">
-    <a href="/" class="block md:mr-3">
-        <svg
-            xmlns="http://www.w3.org/2000/svg"
-            fill="none"
-            viewBox="0 0 24 24"
-            stroke-width="1.5"
-            stroke="currentColor"
-            class="w-4 h-4"
-        >
-            <path
-                stroke-linecap="round"
-                stroke-linejoin="round"
-                d="M12 6.042A8.967 8.967 0 006 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 016 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 016-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0018 18a8.967 8.967 0 00-6 2.292m0-14.25v14.25"
-            />
-        </svg>
-    </a>
-</li>
-{{ end }} {{ $title := cond (eq .currentPage.RelPermalink "/docs/" ) "Docs" (title .currentPage.Title) }} {{
-if (ne .currentPage.Parent .IsHome) }}
-<li class="list-none">
-    <div class="flex items-center md:space-x-3 md:mr-3">
-        {{ if ne $title "Docs" }}
-        <svg
-            class="flex-shrink-0 h-5 w-5 text-gray-400"
-            xmlns="http://www.w3.org/2000/svg"
-            viewBox="0 0 20 20"
-            fill="currentColor"
-            aria-hidden="true"
-        >
-            <path
-                fill-rule="evenodd"
-                d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
-                clip-rule="evenodd"
-            />
-        </svg>
-        {{ end }} {{ if eq .id .currentPage.UniqueID }}
-        <span class="text-sm font-medium text-gray-500 hover:text-gray-700">{{ $title }}</span>
-        {{ else }}
-        <a
-            href="{{ .currentPage.RelPermalink  }}"
-            class="text-sm font-medium text-gray-500 hover:text-gray-700"
-            >{{ $title }}</a
-        >
-        {{ end }}
-    </div>
-</li>
-{{ end }} {{ end }}

+ 0 - 3
docs-old/layouts/partials/docs/brand.html

@@ -1,3 +0,0 @@
-<h2 class="book-brand">
-  <a href="{{ .Site.BaseURL }}">{{ .Site.Title }}</a>
-</h2>

+ 0 - 18
docs-old/layouts/partials/docs/git-footer.html

@@ -1,18 +0,0 @@
-{{ if or .GitInfo .Site.Params.BookEditPath }}
-<div class="align-center book-git-footer {{ if not .GitInfo }}justify-end{{ else }}justify-between{{ end }}">
-  {{ with .GitInfo }}
-  <div>
-    <a href="{{ $.Site.Params.BookRepo }}/commit/{{ .Hash }}" title='Last modified {{ .AuthorDate.Local.Format "January 2, 2006 15:04 MST" }} by {{ .AuthorName }}' target="_blank" rel="noopener">
-      <img src="{{ "svg/code-merge.svg" | relURL }}" /> {{ .AuthorDate.Local.Format "Last Modified Jan 2, 2006" }}
-    </a>
-  </div>
-  {{ end }}
-  {{ with .Site.Params.BookEditPath }}
-  <div>
-    <a href="{{ $.Site.Params.BookRepo }}/{{ . }}/{{ $.File.Path }}" target="_blank" rel="noopener">
-      <img src="{{ "svg/code-fork.svg" | relURL }}" /> Edit this page
-    </a>
-  </div>
-  {{ end }}
-</div>
-{{ end }}

+ 0 - 9
docs-old/layouts/partials/docs/html-head.html

@@ -1,9 +0,0 @@
-<meta charset="UTF-8">
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<title>{{- template "title" . }} | Vendure docs</title>
-
-<link rel="preload" as="font" href="/fonts/LexendDeca-Regular.woff2" type="font/woff2" crossorigin="anonymous">
-<link rel="preload" as="font" href="/fonts/LexendDeca-Light.woff2" type="font/woff2" crossorigin="anonymous">
-<link rel="preload" as="font" href="/fonts/Inter-Regular.woff2" type="font/woff2" crossorigin="anonymous">
-<link rel="stylesheet" href="{{ "main.css" | relURL }}">
-<script src="{{ "main.js" | relURL }}"></script>

+ 0 - 3
docs-old/layouts/partials/docs/menu-bundle.html

@@ -1,3 +0,0 @@
-{{ with .Site.GetPage .Site.Params.BookMenuBundle }}
-  {{- .Content -}}
-{{ end }}

+ 0 - 6
docs-old/layouts/partials/docs/mobile-header.html

@@ -1,6 +0,0 @@
-<header class="align-center justify-between book-header">
-  <label for="menu-control">
-    <img src="{{ "svg/menu.svg" | relURL }}" />
-  </label>
-  <strong>{{- template "title" . }}</strong>
-</header>

+ 0 - 11
docs-old/layouts/partials/docs/shared.html

@@ -1,11 +0,0 @@
-<!-- These templates contains some more complex logic and shared between partials-->
-{{ define "title" }}
-  {{- if .Pages -}}
-    {{ $sections := split (trim .Dir "/") "/" }}
-    {{ $title := index ($sections | last 1) 0 | humanize | title }}
-    {{- default $title .Title -}}
-  {{- else -}}
-    {{ $title :=  .File | humanize | title }}
-    {{- default $title .Title -}}
-  {{- end -}}
-{{ end }}

+ 0 - 6
docs-old/layouts/partials/docs/toc.html

@@ -1,6 +0,0 @@
-{{ $showToC := default (default true .Site.Params.BookShowToC) .Params.showtoc }}
-  {{ if and ($showToC) (.Page.TableOfContents) }}
-  <aside class="book-toc">
-    {{ .Page.TableOfContents }}
-  </aside>
-{{ end }}

+ 0 - 213
docs-old/layouts/partials/footer.html

@@ -1,213 +0,0 @@
-{{ define "partials/social-link" }}
-  <a href="{{ .url }}" title="{{ .name }}" class="text-gray-400 hover:text-gray-500">
-    <span class="sr-only">{{ .name }}</span>
-    <img class="w-6 h-6" alt="{{ .name }} logo" src="{{ .icon }}"/>
-  </a>
-{{ end }}
-
-
-<footer class="relative bg-gradient-to-br from-gray-700 to-gray-900 relative" aria-labelledby="footerHeading">
-  <h2 id="footerHeading" class="sr-only">Footer</h2>
-  <div class="absolute w-full h-full texture-bg mix-blend-difference"></div>
-  <div class="relative max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:py-16 lg:px-8">
-    <div class="xl:grid xl:grid-cols-3 xl:gap-8">
-      <div class="grid grid-cols-2 gap-8 xl:col-span-2">
-        <div class="md:grid md:grid-cols-2 md:gap-8">
-          <div>
-            <h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">
-              Product
-            </h3>
-            <ul class="mt-4 space-y-4">
-              <li>
-                <a href="/features" class="text-base text-gray-300 hover:text-white">
-                  Features
-                </a>
-              </li>
-
-              <li>
-                <a href="/case-study" class="text-base text-gray-300 hover:text-white">
-                  Case studies
-                </a>
-              </li>
-
-              <li>
-                <a href="/plugins" class="text-base text-gray-300 hover:text-white">
-                  Plugins
-                </a>
-              </li>
-
-
-              <li>
-                <a href="/integration" class="text-base text-gray-300 hover:text-white">
-                  Integrations
-                </a>
-              </li>
-
-              <li>
-                <a href="https://demo.vendure.io" class="text-base text-gray-300 hover:text-white">
-                  Demo
-                </a>
-              </li>
-            </ul>
-          </div>
-          <div class="mt-12 md:mt-0">
-            <h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">
-              Services
-            </h3>
-            <ul class="mt-4 space-y-4">
-              <li>
-                <a href="/support" class="text-base text-gray-300 hover:text-white">
-                  Support
-                </a>
-              </li>
-              <li>
-                <a href="/partners" class="text-base text-gray-300 hover:text-white">
-                  Become a Partner
-                </a>
-              </li>
-              <li>
-                <a href="/cert-check" class="text-base text-gray-300 hover:text-white">
-                  Partner Certification Check
-                </a>
-              </li>
-            </ul>
-          </div>
-        </div>
-        <div class="md:grid md:grid-cols-2 md:gap-8">
-          <div>
-            <h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">
-              Documentation
-            </h3>
-            <ul class="mt-4 space-y-4">
-              <li>
-                <a href="/docs/getting-started/" class="text-base text-gray-300 hover:text-white">
-                  Getting Started
-                </a>
-              </li>
-
-              <li>
-                <a href="/docs/developer-guide/" class="text-base text-gray-300 hover:text-white">
-                  Developer Guide
-                </a>
-              </li>
-
-              <li>
-                <a href="/docs/graphql-api/" class="text-base text-gray-300 hover:text-white">
-                  GraphQL API
-                </a>
-              </li>
-            </ul>
-          </div>
-          <div class="mt-12 md:mt-0">
-            <h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">
-              Community
-            </h3>
-            <ul class="mt-4 space-y-4">
-              <li>
-                <a href="https://github.com/vendure-ecommerce/vendure" class="text-base text-gray-300 hover:text-white">
-                  GitHub
-                </a>
-              </li>
-
-              <li>
-                <a href="https://github.com/vendure-ecommerce/vendure/discussions" class="text-base text-gray-300 hover:text-white">
-                  Support Forum
-                </a>
-              </li>
-
-              <li>
-                <a href="https://www.vendure.io/community" class="text-base text-gray-300 hover:text-white">
-                  Discord Community
-                </a>
-              </li>
-
-              <li>
-                <a href="/contributors" class="text-base text-gray-300 hover:text-white">
-                  Sponsors & Contributors
-                </a>
-              </li>
-            </ul>
-          </div>
-        </div>
-      </div>
-      <div class="mt-8 xl:mt-0">
-        <h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">
-          Subscribe to our newsletter
-        </h3>
-        <p class="mt-4 text-base text-gray-300">
-          Get important Vendure news and announcements direct to your inbox.
-        </p>
-        <!-- Begin Mailchimp Signup Form -->
-        <div id="mc_embed_signup">
-          <form class="mt-4 validate"
-                action="https://vendure.us1.list-manage.com/subscribe/post?u=967048b8dcdf53aea61cf1a28&amp;id=6802bb1d9d"
-                method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form"
-                target="_blank"
-                novalidate>
-            <div id="mc_embed_signup_scroll" class="sm:flex sm:max-w-md space-x-1">
-
-              <input type="email" value="" name="EMAIL" id="mce-EMAIL" placeholder="email address" required
-                     class="appearance-none min-w-0 w-full bg-white border border-transparent rounded-md py-2 px-4 text-base text-gray-900 placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white focus:border-white focus:placeholder-gray-400">
-              <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
-              <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text"
-                                                                                        name="b_967048b8dcdf53aea61cf1a28_6802bb1d9d"
-                                                                                        tabindex="-1" value=""></div>
-              <input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe"
-                     class="w-32 btn-primary">
-            </div>
-          </form>
-        </div>
-        <!--End mc_embed_signup-->
-      </div>
-    </div>
-    <div class="mt-8 border-t border-gray-700 pt-8 md:flex md:items-center md:justify-between">
-      <div class="md:order-2">
-        <div class="flex space-x-6">
-            {{ partial "social-link" (dict
-            "url" "https://github.com/vendure-ecommerce/vendure"
-            "name" "GitHub"
-            "icon" "/svg/icon-github-inverse.svg"
-            ) }}
-            {{ partial "social-link" (dict
-            "url" "https://www.npmjs.com/~vendure"
-            "name" "npm"
-            "icon" "/svg/icon-npm.svg"
-            ) }}
-            {{ partial "social-link" (dict
-            "url" "https://twitter.com/vendure_io"
-            "name" "Twitter"
-            "icon" "/svg/icon-twitter.svg"
-            ) }}
-            {{ partial "social-link" (dict
-            "url" "https://www.vendure.io/discord"
-            "name" "Discord"
-            "icon" "/logo/discord-logo.png"
-            ) }}
-            {{ partial "social-link" (dict
-            "url" "https://www.youtube.com/channel/UCZuBR2NrUKOq8M9_mDYP8PA"
-            "name" "YouTube"
-            "icon" "/svg/icon-youtube.svg"
-            ) }}
-            {{ partial "social-link" (dict
-            "url" "mailto:contact@vendure.io"
-            "name" "Email"
-            "icon" "/svg/clr-icon-email-light.svg"
-            ) }}
-        </div>
-        <div class="flex mt-4 space-x-4 opacity-90">
-          <a href="https://github.com/vendure-ecommerce/vendure"><img class="" alt="GitHub star counter"
-                                                                      src="https://img.shields.io/github/stars/vendure-ecommerce/vendure.svg?style=social"></a>
-          <a href="https://www.npmjs.com/package/@vendure/core"><img class="" alt="npm version"
-                                                                     src="https://img.shields.io/npm/v/@vendure/core"></a>
-        </div>
-      </div>
-      <div class="mt-8 text-base text-gray-400 md:mt-0 md:order-1">
-        <p>&copy; {{ now.Format "2006" }} Vendure GmbH. All rights reserved.
-        </p>
-        <p class="text-gray-500">Wiedner Gürtel 12/1/2, 1040 Vienna, Austria</p>
-        <a class="text-gray-400 hover:underline mr-8" href="/impressum">Impressum</a>
-        <a class="text-gray-400 hover:underline" href="/branding">Logo resources & trademark</a>
-        </p>
-      </div>
-    </div>
-</footer>

+ 0 - 14
docs-old/layouts/partials/light-triangle-pattern.html

@@ -1,14 +0,0 @@
-<svg class="absolute hidden lg:block top-0 left-full transform -translate-x-1/2 -translate-y-3/4 lg:left-auto lg:right-full lg:translate-x-full lg:translate-y-1/4"
-     width='300' height='300' xmlns='http://www.w3.org/2000/svg'>
-  <defs>
-    <pattern id='triangles-light' patternUnits='userSpaceOnUse' width='40' height='40'
-             patternTransform='scale(1) rotate(0)'>
-      <rect x='0' y='0' width='100%' height='100%' fill='hsla(0, 0%, 86%, 0)'/>
-      <path d='M0 0l10 20L20 0H0zm10 20l10 20 10-20H10z' stroke-width='1' stroke='none'
-            fill='hsla(189, 0%, 74%, 0.1)'/>
-      <path d='M20 0l10 20L40 0zm10 20l10 20 10-20zm-40 0L0 40l10-20z' stroke-width='1'
-            stroke='none' fill='hsla(340, 0%, 72%, 0.1)'/>
-    </pattern>
-  </defs>
-  <rect width='100%' height='100%' transform='translate(0,0)' fill='url(#triangles-light)'/>
-</svg>

+ 0 - 41
docs-old/layouts/partials/menu-filetree.html

@@ -1,41 +0,0 @@
-<ul>
-    <li>
-    <ul><li><a href="/getting-started" {{- if eq .Page.Title "Getting Started" }} class="text-blue-700 active"{{ end }}>
-      Getting Started
-    </a></li></ul>
-    </li>
-    <li>{{ template "book-section" (dict "Section" .Site.Sections "CurrentPage" $.Permalink) }}</li>
-</ul>
-
-{{ define "book-section" }} <!-- Single section of menu (recursive) -->
-<ul {{ if .Expanded }}class="expanded"{{ end }}>
-    {{ range (.Section.ByParam "Title").ByParam "Weight" }}
-        {{ if ne .Title "Search Index" }}
-            {{ if and (eq .Kind "section") (or (gt (len .Pages) 0) (gt (len .Sections) 0) ) }}
-                <li class="section">
-                    {{ $expanded := in $.CurrentPage .Permalink }}
-                    <div class="section-link">
-                        <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6 section-icon {{ if $expanded}}expanded{{ end }}">
-                          <path stroke-linecap="round" stroke-linejoin="round" d="M4.5 15.75l7.5-7.5 7.5 7.5" />
-                        </svg>
-                        {{ template "book-page-link" (dict "Page" . "CurrentPage" $.CurrentPage) }}
-                    </div>
-                    {{ template "book-section" (dict "Section" .Pages "CurrentPage" $.CurrentPage "Expanded" $expanded) }}
-                </li>
-            {{ else }}
-                <li>
-                    {{ template "book-page-link" (dict "Page" . "CurrentPage" $.CurrentPage) }}
-                </li>
-            {{ end }}
-        {{end }}
-    {{ end }}
-  </ul>
-{{ end }}
-
-{{ define "book-page-link" }}
-{{- with .Page -}}
-<a href="{{ .RelPermalink }}" {{- if eq $.CurrentPage .Permalink }} class="text-blue-700 active"{{ end }}>
-  {{- template "title" . -}}
-</a>
-{{- end -}}
-{{ end }}

+ 0 - 60
docs-old/layouts/partials/top-bar.html

@@ -1,60 +0,0 @@
-<div
-    class="z-30 transition-colors top-0 bg-white border-b border-dotted border-blue-200"
-    x-data="{ ...Components.popover(false) }"
->
-    <div
-        class="absolute w-full h-1 bg-gradient-to-r from-blue-300 via-green-300 to-blue-100"
-    ></div>
-    {{ partial "announcement-banner" (dict "content" ` 🚨 Announcing
-    <a href="https://vendure.io/" class="text-white font-medium underline"
-    >Announcing Vendure v2<span aria-hidden="true">&rarr;</span></a
-    >
-    `) }}
-    <div class="max-w-screen-2xl mx-auto px-4 py-4 sm:px-6 md:pr-10">
-        <div class="flex justify-between items-center md:space-x-10">
-            <div class="justify-start hidden md:flex">
-                <div class="logo flex space-x-2 items-center">
-                    <a href="https://vendure.io" title="back to landing page">
-                        <img class="w-6" src="/logo.png" alt="Vendure logo"/>
-                    </a>
-                    <div class="text-xl mt-0">
-                        <span class="text-blue-500 font-wordmark font-bold">vendure</span>
-                    </div>
-                </div>
-            </div>
-            <div class="flex justify-center items-center">
-                <label for="search" class="sr-only">Search docs (ctrl + k)</label>
-                <button id="searchInputTrigger"
-                       class="shadow-sm focus:ring-blue-500 focus:border-blue-500 border-gray-300 rounded-md px-1 py-1 md:border text-gray-400 flex text-sm gap-2">
-                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5">
-                      <path fill-rule="evenodd" d="M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z" clip-rule="evenodd" />
-                    </svg>
-                    <span class="hidden md:block text-gray-500 pr-4 whitespace-nowrap">Search docs</span>
-                    <div class="hidden md:flex gap-0.5">
-                        <kbd class="uppercase bg-gray-100 border px-1 py-0.5 text-xs rounded tracking-tighter">ctrl</kbd>
-                        <kbd class="uppercase bg-gray-100 border px-1 py-0.5 text-xs rounded tracking-tighter">k</kbd>
-                    </div>
-                </button>
-            </div>
-            <div class="flex-1">
-                <ul role="menu" class="flex gap-4">
-                    <li><a class="px-2 py-1 rounded {{ if (eq .section "guides") }}text-white bg-blue-600{{ else }}text-gray-700{{ end}}" href="/guides/getting-started">Learn</a></li>
-                    <li><a class="px-2 py-1 rounded {{ if (eq .section "reference") }}text-white bg-blue-600{{ else }}text-gray-700{{ end}}" href="/reference/typescript-api/">Reference</a></li>
-                    <li><a class="px-2 py-1 rounded {{ if (eq .section "user-guide") }}text-white bg-blue-600{{ else }}text-gray-700{{ end}}" href="/user-guide/">Manual</a></li>
-                </ul>
-            </div>
-            <div class="flex items-center space-x-4">
-                <a href="https://vendure.io/community" target="_blank" title="Join our Discord community!">
-                    <img src="/logo/discord-logo.png" class="w-6 h-6" alt="Discord logo"/>
-                </a>
-                <a href="https://github.com/vendure-ecommerce/vendure" class="">
-                    <img
-                        class=""
-                        alt="GitHub star counter"
-                        src="https://img.shields.io/github/stars/vendure-ecommerce/vendure.svg?style=social"
-                    />
-                </a>
-            </div>
-        </div>
-    </div>
-</div>

+ 0 - 13
docs-old/layouts/searchindex/searchindex.html

@@ -1,13 +0,0 @@
-{
-result :[
-    {{- range .Site.Pages -}}
-        {{ $titles := findRE "<h(1|2).*?>(.|\n)*?</h(1|2)>" .Content -}}
-        {{ $plain := apply $titles "plainify" "." -}}
-        {{ $cleaned := $plain | complement (slice "constructor" "Signature" "Members") -}}
-        {{ $quoted := apply $cleaned "replaceRE" ".*" "'$0'" "." -}}
-        {{ $section := cond (in .Dir "typescript-api") "config" (cond (in .Dir "graphql-api") "gql" (cond (in .Dir "user-guide") "user-guide" "developer-guide")) }}
-
-        { section: '{{ $section }}', parent: '{{ if .Parent }}{{ title .Parent.Title }}{{ end }}', title: '{{ .Title }}', headings: [{{ delimit $quoted ", " }}], url: '{{ .RelPermalink }}' },
-    {{- end }}
-]
-}

+ 0 - 11
docs-old/layouts/shortcodes/alert.html

@@ -1,11 +0,0 @@
-{{ $type := index .Params 0 | default "primary" }}
-<div x-data="{ type: '{{ $type }}' }" class='border rounded px-4 py-2 my-6'
-    :class="{
-        'bg-blue-50 text-blue-900 border-blue-100': type === 'primary',
-        'bg-red-50 text-red-900 border-red-100': type === 'danger',
-        'bg-yellow-50 text-yellow-900 border-yellow-100': type === 'warning',
-        'bg-green-50 text-green-900 border-green-100': type === 'success',
-    }"
->
-    <p>{{ .Inner | markdownify }}</p>
-</div>

+ 0 - 16
docs-old/layouts/shortcodes/generation-info.html

@@ -1,16 +0,0 @@
-<div class="generation-info flex flex-wrap">
-    <span class="label">Package:</span> <a href="https://www.npmjs.com/package/{{ .Get "packageName" }}">{{ .Get "packageName" }}</a>
-    <span class="label file">File:</span> <a href="https://github.com/vendure-ecommerce/vendure/blob/master/{{ .Get "sourceFile" }}#L{{ .Get "sourceLine" }}">
-    {{  index (last 1 (split (.Get "sourceFile") "/")) 0 }}</a>
-    {{- if isset .Params "since" -}}
-    <div class="flex ml-2 bg-yellow-100 px-1 rounded-sm" title="This API was added in v{{ .Get "since" | safeHTML }}">
-        <div class="text-yellow-700">v{{ .Get "since" | safeHTML }}</div>
-    </div>
-    {{ end }}
-    {{- if isset .Params "experimental" -}}
-    <div class="since ml-2 bg-yellow-100 px-2 rounded-sm" title="This API is experimental and may change in a future release">
-       <div class="text-yellow-700">experimental</div>
-    </div>
-    {{ end }}
-</div>
-

+ 0 - 3
docs-old/layouts/shortcodes/gql-enum-values.html

@@ -1,3 +0,0 @@
-<div class="gql-enum-values">
-    {{ .Inner }}
-</div>

+ 0 - 3
docs-old/layouts/shortcodes/gql-fields.html

@@ -1,3 +0,0 @@
-<div class="gql-fields">
-    {{ .Inner }}
-</div>

+ 0 - 3
docs-old/layouts/shortcodes/image.html

@@ -1,3 +0,0 @@
-<figure class='{{ if .Get "flat" }}flat{{ end }}'>
-    <img src='{{ .Get "src" }}'>
-</figure>

+ 0 - 3
docs-old/layouts/shortcodes/member-description.html

@@ -1,3 +0,0 @@
-<div class="member-description">
-    {{ .Inner | markdownify }}
-</div>

+ 0 - 26
docs-old/layouts/shortcodes/member-info.html

@@ -1,26 +0,0 @@
-<div class="member-info">
-    <div class="kind">
-        <div class="kind-label">{{ .Get "kind" | safeHTML }}</div>
-    </div>
-
-    {{- if isset .Params "since" -}}
-    <div class="since mr-2 bg-yellow-100 px-2 rounded-sm" title="This API was added in v{{ .Get "since" | safeHTML }}">
-        <div class="text-yellow-700">v{{ .Get "since" | safeHTML }}</div>
-    </div>
-    {{ end }}
-    {{- if isset .Params "experimental" -}}
-    <div class="since mr-2 bg-yellow-100 px-2 rounded-sm" title="This API is experimental and may change in a future release">
-        <div class="text-yellow-700">experimental</div>
-    </div>
-    {{ end }}
-    <div class="type">
-        <div class="label">type:</div>
-        <code>{{ .Get "type" | safeHTML }}</code>
-    </div>
-    {{- if isset .Params "default" -}}
-    <div class="default">
-        <div class="label">default:</div>
-        <code>{{ .Get "default" | safeHTML }}</code>
-    </div>
-    {{ end }}
-</div>

+ 0 - 21
docs-old/layouts/shortcodes/pull-quote.html

@@ -1,21 +0,0 @@
-<div class="relative mx-2 sm:mx-12 mt-16 mb-10">
-    <svg class="absolute top-0 left-0 transform -translate-y-6 -translate-x-12 sm:-translate-y-6 h-16 w-16 sm:h-16 sm:w-16 text-blue-800 opacity-10"
-         stroke="currentColor" fill="none" viewBox="0 0 144 144" aria-hidden="true">
-        <path stroke-width="2"
-              d="M41.485 15C17.753 31.753 1 59.208 1 89.455c0 24.664 14.891 39.09 32.109 39.09 16.287 0 28.386-13.03 28.386-28.387 0-15.356-10.703-26.524-24.663-26.524-2.792 0-6.515.465-7.446.93 2.327-15.821 17.218-34.435 32.11-43.742L41.485 15zm80.04 0c-23.268 16.753-40.02 44.208-40.02 74.455 0 24.664 14.891 39.09 32.109 39.09 15.822 0 28.386-13.03 28.386-28.387 0-15.356-11.168-26.524-25.129-26.524-2.792 0-6.049.465-6.98.93 2.327-15.821 16.753-34.435 31.644-43.742L121.525 15z"/>
-    </svg>
-    <div class="text-lg      sm:leading-9  text-blue-800">
-        {{ .Get "text" }}
-    </div>
-    <div class="flex mt-2">
-        {{ if .Get "avatar" }}
-        <div class="mr-4">
-            <img class="w-12 h-12 rounded-full" src='{{ .Get "avatar" }}'>
-        </div>
-        {{ end }}
-        <div>
-            {{ if .Get "name" }}<div class="text-gray-600">{{ .Get "name" }}</div>{{ end }}
-            {{ if .Get "position" }}<div class="mt-1 text-gray-500">{{ .Get "position" }}</div>{{ end }}
-        </div>
-    </div>
-</div>

+ 0 - 4
docs-old/layouts/shortcodes/shop-api-operation.html

@@ -1,4 +0,0 @@
-{{- $operationName := .Get "operation" -}}
-{{- $operationSegment := cond (eq (.Get "type") "query") "queries" "mutations" -}}
-{{- $link := (print "/graphql-api/shop/" $operationSegment  "#" (lower $operationName) ) -}}
-<em>{{ .Get "type" }}</em> <a href="{{ $link }}"><code>{{ $operationName }}</code></a>

+ 0 - 3
docs-old/layouts/shortcodes/tab.html

@@ -1,3 +0,0 @@
-<div class="tab" title="{{ .Get 0 }}">
-  {{ .Inner }}
-</div>

+ 0 - 10
docs-old/netlify.toml

@@ -1,10 +0,0 @@
-[[redirects]]
-  from = "/slack"
-  to = "https://join.slack.com/t/vendure-ecommerce/shared_invite/zt-1sk0pstzq-14fPu8d3CkySui5i~21_2g"
-  status = 200
-  force = true
-[[redirects]]
-  from = "/community"
-  to = "https://discord.gg/4u2aSCzDDX"
-  status = 200
-  force = true

+ 0 - 36
docs-old/package.json

@@ -1,36 +0,0 @@
-{
-  "name": "vendure-docs",
-  "version": "1.0.0",
-  "description": "Documentation site for Vendure",
-  "main": "index.js",
-  "author": "Michael Bromley <michael@michaelbromley.co.uk>",
-  "license": "MIT",
-  "private": true,
-  "scripts": {
-    "watch": "yarn webpack -w",
-    "build": "yarn webpack && hugo"
-  },
-  "dependencies": {
-    "@tailwindcss/aspect-ratio": "^0.2.0",
-    "@tailwindcss/forms": "^0.3.2",
-    "@tailwindcss/typography": "^0.4.0",
-    "@types/node": "^14.14.37",
-    "@types/webpack": "^4.41.11",
-    "alpinejs": "^2.8.2",
-    "autoprefixer": "^10.2.5",
-    "css-loader": "^3.5.2",
-    "fuzzy": "^0.1.3",
-    "mini-css-extract-plugin": "^0.9.0",
-    "node-sass": "^6.0.1",
-    "postcss": "^8.2.10",
-    "postcss-loader": "^4.2.0",
-    "sass-loader": "^10.2.1",
-    "tailwindcss": "^2.1.1",
-    "terser-webpack-plugin": "^4.2.3",
-    "ts-loader": "^6.2.2",
-    "ts-node": "^9.1.1",
-    "typescript": "^4.2.4",
-    "webpack": "^4.46.0",
-    "webpack-cli": "^4.10.0"
-  }
-}

+ 0 - 7
docs-old/postcss.config.js

@@ -1,7 +0,0 @@
-// postcss.config.js
-module.exports = {
-  plugins: [
-    require('tailwindcss'),
-    require('autoprefixer'),
-  ]
-}

BIN
docs-old/static/branding/cube-logo-300.png


BIN
docs-old/static/branding/cube-logo-800.png


+ 0 - 25
docs-old/static/branding/cube-logo-vector.svg

@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg width="100%" height="100%" viewBox="0 0 1600 1600" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
-    <g transform="matrix(2.30942,0,0,2.34847,10.1798,-40.8178)">
-        <path d="M11,169.979L133.025,259.614L132.823,427.72L11,316.659L11,169.979Z" style="fill:rgb(48,198,253);"/>
-    </g>
-    <g transform="matrix(2.30942,0,0,2.34847,10.1798,-40.8178)">
-        <path d="M11,169.979L179.007,98L306.922,169.273L133.025,259.614L11,169.979Z" style="fill:rgb(23,193,255);"/>
-    </g>
-    <g transform="matrix(2.30942,0,0,2.34847,10.1798,-40.8178)">
-        <path d="M168.441,284.368L343.012,415.263L342.923,618.057L168.441,459.974L168.441,284.368Z" style="fill:rgb(48,198,253);"/>
-    </g>
-    <g transform="matrix(2.30942,0,0,2.34847,10.1798,-40.8178)">
-        <path d="M342,188.285L517.583,284.368L343.012,415.299L168.441,284.368L342,188.285Z" style="fill:rgb(23,193,255);"/>
-    </g>
-    <g transform="matrix(2.30942,0,0,2.34847,10.1798,-40.8178)">
-        <path d="M343.012,618.057L517.148,459.8L517.583,284.368L342.923,415.263L343.012,618.057Z" style="fill:rgb(19,183,243);"/>
-    </g>
-    <g transform="matrix(2.30942,0,0,2.34847,10.1798,-40.8178)">
-        <path d="M377.092,169.979L504.527,98L673,168.739L551.102,259.614L377.092,169.979Z" style="fill:rgb(23,193,255);"/>
-    </g>
-    <g transform="matrix(2.30942,0,0,2.34847,10.1798,-40.8178)">
-        <path d="M551.102,259.614L550.887,429.427L673,316.87L673,168.739L551.102,259.614Z" style="fill:rgb(19,183,243);"/>
-    </g>
-</svg>

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
docs-old/static/branding/wordmark-logo-vector.svg


BIN
docs-old/static/branding/wordmark-logo.png


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
docs-old/static/branding/wordmark-vector.svg


BIN
docs-old/static/branding/wordmark.png


BIN
docs-old/static/favicon.ico


BIN
docs-old/static/fonts/Inter-Bold.woff2


BIN
docs-old/static/fonts/Inter-Light.woff2


BIN
docs-old/static/fonts/Inter-Regular.woff2


BIN
docs-old/static/fonts/LexendDeca-Light.woff2


BIN
docs-old/static/fonts/LexendDeca-Regular.woff2


BIN
docs-old/static/fonts/didact-gothic-wordmark.woff2


BIN
docs-old/static/logo.png


Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff