nodality 1.1.9 → 1.1.11

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 (189) hide show
  1. package/README.md +71 -1
  2. package/bin/mcp-server.mjs +26 -7
  3. package/dist/animator.cjs.js.LICENSE.txt +1 -1
  4. package/dist/animator.esm.js.LICENSE.txt +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.LICENSE.txt +1 -1
  8. package/dist/base.esm.js.LICENSE.txt +1 -1
  9. package/dist/beta-desktop-bar.cjs.js.LICENSE.txt +1 -1
  10. package/dist/beta-desktop-bar.esm.js.LICENSE.txt +1 -1
  11. package/dist/beta-mobile-bar.cjs.js.LICENSE.txt +1 -1
  12. package/dist/beta-mobile-bar.esm.js.LICENSE.txt +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.LICENSE.txt +1 -1
  29. package/dist/designer.esm.js.LICENSE.txt +1 -1
  30. package/dist/element-mapper.cjs.js.LICENSE.txt +1 -1
  31. package/dist/element-mapper.esm.js.LICENSE.txt +1 -1
  32. package/dist/finalresult.esm.js.LICENSE.txt +1 -1
  33. package/dist/flex-card.cjs.js.LICENSE.txt +1 -1
  34. package/dist/flex-card.esm.js.LICENSE.txt +1 -1
  35. package/dist/flex-grid.cjs.js.LICENSE.txt +1 -1
  36. package/dist/flex-grid.esm.js.LICENSE.txt +1 -1
  37. package/dist/flex-row.cjs.js.LICENSE.txt +1 -1
  38. package/dist/flex-row.esm.js.LICENSE.txt +1 -1
  39. package/dist/floating-input.cjs.js.LICENSE.txt +1 -1
  40. package/dist/floating-input.esm.js.LICENSE.txt +1 -1
  41. package/dist/free.cjs.js.LICENSE.txt +1 -1
  42. package/dist/free.esm.js.LICENSE.txt +1 -1
  43. package/dist/horizontal-scroller.cjs.js.LICENSE.txt +1 -1
  44. package/dist/horizontal-scroller.esm.js.LICENSE.txt +1 -1
  45. package/dist/image-picker.cjs.js.LICENSE.txt +1 -1
  46. package/dist/image-picker.esm.js.LICENSE.txt +1 -1
  47. package/dist/image.cjs.js.LICENSE.txt +1 -1
  48. package/dist/image.esm.js.LICENSE.txt +1 -1
  49. package/dist/index.cjs.js.LICENSE.txt +1 -1
  50. package/dist/index.d.ts +1 -1
  51. package/dist/index.esm.js.LICENSE.txt +1 -1
  52. package/dist/keyframe-animation.cjs.js.LICENSE.txt +1 -1
  53. package/dist/keyframe-animation.esm.js.LICENSE.txt +1 -1
  54. package/dist/link-getter.cjs.js.LICENSE.txt +1 -1
  55. package/dist/link-getter.esm.js.LICENSE.txt +1 -1
  56. package/dist/link.cjs.js.LICENSE.txt +1 -1
  57. package/dist/link.esm.js.LICENSE.txt +1 -1
  58. package/dist/meta-adder.cjs.js.LICENSE.txt +1 -1
  59. package/dist/meta-adder.esm.js.LICENSE.txt +1 -1
  60. package/dist/modal-2025.cjs.js.LICENSE.txt +1 -1
  61. package/dist/modal-2025.esm.js.LICENSE.txt +1 -1
  62. package/dist/multiswitcher.cjs.js.LICENSE.txt +1 -1
  63. package/dist/multiswitcher.esm.js.LICENSE.txt +1 -1
  64. package/dist/new-nav-bar.cjs.js.LICENSE.txt +1 -1
  65. package/dist/new-nav-bar.esm.js.LICENSE.txt +1 -1
  66. package/dist/picker.cjs.js.LICENSE.txt +1 -1
  67. package/dist/picker.esm.js.LICENSE.txt +1 -1
  68. package/dist/progress.cjs.js.LICENSE.txt +1 -1
  69. package/dist/progress.esm.js.LICENSE.txt +1 -1
  70. package/dist/radio.cjs.js.LICENSE.txt +1 -1
  71. package/dist/radio.esm.js.LICENSE.txt +1 -1
  72. package/dist/range.cjs.js.LICENSE.txt +1 -1
  73. package/dist/range.esm.js.LICENSE.txt +1 -1
  74. package/dist/scroll-video.cjs.js.LICENSE.txt +1 -1
  75. package/dist/scroll-video.esm.js.LICENSE.txt +1 -1
  76. package/dist/side-bar.cjs.js.LICENSE.txt +1 -1
  77. package/dist/side-bar.esm.js.LICENSE.txt +1 -1
  78. package/dist/side-nav-bar.cjs.js.LICENSE.txt +1 -1
  79. package/dist/side-nav-bar.esm.js.LICENSE.txt +1 -1
  80. package/dist/simple-bar.cjs.js.LICENSE.txt +1 -1
  81. package/dist/simple-bar.esm.js.LICENSE.txt +1 -1
  82. package/dist/slider-2025.cjs.js.LICENSE.txt +1 -1
  83. package/dist/slider-2025.esm.js.LICENSE.txt +1 -1
  84. package/dist/spacer.cjs.js.LICENSE.txt +1 -1
  85. package/dist/spacer.esm.js.LICENSE.txt +1 -1
  86. package/dist/stack.cjs.js.LICENSE.txt +1 -1
  87. package/dist/stack.esm.js.LICENSE.txt +1 -1
  88. package/dist/stacker.cjs.js.LICENSE.txt +1 -1
  89. package/dist/stacker.esm.js.LICENSE.txt +1 -1
  90. package/dist/table.cjs.js.LICENSE.txt +1 -1
  91. package/dist/table.esm.js.LICENSE.txt +1 -1
  92. package/dist/text-field.cjs.js.LICENSE.txt +1 -1
  93. package/dist/text-field.esm.js.LICENSE.txt +1 -1
  94. package/dist/text.cjs.js.LICENSE.txt +1 -1
  95. package/dist/text.esm.js.LICENSE.txt +1 -1
  96. package/dist/theme.cjs.js.LICENSE.txt +1 -1
  97. package/dist/theme.esm.js.LICENSE.txt +1 -1
  98. package/dist/transform-anim.cjs.js.LICENSE.txt +1 -1
  99. package/dist/transform-anim.esm.js.LICENSE.txt +1 -1
  100. package/dist/ulist.cjs.js.LICENSE.txt +1 -1
  101. package/dist/ulist.esm.js.LICENSE.txt +1 -1
  102. package/dist/video.cjs.js.LICENSE.txt +1 -1
  103. package/dist/video.esm.js.LICENSE.txt +1 -1
  104. package/dist/wrap.cjs.js.LICENSE.txt +1 -1
  105. package/dist/wrap.esm.js.LICENSE.txt +1 -1
  106. package/dist/zoom-card.cjs.js.LICENSE.txt +1 -1
  107. package/dist/zoom-card.esm.js.LICENSE.txt +1 -1
  108. package/layout/animator.js +1 -1
  109. package/layout/audio.js +1 -1
  110. package/layout/audionew.js +1 -1
  111. package/layout/base.js +1 -1
  112. package/layout/beta-desktop-bar.js +1 -1
  113. package/layout/beta-mobile-bar.js +1 -1
  114. package/layout/button.js +1 -1
  115. package/layout/center.js +1 -1
  116. package/layout/checkbox.js +1 -1
  117. package/layout/circle.js +1 -1
  118. package/layout/code.js +1 -1
  119. package/layout/container.js +1 -1
  120. package/layout/dropdown-2025.js +1 -1
  121. package/layout/flex-card.js +1 -1
  122. package/layout/flex-grid.js +1 -1
  123. package/layout/flex-row.js +1 -1
  124. package/layout/form-components/custom.js +1 -1
  125. package/layout/form-components/data-list.js +1 -1
  126. package/layout/form-components/floating-input.js +1 -1
  127. package/layout/form-components/form-all.js +1 -1
  128. package/layout/form-components/form.js +1 -1
  129. package/layout/form-components/image-picker.js +1 -1
  130. package/layout/form-components/picker.js +1 -1
  131. package/layout/form-components/radio.js +1 -1
  132. package/layout/form-components/radiogroup.js +1 -1
  133. package/layout/form-components/range.js +1 -1
  134. package/layout/free.js +1 -1
  135. package/layout/grid-switcher.js +1 -1
  136. package/layout/grid.js +1 -1
  137. package/layout/horizontal-scroller.js +1 -1
  138. package/layout/image.js +1 -1
  139. package/layout/index.js +1 -1
  140. package/layout/link.js +1 -1
  141. package/layout/list.js +1 -1
  142. package/layout/meta-adder.js +1 -1
  143. package/layout/modal-2025.js +1 -1
  144. package/layout/morph.js +1 -1
  145. package/layout/multiswitcher.js +1 -1
  146. package/layout/nav-bar.js +1 -1
  147. package/layout/nav-factor/custom-div.js +1 -1
  148. package/layout/new-nav-bar.js +1 -1
  149. package/layout/polygon.js +1 -1
  150. package/layout/prerender-site.js +1 -1
  151. package/layout/prerender.js +1 -1
  152. package/layout/progress.js +1 -1
  153. package/layout/row.js +1 -1
  154. package/layout/scroll-video.js +1 -1
  155. package/layout/side-bar.js +1 -1
  156. package/layout/side-nav-bar.js +1 -1
  157. package/layout/simple-bar.js +1 -1
  158. package/layout/slider-2025.js +1 -1
  159. package/layout/spacer.js +1 -1
  160. package/layout/stack.js +1 -1
  161. package/layout/svg.js +1 -1
  162. package/layout/switcher.js +1 -1
  163. package/layout/table.js +1 -1
  164. package/layout/text-field.js +1 -1
  165. package/layout/text.js +1 -1
  166. package/layout/ulist.js +1 -1
  167. package/layout/video.js +1 -1
  168. package/layout/wrap.js +1 -1
  169. package/layout/zoom-card.js +1 -1
  170. package/lib/card-getter.js +1 -1
  171. package/lib/codegen.js +1 -1
  172. package/lib/data.js +1 -1
  173. package/lib/designer.js +1 -1
  174. package/lib/element-mapper.js +1 -1
  175. package/lib/keyframe-animation.js +1 -1
  176. package/lib/link-getter.js +1 -1
  177. package/lib/morph-node.js +1 -1
  178. package/lib/raster-inspect.js +1 -1
  179. package/lib/raster-ops.js +1 -1
  180. package/lib/raster-presets.js +1 -1
  181. package/lib/scroll-video.js +1 -1
  182. package/lib/seo.js +1 -1
  183. package/lib/stacker.js +1 -1
  184. package/lib/suggest.js +1 -1
  185. package/lib/theme.js +1 -1
  186. package/lib/transform-anim.js +1 -1
  187. package/lib/transition.js +1 -1
  188. package/lib/validate-nodes.js +21 -1
  189. package/package.json +1 -1
package/README.md CHANGED
@@ -76,7 +76,7 @@ Here is the complete working code which uses CDN for convenient testing.
76
76
  <div id="#mount"></div>
77
77
 
78
78
  <script type="module">
79
- import {Des} from "https://www.unpkg.com/nodality@1.0.13/dist/index.esm.js";
79
+ import {Des} from "https://www.unpkg.com/nodality@1.1.10/dist/index.esm.js";
80
80
 
81
81
  let elements = [
82
82
  {
@@ -111,3 +111,73 @@ After running this code:
111
111
  - You will see an `<h1>` element on the screen.
112
112
  - When the user resizes the window and hits the **400–600px** breakpoint, a **stroke effect** will appear on the text, thanks to the `blast` modifier.
113
113
  - The **resulting code** of the UI will also be displayed below the rendered element.
114
+
115
+ ---
116
+
117
+ ## Effects on live elements
118
+
119
+ Nodes are not limited to design changes. A raster node compiles to a GPU
120
+ shader pass over the element it targets, and several nodes aimed at one
121
+ element compose into a **single** pass, in array order:
122
+
123
+ ```js
124
+ const nodes = [
125
+ { op: "dither", target: ["hero"], levels: 6, size: 2 },
126
+ { op: "flow", target: ["hero"], by: "mouse" },
127
+ ];
128
+ ```
129
+
130
+ The source is your live DOM, not an image you exported. Two capture
131
+ backends sit underneath: a snapshot path that works in any WebGL browser,
132
+ and an HTML-in-Canvas path that samples the running element directly
133
+ where the browser supports it. The choice is automatic — if the newer API
134
+ is absent the pipeline falls back rather than failing.
135
+
136
+ Effects do not cost you interaction. Pointer input is resolved through
137
+ the inverse of the compiled transformation and re-dispatched, so links
138
+ and buttons under an effect still work — including where the content is
139
+ hosted inside the canvas and the browser's own hit testing cannot reach
140
+ it.
141
+
142
+ ## Transitions as data
143
+
144
+ A `morph` node says which element becomes which, and on what interaction.
145
+ There is no timeline to drive and no capture to manage:
146
+
147
+ ```js
148
+ const nodes = [
149
+ { op: "morph", from: "topnav",
150
+ to: { About: "about", Services: "offer", Contact: "contact" },
151
+ effect: "t-vhs", duration: 900, back: true },
152
+ ];
153
+ ```
154
+
155
+ `from` and `to` name ids in your elements array; `back: true` wires the
156
+ destination's own button to return. Mapping is by link label rather than
157
+ position, because a responsive nav renders a different set of links per
158
+ breakpoint.
159
+
160
+ ## For AI agents
161
+
162
+ `nodality mcp` runs a Model Context Protocol server over stdio, so an
163
+ agent can write interfaces against the real vocabulary instead of
164
+ guessing at it:
165
+
166
+ ```json
167
+ { "mcpServers": { "nodality": { "command": "npx", "args": ["nodality", "mcp"] } } }
168
+ ```
169
+
170
+ Three tools: `list_ops` returns the op registry as data — every op with
171
+ its stage, parameters, units, defaults; `validate_nodes` checks a node
172
+ array and returns a machine-readable report with did-you-mean
173
+ suggestions, so `{ op: "dithr" }` comes back as `UNKNOWN_OP` suggesting
174
+ `dither` rather than rendering nothing at all; `preview` renders an
175
+ `(E, N)` pair to a self-contained HTML file. `preview` needs `jsdom` in
176
+ your project (`npm i -D jsdom`) — it is required only for prerendering,
177
+ so the library does not bundle it.
178
+
179
+ The same validator is available directly:
180
+
181
+ ```js
182
+ import { validateNodes, describeOps } from "nodality/validate";
183
+ ```
@@ -245,13 +245,32 @@ async function handle(msg) {
245
245
  try {
246
246
  return reply(id, await impl(args));
247
247
  } catch (e) {
248
- // A throw here is a bug in this server or an unreachable filesystem,
249
- // not bad user input bad user input became a report above. Report
250
- // it as a tool error so the agent sees it rather than hanging.
251
- return reply(id, {
252
- content: [{ type: "text", text: String((e && e.stack) || e) }],
253
- isError: true,
254
- });
248
+ // A throw here is an environment problem, not bad input bad input
249
+ // became a report above. It still has to arrive as JSON in the same
250
+ // report shape as everything else: an agent parses every result the
251
+ // same way, and handing it a stack trace where it expects an object
252
+ // breaks it as surely as a crash would. Found end-to-end, where a
253
+ // clean install had no jsdom and this path returned prose.
254
+ const message = String((e && e.message) || e);
255
+ const missing = /Cannot find package '([^']+)'|(jsdom) is required/.exec(message);
256
+ const errors = missing
257
+ ? [{
258
+ code: "MISSING_PEER_DEPENDENCY",
259
+ path: name,
260
+ got: missing[1] || missing[2],
261
+ suggestions: [`npm install --save-dev ${missing[1] || missing[2]}`],
262
+ valid: [],
263
+ // The tool that needs it, said plainly, so the agent can
264
+ // decide whether to install or to stop calling this tool.
265
+ detail: `\`${name}\` renders through the build-time ` +
266
+ `prerenderer, which needs this package in the project it ` +
267
+ `runs in. The library does not bundle it: it is required ` +
268
+ `only for prerendering, and bundling it would put a large ` +
269
+ `dependency into every browser install that never uses it.`,
270
+ }]
271
+ : [{ code: "TOOL_FAILED", path: name, got: message,
272
+ suggestions: [], valid: [] }];
273
+ return reply(id, { ...reportAsError({ ok: false, errors }) });
255
274
  }
256
275
  }
257
276
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -50,7 +50,7 @@
50
50
  */
51
51
 
52
52
  /*!
53
- * nodality v1.1.8
53
+ * nodality v1.1.10
54
54
  * (c) 2026 Filip Vabrousek
55
55
  * License: MIT
56
56
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -50,7 +50,7 @@
50
50
  */
51
51
 
52
52
  /*!
53
- * nodality v1.1.8
53
+ * nodality v1.1.10
54
54
  * (c) 2026 Filip Vabrousek
55
55
  * License: MIT
56
56
  */
@@ -50,7 +50,7 @@
50
50
  */
51
51
 
52
52
  /*!
53
- * nodality v1.1.8
53
+ * nodality v1.1.10
54
54
  * (c) 2026 Filip Vabrousek
55
55
  * License: MIT
56
56
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -50,7 +50,7 @@
50
50
  */
51
51
 
52
52
  /*!
53
- * nodality v1.1.8
53
+ * nodality v1.1.10
54
54
  * (c) 2026 Filip Vabrousek
55
55
  * License: MIT
56
56
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -50,7 +50,7 @@
50
50
  */
51
51
 
52
52
  /*!
53
- * nodality v1.1.8
53
+ * nodality v1.1.10
54
54
  * (c) 2026 Filip Vabrousek
55
55
  * License: MIT
56
56
  */
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  // Generated by scripts/generate-types.mjs — do not edit by hand.
2
2
  //
3
- // Nodality 1.1.9
3
+ // Nodality 1.1.11
4
4
  //
5
5
  // You describe a page as two plain arrays and hand them to a Designer:
6
6
  //
@@ -50,7 +50,7 @@
50
50
  */
51
51
 
52
52
  /*!
53
- * nodality v1.1.8
53
+ * nodality v1.1.10
54
54
  * (c) 2026 Filip Vabrousek
55
55
  * License: MIT
56
56
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * nodality v1.1.8
2
+ * nodality v1.1.10
3
3
  * (c) 2026 Filip Vabrousek
4
4
  * License: MIT
5
5
  */