neo.mjs 6.10.3 → 6.10.5

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 (86) hide show
  1. package/apps/ServiceWorker.mjs +2 -2
  2. package/apps/form/model/SideNav.mjs +3 -3
  3. package/apps/form/view/SideNavList.mjs +8 -3
  4. package/apps/form/view/ViewportController.mjs +6 -7
  5. package/apps/portal/Overwrites.mjs +21 -0
  6. package/apps/portal/app.mjs +7 -0
  7. package/apps/portal/data/blog.json +743 -0
  8. package/apps/portal/index.html +15 -0
  9. package/apps/portal/model/BlogPost.mjs +59 -0
  10. package/apps/{learnneo → portal}/model/Content.mjs +3 -3
  11. package/apps/{learnneo → portal}/neo-config.json +1 -1
  12. package/apps/portal/store/BlogPosts.mjs +43 -0
  13. package/apps/{learnneo → portal}/store/Content.mjs +2 -5
  14. package/apps/portal/view/HeaderToolbar.mjs +65 -0
  15. package/apps/portal/view/Viewport.mjs +59 -0
  16. package/apps/portal/view/ViewportController.mjs +79 -0
  17. package/apps/portal/view/blog/Container.mjs +50 -0
  18. package/apps/portal/view/blog/List.mjs +173 -0
  19. package/apps/{newwebsite/view/Viewport.mjs → portal/view/home/MainContainer.mjs} +7 -8
  20. package/apps/{learnneo/view/home → portal/view/learn}/ContentTreeList.mjs +6 -6
  21. package/apps/{learnneo/view/home → portal/view/learn}/ContentView.mjs +3 -3
  22. package/apps/{learnneo/view → portal/view/learn}/LivePreview.mjs +32 -19
  23. package/apps/{learnneo/view/home → portal/view/learn}/MainContainer.mjs +27 -31
  24. package/apps/{learnneo/view/home → portal/view/learn}/MainContainerController.mjs +3 -3
  25. package/apps/{learnneo/view/home → portal/view/learn}/MainContainerModel.mjs +3 -3
  26. package/apps/website/Overwrites.mjs +16 -0
  27. package/apps/website/app.mjs +2 -1
  28. package/apps/website/view/blog/List.mjs +1 -1
  29. package/buildScripts/webpack/development/webpack.config.appworker.mjs +3 -1
  30. package/buildScripts/webpack/json/myApps.template.json +1 -1
  31. package/buildScripts/webpack/production/webpack.config.appworker.mjs +3 -1
  32. package/examples/ServiceWorker.mjs +2 -2
  33. package/package.json +2 -2
  34. package/resources/data/deck/learnneo/p/stylesheet.md +4 -1
  35. package/resources/design-tokens/json/component.json +22 -0
  36. package/resources/design-tokens/json/core.json +4 -0
  37. package/resources/design-tokens/json/semantic.json +8 -0
  38. package/resources/examples/data/formSideNav.json +19 -19
  39. package/resources/scss/src/apps/portal/blog/Container.scss +18 -0
  40. package/resources/scss/src/apps/portal/blog/List.scss +183 -0
  41. package/resources/scss/src/apps/{newwebsite/Viewport.scss → portal/home/MainContainer.scss} +1 -1
  42. package/resources/scss/src/tab/Strip.scss +1 -0
  43. package/resources/scss/src/tooltip/Base.scss +10 -6
  44. package/resources/scss/theme-dark/tooltip/Base.scss +10 -0
  45. package/resources/scss/theme-light/tooltip/Base.scss +10 -0
  46. package/resources/scss/theme-neo-light/button/Base.scss +24 -20
  47. package/resources/scss/theme-neo-light/design-tokens/Component.scss +6 -0
  48. package/resources/scss/theme-neo-light/design-tokens/Core.scss +2 -0
  49. package/resources/scss/theme-neo-light/design-tokens/Semantic.scss +4 -2
  50. package/resources/scss/theme-neo-light/tab/header/Button.scss +8 -7
  51. package/resources/scss/theme-neo-light/tooltip/Base.scss +13 -0
  52. package/src/DefaultConfig.mjs +2 -2
  53. package/src/Main.mjs +1 -1
  54. package/src/component/Base.mjs +5 -0
  55. package/src/component/Toast.mjs +5 -2
  56. package/src/container/Base.mjs +14 -0
  57. package/src/controller/Application.mjs +2 -1
  58. package/src/controller/Base.mjs +14 -3
  59. package/src/controller/Component.mjs +1 -1
  60. package/src/core/Base.mjs +7 -5
  61. package/src/core/Observable.mjs +15 -15
  62. package/src/data/RecordFactory.mjs +3 -3
  63. package/src/form/Container.mjs +50 -0
  64. package/src/form/field/Text.mjs +2 -2
  65. package/src/form/field/TextArea.mjs +5 -0
  66. package/src/main/addon/WindowPosition.mjs +72 -34
  67. package/src/tab/Strip.mjs +21 -36
  68. package/src/tab/header/Button.mjs +5 -7
  69. package/src/worker/App.mjs +26 -1
  70. package/src/worker/Base.mjs +41 -29
  71. package/src/worker/Canvas.mjs +4 -4
  72. package/src/worker/Manager.mjs +4 -3
  73. package/src/worker/mixin/RemoteMethodAccess.mjs +20 -18
  74. package/apps/learnneo/app.mjs +0 -6
  75. package/apps/learnneo/index.html +0 -21
  76. package/apps/learnneo/view/Viewport.mjs +0 -52
  77. package/apps/learnneo/view/ViewportController.mjs +0 -19
  78. package/apps/learnneo/view/home/HeaderToolbar.mjs +0 -47
  79. package/apps/newwebsite/app.mjs +0 -6
  80. package/apps/newwebsite/index.html +0 -13
  81. package/apps/newwebsite/neo-config.json +0 -7
  82. /package/resources/scss/src/apps/{learnneo/home → portal}/HeaderToolbar.scss +0 -0
  83. /package/resources/scss/src/apps/{learnneo → portal}/Viewport.scss +0 -0
  84. /package/resources/scss/src/apps/{learnneo/home → portal/learn}/ContentTreeList.scss +0 -0
  85. /package/resources/scss/src/apps/{learnneo/home → portal/learn}/ContentView.scss +0 -0
  86. /package/resources/scss/src/apps/{learnneo/home → portal/learn}/MainContainer.scss +0 -0
@@ -1,18 +1,18 @@
1
- import Base from '../../../src/container/Base.mjs';
2
- import TabContainer from '../../../src/tab/Container.mjs';
3
- import TextArea from '../../../src/form/field/TextArea.mjs';
1
+ import Base from '../../../../src/container/Base.mjs';
2
+ import TabContainer from '../../../../src/tab/Container.mjs';
3
+ import TextArea from '../../../../src/form/field/TextArea.mjs';
4
4
 
5
5
  /**
6
- * @class LearnNeo.view.LivePreview
6
+ * @class Portal.view.learn.LivePreview
7
7
  * @extends Neo.container.Base
8
8
  */
9
9
  class LivePreview extends Base {
10
10
  static config = {
11
11
  /**
12
- * @member {String} className='LearnNeo.view.LivePreview'
12
+ * @member {String} className='Portal.view.learn.LivePreview'
13
13
  * @protected
14
14
  */
15
- className: 'LearnNeo.view.LivePreview',
15
+ className: 'Portal.view.learn.LivePreview',
16
16
  value_: null,
17
17
  autoMount: true,
18
18
  autoRender: true,
@@ -22,7 +22,9 @@ class LivePreview extends Base {
22
22
  * @member {Object[]} items
23
23
  */
24
24
  items: [{
25
- module: TabContainer,
25
+ module : TabContainer,
26
+ reference: 'tab-container',
27
+
26
28
  items: [{
27
29
  module: TextArea,
28
30
  hideLabel: true,
@@ -38,15 +40,7 @@ class LivePreview extends Base {
38
40
  reference: 'preview',
39
41
  ntype: 'container'
40
42
  }]
41
- }],
42
- listeners: {
43
- activeIndexChange: () => console.log('activeIndexChange')
44
- }
45
- }
46
- onConstructed() {
47
- console.log('constructed');
48
- this.on('activeIndexChange', () => console.log('onConstructed'));
49
- super.onConstructed();
43
+ }]
50
44
  }
51
45
 
52
46
  afterSetValue(value, oldValue) {
@@ -55,6 +49,14 @@ class LivePreview extends Base {
55
49
  }
56
50
  }
57
51
 
52
+ onConstructed() {
53
+ super.onConstructed();
54
+
55
+ let me = this;
56
+
57
+ me.getReference('tab-container').on('activeIndexChange', me.onActiveIndexChange, me)
58
+ }
59
+
58
60
  doIt(button) {
59
61
  let source = this.getReference('source').getValue();
60
62
 
@@ -92,7 +94,7 @@ class LivePreview extends Base {
92
94
  });
93
95
  var params = [];
94
96
  var vars = [];
95
- // Figure out the parts of the source we'll be running.
97
+ // Figure out the parts of the source we'll be running.
96
98
  // o The promises/import() corresponding to the user's import statements
97
99
  // o The vars holding the name of the imported module based on the module name for each import
98
100
  // o The rest of the user-provided source
@@ -105,8 +107,8 @@ class LivePreview extends Base {
105
107
  // const Button = ButtonModule.default;
106
108
  // // Class declaration goes here...
107
109
  // });
108
- // Making the promise part of the eval seems weird, but it made it easier to
109
- // set up the import vars.
110
+ // Making the promise part of the eval seems weird, but it made it easier to
111
+ // set up the import vars.
110
112
 
111
113
  let promises = moduleNameAndPath.map(item => {
112
114
  params.push(`${item.moduleName}Module`);
@@ -164,6 +166,17 @@ class LivePreview extends Base {
164
166
  }
165
167
  return null
166
168
  }
169
+
170
+ /**
171
+ * @param {Object} data
172
+ * @param {Neo.component.Base} data.item
173
+ * @param {Number} data.oldValue
174
+ * @param {String} data.source
175
+ * @param {Number} data.value
176
+ */
177
+ onActiveIndexChange(data) {
178
+ console.log('onActiveIndexChange', data)
179
+ }
167
180
  }
168
181
 
169
182
  Neo.applyClassConfig(LivePreview);
@@ -1,22 +1,21 @@
1
1
  import Container from '../../../../src/container/Base.mjs';
2
2
  import ContentView from './ContentView.mjs';
3
3
  import ContentTreeList from './ContentTreeList.mjs';
4
- import HeaderToolbar from './HeaderToolbar.mjs';
5
4
  import MainContainerController from './MainContainerController.mjs';
6
5
  import MainContainerModel from './MainContainerModel.mjs';
7
6
  import Splitter from '../../../../src/component/Splitter.mjs';
8
7
 
9
8
  /**
10
- * @class LearnNeo.view.home.MainContainer
9
+ * @class Portal.view.learn.MainContainer
11
10
  * @extends Neo.container.Base
12
11
  */
13
12
  class MainContainer extends Container {
14
13
  static config = {
15
14
  /**
16
- * @member {String} className='LearnNeo.view.home.MainContainer'
15
+ * @member {String} className='Portal.view.learn.MainContainer'
17
16
  * @protected
18
17
  */
19
- className: 'LearnNeo.view.home.MainContainer',
18
+ className: 'Portal.view.learn.MainContainer',
20
19
  /**
21
20
  * @member {Neo.controller.Component} controller=MainContainerController
22
21
  */
@@ -29,38 +28,35 @@ class MainContainer extends Container {
29
28
  * @member {Object[]} items
30
29
  */
31
30
  items: [{
32
- module: HeaderToolbar
33
- }, {
34
- module: Container,
35
- layout: {ntype: 'hbox', align: 'stretch'},
36
-
31
+ module : Container,
32
+ layout : 'fit',
33
+ minWidth: 350,
34
+ width : 350,
35
+ cls : 'sidenav-container',
37
36
  items: [{
38
- module : Container,
39
- layout : 'fit',
40
- minWidth: 350,
41
- width : 350,
42
- cls : 'sidenav-container',
43
- items: [{
44
- module : ContentTreeList,
45
- reference: 'tree',
46
- listeners: {
47
- contentChange: 'onContentChange',
48
- }
49
- }]
50
- }, {
51
- module : Splitter,
52
- cls : ['main-content-splitter'],
53
- resizeTarget: 'previous',
54
- size : 4
55
- }, {
56
- module : ContentView,
57
- reference: 'content',
37
+ module : ContentTreeList,
38
+ reference: 'tree',
58
39
  listeners: {
59
- edit : 'onContentEdit',
60
- refresh: 'onContentRefresh'
40
+ contentChange: 'onContentChange',
61
41
  }
62
42
  }]
43
+ }, {
44
+ module : Splitter,
45
+ cls : ['main-content-splitter'],
46
+ resizeTarget: 'previous',
47
+ size : 4
48
+ }, {
49
+ module : ContentView,
50
+ reference: 'content',
51
+ listeners: {
52
+ edit : 'onContentEdit',
53
+ refresh: 'onContentRefresh'
54
+ }
63
55
  }],
56
+ /**
57
+ * @member {Object} layout={ntype:'hbox',align:'stretch'}
58
+ */
59
+ layout: {ntype: 'hbox', align: 'stretch'},
64
60
  /**
65
61
  * @member {Neo.model.Component} model=MainContainerModel
66
62
  */
@@ -1,16 +1,16 @@
1
1
  import Controller from '../../../../src/controller/Component.mjs';
2
2
 
3
3
  /**
4
- * @class LearnNeo.view.home.MainContainerController
4
+ * @class Portal.view.learn.MainContainerController
5
5
  * @extends Neo.controller.Component
6
6
  */
7
7
  class MainContainerController extends Controller {
8
8
  static config = {
9
9
  /**
10
- * @member {String} className='LearnNeo.view.home.MainContainerController'
10
+ * @member {String} className='Portal.view.learn.MainContainerController'
11
11
  * @protected
12
12
  */
13
- className: 'LearnNeo.view.home.MainContainerController'
13
+ className: 'Portal.view.learn.MainContainerController'
14
14
  }
15
15
 
16
16
  /**
@@ -2,16 +2,16 @@ import Component from '../../../../src/model/Component.mjs';
2
2
  import Store from '../../store/Content.mjs';
3
3
 
4
4
  /**
5
- * @class LearnNeo.view.home.MainContainerModel
5
+ * @class Portal.view.learn.MainContainerModel
6
6
  * @extends Neo.model.Component
7
7
  */
8
8
  class MainContainerModel extends Component {
9
9
  static config = {
10
10
  /**
11
- * @member {String} className='LearnNeo.view.home.MainContainerModel'
11
+ * @member {String} className='Portal.view.learn.MainContainerModel'
12
12
  * @protected
13
13
  */
14
- className: 'LearnNeo.view.home.MainContainerModel',
14
+ className: 'Portal.view.learn.MainContainerModel',
15
15
  /**
16
16
  * @member {Object} data
17
17
  */
@@ -0,0 +1,16 @@
1
+ Neo.overwrites = {
2
+ Neo: {
3
+ form: {
4
+ field: {
5
+ Base: {
6
+ delayable: {
7
+ fireChangeEvent : null,
8
+ fireUserChangeEvent: null
9
+ }
10
+ }
11
+ }
12
+ }
13
+ }
14
+ }
15
+
16
+ export default Neo.overwrites;
@@ -1,6 +1,7 @@
1
+ import Overwrites from './Overwrites.mjs';
1
2
  import MainContainer from './view/MainContainer.mjs';
2
3
 
3
4
  export const onStart = () => Neo.app({
4
5
  mainView: MainContainer,
5
6
  name : 'Website'
6
- });
7
+ })
@@ -125,7 +125,7 @@ class List extends BaseList {
125
125
  valueRegEx = new RegExp(data.value, 'gi'),
126
126
  hasMatch, itemName, name, record;
127
127
 
128
- me.vdom.cn.forEach((item, index) => {
128
+ me.getVdomRoot().cn.forEach((item, index) => {
129
129
  hasMatch = false;
130
130
  itemName = VDomUtil.getByFlag(item, 'name');
131
131
  record = store.getAt(index);
@@ -99,7 +99,9 @@ export default env => {
99
99
  createStartingPoint(key.substr(1), 'apps');
100
100
  });
101
101
 
102
- createStartingPoint('Docs', '');
102
+ if (fs.existsSync(path.join(cwd, 'docs'))) {
103
+ createStartingPoint('Docs', '');
104
+ }
103
105
 
104
106
  examplesPath = path.join(cwd, 'examples');
105
107
 
@@ -4,7 +4,7 @@
4
4
  "Docs",
5
5
  "Form",
6
6
  "Krausest",
7
- "NewWebsite",
7
+ "Portal",
8
8
  "RealWorld",
9
9
  "RealWorld2",
10
10
  "SharedCovid",
@@ -108,7 +108,9 @@ export default env => {
108
108
  createStartingPoint(key.substr(1), 'apps');
109
109
  });
110
110
 
111
- createStartingPoint('Docs', '');
111
+ if (fs.existsSync(path.join(cwd, 'docs'))) {
112
+ createStartingPoint('Docs', '');
113
+ }
112
114
 
113
115
  examplesPath = path.join(cwd, 'examples');
114
116
 
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='6.10.3'
23
+ * @member {String} version='6.10.5'
24
24
  */
25
- version: '6.10.3'
25
+ version: '6.10.5'
26
26
  }
27
27
 
28
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo.mjs",
3
- "version": "6.10.3",
3
+ "version": "6.10.5",
4
4
  "description": "The webworkers driven UI framework",
5
5
  "type": "module",
6
6
  "repository": {
@@ -54,7 +54,7 @@
54
54
  "inquirer": "^9.2.12",
55
55
  "neo-jsdoc": "1.0.1",
56
56
  "neo-jsdoc-x": "1.0.5",
57
- "postcss": "^8.4.31",
57
+ "postcss": "^8.4.32",
58
58
  "sass": "^1.69.5",
59
59
  "siesta-lite": "5.5.2",
60
60
  "showdown": "^2.1.0",
@@ -18,7 +18,6 @@ and information is lost.
18
18
  <br>
19
19
 
20
20
  To show highlighted Neo.mjs source code use
21
- <pre>
22
21
  &lt;pre data-javascript>
23
22
  // Source code goes here
24
23
  &lt;/pre>
@@ -52,3 +51,7 @@ This is the item contents.
52
51
  This is the item contents.
53
52
  </details>
54
53
 
54
+ <pre data-neo>
55
+ let a = 1;
56
+ </pre>
57
+
@@ -319,6 +319,28 @@
319
319
  }
320
320
  }
321
321
  }
322
+ },
323
+ "tooltip": {
324
+ "height": {
325
+ "value": "{height.24}",
326
+ "type": "sizing"
327
+ },
328
+ "spacinghorizontal": {
329
+ "value": "{sem.spacing.xsmall}",
330
+ "type": "spacing"
331
+ },
332
+ "fg": {
333
+ "value": "{sem.color.fg.neutral.inverted}",
334
+ "type": "color"
335
+ },
336
+ "bg": {
337
+ "value": "{sem.color.bg.neutral.contrast}",
338
+ "type": "color"
339
+ },
340
+ "borderradius": {
341
+ "value": "{sem.borderradius.medium}",
342
+ "type": "borderRadius"
343
+ }
322
344
  }
323
345
  }
324
346
  }
@@ -257,6 +257,10 @@
257
257
  "value": "16px",
258
258
  "type": "sizing"
259
259
  },
260
+ "24": {
261
+ "value": "24px",
262
+ "type": "sizing"
263
+ },
260
264
  "32": {
261
265
  "value": "32px",
262
266
  "type": "sizing"
@@ -40,6 +40,10 @@
40
40
  "disabled": {
41
41
  "value": "{gray.200}",
42
42
  "type": "color"
43
+ },
44
+ "contrast": {
45
+ "value": "{gray.900}",
46
+ "type": "color"
43
47
  }
44
48
  },
45
49
  "primary": {
@@ -82,6 +86,10 @@
82
86
  "disabled": {
83
87
  "value": "{gray.300}",
84
88
  "type": "color"
89
+ },
90
+ "inverted": {
91
+ "value": "{white}",
92
+ "type": "color"
85
93
  }
86
94
  },
87
95
  "primary": {
@@ -2,24 +2,24 @@
2
2
  "success": true,
3
3
 
4
4
  "data": [
5
- {"id": 1, "cardIndex": null, "isHeader": true, "isValid": null, "name": "1. Basic data"},
6
- {"id": 2, "cardIndex": 0, "isHeader": false, "isValid": null, "name": "Page 1"},
7
- {"id": 3, "cardIndex": 1, "isHeader": false, "isValid": null, "name": "Page 2"},
8
- {"id": 4, "cardIndex": 2, "isHeader": false, "isValid": null, "name": "Page 3"},
9
- {"id": 5, "cardIndex": null, "isHeader": true, "isValid": null, "name": "2. Personal data"},
10
- {"id": 6, "cardIndex": 3, "isHeader": false, "isValid": null, "name": "CheckBoxes"},
11
- {"id": 7, "cardIndex": 4, "isHeader": false, "isValid": null, "name": "Radios"},
12
- {"id": 8, "cardIndex": 5, "isHeader": false, "isValid": null, "name": "TextAreas"},
13
- {"id": 9, "cardIndex": 6, "isHeader": false, "isValid": null, "name": "Fieldsets"},
14
- {"id": 10, "cardIndex": null, "isHeader": true, "isValid": null, "name": "3. More data"},
15
- {"id": 11, "cardIndex": 7, "isHeader": false, "isValid": null, "name": "NumberFields"},
16
- {"id": 12, "cardIndex": 8, "isHeader": false, "isValid": null, "name": "HiddenFields"},
17
- {"id": 13, "cardIndex": 9, "isHeader": false, "isValid": null, "name": "SelectFields"},
18
- {"id": 14, "cardIndex": null, "isHeader": true, "isValid": null, "name": "4. Optional data"},
19
- {"id": 15, "cardIndex": 10, "isHeader": false, "isValid": null, "name": "ZipCodeFields"},
20
- {"id": 16, "cardIndex": 11, "isHeader": false, "isValid": null, "name": "EmailFields"},
21
- {"id": 17, "cardIndex": 12, "isHeader": false, "isValid": null, "name": "UrlFields"},
22
- {"id": 18, "cardIndex": 13, "isHeader": false, "isValid": null, "name": "PhoneFields"},
23
- {"id": 19, "cardIndex": 14, "isHeader": false, "isValid": null, "name": "CurrencyFields"}
5
+ {"id": 1, "cardIndex": null, "formState": "clean", "isHeader": true, "name": "1. Basic data"},
6
+ {"id": 2, "cardIndex": 0, "formState": "clean", "isHeader": false, "name": "Page 1"},
7
+ {"id": 3, "cardIndex": 1, "formState": "clean", "isHeader": false, "name": "Page 2"},
8
+ {"id": 4, "cardIndex": 2, "formState": "clean", "isHeader": false, "name": "Page 3"},
9
+ {"id": 5, "cardIndex": null, "formState": "clean", "isHeader": true, "name": "2. Personal data"},
10
+ {"id": 6, "cardIndex": 3, "formState": "clean", "isHeader": false, "name": "CheckBoxes"},
11
+ {"id": 7, "cardIndex": 4, "formState": "clean", "isHeader": false, "name": "Radios"},
12
+ {"id": 8, "cardIndex": 5, "formState": "clean", "isHeader": false, "name": "TextAreas"},
13
+ {"id": 9, "cardIndex": 6, "formState": "clean", "isHeader": false, "name": "Fieldsets"},
14
+ {"id": 10, "cardIndex": null, "formState": "clean", "isHeader": true, "name": "3. More data"},
15
+ {"id": 11, "cardIndex": 7, "formState": "clean", "isHeader": false, "name": "NumberFields"},
16
+ {"id": 12, "cardIndex": 8, "formState": "clean", "isHeader": false, "name": "HiddenFields"},
17
+ {"id": 13, "cardIndex": 9, "formState": "clean", "isHeader": false, "name": "SelectFields"},
18
+ {"id": 14, "cardIndex": null, "formState": "clean", "isHeader": true, "name": "4. Optional data"},
19
+ {"id": 15, "cardIndex": 10, "formState": "clean", "isHeader": false, "name": "ZipCodeFields"},
20
+ {"id": 16, "cardIndex": 11, "formState": "clean", "isHeader": false, "name": "EmailFields"},
21
+ {"id": 17, "cardIndex": 12, "formState": "clean", "isHeader": false, "name": "UrlFields"},
22
+ {"id": 18, "cardIndex": 13, "formState": "clean", "isHeader": false, "name": "PhoneFields"},
23
+ {"id": 19, "cardIndex": 14, "formState": "clean", "isHeader": false, "name": "CurrencyFields"}
24
24
  ]
25
25
  }
@@ -0,0 +1,18 @@
1
+ .website-blog-container {
2
+ .website-blog-searchfield {
3
+ transition: margin var(--website-transition-duration) ease-out;
4
+ width : 240px;
5
+
6
+ @media (max-height: 400px), (max-width: 600px) {
7
+ margin: 5px;
8
+ }
9
+
10
+ @media (min-height: 401px) and (min-width: 601px) {
11
+ margin: 10px;
12
+ }
13
+ }
14
+
15
+ .website-blog-toolbar {
16
+ background-color: var(--website-blog-toolbar-background-color);
17
+ }
18
+ }
@@ -0,0 +1,183 @@
1
+ .website-blog-list.neo-list {
2
+ transition: padding var(--website-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(--website-transition-duration) ease-out, margin-bottom var(--website-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-bold {
23
+ font-weight: 600;
24
+ }
25
+
26
+ .neo-highlight-search {
27
+ color: #5d83a7;
28
+ }
29
+
30
+ .neo-inner-content {
31
+ color : #fff;
32
+ display : inline-block;
33
+ margin-left: 10px;
34
+ text-shadow: 1px 1px 1px #000, 1px 1px 1px #fff;
35
+ transition : font-size var(--website-transition-duration) ease-out;
36
+ }
37
+
38
+ .neo-full-size {
39
+ height: 100%;
40
+ width : 100%;
41
+ }
42
+
43
+ .neo-inner-details {
44
+ transition: line-height var(--website-transition-duration) ease-out;
45
+ }
46
+
47
+ .neo-item-bottom-position {
48
+ bottom : 0;
49
+ left : 0;
50
+ transition: margin var(--website-transition-duration) ease-out;
51
+ }
52
+
53
+ .neo-item-top-position {
54
+ color : #fff;
55
+ right : 0;
56
+ text-align : end;
57
+ text-shadow: 1px 1px 1px #000, 1px 1px 1px #fff;
58
+ transition : font-size var(--website-transition-duration) ease-out, margin var(--website-transition-duration) ease-out;
59
+ }
60
+
61
+ .neo-relative {
62
+ position: relative;
63
+ }
64
+
65
+ .neo-title {
66
+ color : #fff;
67
+ font-weight : 600;
68
+ line-height : 1;
69
+ text-decoration: none;
70
+ text-shadow : 1px 1px 1px #000, 1px 1px 1px #fff;
71
+ transition : color 250ms ease-out;
72
+
73
+ &:hover {
74
+ color: #5d83a7
75
+ }
76
+ }
77
+
78
+ .neo-top-20 {
79
+ align-items: center;
80
+ display : flex;
81
+ transition : margin var(--website-transition-duration) ease-out;
82
+ }
83
+
84
+ .neo-user-image {
85
+ border-radius: 50%;
86
+ display : inline-block;
87
+ transition : height var(--website-transition-duration) ease-out, width var(--website-transition-duration) ease-out;
88
+ }
89
+
90
+ .preview-image {
91
+ background-blend-mode: overlay;
92
+ background-position : 50% 50%;
93
+ background-size : cover;
94
+ height : 100%;
95
+ }
96
+ }
97
+
98
+ @media (max-height: 400px), (max-width: 600px) {
99
+ padding: 5px 5px 0 5px;
100
+
101
+ .neo-inner-content {
102
+ font-size: 12px;
103
+ }
104
+
105
+ .neo-inner-details {
106
+ line-height: 16px;
107
+ }
108
+
109
+ .neo-item-bottom-position {
110
+ margin: 9px 12px;
111
+ right : 15%;
112
+ }
113
+
114
+ .neo-item-top-position {
115
+ font-size: 12px;
116
+ left : 15%;
117
+ margin : 9px 12px;
118
+ top : -200px;
119
+ }
120
+
121
+ .neo-list-item {
122
+ border-radius: 10px;
123
+ height : 200px;
124
+ margin-bottom: 5px;
125
+ }
126
+
127
+ .neo-title {
128
+ font-size: 20px;
129
+ }
130
+
131
+ .neo-top-20 {
132
+ margin-top: 15px;
133
+ }
134
+
135
+ .neo-user-image {
136
+ height: 30px;
137
+ width : 30px;
138
+ }
139
+ }
140
+
141
+ @media (min-height: 401px) and (min-width: 601px) {
142
+ padding: 10px 10px 0 10px;
143
+
144
+ .neo-inner-content {
145
+ font-size: 16px;
146
+ }
147
+
148
+ .neo-inner-details {
149
+ line-height: 22px;
150
+ }
151
+
152
+ .neo-item-bottom-position {
153
+ margin: 30px 40px;
154
+ right : 30%;
155
+ }
156
+
157
+ .neo-item-top-position {
158
+ font-size: 16px;
159
+ left : 30%;
160
+ margin : 30px 40px;
161
+ top : -400px;
162
+ }
163
+
164
+ .neo-list-item {
165
+ border-radius: 20px;
166
+ height : 400px;
167
+ margin-bottom: 10px;
168
+ }
169
+
170
+ .neo-title {
171
+ font-size: 34px;
172
+ }
173
+
174
+ .neo-top-20 {
175
+ margin-top: 20px;
176
+ }
177
+
178
+ .neo-user-image {
179
+ height: 44px;
180
+ width : 44px;
181
+ }
182
+ }
183
+ }