nodality 1.3.17 → 1.3.19

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 (248) 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.LICENSE.txt +1 -1
  4. package/dist/audionew.cjs.js +1 -1
  5. package/dist/audionew.cjs.js.LICENSE.txt +1 -1
  6. package/dist/audionew.esm.js.LICENSE.txt +1 -1
  7. package/dist/base.cjs.js +1 -1
  8. package/dist/base.cjs.js.LICENSE.txt +1 -1
  9. package/dist/base.esm.js.LICENSE.txt +1 -1
  10. package/dist/beta-desktop-bar.cjs.js +1 -1
  11. package/dist/beta-desktop-bar.cjs.js.LICENSE.txt +1 -1
  12. package/dist/beta-desktop-bar.esm.js.LICENSE.txt +1 -1
  13. package/dist/beta-mobile-bar.cjs.js +1 -1
  14. package/dist/beta-mobile-bar.cjs.js.LICENSE.txt +1 -1
  15. package/dist/beta-mobile-bar.esm.js.LICENSE.txt +1 -1
  16. package/dist/bundle.umd.js +1 -1
  17. package/dist/bundle.umd.js.LICENSE.txt +1 -1
  18. package/dist/button.cjs.js +1 -1
  19. package/dist/button.cjs.js.LICENSE.txt +1 -1
  20. package/dist/button.esm.js.LICENSE.txt +1 -1
  21. package/dist/card-getter.cjs.js.LICENSE.txt +1 -1
  22. package/dist/card-getter.esm.js.LICENSE.txt +1 -1
  23. package/dist/center.cjs.js +1 -1
  24. package/dist/center.cjs.js.LICENSE.txt +1 -1
  25. package/dist/center.esm.js.LICENSE.txt +1 -1
  26. package/dist/checkbox.cjs.js +1 -1
  27. package/dist/checkbox.cjs.js.LICENSE.txt +1 -1
  28. package/dist/checkbox.esm.js.LICENSE.txt +1 -1
  29. package/dist/code.cjs.js +1 -1
  30. package/dist/code.cjs.js.LICENSE.txt +1 -1
  31. package/dist/code.esm.js.LICENSE.txt +1 -1
  32. package/dist/container.cjs.js +1 -1
  33. package/dist/container.cjs.js.LICENSE.txt +1 -1
  34. package/dist/container.esm.js.LICENSE.txt +1 -1
  35. package/dist/data-list.cjs.js +1 -1
  36. package/dist/data-list.cjs.js.LICENSE.txt +1 -1
  37. package/dist/data-list.esm.js.LICENSE.txt +1 -1
  38. package/dist/designer.cjs.js +1 -1
  39. package/dist/designer.cjs.js.LICENSE.txt +1 -1
  40. package/dist/designer.esm.js +1 -1
  41. package/dist/designer.esm.js.LICENSE.txt +1 -1
  42. package/dist/element-mapper.cjs.js +1 -1
  43. package/dist/element-mapper.cjs.js.LICENSE.txt +1 -1
  44. package/dist/element-mapper.esm.js +1 -1
  45. package/dist/element-mapper.esm.js.LICENSE.txt +1 -1
  46. package/dist/finalresult.esm.js +1 -1
  47. package/dist/finalresult.esm.js.LICENSE.txt +1 -1
  48. package/dist/flex-card.cjs.js +1 -1
  49. package/dist/flex-card.cjs.js.LICENSE.txt +1 -1
  50. package/dist/flex-card.esm.js.LICENSE.txt +1 -1
  51. package/dist/flex-grid.cjs.js +1 -1
  52. package/dist/flex-grid.cjs.js.LICENSE.txt +1 -1
  53. package/dist/flex-grid.esm.js.LICENSE.txt +1 -1
  54. package/dist/flex-row.cjs.js +1 -1
  55. package/dist/flex-row.cjs.js.LICENSE.txt +1 -1
  56. package/dist/flex-row.esm.js.LICENSE.txt +1 -1
  57. package/dist/floating-input.cjs.js +1 -1
  58. package/dist/floating-input.cjs.js.LICENSE.txt +1 -1
  59. package/dist/floating-input.esm.js.LICENSE.txt +1 -1
  60. package/dist/free.cjs.js +1 -1
  61. package/dist/free.cjs.js.LICENSE.txt +1 -1
  62. package/dist/free.esm.js.LICENSE.txt +1 -1
  63. package/dist/horizontal-scroller.cjs.js.LICENSE.txt +1 -1
  64. package/dist/horizontal-scroller.esm.js.LICENSE.txt +1 -1
  65. package/dist/image-picker.cjs.js +1 -1
  66. package/dist/image-picker.cjs.js.LICENSE.txt +1 -1
  67. package/dist/image-picker.esm.js.LICENSE.txt +1 -1
  68. package/dist/image.cjs.js +1 -1
  69. package/dist/image.cjs.js.LICENSE.txt +1 -1
  70. package/dist/image.esm.js +1 -1
  71. package/dist/image.esm.js.LICENSE.txt +1 -1
  72. package/dist/index.cjs.js +1 -1
  73. package/dist/index.cjs.js.LICENSE.txt +1 -1
  74. package/dist/index.d.ts +3 -2
  75. package/dist/index.esm.js +1 -1
  76. package/dist/index.esm.js.LICENSE.txt +1 -1
  77. package/dist/keyframe-animation.cjs.js.LICENSE.txt +1 -1
  78. package/dist/keyframe-animation.esm.js.LICENSE.txt +1 -1
  79. package/dist/link-getter.cjs.js +1 -1
  80. package/dist/link-getter.cjs.js.LICENSE.txt +1 -1
  81. package/dist/link-getter.esm.js.LICENSE.txt +1 -1
  82. package/dist/link.cjs.js +1 -1
  83. package/dist/link.cjs.js.LICENSE.txt +1 -1
  84. package/dist/link.esm.js.LICENSE.txt +1 -1
  85. package/dist/meta-adder.cjs.js +1 -1
  86. package/dist/meta-adder.cjs.js.LICENSE.txt +1 -1
  87. package/dist/meta-adder.esm.js.LICENSE.txt +1 -1
  88. package/dist/modal-2025.cjs.js +1 -1
  89. package/dist/modal-2025.cjs.js.LICENSE.txt +1 -1
  90. package/dist/modal-2025.esm.js.LICENSE.txt +1 -1
  91. package/dist/multiswitcher.cjs.js +1 -1
  92. package/dist/multiswitcher.cjs.js.LICENSE.txt +1 -1
  93. package/dist/multiswitcher.esm.js.LICENSE.txt +1 -1
  94. package/dist/new-nav-bar.cjs.js +1 -1
  95. package/dist/new-nav-bar.cjs.js.LICENSE.txt +1 -1
  96. package/dist/new-nav-bar.esm.js.LICENSE.txt +1 -1
  97. package/dist/picker.cjs.js +1 -1
  98. package/dist/picker.cjs.js.LICENSE.txt +1 -1
  99. package/dist/picker.esm.js.LICENSE.txt +1 -1
  100. package/dist/progress.cjs.js +1 -1
  101. package/dist/progress.cjs.js.LICENSE.txt +1 -1
  102. package/dist/progress.esm.js.LICENSE.txt +1 -1
  103. package/dist/radio.cjs.js +1 -1
  104. package/dist/radio.cjs.js.LICENSE.txt +1 -1
  105. package/dist/radio.esm.js.LICENSE.txt +1 -1
  106. package/dist/range.cjs.js +1 -1
  107. package/dist/range.cjs.js.LICENSE.txt +1 -1
  108. package/dist/range.esm.js.LICENSE.txt +1 -1
  109. package/dist/scroll-video.cjs.js.LICENSE.txt +1 -1
  110. package/dist/scroll-video.esm.js.LICENSE.txt +1 -1
  111. package/dist/side-bar.cjs.js +1 -1
  112. package/dist/side-bar.cjs.js.LICENSE.txt +1 -1
  113. package/dist/side-bar.esm.js.LICENSE.txt +1 -1
  114. package/dist/side-nav-bar.cjs.js +1 -1
  115. package/dist/side-nav-bar.cjs.js.LICENSE.txt +1 -1
  116. package/dist/side-nav-bar.esm.js.LICENSE.txt +1 -1
  117. package/dist/simple-bar.cjs.js +1 -1
  118. package/dist/simple-bar.cjs.js.LICENSE.txt +1 -1
  119. package/dist/simple-bar.esm.js.LICENSE.txt +1 -1
  120. package/dist/slider-2025.cjs.js +1 -1
  121. package/dist/slider-2025.cjs.js.LICENSE.txt +1 -1
  122. package/dist/slider-2025.esm.js.LICENSE.txt +1 -1
  123. package/dist/spacer.cjs.js +1 -1
  124. package/dist/spacer.cjs.js.LICENSE.txt +1 -1
  125. package/dist/spacer.esm.js.LICENSE.txt +1 -1
  126. package/dist/stack.cjs.js +1 -1
  127. package/dist/stack.cjs.js.LICENSE.txt +1 -1
  128. package/dist/stack.esm.js.LICENSE.txt +1 -1
  129. package/dist/stacker.cjs.js.LICENSE.txt +1 -1
  130. package/dist/stacker.esm.js.LICENSE.txt +1 -1
  131. package/dist/table.cjs.js +1 -1
  132. package/dist/table.cjs.js.LICENSE.txt +1 -1
  133. package/dist/table.esm.js.LICENSE.txt +1 -1
  134. package/dist/text-field.cjs.js +1 -1
  135. package/dist/text-field.cjs.js.LICENSE.txt +1 -1
  136. package/dist/text-field.esm.js.LICENSE.txt +1 -1
  137. package/dist/text.cjs.js +1 -1
  138. package/dist/text.cjs.js.LICENSE.txt +1 -1
  139. package/dist/text.esm.js.LICENSE.txt +1 -1
  140. package/dist/theme.cjs.js.LICENSE.txt +1 -1
  141. package/dist/theme.esm.js.LICENSE.txt +1 -1
  142. package/dist/transform-anim.cjs.js.LICENSE.txt +1 -1
  143. package/dist/transform-anim.esm.js.LICENSE.txt +1 -1
  144. package/dist/ulist.cjs.js +1 -1
  145. package/dist/ulist.cjs.js.LICENSE.txt +1 -1
  146. package/dist/ulist.esm.js.LICENSE.txt +1 -1
  147. package/dist/video.cjs.js +1 -1
  148. package/dist/video.cjs.js.LICENSE.txt +1 -1
  149. package/dist/video.esm.js.LICENSE.txt +1 -1
  150. package/dist/wrap.cjs.js +1 -1
  151. package/dist/wrap.cjs.js.LICENSE.txt +1 -1
  152. package/dist/wrap.esm.js.LICENSE.txt +1 -1
  153. package/dist/zoom-card.cjs.js +1 -1
  154. package/dist/zoom-card.cjs.js.LICENSE.txt +1 -1
  155. package/dist/zoom-card.esm.js.LICENSE.txt +1 -1
  156. package/layout/animator.js +1 -1
  157. package/layout/audio.js +1 -1
  158. package/layout/audionew.js +1 -1
  159. package/layout/base.js +1 -1
  160. package/layout/beta-desktop-bar.js +1 -1
  161. package/layout/beta-mobile-bar.js +1 -1
  162. package/layout/button.js +1 -1
  163. package/layout/center.js +1 -1
  164. package/layout/checkbox.js +1 -1
  165. package/layout/circle.js +1 -1
  166. package/layout/code.js +1 -1
  167. package/layout/container.js +1 -1
  168. package/layout/dropdown-2025.js +1 -1
  169. package/layout/flex-card.js +1 -1
  170. package/layout/flex-grid.js +1 -1
  171. package/layout/flex-row.js +1 -1
  172. package/layout/form-components/custom.js +1 -1
  173. package/layout/form-components/data-list.js +1 -1
  174. package/layout/form-components/floating-input.js +1 -1
  175. package/layout/form-components/form-all.js +1 -1
  176. package/layout/form-components/form.js +1 -1
  177. package/layout/form-components/image-picker.js +1 -1
  178. package/layout/form-components/picker.js +1 -1
  179. package/layout/form-components/radio.js +1 -1
  180. package/layout/form-components/radiogroup.js +1 -1
  181. package/layout/form-components/range.js +1 -1
  182. package/layout/free.js +1 -1
  183. package/layout/grid-overlay.js +1 -1
  184. package/layout/grid-switcher.js +1 -1
  185. package/layout/grid.js +1 -1
  186. package/layout/horizontal-scroller.js +1 -1
  187. package/layout/image.js +22 -3
  188. package/layout/index.js +1 -1
  189. package/layout/link.js +1 -1
  190. package/layout/list.js +1 -1
  191. package/layout/meta-adder.js +1 -1
  192. package/layout/modal-2025.js +1 -1
  193. package/layout/morph.js +1 -1
  194. package/layout/multiswitcher.js +1 -1
  195. package/layout/nav-bar.js +1 -1
  196. package/layout/nav-factor/custom-div.js +1 -1
  197. package/layout/new-nav-bar.js +1 -1
  198. package/layout/polygon.js +1 -1
  199. package/layout/prerender-site.js +1 -1
  200. package/layout/prerender.js +1 -1
  201. package/layout/progress.js +1 -1
  202. package/layout/row.js +1 -1
  203. package/layout/scroll-video.js +1 -1
  204. package/layout/shop.js +8 -1
  205. package/layout/side-bar.js +1 -1
  206. package/layout/side-nav-bar.js +1 -1
  207. package/layout/simple-bar.js +1 -1
  208. package/layout/slider-2025.js +1 -1
  209. package/layout/spacer.js +1 -1
  210. package/layout/stack.js +1 -1
  211. package/layout/svg.js +1 -1
  212. package/layout/switcher.js +1 -1
  213. package/layout/table.js +1 -1
  214. package/layout/text-field.js +1 -1
  215. package/layout/text.js +1 -1
  216. package/layout/ulist.js +1 -1
  217. package/layout/video.js +1 -1
  218. package/layout/wrap.js +1 -1
  219. package/layout/zoom-card.js +1 -1
  220. package/lib/agent-surface.js +1 -1
  221. package/lib/card-getter.js +1 -1
  222. package/lib/check-page.js +58 -1
  223. package/lib/codegen.js +1 -1
  224. package/lib/data.js +1 -1
  225. package/lib/designer.js +1 -1
  226. package/lib/element-mapper.js +1 -1
  227. package/lib/element-params.generated.js +1 -1
  228. package/lib/grid-geometry.js +1 -1
  229. package/lib/keyframe-animation.js +1 -1
  230. package/lib/known-inert.js +1 -1
  231. package/lib/link-getter.js +1 -1
  232. package/lib/morph-node.js +1 -1
  233. package/lib/normalize-spec.js +1 -1
  234. package/lib/parse-html.js +1 -1
  235. package/lib/raster-inspect.js +1 -1
  236. package/lib/raster-ops.js +43 -6
  237. package/lib/raster-presets.js +1 -1
  238. package/lib/resolve-refs.js +1 -1
  239. package/lib/scroll-video.js +1 -1
  240. package/lib/seo.js +1 -1
  241. package/lib/stacker.js +1 -1
  242. package/lib/suggest.js +1 -1
  243. package/lib/theme.js +1 -1
  244. package/lib/transform-anim.js +1 -1
  245. package/lib/transition.js +1 -1
  246. package/lib/validate-nodes.js +29 -2
  247. package/lib/webmcp-adapter.js +1 -1
  248. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.16
2
+ * nodality v1.3.18
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.16
2
+ * nodality v1.3.18
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/audio.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
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.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
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.3.17
2
+ * nodality v1.3.19
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.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
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.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/code.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/free.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/grid.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/image.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -527,8 +527,10 @@ let obj = options;
527
527
  }
528
528
 
529
529
  height(h){
530
+ this._declared = this._declared || {};
531
+ this._declared.height = true;
530
532
  this.res.style.height = h;
531
- this.res.style.width = "auto";
533
+ if (!this.declaresDimension("width")) this.res.style.width = "auto";
532
534
  return this;
533
535
  }
534
536
 
@@ -596,12 +598,29 @@ if (mqa.matches){
596
598
  }
597
599
 
598
600
 
601
+ // width() and height() each reset the OTHER dimension to auto, so an image
602
+ // given one keeps its ratio. That is only right when the caller never set
603
+ // the other one. A resprop breakpoint calls these methods, and a
604
+ // `resprop: [{ height: "52vh" }]` on an image whose width was declared
605
+ // (`width: "100%"`, a keySet width, or .width()) shrank it to its intrinsic
606
+ // ratio, silently. A dimension the caller declared is kept.
599
607
  width(w){
608
+ this._declared = this._declared || {};
609
+ this._declared.width = true;
600
610
  this.res.style.width = w;
601
- this.res.style.height = "auto";
611
+ if (!this.declaresDimension("height")) this.res.style.height = "auto";
602
612
  return this;
603
613
  }
604
614
 
615
+ /** Did the caller set this dimension: an option, a keySet entry or the method? */
616
+ declaresDimension(dim) {
617
+ if (this._declared && this._declared[dim]) return true;
618
+ const o = this.options || {};
619
+ if (o[dim] != null && o[dim] !== "") return true;
620
+ const ks = Array.isArray(o.keySet) ? o.keySet : (o.keySet ? [o.keySet] : []);
621
+ return ks.some((e) => e && e.key === dim);
622
+ }
623
+
605
624
 
606
625
 
607
626
 
package/layout/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/link.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/list.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/morph.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/nav-bar.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/polygon.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/row.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/shop.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -90,6 +90,13 @@ class Shop extends Animator {
90
90
  this.template = document.createElement("template");
91
91
  this.placeholder = document.createElement("div");
92
92
  this.placeholder.setAttribute("shopify-loading-placeholder", "");
93
+ // No box of its own: the static children lay out as the product's
94
+ // own, in its grid or flex with its gap, exactly as the live children
95
+ // that replace them will. As a plain block it stacked them in normal
96
+ // flow, and the static price and options — inline spans — ran into
97
+ // one line. Shopify hides it with `[hidden] { display: none
98
+ // !important }`, which this inline value cannot override.
99
+ this.placeholder.style.display = "contents";
93
100
  ctx.appendChild(this.template);
94
101
  ctx.appendChild(this.placeholder);
95
102
  return ctx;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/spacer.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/stack.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/svg.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/table.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/text.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/ulist.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/video.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/wrap.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.3.17
2
+ * nodality v1.3.19
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */