nodality 1.0.185 → 1.0.187
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/dist/animator.cjs.js +1 -1
- package/dist/animator.esm.js +1 -1
- package/dist/audionew.cjs.js +1 -1
- package/dist/audionew.esm.js +1 -1
- package/dist/beta-desktop-bar.cjs.js +1 -1
- package/dist/beta-desktop-bar.esm.js +1 -1
- package/dist/beta-mobile-bar.cjs.js +1 -1
- package/dist/beta-mobile-bar.esm.js +1 -1
- package/dist/bundle.umd.js +1 -1
- package/dist/button.cjs.js +1 -1
- package/dist/button.esm.js +1 -1
- package/dist/card-getter.cjs.js +1 -1
- package/dist/card-getter.esm.js +1 -1
- package/dist/center.cjs.js +1 -1
- package/dist/center.esm.js +1 -1
- package/dist/checkbox.cjs.js +1 -1
- package/dist/checkbox.esm.js +1 -1
- package/dist/code.cjs.js +1 -1
- package/dist/code.esm.js +1 -1
- package/dist/container.cjs.js +1 -1
- package/dist/container.esm.js +1 -1
- package/dist/data-list.cjs.js +1 -1
- package/dist/data-list.esm.js +1 -1
- package/dist/designer.cjs.js +1 -1
- package/dist/designer.esm.js +1 -1
- package/dist/dropdown.cjs.js +1 -1
- package/dist/dropdown.esm.js +1 -1
- package/dist/element-mapper.cjs.js +1 -1
- package/dist/element-mapper.esm.js +1 -1
- package/dist/finalresult.esm.js +1 -1
- package/dist/flex-card.cjs.js +1 -1
- package/dist/flex-card.esm.js +1 -1
- package/dist/flex-grid.cjs.js +1 -1
- package/dist/flex-grid.esm.js +1 -1
- package/dist/flex-row.cjs.js +1 -1
- package/dist/flex-row.esm.js +1 -1
- package/dist/floating-input.cjs.js +1 -1
- package/dist/floating-input.esm.js +1 -1
- package/dist/free.cjs.js +1 -1
- package/dist/free.esm.js +1 -1
- package/dist/horizontal-scroller.cjs.js +1 -1
- package/dist/horizontal-scroller.esm.js +1 -1
- package/dist/image-picker.cjs.js +1 -1
- package/dist/image-picker.esm.js +1 -1
- package/dist/image.cjs.js +1 -1
- package/dist/image.esm.js +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/keyframe-animation.cjs.js +1 -1
- package/dist/keyframe-animation.esm.js +1 -1
- package/dist/link-getter.cjs.js +1 -1
- package/dist/link-getter.esm.js +1 -1
- package/dist/link.cjs.js +1 -1
- package/dist/link.esm.js +1 -1
- package/dist/modal-2025.cjs.js +1 -1
- package/dist/modal-2025.esm.js +1 -1
- package/dist/multiswitcher.cjs.js +1 -1
- package/dist/multiswitcher.esm.js +1 -1
- package/dist/new-nav-bar.cjs.js +1 -1
- package/dist/new-nav-bar.esm.js +1 -1
- package/dist/picker.cjs.js +1 -1
- package/dist/picker.esm.js +1 -1
- package/dist/radio.cjs.js +1 -1
- package/dist/radio.esm.js +1 -1
- package/dist/side-nav-bar.cjs.js +1 -1
- package/dist/side-nav-bar.esm.js +1 -1
- package/dist/simple-bar.cjs.js +1 -1
- package/dist/simple-bar.esm.js +1 -1
- package/dist/slider-2025.cjs.js +1 -1
- package/dist/slider-2025.esm.js +1 -1
- package/dist/stacker.cjs.js +1 -1
- package/dist/stacker.esm.js +1 -1
- package/dist/table.cjs.js +1 -1
- package/dist/table.esm.js +1 -1
- package/dist/text-field.cjs.js +1 -1
- package/dist/text-field.esm.js +1 -1
- package/dist/text.cjs.js +1 -1
- package/dist/text.esm.js +1 -1
- package/dist/transform-anim.cjs.js +1 -1
- package/dist/transform-anim.esm.js +1 -1
- package/dist/ulist.cjs.js +1 -1
- package/dist/ulist.esm.js +1 -1
- package/dist/video.cjs.js +1 -1
- package/dist/video.esm.js +1 -1
- package/dist/zoom-card.cjs.js +1 -1
- package/dist/zoom-card.esm.js +1 -1
- package/layout/animator.js +1 -31
- package/layout/audio.js +1 -1
- package/layout/audionew.js +1 -1
- package/layout/base-2.js +1 -2
- package/layout/base.js +1 -1
- package/layout/beta-desktop-bar.js +1 -9
- package/layout/beta-mobile-bar.js +1 -17
- package/layout/box.js +1 -1
- package/layout/button.js +1 -1
- package/layout/cards.js +1 -2
- package/layout/center.js +1 -1
- package/layout/checkbox.js +1 -1
- package/layout/circle.js +1 -1
- package/layout/clean-row.js +1 -8
- package/layout/code.js +1 -3
- package/layout/container.js +1 -3
- package/layout/custom.js +1 -1
- package/layout/div-image.js +1 -1
- package/layout/dropdown-2025.js +1 -1
- package/layout/dropdown.js +1 -3
- package/layout/empty-element.js +1 -1
- package/layout/external-stylesheet.js +1 -1
- package/layout/flex-card.js +1 -2
- package/layout/flex-grid.js +1 -3
- package/layout/flex-row.js +1 -3
- package/layout/footer.js +1 -1
- package/layout/form-components/custom.js +1 -1
- package/layout/form-components/data-list.js +1 -4
- package/layout/form-components/floating-input.js +1 -1
- package/layout/form-components/form-all.js +1 -9
- package/layout/form-components/form.js +1 -7
- package/layout/form-components/image-picker.js +1 -1
- package/layout/form-components/picker.js +1 -1
- package/layout/form-components/radio.js +1 -7
- package/layout/form-components/radiogroup.js +1 -7
- package/layout/form-components/range.js +1 -1
- package/layout/free.js +1 -10
- package/layout/grid-new.js +1 -5
- package/layout/grid-switcher.js +1 -6
- package/layout/grid.js +1 -4
- package/layout/group.js +1 -1
- package/layout/header.js +1 -1
- package/layout/horizontal-scroller.js +1 -4
- package/layout/image-old.js +1 -1
- package/layout/image.js +1 -1
- package/layout/index.js +1 -1
- package/layout/label.js +1 -1
- package/layout/link.js +1 -1
- package/layout/list-OLD.js +1 -1
- package/layout/list.js +1 -1
- package/layout/meta-adder.js +1 -1
- package/layout/modal-2025.js +1 -2
- package/layout/modernwrap.js +1 -2
- package/layout/multiswitcher.js +1 -8
- package/layout/multiswitcherBeta.js +1 -1
- package/layout/nav-bar.js +1 -7
- package/layout/nav-factor/custom-div.js +1 -1
- package/layout/navBar-OLD.js +1 -2
- package/layout/new-flat-adder.js +1 -1
- package/layout/new-nav-bar.js +1 -3
- package/layout/offset-container.js +1 -1
- package/layout/polygon.js +1 -1
- package/layout/prerender-site.js +1 -1
- package/layout/prerender.js +1 -1
- package/layout/progress.js +1 -1
- package/layout/row.js +1 -1
- package/layout/saved-new-nav-bar.js +1 -7
- package/layout/scroll-video.js +1 -1
- package/layout/side-bar.js +1 -1
- package/layout/side-nav-bar.js +1 -15
- package/layout/simple-bar.js +1 -1
- package/layout/slider-2025.js +1 -1
- package/layout/spacer.js +1 -1
- package/layout/stack.js +1 -1
- package/layout/styler.js +1 -1
- package/layout/svg.js +1 -1
- package/layout/switcher.js +1 -4
- package/layout/table.js +1 -2
- package/layout/text-field.js +1 -1
- package/layout/text.js +1 -18
- package/layout/ulist.js +1 -3
- package/layout/video.js +1 -1
- package/layout/without-new.js +1 -1
- package/layout/wrap.js +1 -1
- package/layout/zoom-card.js +1 -4
- package/lib/card-getter.js +1 -5
- package/lib/data.js +1 -1
- package/lib/designer.js +1 -29
- package/lib/element-mapper.js +1 -12
- package/lib/keyframe-animation.js +1 -8
- package/lib/link-getter.js +1 -7
- package/lib/raster-ops.js +121 -13
- package/lib/scroll-video.js +1 -1
- package/lib/seo.js +1 -1
- package/lib/stacker.js +1 -2
- package/lib/theme.js +1 -1
- package/lib/transform-anim.js +1 -3
- package/package.json +2 -11
package/layout/text.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* nodality v1.0.
|
|
2
|
+
* nodality v1.0.187
|
|
3
3
|
* (c) 2026 Filip Vabrousek
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -23,7 +23,6 @@ class Text extends Animator {
|
|
|
23
23
|
this.react = [];
|
|
24
24
|
this.code.push(`new Text("${this.text}")`);
|
|
25
25
|
//console.log("15/12/25 cool");
|
|
26
|
-
console.log("26-01-26 11:12:00");
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
|
|
@@ -177,7 +176,6 @@ class Text extends Animator {
|
|
|
177
176
|
if (opts === undefined) {
|
|
178
177
|
return this;
|
|
179
178
|
}
|
|
180
|
-
console.log("DEL");
|
|
181
179
|
const options = opts.op;
|
|
182
180
|
const breakpoint = opts.point;
|
|
183
181
|
|
|
@@ -324,8 +322,6 @@ console.log("DEL");
|
|
|
324
322
|
|
|
325
323
|
// Line breaks
|
|
326
324
|
html = html.replace(/\n/g, "<br>");
|
|
327
|
-
console.log("HTML");
|
|
328
|
-
console.log(html);
|
|
329
325
|
|
|
330
326
|
return html;
|
|
331
327
|
}
|
|
@@ -463,8 +459,6 @@ this.res.style.position = "absolute";
|
|
|
463
459
|
|
|
464
460
|
|
|
465
461
|
/*if (obj.transform){
|
|
466
|
-
console.warn("ARE DIFFERENT OBJS HERE?");
|
|
467
|
-
console.warn(obj.transform)
|
|
468
462
|
}*/
|
|
469
463
|
// Done by commonMethods
|
|
470
464
|
//obj.transform && this.reactOnTransform(obj.transform); // remove obj.op.duration
|
|
@@ -473,8 +467,6 @@ this.res.style.position = "absolute";
|
|
|
473
467
|
alert("P");
|
|
474
468
|
}*/
|
|
475
469
|
|
|
476
|
-
console.log("OGA");
|
|
477
|
-
console.log(obj);
|
|
478
470
|
|
|
479
471
|
|
|
480
472
|
this.callReact(obj);
|
|
@@ -552,8 +544,6 @@ this.res.style.position = "absolute";
|
|
|
552
544
|
}*/
|
|
553
545
|
|
|
554
546
|
// console.log("ARA IS " + arr);
|
|
555
|
-
console.log("ARA IS ");
|
|
556
|
-
console.log(arr);
|
|
557
547
|
|
|
558
548
|
this.chainReact(arr, this.options.id, keep);
|
|
559
549
|
}
|
|
@@ -1353,8 +1343,6 @@ checkForAnimation(queries){
|
|
|
1353
1343
|
el.setAttribute("id", obj.id);
|
|
1354
1344
|
|
|
1355
1345
|
|
|
1356
|
-
console.log("ANIMAS");
|
|
1357
|
-
console.log(obj);
|
|
1358
1346
|
|
|
1359
1347
|
if (obj.type === "span"){
|
|
1360
1348
|
|
|
@@ -1733,9 +1721,6 @@ checkForAnimation(queries){
|
|
|
1733
1721
|
render(div) {
|
|
1734
1722
|
|
|
1735
1723
|
/*console.log("FINAL CSS");
|
|
1736
|
-
console.log(this.css[0].range);
|
|
1737
|
-
console.log(this.css[0].rules);
|
|
1738
|
-
console.log(this.elCSS);
|
|
1739
1724
|
*/
|
|
1740
1725
|
|
|
1741
1726
|
|
|
@@ -1769,8 +1754,6 @@ checkForAnimation(queries){
|
|
|
1769
1754
|
}
|
|
1770
1755
|
|
|
1771
1756
|
if (this.looksLikeMarkdown(this.text)) {
|
|
1772
|
-
console.log("See md"); // 224635 29/09/25
|
|
1773
|
-
console.log(this.parseMarkdown(this.text));
|
|
1774
1757
|
this.res.innerHTML = this.parseMarkdown(this.text);
|
|
1775
1758
|
}
|
|
1776
1759
|
|
package/layout/ulist.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* nodality v1.0.
|
|
2
|
+
* nodality v1.0.187
|
|
3
3
|
* (c) 2026 Filip Vabrousek
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -91,8 +91,6 @@ class UList extends Animator {
|
|
|
91
91
|
}*/
|
|
92
92
|
|
|
93
93
|
// console.log("ARA IS " + arr);
|
|
94
|
-
console.log("ARA IS ");
|
|
95
|
-
console.log(arr);
|
|
96
94
|
|
|
97
95
|
this.chainReact(arr, this.options.id, keep);
|
|
98
96
|
}
|
package/layout/video.js
CHANGED
package/layout/without-new.js
CHANGED
package/layout/wrap.js
CHANGED
package/layout/zoom-card.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* nodality v1.0.
|
|
2
|
+
* nodality v1.0.187
|
|
3
3
|
* (c) 2026 Filip Vabrousek
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -135,9 +135,6 @@ class ZoomCard extends Animator {
|
|
|
135
135
|
render(div) {
|
|
136
136
|
|
|
137
137
|
/*console.log("FINAL CSS");
|
|
138
|
-
console.log(this.css[0].range);
|
|
139
|
-
console.log(this.css[0].rules);
|
|
140
|
-
console.log(this.elCSS);
|
|
141
138
|
*/
|
|
142
139
|
|
|
143
140
|
|
package/lib/card-getter.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* nodality v1.0.
|
|
2
|
+
* nodality v1.0.187
|
|
3
3
|
* (c) 2026 Filip Vabrousek
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -7,8 +7,6 @@
|
|
|
7
7
|
class CardGen {
|
|
8
8
|
|
|
9
9
|
static cards(el, cardOption, storage) {
|
|
10
|
-
console.log("PP");
|
|
11
|
-
console.log(storage);
|
|
12
10
|
|
|
13
11
|
let childStrings = [];
|
|
14
12
|
for (var o = 0; o < el.children.length; o++) {
|
|
@@ -72,8 +70,6 @@ class CardGen {
|
|
|
72
70
|
|
|
73
71
|
// Insert the text at the found index
|
|
74
72
|
let result = inputString.slice(0, index) + ', ' + textToInsert + ', ' + inputString.slice(index);
|
|
75
|
-
console.log("RETA");
|
|
76
|
-
console.log(result);
|
|
77
73
|
return result;
|
|
78
74
|
} else {
|
|
79
75
|
// If no match is found, return the original string
|
package/lib/data.js
CHANGED
package/lib/designer.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* nodality v1.0.
|
|
2
|
+
* nodality v1.0.187
|
|
3
3
|
* (c) 2026 Filip Vabrousek
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -369,8 +369,6 @@ new Text("row.").set({
|
|
|
369
369
|
nodes(arr) {
|
|
370
370
|
this.options = arr;
|
|
371
371
|
this.protoOptions = [...arr];
|
|
372
|
-
console.log(this.options);
|
|
373
|
-
console.log(this.protoOptions);
|
|
374
372
|
return this;
|
|
375
373
|
}
|
|
376
374
|
|
|
@@ -402,13 +400,8 @@ new Text("row.").set({
|
|
|
402
400
|
this.elHTML = [];
|
|
403
401
|
|
|
404
402
|
let customOptions = this.options;
|
|
405
|
-
console.log("COO");
|
|
406
|
-
console.log(customOptions);
|
|
407
403
|
|
|
408
404
|
customOptions.forEach(item => {
|
|
409
|
-
console.log("mid")
|
|
410
|
-
console.log(item);
|
|
411
|
-
console.log("checking:", item.direction);
|
|
412
405
|
if (item.direction === "radial" ) {
|
|
413
406
|
// alert("//")
|
|
414
407
|
item.gradient = "radial-gradient(orange, green)";
|
|
@@ -563,10 +556,7 @@ customOptions.forEach(item => {
|
|
|
563
556
|
];
|
|
564
557
|
|
|
565
558
|
/*console.log("OPS");
|
|
566
|
-
console.log(ops);
|
|
567
559
|
|
|
568
|
-
console.log("CUSTOM OPTIONS");
|
|
569
|
-
console.log(customOptions);
|
|
570
560
|
*/
|
|
571
561
|
|
|
572
562
|
|
|
@@ -621,7 +611,6 @@ customOptions.forEach(item => {
|
|
|
621
611
|
}
|
|
622
612
|
}
|
|
623
613
|
|
|
624
|
-
console.warn(customOptions);
|
|
625
614
|
|
|
626
615
|
|
|
627
616
|
|
|
@@ -810,8 +799,6 @@ if (duration === "default"){
|
|
|
810
799
|
if (/*q == i*/ true){ // 23:07.20 Nice!!!! 23:04 bef
|
|
811
800
|
// 193615 Nice!!!
|
|
812
801
|
//alert("MESS UP");
|
|
813
|
-
console.log("DURA");
|
|
814
|
-
console.log(duration);
|
|
815
802
|
|
|
816
803
|
customOptions[q].op = {
|
|
817
804
|
name: "transform",
|
|
@@ -837,8 +824,6 @@ console.log(duration);
|
|
|
837
824
|
delete customOptions[q].op[dur]; // remove in both logs, weird
|
|
838
825
|
}
|
|
839
826
|
|
|
840
|
-
console.log("COQ");
|
|
841
|
-
console.log(customOptions[q].op.values);
|
|
842
827
|
if (customOptions[q]?.op.values){
|
|
843
828
|
|
|
844
829
|
// alert("P")
|
|
@@ -861,7 +846,6 @@ console.log(duration);
|
|
|
861
846
|
}
|
|
862
847
|
} // for q = cycle end
|
|
863
848
|
|
|
864
|
-
console.log(`----------------------------LLL ${i} ${customOptions.length}`);
|
|
865
849
|
|
|
866
850
|
|
|
867
851
|
|
|
@@ -920,9 +904,7 @@ console.log(duration);
|
|
|
920
904
|
|
|
921
905
|
replaceMedium(customOptions);
|
|
922
906
|
|
|
923
|
-
console.log("SENDING CUSTOM OPTIONS");
|
|
924
907
|
|
|
925
|
-
console.log(customOptions);
|
|
926
908
|
|
|
927
909
|
const matchEls = ["h1", "h2", "h3", "h4", "h5", "h6", "p"].includes(el.type) || el.type === "img" || el.type === "a";
|
|
928
910
|
|
|
@@ -973,9 +955,6 @@ replaceMedium(customOptions);
|
|
|
973
955
|
i: i,
|
|
974
956
|
storage: this.stor
|
|
975
957
|
});
|
|
976
|
-
console.log("S///");
|
|
977
|
-
console.log(ela);
|
|
978
|
-
console.log(ela.toCode());
|
|
979
958
|
|
|
980
959
|
this.code.push(ela.toCode());
|
|
981
960
|
|
|
@@ -1153,15 +1132,10 @@ new Slider(texts, null, { tintColor: "#e74c3c", inactiveColor: "#ccc" })
|
|
|
1153
1132
|
i: i,
|
|
1154
1133
|
storage: this.stor
|
|
1155
1134
|
});
|
|
1156
|
-
console.log("S///");
|
|
1157
|
-
console.log(ela);
|
|
1158
|
-
console.log(ela.toCode());
|
|
1159
1135
|
|
|
1160
1136
|
this.code.push(ela.toCode());
|
|
1161
1137
|
|
|
1162
1138
|
} else if (el.type === "cards") {
|
|
1163
|
-
console.log("STORO");
|
|
1164
|
-
console.log(this.stor);
|
|
1165
1139
|
ela = ElementMapper.mapType({
|
|
1166
1140
|
el: el,
|
|
1167
1141
|
customOptions: customOptions,
|
|
@@ -1365,8 +1339,6 @@ const components = {
|
|
|
1365
1339
|
|
|
1366
1340
|
for (var i = 0; i < this.code.length; i++) {
|
|
1367
1341
|
let sub = this.code[i];
|
|
1368
|
-
console.log("SUBO");
|
|
1369
|
-
console.log(sub);
|
|
1370
1342
|
new Function(...Object.keys(components), sub)(...Object.values(components));
|
|
1371
1343
|
// eval(`${sub}`);
|
|
1372
1344
|
}
|
package/lib/element-mapper.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* nodality v1.0.
|
|
2
|
+
* nodality v1.0.187
|
|
3
3
|
* (c) 2026 Filip Vabrousek
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -150,8 +150,6 @@ class ElementMapper { // 22:09:58 04/11/2024
|
|
|
150
150
|
|
|
151
151
|
|
|
152
152
|
let el = obj.el;
|
|
153
|
-
console.log("///");
|
|
154
|
-
console.log(el);
|
|
155
153
|
|
|
156
154
|
return new Table()
|
|
157
155
|
.add([
|
|
@@ -195,8 +193,6 @@ class ElementMapper { // 22:09:58 04/11/2024
|
|
|
195
193
|
static mapRow(obj){
|
|
196
194
|
|
|
197
195
|
let el = obj.el;
|
|
198
|
-
console.log("///");
|
|
199
|
-
console.log(el);
|
|
200
196
|
|
|
201
197
|
|
|
202
198
|
// return new Text("Hello").set({size: "S3"});
|
|
@@ -772,7 +768,6 @@ if (obj.el.dropdown){
|
|
|
772
768
|
}
|
|
773
769
|
|
|
774
770
|
const updatedLinks = removeKeyFromArray(links, "");
|
|
775
|
-
console.log(updatedLinks);
|
|
776
771
|
*/
|
|
777
772
|
|
|
778
773
|
let shouldAnim = obj.el.animation;
|
|
@@ -1367,9 +1362,7 @@ let elo = new Polygon({ id: "hex" })
|
|
|
1367
1362
|
raster: this.filteroRaster(el.id, obj.customOptions),
|
|
1368
1363
|
})
|
|
1369
1364
|
|
|
1370
|
-
console.log(elo.code);
|
|
1371
1365
|
|
|
1372
|
-
console.log(elo.toCode);
|
|
1373
1366
|
|
|
1374
1367
|
return elo;
|
|
1375
1368
|
}
|
|
@@ -1382,8 +1375,6 @@ let elo = new Polygon({ id: "hex" })
|
|
|
1382
1375
|
|
|
1383
1376
|
|
|
1384
1377
|
|
|
1385
|
-
console.warn("WHY DIFFER ATA TEXT (grad)");
|
|
1386
|
-
console.log(obj.customOptions);
|
|
1387
1378
|
|
|
1388
1379
|
|
|
1389
1380
|
return new Text(el.text || el.value)
|
|
@@ -1504,8 +1495,6 @@ console.log(obj.customOptions);
|
|
|
1504
1495
|
|
|
1505
1496
|
|
|
1506
1497
|
static mapGrid(obj){
|
|
1507
|
-
console.log("OBJ IS");
|
|
1508
|
-
console.log(obj.storage);
|
|
1509
1498
|
let el = obj.el;
|
|
1510
1499
|
let cardOption = obj.customOptions.find(l => l.op.name === "card-style") ?? {};
|
|
1511
1500
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* nodality v1.0.
|
|
2
|
+
* nodality v1.0.187
|
|
3
3
|
* (c) 2026 Filip Vabrousek
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -244,10 +244,6 @@ if (cy < 0) cy = 0;
|
|
|
244
244
|
if (cw > iw) cw = iw;
|
|
245
245
|
if (ch > ih) ch = ih;
|
|
246
246
|
|
|
247
|
-
console.log("WEIRD")
|
|
248
|
-
console.log(img);
|
|
249
|
-
console.log(cy);
|
|
250
|
-
console.log(cw);
|
|
251
247
|
// fill image in dest. rectangle
|
|
252
248
|
ctx.drawImage(img, cx, cy, cw, ch, x, y, w, h);
|
|
253
249
|
}
|
|
@@ -271,7 +267,6 @@ maska(data){
|
|
|
271
267
|
|
|
272
268
|
setupTopElement() {
|
|
273
269
|
// If we scroll further after seeing topElement
|
|
274
|
-
console.warn("TOP INIT");
|
|
275
270
|
|
|
276
271
|
|
|
277
272
|
|
|
@@ -403,7 +398,6 @@ maska(data){
|
|
|
403
398
|
|
|
404
399
|
|
|
405
400
|
/* for (var i = 0; i < this.h2a.children[0].children.length; i++){
|
|
406
|
-
console.log("P")
|
|
407
401
|
this.h2a.children[0].children[i].style.transform = `matrix(1, 0, 0, 1, 0, -${offset})`;
|
|
408
402
|
this.h2a.children[0].children[i].style.opacity = `${opacity - i * 0.2}`;
|
|
409
403
|
}*/
|
|
@@ -604,7 +598,6 @@ maska(data){
|
|
|
604
598
|
|
|
605
599
|
|
|
606
600
|
for (var i = 0; i < this.h2a.children[0].children.length; i++){
|
|
607
|
-
console.log("P")
|
|
608
601
|
this.h2a.children[0].children[i].style.transform = `matrix(1, 0, 0, 1, 0, -${offset})`;
|
|
609
602
|
this.h2a.children[0].children[i].style.opacity = `${opacity - i * 0.2}`;
|
|
610
603
|
}
|
package/lib/link-getter.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* nodality v1.0.
|
|
2
|
+
* nodality v1.0.187
|
|
3
3
|
* (c) 2026 Filip Vabrousek
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -11,10 +11,6 @@ class LinkStyler {
|
|
|
11
11
|
let el = obj.el;
|
|
12
12
|
let re = obj.re;
|
|
13
13
|
|
|
14
|
-
console.log("OLESTE");
|
|
15
|
-
console.log(bst);
|
|
16
|
-
console.log(el);
|
|
17
|
-
console.log(re);
|
|
18
14
|
let customOptions = obj.options;
|
|
19
15
|
let links = [];
|
|
20
16
|
|
|
@@ -68,8 +64,6 @@ class LinkStyler {
|
|
|
68
64
|
}
|
|
69
65
|
}
|
|
70
66
|
|
|
71
|
-
console.log("OMESTE");
|
|
72
|
-
console.log(obj);
|
|
73
67
|
let split = bst[j].op.ops.split("-");
|
|
74
68
|
|
|
75
69
|
// re["color"] = //bst.op.style.color;
|
package/lib/raster-ops.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* nodality v1.0.
|
|
2
|
+
* nodality v1.0.187
|
|
3
3
|
* (c) 2026 Filip Vabrousek
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -955,9 +955,38 @@ ${defaultSeam}
|
|
|
955
955
|
|
|
956
956
|
// ── Snapshot backend: DOM subtree -> SVG foreignObject -> texture ────
|
|
957
957
|
|
|
958
|
+
// Viewport-relative CSS inside a foreignObject resolves against the SVG
|
|
959
|
+
// element's own size, not the browser viewport — so `font-size: calc(
|
|
960
|
+
// 1.625rem + 5.075vw)` renders at a different size in the snapshot than
|
|
961
|
+
// it does on the page. The glyphs then sit somewhere the DOM text does
|
|
962
|
+
// not, which is what makes the selection highlight look offset.
|
|
963
|
+
//
|
|
964
|
+
// Freeze those declarations to the pixel values the element actually
|
|
965
|
+
// computes, on a clone, so the snapshot matches the live layout.
|
|
966
|
+
const VIEWPORT_UNIT = /\d(?:vw|vh|vmin|vmax|dvw|dvh|svw|svh|lvw|lvh)\b/i;
|
|
967
|
+
|
|
968
|
+
function freezeViewportUnits(original, clone) {
|
|
969
|
+
const origs = [original, ...original.querySelectorAll("*")];
|
|
970
|
+
const clones = [clone, ...clone.querySelectorAll("*")];
|
|
971
|
+
for (let i = 0; i < origs.length && i < clones.length; i++) {
|
|
972
|
+
const inline = clones[i].style;
|
|
973
|
+
if (!inline || inline.length === 0) continue;
|
|
974
|
+
let computed = null;
|
|
975
|
+
// Iterate a snapshot of the names: writing to style mutates the list.
|
|
976
|
+
for (const prop of Array.from(inline)) {
|
|
977
|
+
if (!VIEWPORT_UNIT.test(inline.getPropertyValue(prop))) continue;
|
|
978
|
+
computed = computed || window.getComputedStyle(origs[i]);
|
|
979
|
+
const px = computed.getPropertyValue(prop);
|
|
980
|
+
if (px) inline.setProperty(prop, px, inline.getPropertyPriority(prop));
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
return clone;
|
|
984
|
+
}
|
|
985
|
+
|
|
958
986
|
function snapshotToImage(el, w, h, dpr) {
|
|
959
987
|
return new Promise((resolve, reject) => {
|
|
960
|
-
const serialized = new XMLSerializer()
|
|
988
|
+
const serialized = new XMLSerializer()
|
|
989
|
+
.serializeToString(freezeViewportUnits(el, el.cloneNode(true)));
|
|
961
990
|
const svg =
|
|
962
991
|
`<svg xmlns="http://www.w3.org/2000/svg" width="${w * dpr}" height="${h * dpr}" viewBox="0 0 ${w} ${h}">` +
|
|
963
992
|
`<foreignObject width="100%" height="100%">` +
|
|
@@ -1067,6 +1096,16 @@ function applyRasterPipeline(el, rasterNodes) {
|
|
|
1067
1096
|
// chrome://flags/#canvas-draw-element). layoutsubtree was already
|
|
1068
1097
|
// set before context creation above.
|
|
1069
1098
|
const wrap = document.createElement("div");
|
|
1099
|
+
// The wrapper MUST fill the canvas box. Left to itself it
|
|
1100
|
+
// shrink-wraps its content — a headline wraps to the text width,
|
|
1101
|
+
// not the element width — and texElementImage2D then captures
|
|
1102
|
+
// that narrower box while the shader maps the texture across the
|
|
1103
|
+
// whole canvas. Everything comes out stretched horizontally by
|
|
1104
|
+
// canvasWidth/contentWidth, so the drawn glyphs no longer sit
|
|
1105
|
+
// where the DOM text does and selection lands on the wrong
|
|
1106
|
+
// characters.
|
|
1107
|
+
wrap.style.cssText =
|
|
1108
|
+
`display:block;width:${rect.width}px;height:${rect.height}px;`;
|
|
1070
1109
|
while (el.firstChild) wrap.appendChild(el.firstChild);
|
|
1071
1110
|
canvas.appendChild(wrap);
|
|
1072
1111
|
sourceEl = wrap;
|
|
@@ -1075,13 +1114,24 @@ function applyRasterPipeline(el, rasterNodes) {
|
|
|
1075
1114
|
canvas.style.cssText =
|
|
1076
1115
|
`display:block;width:${rect.width}px;height:${rect.height}px;`;
|
|
1077
1116
|
} else {
|
|
1078
|
-
// Snapshot mode: purely visual overlay
|
|
1079
|
-
// underneath for accessibility, selection and events.
|
|
1117
|
+
// Snapshot mode: purely visual overlay.
|
|
1080
1118
|
canvas.style.cssText =
|
|
1081
1119
|
"position:absolute;top:0;left:0;" +
|
|
1082
1120
|
`width:${rect.width}px;height:${rect.height}px;` +
|
|
1083
1121
|
"pointer-events:none;z-index:2147483000;";
|
|
1084
|
-
|
|
1122
|
+
if (pureOverlay) {
|
|
1123
|
+
// The real content is still visible underneath and keeps its
|
|
1124
|
+
// own semantics, so the canvas is pure decoration.
|
|
1125
|
+
canvas.setAttribute("aria-hidden", "true");
|
|
1126
|
+
} else {
|
|
1127
|
+
// In-place: the host gets hidden below, which would take its
|
|
1128
|
+
// text out of the accessibility tree, out of find-in-page and
|
|
1129
|
+
// out of innerText. Carry the label onto the canvas so the
|
|
1130
|
+
// element is still announced rather than silently vanishing.
|
|
1131
|
+
canvas.setAttribute("role", "img");
|
|
1132
|
+
const label = (el.textContent || "").replace(/\s+/g, " ").trim();
|
|
1133
|
+
if (label) canvas.setAttribute("aria-label", label.slice(0, 300));
|
|
1134
|
+
}
|
|
1085
1135
|
}
|
|
1086
1136
|
el.appendChild(canvas);
|
|
1087
1137
|
|
|
@@ -1335,6 +1385,65 @@ function applyRasterPipeline(el, rasterNodes) {
|
|
|
1335
1385
|
// texture is live, the host's own painting is hidden via the
|
|
1336
1386
|
// visibility trick (the canvas child re-shows itself) so transparent
|
|
1337
1387
|
// hosts — e.g. a bare headline — don't ghost-double under the effect.
|
|
1388
|
+
// Keeping the host selectable.
|
|
1389
|
+
// --------------------------------------------------------------
|
|
1390
|
+
// The host must NOT be visibility:hidden. Hidden text cannot be
|
|
1391
|
+
// selected, so dragging over the effect either selects nothing or
|
|
1392
|
+
// catches neighbouring content — which is what makes the highlight
|
|
1393
|
+
// look offset and unreliable. Instead the host stays in the flow
|
|
1394
|
+
// with its ink made transparent, and the canvas is painted BEHIND
|
|
1395
|
+
// it. The glyphs are invisible but still hit-testable, and the
|
|
1396
|
+
// browser paints the selection highlight above the canvas, aligned
|
|
1397
|
+
// with the real text, because that is where the text actually is.
|
|
1398
|
+
const INK = {
|
|
1399
|
+
"color": "transparent",
|
|
1400
|
+
"-webkit-text-fill-color": "transparent",
|
|
1401
|
+
"-webkit-text-stroke-color": "transparent",
|
|
1402
|
+
"background-color": "transparent",
|
|
1403
|
+
"background-image": "none",
|
|
1404
|
+
"border-color": "transparent",
|
|
1405
|
+
"box-shadow": "none",
|
|
1406
|
+
"text-shadow": "none",
|
|
1407
|
+
};
|
|
1408
|
+
const REPLACED = "img,svg,video,picture,iframe";
|
|
1409
|
+
let inkSaved = null;
|
|
1410
|
+
|
|
1411
|
+
const hideHostInk = () => {
|
|
1412
|
+
if (inkSaved) return;
|
|
1413
|
+
inkSaved = [];
|
|
1414
|
+
for (const node of [el, ...el.querySelectorAll("*")]) {
|
|
1415
|
+
if (node === canvas || node.tagName === "CANVAS") continue;
|
|
1416
|
+
const saved = { op: node.style.getPropertyValue("opacity") };
|
|
1417
|
+
for (const p in INK) saved[p] = node.style.getPropertyValue(p);
|
|
1418
|
+
inkSaved.push([node, saved]);
|
|
1419
|
+
for (const p in INK) node.style.setProperty(p, INK[p], "important");
|
|
1420
|
+
// Replaced content has no "ink" property to neutralise.
|
|
1421
|
+
if (node !== el && node.matches && node.matches(REPLACED)) {
|
|
1422
|
+
node.style.setProperty("opacity", "0", "important");
|
|
1423
|
+
}
|
|
1424
|
+
}
|
|
1425
|
+
// Contain the negative-z canvas so it stays behind this element's
|
|
1426
|
+
// text but never slips behind an ancestor's background.
|
|
1427
|
+
el.style.isolation = "isolate";
|
|
1428
|
+
canvas.style.zIndex = "-1";
|
|
1429
|
+
};
|
|
1430
|
+
|
|
1431
|
+
const showHostInk = () => {
|
|
1432
|
+
el.style.visibility = "";
|
|
1433
|
+
if (!inkSaved) return;
|
|
1434
|
+
for (const [node, saved] of inkSaved) {
|
|
1435
|
+
for (const p in INK) {
|
|
1436
|
+
if (saved[p]) node.style.setProperty(p, saved[p]);
|
|
1437
|
+
else node.style.removeProperty(p);
|
|
1438
|
+
}
|
|
1439
|
+
if (saved.op) node.style.setProperty("opacity", saved.op);
|
|
1440
|
+
else node.style.removeProperty("opacity");
|
|
1441
|
+
}
|
|
1442
|
+
inkSaved = null;
|
|
1443
|
+
el.style.isolation = "";
|
|
1444
|
+
canvas.style.zIndex = "";
|
|
1445
|
+
};
|
|
1446
|
+
|
|
1338
1447
|
const snapshotCapture = () => {
|
|
1339
1448
|
// Overlay + image content: use the image directly as the texture.
|
|
1340
1449
|
if (isOverlay) {
|
|
@@ -1359,8 +1468,7 @@ function applyRasterPipeline(el, rasterNodes) {
|
|
|
1359
1468
|
}
|
|
1360
1469
|
}
|
|
1361
1470
|
canvas.style.display = "none";
|
|
1362
|
-
|
|
1363
|
-
el.style.visibility = "";
|
|
1471
|
+
showHostInk();
|
|
1364
1472
|
const p = snapshotToImage(el, rect.width, rect.height, dpr)
|
|
1365
1473
|
.then((img) => {
|
|
1366
1474
|
if (destroyed) return;
|
|
@@ -1368,15 +1476,14 @@ function applyRasterPipeline(el, rasterNodes) {
|
|
|
1368
1476
|
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, img);
|
|
1369
1477
|
finishUpload();
|
|
1370
1478
|
textureReady = true;
|
|
1371
|
-
//
|
|
1372
|
-
//
|
|
1373
|
-
//
|
|
1374
|
-
|
|
1375
|
-
el.style.visibility = pureOverlay ? "" : "hidden";
|
|
1479
|
+
// A pure-overlay chain leaves the host alone; the lens
|
|
1480
|
+
// floats over untouched content. Otherwise the canvas
|
|
1481
|
+
// carries the look and the host's own ink is suppressed.
|
|
1482
|
+
if (!pureOverlay) hideHostInk();
|
|
1376
1483
|
canvas.style.visibility = "visible";
|
|
1377
1484
|
})
|
|
1378
1485
|
.catch((e) => {
|
|
1379
|
-
|
|
1486
|
+
showHostInk();
|
|
1380
1487
|
console.warn("[nodality] raster snapshot failed:", e);
|
|
1381
1488
|
});
|
|
1382
1489
|
canvas.style.display = "";
|
|
@@ -1671,6 +1778,7 @@ function applyRasterPipeline(el, rasterNodes) {
|
|
|
1671
1778
|
}
|
|
1672
1779
|
solverOps.length = 0;
|
|
1673
1780
|
while (sourceEl !== el && sourceEl.firstChild) el.appendChild(sourceEl.firstChild);
|
|
1781
|
+
showHostInk();
|
|
1674
1782
|
el.style.visibility = "";
|
|
1675
1783
|
canvas.remove();
|
|
1676
1784
|
},
|
package/lib/scroll-video.js
CHANGED
package/lib/seo.js
CHANGED
package/lib/stacker.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* nodality v1.0.
|
|
2
|
+
* nodality v1.0.187
|
|
3
3
|
* (c) 2026 Filip Vabrousek
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -11,7 +11,6 @@ class Stacker {
|
|
|
11
11
|
this.res = document.createElement("div");
|
|
12
12
|
this.res.style.display = "flex";
|
|
13
13
|
this.res.style.flexDirection = "column";
|
|
14
|
-
console.log("A");
|
|
15
14
|
}
|
|
16
15
|
|
|
17
16
|
add(items){
|
package/lib/theme.js
CHANGED
package/lib/transform-anim.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* nodality v1.0.
|
|
2
|
+
* nodality v1.0.187
|
|
3
3
|
* (c) 2026 Filip Vabrousek
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -255,8 +255,6 @@ toCode(){
|
|
|
255
255
|
if (data){
|
|
256
256
|
|
|
257
257
|
let smart = smartRange(window.scrollY, {min: data.start, max: data.end}, {min: 7, max: 0}) // The other way
|
|
258
|
-
console.warn(smart);
|
|
259
|
-
console.warn(window.scrollY);
|
|
260
258
|
// this.res.style.opacity = 0.7;
|
|
261
259
|
|
|
262
260
|
|