@cratis/scene.react 4.2.0 → 4.3.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 (111) hide show
  1. package/SceneElementView.tsx +13 -4
  2. package/core/CoreNavigationBar.tsx +53 -0
  3. package/core/coreComponents.ts +2 -0
  4. package/core/coreDescriptors.ts +75 -0
  5. package/core/corePackage.ts +3 -0
  6. package/core/index.ts +2 -0
  7. package/dist/cjs/SceneElementView.js +6 -2
  8. package/dist/cjs/SceneElementView.js.map +1 -1
  9. package/dist/cjs/core/CoreNavigationBar.js +49 -0
  10. package/dist/cjs/core/CoreNavigationBar.js.map +1 -0
  11. package/dist/cjs/core/coreComponents.js +3 -1
  12. package/dist/cjs/core/coreComponents.js.map +1 -1
  13. package/dist/cjs/core/coreDescriptors.js +162 -0
  14. package/dist/cjs/core/coreDescriptors.js.map +1 -0
  15. package/dist/cjs/core/corePackage.js +5 -2
  16. package/dist/cjs/core/corePackage.js.map +1 -1
  17. package/dist/cjs/index.js +4 -0
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/packages/ScenePackageBundle.js +33 -1
  20. package/dist/cjs/packages/ScenePackageBundle.js.map +1 -1
  21. package/dist/esm/SceneElementView.d.ts +3 -2
  22. package/dist/esm/SceneElementView.d.ts.map +1 -1
  23. package/dist/esm/SceneElementView.js +7 -3
  24. package/dist/esm/SceneElementView.js.map +1 -1
  25. package/dist/esm/core/CoreNavigationBar.d.ts +3 -0
  26. package/dist/esm/core/CoreNavigationBar.d.ts.map +1 -0
  27. package/dist/esm/core/CoreNavigationBar.js +47 -0
  28. package/dist/esm/core/CoreNavigationBar.js.map +1 -0
  29. package/dist/esm/core/coreComponents.d.ts.map +1 -1
  30. package/dist/esm/core/coreComponents.js +3 -1
  31. package/dist/esm/core/coreComponents.js.map +1 -1
  32. package/dist/esm/core/coreDescriptors.d.ts +3 -0
  33. package/dist/esm/core/coreDescriptors.d.ts.map +1 -0
  34. package/dist/esm/core/coreDescriptors.js +160 -0
  35. package/dist/esm/core/coreDescriptors.js.map +1 -0
  36. package/dist/esm/core/corePackage.d.ts.map +1 -1
  37. package/dist/esm/core/corePackage.js +5 -2
  38. package/dist/esm/core/corePackage.js.map +1 -1
  39. package/dist/esm/core/index.d.ts +2 -0
  40. package/dist/esm/core/index.d.ts.map +1 -1
  41. package/dist/esm/core/index.js +2 -0
  42. package/dist/esm/core/index.js.map +1 -1
  43. package/dist/esm/index.js +2 -0
  44. package/dist/esm/index.js.map +1 -1
  45. package/dist/esm/packages/ScenePackageBundle.d.ts +2 -1
  46. package/dist/esm/packages/ScenePackageBundle.d.ts.map +1 -1
  47. package/dist/esm/packages/ScenePackageBundle.js +33 -1
  48. package/dist/esm/packages/ScenePackageBundle.js.map +1 -1
  49. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +11 -10
  51. package/packages/ScenePackageBundle.ts +49 -2
  52. package/NavBar/for_NavBar/when_rendering_navigation_contributions.tsx +0 -62
  53. package/NavBar/for_extractNavigationItem/when_extracting_from_a_navigation_contribution.ts +0 -53
  54. package/dist/esm/NavBar/for_NavBar/when_rendering_navigation_contributions.d.ts +0 -2
  55. package/dist/esm/NavBar/for_NavBar/when_rendering_navigation_contributions.d.ts.map +0 -1
  56. package/dist/esm/NavBar/for_NavBar/when_rendering_navigation_contributions.js +0 -53
  57. package/dist/esm/NavBar/for_NavBar/when_rendering_navigation_contributions.js.map +0 -1
  58. package/dist/esm/NavBar/for_extractNavigationItem/when_extracting_from_a_navigation_contribution.d.ts +0 -2
  59. package/dist/esm/NavBar/for_extractNavigationItem/when_extracting_from_a_navigation_contribution.d.ts.map +0 -1
  60. package/dist/esm/NavBar/for_extractNavigationItem/when_extracting_from_a_navigation_contribution.js +0 -45
  61. package/dist/esm/NavBar/for_extractNavigationItem/when_extracting_from_a_navigation_contribution.js.map +0 -1
  62. package/dist/esm/for_SceneElementView/when_rendering_a_tree.d.ts +0 -2
  63. package/dist/esm/for_SceneElementView/when_rendering_a_tree.d.ts.map +0 -1
  64. package/dist/esm/for_SceneElementView/when_rendering_a_tree.js +0 -44
  65. package/dist/esm/for_SceneElementView/when_rendering_a_tree.js.map +0 -1
  66. package/dist/esm/for_ScreenplayCoreComponents/when_rendering_a_translated_screen.d.ts +0 -2
  67. package/dist/esm/for_ScreenplayCoreComponents/when_rendering_a_translated_screen.d.ts.map +0 -1
  68. package/dist/esm/for_ScreenplayCoreComponents/when_rendering_a_translated_screen.js +0 -46
  69. package/dist/esm/for_ScreenplayCoreComponents/when_rendering_a_translated_screen.js.map +0 -1
  70. package/dist/esm/for_applyThemeTokens/when_switching_themes.d.ts +0 -2
  71. package/dist/esm/for_applyThemeTokens/when_switching_themes.d.ts.map +0 -1
  72. package/dist/esm/for_applyThemeTokens/when_switching_themes.js +0 -59
  73. package/dist/esm/for_applyThemeTokens/when_switching_themes.js.map +0 -1
  74. package/dist/esm/for_panelLayout/when_arranging_a_panel.d.ts +0 -2
  75. package/dist/esm/for_panelLayout/when_arranging_a_panel.d.ts.map +0 -1
  76. package/dist/esm/for_panelLayout/when_arranging_a_panel.js +0 -110
  77. package/dist/esm/for_panelLayout/when_arranging_a_panel.js.map +0 -1
  78. package/dist/esm/for_themeTokens/when_converting_a_token_name.d.ts +0 -2
  79. package/dist/esm/for_themeTokens/when_converting_a_token_name.d.ts.map +0 -1
  80. package/dist/esm/for_themeTokens/when_converting_a_token_name.js +0 -16
  81. package/dist/esm/for_themeTokens/when_converting_a_token_name.js.map +0 -1
  82. package/dist/esm/for_useInteractionHosts/when_a_document_asks_the_user_something.d.ts +0 -2
  83. package/dist/esm/for_useInteractionHosts/when_a_document_asks_the_user_something.d.ts.map +0 -1
  84. package/dist/esm/for_useInteractionHosts/when_a_document_asks_the_user_something.js +0 -73
  85. package/dist/esm/for_useInteractionHosts/when_a_document_asks_the_user_something.js.map +0 -1
  86. package/dist/esm/for_useInteractionHosts/when_the_host_cannot_do_what_was_asked.d.ts +0 -2
  87. package/dist/esm/for_useInteractionHosts/when_the_host_cannot_do_what_was_asked.d.ts.map +0 -1
  88. package/dist/esm/for_useInteractionHosts/when_the_host_cannot_do_what_was_asked.js +0 -43
  89. package/dist/esm/for_useInteractionHosts/when_the_host_cannot_do_what_was_asked.js.map +0 -1
  90. package/dist/esm/for_useInteractions/when_clicking_an_element_that_executes_a_command.d.ts +0 -2
  91. package/dist/esm/for_useInteractions/when_clicking_an_element_that_executes_a_command.d.ts.map +0 -1
  92. package/dist/esm/for_useInteractions/when_clicking_an_element_that_executes_a_command.js +0 -94
  93. package/dist/esm/for_useInteractions/when_clicking_an_element_that_executes_a_command.js.map +0 -1
  94. package/dist/esm/for_validatePackageBundle/when_the_bundle_and_manifest_disagree.d.ts +0 -2
  95. package/dist/esm/for_validatePackageBundle/when_the_bundle_and_manifest_disagree.d.ts.map +0 -1
  96. package/dist/esm/for_validatePackageBundle/when_the_bundle_and_manifest_disagree.js +0 -59
  97. package/dist/esm/for_validatePackageBundle/when_the_bundle_and_manifest_disagree.js.map +0 -1
  98. package/dist/esm/for_validatePackageBundle/when_the_bundle_matches_its_manifest.d.ts +0 -2
  99. package/dist/esm/for_validatePackageBundle/when_the_bundle_matches_its_manifest.d.ts.map +0 -1
  100. package/dist/esm/for_validatePackageBundle/when_the_bundle_matches_its_manifest.js +0 -8
  101. package/dist/esm/for_validatePackageBundle/when_the_bundle_matches_its_manifest.js.map +0 -1
  102. package/for_SceneElementView/when_rendering_a_tree.tsx +0 -53
  103. package/for_ScreenplayCoreComponents/when_rendering_a_translated_screen.tsx +0 -60
  104. package/for_applyThemeTokens/when_switching_themes.ts +0 -74
  105. package/for_panelLayout/when_arranging_a_panel.ts +0 -135
  106. package/for_themeTokens/when_converting_a_token_name.ts +0 -22
  107. package/for_useInteractionHosts/when_a_document_asks_the_user_something.tsx +0 -106
  108. package/for_useInteractionHosts/when_the_host_cannot_do_what_was_asked.tsx +0 -66
  109. package/for_useInteractions/when_clicking_an_element_that_executes_a_command.tsx +0 -141
  110. package/for_validatePackageBundle/when_the_bundle_and_manifest_disagree.ts +0 -72
  111. package/for_validatePackageBundle/when_the_bundle_matches_its_manifest.ts +0 -12
@@ -1,110 +0,0 @@
1
- import { Dock, GridUnitType, HorizontalAlignment, Orientation, VerticalAlignment, Visibility } from '@cratis/scene.model';
2
- import { childStyle, panelStyle } from '../renderer/panelLayout';
3
- const base = {
4
- id: 'panel',
5
- properties: {},
6
- visibility: Visibility.Visible,
7
- isEnabled: true,
8
- opacity: 1,
9
- zIndex: 0,
10
- size: {},
11
- name: 'panel',
12
- minimumSize: {},
13
- maximumSize: {},
14
- margin: { left: 0, top: 0, right: 0, bottom: 0 },
15
- horizontalAlignment: HorizontalAlignment.Stretch,
16
- verticalAlignment: VerticalAlignment.Stretch,
17
- children: [],
18
- };
19
- const child = (properties = {}) => ({ id: 'child', properties });
20
- const star = (value) => ({ value, unitType: GridUnitType.Star });
21
- const row = (over = {}) => ({ height: star(1), minimumHeight: 0, maximumHeight: Number.POSITIVE_INFINITY, ...over });
22
- const column = (over = {}) => ({ width: star(1), minimumWidth: 0, maximumWidth: Number.POSITIVE_INFINITY, ...over });
23
- describe('when arranging a panel', () => {
24
- it('should make a canvas the coordinate space its children are placed against', () => {
25
- const panel = { ...base, extent: {} };
26
- panelStyle(panel).position.should.equal('relative');
27
- });
28
- it('should size a canvas to its extent', () => {
29
- const panel = { ...base, extent: { width: 1280, height: 800 } };
30
- const style = panelStyle(panel);
31
- [style.width, style.height].should.have.members([1280, 800]);
32
- });
33
- it('should place a canvas child at the edges it names', () => {
34
- const panel = { ...base, extent: {} };
35
- const style = childStyle(panel, child({ 'Canvas.Left': 40, 'Canvas.Top': 24 }), 0);
36
- style.position.should.equal('absolute');
37
- [style.left, style.top].should.have.members([40, 24]);
38
- });
39
- it('should leave a canvas child that names no edge in flow', () => {
40
- const panel = { ...base, extent: {} };
41
- (childStyle(panel, child(), 0) === undefined).should.be.true;
42
- });
43
- it('should lay a stack panel out along its orientation', () => {
44
- const panel = { ...base, orientation: Orientation.Horizontal, spacing: 8 };
45
- panelStyle(panel).flexDirection.should.equal('row');
46
- });
47
- it('should space a stack panel by its spacing', () => {
48
- const panel = { ...base, orientation: Orientation.Vertical, spacing: 12 };
49
- panelStyle(panel).gap.should.equal('12px');
50
- });
51
- it('should wrap a wrap panel', () => {
52
- const panel = { ...base, orientation: Orientation.Horizontal };
53
- panelStyle(panel).flexWrap.should.equal('wrap');
54
- });
55
- it('should turn star tracks into fractions', () => {
56
- const panel = { ...base, rows: [row(), row({ height: star(2) })], columns: [] };
57
- panelStyle(panel).gridTemplateRows.should.equal('1fr 2fr');
58
- });
59
- it('should turn an absolute track into pixels', () => {
60
- const panel = { ...base, rows: [], columns: [column({ width: { value: 240, unitType: GridUnitType.Absolute } })] };
61
- panelStyle(panel).gridTemplateColumns.should.equal('240px');
62
- });
63
- it('should turn a content-sized track into auto', () => {
64
- const panel = { ...base, rows: [], columns: [column({ width: { value: 0, unitType: GridUnitType.Auto } })] };
65
- panelStyle(panel).gridTemplateColumns.should.equal('auto');
66
- });
67
- it('should bound a track that states a minimum', () => {
68
- const panel = { ...base, rows: [row({ minimumHeight: 40 })], columns: [] };
69
- panelStyle(panel).gridTemplateRows.should.equal('minmax(40px, 1fr)');
70
- });
71
- it('should leave a plain panel unstyled', () => (panelStyle({ ...base }) === undefined).should.be.true);
72
- });
73
- describe('when placing a child in a panel', () => {
74
- it('should place a grid child in the cell it names, one-based for CSS', () => {
75
- const panel = { ...base, rows: [row()], columns: [column()] };
76
- childStyle(panel, child({ 'Grid.Row': 1, 'Grid.Column': 2 }), 0).gridRow.should.equal('2 / span 1');
77
- });
78
- it('should span a grid child that asks for it', () => {
79
- const panel = { ...base, rows: [row()], columns: [column()] };
80
- childStyle(panel, child({ 'Grid.Column': 0, 'Grid.ColumnSpan': 3 }), 0).gridColumn.should.equal('1 / span 3');
81
- });
82
- it('should leave a grid child that names no cell to the implicit flow', () => {
83
- const panel = { ...base, rows: [row()], columns: [column()] };
84
- (childStyle(panel, child(), 0) === undefined).should.be.true;
85
- });
86
- it('should let a dock panel last child fill what is left', () => {
87
- const kid = child();
88
- const panel = { ...base, lastChildFill: true, children: [kid] };
89
- childStyle(panel, kid, 0).flex.should.equal('1 1 auto');
90
- });
91
- it('should keep a docked child at its natural size', () => {
92
- const first = child({ Dock: Dock.Top });
93
- const panel = { ...base, lastChildFill: true, children: [first, child()] };
94
- childStyle(panel, first, 0).flex.should.equal('0 0 auto');
95
- });
96
- it('should not let the last child fill when the panel says not to', () => {
97
- const kid = child();
98
- const panel = { ...base, lastChildFill: false, children: [kid] };
99
- childStyle(panel, kid, 0).flex.should.equal('0 0 auto');
100
- });
101
- it('should size wrap panel children when the panel sizes them', () => {
102
- const panel = { ...base, orientation: Orientation.Horizontal, itemWidth: 120 };
103
- childStyle(panel, child(), 0).width.should.equal(120);
104
- });
105
- it('should leave wrap panel children their own size when the panel sizes neither axis', () => {
106
- const panel = { ...base, orientation: Orientation.Horizontal };
107
- (childStyle(panel, child(), 0) === undefined).should.be.true;
108
- });
109
- });
110
- //# sourceMappingURL=when_arranging_a_panel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_arranging_a_panel.js","sourceRoot":"","sources":["../../../for_panelLayout/when_arranging_a_panel.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=when_converting_a_token_name.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_converting_a_token_name.d.ts","sourceRoot":"","sources":["../../../for_themeTokens/when_converting_a_token_name.ts"],"names":[],"mappings":""}
@@ -1,16 +0,0 @@
1
- import { themeTokenProperty } from '../index';
2
- describe('when converting a token name', () => {
3
- it('should prefix a single-segment name', () => {
4
- themeTokenProperty('primary').should.equal('--scene-primary');
5
- });
6
- it('should join dotted segments with dashes', () => {
7
- themeTokenProperty('primary.color').should.equal('--scene-primary-color');
8
- });
9
- it('should split camelCase within a segment', () => {
10
- themeTokenProperty('surface.borderColor').should.equal('--scene-surface-border-color');
11
- });
12
- it('should handle a segment with a digit boundary', () => {
13
- themeTokenProperty('surface.level2Background').should.equal('--scene-surface-level2-background');
14
- });
15
- });
16
- //# sourceMappingURL=when_converting_a_token_name.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_converting_a_token_name.js","sourceRoot":"","sources":["../../../for_themeTokens/when_converting_a_token_name.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9C,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC3C,kBAAkB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,kBAAkB,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACrD,kBAAkB,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACrG,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=when_a_document_asks_the_user_something.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_a_document_asks_the_user_something.d.ts","sourceRoot":"","sources":["../../../for_useInteractionHosts/when_a_document_asks_the_user_something.tsx"],"names":[],"mappings":""}
@@ -1,73 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { render, screen, within } from '@testing-library/react';
3
- import userEvent from '@testing-library/user-event';
4
- import { useMemo } from 'react';
5
- import { InteractionActionKind, InteractionTriggerKind, NotificationLevel } from '@cratis/scene.model';
6
- import { InteractionScope, createBrowserDispatcher, useInteractionHosts, useInteractions } from '../interactions';
7
- const executed = [];
8
- const confirmThenExecute = {
9
- name: 'CancelInvoice',
10
- bindings: [
11
- {
12
- trigger: { kind: InteractionTriggerKind.Click },
13
- actions: [
14
- { kind: InteractionActionKind.Confirm, message: { text: 'Cancel this invoice?' } },
15
- { kind: InteractionActionKind.ExecuteCommand, command: 'CancelInvoice' },
16
- { kind: InteractionActionKind.Notify, level: NotificationLevel.Info, message: { text: 'Invoice cancelled' } },
17
- ],
18
- },
19
- ],
20
- };
21
- function Button({ behaviors }) {
22
- const handlers = useInteractions('element', behaviors);
23
- return _jsx("button", { type: "button", ...handlers, children: "Cancel" });
24
- }
25
- function Application({ behaviors }) {
26
- const { host, surfaces } = useInteractionHosts();
27
- const dispatcher = useMemo(() => createBrowserDispatcher({
28
- ...host,
29
- executeCommand: async (command) => {
30
- executed.push(command);
31
- return { isSuccess: true };
32
- },
33
- }), [host]);
34
- return (_jsxs(InteractionScope, { dispatcher: dispatcher, attachments: [], children: [_jsx(Button, { behaviors: behaviors }), surfaces] }));
35
- }
36
- describe('when a document asks the user something', () => {
37
- beforeEach(() => { executed.length = 0; });
38
- it('should ask in the page rather than in a browser prompt', async () => {
39
- render(_jsx(Application, { behaviors: [confirmThenExecute] }));
40
- await userEvent.click(screen.getByRole('button', { name: 'Cancel' }));
41
- screen.getByRole('alertdialog').getAttribute('aria-label').should.equal('Cancel this invoice?');
42
- });
43
- it('should not run what follows until the question is answered', async () => {
44
- render(_jsx(Application, { behaviors: [confirmThenExecute] }));
45
- await userEvent.click(screen.getByRole('button', { name: 'Cancel' }));
46
- executed.should.have.lengthOf(0);
47
- });
48
- it('should run what follows when the answer is yes', async () => {
49
- render(_jsx(Application, { behaviors: [confirmThenExecute] }));
50
- await userEvent.click(screen.getByRole('button', { name: 'Cancel' }));
51
- await userEvent.click(screen.getByRole('button', { name: 'OK' }));
52
- executed.should.eql(['CancelInvoice']);
53
- });
54
- it('should abandon the sequence when the answer is no', async () => {
55
- render(_jsx(Application, { behaviors: [confirmThenExecute] }));
56
- await userEvent.click(screen.getByRole('button', { name: 'Cancel' }));
57
- await userEvent.click(within(screen.getByRole('alertdialog')).getByRole('button', { name: 'Cancel' }));
58
- executed.should.have.lengthOf(0);
59
- });
60
- it('should take the question down once it is answered', async () => {
61
- render(_jsx(Application, { behaviors: [confirmThenExecute] }));
62
- await userEvent.click(screen.getByRole('button', { name: 'Cancel' }));
63
- await userEvent.click(screen.getByRole('button', { name: 'OK' }));
64
- (screen.queryByRole('alertdialog') === null).should.equal(true);
65
- });
66
- it('should show what the document said after the command ran', async () => {
67
- render(_jsx(Application, { behaviors: [confirmThenExecute] }));
68
- await userEvent.click(screen.getByRole('button', { name: 'Cancel' }));
69
- await userEvent.click(screen.getByRole('button', { name: 'OK' }));
70
- screen.getByText('Invoice cancelled').textContent.should.equal('Invoice cancelled');
71
- });
72
- });
73
- //# sourceMappingURL=when_a_document_asks_the_user_something.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_a_document_asks_the_user_something.js","sourceRoot":"","sources":["../../../for_useInteractionHosts/when_a_document_asks_the_user_something.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=when_the_host_cannot_do_what_was_asked.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_the_host_cannot_do_what_was_asked.d.ts","sourceRoot":"","sources":["../../../for_useInteractionHosts/when_the_host_cannot_do_what_was_asked.tsx"],"names":[],"mappings":""}
@@ -1,43 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { render, screen } from '@testing-library/react';
3
- import userEvent from '@testing-library/user-event';
4
- import { useMemo } from 'react';
5
- import { InteractionActionKind, InteractionTriggerKind } from '@cratis/scene.model';
6
- import { InteractionScope, createBrowserDispatcher, useInteractionHosts, useInteractions } from '../interactions';
7
- const navigateSomewhere = {
8
- name: 'GoToInvoice',
9
- bindings: [
10
- {
11
- trigger: { kind: InteractionTriggerKind.Click },
12
- actions: [{ kind: InteractionActionKind.Navigate, screen: 'InvoiceDetails' }],
13
- },
14
- ],
15
- };
16
- function Button() {
17
- const handlers = useInteractions('element', [navigateSomewhere]);
18
- return _jsx("button", { type: "button", ...handlers, children: "Open" });
19
- }
20
- function Application() {
21
- const { host, surfaces } = useInteractionHosts();
22
- const dispatcher = useMemo(() => createBrowserDispatcher(host), [host]);
23
- return (_jsxs(InteractionScope, { dispatcher: dispatcher, attachments: [], children: [_jsx(Button, {}), surfaces] }));
24
- }
25
- describe('when the host cannot do what was asked', () => {
26
- it('should say so on the screen rather than do nothing', async () => {
27
- render(_jsx(Application, {}));
28
- await userEvent.click(screen.getByRole('button', { name: 'Open' }));
29
- screen.getByText('navigate to InvoiceDetails').textContent.should.equal('navigate to InvoiceDetails');
30
- });
31
- it('should report the same action once however often it is asked for', async () => {
32
- render(_jsx(Application, {}));
33
- await userEvent.click(screen.getByRole('button', { name: 'Open' }));
34
- await userEvent.click(screen.getByRole('button', { name: 'Open' }));
35
- await userEvent.click(screen.getByRole('button', { name: 'Open' }));
36
- screen.getAllByText('navigate to InvoiceDetails').should.have.lengthOf(1);
37
- });
38
- it('should say nothing when nothing has failed', () => {
39
- render(_jsx(Application, {}));
40
- (screen.queryByText(/cannot do what the document asked/) === null).should.equal(true);
41
- });
42
- });
43
- //# sourceMappingURL=when_the_host_cannot_do_what_was_asked.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_the_host_cannot_do_what_was_asked.js","sourceRoot":"","sources":["../../../for_useInteractionHosts/when_the_host_cannot_do_what_was_asked.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAY,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElH,MAAM,iBAAiB,GAAa;IAChC,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE;QACN;YACI,OAAO,EAAE,EAAE,IAAI,EAAE,sBAAsB,CAAC,KAAK,EAAW;YACxD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAW,CAAC;SACzF;KACJ;CACJ,CAAC;AAEF,SAAS,MAAM;IACX,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACjE,OAAO,iBAAQ,IAAI,EAAC,QAAQ,KAAK,QAAQ,qBAAe,CAAC;AAC7D,CAAC;AAKD,SAAS,WAAW;IAChB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAExE,OAAO,CACH,MAAC,gBAAgB,IAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,aACrD,KAAC,MAAM,KAAG,EACT,QAAQ,IACM,CACtB,CAAC;AACN,CAAC;AAED,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;IACpD,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,CAAC,KAAC,WAAW,KAAG,CAAC,CAAC;QAExB,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAEpE,MAAM,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC,WAAY,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;IAIH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,CAAC,KAAC,WAAW,KAAG,CAAC,CAAC;QAExB,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAEpE,MAAM,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,KAAC,WAAW,KAAG,CAAC,CAAC;QAExB,CAAC,MAAM,CAAC,WAAW,CAAC,mCAAmC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=when_clicking_an_element_that_executes_a_command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_clicking_an_element_that_executes_a_command.d.ts","sourceRoot":"","sources":["../../../for_useInteractions/when_clicking_an_element_that_executes_a_command.tsx"],"names":[],"mappings":""}
@@ -1,94 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { render, screen } from '@testing-library/react';
3
- import userEvent from '@testing-library/user-event';
4
- import { InteractionActionKind, InteractionTriggerKind, NotificationLevel } from '@cratis/scene.model';
5
- import { InteractionScope, useInteractions } from '../interactions';
6
- const calls = [];
7
- const dispatcher = {
8
- async executeCommand(command, args) {
9
- calls.push(`executeCommand:${command}:${JSON.stringify(args)}`);
10
- return { isSuccess: true };
11
- },
12
- navigate: (screenName) => { calls.push(`navigate:${screenName}`); },
13
- navigateBack: () => { calls.push('navigateBack'); },
14
- openDialog: async () => { calls.push('openDialog'); return { isConfirmed: true }; },
15
- closeDialog: () => { calls.push('closeDialog'); },
16
- refreshQuery: async (query) => { calls.push(`refreshQuery:${query}`); },
17
- setState: (target) => { calls.push(`setState:${target}`); },
18
- notify: (level, message) => { calls.push(`notify:${level}:${message}`); },
19
- confirm: async () => { calls.push('confirm'); return true; },
20
- raise: async (trigger) => { calls.push(`raise:${trigger}`); },
21
- };
22
- const context = { resolve: binding => `<${binding.path}>` };
23
- const cancelOnClick = {
24
- name: 'CancelInvoice',
25
- bindings: [
26
- {
27
- trigger: { kind: InteractionTriggerKind.Click },
28
- actions: [
29
- {
30
- kind: InteractionActionKind.ExecuteCommand,
31
- command: 'CancelInvoice',
32
- arguments: [{ name: 'invoiceId', value: { path: 'item.invoiceId' } }],
33
- onSuccess: [{ kind: InteractionActionKind.RefreshQuery, query: 'Invoices' }],
34
- },
35
- ],
36
- },
37
- ],
38
- };
39
- function Button({ behaviors }) {
40
- const handlers = useInteractions('element', behaviors);
41
- return _jsx("button", { type: "button", ...handlers, children: "Cancel" });
42
- }
43
- function renderInScope(behaviors) {
44
- return render(_jsx(InteractionScope, { dispatcher: dispatcher, context: context, attachments: [], children: _jsx(Button, { behaviors: behaviors }) }));
45
- }
46
- describe('when clicking an element that executes a command', () => {
47
- beforeEach(() => { calls.length = 0; });
48
- it('should execute the command the document declared', async () => {
49
- renderInScope([cancelOnClick]);
50
- await userEvent.click(screen.getByRole('button'));
51
- calls.should.eql(['executeCommand:CancelInvoice:{"invoiceId":"<item.invoiceId>"}', 'refreshQuery:Invoices']);
52
- });
53
- it('should not make an element interactive when nothing is attached', async () => {
54
- renderInScope();
55
- await userEvent.click(screen.getByRole('button'));
56
- calls.should.have.lengthOf(0);
57
- });
58
- it('should attach no handler for a trigger the document does not use', async () => {
59
- renderInScope([cancelOnClick]);
60
- await userEvent.dblClick(screen.getByRole('button'));
61
- calls.filter(call => call.startsWith('executeCommand')).should.have.lengthOf(2);
62
- });
63
- it('should run a behavior attached further out as well as its own', async () => {
64
- render(_jsx(InteractionScope, { dispatcher: dispatcher, context: context, attachments: [{
65
- level: 'module',
66
- behaviors: [{
67
- name: 'ModuleWide',
68
- bindings: [{
69
- trigger: { kind: InteractionTriggerKind.Click },
70
- actions: [{ kind: InteractionActionKind.Notify, level: NotificationLevel.Info, message: { text: 'from the module' } }],
71
- }],
72
- }],
73
- }], children: _jsx(Button, { behaviors: [cancelOnClick] }) }));
74
- await userEvent.click(screen.getByRole('button'));
75
- calls.should.eql([
76
- 'notify:Info:from the module',
77
- 'executeCommand:CancelInvoice:{"invoiceId":"<item.invoiceId>"}',
78
- 'refreshQuery:Invoices',
79
- ]);
80
- });
81
- it('should not run a binding whose guard is false', async () => {
82
- render(_jsx(InteractionScope, { dispatcher: dispatcher, context: { resolve: () => false }, attachments: [], children: _jsx(Button, { behaviors: [{
83
- name: 'Guarded',
84
- bindings: [{
85
- trigger: { kind: InteractionTriggerKind.Click },
86
- condition: { path: 'item.canCancel' },
87
- actions: [{ kind: InteractionActionKind.ExecuteCommand, command: 'CancelInvoice' }],
88
- }],
89
- }] }) }));
90
- await userEvent.click(screen.getByRole('button'));
91
- calls.should.have.lengthOf(0);
92
- });
93
- });
94
- //# sourceMappingURL=when_clicking_an_element_that_executes_a_command.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_clicking_an_element_that_executes_a_command.js","sourceRoot":"","sources":["../../../for_useInteractions/when_clicking_an_element_that_executes_a_command.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=when_the_bundle_and_manifest_disagree.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_the_bundle_and_manifest_disagree.d.ts","sourceRoot":"","sources":["../../../for_validatePackageBundle/when_the_bundle_and_manifest_disagree.ts"],"names":[],"mappings":""}
@@ -1,59 +0,0 @@
1
- import { PackageKind } from '@cratis/scene.model';
2
- import { componentRegistryKey, validatePackageBundle } from '../index';
3
- import { CoreText } from '../core';
4
- function manifestFor(components, layouts = [], themes = [], screenTemplates = []) {
5
- return {
6
- name: 'Test',
7
- version: '1.0.0',
8
- kind: PackageKind.ComponentLibrary,
9
- dependencies: [],
10
- components,
11
- layouts,
12
- screenTemplates,
13
- dialogTemplates: [],
14
- themes,
15
- };
16
- }
17
- describe('when the bundle and manifest disagree', () => {
18
- const declaredButNotRegistered = validatePackageBundle({
19
- manifest: manifestFor(['text', 'missing']),
20
- components: { [componentRegistryKey('Test', 'text')]: CoreText },
21
- });
22
- const registeredButNotDeclared = validatePackageBundle({
23
- manifest: manifestFor([]),
24
- components: { [componentRegistryKey('Test', 'text')]: CoreText },
25
- });
26
- const layoutDeclaredButNotProvided = validatePackageBundle({
27
- manifest: manifestFor([], ['AppShell']),
28
- components: {},
29
- });
30
- const screenTemplateDeclaredButNotProvided = validatePackageBundle({
31
- manifest: manifestFor([], [], [], ['ModuleWorkspace']),
32
- components: {},
33
- });
34
- const themeDeclaredButNotProvided = validatePackageBundle({
35
- manifest: manifestFor([], [], ['Midnight']),
36
- components: {},
37
- });
38
- it('should report a component the manifest declares without an implementation', () => {
39
- declaredButNotRegistered.should.have.lengthOf(1);
40
- declaredButNotRegistered[0].should.contain("'missing'");
41
- });
42
- it('should report a component registered without being declared', () => {
43
- registeredButNotDeclared.should.have.lengthOf(1);
44
- registeredButNotDeclared[0].should.contain('Test:text');
45
- });
46
- it('should report a layout the manifest declares without a definition', () => {
47
- layoutDeclaredButNotProvided.should.have.lengthOf(1);
48
- layoutDeclaredButNotProvided[0].should.contain("'AppShell'");
49
- });
50
- it('should report a screen template the manifest declares without a definition', () => {
51
- screenTemplateDeclaredButNotProvided.should.have.lengthOf(1);
52
- screenTemplateDeclaredButNotProvided[0].should.contain("'ModuleWorkspace'");
53
- });
54
- it('should report a theme the manifest declares without a definition', () => {
55
- themeDeclaredButNotProvided.should.have.lengthOf(1);
56
- themeDeclaredButNotProvided[0].should.contain("'Midnight'");
57
- });
58
- });
59
- //# sourceMappingURL=when_the_bundle_and_manifest_disagree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_the_bundle_and_manifest_disagree.js","sourceRoot":"","sources":["../../../for_validatePackageBundle/when_the_bundle_and_manifest_disagree.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=when_the_bundle_matches_its_manifest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_the_bundle_matches_its_manifest.d.ts","sourceRoot":"","sources":["../../../for_validatePackageBundle/when_the_bundle_matches_its_manifest.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- import { corePackage, validatePackageBundle } from '../index';
2
- describe('when the bundle matches its manifest', () => {
3
- const problems = validatePackageBundle(corePackage);
4
- it('should report no problems', () => {
5
- problems.should.be.empty;
6
- });
7
- });
8
- //# sourceMappingURL=when_the_bundle_matches_its_manifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"when_the_bundle_matches_its_manifest.js","sourceRoot":"","sources":["../../../for_validatePackageBundle/when_the_bundle_matches_its_manifest.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAE9D,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAClD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAEpD,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;IAC7B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,53 +0,0 @@
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 { expect } from 'chai';
5
- import { render, screen } from '@testing-library/react';
6
- import { Control, ExternalComponent, HorizontalAlignment, VerticalAlignment, Visibility } from '@cratis/scene.model';
7
- import { SceneElementView } from '../SceneElementView';
8
- import { coreComponents } from '../core';
9
-
10
- function control(id: string): Control {
11
- return {
12
- id,
13
- name: id,
14
- properties: {},
15
- visibility: Visibility.Visible,
16
- isEnabled: true,
17
- opacity: 1,
18
- size: {},
19
- zIndex: 0,
20
- minimumSize: {},
21
- maximumSize: {},
22
- margin: { left: 0, top: 0, right: 0, bottom: 0 },
23
- horizontalAlignment: HorizontalAlignment.Stretch,
24
- verticalAlignment: VerticalAlignment.Stretch,
25
- borderThickness: { left: 0, top: 0, right: 0, bottom: 0 },
26
- padding: { left: 0, top: 0, right: 0, bottom: 0 },
27
- tabIndex: 0,
28
- };
29
- }
30
-
31
- describe('when rendering a tree', () => {
32
- describe('and every component resolves', () => {
33
- const text: ExternalComponent = { ...control('greeting'), componentName: 'core:text', properties: { text: 'Hello Scene' }, slots: {} };
34
- const card: ExternalComponent = { ...control('card'), componentName: 'core:card', slots: { content: [text] } };
35
-
36
- beforeEach(() => {
37
- render(<SceneElementView element={card} registry={coreComponents} resolveBinding={() => undefined} />);
38
- });
39
-
40
- it('should render the nested core:text content', () => expect(screen.getByText('Hello Scene')).to.exist);
41
- });
42
-
43
- describe('and a component does not resolve', () => {
44
- const missing: ExternalComponent = { ...control('missing'), componentName: 'vendor:fancy-widget', slots: {} };
45
-
46
- beforeEach(() => {
47
- render(<SceneElementView element={missing} registry={coreComponents} resolveBinding={() => undefined} />);
48
- });
49
-
50
- it('should render a visible unresolved-component placeholder', () =>
51
- expect(screen.getByText('Unresolved component: vendor:fancy-widget')).to.exist);
52
- });
53
- });