slicejs-web-framework 3.2.2 → 3.2.3

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 (107) hide show
  1. package/.opencode/opencode.json +14 -0
  2. package/LICENSE +21 -21
  3. package/README.md +174 -174
  4. package/Slice/Components/Structural/ContextManager/ContextManager.js +369 -369
  5. package/Slice/Components/Structural/ContextManager/ContextManagerDebugger.js +297 -297
  6. package/Slice/Components/Structural/Controller/Controller.js +1138 -1129
  7. package/Slice/Components/Structural/Controller/allowedValuesValidation.js +52 -0
  8. package/Slice/Components/Structural/Debugger/Debugger.css +619 -619
  9. package/Slice/Components/Structural/Debugger/Debugger.html +72 -72
  10. package/Slice/Components/Structural/Debugger/Debugger.js +1547 -1547
  11. package/Slice/Components/Structural/EventManager/EventManager.js +338 -338
  12. package/Slice/Components/Structural/EventManager/EventManagerDebugger.js +361 -361
  13. package/Slice/Components/Structural/Logger/Log.js +10 -10
  14. package/Slice/Components/Structural/Logger/Logger.js +146 -146
  15. package/Slice/Components/Structural/Router/Router.js +721 -721
  16. package/Slice/Components/Structural/StylesManager/StylesManager.js +78 -78
  17. package/Slice/Components/Structural/StylesManager/ThemeManager/ThemeManager.js +84 -84
  18. package/Slice/Slice.js +542 -542
  19. package/Slice/tests/build-bundled-component-without-category.test.js +103 -103
  20. package/Slice/tests/build-js-only-visual-components.test.js +144 -144
  21. package/Slice/tests/bundle-v2-runtime-contract.test.js +728 -728
  22. package/Slice/tests/props-allowed-values-validation.test.js +119 -0
  23. package/Slice/tests/public-env-runtime-accessors.test.js +44 -44
  24. package/Slice/tests/router-loading-finally.test.js +68 -68
  25. package/api/index.js +286 -286
  26. package/api/middleware/securityMiddleware.js +252 -252
  27. package/api/tests/public-env-resolver.test.js +193 -193
  28. package/api/utils/publicEnvResolver.js +117 -117
  29. package/package.json +38 -38
  30. package/sliceConfig.schema.json +109 -109
  31. package/src/App/index.html +22 -22
  32. package/src/App/index.js +23 -23
  33. package/src/App/style.css +40 -40
  34. package/src/Components/AppComponents/HomePage/HomePage.css +201 -201
  35. package/src/Components/AppComponents/HomePage/HomePage.html +37 -37
  36. package/src/Components/AppComponents/HomePage/HomePage.js +210 -210
  37. package/src/Components/AppComponents/Playground/Playground.css +11 -11
  38. package/src/Components/AppComponents/Playground/Playground.js +111 -111
  39. package/src/Components/Service/FetchManager/FetchManager.js +133 -133
  40. package/src/Components/Service/IndexedDbManager/IndexedDbManager.js +141 -141
  41. package/src/Components/Service/LocalStorageManager/LocalStorageManager.js +45 -45
  42. package/src/Components/Visual/Button/Button.css +47 -47
  43. package/src/Components/Visual/Button/Button.html +5 -5
  44. package/src/Components/Visual/Button/Button.js +92 -92
  45. package/src/Components/Visual/Card/Card.css +68 -68
  46. package/src/Components/Visual/Card/Card.html +7 -7
  47. package/src/Components/Visual/Card/Card.js +107 -107
  48. package/src/Components/Visual/Checkbox/Checkbox.css +87 -87
  49. package/src/Components/Visual/Checkbox/Checkbox.html +8 -8
  50. package/src/Components/Visual/Checkbox/Checkbox.js +86 -86
  51. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.css +129 -129
  52. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.html +3 -3
  53. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.js +262 -262
  54. package/src/Components/Visual/Details/Details.css +70 -70
  55. package/src/Components/Visual/Details/Details.html +9 -9
  56. package/src/Components/Visual/Details/Details.js +76 -76
  57. package/src/Components/Visual/DropDown/DropDown.css +60 -60
  58. package/src/Components/Visual/DropDown/DropDown.html +5 -5
  59. package/src/Components/Visual/DropDown/DropDown.js +63 -63
  60. package/src/Components/Visual/Grid/Grid.css +7 -7
  61. package/src/Components/Visual/Grid/Grid.html +1 -1
  62. package/src/Components/Visual/Grid/Grid.js +57 -57
  63. package/src/Components/Visual/Icon/Icon.css +510 -510
  64. package/src/Components/Visual/Icon/Icon.js +89 -89
  65. package/src/Components/Visual/Icon/slc.json +554 -554
  66. package/src/Components/Visual/Icon/slc.styl +507 -507
  67. package/src/Components/Visual/Icon/slc.svg +1485 -1485
  68. package/src/Components/Visual/Icon/slc.symbol.svg +1058 -1058
  69. package/src/Components/Visual/Input/Input.css +91 -91
  70. package/src/Components/Visual/Input/Input.html +4 -4
  71. package/src/Components/Visual/Input/Input.js +215 -215
  72. package/src/Components/Visual/Layout/Layout.js +49 -49
  73. package/src/Components/Visual/Link/Link.css +8 -8
  74. package/src/Components/Visual/Link/Link.html +1 -1
  75. package/src/Components/Visual/Link/Link.js +63 -63
  76. package/src/Components/Visual/Loading/Loading.css +56 -56
  77. package/src/Components/Visual/Loading/Loading.html +83 -83
  78. package/src/Components/Visual/Loading/Loading.js +38 -38
  79. package/src/Components/Visual/MultiRoute/MultiRoute.js +93 -93
  80. package/src/Components/Visual/Navbar/Navbar.css +115 -115
  81. package/src/Components/Visual/Navbar/Navbar.html +44 -44
  82. package/src/Components/Visual/Navbar/Navbar.js +141 -141
  83. package/src/Components/Visual/NotFound/NotFound.css +116 -116
  84. package/src/Components/Visual/NotFound/NotFound.html +23 -23
  85. package/src/Components/Visual/NotFound/NotFound.js +16 -16
  86. package/src/Components/Visual/Route/Route.js +93 -93
  87. package/src/Components/Visual/Select/Select.css +84 -84
  88. package/src/Components/Visual/Select/Select.html +8 -8
  89. package/src/Components/Visual/Select/Select.js +195 -195
  90. package/src/Components/Visual/Switch/Switch.css +76 -76
  91. package/src/Components/Visual/Switch/Switch.html +8 -8
  92. package/src/Components/Visual/Switch/Switch.js +102 -102
  93. package/src/Components/Visual/TreeItem/TreeItem.css +36 -36
  94. package/src/Components/Visual/TreeItem/TreeItem.html +1 -1
  95. package/src/Components/Visual/TreeItem/TreeItem.js +126 -126
  96. package/src/Components/Visual/TreeView/TreeView.css +8 -8
  97. package/src/Components/Visual/TreeView/TreeView.html +1 -1
  98. package/src/Components/Visual/TreeView/TreeView.js +48 -48
  99. package/src/Components/components.js +27 -27
  100. package/src/Styles/sliceStyles.css +34 -34
  101. package/src/Themes/Dark.css +42 -42
  102. package/src/Themes/Light.css +31 -31
  103. package/src/Themes/Slice.css +47 -47
  104. package/src/routes.js +15 -15
  105. package/src/sliceConfig.json +73 -73
  106. package/src/testing.js +887 -887
  107. package/types/index.d.ts +207 -207
package/package.json CHANGED
@@ -1,38 +1,38 @@
1
- {
2
- "name": "slicejs-web-framework",
3
- "version": "3.2.2",
4
- "description": "",
5
- "engines": {
6
- "node": ">=20"
7
- },
8
- "scripts": {
9
- "test": "echo \"Error: no test specified\" && exit 1",
10
- "slice:init": "node node_modules/slicejs-cli/client.js init",
11
- "slice:create": "node node_modules/slicejs-cli/client.js component create",
12
- "slice:delete": "node node_modules/slicejs-cli/client.js component delete",
13
- "slice:list": "node node_modules/slicejs-cli/client.js component list",
14
- "slice:start": "node api/index.js",
15
- "format": "prettier --write \"**/*.js\"",
16
- "run": "node api/index.js",
17
- "development": "npm run",
18
- "slice:modify": "node node_modules/slicejs-cli/client.js modify"
19
- },
20
- "keywords": [],
21
- "author": "",
22
- "license": "ISC",
23
- "type": "module",
24
- "types": "./types/index.d.ts",
25
- "dependencies": {
26
- "express": "^4.19.2"
27
- },
28
- "devDependencies": {
29
- "prettier": "3.3.3"
30
- },
31
- "prettier": {
32
- "trailingComma": "es5",
33
- "tabWidth": 3,
34
- "semi": true,
35
- "singleQuote": true,
36
- "printWidth": 120
37
- }
38
- }
1
+ {
2
+ "name": "slicejs-web-framework",
3
+ "version": "3.2.3",
4
+ "description": "",
5
+ "engines": {
6
+ "node": ">=20"
7
+ },
8
+ "scripts": {
9
+ "test": "echo \"Error: no test specified\" && exit 1",
10
+ "slice:init": "node node_modules/slicejs-cli/client.js init",
11
+ "slice:create": "node node_modules/slicejs-cli/client.js component create",
12
+ "slice:delete": "node node_modules/slicejs-cli/client.js component delete",
13
+ "slice:list": "node node_modules/slicejs-cli/client.js component list",
14
+ "slice:start": "node api/index.js",
15
+ "format": "prettier --write \"**/*.js\"",
16
+ "run": "node api/index.js",
17
+ "development": "npm run",
18
+ "slice:modify": "node node_modules/slicejs-cli/client.js modify"
19
+ },
20
+ "keywords": [],
21
+ "author": "",
22
+ "license": "ISC",
23
+ "type": "module",
24
+ "types": "./types/index.d.ts",
25
+ "dependencies": {
26
+ "express": "^4.19.2"
27
+ },
28
+ "devDependencies": {
29
+ "prettier": "3.3.3"
30
+ },
31
+ "prettier": {
32
+ "trailingComma": "es5",
33
+ "tabWidth": 3,
34
+ "semi": true,
35
+ "singleQuote": true,
36
+ "printWidth": 120
37
+ }
38
+ }
@@ -1,109 +1,109 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://slicejs.local/sliceConfig.schema.json",
4
- "title": "Slice.js Config",
5
- "type": "object",
6
- "additionalProperties": true,
7
- "properties": {
8
- "debugger": {
9
- "type": "object",
10
- "additionalProperties": true,
11
- "properties": {
12
- "enabled": { "type": "boolean" },
13
- "click": { "type": "string", "enum": ["right", "left"] }
14
- }
15
- },
16
- "stylesManager": {
17
- "type": "object",
18
- "additionalProperties": true,
19
- "properties": {
20
- "requestedStyles": { "type": "array", "items": { "type": "string" } }
21
- }
22
- },
23
- "themeManager": {
24
- "type": "object",
25
- "additionalProperties": true,
26
- "properties": {
27
- "enabled": { "type": "boolean" },
28
- "defaultTheme": { "type": "string" },
29
- "saveThemeLocally": { "type": "boolean" },
30
- "useBrowserTheme": { "type": "boolean" }
31
- }
32
- },
33
- "logger": {
34
- "type": "object",
35
- "additionalProperties": true,
36
- "properties": {
37
- "enabled": { "type": "boolean" },
38
- "showLogs": { "type": "object", "additionalProperties": true }
39
- }
40
- },
41
- "events": {
42
- "type": "object",
43
- "additionalProperties": true,
44
- "properties": {
45
- "enabled": { "type": "boolean" },
46
- "ui": {
47
- "type": "object",
48
- "additionalProperties": true,
49
- "properties": {
50
- "enabled": { "type": "boolean" },
51
- "shortcut": { "type": "string" }
52
- }
53
- }
54
- }
55
- },
56
- "context": {
57
- "type": "object",
58
- "additionalProperties": true,
59
- "properties": {
60
- "enabled": { "type": "boolean" },
61
- "ui": {
62
- "type": "object",
63
- "additionalProperties": true,
64
- "properties": {
65
- "enabled": { "type": "boolean" },
66
- "shortcut": { "type": "string" }
67
- }
68
- }
69
- }
70
- },
71
- "paths": {
72
- "type": "object",
73
- "additionalProperties": true,
74
- "properties": {
75
- "components": { "type": "object", "additionalProperties": true },
76
- "themes": { "type": "string" },
77
- "styles": { "type": "string" },
78
- "routesFile": { "type": "string" }
79
- },
80
- "required": ["components", "themes", "styles", "routesFile"]
81
- },
82
- "router": {
83
- "type": "object",
84
- "additionalProperties": true,
85
- "properties": {
86
- "defaultRoute": { "type": "string" }
87
- }
88
- },
89
- "loading": {
90
- "type": "object",
91
- "additionalProperties": true,
92
- "properties": {
93
- "enabled": { "type": "boolean" }
94
- }
95
- },
96
- "publicFolders": {
97
- "type": "array",
98
- "items": { "type": "string" }
99
- },
100
- "server": {
101
- "type": "object",
102
- "additionalProperties": true,
103
- "properties": {
104
- "port": { "type": "number" },
105
- "host": { "type": "string" }
106
- }
107
- }
108
- }
109
- }
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://slicejs.local/sliceConfig.schema.json",
4
+ "title": "Slice.js Config",
5
+ "type": "object",
6
+ "additionalProperties": true,
7
+ "properties": {
8
+ "debugger": {
9
+ "type": "object",
10
+ "additionalProperties": true,
11
+ "properties": {
12
+ "enabled": { "type": "boolean" },
13
+ "click": { "type": "string", "enum": ["right", "left"] }
14
+ }
15
+ },
16
+ "stylesManager": {
17
+ "type": "object",
18
+ "additionalProperties": true,
19
+ "properties": {
20
+ "requestedStyles": { "type": "array", "items": { "type": "string" } }
21
+ }
22
+ },
23
+ "themeManager": {
24
+ "type": "object",
25
+ "additionalProperties": true,
26
+ "properties": {
27
+ "enabled": { "type": "boolean" },
28
+ "defaultTheme": { "type": "string" },
29
+ "saveThemeLocally": { "type": "boolean" },
30
+ "useBrowserTheme": { "type": "boolean" }
31
+ }
32
+ },
33
+ "logger": {
34
+ "type": "object",
35
+ "additionalProperties": true,
36
+ "properties": {
37
+ "enabled": { "type": "boolean" },
38
+ "showLogs": { "type": "object", "additionalProperties": true }
39
+ }
40
+ },
41
+ "events": {
42
+ "type": "object",
43
+ "additionalProperties": true,
44
+ "properties": {
45
+ "enabled": { "type": "boolean" },
46
+ "ui": {
47
+ "type": "object",
48
+ "additionalProperties": true,
49
+ "properties": {
50
+ "enabled": { "type": "boolean" },
51
+ "shortcut": { "type": "string" }
52
+ }
53
+ }
54
+ }
55
+ },
56
+ "context": {
57
+ "type": "object",
58
+ "additionalProperties": true,
59
+ "properties": {
60
+ "enabled": { "type": "boolean" },
61
+ "ui": {
62
+ "type": "object",
63
+ "additionalProperties": true,
64
+ "properties": {
65
+ "enabled": { "type": "boolean" },
66
+ "shortcut": { "type": "string" }
67
+ }
68
+ }
69
+ }
70
+ },
71
+ "paths": {
72
+ "type": "object",
73
+ "additionalProperties": true,
74
+ "properties": {
75
+ "components": { "type": "object", "additionalProperties": true },
76
+ "themes": { "type": "string" },
77
+ "styles": { "type": "string" },
78
+ "routesFile": { "type": "string" }
79
+ },
80
+ "required": ["components", "themes", "styles", "routesFile"]
81
+ },
82
+ "router": {
83
+ "type": "object",
84
+ "additionalProperties": true,
85
+ "properties": {
86
+ "defaultRoute": { "type": "string" }
87
+ }
88
+ },
89
+ "loading": {
90
+ "type": "object",
91
+ "additionalProperties": true,
92
+ "properties": {
93
+ "enabled": { "type": "boolean" }
94
+ }
95
+ },
96
+ "publicFolders": {
97
+ "type": "array",
98
+ "items": { "type": "string" }
99
+ },
100
+ "server": {
101
+ "type": "object",
102
+ "additionalProperties": true,
103
+ "properties": {
104
+ "port": { "type": "number" },
105
+ "host": { "type": "string" }
106
+ }
107
+ }
108
+ }
109
+ }
@@ -1,22 +1,22 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <title>Slice - Documentation</title>
7
- <link rel="icon" type="image/x-icon" href="/../../images/favicon.ico" />
8
- <link rel="stylesheet" type="text/css" href="/App/style.css" />
9
-
10
- <!-- Prism -->
11
-
12
-
13
-
14
- <!-- Eliminar Prism despues-->
15
- </head>
16
-
17
- <body>
18
- <div id="app">
19
- <script src="/App/index.js" type="module"></script>
20
- </div>
21
- </body>
22
- </html>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Slice - Documentation</title>
7
+ <link rel="icon" type="image/x-icon" href="/../../images/favicon.ico" />
8
+ <link rel="stylesheet" type="text/css" href="/App/style.css" />
9
+
10
+ <!-- Prism -->
11
+
12
+
13
+
14
+ <!-- Eliminar Prism despues-->
15
+ </head>
16
+
17
+ <body>
18
+ <div id="app">
19
+ <script src="/App/index.js" type="module"></script>
20
+ </div>
21
+ </body>
22
+ </html>
package/src/App/index.js CHANGED
@@ -1,23 +1,23 @@
1
- import Slice from '/Slice/Slice.js';
2
-
3
-
4
- /*
5
- slice.router.beforeEach(async (to, from, next) => {
6
-
7
- if(to.metadata.private){
8
- const isAuthenticated = await //fetchlogic for validation
9
- if(!isAuthenticated){
10
- return next({ path: '/login', replace: true });
11
- }
12
- return next();
13
- }
14
-
15
- return next();
16
- });
17
-
18
-
19
- If any beforeEach or afterEach is defined, start the router after defining them
20
-
21
- await slice.router.start();
22
-
23
- */
1
+ import Slice from '/Slice/Slice.js';
2
+
3
+
4
+ /*
5
+ slice.router.beforeEach(async (to, from, next) => {
6
+
7
+ if(to.metadata.private){
8
+ const isAuthenticated = await //fetchlogic for validation
9
+ if(!isAuthenticated){
10
+ return next({ path: '/login', replace: true });
11
+ }
12
+ return next();
13
+ }
14
+
15
+ return next();
16
+ });
17
+
18
+
19
+ If any beforeEach or afterEach is defined, start the router after defining them
20
+
21
+ await slice.router.start();
22
+
23
+ */
package/src/App/style.css CHANGED
@@ -1,40 +1,40 @@
1
- /* :root {
2
- --docs-width: 64%;
3
- }
4
- slice-layout {
5
- display: flex;
6
- justify-content: center;
7
- }
8
-
9
- p {
10
- text-align: justify;
11
- }
12
- h1 {
13
- padding-top: 10px;
14
- padding-bottom: 10px;
15
- border-bottom: 1px solid var(--secondary-background-color);
16
- }
17
- h2 {
18
- padding-top: 10px;
19
- }
20
- .grid-container {
21
- overflow-x: auto;
22
- }
23
- @media only screen and (max-width: 770px) {
24
- :root {
25
- --docs-width: 100%;
26
- }
27
- }
28
- * {
29
- font-family: var(--font-family);
30
- }
31
- .docs_container {
32
- color: var(--font-primary-color);
33
- margin-top: 100px;
34
- overflow-y: scroll;
35
- overflow-x: hidden;
36
- width: var(--docs-width);
37
- padding-left: 10px;
38
- padding-right: 10px;
39
- padding-bottom: 25px;
40
- } */
1
+ /* :root {
2
+ --docs-width: 64%;
3
+ }
4
+ slice-layout {
5
+ display: flex;
6
+ justify-content: center;
7
+ }
8
+
9
+ p {
10
+ text-align: justify;
11
+ }
12
+ h1 {
13
+ padding-top: 10px;
14
+ padding-bottom: 10px;
15
+ border-bottom: 1px solid var(--secondary-background-color);
16
+ }
17
+ h2 {
18
+ padding-top: 10px;
19
+ }
20
+ .grid-container {
21
+ overflow-x: auto;
22
+ }
23
+ @media only screen and (max-width: 770px) {
24
+ :root {
25
+ --docs-width: 100%;
26
+ }
27
+ }
28
+ * {
29
+ font-family: var(--font-family);
30
+ }
31
+ .docs_container {
32
+ color: var(--font-primary-color);
33
+ margin-top: 100px;
34
+ overflow-y: scroll;
35
+ overflow-x: hidden;
36
+ width: var(--docs-width);
37
+ padding-left: 10px;
38
+ padding-right: 10px;
39
+ padding-bottom: 25px;
40
+ } */