nodality 1.0.212 → 1.0.214

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/dist/animator.cjs.js +1 -1
  2. package/dist/animator.cjs.js.LICENSE.txt +1 -1
  3. package/dist/animator.esm.js +1 -1
  4. package/dist/animator.esm.js.LICENSE.txt +1 -1
  5. package/dist/audionew.cjs.js +1 -1
  6. package/dist/audionew.cjs.js.LICENSE.txt +1 -1
  7. package/dist/audionew.esm.js +1 -1
  8. package/dist/audionew.esm.js.LICENSE.txt +1 -1
  9. package/dist/base.cjs.js.LICENSE.txt +1 -1
  10. package/dist/base.esm.js.LICENSE.txt +1 -1
  11. package/dist/beta-desktop-bar.cjs.js +1 -1
  12. package/dist/beta-desktop-bar.cjs.js.LICENSE.txt +1 -1
  13. package/dist/beta-desktop-bar.esm.js +1 -1
  14. package/dist/beta-desktop-bar.esm.js.LICENSE.txt +1 -1
  15. package/dist/beta-mobile-bar.cjs.js +1 -1
  16. package/dist/beta-mobile-bar.cjs.js.LICENSE.txt +1 -1
  17. package/dist/beta-mobile-bar.esm.js +1 -1
  18. package/dist/beta-mobile-bar.esm.js.LICENSE.txt +1 -1
  19. package/dist/bundle.umd.js +1 -1
  20. package/dist/bundle.umd.js.LICENSE.txt +1 -1
  21. package/dist/button.cjs.js +1 -1
  22. package/dist/button.cjs.js.LICENSE.txt +1 -1
  23. package/dist/button.esm.js +1 -1
  24. package/dist/button.esm.js.LICENSE.txt +1 -1
  25. package/dist/card-getter.cjs.js.LICENSE.txt +1 -1
  26. package/dist/card-getter.esm.js.LICENSE.txt +1 -1
  27. package/dist/center.cjs.js +1 -1
  28. package/dist/center.cjs.js.LICENSE.txt +1 -1
  29. package/dist/center.esm.js +1 -1
  30. package/dist/center.esm.js.LICENSE.txt +1 -1
  31. package/dist/checkbox.cjs.js +1 -1
  32. package/dist/checkbox.cjs.js.LICENSE.txt +1 -1
  33. package/dist/checkbox.esm.js +1 -1
  34. package/dist/checkbox.esm.js.LICENSE.txt +1 -1
  35. package/dist/code.cjs.js +1 -1
  36. package/dist/code.cjs.js.LICENSE.txt +1 -1
  37. package/dist/code.esm.js +1 -1
  38. package/dist/code.esm.js.LICENSE.txt +1 -1
  39. package/dist/container.cjs.js +1 -1
  40. package/dist/container.cjs.js.LICENSE.txt +1 -1
  41. package/dist/container.esm.js +1 -1
  42. package/dist/container.esm.js.LICENSE.txt +1 -1
  43. package/dist/data-list.cjs.js.LICENSE.txt +1 -1
  44. package/dist/data-list.esm.js.LICENSE.txt +1 -1
  45. package/dist/designer.cjs.js +1 -1
  46. package/dist/designer.cjs.js.LICENSE.txt +1 -1
  47. package/dist/designer.esm.js +1 -1
  48. package/dist/designer.esm.js.LICENSE.txt +1 -1
  49. package/dist/dropdown.cjs.js +1 -1
  50. package/dist/dropdown.cjs.js.LICENSE.txt +1 -1
  51. package/dist/dropdown.esm.js +1 -1
  52. package/dist/dropdown.esm.js.LICENSE.txt +1 -1
  53. package/dist/element-mapper.cjs.js +1 -1
  54. package/dist/element-mapper.cjs.js.LICENSE.txt +1 -1
  55. package/dist/element-mapper.esm.js +1 -1
  56. package/dist/element-mapper.esm.js.LICENSE.txt +1 -1
  57. package/dist/finalresult.esm.js +1 -1
  58. package/dist/finalresult.esm.js.LICENSE.txt +1 -1
  59. package/dist/flex-card.cjs.js +1 -1
  60. package/dist/flex-card.cjs.js.LICENSE.txt +1 -1
  61. package/dist/flex-card.esm.js +1 -1
  62. package/dist/flex-card.esm.js.LICENSE.txt +1 -1
  63. package/dist/flex-grid.cjs.js +1 -1
  64. package/dist/flex-grid.cjs.js.LICENSE.txt +1 -1
  65. package/dist/flex-grid.esm.js +1 -1
  66. package/dist/flex-grid.esm.js.LICENSE.txt +1 -1
  67. package/dist/flex-row.cjs.js +1 -1
  68. package/dist/flex-row.cjs.js.LICENSE.txt +1 -1
  69. package/dist/flex-row.esm.js +1 -1
  70. package/dist/flex-row.esm.js.LICENSE.txt +1 -1
  71. package/dist/floating-input.cjs.js +1 -1
  72. package/dist/floating-input.cjs.js.LICENSE.txt +1 -1
  73. package/dist/floating-input.esm.js +1 -1
  74. package/dist/floating-input.esm.js.LICENSE.txt +1 -1
  75. package/dist/free.cjs.js +1 -1
  76. package/dist/free.cjs.js.LICENSE.txt +1 -1
  77. package/dist/free.esm.js +1 -1
  78. package/dist/free.esm.js.LICENSE.txt +1 -1
  79. package/dist/horizontal-scroller.cjs.js.LICENSE.txt +1 -1
  80. package/dist/horizontal-scroller.esm.js.LICENSE.txt +1 -1
  81. package/dist/image-picker.cjs.js +1 -1
  82. package/dist/image-picker.cjs.js.LICENSE.txt +1 -1
  83. package/dist/image-picker.esm.js +1 -1
  84. package/dist/image-picker.esm.js.LICENSE.txt +1 -1
  85. package/dist/image.cjs.js +1 -1
  86. package/dist/image.cjs.js.LICENSE.txt +1 -1
  87. package/dist/image.esm.js +1 -1
  88. package/dist/image.esm.js.LICENSE.txt +1 -1
  89. package/dist/index.cjs.js +1 -1
  90. package/dist/index.cjs.js.LICENSE.txt +1 -1
  91. package/dist/index.esm.js +1 -1
  92. package/dist/index.esm.js.LICENSE.txt +1 -1
  93. package/dist/keyframe-animation.cjs.js.LICENSE.txt +1 -1
  94. package/dist/keyframe-animation.esm.js.LICENSE.txt +1 -1
  95. package/dist/link-getter.cjs.js +1 -1
  96. package/dist/link-getter.cjs.js.LICENSE.txt +1 -1
  97. package/dist/link-getter.esm.js +1 -1
  98. package/dist/link-getter.esm.js.LICENSE.txt +1 -1
  99. package/dist/link.cjs.js +1 -1
  100. package/dist/link.cjs.js.LICENSE.txt +1 -1
  101. package/dist/link.esm.js +1 -1
  102. package/dist/link.esm.js.LICENSE.txt +1 -1
  103. package/dist/meta-adder.cjs.js.LICENSE.txt +1 -1
  104. package/dist/meta-adder.esm.js.LICENSE.txt +1 -1
  105. package/dist/modal-2025.cjs.js.LICENSE.txt +1 -1
  106. package/dist/modal-2025.esm.js.LICENSE.txt +1 -1
  107. package/dist/multiswitcher.cjs.js +1 -1
  108. package/dist/multiswitcher.cjs.js.LICENSE.txt +1 -1
  109. package/dist/multiswitcher.esm.js +1 -1
  110. package/dist/multiswitcher.esm.js.LICENSE.txt +1 -1
  111. package/dist/new-nav-bar.cjs.js +1 -1
  112. package/dist/new-nav-bar.cjs.js.LICENSE.txt +1 -1
  113. package/dist/new-nav-bar.esm.js +1 -1
  114. package/dist/new-nav-bar.esm.js.LICENSE.txt +1 -1
  115. package/dist/picker.cjs.js +1 -1
  116. package/dist/picker.cjs.js.LICENSE.txt +1 -1
  117. package/dist/picker.esm.js +1 -1
  118. package/dist/picker.esm.js.LICENSE.txt +1 -1
  119. package/dist/progress.cjs.js +1 -1
  120. package/dist/progress.cjs.js.LICENSE.txt +1 -1
  121. package/dist/progress.esm.js +1 -1
  122. package/dist/progress.esm.js.LICENSE.txt +1 -1
  123. package/dist/radio.cjs.js.LICENSE.txt +1 -1
  124. package/dist/radio.esm.js.LICENSE.txt +1 -1
  125. package/dist/range.cjs.js.LICENSE.txt +1 -1
  126. package/dist/range.esm.js.LICENSE.txt +1 -1
  127. package/dist/scroll-video.cjs.js.LICENSE.txt +1 -1
  128. package/dist/scroll-video.esm.js.LICENSE.txt +1 -1
  129. package/dist/side-bar.cjs.js.LICENSE.txt +1 -1
  130. package/dist/side-bar.esm.js.LICENSE.txt +1 -1
  131. package/dist/side-nav-bar.cjs.js +1 -1
  132. package/dist/side-nav-bar.cjs.js.LICENSE.txt +1 -1
  133. package/dist/side-nav-bar.esm.js +1 -1
  134. package/dist/side-nav-bar.esm.js.LICENSE.txt +1 -1
  135. package/dist/simple-bar.cjs.js +1 -1
  136. package/dist/simple-bar.cjs.js.LICENSE.txt +1 -1
  137. package/dist/simple-bar.esm.js +1 -1
  138. package/dist/simple-bar.esm.js.LICENSE.txt +1 -1
  139. package/dist/slider-2025.cjs.js +1 -1
  140. package/dist/slider-2025.cjs.js.LICENSE.txt +1 -1
  141. package/dist/slider-2025.esm.js +1 -1
  142. package/dist/slider-2025.esm.js.LICENSE.txt +1 -1
  143. package/dist/spacer.cjs.js.LICENSE.txt +1 -1
  144. package/dist/spacer.esm.js.LICENSE.txt +1 -1
  145. package/dist/stack.cjs.js.LICENSE.txt +1 -1
  146. package/dist/stack.esm.js.LICENSE.txt +1 -1
  147. package/dist/stacker.cjs.js.LICENSE.txt +1 -1
  148. package/dist/stacker.esm.js.LICENSE.txt +1 -1
  149. package/dist/table.cjs.js +1 -1
  150. package/dist/table.cjs.js.LICENSE.txt +1 -1
  151. package/dist/table.esm.js +1 -1
  152. package/dist/table.esm.js.LICENSE.txt +1 -1
  153. package/dist/text-field.cjs.js +1 -1
  154. package/dist/text-field.cjs.js.LICENSE.txt +1 -1
  155. package/dist/text-field.esm.js +1 -1
  156. package/dist/text-field.esm.js.LICENSE.txt +1 -1
  157. package/dist/text.cjs.js +1 -1
  158. package/dist/text.cjs.js.LICENSE.txt +1 -1
  159. package/dist/text.esm.js +1 -1
  160. package/dist/text.esm.js.LICENSE.txt +1 -1
  161. package/dist/theme.cjs.js.LICENSE.txt +1 -1
  162. package/dist/theme.esm.js.LICENSE.txt +1 -1
  163. package/dist/transform-anim.cjs.js.LICENSE.txt +1 -1
  164. package/dist/transform-anim.esm.js.LICENSE.txt +1 -1
  165. package/dist/ulist.cjs.js +1 -1
  166. package/dist/ulist.cjs.js.LICENSE.txt +1 -1
  167. package/dist/ulist.esm.js +1 -1
  168. package/dist/ulist.esm.js.LICENSE.txt +1 -1
  169. package/dist/video.cjs.js +1 -1
  170. package/dist/video.cjs.js.LICENSE.txt +1 -1
  171. package/dist/video.esm.js +1 -1
  172. package/dist/video.esm.js.LICENSE.txt +1 -1
  173. package/dist/wrap.cjs.js.LICENSE.txt +1 -1
  174. package/dist/wrap.esm.js.LICENSE.txt +1 -1
  175. package/dist/zoom-card.cjs.js +1 -1
  176. package/dist/zoom-card.cjs.js.LICENSE.txt +1 -1
  177. package/dist/zoom-card.esm.js +1 -1
  178. package/dist/zoom-card.esm.js.LICENSE.txt +1 -1
  179. package/layout/animator.js +97 -30
  180. package/layout/audio.js +1 -1
  181. package/layout/audionew.js +1 -1
  182. package/layout/base-2.js +1 -1
  183. package/layout/base.js +1 -1
  184. package/layout/beta-desktop-bar.js +1 -1
  185. package/layout/beta-mobile-bar.js +1 -1
  186. package/layout/box.js +1 -1
  187. package/layout/button.js +1 -84
  188. package/layout/cards.js +1 -1
  189. package/layout/center.js +1 -21
  190. package/layout/checkbox.js +1 -1
  191. package/layout/circle.js +1 -2
  192. package/layout/clean-row.js +1 -87
  193. package/layout/code.js +1 -1
  194. package/layout/container.js +24 -152
  195. package/layout/custom.js +7 -5
  196. package/layout/div-image.js +1 -49
  197. package/layout/dropdown-2025.js +1 -1
  198. package/layout/dropdown.js +1 -1
  199. package/layout/empty-element.js +1 -1
  200. package/layout/external-stylesheet.js +1 -1
  201. package/layout/flex-card.js +2 -90
  202. package/layout/flex-grid.js +1 -6
  203. package/layout/flex-row.js +1 -86
  204. package/layout/footer.js +1 -1
  205. package/layout/form-components/custom.js +1 -1
  206. package/layout/form-components/data-list.js +1 -1
  207. package/layout/form-components/floating-input.js +1 -1
  208. package/layout/form-components/form-all.js +1 -1
  209. package/layout/form-components/form.js +1 -1
  210. package/layout/form-components/image-picker.js +1 -1
  211. package/layout/form-components/picker.js +1 -1
  212. package/layout/form-components/radio.js +1 -1
  213. package/layout/form-components/radiogroup.js +1 -1
  214. package/layout/form-components/range.js +1 -1
  215. package/layout/free.js +1 -1
  216. package/layout/grid-new.js +1 -1
  217. package/layout/grid-switcher.js +1 -1
  218. package/layout/grid.js +1 -1
  219. package/layout/group.js +1 -41
  220. package/layout/header.js +1 -1
  221. package/layout/horizontal-scroller.js +3 -3
  222. package/layout/image-old.js +1 -41
  223. package/layout/image.js +1 -79
  224. package/layout/index.js +1 -1
  225. package/layout/label.js +1 -1
  226. package/layout/link.js +7 -101
  227. package/layout/list-OLD.js +1 -1
  228. package/layout/list.js +1 -1
  229. package/layout/meta-adder.js +1 -1
  230. package/layout/modal-2025.js +1 -1
  231. package/layout/modernwrap.js +1 -1
  232. package/layout/multiswitcher.js +1 -1
  233. package/layout/multiswitcherBeta.js +1 -1
  234. package/layout/nav-bar.js +1 -1
  235. package/layout/nav-factor/custom-div.js +1 -1
  236. package/layout/navBar-OLD.js +1 -1
  237. package/layout/new-flat-adder.js +1 -1
  238. package/layout/new-nav-bar.js +2 -2
  239. package/layout/offset-container.js +2 -9
  240. package/layout/polygon.js +1 -6
  241. package/layout/prerender-site.js +1 -1
  242. package/layout/prerender.js +1 -1
  243. package/layout/progress.js +1 -21
  244. package/layout/row.js +1 -1
  245. package/layout/saved-new-nav-bar.js +1 -1
  246. package/layout/scroll-video.js +1 -1
  247. package/layout/side-bar.js +1 -1
  248. package/layout/side-nav-bar.js +1 -1
  249. package/layout/simple-bar.js +1 -1
  250. package/layout/slider-2025.js +3 -3
  251. package/layout/spacer.js +1 -1
  252. package/layout/stack.js +1 -1
  253. package/layout/svg.js +1 -1
  254. package/layout/switcher.js +1 -1
  255. package/layout/table.js +1 -6
  256. package/layout/text-field.js +1 -65
  257. package/layout/text.js +5 -100
  258. package/layout/ulist.js +1 -1
  259. package/layout/video.js +1 -1
  260. package/layout/without-new.js +1 -1
  261. package/layout/wrap.js +1 -1
  262. package/layout/zoom-card.js +1 -3
  263. package/lib/card-getter.js +1 -1
  264. package/lib/data.js +1 -1
  265. package/lib/designer.js +1 -1
  266. package/lib/element-mapper.js +1 -1
  267. package/lib/keyframe-animation.js +1 -1
  268. package/lib/link-getter.js +1 -1
  269. package/lib/raster-ops.js +1 -1
  270. package/lib/scroll-video.js +1 -1
  271. package/lib/seo.js +1 -1
  272. package/lib/stacker.js +1 -1
  273. package/lib/theme.js +1 -1
  274. package/lib/transform-anim.js +1 -1
  275. package/package.json +1 -1
  276. package/layout/styler.js +0 -119
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -355,11 +355,11 @@ class Animator {
355
355
  }
356
356
  //alert(obj.respad);
357
357
  // Special methods
358
- //@ pad: Padding. Array of side objects — [{t:14},{b:14},{l:30},{r:30}], or [{a:24}] for all sides.
358
+ //@ pad: Padding. An array of side objects: `pad: [{a: 40}]`. Keys are `a` all, `t` top, `r` right, `b` bottom, `l` left. Keys combine, so `{tb: 12}` sets top and bottom. A bare number is treated as px; any string is passed through, so `{a: "2rem"}` works.
359
359
  obj.pad && this.pad(obj.pad);
360
- //@ mar: Margin. Same array-of-sides form as `pad`; `mar: "center"` is shorthand for 0 auto.
360
+ //@ mar: Margin. The same array-of-side-objects form as `pad`: `mar: [{a: 40}]`, keys `a t r b l`, combinable. Additionally `mar: "center"` sets left and right to auto, as does `{a: "auto"}` or `{center: true}`.
361
361
  obj.mar && this.mar(obj.mar);
362
- //@ respad: Responsive padding — per-breakpoint overrides of `pad`.
362
+ //@ respad: Responsive padding — per-breakpoint overrides of `pad`, in the same form.
363
363
  obj.respad && this.respad(obj.respad);
364
364
 
365
365
  // `borderObj` was never dispatched from here, so a component with no
@@ -383,19 +383,34 @@ class Animator {
383
383
  // idempotent for them.
384
384
  //@ borderObj: Border as {width, color, type?, radius?}. Width carries its unit, e.g. "1px".
385
385
  obj.borderObj && obj.borderObj.width && this.borderObj(obj.borderObj);
386
+ //@ resmar: Responsive margin — per-breakpoint overrides of `mar`, in the same form.
386
387
  obj.resmar && this.resmar(obj.resmar);
388
+ //@ hover: Styles applied on hover, e.g. {color, background, animation: "0.2s ease"}.
387
389
  obj.hover && this.hover(obj.hover);
390
+ //@ size: Fluid type scale step (S1…S6) — font size that scales with the viewport.
388
391
  obj.size && this.fluidCopy(obj.size);
392
+ //@ resprop: Per-breakpoint style overrides — [{breakpoint, ...css}]. `exact` is font size.
389
393
  obj.resprop && this.resprop(obj.resprop, obj);
390
394
  //@ keySet: Escape hatch — {key, value} written straight to element.style, or an array of them.
391
395
  obj.keySet && this.keySet(obj.keySet);
396
+ //@ noTheme: Opt this element out of Theme.setDefaults light/dark colouring.
392
397
  obj.noTheme && (this._noTheme = true);
398
+ //@ theme: Explicit light/dark overrides — {light: {...}, dark: {...}}.
393
399
  obj.theme && this.theme(obj.theme);
400
+ //@ hide: Hide the element without removing it from the tree.
394
401
  obj.hide && this.isHidden(obj.hide);
395
402
  //@ raster: Attach a WebGL raster pipeline. Array of op nodes; see the Raster section.
396
403
  obj.raster && this.rasterize(obj.raster);
404
+
405
+ //@ center: Centres this element's CHILDREN. `true` for both axes, `"x"` horizontal, `"y"` vertical. Axis-aware: in a flex column `"y"` is justify-content, in a row it is align-items; a grid uses justify-items/align-items. To centre the element itself inside its parent, use `mar: "center"`.
406
+ // Dispatched here rather than per component, so it means the same thing
407
+ // on all of them. It was wired only into Wrapper before, while other
408
+ // components either had their own copy with a different meaning or no
409
+ // centring at all.
410
+ obj.center && this.center(obj.center, {display: obj.disp || obj.display, flexDirection: obj.flexDir || obj.flexDirection});
397
411
  // Only route to the animation system for object-shaped transforms.
398
412
  // String transforms are applied above via the styleMap path.
413
+ //@ transform: A CSS transform string applied verbatim, or an object handled by reactOnTransform(). Composed with `scale` when both are given.
399
414
  (obj.transform && typeof obj.transform === "object") && this.reactOnTransform(obj.transform);
400
415
 
401
416
  (obj.opacity !== undefined) && (this.res.style.opacity = obj.opacity);
@@ -1579,6 +1594,75 @@ resmar(arr) {
1579
1594
  react();
1580
1595
  }*/
1581
1596
 
1597
+ /**
1598
+ * Tells the caller they passed an option that no longer exists as the
1599
+ * way to do this, and what to use instead.
1600
+ *
1601
+ * console.error only, deliberately. alert() is banned in live modules
1602
+ * (see the "no live module calls alert()" invariant): alerts had sat in
1603
+ * ordinary paths and blocked the page for every visitor, and the ban is
1604
+ * worth more than making this one warning louder.
1605
+ */
1606
+ deprecatedOption(name, replacement) {
1607
+ console.error(`nodality: \`${name}\` is deprecated — use \`${replacement}\` instead.`);
1608
+ return this;
1609
+ }
1610
+
1611
+ /**
1612
+ * Centres this element's CHILDREN.
1613
+ *
1614
+ * center: true both axes
1615
+ * center: "x" horizontally only
1616
+ * center: "y" vertically only
1617
+ *
1618
+ * Replaces six overlapping methods — toCenter(), toCenter("both"),
1619
+ * flexc(), toCol(), centerColumn and simpleCenter(). flexc() was
1620
+ * byte-identical to toCenter() and toCol() to toCenter("both"), so the
1621
+ * same behaviour had four names and the two that differed did so by
1622
+ * one property each.
1623
+ *
1624
+ * To centre the element ITSELF inside its parent, that is `mar:
1625
+ * "center"` — a different thing, and the reason the old names were so
1626
+ * easy to confuse.
1627
+ *
1628
+ * Axis-aware rather than fixed. justify-content runs along the main
1629
+ * axis, so in a flex column it is the VERTICAL one and align-items is
1630
+ * horizontal — the opposite of a flex row. The old methods hardcoded
1631
+ * flex-direction: column and so only ever worked one way round; this
1632
+ * reads the direction already set and centres the axis you asked for.
1633
+ * A grid gets justify-items/align-items instead, which is what
1634
+ * simpleCenter() was reaching for without setting a display at all.
1635
+ */
1636
+ center(axis = true, hint = {}){
1637
+ const s = this.res.style;
1638
+ // The hints matter because this runs from commonMethods, before a
1639
+ // component applies its own `disp`/`flexDir` aliases. Without them
1640
+ // center() sees a bare element, assumes a flex column, and puts the
1641
+ // centring on the wrong property for every row and grid.
1642
+ const display = s.display || hint.display || "";
1643
+ const direction = s.flexDirection || hint.flexDirection || "";
1644
+ const grid = display.includes("grid");
1645
+
1646
+ const x = axis === true || axis === "both" || axis === "x";
1647
+ const y = axis === true || axis === "both" || axis === "y";
1648
+
1649
+ if (grid){
1650
+ if (x){ s.justifyItems = "center"; s.justifyContent = "center"; }
1651
+ if (y){ s.alignItems = "center"; s.alignContent = "center"; }
1652
+ return this;
1653
+ }
1654
+
1655
+ if (!display.includes("flex")) s.display = "flex";
1656
+ if (!s.flexDirection) s.flexDirection = direction || "column";
1657
+
1658
+ const column = (s.flexDirection || "column").startsWith("column");
1659
+ const mainIsY = column;
1660
+
1661
+ if (mainIsY ? y : x) s.justifyContent = "center";
1662
+ if (mainIsY ? x : y) s.alignItems = "center";
1663
+ return this;
1664
+ }
1665
+
1582
1666
  isNumber(value) {
1583
1667
  return typeof value === 'number' && !isNaN(value);
1584
1668
  }
@@ -3314,35 +3398,18 @@ removeQuotesFromFirstWord(jsonString) {
3314
3398
  }
3315
3399
 
3316
3400
 
3317
- arrayMargin(arr, value) { // 224857 redefined earlier
3318
3401
 
3319
- // // console.log(arr);
3320
- if (arr.includes("left")){
3321
- this.res.style.marginLeft = value;
3322
- }
3323
-
3324
- if (arr.includes("right")){
3325
- this.res.style.marginRight = value;
3326
- }
3327
-
3328
- if (arr.includes("top")){
3329
- this.res.style.marginTop = value;
3330
- }
3331
-
3332
- if (arr.includes("bottom")){
3333
- this.res.style.marginBottom = value;
3334
- }
3335
3402
 
3336
- if (arr.includes("all")){
3337
- this.res.style.margin = value;
3338
- }
3339
3403
 
3340
- if (!value){
3341
- this.res.style.marginBottom = arr;
3342
- }
3343
-
3344
- return this;
3345
- }
3404
+
3405
+
3406
+
3407
+
3408
+
3409
+
3410
+
3411
+
3412
+
3346
3413
  /*
3347
3414
 
3348
3415
  navBarExpand(){
package/layout/audio.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/base-2.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/base.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/box.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/button.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -187,11 +187,7 @@ this.options = obj;
187
187
  obj.frame && this.frame(obj.frame);
188
188
  obj.frame && (stra += `\n frame: "${obj.frame}",`);
189
189
 
190
- obj.arrpad && this.arrayPadding(obj.arrpad.sides, obj.arrpad.value);
191
- obj.arrpad && (stra += `\n arrpad: {sides: ["${obj.arrpad.sides}"], value: "${obj.arrpad.value}"},`); // 2345 06/03
192
190
 
193
- obj.arrayMargin && this.arrayMargin(obj.arrayMargin.sides, obj.arrayMargin.value);
194
- obj.arrayMargin && (stra += `\n arrayMargin: {sides: ["${obj.arrayMargin.sides}"], value: "${obj.arrayMargin.value}"},`); // 2345 06/03
195
191
 
196
192
  obj.keySet && this.keySet(obj.keySet); // 165411 22/01/25 Nice!
197
193
 
@@ -218,86 +214,7 @@ this.options = obj;
218
214
 
219
215
 
220
216
 
221
- arrayPadding(arr, value) {
222
-
223
- if (arr.includes("left")){
224
- this.res.style.paddingLeft = value;
225
- }
226
-
227
- // console.log("PAD");
228
- // console.log(this.res.style.paddingLeft);
229
- // console.log(arr);
230
- // console.log(value);
231
-
232
- if (arr.includes("right")){
233
- this.res.style.paddingRight = value;
234
- }
235
-
236
- if (arr.includes("top")){
237
- this.res.style.paddingTop = value;
238
- }
239
-
240
- if (arr.includes("bottom")){
241
- this.res.style.paddingBottom = value;
242
- }
243
-
244
- if (arr.includes("all")){
245
- this.res.style.padding = value;
246
- }
247
-
248
- if (!value){
249
- this.res.style.paddingBottom = arr;
250
- }
251
-
252
-
253
- return this;
254
- }
255
-
256
- arrayMargin(arr, value) { // 224857 redefined earlier
257
-
258
- if (!value){ // LTRB
259
- this.res.style.marginLeft = `${arr[0]}px`;
260
- this.res.style.marginTop = `${arr[1]}px`;
261
- this.res.style.marginRight = `${arr[2]}px`;
262
- this.res.style.marginBottom = `${arr[3]}px`;
263
- }
264
217
 
265
-
266
- if (value === "7rem"){
267
- // The text does not react to margin changes
268
- // alert(arr);
269
- // alert(value);
270
- }
271
-
272
-
273
-
274
- // // console.log(arr);
275
- if (arr.includes("left")){
276
- this.res.style.marginLeft = value;
277
- }
278
-
279
- if (arr.includes("right")){
280
- this.res.style.marginRight = value;
281
- }
282
-
283
- if (arr.includes("top")){
284
- this.res.style.marginTop = value;
285
- }
286
-
287
- if (arr.includes("bottom")){
288
- this.res.style.marginBottom = value;
289
- }
290
-
291
- if (arr.includes("all")){
292
- this.res.style.margin = value;
293
- }
294
-
295
- if (!value){
296
- this.res.style.marginBottom = arr;
297
- }
298
-
299
- return this;
300
- }
301
218
 
302
219
 
303
220
  fluidButtonCopy(name){
package/layout/cards.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/center.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -100,26 +100,6 @@ return this;
100
100
  return this;
101
101
  }
102
102
 
103
- arrayPadding(arr, value) {
104
- if (arr.includes("left")){
105
- this.res.style.paddingLeft = value;
106
- }
107
-
108
- if (arr.includes("right")){
109
- this.res.style.paddingRight = value;
110
- }
111
-
112
- if (arr.includes("top")){
113
- this.res.style.paddingTop = value;
114
- }
115
-
116
- if (arr.includes("bottom")){
117
- this.res.style.paddingBottom = value;
118
- }
119
-
120
-
121
- return this;
122
- }
123
103
 
124
104
  itemWidth(w){
125
105
  for (var i = 0; i < this.res.childNodes.length; i++){
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/circle.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -51,7 +51,6 @@ class Circle extends Animator {
51
51
  // --- Circle-specific API ---
52
52
  diameter(px) { this.res.style.width = this.res.style.height = typeof px === "number" ? px + "px" : px; this.res.style.borderRadius = "50%"; return this; }
53
53
  size(w, h = w) { this.res.style.width = typeof w === "number" ? w + "px" : w; this.res.style.height = typeof h === "number" ? h + "px" : h; this.res.style.borderRadius = "50%"; return this; }
54
- center() { this.res.style.marginLeft = this.res.style.marginRight = "auto"; return this; }
55
54
  color(c) { this.res.style.backgroundColor = c; return this; }
56
55
  border(spec) { this.res.style.border = typeof spec === "string" ? spec : `${spec?.width || 1}px solid ${spec?.color || "black"}`; return this; }
57
56
  radius(r) { this.res.style.borderRadius = typeof r === "number" ? r + "px" : r; return this; }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -183,16 +183,11 @@ class CleanRow extends Animator {
183
183
 
184
184
 
185
185
  //alert(options.arrpad);
186
- options.arrayPadding && this.arrayPadding(options.arrayPadding.sides, options.arrayPadding.value);
187
186
 
188
187
 
189
- options.arrayMargin && this.arrayMargin(options.arrayMargin.sides, options.arrayMargin.value);
190
- this.arrayMarginValue = options.arrayMargin;
191
- options.arrayMargin && this.code.push(`\n arrayMargin: {sides: [${options.arrayMargin.sides.map(m => `"${m}"`).join(", ")}], value: "${options.arrayMargin.value}"},`); // 2345 06/03
192
188
 
193
189
  // alert(options.multipad);
194
190
 
195
- options.multipad && this.makeMultiPad(options.multipad);
196
191
 
197
192
  if (options.align){
198
193
  //alert("K")
@@ -335,27 +330,6 @@ class CleanRow extends Animator {
335
330
  return this.code; // 21:40:09
336
331
  }
337
332
 
338
- arrayPadding(arr, value) {
339
- if (arr.includes("left")){
340
- this.res.style.paddingLeft = value;
341
- }
342
-
343
- if (arr.includes("right")){
344
- //alert("P")
345
- this.res.style.paddingRight = value;
346
- }
347
-
348
- if (arr.includes("top")){
349
- this.res.style.paddingTop = value;
350
- }
351
-
352
- if (arr.includes("bottom")){
353
- this.res.style.paddingBottom = value;
354
- }
355
-
356
-
357
- return this;
358
- }
359
333
 
360
334
  borderAround(data){
361
335
  this.res.style.border = data;
@@ -412,21 +386,6 @@ class CleanRow extends Animator {
412
386
  }
413
387
 
414
388
 
415
- makeMultiPad(obj){
416
-
417
- for (var i = 0; i < obj.length; i++){
418
- if (obj[i].side === "left"){
419
-
420
- this.res.style.paddingLeft = obj[i].value;
421
- }
422
-
423
- if (obj[i].side === "right"){
424
- this.res.style.paddingRight = obj[i].value;
425
- }
426
- }
427
-
428
- return this;
429
- }
430
389
 
431
390
 
432
391
 
@@ -435,10 +394,6 @@ class CleanRow extends Animator {
435
394
  return this;
436
395
  }
437
396
 
438
- center() {
439
- // this.res.style.justifyItems = "center";
440
- return this;
441
- }
442
397
 
443
398
  toColumn(){
444
399
  this.res.style.flexDirection = "column";
@@ -452,12 +407,6 @@ class CleanRow extends Animator {
452
407
  return this;
453
408
  }
454
409
 
455
- toCenter(classa) {
456
- this.res.style.marginLeft = "auto";
457
- this.res.style.marginRight = "auto";
458
- this.res.setAttribute("class", classa);
459
- return this;
460
- }
461
410
 
462
411
  setup() {
463
412
  let flex = document.createElement("div");
@@ -502,41 +451,6 @@ class CleanRow extends Animator {
502
451
 
503
452
  */
504
453
 
505
- arrayMargin(arr, value) {
506
-
507
- //alert(arr);
508
- //alert(value);
509
-
510
- // alert(window.matchMedia("(max-device-width: 415px)").matches)
511
- //alert("K")
512
- if (!value){ // LTRB
513
- this.res.style.marginLeft = `${arr[0]}px`;
514
- this.res.style.marginTop = `${arr[1]}px`;
515
- this.res.style.marginRight = `${arr[2]}px`;
516
- this.res.style.marginBottom = `${arr[3]}px`;
517
- }
518
-
519
-
520
- // alert("ROW.js 452"); //003337
521
- //alert(value);
522
- if (arr.includes("left")){
523
- this.res.style.marginLeft = `${value}px`;
524
- }
525
-
526
- if (arr.includes("right")){
527
- this.res.style.marginRight = `${value}px`;
528
- } // 161357 Surovikin line
529
-
530
- if (arr.includes("top")){
531
- // alert(value)
532
- this.res.style.marginTop = `${value}px`;
533
- }
534
-
535
- if (arr.includes("bottom")){
536
- this.res.style.marginBottom = `${value}px`;
537
- }
538
- return this;
539
- }
540
454
 
541
455
 
542
456
 
package/layout/code.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.0.212
2
+ * nodality v1.0.214
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */