nodality 1.3.10 → 1.3.12
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.
- package/dist/animator.cjs.js +1 -1
- package/dist/animator.cjs.js.LICENSE.txt +1 -1
- package/dist/animator.esm.js +1 -1
- package/dist/animator.esm.js.LICENSE.txt +1 -1
- package/dist/audionew.cjs.js +1 -1
- package/dist/audionew.cjs.js.LICENSE.txt +1 -1
- package/dist/audionew.esm.js +1 -1
- package/dist/audionew.esm.js.LICENSE.txt +1 -1
- package/dist/base.cjs.js +1 -1
- package/dist/base.cjs.js.LICENSE.txt +1 -1
- package/dist/base.esm.js +1 -1
- package/dist/base.esm.js.LICENSE.txt +1 -1
- package/dist/beta-desktop-bar.cjs.js +1 -1
- package/dist/beta-desktop-bar.cjs.js.LICENSE.txt +1 -1
- package/dist/beta-desktop-bar.esm.js +1 -1
- package/dist/beta-desktop-bar.esm.js.LICENSE.txt +1 -1
- package/dist/beta-mobile-bar.cjs.js +1 -1
- package/dist/beta-mobile-bar.cjs.js.LICENSE.txt +1 -1
- package/dist/beta-mobile-bar.esm.js +1 -1
- package/dist/beta-mobile-bar.esm.js.LICENSE.txt +1 -1
- package/dist/bundle.umd.js +1 -1
- package/dist/bundle.umd.js.LICENSE.txt +1 -1
- package/dist/button.cjs.js +1 -1
- package/dist/button.cjs.js.LICENSE.txt +1 -1
- package/dist/button.esm.js +1 -1
- package/dist/button.esm.js.LICENSE.txt +1 -1
- package/dist/card-getter.cjs.js.LICENSE.txt +1 -1
- package/dist/card-getter.esm.js.LICENSE.txt +1 -1
- package/dist/center.cjs.js +1 -1
- package/dist/center.cjs.js.LICENSE.txt +1 -1
- package/dist/center.esm.js +1 -1
- package/dist/center.esm.js.LICENSE.txt +1 -1
- package/dist/checkbox.cjs.js +1 -1
- package/dist/checkbox.cjs.js.LICENSE.txt +1 -1
- package/dist/checkbox.esm.js +1 -1
- package/dist/checkbox.esm.js.LICENSE.txt +1 -1
- package/dist/code.cjs.js +1 -1
- package/dist/code.cjs.js.LICENSE.txt +1 -1
- package/dist/code.esm.js +1 -1
- package/dist/code.esm.js.LICENSE.txt +1 -1
- package/dist/container.cjs.js +1 -1
- package/dist/container.cjs.js.LICENSE.txt +1 -1
- package/dist/container.esm.js +1 -1
- package/dist/container.esm.js.LICENSE.txt +1 -1
- package/dist/data-list.cjs.js.LICENSE.txt +1 -1
- package/dist/data-list.esm.js.LICENSE.txt +1 -1
- package/dist/designer.cjs.js +1 -1
- package/dist/designer.cjs.js.LICENSE.txt +1 -1
- package/dist/designer.esm.js +1 -1
- package/dist/designer.esm.js.LICENSE.txt +1 -1
- package/dist/element-mapper.cjs.js +1 -1
- package/dist/element-mapper.cjs.js.LICENSE.txt +1 -1
- package/dist/element-mapper.esm.js +1 -1
- package/dist/element-mapper.esm.js.LICENSE.txt +1 -1
- package/dist/finalresult.esm.js +1 -1
- package/dist/finalresult.esm.js.LICENSE.txt +1 -1
- package/dist/flex-card.cjs.js +1 -1
- package/dist/flex-card.cjs.js.LICENSE.txt +1 -1
- package/dist/flex-card.esm.js +1 -1
- package/dist/flex-card.esm.js.LICENSE.txt +1 -1
- package/dist/flex-grid.cjs.js +1 -1
- package/dist/flex-grid.cjs.js.LICENSE.txt +1 -1
- package/dist/flex-grid.esm.js +1 -1
- package/dist/flex-grid.esm.js.LICENSE.txt +1 -1
- package/dist/flex-row.cjs.js +1 -1
- package/dist/flex-row.cjs.js.LICENSE.txt +1 -1
- package/dist/flex-row.esm.js +1 -1
- package/dist/flex-row.esm.js.LICENSE.txt +1 -1
- package/dist/floating-input.cjs.js +1 -1
- package/dist/floating-input.cjs.js.LICENSE.txt +1 -1
- package/dist/floating-input.esm.js +1 -1
- package/dist/floating-input.esm.js.LICENSE.txt +1 -1
- package/dist/free.cjs.js +1 -1
- package/dist/free.cjs.js.LICENSE.txt +1 -1
- package/dist/free.esm.js +1 -1
- package/dist/free.esm.js.LICENSE.txt +1 -1
- package/dist/horizontal-scroller.cjs.js.LICENSE.txt +1 -1
- package/dist/horizontal-scroller.esm.js.LICENSE.txt +1 -1
- package/dist/image-picker.cjs.js +1 -1
- package/dist/image-picker.cjs.js.LICENSE.txt +1 -1
- package/dist/image-picker.esm.js +1 -1
- package/dist/image-picker.esm.js.LICENSE.txt +1 -1
- package/dist/image.cjs.js +1 -1
- package/dist/image.cjs.js.LICENSE.txt +1 -1
- package/dist/image.esm.js +1 -1
- package/dist/image.esm.js.LICENSE.txt +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.LICENSE.txt +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.LICENSE.txt +1 -1
- package/dist/keyframe-animation.cjs.js.LICENSE.txt +1 -1
- package/dist/keyframe-animation.esm.js.LICENSE.txt +1 -1
- package/dist/link-getter.cjs.js +1 -1
- package/dist/link-getter.cjs.js.LICENSE.txt +1 -1
- package/dist/link-getter.esm.js +1 -1
- package/dist/link-getter.esm.js.LICENSE.txt +1 -1
- package/dist/link.cjs.js +1 -1
- package/dist/link.cjs.js.LICENSE.txt +1 -1
- package/dist/link.esm.js +1 -1
- package/dist/link.esm.js.LICENSE.txt +1 -1
- package/dist/meta-adder.cjs.js +1 -1
- package/dist/meta-adder.cjs.js.LICENSE.txt +1 -1
- package/dist/meta-adder.esm.js +1 -1
- package/dist/meta-adder.esm.js.LICENSE.txt +1 -1
- package/dist/modal-2025.cjs.js +1 -1
- package/dist/modal-2025.cjs.js.LICENSE.txt +1 -1
- package/dist/modal-2025.esm.js +1 -1
- package/dist/modal-2025.esm.js.LICENSE.txt +1 -1
- package/dist/multiswitcher.cjs.js +1 -1
- package/dist/multiswitcher.cjs.js.LICENSE.txt +1 -1
- package/dist/multiswitcher.esm.js +1 -1
- package/dist/multiswitcher.esm.js.LICENSE.txt +1 -1
- package/dist/new-nav-bar.cjs.js +1 -1
- package/dist/new-nav-bar.cjs.js.LICENSE.txt +1 -1
- package/dist/new-nav-bar.esm.js +1 -1
- package/dist/new-nav-bar.esm.js.LICENSE.txt +1 -1
- package/dist/picker.cjs.js +1 -1
- package/dist/picker.cjs.js.LICENSE.txt +1 -1
- package/dist/picker.esm.js +1 -1
- package/dist/picker.esm.js.LICENSE.txt +1 -1
- package/dist/progress.cjs.js +1 -1
- package/dist/progress.cjs.js.LICENSE.txt +1 -1
- package/dist/progress.esm.js +1 -1
- package/dist/progress.esm.js.LICENSE.txt +1 -1
- package/dist/radio.cjs.js +1 -1
- package/dist/radio.cjs.js.LICENSE.txt +1 -1
- package/dist/radio.esm.js +1 -1
- package/dist/radio.esm.js.LICENSE.txt +1 -1
- package/dist/range.cjs.js.LICENSE.txt +1 -1
- package/dist/range.esm.js.LICENSE.txt +1 -1
- package/dist/scroll-video.cjs.js.LICENSE.txt +1 -1
- package/dist/scroll-video.esm.js.LICENSE.txt +1 -1
- package/dist/side-bar.cjs.js +1 -1
- package/dist/side-bar.cjs.js.LICENSE.txt +1 -1
- package/dist/side-bar.esm.js +1 -1
- package/dist/side-bar.esm.js.LICENSE.txt +1 -1
- package/dist/side-nav-bar.cjs.js +1 -1
- package/dist/side-nav-bar.cjs.js.LICENSE.txt +1 -1
- package/dist/side-nav-bar.esm.js +1 -1
- package/dist/side-nav-bar.esm.js.LICENSE.txt +1 -1
- package/dist/simple-bar.cjs.js +1 -1
- package/dist/simple-bar.cjs.js.LICENSE.txt +1 -1
- package/dist/simple-bar.esm.js +1 -1
- package/dist/simple-bar.esm.js.LICENSE.txt +1 -1
- package/dist/slider-2025.cjs.js +1 -1
- package/dist/slider-2025.cjs.js.LICENSE.txt +1 -1
- package/dist/slider-2025.esm.js +1 -1
- package/dist/slider-2025.esm.js.LICENSE.txt +1 -1
- package/dist/spacer.cjs.js +1 -1
- package/dist/spacer.cjs.js.LICENSE.txt +1 -1
- package/dist/spacer.esm.js +1 -1
- package/dist/spacer.esm.js.LICENSE.txt +1 -1
- package/dist/stack.cjs.js +1 -1
- package/dist/stack.cjs.js.LICENSE.txt +1 -1
- package/dist/stack.esm.js +1 -1
- package/dist/stack.esm.js.LICENSE.txt +1 -1
- package/dist/stacker.cjs.js.LICENSE.txt +1 -1
- package/dist/stacker.esm.js.LICENSE.txt +1 -1
- package/dist/table.cjs.js +1 -1
- package/dist/table.cjs.js.LICENSE.txt +1 -1
- package/dist/table.esm.js +1 -1
- package/dist/table.esm.js.LICENSE.txt +1 -1
- package/dist/text-field.cjs.js +1 -1
- package/dist/text-field.cjs.js.LICENSE.txt +1 -1
- package/dist/text-field.esm.js +1 -1
- package/dist/text-field.esm.js.LICENSE.txt +1 -1
- package/dist/text.cjs.js +1 -1
- package/dist/text.cjs.js.LICENSE.txt +1 -1
- package/dist/text.esm.js +1 -1
- package/dist/text.esm.js.LICENSE.txt +1 -1
- package/dist/theme.cjs.js.LICENSE.txt +1 -1
- package/dist/theme.esm.js.LICENSE.txt +1 -1
- package/dist/transform-anim.cjs.js.LICENSE.txt +1 -1
- package/dist/transform-anim.esm.js.LICENSE.txt +1 -1
- package/dist/ulist.cjs.js +1 -1
- package/dist/ulist.cjs.js.LICENSE.txt +1 -1
- package/dist/ulist.esm.js +1 -1
- package/dist/ulist.esm.js.LICENSE.txt +1 -1
- package/dist/video.cjs.js +1 -1
- package/dist/video.cjs.js.LICENSE.txt +1 -1
- package/dist/video.esm.js +1 -1
- package/dist/video.esm.js.LICENSE.txt +1 -1
- package/dist/wrap.cjs.js +1 -1
- package/dist/wrap.cjs.js.LICENSE.txt +1 -1
- package/dist/wrap.esm.js +1 -1
- package/dist/wrap.esm.js.LICENSE.txt +1 -1
- package/dist/zoom-card.cjs.js +1 -1
- package/dist/zoom-card.cjs.js.LICENSE.txt +1 -1
- package/dist/zoom-card.esm.js +1 -1
- package/dist/zoom-card.esm.js.LICENSE.txt +1 -1
- package/layout/animator.js +85 -23
- package/layout/audio.js +21 -1
- package/layout/audionew.js +1 -1
- package/layout/base.js +1 -1
- package/layout/beta-desktop-bar.js +1 -1
- package/layout/beta-mobile-bar.js +1 -1
- package/layout/button.js +4 -2
- package/layout/center.js +1 -1
- package/layout/checkbox.js +1 -1
- package/layout/circle.js +1 -1
- package/layout/code.js +2 -2
- package/layout/container.js +2 -2
- package/layout/dropdown-2025.js +1 -1
- package/layout/flex-card.js +1 -1
- package/layout/flex-grid.js +1 -1
- package/layout/flex-row.js +1 -1
- package/layout/form-components/custom.js +1 -1
- package/layout/form-components/data-list.js +1 -1
- package/layout/form-components/floating-input.js +1 -1
- package/layout/form-components/form-all.js +1 -1
- package/layout/form-components/form.js +1 -1
- package/layout/form-components/image-picker.js +1 -1
- package/layout/form-components/picker.js +1 -1
- package/layout/form-components/radio.js +6 -1
- package/layout/form-components/radiogroup.js +1 -1
- package/layout/form-components/range.js +1 -1
- package/layout/free.js +1 -1
- package/layout/grid-overlay.js +19 -19
- package/layout/grid-switcher.js +3 -1
- package/layout/grid.js +1 -1
- package/layout/horizontal-scroller.js +1 -1
- package/layout/image.js +2 -2
- package/layout/index.js +1 -1
- package/layout/link.js +1 -1
- package/layout/list.js +1 -1
- package/layout/meta-adder.js +1 -1
- package/layout/modal-2025.js +1 -1
- package/layout/morph.js +1 -1
- package/layout/multiswitcher.js +6 -2
- package/layout/nav-bar.js +1 -1
- package/layout/nav-factor/custom-div.js +1 -1
- package/layout/new-nav-bar.js +1 -1
- package/layout/polygon.js +1 -1
- package/layout/prerender-site.js +1 -1
- package/layout/prerender.js +1 -1
- package/layout/progress.js +1 -1
- package/layout/row.js +1 -1
- package/layout/scroll-video.js +1 -1
- package/layout/side-bar.js +1 -1
- package/layout/side-nav-bar.js +6 -1
- package/layout/simple-bar.js +1 -1
- package/layout/slider-2025.js +1 -1
- package/layout/spacer.js +1 -1
- package/layout/stack.js +5 -2
- package/layout/svg.js +1 -1
- package/layout/switcher.js +1 -1
- package/layout/table.js +1 -1
- package/layout/text-field.js +1 -1
- package/layout/text.js +1 -1
- package/layout/ulist.js +1 -1
- package/layout/video.js +22 -22
- package/layout/wrap.js +1 -1
- package/layout/zoom-card.js +1 -1
- package/lib/agent-surface.js +1 -1
- package/lib/card-getter.js +1 -1
- package/lib/check-page.js +1 -1
- package/lib/codegen.js +1 -1
- package/lib/data.js +1 -1
- package/lib/designer.js +1 -1
- package/lib/element-mapper.js +103 -15
- package/lib/element-params.generated.js +13 -2
- package/lib/grid-geometry.js +1 -1
- package/lib/keyframe-animation.js +1 -1
- package/lib/link-getter.js +1 -1
- package/lib/morph-node.js +1 -1
- package/lib/normalize-spec.js +1 -1
- package/lib/parse-html.js +1 -1
- package/lib/raster-inspect.js +1 -1
- package/lib/raster-ops.js +1 -1
- package/lib/raster-presets.js +1 -1
- package/lib/resolve-refs.js +1 -1
- package/lib/scroll-video.js +1 -1
- package/lib/seo.js +1 -1
- package/lib/stacker.js +1 -1
- package/lib/suggest.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/transform-anim.js +1 -1
- package/lib/transition.js +1 -1
- package/lib/validate-nodes.js +146 -4
- package/lib/webmcp-adapter.js +1 -1
- package/package.json +1 -1
- package/schema.json +1391 -2263
- package/scripts/generate-schema.mjs +135 -15
- package/skills/nodality/SKILL.md +15 -0
package/lib/element-mapper.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* nodality v1.3.
|
|
2
|
+
* nodality v1.3.12
|
|
3
3
|
* (c) 2026 Filip Vabrousek
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -176,7 +176,54 @@ function warnWrongSlot(el) {
|
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
class ElementMapper { // 22:09:58 04/11/2024
|
|
179
|
-
|
|
179
|
+
// Every element may carry an `id`. It is the joint between E and N — what
|
|
180
|
+
// `target`, `parse` and the agent surface all name — and applying it inside
|
|
181
|
+
// each of thirty-six mappers means thirty-six chances to forget. Two were
|
|
182
|
+
// already forgotten: `video` and `table` both accepted an id, advertised it
|
|
183
|
+
// in their schema, and rendered a node without one. Nothing failed; the
|
|
184
|
+
// element simply could not be named. So it is applied HERE, once, after
|
|
185
|
+
// dispatch, and a component that sets its own id keeps it.
|
|
186
|
+
static mapType(obj) {
|
|
187
|
+
const built = this.dispatchType(obj);
|
|
188
|
+
const id = obj && obj.el && obj.el.id;
|
|
189
|
+
if (id != null && id !== "") {
|
|
190
|
+
// `res` on almost every component; `formElement` on Form, which
|
|
191
|
+
// predates the convention. A mapper that returns emitted CODE
|
|
192
|
+
// rather than an instance (cards, copy) carries the id in the
|
|
193
|
+
// source it emits, and there is no node here to write to.
|
|
194
|
+
// Four conventions for "the node this component owns": `res` on
|
|
195
|
+
// most, `formElement` on Form, `el` on RadioGroup and
|
|
196
|
+
// FilePickera, `container` on Switcher. A mapper that returns
|
|
197
|
+
// emitted CODE rather than an instance (cards, copy) carries the
|
|
198
|
+
// id in the source it emits, and there is no node here to write.
|
|
199
|
+
// The generated code is what Des actually runs, so the id has to
|
|
200
|
+
// be IN it. Most components serialise `this.options` in toCode();
|
|
201
|
+
// a mapper that builds its own options object (table, circle,
|
|
202
|
+
// polygon…) leaves the id out of them, and the rendered element
|
|
203
|
+
// loses it. Put it back before the code is taken.
|
|
204
|
+
//
|
|
205
|
+
// The element's declared id also WINS over one a mapper hardcoded:
|
|
206
|
+
// `free` emitted `id: "#3"` for every free element on a page.
|
|
207
|
+
// SideNav keeps its config in `obj` rather than `options`.
|
|
208
|
+
const declared = String(id);
|
|
209
|
+
if (built && typeof built === "object") {
|
|
210
|
+
if (built.options && typeof built.options === "object") built.options.id = declared;
|
|
211
|
+
if (built.obj && typeof built.obj === "object") built.obj.id = declared;
|
|
212
|
+
}
|
|
213
|
+
const node = built && (built.res || built.formElement || built.el || built.container);
|
|
214
|
+
if (node && typeof node.setAttribute === "function") {
|
|
215
|
+
const current = node.getAttribute("id");
|
|
216
|
+
// Written exactly as declared, hash and all. Ids are compared in
|
|
217
|
+
// normalised form everywhere (see sameId), and the DOM keeps the
|
|
218
|
+
// author's spelling so that a page selecting [id="#hero"] keeps
|
|
219
|
+
// working — normalising here broke exactly such pages.
|
|
220
|
+
if (!current) node.setAttribute("id", String(id));
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return built;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
static dispatchType(obj) {
|
|
180
227
|
warnWrongSlot(obj && obj.el);
|
|
181
228
|
// console.log("LOBJ");
|
|
182
229
|
// console.log(obj);
|
|
@@ -305,7 +352,7 @@ class ElementMapper { // 22:09:58 04/11/2024
|
|
|
305
352
|
span: this.filtero("span", el.id, obj.customOptions),
|
|
306
353
|
backgroundOp: this.filtero("background", el.id, obj.customOptions),
|
|
307
354
|
marginOp: this.filtero("margin", el.id, obj.customOptions),
|
|
308
|
-
transform: this.filtero("transform", el.id, obj.customOptions),
|
|
355
|
+
transform: this.filtero("transform", el.id, obj.customOptions) ?? el.transform,
|
|
309
356
|
filtera: this.filtero("filter", el.id, obj.customOptions),
|
|
310
357
|
raster: this.filteroRaster(el.id, obj.customOptions),
|
|
311
358
|
});
|
|
@@ -343,7 +390,10 @@ class ElementMapper { // 22:09:58 04/11/2024
|
|
|
343
390
|
span: this.filtero("span", el.id, obj.customOptions),
|
|
344
391
|
backgroundOp: this.filtero("background", el.id, obj.customOptions),
|
|
345
392
|
marginOp: this.filtero("margin", el.id, obj.customOptions),
|
|
346
|
-
|
|
393
|
+
// A transform design node wins; without one the element's
|
|
394
|
+
// own CSS string is used. Previously the lookup overwrote it
|
|
395
|
+
// with undefined, so `transform` on an element was dropped.
|
|
396
|
+
transform: this.filtero("transform", el.id, obj.customOptions) ?? el.transform,
|
|
347
397
|
filtera: this.filtero("filter", el.id, obj.customOptions),
|
|
348
398
|
raster: this.filteroRaster(el.id, obj.customOptions),
|
|
349
399
|
}).items([
|
|
@@ -388,7 +438,10 @@ new Text("row.").set({
|
|
|
388
438
|
span: this.filtero("span", el.id, obj.customOptions),
|
|
389
439
|
backgroundOp: this.filtero("background", el.id, obj.customOptions),
|
|
390
440
|
marginOp: this.filtero("margin", el.id, obj.customOptions),
|
|
391
|
-
|
|
441
|
+
// A transform design node wins; without one the element's
|
|
442
|
+
// own CSS string is used. Previously the lookup overwrote it
|
|
443
|
+
// with undefined, so `transform` on an element was dropped.
|
|
444
|
+
transform: this.filtero("transform", el.id, obj.customOptions) ?? el.transform,
|
|
392
445
|
filtera: this.filtero("filter", el.id, obj.customOptions),
|
|
393
446
|
raster: this.filteroRaster(el.id, obj.customOptions),
|
|
394
447
|
pad: [
|
|
@@ -465,6 +518,8 @@ animation: {
|
|
|
465
518
|
},
|
|
466
519
|
`;
|
|
467
520
|
|
|
521
|
+
// The id below was hardcoded to "#first", so every copy element on a page
|
|
522
|
+
// emitted the same id and none could be targeted individually.
|
|
468
523
|
return `new Wrapper()
|
|
469
524
|
.set({
|
|
470
525
|
width: "${minSize}px",
|
|
@@ -473,7 +528,7 @@ animation: {
|
|
|
473
528
|
justifyContent: "center",
|
|
474
529
|
alignItems: "center",
|
|
475
530
|
position: "absolute",
|
|
476
|
-
id: "#first",
|
|
531
|
+
id: "${obj.el.id ? String(obj.el.id) : "#first"}",
|
|
477
532
|
scale: 0.3,
|
|
478
533
|
${ft?.animation ? animation : ""}${
|
|
479
534
|
// Wrapper routes its options through commonMethods(), so a raster
|
|
@@ -1039,6 +1094,10 @@ if (obj.el.dropdown){
|
|
|
1039
1094
|
|
|
1040
1095
|
const navBar = new Switcher()
|
|
1041
1096
|
.set({
|
|
1097
|
+
// A Switcher applies its id when it renders, because its box
|
|
1098
|
+
// does not exist before then. Omitting it here is why a `nav`
|
|
1099
|
+
// element accepted an id and rendered a bar without one.
|
|
1100
|
+
id: obj.el && obj.el.id,
|
|
1042
1101
|
breakpoints: [ // 172800 almost
|
|
1043
1102
|
{
|
|
1044
1103
|
at: "0px", view: new MobileBar().set({
|
|
@@ -1647,7 +1706,10 @@ return new Circle()
|
|
|
1647
1706
|
span: this.filtero("span", el.id, obj.customOptions),
|
|
1648
1707
|
backgroundOp: this.filtero("background", el.id, obj.customOptions),
|
|
1649
1708
|
marginOp: this.filtero("margin", el.id, obj.customOptions),
|
|
1650
|
-
|
|
1709
|
+
// A transform design node wins; without one the element's
|
|
1710
|
+
// own CSS string is used. Previously the lookup overwrote it
|
|
1711
|
+
// with undefined, so `transform` on an element was dropped.
|
|
1712
|
+
transform: this.filtero("transform", el.id, obj.customOptions) ?? el.transform,
|
|
1651
1713
|
filtera: this.filtero("filter", el.id, obj.customOptions),
|
|
1652
1714
|
raster: this.filteroRaster(el.id, obj.customOptions),
|
|
1653
1715
|
})
|
|
@@ -1662,7 +1724,9 @@ return new Circle()
|
|
|
1662
1724
|
|
|
1663
1725
|
const count = obj.el.sides ?? 7;
|
|
1664
1726
|
|
|
1665
|
-
|
|
1727
|
+
// Was `{ id: "hex" }` hardcoded, so every polygon on a page rendered the
|
|
1728
|
+
// same id and none could be targeted individually.
|
|
1729
|
+
let elo = new Polygon({ id: el.id ? String(el.id) : "hex" })
|
|
1666
1730
|
.set({
|
|
1667
1731
|
sides: count,
|
|
1668
1732
|
size: 300,
|
|
@@ -1674,7 +1738,10 @@ let elo = new Polygon({ id: "hex" })
|
|
|
1674
1738
|
span: this.filtero("span", el.id, obj.customOptions),
|
|
1675
1739
|
backgroundOp: this.filtero("background", el.id, obj.customOptions),
|
|
1676
1740
|
marginOp: this.filtero("margin", el.id, obj.customOptions),
|
|
1677
|
-
|
|
1741
|
+
// A transform design node wins; without one the element's
|
|
1742
|
+
// own CSS string is used. Previously the lookup overwrote it
|
|
1743
|
+
// with undefined, so `transform` on an element was dropped.
|
|
1744
|
+
transform: this.filtero("transform", el.id, obj.customOptions) ?? el.transform,
|
|
1678
1745
|
filtera: this.filtero("filter", el.id, obj.customOptions),
|
|
1679
1746
|
raster: this.filteroRaster(el.id, obj.customOptions),
|
|
1680
1747
|
})
|
|
@@ -1718,6 +1785,13 @@ let elo = new Polygon({ id: "hex" })
|
|
|
1718
1785
|
id: el.id,
|
|
1719
1786
|
class: el.class,
|
|
1720
1787
|
color: el.color,
|
|
1788
|
+
// Deliberately NOT `el.size ?? …`. In Text the step picks the
|
|
1789
|
+
// TAG as well as the font size, so honouring an explicit
|
|
1790
|
+
// `size` turned `{type:"h2", size:"S3"}` into an <h3> and
|
|
1791
|
+
// quietly changed the document outline. The element type owns
|
|
1792
|
+
// the step here; `tag` is the option for choosing the heading
|
|
1793
|
+
// level independently. `size` is therefore not settable on a
|
|
1794
|
+
// text element, which the schema now says.
|
|
1721
1795
|
size: this.getElType(el.type), // update 23/07/2025
|
|
1722
1796
|
//@ tag: Heading level to render, independent of the type's size.
|
|
1723
1797
|
// Without this the option exists on the component and is not
|
|
@@ -1735,7 +1809,10 @@ let elo = new Polygon({ id: "hex" })
|
|
|
1735
1809
|
span: this.filtero("span", el.id, obj.customOptions),
|
|
1736
1810
|
backgroundOp: this.filtero("background", el.id, obj.customOptions),
|
|
1737
1811
|
marginOp: this.filtero("margin", el.id, obj.customOptions),
|
|
1738
|
-
|
|
1812
|
+
// A transform design node wins; without one the element's
|
|
1813
|
+
// own CSS string is used. Previously the lookup overwrote it
|
|
1814
|
+
// with undefined, so `transform` on an element was dropped.
|
|
1815
|
+
transform: this.filtero("transform", el.id, obj.customOptions) ?? el.transform,
|
|
1739
1816
|
filtera: this.filtero("filter", el.id, obj.customOptions),
|
|
1740
1817
|
raster: this.filteroRaster(el.id, obj.customOptions),
|
|
1741
1818
|
// The caller's own breakpoints. This used to REPLACE them
|
|
@@ -1806,12 +1883,16 @@ let elo = new Polygon({ id: "hex" })
|
|
|
1806
1883
|
|
|
1807
1884
|
|
|
1808
1885
|
|
|
1809
|
-
|
|
1886
|
+
// Arial is the default, not an override: this used to discard
|
|
1887
|
+
// the element's own font, so a link could never match the
|
|
1888
|
+
// page's typography — a nav in the page's mono rendered in
|
|
1889
|
+
// Arial with nothing reported.
|
|
1890
|
+
re["font"] = obj.el.font ?? "Arial";
|
|
1810
1891
|
re["fluidc"] = obj.el.fluidc;
|
|
1811
1892
|
// re["index"] = obj.i + "", // add other options here
|
|
1812
1893
|
|
|
1813
1894
|
// transform: this.filtero("transform", el.id, obj.customOptions),
|
|
1814
|
-
re["transform"] = this.filtero("transform", obj.el.id, obj.customOptions),
|
|
1895
|
+
re["transform"] = this.filtero("transform", obj.el.id, obj.customOptions) ?? obj.el.transform,
|
|
1815
1896
|
re["shadow"] = this.filtero("shadow", obj.el.id, obj.customOptions),//customOptions.filter(l => l.op.name === "shadow")[0],
|
|
1816
1897
|
re["gradient"] = this.filtero("gradient", obj.el.id, obj.customOptions),
|
|
1817
1898
|
re["blast"] = this.filtero("blast", obj.el.id, obj.customOptions),
|
|
@@ -1823,7 +1904,8 @@ let elo = new Polygon({ id: "hex" })
|
|
|
1823
1904
|
// mapWrap. Link takes `raster` through commonMethods like
|
|
1824
1905
|
// every other component; only the wiring was missing.
|
|
1825
1906
|
re["raster"] = this.filteroRaster(obj.el.id, obj.customOptions);
|
|
1826
|
-
|
|
1907
|
+
// Same pattern: the element's padding wins over the default.
|
|
1908
|
+
re["pad"] = obj.el.pad ?? [{ "a": 10 }];
|
|
1827
1909
|
|
|
1828
1910
|
if (bst.length > 0) {
|
|
1829
1911
|
ela = LinkStyler.style({
|
|
@@ -2244,7 +2326,10 @@ static form(obj){
|
|
|
2244
2326
|
gradient: this.filtero("gradient", el.id, obj.customOptions),
|
|
2245
2327
|
animation: this.filtero("animation", el.id, obj.customOptions),
|
|
2246
2328
|
shadow: this.filtero("shadow", el.id, obj.customOptions),
|
|
2247
|
-
|
|
2329
|
+
// A transform design node wins; without one the element's
|
|
2330
|
+
// own CSS string is used. Previously the lookup overwrote it
|
|
2331
|
+
// with undefined, so `transform` on an element was dropped.
|
|
2332
|
+
transform: this.filtero("transform", el.id, obj.customOptions) ?? el.transform,
|
|
2248
2333
|
filtera: this.filtero("filter", el.id, obj.customOptions),
|
|
2249
2334
|
raster: this.filteroRaster(el.id, obj.customOptions),
|
|
2250
2335
|
});
|
|
@@ -2290,7 +2375,10 @@ static form(obj){
|
|
|
2290
2375
|
gradient: this.filtero("gradient", el.id, obj.customOptions),
|
|
2291
2376
|
animation: this.filtero("animation", el.id, obj.customOptions),
|
|
2292
2377
|
shadow: this.filtero("shadow", el.id, obj.customOptions),
|
|
2293
|
-
|
|
2378
|
+
// A transform design node wins; without one the element's
|
|
2379
|
+
// own CSS string is used. Previously the lookup overwrote it
|
|
2380
|
+
// with undefined, so `transform` on an element was dropped.
|
|
2381
|
+
transform: this.filtero("transform", el.id, obj.customOptions) ?? el.transform,
|
|
2294
2382
|
filtera: this.filtero("filter", el.id, obj.customOptions),
|
|
2295
2383
|
raster: this.filteroRaster(el.id, obj.customOptions),
|
|
2296
2384
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* nodality v1.3.
|
|
2
|
+
* nodality v1.3.12
|
|
3
3
|
* (c) 2026 Filip Vabrousek
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -8,4 +8,15 @@
|
|
|
8
8
|
// Every parameter name any element type reads, recovered from source.
|
|
9
9
|
// Used for near-miss typo detection in validate-nodes.js. A drift test
|
|
10
10
|
// regenerates this and fails if it differs, so it cannot rot silently.
|
|
11
|
-
export const ELEMENT_PARAM_NAMES = ["absolute","accept","action","align","alignIts","alignTo","aligns","alt","animate","animation","area","arrayMargin","arrayPadding","as","aspectRatio","at","auto","autoplay","backTo","background","backgroundCard","backgroundColor","backgroundOp","behaviour","blast","blastData","block","bold","border","
|
|
11
|
+
export const ELEMENT_PARAM_NAMES = ["absolute","accept","action","align","alignItems","alignIts","alignTo","aligns","alt","animate","animation","area","ariaLabel","arrayMargin","arrayPadding","as","aspectRatio","at","auto","autoplay","backTo","background","backgroundCard","backgroundColor","backgroundOp","barPad","behaviour","blast","blastData","block","bold","border","borderBottom","borderObj","borderObja","brand","breakWord","breakpoint","breakpoints","center","centerColumn","centerSelf","centered","checkedBackgroundColor","child","children","clampc","class","clipPath","colat","color","column","columns","contentWidth","controls","cursor","customAlign","customJustify","customStyle","data","decoding","decorative","desktopSize","diameter","disp","dropdown","els","em","exact","fetchPriority","filter","filtera","fitContent","fixMobileTap","fixed","flex","flexCenter","flexDir","fluid","fluidc","font","fontSize","frame","ga","gap","gpos","gradient","hamColour","hamburgerColour","hamburgerInset","height","hideField","hideOverflow","hover","icon","id","img","index","initLetter","inline","inpad","inputType","inset","isBackground","isFull","isHidden","isLink","isNavA","isSide","italic","items","justifo","justify","keySet","kind","label","layout","lazy","left","length","letterSpacing","lineOpacity","lineWidth","link","loading","loop","map","mar","margin","marginOp","markSize","marks","maxHeight","maxWidth","mboth","method","minHeight","mobile","mobileSize","multiple","muted","name","new","nowrap","objectFit","objectPosition","offcanvas","okayColor","onScroll","onTap","opacity","openColor","overflow","owrap","pad","padding","placeholder","playsinline","position","positions","poster","preffersId","preload","radius","ranges","raster","react","readouts","removeDecoration","required","resmar","respad","responsive","resprop","rounded","rows","scale","sequence","shadow","sides","simpleBorder","simpleCenter","size","sizes","sources","spacing","span","srcset","sticky","stretch","stroke","stype","svg","tag","tags","templateCols","text","theme","tint","title","toColumn","top","transform","transition","type","uppercase","url","useBrightness","value","vtn","weight","width","wrap","x","y","zIndex"];
|
|
12
|
+
|
|
13
|
+
// Per-type vocabulary. The union above answers "is this a real parameter
|
|
14
|
+
// anywhere"; this answers "does THIS type accept it", which is what a page
|
|
15
|
+
// actually needs to know — writing `keySet` on a `table` is a name the
|
|
16
|
+
// union knows and the type ignores.
|
|
17
|
+
export const ELEMENT_PARAMS_BY_TYPE = {"h1":["absolute","align","alt","animation","area","background","backgroundOp","block","border","borderObj","breakWord","center","clampc","class","color","cursor","em","filtera","flex","fluid","fluidc","font","gpos","gradient","height","icon","id","index","initLetter","italic","keySet","layout","left","mar","marginOp","maxWidth","onScroll","onTap","preffersId","raster","removeDecoration","responsive","resprop","shadow","size","span","stroke","tag","text","top","transform","type","url","value","vtn","width"],"h2":["absolute","align","alt","animation","area","background","backgroundOp","block","border","borderObj","breakWord","center","clampc","class","color","cursor","em","filtera","flex","fluid","fluidc","font","gpos","gradient","height","icon","id","index","initLetter","italic","keySet","layout","left","mar","marginOp","maxWidth","onScroll","onTap","preffersId","raster","removeDecoration","responsive","resprop","shadow","size","span","stroke","tag","text","top","transform","type","url","value","vtn","width"],"h3":["absolute","align","alt","animation","area","background","backgroundOp","block","border","borderObj","breakWord","center","clampc","class","color","cursor","em","filtera","flex","fluid","fluidc","font","gpos","gradient","height","icon","id","index","initLetter","italic","keySet","layout","left","mar","marginOp","maxWidth","onScroll","onTap","preffersId","raster","removeDecoration","responsive","resprop","shadow","size","span","stroke","tag","text","top","transform","type","url","value","vtn","width"],"h4":["absolute","align","alt","animation","area","background","backgroundOp","block","border","borderObj","breakWord","center","clampc","class","color","cursor","em","filtera","flex","fluid","fluidc","font","gpos","gradient","height","icon","id","index","initLetter","italic","keySet","layout","left","mar","marginOp","maxWidth","onScroll","onTap","preffersId","raster","removeDecoration","responsive","resprop","shadow","size","span","stroke","tag","text","top","transform","type","url","value","vtn","width"],"h5":["absolute","align","alt","animation","area","background","backgroundOp","block","border","borderObj","breakWord","center","clampc","class","color","cursor","em","filtera","flex","fluid","fluidc","font","gpos","gradient","height","icon","id","index","initLetter","italic","keySet","layout","left","mar","marginOp","maxWidth","onScroll","onTap","preffersId","raster","removeDecoration","responsive","resprop","shadow","size","span","stroke","tag","text","top","transform","type","url","value","vtn","width"],"h6":["absolute","align","alt","animation","area","background","backgroundOp","block","border","borderObj","breakWord","center","clampc","class","color","cursor","em","filtera","flex","fluid","fluidc","font","gpos","gradient","height","icon","id","index","initLetter","italic","keySet","layout","left","mar","marginOp","maxWidth","onScroll","onTap","preffersId","raster","removeDecoration","responsive","resprop","shadow","size","span","stroke","tag","text","top","transform","type","url","value","vtn","width"],"p":["absolute","align","alt","animation","area","background","backgroundOp","block","border","borderObj","breakWord","center","clampc","class","color","cursor","em","filtera","flex","fluid","fluidc","font","gpos","gradient","height","icon","id","index","initLetter","italic","keySet","layout","left","mar","marginOp","maxWidth","onScroll","onTap","preffersId","raster","removeDecoration","responsive","resprop","shadow","size","span","stroke","tag","text","top","transform","type","url","value","vtn","width"],"img":["alt","animation","area","as","at","backgroundOp","centerSelf","class","clipPath","color","decoding","fetchPriority","filtera","fitContent","gpos","gradient","height","id","index","isBackground","isFull","keySet","layout","loading","marginOp","maxWidth","minHeight","objectFit","objectPosition","onScroll","onTap","opacity","radius","resprop","shadow","sizes","span","srcset","stroke","stype","type","url","vtn","width","x","y","zIndex"],"a":["align","animation","background","backgroundOp","blast","blastData","block","bold","border","borderObj","clampc","class","color","data","fixMobileTap","flex","fluidc","font","gradient","hover","icon","id","isNavA","link","mar","marginOp","maxWidth","new","nowrap","onTap","pad","padding","preffersId","radius","rounded","shadow","span","stroke","tags","text","transform","type","url","width"],"cards":["absolute","action","align","alignIts","alt","animation","area","as","at","backTo","background","backgroundCard","backgroundColor","backgroundOp","blast","blastData","block","bold","border","borderObj","borderObja","breakWord","center","centerColumn","centerSelf","checkedBackgroundColor","child","children","clampc","class","clipPath","colat","color","column","cursor","customAlign","customJustify","customStyle","data","decoding","disp","em","fetchPriority","filter","filtera","fitContent","fixMobileTap","flex","flexCenter","flexDir","fluid","fluidc","font","ga","gap","gpos","gradient","height","hideOverflow","hover","icon","id","index","initLetter","inpad","isBackground","isFull","isHidden","isLink","isNavA","italic","items","keySet","kind","label","layout","left","loading","map","mar","marginOp","maxHeight","maxWidth","mboth","method","minHeight","name","new","nowrap","objectFit","objectPosition","onScroll","onTap","opacity","overflow","pad","padding","position","preffersId","radius","ranges","raster","react","removeDecoration","resmar","respad","responsive","resprop","rounded","scale","sequence","shadow","simpleBorder","simpleCenter","size","sizes","span","srcset","sticky","stretch","stroke","stype","tag","tags","text","title","top","transform","transition","type","url","useBrightness","vtn","weight","width","wrap","x","y","zIndex"],"free":["els","id","type"],"nav":["absolute","action","align","alignItems","alignIts","alt","animate","animation","area","ariaLabel","as","at","backTo","background","backgroundCard","backgroundColor","backgroundOp","barPad","behaviour","blast","blastData","block","bold","border","borderBottom","borderObj","borderObja","brand","breakWord","breakpoints","center","centerColumn","centerSelf","checkedBackgroundColor","child","children","clampc","class","clipPath","colat","color","column","contentWidth","cursor","customAlign","customJustify","customStyle","data","decoding","desktopSize","diameter","disp","dropdown","els","em","fetchPriority","filter","filtera","fitContent","fixMobileTap","fixed","flex","flexCenter","flexDir","fluid","fluidc","font","ga","gap","gpos","gradient","hamColour","hamburgerColour","hamburgerInset","height","hideOverflow","hover","icon","id","index","initLetter","inline","inpad","isBackground","isFull","isHidden","isLink","isNavA","isSide","italic","items","justify","keySet","kind","label","layout","left","link","loading","map","mar","margin","marginOp","maxHeight","maxWidth","mboth","method","minHeight","mobileSize","name","new","nowrap","objectFit","objectPosition","offcanvas","onScroll","onTap","opacity","openColor","overflow","pad","padding","position","positions","preffersId","radius","ranges","raster","react","removeDecoration","resmar","respad","responsive","resprop","rounded","scale","sequence","shadow","sides","simpleBorder","simpleCenter","size","sizes","spacing","span","srcset","sticky","stretch","stroke","stype","tag","tags","templateCols","text","title","top","transform","transition","type","url","useBrightness","value","vtn","weight","width","wrap","x","y","zIndex"],"sideNav":["absolute","action","align","alignIts","alt","animate","animation","area","as","at","backTo","background","backgroundCard","backgroundColor","backgroundOp","behaviour","blast","blastData","block","bold","border","borderObj","borderObja","breakWord","center","centerColumn","centerSelf","checkedBackgroundColor","child","children","clampc","class","clipPath","colat","color","column","contentWidth","cursor","customAlign","customJustify","customStyle","data","decoding","diameter","disp","dropdown","els","em","fetchPriority","filter","filtera","fitContent","fixMobileTap","fixed","flex","flexCenter","flexDir","fluid","fluidc","font","ga","gap","gpos","gradient","hamColour","height","hideOverflow","hover","icon","id","index","initLetter","inline","inpad","isBackground","isFull","isHidden","isLink","isNavA","italic","items","keySet","kind","label","layout","left","link","loading","map","mar","margin","marginOp","maxHeight","maxWidth","mboth","method","minHeight","name","new","nowrap","objectFit","objectPosition","offcanvas","onScroll","onTap","opacity","overflow","pad","padding","position","positions","preffersId","radius","ranges","raster","react","removeDecoration","resmar","respad","responsive","resprop","rounded","scale","sequence","shadow","sides","simpleBorder","simpleCenter","size","sizes","span","srcset","sticky","stretch","stroke","stype","tag","tags","templateCols","text","title","top","transform","transition","type","url","useBrightness","value","vtn","weight","width","wrap","x","y","zIndex"],"row":["absolute","align","alignIts","alignTo","aligns","alt","animation","area","background","backgroundOp","block","border","borderObj","breakWord","center","children","clampc","class","colat","color","column","cursor","em","filtera","flex","fluid","fluidc","font","gap","gpos","gradient","height","icon","id","index","initLetter","italic","justifo","justify","keySet","layout","left","mar","marginOp","maxWidth","mobile","onScroll","onTap","owrap","padding","position","preffersId","radius","raster","removeDecoration","responsive","shadow","size","span","stroke","tag","toColumn","top","transform","type","url","vtn","width","wrap"],"dropdown":["id","items","label","title","type"],"radio":["color","exact","font","id","items","length","multiple","tint","type"],"input":["background","bold","color","exact","font","id","inputType","label","mar","maxWidth","name","pad","placeholder","radius","required","theme","title","type","weight"],"labelInput":["color","exact","font","id","inputType","label","mar","name","pad","text","title","type"],"filePicker":["accept","background","color","font","hideField","id","index","name","okayColor","radius","title","type"],"picker":["arrayMargin","arrayPadding","background","id","items","label","mar","name","pad","radius","title","type"],"video":["aspectRatio","autoplay","background","controls","decorative","height","id","label","lazy","loop","maxWidth","muted","objectFit","opacity","playsinline","poster","preload","radius","raster","sources","type","url","width"],"audio":["id","type","url"],"multiswitcher":["area","breakpoints","id","type"],"button":["align","auto","background","bold","border","centered","class","color","exact","fluidc","frame","height","id","img","keySet","margin","onTap","padding","radius","resmar","respad","svg","text","type","url","weight","width"],"form":["action","children","id","method","type"],"checkbox":["absolute","align","alt","animation","area","background","backgroundColor","backgroundOp","block","border","borderObj","breakWord","center","checkedBackgroundColor","clampc","class","clipPath","color","cursor","customStyle","em","filtera","flex","fluid","fluidc","font","gpos","gradient","height","icon","id","index","initLetter","italic","keySet","label","layout","left","mar","marginOp","maxWidth","name","onScroll","onTap","pad","preffersId","raster","removeDecoration","resmar","respad","responsive","shadow","size","span","stroke","tag","title","top","transform","type","url","vtn","width"],"stack":["children","height","id","sticky","type"],"simple":["children","gap","height","id","react","type"],"copy":["id","type"],"wrap":["absolute","align","alignIts","alt","animation","area","at","backTo","background","backgroundOp","blast","block","border","borderObj","borderObja","breakWord","center","centerColumn","child","children","clampc","class","color","column","cursor","customAlign","customJustify","disp","em","filter","filtera","flex","flexCenter","flexDir","fluid","fluidc","font","ga","gpos","gradient","height","hideOverflow","icon","id","index","initLetter","isHidden","isLink","italic","keySet","kind","layout","left","mar","marginOp","maxHeight","maxWidth","mboth","name","onScroll","onTap","opacity","overflow","pad","position","preffersId","radius","ranges","raster","removeDecoration","responsive","resprop","scale","sequence","shadow","simpleBorder","simpleCenter","size","span","sticky","stretch","stroke","tag","top","transform","transition","type","url","vtn","weight","width","zIndex"],"circle":["id","transform","type"],"polygon":["id","sides","transform","type"],"code":["id","transform","type"],"table":["id","items","transform","type"],"ulist":["absolute","align","alt","animation","area","background","backgroundOp","block","border","borderObj","breakWord","center","clampc","class","color","cursor","em","filtera","flex","fluid","fluidc","font","gpos","gradient","height","icon","id","index","initLetter","italic","items","keySet","kind","layout","left","mar","marginOp","maxWidth","onScroll","onTap","pad","preffersId","raster","removeDecoration","responsive","shadow","size","span","stroke","tag","top","transform","type","url","vtn","width"],"gridOverlay":["breakpoint","color","columns","font","fontSize","id","inset","letterSpacing","lineOpacity","lineWidth","markSize","marks","mobile","position","readouts","rows","type","uppercase","zIndex"]};
|
|
18
|
+
|
|
19
|
+
// Declared value shapes, keyed "type.param". Only parameters whose source
|
|
20
|
+
// carries a `//@ name {unit}:` annotation appear, so this grows as the
|
|
21
|
+
// library documents itself and never claims a shape it was not told.
|
|
22
|
+
export const ELEMENT_PARAM_UNITS = {"h1.area":"text","h1.background":"color","h1.borderObj":"object","h1.color":"color","h1.cursor":"css-cursor","h1.height":"css-length","h1.keySet":"keyset","h1.mar":"sides","h1.maxWidth":"css-length","h1.raster":"nodes","h1.resprop":"breakpoints","h1.size":"scale-step","h1.transform":"css-transform","h1.width":"css-length","h2.area":"text","h2.background":"color","h2.borderObj":"object","h2.color":"color","h2.cursor":"css-cursor","h2.height":"css-length","h2.keySet":"keyset","h2.mar":"sides","h2.maxWidth":"css-length","h2.raster":"nodes","h2.resprop":"breakpoints","h2.size":"scale-step","h2.transform":"css-transform","h2.width":"css-length","h3.area":"text","h3.background":"color","h3.borderObj":"object","h3.color":"color","h3.cursor":"css-cursor","h3.height":"css-length","h3.keySet":"keyset","h3.mar":"sides","h3.maxWidth":"css-length","h3.raster":"nodes","h3.resprop":"breakpoints","h3.size":"scale-step","h3.transform":"css-transform","h3.width":"css-length","h4.area":"text","h4.background":"color","h4.borderObj":"object","h4.color":"color","h4.cursor":"css-cursor","h4.height":"css-length","h4.keySet":"keyset","h4.mar":"sides","h4.maxWidth":"css-length","h4.raster":"nodes","h4.resprop":"breakpoints","h4.size":"scale-step","h4.transform":"css-transform","h4.width":"css-length","h5.area":"text","h5.background":"color","h5.borderObj":"object","h5.color":"color","h5.cursor":"css-cursor","h5.height":"css-length","h5.keySet":"keyset","h5.mar":"sides","h5.maxWidth":"css-length","h5.raster":"nodes","h5.resprop":"breakpoints","h5.size":"scale-step","h5.transform":"css-transform","h5.width":"css-length","h6.area":"text","h6.background":"color","h6.borderObj":"object","h6.color":"color","h6.cursor":"css-cursor","h6.height":"css-length","h6.keySet":"keyset","h6.mar":"sides","h6.maxWidth":"css-length","h6.raster":"nodes","h6.resprop":"breakpoints","h6.size":"scale-step","h6.transform":"css-transform","h6.width":"css-length","p.area":"text","p.background":"color","p.borderObj":"object","p.color":"color","p.cursor":"css-cursor","p.height":"css-length","p.keySet":"keyset","p.mar":"sides","p.maxWidth":"css-length","p.raster":"nodes","p.resprop":"breakpoints","p.size":"scale-step","p.transform":"css-transform","p.width":"css-length","img.area":"text","img.color":"color","img.height":"css-length","img.keySet":"keyset","img.maxWidth":"css-length","img.opacity":"ratio","img.radius":"px-or-length","img.resprop":"breakpoints","img.width":"css-length","img.zIndex":"count","a.background":"color","a.borderObj":"object","a.color":"color","a.hover":"object","a.mar":"sides","a.maxWidth":"css-length","a.pad":"sides","a.radius":"px-or-length","a.transform":"css-transform","a.width":"css-length","cards.area":"text","cards.background":"color","cards.borderObj":"object","cards.color":"color","cards.cursor":"css-cursor","cards.height":"css-length","cards.hover":"object","cards.keySet":"keyset","cards.mar":"sides","cards.maxHeight":"css-length","cards.maxWidth":"css-length","cards.opacity":"ratio","cards.pad":"sides","cards.radius":"px-or-length","cards.raster":"nodes","cards.resmar":"breakpoints","cards.respad":"breakpoints","cards.resprop":"breakpoints","cards.size":"scale-step","cards.transform":"css-transform","cards.width":"css-length","cards.zIndex":"count","nav.area":"text","nav.background":"color","nav.borderObj":"object","nav.color":"color","nav.cursor":"css-cursor","nav.height":"css-length","nav.hover":"object","nav.keySet":"keyset","nav.mar":"sides","nav.maxHeight":"css-length","nav.maxWidth":"css-length","nav.opacity":"ratio","nav.pad":"sides","nav.radius":"px-or-length","nav.raster":"nodes","nav.resmar":"breakpoints","nav.respad":"breakpoints","nav.resprop":"breakpoints","nav.size":"scale-step","nav.transform":"css-transform","nav.width":"css-length","nav.zIndex":"count","sideNav.area":"text","sideNav.background":"color","sideNav.borderObj":"object","sideNav.color":"color","sideNav.cursor":"css-cursor","sideNav.height":"css-length","sideNav.hover":"object","sideNav.keySet":"keyset","sideNav.mar":"sides","sideNav.maxHeight":"css-length","sideNav.maxWidth":"css-length","sideNav.opacity":"ratio","sideNav.pad":"sides","sideNav.radius":"px-or-length","sideNav.raster":"nodes","sideNav.resmar":"breakpoints","sideNav.respad":"breakpoints","sideNav.resprop":"breakpoints","sideNav.size":"scale-step","sideNav.transform":"css-transform","sideNav.width":"css-length","sideNav.zIndex":"count","row.area":"text","row.background":"color","row.borderObj":"object","row.color":"color","row.cursor":"css-cursor","row.height":"css-length","row.keySet":"keyset","row.mar":"sides","row.maxWidth":"css-length","row.radius":"px-or-length","row.raster":"nodes","row.size":"scale-step","row.transform":"css-transform","row.width":"css-length","radio.color":"color","radio.exact":"css-length","input.background":"color","input.color":"color","input.exact":"css-length","input.mar":"sides","input.maxWidth":"css-length","input.pad":"sides","input.radius":"px-or-length","input.theme":"object","labelInput.color":"color","labelInput.exact":"css-length","labelInput.mar":"sides","labelInput.pad":"sides","filePicker.background":"color","filePicker.color":"color","filePicker.radius":"px-or-length","picker.background":"color","picker.mar":"sides","picker.pad":"sides","picker.radius":"px-or-length","video.aspectRatio":"css-aspect-ratio","video.autoplay":"bool","video.background":"color","video.controls":"bool","video.decorative":"bool","video.height":"css-length","video.id":"text","video.label":"text","video.lazy":"bool","video.loop":"bool","video.maxWidth":"css-length","video.muted":"bool","video.objectFit":"enum(cover|contain|fill|none|scale-down)","video.opacity":"ratio","video.playsinline":"bool","video.poster":"url","video.preload":"enum(none|metadata|auto)","video.radius":"px-or-length","video.raster":"nodes","video.sources":"array","video.width":"css-length","multiswitcher.area":"text","button.background":"color","button.color":"color","button.exact":"css-length","button.height":"css-length","button.keySet":"keyset","button.radius":"px-or-length","button.resmar":"breakpoints","button.respad":"breakpoints","button.width":"css-length","checkbox.area":"text","checkbox.background":"color","checkbox.borderObj":"object","checkbox.color":"color","checkbox.cursor":"css-cursor","checkbox.height":"css-length","checkbox.keySet":"keyset","checkbox.mar":"sides","checkbox.maxWidth":"css-length","checkbox.pad":"sides","checkbox.raster":"nodes","checkbox.resmar":"breakpoints","checkbox.respad":"breakpoints","checkbox.size":"scale-step","checkbox.transform":"css-transform","checkbox.width":"css-length","stack.height":"css-length","simple.height":"css-length","wrap.area":"text","wrap.background":"color","wrap.borderObj":"object","wrap.color":"color","wrap.cursor":"css-cursor","wrap.height":"css-length","wrap.keySet":"keyset","wrap.mar":"sides","wrap.maxHeight":"css-length","wrap.maxWidth":"css-length","wrap.opacity":"ratio","wrap.pad":"sides","wrap.radius":"px-or-length","wrap.raster":"nodes","wrap.resprop":"breakpoints","wrap.size":"scale-step","wrap.transform":"css-transform","wrap.width":"css-length","wrap.zIndex":"count","circle.transform":"css-transform","polygon.transform":"css-transform","code.transform":"css-transform","table.transform":"css-transform","ulist.area":"text","ulist.background":"color","ulist.borderObj":"object","ulist.color":"color","ulist.cursor":"css-cursor","ulist.height":"css-length","ulist.keySet":"keyset","ulist.mar":"sides","ulist.maxWidth":"css-length","ulist.pad":"sides","ulist.raster":"nodes","ulist.size":"scale-step","ulist.transform":"css-transform","ulist.width":"css-length","gridOverlay.breakpoint":"px-number","gridOverlay.color":"color","gridOverlay.columns":"count","gridOverlay.font":"text","gridOverlay.fontSize":"px-number","gridOverlay.inset":"px-number","gridOverlay.letterSpacing":"text","gridOverlay.lineOpacity":"ratio","gridOverlay.lineWidth":"px-number","gridOverlay.markSize":"px-number","gridOverlay.marks":"enum(square|cross|none)","gridOverlay.mobile":"object","gridOverlay.position":"enum(fixed|absolute)","gridOverlay.readouts":"array","gridOverlay.rows":"count","gridOverlay.uppercase":"bool","gridOverlay.zIndex":"count"};
|
package/lib/grid-geometry.js
CHANGED
package/lib/link-getter.js
CHANGED
package/lib/morph-node.js
CHANGED
package/lib/normalize-spec.js
CHANGED
package/lib/parse-html.js
CHANGED
package/lib/raster-inspect.js
CHANGED
package/lib/raster-ops.js
CHANGED
package/lib/raster-presets.js
CHANGED
package/lib/resolve-refs.js
CHANGED
package/lib/scroll-video.js
CHANGED
package/lib/seo.js
CHANGED
package/lib/stacker.js
CHANGED
package/lib/suggest.js
CHANGED
package/lib/theme.js
CHANGED
package/lib/transform-anim.js
CHANGED
package/lib/transition.js
CHANGED