neo.mjs 6.20.1 → 6.22.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 (151) hide show
  1. package/apps/ServiceWorker.mjs +2 -2
  2. package/apps/colors/view/HeaderToolbar.mjs +7 -3
  3. package/apps/covid/view/MainContainerController.mjs +6 -6
  4. package/apps/covid/view/TableContainer.mjs +5 -3
  5. package/apps/covid/view/country/Gallery.mjs +6 -4
  6. package/apps/form/view/ViewportModel.mjs +2 -2
  7. package/apps/portal/index.html +23 -1
  8. package/apps/portal/view/HeaderToolbar.mjs +2 -2
  9. package/apps/portal/view/Viewport.mjs +3 -1
  10. package/apps/portal/view/ViewportController.mjs +10 -0
  11. package/apps/portal/view/about/Container.mjs +44 -0
  12. package/apps/portal/view/about/MemberContainer.mjs +191 -0
  13. package/apps/portal/view/home/MainContainer.mjs +9 -2
  14. package/apps/portal/view/home/parts/AfterMath.mjs +12 -8
  15. package/apps/portal/view/home/parts/Colors.mjs +8 -2
  16. package/apps/portal/view/home/parts/Features.mjs +50 -83
  17. package/apps/portal/view/home/parts/Helix.mjs +8 -2
  18. package/apps/portal/view/home/parts/MainNeo.mjs +17 -5
  19. package/apps/portal/view/learn/ContentView.mjs +18 -4
  20. package/apps/realworld/api/Base.mjs +5 -5
  21. package/apps/realworld/view/MainContainerController.mjs +19 -17
  22. package/apps/realworld2/api/Base.mjs +5 -5
  23. package/apps/realworld2/view/MainContainerController.mjs +11 -11
  24. package/apps/realworld2/view/article/Gallery.mjs +6 -4
  25. package/apps/sharedcovid/view/MainContainerController.mjs +11 -12
  26. package/apps/sharedcovid/view/TableContainer.mjs +7 -5
  27. package/apps/sharedcovid/view/country/Gallery.mjs +6 -4
  28. package/apps/shareddialog/view/MainContainerController.mjs +5 -5
  29. package/buildScripts/webpack/json/myApps.template.json +1 -2
  30. package/docs/app/view/classdetails/MembersList.mjs +8 -8
  31. package/docs/app/view/classdetails/SourceViewComponent.mjs +6 -6
  32. package/docs/app/view/classdetails/TutorialComponent.mjs +9 -9
  33. package/examples/ServiceWorker.mjs +2 -2
  34. package/examples/component/coronaGallery/CountryGallery.mjs +6 -4
  35. package/examples/component/helix/Viewport.mjs +2 -2
  36. package/examples/list/circle/MainContainer.mjs +7 -7
  37. package/examples/preloadingAssets/view/MainContainerController.mjs +5 -5
  38. package/package.json +5 -5
  39. package/resources/data/deck/learnneo/pages/GuideEvents.md +2 -4
  40. package/resources/data/deck/learnneo/pages/WhyNeo-Features.md +46 -0
  41. package/resources/data/deck/learnneo/pages/WhyNeo-Intro.md +5 -6
  42. package/resources/data/deck/learnneo/pages/WhyNeo-Multi-Window.md +1 -1
  43. package/resources/data/deck/learnneo/tree.json +3 -2
  44. package/resources/fonts/GT-Planar-Regular.otf +0 -0
  45. package/resources/images/logo/neo_logo_favicon.svg +16 -0
  46. package/resources/images/team/tobiu.png +0 -0
  47. package/resources/scss/src/apps/colors/HeaderToolbar.scss +23 -1
  48. package/resources/scss/src/apps/colors/Viewport.scss +10 -0
  49. package/resources/scss/src/apps/portal/HeaderToolbar.scss +7 -7
  50. package/resources/scss/src/apps/portal/Viewport.scss +10 -0
  51. package/resources/scss/src/apps/portal/about/Container.scss +4 -0
  52. package/resources/scss/src/apps/portal/about/MemberContainer.scss +70 -0
  53. package/resources/scss/src/apps/portal/home/FooterContainer.scss +12 -0
  54. package/resources/scss/src/apps/portal/home/parts/BaseContainer.scss +16 -16
  55. package/resources/scss/src/apps/portal/home/parts/MainNeo.scss +62 -7
  56. package/resources/scss/src/apps/portal/learn/ContentView.scss +1 -0
  57. package/resources/scss/src/apps/portal/learn/PageContainer.scss +6 -0
  58. package/resources/scss/src/code/LivePreview.scss +4 -1
  59. package/resources/scss/src/layout/Cube.scss +3 -3
  60. package/resources/scss/src/plugin/Resizable.scss +12 -19
  61. package/resources/scss/theme-neo-light/dialog/Base.scss +12 -2
  62. package/src/DefaultConfig.mjs +2 -2
  63. package/src/calendar/view/MainContainer.mjs +10 -10
  64. package/src/calendar/view/SettingsContainer.mjs +10 -10
  65. package/src/calendar/view/YearComponent.mjs +2 -2
  66. package/src/calendar/view/calendars/List.mjs +2 -2
  67. package/src/calendar/view/month/Component.mjs +4 -4
  68. package/src/calendar/view/week/Component.mjs +2 -2
  69. package/src/calendar/view/week/plugin/DragDrop.mjs +4 -4
  70. package/src/code/LivePreview.mjs +92 -6
  71. package/src/component/Base.mjs +3 -3
  72. package/src/component/Circle.mjs +5 -5
  73. package/src/component/DateSelector.mjs +4 -4
  74. package/src/component/Gallery.mjs +8 -8
  75. package/src/component/Helix.mjs +15 -12
  76. package/src/component/Toast.mjs +1 -1
  77. package/src/component/wrapper/AmChart.mjs +2 -2
  78. package/src/component/wrapper/CesiumJS.mjs +2 -2
  79. package/src/component/wrapper/GoogleMaps.mjs +2 -2
  80. package/src/component/wrapper/MonacoEditor.mjs +3 -3
  81. package/src/core/Observable.mjs +2 -2
  82. package/src/data/Store.mjs +2 -2
  83. package/src/dialog/Base.mjs +44 -14
  84. package/src/draggable/DragZone.mjs +4 -4
  85. package/src/draggable/list/DragZone.mjs +4 -4
  86. package/src/draggable/tab/header/toolbar/SortZone.mjs +2 -2
  87. package/src/draggable/toolbar/DragZone.mjs +4 -4
  88. package/src/draggable/toolbar/SortZone.mjs +3 -3
  89. package/src/form/field/ComboBox.mjs +3 -2
  90. package/src/form/field/FileUpload.mjs +3 -3
  91. package/src/form/field/Text.mjs +2 -2
  92. package/src/form/field/TextArea.mjs +2 -2
  93. package/src/grid/Container.mjs +2 -2
  94. package/src/layout/Cube.mjs +1 -3
  95. package/src/list/plugin/Animate.mjs +23 -23
  96. package/src/main/DomAccess.mjs +1 -1
  97. package/src/main/DomEvents.mjs +14 -5
  98. package/src/main/addon/AmCharts.mjs +2 -2
  99. package/src/main/addon/MapboxGL.mjs +4 -4
  100. package/src/manager/DomEvent.mjs +2 -2
  101. package/src/manager/Focus.mjs +2 -2
  102. package/src/manager/Toast.mjs +6 -4
  103. package/src/manager/rpc/Message.mjs +2 -2
  104. package/src/plugin/Resizable.mjs +11 -3
  105. package/src/selection/HelixModel.mjs +3 -3
  106. package/src/tab/Strip.mjs +4 -4
  107. package/src/table/Container.mjs +4 -4
  108. package/src/util/Logger.mjs +6 -4
  109. package/src/worker/App.mjs +2 -2
  110. package/src/worker/Manager.mjs +3 -2
  111. package/apps/website/Overwrites.mjs +0 -16
  112. package/apps/website/app.mjs +0 -7
  113. package/apps/website/data/blog.json +0 -769
  114. package/apps/website/data/docs.json +0 -29
  115. package/apps/website/data/examples_devmode.json +0 -173
  116. package/apps/website/data/examples_dist_dev.json +0 -164
  117. package/apps/website/data/examples_dist_prod.json +0 -164
  118. package/apps/website/index.html +0 -11
  119. package/apps/website/model/BlogPost.mjs +0 -60
  120. package/apps/website/model/Example.mjs +0 -48
  121. package/apps/website/neo-config.json +0 -7
  122. package/apps/website/store/BlogPosts.mjs +0 -39
  123. package/apps/website/store/Examples.mjs +0 -35
  124. package/apps/website/view/HeaderContainer.mjs +0 -72
  125. package/apps/website/view/MainContainer.mjs +0 -95
  126. package/apps/website/view/MainContainerController.mjs +0 -230
  127. package/apps/website/view/blog/Container.mjs +0 -50
  128. package/apps/website/view/blog/List.mjs +0 -171
  129. package/apps/website/view/examples/List.mjs +0 -124
  130. package/apps/website/view/examples/TabContainer.mjs +0 -66
  131. package/apps/website/view/home/DeveloperIntroComponent.mjs +0 -266
  132. package/apps/website/view/home/ExecutiveIntroComponent.mjs +0 -291
  133. package/apps/website/view/home/TabContainer.mjs +0 -56
  134. package/resources/scss/src/apps/website/HeaderContainer.scss +0 -136
  135. package/resources/scss/src/apps/website/MainContainer.scss +0 -25
  136. package/resources/scss/src/apps/website/blog/Container.scss +0 -18
  137. package/resources/scss/src/apps/website/blog/List.scss +0 -183
  138. package/resources/scss/src/apps/website/examples/List.scss +0 -157
  139. package/resources/scss/src/apps/website/home/TabContainer.scss +0 -117
  140. package/resources/scss/theme-dark/apps/website/HeaderContainer.scss +0 -5
  141. package/resources/scss/theme-dark/apps/website/MainContainer.scss +0 -4
  142. package/resources/scss/theme-dark/apps/website/blog/Container.scss +0 -3
  143. package/resources/scss/theme-dark/apps/website/home/TabContainer.scss +0 -4
  144. package/resources/scss/theme-light/apps/website/HeaderContainer.scss +0 -5
  145. package/resources/scss/theme-light/apps/website/MainContainer.scss +0 -4
  146. package/resources/scss/theme-light/apps/website/blog/Container.scss +0 -3
  147. package/resources/scss/theme-light/apps/website/home/TabContainer.scss +0 -4
  148. package/resources/scss/theme-neo-light/apps/website/HeaderContainer.scss +0 -5
  149. package/resources/scss/theme-neo-light/apps/website/MainContainer.scss +0 -4
  150. package/resources/scss/theme-neo-light/apps/website/blog/Container.scss +0 -3
  151. package/resources/scss/theme-neo-light/apps/website/home/TabContainer.scss +0 -4
@@ -48,12 +48,12 @@ class TutorialComponent extends Component {
48
48
  url = '../../docs/tutorials/' + me.fileName;
49
49
 
50
50
  Neo.Xhr[isJson ? 'promiseJson' : 'promiseRequest']({
51
- url: url
51
+ url
52
52
  }).then(data => {
53
- setTimeout(() => { // ensure we are not mounting
53
+ me.timeout(100).then(() => { // ensure we are not mounting
54
54
  me.applySourceCode(isJson ? data.json : data.response);
55
- }, 100);
56
- });
55
+ })
56
+ })
57
57
  }
58
58
 
59
59
  /**
@@ -64,16 +64,16 @@ class TutorialComponent extends Component {
64
64
  let me = this;
65
65
 
66
66
  if (me.fileType === 'json') {
67
- me.vdom.cn = data;
67
+ me.vdom.cn = data
68
68
  } else {
69
- me.vdom.innerHTML = data;
69
+ me.vdom.innerHTML = data
70
70
  }
71
71
 
72
72
  me.update();
73
73
 
74
- setTimeout(() => {
75
- TutorialComponent.syntaxHighlight();
76
- }, 50);
74
+ me.timeout(50).then(() => {
75
+ TutorialComponent.syntaxHighlight()
76
+ })
77
77
  }
78
78
 
79
79
  /**
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='6.20.1'
23
+ * @member {String} version='6.22.0'
24
24
  */
25
- version: '6.20.1'
25
+ version: '6.22.0'
26
26
  }
27
27
 
28
28
  /**
@@ -176,10 +176,12 @@ class CountryGallery extends Gallery {
176
176
  onStoreLoad(items) {
177
177
  super.onStoreLoad(items);
178
178
 
179
- setTimeout(() => {
180
- this.selectOnMount = true;
181
- this.afterSetMounted(true, false);
182
- }, Neo.config.environment === 'development' ? 200 : 500);
179
+ let me = this;
180
+
181
+ me.timeout(Neo.config.environment === 'development' ? 200 : 500).then(() => {
182
+ me.selectOnMount = true;
183
+ me.afterSetMounted(true, false)
184
+ })
183
185
  }
184
186
  }
185
187
 
@@ -275,7 +275,7 @@ class Viewport extends BaseViewport {
275
275
  });
276
276
 
277
277
  if (me.showGitHubStarButton) {
278
- setTimeout(() => {
278
+ me.timeout(200).then(() => {
279
279
  let {windowId} = me,
280
280
  {windowIds} = Viewport;
281
281
 
@@ -289,7 +289,7 @@ class Viewport extends BaseViewport {
289
289
  windowId
290
290
  })
291
291
  }
292
- }, 200)
292
+ })
293
293
  }
294
294
  }
295
295
  }
@@ -85,7 +85,7 @@ class MainContainer extends ConfigurationViewport {
85
85
  name : 'group2',
86
86
  style : {marginTop: '10px'},
87
87
  value : me.exampleComponent.store.getAt(1).name
88
- }];
88
+ }]
89
89
  }
90
90
 
91
91
  /**
@@ -94,7 +94,7 @@ class MainContainer extends ConfigurationViewport {
94
94
  */
95
95
  changeSorting(direction, data) {
96
96
  if (data.value) {
97
- this.exampleComponent.store.sorters[0].direction = direction;
97
+ this.exampleComponent.store.sorters[0].direction = direction
98
98
  }
99
99
  }
100
100
 
@@ -112,7 +112,7 @@ class MainContainer extends ConfigurationViewport {
112
112
 
113
113
  list.store.on('sort', this.onStoreSort, this);
114
114
 
115
- return list;
115
+ return list
116
116
  }
117
117
 
118
118
  /**
@@ -120,20 +120,20 @@ class MainContainer extends ConfigurationViewport {
120
120
  * @param {Object} data
121
121
  */
122
122
  onGroupNameChange(index, data) {
123
- this.exampleComponent.items[index].title = data.value;
123
+ this.exampleComponent.items[index].title = data.value
124
124
  }
125
125
 
126
126
  /**
127
127
  * @param {Object} data
128
128
  */
129
129
  onStoreSort(data) {
130
- setTimeout(() => {
130
+ this.timeout(10).then(() => {
131
131
  let me = this,
132
132
  items = me.exampleComponent.items;
133
133
 
134
134
  me.down({name: 'group1'}).value = items[0].title;
135
- me.down({name: 'group2'}).value = items[1].title;
136
- }, 10);
135
+ me.down({name: 'group2'}).value = items[1].title
136
+ })
137
137
  }
138
138
  }
139
139
 
@@ -17,7 +17,7 @@ class MainContainerController extends Component {
17
17
  * @param {Object} data
18
18
  */
19
19
  onActiveIndexChange(data) {
20
- console.log('onActiveIndexChange', data);
20
+ console.log('onActiveIndexChange', data)
21
21
  }
22
22
 
23
23
  /**
@@ -26,13 +26,13 @@ class MainContainerController extends Component {
26
26
  onMounted(id) {
27
27
  console.log('onMounted', id);
28
28
 
29
- setTimeout(() => {
29
+ this.timeout(3000).then(() => {
30
30
  Neo.ServiceWorker.preloadAssets({
31
31
  files: ['https://raw.githubusercontent.com/neomjs/pages/main/resources_pub/examples/ai_images/000074.jpg']
32
32
  }).then(data => {
33
- console.log(data);
34
- });
35
- }, 3000)
33
+ console.log(data)
34
+ })
35
+ })
36
36
  }
37
37
  }
38
38
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "6.20.1",
3
+ "version": "6.22.0",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -52,15 +52,15 @@
52
52
  "envinfo": "^7.13.0",
53
53
  "fs-extra": "^11.2.0",
54
54
  "highlightjs-line-numbers.js": "^2.8.0",
55
- "inquirer": "^10.1.2",
56
- "marked": "^13.0.2",
55
+ "inquirer": "^10.1.4",
56
+ "marked": "^13.0.3",
57
57
  "monaco-editor": "^0.50.0",
58
58
  "neo-jsdoc": "1.0.1",
59
59
  "neo-jsdoc-x": "1.0.5",
60
- "postcss": "^8.4.39",
60
+ "postcss": "^8.4.40",
61
61
  "sass": "^1.77.8",
62
62
  "siesta-lite": "5.5.2",
63
- "url": "^0.11.3",
63
+ "url": "^0.11.4",
64
64
  "webpack": "^5.93.0",
65
65
  "webpack-cli": "^5.1.4",
66
66
  "webpack-dev-server": "^5.0.4",
@@ -328,11 +328,9 @@ class MainView extends Container {
328
328
  Neo.setupClass(MainView);
329
329
  </pre>
330
330
 
331
- ##
331
+ ##How are events set up?
332
332
 
333
- [Add content on listeners options here]
334
-
335
- How are events set up? The details don't really matter, but in case you're curious:
333
+ The details don't really matter, but in case you're curious:
336
334
  Neo.mjs has a `Neo.core.Observable` class that can be mixed into any class. It maintains
337
335
  a `listeners` object map that's a key-value pair, where the key is the event name, and
338
336
  the value is an array of function references. The first time a listener is added, an
@@ -0,0 +1,46 @@
1
+ ###Multi-Window Apps
2
+
3
+ - No need for a native shell (such as Electron)
4
+ - Sharing data across Windows
5
+ - Sharing state across Windows
6
+ - Moving components across windows while keeping the same JS instances
7
+
8
+ ###Multi-threading
9
+
10
+ - Following the OMT (Off the Main-Thread) paradigm
11
+ - Your apps & the framework live within an application worker
12
+ - Non-blocking, no-freeze, user interaction responses, even for heavy data i/o, processing, and intensive, complex screen updating
13
+ - Additional Workers for OffscreenCanvas, Data, Delta-Updates & Tasks
14
+ - A ServiceWorker connected to the App Worker for predictive Caching
15
+
16
+ ###Modern JavaScript directly in your Browser
17
+
18
+ - The Dev-Mode runs without the need for Transpilations or Compilations
19
+ - Using the latest ECMAScript Features, as soon as the Browser Support is there
20
+ - Simple and powerful Debugging
21
+ - Reduced Development Costs
22
+
23
+
24
+ ###Powerful Component-Library
25
+
26
+ - Declarative component-trees
27
+ - High order components
28
+ - Many out-of-the-box Components, including nested lazy-loaded forms
29
+ - Multiple themes, which can get nested
30
+
31
+ ###Elegant State Management
32
+
33
+ - Multiple communicating state-providers
34
+ - Observable
35
+ - Supporting different architectures like MVVM without enforcing them
36
+
37
+
38
+ ###Core Features
39
+
40
+ - RPC Layer (cross-realm, including Backends)
41
+ - Extensibility
42
+ - Scalability
43
+ - Class Config System
44
+ - Drag & Drop'
45
+ - Mixins, Plugins & Main-Thread Addons
46
+
@@ -1,11 +1,10 @@
1
- Why would an organization choose Neo.mjs?
1
+ Why do organizations choose Neo.mjs?
2
2
 
3
- - There are technical advantages relating to app development and debugging.
3
+ - Neo.mjs provides a lightning fast user experience, and is unique in its ability to allow multi-window applications.
4
4
 
5
- - For managerial reasons, because Neo.mjs scales well, is coded in standards-based
6
- modular JavaSciript.
5
+ - Neo.mjs applications scale well, from simple to extremely complex
6
+
7
+ - Neo.mjs uses standards-based Javascript, without library-specific addons or special transpilation
7
8
 
8
- - For strategic reasons &mdash; Neo.mjs provides a lightning fast user experience,
9
- and is unique in its ability to allow multi-window applications.
10
9
 
11
10
  Read on to learn more about Neo.mjs key features and benefits...
@@ -1,4 +1,4 @@
1
- Neo.mjs applications can also launch as <i>shared web workers</i>, which allows you to have a single
1
+ Neo.mjs applications can also launch using <i>shared web workers</i>, which allows you to have a single
2
2
  application run in multiple browser windows; those windows can be moved to multiple monitors.
3
3
 
4
4
  For example, you can have a data analysis application with a control panel on one monitor,
@@ -1,12 +1,13 @@
1
1
  {"data": [
2
2
  {"name": "Welcome!", "parentId": null, "isLeaf": true, "id": "Welcome" },
3
- {"name": "Why Neo.mjs?", "parentId": null, "isLeaf": false, "id": "WhyNeo"},
3
+ {"name": "Benefits?", "parentId": null, "isLeaf": false, "id": "WhyNeo"},
4
4
  {"name": "Introduction ", "parentId": "WhyNeo", "isLeaf": true, "id": "WhyNeo-Intro"},
5
5
  {"name": "Multi-Threaded", "parentId": "WhyNeo", "isLeaf": true, "id": "WhyNeo-Multi-Threaded"},
6
6
  {"name": "Extreme Speed", "parentId": "WhyNeo", "isLeaf": true, "id": "WhyNeo-Speed"},
7
- {"name": "Quick Application Development", "parentId": "WhyNeo", "isLeaf": true, "id": "WhyNeo-Quick"},
8
7
  {"name": "Multi-Window Applications", "parentId": "WhyNeo", "isLeaf": true, "id": "WhyNeo-Multi-Window"},
8
+ {"name": "Quick Application Development", "parentId": "WhyNeo", "isLeaf": true, "id": "WhyNeo-Quick"},
9
9
  {"name": "Complexity and Effort", "parentId": "WhyNeo", "isLeaf": true, "id": "WhyNeo-Effort"},
10
+ {"name": "Features and Benefits Summary", "parentId": "WhyNeo", "isLeaf": true, "id": "WhyNeo-Features"},
10
11
  {"name": "Getting Started", "parentId": null, "isLeaf": false, "id": "GettingStarted", "collapsed": true},
11
12
  {"name": "Setup", "parentId": "GettingStarted", "isLeaf": true, "id": "Setup", "hidden": false},
12
13
  {"name": "Workspaces and Applications", "parentId": "GettingStarted", "isLeaf": true, "id": "2023-10-14T19-25-08-153Z"},
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg width="100%" height="100%" viewBox="0 0 157 157" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;">
4
+ <style>
5
+ path {
6
+ stroke: #3E63DD;
7
+ }
8
+ @media (prefers-color-scheme: dark) {
9
+ path {
10
+ stroke: #fff;
11
+ }
12
+ }
13
+ </style>
14
+ <path d="M8.841,127.508L33.676,144.928L33.675,105.744L33.675,94.343L43.023,100.871L112.335,149.272L135.026,135.569L8.841,46.576L8.841,127.508Z" style="fill:white;fill-opacity:0;fill-rule:nonzero;stroke-width:11.89px;"/>
15
+ <path d="M144.867,30.661L120.032,13.241L120.033,52.425L120.034,63.826L110.686,57.298L41.374,8.897L18.682,22.6L144.867,111.593L144.867,30.661Z" style="fill:white;fill-opacity:0;fill-rule:nonzero;stroke-width:11.89px;"/>
16
+ </svg>
Binary file
@@ -1,4 +1,4 @@
1
- .portal-header-toolbar, .neo-toolbar {
1
+ .colors-header-toolbar.neo-toolbar {
2
2
  > * {
3
3
  &:not(:last-child) {
4
4
  margin-right: .5em;
@@ -8,4 +8,26 @@
8
8
  .neo-checkboxfield {
9
9
  margin-left: 1em;
10
10
  }
11
+
12
+ @media (max-width: 600px) {
13
+ .header-spacer {
14
+ display: none;
15
+ }
16
+
17
+ .neo-checkboxfield {
18
+ display: none;
19
+ }
20
+
21
+ .neo-button {
22
+ .neo-button-glyph {
23
+ margin-right: 0;
24
+ }
25
+
26
+ .neo-button-text {
27
+ &:nth-child(2) {
28
+ display: none;
29
+ }
30
+ }
31
+ }
32
+ }
11
33
  }
@@ -6,4 +6,14 @@
6
6
  margin-top: 2em;
7
7
  }
8
8
  }
9
+
10
+ @media (max-width: 600px) {
11
+ padding: .1em;
12
+
13
+ > * {
14
+ &:not(:first-child) {
15
+ margin-top: .2em;
16
+ }
17
+ }
18
+ }
9
19
  }
@@ -1,5 +1,6 @@
1
- .learnneo-header-toolbar {
2
- border-bottom: 1px solid #f2f2f2;
1
+ .portal-header-toolbar {
2
+ box-shadow: 0 5px 10px rgba(0,0,0,.3);
3
+ z-index : 8;
3
4
 
4
5
  .logo {
5
6
  margin-left: 1em;
@@ -37,11 +38,10 @@
37
38
 
38
39
  .separate-bar {
39
40
  animation: fade-in-animation 200ms linear;
41
+ box-shadow: 0 5px 10px rgba(0,0,0,.3);
40
42
  position: absolute;
41
- right : 20px;
42
- top : 60px;
43
- transform: rotate(0);
44
- width : 40px;
43
+ right : 0;
44
+ top : 58px;
45
45
  z-index : 9;
46
46
  }
47
47
 
@@ -51,7 +51,7 @@
51
51
  }
52
52
  }
53
53
 
54
- .vector {
54
+ .logo-container {
55
55
  animation: fade-and-scale-animation auto linear;
56
56
  animation-timeline: --page-scroll;
57
57
  }
@@ -1,4 +1,14 @@
1
1
  .neo-viewport {
2
+ // sometimes when transitioning between card & cube layouts, the flex value does get lost
3
+ // see: https://github.com/neomjs/neo/issues/5637
4
+ .portal-main-content {
5
+ flex: 1 1 auto;
6
+
7
+ > * {
8
+ flex: 1 0 100%;
9
+ }
10
+ }
11
+
2
12
  .neo-layout-cube {
3
13
  &.neo-animate {
4
14
  .neo-box {
@@ -0,0 +1,4 @@
1
+ .portal-about-container {
2
+ overflow-y: auto;
3
+ padding : 0 3em 3em 3em;
4
+ }
@@ -0,0 +1,70 @@
1
+ .portal-about-member-container {
2
+ border : 1px solid var(--sem-color-border-default);
3
+ min-width: 600px;
4
+ padding : 1em 1em 4em;
5
+ position : relative;
6
+
7
+ &:not(:nth-child(2)) {
8
+ margin-top: 1em;
9
+ }
10
+
11
+ .portal-profile-component {
12
+ display: flex;
13
+
14
+ h2.portal-profile-name {
15
+ margin: .3em 0;
16
+ }
17
+
18
+ .portal-profile-content {
19
+ margin-top: 2em;
20
+ }
21
+
22
+ .portal-profile-location {
23
+ color : #777;
24
+ font-family : "Font Awesome 6 Free";
25
+ font-style : normal;
26
+ font-weight : 600;
27
+ margin-right: .5em;
28
+
29
+ &:before {
30
+ content: "\f3c5";
31
+ }
32
+ }
33
+
34
+ .portal-profile-picture {
35
+ border-radius: 50%;
36
+ height : 150px;
37
+ margin-right : 2em;
38
+ width : 150px;
39
+ }
40
+ }
41
+
42
+ .portal-profiles {
43
+ padding : 0;
44
+ position: absolute;
45
+ right : .5em;
46
+
47
+ .portal-profile {
48
+ font-size: 2em;
49
+ }
50
+ }
51
+
52
+ @media (max-width: 600px) {
53
+ min-width: 100%;
54
+ padding : 1em;
55
+
56
+ .portal-profiles {
57
+ flex-direction: column;
58
+ right : 0;
59
+ top : 0;
60
+ }
61
+
62
+ .portal-profile-component {
63
+ flex-direction: column;
64
+
65
+ .portal-profile-content {
66
+ margin-top: 1em;
67
+ }
68
+ }
69
+ }
70
+ }
@@ -28,4 +28,16 @@
28
28
  background-color: transparent;
29
29
  color : white;
30
30
  }
31
+
32
+ @media (max-width: 600px) {
33
+ padding: 1em;
34
+
35
+ h2.neo-h2 {
36
+ font-size: 1.2rem;
37
+ }
38
+
39
+ .neo-button {
40
+ padding: 0 3px;
41
+ }
42
+ }
31
43
  }
@@ -14,22 +14,22 @@
14
14
  100% {opacity: 1; transform: translateX(0);}
15
15
  }
16
16
 
17
- &:not(:first-child) {
18
- &:not(:last-child) {
19
- animation-timeline : view(block 100% -500%);
20
- animation-fill-mode : both;
21
- animation-duration : 1ms; /* Firefox requires this to apply the animation */
22
- animation-timing-function: linear;
23
-
24
- &:nth-child(even) {
25
- animation-name: appear-right;
26
- }
27
-
28
- &:nth-child(odd) {
29
- animation-name: appear-left;
30
- }
31
- }
32
- }
17
+ // &:not(:first-child) {
18
+ // &:not(:last-child) {
19
+ // animation-timeline : view(block 100% -500%);
20
+ // animation-fill-mode : both;
21
+ // animation-duration : 1ms; /* Firefox requires this to apply the animation */
22
+ // animation-timing-function: linear;
23
+
24
+ // &:nth-child(even) {
25
+ // animation-name: appear-right;
26
+ // }
27
+
28
+ // &:nth-child(odd) {
29
+ // animation-name: appear-left;
30
+ // }
31
+ // }
32
+ // }
33
33
 
34
34
  .neo-content {
35
35
  font-size: min(max(2.3vw, 16px), 30px);
@@ -1,35 +1,90 @@
1
+ @font-face {
2
+ font-family: "GT-Planar";
3
+ src: url("../../../../../../../../resources/fonts/GT-Planar-Regular.otf") format("opentype");
4
+ }
1
5
  .portal-home-main-neo.portal-home-content-view {
2
6
  padding: 3em;
3
7
 
8
+ .logo-container {
9
+ display : flex;
10
+ flex-direction : row;
11
+ flex-wrap : wrap;
12
+ gap : 20px;
13
+ min-width : 240px;
14
+ min-height : 130px;
15
+ }
16
+
4
17
  .button-group {
5
18
  display : flex;
6
19
  flex-direction: row-reverse;
7
20
  gap : 8px;
21
+ margin : 2rem 0px;
8
22
  }
9
23
 
10
24
  .neo-h1 {
11
- margin: 3rem;
25
+ font-size : 110px;
26
+ font-family: "GT-Planar";
27
+ }
28
+
29
+ .neo-h2 {
30
+ margin: 2rem;
31
+ }
32
+
33
+ .neo-h3 {
34
+ margin : 1rem 14rem;
35
+ max-width: 900px;
12
36
  }
13
37
 
14
38
  .vector {
15
- background-image : url("../../../../../../../../resources/images/logo/neo_logo_text_primary.svg");
39
+ background-image : url("../../../../../../../../resources/images/logo/neo_logo_primary.svg");
16
40
  background-position: center center;
17
41
  background-repeat : no-repeat;
18
42
  background-size : contain;
19
43
  height : 10VW;
20
44
  max-height : 130px;
21
- width : 100%;
45
+ min-height : 120px;
46
+ min-width : 140px;
22
47
  }
23
48
 
24
- @media (max-width: 600px) {
25
- padding: 3em 0.5em;
49
+ @media (max-width: 1000px) {
50
+ .neo-h3 {
51
+ margin: 1rem 10rem;
52
+ }
53
+ }
26
54
 
27
- .neo-h1 {
28
- margin: 2em 0;
55
+ @media (max-width: 900px) {
56
+ .neo-h3 {
57
+ margin: 1rem 7rem;
58
+ }
59
+ }
60
+
61
+ @media (max-width: 645px) {
62
+ padding: 1.5em 0.5em;
63
+
64
+ .neo-h2 {
65
+ margin: 0.5rem 0;
66
+ }
67
+
68
+ .neo-h3 {
69
+ margin: 1rem 2rem;
29
70
  }
30
71
 
31
72
  .vector {
32
73
  height: 17VW;
33
74
  }
75
+
76
+ .button-group {
77
+ margin: 0.5rem 0;
78
+ }
79
+ }
80
+
81
+ @media (max-width: 500px) {
82
+ .neo-h1 {
83
+ font-size: 100px;
84
+ }
85
+
86
+ .neo-h2 {
87
+ margin: 0.5rem 2rem;
88
+ }
34
89
  }
35
90
  }
@@ -11,6 +11,7 @@
11
11
  pre[data-javascript] {
12
12
  border : thin solid lightgray;
13
13
  border-radius: 4px;
14
+ min-width : fit-content;
14
15
  padding : 12px;
15
16
  }
16
17