@cratis/scene.model 2.0.0 → 3.1.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 (106) hide show
  1. package/README.md +29 -2
  2. package/common/Dock.ts +12 -0
  3. package/common/GridLength.ts +15 -0
  4. package/common/GridUnitType.ts +11 -0
  5. package/common/Orientation.ts +10 -0
  6. package/common/index.ts +4 -0
  7. package/dist/cjs/common/Dock.js +16 -0
  8. package/dist/cjs/common/Dock.js.map +1 -0
  9. package/dist/cjs/common/GridLength.js +11 -0
  10. package/dist/cjs/common/GridLength.js.map +1 -0
  11. package/dist/cjs/common/GridUnitType.js +15 -0
  12. package/dist/cjs/common/GridUnitType.js.map +1 -0
  13. package/dist/cjs/common/Orientation.js +14 -0
  14. package/dist/cjs/common/Orientation.js.map +1 -0
  15. package/dist/cjs/elements/panels/ColumnDefinition.js +12 -0
  16. package/dist/cjs/elements/panels/ColumnDefinition.js.map +1 -0
  17. package/dist/cjs/elements/panels/DockPanel.js +10 -0
  18. package/dist/cjs/elements/panels/DockPanel.js.map +1 -0
  19. package/dist/cjs/elements/panels/Grid.js +11 -0
  20. package/dist/cjs/elements/panels/Grid.js.map +1 -0
  21. package/dist/cjs/elements/panels/RowDefinition.js +12 -0
  22. package/dist/cjs/elements/panels/RowDefinition.js.map +1 -0
  23. package/dist/cjs/elements/panels/StackPanel.js +11 -0
  24. package/dist/cjs/elements/panels/StackPanel.js.map +1 -0
  25. package/dist/cjs/elements/panels/WrapPanel.js +12 -0
  26. package/dist/cjs/elements/panels/WrapPanel.js.map +1 -0
  27. package/dist/cjs/index.js +20 -0
  28. package/dist/cjs/index.js.map +1 -1
  29. package/dist/cjs/packages/ScenePackage.js +3 -1
  30. package/dist/cjs/packages/ScenePackage.js.map +1 -1
  31. package/dist/cjs/profiles/Theme.js +2 -1
  32. package/dist/cjs/profiles/Theme.js.map +1 -1
  33. package/dist/esm/common/Dock.d.ts +7 -0
  34. package/dist/esm/common/Dock.d.ts.map +1 -0
  35. package/dist/esm/common/Dock.js +14 -0
  36. package/dist/esm/common/Dock.js.map +1 -0
  37. package/dist/esm/common/GridLength.d.ts +7 -0
  38. package/dist/esm/common/GridLength.d.ts.map +1 -0
  39. package/dist/esm/common/GridLength.js +9 -0
  40. package/dist/esm/common/GridLength.js.map +1 -0
  41. package/dist/esm/common/GridUnitType.d.ts +6 -0
  42. package/dist/esm/common/GridUnitType.d.ts.map +1 -0
  43. package/dist/esm/common/GridUnitType.js +13 -0
  44. package/dist/esm/common/GridUnitType.js.map +1 -0
  45. package/dist/esm/common/Orientation.d.ts +5 -0
  46. package/dist/esm/common/Orientation.d.ts.map +1 -0
  47. package/dist/esm/common/Orientation.js +12 -0
  48. package/dist/esm/common/Orientation.js.map +1 -0
  49. package/dist/esm/common/index.d.ts +4 -0
  50. package/dist/esm/common/index.d.ts.map +1 -1
  51. package/dist/esm/common/index.js +4 -0
  52. package/dist/esm/common/index.js.map +1 -1
  53. package/dist/esm/elements/index.d.ts +1 -0
  54. package/dist/esm/elements/index.d.ts.map +1 -1
  55. package/dist/esm/elements/index.js +1 -0
  56. package/dist/esm/elements/index.js.map +1 -1
  57. package/dist/esm/elements/panels/ColumnDefinition.d.ts +8 -0
  58. package/dist/esm/elements/panels/ColumnDefinition.d.ts.map +1 -0
  59. package/dist/esm/elements/panels/ColumnDefinition.js +10 -0
  60. package/dist/esm/elements/panels/ColumnDefinition.js.map +1 -0
  61. package/dist/esm/elements/panels/DockPanel.d.ts +6 -0
  62. package/dist/esm/elements/panels/DockPanel.d.ts.map +1 -0
  63. package/dist/esm/elements/panels/DockPanel.js +8 -0
  64. package/dist/esm/elements/panels/DockPanel.js.map +1 -0
  65. package/dist/esm/elements/panels/Grid.d.ts +9 -0
  66. package/dist/esm/elements/panels/Grid.d.ts.map +1 -0
  67. package/dist/esm/elements/panels/Grid.js +9 -0
  68. package/dist/esm/elements/panels/Grid.js.map +1 -0
  69. package/dist/esm/elements/panels/RowDefinition.d.ts +8 -0
  70. package/dist/esm/elements/panels/RowDefinition.d.ts.map +1 -0
  71. package/dist/esm/elements/panels/RowDefinition.js +10 -0
  72. package/dist/esm/elements/panels/RowDefinition.js.map +1 -0
  73. package/dist/esm/elements/panels/StackPanel.d.ts +8 -0
  74. package/dist/esm/elements/panels/StackPanel.d.ts.map +1 -0
  75. package/dist/esm/elements/panels/StackPanel.js +9 -0
  76. package/dist/esm/elements/panels/StackPanel.js.map +1 -0
  77. package/dist/esm/elements/panels/WrapPanel.d.ts +9 -0
  78. package/dist/esm/elements/panels/WrapPanel.d.ts.map +1 -0
  79. package/dist/esm/elements/panels/WrapPanel.js +10 -0
  80. package/dist/esm/elements/panels/WrapPanel.js.map +1 -0
  81. package/dist/esm/elements/panels/index.d.ts +7 -0
  82. package/dist/esm/elements/panels/index.d.ts.map +1 -0
  83. package/dist/esm/elements/panels/index.js +7 -0
  84. package/dist/esm/elements/panels/index.js.map +1 -0
  85. package/dist/esm/index.js +10 -0
  86. package/dist/esm/index.js.map +1 -1
  87. package/dist/esm/packages/ScenePackage.d.ts +2 -0
  88. package/dist/esm/packages/ScenePackage.d.ts.map +1 -1
  89. package/dist/esm/packages/ScenePackage.js +3 -1
  90. package/dist/esm/packages/ScenePackage.js.map +1 -1
  91. package/dist/esm/profiles/Theme.d.ts +1 -0
  92. package/dist/esm/profiles/Theme.d.ts.map +1 -1
  93. package/dist/esm/profiles/Theme.js +2 -1
  94. package/dist/esm/profiles/Theme.js.map +1 -1
  95. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  96. package/elements/index.ts +1 -0
  97. package/elements/panels/ColumnDefinition.ts +15 -0
  98. package/elements/panels/DockPanel.ts +14 -0
  99. package/elements/panels/Grid.ts +17 -0
  100. package/elements/panels/RowDefinition.ts +15 -0
  101. package/elements/panels/StackPanel.ts +15 -0
  102. package/elements/panels/WrapPanel.ts +16 -0
  103. package/elements/panels/index.ts +9 -0
  104. package/package.json +11 -1
  105. package/packages/ScenePackage.ts +16 -0
  106. package/profiles/Theme.ts +6 -0
package/elements/index.ts CHANGED
@@ -9,3 +9,4 @@ export * from './Panel';
9
9
  export * from './ItemsControl';
10
10
  export * from './ContentControl';
11
11
  export * from './ExternalComponent';
12
+ export * from './panels';
@@ -0,0 +1,15 @@
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
+
4
+ import { GridLength } from '../../common';
5
+
6
+ /**
7
+ * One column of a {@link Grid}.
8
+ */
9
+ export interface ColumnDefinition {
10
+ width: GridLength;
11
+ minimumWidth: number;
12
+ maximumWidth: number;
13
+ }
14
+
15
+ export const ColumnDefinitionPropertyNames: (keyof ColumnDefinition)[] = ['width', 'minimumWidth', 'maximumWidth'];
@@ -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
+
4
+ import { Panel } from '../Panel';
5
+
6
+ /**
7
+ * Lays its children out against its edges, each child stating which edge through the `Dock` key
8
+ * of its `properties`.
9
+ */
10
+ export interface DockPanel extends Panel {
11
+ lastChildFill: boolean;
12
+ }
13
+
14
+ export const DockPanelPropertyNames: (keyof DockPanel)[] = ['lastChildFill'];
@@ -0,0 +1,17 @@
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
+
4
+ import { Panel } from '../Panel';
5
+ import { RowDefinition } from './RowDefinition';
6
+ import { ColumnDefinition } from './ColumnDefinition';
7
+
8
+ /**
9
+ * Lays its children out in rows and columns. A child states which cell it occupies through the
10
+ * `Grid.Row`, `Grid.Column`, `Grid.RowSpan` and `Grid.ColumnSpan` keys of its `properties`.
11
+ */
12
+ export interface Grid extends Panel {
13
+ rows: RowDefinition[];
14
+ columns: ColumnDefinition[];
15
+ }
16
+
17
+ export const GridPropertyNames: (keyof Grid)[] = ['rows', 'columns'];
@@ -0,0 +1,15 @@
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
+
4
+ import { GridLength } from '../../common';
5
+
6
+ /**
7
+ * One row of a {@link Grid}.
8
+ */
9
+ export interface RowDefinition {
10
+ height: GridLength;
11
+ minimumHeight: number;
12
+ maximumHeight: number;
13
+ }
14
+
15
+ export const RowDefinitionPropertyNames: (keyof RowDefinition)[] = ['height', 'minimumHeight', 'maximumHeight'];
@@ -0,0 +1,15 @@
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
+
4
+ import { Panel } from '../Panel';
5
+ import { Orientation } from '../../common';
6
+
7
+ /**
8
+ * Lays its children out in a single line.
9
+ */
10
+ export interface StackPanel extends Panel {
11
+ orientation: Orientation;
12
+ spacing: number;
13
+ }
14
+
15
+ export const StackPanelPropertyNames: (keyof StackPanel)[] = ['orientation', 'spacing'];
@@ -0,0 +1,16 @@
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
+
4
+ import { Panel } from '../Panel';
5
+ import { Orientation } from '../../common';
6
+
7
+ /**
8
+ * Lays its children out in a line and starts a new one whenever the current line runs out of room.
9
+ */
10
+ export interface WrapPanel extends Panel {
11
+ orientation: Orientation;
12
+ itemWidth?: number;
13
+ itemHeight?: number;
14
+ }
15
+
16
+ export const WrapPanelPropertyNames: (keyof WrapPanel)[] = ['orientation', 'itemWidth', 'itemHeight'];
@@ -0,0 +1,9 @@
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
+
4
+ export * from './StackPanel';
5
+ export * from './DockPanel';
6
+ export * from './WrapPanel';
7
+ export * from './RowDefinition';
8
+ export * from './ColumnDefinition';
9
+ export * from './Grid';
package/package.json CHANGED
@@ -1,7 +1,17 @@
1
1
  {
2
2
  "name": "@cratis/scene.model",
3
- "version": "2.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "The TypeScript mirror of Cratis.Scene.Model — the platform-agnostic Screen object model.",
5
+ "keywords": [
6
+ "cratis",
7
+ "scene",
8
+ "ui",
9
+ "ui-model",
10
+ "event-modeling",
11
+ "event-sourcing",
12
+ "cqrs",
13
+ "low-code"
14
+ ],
5
15
  "author": "Cratis",
6
16
  "license": "MIT",
7
17
  "repository": {
@@ -72,6 +72,20 @@ export interface ScenePackage {
72
72
  * tooling needs it to know what to import; the model itself never loads anything.
73
73
  */
74
74
  module?: string;
75
+
76
+ /**
77
+ * The license the package is available under, as a short human-readable name (`MIT`,
78
+ * `PrimeUI Community`). A package picker shows it, because "what am I taking on by selecting this"
79
+ * is a question an author needs answered before they select it, not after.
80
+ */
81
+ license?: string;
82
+
83
+ /**
84
+ * Where the license terms actually live, so a reader can go and check rather than take `license` on
85
+ * trust. Required in practice for anything that is not a permissive standard license — a name alone
86
+ * tells an author nothing about eligibility or obligations.
87
+ */
88
+ licenseUrl?: string;
75
89
  }
76
90
 
77
91
  export const ScenePackagePropertyNames: (keyof ScenePackage)[] = [
@@ -87,4 +101,6 @@ export const ScenePackagePropertyNames: (keyof ScenePackage)[] = [
87
101
  'displayName',
88
102
  'description',
89
103
  'module',
104
+ 'license',
105
+ 'licenseUrl',
90
106
  ];
package/profiles/Theme.ts CHANGED
@@ -50,6 +50,11 @@ export interface Theme {
50
50
  * A one-line description for a theme picker.
51
51
  */
52
52
  description?: string;
53
+
54
+ /**
55
+ * Where those license terms live, so a reader can check them rather than take `license` on trust.
56
+ */
57
+ licenseUrl?: string;
53
58
  }
54
59
 
55
60
  export const ThemePropertyNames: (keyof Theme)[] = [
@@ -61,4 +66,5 @@ export const ThemePropertyNames: (keyof Theme)[] = [
61
66
  'authorUrl',
62
67
  'license',
63
68
  'description',
69
+ 'licenseUrl',
64
70
  ];