neo.mjs 7.6.0 → 7.8.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 (65) hide show
  1. package/apps/ServiceWorker.mjs +2 -2
  2. package/apps/portal/index.html +1 -1
  3. package/apps/portal/neo-config.json +1 -0
  4. package/apps/portal/resources/data/examples_devmode.json +20 -21
  5. package/apps/portal/resources/data/examples_dist_dev.json +19 -20
  6. package/apps/portal/resources/data/examples_dist_prod.json +19 -20
  7. package/apps/portal/view/ViewportController.mjs +20 -4
  8. package/apps/portal/view/home/FooterContainer.mjs +1 -1
  9. package/apps/portal/view/learn/{ContentView.mjs → ContentComponent.mjs} +98 -38
  10. package/apps/portal/view/learn/CubeLayoutButton.mjs +77 -0
  11. package/apps/portal/view/learn/MainContainerController.mjs +1 -0
  12. package/apps/portal/view/learn/PageContainer.mjs +4 -4
  13. package/apps/shareddialog/view/DemoDialog.mjs +2 -10
  14. package/apps/shareddialog/view/MainContainerController.mjs +137 -126
  15. package/buildScripts/webpack/json/myApps.template.json +1 -1
  16. package/examples/ServiceWorker.mjs +2 -2
  17. package/package.json +3 -3
  18. package/resources/data/deck/learnneo/pages/Welcome.md +1 -1
  19. package/resources/data/deck/learnneo/pages/benefits/FormsEngine.md +1 -1
  20. package/resources/data/deck/learnneo/pages/guides/PortalApp.md +35 -0
  21. package/resources/data/deck/learnneo/tree.json +1 -0
  22. package/resources/scss/src/apps/colors/TableContainer.scss +11 -9
  23. package/resources/scss/src/apps/portal/blog/List.scss +1 -0
  24. package/resources/scss/src/apps/portal/examples/List.scss +1 -0
  25. package/resources/scss/src/apps/portal/services/Component.scss +7 -8
  26. package/resources/scss/theme-dark/apps/docs/classdetails/MembersList.scss +3 -1
  27. package/resources/scss/theme-dark/button/Base.scss +3 -1
  28. package/resources/scss/theme-dark/list/Base.scss +3 -1
  29. package/resources/scss/theme-dark/table/header/Button.scss +3 -1
  30. package/resources/scss/theme-dark/tree/List.scss +3 -1
  31. package/resources/scss/theme-light/apps/covid/HeaderContainer.scss +6 -4
  32. package/resources/scss/theme-light/apps/docs/classdetails/MembersList.scss +3 -1
  33. package/resources/scss/theme-light/button/Base.scss +3 -1
  34. package/resources/scss/theme-light/grid/View.scss +8 -6
  35. package/resources/scss/theme-light/list/Base.scss +6 -4
  36. package/resources/scss/theme-light/table/View.scss +8 -6
  37. package/resources/scss/theme-light/table/header/Button.scss +3 -1
  38. package/resources/scss/theme-neo-light/apps/covid/HeaderContainer.scss +6 -4
  39. package/resources/scss/theme-neo-light/apps/docs/classdetails/MembersList.scss +3 -1
  40. package/resources/scss/theme-neo-light/design-tokens/Core.scss +11 -9
  41. package/resources/scss/theme-neo-light/grid/View.scss +8 -6
  42. package/resources/scss/theme-neo-light/table/View.scss +8 -6
  43. package/resources/scss/theme-neo-light/table/header/Button.scss +3 -1
  44. package/src/DefaultConfig.mjs +2 -2
  45. package/src/collection/Base.mjs +4 -3
  46. package/src/container/Base.mjs +12 -7
  47. package/src/draggable/DragProxyComponent.mjs +10 -20
  48. package/src/main/addon/Navigator.mjs +34 -32
  49. package/src/main/addon/WindowPosition.mjs +13 -15
  50. package/src/plugin/Resizable.mjs +20 -11
  51. package/src/tab/Container.mjs +5 -1
  52. package/src/table/View.mjs +2 -2
  53. package/test/siesta/siesta.js +1 -0
  54. package/test/siesta/tests/ManagerInstance.mjs +35 -0
  55. package/apps/krausest/README.md +0 -3
  56. package/apps/krausest/TableCollection.mjs +0 -46
  57. package/apps/krausest/app.mjs +0 -8
  58. package/apps/krausest/css/currentStyle.css +0 -2
  59. package/apps/krausest/css/main.css +0 -26
  60. package/apps/krausest/index.html +0 -12
  61. package/apps/krausest/neo-config.json +0 -10
  62. package/apps/krausest/view/MainComponent.mjs +0 -122
  63. package/apps/krausest/view/MainComponentController.mjs +0 -33
  64. package/apps/krausest/view/TableComponent.mjs +0 -152
  65. /package/resources/scss/src/apps/portal/learn/{ContentView.scss → ContentComponent.scss} +0 -0
@@ -1,7 +1,7 @@
1
1
  ## Forms include a State-Provider
2
2
 
3
3
  You do not need to define a state tree on your own.
4
- It if sufficient to just use namespaces inside the `name` attribute of each field.
4
+ It is sufficient to just use namespaces inside the `name` attribute of each field.
5
5
 
6
6
  <pre data-neo>
7
7
  import Button from '../button/Base.mjs';
@@ -0,0 +1,35 @@
1
+ ## Study the Code
2
+
3
+ As you hopefully have noticed by now, this entire multi-window app is created based on Neo.mjs.
4
+
5
+ You can learn a lot by studying the code-base carefully:
6
+ <a target="_blank" href="https://github.com/neomjs/neo/tree/dev/apps/portal">Portal App Code</a>
7
+
8
+ Please give us a heads-up, in case there are specific topics which you would like to see
9
+ getting covered here.
10
+
11
+ ## Easter Eggs
12
+
13
+ Every good app needs to have some meaningful Easter eggs.
14
+
15
+ ### Examples: Resort TabHeaderButtons via Drag&Drop
16
+
17
+ Did you notice that you can resort the Tabs inside <a href="#/examples">Examples</a>?
18
+
19
+ After re-sorting, the routing and the tab.Strip animations will still work. Enjoy!
20
+
21
+ ### Switch the main navigation layout to an animated Cube
22
+
23
+ Fair warning: this animated layout does require some advanced GPU processing power.
24
+ At the moment, it performs best using Firefox.
25
+
26
+ The setting will get stored inside the LocalStorage,
27
+ so you will need to click the following Button a 2nd time to deactivate it again.
28
+ Or you can clear the LocalStorage manually.</br></br>
29
+
30
+ <pre data-neo-component>
31
+ {
32
+ "className": "Portal.view.learn.CubeLayoutButton",
33
+ "style" : {"margin": 0}
34
+ }
35
+ </pre>
@@ -32,6 +32,7 @@
32
32
  {"name": "Events", "parentId": "InDepth", "isLeaf": false, "id": "GuideEvents"},
33
33
  {"name": "Custom Events", "parentId": "GuideEvents", "id": "guides.events.CustomEvents"},
34
34
  {"name": "DOM Events", "parentId": "GuideEvents", "id": "guides.events.DomEvents"},
35
+ {"name": "Portal App", "parentId": "InDepth", "id": "guides.PortalApp"},
35
36
  {"name": "Tables (Stores)", "parentId": "InDepth", "id": "guides.Tables", "hidden": true},
36
37
  {"name": "Multi-Window Applications", "parentId": "InDepth", "id": "guides.MultiWindow", "hidden": true},
37
38
  {"name": "Main Thread Addons", "parentId": "InDepth", "isLeaf": false, "id": "MainThreadAddons", "hidden": true},
@@ -1,3 +1,5 @@
1
+ @use "sass:color";
2
+
1
3
  $base-color: #1c60a0;
2
4
 
3
5
  .colors-table-container.neo-table-container {
@@ -8,39 +10,39 @@ $base-color: #1c60a0;
8
10
  }
9
11
 
10
12
  .color-2 {
11
- background-color: lighten($base-color, 5%);
13
+ background-color: color.adjust($base-color, $lightness: 5%);
12
14
  }
13
15
 
14
16
  .color-3 {
15
- background-color: lighten($base-color, 10%);
17
+ background-color: color.adjust($base-color, $lightness: 10%);
16
18
  }
17
19
 
18
20
  .color-4 {
19
- background-color: lighten($base-color, 15%);
21
+ background-color: color.adjust($base-color, $lightness: 15%);
20
22
  }
21
23
 
22
24
  .color-5 {
23
- background-color: lighten($base-color, 20%);
25
+ background-color: color.adjust($base-color, $lightness: 20%);
24
26
  }
25
27
 
26
28
  .color-6 {
27
- background-color: lighten($base-color, 25%);
29
+ background-color: color.adjust($base-color, $lightness: 25%);
28
30
  }
29
31
 
30
32
  .color-7 {
31
- background-color: lighten($base-color, 30%);
33
+ background-color: color.adjust($base-color, $lightness: 30%);
32
34
  }
33
35
 
34
36
  .color-8 {
35
- background-color: lighten($base-color, 35%);
37
+ background-color: color.adjust($base-color, $lightness: 35%);
36
38
  }
37
39
 
38
40
  .color-9 {
39
- background-color: lighten($base-color, 40%);
41
+ background-color: color.adjust($base-color, $lightness: 40%);
40
42
  }
41
43
 
42
44
  .color-10 {
43
- background-color: lighten($base-color, 45%);
45
+ background-color: color.adjust($base-color, $lightness: 45%);
44
46
  }
45
47
 
46
48
  .neo-index-column {
@@ -14,6 +14,7 @@
14
14
  transition: padding var(--portal-transition-duration) ease-out;
15
15
 
16
16
  .neo-list-item {
17
+ box-shadow : 0 5px 10px rgba(0, 0, 0, 0.3);
17
18
  cursor : default;
18
19
  display : flex;
19
20
  margin-left : auto;
@@ -14,6 +14,7 @@
14
14
  transition: padding var(--portal-transition-duration) ease-out;
15
15
 
16
16
  .neo-list-item {
17
+ box-shadow : 0 5px 10px rgba(0, 0, 0, 0.3);
17
18
  cursor : default;
18
19
  display : flex;
19
20
  max-width : 800px;
@@ -4,14 +4,13 @@
4
4
  padding : 0.1em 6em 1em 6em;
5
5
 
6
6
  .info-block {
7
- background-color: lighten(#8BA6FF, 10%);
8
- border-radius : 8px;
9
- box-shadow : 0 3px 6px rgba(0, 0, 0, 0.3);
10
- margin-left : auto;
11
- margin-right : auto;
12
- margin-top : 2em;
13
- max-width : 800px;
14
- padding : 0.5em 3em 1em 3em;
7
+ border : 1px solid var(--sem-color-border-default);
8
+ box-shadow : 0 3px 6px rgba(0, 0, 0, 0.3);
9
+ margin-left : auto;
10
+ margin-right: auto;
11
+ margin-top : 2em;
12
+ max-width : 800px;
13
+ padding : 0.5em 3em 1em 3em;
15
14
  }
16
15
 
17
16
  h1 {
@@ -1,9 +1,11 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-dark { // .docs-classhierarchy-memberslist
2
4
  --docs-classhierarchy-memberslist-background-color : #282b2b;
3
5
  --docs-memberlist-group-header-background-color : #33343d;
4
6
  --docs-memberlist-group-header-color : #bbb;
5
7
  --docs-param-table-list-item-background-color : #323232;
6
- --docs-param-table-list-item-background-image : linear-gradient(#{lighten(#323232, 2%)}, #323232);
8
+ --docs-param-table-list-item-background-image : linear-gradient(#{color.adjust(#323232, $lightness: 2%)}, #323232);
7
9
  --docs-param-table-list-item-header-background-clip: text;
8
10
  --docs-param-table-list-item-header-text-shadow : 2px 2px 3px rgba(200,200,200,0.1);
9
11
  --docs-param-table-list-item-highlight-search-color: #ccc;
@@ -1,3 +1,5 @@
1
+ @use "sass:color";
2
+
1
3
  $background-color: #3c3f41;
2
4
  $border-color : #2b2b2b;
3
5
  $border-style : solid;
@@ -32,7 +34,7 @@ $text-color : #bbb;
32
34
  --button-opacity-disabled : var(--neo-disabled-opacity);
33
35
  --button-outline-active : none;
34
36
  --button-padding : 5px 12px 5px 12px;
35
- --button-ripple-background-color : #{darken(#5d83a7, 10%)};
37
+ --button-ripple-background-color : #{color.adjust(#5d83a7, $lightness: -10%)};
36
38
  --button-text-color : #{$text-color};
37
39
  --button-text-color-active : #{$text-color};
38
40
  --button-text-color-disabled : #{$text-color};
@@ -1,9 +1,11 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-dark { // .neo-list-container
2
4
  --list-container-background-color : #33343d;
3
5
  --list-container-border : 1px solid #282829;
4
6
  --list-container-list-color : #bbb;
5
7
  --list-item-background-color : #33343d;
6
- --list-item-background-color-hover : #{lighten(#33343d, 10%)};
8
+ --list-item-background-color-hover : #{color.adjust(#33343d, $lightness: 10%)};
7
9
  --list-item-background-color-selected : #5a7082;
8
10
  --list-item-color-selected : #2b2b2b;
9
11
  --list-item-focus-outline : 1px solid #f6d199;
@@ -1,7 +1,9 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-dark { // .neo-table-header
2
4
  --table-header-button-background-color : #323232;
3
5
  --table-header-button-background-image : linear-gradient(#3c3f41, #323232);
4
6
  --table-header-button-color : #bbb;
5
7
  --table-header-button-glyph-color : #bbb;
6
- --table-header-button-ripple-background-color: #{darken(#5d83a7, 10%)};
8
+ --table-header-button-ripple-background-color: #{color.adjust(#5d83a7, $lightness: -10%)};
7
9
  }
@@ -1,4 +1,6 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-dark { // .neo-tree-list
2
4
  --tree-list-color : #bbb;
3
- --tree-list-menu-item-color: #{lighten(#33343d, 20%)};
5
+ --tree-list-menu-item-color: #{color.adjust(#33343d, $lightness: 20%)};
4
6
  }
@@ -1,10 +1,12 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-light { // .covid-header-container
2
4
  --covid-header-active-background-color : rgba(100, 181, 246, .65);
3
- --covid-header-active-color : #{darken(#64b5f6, 20%)};
5
+ --covid-header-active-color : #{color.adjust(#64b5f6, $lightness: -20%)};
4
6
  --covid-header-cases-background-color : rgba(187, 187, 187, .65);
5
- --covid-header-cases-color : #{darken(#bbb, 30%)};
7
+ --covid-header-cases-color : #{color.adjust(#bbb, $lightness: -30%)};
6
8
  --covid-header-deaths-background-color : rgba(251, 103, 103, .65);
7
- --covid-header-deaths-color : #{darken(#fb6767, 20%)};
9
+ --covid-header-deaths-color : #{color.adjust(#fb6767, $lightness: -20%)};
8
10
  --covid-header-recovered-background-color: rgba( 40, 218, 111, .65);
9
- --covid-header-recovered-color : #{darken(#28ca68, 20%)};
11
+ --covid-header-recovered-color : #{color.adjust(#28ca68, $lightness: -20%)};
10
12
  }
@@ -1,3 +1,5 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-light { // .docs-classhierarchy-memberslist
2
4
  --docs-classhierarchy-memberslist-background-color : #bbb;
3
5
  --docs-memberlist-group-header-background-color : steelblue;
@@ -8,7 +10,7 @@
8
10
  --docs-param-table-list-item-header-text-shadow : none;
9
11
  --docs-param-table-list-item-highlight-search-color: red;
10
12
  --docs-param-table-source-link-color : #bbb;
11
- --docs-param-table-source-link-color-hover : #{darken(#1c60a0, 10%)};
13
+ --docs-param-table-source-link-color-hover : #{color.adjust(#1c60a0, $lightness: -10%)};
12
14
  --docs-param-table-thead-background-color : slategray;
13
15
  --docs-param-table-thead-background-image : none;
14
16
  --docs-param-table-tr-background-clip : none;
@@ -1,3 +1,5 @@
1
+ @use "sass:color";
2
+
1
3
  $background-color: #fff;
2
4
  $border-color : #ddd;
3
5
  $border-style : solid;
@@ -31,7 +33,7 @@ $text-color : #1c60a0;
31
33
  --button-opacity-disabled : var(--neo-disabled-opacity);
32
34
  --button-outline-active : none;
33
35
  --button-padding : 5px 12px 5px 12px;
34
- --button-ripple-background-color : #{lighten($text-color, 50%)};
36
+ --button-ripple-background-color : #{color.adjust($text-color, $lightness: 50%)};
35
37
  --button-text-color : #{$text-color};
36
38
  --button-text-color-active : #{$text-color};
37
39
  --button-text-color-disabled : #{$text-color};
@@ -1,13 +1,15 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-light { // .neo-grid-view
2
- --grid-cell-background-color-hover : #{lighten(#33343d, 70%)};
3
- --grid-cellmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
4
+ --grid-cell-background-color-hover : #{color.adjust(#33343d, $lightness: 70%)};
5
+ --grid-cellmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
4
6
  --grid-cellmodel-selected-cell-color : #2b2b2b;
5
- --grid-cellmodel-selected-column-cell-background-color: #{lighten(#4f558a, 52%)};
7
+ --grid-cellmodel-selected-column-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
6
8
  --grid-cellmodel-selected-column-cell-color : #2b2b2b;
7
- --grid-cellrowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
9
+ --grid-cellrowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
8
10
  --grid-cellrowmodel-selected-cell-color : #2b2b2b;
9
- --grid-cellrowmodel-selected-row-cell-background-color: #{lighten(#4f558a, 52%)};
11
+ --grid-cellrowmodel-selected-row-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
10
12
  --grid-cellrowmodel-selected-row-cell-color : #2b2b2b;
11
- --grid-rowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
13
+ --grid-rowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
12
14
  --grid-rowmodel-selected-cell-color : #2b2b2b;
13
15
  }
@@ -1,14 +1,16 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-light { // .neo-list-container
2
4
  --list-container-background-color : #fff;
3
5
  --list-container-border : 0;
4
- --list-container-list-color : #{lighten(#33343d, 20%)};
6
+ --list-container-list-color : #{color.adjust(#33343d, $lightness: 20%)};
5
7
  --list-item-background-color : #fff;
6
- --list-item-background-color-hover : #{lighten(#33343d, 70%)};
7
- --list-item-background-color-selected : #{lighten(#64B5F6, 22%)};
8
+ --list-item-background-color-hover : #{color.adjust(#33343d, $lightness: 70%)};
9
+ --list-item-background-color-selected : #{color.adjust(#64B5F6, $lightness: 22%)};
8
10
  --list-item-color-selected : #2b2b2b;
9
11
  --list-item-focus-outline : 1px solid darkorange;
10
12
  --list-item-focus-outline-offset : -1px;
11
- --list-item-glyph-color : #{lighten(#33343d, 20%)};
13
+ --list-item-glyph-color : #{color.adjust(#33343d, $lightness: 20%)};
12
14
  --list-item-highlight-search-color : red;
13
15
  --list-item-padding : 5px;
14
16
  }
@@ -1,13 +1,15 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-light { // .neo-table-view
2
- --table-cell-background-color-hover : #{lighten(#33343d, 70%)};
3
- --table-cellmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
4
+ --table-cell-background-color-hover : #{color.adjust(#33343d, $lightness: 70%)};
5
+ --table-cellmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
4
6
  --table-cellmodel-selected-cell-color : #2b2b2b;
5
- --table-cellmodel-selected-column-cell-background-color: #{lighten(#4f558a, 52%)};
7
+ --table-cellmodel-selected-column-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
6
8
  --table-cellmodel-selected-column-cell-color : #2b2b2b;
7
- --table-cellrowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
9
+ --table-cellrowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
8
10
  --table-cellrowmodel-selected-cell-color : #2b2b2b;
9
- --table-cellrowmodel-selected-row-cell-background-color: #{lighten(#4f558a, 52%)};
11
+ --table-cellrowmodel-selected-row-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
10
12
  --table-cellrowmodel-selected-row-cell-color : #2b2b2b;
11
- --table-rowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
13
+ --table-rowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
12
14
  --table-rowmodel-selected-cell-color : #2b2b2b;
13
15
  }
@@ -1,7 +1,9 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-light { // .neo-table-header-button
2
4
  --table-header-button-background-color : #5d83a7;
3
5
  --table-header-button-background-image : none;
4
6
  --table-header-button-color : #fff;
5
7
  --table-header-button-glyph-color : #fff;
6
- --table-header-button-ripple-background-color: #{darken(#5d83a7, 10%)};
8
+ --table-header-button-ripple-background-color: #{color.adjust(#5d83a7, $lightness: -10%)};
7
9
  }
@@ -1,10 +1,12 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-neo-light { // .covid-header-container
2
4
  --covid-header-active-background-color : rgba(100, 181, 246, .65);
3
- --covid-header-active-color : #{darken(#64b5f6, 20%)};
5
+ --covid-header-active-color : #{color.adjust(#64b5f6, $lightness: -20%)};
4
6
  --covid-header-cases-background-color : rgba(187, 187, 187, .65);
5
- --covid-header-cases-color : #{darken(#bbb, 30%)};
7
+ --covid-header-cases-color : #{color.adjust(#bbb, $lightness: -30%)};
6
8
  --covid-header-deaths-background-color : rgba(251, 103, 103, .65);
7
- --covid-header-deaths-color : #{darken(#fb6767, 20%)};
9
+ --covid-header-deaths-color : #{color.adjust(#fb6767, $lightness: -20%)};
8
10
  --covid-header-recovered-background-color: rgba( 40, 218, 111, .65);
9
- --covid-header-recovered-color : #{darken(#28ca68, 20%)};
11
+ --covid-header-recovered-color : #{color.adjust(#28ca68, $lightness: -20%)};
10
12
  }
@@ -1,3 +1,5 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-neo-light { // .docs-classhierarchy-memberslist
2
4
  --docs-classhierarchy-memberslist-background-color : #bbb;
3
5
  --docs-memberlist-group-header-background-color : steelblue;
@@ -8,7 +10,7 @@
8
10
  --docs-param-table-list-item-header-text-shadow : none;
9
11
  --docs-param-table-list-item-highlight-search-color: red;
10
12
  --docs-param-table-source-link-color : #bbb;
11
- --docs-param-table-source-link-color-hover : #{darken(#1c60a0, 10%)};
13
+ --docs-param-table-source-link-color-hover : #{color.adjust(#1c60a0, $lightness: -10%)};
12
14
  --docs-param-table-thead-background-color : slategray;
13
15
  --docs-param-table-thead-background-image : none;
14
16
  --docs-param-table-tr-background-clip : none;
@@ -1,3 +1,5 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-neo-light {
2
4
  --black : #000000;
3
5
  --borderradius-0 : 0px;
@@ -28,16 +30,16 @@
28
30
  --gray-700 : #454B42;
29
31
  --gray-800 : #292D28;
30
32
  --gray-900 : #0E0F0D;
31
- --green-100 : #{lighten(#29F5AA, 70%)};
32
- --green-200 : #{lighten(#29F5AA, 50%)};
33
- --green-300 : #{lighten(#29F5AA, 20%)};
34
- --green-400 : #{lighten(#29F5AA, 10%)};
35
- --green-50 : #{lighten(#29F5AA, 85%)};
33
+ --green-100 : #{color.adjust(#29F5AA, $lightness: 70%)};
34
+ --green-200 : #{color.adjust(#29F5AA, $lightness: 50%)};
35
+ --green-300 : #{color.adjust(#29F5AA, $lightness: 20%)};
36
+ --green-400 : #{color.adjust(#29F5AA, $lightness: 10%)};
37
+ --green-50 : #{color.adjust(#29F5AA, $lightness: 85%)};
36
38
  --green-500 : #29F5AA;
37
- --green-600 : #{darken(#29F5AA, 10%)};
38
- --green-700 : #{darken(#29F5AA, 20%)};
39
- --green-800 : #{darken(#29F5AA, 40%)};
40
- --green-900 : #{darken(#29F5AA, 60%)};
39
+ --green-600 : #{color.adjust(#29F5AA, $lightness: -10%)};
40
+ --green-700 : #{color.adjust(#29F5AA, $lightness: -20%)};
41
+ --green-800 : #{color.adjust(#29F5AA, $lightness: -40%)};
42
+ --green-900 : #{color.adjust(#29F5AA, $lightness: -60%)};
41
43
  --height-16 : 16px;
42
44
  --height-2 : 2px;
43
45
  --height-24 : 24px;
@@ -1,13 +1,15 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-neo-light { // .neo-grid-view
2
- --grid-cell-background-color-hover : #{lighten(#33343d, 70%)};
3
- --grid-cellmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
4
+ --grid-cell-background-color-hover : #{color.adjust(#33343d, $lightness: 70%)};
5
+ --grid-cellmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
4
6
  --grid-cellmodel-selected-cell-color : #2b2b2b;
5
- --grid-cellmodel-selected-column-cell-background-color: #{lighten(#4f558a, 52%)};
7
+ --grid-cellmodel-selected-column-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
6
8
  --grid-cellmodel-selected-column-cell-color : #2b2b2b;
7
- --grid-cellrowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
9
+ --grid-cellrowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
8
10
  --grid-cellrowmodel-selected-cell-color : #2b2b2b;
9
- --grid-cellrowmodel-selected-row-cell-background-color: #{lighten(#4f558a, 52%)};
11
+ --grid-cellrowmodel-selected-row-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
10
12
  --grid-cellrowmodel-selected-row-cell-color : #2b2b2b;
11
- --grid-rowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
13
+ --grid-rowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
12
14
  --grid-rowmodel-selected-cell-color : #2b2b2b;
13
15
  }
@@ -1,13 +1,15 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-neo-light { // .neo-table-view
2
- --table-cell-background-color-hover : #{lighten(#33343d, 70%)};
3
- --table-cellmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
4
+ --table-cell-background-color-hover : #{color.adjust(#33343d, $lightness: 70%)};
5
+ --table-cellmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
4
6
  --table-cellmodel-selected-cell-color : #2b2b2b;
5
- --table-cellmodel-selected-column-cell-background-color: #{lighten(#4f558a, 52%)};
7
+ --table-cellmodel-selected-column-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
6
8
  --table-cellmodel-selected-column-cell-color : #2b2b2b;
7
- --table-cellrowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
9
+ --table-cellrowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
8
10
  --table-cellrowmodel-selected-cell-color : #2b2b2b;
9
- --table-cellrowmodel-selected-row-cell-background-color: #{lighten(#4f558a, 52%)};
11
+ --table-cellrowmodel-selected-row-cell-background-color: #{color.adjust(#4f558a, $lightness: 52%)};
10
12
  --table-cellrowmodel-selected-row-cell-color : #2b2b2b;
11
- --table-rowmodel-selected-cell-background-color : #{lighten(#64B5F6, 22%)};
13
+ --table-rowmodel-selected-cell-background-color : #{color.adjust(#64B5F6, $lightness: 22%)};
12
14
  --table-rowmodel-selected-cell-color : #2b2b2b;
13
15
  }
@@ -1,7 +1,9 @@
1
+ @use "sass:color";
2
+
1
3
  :root .neo-theme-neo-light { // .neo-table-header-button
2
4
  --table-header-button-background-color : #5d83a7;
3
5
  --table-header-button-background-image : none;
4
6
  --table-header-button-color : #fff;
5
7
  --table-header-button-glyph-color : #fff;
6
- --table-header-button-ripple-background-color: #{darken(#5d83a7, 10%)};
8
+ --table-header-button-ripple-background-color: #{color.adjust(#5d83a7, $lightness: -10%)};
7
9
  }
@@ -262,12 +262,12 @@ const DefaultConfig = {
262
262
  useVdomWorker: true,
263
263
  /**
264
264
  * buildScripts/injectPackageVersion.mjs will update this value
265
- * @default '7.6.0'
265
+ * @default '7.8.0'
266
266
  * @memberOf! module:Neo
267
267
  * @name config.version
268
268
  * @type String
269
269
  */
270
- version: '7.6.0'
270
+ version: '7.8.0'
271
271
  };
272
272
 
273
273
  Object.assign(DefaultConfig, {
@@ -990,12 +990,13 @@ class Base extends CoreBase {
990
990
  }
991
991
 
992
992
  /**
993
- * Helper method to check if a given value is either an object or a neo data record
993
+ * Helper method to check if a given input is either object-like or a key
994
994
  * @param {*} value
995
- * @returns {Boolean}
995
+ * @returns {Boolean} returns true for object-like values
996
996
  */
997
997
  isItem(value) {
998
- return Neo.isObject(value) || Neo.isRecord(value)
998
+ // We can not use Neo.isObject() || Neo.isRecord(), since collections can store neo instances too.
999
+ return typeof value === 'object'
999
1000
  }
1000
1001
 
1001
1002
  /**
@@ -87,7 +87,10 @@ class Base extends Component {
87
87
  */
88
88
  items_: [],
89
89
  /**
90
- * @member {Object} layout_={ntype: 'vbox', align: 'stretch'}
90
+ * It is crucial to define a layout before the container does get rendered.
91
+ * Meaning: onConstructed() is the latest life-cycle point.
92
+ * You can use layout: 'base', in case you do not need a layout at all.
93
+ * @member {Object|String|null} layout_={ntype: 'vbox', align: 'stretch'}
91
94
  */
92
95
  layout_: {
93
96
  ntype: 'vbox',
@@ -135,7 +138,7 @@ class Base extends Component {
135
138
  }
136
139
 
137
140
  /**
138
- * @param {Neo.layout.Base} value
141
+ * @param {Neo.layout.Base|null} value
139
142
  * @param {Neo.layout.Base|null} oldValue
140
143
  * @protected
141
144
  */
@@ -144,15 +147,15 @@ class Base extends Component {
144
147
 
145
148
  if (me.rendered) {
146
149
  oldValue?.removeRenderAttributes();
147
- value.applyRenderAttributes();
150
+ value?.applyRenderAttributes();
148
151
 
149
152
  me.items.forEach((item, index) => {
150
153
  oldValue?.removeChildAttributes(item, index);
151
- value.applyChildAttributes(item, index)
152
- });
153
-
154
- oldValue?.destroy()
154
+ value?.applyChildAttributes(item, index)
155
+ })
155
156
  }
157
+
158
+ oldValue?.destroy?.()
156
159
  }
157
160
 
158
161
  /**
@@ -419,6 +422,8 @@ class Base extends Component {
419
422
  * @param {Boolean} [silent=false] true to update the vdom silently (useful for destroying multiple child items in a row)
420
423
  */
421
424
  destroy(updateParentVdom=false, silent=false) {
425
+ this.layout?.destroy();
426
+
422
427
  this.items?.forEach(item => {
423
428
  item.destroy?.(false, true)
424
429
  });
@@ -25,9 +25,9 @@ class DragProxyComponent extends Base {
25
25
  */
26
26
  autoRender: true,
27
27
  /**
28
- * @member {String[]} cls=['neo-dragproxy']
28
+ * @member {String[]} baseCls=['neo-dragproxy']
29
29
  */
30
- cls: ['neo-dragproxy'],
30
+ baseCls: ['neo-dragproxy'],
31
31
  /**
32
32
  * @member {Boolean} moveInMainThread=true
33
33
  */
@@ -35,28 +35,18 @@ class DragProxyComponent extends Base {
35
35
  }
36
36
 
37
37
  /**
38
- * @param {Object} config
38
+ * Triggered after the mounted config got changed
39
+ * @param {Boolean} value
40
+ * @param {Boolean} oldValue
41
+ * @protected
39
42
  */
40
- construct(config) {
41
- super.construct(config);
43
+ afterSetMounted(value, oldValue) {
44
+ super.afterSetMounted(value, oldValue);
42
45
 
43
- let me = this;
44
-
45
- me.on('mounted', me.onMounted, me)
46
- }
47
-
48
- /**
49
- * @param {String} id
50
- */
51
- onMounted(id) {
52
- if (this.moveInMainThread) {
46
+ if (value && this.moveInMainThread) {
53
47
  let {appName, id, windowId} = this;
54
48
 
55
- Neo.main.addon.DragDrop.setDragProxyElement({
56
- appName,
57
- id,
58
- windowId
59
- })
49
+ Neo.main.addon.DragDrop.setDragProxyElement({appName, id, windowId})
60
50
  }
61
51
  }
62
52
  }