nodality 1.0.0-beta.7 → 1.0.0-beta.71
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/LICENSE +21 -0
- package/README.md +108 -0
- package/dist/animator.cjs.js +2 -1
- package/dist/animator.cjs.js.LICENSE.txt +5 -0
- package/dist/animator.esm.js +2 -1
- package/dist/animator.esm.js.LICENSE.txt +5 -0
- package/dist/appleanim.cjs.js +2 -0
- package/dist/appleanim.cjs.js.LICENSE.txt +5 -0
- package/dist/appleanim.esm.js +2 -0
- package/dist/appleanim.esm.js.LICENSE.txt +5 -0
- package/dist/audionew.cjs.js +2 -1
- package/dist/audionew.cjs.js.LICENSE.txt +5 -0
- package/dist/audionew.esm.js +2 -1
- package/dist/audionew.esm.js.LICENSE.txt +5 -0
- package/dist/base.cjs.js +2 -1
- package/dist/base.cjs.js.LICENSE.txt +5 -0
- package/dist/base.esm.js +2 -1
- package/dist/base.esm.js.LICENSE.txt +5 -0
- package/dist/betaDesktopBar.esm.js +2 -1
- package/dist/betaDesktopBar.esm.js.LICENSE.txt +5 -0
- package/dist/betaMobileBar.esm.js +2 -1
- package/dist/betaMobileBar.esm.js.LICENSE.txt +5 -0
- package/dist/bundle.umd.js +2 -1
- package/dist/bundle.umd.js.LICENSE.txt +5 -0
- package/dist/button.cjs.js +2 -1
- package/dist/button.cjs.js.LICENSE.txt +5 -0
- package/dist/button.esm.js +2 -1
- package/dist/button.esm.js.LICENSE.txt +5 -0
- package/dist/cardGetter.cjs.js +2 -1
- package/dist/cardGetter.cjs.js.LICENSE.txt +5 -0
- package/dist/cardGetter.esm.js +2 -1
- package/dist/cardGetter.esm.js.LICENSE.txt +5 -0
- package/dist/center.cjs.js +2 -1
- package/dist/center.cjs.js.LICENSE.txt +5 -0
- package/dist/center.esm.js +2 -1
- package/dist/center.esm.js.LICENSE.txt +5 -0
- package/dist/checkbox.cjs.js +2 -1
- package/dist/checkbox.cjs.js.LICENSE.txt +5 -0
- package/dist/checkbox.esm.js +2 -1
- package/dist/checkbox.esm.js.LICENSE.txt +5 -0
- package/dist/code.cjs.js +2 -1
- package/dist/code.cjs.js.LICENSE.txt +5 -0
- package/dist/code.esm.js +2 -1
- package/dist/code.esm.js.LICENSE.txt +5 -0
- package/dist/container.cjs.js +2 -1
- package/dist/container.cjs.js.LICENSE.txt +5 -0
- package/dist/container.esm.js +2 -1
- package/dist/container.esm.js.LICENSE.txt +5 -0
- package/dist/datalist.cjs.js +2 -1
- package/dist/datalist.cjs.js.LICENSE.txt +5 -0
- package/dist/datalist.esm.js +2 -1
- package/dist/datalist.esm.js.LICENSE.txt +5 -0
- package/dist/designer.cjs.js +2 -1
- package/dist/designer.cjs.js.LICENSE.txt +5 -0
- package/dist/designer.esm.js +2 -1
- package/dist/designer.esm.js.LICENSE.txt +5 -0
- package/dist/dropdown.cjs.js +2 -1
- package/dist/dropdown.cjs.js.LICENSE.txt +5 -0
- package/dist/dropdown.esm.js +2 -1
- package/dist/dropdown.esm.js.LICENSE.txt +5 -0
- package/dist/elementMapper.cjs.js +2 -1
- package/dist/elementMapper.cjs.js.LICENSE.txt +5 -0
- package/dist/elementMapper.esm.js +2 -1
- package/dist/elementMapper.esm.js.LICENSE.txt +5 -0
- package/dist/finalresult.esm.js +2 -1
- package/dist/finalresult.esm.js.LICENSE.txt +5 -0
- package/dist/flexCard.cjs.js +2 -1
- package/dist/flexCard.cjs.js.LICENSE.txt +5 -0
- package/dist/flexCard.esm.js +2 -1
- package/dist/flexCard.esm.js.LICENSE.txt +5 -0
- package/dist/flexGrid.cjs.js +2 -1
- package/dist/flexGrid.cjs.js.LICENSE.txt +5 -0
- package/dist/flexGrid.esm.js +2 -1
- package/dist/flexGrid.esm.js.LICENSE.txt +5 -0
- package/dist/flexRow.cjs.js +2 -1
- package/dist/flexRow.cjs.js.LICENSE.txt +5 -0
- package/dist/flexRow.esm.js +2 -1
- package/dist/flexRow.esm.js.LICENSE.txt +5 -0
- package/dist/floatingInput.cjs.js +2 -1
- package/dist/floatingInput.cjs.js.LICENSE.txt +5 -0
- package/dist/floatingInput.esm.js +2 -1
- package/dist/floatingInput.esm.js.LICENSE.txt +5 -0
- package/dist/free.cjs.js +2 -1
- package/dist/free.cjs.js.LICENSE.txt +5 -0
- package/dist/free.esm.js +2 -1
- package/dist/free.esm.js.LICENSE.txt +5 -0
- package/dist/horizontalScroller.esm.js +2 -1
- package/dist/horizontalScroller.esm.js.LICENSE.txt +5 -0
- package/dist/image.cjs.js +2 -1
- package/dist/image.cjs.js.LICENSE.txt +5 -0
- package/dist/image.esm.js +2 -1
- package/dist/image.esm.js.LICENSE.txt +5 -0
- package/dist/imagePicker.cjs.js +2 -1
- package/dist/imagePicker.cjs.js.LICENSE.txt +5 -0
- package/dist/imagePicker.esm.js +2 -1
- package/dist/imagePicker.esm.js.LICENSE.txt +5 -0
- package/dist/index.cjs.js +2 -1
- package/dist/index.cjs.js.LICENSE.txt +5 -0
- package/dist/index.esm.js +2 -1
- package/dist/index.esm.js.LICENSE.txt +5 -0
- package/dist/link.cjs.js +2 -1
- package/dist/link.cjs.js.LICENSE.txt +5 -0
- package/dist/link.esm.js +2 -1
- package/dist/link.esm.js.LICENSE.txt +5 -0
- package/dist/linkGetter.cjs.js +2 -1
- package/dist/linkGetter.cjs.js.LICENSE.txt +5 -0
- package/dist/linkGetter.esm.js +2 -1
- package/dist/linkGetter.esm.js.LICENSE.txt +5 -0
- package/dist/metaAdder.cjs.js +2 -1
- package/dist/metaAdder.cjs.js.LICENSE.txt +5 -0
- package/dist/metaAdder.esm.js +2 -1
- package/dist/metaAdder.esm.js.LICENSE.txt +5 -0
- package/dist/modal2025.cjs.js +2 -1
- package/dist/modal2025.cjs.js.LICENSE.txt +5 -0
- package/dist/modal2025.esm.js +2 -1
- package/dist/modal2025.esm.js.LICENSE.txt +5 -0
- package/dist/multiswitchers.esm.js +2 -1
- package/dist/multiswitchers.esm.js.LICENSE.txt +5 -0
- package/dist/newNavBar.cjs.js +2 -1
- package/dist/newNavBar.cjs.js.LICENSE.txt +5 -0
- package/dist/newNavBar.esm.js +2 -1
- package/dist/newNavBar.esm.js.LICENSE.txt +5 -0
- package/dist/picker.cjs.js +2 -1
- package/dist/picker.cjs.js.LICENSE.txt +5 -0
- package/dist/picker.esm.js +2 -1
- package/dist/picker.esm.js.LICENSE.txt +5 -0
- package/dist/progress.cjs.js +2 -1
- package/dist/progress.cjs.js.LICENSE.txt +5 -0
- package/dist/progress.esm.js +2 -1
- package/dist/progress.esm.js.LICENSE.txt +5 -0
- package/dist/radio.cjs.js +2 -1
- package/dist/radio.cjs.js.LICENSE.txt +5 -0
- package/dist/radio.esm.js +2 -1
- package/dist/radio.esm.js.LICENSE.txt +5 -0
- package/dist/range.cjs.js +2 -1
- package/dist/range.cjs.js.LICENSE.txt +5 -0
- package/dist/range.esm.js +2 -1
- package/dist/range.esm.js.LICENSE.txt +5 -0
- package/dist/scrollvideo.cjs.js +2 -0
- package/dist/scrollvideo.cjs.js.LICENSE.txt +5 -0
- package/dist/scrollvideo.esm.js +2 -0
- package/dist/scrollvideo.esm.js.LICENSE.txt +5 -0
- package/dist/sideBar.cjs.js +2 -1
- package/dist/sideBar.cjs.js.LICENSE.txt +5 -0
- package/dist/sideBar.esm.js +2 -1
- package/dist/sideBar.esm.js.LICENSE.txt +5 -0
- package/dist/sideNavBar.cjs.js +2 -1
- package/dist/sideNavBar.cjs.js.LICENSE.txt +5 -0
- package/dist/sideNavBar.esm.js +2 -1
- package/dist/sideNavBar.esm.js.LICENSE.txt +5 -0
- package/dist/simpleBar.cjs.js +2 -1
- package/dist/simpleBar.cjs.js.LICENSE.txt +5 -0
- package/dist/simpleBar.esm.js +2 -1
- package/dist/simpleBar.esm.js.LICENSE.txt +5 -0
- package/dist/stack.cjs.js +2 -1
- package/dist/stack.cjs.js.LICENSE.txt +5 -0
- package/dist/stack.esm.js +2 -1
- package/dist/stack.esm.js.LICENSE.txt +5 -0
- package/dist/stacker.cjs.js +2 -0
- package/dist/stacker.cjs.js.LICENSE.txt +5 -0
- package/dist/stacker.esm.js +2 -0
- package/dist/stacker.esm.js.LICENSE.txt +5 -0
- package/dist/table.cjs.js +2 -1
- package/dist/table.cjs.js.LICENSE.txt +5 -0
- package/dist/table.esm.js +2 -1
- package/dist/table.esm.js.LICENSE.txt +5 -0
- package/dist/text.cjs.js +2 -1
- package/dist/text.cjs.js.LICENSE.txt +5 -0
- package/dist/text.esm.js +2 -1
- package/dist/text.esm.js.LICENSE.txt +5 -0
- package/dist/textField.cjs.js +2 -1
- package/dist/textField.cjs.js.LICENSE.txt +5 -0
- package/dist/textField.esm.js +2 -1
- package/dist/textField.esm.js.LICENSE.txt +5 -0
- package/dist/transformanim.cjs.js +2 -0
- package/dist/transformanim.cjs.js.LICENSE.txt +5 -0
- package/dist/transformanim.esm.js +2 -0
- package/dist/transformanim.esm.js.LICENSE.txt +5 -0
- package/dist/wrap.cjs.js +2 -1
- package/dist/wrap.cjs.js.LICENSE.txt +5 -0
- package/dist/wrap.esm.js +2 -1
- package/dist/wrap.esm.js.LICENSE.txt +5 -0
- package/dist/zoomCard.cjs.js +2 -1
- package/dist/zoomCard.cjs.js.LICENSE.txt +5 -0
- package/dist/zoomCard.esm.js +2 -1
- package/dist/zoomCard.esm.js.LICENSE.txt +5 -0
- package/layout/DEPRECATED-PARAGRAPH.js +6 -0
- package/layout/animator.js +5 -2
- package/layout/audio.js +6 -0
- package/layout/audionew.js +6 -0
- package/layout/base-2.js +6 -0
- package/layout/base.js +6 -0
- package/layout/betaDesktopBar.js +6 -0
- package/layout/betaMobileBar.js +6 -0
- package/layout/box.js +6 -0
- package/layout/button.js +6 -0
- package/layout/cards.js +6 -0
- package/layout/center.js +6 -0
- package/layout/checkbox.js +6 -0
- package/layout/cleanRow.js +6 -0
- package/layout/code.js +6 -0
- package/layout/container.js +6 -0
- package/layout/custom.js +6 -0
- package/layout/divImage.js +6 -0
- package/layout/dropdown.js +6 -0
- package/layout/dropdown2025.js +6 -0
- package/layout/emptyElement.js +6 -0
- package/layout/externalStylesheet.js +6 -0
- package/layout/flexCard.js +6 -0
- package/layout/flexGrid.js +6 -0
- package/layout/flexrow.js +6 -0
- package/layout/footer.js +6 -0
- package/layout/formComponents/custom.js +6 -0
- package/layout/formComponents/dataList.js +6 -0
- package/layout/formComponents/floatingInput.js +5 -0
- package/layout/formComponents/form-all.js +6 -0
- package/layout/formComponents/form.js +5 -0
- package/layout/formComponents/imagePicker.js +6 -0
- package/layout/formComponents/picker.js +6 -0
- package/layout/formComponents/radio.js +6 -0
- package/layout/formComponents/radiogroup.js +6 -0
- package/layout/formComponents/range.js +6 -0
- package/layout/free.js +6 -0
- package/layout/grid-new.js +6 -0
- package/layout/grid.js +6 -0
- package/layout/gridSwitcher.js +6 -0
- package/layout/group.js +6 -0
- package/layout/header.js +6 -0
- package/layout/horizontalScroller.js +6 -0
- package/layout/image-old.js +6 -0
- package/layout/image.js +6 -0
- package/layout/index.js +22 -0
- package/layout/label.js +6 -0
- package/layout/link.js +6 -0
- package/layout/list-OLD.js +6 -0
- package/layout/list.js +6 -0
- package/layout/metaAdder.js +6 -0
- package/layout/modal2025.js +6 -0
- package/layout/modernwrap.js +6 -0
- package/layout/multiswitcher.js +6 -0
- package/layout/multiswitcherBeta.js +6 -0
- package/layout/navBar-OLD.js +6 -0
- package/layout/navBar.js +6 -0
- package/layout/navFactor/customDiv.js +5 -1
- package/layout/newFlatAdder.js +6 -0
- package/layout/newNavBar copy 2.js +6 -0
- package/layout/newNavBar copy.js +6 -0
- package/layout/newNavBar.js +6 -0
- package/layout/offsetContainer.js +6 -0
- package/layout/progress.js +6 -0
- package/layout/row.js +6 -0
- package/layout/savedNewNavBar.js +6 -0
- package/layout/scrollvideo.js +6 -0
- package/layout/sideBar.js +6 -0
- package/layout/sideNavBar.js +6 -0
- package/layout/simpleBar.js +6 -0
- package/layout/slider2025.js +6 -0
- package/layout/spacer.js +6 -0
- package/layout/stack.js +6 -0
- package/layout/styler.js +6 -0
- package/layout/switcher.js +6 -0
- package/layout/table.js +6 -0
- package/layout/text.js +9 -1
- package/layout/textField.js +6 -0
- package/layout/ulist.js +6 -0
- package/layout/video.js +6 -0
- package/layout/withoutNew.js +6 -0
- package/layout/wrap.js +6 -0
- package/layout/zoomCard.js +6 -0
- package/lib/AppleAnim.js +794 -0
- package/lib/Stacker.js +40 -0
- package/lib/TransformAnim.js +517 -0
- package/lib/cardGetter.js +6 -0
- package/lib/designer.js +217 -14
- package/lib/elementMapper.js +15 -8
- package/lib/linkGetter.js +6 -0
- package/lib/scrollvideo.js +129 -0
- package/package.json +23 -4
package/lib/designer.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* nodality v1.0.0-beta.71
|
|
3
|
+
* (c) 2025 Filip Vabrousek
|
|
4
|
+
* License: MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
1
7
|
/* Classes:
|
|
2
8
|
ElementMapper
|
|
3
9
|
*/
|
|
@@ -52,6 +58,12 @@ import { LinkStyler } from "../lib/linkGetter.js";
|
|
|
52
58
|
import { CardGen } from "../lib/cardGetter.js";
|
|
53
59
|
import {Simple} from "../layout/gridSwitcher.js";
|
|
54
60
|
|
|
61
|
+
// ANIM
|
|
62
|
+
import {KeyframeAnim} from "../lib/appleAnim.js";
|
|
63
|
+
import {TransformAnim} from "../lib/transformanim.js";
|
|
64
|
+
import {Stacker} from "../lib/stacker.js";
|
|
65
|
+
import {ScrollVideo} from "../lib/scrollvideo.js";
|
|
66
|
+
|
|
55
67
|
// Audio, progress, TextField, import navFactor
|
|
56
68
|
class Des {
|
|
57
69
|
constructor() {
|
|
@@ -84,26 +96,41 @@ class Des {
|
|
|
84
96
|
complex: {
|
|
85
97
|
code: `new Wrapper()
|
|
86
98
|
.set({
|
|
87
|
-
|
|
99
|
+
|
|
88
100
|
responsive: {
|
|
89
101
|
ranges: ["700px", "1200px", "1400px"],
|
|
90
102
|
sequence: "col-row-col"
|
|
91
103
|
}
|
|
92
104
|
})
|
|
93
105
|
.add([
|
|
94
|
-
new Image("
|
|
95
|
-
width: "
|
|
96
|
-
height: "
|
|
106
|
+
new Image("img/wix.jpeg").set({
|
|
107
|
+
width: "100%",
|
|
108
|
+
height: "200px",
|
|
109
|
+
objectFit: "cover"
|
|
97
110
|
}),
|
|
98
111
|
|
|
99
|
-
new Wrapper().set({
|
|
100
|
-
|
|
101
|
-
|
|
112
|
+
new Wrapper().set({
|
|
113
|
+
responsive: {
|
|
114
|
+
ranges: ["700px", "1200px", "1400px"],
|
|
115
|
+
sequence: "col-col-row"
|
|
116
|
+
}
|
|
117
|
+
}).add([
|
|
118
|
+
new Text("Running in the desert").set({
|
|
119
|
+
size: "S3",
|
|
120
|
+
font: "Arial",
|
|
121
|
+
color: "orange"
|
|
122
|
+
}),
|
|
123
|
+
|
|
124
|
+
new Text("This is example content").set({
|
|
125
|
+
exact: "1rem",
|
|
102
126
|
font: "Arial"
|
|
103
127
|
}),
|
|
104
128
|
|
|
105
|
-
|
|
106
|
-
|
|
129
|
+
|
|
130
|
+
new Image("img/wix.jpeg").set({
|
|
131
|
+
width: "100%",
|
|
132
|
+
height: "300px",
|
|
133
|
+
objectFit: "cover"
|
|
107
134
|
})
|
|
108
135
|
])
|
|
109
136
|
])`
|
|
@@ -150,7 +177,144 @@ class Des {
|
|
|
150
177
|
},
|
|
151
178
|
|
|
152
179
|
grid: {
|
|
153
|
-
code: `new Simple()
|
|
180
|
+
code: ` new Simple()
|
|
181
|
+
.set({
|
|
182
|
+
gap: "1rem"
|
|
183
|
+
})
|
|
184
|
+
.react([{
|
|
185
|
+
at: "0px",
|
|
186
|
+
template: [
|
|
187
|
+
"eeeeee",
|
|
188
|
+
"eeeeee",
|
|
189
|
+
"abbbbb",
|
|
190
|
+
"abbbbb",
|
|
191
|
+
"abbbbb",
|
|
192
|
+
"cccccc",
|
|
193
|
+
"cccccc",
|
|
194
|
+
"dddddd"
|
|
195
|
+
]
|
|
196
|
+
},
|
|
197
|
+
|
|
198
|
+
{
|
|
199
|
+
at: "900px",
|
|
200
|
+
color: "orange",
|
|
201
|
+
template: [
|
|
202
|
+
"aaaccc",
|
|
203
|
+
"aaaccc",
|
|
204
|
+
"bbbbbb",
|
|
205
|
+
"dddddd",
|
|
206
|
+
"eeeeee"
|
|
207
|
+
]
|
|
208
|
+
},
|
|
209
|
+
|
|
210
|
+
{
|
|
211
|
+
at: "1200px",
|
|
212
|
+
color: "purple",
|
|
213
|
+
template: [
|
|
214
|
+
"cccaaa",
|
|
215
|
+
"cccaaa",
|
|
216
|
+
"bbbbbb",
|
|
217
|
+
"dddddd",
|
|
218
|
+
"eeeeee"
|
|
219
|
+
]
|
|
220
|
+
},
|
|
221
|
+
])
|
|
222
|
+
.add([
|
|
223
|
+
new Wrapper().set({
|
|
224
|
+
pad: [{
|
|
225
|
+
a: 20
|
|
226
|
+
}],
|
|
227
|
+
background: "#ecf0f1",
|
|
228
|
+
radius: "1.7rem"
|
|
229
|
+
}).add([
|
|
230
|
+
new Text("NEW PRODUCT").set({
|
|
231
|
+
exact: "1rem",
|
|
232
|
+
font: "Oswald",
|
|
233
|
+
width: "100%"
|
|
234
|
+
}),
|
|
235
|
+
new Text("Feel").set({
|
|
236
|
+
fluidc: "S2",
|
|
237
|
+
font: "Oswald",
|
|
238
|
+
width: "100%",
|
|
239
|
+
color: "black"
|
|
240
|
+
}),
|
|
241
|
+
new Text("Speed").set({
|
|
242
|
+
exact: "7rem",
|
|
243
|
+
font: "Oswald",
|
|
244
|
+
width: "100%",
|
|
245
|
+
color: "#3498db"
|
|
246
|
+
}),
|
|
247
|
+
]),
|
|
248
|
+
|
|
249
|
+
new Wrapper().set({
|
|
250
|
+
pad: [{
|
|
251
|
+
a: 20
|
|
252
|
+
}],
|
|
253
|
+
background: "#ecf0f1",
|
|
254
|
+
radius: "1.7rem"
|
|
255
|
+
}).add([
|
|
256
|
+
new Text("TOP QUALITY").set({
|
|
257
|
+
exact: "1rem",
|
|
258
|
+
font: "Oswald",
|
|
259
|
+
width: "100%"
|
|
260
|
+
}),
|
|
261
|
+
new Text("Amazing animals").set({
|
|
262
|
+
fluidc: "S2",
|
|
263
|
+
font: "Oswald",
|
|
264
|
+
width: "100%",
|
|
265
|
+
color: "black"
|
|
266
|
+
}),
|
|
267
|
+
|
|
268
|
+
new Text("Seals are intelligent, agile marine mammals found in oceans around the world, known for their streamlined bodies, flippers, and ability to thrive both in water and on land. Belonging to the pinniped family, they are divided into true seals, which lack external ears, and eared seals like sea lions, which are more mobile on land. Seals feed primarily on fish and squid, using their sensitive whiskers to detect prey underwater, and can dive to great depths while holding their breath for extended periods. Adapted to cold environments with thick blubber for insulation, seals play a crucial role in marine ecosystems but face threats from climate change, pollution, and human activity, making conservation efforts increasingly important.")
|
|
269
|
+
.set({
|
|
270
|
+
font: "Arial",
|
|
271
|
+
exact: "1.3rem"
|
|
272
|
+
})
|
|
273
|
+
|
|
274
|
+
]),
|
|
275
|
+
|
|
276
|
+
new Wrapper().set({
|
|
277
|
+
radius: "1.7rem",
|
|
278
|
+
overflow: "hidden"
|
|
279
|
+
|
|
280
|
+
}).add([
|
|
281
|
+
|
|
282
|
+
new Image("https://cdn.pixabay.com/photo/2017/02/09/18/40/seal-2053165_640.jpg", "exact").set({
|
|
283
|
+
width: "100%",
|
|
284
|
+
height: "420px",
|
|
285
|
+
minHeight: "100px",
|
|
286
|
+
objectFit: "cover"
|
|
287
|
+
|
|
288
|
+
})
|
|
289
|
+
]),
|
|
290
|
+
|
|
291
|
+
new Wrapper().set({
|
|
292
|
+
pad: [{
|
|
293
|
+
a: 20
|
|
294
|
+
}],
|
|
295
|
+
background: "#ecf0f1",
|
|
296
|
+
radius: "1.7rem",
|
|
297
|
+
}).add([
|
|
298
|
+
new Text("Welcome seals").set({
|
|
299
|
+
fluidc: "S3",
|
|
300
|
+
font: "Oswald",
|
|
301
|
+
color: "black"
|
|
302
|
+
}),
|
|
303
|
+
|
|
304
|
+
]),
|
|
305
|
+
new Wrapper().set({
|
|
306
|
+
mc: true,
|
|
307
|
+
pad: [{
|
|
308
|
+
a: 20
|
|
309
|
+
}],
|
|
310
|
+
background: "#ecf0f1",
|
|
311
|
+
radius: "1.7rem",
|
|
312
|
+
|
|
313
|
+
}).add([new Text("Top line").set({
|
|
314
|
+
font: "Arial",
|
|
315
|
+
exact: "1.3rem"
|
|
316
|
+
}), ]),
|
|
317
|
+
])`, // Rest omitted for brevity
|
|
154
318
|
},
|
|
155
319
|
|
|
156
320
|
flexRow: (colat) => ({
|
|
@@ -158,7 +322,23 @@ class Des {
|
|
|
158
322
|
code: `new FlexRow().set({border: ["all", "3px"], colat: "600px"}).items([new Image(...), new Image(...), new Image(...)])`,
|
|
159
323
|
},
|
|
160
324
|
text: {
|
|
161
|
-
code: `new FlexRow().set({
|
|
325
|
+
code: `new FlexRow().set({}).items([
|
|
326
|
+
|
|
327
|
+
new Text("This").set({
|
|
328
|
+
size: "S3"
|
|
329
|
+
}),
|
|
330
|
+
|
|
331
|
+
new Text("is").set({
|
|
332
|
+
size: "S3",
|
|
333
|
+
text: "Hello"
|
|
334
|
+
}),
|
|
335
|
+
|
|
336
|
+
new Text("row.").set({
|
|
337
|
+
size: "S3",
|
|
338
|
+
text: "Hello"
|
|
339
|
+
})
|
|
340
|
+
|
|
341
|
+
])`,
|
|
162
342
|
},
|
|
163
343
|
}),
|
|
164
344
|
|
|
@@ -584,9 +764,9 @@ console.log(duration);
|
|
|
584
764
|
console.log(`----------------------------LLL ${i} ${customOptions.length}`);
|
|
585
765
|
|
|
586
766
|
|
|
587
|
-
const matchEls = ["h1", "h2", "h3", "h4", "h5", "h6"].includes(el.type) || el.type === "img" || el.type === "a" || /*el.type == "modal" ||*/ el.type == "slider" /*|| el.type == "table"*/;
|
|
767
|
+
const matchEls = ["h1", "h2", "h3", "h4", "h5", "h6", "p"].includes(el.type) || el.type === "img" || el.type === "a" || /*el.type == "modal" ||*/ el.type == "slider" /*|| el.type == "table"*/;
|
|
588
768
|
|
|
589
|
-
if (matchEls) {
|
|
769
|
+
if (matchEls) {
|
|
590
770
|
|
|
591
771
|
ela = ElementMapper.mapType({
|
|
592
772
|
el: el,
|
|
@@ -909,11 +1089,34 @@ console.log(duration);
|
|
|
909
1089
|
}
|
|
910
1090
|
}
|
|
911
1091
|
|
|
1092
|
+
const layout = {
|
|
1093
|
+
Text, Image, Link, FlexRow, UINavBar, Free, Audio, Progress, Center, Code,
|
|
1094
|
+
Stack, Wrapper, MetaAdder, Table, Dropdown, Modal, TextField, Card,
|
|
1095
|
+
Wrap, FlexGrid, ZoomCard, Switcher, MobileBar, DesktopBar, SideNav, Spacer,
|
|
1096
|
+
};
|
|
1097
|
+
|
|
1098
|
+
const formComponents = {
|
|
1099
|
+
FloatingInput, Range, RadioGroup, Picker, FilePickera,
|
|
1100
|
+
DataList, Base, Form, Button, Slider, Video, Checkbox,
|
|
1101
|
+
};
|
|
1102
|
+
|
|
1103
|
+
const libs = {
|
|
1104
|
+
ElementMapper, Animator, LinkStyler, CardGen, Simple,
|
|
1105
|
+
};
|
|
1106
|
+
|
|
1107
|
+
|
|
1108
|
+
const components = {
|
|
1109
|
+
...layout,
|
|
1110
|
+
...formComponents,
|
|
1111
|
+
...libs,
|
|
1112
|
+
};
|
|
1113
|
+
|
|
912
1114
|
for (var i = 0; i < this.code.length; i++) {
|
|
913
1115
|
let sub = this.code[i];
|
|
914
1116
|
console.log("SUBO");
|
|
915
1117
|
console.log(sub);
|
|
916
|
-
|
|
1118
|
+
new Function(...Object.keys(components), sub)(...Object.values(components));
|
|
1119
|
+
// eval(`${sub}`);
|
|
917
1120
|
}
|
|
918
1121
|
}
|
|
919
1122
|
}
|
package/lib/elementMapper.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* nodality v1.0.0-beta.71
|
|
3
|
+
* (c) 2025 Filip Vabrousek
|
|
4
|
+
* License: MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
1
7
|
import {Animator} from "../layout/animator.js";
|
|
2
8
|
import {Text} from "../layout/text.js";
|
|
3
9
|
import {Image} from "../layout/image.js";
|
|
@@ -41,7 +47,7 @@ class ElementMapper { // 22:09:58 04/11/2024
|
|
|
41
47
|
static mapType(obj) {
|
|
42
48
|
// console.log("LOBJ");
|
|
43
49
|
// console.log(obj);
|
|
44
|
-
let headings = ["h1", "h2", "h3", "h4", "h5", "h6"];
|
|
50
|
+
let headings = ["h1", "h2", "h3", "h4", "h5", "h6", "p"];
|
|
45
51
|
if (headings.includes(obj.el.type)) {
|
|
46
52
|
return this.mapText(obj);
|
|
47
53
|
} else if (obj.el.type === "img"){
|
|
@@ -58,9 +64,9 @@ class ElementMapper { // 22:09:58 04/11/2024
|
|
|
58
64
|
return this.protoNav(obj);
|
|
59
65
|
} else if (obj.el.type === "sideNav"){
|
|
60
66
|
return this.sideNav(obj);
|
|
61
|
-
} else if (obj.el.type === "row"){
|
|
67
|
+
} /*else if (obj.el.type === "row"){
|
|
62
68
|
return this.row(obj);
|
|
63
|
-
} else if (obj.el.type === "dropdown"){
|
|
69
|
+
} */ else if (obj.el.type === "dropdown"){
|
|
64
70
|
return this.dropdown(obj);
|
|
65
71
|
} else if (obj.el.type === "modal"){
|
|
66
72
|
return this.modal(obj);
|
|
@@ -103,7 +109,7 @@ class ElementMapper { // 22:09:58 04/11/2024
|
|
|
103
109
|
return this.stack(obj);
|
|
104
110
|
} else if (obj.el.type === "simple"){
|
|
105
111
|
return this.simple(obj);
|
|
106
|
-
}
|
|
112
|
+
}
|
|
107
113
|
}
|
|
108
114
|
|
|
109
115
|
|
|
@@ -311,9 +317,9 @@ class ElementMapper { // 22:09:58 04/11/2024
|
|
|
311
317
|
])
|
|
312
318
|
}
|
|
313
319
|
|
|
314
|
-
|
|
320
|
+
/* static row(obj){
|
|
315
321
|
const customOptions = obj.customOptions;
|
|
316
|
-
|
|
322
|
+
alert("PP")
|
|
317
323
|
let ret = new FlexRow()
|
|
318
324
|
.set({
|
|
319
325
|
borderObj: {
|
|
@@ -343,7 +349,7 @@ class ElementMapper { // 22:09:58 04/11/2024
|
|
|
343
349
|
|
|
344
350
|
return ret;
|
|
345
351
|
|
|
346
|
-
}
|
|
352
|
+
}*/
|
|
347
353
|
|
|
348
354
|
static protoNav(obj){
|
|
349
355
|
|
|
@@ -1047,7 +1053,7 @@ if (obj.el.dropdown){
|
|
|
1047
1053
|
id: el.id,
|
|
1048
1054
|
class: el.class,
|
|
1049
1055
|
color: el.color,
|
|
1050
|
-
|
|
1056
|
+
size: this.getElType(el.type), // update 23/07/2025
|
|
1051
1057
|
font: el.font ?? "Arial",
|
|
1052
1058
|
// index: obj.i + "",
|
|
1053
1059
|
// keySet: {key: "border", value: "3px solid green"},
|
|
@@ -1059,6 +1065,7 @@ if (obj.el.dropdown){
|
|
|
1059
1065
|
backgroundOp: this.filtero("background", el.id, obj.customOptions),
|
|
1060
1066
|
marginOp: this.filtero("margin", el.id, obj.customOptions),
|
|
1061
1067
|
transform: this.filtero("transform", el.id, obj.customOptions),
|
|
1068
|
+
filtera: this.filtero("filter", el.id, obj.customOptions),
|
|
1062
1069
|
});
|
|
1063
1070
|
}
|
|
1064
1071
|
|
package/lib/linkGetter.js
CHANGED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* nodality v1.0.0-beta.71
|
|
3
|
+
* (c) 2025 Filip Vabrousek
|
|
4
|
+
* License: MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
class ScrollVideo {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.frameNumber = 0; // Start video at frame 0
|
|
10
|
+
this.res = document.createElement("div");
|
|
11
|
+
this.vid = null;
|
|
12
|
+
this.minScrollHeight = 0; // Default minimum scroll height
|
|
13
|
+
this.maxScrollHeight = 1000; // Default maximum scroll height
|
|
14
|
+
this.videoUrl = ""; // Default video URL
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
set({ minScrollHeight = 0, maxScrollHeight = 1000, videoUrl = "" } = {}) {
|
|
18
|
+
this.minScrollHeight = minScrollHeight;
|
|
19
|
+
this.maxScrollHeight = maxScrollHeight;
|
|
20
|
+
this.videoUrl = videoUrl;
|
|
21
|
+
|
|
22
|
+
// Create elements after settings are provided
|
|
23
|
+
this.createElements("V0");
|
|
24
|
+
|
|
25
|
+
// Select video element after creation
|
|
26
|
+
this.vid = this.res.children[0];
|
|
27
|
+
|
|
28
|
+
// Initialize event listeners and behavior
|
|
29
|
+
this.init();
|
|
30
|
+
return this; // Allow chaining
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
createElements(videoElementId) {
|
|
34
|
+
// Create and style the video element
|
|
35
|
+
const video = document.createElement("video");
|
|
36
|
+
video.id = videoElementId;
|
|
37
|
+
video.setAttribute("tabindex", "0");
|
|
38
|
+
video.setAttribute("autobuffer", "autobuffer");
|
|
39
|
+
video.setAttribute("preload", "preload");
|
|
40
|
+
video.style.position = "sticky";
|
|
41
|
+
video.style.top = "0";
|
|
42
|
+
video.style.left = "0";
|
|
43
|
+
video.style.width = "100%";
|
|
44
|
+
video.style.height = "100vh";
|
|
45
|
+
video.style.border = "1px solid orange";
|
|
46
|
+
|
|
47
|
+
// Create and append the source element to the video
|
|
48
|
+
const source = document.createElement("source");
|
|
49
|
+
source.type = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
|
|
50
|
+
source.src = this.videoUrl;
|
|
51
|
+
video.appendChild(source);
|
|
52
|
+
|
|
53
|
+
// Append the video element to the container
|
|
54
|
+
this.res.appendChild(video);
|
|
55
|
+
|
|
56
|
+
// Create and style the paragraph element
|
|
57
|
+
const paragraph = document.createElement("p");
|
|
58
|
+
paragraph.id = "time";
|
|
59
|
+
paragraph.style.fontFamily = "Helvetica, Arial, sans-serif";
|
|
60
|
+
paragraph.style.fontSize = "24px";
|
|
61
|
+
this.res.appendChild(paragraph);
|
|
62
|
+
|
|
63
|
+
// Create and style the set-height div element
|
|
64
|
+
const setHeight = document.createElement("div");
|
|
65
|
+
setHeight.id = "set-height";
|
|
66
|
+
setHeight.style.display = "block";
|
|
67
|
+
this.setop = setHeight;
|
|
68
|
+
this.res.appendChild(setHeight);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
sticky() {
|
|
72
|
+
this.res.style.position = "sticky";
|
|
73
|
+
this.res.style.top = 0;
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
init() {
|
|
78
|
+
// Set up event listener for when the video metadata is loaded
|
|
79
|
+
this.vid.addEventListener("loadedmetadata", () => {
|
|
80
|
+
// Dynamically set the page height based on video duration
|
|
81
|
+
const setHeight = this.setop;//document.getElementById("set-height");
|
|
82
|
+
if (setHeight) {
|
|
83
|
+
const scrollableHeight = this.maxScrollHeight - this.minScrollHeight;
|
|
84
|
+
setHeight.style.height = `${scrollableHeight}px`;
|
|
85
|
+
} else {
|
|
86
|
+
console.error("Error: 'set-height' element not found.");
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
// Start the scroll-play functionality
|
|
91
|
+
this.scrollPlay();
|
|
92
|
+
}
|
|
93
|
+
scrollPlay() {
|
|
94
|
+
// Ensure the video duration is loaded before trying to calculate currentTime
|
|
95
|
+
if (!this.vid || isNaN(this.vid.duration)) {
|
|
96
|
+
window.requestAnimationFrame(() => this.scrollPlay());
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Calculate the frame number based on scroll position
|
|
101
|
+
const scrollPosition = Math.max(
|
|
102
|
+
this.minScrollHeight,
|
|
103
|
+
Math.min(window.pageYOffset, this.maxScrollHeight)
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
const scrollRange = this.maxScrollHeight - this.minScrollHeight;
|
|
107
|
+
const normalizedScroll = (scrollPosition - this.minScrollHeight) / scrollRange;
|
|
108
|
+
|
|
109
|
+
// Update the video currentTime property
|
|
110
|
+
this.vid.currentTime = normalizedScroll * this.vid.duration;
|
|
111
|
+
|
|
112
|
+
// Request the next animation frame for smooth playback
|
|
113
|
+
window.requestAnimationFrame(() => this.scrollPlay());
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
toCode() {
|
|
117
|
+
return [""];
|
|
118
|
+
}
|
|
119
|
+
render(div) {
|
|
120
|
+
if (div){
|
|
121
|
+
document.querySelector(div).appendChild(this.res);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
// Return the container div with all elements
|
|
125
|
+
return this.res;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
export { ScrollVideo };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nodality",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.71",
|
|
4
4
|
"description": "A lightweight library for declarative UI elements.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -16,9 +16,19 @@
|
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"scripts": {
|
|
19
|
-
"build": "webpack --config webpack.config.js"
|
|
19
|
+
"build": "webpack --config webpack.config.js",
|
|
20
|
+
"test:jest": "jest",
|
|
21
|
+
"test:playwright": "playwright test",
|
|
22
|
+
"test": "node scripts/generatePlaywright.js && playwright test",
|
|
23
|
+
"postpublish": "git add . && git commit -m \"release: v$npm_package_version\" && git tag v$npm_package_version && git push --set-upstream origin main && git push origin v$npm_package_version",
|
|
24
|
+
"inject-license": "node scripts/injectLicense.js"
|
|
25
|
+
},
|
|
26
|
+
"jest": {
|
|
27
|
+
"testEnvironment": "jsdom",
|
|
28
|
+
"transform": {
|
|
29
|
+
"^.+\\.js$": "babel-jest"
|
|
30
|
+
}
|
|
20
31
|
},
|
|
21
|
-
"dependencies": {},
|
|
22
32
|
"license": "MIT",
|
|
23
33
|
"repository": {
|
|
24
34
|
"type": "git",
|
|
@@ -35,5 +45,14 @@
|
|
|
35
45
|
"library",
|
|
36
46
|
"declarative",
|
|
37
47
|
"nodality"
|
|
38
|
-
]
|
|
48
|
+
],
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@babel/core": "^7.28.0",
|
|
51
|
+
"@babel/preset-env": "^7.28.0",
|
|
52
|
+
"@playwright/test": "^1.54.1",
|
|
53
|
+
"babel-jest": "^29.7.0",
|
|
54
|
+
"jest": "^29.7.0",
|
|
55
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
56
|
+
"playwright": "^1.54.1"
|
|
57
|
+
}
|
|
39
58
|
}
|