UNPKG

@knapsack/app

Version:

Build Design Systems on top of knapsack, by Basalt

607 lines (606 loc) • 20.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _default = { "type": "object", "properties": { "id": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "templates": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "title": { "type": "string" }, "path": { "description": "Relative file path to the template from the config file it is declared in", "type": "string" }, "alias": { "description": "Used by template renderers in addition to `path`\nTwig: `@components/button.twig`\nWeb Components: `my-button` => `<my-button>`\nReact: a named export of the file if not `default`", "type": "string" }, "templateLanguageId": { "description": "Which template language?\ni.e. `twig`, `react`\nReplaces KnapsackTemplateRenderer.test which ran a test on the file path (similar to how WebPack loader `test` works)", "type": "string" }, "assetSetIds": { "type": "array", "items": { "type": "string" } }, "statusId": { "type": "string" }, "spec": { "description": "Supersedes `schema`", "type": "object", "properties": { "isInferred": { "description": "EXPERMIMENTAL\nAttempt to create the props & slots spec by reading the source file. Prevents ability to use spec editor.\nIf `true`, then uses the template `alias` & `path` to find the file.\nIf a string, then that file path is used in place of the source file. Scenario: the `path` is used to point to a compiled file w types stripped and this is used to point to either the source file w types or the compiled `.d.ts` file.\nCurrently only React is supported. The file extension determines if TypeScript (ts/tsx) or PropTypes (js/jsx) is used for inference.", "type": ["string", "boolean"] }, "props": { "description": "JSON Schema defining the serializable data passed in\nThe classic, formerly `schema`" }, "slots": { "description": "Child component slots", "type": "object", "additionalProperties": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "disallowText": { "type": "boolean" }, "isRequired": { "type": "boolean" }, "allowedPatternIds": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false, "required": ["title"] } } }, "additionalProperties": false }, "demosById": { "description": "Supercedes `demoData`, a `{}[]`\nSupercedes using `templates` for template files that were included with no data passed in and exist to demo how to include/import the source template and render it", "type": "object", "additionalProperties": { "anyOf": [{ "description": "Shows usage", "type": "object", "properties": { "type": { "type": "string", "enum": ["data"] }, "data": { "type": "object", "properties": { "props": { "type": "object", "additionalProperties": {} }, "slots": { "type": "object", "additionalProperties": { "type": "array", "items": { "anyOf": [{ "type": "object", "properties": { "patternId": { "type": "string" }, "templateId": { "type": "string" }, "demoId": { "type": "string" } }, "additionalProperties": false, "required": ["demoId", "patternId", "templateId"] }, { "type": "string" }] } } } }, "additionalProperties": false, "required": ["props"] }, "id": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "assetSetId": { "description": "Would override what was on the template", "type": "string" } }, "additionalProperties": false, "required": ["data", "id", "title", "type"] }, { "description": "Shows source code", "type": "object", "properties": { "type": { "type": "string", "enum": ["template"] }, "templateInfo": { "type": "object", "properties": { "alias": { "description": "Used by template renderers in addition to `path`\nTwig: `@components/button.twig`\nWeb Components: `my-button` => `<my-button>`\nReact: a named export of the file if not `default`", "type": "string" }, "path": { "type": "string" } }, "additionalProperties": false }, "id": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "assetSetId": { "description": "Would override what was on the template", "type": "string" } }, "additionalProperties": false, "required": ["id", "templateInfo", "title", "type"] }] } }, "demos": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false, "required": ["id", "path", "templateLanguageId"] } }, "demoSize": { "enum": ["full", "l", "m", "s"], "type": "string" }, "demoWidths": { "description": "Ideal widths to demo, useful for highlighting significant responsive layout changes", "type": "array", "items": { "type": "object", "properties": { "width": { "type": "number" } }, "additionalProperties": false, "required": ["width"] } }, "showAllTemplates": { "description": "Show all templates in a list on one page", "type": "boolean" }, "slices": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "blockId": { "description": "Match this to a Slices `id` to use it", "type": "string" }, "data": {} }, "additionalProperties": false, "required": ["blockId", "data", "id"] } } }, "additionalProperties": false, "required": ["id", "templates", "title"], "definitions": { "KnapsackAssetSetConfig": { "type": "object", "properties": { "assets": { "type": "array", "items": { "type": "object", "properties": { "src": { "type": "string" }, "tagLocation": { "description": "Force this asset to load in either the head or foot of the HTML page.\nCSS defaults to head and JS default to foot", "enum": ["foot", "head"], "type": "string" } }, "additionalProperties": false, "required": ["src"] } }, "id": { "type": "string" }, "title": { "type": "string" }, "inlineCss": { "type": "string" }, "inlineJs": { "type": "string" }, "inlineHead": { "type": "string" }, "inlineFoot": { "type": "string" } }, "additionalProperties": false, "required": ["assets", "id", "title"] }, "KnapsackPatternTemplate": { "type": "object", "properties": { "id": { "type": "string" }, "title": { "type": "string" }, "path": { "description": "Relative file path to the template from the config file it is declared in", "type": "string" }, "alias": { "description": "Used by template renderers in addition to `path`\nTwig: `@components/button.twig`\nWeb Components: `my-button` => `<my-button>`\nReact: a named export of the file if not `default`", "type": "string" }, "templateLanguageId": { "description": "Which template language?\ni.e. `twig`, `react`\nReplaces KnapsackTemplateRenderer.test which ran a test on the file path (similar to how WebPack loader `test` works)", "type": "string" }, "assetSetIds": { "type": "array", "items": { "type": "string" } }, "statusId": { "type": "string" }, "spec": { "description": "Supersedes `schema`", "type": "object", "properties": { "isInferred": { "description": "EXPERMIMENTAL\nAttempt to create the props & slots spec by reading the source file. Prevents ability to use spec editor.\nIf `true`, then uses the template `alias` & `path` to find the file.\nIf a string, then that file path is used in place of the source file. Scenario: the `path` is used to point to a compiled file w types stripped and this is used to point to either the source file w types or the compiled `.d.ts` file.\nCurrently only React is supported. The file extension determines if TypeScript (ts/tsx) or PropTypes (js/jsx) is used for inference.", "type": ["string", "boolean"] }, "props": { "description": "JSON Schema defining the serializable data passed in\nThe classic, formerly `schema`" }, "slots": { "description": "Child component slots", "type": "object", "additionalProperties": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string" }, "disallowText": { "type": "boolean" }, "isRequired": { "type": "boolean" }, "allowedPatternIds": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false, "required": ["title"] } } }, "additionalProperties": false }, "demosById": { "description": "Supercedes `demoData`, a `{}[]`\nSupercedes using `templates` for template files that were included with no data passed in and exist to demo how to include/import the source template and render it", "type": "object", "additionalProperties": { "anyOf": [{ "description": "Shows usage", "type": "object", "properties": { "type": { "type": "string", "enum": ["data"] }, "data": { "type": "object", "properties": { "props": { "type": "object", "additionalProperties": {} }, "slots": { "type": "object", "additionalProperties": { "type": "array", "items": { "anyOf": [{ "type": "object", "properties": { "patternId": { "type": "string" }, "templateId": { "type": "string" }, "demoId": { "type": "string" } }, "additionalProperties": false, "required": ["demoId", "patternId", "templateId"] }, { "type": "string" }] } } } }, "additionalProperties": false, "required": ["props"] }, "id": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "assetSetId": { "description": "Would override what was on the template", "type": "string" } }, "additionalProperties": false, "required": ["data", "id", "title", "type"] }, { "description": "Shows source code", "type": "object", "properties": { "type": { "type": "string", "enum": ["template"] }, "templateInfo": { "type": "object", "properties": { "alias": { "description": "Used by template renderers in addition to `path`\nTwig: `@components/button.twig`\nWeb Components: `my-button` => `<my-button>`\nReact: a named export of the file if not `default`", "type": "string" }, "path": { "type": "string" } }, "additionalProperties": false }, "id": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "assetSetId": { "description": "Would override what was on the template", "type": "string" } }, "additionalProperties": false, "required": ["id", "templateInfo", "title", "type"] }] } }, "demos": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false, "required": ["id", "path", "templateLanguageId"] }, "DataDemo": { "description": "Shows usage", "type": "object", "properties": { "type": { "type": "string", "enum": ["data"] }, "data": { "type": "object", "properties": { "props": { "type": "object", "additionalProperties": {} }, "slots": { "type": "object", "additionalProperties": { "type": "array", "items": { "anyOf": [{ "type": "object", "properties": { "patternId": { "type": "string" }, "templateId": { "type": "string" }, "demoId": { "type": "string" } }, "additionalProperties": false, "required": ["demoId", "patternId", "templateId"] }, { "type": "string" }] } } } }, "additionalProperties": false, "required": ["props"] }, "id": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "assetSetId": { "description": "Would override what was on the template", "type": "string" } }, "additionalProperties": false, "required": ["data", "id", "title", "type"] }, "TemplateDemo": { "description": "Shows source code", "type": "object", "properties": { "type": { "type": "string", "enum": ["template"] }, "templateInfo": { "type": "object", "properties": { "alias": { "description": "Used by template renderers in addition to `path`\nTwig: `@components/button.twig`\nWeb Components: `my-button` => `<my-button>`\nReact: a named export of the file if not `default`", "type": "string" }, "path": { "type": "string" } }, "additionalProperties": false }, "id": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "assetSetId": { "description": "Would override what was on the template", "type": "string" } }, "additionalProperties": false, "required": ["id", "templateInfo", "title", "type"] }, "DemoSize": { "enum": ["full", "l", "m", "s"], "type": "string" }, "KnapsackCustomPageSlice": { "type": "object", "properties": { "id": { "type": "string" }, "blockId": { "description": "Match this to a Slices `id` to use it", "type": "string" }, "data": {} }, "additionalProperties": false, "required": ["blockId", "data", "id"] } }, "$schema": "http://json-schema.org/draft-07/schema#" }; exports.default = _default;