nodality 1.0.188 → 1.0.189
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/bundle.umd.js +1 -1
- package/dist/designer.cjs.js +1 -1
- package/dist/designer.esm.js +1 -1
- package/dist/finalresult.esm.js +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/new-nav-bar.cjs.js +1 -1
- package/dist/new-nav-bar.esm.js +1 -1
- package/layout/animator.js +1 -1
- package/layout/audio.js +1 -1
- package/layout/audionew.js +1 -1
- package/layout/base-2.js +1 -1
- package/layout/base.js +1 -1
- package/layout/beta-desktop-bar.js +1 -1
- package/layout/beta-mobile-bar.js +1 -1
- package/layout/box.js +1 -1
- package/layout/button.js +1 -1
- package/layout/cards.js +1 -1
- package/layout/center.js +1 -1
- package/layout/checkbox.js +1 -1
- package/layout/circle.js +1 -1
- package/layout/clean-row.js +1 -1
- package/layout/code.js +1 -1
- package/layout/container.js +1 -1
- 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 -1
- package/layout/empty-element.js +1 -1
- package/layout/external-stylesheet.js +1 -1
- package/layout/flex-card.js +1 -1
- package/layout/flex-grid.js +1 -1
- package/layout/flex-row.js +1 -1
- package/layout/footer.js +1 -1
- package/layout/form-components/custom.js +1 -1
- package/layout/form-components/data-list.js +1 -1
- package/layout/form-components/floating-input.js +1 -1
- package/layout/form-components/form-all.js +1 -1
- package/layout/form-components/form.js +1 -1
- package/layout/form-components/image-picker.js +1 -1
- package/layout/form-components/picker.js +1 -1
- package/layout/form-components/radio.js +1 -1
- package/layout/form-components/radiogroup.js +1 -1
- package/layout/form-components/range.js +1 -1
- package/layout/free.js +1 -1
- package/layout/grid-new.js +1 -1
- package/layout/grid-switcher.js +1 -1
- package/layout/grid.js +1 -1
- package/layout/group.js +1 -1
- package/layout/header.js +1 -1
- package/layout/horizontal-scroller.js +1 -1
- 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 -1
- package/layout/modernwrap.js +1 -1
- package/layout/multiswitcher.js +1 -1
- package/layout/multiswitcherBeta.js +1 -1
- package/layout/nav-bar.js +1 -1
- package/layout/nav-factor/custom-div.js +1 -1
- package/layout/navBar-OLD.js +1 -1
- package/layout/new-flat-adder.js +1 -1
- package/layout/new-nav-bar.js +70 -5
- 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 -1
- package/layout/scroll-video.js +1 -1
- package/layout/side-bar.js +1 -1
- package/layout/side-nav-bar.js +1 -1
- 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 -1
- package/layout/table.js +1 -1
- package/layout/text-field.js +1 -1
- package/layout/text.js +1 -1
- package/layout/ulist.js +1 -1
- 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 -1
- package/lib/card-getter.js +1 -1
- package/lib/data.js +1 -1
- package/lib/designer.js +1 -1
- package/lib/element-mapper.js +1 -1
- package/lib/keyframe-animation.js +1 -1
- package/lib/link-getter.js +1 -1
- package/lib/raster-ops.js +1 -1
- package/lib/scroll-video.js +1 -1
- package/lib/seo.js +1 -1
- package/lib/stacker.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/transform-anim.js +1 -1
- package/package.json +1 -1
package/layout/center.js
CHANGED
package/layout/checkbox.js
CHANGED
package/layout/circle.js
CHANGED
package/layout/clean-row.js
CHANGED
package/layout/code.js
CHANGED
package/layout/container.js
CHANGED
package/layout/custom.js
CHANGED
package/layout/div-image.js
CHANGED
package/layout/dropdown-2025.js
CHANGED
package/layout/dropdown.js
CHANGED
package/layout/empty-element.js
CHANGED
package/layout/flex-card.js
CHANGED
package/layout/flex-grid.js
CHANGED
package/layout/flex-row.js
CHANGED
package/layout/footer.js
CHANGED
package/layout/free.js
CHANGED
package/layout/grid-new.js
CHANGED
package/layout/grid-switcher.js
CHANGED
package/layout/grid.js
CHANGED
package/layout/group.js
CHANGED
package/layout/header.js
CHANGED
package/layout/image-old.js
CHANGED
package/layout/image.js
CHANGED
package/layout/index.js
CHANGED
package/layout/label.js
CHANGED
package/layout/link.js
CHANGED
package/layout/list-OLD.js
CHANGED
package/layout/list.js
CHANGED
package/layout/meta-adder.js
CHANGED
package/layout/modal-2025.js
CHANGED
package/layout/modernwrap.js
CHANGED
package/layout/multiswitcher.js
CHANGED
package/layout/nav-bar.js
CHANGED
package/layout/navBar-OLD.js
CHANGED
package/layout/new-flat-adder.js
CHANGED
package/layout/new-nav-bar.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* nodality v1.0.
|
|
2
|
+
* nodality v1.0.189
|
|
3
3
|
* (c) 2026 Filip Vabrousek
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -187,6 +187,30 @@ class UINavBar extends Animator {
|
|
|
187
187
|
this.res.children[0].style.height = obj.height;
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
+
// ── Presentation options ──────────────────────────────────────────
|
|
191
|
+
// Collected here and applied in render(), because the bar's inner
|
|
192
|
+
// wrappers are not created until items() runs. All are optional and
|
|
193
|
+
// unset by default, so existing bars render exactly as before.
|
|
194
|
+
//
|
|
195
|
+
// gap spacing between items (CSS length)
|
|
196
|
+
// justify justify-content on the item row
|
|
197
|
+
// barPad padding inside the bar itself
|
|
198
|
+
// maxWidth caps + centres the item row (page-width bars)
|
|
199
|
+
// borderBottom hairline under the bar
|
|
200
|
+
// ariaLabel label for the navigation landmark
|
|
201
|
+
this._ui = {
|
|
202
|
+
gap: obj.gap,
|
|
203
|
+
justify: obj.justify,
|
|
204
|
+
barPad: obj.barPad,
|
|
205
|
+
maxWidth: obj.maxWidth,
|
|
206
|
+
borderBottom: obj.borderBottom,
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
// Landmark semantics. Attributes only — no layout or DOM-shape change,
|
|
210
|
+
// so this is safe for every existing caller.
|
|
211
|
+
this.res.setAttribute("role", "navigation");
|
|
212
|
+
this.res.setAttribute("aria-label", obj.ariaLabel || "Primary");
|
|
213
|
+
|
|
190
214
|
return this;
|
|
191
215
|
}
|
|
192
216
|
|
|
@@ -401,7 +425,18 @@ class UINavBar extends Animator {
|
|
|
401
425
|
}
|
|
402
426
|
|
|
403
427
|
sticky() {
|
|
404
|
-
|
|
428
|
+
// Applied to the root wrapper, not the inner bar. `position: sticky`
|
|
429
|
+
// can only travel within its own parent's box, and the inner bar's
|
|
430
|
+
// parent is exactly bar-height — so sticking it there pins it for zero
|
|
431
|
+
// pixels and it scrolls straight off. The root is a direct child of the
|
|
432
|
+
// page container, which is what gives it room to stay pinned.
|
|
433
|
+
//
|
|
434
|
+
// `sticky` rather than the previous `fixed`: fixed takes the bar out of
|
|
435
|
+
// flow and the first section slides underneath it.
|
|
436
|
+
this.res.style.position = "sticky";
|
|
437
|
+
this.res.style.top = this.res.style.top || "0px";
|
|
438
|
+
this.res.style.zIndex = this.res.style.zIndex || 50;
|
|
439
|
+
this._sticky = true;
|
|
405
440
|
return this;
|
|
406
441
|
}
|
|
407
442
|
|
|
@@ -454,6 +489,12 @@ class UINavBar extends Animator {
|
|
|
454
489
|
|
|
455
490
|
var btn = document.createElement("button");
|
|
456
491
|
btn.setAttribute("id", "hamburger");
|
|
492
|
+
// Announce the control and its state. Attribute-only, so nothing about
|
|
493
|
+
// the existing visual behaviour changes.
|
|
494
|
+
btn.setAttribute("type", "button");
|
|
495
|
+
btn.setAttribute("aria-label", "Menu");
|
|
496
|
+
btn.setAttribute("aria-expanded", "false");
|
|
497
|
+
btn.setAttribute("aria-controls", "innerItemsWrapper");
|
|
457
498
|
btn.style.border = "none";
|
|
458
499
|
btn.style.fontWeight = "bold";
|
|
459
500
|
btn.style.position = "absolute"; // NEW
|
|
@@ -469,8 +510,9 @@ class UINavBar extends Animator {
|
|
|
469
510
|
|
|
470
511
|
btn.addEventListener("click", () => {
|
|
471
512
|
|
|
472
|
-
|
|
513
|
+
|
|
473
514
|
this.isShown = !this.isShown;
|
|
515
|
+
btn.setAttribute("aria-expanded", String(this.isShown));
|
|
474
516
|
|
|
475
517
|
this.hasAnimatedToWide = false;
|
|
476
518
|
|
|
@@ -851,8 +893,31 @@ class UINavBar extends Animator {
|
|
|
851
893
|
// This gets owervwritten, column fires
|
|
852
894
|
|
|
853
895
|
let myMedia = window.matchMedia(`(max-device-width: 415px)`);
|
|
854
|
-
|
|
855
|
-
|
|
896
|
+
// Resolve by id, with the historical index as a fallback: the
|
|
897
|
+
// wrappers sit at index 1 only when the hamburger occupies index 0.
|
|
898
|
+
let outerItemsWrapper =
|
|
899
|
+
this.res.querySelector("#outerItemsWrapper") ||
|
|
900
|
+
this.res.children[0].children[1];
|
|
901
|
+
let innerIW = outerItemsWrapper &&
|
|
902
|
+
(outerItemsWrapper.querySelector("#innerItemsWrapper") ||
|
|
903
|
+
outerItemsWrapper.children[0]);
|
|
904
|
+
|
|
905
|
+
// Apply the optional presentation settings from setup(). Each is
|
|
906
|
+
// skipped when unset, so bars that don't pass them are untouched.
|
|
907
|
+
const ui = this._ui || {};
|
|
908
|
+
if (innerIW) {
|
|
909
|
+
if (ui.gap) innerIW.style.gap = ui.gap;
|
|
910
|
+
if (ui.justify) innerIW.style.justifyContent = ui.justify;
|
|
911
|
+
if (ui.barPad) innerIW.style.padding = ui.barPad;
|
|
912
|
+
if (ui.maxWidth) {
|
|
913
|
+
innerIW.style.maxWidth = ui.maxWidth;
|
|
914
|
+
innerIW.style.marginLeft = "auto";
|
|
915
|
+
innerIW.style.marginRight = "auto";
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
if (outerItemsWrapper && ui.borderBottom) {
|
|
919
|
+
outerItemsWrapper.style.borderBottom = ui.borderBottom;
|
|
920
|
+
}
|
|
856
921
|
|
|
857
922
|
// console.log("TEETH");
|
|
858
923
|
// console.log(outerItemsWrapper);
|
package/layout/polygon.js
CHANGED
package/layout/prerender-site.js
CHANGED
package/layout/prerender.js
CHANGED
package/layout/progress.js
CHANGED
package/layout/row.js
CHANGED
package/layout/scroll-video.js
CHANGED
package/layout/side-bar.js
CHANGED
package/layout/side-nav-bar.js
CHANGED
package/layout/simple-bar.js
CHANGED
package/layout/slider-2025.js
CHANGED
package/layout/spacer.js
CHANGED
package/layout/stack.js
CHANGED
package/layout/styler.js
CHANGED
package/layout/svg.js
CHANGED