nodality 1.1.14 → 1.1.15

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 (194) hide show
  1. package/bin/mcp-server.mjs +13 -3
  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/card-getter.js +1 -1
  176. package/lib/codegen.js +1 -1
  177. package/lib/data.js +1 -1
  178. package/lib/designer.js +1 -1
  179. package/lib/element-mapper.js +1 -1
  180. package/lib/keyframe-animation.js +1 -1
  181. package/lib/link-getter.js +1 -1
  182. package/lib/morph-node.js +33 -7
  183. package/lib/raster-inspect.js +1 -1
  184. package/lib/raster-ops.js +1 -1
  185. package/lib/raster-presets.js +1 -1
  186. package/lib/scroll-video.js +1 -1
  187. package/lib/seo.js +1 -1
  188. package/lib/stacker.js +1 -1
  189. package/lib/suggest.js +1 -1
  190. package/lib/theme.js +1 -1
  191. package/lib/transform-anim.js +1 -1
  192. package/lib/transition.js +1 -1
  193. package/lib/validate-nodes.js +118 -31
  194. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -123,6 +123,25 @@ const chainFor = (effect) => {
123
123
 
124
124
  const norm = (t) => String(t || "").replace(/\s+/g, " ").trim().toLowerCase();
125
125
 
126
+ /**
127
+ * An id as written, reduced to the id itself.
128
+ *
129
+ * A node may name a state bare (`"home"`) or in selector form
130
+ * (`"#home"`). Both are accepted and both mean the same thing, because
131
+ * this is an element IDENTIFIER rather than a selector: the lookup is
132
+ * `getElementById`, plus a positional fallback against `E`, so `"#home"`
133
+ * would otherwise match nothing and the morph would fail with a console
134
+ * warning and no visible effect.
135
+ *
136
+ * Normalised HERE, once, rather than at the point of lookup: the states
137
+ * are keyed by this string, so a chain whose first edge writes `"#home"`
138
+ * and whose second writes `"home"` must arrive at ONE key. Stripping at
139
+ * lookup time would resolve both to the same element while keeping two
140
+ * entries in the map, and the second edge would then be unreachable.
141
+ */
142
+ const bareId = (id) =>
143
+ typeof id === "string" && id.startsWith("#") ? id.slice(1) : id;
144
+
126
145
  /**
127
146
  * A morph node, in one shape: a list of EDGES.
128
147
  *
@@ -170,19 +189,22 @@ const normalizeEdges = (m) => {
170
189
  // Labels are what the user is actually reading and clicking.
171
190
  const byLabel = e.to && !Array.isArray(e.to) && typeof e.to === "object"
172
191
  ? e.to : null;
192
+ // Deduplicated on the label side only. The array form is POSITIONAL
193
+ // — `toIds[triggers.indexOf(a)]` below — so collapsing a repeated
194
+ // id there would shift every later link onto the wrong destination.
173
195
  const toIds = byLabel
174
- ? [...new Set(Object.values(e.to))]
175
- : (Array.isArray(e.to) ? e.to : [e.to]);
196
+ ? [...new Set(Object.values(e.to))].map(bareId)
197
+ : (Array.isArray(e.to) ? e.to : [e.to]).map(bareId);
176
198
 
177
199
  const labelToId = new Map();
178
200
  if (byLabel) {
179
201
  for (const [label, id] of Object.entries(e.to)) {
180
- labelToId.set(norm(label), id);
202
+ labelToId.set(norm(label), bareId(id));
181
203
  }
182
204
  }
183
205
 
184
206
  return {
185
- from: e.from, byLabel, toIds, labelToId,
207
+ from: bareId(e.from), byLabel, toIds, labelToId,
186
208
  effect: opt("effect"),
187
209
  duration: opt("duration", 900),
188
210
  // Written as `!== false` rather than a truthy test: the
@@ -212,9 +234,13 @@ function applyMorphNodes(mount, elements, nodes) {
212
234
  // page. Position is what Des actually guarantees.
213
235
  const rendered = [...mount.children];
214
236
  const resolve = (id) => {
215
- const byId = document.getElementById(id);
237
+ // `bareId` again, and not only for symmetry: the descriptor in E
238
+ // may itself be written with a leading "#", so both sides are
239
+ // reduced before they are compared.
240
+ const want = bareId(id);
241
+ const byId = document.getElementById(want);
216
242
  if (byId && mount.contains(byId)) return byId;
217
- const i = (elements || []).findIndex((e) => e && e.id === id);
243
+ const i = (elements || []).findIndex((e) => e && bareId(e.id) === want);
218
244
  return i >= 0 ? rendered[i] : null;
219
245
  };
220
246
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.14
2
+ * nodality v1.1.15
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.1.14
2
+ * nodality v1.1.15
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */