nodality 1.2.0 → 1.2.2

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 (196) hide show
  1. package/README.md +111 -130
  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.LICENSE.txt +1 -1
  5. package/dist/audionew.esm.js.LICENSE.txt +1 -1
  6. package/dist/base.cjs.js.LICENSE.txt +1 -1
  7. package/dist/base.esm.js.LICENSE.txt +1 -1
  8. package/dist/beta-desktop-bar.cjs.js.LICENSE.txt +1 -1
  9. package/dist/beta-desktop-bar.esm.js.LICENSE.txt +1 -1
  10. package/dist/beta-mobile-bar.cjs.js.LICENSE.txt +1 -1
  11. package/dist/beta-mobile-bar.esm.js.LICENSE.txt +1 -1
  12. package/dist/bundle.umd.js +1 -1
  13. package/dist/bundle.umd.js.LICENSE.txt +1 -1
  14. package/dist/button.cjs.js.LICENSE.txt +1 -1
  15. package/dist/button.esm.js.LICENSE.txt +1 -1
  16. package/dist/card-getter.cjs.js.LICENSE.txt +1 -1
  17. package/dist/card-getter.esm.js.LICENSE.txt +1 -1
  18. package/dist/center.cjs.js.LICENSE.txt +1 -1
  19. package/dist/center.esm.js.LICENSE.txt +1 -1
  20. package/dist/checkbox.cjs.js.LICENSE.txt +1 -1
  21. package/dist/checkbox.esm.js.LICENSE.txt +1 -1
  22. package/dist/code.cjs.js.LICENSE.txt +1 -1
  23. package/dist/code.esm.js.LICENSE.txt +1 -1
  24. package/dist/container.cjs.js.LICENSE.txt +1 -1
  25. package/dist/container.esm.js.LICENSE.txt +1 -1
  26. package/dist/data-list.cjs.js.LICENSE.txt +1 -1
  27. package/dist/data-list.esm.js.LICENSE.txt +1 -1
  28. package/dist/designer.cjs.js +1 -1
  29. package/dist/designer.cjs.js.LICENSE.txt +1 -1
  30. package/dist/designer.esm.js +1 -1
  31. package/dist/designer.esm.js.LICENSE.txt +1 -1
  32. package/dist/element-mapper.cjs.js.LICENSE.txt +1 -1
  33. package/dist/element-mapper.esm.js.LICENSE.txt +1 -1
  34. package/dist/finalresult.esm.js +1 -1
  35. package/dist/finalresult.esm.js.LICENSE.txt +1 -1
  36. package/dist/flex-card.cjs.js.LICENSE.txt +1 -1
  37. package/dist/flex-card.esm.js.LICENSE.txt +1 -1
  38. package/dist/flex-grid.cjs.js.LICENSE.txt +1 -1
  39. package/dist/flex-grid.esm.js.LICENSE.txt +1 -1
  40. package/dist/flex-row.cjs.js.LICENSE.txt +1 -1
  41. package/dist/flex-row.esm.js.LICENSE.txt +1 -1
  42. package/dist/floating-input.cjs.js.LICENSE.txt +1 -1
  43. package/dist/floating-input.esm.js.LICENSE.txt +1 -1
  44. package/dist/free.cjs.js.LICENSE.txt +1 -1
  45. package/dist/free.esm.js.LICENSE.txt +1 -1
  46. package/dist/horizontal-scroller.cjs.js.LICENSE.txt +1 -1
  47. package/dist/horizontal-scroller.esm.js.LICENSE.txt +1 -1
  48. package/dist/image-picker.cjs.js.LICENSE.txt +1 -1
  49. package/dist/image-picker.esm.js.LICENSE.txt +1 -1
  50. package/dist/image.cjs.js.LICENSE.txt +1 -1
  51. package/dist/image.esm.js.LICENSE.txt +1 -1
  52. package/dist/index.cjs.js +1 -1
  53. package/dist/index.cjs.js.LICENSE.txt +1 -1
  54. package/dist/index.d.ts +1 -1
  55. package/dist/index.esm.js +1 -1
  56. package/dist/index.esm.js.LICENSE.txt +1 -1
  57. package/dist/keyframe-animation.cjs.js.LICENSE.txt +1 -1
  58. package/dist/keyframe-animation.esm.js.LICENSE.txt +1 -1
  59. package/dist/link-getter.cjs.js.LICENSE.txt +1 -1
  60. package/dist/link-getter.esm.js.LICENSE.txt +1 -1
  61. package/dist/link.cjs.js.LICENSE.txt +1 -1
  62. package/dist/link.esm.js.LICENSE.txt +1 -1
  63. package/dist/meta-adder.cjs.js.LICENSE.txt +1 -1
  64. package/dist/meta-adder.esm.js.LICENSE.txt +1 -1
  65. package/dist/modal-2025.cjs.js.LICENSE.txt +1 -1
  66. package/dist/modal-2025.esm.js.LICENSE.txt +1 -1
  67. package/dist/multiswitcher.cjs.js.LICENSE.txt +1 -1
  68. package/dist/multiswitcher.esm.js.LICENSE.txt +1 -1
  69. package/dist/new-nav-bar.cjs.js.LICENSE.txt +1 -1
  70. package/dist/new-nav-bar.esm.js.LICENSE.txt +1 -1
  71. package/dist/picker.cjs.js.LICENSE.txt +1 -1
  72. package/dist/picker.esm.js.LICENSE.txt +1 -1
  73. package/dist/progress.cjs.js.LICENSE.txt +1 -1
  74. package/dist/progress.esm.js.LICENSE.txt +1 -1
  75. package/dist/radio.cjs.js.LICENSE.txt +1 -1
  76. package/dist/radio.esm.js.LICENSE.txt +1 -1
  77. package/dist/range.cjs.js.LICENSE.txt +1 -1
  78. package/dist/range.esm.js.LICENSE.txt +1 -1
  79. package/dist/scroll-video.cjs.js.LICENSE.txt +1 -1
  80. package/dist/scroll-video.esm.js.LICENSE.txt +1 -1
  81. package/dist/side-bar.cjs.js.LICENSE.txt +1 -1
  82. package/dist/side-bar.esm.js.LICENSE.txt +1 -1
  83. package/dist/side-nav-bar.cjs.js.LICENSE.txt +1 -1
  84. package/dist/side-nav-bar.esm.js.LICENSE.txt +1 -1
  85. package/dist/simple-bar.cjs.js.LICENSE.txt +1 -1
  86. package/dist/simple-bar.esm.js.LICENSE.txt +1 -1
  87. package/dist/slider-2025.cjs.js.LICENSE.txt +1 -1
  88. package/dist/slider-2025.esm.js.LICENSE.txt +1 -1
  89. package/dist/spacer.cjs.js.LICENSE.txt +1 -1
  90. package/dist/spacer.esm.js.LICENSE.txt +1 -1
  91. package/dist/stack.cjs.js.LICENSE.txt +1 -1
  92. package/dist/stack.esm.js.LICENSE.txt +1 -1
  93. package/dist/stacker.cjs.js.LICENSE.txt +1 -1
  94. package/dist/stacker.esm.js.LICENSE.txt +1 -1
  95. package/dist/table.cjs.js.LICENSE.txt +1 -1
  96. package/dist/table.esm.js.LICENSE.txt +1 -1
  97. package/dist/text-field.cjs.js.LICENSE.txt +1 -1
  98. package/dist/text-field.esm.js.LICENSE.txt +1 -1
  99. package/dist/text.cjs.js.LICENSE.txt +1 -1
  100. package/dist/text.esm.js.LICENSE.txt +1 -1
  101. package/dist/theme.cjs.js.LICENSE.txt +1 -1
  102. package/dist/theme.esm.js.LICENSE.txt +1 -1
  103. package/dist/transform-anim.cjs.js.LICENSE.txt +1 -1
  104. package/dist/transform-anim.esm.js.LICENSE.txt +1 -1
  105. package/dist/ulist.cjs.js.LICENSE.txt +1 -1
  106. package/dist/ulist.esm.js.LICENSE.txt +1 -1
  107. package/dist/video.cjs.js.LICENSE.txt +1 -1
  108. package/dist/video.esm.js.LICENSE.txt +1 -1
  109. package/dist/wrap.cjs.js.LICENSE.txt +1 -1
  110. package/dist/wrap.esm.js.LICENSE.txt +1 -1
  111. package/dist/zoom-card.cjs.js.LICENSE.txt +1 -1
  112. package/dist/zoom-card.esm.js.LICENSE.txt +1 -1
  113. package/layout/animator.js +1 -1
  114. package/layout/audio.js +1 -1
  115. package/layout/audionew.js +1 -1
  116. package/layout/base.js +1 -1
  117. package/layout/beta-desktop-bar.js +1 -1
  118. package/layout/beta-mobile-bar.js +1 -1
  119. package/layout/button.js +1 -1
  120. package/layout/center.js +1 -1
  121. package/layout/checkbox.js +1 -1
  122. package/layout/circle.js +1 -1
  123. package/layout/code.js +1 -1
  124. package/layout/container.js +1 -1
  125. package/layout/dropdown-2025.js +1 -1
  126. package/layout/flex-card.js +1 -1
  127. package/layout/flex-grid.js +1 -1
  128. package/layout/flex-row.js +1 -1
  129. package/layout/form-components/custom.js +1 -1
  130. package/layout/form-components/data-list.js +1 -1
  131. package/layout/form-components/floating-input.js +1 -1
  132. package/layout/form-components/form-all.js +1 -1
  133. package/layout/form-components/form.js +1 -1
  134. package/layout/form-components/image-picker.js +1 -1
  135. package/layout/form-components/picker.js +1 -1
  136. package/layout/form-components/radio.js +1 -1
  137. package/layout/form-components/radiogroup.js +1 -1
  138. package/layout/form-components/range.js +1 -1
  139. package/layout/free.js +1 -1
  140. package/layout/grid-switcher.js +1 -1
  141. package/layout/grid.js +1 -1
  142. package/layout/horizontal-scroller.js +1 -1
  143. package/layout/image.js +1 -1
  144. package/layout/index.js +1 -1
  145. package/layout/link.js +1 -1
  146. package/layout/list.js +1 -1
  147. package/layout/meta-adder.js +1 -1
  148. package/layout/modal-2025.js +1 -1
  149. package/layout/morph.js +1 -1
  150. package/layout/multiswitcher.js +1 -1
  151. package/layout/nav-bar.js +1 -1
  152. package/layout/nav-factor/custom-div.js +1 -1
  153. package/layout/new-nav-bar.js +1 -1
  154. package/layout/polygon.js +1 -1
  155. package/layout/prerender-site.js +1 -1
  156. package/layout/prerender.js +1 -1
  157. package/layout/progress.js +1 -1
  158. package/layout/row.js +1 -1
  159. package/layout/scroll-video.js +1 -1
  160. package/layout/side-bar.js +1 -1
  161. package/layout/side-nav-bar.js +1 -1
  162. package/layout/simple-bar.js +1 -1
  163. package/layout/slider-2025.js +1 -1
  164. package/layout/spacer.js +1 -1
  165. package/layout/stack.js +1 -1
  166. package/layout/svg.js +1 -1
  167. package/layout/switcher.js +1 -1
  168. package/layout/table.js +1 -1
  169. package/layout/text-field.js +1 -1
  170. package/layout/text.js +1 -1
  171. package/layout/ulist.js +1 -1
  172. package/layout/video.js +1 -1
  173. package/layout/wrap.js +1 -1
  174. package/layout/zoom-card.js +1 -1
  175. package/lib/agent-surface.js +1 -1
  176. package/lib/card-getter.js +1 -1
  177. package/lib/codegen.js +1 -1
  178. package/lib/data.js +1 -1
  179. package/lib/designer.js +1 -1
  180. package/lib/element-mapper.js +1 -1
  181. package/lib/keyframe-animation.js +1 -1
  182. package/lib/link-getter.js +1 -1
  183. package/lib/morph-node.js +9 -4
  184. package/lib/raster-inspect.js +1 -1
  185. package/lib/raster-ops.js +1 -1
  186. package/lib/raster-presets.js +1 -1
  187. package/lib/scroll-video.js +1 -1
  188. package/lib/seo.js +1 -1
  189. package/lib/stacker.js +1 -1
  190. package/lib/suggest.js +1 -1
  191. package/lib/theme.js +1 -1
  192. package/lib/transform-anim.js +1 -1
  193. package/lib/transition.js +1 -1
  194. package/lib/validate-nodes.js +1 -1
  195. package/lib/webmcp-adapter.js +40 -8
  196. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/layout/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
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.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/lib/codegen.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/lib/data.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/lib/designer.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/lib/morph-node.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -471,9 +471,15 @@ function setUpMorph(mount, m, resolve) {
471
471
  // it takes the source's own position, so views replace each other
472
472
  // in one region rather than marching down the page.
473
473
  const fromRect = rectIn(rhost, srcEl);
474
+ // POSITION only. This used to also force `boxSizing: border-box`,
475
+ // which silently relaid the author's element: a card written as
476
+ // `width: min(560px, 92vw)` with padding renders 612px wide in
477
+ // normal flow (content-box) and 560px once border-box is imposed.
478
+ // The source keeps its own box model, so the two ends of the
479
+ // transition were different sizes and the handover to real DOM
480
+ // snapped by the padding — the jump visible at the end of a hop.
474
481
  Object.assign(dest.style, { position: "absolute", left: "0",
475
- top: Math.round(inPlace ? fromRect.y : fromRect.h + 20) + "px",
476
- boxSizing: "border-box" });
482
+ top: Math.round(inPlace ? fromRect.y : fromRect.h + 20) + "px" });
477
483
 
478
484
  await buildTransition(srcEl, dest, edge);
479
485
  if (!tl) return;
@@ -590,7 +596,6 @@ function setUpMorph(mount, m, resolve) {
590
596
  Object.assign(targetEl.style, {
591
597
  position: "absolute", left: "0",
592
598
  top: Math.round(inPlace ? cur.y : 0) + "px",
593
- boxSizing: "border-box",
594
599
  });
595
600
  }
596
601
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/lib/raster-ops.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/lib/seo.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/lib/stacker.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/lib/suggest.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/lib/theme.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
package/lib/transition.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.2.0
2
+ * nodality v1.2.2
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -71,14 +71,26 @@ const esc = (s) => {
71
71
  return str.replace(/([^a-zA-Z0-9_-])/g, "\\$1");
72
72
  };
73
73
 
74
- /** Text an agent can read, from the subtree that is actually on screen. */
74
+ /**
75
+ * Text an agent can read, from the subtree being presented.
76
+ *
77
+ * `visibility: hidden` is NOT treated as absent, and that is the whole
78
+ * subtlety. Under the live backend the presented state is hosted inside
79
+ * the canvas: it has real layout and real text, and the DOM copy is
80
+ * hidden precisely BECAUSE the canvas is painting it. Filtering on
81
+ * visibility — the correct test for "can this be clicked" — made
82
+ * `read_view` return nothing at all on exactly the pages that use the
83
+ * feature, while navigation worked perfectly. So the caller passes the
84
+ * subtree it knows is current, and this reads it; `display: none` still
85
+ * counts as absent, because that element is not laid out at all.
86
+ */
75
87
  function readSubtree(root) {
76
88
  if (!root) return { text: "", actions: [] };
77
89
  const visible = (el) => {
78
- const r = el.getBoundingClientRect();
79
- if (!(r.width > 0 && r.height > 0)) return false;
80
90
  const cs = getComputedStyle(el);
81
- return cs.visibility !== "hidden" && cs.display !== "none" && cs.opacity !== "0";
91
+ if (cs.display === "none" || cs.opacity === "0") return false;
92
+ const r = el.getBoundingClientRect();
93
+ return r.width > 0 && r.height > 0;
82
94
  };
83
95
  const lines = [];
84
96
  for (const el of root.querySelectorAll("h1,h2,h3,h4,h5,h6,p,li")) {
@@ -119,6 +131,21 @@ export function installAgentSurface({ mount, elements, nodes, morphs }) {
119
131
  const handles = Array.isArray(morphs) ? morphs.filter(Boolean) : [];
120
132
  const graphFor = (id) => handles.find((h) => h.states && h.states.has(id)) || null;
121
133
 
134
+ /**
135
+ * The subtree to read: the state the graph is actually in.
136
+ *
137
+ * Known, not inferred. Asking "what is painted" cannot answer this
138
+ * on a live morph, where the painting is done by a canvas and the
139
+ * DOM behind it is deliberately hidden.
140
+ */
141
+ const currentSubtree = () => {
142
+ for (const h of handles) {
143
+ const el = h.states && h.current != null ? h.states.get(h.current) : null;
144
+ if (el) return el;
145
+ }
146
+ return mount;
147
+ };
148
+
122
149
  /**
123
150
  * The rendered form a descriptor id names, wherever it currently is.
124
151
  *
@@ -203,6 +230,11 @@ export function installAgentSurface({ mount, elements, nodes, morphs }) {
203
230
  return run;
204
231
  };
205
232
 
233
+ const currentView = () => {
234
+ for (const h of handles) if (h.current != null) return h.current;
235
+ return null;
236
+ };
237
+
206
238
  const execute = {
207
239
  navigate: ({ destination } = {}) => serial(async () => {
208
240
  const h = graphFor(destination);
@@ -221,17 +253,17 @@ export function installAgentSurface({ mount, elements, nodes, morphs }) {
221
253
  return refuse("UNREACHABLE_FROM_HERE", destination,
222
254
  edge.filter((id) => id !== from));
223
255
  }
224
- return { ok: true, view: h.current, ...readSubtree(h.stage || mount) };
256
+ return { ok: true, view: h.current, ...readSubtree(h.states.get(h.current) || mount) };
225
257
  }),
226
258
 
227
259
  back: () => serial(async () => {
228
260
  const h = handles.find((x) => x.history && x.history.length);
229
261
  if (!h) return refuse("NO_HISTORY", null, []);
230
262
  await h.goBack();
231
- return { ok: true, view: h.current, ...readSubtree(h.stage || mount) };
263
+ return { ok: true, view: h.current, ...readSubtree(h.states.get(h.current) || mount) };
232
264
  }),
233
265
 
234
- read: async () => ({ ok: true, ...readSubtree(mount) }),
266
+ read: async () => ({ ok: true, view: currentView(), ...readSubtree(currentSubtree()) }),
235
267
 
236
268
  submit: async (args = {}, tool) => {
237
269
  const form = findForm(tool.formId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodality",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "A lightweight library for declarative UI elements.",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",