neo.mjs 6.19.2 → 6.19.4

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.
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='6.19.2'
23
+ * @member {String} version='6.19.4'
24
24
  */
25
- version: '6.19.2'
25
+ version: '6.19.4'
26
26
  }
27
27
 
28
28
  /**
@@ -1,9 +1,11 @@
1
1
  import AfterMath from './parts/AfterMath.mjs';
2
2
  import Colors from './parts/Colors.mjs';
3
3
  import Container from '../../../../src/container/Base.mjs';
4
+ import Features from './parts/Features.mjs';
4
5
  import Helix from './parts/Helix.mjs';
5
6
  import How from './parts/How.mjs';
6
7
  import MainNeo from './parts/MainNeo.mjs';
8
+
7
9
  // import References from './parts/References.mjs';
8
10
 
9
11
  /**
@@ -38,11 +40,11 @@ class MainContainer extends Container {
38
40
  items: [
39
41
  {ntype: 'component', cls: ['portal-home-progress']},
40
42
  MainNeo,
41
- // References,
42
- // Features,
43
+ Features,
43
44
  Helix,
44
45
  Colors,
45
46
  How,
47
+ // References,
46
48
  AfterMath
47
49
  ],
48
50
  /**
@@ -24,6 +24,7 @@ class Colors extends BaseContainer {
24
24
  */
25
25
  items: [{
26
26
  ntype : 'container',
27
+ cls : ['portal-content-text'],
27
28
  flex : '1',
28
29
  style : {padding: '2rem'},
29
30
  layout: {ntype: 'vbox', align: 'center', pack: 'center'},
@@ -25,23 +25,71 @@ class Features extends BaseContainer {
25
25
  */
26
26
  items: [{
27
27
  module: ContentBox,
28
- header: 'Next-Generation Runtime',
28
+ header: 'Multi-Window Apps',
29
29
  route : '#/learn/WhyNeo-Quick',
30
30
 
31
31
  content: [
32
- 'Multi-threaded',
33
- 'Elegant state management',
34
- 'Simple and powerful debugging'
32
+ 'No need for a Native Shell (e.g. Electron)',
33
+ 'Sharing Data across Windows',
34
+ 'Sharing State across Windows',
35
+ 'Moving Components across Windows while keeping the same JS instances'
35
36
  ]
36
37
  }, {
37
38
  module: ContentBox,
38
- header: 'Extreme Speed',
39
+ header: 'Multi-threading',
40
+ route : '#/learn/WhyNeo-Quick',
41
+
42
+ content: [
43
+ 'Following the OMT (Off the Main-Thread) paradigm',
44
+ 'Your Apps & the Framework live within an Application Worker',
45
+ 'Non-blocking, no-freeze, user interaction responses, even for heavy data i/o, processing, and intensive, complex screen updating',
46
+ 'Additional Workers for OffscreenCanvas, Data, Delta-Updates & Tasks',
47
+ 'A ServiceWorker connected to the App Worker for predictive Caching'
48
+ ]
49
+ }, {
50
+ module: ContentBox,
51
+ header: 'Modern JavaScript directly in your Browser',
52
+ route : '#/learn/WhyNeo-Quick',
53
+
54
+ content: [
55
+ 'The Dev-Mode runs without the need for Transpilations or Compilations',
56
+ 'Using the latest ECMAScript Features, as soon as the Browser Support is there',
57
+ 'Simple and powerful Debugging',
58
+ 'Reduced Development Costs'
59
+ ]
60
+ }, {
61
+ module: ContentBox,
62
+ header: 'Powerful Component-Library',
63
+ route : '#/learn/WhyNeo-Quick',
64
+
65
+ content: [
66
+ 'Declarative Component-Trees',
67
+ 'High Order Components',
68
+ 'Many out-of-the-box Components, including nested lazy-loaded forms',
69
+ 'Multiple themes, which can get nested'
70
+ ]
71
+ }, {
72
+ module: ContentBox,
73
+ header: 'Elegant State Management',
74
+ route : '#/learn/WhyNeo-Speed',
75
+
76
+ content: [
77
+ 'Multiple communicating State-Providers',
78
+ 'Observable',
79
+ 'Supporting different architectures like MVVM without enforcing them'
80
+ ]
81
+ }, {
82
+ module: ContentBox,
83
+ header: 'Core Features',
39
84
  route : '#/learn/WhyNeo-Speed',
40
85
 
41
86
  content: [
42
- 'Multi-threaded',
43
- 'Over 40,000 delta updates per second',
44
- 'Item 3'
87
+ 'RPC Layer (cross-realm, including Backends)',
88
+ 'Extensibility',
89
+ 'Scalability',
90
+ 'Class Config System',
91
+ 'Drag & Drop',
92
+ 'Mixins, Plugins & Main-Thread Addons'
45
93
  ]
46
94
  }]
47
95
  }
@@ -24,6 +24,7 @@ class Helix extends BaseContainer {
24
24
  */
25
25
  items: [{
26
26
  ntype : 'container',
27
+ cls : ['portal-content-text'],
27
28
  flex : '1',
28
29
  style : {padding: '2rem'},
29
30
  layout: {ntype: 'vbox', align: 'center', pack: 'center'},
@@ -23,6 +23,7 @@ class How extends BaseContainer {
23
23
  */
24
24
  items: [{
25
25
  ntype : 'container',
26
+ cls : ['portal-content-text'],
26
27
  flex : '1',
27
28
  style : {padding: '2rem'},
28
29
  layout: {ntype: 'vbox', align: 'center', pack: 'center'},
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='6.19.2'
23
+ * @member {String} version='6.19.4'
24
24
  */
25
- version: '6.19.2'
25
+ version: '6.19.4'
26
26
  }
27
27
 
28
28
  /**
@@ -61,7 +61,7 @@ class MainContainer extends Viewport {
61
61
  },
62
62
 
63
63
  modelData: {
64
- currentDate: new Date('2021-07-20')
64
+ currentDate: new Date('2024-07-21')
65
65
  }
66
66
  }]
67
67
  }
@@ -5,8 +5,8 @@
5
5
  "id" : 1,
6
6
  "calendarId" : 1,
7
7
  "description": "Event 1 description",
8
- "endDate" : "Mon Jul 14 2021 11:15:00 GMT+0200",
9
- "startDate" : "Mon Jul 14 2021 09:15:00 GMT+0200",
8
+ "endDate" : "Mon Jul 14 2024 11:15:00 GMT+0200",
9
+ "startDate" : "Mon Jul 14 2024 09:15:00 GMT+0200",
10
10
  "title" : "Event 1"
11
11
  },
12
12
  {
@@ -15,8 +15,8 @@
15
15
  "id" : 2,
16
16
  "calendarId" : 1,
17
17
  "description": "Event 2 description",
18
- "endDate" : "Mon Jul 14 2021 13:15:00 GMT+0200",
19
- "startDate" : "Mon Jul 14 2021 11:30:00 GMT+0200",
18
+ "endDate" : "Mon Jul 14 2024 13:15:00 GMT+0200",
19
+ "startDate" : "Mon Jul 14 2024 11:30:00 GMT+0200",
20
20
  "title" : "Event 2"
21
21
  },
22
22
  {
@@ -25,8 +25,8 @@
25
25
  "id" : 3,
26
26
  "calendarId" : 1,
27
27
  "description": "Event 3 description",
28
- "endDate" : "Mon Jul 14 2021 15:00:00 GMT+0200",
29
- "startDate" : "Mon Jul 14 2021 13:45:00 GMT+0200",
28
+ "endDate" : "Mon Jul 14 2024 15:00:00 GMT+0200",
29
+ "startDate" : "Mon Jul 14 2024 13:45:00 GMT+0200",
30
30
  "title" : "Event 3 with a long title"
31
31
  },
32
32
  {
@@ -35,8 +35,8 @@
35
35
  "id" : 4,
36
36
  "calendarId" : 1,
37
37
  "description": "Event 4 description",
38
- "endDate" : "Mon Jul 14 2021 17:45:00 GMT+0200",
39
- "startDate" : "Mon Jul 14 2021 16:00:00 GMT+0200",
38
+ "endDate" : "Mon Jul 14 2024 17:45:00 GMT+0200",
39
+ "startDate" : "Mon Jul 14 2024 16:00:00 GMT+0200",
40
40
  "title" : "Event 4"
41
41
  },
42
42
  {
@@ -45,8 +45,8 @@
45
45
  "id" : 5,
46
46
  "calendarId" : 4,
47
47
  "description": "Description Text",
48
- "endDate" : "Mon Jul 19 2021 16:45:00 GMT+0200",
49
- "startDate" : "Mon Jul 19 2021 09:15:00 GMT+0200",
48
+ "endDate" : "Mon Jul 19 2024 16:45:00 GMT+0200",
49
+ "startDate" : "Mon Jul 19 2024 09:15:00 GMT+0200",
50
50
  "title" : "Coding"
51
51
  },
52
52
  {
@@ -55,8 +55,8 @@
55
55
  "id" : 6,
56
56
  "calendarId" : 1,
57
57
  "description": "Description Text",
58
- "endDate" : "Mon Jul 20 2021 16:45:00 GMT+0200",
59
- "startDate" : "Mon Jul 20 2021 09:15:00 GMT+0200",
58
+ "endDate" : "Mon Jul 20 2024 16:45:00 GMT+0200",
59
+ "startDate" : "Mon Jul 20 2024 09:15:00 GMT+0200",
60
60
  "title" : "Coding"
61
61
  },
62
62
  {
@@ -65,8 +65,8 @@
65
65
  "id" : 7,
66
66
  "calendarId" : 3,
67
67
  "description": "Eggs and bacon",
68
- "endDate" : "Wed Jul 22 2021 09:00:00 GMT+0200",
69
- "startDate" : "Wed Jul 22 2021 08:00:00 GMT+0200",
68
+ "endDate" : "Wed Jul 22 2024 09:00:00 GMT+0200",
69
+ "startDate" : "Wed Jul 22 2024 08:00:00 GMT+0200",
70
70
  "title" : "Breakfast"
71
71
  },
72
72
  {
@@ -75,8 +75,8 @@
75
75
  "id" : 8,
76
76
  "calendarId" : 6,
77
77
  "description": "Description Text 2",
78
- "endDate" : "Wed Jul 22 2021 14:00:00 GMT+0200",
79
- "startDate" : "Wed Jul 22 2021 12:00:00 GMT+0200",
78
+ "endDate" : "Wed Jul 22 2024 14:00:00 GMT+0200",
79
+ "startDate" : "Wed Jul 22 2024 12:00:00 GMT+0200",
80
80
  "title" : "Lunch Break 1"
81
81
  },
82
82
  {
@@ -85,8 +85,8 @@
85
85
  "id" : 9,
86
86
  "calendarId" : 5,
87
87
  "description": "Description Text 3",
88
- "endDate" : "Thu Jul 23 2021 14:00:00 GMT+0200",
89
- "startDate" : "Thu Jul 23 2021 12:00:00 GMT+0200",
88
+ "endDate" : "Thu Jul 23 2024 14:00:00 GMT+0200",
89
+ "startDate" : "Thu Jul 23 2024 12:00:00 GMT+0200",
90
90
  "title" : "Lunch Break 2"
91
91
  },
92
92
  {
@@ -95,8 +95,8 @@
95
95
  "id" : 10,
96
96
  "calendarId" : 2,
97
97
  "description": "Steak",
98
- "endDate" : "Thu Jul 23 2021 21:00:00 GMT+0200",
99
- "startDate" : "Thu Jul 23 2021 19:30:00 GMT+0200",
98
+ "endDate" : "Thu Jul 23 2024 21:00:00 GMT+0200",
99
+ "startDate" : "Thu Jul 23 2024 19:30:00 GMT+0200",
100
100
  "title" : "Dinner"
101
101
  },
102
102
  {
@@ -105,8 +105,8 @@
105
105
  "id" : 11,
106
106
  "calendarId" : 1,
107
107
  "description": "Description Text 3",
108
- "endDate" : "Wed Jul 29 2021 14:00:00 GMT+0200",
109
- "startDate" : "Wed Jul 29 2021 12:00:00 GMT+0200",
108
+ "endDate" : "Wed Jul 29 2024 14:00:00 GMT+0200",
109
+ "startDate" : "Wed Jul 29 2024 12:00:00 GMT+0200",
110
110
  "title" : "Lunch Break 3"
111
111
  },
112
112
  {
@@ -115,8 +115,8 @@
115
115
  "id" : 12,
116
116
  "calendarId" : 1,
117
117
  "description": "Description Text Siesta",
118
- "endDate" : "Wed Jul 29 2021 15:00:00 GMT+0200",
119
- "startDate" : "Wed Jul 29 2021 14:00:00 GMT+0200",
118
+ "endDate" : "Wed Jul 29 2024 15:00:00 GMT+0200",
119
+ "startDate" : "Wed Jul 29 2024 14:00:00 GMT+0200",
120
120
  "title" : "Siesta"
121
121
  }
122
122
  ]
@@ -29,7 +29,7 @@ class MainContainer extends Viewport {
29
29
  model: {
30
30
  module: MainContainerModel,
31
31
  data : {
32
- currentDate: new Date('2021-07-20')
32
+ currentDate: new Date('2024-07-21')
33
33
  }
34
34
  },
35
35
  /**
@@ -80,6 +80,7 @@ class Viewport extends BaseViewport {
80
80
  }, {
81
81
  module : Panel,
82
82
  layout : {ntype: 'vbox', align: 'stretch'},
83
+ cls : ['neo-helix-controls-panel'],
83
84
  reference: 'controls-panel',
84
85
  style : {backgroundColor: '#2b2b2b'},
85
86
  width : 250,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "6.19.2",
3
+ "version": "6.19.4",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -52,7 +52,7 @@
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.0.4",
55
+ "inquirer": "^10.1.0",
56
56
  "marked": "^13.0.2",
57
57
  "monaco-editor": "^0.50.0",
58
58
  "neo-jsdoc": "1.0.1",
@@ -1,4 +1,3 @@
1
- Neo.mjs applications can be very complex, but the relationship between complexity and effort is nearly linear. In a typical frameworks, trivial applications are simple to implement, but complex applications can be very expensive
2
- and difficult to implement.
1
+ WIth Neo.mjs applications, the relationship between complexity and effort is nearly linear. In a typical frameworks, trivial applications are simple to implement, but complex applications can be very expensive and difficult to implement.
3
2
 
4
3
  <img width="85%" src="https://s3.amazonaws.com/mjs.neo.learning.images/whyneo/ComplexityAndEffort.png"></img>
@@ -23,9 +23,14 @@
23
23
 
24
24
  .neo-button-glyph {
25
25
  &.neo-logo-blue {
26
- background-image: url("../../../../../../resources/images/logo/neo_logo_primary.svg");
27
- height : 24px;
28
- width : 24px;
26
+ background-image : url("../../../../../../resources/images/logo/neo_logo_primary.svg");
27
+ background-position: center center;
28
+ background-repeat : no-repeat;
29
+ background-size : contain;
30
+ height : 24px;
31
+ min-height : 24px;
32
+ min-width : 24px;
33
+ width : 24px;
29
34
  }
30
35
  }
31
36
  }
@@ -2,7 +2,6 @@
2
2
  border : 1px solid darkgray;
3
3
  cursor : pointer;
4
4
  color : #000;
5
- height : 200px;
6
5
  margin-top : 2em;
7
6
  padding : 0 1em 1em 1em;
8
7
  text-decoration: none;
@@ -23,4 +22,8 @@
23
22
  .portal-content-box-header {
24
23
 
25
24
  }
25
+
26
+ @media (max-width: 600px) {
27
+ margin-right: 0;
28
+ }
26
29
  }
@@ -53,4 +53,11 @@
53
53
  .page-live-preview {
54
54
  margin: 0;
55
55
  }
56
+
57
+ .portal-content-text {
58
+ @media (max-width: 600px) {
59
+ justify-content: start;
60
+ overflow-y : auto;
61
+ }
62
+ }
56
63
  }
@@ -1,3 +1,5 @@
1
1
  .portal-home-features {
2
- padding: 3em;
2
+ padding : 3em;
3
+ overflow-y : auto;
4
+ place-content: start;
3
5
  }
@@ -16,8 +16,20 @@
16
16
  background-position: center center;
17
17
  background-repeat : no-repeat;
18
18
  background-size : contain;
19
- height : 10vW;
19
+ height : 10VW;
20
20
  max-height : 130px;
21
21
  width : 100%;
22
22
  }
23
+
24
+ @media (max-width: 600px) {
25
+ padding: 3em 0.5em;
26
+
27
+ .neo-h1 {
28
+ margin: 2em 0;
29
+ }
30
+
31
+ .vector {
32
+ height: 17VW;
33
+ }
34
+ }
23
35
  }
@@ -16,6 +16,12 @@
16
16
  .neo-button-text, .neo-button-glyph {
17
17
  padding-top: 16px;
18
18
  }
19
+
20
+ .neo-button-text {
21
+ overflow : hidden;
22
+ text-overflow: ellipsis;
23
+ word-break : break-word;
24
+ }
19
25
  }
20
26
 
21
27
  .content-bottom-toolbar-previous:before {
@@ -1,6 +1,7 @@
1
1
  .portal-services-component {
2
2
  background-color: #fff !important;
3
- padding : 1em 6em;
3
+ overflow-y : auto;
4
+ padding : 0.1em 6em 1em 6em;
4
5
 
5
6
  .info-block {
6
7
  background-color: lighten(#8BA6FF, 10%);
@@ -17,4 +18,12 @@
17
18
  margin-right: auto;
18
19
  width : fit-content;
19
20
  }
21
+
22
+ @media (max-width: 600px) {
23
+ padding: 0.1em 1em 1em 1em;
24
+
25
+ .info-block {
26
+ padding: 0.1em 1em 1em 1em;
27
+ }
28
+ }
20
29
  }
@@ -1,7 +1,7 @@
1
1
  .website-header-container {
2
2
  background-blend-mode: overlay;
3
3
  background-color : #444;
4
- background-image : linear-gradient(#ddd, #999), url('https://raw.githubusercontent.com/neomjs/pages/master/resources/website/neo-background.png');
4
+ background-image : linear-gradient(#ddd, #999), url('https://raw.githubusercontent.com/neomjs/pages/master/resources_pub/website/neo-background.png');
5
5
  position : relative;
6
6
  transition : background-position 700ms ease-out, height var(--website-transition-duration) ease-out;
7
7
 
@@ -0,0 +1,16 @@
1
+ .neo-helix-controls-panel {
2
+ max-width: 50%;
3
+
4
+ @media (max-width: 600px) {
5
+ .neo-rangefield input[type=range] {
6
+ max-width: 80px;
7
+ }
8
+
9
+ .neo-textfield {
10
+ .neo-textfield-label {
11
+ font-size: 12px;
12
+ max-width: 70px;
13
+ }
14
+ }
15
+ }
16
+ }
@@ -260,12 +260,12 @@ const DefaultConfig = {
260
260
  useVdomWorker: true,
261
261
  /**
262
262
  * buildScripts/injectPackageVersion.mjs will update this value
263
- * @default '6.19.2'
263
+ * @default '6.19.4'
264
264
  * @memberOf! module:Neo
265
265
  * @name config.version
266
266
  * @type String
267
267
  */
268
- version: '6.19.2'
268
+ version: '6.19.4'
269
269
  };
270
270
 
271
271
  Object.assign(DefaultConfig, {
@@ -8,15 +8,6 @@ import NeoArray from '../../util/Array.mjs';
8
8
  * @extends Neo.component.Base
9
9
  */
10
10
  class Base extends Component {
11
- /**
12
- * @member {Object} delayable
13
- * @protected
14
- * @static
15
- */
16
- static delayable = {
17
- fireChangeEvent : {type: 'debounce', timer: 1000},
18
- fireUserChangeEvent: {type: 'debounce', timer: 1000}
19
- }
20
11
  /**
21
12
  * Valid values for isTouchedEvent
22
13
  * @member {String[]} isTouchedEvents=['focusEnter','focusLeave']