@cratis/scene.model 4.37.0 → 4.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/cjs/index.js +4 -0
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/packages/BlueprintMetadata.js +14 -0
  4. package/dist/cjs/packages/BlueprintMetadata.js.map +1 -0
  5. package/dist/cjs/packages/BlueprintScreen.js +16 -0
  6. package/dist/cjs/packages/BlueprintScreen.js.map +1 -0
  7. package/dist/cjs/packages/ScenePackage.js +2 -1
  8. package/dist/cjs/packages/ScenePackage.js.map +1 -1
  9. package/dist/cjs/screens/TemplateMetadata.js +2 -1
  10. package/dist/cjs/screens/TemplateMetadata.js.map +1 -1
  11. package/dist/esm/index.js +2 -0
  12. package/dist/esm/index.js.map +1 -1
  13. package/dist/esm/packages/BlueprintMetadata.d.ts +10 -0
  14. package/dist/esm/packages/BlueprintMetadata.d.ts.map +1 -0
  15. package/dist/esm/packages/BlueprintMetadata.js +12 -0
  16. package/dist/esm/packages/BlueprintMetadata.js.map +1 -0
  17. package/dist/esm/packages/BlueprintScreen.d.ts +12 -0
  18. package/dist/esm/packages/BlueprintScreen.d.ts.map +1 -0
  19. package/dist/esm/packages/BlueprintScreen.js +14 -0
  20. package/dist/esm/packages/BlueprintScreen.js.map +1 -0
  21. package/dist/esm/packages/ScenePackage.d.ts +2 -0
  22. package/dist/esm/packages/ScenePackage.d.ts.map +1 -1
  23. package/dist/esm/packages/ScenePackage.js +2 -1
  24. package/dist/esm/packages/ScenePackage.js.map +1 -1
  25. package/dist/esm/packages/index.d.ts +2 -0
  26. package/dist/esm/packages/index.d.ts.map +1 -1
  27. package/dist/esm/packages/index.js +2 -0
  28. package/dist/esm/packages/index.js.map +1 -1
  29. package/dist/esm/screens/TemplateMetadata.d.ts +1 -0
  30. package/dist/esm/screens/TemplateMetadata.d.ts.map +1 -1
  31. package/dist/esm/screens/TemplateMetadata.js +2 -1
  32. package/dist/esm/screens/TemplateMetadata.js.map +1 -1
  33. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +1 -1
  35. package/packages/BlueprintMetadata.ts +31 -0
  36. package/packages/BlueprintScreen.ts +34 -0
  37. package/packages/ScenePackage.ts +9 -0
  38. package/packages/index.ts +2 -0
  39. package/screens/TemplateMetadata.ts +4 -1
package/dist/cjs/index.js CHANGED
@@ -75,6 +75,8 @@ var IconEntry = require('./icons/IconEntry.js');
75
75
  var PackageKind = require('./packages/PackageKind.js');
76
76
  var PackageDependency = require('./packages/PackageDependency.js');
77
77
  var ScenePackage = require('./packages/ScenePackage.js');
78
+ var BlueprintScreen = require('./packages/BlueprintScreen.js');
79
+ var BlueprintMetadata = require('./packages/BlueprintMetadata.js');
78
80
  var SampleFieldKind = require('./sampleData/SampleFieldKind.js');
79
81
  var SampleShapeField = require('./sampleData/SampleShapeField.js');
80
82
  var SampleShape = require('./sampleData/SampleShape.js');
@@ -277,6 +279,8 @@ exports.IconEntryPropertyNames = IconEntry.IconEntryPropertyNames;
277
279
  exports.PackageKind = PackageKind.PackageKind;
278
280
  exports.PackageDependencyPropertyNames = PackageDependency.PackageDependencyPropertyNames;
279
281
  exports.ScenePackagePropertyNames = ScenePackage.ScenePackagePropertyNames;
282
+ exports.BlueprintScreenPropertyNames = BlueprintScreen.BlueprintScreenPropertyNames;
283
+ exports.BlueprintMetadataPropertyNames = BlueprintMetadata.BlueprintMetadataPropertyNames;
280
284
  exports.SampleFieldKind = SampleFieldKind.SampleFieldKind;
281
285
  exports.SampleShapeFieldPropertyNames = SampleShapeField.SampleShapeFieldPropertyNames;
282
286
  exports.SampleShapePropertyNames = SampleShape.SampleShapePropertyNames;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ // Copyright (c) Cratis. All rights reserved.
4
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
5
+ const BlueprintMetadataPropertyNames = [
6
+ 'domain',
7
+ 'description',
8
+ 'thumbnail',
9
+ 'screenSet',
10
+ 'defaultSampleData'
11
+ ];
12
+
13
+ exports.BlueprintMetadataPropertyNames = BlueprintMetadataPropertyNames;
14
+ //# sourceMappingURL=BlueprintMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlueprintMetadata.js","sources":["../../../packages/BlueprintMetadata.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { BlueprintScreen } from './BlueprintScreen';\n\n/**\n * What a domain blueprint declares about itself beyond what every package does: the business domain it serves, how it\n * is described in a gallery, and the ready-to-use screens it brings with their navigation.\n *\n * A blueprint's own version is {@link ScenePackage.version}: there is deliberately no second version here to drift from\n * it. That version is what a template reference pins (`TemplateReference.version`) and what \"update available\" compares.\n * Its sample-data packs are {@link ScenePackage.sampleData}; {@link BlueprintMetadata.defaultSampleData} chooses among them.\n */\nexport interface BlueprintMetadata {\n /** The business domain, as a lower-case slug (`crm`, `project-tracker`). Templates of the blueprint are categorised under `Business / <domain>`. */\n domain: string;\n\n /** One sentence, up to 200 characters, saying what the blueprint gives an application. Shown under the thumbnail in a gallery. */\n description: string;\n\n /** The package-relative path of the gallery thumbnail, `thumbnails/<name>.png`, `.webp`, `.jpg` or `.svg`. It is design-time only and never part of a runtime bundle. */\n thumbnail: string;\n\n /** The ready-to-use screens, in navigation order. */\n screenSet: BlueprintScreen[];\n\n /** The id of the sample-data pack a gallery preview and a new application start with; one of the package's `sampleData` ids. Required when the package ships more than one. */\n defaultSampleData?: string;\n}\n\nexport const BlueprintMetadataPropertyNames: (keyof BlueprintMetadata)[] = ['domain', 'description', 'thumbnail', 'screenSet', 'defaultSampleData'];\n"],"names":["BlueprintMetadataPropertyNames"],"mappings":";;AAAA;AACA;MA6BaA,8BAAAA,GAA8D;AAAC,IAAA,QAAA;AAAU,IAAA,aAAA;AAAe,IAAA,WAAA;AAAa,IAAA,WAAA;AAAa,IAAA;;;"}
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ // Copyright (c) Cratis. All rights reserved.
4
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
5
+ const BlueprintScreenPropertyNames = [
6
+ 'name',
7
+ 'title',
8
+ 'description',
9
+ 'template',
10
+ 'parent',
11
+ 'order',
12
+ 'icon'
13
+ ];
14
+
15
+ exports.BlueprintScreenPropertyNames = BlueprintScreenPropertyNames;
16
+ //# sourceMappingURL=BlueprintScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlueprintScreen.js","sources":["../../../packages/BlueprintScreen.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { IconReference } from '../icons';\n\n/**\n * One screen of a domain blueprint's ready-to-use screen set, with where it sits in the navigation the blueprint\n * brings. The screen itself (its layout, template and content) is a `Screen` the package provides under the same\n * name; this is the part a gallery and a navigation builder need without loading it.\n */\nexport interface BlueprintScreen {\n /** The name of the {@link Screen} the package provides. Unique within the screen set. */\n name: string;\n\n /** The title shown in the navigation and in the gallery. */\n title: string;\n\n /** One sentence saying what the screen is for. */\n description?: string;\n\n /** The name of the screen template the screen is built from, when it is built from one. */\n template?: string;\n\n /** The name of the screen this one sits under in the navigation; absent for a top-level screen. */\n parent?: string;\n\n /** Where the screen sits among its siblings; lower comes first, and screens without an order keep the order they are written in. */\n order?: number;\n\n /** The icon beside the title in the navigation. */\n icon?: IconReference;\n}\n\nexport const BlueprintScreenPropertyNames: (keyof BlueprintScreen)[] = ['name', 'title', 'description', 'template', 'parent', 'order', 'icon'];\n"],"names":["BlueprintScreenPropertyNames"],"mappings":";;AAAA;AACA;MAgCaA,4BAAAA,GAA0D;AAAC,IAAA,MAAA;AAAQ,IAAA,OAAA;AAAS,IAAA,aAAA;AAAe,IAAA,UAAA;AAAY,IAAA,QAAA;AAAU,IAAA,OAAA;AAAS,IAAA;;;"}
@@ -21,7 +21,8 @@ const ScenePackagePropertyNames = [
21
21
  'designTime',
22
22
  'assets',
23
23
  'runtimeSingletons',
24
- 'sampleData'
24
+ 'sampleData',
25
+ 'blueprint'
25
26
  ];
26
27
 
27
28
  exports.ScenePackagePropertyNames = ScenePackagePropertyNames;
@@ -1 +1 @@
1
- {"version":3,"file":"ScenePackage.js","sources":["../../../packages/ScenePackage.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { PackageDesignTimeMetadata } from '../descriptors';\nimport { IconLibrary } from '../icons';\nimport { PackageDependency } from './PackageDependency';\nimport { SampleDataPackReference } from '../sampleData';\nimport { PackageKind } from './PackageKind';\n\n/**\n * What a {@link UiProfile}'s `packages` entry actually names. A profile lists packages by name only;\n * this is the declaration behind the name - what it contributes, and what else has to be active for it\n * to work.\n */\nexport interface ScenePackage {\n /**\n * The name a {@link UiProfile} lists, and the name a {@link PackageDependency} refers to.\n */\n name: string;\n\n /**\n * The package's own version, so a {@link PackageDependency.versionRange} has something to check against.\n */\n version: string;\n\n /**\n * What the package contributes.\n */\n kind: PackageKind;\n\n /**\n * Other packages that must be active in the same profile for this one to work.\n */\n dependencies: PackageDependency[];\n\n /**\n * The component names this package declares - the catalog entry {@link UiProfile} resolution walks.\n */\n components: string[];\n\n /**\n * The names of the {@link Layout}s this package provides — an application's base navigational shells.\n * Empty for anything that is not a {@link PackageKind.Blueprint}.\n */\n layouts: string[];\n\n /**\n * The names of the {@link ScreenTemplate}s this package provides — the shapes that go inside a layout,\n * at module, feature and slice level.\n */\n screenTemplates: string[];\n\n /**\n * The names of the {@link DialogTemplate}s this package provides.\n */\n dialogTemplates: string[];\n\n /**\n * The names of the {@link Theme}s this package ships, empty for a package that ships none.\n */\n themes: string[];\n\n /**\n * A human-readable name for a package picker, falling back to `name` when absent.\n */\n displayName?: string;\n\n /**\n * A one-line description for a package picker.\n */\n description?: string;\n\n /**\n * The module that implements the package - an npm package name for a web renderer. Design-time\n * tooling needs it to know what to import; the model itself never loads anything.\n */\n module?: string;\n\n /**\n * The license the package is available under, as a short human-readable name (`MIT`,\n * `PrimeUI Community`). A package picker shows it, because \"what am I taking on by selecting this\"\n * is a question an author needs answered before they select it, not after.\n */\n license?: string;\n\n /**\n * Where the license terms actually live, so a reader can go and check rather than take `license` on\n * trust. Required in practice for anything that is not a permissive standard license — a name alone\n * tells an author nothing about eligibility or obligations.\n */\n licenseUrl?: string;\n\n /**\n * What the package declares about its icons. Present exactly for a {@link PackageKind.IconLibrary}.\n */\n iconLibrary?: IconLibrary;\n\n /** Optional design-time extensions carried as metadata; runtime hosts do not load them unless approved. */\n designTime?: PackageDesignTimeMetadata;\n\n /** Asset URLs or package-relative asset entries (CSS, fonts, images) required by a web renderer. */\n assets?: string[];\n\n /** Runtime singleton dependency names that must not be duplicated across approved bundles. */\n runtimeSingletons?: string[];\n\n /**\n * The sample-data packs this package ships (`sampleData/*.json`). Design and preview time only: a\n * Stage production build never includes or resolves them.\n */\n sampleData?: SampleDataPackReference[];\n}\n\nexport const ScenePackagePropertyNames: (keyof ScenePackage)[] = [\n 'name',\n 'version',\n 'kind',\n 'dependencies',\n 'components',\n 'layouts',\n 'screenTemplates',\n 'dialogTemplates',\n 'themes',\n 'displayName',\n 'description',\n 'module',\n 'license',\n 'licenseUrl',\n 'iconLibrary',\n 'designTime',\n 'assets',\n 'runtimeSingletons',\n 'sampleData',\n];\n"],"names":["ScenePackagePropertyNames"],"mappings":";;AAAA;AACA;MAgHaA,yBAAAA,GAAoD;AAC7D,IAAA,MAAA;AACA,IAAA,SAAA;AACA,IAAA,MAAA;AACA,IAAA,cAAA;AACA,IAAA,YAAA;AACA,IAAA,SAAA;AACA,IAAA,iBAAA;AACA,IAAA,iBAAA;AACA,IAAA,QAAA;AACA,IAAA,aAAA;AACA,IAAA,aAAA;AACA,IAAA,QAAA;AACA,IAAA,SAAA;AACA,IAAA,YAAA;AACA,IAAA,aAAA;AACA,IAAA,YAAA;AACA,IAAA,QAAA;AACA,IAAA,mBAAA;AACA,IAAA;;;"}
1
+ {"version":3,"file":"ScenePackage.js","sources":["../../../packages/ScenePackage.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { PackageDesignTimeMetadata } from '../descriptors';\nimport { IconLibrary } from '../icons';\nimport { PackageDependency } from './PackageDependency';\nimport { SampleDataPackReference } from '../sampleData';\nimport { BlueprintMetadata } from './BlueprintMetadata';\nimport { PackageKind } from './PackageKind';\n\n/**\n * What a {@link UiProfile}'s `packages` entry actually names. A profile lists packages by name only;\n * this is the declaration behind the name - what it contributes, and what else has to be active for it\n * to work.\n */\nexport interface ScenePackage {\n /**\n * The name a {@link UiProfile} lists, and the name a {@link PackageDependency} refers to.\n */\n name: string;\n\n /**\n * The package's own version, so a {@link PackageDependency.versionRange} has something to check against.\n */\n version: string;\n\n /**\n * What the package contributes.\n */\n kind: PackageKind;\n\n /**\n * Other packages that must be active in the same profile for this one to work.\n */\n dependencies: PackageDependency[];\n\n /**\n * The component names this package declares - the catalog entry {@link UiProfile} resolution walks.\n */\n components: string[];\n\n /**\n * The names of the {@link Layout}s this package provides — an application's base navigational shells.\n * Empty for anything that is not a {@link PackageKind.Blueprint}.\n */\n layouts: string[];\n\n /**\n * The names of the {@link ScreenTemplate}s this package provides — the shapes that go inside a layout,\n * at module, feature and slice level.\n */\n screenTemplates: string[];\n\n /**\n * The names of the {@link DialogTemplate}s this package provides.\n */\n dialogTemplates: string[];\n\n /**\n * The names of the {@link Theme}s this package ships, empty for a package that ships none.\n */\n themes: string[];\n\n /**\n * A human-readable name for a package picker, falling back to `name` when absent.\n */\n displayName?: string;\n\n /**\n * A one-line description for a package picker.\n */\n description?: string;\n\n /**\n * The module that implements the package - an npm package name for a web renderer. Design-time\n * tooling needs it to know what to import; the model itself never loads anything.\n */\n module?: string;\n\n /**\n * The license the package is available under, as a short human-readable name (`MIT`,\n * `PrimeUI Community`). A package picker shows it, because \"what am I taking on by selecting this\"\n * is a question an author needs answered before they select it, not after.\n */\n license?: string;\n\n /**\n * Where the license terms actually live, so a reader can go and check rather than take `license` on\n * trust. Required in practice for anything that is not a permissive standard license — a name alone\n * tells an author nothing about eligibility or obligations.\n */\n licenseUrl?: string;\n\n /**\n * What the package declares about its icons. Present exactly for a {@link PackageKind.IconLibrary}.\n */\n iconLibrary?: IconLibrary;\n\n /** Optional design-time extensions carried as metadata; runtime hosts do not load them unless approved. */\n designTime?: PackageDesignTimeMetadata;\n\n /** Asset URLs or package-relative asset entries (CSS, fonts, images) required by a web renderer. */\n assets?: string[];\n\n /** Runtime singleton dependency names that must not be duplicated across approved bundles. */\n runtimeSingletons?: string[];\n\n /**\n * The sample-data packs this package ships (`sampleData/*.json`). Design and preview time only: a\n * Stage production build never includes or resolves them.\n */\n sampleData?: SampleDataPackReference[];\n\n /**\n * What a domain blueprint declares about itself: its domain, gallery description and thumbnail, and its ready-to-use\n * screen set. Present for a domain {@link PackageKind.Blueprint}; a blueprint that only provides foundation layouts\n * and templates has none.\n */\n blueprint?: BlueprintMetadata;\n}\n\nexport const ScenePackagePropertyNames: (keyof ScenePackage)[] = [\n 'name',\n 'version',\n 'kind',\n 'dependencies',\n 'components',\n 'layouts',\n 'screenTemplates',\n 'dialogTemplates',\n 'themes',\n 'displayName',\n 'description',\n 'module',\n 'license',\n 'licenseUrl',\n 'iconLibrary',\n 'designTime',\n 'assets',\n 'runtimeSingletons',\n 'sampleData',\n 'blueprint',\n];\n"],"names":["ScenePackagePropertyNames"],"mappings":";;AAAA;AACA;MAwHaA,yBAAAA,GAAoD;AAC7D,IAAA,MAAA;AACA,IAAA,SAAA;AACA,IAAA,MAAA;AACA,IAAA,cAAA;AACA,IAAA,YAAA;AACA,IAAA,SAAA;AACA,IAAA,iBAAA;AACA,IAAA,iBAAA;AACA,IAAA,QAAA;AACA,IAAA,aAAA;AACA,IAAA,aAAA;AACA,IAAA,QAAA;AACA,IAAA,SAAA;AACA,IAAA,YAAA;AACA,IAAA,aAAA;AACA,IAAA,YAAA;AACA,IAAA,QAAA;AACA,IAAA,mBAAA;AACA,IAAA,YAAA;AACA,IAAA;;;"}
@@ -18,7 +18,8 @@ const TemplateMetadataPropertyNames = [
18
18
  'attribution',
19
19
  'license',
20
20
  'licenseUrl',
21
- 'sliceKinds'
21
+ 'sliceKinds',
22
+ 'thumbnail'
22
23
  ];
23
24
 
24
25
  exports.TemplateMetadataPropertyNames = TemplateMetadataPropertyNames;
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateMetadata.js","sources":["../../../screens/TemplateMetadata.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { TemplateAttribution } from './TemplateAttribution';\nimport { TemplateCompatibility } from './TemplateCompatibility';\nimport { SliceKind } from '../structure';\n\n/** The application hierarchy at which a reusable template is selected. */\nexport enum TemplateScope {\n Application = 'Application',\n Module = 'Module',\n Feature = 'Feature',\n Subfeature = 'Subfeature',\n Slice = 'Slice',\n}\n\n/**\n * Semantic and browsing metadata. Category is required for blueprint templates and recommended for own templates. Type and category are open strings so packages can\n * introduce their own vocabulary without a Scene release. Category never determines applicability.\n */\nexport interface TemplateMetadata {\n /** Semantic role; built-in roles are ApplicationShell, Workspace, List, Detail, Form and Dialog. */\n type?: string;\n /** A package-defined browse category, preserved even when the host does not recognize it. */\n category?: string;\n /** Explicit scope restriction. Absent uses the structural role; an empty list allows no scope. */\n scopes?: TemplateScope[];\n /** The Scene and package versions the template requires. Required for every shipped template. */\n compatibility?: TemplateCompatibility;\n /** Who authored the template. Required for every shipped template. */\n attribution?: TemplateAttribution;\n /** The SPDX license identifier the template is available under, such as `MIT`. Required for every shipped template. */\n license?: string;\n /** An absolute `https` URL to the license terms. */\n licenseUrl?: string;\n /**\n * For a template that applies at {@link TemplateScope.Slice}, the slice kinds it applies to. Absent uses the\n * structural default: a dialog template applies to state change slices, a screen template to every kind that\n * presents something. Declaring slice kinds without scopes makes the default scope Slice.\n */\n sliceKinds?: SliceKind[];\n}\n\nexport const TemplateMetadataPropertyNames: (keyof TemplateMetadata)[] = [\n 'type', 'category', 'scopes', 'compatibility', 'attribution', 'license', 'licenseUrl', 'sliceKinds',\n];\n"],"names":["TemplateScope","TemplateMetadataPropertyNames"],"mappings":";;AAAA;AACA;AAMA,2EACO,IAAKA,aAAAA,iBAAAA,SAAAA,aAAAA,EAAAA;;;;;;AAAAA,IAAAA,OAAAA,aAAAA;AAMX,CAAA,CAAA,EAAA;MA6BYC,6BAAAA,GAA4D;AACrE,IAAA,MAAA;AAAQ,IAAA,UAAA;AAAY,IAAA,QAAA;AAAU,IAAA,eAAA;AAAiB,IAAA,aAAA;AAAe,IAAA,SAAA;AAAW,IAAA,YAAA;AAAc,IAAA;;;;"}
1
+ {"version":3,"file":"TemplateMetadata.js","sources":["../../../screens/TemplateMetadata.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { TemplateAttribution } from './TemplateAttribution';\nimport { TemplateCompatibility } from './TemplateCompatibility';\nimport { SliceKind } from '../structure';\n\n/** The application hierarchy at which a reusable template is selected. */\nexport enum TemplateScope {\n Application = 'Application',\n Module = 'Module',\n Feature = 'Feature',\n Subfeature = 'Subfeature',\n Slice = 'Slice',\n}\n\n/**\n * Semantic and browsing metadata. Category is required for blueprint templates and recommended for own templates. Type and category are open strings so packages can\n * introduce their own vocabulary without a Scene release. Category never determines applicability.\n */\nexport interface TemplateMetadata {\n /** Semantic role; built-in roles are ApplicationShell, Workspace, List, Detail, Form and Dialog. */\n type?: string;\n /** A package-defined browse category, preserved even when the host does not recognize it. */\n category?: string;\n /** Explicit scope restriction. Absent uses the structural role; an empty list allows no scope. */\n scopes?: TemplateScope[];\n /** The Scene and package versions the template requires. Required for every shipped template. */\n compatibility?: TemplateCompatibility;\n /** Who authored the template. Required for every shipped template. */\n attribution?: TemplateAttribution;\n /** The SPDX license identifier the template is available under, such as `MIT`. Required for every shipped template. */\n license?: string;\n /** An absolute `https` URL to the license terms. */\n licenseUrl?: string;\n /**\n * For a template that applies at {@link TemplateScope.Slice}, the slice kinds it applies to. Absent uses the\n * structural default: a dialog template applies to state change slices, a screen template to every kind that\n * presents something. Declaring slice kinds without scopes makes the default scope Slice.\n */\n sliceKinds?: SliceKind[];\n\n /** The package-relative path of the template's gallery thumbnail (`thumbnails/<name>.png|webp|jpg|svg`); required of every template of a domain blueprint. */\n thumbnail?: string;\n}\n\nexport const TemplateMetadataPropertyNames: (keyof TemplateMetadata)[] = [\n 'type', 'category', 'scopes', 'compatibility', 'attribution', 'license', 'licenseUrl', 'sliceKinds', 'thumbnail',\n];\n"],"names":["TemplateScope","TemplateMetadataPropertyNames"],"mappings":";;AAAA;AACA;AAMA,2EACO,IAAKA,aAAAA,iBAAAA,SAAAA,aAAAA,EAAAA;;;;;;AAAAA,IAAAA,OAAAA,aAAAA;AAMX,CAAA,CAAA,EAAA;MAgCYC,6BAAAA,GAA4D;AACrE,IAAA,MAAA;AAAQ,IAAA,UAAA;AAAY,IAAA,QAAA;AAAU,IAAA,eAAA;AAAiB,IAAA,aAAA;AAAe,IAAA,SAAA;AAAW,IAAA,YAAA;AAAc,IAAA,YAAA;AAAc,IAAA;;;;"}
package/dist/esm/index.js CHANGED
@@ -73,6 +73,8 @@ export { IconEntryPropertyNames } from './icons/IconEntry.js';
73
73
  export { PackageKind } from './packages/PackageKind.js';
74
74
  export { PackageDependencyPropertyNames } from './packages/PackageDependency.js';
75
75
  export { ScenePackagePropertyNames } from './packages/ScenePackage.js';
76
+ export { BlueprintScreenPropertyNames } from './packages/BlueprintScreen.js';
77
+ export { BlueprintMetadataPropertyNames } from './packages/BlueprintMetadata.js';
76
78
  export { SampleFieldKind } from './sampleData/SampleFieldKind.js';
77
79
  export { SampleShapeFieldPropertyNames } from './sampleData/SampleShapeField.js';
78
80
  export { SampleShapePropertyNames } from './sampleData/SampleShape.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,10 @@
1
+ import { BlueprintScreen } from './BlueprintScreen';
2
+ export interface BlueprintMetadata {
3
+ domain: string;
4
+ description: string;
5
+ thumbnail: string;
6
+ screenSet: BlueprintScreen[];
7
+ defaultSampleData?: string;
8
+ }
9
+ export declare const BlueprintMetadataPropertyNames: (keyof BlueprintMetadata)[];
10
+ //# sourceMappingURL=BlueprintMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlueprintMetadata.d.ts","sourceRoot":"","sources":["../../../packages/BlueprintMetadata.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAUpD,MAAM,WAAW,iBAAiB;IAE9B,MAAM,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,MAAM,CAAC;IAGpB,SAAS,EAAE,MAAM,CAAC;IAGlB,SAAS,EAAE,eAAe,EAAE,CAAC;IAG7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,8BAA8B,EAAE,CAAC,MAAM,iBAAiB,CAAC,EAA6E,CAAC"}
@@ -0,0 +1,12 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ const BlueprintMetadataPropertyNames = [
4
+ 'domain',
5
+ 'description',
6
+ 'thumbnail',
7
+ 'screenSet',
8
+ 'defaultSampleData'
9
+ ];
10
+
11
+ export { BlueprintMetadataPropertyNames };
12
+ //# sourceMappingURL=BlueprintMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlueprintMetadata.js","sources":["../../../packages/BlueprintMetadata.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { BlueprintScreen } from './BlueprintScreen';\n\n/**\n * What a domain blueprint declares about itself beyond what every package does: the business domain it serves, how it\n * is described in a gallery, and the ready-to-use screens it brings with their navigation.\n *\n * A blueprint's own version is {@link ScenePackage.version}: there is deliberately no second version here to drift from\n * it. That version is what a template reference pins (`TemplateReference.version`) and what \"update available\" compares.\n * Its sample-data packs are {@link ScenePackage.sampleData}; {@link BlueprintMetadata.defaultSampleData} chooses among them.\n */\nexport interface BlueprintMetadata {\n /** The business domain, as a lower-case slug (`crm`, `project-tracker`). Templates of the blueprint are categorised under `Business / <domain>`. */\n domain: string;\n\n /** One sentence, up to 200 characters, saying what the blueprint gives an application. Shown under the thumbnail in a gallery. */\n description: string;\n\n /** The package-relative path of the gallery thumbnail, `thumbnails/<name>.png`, `.webp`, `.jpg` or `.svg`. It is design-time only and never part of a runtime bundle. */\n thumbnail: string;\n\n /** The ready-to-use screens, in navigation order. */\n screenSet: BlueprintScreen[];\n\n /** The id of the sample-data pack a gallery preview and a new application start with; one of the package's `sampleData` ids. Required when the package ships more than one. */\n defaultSampleData?: string;\n}\n\nexport const BlueprintMetadataPropertyNames: (keyof BlueprintMetadata)[] = ['domain', 'description', 'thumbnail', 'screenSet', 'defaultSampleData'];\n"],"names":["BlueprintMetadataPropertyNames"],"mappings":"AAAA;AACA;MA6BaA,8BAAAA,GAA8D;AAAC,IAAA,QAAA;AAAU,IAAA,aAAA;AAAe,IAAA,WAAA;AAAa,IAAA,WAAA;AAAa,IAAA;;;"}
@@ -0,0 +1,12 @@
1
+ import { IconReference } from '../icons';
2
+ export interface BlueprintScreen {
3
+ name: string;
4
+ title: string;
5
+ description?: string;
6
+ template?: string;
7
+ parent?: string;
8
+ order?: number;
9
+ icon?: IconReference;
10
+ }
11
+ export declare const BlueprintScreenPropertyNames: (keyof BlueprintScreen)[];
12
+ //# sourceMappingURL=BlueprintScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlueprintScreen.d.ts","sourceRoot":"","sources":["../../../packages/BlueprintScreen.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAOzC,MAAM,WAAW,eAAe;IAE5B,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;IAGd,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,IAAI,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,eAAO,MAAM,4BAA4B,EAAE,CAAC,MAAM,eAAe,CAAC,EAA4E,CAAC"}
@@ -0,0 +1,14 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ const BlueprintScreenPropertyNames = [
4
+ 'name',
5
+ 'title',
6
+ 'description',
7
+ 'template',
8
+ 'parent',
9
+ 'order',
10
+ 'icon'
11
+ ];
12
+
13
+ export { BlueprintScreenPropertyNames };
14
+ //# sourceMappingURL=BlueprintScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlueprintScreen.js","sources":["../../../packages/BlueprintScreen.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { IconReference } from '../icons';\n\n/**\n * One screen of a domain blueprint's ready-to-use screen set, with where it sits in the navigation the blueprint\n * brings. The screen itself (its layout, template and content) is a `Screen` the package provides under the same\n * name; this is the part a gallery and a navigation builder need without loading it.\n */\nexport interface BlueprintScreen {\n /** The name of the {@link Screen} the package provides. Unique within the screen set. */\n name: string;\n\n /** The title shown in the navigation and in the gallery. */\n title: string;\n\n /** One sentence saying what the screen is for. */\n description?: string;\n\n /** The name of the screen template the screen is built from, when it is built from one. */\n template?: string;\n\n /** The name of the screen this one sits under in the navigation; absent for a top-level screen. */\n parent?: string;\n\n /** Where the screen sits among its siblings; lower comes first, and screens without an order keep the order they are written in. */\n order?: number;\n\n /** The icon beside the title in the navigation. */\n icon?: IconReference;\n}\n\nexport const BlueprintScreenPropertyNames: (keyof BlueprintScreen)[] = ['name', 'title', 'description', 'template', 'parent', 'order', 'icon'];\n"],"names":["BlueprintScreenPropertyNames"],"mappings":"AAAA;AACA;MAgCaA,4BAAAA,GAA0D;AAAC,IAAA,MAAA;AAAQ,IAAA,OAAA;AAAS,IAAA,aAAA;AAAe,IAAA,UAAA;AAAY,IAAA,QAAA;AAAU,IAAA,OAAA;AAAS,IAAA;;;"}
@@ -2,6 +2,7 @@ import { PackageDesignTimeMetadata } from '../descriptors';
2
2
  import { IconLibrary } from '../icons';
3
3
  import { PackageDependency } from './PackageDependency';
4
4
  import { SampleDataPackReference } from '../sampleData';
5
+ import { BlueprintMetadata } from './BlueprintMetadata';
5
6
  import { PackageKind } from './PackageKind';
6
7
  export interface ScenePackage {
7
8
  name: string;
@@ -23,6 +24,7 @@ export interface ScenePackage {
23
24
  assets?: string[];
24
25
  runtimeSingletons?: string[];
25
26
  sampleData?: SampleDataPackReference[];
27
+ blueprint?: BlueprintMetadata;
26
28
  }
27
29
  export declare const ScenePackagePropertyNames: (keyof ScenePackage)[];
28
30
  //# sourceMappingURL=ScenePackage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScenePackage.d.ts","sourceRoot":"","sources":["../../../packages/ScenePackage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAO5C,MAAM,WAAW,YAAY;IAIzB,IAAI,EAAE,MAAM,CAAC;IAKb,OAAO,EAAE,MAAM,CAAC;IAKhB,IAAI,EAAE,WAAW,CAAC;IAKlB,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAKlC,UAAU,EAAE,MAAM,EAAE,CAAC;IAMrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAMlB,eAAe,EAAE,MAAM,EAAE,CAAC;IAK1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAK1B,MAAM,EAAE,MAAM,EAAE,CAAC;IAKjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAMrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAOhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAOjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,WAAW,CAAC,EAAE,WAAW,CAAC;IAG1B,UAAU,CAAC,EAAE,yBAAyB,CAAC;IAGvC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAGlB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAM7B,UAAU,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAC1C;AAED,eAAO,MAAM,yBAAyB,EAAE,CAAC,MAAM,YAAY,CAAC,EAoB3D,CAAC"}
1
+ {"version":3,"file":"ScenePackage.d.ts","sourceRoot":"","sources":["../../../packages/ScenePackage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAO5C,MAAM,WAAW,YAAY;IAIzB,IAAI,EAAE,MAAM,CAAC;IAKb,OAAO,EAAE,MAAM,CAAC;IAKhB,IAAI,EAAE,WAAW,CAAC;IAKlB,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAKlC,UAAU,EAAE,MAAM,EAAE,CAAC;IAMrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAMlB,eAAe,EAAE,MAAM,EAAE,CAAC;IAK1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAK1B,MAAM,EAAE,MAAM,EAAE,CAAC;IAKjB,WAAW,CAAC,EAAE,MAAM,CAAC;IAKrB,WAAW,CAAC,EAAE,MAAM,CAAC;IAMrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAOhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAOjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,WAAW,CAAC,EAAE,WAAW,CAAC;IAG1B,UAAU,CAAC,EAAE,yBAAyB,CAAC;IAGvC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAGlB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAM7B,UAAU,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAOvC,SAAS,CAAC,EAAE,iBAAiB,CAAC;CACjC;AAED,eAAO,MAAM,yBAAyB,EAAE,CAAC,MAAM,YAAY,CAAC,EAqB3D,CAAC"}
@@ -19,7 +19,8 @@ const ScenePackagePropertyNames = [
19
19
  'designTime',
20
20
  'assets',
21
21
  'runtimeSingletons',
22
- 'sampleData'
22
+ 'sampleData',
23
+ 'blueprint'
23
24
  ];
24
25
 
25
26
  export { ScenePackagePropertyNames };
@@ -1 +1 @@
1
- {"version":3,"file":"ScenePackage.js","sources":["../../../packages/ScenePackage.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { PackageDesignTimeMetadata } from '../descriptors';\nimport { IconLibrary } from '../icons';\nimport { PackageDependency } from './PackageDependency';\nimport { SampleDataPackReference } from '../sampleData';\nimport { PackageKind } from './PackageKind';\n\n/**\n * What a {@link UiProfile}'s `packages` entry actually names. A profile lists packages by name only;\n * this is the declaration behind the name - what it contributes, and what else has to be active for it\n * to work.\n */\nexport interface ScenePackage {\n /**\n * The name a {@link UiProfile} lists, and the name a {@link PackageDependency} refers to.\n */\n name: string;\n\n /**\n * The package's own version, so a {@link PackageDependency.versionRange} has something to check against.\n */\n version: string;\n\n /**\n * What the package contributes.\n */\n kind: PackageKind;\n\n /**\n * Other packages that must be active in the same profile for this one to work.\n */\n dependencies: PackageDependency[];\n\n /**\n * The component names this package declares - the catalog entry {@link UiProfile} resolution walks.\n */\n components: string[];\n\n /**\n * The names of the {@link Layout}s this package provides — an application's base navigational shells.\n * Empty for anything that is not a {@link PackageKind.Blueprint}.\n */\n layouts: string[];\n\n /**\n * The names of the {@link ScreenTemplate}s this package provides — the shapes that go inside a layout,\n * at module, feature and slice level.\n */\n screenTemplates: string[];\n\n /**\n * The names of the {@link DialogTemplate}s this package provides.\n */\n dialogTemplates: string[];\n\n /**\n * The names of the {@link Theme}s this package ships, empty for a package that ships none.\n */\n themes: string[];\n\n /**\n * A human-readable name for a package picker, falling back to `name` when absent.\n */\n displayName?: string;\n\n /**\n * A one-line description for a package picker.\n */\n description?: string;\n\n /**\n * The module that implements the package - an npm package name for a web renderer. Design-time\n * tooling needs it to know what to import; the model itself never loads anything.\n */\n module?: string;\n\n /**\n * The license the package is available under, as a short human-readable name (`MIT`,\n * `PrimeUI Community`). A package picker shows it, because \"what am I taking on by selecting this\"\n * is a question an author needs answered before they select it, not after.\n */\n license?: string;\n\n /**\n * Where the license terms actually live, so a reader can go and check rather than take `license` on\n * trust. Required in practice for anything that is not a permissive standard license — a name alone\n * tells an author nothing about eligibility or obligations.\n */\n licenseUrl?: string;\n\n /**\n * What the package declares about its icons. Present exactly for a {@link PackageKind.IconLibrary}.\n */\n iconLibrary?: IconLibrary;\n\n /** Optional design-time extensions carried as metadata; runtime hosts do not load them unless approved. */\n designTime?: PackageDesignTimeMetadata;\n\n /** Asset URLs or package-relative asset entries (CSS, fonts, images) required by a web renderer. */\n assets?: string[];\n\n /** Runtime singleton dependency names that must not be duplicated across approved bundles. */\n runtimeSingletons?: string[];\n\n /**\n * The sample-data packs this package ships (`sampleData/*.json`). Design and preview time only: a\n * Stage production build never includes or resolves them.\n */\n sampleData?: SampleDataPackReference[];\n}\n\nexport const ScenePackagePropertyNames: (keyof ScenePackage)[] = [\n 'name',\n 'version',\n 'kind',\n 'dependencies',\n 'components',\n 'layouts',\n 'screenTemplates',\n 'dialogTemplates',\n 'themes',\n 'displayName',\n 'description',\n 'module',\n 'license',\n 'licenseUrl',\n 'iconLibrary',\n 'designTime',\n 'assets',\n 'runtimeSingletons',\n 'sampleData',\n];\n"],"names":["ScenePackagePropertyNames"],"mappings":"AAAA;AACA;MAgHaA,yBAAAA,GAAoD;AAC7D,IAAA,MAAA;AACA,IAAA,SAAA;AACA,IAAA,MAAA;AACA,IAAA,cAAA;AACA,IAAA,YAAA;AACA,IAAA,SAAA;AACA,IAAA,iBAAA;AACA,IAAA,iBAAA;AACA,IAAA,QAAA;AACA,IAAA,aAAA;AACA,IAAA,aAAA;AACA,IAAA,QAAA;AACA,IAAA,SAAA;AACA,IAAA,YAAA;AACA,IAAA,aAAA;AACA,IAAA,YAAA;AACA,IAAA,QAAA;AACA,IAAA,mBAAA;AACA,IAAA;;;"}
1
+ {"version":3,"file":"ScenePackage.js","sources":["../../../packages/ScenePackage.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { PackageDesignTimeMetadata } from '../descriptors';\nimport { IconLibrary } from '../icons';\nimport { PackageDependency } from './PackageDependency';\nimport { SampleDataPackReference } from '../sampleData';\nimport { BlueprintMetadata } from './BlueprintMetadata';\nimport { PackageKind } from './PackageKind';\n\n/**\n * What a {@link UiProfile}'s `packages` entry actually names. A profile lists packages by name only;\n * this is the declaration behind the name - what it contributes, and what else has to be active for it\n * to work.\n */\nexport interface ScenePackage {\n /**\n * The name a {@link UiProfile} lists, and the name a {@link PackageDependency} refers to.\n */\n name: string;\n\n /**\n * The package's own version, so a {@link PackageDependency.versionRange} has something to check against.\n */\n version: string;\n\n /**\n * What the package contributes.\n */\n kind: PackageKind;\n\n /**\n * Other packages that must be active in the same profile for this one to work.\n */\n dependencies: PackageDependency[];\n\n /**\n * The component names this package declares - the catalog entry {@link UiProfile} resolution walks.\n */\n components: string[];\n\n /**\n * The names of the {@link Layout}s this package provides — an application's base navigational shells.\n * Empty for anything that is not a {@link PackageKind.Blueprint}.\n */\n layouts: string[];\n\n /**\n * The names of the {@link ScreenTemplate}s this package provides — the shapes that go inside a layout,\n * at module, feature and slice level.\n */\n screenTemplates: string[];\n\n /**\n * The names of the {@link DialogTemplate}s this package provides.\n */\n dialogTemplates: string[];\n\n /**\n * The names of the {@link Theme}s this package ships, empty for a package that ships none.\n */\n themes: string[];\n\n /**\n * A human-readable name for a package picker, falling back to `name` when absent.\n */\n displayName?: string;\n\n /**\n * A one-line description for a package picker.\n */\n description?: string;\n\n /**\n * The module that implements the package - an npm package name for a web renderer. Design-time\n * tooling needs it to know what to import; the model itself never loads anything.\n */\n module?: string;\n\n /**\n * The license the package is available under, as a short human-readable name (`MIT`,\n * `PrimeUI Community`). A package picker shows it, because \"what am I taking on by selecting this\"\n * is a question an author needs answered before they select it, not after.\n */\n license?: string;\n\n /**\n * Where the license terms actually live, so a reader can go and check rather than take `license` on\n * trust. Required in practice for anything that is not a permissive standard license — a name alone\n * tells an author nothing about eligibility or obligations.\n */\n licenseUrl?: string;\n\n /**\n * What the package declares about its icons. Present exactly for a {@link PackageKind.IconLibrary}.\n */\n iconLibrary?: IconLibrary;\n\n /** Optional design-time extensions carried as metadata; runtime hosts do not load them unless approved. */\n designTime?: PackageDesignTimeMetadata;\n\n /** Asset URLs or package-relative asset entries (CSS, fonts, images) required by a web renderer. */\n assets?: string[];\n\n /** Runtime singleton dependency names that must not be duplicated across approved bundles. */\n runtimeSingletons?: string[];\n\n /**\n * The sample-data packs this package ships (`sampleData/*.json`). Design and preview time only: a\n * Stage production build never includes or resolves them.\n */\n sampleData?: SampleDataPackReference[];\n\n /**\n * What a domain blueprint declares about itself: its domain, gallery description and thumbnail, and its ready-to-use\n * screen set. Present for a domain {@link PackageKind.Blueprint}; a blueprint that only provides foundation layouts\n * and templates has none.\n */\n blueprint?: BlueprintMetadata;\n}\n\nexport const ScenePackagePropertyNames: (keyof ScenePackage)[] = [\n 'name',\n 'version',\n 'kind',\n 'dependencies',\n 'components',\n 'layouts',\n 'screenTemplates',\n 'dialogTemplates',\n 'themes',\n 'displayName',\n 'description',\n 'module',\n 'license',\n 'licenseUrl',\n 'iconLibrary',\n 'designTime',\n 'assets',\n 'runtimeSingletons',\n 'sampleData',\n 'blueprint',\n];\n"],"names":["ScenePackagePropertyNames"],"mappings":"AAAA;AACA;MAwHaA,yBAAAA,GAAoD;AAC7D,IAAA,MAAA;AACA,IAAA,SAAA;AACA,IAAA,MAAA;AACA,IAAA,cAAA;AACA,IAAA,YAAA;AACA,IAAA,SAAA;AACA,IAAA,iBAAA;AACA,IAAA,iBAAA;AACA,IAAA,QAAA;AACA,IAAA,aAAA;AACA,IAAA,aAAA;AACA,IAAA,QAAA;AACA,IAAA,SAAA;AACA,IAAA,YAAA;AACA,IAAA,aAAA;AACA,IAAA,YAAA;AACA,IAAA,QAAA;AACA,IAAA,mBAAA;AACA,IAAA,YAAA;AACA,IAAA;;;"}
@@ -1,4 +1,6 @@
1
1
  export * from './PackageKind';
2
2
  export * from './PackageDependency';
3
3
  export * from './ScenePackage';
4
+ export * from './BlueprintScreen';
5
+ export * from './BlueprintMetadata';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/index.ts"],"names":[],"mappings":"AAGA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/index.ts"],"names":[],"mappings":"AAGA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export * from './PackageKind';
2
2
  export * from './PackageDependency';
3
3
  export * from './ScenePackage';
4
+ export * from './BlueprintScreen';
5
+ export * from './BlueprintMetadata';
4
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/index.ts"],"names":[],"mappings":"AAGA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/index.ts"],"names":[],"mappings":"AAGA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC"}
@@ -17,6 +17,7 @@ export interface TemplateMetadata {
17
17
  license?: string;
18
18
  licenseUrl?: string;
19
19
  sliceKinds?: SliceKind[];
20
+ thumbnail?: string;
20
21
  }
21
22
  export declare const TemplateMetadataPropertyNames: (keyof TemplateMetadata)[];
22
23
  //# sourceMappingURL=TemplateMetadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateMetadata.d.ts","sourceRoot":"","sources":["../../../screens/TemplateMetadata.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,oBAAY,aAAa;IACrB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,KAAK,UAAU;CAClB;AAMD,MAAM,WAAW,gBAAgB;IAE7B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IAEzB,aAAa,CAAC,EAAE,qBAAqB,CAAC;IAEtC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAElC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAMpB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC5B;AAED,eAAO,MAAM,6BAA6B,EAAE,CAAC,MAAM,gBAAgB,CAAC,EAEnE,CAAC"}
1
+ {"version":3,"file":"TemplateMetadata.d.ts","sourceRoot":"","sources":["../../../screens/TemplateMetadata.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,oBAAY,aAAa;IACrB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,KAAK,UAAU;CAClB;AAMD,MAAM,WAAW,gBAAgB;IAE7B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IAEzB,aAAa,CAAC,EAAE,qBAAqB,CAAC;IAEtC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAElC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAMpB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IAGzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,6BAA6B,EAAE,CAAC,MAAM,gBAAgB,CAAC,EAEnE,CAAC"}
@@ -16,7 +16,8 @@ const TemplateMetadataPropertyNames = [
16
16
  'attribution',
17
17
  'license',
18
18
  'licenseUrl',
19
- 'sliceKinds'
19
+ 'sliceKinds',
20
+ 'thumbnail'
20
21
  ];
21
22
 
22
23
  export { TemplateMetadataPropertyNames, TemplateScope };
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateMetadata.js","sources":["../../../screens/TemplateMetadata.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { TemplateAttribution } from './TemplateAttribution';\nimport { TemplateCompatibility } from './TemplateCompatibility';\nimport { SliceKind } from '../structure';\n\n/** The application hierarchy at which a reusable template is selected. */\nexport enum TemplateScope {\n Application = 'Application',\n Module = 'Module',\n Feature = 'Feature',\n Subfeature = 'Subfeature',\n Slice = 'Slice',\n}\n\n/**\n * Semantic and browsing metadata. Category is required for blueprint templates and recommended for own templates. Type and category are open strings so packages can\n * introduce their own vocabulary without a Scene release. Category never determines applicability.\n */\nexport interface TemplateMetadata {\n /** Semantic role; built-in roles are ApplicationShell, Workspace, List, Detail, Form and Dialog. */\n type?: string;\n /** A package-defined browse category, preserved even when the host does not recognize it. */\n category?: string;\n /** Explicit scope restriction. Absent uses the structural role; an empty list allows no scope. */\n scopes?: TemplateScope[];\n /** The Scene and package versions the template requires. Required for every shipped template. */\n compatibility?: TemplateCompatibility;\n /** Who authored the template. Required for every shipped template. */\n attribution?: TemplateAttribution;\n /** The SPDX license identifier the template is available under, such as `MIT`. Required for every shipped template. */\n license?: string;\n /** An absolute `https` URL to the license terms. */\n licenseUrl?: string;\n /**\n * For a template that applies at {@link TemplateScope.Slice}, the slice kinds it applies to. Absent uses the\n * structural default: a dialog template applies to state change slices, a screen template to every kind that\n * presents something. Declaring slice kinds without scopes makes the default scope Slice.\n */\n sliceKinds?: SliceKind[];\n}\n\nexport const TemplateMetadataPropertyNames: (keyof TemplateMetadata)[] = [\n 'type', 'category', 'scopes', 'compatibility', 'attribution', 'license', 'licenseUrl', 'sliceKinds',\n];\n"],"names":["TemplateScope","TemplateMetadataPropertyNames"],"mappings":"AAAA;AACA;AAMA,2EACO,IAAKA,aAAAA,iBAAAA,SAAAA,aAAAA,EAAAA;;;;;;AAAAA,IAAAA,OAAAA,aAAAA;AAMX,CAAA,CAAA,EAAA;MA6BYC,6BAAAA,GAA4D;AACrE,IAAA,MAAA;AAAQ,IAAA,UAAA;AAAY,IAAA,QAAA;AAAU,IAAA,eAAA;AAAiB,IAAA,aAAA;AAAe,IAAA,SAAA;AAAW,IAAA,YAAA;AAAc,IAAA;;;"}
1
+ {"version":3,"file":"TemplateMetadata.js","sources":["../../../screens/TemplateMetadata.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { TemplateAttribution } from './TemplateAttribution';\nimport { TemplateCompatibility } from './TemplateCompatibility';\nimport { SliceKind } from '../structure';\n\n/** The application hierarchy at which a reusable template is selected. */\nexport enum TemplateScope {\n Application = 'Application',\n Module = 'Module',\n Feature = 'Feature',\n Subfeature = 'Subfeature',\n Slice = 'Slice',\n}\n\n/**\n * Semantic and browsing metadata. Category is required for blueprint templates and recommended for own templates. Type and category are open strings so packages can\n * introduce their own vocabulary without a Scene release. Category never determines applicability.\n */\nexport interface TemplateMetadata {\n /** Semantic role; built-in roles are ApplicationShell, Workspace, List, Detail, Form and Dialog. */\n type?: string;\n /** A package-defined browse category, preserved even when the host does not recognize it. */\n category?: string;\n /** Explicit scope restriction. Absent uses the structural role; an empty list allows no scope. */\n scopes?: TemplateScope[];\n /** The Scene and package versions the template requires. Required for every shipped template. */\n compatibility?: TemplateCompatibility;\n /** Who authored the template. Required for every shipped template. */\n attribution?: TemplateAttribution;\n /** The SPDX license identifier the template is available under, such as `MIT`. Required for every shipped template. */\n license?: string;\n /** An absolute `https` URL to the license terms. */\n licenseUrl?: string;\n /**\n * For a template that applies at {@link TemplateScope.Slice}, the slice kinds it applies to. Absent uses the\n * structural default: a dialog template applies to state change slices, a screen template to every kind that\n * presents something. Declaring slice kinds without scopes makes the default scope Slice.\n */\n sliceKinds?: SliceKind[];\n\n /** The package-relative path of the template's gallery thumbnail (`thumbnails/<name>.png|webp|jpg|svg`); required of every template of a domain blueprint. */\n thumbnail?: string;\n}\n\nexport const TemplateMetadataPropertyNames: (keyof TemplateMetadata)[] = [\n 'type', 'category', 'scopes', 'compatibility', 'attribution', 'license', 'licenseUrl', 'sliceKinds', 'thumbnail',\n];\n"],"names":["TemplateScope","TemplateMetadataPropertyNames"],"mappings":"AAAA;AACA;AAMA,2EACO,IAAKA,aAAAA,iBAAAA,SAAAA,aAAAA,EAAAA;;;;;;AAAAA,IAAAA,OAAAA,aAAAA;AAMX,CAAA,CAAA,EAAA;MAgCYC,6BAAAA,GAA4D;AACrE,IAAA,MAAA;AAAQ,IAAA,UAAA;AAAY,IAAA,QAAA;AAAU,IAAA,eAAA;AAAiB,IAAA,aAAA;AAAe,IAAA,SAAA;AAAW,IAAA,YAAA;AAAc,IAAA,YAAA;AAAc,IAAA;;;"}