neo.mjs 6.18.0 → 6.18.2
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.
- package/apps/ServiceWorker.mjs +2 -2
- package/apps/colors/view/HeaderToolbar.mjs +6 -6
- package/apps/portal/view/HeaderToolbar.mjs +1 -2
- package/apps/portal/view/home/MainContainer.mjs +39 -8
- package/apps/portal/view/home/parts/AfterMath.mjs +19 -16
- package/apps/portal/view/home/parts/BaseContainer.mjs +31 -0
- package/apps/portal/view/home/parts/Colors.mjs +43 -19
- package/apps/portal/view/home/parts/Features.mjs +6 -6
- package/apps/portal/view/home/parts/Helix.mjs +55 -19
- package/apps/portal/view/home/parts/HelloWorld.mjs +11 -10
- package/apps/portal/view/home/parts/How.mjs +66 -0
- package/apps/portal/view/home/parts/MainNeo.mjs +17 -14
- package/examples/ServiceWorker.mjs +2 -2
- package/examples/model/dialog/EditUserDialog.mjs +1 -8
- package/package.json +1 -1
- package/resources/data/deck/learnneo/pages/Events.md +15 -9
- package/resources/data/deck/learnneo/pages/GuideEvents.md +142 -19
- package/resources/data/deck/learnneo/pages/GuideViewModels.md +444 -0
- package/resources/data/deck/learnneo/tree.json +1 -0
- package/resources/scss/src/apps/portal/HeaderToolbar.scss +143 -125
- package/resources/scss/src/apps/portal/home/MainContainer.scss +0 -45
- package/resources/scss/src/apps/portal/home/parts/BaseContainer.scss +27 -0
- package/resources/scss/src/apps/portal/home/parts/MainNeo.scss +24 -0
- package/resources/scss/src/apps/portal/learn/ContentTreeList.scss +1 -1
- package/resources/scss/src/calendar/view/EditEventContainer.scss +1 -1
- package/resources/scss/src/calendar/view/calendars/List.scss +1 -1
- package/resources/scss/src/dialog/Base.scss +1 -6
- package/resources/scss/theme-dark/dialog/Base.scss +1 -0
- package/resources/scss/theme-light/dialog/Base.scss +1 -0
- package/resources/scss/theme-neo-light/Global.scss +13 -11
- package/resources/scss/theme-neo-light/dialog/Base.scss +1 -0
- package/src/DefaultConfig.mjs +2 -2
- package/src/button/Base.mjs +3 -2
- package/src/calendar/view/EditEventContainer.mjs +1 -1
- package/src/component/Base.mjs +49 -16
- package/src/controller/Base.mjs +5 -5
- package/src/core/Observable.mjs +23 -7
- package/src/dialog/Base.mjs +23 -45
- package/src/form/field/Color.mjs +5 -5
- package/src/main/addon/IntersectionObserver.mjs +20 -1
- package/src/model/Component.mjs +11 -9
- package/src/selection/DateSelectorModel.mjs +2 -2
- package/src/util/HashHistory.mjs +45 -12
- package/src/worker/Base.mjs +15 -8
@@ -1,55 +1,54 @@
|
|
1
1
|
.learnneo-header-toolbar {
|
2
|
-
|
2
|
+
border-bottom: 1px solid #f2f2f2;
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
}
|
7
|
-
|
8
|
-
.neo-button {
|
9
|
-
margin-left: 10px;
|
10
|
-
|
11
|
-
&.no-text {
|
12
|
-
margin-left: 0;
|
13
|
-
width: 1.2em;
|
14
|
-
|
15
|
-
&.github-button {
|
16
|
-
margin-left: 5em;
|
17
|
-
}
|
18
|
-
|
19
|
-
.neo-button-glyph {
|
20
|
-
font-size: 24px;
|
21
|
-
}
|
4
|
+
.logo {
|
5
|
+
margin-left: 1em;
|
22
6
|
}
|
23
7
|
|
24
|
-
.neo-button
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
8
|
+
.neo-button {
|
9
|
+
margin-left: 10px;
|
10
|
+
|
11
|
+
&.no-text {
|
12
|
+
margin-left: 0;
|
13
|
+
width : 1.2em;
|
14
|
+
|
15
|
+
&.github-button {
|
16
|
+
margin-left: 5em;
|
17
|
+
}
|
18
|
+
|
19
|
+
.neo-button-glyph {
|
20
|
+
font-size: 24px;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
.neo-button-glyph {
|
25
|
+
&.neo-logo-blue {
|
26
|
+
background-image: url("../../../../../../resources/images/logo/neo_logo_primary.svg");
|
27
|
+
height : 24px;
|
28
|
+
width : 24px;
|
29
|
+
}
|
30
|
+
}
|
30
31
|
}
|
31
|
-
}
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
}
|
33
|
+
.separate-bar {
|
34
|
+
animation: fade-in-animation 200ms linear;
|
35
|
+
position: absolute;
|
36
|
+
right : 20px;
|
37
|
+
top : 60px;
|
38
|
+
transform: rotate(0);
|
39
|
+
width : 40px;
|
40
|
+
z-index : 9;
|
41
|
+
}
|
43
42
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
43
|
+
// find parallel class hide-sidebar
|
44
|
+
&:has(+div .hide-sidebar) .separate-bar {
|
45
|
+
animation: fade-animation 200ms linear forwards;
|
46
|
+
}
|
48
47
|
}
|
49
48
|
|
50
49
|
.vector {
|
51
|
-
|
52
|
-
|
50
|
+
animation: fade-and-scale-animation auto linear;
|
51
|
+
animation-timeline: --page-scroll;
|
53
52
|
}
|
54
53
|
|
55
54
|
//@scroll-timeline --page-scroll {
|
@@ -60,71 +59,72 @@
|
|
60
59
|
|
61
60
|
|
62
61
|
/* Style and position the progress bar */
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
62
|
+
.portal-home-progress {
|
63
|
+
position: fixed;
|
64
|
+
z-index: 1000;
|
65
|
+
top: 0;
|
66
|
+
height: 2px;
|
67
|
+
width: 100%;
|
68
|
+
background: var(--button-background-color);
|
69
|
+
background: var(--sem-color-surface-primary-background);
|
71
70
|
|
72
|
-
|
73
|
-
|
71
|
+
scale: 0 1;
|
72
|
+
transform-origin: left;
|
74
73
|
|
75
|
-
|
76
|
-
|
77
|
-
|
74
|
+
/* Attach the animation using an anonymous Scroll Progress Timeline */
|
75
|
+
animation: grow-progress linear;
|
76
|
+
animation-timeline: --page-scroll;
|
78
77
|
}
|
79
78
|
|
80
79
|
@keyframes grow-progress {
|
81
|
-
|
80
|
+
to {
|
81
|
+
scale: 1 1;
|
82
|
+
}
|
82
83
|
}
|
83
84
|
|
84
85
|
.hello-world {
|
85
|
-
|
86
|
+
animation-timeline: view(block 100% -500%);
|
86
87
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
88
|
+
animation-name: appear-animation;
|
89
|
+
animation-fill-mode: both;
|
90
|
+
animation-duration: 1ms; /* Firefox requires this to apply the animation */
|
91
|
+
animation-timing-function: linear;
|
91
92
|
}
|
92
93
|
|
93
94
|
@keyframes appear-animation {
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
95
|
+
0% {
|
96
|
+
transform: translateX(-400%);
|
97
|
+
opacity : 0;
|
98
|
+
}
|
99
|
+
90% {
|
100
|
+
opacity: .3;
|
101
|
+
}
|
102
|
+
100% {
|
103
|
+
transform: translateX(0);
|
104
|
+
opacity : 1;
|
105
|
+
}
|
105
106
|
}
|
106
107
|
|
107
108
|
.cool-stuff {
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
animation-timing-function: linear;
|
109
|
+
animation-timeline : view(block 100% -500%);
|
110
|
+
animation-name : appear-cool-stuff;
|
111
|
+
animation-fill-mode : both;
|
112
|
+
animation-duration : 1ms; /* Firefox requires this to apply the animation */
|
113
|
+
animation-timing-function: linear;
|
114
114
|
}
|
115
115
|
|
116
116
|
@keyframes appear-cool-stuff {
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
117
|
+
0% {
|
118
|
+
transform: translateX(400%);
|
119
|
+
opacity : 0;
|
120
|
+
}
|
121
|
+
90% {
|
122
|
+
opacity: .3;
|
123
|
+
}
|
124
|
+
100% {
|
125
|
+
transform: translateX(0);
|
126
|
+
opacity : 1;
|
127
|
+
}
|
128
128
|
}
|
129
129
|
|
130
130
|
|
@@ -133,65 +133,83 @@
|
|
133
133
|
//}
|
134
134
|
|
135
135
|
.portal-home-maincontainer {
|
136
|
-
|
136
|
+
scroll-timeline: --page-scroll block;
|
137
137
|
}
|
138
138
|
|
139
139
|
@keyframes rotateAnimation {
|
140
|
-
|
141
|
-
|
140
|
+
from {
|
141
|
+
transform: rotate(0deg);
|
142
|
+
}
|
143
|
+
to {
|
144
|
+
transform: rotate(360deg);
|
145
|
+
}
|
142
146
|
}
|
143
147
|
|
144
148
|
@keyframes fade-and-scale-animation {
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
149
|
+
0% {
|
150
|
+
opacity : 1;
|
151
|
+
transform: scale(1);
|
152
|
+
}
|
153
|
+
12%, 100% {
|
154
|
+
opacity : 0;
|
155
|
+
transform: scale(1.5);
|
156
|
+
}
|
153
157
|
}
|
154
158
|
|
155
159
|
@keyframes fade-in-animation {
|
156
|
-
|
157
|
-
|
160
|
+
from {
|
161
|
+
opacity: 0;
|
162
|
+
right : -10px
|
163
|
+
}
|
164
|
+
to {
|
165
|
+
opacity: 1;
|
166
|
+
right : 20px;
|
167
|
+
}
|
158
168
|
}
|
169
|
+
|
159
170
|
@keyframes fade-animation {
|
160
|
-
|
161
|
-
|
171
|
+
from {
|
172
|
+
opacity: 1;
|
173
|
+
right : 20px;
|
174
|
+
}
|
175
|
+
to {
|
176
|
+
opacity: 0;
|
177
|
+
right : -10px
|
178
|
+
}
|
162
179
|
}
|
163
180
|
|
164
181
|
.button-group {
|
165
|
-
|
182
|
+
overflow: visible;
|
166
183
|
}
|
167
184
|
|
168
185
|
.get-started-button {
|
169
|
-
|
170
|
-
|
186
|
+
opacity : 0;
|
187
|
+
animation: show-get-started-button 400ms 1300ms linear forwards;
|
171
188
|
}
|
172
189
|
|
173
190
|
.neo-github {
|
174
|
-
|
175
|
-
|
191
|
+
opacity : 0;
|
192
|
+
animation: show-github-button 600ms 1150ms linear forwards;
|
176
193
|
}
|
177
194
|
|
178
195
|
@keyframes show-get-started-button {
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
196
|
+
from {
|
197
|
+
opacity : 0;
|
198
|
+
transform: translate(70px, 30px);
|
199
|
+
}
|
200
|
+
to {
|
201
|
+
opacity : 1;
|
202
|
+
transform: translate(0, 0);
|
203
|
+
}
|
187
204
|
}
|
205
|
+
|
188
206
|
@keyframes show-github-button {
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
207
|
+
from {
|
208
|
+
opacity : 0;
|
209
|
+
transform: translate(-70px, 50px);
|
210
|
+
}
|
211
|
+
to {
|
212
|
+
opacity : 1;
|
213
|
+
transform: translate(0, 0);
|
214
|
+
}
|
197
215
|
}
|
@@ -2,49 +2,4 @@
|
|
2
2
|
overflow-x : hidden!important;
|
3
3
|
scroll-behavior : smooth;
|
4
4
|
scroll-snap-type: y mandatory;
|
5
|
-
|
6
|
-
.page {
|
7
|
-
min-height : 100%;
|
8
|
-
scroll-snap-align: center;
|
9
|
-
|
10
|
-
.neo-h1 {
|
11
|
-
font-size: min(max(5.5vw, 30px), 64px);
|
12
|
-
}
|
13
|
-
|
14
|
-
.neo-h2 {
|
15
|
-
font-size: min(max(3.5vw, 24px), 44px);
|
16
|
-
}
|
17
|
-
|
18
|
-
.neo-content {
|
19
|
-
font-size: min(max(2.3vw, 16px), 30px);
|
20
|
-
}
|
21
|
-
|
22
|
-
.page-live-preview {
|
23
|
-
margin: 0;
|
24
|
-
}
|
25
|
-
}
|
26
|
-
|
27
|
-
.button-group {
|
28
|
-
display : flex !important;
|
29
|
-
flex-direction: row-reverse !important;
|
30
|
-
gap : 8px !important;
|
31
|
-
}
|
32
|
-
|
33
|
-
.neo-h1 {
|
34
|
-
font-size : 32px;
|
35
|
-
font-weight : 600;
|
36
|
-
text-align : center;
|
37
|
-
margin-bottom: 1.25em;
|
38
|
-
}
|
39
|
-
|
40
|
-
.vector {
|
41
|
-
background-image : url("../../../../../../../resources/images/logo/neo_logo_text_primary.svg");
|
42
|
-
background-position: center center;
|
43
|
-
background-repeat : no-repeat;
|
44
|
-
background-size : contain;
|
45
|
-
height : 10vW;
|
46
|
-
margin : 0 0 3rem 0;
|
47
|
-
max-height : 130px;
|
48
|
-
width : 100%;
|
49
|
-
}
|
50
5
|
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
.portal-home-content-view {
|
2
|
+
min-height : 100%;
|
3
|
+
scroll-snap-align: center;
|
4
|
+
|
5
|
+
.neo-h1 {
|
6
|
+
font-size : min(max(5.5vw, 30px), 64px);
|
7
|
+
text-align : center;
|
8
|
+
margin : 0;
|
9
|
+
line-height: 1em;
|
10
|
+
}
|
11
|
+
|
12
|
+
.neo-h2 {
|
13
|
+
font-size : min(max(3.5vw, 24px), 44px);
|
14
|
+
font-weight: 600;
|
15
|
+
text-align : center;
|
16
|
+
margin : 0;
|
17
|
+
line-height: 1em;
|
18
|
+
}
|
19
|
+
|
20
|
+
.neo-content {
|
21
|
+
font-size: min(max(2.3vw, 16px), 30px);
|
22
|
+
}
|
23
|
+
|
24
|
+
.page-live-preview {
|
25
|
+
margin: 0;
|
26
|
+
}
|
27
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
.portal-home-main-neo.portal-home-content-view {
|
2
|
+
padding: 3em;
|
3
|
+
|
4
|
+
.button-group {
|
5
|
+
display : flex !important;
|
6
|
+
flex-direction: row-reverse !important;
|
7
|
+
gap : 8px !important;
|
8
|
+
}
|
9
|
+
|
10
|
+
.neo-h1 {
|
11
|
+
margin-bottom: 1.25em;
|
12
|
+
}
|
13
|
+
|
14
|
+
.vector {
|
15
|
+
background-image : url("../../../../../../../../resources/images/logo/neo_logo_text_primary.svg");
|
16
|
+
background-position: center center;
|
17
|
+
background-repeat : no-repeat;
|
18
|
+
background-size : contain;
|
19
|
+
height : 10vW;
|
20
|
+
margin : 0 0 3rem 0;
|
21
|
+
max-height : 130px;
|
22
|
+
width : 100%;
|
23
|
+
}
|
24
|
+
}
|
@@ -30,6 +30,7 @@
|
|
30
30
|
|
31
31
|
.neo-dialog {
|
32
32
|
border : 1px solid var(--dialog-border-color);
|
33
|
+
box-shadow : var(--dialog-box-shadow);
|
33
34
|
display : flex;
|
34
35
|
flex-direction: column;
|
35
36
|
|
@@ -61,12 +62,6 @@
|
|
61
62
|
}
|
62
63
|
}
|
63
64
|
|
64
|
-
&.neo-centered {
|
65
|
-
left : 50%;
|
66
|
-
top : 50%;
|
67
|
-
transform : translate(-50%, -50%);
|
68
|
-
}
|
69
|
-
|
70
65
|
&.neo-panel {
|
71
66
|
.neo-footer-toolbar {
|
72
67
|
border : none;
|
@@ -46,17 +46,19 @@
|
|
46
46
|
font-style: italic;
|
47
47
|
}
|
48
48
|
|
49
|
-
code
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
49
|
+
code {
|
50
|
+
&:not(.hljs) {
|
51
|
+
background-color: #F0F2F0;
|
52
|
+
border : 1px solid var(--sem-color-border-subtle);
|
53
|
+
border-radius : 4px;
|
54
|
+
color : var(--sem-color-fg-neutral-contrast);
|
55
|
+
font-family : var(--core-fontfamily-mono);
|
56
|
+
font-size : var(--core-fontsize-body);
|
57
|
+
font-weight : var(--core-fontweight-regular);
|
58
|
+
line-height : var(--core-lineheight-headline);
|
59
|
+
padding : 2px 0.3em;
|
60
|
+
font-size : 16px;
|
61
|
+
}
|
60
62
|
}
|
61
63
|
|
62
64
|
mark {
|
package/src/DefaultConfig.mjs
CHANGED
@@ -260,12 +260,12 @@ const DefaultConfig = {
|
|
260
260
|
useVdomWorker: true,
|
261
261
|
/**
|
262
262
|
* buildScripts/injectPackageVersion.mjs will update this value
|
263
|
-
* @default '6.18.
|
263
|
+
* @default '6.18.2'
|
264
264
|
* @memberOf! module:Neo
|
265
265
|
* @name config.version
|
266
266
|
* @type String
|
267
267
|
*/
|
268
|
-
version: '6.18.
|
268
|
+
version: '6.18.2'
|
269
269
|
};
|
270
270
|
|
271
271
|
Object.assign(DefaultConfig, {
|
package/src/button/Base.mjs
CHANGED
@@ -440,12 +440,13 @@ class Base extends Component {
|
|
440
440
|
* @protected
|
441
441
|
*/
|
442
442
|
changeRoute() {
|
443
|
-
let me
|
443
|
+
let me = this,
|
444
|
+
{windowId} = me;
|
444
445
|
|
445
446
|
if (me.editRoute) {
|
446
447
|
Neo.Main.editRoute(me.route)
|
447
448
|
} else {
|
448
|
-
Neo.Main.setRoute({value: me.route})
|
449
|
+
Neo.Main.setRoute({value: me.route, windowId})
|
449
450
|
}
|
450
451
|
}
|
451
452
|
|
@@ -239,7 +239,7 @@ class EditEventContainer extends FormContainer {
|
|
239
239
|
*/
|
240
240
|
onCalendarFieldChange(data) {
|
241
241
|
if (!Neo.isEmpty(data.value)) {
|
242
|
-
this.record.calendarId = data.
|
242
|
+
this.record.calendarId = data.value[data.component.store.keyProperty]
|
243
243
|
}
|
244
244
|
}
|
245
245
|
|