neo.mjs 7.0.6 → 7.2.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 (103) hide show
  1. package/README.md +2 -2
  2. package/apps/ServiceWorker.mjs +2 -2
  3. package/apps/portal/index.html +1 -1
  4. package/apps/portal/model/Content.mjs +3 -2
  5. package/apps/portal/model/Example.mjs +46 -0
  6. package/apps/portal/resources/data/examples_devmode.json +173 -0
  7. package/apps/portal/resources/data/examples_dist_dev.json +164 -0
  8. package/apps/portal/resources/data/examples_dist_prod.json +164 -0
  9. package/apps/portal/store/Examples.mjs +33 -0
  10. package/apps/portal/view/HeaderToolbar.mjs +3 -0
  11. package/apps/portal/view/Viewport.mjs +3 -2
  12. package/apps/portal/view/ViewportController.mjs +32 -14
  13. package/apps/portal/view/about/Container.mjs +2 -2
  14. package/apps/portal/view/blog/List.mjs +3 -3
  15. package/apps/portal/view/examples/List.mjs +122 -0
  16. package/apps/portal/view/examples/TabContainer.mjs +79 -0
  17. package/apps/portal/view/examples/TabContainerController.mjs +41 -0
  18. package/apps/portal/view/home/FooterContainer.mjs +1 -1
  19. package/apps/portal/view/home/parts/Features.mjs +5 -5
  20. package/apps/shareddialog/view/MainContainerController.mjs +37 -30
  21. package/examples/ServiceWorker.mjs +2 -2
  22. package/examples/todoList/version2/MainContainer.mjs +38 -48
  23. package/examples/todoList/version2/TodoList.mjs +6 -39
  24. package/examples/todoList/version2/TodoListModel.mjs +2 -2
  25. package/package.json +7 -7
  26. package/resources/data/deck/learnneo/pages/Welcome.md +0 -4
  27. package/resources/data/deck/learnneo/pages/guides/Forms.md +1 -0
  28. package/resources/data/deck/learnneo/pages/guides/InstanceLifecycle.md +1 -0
  29. package/resources/data/deck/learnneo/pages/guides/Layouts.md +1 -0
  30. package/resources/data/deck/learnneo/pages/guides/Mixins.md +1 -0
  31. package/resources/data/deck/learnneo/pages/guides/MultiWindow.md +1 -0
  32. package/resources/data/deck/learnneo/pages/guides/Tables.md +1 -0
  33. package/resources/data/deck/learnneo/pages/guides/events/DomEvents.md +263 -0
  34. package/resources/data/deck/learnneo/pages/{TodoList.md → tutorials/TodoList.md} +23 -33
  35. package/resources/data/deck/learnneo/tree.json +45 -48
  36. package/resources/scss/src/apps/portal/about/MemberContainer.scss +5 -4
  37. package/resources/scss/src/apps/portal/blog/Container.scss +2 -0
  38. package/resources/scss/src/apps/portal/examples/List.scss +157 -0
  39. package/resources/scss/src/apps/portal/examples/TabContainer.scss +36 -0
  40. package/resources/scss/src/button/Base.scss +4 -0
  41. package/resources/scss/src/calendar/view/calendars/ColorsList.scss +4 -0
  42. package/resources/scss/src/calendar/view/calendars/List.scss +2 -1
  43. package/resources/scss/src/dialog/Base.scss +2 -2
  44. package/resources/scss/src/list/Base.scss +3 -3
  45. package/resources/scss/theme-neo-light/button/Base.scss +3 -3
  46. package/src/DefaultConfig.mjs +2 -2
  47. package/src/calendar/view/MainContainer.mjs +7 -5
  48. package/src/calendar/view/calendars/EditContainer.mjs +3 -2
  49. package/src/calendar/view/calendars/List.mjs +1 -0
  50. package/src/calendar/view/week/Component.mjs +5 -3
  51. package/src/calendar/view/week/plugin/DragDrop.mjs +4 -3
  52. package/src/code/LivePreview.mjs +28 -1
  53. package/src/collection/Base.mjs +1 -0
  54. package/src/controller/Component.mjs +10 -10
  55. package/src/core/Observable.mjs +4 -27
  56. package/src/grid/View.mjs +82 -0
  57. package/src/layout/Cube.mjs +44 -38
  58. package/src/list/Base.mjs +16 -0
  59. package/src/main/addon/DragDrop.mjs +3 -2
  60. package/src/manager/DomEvent.mjs +30 -18
  61. package/src/table/View.mjs +82 -0
  62. package/src/util/Function.mjs +24 -0
  63. package/resources/data/deck/learnneo/pages/2023-10-08T20-37-30-658Z.md +0 -0
  64. package/resources/data/deck/learnneo/pages/2023-10-08T22-22-11-013Z.md +0 -0
  65. package/resources/data/deck/learnneo/pages/Earthquakes-01-goals.md +0 -32
  66. package/resources/data/deck/learnneo/pages/Earthquakes-Lab-01-generate-a-workspace.md +0 -47
  67. package/resources/data/deck/learnneo/pages/Earthquakes-Lab-02-generate-the-starter-app.md +0 -150
  68. package/resources/data/deck/learnneo/pages/Earthquakes-Lab-03-debugging.md +0 -136
  69. package/resources/data/deck/learnneo/pages/Earthquakes-Lab-04-fetch-data.md +0 -146
  70. package/resources/data/deck/learnneo/pages/Earthquakes-Lab-05-refactor-the-table.md +0 -146
  71. package/resources/data/deck/learnneo/pages/Earthquakes-Lab-06-use-a-view-model.md +0 -301
  72. package/resources/data/deck/learnneo/pages/Earthquakes-Lab-07-use-the-google-maps-addon.md +0 -175
  73. package/resources/data/deck/learnneo/pages/Earthquakes-Lab-08-events.md +0 -38
  74. package/resources/data/deck/learnneo/pages/TestLivePreview.md +0 -32
  75. package/resources/data/deck/learnneo/pages/WhatAboutHTML.md +0 -1
  76. package/resources/data/deck/learnneo/pages/stylesheet.md +0 -57
  77. /package/resources/data/deck/learnneo/pages/{WhyNeo-Effort.md → benefits/Effort.md} +0 -0
  78. /package/resources/data/deck/learnneo/pages/{WhyNeo-Features.md → benefits/Features.md} +0 -0
  79. /package/resources/data/deck/learnneo/pages/{WhyNeo-Intro.md → benefits/Introduction.md} +0 -0
  80. /package/resources/data/deck/learnneo/pages/{WhyNeo-Multi-Window.md → benefits/Multi-Window.md} +0 -0
  81. /package/resources/data/deck/learnneo/pages/{WhyNeo-Quick.md → benefits/Quick.md} +0 -0
  82. /package/resources/data/deck/learnneo/pages/{WhyNeo-Speed.md → benefits/Speed.md} +0 -0
  83. /package/resources/data/deck/learnneo/pages/{ComponentModels.md → gettingstarted/ComponentModels.md} +0 -0
  84. /package/resources/data/deck/learnneo/pages/{Config.md → gettingstarted/Config.md} +0 -0
  85. /package/resources/data/deck/learnneo/pages/{DescribingTheUI.md → gettingstarted/DescribingTheUI.md} +0 -0
  86. /package/resources/data/deck/learnneo/pages/{Events.md → gettingstarted/Events.md} +0 -0
  87. /package/resources/data/deck/learnneo/pages/{Extending.md → gettingstarted/Extending.md} +0 -0
  88. /package/resources/data/deck/learnneo/pages/{References.md → gettingstarted/References.md} +0 -0
  89. /package/resources/data/deck/learnneo/pages/{Setup.md → gettingstarted/Setup.md} +0 -0
  90. /package/resources/data/deck/learnneo/pages/{2023-10-14T19-25-08-153Z.md → gettingstarted/Workspaces.md} +0 -0
  91. /package/resources/data/deck/learnneo/pages/{ComponentsAndContainers.md → guides/ComponentsAndContainers.md} +0 -0
  92. /package/resources/data/deck/learnneo/pages/{CustomComponents.md → guides/CustomComponents.md} +0 -0
  93. /package/resources/data/deck/learnneo/pages/{MainThreadAddonExample.md → guides/MainThreadAddonExample.md} +0 -0
  94. /package/resources/data/deck/learnneo/pages/{MainThreadAddonIntro.md → guides/MainThreadAddonIntro.md} +0 -0
  95. /package/resources/data/deck/learnneo/pages/{GuideViewModels.md → guides/ViewModels.md} +0 -0
  96. /package/resources/data/deck/learnneo/pages/{GuideEvents.md → guides/events/CustomEvents.md} +0 -0
  97. /package/resources/data/deck/learnneo/pages/{2023-10-08T20-20-37-336Z.md → javascript/ClassFeatures.md} +0 -0
  98. /package/resources/data/deck/learnneo/pages/{2023-10-07T19-18-28-517Z.md → javascript/Classes.md} +0 -0
  99. /package/resources/data/deck/learnneo/pages/{2023-10-31T13-59-37-550Z.md → javascript/NewNode.md} +0 -0
  100. /package/resources/data/deck/learnneo/pages/{2023-10-08T20-20-07-934Z.md → javascript/Overrides.md} +0 -0
  101. /package/resources/data/deck/learnneo/pages/{2023-10-08T21-58-25-809Z.md → javascript/Super.md} +0 -0
  102. /package/resources/data/deck/learnneo/pages/{Earthquakes.md → tutorials/Earthquakes.md} +0 -0
  103. /package/resources/data/deck/learnneo/pages/{RSP.md → tutorials/RSP.md} +0 -0
@@ -1,50 +1,47 @@
1
1
  {"data": [
2
- {"name": "Welcome!", "parentId": null, "isLeaf": true, "id": "Welcome" },
3
- {"name": "Benefits", "parentId": null, "isLeaf": false, "id": "WhyNeo"},
4
- {"name": "Introduction ", "parentId": "WhyNeo", "isLeaf": true, "id": "WhyNeo-Intro"},
5
- {"name": "Off the Main Thread", "parentId": "WhyNeo", "isLeaf": true, "id": "benefits.Multi-Threading"},
6
- {"name": "Extreme Speed", "parentId": "WhyNeo", "isLeaf": true, "id": "WhyNeo-Speed"},
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
- {"name": "Complexity and Effort", "parentId": "WhyNeo", "isLeaf": true, "id": "WhyNeo-Effort"},
10
- {"name": "Forms Engine", "parentId": "WhyNeo", "isLeaf": true, "id": "benefits.FormsEngine"},
11
- {"name": "Features and Benefits Summary", "parentId": "WhyNeo", "isLeaf": true, "id": "WhyNeo-Features"},
12
- {"name": "Getting Started", "parentId": null, "isLeaf": false, "id": "GettingStarted", "collapsed": true},
13
- {"name": "Setup", "parentId": "GettingStarted", "isLeaf": true, "id": "Setup"},
14
- {"name": "Workspaces and Applications", "parentId": "GettingStarted", "isLeaf": true, "id": "2023-10-14T19-25-08-153Z"},
15
- {"name": "Describing a View", "parentId": "GettingStarted", "isLeaf": true, "id": "DescribingTheUI"},
16
- {"name": "Events", "parentId": "GettingStarted", "isLeaf": true, "id": "Events"},
17
- {"name": "Component References", "parentId": "GettingStarted", "isLeaf": true, "id": "References"},
18
- {"name": "Extending Classes", "parentId": "GettingStarted", "isLeaf": true, "id": "Extending"},
19
- {"name": "Config", "parentId": "GettingStarted", "isLeaf": true, "id": "Config"},
20
- {"name": "Shared Bindable Data", "parentId": "GettingStarted", "isLeaf": true, "id": "ComponentModels"},
21
- {"name": "Tutorials", "parentId": null, "isLeaf": false, "expanded": false, "id": "Tutorials", "collapsed": true},
22
- {"name": "Rock Scissors Paper", "parentId": "Tutorials", "isLeaf": true, "expanded": false, "id": "RSP", "hidden": true},
23
- {"name": "Earthquakes", "parentId": "Tutorials", "isLeaf": true, "expanded": false, "id": "Earthquakes", "collapsed": true},
24
- {"name": "Todo List", "parentId": "Tutorials", "isLeaf": true, "expanded": false, "id": "TodoList"},
25
- {"name": "Guides", "parentId": null, "isLeaf": false, "expanded": false, "id": "InDepth", "collapsed": true},
26
- {"name": "Config", "parentId": "InDepth", "isLeaf": false, "id": "Config"},
27
- {"name": "Instance Lifecycle", "parentId": "InDepth", "isLeaf": false, "id": "InstanceLifecycle", "hidden": true},
28
- {"name": "User Input (Forms)", "parentId": "InDepth", "isLeaf": false, "id": "Forms", "hidden": true},
29
- {"name": "Component and Container Basics", "parentId": "InDepth", "isLeaf": true, "id": "ComponentsAndContainers"},
30
- {"name": "Layouts", "parentId": "InDepth", "isLeaf": false, "id": "Layouts", "hidden": true},
31
- {"name": "View Models", "parentId": "InDepth", "isLeaf": true, "id": "GuideViewModels"},
32
- {"name": "Custom Components", "parentId": "InDepth", "isLeaf": true, "id": "CustomComponents", "hidden": true},
33
- {"name": "Events", "parentId": "InDepth", "isLeaf": true, "expanded": false, "id": "GuideEvents"},
34
- {"name": "Tables (Stores)", "parentId": "InDepth", "isLeaf": false, "id": "Tables", "hidden": true},
35
- {"name": "Shared Bindable Data (Component Models)", "parentId": "InDepth", "isLeaf": false, "id": "InDepthComponentModels", "hidden": true},
36
- {"name": "Multi-Window Applications", "parentId": "InDepth", "isLeaf": false, "id": "MultiWindow", "hidden": true},
37
- {"name": "Main Thread Addons", "parentId": "InDepth", "isLeaf": false, "id": "MainThreadAddons", "hidden": true},
38
- {"name": "Introduction", "parentId": "MainThreadAddons", "isLeaf": true, "id": "MainThreadAddonIntro"},
39
- {"name": "Example", "parentId": "MainThreadAddons", "isLeaf": true, "id": "MainThreadAddonExample"},
40
- {"name": "Mixins", "parentId": "InDepth", "isLeaf": false, "id": "Mixins", "hidden": true},
41
- {"name": "JavaScript Classes", "parentId": null, "isLeaf": false, "id": "JavaScriptClasses", "hidden": true},
42
- {"name": "Classes, Properties, and Methods", "parentId": "JavaScriptClasses", "isLeaf": true, "id": "2023-10-07T19-18-28-517Z"},
43
- {"name": "Overriding Methods", "parentId": "JavaScriptClasses", "isLeaf": true, "id": "2023-10-08T20-20-07-934Z"},
44
- {"name": "Other JavaScript Class Features", "parentId": "JavaScriptClasses", "isLeaf": true, "id": "2023-10-08T20-20-37-336Z"},
45
- {"name": "Super", "parentId": "JavaScriptClasses", "isLeaf": true, "id": "2023-10-08T21-58-25-809Z"},
46
- {"name": "New Node", "parentId": "JavaScriptClasses", "isLeaf": true, "id": "2023-10-31T13-59-37-550Z"},
47
- {"name": "Appendix", "parentId": null, "id": "appendix", "hidden": true, "collapsed": true},
48
- {"name": "Stylesheet", "parentId": "appendix", "isLeaf": true, "id": "stylesheet"},
49
- {"name": "Test", "parentId": "appendix", "isLeaf": true, "id": "TestLivePreview"}
2
+ {"name": "Welcome!", "parentId": null, "id": "Welcome" },
3
+ {"name": "Benefits", "parentId": null, "isLeaf": false, "id": "Benefits"},
4
+ {"name": "Introduction ", "parentId": "Benefits", "id": "benefits.Introduction"},
5
+ {"name": "Off the Main Thread", "parentId": "Benefits", "id": "benefits.Multi-Threading"},
6
+ {"name": "Extreme Speed", "parentId": "Benefits", "id": "benefits.Speed"},
7
+ {"name": "Multi-Window Applications", "parentId": "Benefits", "id": "benefits.Multi-Window"},
8
+ {"name": "Quick Application Development", "parentId": "Benefits", "id": "benefits.Quick"},
9
+ {"name": "Complexity and Effort", "parentId": "Benefits", "id": "benefits.Effort"},
10
+ {"name": "Forms Engine", "parentId": "Benefits", "id": "benefits.FormsEngine"},
11
+ {"name": "Features and Benefits Summary", "parentId": "Benefits", "id": "benefits.Features"},
12
+ {"name": "Getting Started", "parentId": null, "isLeaf": false, "id": "GettingStarted", "collapsed": true},
13
+ {"name": "Setup", "parentId": "GettingStarted", "id": "gettingstarted.Setup"},
14
+ {"name": "Workspaces and Applications", "parentId": "GettingStarted", "id": "gettingstarted.Workspaces"},
15
+ {"name": "Describing a View", "parentId": "GettingStarted", "id": "gettingstarted.DescribingTheUI"},
16
+ {"name": "Events", "parentId": "GettingStarted", "id": "gettingstarted.Events"},
17
+ {"name": "Component References", "parentId": "GettingStarted", "id": "gettingstarted.References"},
18
+ {"name": "Extending Classes", "parentId": "GettingStarted", "id": "gettingstarted.Extending"},
19
+ {"name": "Config", "parentId": "GettingStarted", "id": "gettingstarted.Config"},
20
+ {"name": "Shared Bindable Data", "parentId": "GettingStarted", "id": "gettingstarted.ComponentModels"},
21
+ {"name": "Tutorials", "parentId": null, "isLeaf": false, "id": "Tutorials", "collapsed": true},
22
+ {"name": "Rock Scissors Paper", "parentId": "Tutorials", "id": "tutorials.RSP", "hidden": true},
23
+ {"name": "Earthquakes", "parentId": "Tutorials", "id": "tutorials.Earthquakes"},
24
+ {"name": "Todo List", "parentId": "Tutorials", "id": "tutorials.TodoList"},
25
+ {"name": "Guides", "parentId": null, "isLeaf": false, "id": "InDepth", "collapsed": true},
26
+ {"name": "Instance Lifecycle", "parentId": "InDepth", "id": "guides.InstanceLifecycle", "hidden": true},
27
+ {"name": "User Input (Forms)", "parentId": "InDepth", "id": "guides.Forms", "hidden": true},
28
+ {"name": "Component and Container Basics", "parentId": "InDepth", "id": "guides.ComponentsAndContainers"},
29
+ {"name": "Layouts", "parentId": "InDepth", "isLeaf": false, "id": "guides.Layouts", "hidden": true},
30
+ {"name": "Shared Bindable Data (Component Models)", "parentId": "InDepth", "id": "guides.ViewModels"},
31
+ {"name": "Custom Components", "parentId": "InDepth", "id": "guides.CustomComponents", "hidden": true},
32
+ {"name": "Events", "parentId": "InDepth", "isLeaf": false, "id": "GuideEvents"},
33
+ {"name": "Custom Events", "parentId": "GuideEvents", "id": "guides.events.CustomEvents"},
34
+ {"name": "DOM Events", "parentId": "GuideEvents", "id": "guides.events.DomEvents"},
35
+ {"name": "Tables (Stores)", "parentId": "InDepth", "id": "guides.Tables", "hidden": true},
36
+ {"name": "Multi-Window Applications", "parentId": "InDepth", "id": "guides.MultiWindow", "hidden": true},
37
+ {"name": "Main Thread Addons", "parentId": "InDepth", "isLeaf": false, "id": "MainThreadAddons", "hidden": true},
38
+ {"name": "Introduction", "parentId": "MainThreadAddons", "id": "guides.MainThreadAddonIntro"},
39
+ {"name": "Example", "parentId": "MainThreadAddons", "id": "guides.MainThreadAddonExample"},
40
+ {"name": "Mixins", "parentId": "InDepth", "id": "guides.Mixins", "hidden": true},
41
+ {"name": "JavaScript Classes", "parentId": null, "isLeaf": false, "id": "JavaScript", "hidden": true},
42
+ {"name": "Classes, Properties, and Methods", "parentId": "JavaScript", "id": "javascript.Classes"},
43
+ {"name": "Overriding Methods", "parentId": "JavaScript", "id": "javascript.Overrides"},
44
+ {"name": "Other JavaScript Class Features", "parentId": "JavaScript", "id": "javascript.ClassFeatures"},
45
+ {"name": "Super", "parentId": "JavaScript", "id": "javascript.Super"},
46
+ {"name": "New Node", "parentId": "JavaScript", "id": "javascript.NewNode"}
50
47
  ]}
@@ -1,8 +1,9 @@
1
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;
2
+ border : 1px solid var(--sem-color-border-default);
3
+ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
4
+ min-width : 600px;
5
+ padding : 1em 1em 4em;
6
+ position : relative;
6
7
 
7
8
  &:not(:nth-child(2)) {
8
9
  margin-top: 1em;
@@ -14,5 +14,7 @@
14
14
 
15
15
  .portal-blog-toolbar {
16
16
  background-color: var(--portal-blog-toolbar-background-color);
17
+ box-shadow : 0 5px 10px rgba(0, 0, 0, 0.3);
18
+ z-index : 2;
17
19
  }
18
20
  }
@@ -0,0 +1,157 @@
1
+ .portal-examples-list.neo-list {
2
+ transition: padding var(--portal-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(--portal-transition-duration) ease-out, margin-bottom var(--portal-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-full-size {
23
+ height: 100%;
24
+ width : 100%;
25
+ }
26
+
27
+ .neo-github-image {
28
+ color : #ddd;
29
+ text-decoration : none;
30
+ transition-duration : var(--portal-transition-duration);
31
+ transition-property : font-size, height, width;
32
+ transition-timing-function: ease-out;
33
+ }
34
+
35
+ .neo-inner-content {
36
+ color : #fff;
37
+ display : inline-block;
38
+ margin-left: 10px;
39
+ text-shadow: 1px 1px 1px #000, 1px 1px 1px #fff;
40
+ transition : font-size var(--portal-transition-duration) ease-out;
41
+ }
42
+
43
+ .neo-inner-details {
44
+ transition: line-height var(--portal-transition-duration) ease-out;
45
+ }
46
+
47
+ .neo-item-bottom-position {
48
+ bottom : 0;
49
+ left : 0;
50
+ transition: margin var(--portal-transition-duration) ease-out;
51
+ }
52
+
53
+ .neo-relative {
54
+ position: relative;
55
+ }
56
+
57
+ .neo-title {
58
+ color : #fff;
59
+ font-weight : 600;
60
+ line-height : 1;
61
+ text-decoration: none;
62
+ text-shadow : 1px 1px 1px #000, 1px 1px 1px #fff;
63
+ transition : color 250ms ease-out;
64
+
65
+ &:hover {
66
+ color: #5d83a7
67
+ }
68
+ }
69
+
70
+ .neo-top-20 {
71
+ align-items: center;
72
+ display : flex;
73
+ transition : margin var(--portal-transition-duration) ease-out;
74
+ }
75
+
76
+ .preview-image {
77
+ background-blend-mode: overlay;
78
+ background-size : cover;
79
+ height : 100%;
80
+ }
81
+ }
82
+
83
+ @media (max-height: 400px), (max-width: 600px) {
84
+ padding: 5px 5px 0 5px;
85
+
86
+ .neo-github-image {
87
+ font-size: 30px;
88
+ height : 30px;
89
+ width : 30px;
90
+ }
91
+
92
+ .neo-inner-content {
93
+ font-size: 12px;
94
+ }
95
+
96
+ .neo-inner-details {
97
+ line-height: 16px;
98
+ }
99
+
100
+ .neo-item-bottom-position {
101
+ margin: 9px 12px;
102
+ right : 15%;
103
+ }
104
+
105
+ .neo-list-item {
106
+ border-radius: 10px;
107
+ height : 200px;
108
+ margin-bottom: 5px;
109
+ }
110
+
111
+ .neo-title {
112
+ font-size: 20px;
113
+ }
114
+
115
+ .neo-top-20 {
116
+ margin-top: 10px;
117
+ }
118
+ }
119
+
120
+ @media (min-height: 401px) and (min-width: 601px) {
121
+ padding: 10px 10px 0 10px;
122
+
123
+ .neo-github-image {
124
+ font-size: 44px;
125
+ height : 44px;
126
+ width : 44px;
127
+ }
128
+
129
+ .neo-inner-content {
130
+ font-size: 16px;
131
+ }
132
+
133
+ .neo-inner-details {
134
+ font-size : 16px;
135
+ line-height: 22px;
136
+ }
137
+
138
+ .neo-item-bottom-position {
139
+ margin: 30px 40px;
140
+ right : 30%;
141
+ }
142
+
143
+ .neo-list-item {
144
+ border-radius: 20px;
145
+ height : 400px;
146
+ margin-bottom: 10px;
147
+ }
148
+
149
+ .neo-title {
150
+ font-size: 34px;
151
+ }
152
+
153
+ .neo-top-20 {
154
+ margin-top: 20px;
155
+ }
156
+ }
157
+ }
@@ -0,0 +1,36 @@
1
+ .portal-examples-tab-container.neo-tab-container {
2
+ margin : 0 auto;
3
+ max-width: 830px;
4
+ }
5
+
6
+ .portal-examples-tab-header-toolbar.neo-tab-header-toolbar {
7
+ background-color: #8BA6FF;
8
+
9
+ .neo-tab-header-button.neo-button {
10
+ .neo-button-glyph {
11
+ color: #fff;
12
+ }
13
+
14
+ .neo-button-ripple {
15
+ background-color: #3E63DD;
16
+ }
17
+
18
+ &.neo-button.pressed .neo-tab-button-indicator {
19
+ background-color: #3E63DD;
20
+ }
21
+
22
+ .neo-button-text {
23
+ color: #fff;
24
+ }
25
+
26
+ &.pressed {
27
+ .neo-button-glyph {
28
+ color: #3E63DD;
29
+ }
30
+ }
31
+ }
32
+
33
+ .neo-tab-strip .neo-active-tab-indicator {
34
+ background-color: #3E63DD;
35
+ }
36
+ }
@@ -73,16 +73,20 @@
73
73
  .neo-button-ripple {
74
74
  background-color: var(--button-ripple-background-color);
75
75
  border-radius : 50%;
76
+ padding : var(--button-padding);
76
77
  opacity : 0;
77
78
  position : absolute;
78
79
  transform : scale(4);
79
80
  }
80
81
 
81
82
  .neo-button-ripple-wrapper {
83
+ border-radius : var(--button-border-radius);
82
84
  height : 100%;
85
+ left : 0;
83
86
  overflow : hidden;
84
87
  pointer-events: none;
85
88
  position : absolute;
89
+ top : 0;
86
90
  width : 100%;
87
91
  }
88
92
 
@@ -16,5 +16,9 @@
16
16
  &.neo-selected {
17
17
  box-shadow: 0 0 0 0.25em currentColor;
18
18
  }
19
+
20
+ &[aria-selected="true"] {
21
+ outline: none !important;
22
+ }
19
23
  }
20
24
  }
@@ -1,4 +1,4 @@
1
- .neo-calendars-list.neo-list {
1
+ .neo-calendars-list {
2
2
  .neo-checkboxfield {
3
3
  align-items: center;
4
4
  display : flex;
@@ -64,6 +64,7 @@
64
64
 
65
65
  .neo-edit-icon {
66
66
  color : var(--calendars-list-edit-icon-color);
67
+ cursor : pointer;
67
68
  font-size : 16px;
68
69
  font-weight : 600;
69
70
  height : 1em;
@@ -107,6 +107,6 @@
107
107
 
108
108
  // A focusable, but zero-sized element used to grab and redirect focus in focus-trapped modals
109
109
  .neo-focus-trap {
110
- position : absolute;
111
- clip : rect(0, 0, 0, 0);
110
+ clip : rect(0, 0, 0, 0);
111
+ position: absolute;
112
112
  }
@@ -69,9 +69,9 @@
69
69
  }
70
70
 
71
71
  &[aria-selected="true"] {
72
- background-color: var(--list-item-background-color-selected) !important;
73
- color : var(--list-item-color-selected) !important;
74
- cursor : default !important;
72
+ background-color: var(--list-item-background-color-selected);
73
+ color : var(--list-item-color-selected);
74
+ cursor : default;
75
75
  }
76
76
 
77
77
  .neo-highlight-search {
@@ -45,7 +45,7 @@
45
45
  --button-background-gradient-start : #434749;
46
46
  --button-opacity-disabled : inherit;
47
47
  --button-outline-active : none;
48
- --button-ripple-background-color : transparent;
48
+ --button-ripple-background-color : #8BA6FF;
49
49
  --button-use-gradients : false;
50
50
 
51
51
  // {module: Button; ui: --secondary} ––––––––––––––––––––––––––––––––––––––––––––––––––
@@ -78,7 +78,7 @@
78
78
  --button-secondary-badge-background-color : transparent;
79
79
  --button-secondary-badge-color : transparent;
80
80
  --button-secondary-opacity-disabled : none;
81
- --button-secondary-ripple-background-color : inherit;
81
+ --button-secondary-ripple-background-color : #8BA6FF;
82
82
 
83
83
 
84
84
  // {module: Button; ui: --ghost} –––––––––––––––––––––––––––––––––––––––––––––––––––––--
@@ -111,7 +111,7 @@
111
111
  --button-ghost-badge-background-color : transparent;
112
112
  --button-ghost-badge-color : transparent;
113
113
  --button-ghost-opacity-disabled : inherit;
114
- --button-ghost-ripple-background-color : inherit;
114
+ --button-ghost-ripple-background-color : #8BA6FF;
115
115
 
116
116
 
117
117
  // {module: Button; ui: --tertiary} –––––––––––––––––––––––––––––––––––––––––––––––––––
@@ -262,12 +262,12 @@ const DefaultConfig = {
262
262
  useVdomWorker: true,
263
263
  /**
264
264
  * buildScripts/injectPackageVersion.mjs will update this value
265
- * @default '7.0.6'
265
+ * @default '7.2.0'
266
266
  * @memberOf! module:Neo
267
267
  * @name config.version
268
268
  * @type String
269
269
  */
270
- version: '7.0.6'
270
+ version: '7.2.0'
271
271
  };
272
272
 
273
273
  Object.assign(DefaultConfig, {
@@ -323,11 +323,12 @@ class MainContainer extends Container {
323
323
  let me = this;
324
324
 
325
325
  me._editCalendarContainer = value = Neo.create({
326
- module : EditCalendarContainer,
327
- appName: me.appName,
328
- model : {parent: me.getModel()},
329
- owner : me,
330
- width : 250,
326
+ module : EditCalendarContainer,
327
+ appName : me.appName,
328
+ model : {parent: me.getModel()},
329
+ owner : me,
330
+ width : 250,
331
+ windowId: me.windowId,
331
332
  ...me.editCalendarContainerConfig
332
333
  })
333
334
  }
@@ -499,6 +500,7 @@ class MainContainer extends Container {
499
500
  me.items[1].add({
500
501
  module : module.default,
501
502
  collapsed,
503
+ minWidth : me.settingsContainerWidth,
502
504
  removeInactiveCards: me.removeInactiveCards,
503
505
  style : {marginRight: !collapsed ? '0' : `-${me.settingsContainerWidth}px`},
504
506
  width : me.settingsContainerWidth,
@@ -64,7 +64,9 @@ class EditContainer extends FormContainer {
64
64
  afterSetMounted(value, oldValue) {
65
65
  super.afterSetMounted(value, oldValue);
66
66
 
67
- value && this.getField('name').focus();
67
+ value && this.getField('name').then(field => {
68
+ field.focus()
69
+ })
68
70
  }
69
71
 
70
72
  /**
@@ -116,7 +118,6 @@ class EditContainer extends FormContainer {
116
118
  if (record) {
117
119
  me.colorsList = Neo.create({
118
120
  module : ColorsList,
119
- appName : me.appName,
120
121
  listeners : {change: me.onColorChange, scope: me},
121
122
  parentId : me.parentId,
122
123
  value : record.color,
@@ -66,6 +66,7 @@ class List extends ComponentList {
66
66
  appName : me.appName,
67
67
  listeners: {change: me.onCheckboxChange, scope: me},
68
68
  parentId : me.id,
69
+ windowId : me.windowId,
69
70
  ...me.itemDefaults,
70
71
  ...config
71
72
  })
@@ -359,19 +359,21 @@ class Component extends BaseComponent {
359
359
  import('./plugin/DragDrop.mjs'),
360
360
  import('./plugin/EventResizable.mjs')
361
361
  ]).then(modules => {
362
- let me = this,
363
- {appName} = me,
364
- plugins = me.plugins || [];
362
+ let me = this,
363
+ {appName, windowId} = me,
364
+ plugins = me.plugins || [];
365
365
 
366
366
  plugins.push({
367
367
  module : modules[0].default,
368
368
  appName,
369
+ windowId,
369
370
  ...me.pluginDragDropConfig
370
371
  }, {
371
372
  module : modules[1].default,
372
373
  appName,
373
374
  delegationCls: 'neo-event',
374
375
  directions : ['b', 't'],
376
+ windowId,
375
377
  ...me.pluginEventResizableConfig
376
378
  });
377
379
 
@@ -74,9 +74,9 @@ class DragDrop extends Base {
74
74
  * @returns {Neo.calendar.view.week.EventDragZone}
75
75
  */
76
76
  getEventDragZone(opts) {
77
- let me = this,
78
- {appName, owner} = me,
79
- {eventDragZone, timeAxis} = owner,
77
+ let me = this,
78
+ {appName, owner, windowId} = me,
79
+ {eventDragZone, timeAxis} = owner,
80
80
 
81
81
  config = {
82
82
  axisEndTime : timeAxis.getTime(owner.endTime),
@@ -93,6 +93,7 @@ class DragDrop extends Base {
93
93
  appName,
94
94
  owner,
95
95
  scrollContainerId: owner.getScrollContainer().id,
96
+ windowId,
96
97
  ...config,
97
98
 
98
99
  dragProxyConfig: {
@@ -4,6 +4,7 @@ import TabContainer from '../tab/Container.mjs';
4
4
 
5
5
  const
6
6
  classDeclarationRegex = /class\s+([a-zA-Z$_][a-zA-Z0-9$_]*)\s*(?:extends\s+[a-zA-Z$_][a-zA-Z0-9$_]*)?\s*{[\s\S]*?}/g,
7
+ classNameRegex = /className\s*:\s*['"]([^'"]+)['"]/g,
7
8
  exportRegex = /export\s+(?:default\s+)?(?:const|let|var|class|function|async\s+function|generator\s+function|async\s+generator\s+function|(\{[\s\S]*?\}))/g,
8
9
  importRegex = /import\s+([\w-]+)\s+from\s+['"]([^'"]+)['"]/;
9
10
 
@@ -294,6 +295,18 @@ class LivePreview extends Container {
294
295
 
295
296
  container.removeAll();
296
297
 
298
+ // We must ensure that classes inside the editor won't get cached, since this disables run-time changes
299
+ // See: https://github.com/neomjs/neo/issues/5863
300
+ me.findClassNames(codeString).forEach(item => {
301
+ let nsArray = item.split('.'),
302
+ className = nsArray.pop(),
303
+ ns = Neo.ns(nsArray);
304
+
305
+ if (ns) {
306
+ delete ns[className]
307
+ }
308
+ });
309
+
297
310
  try {
298
311
  new Function('container', codeString)(container);
299
312
  } catch (error) {
@@ -304,6 +317,21 @@ class LivePreview extends Container {
304
317
  }
305
318
  }
306
319
 
320
+ /**
321
+ * @param {String} sourceCode
322
+ * @returns {String[]}
323
+ */
324
+ findClassNames(sourceCode) {
325
+ let classNames = [],
326
+ match;
327
+
328
+ while ((match = classNameRegex.exec(sourceCode)) !== null) {
329
+ classNames.push(match[1])
330
+ }
331
+
332
+ return classNames
333
+ }
334
+
307
335
  /**
308
336
  * @param {String} sourceCode
309
337
  * @returns {String|null}
@@ -312,7 +340,6 @@ class LivePreview extends Container {
312
340
  let lastClassName = null,
313
341
  match;
314
342
 
315
- // Iterate through all matches of the regular expression
316
343
  while ((match = classDeclarationRegex.exec(sourceCode)) !== null) {
317
344
  // Update the last class name found
318
345
  lastClassName = match[1]
@@ -76,6 +76,7 @@ class Base extends CoreBase {
76
76
  /**
77
77
  * A map containing the key & reference of each collection item for faster access
78
78
  * @member {Map} map_=null
79
+ * @protected
79
80
  */
80
81
  map_: null,
81
82
  /**