slicejs-web-framework 1.0.19 → 1.0.20
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.
- package/Slice/Components/Structural/Debugger/Debugger.js +3 -3
- package/Slice/Slice.js +2 -1
- package/package.json +1 -1
- package/src/Components/AppComponents/HomePage/HomePage.css +203 -0
- package/src/Components/AppComponents/HomePage/HomePage.html +49 -0
- package/src/Components/AppComponents/HomePage/HomePage.js +196 -0
- package/src/Components/AppComponents/Playground/Playground.js +0 -19
- package/src/routes.js +2 -88
- package/src/sliceConfig.json +0 -3
- package/src/Components/AppComponents/ButtonDocumentation/ButtonDocumentation.css +0 -16
- package/src/Components/AppComponents/ButtonDocumentation/ButtonDocumentation.html +0 -22
- package/src/Components/AppComponents/ButtonDocumentation/ButtonDocumentation.js +0 -102
- package/src/Components/AppComponents/CardDocumentation/CardDocumentation.css +0 -15
- package/src/Components/AppComponents/CardDocumentation/CardDocumentation.html +0 -38
- package/src/Components/AppComponents/CardDocumentation/CardDocumentation.js +0 -113
- package/src/Components/AppComponents/CheckboxDocumentation/CheckboxDocumentation.css +0 -21
- package/src/Components/AppComponents/CheckboxDocumentation/CheckboxDocumentation.html +0 -35
- package/src/Components/AppComponents/CheckboxDocumentation/CheckboxDocumentation.js +0 -103
- package/src/Components/AppComponents/CodeVisualizer/CodeVisualizer.css +0 -130
- package/src/Components/AppComponents/CodeVisualizer/CodeVisualizer.html +0 -4
- package/src/Components/AppComponents/CodeVisualizer/CodeVisualizer.js +0 -263
- package/src/Components/AppComponents/Documentation/Documentation.css +0 -0
- package/src/Components/AppComponents/Documentation/Documentation.html +0 -30
- package/src/Components/AppComponents/Documentation/Documentation.js +0 -75
- package/src/Components/AppComponents/DocumentationPage/DocumentationPage.css +0 -62
- package/src/Components/AppComponents/DocumentationPage/DocumentationPage.html +0 -0
- package/src/Components/AppComponents/DocumentationPage/DocumentationPage.js +0 -283
- package/src/Components/AppComponents/InputDocumentation/InputDocumentation.css +0 -41
- package/src/Components/AppComponents/InputDocumentation/InputDocumentation.html +0 -95
- package/src/Components/AppComponents/InputDocumentation/InputDocumentation.js +0 -315
- package/src/Components/AppComponents/Installation/Installation.css +0 -185
- package/src/Components/AppComponents/Installation/Installation.html +0 -102
- package/src/Components/AppComponents/Installation/Installation.js +0 -61
- package/src/Components/AppComponents/LandingMenu/LandingMenu.css +0 -108
- package/src/Components/AppComponents/LandingMenu/LandingMenu.html +0 -16
- package/src/Components/AppComponents/LandingMenu/LandingMenu.js +0 -33
- package/src/Components/AppComponents/LandingPage/LandingPage.css +0 -14
- package/src/Components/AppComponents/LandingPage/LandingPage.html +0 -0
- package/src/Components/AppComponents/LandingPage/LandingPage.js +0 -53
- package/src/Components/AppComponents/MainMenu/MainMenu.css +0 -80
- package/src/Components/AppComponents/MainMenu/MainMenu.html +0 -39
- package/src/Components/AppComponents/MainMenu/MainMenu.js +0 -42
- package/src/Components/AppComponents/MyLayout/MyLayout.css +0 -0
- package/src/Components/AppComponents/MyLayout/MyLayout.html +0 -0
- package/src/Components/AppComponents/MyLayout/MyLayout.js +0 -13
- package/src/Components/AppComponents/MyNavigation/MyNavigation.css +0 -49
- package/src/Components/AppComponents/MyNavigation/MyNavigation.html +0 -1
- package/src/Components/AppComponents/MyNavigation/MyNavigation.js +0 -60
- package/src/Components/AppComponents/RoutingDocumentation/RoutingDocumentation.css +0 -89
- package/src/Components/AppComponents/RoutingDocumentation/RoutingDocumentation.html +0 -108
- package/src/Components/AppComponents/RoutingDocumentation/RoutingDocumentation.js +0 -177
- package/src/Components/AppComponents/ServiceDocumentation/ServiceDocumentation.css +0 -82
- package/src/Components/AppComponents/ServiceDocumentation/ServiceDocumentation.html +0 -74
- package/src/Components/AppComponents/ServiceDocumentation/ServiceDocumentation.js +0 -416
- package/src/Components/AppComponents/SliceStylesDocumentation/SliceStylesDocumentation.css +0 -56
- package/src/Components/AppComponents/SliceStylesDocumentation/SliceStylesDocumentation.html +0 -28
- package/src/Components/AppComponents/SliceStylesDocumentation/SliceStylesDocumentation.js +0 -134
- package/src/Components/AppComponents/SliceTeamCard/SliceTeamCard.css +0 -104
- package/src/Components/AppComponents/SliceTeamCard/SliceTeamCard.html +0 -12
- package/src/Components/AppComponents/SliceTeamCard/SliceTeamCard.js +0 -74
- package/src/Components/AppComponents/StructuralDocumentation/StructuralDocumentation.css +0 -72
- package/src/Components/AppComponents/StructuralDocumentation/StructuralDocumentation.html +0 -98
- package/src/Components/AppComponents/StructuralDocumentation/StructuralDocumentation.js +0 -219
- package/src/Components/AppComponents/SwitchDocumentation/SwitchDocumentation.css +0 -21
- package/src/Components/AppComponents/SwitchDocumentation/SwitchDocumentation.html +0 -35
- package/src/Components/AppComponents/SwitchDocumentation/SwitchDocumentation.js +0 -103
- package/src/Components/AppComponents/TheBuildMethod/TheBuildMethod.css +0 -296
- package/src/Components/AppComponents/TheBuildMethod/TheBuildMethod.html +0 -89
- package/src/Components/AppComponents/TheBuildMethod/TheBuildMethod.js +0 -86
- package/src/Components/AppComponents/TheSliceTeam/TheSliceTeam.css +0 -208
- package/src/Components/AppComponents/TheSliceTeam/TheSliceTeam.html +0 -18
- package/src/Components/AppComponents/TheSliceTeam/TheSliceTeam.js +0 -111
- package/src/Components/AppComponents/ThemesDocumentation/ThemesDocumentation.css +0 -61
- package/src/Components/AppComponents/ThemesDocumentation/ThemesDocumentation.html +0 -80
- package/src/Components/AppComponents/ThemesDocumentation/ThemesDocumentation.js +0 -149
- package/src/Components/AppComponents/VisualDocumentation/VisualDocumentation.css +0 -70
- package/src/Components/AppComponents/VisualDocumentation/VisualDocumentation.html +0 -67
- package/src/Components/AppComponents/VisualDocumentation/VisualDocumentation.js +0 -193
- package/src/Components/AppComponents/WhatIsSlice/WhatIsSlice.css +0 -475
- package/src/Components/AppComponents/WhatIsSlice/WhatIsSlice.html +0 -389
- package/src/Components/AppComponents/WhatIsSlice/WhatIsSlice.js +0 -95
|
@@ -9,11 +9,11 @@ export default class Debugger extends HTMLElement {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
async enableDebugMode() {
|
|
12
|
-
const html = await slice.controller.fetchText('Debugger',
|
|
12
|
+
const html = await slice.controller.fetchText('Debugger', true, true, "/Slice/Components/Structural/Debugger/Debugger.html" );
|
|
13
13
|
this.innerHTML = html;
|
|
14
|
-
const css = await slice.controller.fetchText('Debugger',
|
|
14
|
+
const css = await slice.controller.fetchText('Debugger', true, true, "/Slice/Components/Structural/Debugger/Debugger.css" );
|
|
15
15
|
slice.stylesManager.registerComponentStyles('Debugger', css);
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
this.debuggerContainer = this.querySelector('#debugger-container');
|
|
18
18
|
this.closeDebugger = this.querySelector('#close-debugger');
|
|
19
19
|
this.componentDetails = this.querySelector('#component-details');
|
package/Slice/Slice.js
CHANGED
|
@@ -212,12 +212,13 @@ async function init() {
|
|
|
212
212
|
await window.slice.router.init();
|
|
213
213
|
|
|
214
214
|
|
|
215
|
+
/*
|
|
215
216
|
if (sliceConfig.translator.enabled) {
|
|
216
217
|
const translator = await window.slice.build('Translator');
|
|
217
218
|
window.slice.translator = translator;
|
|
218
219
|
window.slice.logger.logInfo('Slice', 'Translator succesfuly enabled');
|
|
219
220
|
}
|
|
220
|
-
|
|
221
|
+
*/
|
|
221
222
|
|
|
222
223
|
}
|
|
223
224
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,203 @@
|
|
|
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
|
+
}
|
|
35
|
+
|
|
36
|
+
.hero-title {
|
|
37
|
+
font-size: 3rem;
|
|
38
|
+
margin-bottom: 1rem;
|
|
39
|
+
color: var(--font-primary-color);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.hero-title .highlight {
|
|
43
|
+
color: var(--primary-color);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.hero-subtitle {
|
|
47
|
+
font-size: 1.5rem;
|
|
48
|
+
margin-bottom: 1.5rem;
|
|
49
|
+
color: var(--font-secondary-color);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.hero-description {
|
|
53
|
+
font-size: 1.1rem;
|
|
54
|
+
margin-bottom: 2rem;
|
|
55
|
+
line-height: 1.6;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.cta-buttons {
|
|
59
|
+
display: flex;
|
|
60
|
+
gap: 1rem;
|
|
61
|
+
justify-content: center;
|
|
62
|
+
margin-top: 2rem;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Features section styles */
|
|
66
|
+
.features-section {
|
|
67
|
+
padding: 5rem 2rem;
|
|
68
|
+
background-color: var(--secondary-background-color);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.section-title {
|
|
72
|
+
text-align: center;
|
|
73
|
+
font-size: 2.5rem;
|
|
74
|
+
margin-bottom: 3rem;
|
|
75
|
+
color: var(--primary-color);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.feature-grid {
|
|
79
|
+
display: grid;
|
|
80
|
+
grid-template-columns: repeat(3, 1fr);
|
|
81
|
+
gap: 2rem;
|
|
82
|
+
max-width: 1200px;
|
|
83
|
+
margin: 0 auto;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.feature-item {
|
|
87
|
+
padding: 2rem;
|
|
88
|
+
background-color: var(--primary-background-color);
|
|
89
|
+
border-radius: var(--border-radius-slice);
|
|
90
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
91
|
+
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.feature-item:hover {
|
|
95
|
+
transform: translateY(-5px);
|
|
96
|
+
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.feature-title {
|
|
100
|
+
font-size: 1.5rem;
|
|
101
|
+
margin-bottom: 1rem;
|
|
102
|
+
color: var(--primary-color);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.feature-description {
|
|
106
|
+
color: var(--font-secondary-color);
|
|
107
|
+
line-height: 1.6;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* Example section styles */
|
|
111
|
+
.example-section {
|
|
112
|
+
padding: 5rem 2rem;
|
|
113
|
+
background-color: var(--primary-background-color);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.section-description {
|
|
117
|
+
text-align: center;
|
|
118
|
+
max-width: 800px;
|
|
119
|
+
margin: 0 auto 3rem auto;
|
|
120
|
+
color: var(--font-secondary-color);
|
|
121
|
+
font-size: 1.2rem;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.examples-container {
|
|
125
|
+
display: grid;
|
|
126
|
+
grid-template-columns: repeat(2, 1fr);
|
|
127
|
+
gap: 3rem;
|
|
128
|
+
max-width: 1000px;
|
|
129
|
+
margin: 0 auto;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.example-item {
|
|
133
|
+
display: flex;
|
|
134
|
+
flex-direction: column;
|
|
135
|
+
gap: 1rem;
|
|
136
|
+
padding: 2rem;
|
|
137
|
+
background-color: var(--secondary-background-color);
|
|
138
|
+
border-radius: var(--border-radius-slice);
|
|
139
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.example-item h3 {
|
|
143
|
+
margin: 0;
|
|
144
|
+
font-size: 1.3rem;
|
|
145
|
+
color: var(--primary-color);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/* Getting started section styles */
|
|
149
|
+
.getting-started-section {
|
|
150
|
+
padding: 5rem 2rem;
|
|
151
|
+
background-color: var(--secondary-background-color);
|
|
152
|
+
text-align: center;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.code-sample {
|
|
156
|
+
max-width: 800px;
|
|
157
|
+
margin: 0 auto;
|
|
158
|
+
text-align: left;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/* Footer styles */
|
|
162
|
+
.home-footer {
|
|
163
|
+
padding: 3rem 2rem;
|
|
164
|
+
text-align: center;
|
|
165
|
+
background-color: var(--primary-color);
|
|
166
|
+
color: var(--primary-color-contrast);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.copyright {
|
|
170
|
+
margin-top: 1rem;
|
|
171
|
+
font-size: 0.9rem;
|
|
172
|
+
opacity: 0.8;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/* Responsive styles */
|
|
176
|
+
@media (max-width: 992px) {
|
|
177
|
+
.feature-grid {
|
|
178
|
+
grid-template-columns: repeat(2, 1fr);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.examples-container {
|
|
182
|
+
grid-template-columns: 1fr;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
@media (max-width: 768px) {
|
|
187
|
+
.hero-title {
|
|
188
|
+
font-size: 2.5rem;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.hero-subtitle {
|
|
192
|
+
font-size: 1.3rem;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.feature-grid {
|
|
196
|
+
grid-template-columns: 1fr;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.cta-buttons {
|
|
200
|
+
flex-direction: column;
|
|
201
|
+
align-items: center;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
@@ -0,0 +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>
|
|
49
|
+
</div>
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
export default class HomePage extends HTMLElement {
|
|
2
|
+
constructor(props) {
|
|
3
|
+
super();
|
|
4
|
+
slice.attachTemplate(this);
|
|
5
|
+
|
|
6
|
+
this.$examplesContainer = this.querySelector('.examples-container');
|
|
7
|
+
|
|
8
|
+
slice.controller.setComponentProps(this, props);
|
|
9
|
+
this.debuggerProps = [];
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async init() {
|
|
13
|
+
// Crear la barra de navegación
|
|
14
|
+
const navbar = await slice.build('Navbar', {
|
|
15
|
+
position: 'fixed',
|
|
16
|
+
logo: {
|
|
17
|
+
src: '/images/Slice.js-logo.png',
|
|
18
|
+
path: '/',
|
|
19
|
+
},
|
|
20
|
+
items: [
|
|
21
|
+
{ text: 'Home', path: '/' },
|
|
22
|
+
{ text: 'Documentation', path: '/Documentation' },
|
|
23
|
+
{ text: 'Playground', path: '/Playground' },
|
|
24
|
+
{ text: 'Contributors', path: '/Team' }
|
|
25
|
+
],
|
|
26
|
+
buttons: [
|
|
27
|
+
{
|
|
28
|
+
value: 'Change Theme',
|
|
29
|
+
onClickCallback: async () => {
|
|
30
|
+
const currentTheme = slice.stylesManager.themeManager.currentTheme;
|
|
31
|
+
if (currentTheme === 'Slice') {
|
|
32
|
+
await slice.setTheme('Light');
|
|
33
|
+
} else if (currentTheme === 'Light') {
|
|
34
|
+
await slice.setTheme('Dark');
|
|
35
|
+
} else {
|
|
36
|
+
await slice.setTheme('Slice');
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
// Crear botones para la sección de llamada a la acción
|
|
44
|
+
const docsButton = await slice.build('Button', {
|
|
45
|
+
value: 'Documentation',
|
|
46
|
+
onClickCallback: () => slice.router.navigate('/Documentation'),
|
|
47
|
+
customColor: {
|
|
48
|
+
button: 'var(--primary-color)',
|
|
49
|
+
label: 'var(--primary-color-contrast)'
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const componentsButton = await slice.build('Button', {
|
|
54
|
+
value: 'Components Library',
|
|
55
|
+
onClickCallback: () => slice.router.navigate('/Documentation/Visual'),
|
|
56
|
+
customColor: {
|
|
57
|
+
button: 'var(--secondary-color)',
|
|
58
|
+
label: 'var(--secondary-color-contrast)'
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
// Añadir botones a la sección CTA
|
|
63
|
+
this.querySelector('.cta-buttons').appendChild(docsButton);
|
|
64
|
+
this.querySelector('.cta-buttons').appendChild(componentsButton);
|
|
65
|
+
|
|
66
|
+
// Crear features section con un enfoque diferente (sin usar Cards)
|
|
67
|
+
await this.createFeatures();
|
|
68
|
+
|
|
69
|
+
// Crear ejemplos de componentes
|
|
70
|
+
await this.createComponentExamples();
|
|
71
|
+
|
|
72
|
+
// Configurar la sección de código de inicio
|
|
73
|
+
await this.setupGettingStartedSection();
|
|
74
|
+
|
|
75
|
+
// Añadir la barra de navegación al inicio del componente
|
|
76
|
+
this.insertBefore(navbar, this.firstChild);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
async createFeatures() {
|
|
80
|
+
// Definir características
|
|
81
|
+
const features = [
|
|
82
|
+
{
|
|
83
|
+
title: 'Component-Based',
|
|
84
|
+
description: 'Build your app using modular, reusable components following web standards.'
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
title: 'Zero Dependencies',
|
|
88
|
+
description: 'Built with vanilla JavaScript. No external libraries required.'
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
title: 'Easy Routing',
|
|
92
|
+
description: 'Simple and powerful routing system for single page applications.'
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
title: 'Theme System',
|
|
96
|
+
description: 'Built-in theme support with easy customization through CSS variables.'
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
title: 'Developer Tools',
|
|
100
|
+
description: 'Integrated debugging and logging for faster development.'
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
title: 'Performance Focused',
|
|
104
|
+
description: 'Lightweight and optimized for fast loading and execution.'
|
|
105
|
+
}
|
|
106
|
+
];
|
|
107
|
+
|
|
108
|
+
const featureGrid = this.querySelector('.feature-grid');
|
|
109
|
+
|
|
110
|
+
// Crear y añadir cada feature como un elemento HTML simple
|
|
111
|
+
for (const feature of features) {
|
|
112
|
+
const featureElement = document.createElement('div');
|
|
113
|
+
featureElement.classList.add('feature-item');
|
|
114
|
+
|
|
115
|
+
const featureTitle = document.createElement('h3');
|
|
116
|
+
featureTitle.textContent = feature.title;
|
|
117
|
+
featureTitle.classList.add('feature-title');
|
|
118
|
+
|
|
119
|
+
const featureDescription = document.createElement('p');
|
|
120
|
+
featureDescription.textContent = feature.description;
|
|
121
|
+
featureDescription.classList.add('feature-description');
|
|
122
|
+
|
|
123
|
+
featureElement.appendChild(featureTitle);
|
|
124
|
+
featureElement.appendChild(featureDescription);
|
|
125
|
+
|
|
126
|
+
featureGrid.appendChild(featureElement);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
async createComponentExamples() {
|
|
131
|
+
// Crear ejemplos para demostrar componentes
|
|
132
|
+
const inputExample = await slice.build('Input', {
|
|
133
|
+
placeholder: 'Try typing here...',
|
|
134
|
+
type: 'text'
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
const switchExample = await slice.build('Switch', {
|
|
138
|
+
label: 'Toggle me',
|
|
139
|
+
checked: true
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
const checkboxExample = await slice.build('Checkbox', {
|
|
143
|
+
label: 'Check me',
|
|
144
|
+
labelPlacement: 'right'
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
const detailsExample = await slice.build('Details', {
|
|
148
|
+
title: 'Click to expand',
|
|
149
|
+
text: 'This is a collapsible details component that can contain any content.'
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
// Crear sección para cada ejemplo
|
|
153
|
+
const exampleSections = [
|
|
154
|
+
{ title: 'Input Component', component: inputExample },
|
|
155
|
+
{ title: 'Switch Component', component: switchExample },
|
|
156
|
+
{ title: 'Checkbox Component', component: checkboxExample },
|
|
157
|
+
{ title: 'Details Component', component: detailsExample }
|
|
158
|
+
];
|
|
159
|
+
|
|
160
|
+
// Añadir cada ejemplo a la sección de ejemplos
|
|
161
|
+
for (const section of exampleSections) {
|
|
162
|
+
const container = document.createElement('div');
|
|
163
|
+
container.classList.add('example-item');
|
|
164
|
+
|
|
165
|
+
const title = document.createElement('h3');
|
|
166
|
+
title.textContent = section.title;
|
|
167
|
+
|
|
168
|
+
container.appendChild(title);
|
|
169
|
+
container.appendChild(section.component);
|
|
170
|
+
|
|
171
|
+
this.$examplesContainer.appendChild(container);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
async setupGettingStartedSection() {
|
|
176
|
+
// Opcionalmente podríamos mejorar esta sección usando el CodeVisualizer component
|
|
177
|
+
// en lugar del código HTML estático en el template
|
|
178
|
+
const codeVisualizer = await slice.build('CodeVisualizer', {
|
|
179
|
+
value: `// Initialize a new Slice.js project
|
|
180
|
+
npm run slice:init
|
|
181
|
+
|
|
182
|
+
// Create a new component
|
|
183
|
+
npm run slice:create
|
|
184
|
+
|
|
185
|
+
// Start your application
|
|
186
|
+
npm run slice:start`,
|
|
187
|
+
language: 'bash'
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
const codeSample = this.querySelector('.code-sample');
|
|
191
|
+
codeSample.innerHTML = ''; // Clear the static code sample
|
|
192
|
+
codeSample.appendChild(codeVisualizer);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
customElements.define('slice-home-page', HomePage);
|
|
@@ -21,18 +21,6 @@ export default class Playground extends HTMLElement {
|
|
|
21
21
|
text: 'Home',
|
|
22
22
|
path: '/',
|
|
23
23
|
},
|
|
24
|
-
{
|
|
25
|
-
text: 'Documentation',
|
|
26
|
-
path: '/Documentation',
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
text: 'Playground',
|
|
30
|
-
path: '/Playground',
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
text: 'Our Team',
|
|
34
|
-
path: '/Team',
|
|
35
|
-
}
|
|
36
24
|
],
|
|
37
25
|
buttons: [
|
|
38
26
|
{
|
|
@@ -58,13 +46,6 @@ export default class Playground extends HTMLElement {
|
|
|
58
46
|
|
|
59
47
|
const sliceButton = await slice.build('Button', {
|
|
60
48
|
value: 'Slice',
|
|
61
|
-
onClickCallback: () => {
|
|
62
|
-
if (slice.translator.currentLanguage == 'es') {
|
|
63
|
-
slice.translator.changeLanguage('en');
|
|
64
|
-
} else {
|
|
65
|
-
slice.translator.changeLanguage('es');
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
49
|
});
|
|
69
50
|
const sliceInput = await slice.build('Input', {
|
|
70
51
|
placeholder: 'Enter text here...',
|
package/src/routes.js
CHANGED
|
@@ -1,98 +1,12 @@
|
|
|
1
1
|
const routes = [
|
|
2
2
|
// Rutas principales
|
|
3
|
-
{ path: '/', component: '
|
|
4
|
-
{
|
|
5
|
-
path: '/Documentation',
|
|
6
|
-
component: 'DocumentationPage',
|
|
7
|
-
children: [
|
|
8
|
-
{
|
|
9
|
-
path: '/Slice',
|
|
10
|
-
component: 'WhatIsSlice',
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
path:'/Visual',
|
|
14
|
-
component: 'VisualDocumentation',
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
path:'/Service',
|
|
18
|
-
component: 'ServiceDocumentation',
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
path:'/Structural',
|
|
22
|
-
component: 'StructuralDocumentation',
|
|
23
|
-
},
|
|
24
|
-
|
|
25
|
-
{
|
|
26
|
-
path:'/Themes',
|
|
27
|
-
component: 'ThemesDocumentation',
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
path:'/Routing',
|
|
31
|
-
component: 'RoutingDocumentation',
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
path: '/Installation',
|
|
35
|
-
component: 'Installation',
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
path: '/The-build-method',
|
|
39
|
-
component: 'TheBuildMethod',
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
path:'/Components',
|
|
43
|
-
component: 'DocumentationPage',
|
|
44
|
-
children:[
|
|
45
|
-
{
|
|
46
|
-
path: '/Visual',
|
|
47
|
-
component: 'VisualDocumentation',
|
|
48
|
-
children: [
|
|
49
|
-
{
|
|
50
|
-
path: '/Card',
|
|
51
|
-
component: 'CardDocumentation',
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
path:'/Button',
|
|
55
|
-
component: 'ButtonDocumentation',
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
path:'/Switch',
|
|
59
|
-
component: 'SwitchDocumentation',
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
path:'/Checkbox',
|
|
63
|
-
component: 'CheckboxDocumentation',
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
path:'/Input',
|
|
67
|
-
component: 'InputDocumentation',
|
|
68
|
-
}
|
|
69
|
-
]
|
|
70
|
-
},
|
|
71
|
-
/*{
|
|
72
|
-
path: '/Service',
|
|
73
|
-
component: 'ServiceDocumentation',
|
|
74
|
-
children:[
|
|
75
|
-
{
|
|
76
|
-
path: '/FetchManager',
|
|
77
|
-
component: 'FetchManagerDocumentation',
|
|
78
|
-
}
|
|
79
|
-
]
|
|
80
|
-
}*/
|
|
81
|
-
]
|
|
82
|
-
}
|
|
83
|
-
]
|
|
84
|
-
},
|
|
85
|
-
// Otras rutas
|
|
86
|
-
{ path: '/Playground', component: 'Playground' },
|
|
3
|
+
{ path: '/', component: 'HomePage' },
|
|
87
4
|
{ path: '/404', component: 'NotFound' },
|
|
88
5
|
{
|
|
89
6
|
path: '/Docum/${category}/${id}',
|
|
90
7
|
component: 'LandingPage',
|
|
91
8
|
},
|
|
92
|
-
|
|
93
|
-
path: '/Team',
|
|
94
|
-
component: 'TheSliceTeam',
|
|
95
|
-
}
|
|
9
|
+
|
|
96
10
|
];
|
|
97
11
|
|
|
98
12
|
export default routes;
|
package/src/sliceConfig.json
CHANGED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
.buttonsGrid {
|
|
2
|
-
width: 100%;
|
|
3
|
-
}
|
|
4
|
-
.buttons {
|
|
5
|
-
width: 100%;
|
|
6
|
-
display: flex;
|
|
7
|
-
flex-direction: row;
|
|
8
|
-
justify-content: center;
|
|
9
|
-
align-items: center;
|
|
10
|
-
}
|
|
11
|
-
.buttonsContainer {
|
|
12
|
-
display: flex;
|
|
13
|
-
flex-direction: column;
|
|
14
|
-
justify-content: space-evenly;
|
|
15
|
-
/* width: 100%; */
|
|
16
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
<h1 id="sliceButton">Slice Button</h1>
|
|
2
|
-
<div class="myButton">
|
|
3
|
-
<p>
|
|
4
|
-
To build a simple Slice Button you only need to use the "slice.build"
|
|
5
|
-
method, just like that you have a Slice Button that you can customize with a
|
|
6
|
-
value prop.
|
|
7
|
-
</p>
|
|
8
|
-
</div>
|
|
9
|
-
<div class="colorButton">
|
|
10
|
-
<h2 id="customization">Customization</h2>
|
|
11
|
-
<p>
|
|
12
|
-
You can also cutomize your Slice Button specifying it's background color
|
|
13
|
-
with "customColor.button" and it's font color with "customColor.label".
|
|
14
|
-
</p>
|
|
15
|
-
</div>
|
|
16
|
-
<div class="onClick">
|
|
17
|
-
<h2 id="onClickCallback">onClickCallback</h2>
|
|
18
|
-
<p>
|
|
19
|
-
At last but not least you can add a function to your button with the prop
|
|
20
|
-
"onClickCallback".
|
|
21
|
-
</p>
|
|
22
|
-
</div>
|