neo.mjs 6.10.4 → 6.10.6

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 (71) hide show
  1. package/apps/ServiceWorker.mjs +2 -2
  2. package/apps/form/model/SideNav.mjs +3 -3
  3. package/apps/form/view/SideNavList.mjs +8 -3
  4. package/apps/form/view/ViewportController.mjs +6 -7
  5. package/apps/portal/Overwrites.mjs +21 -0
  6. package/apps/portal/app.mjs +7 -0
  7. package/apps/portal/data/blog.json +743 -0
  8. package/apps/portal/index.html +15 -0
  9. package/apps/portal/model/BlogPost.mjs +59 -0
  10. package/apps/{learnneo → portal}/model/Content.mjs +3 -3
  11. package/apps/{learnneo → portal}/neo-config.json +1 -1
  12. package/apps/portal/store/BlogPosts.mjs +43 -0
  13. package/apps/{learnneo → portal}/store/Content.mjs +2 -5
  14. package/apps/{learnneo/view/home → portal/view}/HeaderToolbar.mjs +22 -14
  15. package/apps/portal/view/Viewport.mjs +59 -0
  16. package/apps/portal/view/ViewportController.mjs +79 -0
  17. package/apps/portal/view/blog/Container.mjs +50 -0
  18. package/apps/portal/view/blog/List.mjs +173 -0
  19. package/apps/{newwebsite/view/Viewport.mjs → portal/view/home/MainContainer.mjs} +7 -8
  20. package/apps/{learnneo/view/home → portal/view/learn}/ContentTreeList.mjs +6 -6
  21. package/apps/{learnneo/view/home → portal/view/learn}/ContentView.mjs +3 -3
  22. package/apps/{learnneo/view → portal/view/learn}/LivePreview.mjs +6 -6
  23. package/apps/{learnneo/view/home → portal/view/learn}/MainContainer.mjs +27 -31
  24. package/apps/{learnneo/view/home → portal/view/learn}/MainContainerController.mjs +3 -3
  25. package/apps/{learnneo/view/home → portal/view/learn}/MainContainerModel.mjs +3 -3
  26. package/apps/website/Overwrites.mjs +16 -0
  27. package/apps/website/app.mjs +2 -1
  28. package/apps/website/view/blog/List.mjs +1 -1
  29. package/buildScripts/webpack/development/webpack.config.appworker.mjs +3 -1
  30. package/buildScripts/webpack/json/myApps.template.json +1 -1
  31. package/buildScripts/webpack/production/webpack.config.appworker.mjs +3 -1
  32. package/examples/ServiceWorker.mjs +2 -2
  33. package/package.json +2 -2
  34. package/resources/examples/data/formSideNav.json +19 -19
  35. package/resources/scss/src/apps/portal/blog/Container.scss +18 -0
  36. package/resources/scss/src/apps/portal/blog/List.scss +183 -0
  37. package/resources/scss/src/apps/{newwebsite/Viewport.scss → portal/home/MainContainer.scss} +1 -1
  38. package/resources/scss/src/tab/Strip.scss +1 -0
  39. package/resources/scss/theme-neo-light/button/Base.scss +5 -5
  40. package/resources/scss/theme-neo-light/tab/header/Button.scss +8 -7
  41. package/src/DefaultConfig.mjs +2 -2
  42. package/src/component/Base.mjs +5 -0
  43. package/src/component/Toast.mjs +5 -2
  44. package/src/container/Base.mjs +14 -0
  45. package/src/controller/Application.mjs +2 -1
  46. package/src/controller/Base.mjs +14 -3
  47. package/src/controller/Component.mjs +1 -1
  48. package/src/core/Base.mjs +7 -5
  49. package/src/data/RecordFactory.mjs +3 -3
  50. package/src/form/Container.mjs +50 -0
  51. package/src/form/field/Text.mjs +2 -2
  52. package/src/form/field/TextArea.mjs +5 -0
  53. package/src/main/addon/WindowPosition.mjs +24 -14
  54. package/src/model/Component.mjs +7 -3
  55. package/src/tab/Strip.mjs +21 -36
  56. package/src/tab/header/Button.mjs +5 -7
  57. package/src/worker/Base.mjs +41 -29
  58. package/src/worker/Manager.mjs +4 -3
  59. package/src/worker/mixin/RemoteMethodAccess.mjs +20 -18
  60. package/apps/learnneo/app.mjs +0 -6
  61. package/apps/learnneo/index.html +0 -21
  62. package/apps/learnneo/view/Viewport.mjs +0 -52
  63. package/apps/learnneo/view/ViewportController.mjs +0 -19
  64. package/apps/newwebsite/app.mjs +0 -6
  65. package/apps/newwebsite/index.html +0 -13
  66. package/apps/newwebsite/neo-config.json +0 -7
  67. /package/resources/scss/src/apps/{learnneo/home → portal}/HeaderToolbar.scss +0 -0
  68. /package/resources/scss/src/apps/{learnneo → portal}/Viewport.scss +0 -0
  69. /package/resources/scss/src/apps/{learnneo/home → portal/learn}/ContentTreeList.scss +0 -0
  70. /package/resources/scss/src/apps/{learnneo/home → portal/learn}/ContentView.scss +0 -0
  71. /package/resources/scss/src/apps/{learnneo/home → portal/learn}/MainContainer.scss +0 -0
@@ -1,18 +1,18 @@
1
- import Base from '../../../src/container/Base.mjs';
2
- import TabContainer from '../../../src/tab/Container.mjs';
3
- import TextArea from '../../../src/form/field/TextArea.mjs';
1
+ import Base from '../../../../src/container/Base.mjs';
2
+ import TabContainer from '../../../../src/tab/Container.mjs';
3
+ import TextArea from '../../../../src/form/field/TextArea.mjs';
4
4
 
5
5
  /**
6
- * @class LearnNeo.view.LivePreview
6
+ * @class Portal.view.learn.LivePreview
7
7
  * @extends Neo.container.Base
8
8
  */
9
9
  class LivePreview extends Base {
10
10
  static config = {
11
11
  /**
12
- * @member {String} className='LearnNeo.view.LivePreview'
12
+ * @member {String} className='Portal.view.learn.LivePreview'
13
13
  * @protected
14
14
  */
15
- className: 'LearnNeo.view.LivePreview',
15
+ className: 'Portal.view.learn.LivePreview',
16
16
  value_: null,
17
17
  autoMount: true,
18
18
  autoRender: true,
@@ -1,22 +1,21 @@
1
1
  import Container from '../../../../src/container/Base.mjs';
2
2
  import ContentView from './ContentView.mjs';
3
3
  import ContentTreeList from './ContentTreeList.mjs';
4
- import HeaderToolbar from './HeaderToolbar.mjs';
5
4
  import MainContainerController from './MainContainerController.mjs';
6
5
  import MainContainerModel from './MainContainerModel.mjs';
7
6
  import Splitter from '../../../../src/component/Splitter.mjs';
8
7
 
9
8
  /**
10
- * @class LearnNeo.view.home.MainContainer
9
+ * @class Portal.view.learn.MainContainer
11
10
  * @extends Neo.container.Base
12
11
  */
13
12
  class MainContainer extends Container {
14
13
  static config = {
15
14
  /**
16
- * @member {String} className='LearnNeo.view.home.MainContainer'
15
+ * @member {String} className='Portal.view.learn.MainContainer'
17
16
  * @protected
18
17
  */
19
- className: 'LearnNeo.view.home.MainContainer',
18
+ className: 'Portal.view.learn.MainContainer',
20
19
  /**
21
20
  * @member {Neo.controller.Component} controller=MainContainerController
22
21
  */
@@ -29,38 +28,35 @@ class MainContainer extends Container {
29
28
  * @member {Object[]} items
30
29
  */
31
30
  items: [{
32
- module: HeaderToolbar
33
- }, {
34
- module: Container,
35
- layout: {ntype: 'hbox', align: 'stretch'},
36
-
31
+ module : Container,
32
+ layout : 'fit',
33
+ minWidth: 350,
34
+ width : 350,
35
+ cls : 'sidenav-container',
37
36
  items: [{
38
- module : Container,
39
- layout : 'fit',
40
- minWidth: 350,
41
- width : 350,
42
- cls : 'sidenav-container',
43
- items: [{
44
- module : ContentTreeList,
45
- reference: 'tree',
46
- listeners: {
47
- contentChange: 'onContentChange',
48
- }
49
- }]
50
- }, {
51
- module : Splitter,
52
- cls : ['main-content-splitter'],
53
- resizeTarget: 'previous',
54
- size : 4
55
- }, {
56
- module : ContentView,
57
- reference: 'content',
37
+ module : ContentTreeList,
38
+ reference: 'tree',
58
39
  listeners: {
59
- edit : 'onContentEdit',
60
- refresh: 'onContentRefresh'
40
+ contentChange: 'onContentChange',
61
41
  }
62
42
  }]
43
+ }, {
44
+ module : Splitter,
45
+ cls : ['main-content-splitter'],
46
+ resizeTarget: 'previous',
47
+ size : 4
48
+ }, {
49
+ module : ContentView,
50
+ reference: 'content',
51
+ listeners: {
52
+ edit : 'onContentEdit',
53
+ refresh: 'onContentRefresh'
54
+ }
63
55
  }],
56
+ /**
57
+ * @member {Object} layout={ntype:'hbox',align:'stretch'}
58
+ */
59
+ layout: {ntype: 'hbox', align: 'stretch'},
64
60
  /**
65
61
  * @member {Neo.model.Component} model=MainContainerModel
66
62
  */
@@ -1,16 +1,16 @@
1
1
  import Controller from '../../../../src/controller/Component.mjs';
2
2
 
3
3
  /**
4
- * @class LearnNeo.view.home.MainContainerController
4
+ * @class Portal.view.learn.MainContainerController
5
5
  * @extends Neo.controller.Component
6
6
  */
7
7
  class MainContainerController extends Controller {
8
8
  static config = {
9
9
  /**
10
- * @member {String} className='LearnNeo.view.home.MainContainerController'
10
+ * @member {String} className='Portal.view.learn.MainContainerController'
11
11
  * @protected
12
12
  */
13
- className: 'LearnNeo.view.home.MainContainerController'
13
+ className: 'Portal.view.learn.MainContainerController'
14
14
  }
15
15
 
16
16
  /**
@@ -2,16 +2,16 @@ import Component from '../../../../src/model/Component.mjs';
2
2
  import Store from '../../store/Content.mjs';
3
3
 
4
4
  /**
5
- * @class LearnNeo.view.home.MainContainerModel
5
+ * @class Portal.view.learn.MainContainerModel
6
6
  * @extends Neo.model.Component
7
7
  */
8
8
  class MainContainerModel extends Component {
9
9
  static config = {
10
10
  /**
11
- * @member {String} className='LearnNeo.view.home.MainContainerModel'
11
+ * @member {String} className='Portal.view.learn.MainContainerModel'
12
12
  * @protected
13
13
  */
14
- className: 'LearnNeo.view.home.MainContainerModel',
14
+ className: 'Portal.view.learn.MainContainerModel',
15
15
  /**
16
16
  * @member {Object} data
17
17
  */
@@ -0,0 +1,16 @@
1
+ Neo.overwrites = {
2
+ Neo: {
3
+ form: {
4
+ field: {
5
+ Base: {
6
+ delayable: {
7
+ fireChangeEvent : null,
8
+ fireUserChangeEvent: null
9
+ }
10
+ }
11
+ }
12
+ }
13
+ }
14
+ }
15
+
16
+ export default Neo.overwrites;
@@ -1,6 +1,7 @@
1
+ import Overwrites from './Overwrites.mjs';
1
2
  import MainContainer from './view/MainContainer.mjs';
2
3
 
3
4
  export const onStart = () => Neo.app({
4
5
  mainView: MainContainer,
5
6
  name : 'Website'
6
- });
7
+ })
@@ -125,7 +125,7 @@ class List extends BaseList {
125
125
  valueRegEx = new RegExp(data.value, 'gi'),
126
126
  hasMatch, itemName, name, record;
127
127
 
128
- me.vdom.cn.forEach((item, index) => {
128
+ me.getVdomRoot().cn.forEach((item, index) => {
129
129
  hasMatch = false;
130
130
  itemName = VDomUtil.getByFlag(item, 'name');
131
131
  record = store.getAt(index);
@@ -99,7 +99,9 @@ export default env => {
99
99
  createStartingPoint(key.substr(1), 'apps');
100
100
  });
101
101
 
102
- createStartingPoint('Docs', '');
102
+ if (fs.existsSync(path.join(cwd, 'docs'))) {
103
+ createStartingPoint('Docs', '');
104
+ }
103
105
 
104
106
  examplesPath = path.join(cwd, 'examples');
105
107
 
@@ -4,7 +4,7 @@
4
4
  "Docs",
5
5
  "Form",
6
6
  "Krausest",
7
- "NewWebsite",
7
+ "Portal",
8
8
  "RealWorld",
9
9
  "RealWorld2",
10
10
  "SharedCovid",
@@ -108,7 +108,9 @@ export default env => {
108
108
  createStartingPoint(key.substr(1), 'apps');
109
109
  });
110
110
 
111
- createStartingPoint('Docs', '');
111
+ if (fs.existsSync(path.join(cwd, 'docs'))) {
112
+ createStartingPoint('Docs', '');
113
+ }
112
114
 
113
115
  examplesPath = path.join(cwd, 'examples');
114
116
 
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='6.10.4'
23
+ * @member {String} version='6.10.6'
24
24
  */
25
- version: '6.10.4'
25
+ version: '6.10.6'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "6.10.4",
3
+ "version": "6.10.6",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -54,7 +54,7 @@
54
54
  "inquirer": "^9.2.12",
55
55
  "neo-jsdoc": "1.0.1",
56
56
  "neo-jsdoc-x": "1.0.5",
57
- "postcss": "^8.4.31",
57
+ "postcss": "^8.4.32",
58
58
  "sass": "^1.69.5",
59
59
  "siesta-lite": "5.5.2",
60
60
  "showdown": "^2.1.0",
@@ -2,24 +2,24 @@
2
2
  "success": true,
3
3
 
4
4
  "data": [
5
- {"id": 1, "cardIndex": null, "isHeader": true, "isValid": null, "name": "1. Basic data"},
6
- {"id": 2, "cardIndex": 0, "isHeader": false, "isValid": null, "name": "Page 1"},
7
- {"id": 3, "cardIndex": 1, "isHeader": false, "isValid": null, "name": "Page 2"},
8
- {"id": 4, "cardIndex": 2, "isHeader": false, "isValid": null, "name": "Page 3"},
9
- {"id": 5, "cardIndex": null, "isHeader": true, "isValid": null, "name": "2. Personal data"},
10
- {"id": 6, "cardIndex": 3, "isHeader": false, "isValid": null, "name": "CheckBoxes"},
11
- {"id": 7, "cardIndex": 4, "isHeader": false, "isValid": null, "name": "Radios"},
12
- {"id": 8, "cardIndex": 5, "isHeader": false, "isValid": null, "name": "TextAreas"},
13
- {"id": 9, "cardIndex": 6, "isHeader": false, "isValid": null, "name": "Fieldsets"},
14
- {"id": 10, "cardIndex": null, "isHeader": true, "isValid": null, "name": "3. More data"},
15
- {"id": 11, "cardIndex": 7, "isHeader": false, "isValid": null, "name": "NumberFields"},
16
- {"id": 12, "cardIndex": 8, "isHeader": false, "isValid": null, "name": "HiddenFields"},
17
- {"id": 13, "cardIndex": 9, "isHeader": false, "isValid": null, "name": "SelectFields"},
18
- {"id": 14, "cardIndex": null, "isHeader": true, "isValid": null, "name": "4. Optional data"},
19
- {"id": 15, "cardIndex": 10, "isHeader": false, "isValid": null, "name": "ZipCodeFields"},
20
- {"id": 16, "cardIndex": 11, "isHeader": false, "isValid": null, "name": "EmailFields"},
21
- {"id": 17, "cardIndex": 12, "isHeader": false, "isValid": null, "name": "UrlFields"},
22
- {"id": 18, "cardIndex": 13, "isHeader": false, "isValid": null, "name": "PhoneFields"},
23
- {"id": 19, "cardIndex": 14, "isHeader": false, "isValid": null, "name": "CurrencyFields"}
5
+ {"id": 1, "cardIndex": null, "formState": "clean", "isHeader": true, "name": "1. Basic data"},
6
+ {"id": 2, "cardIndex": 0, "formState": "clean", "isHeader": false, "name": "Page 1"},
7
+ {"id": 3, "cardIndex": 1, "formState": "clean", "isHeader": false, "name": "Page 2"},
8
+ {"id": 4, "cardIndex": 2, "formState": "clean", "isHeader": false, "name": "Page 3"},
9
+ {"id": 5, "cardIndex": null, "formState": "clean", "isHeader": true, "name": "2. Personal data"},
10
+ {"id": 6, "cardIndex": 3, "formState": "clean", "isHeader": false, "name": "CheckBoxes"},
11
+ {"id": 7, "cardIndex": 4, "formState": "clean", "isHeader": false, "name": "Radios"},
12
+ {"id": 8, "cardIndex": 5, "formState": "clean", "isHeader": false, "name": "TextAreas"},
13
+ {"id": 9, "cardIndex": 6, "formState": "clean", "isHeader": false, "name": "Fieldsets"},
14
+ {"id": 10, "cardIndex": null, "formState": "clean", "isHeader": true, "name": "3. More data"},
15
+ {"id": 11, "cardIndex": 7, "formState": "clean", "isHeader": false, "name": "NumberFields"},
16
+ {"id": 12, "cardIndex": 8, "formState": "clean", "isHeader": false, "name": "HiddenFields"},
17
+ {"id": 13, "cardIndex": 9, "formState": "clean", "isHeader": false, "name": "SelectFields"},
18
+ {"id": 14, "cardIndex": null, "formState": "clean", "isHeader": true, "name": "4. Optional data"},
19
+ {"id": 15, "cardIndex": 10, "formState": "clean", "isHeader": false, "name": "ZipCodeFields"},
20
+ {"id": 16, "cardIndex": 11, "formState": "clean", "isHeader": false, "name": "EmailFields"},
21
+ {"id": 17, "cardIndex": 12, "formState": "clean", "isHeader": false, "name": "UrlFields"},
22
+ {"id": 18, "cardIndex": 13, "formState": "clean", "isHeader": false, "name": "PhoneFields"},
23
+ {"id": 19, "cardIndex": 14, "formState": "clean", "isHeader": false, "name": "CurrencyFields"}
24
24
  ]
25
25
  }
@@ -0,0 +1,18 @@
1
+ .website-blog-container {
2
+ .website-blog-searchfield {
3
+ transition: margin var(--website-transition-duration) ease-out;
4
+ width : 240px;
5
+
6
+ @media (max-height: 400px), (max-width: 600px) {
7
+ margin: 5px;
8
+ }
9
+
10
+ @media (min-height: 401px) and (min-width: 601px) {
11
+ margin: 10px;
12
+ }
13
+ }
14
+
15
+ .website-blog-toolbar {
16
+ background-color: var(--website-blog-toolbar-background-color);
17
+ }
18
+ }
@@ -0,0 +1,183 @@
1
+ .website-blog-list.neo-list {
2
+ transition: padding var(--website-transition-duration) ease-out;
3
+
4
+ .neo-list-item {
5
+ cursor : default;
6
+ display : flex;
7
+ max-width : 800px;
8
+ overflow : hidden;
9
+ padding : 0;
10
+ transition : height var(--website-transition-duration) ease-out, margin-bottom var(--website-transition-duration) ease-out;
11
+ white-space: normal;
12
+ width : 100%;
13
+
14
+ .content {
15
+ flex: 1;
16
+ }
17
+
18
+ .neo-absolute {
19
+ position: absolute;
20
+ }
21
+
22
+ .neo-bold {
23
+ font-weight: 600;
24
+ }
25
+
26
+ .neo-highlight-search {
27
+ color: #5d83a7;
28
+ }
29
+
30
+ .neo-inner-content {
31
+ color : #fff;
32
+ display : inline-block;
33
+ margin-left: 10px;
34
+ text-shadow: 1px 1px 1px #000, 1px 1px 1px #fff;
35
+ transition : font-size var(--website-transition-duration) ease-out;
36
+ }
37
+
38
+ .neo-full-size {
39
+ height: 100%;
40
+ width : 100%;
41
+ }
42
+
43
+ .neo-inner-details {
44
+ transition: line-height var(--website-transition-duration) ease-out;
45
+ }
46
+
47
+ .neo-item-bottom-position {
48
+ bottom : 0;
49
+ left : 0;
50
+ transition: margin var(--website-transition-duration) ease-out;
51
+ }
52
+
53
+ .neo-item-top-position {
54
+ color : #fff;
55
+ right : 0;
56
+ text-align : end;
57
+ text-shadow: 1px 1px 1px #000, 1px 1px 1px #fff;
58
+ transition : font-size var(--website-transition-duration) ease-out, margin var(--website-transition-duration) ease-out;
59
+ }
60
+
61
+ .neo-relative {
62
+ position: relative;
63
+ }
64
+
65
+ .neo-title {
66
+ color : #fff;
67
+ font-weight : 600;
68
+ line-height : 1;
69
+ text-decoration: none;
70
+ text-shadow : 1px 1px 1px #000, 1px 1px 1px #fff;
71
+ transition : color 250ms ease-out;
72
+
73
+ &:hover {
74
+ color: #5d83a7
75
+ }
76
+ }
77
+
78
+ .neo-top-20 {
79
+ align-items: center;
80
+ display : flex;
81
+ transition : margin var(--website-transition-duration) ease-out;
82
+ }
83
+
84
+ .neo-user-image {
85
+ border-radius: 50%;
86
+ display : inline-block;
87
+ transition : height var(--website-transition-duration) ease-out, width var(--website-transition-duration) ease-out;
88
+ }
89
+
90
+ .preview-image {
91
+ background-blend-mode: overlay;
92
+ background-position : 50% 50%;
93
+ background-size : cover;
94
+ height : 100%;
95
+ }
96
+ }
97
+
98
+ @media (max-height: 400px), (max-width: 600px) {
99
+ padding: 5px 5px 0 5px;
100
+
101
+ .neo-inner-content {
102
+ font-size: 12px;
103
+ }
104
+
105
+ .neo-inner-details {
106
+ line-height: 16px;
107
+ }
108
+
109
+ .neo-item-bottom-position {
110
+ margin: 9px 12px;
111
+ right : 15%;
112
+ }
113
+
114
+ .neo-item-top-position {
115
+ font-size: 12px;
116
+ left : 15%;
117
+ margin : 9px 12px;
118
+ top : -200px;
119
+ }
120
+
121
+ .neo-list-item {
122
+ border-radius: 10px;
123
+ height : 200px;
124
+ margin-bottom: 5px;
125
+ }
126
+
127
+ .neo-title {
128
+ font-size: 20px;
129
+ }
130
+
131
+ .neo-top-20 {
132
+ margin-top: 15px;
133
+ }
134
+
135
+ .neo-user-image {
136
+ height: 30px;
137
+ width : 30px;
138
+ }
139
+ }
140
+
141
+ @media (min-height: 401px) and (min-width: 601px) {
142
+ padding: 10px 10px 0 10px;
143
+
144
+ .neo-inner-content {
145
+ font-size: 16px;
146
+ }
147
+
148
+ .neo-inner-details {
149
+ line-height: 22px;
150
+ }
151
+
152
+ .neo-item-bottom-position {
153
+ margin: 30px 40px;
154
+ right : 30%;
155
+ }
156
+
157
+ .neo-item-top-position {
158
+ font-size: 16px;
159
+ left : 30%;
160
+ margin : 30px 40px;
161
+ top : -400px;
162
+ }
163
+
164
+ .neo-list-item {
165
+ border-radius: 20px;
166
+ height : 400px;
167
+ margin-bottom: 10px;
168
+ }
169
+
170
+ .neo-title {
171
+ font-size: 34px;
172
+ }
173
+
174
+ .neo-top-20 {
175
+ margin-top: 20px;
176
+ }
177
+
178
+ .neo-user-image {
179
+ height: 44px;
180
+ width : 44px;
181
+ }
182
+ }
183
+ }
@@ -19,7 +19,7 @@
19
19
  }
20
20
 
21
21
  .vector {
22
- background-image : url("../../../../../../resources/images/Neo_Vector.svg");
22
+ background-image : url("../../../../../../../resources/images/Neo_Vector.svg");
23
23
  background-position: center center;
24
24
  background-repeat : no-repeat;
25
25
  background-size : contain;
@@ -2,6 +2,7 @@
2
2
  background-color: var(--tab-strip-background-color);
3
3
  height : var(--tab-strip-height);
4
4
  overflow : hidden;
5
+ position : relative;
5
6
 
6
7
  .neo-active-tab-indicator {
7
8
  background-color : var(--tab-indicator-background-color-active);
@@ -4,7 +4,6 @@ $border-color : #ddd;
4
4
  $border-style : solid;
5
5
  $border-width : 1px;
6
6
 
7
-
8
7
  :root .neo-theme-neo-light { // .neo-button
9
8
  --button-background-color : var(--cmp-button-primary-bg-default);
10
9
  --button-background-color-active : var(--cmp-button-primary-bg-active);
@@ -115,8 +114,9 @@ $border-width : 1px;
115
114
  --button-tertiary-text-color-active : var(--button-text-color);
116
115
  --button-tertiary-text-color-disabled : inherit;
117
116
  --button-tertiary-text-color-hover : var(--button-text-color);
118
- }
119
117
 
120
- .neo-button {
121
- min-width: var(--cmp-button-height);
122
- }
118
+ // custom overrides
119
+ .neo-button {
120
+ min-width: var(--cmp-button-height);
121
+ }
122
+ }
@@ -27,15 +27,16 @@
27
27
  --tab-button-padding : 7px var(--cmp-tab-spacinghorizontal) 6px;
28
28
  --tab-button-text-color : var(--sem-color-fg-neutral-subdued);
29
29
  --tab-button-text-transform : uppercase;
30
- }
31
30
 
32
- .neo-button-text {
33
- font-size: var(--sem-typo-label-regular-fontSize) !important;
34
- }
31
+ // custom overrides
32
+ .neo-button-text {
33
+ font-size: var(--sem-typo-label-regular-fontSize) !important;
34
+ }
35
35
 
36
- .pressed {
37
- .neo-button-glyph, .neo-button-text {
38
- color: var(--sem-color-fg-neutral-contrast) !important;
36
+ .pressed {
37
+ .neo-button-glyph, .neo-button-text {
38
+ color: var(--sem-color-fg-neutral-contrast) !important;
39
+ }
39
40
  }
40
41
  }
41
42
 
@@ -236,12 +236,12 @@ const DefaultConfig = {
236
236
  useVdomWorker: true,
237
237
  /**
238
238
  * buildScripts/injectPackageVersion.mjs will update this value
239
- * @default '6.10.4'
239
+ * @default '6.10.6'
240
240
  * @memberOf! module:Neo
241
241
  * @name config.version
242
242
  * @type String
243
243
  */
244
- version: '6.10.4'
244
+ version: '6.10.6'
245
245
  };
246
246
 
247
247
  Object.assign(DefaultConfig, {
@@ -335,6 +335,11 @@ class Base extends CoreBase {
335
335
  * @member {Number|String|null} width_=null
336
336
  */
337
337
  width_: null,
338
+ /**
339
+ * The custom windowIs (timestamp) this component belongs to
340
+ * @member {Number|null} windowId_=null
341
+ */
342
+ windowId_: null,
338
343
  /**
339
344
  * @member {String[]|null} wrapperCls_=null
340
345
  */
@@ -56,6 +56,10 @@ class Toast extends Base {
56
56
  * @member {Boolean} closable=false
57
57
  */
58
58
  closable_: false,
59
+ /**
60
+ * @member {Boolean} floating=true
61
+ */
62
+ floating: true,
59
63
  /**
60
64
  * If set, it shows this icon in front of the text
61
65
  * e.g. 'fa fa-cog'
@@ -107,8 +111,7 @@ class Toast extends Base {
107
111
  ]},
108
112
  {cls: ['neo-toast-close', 'fa', 'fa-close'], removeDom: true}
109
113
  ]
110
- }]},
111
- floating : true
114
+ }]}
112
115
  }
113
116
 
114
117
  /**
@@ -217,6 +217,20 @@ class Base extends Component {
217
217
  }
218
218
  }
219
219
 
220
+ /**
221
+ * Triggered after the windowId config got changed
222
+ * @param {Number|null} value
223
+ * @param {Number|null} oldValue
224
+ * @protected
225
+ */
226
+ afterSetWindowId(value, oldValue) {
227
+ value && this.items?.forEach(item => {
228
+ if (Neo.isObject(item)) {
229
+ item.windowId = value
230
+ }
231
+ })
232
+ }
233
+
220
234
  /**
221
235
  * Convert items object to an array for onward storage as _items
222
236
  * @param {Object|Object[]} value
@@ -107,7 +107,8 @@ class Application extends Base {
107
107
  if (value) {
108
108
  return ClassSystemUtil.beforeSetInstance(value, null, {
109
109
  appName : this.name,
110
- parentId: this.parentId
110
+ parentId: this.parentId,
111
+ windowId: Neo.config.windowId
111
112
  })
112
113
  }
113
114