slicejs-web-framework 2.3.5 → 2.4.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 (84) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +24 -5
  3. package/Slice/Components/Structural/Controller/Controller.js +156 -154
  4. package/Slice/Components/Structural/Debugger/Debugger.css +619 -619
  5. package/Slice/Components/Structural/Debugger/Debugger.html +72 -72
  6. package/Slice/Components/Structural/Logger/Log.js +10 -10
  7. package/Slice/Components/Structural/StylesManager/StylesManager.js +6 -3
  8. package/Slice/Slice.js +111 -51
  9. package/api/index.js +261 -233
  10. package/api/middleware/securityMiddleware.js +252 -252
  11. package/package.json +37 -37
  12. package/sliceConfig.schema.json +4 -0
  13. package/src/App/index.html +22 -22
  14. package/src/App/index.js +23 -23
  15. package/src/App/style.css +40 -40
  16. package/src/Components/AppComponents/HomePage/HomePage.css +204 -204
  17. package/src/Components/AppComponents/HomePage/HomePage.html +48 -48
  18. package/src/Components/AppComponents/HomePage/HomePage.js +195 -195
  19. package/src/Components/AppComponents/Playground/Playground.css +11 -11
  20. package/src/Components/AppComponents/Playground/Playground.js +111 -111
  21. package/src/Components/Service/FetchManager/FetchManager.js +133 -133
  22. package/src/Components/Service/IndexedDbManager/IndexedDbManager.js +141 -141
  23. package/src/Components/Service/LocalStorageManager/LocalStorageManager.js +45 -45
  24. package/src/Components/Visual/Button/Button.css +47 -47
  25. package/src/Components/Visual/Button/Button.html +5 -5
  26. package/src/Components/Visual/Button/Button.js +92 -92
  27. package/src/Components/Visual/Card/Card.css +68 -68
  28. package/src/Components/Visual/Card/Card.html +7 -7
  29. package/src/Components/Visual/Card/Card.js +107 -107
  30. package/src/Components/Visual/Checkbox/Checkbox.css +87 -87
  31. package/src/Components/Visual/Checkbox/Checkbox.html +8 -8
  32. package/src/Components/Visual/Checkbox/Checkbox.js +86 -86
  33. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.css +129 -129
  34. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.html +3 -3
  35. package/src/Components/Visual/CodeVisualizer/CodeVisualizer.js +259 -259
  36. package/src/Components/Visual/Details/Details.css +70 -70
  37. package/src/Components/Visual/Details/Details.html +9 -9
  38. package/src/Components/Visual/Details/Details.js +76 -76
  39. package/src/Components/Visual/DropDown/DropDown.css +60 -60
  40. package/src/Components/Visual/DropDown/DropDown.html +5 -5
  41. package/src/Components/Visual/DropDown/DropDown.js +63 -63
  42. package/src/Components/Visual/Grid/Grid.css +7 -7
  43. package/src/Components/Visual/Grid/Grid.html +1 -1
  44. package/src/Components/Visual/Grid/Grid.js +57 -57
  45. package/src/Components/Visual/Icon/Icon.css +510 -510
  46. package/src/Components/Visual/Icon/Icon.js +89 -89
  47. package/src/Components/Visual/Icon/slc.json +554 -554
  48. package/src/Components/Visual/Icon/slc.styl +507 -507
  49. package/src/Components/Visual/Icon/slc.svg +1485 -1485
  50. package/src/Components/Visual/Icon/slc.symbol.svg +1058 -1058
  51. package/src/Components/Visual/Input/Input.css +91 -91
  52. package/src/Components/Visual/Input/Input.html +4 -4
  53. package/src/Components/Visual/Input/Input.js +215 -215
  54. package/src/Components/Visual/Layout/Layout.js +49 -49
  55. package/src/Components/Visual/Loading/Loading.css +56 -56
  56. package/src/Components/Visual/Loading/Loading.html +83 -83
  57. package/src/Components/Visual/Loading/Loading.js +38 -38
  58. package/src/Components/Visual/MultiRoute/MultiRoute.js +93 -93
  59. package/src/Components/Visual/Navbar/Navbar.css +115 -115
  60. package/src/Components/Visual/Navbar/Navbar.html +44 -44
  61. package/src/Components/Visual/Navbar/Navbar.js +141 -141
  62. package/src/Components/Visual/NotFound/NotFound.css +116 -116
  63. package/src/Components/Visual/NotFound/NotFound.html +23 -23
  64. package/src/Components/Visual/NotFound/NotFound.js +16 -16
  65. package/src/Components/Visual/Route/Route.js +93 -93
  66. package/src/Components/Visual/Select/Select.css +84 -84
  67. package/src/Components/Visual/Select/Select.html +8 -8
  68. package/src/Components/Visual/Select/Select.js +195 -195
  69. package/src/Components/Visual/Switch/Switch.css +76 -76
  70. package/src/Components/Visual/Switch/Switch.html +8 -8
  71. package/src/Components/Visual/Switch/Switch.js +102 -102
  72. package/src/Components/Visual/TreeItem/TreeItem.css +36 -36
  73. package/src/Components/Visual/TreeItem/TreeItem.html +1 -1
  74. package/src/Components/Visual/TreeItem/TreeItem.js +126 -126
  75. package/src/Components/Visual/TreeView/TreeView.css +8 -8
  76. package/src/Components/Visual/TreeView/TreeView.html +1 -1
  77. package/src/Components/Visual/TreeView/TreeView.js +48 -48
  78. package/src/Styles/sliceStyles.css +34 -34
  79. package/src/Themes/Dark.css +42 -42
  80. package/src/Themes/Light.css +31 -31
  81. package/src/Themes/Slice.css +47 -47
  82. package/src/routes.js +15 -15
  83. package/src/sliceConfig.json +8 -3
  84. package/src/testing.js +887 -887
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
+ } */
@@ -1,205 +1,205 @@
1
- /* Home page styles */
2
- slice-home-page {
3
- display: block;
4
- width: 100%;
5
- font-family: var(--font-family);
6
- color: var(--font-primary-color);
7
- }
8
-
9
- /* Hero section styles */
10
- .hero-section {
11
- position: relative;
12
- min-height: 80vh;
13
- display: flex;
14
- align-items: center;
15
- justify-content: center;
16
- text-align: center;
17
- padding: 2rem;
18
- background-color: var(--primary-background-color);
19
- overflow: hidden;
20
- }
21
-
22
- .hero-content {
23
- max-width: 800px;
24
- z-index: 1;
25
- }
26
-
27
- .hero-logo-container {
28
- margin-bottom: 1.5rem;
29
- }
30
-
31
- .hero-logo {
32
- max-width: 150px;
33
- height: auto;
34
- /* Convertir el logo a una silueta */
35
- filter: brightness(0) drop-shadow(0 0 8px var(--primary-color));
36
- }
37
-
38
- .hero-title {
39
- font-size: 3rem;
40
- margin-bottom: 1rem;
41
- color: var(--font-primary-color);
42
- }
43
-
44
- .hero-title .highlight {
45
- color: var(--primary-color);
46
- }
47
-
48
- .hero-subtitle {
49
- font-size: 1.5rem;
50
- margin-bottom: 1.5rem;
51
- color: var(--font-secondary-color);
52
- }
53
-
54
- .hero-description {
55
- font-size: 1.1rem;
56
- margin-bottom: 2rem;
57
- line-height: 1.6;
58
- }
59
-
60
- .cta-buttons {
61
- display: flex;
62
- gap: 1rem;
63
- justify-content: center;
64
- margin-top: 2rem;
65
- }
66
-
67
- /* Features section styles */
68
- .features-section {
69
- padding: 5rem 2rem;
70
- background-color: var(--secondary-background-color);
71
- }
72
-
73
- .section-title {
74
- text-align: center;
75
- font-size: 2.5rem;
76
- margin-bottom: 3rem;
77
- color: var(--primary-color);
78
- }
79
-
80
- .feature-grid {
81
- display: grid;
82
- grid-template-columns: repeat(3, 1fr);
83
- gap: 2rem;
84
- max-width: 1200px;
85
- margin: 0 auto;
86
- }
87
-
88
- .feature-item {
89
- padding: 2rem;
90
- background-color: var(--primary-background-color);
91
- border-radius: var(--border-radius-slice);
92
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
93
- transition: transform 0.3s ease, box-shadow 0.3s ease;
94
- }
95
-
96
- .feature-item:hover {
97
- transform: translateY(-5px);
98
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
99
- }
100
-
101
- .feature-title {
102
- font-size: 1.5rem;
103
- margin-bottom: 1rem;
104
- color: var(--primary-color);
105
- }
106
-
107
- .feature-description {
108
- color: var(--font-secondary-color);
109
- line-height: 1.6;
110
- }
111
-
112
- /* Example section styles */
113
- .example-section {
114
- padding: 5rem 2rem;
115
- background-color: var(--primary-background-color);
116
- }
117
-
118
- .section-description {
119
- text-align: center;
120
- max-width: 800px;
121
- margin: 0 auto 3rem auto;
122
- color: var(--font-secondary-color);
123
- font-size: 1.2rem;
124
- }
125
-
126
- .examples-container {
127
- display: grid;
128
- grid-template-columns: repeat(2, 1fr);
129
- gap: 3rem;
130
- max-width: 1000px;
131
- margin: 0 auto;
132
- }
133
-
134
- .example-item {
135
- display: flex;
136
- flex-direction: column;
137
- gap: 1rem;
138
- padding: 2rem;
139
- background-color: var(--secondary-background-color);
140
- border-radius: var(--border-radius-slice);
141
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
142
- }
143
-
144
- .example-item h3 {
145
- margin: 0;
146
- font-size: 1.3rem;
147
- color: var(--primary-color);
148
- }
149
-
150
- /* Getting started section styles */
151
- .getting-started-section {
152
- padding: 5rem 2rem;
153
- background-color: var(--secondary-background-color);
154
- text-align: center;
155
- }
156
-
157
- .code-sample {
158
- max-width: 800px;
159
- margin: 0 auto;
160
- text-align: left;
161
- }
162
-
163
- /* Footer styles */
164
- .home-footer {
165
- padding: 3rem 2rem;
166
- text-align: center;
167
- background-color: var(--primary-color);
168
- color: var(--primary-color-contrast);
169
- }
170
-
171
- .copyright {
172
- margin-top: 1rem;
173
- font-size: 0.9rem;
174
- opacity: 0.8;
175
- }
176
-
177
- /* Responsive styles */
178
- @media (max-width: 992px) {
179
- .feature-grid {
180
- grid-template-columns: repeat(2, 1fr);
181
- }
182
-
183
- .examples-container {
184
- grid-template-columns: 1fr;
185
- }
186
- }
187
-
188
- @media (max-width: 768px) {
189
- .hero-title {
190
- font-size: 2.5rem;
191
- }
192
-
193
- .hero-subtitle {
194
- font-size: 1.3rem;
195
- }
196
-
197
- .feature-grid {
198
- grid-template-columns: 1fr;
199
- }
200
-
201
- .cta-buttons {
202
- flex-direction: column;
203
- align-items: center;
204
- }
1
+ /* Home page styles */
2
+ slice-home-page {
3
+ display: block;
4
+ width: 100%;
5
+ font-family: var(--font-family);
6
+ color: var(--font-primary-color);
7
+ }
8
+
9
+ /* Hero section styles */
10
+ .hero-section {
11
+ position: relative;
12
+ min-height: 80vh;
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ text-align: center;
17
+ padding: 2rem;
18
+ background-color: var(--primary-background-color);
19
+ overflow: hidden;
20
+ }
21
+
22
+ .hero-content {
23
+ max-width: 800px;
24
+ z-index: 1;
25
+ }
26
+
27
+ .hero-logo-container {
28
+ margin-bottom: 1.5rem;
29
+ }
30
+
31
+ .hero-logo {
32
+ max-width: 150px;
33
+ height: auto;
34
+ /* Convertir el logo a una silueta */
35
+ filter: brightness(0) drop-shadow(0 0 8px var(--primary-color));
36
+ }
37
+
38
+ .hero-title {
39
+ font-size: 3rem;
40
+ margin-bottom: 1rem;
41
+ color: var(--font-primary-color);
42
+ }
43
+
44
+ .hero-title .highlight {
45
+ color: var(--primary-color);
46
+ }
47
+
48
+ .hero-subtitle {
49
+ font-size: 1.5rem;
50
+ margin-bottom: 1.5rem;
51
+ color: var(--font-secondary-color);
52
+ }
53
+
54
+ .hero-description {
55
+ font-size: 1.1rem;
56
+ margin-bottom: 2rem;
57
+ line-height: 1.6;
58
+ }
59
+
60
+ .cta-buttons {
61
+ display: flex;
62
+ gap: 1rem;
63
+ justify-content: center;
64
+ margin-top: 2rem;
65
+ }
66
+
67
+ /* Features section styles */
68
+ .features-section {
69
+ padding: 5rem 2rem;
70
+ background-color: var(--secondary-background-color);
71
+ }
72
+
73
+ .section-title {
74
+ text-align: center;
75
+ font-size: 2.5rem;
76
+ margin-bottom: 3rem;
77
+ color: var(--primary-color);
78
+ }
79
+
80
+ .feature-grid {
81
+ display: grid;
82
+ grid-template-columns: repeat(3, 1fr);
83
+ gap: 2rem;
84
+ max-width: 1200px;
85
+ margin: 0 auto;
86
+ }
87
+
88
+ .feature-item {
89
+ padding: 2rem;
90
+ background-color: var(--primary-background-color);
91
+ border-radius: var(--border-radius-slice);
92
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
93
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
94
+ }
95
+
96
+ .feature-item:hover {
97
+ transform: translateY(-5px);
98
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
99
+ }
100
+
101
+ .feature-title {
102
+ font-size: 1.5rem;
103
+ margin-bottom: 1rem;
104
+ color: var(--primary-color);
105
+ }
106
+
107
+ .feature-description {
108
+ color: var(--font-secondary-color);
109
+ line-height: 1.6;
110
+ }
111
+
112
+ /* Example section styles */
113
+ .example-section {
114
+ padding: 5rem 2rem;
115
+ background-color: var(--primary-background-color);
116
+ }
117
+
118
+ .section-description {
119
+ text-align: center;
120
+ max-width: 800px;
121
+ margin: 0 auto 3rem auto;
122
+ color: var(--font-secondary-color);
123
+ font-size: 1.2rem;
124
+ }
125
+
126
+ .examples-container {
127
+ display: grid;
128
+ grid-template-columns: repeat(2, 1fr);
129
+ gap: 3rem;
130
+ max-width: 1000px;
131
+ margin: 0 auto;
132
+ }
133
+
134
+ .example-item {
135
+ display: flex;
136
+ flex-direction: column;
137
+ gap: 1rem;
138
+ padding: 2rem;
139
+ background-color: var(--secondary-background-color);
140
+ border-radius: var(--border-radius-slice);
141
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
142
+ }
143
+
144
+ .example-item h3 {
145
+ margin: 0;
146
+ font-size: 1.3rem;
147
+ color: var(--primary-color);
148
+ }
149
+
150
+ /* Getting started section styles */
151
+ .getting-started-section {
152
+ padding: 5rem 2rem;
153
+ background-color: var(--secondary-background-color);
154
+ text-align: center;
155
+ }
156
+
157
+ .code-sample {
158
+ max-width: 800px;
159
+ margin: 0 auto;
160
+ text-align: left;
161
+ }
162
+
163
+ /* Footer styles */
164
+ .home-footer {
165
+ padding: 3rem 2rem;
166
+ text-align: center;
167
+ background-color: var(--primary-color);
168
+ color: var(--primary-color-contrast);
169
+ }
170
+
171
+ .copyright {
172
+ margin-top: 1rem;
173
+ font-size: 0.9rem;
174
+ opacity: 0.8;
175
+ }
176
+
177
+ /* Responsive styles */
178
+ @media (max-width: 992px) {
179
+ .feature-grid {
180
+ grid-template-columns: repeat(2, 1fr);
181
+ }
182
+
183
+ .examples-container {
184
+ grid-template-columns: 1fr;
185
+ }
186
+ }
187
+
188
+ @media (max-width: 768px) {
189
+ .hero-title {
190
+ font-size: 2.5rem;
191
+ }
192
+
193
+ .hero-subtitle {
194
+ font-size: 1.3rem;
195
+ }
196
+
197
+ .feature-grid {
198
+ grid-template-columns: 1fr;
199
+ }
200
+
201
+ .cta-buttons {
202
+ flex-direction: column;
203
+ align-items: center;
204
+ }
205
205
  }
@@ -1,49 +1,49 @@
1
- <div class="home-page-container">
2
- <div class="hero-section">
3
- <div class="hero-content">
4
- <div class="hero-logo-container">
5
- <img src="/images/Slice.js-logo.png" alt="Slice.js Logo" class="hero-logo" />
6
- </div>
7
- <h1 class="hero-title">Welcome to <span class="highlight">Slice.js</span></h1>
8
- <p class="hero-subtitle">Build Your Web App One Slice at a Time</p>
9
- <p class="hero-description">
10
- A modern, lightweight component-based framework for building web applications using vanilla JavaScript and web standards.
11
- </p>
12
- <div class="cta-buttons"></div>
13
- </div>
14
- </div>
15
-
16
- <section class="features-section">
17
- <h2 class="section-title">Why Choose Slice.js?</h2>
18
- <div class="feature-grid"></div>
19
- </section>
20
-
21
- <section class="example-section">
22
- <h2 class="section-title">Component Showcase</h2>
23
- <p class="section-description">
24
- Explore some of the ready-to-use components that come with Slice.js
25
- </p>
26
- <div class="examples-container"></div>
27
- </section>
28
-
29
- <section class="getting-started-section">
30
- <h2 class="section-title">Get Started Now</h2>
31
- <div class="code-sample">
32
- <pre><code>
33
- // Initialize a new Slice.js project
34
- npm run slice:init
35
-
36
- // Create a new component
37
- npm run slice:create
38
-
39
- // Start your application
40
- npm run slice:start
41
- </code></pre>
42
- </div>
43
- </section>
44
-
45
- <footer class="home-footer">
46
- <p>Made with ❤️ using Slice.js</p>
47
- <p class="copyright">© 2025 Slice.js Framework</p>
48
- </footer>
1
+ <div class="home-page-container">
2
+ <div class="hero-section">
3
+ <div class="hero-content">
4
+ <div class="hero-logo-container">
5
+ <img src="/images/Slice.js-logo.png" alt="Slice.js Logo" class="hero-logo" />
6
+ </div>
7
+ <h1 class="hero-title">Welcome to <span class="highlight">Slice.js</span></h1>
8
+ <p class="hero-subtitle">Build Your Web App One Slice at a Time</p>
9
+ <p class="hero-description">
10
+ A modern, lightweight component-based framework for building web applications using vanilla JavaScript and web standards.
11
+ </p>
12
+ <div class="cta-buttons"></div>
13
+ </div>
14
+ </div>
15
+
16
+ <section class="features-section">
17
+ <h2 class="section-title">Why Choose Slice.js?</h2>
18
+ <div class="feature-grid"></div>
19
+ </section>
20
+
21
+ <section class="example-section">
22
+ <h2 class="section-title">Component Showcase</h2>
23
+ <p class="section-description">
24
+ Explore some of the ready-to-use components that come with Slice.js
25
+ </p>
26
+ <div class="examples-container"></div>
27
+ </section>
28
+
29
+ <section class="getting-started-section">
30
+ <h2 class="section-title">Get Started Now</h2>
31
+ <div class="code-sample">
32
+ <pre><code>
33
+ // Initialize a new Slice.js project
34
+ npm run slice:init
35
+
36
+ // Create a new component
37
+ npm run slice:create
38
+
39
+ // Start your application
40
+ npm run slice:start
41
+ </code></pre>
42
+ </div>
43
+ </section>
44
+
45
+ <footer class="home-footer">
46
+ <p>Made with ❤️ using Slice.js</p>
47
+ <p class="copyright">© 2025 Slice.js Framework</p>
48
+ </footer>
49
49
  </div>