mosaic-headless 1.25.0 → 1.25.1
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/SKILL.md +2 -2
- package/assets/templates/platforms/claude-ai.json +1 -1
- package/assets/templates/platforms/claude-code.json +1 -1
- package/assets/templates/platforms/codex-cli.json +1 -1
- package/assets/templates/platforms/copilot.json +1 -1
- package/assets/templates/platforms/gemini-cli.json +1 -1
- package/data/mobile-audit.csv +20 -20
- package/data/navigation-verification.csv +14 -19
- package/data/placement-rules.csv +127 -127
- package/data/slider-verification.csv +15 -15
- package/package.json +1 -1
- package/references/design-system.md +32 -0
- package/scripts/check-release.mjs +1 -1
- package/sites/_moksa.py +104 -3
- package/sites/moksa.json +2410 -1033
- package/tools/build_page.py +8 -1
- package/tools/extract_placement.py +12 -1
package/SKILL.md
CHANGED
|
@@ -4,7 +4,7 @@ description: |
|
|
|
4
4
|
Build and modify Mosaic Pro (Nextend) sites by writing the underlying data model directly - no visual editor, no DOM. Query the real surface with `mo.py`, which joins every source table to the live sweeps so a lookup leads with the measured verdict rather than the declaration (126 node types, 191 properties, 98 style properties with 20 structured value shapes pinned down, 53 style states, 156 variants, 74 dynamic variables, 15 interaction triggers, 115 REST routes, 23 tables) instead of guessing, with every node type placed on a live site one at a time and asserted against the delivered HTML, the design-token and element-class layers verified against compiled CSS, the @VAR() dynamic language verified against rendered output, nine designed pages built through the tables themselves, and the delivered pages re-read in Chromium at three viewports so a rule that is present, correct and still wrong cannot pass. Drives Mosaic's own theme export/import and its plugin data upgrade from outside the editor and holds the copy against the source tree for tree. Measured on Mosaic Pro 1.0.9: the modal (`<dialog>`), OpenStreetMap, the exit-intent and scroll-depth triggers, run rules and the memory actions all built on a live page and read back, and the 1.0.7 -> 1.0.8 -> 1.0.9 migrations driven from outside wp-admin.
|
|
5
5
|
license: "MIT"
|
|
6
6
|
author: "moksa (https://moksaweb.com)"
|
|
7
|
-
version: "1.25.
|
|
7
|
+
version: "1.25.1"
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Headless Mosaic
|
|
@@ -530,7 +530,7 @@ so the pattern is in the data, not just in this paragraph.
|
|
|
530
530
|
| `data/conversion-batch.csv` | 19 | **converted, built and checked live, one page after another** - every Elementor page of a production site through the converter, with per-page element and content counts |
|
|
531
531
|
| `data/token-benchmark.csv` | 6 | **measured with tiktoken** - the same six lookups priced three ways: reading the plugin source, loading every table, querying `mo.py`. 71-99.5% fewer tokens than the source and 99.6%+ fewer than the tables, which total 259,539 - never load them, query them |
|
|
532
532
|
| `data/slider-verification.csv` | 30 | **driven live** - two sliders, one autoplaying and one a carousel: advance, arrows, bullets, keyboard, reduced motion |
|
|
533
|
-
| `data/navigation-verification.csv` |
|
|
533
|
+
| `data/navigation-verification.csv` | 22 | **fetched and opened live** - every menu item is a real `<a href>`, every page of the nineteen answers 200, and no page scrolls sideways at 390 / 768 / 1280 |
|
|
534
534
|
| `data/page-modal-verification.csv` | 19 | **read live** - one modal per page, and what each one's trigger, run rule, memory scope and dismissal policy actually came out as |
|
|
535
535
|
| `data/dialog-verification.csv` | 19 | **driven live** - the 1.0.9 modal, its triggers, its run rules and the memory actions, each exercised in a real browser |
|
|
536
536
|
| `data/dialog-form-verification.csv` | 49 | **driven live** - the same three nodes made into five FORMS (sheet, drawer, corner, takeover, gate), each re-opened at 390px and 768px; also where `pickOne` on a click turned out to be a latch rather than a lottery |
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"description": "Build and modify Mosaic Pro (Nextend) sites by writing the underlying data model directly - no visual editor, no DOM. Query the real surface (122 node types, 181 node properties, 98 style properties, 53 style states, 151 element classes, 74 dynamic variables, 114 REST routes, 23 tables) instead of guessing, with every node type placed on a live site one at a time and asserted against the delivered HTML, every style and node property swept against the compiled CSS and markup, and 569 responsive declarations checked against the stylesheet the site actually served.",
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"author": "moksa (https://moksaweb.com)",
|
|
23
|
-
"version": "1.25.
|
|
23
|
+
"version": "1.25.1"
|
|
24
24
|
},
|
|
25
25
|
"loaderBehaviour": "Upload via Settings -> Skills -> Upload. Claude.ai parses SKILL.md frontmatter and surfaces the skill in your library. The extraction tool (extract-block-schema.php) needs a live WP-CLI connection and won't run in the sandbox; use it from a local terminal against your own site instead.",
|
|
26
26
|
"uploadSteps": [
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"description": "Build and modify Mosaic Pro (Nextend) sites by writing the underlying data model directly - no visual editor, no DOM. Query the real surface (122 node types, 181 node properties, 98 style properties, 53 style states, 151 element classes, 74 dynamic variables, 114 REST routes, 23 tables) instead of guessing, with every node type placed on a live site one at a time and asserted against the delivered HTML, every style and node property swept against the compiled CSS and markup, and 569 responsive declarations checked against the stylesheet the site actually served.",
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"author": "moksa (https://moksaweb.com)",
|
|
23
|
-
"version": "1.25.
|
|
23
|
+
"version": "1.25.1"
|
|
24
24
|
},
|
|
25
25
|
"loaderBehaviour": "Auto-loads on session start when SKILL.md frontmatter parses successfully.",
|
|
26
26
|
"verified": true,
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"description": "Build and modify Mosaic Pro (Nextend) sites by writing the underlying data model directly - no visual editor, no DOM. Query the real surface (122 node types, 181 node properties, 98 style properties, 53 style states, 151 element classes, 74 dynamic variables, 114 REST routes, 23 tables) instead of guessing, with every node type placed on a live site one at a time and asserted against the delivered HTML, every style and node property swept against the compiled CSS and markup, and 569 responsive declarations checked against the stylesheet the site actually served.",
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"author": "moksa (https://moksaweb.com)",
|
|
23
|
-
"version": "1.25.
|
|
23
|
+
"version": "1.25.1"
|
|
24
24
|
},
|
|
25
25
|
"loaderBehaviour": "Confirmed (2026-07-11): Codex CLI natively supports the SKILL.md spec. Place SKILL.md under .codex/skills/<name>/ (project) or ~/.codex/skills/<name>/ (personal) and Codex loads the name+description at session start, then the full body on demand. A parallel, broader convention .agents/skills/ (searched from cwd up to repo root, then ~/.agents/skills/) also exists across multiple tools - if your Codex CLI version prioritizes that path instead, mirror the same SKILL.md there.",
|
|
26
26
|
"verified": true,
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"description": "Build and modify Mosaic Pro (Nextend) sites by writing the underlying data model directly - no visual editor, no DOM. Query the real surface (122 node types, 181 node properties, 98 style properties, 53 style states, 151 element classes, 74 dynamic variables, 114 REST routes, 23 tables) instead of guessing, with every node type placed on a live site one at a time and asserted against the delivered HTML, every style and node property swept against the compiled CSS and markup, and 569 responsive declarations checked against the stylesheet the site actually served.",
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"author": "moksa (https://moksaweb.com)",
|
|
23
|
-
"version": "1.25.
|
|
23
|
+
"version": "1.25.1"
|
|
24
24
|
},
|
|
25
25
|
"loaderBehaviour": "CHANGED as of 2026-07-11: GitHub Copilot added a proper '.github/skills/' Agent Skills directory (December 2025), alongside the older single-file .github/copilot-instructions.md convention. This config targets the new skills-directory form. If your Copilot version predates this (pre Dec 2025), use the instructions-append fallback instead (see fallback below).",
|
|
26
26
|
"fallback": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"description": "Build and modify Mosaic Pro (Nextend) sites by writing the underlying data model directly - no visual editor, no DOM. Query the real surface (122 node types, 181 node properties, 98 style properties, 53 style states, 151 element classes, 74 dynamic variables, 114 REST routes, 23 tables) instead of guessing, with every node type placed on a live site one at a time and asserted against the delivered HTML, every style and node property swept against the compiled CSS and markup, and 569 responsive declarations checked against the stylesheet the site actually served.",
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"author": "moksa (https://moksaweb.com)",
|
|
23
|
-
"version": "1.25.
|
|
23
|
+
"version": "1.25.1"
|
|
24
24
|
},
|
|
25
25
|
"loaderBehaviour": "CHANGED as of 2026-07-11: Gemini CLI now natively supports the same SKILL.md standard as Claude Code and Codex CLI - the same directory-based skill works unmodified. Gemini CLI discovers skills in this precedence order: built-in, extension skills, ~/.gemini/skills/ (personal), .gemini/skills/ (project, shared via version control). At session start Gemini injects each discovered skill's name+description into the system prompt and calls activate_skill when a task matches.",
|
|
26
26
|
"verified": true,
|
package/data/mobile-audit.csv
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
path,width,finding,element,detail
|
|
2
2
|
dialogs/,390,GRID_NOT_COLLAPSED,mk-f-links,2 columns at 390px
|
|
3
|
-
sliders/,390,SMALL_TARGET,sl-main-nav-dot,
|
|
4
|
-
sliders/,390,SMALL_TARGET,sl-main-nav-dot,
|
|
5
|
-
sliders/,390,SMALL_TARGET,sl-main-nav-dot,
|
|
6
|
-
sliders/,390,SMALL_TARGET,sl-main-nav-dot,
|
|
7
|
-
sliders/,390,SMALL_TARGET,sl-carousel-nav-dot,
|
|
8
|
-
sliders/,390,SMALL_TARGET,sl-carousel-nav-dot,
|
|
9
|
-
sliders/,390,SMALL_TARGET,sl-carousel-nav-dot,
|
|
10
|
-
sliders/,390,SMALL_TARGET,sl-carousel-nav-dot,
|
|
11
|
-
sliders/,390,SMALL_TARGET,sl-carousel-nav-dot,
|
|
12
|
-
sliders/,390,SMALL_TARGET,sl-carousel-nav-dot,
|
|
3
|
+
sliders/,390,SMALL_TARGET,sl-main-nav-dot,34x28:
|
|
4
|
+
sliders/,390,SMALL_TARGET,sl-main-nav-dot,34x28:
|
|
5
|
+
sliders/,390,SMALL_TARGET,sl-main-nav-dot,34x28:
|
|
6
|
+
sliders/,390,SMALL_TARGET,sl-main-nav-dot,34x28:
|
|
7
|
+
sliders/,390,SMALL_TARGET,sl-carousel-nav-dot,34x28:
|
|
8
|
+
sliders/,390,SMALL_TARGET,sl-carousel-nav-dot,34x28:
|
|
9
|
+
sliders/,390,SMALL_TARGET,sl-carousel-nav-dot,34x28:
|
|
10
|
+
sliders/,390,SMALL_TARGET,sl-carousel-nav-dot,34x28:
|
|
11
|
+
sliders/,390,SMALL_TARGET,sl-carousel-nav-dot,34x28:
|
|
12
|
+
sliders/,390,SMALL_TARGET,sl-carousel-nav-dot,34x28:
|
|
13
13
|
sliders/,390,GRID_NOT_COLLAPSED,mk-f-links,2 columns at 390px
|
|
14
14
|
tokens/,390,GRID_NOT_COLLAPSED,mk-f-links,2 columns at 390px
|
|
15
15
|
dynamic/,390,GRID_NOT_COLLAPSED,mk-f-links,2 columns at 390px
|
|
@@ -17,18 +17,18 @@ conversion/,390,GRID_NOT_COLLAPSED,mk-f-links,2 columns at 390px
|
|
|
17
17
|
dialogs/,768,LONG_MEASURE,m-text,46 chars/line
|
|
18
18
|
dialogs/,768,LONG_MEASURE,m-text,45 chars/line
|
|
19
19
|
dialogs/,768,LONG_MEASURE,m-text,45 chars/line
|
|
20
|
-
sliders/,768,SMALL_TARGET,sl-main-nav-dot,
|
|
21
|
-
sliders/,768,SMALL_TARGET,sl-main-nav-dot,
|
|
22
|
-
sliders/,768,SMALL_TARGET,sl-main-nav-dot,
|
|
23
|
-
sliders/,768,SMALL_TARGET,sl-main-nav-dot,
|
|
20
|
+
sliders/,768,SMALL_TARGET,sl-main-nav-dot,34x28:
|
|
21
|
+
sliders/,768,SMALL_TARGET,sl-main-nav-dot,34x28:
|
|
22
|
+
sliders/,768,SMALL_TARGET,sl-main-nav-dot,34x28:
|
|
23
|
+
sliders/,768,SMALL_TARGET,sl-main-nav-dot,34x28:
|
|
24
24
|
sliders/,768,LONG_MEASURE,m-text,44 chars/line
|
|
25
25
|
sliders/,768,LONG_MEASURE,m-text,44 chars/line
|
|
26
|
-
sliders/,768,SMALL_TARGET,sl-carousel-nav-dot,
|
|
27
|
-
sliders/,768,SMALL_TARGET,sl-carousel-nav-dot,
|
|
28
|
-
sliders/,768,SMALL_TARGET,sl-carousel-nav-dot,
|
|
29
|
-
sliders/,768,SMALL_TARGET,sl-carousel-nav-dot,
|
|
30
|
-
sliders/,768,SMALL_TARGET,sl-carousel-nav-dot,
|
|
31
|
-
sliders/,768,SMALL_TARGET,sl-carousel-nav-dot,
|
|
26
|
+
sliders/,768,SMALL_TARGET,sl-carousel-nav-dot,34x28:
|
|
27
|
+
sliders/,768,SMALL_TARGET,sl-carousel-nav-dot,34x28:
|
|
28
|
+
sliders/,768,SMALL_TARGET,sl-carousel-nav-dot,34x28:
|
|
29
|
+
sliders/,768,SMALL_TARGET,sl-carousel-nav-dot,34x28:
|
|
30
|
+
sliders/,768,SMALL_TARGET,sl-carousel-nav-dot,34x28:
|
|
31
|
+
sliders/,768,SMALL_TARGET,sl-carousel-nav-dot,34x28:
|
|
32
32
|
tokens/,768,LONG_MEASURE,m-text,47 chars/line
|
|
33
33
|
tokens/,768,LONG_MEASURE,m-text,55 chars/line
|
|
34
34
|
tokens/,768,LONG_MEASURE,m-text,55 chars/line
|
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
check,result,detail
|
|
2
|
-
FRONT_PAGE,PASS,"HTTP 200,
|
|
3
|
-
MENU_IS_LINKS,PASS,
|
|
4
|
-
NAV 服務,PASS,"#services -> HTTP 200,
|
|
5
|
-
NAV 作品,PASS,"#works -> HTTP 200,
|
|
6
|
-
NAV 產品,PASS,"#products -> HTTP 200,
|
|
7
|
-
NAV
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
PAGE
|
|
14
|
-
PAGE
|
|
15
|
-
PAGE
|
|
16
|
-
PAGE conversion,PASS,"HTTP 200, 98200 bytes"
|
|
17
|
-
PAGE dynamic,PASS,"HTTP 200, 108379 bytes"
|
|
18
|
-
PAGE tokens,PASS,"HTTP 200, 120790 bytes"
|
|
19
|
-
PAGE sliders,PASS,"HTTP 200, 132753 bytes"
|
|
20
|
-
PAGE dialogs,PASS,"HTTP 200, 202724 bytes"
|
|
2
|
+
FRONT_PAGE,PASS,"HTTP 200, 238746 bytes"
|
|
3
|
+
MENU_IS_LINKS,PASS,4 real <a href> in #mk-nav
|
|
4
|
+
NAV 服務,PASS,"#services -> HTTP 200, 238844 bytes"
|
|
5
|
+
NAV 作品,PASS,"#works -> HTTP 200, 238844 bytes"
|
|
6
|
+
NAV 產品,PASS,"#products -> HTTP 200, 238844 bytes"
|
|
7
|
+
NAV 聯絡,PASS,"#contact -> HTTP 200, 238844 bytes"
|
|
8
|
+
PAGE moksa,PASS,"HTTP 200, 238747 bytes"
|
|
9
|
+
PAGE my-account,PASS,"HTTP 200, 98954 bytes"
|
|
10
|
+
PAGE intro,PASS,"HTTP 200, 132660 bytes"
|
|
11
|
+
PAGE conversion,PASS,"HTTP 200, 100741 bytes"
|
|
12
|
+
PAGE dynamic,PASS,"HTTP 200, 110919 bytes"
|
|
13
|
+
PAGE tokens,PASS,"HTTP 200, 123331 bytes"
|
|
14
|
+
PAGE sliders,PASS,"HTTP 200, 150106 bytes"
|
|
15
|
+
PAGE dialogs,PASS,"HTTP 200, 204885 bytes"
|
|
21
16
|
WIDTH moksa,PASS,"no sideways scroll at 390,768,1280"
|
|
22
17
|
WIDTH my-account,PASS,"no sideways scroll at 390,768,1280"
|
|
23
18
|
WIDTH intro,PASS,"no sideways scroll at 390,768,1280"
|
package/data/placement-rules.csv
CHANGED
|
@@ -1,127 +1,127 @@
|
|
|
1
|
-
type,rule,allowed_children,nested_rule,declared_in
|
|
2
|
-
__unknown,none
|
|
3
|
-
accordion,allow,accordion-item|accordion-loop-items,yes,Mosaic/NodeTypes/Accordion/AccordionElementTypeFactory.php
|
|
4
|
-
accordion-content,any,,,Mosaic/NodeTypes/Accordion/AccordionItem/AccordionContent/AccordionContentElementTypeFactory.php
|
|
5
|
-
accordion-item,allow,accordion-item|accordion-loop-items,yes,Mosaic/NodeTypes/Accordion/AccordionItem/AccordionItemElementTypeFactory.php
|
|
6
|
-
accordion-loop-items,allow,accordion,yes,Mosaic/NodeTypes/Accordion/AccordionLoopItems/AccordionLoopItemsElementTypeFactory.php
|
|
7
|
-
accordion-title,any,,,Mosaic/NodeTypes/Accordion/AccordionItem/AccordionTitle/AccordionTitleElementTypeFactory.php
|
|
8
|
-
body,any
|
|
9
|
-
button,any
|
|
10
|
-
checkbox-input,none,,yes
|
|
11
|
-
choice,any,,yes
|
|
12
|
-
choice-content,any,,,Mosaic/NodeTypes/Pro/Form/Form/MElements/ChoiceField/Content/ChoiceContentElementTypeFactory.php
|
|
13
|
-
choice-field,allow,choice-content|choice-legend,yes
|
|
14
|
-
choice-label,none,,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/Choice/ChoiceLabel/ChoiceLabelElementTypeFactory.php
|
|
15
|
-
choice-legend,none,,,Mosaic/NodeTypes/Pro/Form/Form/MElements/ChoiceField/Legend/ChoiceLegendElementTypeFactory.php
|
|
16
|
-
code,none
|
|
17
|
-
component-external,none
|
|
18
|
-
component-instance,any
|
|
19
|
-
component-internal,any
|
|
20
|
-
component-root,none
|
|
21
|
-
div,any
|
|
22
|
-
document,none
|
|
23
|
-
dropdown,none
|
|
24
|
-
dropdown-toggle,any,,,Mosaic/NodeTypes/Menu/Dropdown/DropdownToggle/DropdownToggleElementTypeFactory.php
|
|
25
|
-
dropdown-wide,none
|
|
26
|
-
dropdown-wrapper,none,,,Mosaic/NodeTypes/Menu/Dropdown/Dropdown/DropdownWrapper/DropdownWrapperElementTypeFactory.php
|
|
27
|
-
dropdown-wrapper-wide,none,,,Mosaic/NodeTypes/Menu/Dropdown/DropdownWide/DropdownWrapperWide/DropdownWrapperWideElementTypeFactory.php
|
|
28
|
-
field,any,,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/Field/FieldElementTypeFactory.php
|
|
29
|
-
fieldset,complex,,yes
|
|
30
|
-
fileupload-input,none,,yes
|
|
31
|
-
form,any,,,Mosaic/NodeTypes/Pro/Form/Form/FormElementTypeFactory.php
|
|
32
|
-
form-error,none,,yes
|
|
33
|
-
form-multi-steps,allow,form-multi-steps-steps|multi-steps-forms,yes
|
|
34
|
-
form-multi-steps-step,any,,,Mosaic/NodeTypes/Pro/Form/Form/MElements/MultiSteps/Steps/Step/StepElementTypeFactory.php
|
|
35
|
-
form-multi-steps-steps,allow,form-multi-steps-step,,Mosaic/NodeTypes/Pro/Form/Form/MElements/MultiSteps/Steps/StepsElementTypeFactory.php
|
|
36
|
-
form-wrapper,allow,form|success-screen,yes
|
|
37
|
-
googlemaps,none
|
|
38
|
-
hidden-input,none,,yes
|
|
39
|
-
icon,none
|
|
40
|
-
image,none
|
|
41
|
-
label,none,,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/Label/LabelElementTypeFactory.php
|
|
42
|
-
list,allow,list-item|list-loop-items
|
|
43
|
-
list-item,any,,yes
|
|
44
|
-
list-loop-items,allow,list-item,yes
|
|
45
|
-
loop,allow,loop-pagination
|
|
46
|
-
loop-item,any,,yes
|
|
47
|
-
loop-items,allow,loop-item,yes,Mosaic/NodeTypes/Loop/LoopItems/LoopItemsElementTypeFactory.php
|
|
48
|
-
loop-no-result,any,,,Mosaic/NodeTypes/Loop/LoopNoResult/LoopNoResultElementTypeFactory.php
|
|
49
|
-
loop-pagination,any,,yes
|
|
50
|
-
loop-pagination-button-next,any,,yes
|
|
51
|
-
loop-pagination-button-previous,any,,yes
|
|
52
|
-
loop-pagination-number,none
|
|
53
|
-
loop-pagination-numbers,allow,loop-pagination-number,yes,Mosaic/NodeTypes/Loop/LoopPagination/Numbers/LoopPaginationNumbersElementTypeFactory.php
|
|
54
|
-
master-root,none
|
|
55
|
-
menu,any
|
|
56
|
-
menu-link,any
|
|
57
|
-
modal,any
|
|
58
|
-
modal-overlay,any,,yes
|
|
59
|
-
modal-window,any
|
|
60
|
-
multi-steps-back-button,any,,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/MultiSteps/Forms/FormStep/Button/ButtonStepBack/FormStepButtonBackElementTypeFactory.php
|
|
61
|
-
multi-steps-form-step,any,,,Mosaic/NodeTypes/Pro/Form/Form/MElements/MultiSteps/Forms/FormStep/FormStepElementTypeFactory.php
|
|
62
|
-
multi-steps-forms,allow,form-multi-steps,,Mosaic/NodeTypes/Pro/Form/Form/MElements/MultiSteps/Forms/FormsElementTypeFactory.php
|
|
63
|
-
multi-steps-next-button,any,,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/MultiSteps/Forms/FormStep/Button/ButtonStepNext/FormStepButtonNextElementTypeFactory.php
|
|
64
|
-
navbar,none,,yes,Mosaic/NodeTypes/Navbar/NavbarElementTypeFactory.php
|
|
65
|
-
navbar-toggle,any,,yes,Mosaic/NodeTypes/Navbar/NavbarToggle/NavbarToggleElementTypeFactory.php
|
|
66
|
-
navigation,any,,yes,Mosaic/NodeTypes/Navbar/Navigation/NavigationElementTypeFactory.php
|
|
67
|
-
openstreetmap,none
|
|
68
|
-
radio-input,none,,yes
|
|
69
|
-
recaptcha,none,,yes
|
|
70
|
-
section,any,,yes
|
|
71
|
-
select-input,complex,,yes
|
|
72
|
-
select-option,none,,yes
|
|
73
|
-
slider,any
|
|
74
|
-
slider-arrow-left,none,,,Mosaic/NodeTypes/Pro/Slider/SliderArrow/SliderArrowLeft/SliderArrowLeftElementTypeFactory.php
|
|
75
|
-
slider-arrow-right,none,,,Mosaic/NodeTypes/Pro/Slider/SliderArrow/SliderArrowRight/SliderArrowRightMElementTypeFactory.php
|
|
76
|
-
slider-loop-slides,allow,slider-slides,yes,Mosaic/NodeTypes/Pro/Slider/SliderLoopSlides/SliderLoopSlidesElementTypeFactory.php
|
|
77
|
-
slider-navigation,allow,slider-navigation-bullet,yes,Mosaic/NodeTypes/Pro/Slider/SliderNavigation/SliderNavigationElementTypeFactory.php
|
|
78
|
-
slider-navigation-bullet,none
|
|
79
|
-
slider-slide,any,,yes
|
|
80
|
-
slider-slides,allow,slider-loop-slides|slider-slide,,Mosaic/NodeTypes/Pro/Slider/SliderSlides/SliderSlidesElementTypeFactory.php
|
|
81
|
-
styleguide-a,none
|
|
82
|
-
styleguide-entry-content,any,,yes
|
|
83
|
-
styleguide-entry-content-button,none,,yes
|
|
84
|
-
styleguide-entry-content-code,none,,yes
|
|
85
|
-
styleguide-entry-content-image,allow,styleguide-entry-content-image-caption|styleguide-entry-content-image-img,yes
|
|
86
|
-
styleguide-entry-content-image-caption,none
|
|
87
|
-
styleguide-entry-content-image-img,none
|
|
88
|
-
styleguide-entry-content-list,allow,styleguide-entry-content-list-item,yes
|
|
89
|
-
styleguide-entry-content-list-item,none
|
|
90
|
-
styleguide-entry-content-preformatted,none,,yes
|
|
91
|
-
styleguide-entry-content-pullquote,allow,styleguide-entry-content-pullquote-cite|styleguide-entry-content-pullquote-paragraph,yes
|
|
92
|
-
styleguide-entry-content-pullquote-cite,none
|
|
93
|
-
styleguide-entry-content-pullquote-paragraph,none
|
|
94
|
-
styleguide-entry-content-quote-cite,none
|
|
95
|
-
styleguide-entry-content-separator,none,,yes
|
|
96
|
-
styleguide-entry-content-text,none,,yes
|
|
97
|
-
styleguide-entry-content-text-quote,complex,,yes
|
|
98
|
-
styleguide-entry-content-verse,none,,yes
|
|
99
|
-
styleguide-root,none
|
|
100
|
-
submit-button,allow,submit-label|submit-loading,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/SubmitButton/SubmitButtonElementTypeFactory.php
|
|
101
|
-
submit-label,none,,,Mosaic/NodeTypes/Pro/Form/Form/MElements/SubmitButton/Label/SubmitLabelElementTypeFactory.php
|
|
102
|
-
submit-loading,none,,,Mosaic/NodeTypes/Pro/Form/Form/MElements/SubmitButton/Loading/SubmitLoadingElementTypeFactory.php
|
|
103
|
-
success-screen,any,,,Mosaic/NodeTypes/Pro/Form/SuccessScreen/SuccessScreenElementTypeFactory.php
|
|
104
|
-
tabs,allow,tabs-content|tabs-menu,,Mosaic/NodeTypes/Pro/Tabs/TabsElementTypeFactory.php
|
|
105
|
-
tabs-content,allow,tabs-loop-tab-panes|tabs-tab-pane,,Mosaic/NodeTypes/Pro/Tabs/TabsContent/TabsContentElementTypeFactory.php
|
|
106
|
-
tabs-loop-tab-panes,allow,tabs-tab-pane,,Mosaic/NodeTypes/Pro/Tabs/TabsContent/LoopTabPanes/TabLoopTabPanesElementTypeFactory.php
|
|
107
|
-
tabs-loop-tabs,allow,tabs-tab,yes,Mosaic/NodeTypes/Pro/Tabs/TabsMenu/LoopTabs/TabLoopTabsElementTypeFactory.php
|
|
108
|
-
tabs-menu,allow,tabs-loop-tabs|tabs-tab,,Mosaic/NodeTypes/Pro/Tabs/TabsMenu/TabsMenuElementTypeFactory.php
|
|
109
|
-
tabs-tab,any,,yes,Mosaic/NodeTypes/Pro/Tabs/TabsMenu/Tab/TabElementTypeFactory.php
|
|
110
|
-
tabs-tab-pane,any,,,Mosaic/NodeTypes/Pro/Tabs/TabsContent/TabPane/TabPaneElementTypeFactory.php
|
|
111
|
-
template-external,none,,yes
|
|
112
|
-
template-internal,any,,,Mosaic/NodeTypes/Template/TemplateInternal/TemplateInternalElementTypeFactory.php
|
|
113
|
-
text,none,,,Mosaic/NodeTypes/Text/TextElementTypeFactory.php
|
|
114
|
-
text-input,none,,yes
|
|
115
|
-
textarea-input,none,,yes
|
|
116
|
-
turnstile,none,,yes
|
|
117
|
-
video,none
|
|
118
|
-
vimeo,none
|
|
119
|
-
wp-menu,allow,list-item,yes
|
|
120
|
-
wpContent,none
|
|
121
|
-
wpShortcode,none
|
|
122
|
-
wysiwyg-linebreak,none
|
|
123
|
-
wysiwyg-link,none
|
|
124
|
-
wysiwyg-span,none
|
|
125
|
-
wysiwyg-text,none
|
|
126
|
-
wysiwyg-variable,none
|
|
127
|
-
youtube,none
|
|
1
|
+
type,rule,allowed_children,nested_rule,takes_children,declared_in
|
|
2
|
+
__unknown,none,,,,Mosaic/NodeTypes/Unknown/UnknownElementTypeFactory.php
|
|
3
|
+
accordion,allow,accordion-item|accordion-loop-items,yes,yes,Mosaic/NodeTypes/Accordion/AccordionElementTypeFactory.php
|
|
4
|
+
accordion-content,any,,,yes,Mosaic/NodeTypes/Accordion/AccordionItem/AccordionContent/AccordionContentElementTypeFactory.php
|
|
5
|
+
accordion-item,allow,accordion-item|accordion-loop-items,yes,yes,Mosaic/NodeTypes/Accordion/AccordionItem/AccordionItemElementTypeFactory.php
|
|
6
|
+
accordion-loop-items,allow,accordion,yes,yes,Mosaic/NodeTypes/Accordion/AccordionLoopItems/AccordionLoopItemsElementTypeFactory.php
|
|
7
|
+
accordion-title,any,,,yes,Mosaic/NodeTypes/Accordion/AccordionItem/AccordionTitle/AccordionTitleElementTypeFactory.php
|
|
8
|
+
body,any,,,,Mosaic/NodeTypes/Document/Body/BodyElementTypeFactory.php
|
|
9
|
+
button,any,,,,Mosaic/NodeTypes/Button/ButtonElementTypeFactory.php
|
|
10
|
+
checkbox-input,none,,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/Checkbox/CheckboxInput/CheckboxInputElementTypeFactory.php
|
|
11
|
+
choice,any,,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/Choice/ChoiceElementTypeFactory.php
|
|
12
|
+
choice-content,any,,,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/ChoiceField/Content/ChoiceContentElementTypeFactory.php
|
|
13
|
+
choice-field,allow,choice-content|choice-legend,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/ChoiceField/ChoiceFieldElementTypeFactory.php
|
|
14
|
+
choice-label,none,,yes,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/Choice/ChoiceLabel/ChoiceLabelElementTypeFactory.php
|
|
15
|
+
choice-legend,none,,,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/ChoiceField/Legend/ChoiceLegendElementTypeFactory.php
|
|
16
|
+
code,none,,,,Mosaic/NodeTypes/Pro/Code/CodeElementTypeFactory.php
|
|
17
|
+
component-external,none,,,,Mosaic/NodeTypes/Component/Component/ComponentExternal/ComponentExternalElementTypeFactory.php
|
|
18
|
+
component-instance,any,,,,Mosaic/NodeTypes/Component/ComponentInstance/ComponentInstanceElementTypeFactory.php
|
|
19
|
+
component-internal,any,,,,Mosaic/NodeTypes/Component/Component/ComponentInternal/ComponentInternalElementTypeFactory.php
|
|
20
|
+
component-root,none,,,,Mosaic/NodeTypes/Root/Component/ComponentRootElementTypeFactory.php
|
|
21
|
+
div,any,,,,Mosaic/NodeTypes/Div/DivElementTypeFactory.php
|
|
22
|
+
document,none,,,,Mosaic/NodeTypes/Document/DocumentElementTypeFactory.php
|
|
23
|
+
dropdown,none,,,,Mosaic/NodeTypes/Menu/Dropdown/Dropdown/DropdownElementTypeFactory.php
|
|
24
|
+
dropdown-toggle,any,,,yes,Mosaic/NodeTypes/Menu/Dropdown/DropdownToggle/DropdownToggleElementTypeFactory.php
|
|
25
|
+
dropdown-wide,none,,,,Mosaic/NodeTypes/Menu/Dropdown/DropdownWide/DropdownWideElementTypeFactory.php
|
|
26
|
+
dropdown-wrapper,none,,,yes,Mosaic/NodeTypes/Menu/Dropdown/Dropdown/DropdownWrapper/DropdownWrapperElementTypeFactory.php
|
|
27
|
+
dropdown-wrapper-wide,none,,,yes,Mosaic/NodeTypes/Menu/Dropdown/DropdownWide/DropdownWrapperWide/DropdownWrapperWideElementTypeFactory.php
|
|
28
|
+
field,any,,yes,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/Field/FieldElementTypeFactory.php
|
|
29
|
+
fieldset,complex,,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/FieldSet/FieldSetElementTypeFactory.php
|
|
30
|
+
fileupload-input,none,,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/FileUpload/FileUploadElementTypeFactory.php
|
|
31
|
+
form,any,,,yes,Mosaic/NodeTypes/Pro/Form/Form/FormElementTypeFactory.php
|
|
32
|
+
form-error,none,,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/FormError/FormErrorElementTypeFactory.php
|
|
33
|
+
form-multi-steps,allow,form-multi-steps-steps|multi-steps-forms,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/MultiSteps/MultiStepsElementTypeFactory.php
|
|
34
|
+
form-multi-steps-step,any,,,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/MultiSteps/Steps/Step/StepElementTypeFactory.php
|
|
35
|
+
form-multi-steps-steps,allow,form-multi-steps-step,,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/MultiSteps/Steps/StepsElementTypeFactory.php
|
|
36
|
+
form-wrapper,allow,form|success-screen,yes,,Mosaic/NodeTypes/Pro/Form/FormWrapperElementTypeFactory.php
|
|
37
|
+
googlemaps,none,,,,Mosaic/NodeTypes/GoogleMaps/GoogleMapsElementTypeFactory.php
|
|
38
|
+
hidden-input,none,,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/HiddenInput/HiddenInputElementTypeFactory.php
|
|
39
|
+
icon,none,,,,Mosaic/NodeTypes/Icon/IconElementTypeFactory.php
|
|
40
|
+
image,none,,,,Mosaic/NodeTypes/Image/ImageElementTypeFactory.php
|
|
41
|
+
label,none,,yes,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/Label/LabelElementTypeFactory.php
|
|
42
|
+
list,allow,list-item|list-loop-items,,,Mosaic/NodeTypes/ListElement/ListElementTypeFactory.php
|
|
43
|
+
list-item,any,,yes,,Mosaic/NodeTypes/ListElement/ListItem/ListItemElementTypeFactory.php
|
|
44
|
+
list-loop-items,allow,list-item,yes,,Mosaic/NodeTypes/ListElement/ListLoopItems/ListLoopItemsElementTypeFactory.php
|
|
45
|
+
loop,allow,loop-pagination,,,Mosaic/NodeTypes/Loop/LoopElementTypeFactory.php
|
|
46
|
+
loop-item,any,,yes,,Mosaic/NodeTypes/Loop/LoopItems/LoopItem/LoopItemElementTypeFactory.php
|
|
47
|
+
loop-items,allow,loop-item,yes,yes,Mosaic/NodeTypes/Loop/LoopItems/LoopItemsElementTypeFactory.php
|
|
48
|
+
loop-no-result,any,,,yes,Mosaic/NodeTypes/Loop/LoopNoResult/LoopNoResultElementTypeFactory.php
|
|
49
|
+
loop-pagination,any,,yes,,Mosaic/NodeTypes/Loop/LoopPagination/LoopPaginationElementTypeFactory.php
|
|
50
|
+
loop-pagination-button-next,any,,yes,,Mosaic/NodeTypes/Loop/LoopPagination/Button/ButtonNext/LoopPaginationButtonNextElementTypeFactory.php
|
|
51
|
+
loop-pagination-button-previous,any,,yes,,Mosaic/NodeTypes/Loop/LoopPagination/Button/ButtonPrevious/LoopPaginationButtonPreviousElementTypeFactory.php
|
|
52
|
+
loop-pagination-number,none,,,,Mosaic/NodeTypes/Loop/LoopPagination/Numbers/Number/LoopPaginationNumberElementTypeFactory.php
|
|
53
|
+
loop-pagination-numbers,allow,loop-pagination-number,yes,yes,Mosaic/NodeTypes/Loop/LoopPagination/Numbers/LoopPaginationNumbersElementTypeFactory.php
|
|
54
|
+
master-root,none,,,,Mosaic/NodeTypes/Root/Master/MasterRootElementTypeFactory.php
|
|
55
|
+
menu,any,,,,Mosaic/NodeTypes/Menu/MenuElementTypeFactory.php
|
|
56
|
+
menu-link,any,,,,Mosaic/NodeTypes/Menu/MenuLink/MenuLinkElementTypeFactory.php
|
|
57
|
+
modal,any,,,,Mosaic/NodeTypes/Dialog/Modal/ModalElementTypeFactory.php
|
|
58
|
+
modal-overlay,any,,yes,,Mosaic/NodeTypes/Dialog/Modal/ModalOverlay/ModalOverlayElementTypeFactory.php
|
|
59
|
+
modal-window,any,,,,Mosaic/NodeTypes/Dialog/Modal/ModalWindow/ModalWindowElementTypeFactory.php
|
|
60
|
+
multi-steps-back-button,any,,yes,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/MultiSteps/Forms/FormStep/Button/ButtonStepBack/FormStepButtonBackElementTypeFactory.php
|
|
61
|
+
multi-steps-form-step,any,,,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/MultiSteps/Forms/FormStep/FormStepElementTypeFactory.php
|
|
62
|
+
multi-steps-forms,allow,form-multi-steps,,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/MultiSteps/Forms/FormsElementTypeFactory.php
|
|
63
|
+
multi-steps-next-button,any,,yes,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/MultiSteps/Forms/FormStep/Button/ButtonStepNext/FormStepButtonNextElementTypeFactory.php
|
|
64
|
+
navbar,none,,yes,yes,Mosaic/NodeTypes/Navbar/NavbarElementTypeFactory.php
|
|
65
|
+
navbar-toggle,any,,yes,yes,Mosaic/NodeTypes/Navbar/NavbarToggle/NavbarToggleElementTypeFactory.php
|
|
66
|
+
navigation,any,,yes,yes,Mosaic/NodeTypes/Navbar/Navigation/NavigationElementTypeFactory.php
|
|
67
|
+
openstreetmap,none,,,,Mosaic/NodeTypes/OpenStreetMap/OpenStreetMapElementTypeFactory.php
|
|
68
|
+
radio-input,none,,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/Radio/RadioInput/RadioInputElementTypeFactory.php
|
|
69
|
+
recaptcha,none,,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/Recaptcha/RecaptchaElementTypeFactory.php
|
|
70
|
+
section,any,,yes,,Mosaic/NodeTypes/Section/SectionElementTypeFactory.php
|
|
71
|
+
select-input,complex,,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/Select/SelectElementTypeFactory.php
|
|
72
|
+
select-option,none,,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/Select/Option/OptionElementTypeFactory.php
|
|
73
|
+
slider,any,,,,Mosaic/NodeTypes/Pro/Slider/SliderElementTypeFactory.php
|
|
74
|
+
slider-arrow-left,none,,,yes,Mosaic/NodeTypes/Pro/Slider/SliderArrow/SliderArrowLeft/SliderArrowLeftElementTypeFactory.php
|
|
75
|
+
slider-arrow-right,none,,,yes,Mosaic/NodeTypes/Pro/Slider/SliderArrow/SliderArrowRight/SliderArrowRightMElementTypeFactory.php
|
|
76
|
+
slider-loop-slides,allow,slider-slides,yes,yes,Mosaic/NodeTypes/Pro/Slider/SliderLoopSlides/SliderLoopSlidesElementTypeFactory.php
|
|
77
|
+
slider-navigation,allow,slider-navigation-bullet,yes,yes,Mosaic/NodeTypes/Pro/Slider/SliderNavigation/SliderNavigationElementTypeFactory.php
|
|
78
|
+
slider-navigation-bullet,none,,,,Mosaic/NodeTypes/Pro/Slider/SliderNavigation/SliderNavigationBullet/SliderNavigationBulletElementTypeFactory.php
|
|
79
|
+
slider-slide,any,,yes,,Mosaic/NodeTypes/Pro/Slider/SliderSlides/SliderSlide/SliderSlideElementTypeFactory.php
|
|
80
|
+
slider-slides,allow,slider-loop-slides|slider-slide,,yes,Mosaic/NodeTypes/Pro/Slider/SliderSlides/SliderSlidesElementTypeFactory.php
|
|
81
|
+
styleguide-a,none,,,,Mosaic/NodeTypes/SG/SGA/SGAElementTypeFactory.php
|
|
82
|
+
styleguide-entry-content,any,,yes,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentElementTypeFactory.php
|
|
83
|
+
styleguide-entry-content-button,none,,yes,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentButton/SGEntryContentButtonElementTypeFactory.php
|
|
84
|
+
styleguide-entry-content-code,none,,yes,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentCode/SGEntryContentCodeElementTypeFactory.php
|
|
85
|
+
styleguide-entry-content-image,allow,styleguide-entry-content-image-caption|styleguide-entry-content-image-img,yes,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentImage/SGEntryContentImageElementTypeFactory.php
|
|
86
|
+
styleguide-entry-content-image-caption,none,,,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentImage/SGEntryContentImageCaption/SGEntryContentImageCaptionElementTypeFactory.php
|
|
87
|
+
styleguide-entry-content-image-img,none,,,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentImage/SGEntryContentImageImg/SGEntryContentImageImgElementTypeFactory.php
|
|
88
|
+
styleguide-entry-content-list,allow,styleguide-entry-content-list-item,yes,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentList/SGEntryContentListElementTypeFactory.php
|
|
89
|
+
styleguide-entry-content-list-item,none,,,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentList/SGEntryContentListItem/SGEntryContentListItemElementTypeFactory.php
|
|
90
|
+
styleguide-entry-content-preformatted,none,,yes,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentPreformatted/SGEntryContentPreformattedElementTypeFactory.php
|
|
91
|
+
styleguide-entry-content-pullquote,allow,styleguide-entry-content-pullquote-cite|styleguide-entry-content-pullquote-paragraph,yes,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentPullQuote/SGEntryContentPullQuoteElementTypeFactory.php
|
|
92
|
+
styleguide-entry-content-pullquote-cite,none,,,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentPullQuote/SGEntryContentPullQuoteCite/SGEntryContentPullQuoteCiteElementTypeFactory.php
|
|
93
|
+
styleguide-entry-content-pullquote-paragraph,none,,,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentPullQuote/SGEntryContentPullQuoteParagraph/SGEntryContentPullQuoteParagraphElementTypeFactory.php
|
|
94
|
+
styleguide-entry-content-quote-cite,none,,,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentQuote/SGEntryContentQuoteCite/SGEntryContentQuoteCiteElementTypeFactory.php
|
|
95
|
+
styleguide-entry-content-separator,none,,yes,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentSeparator/SGEntryContentSeparatorElementTypeFactory.php
|
|
96
|
+
styleguide-entry-content-text,none,,yes,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentText/SGEntryContentTextElementTypeFactory.php
|
|
97
|
+
styleguide-entry-content-text-quote,complex,,yes,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentQuote/SGEntryContentQuoteElementTypeFactory.php
|
|
98
|
+
styleguide-entry-content-verse,none,,yes,,Mosaic/NodeTypes/SG/SGEntryContent/SGEntryContentVerse/SGEntryContentVerseElementTypeFactory.php
|
|
99
|
+
styleguide-root,none,,,,Mosaic/NodeTypes/Root/StyleGuide/StyleGuideRootElementTypeFactory.php
|
|
100
|
+
submit-button,allow,submit-label|submit-loading,yes,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/SubmitButton/SubmitButtonElementTypeFactory.php
|
|
101
|
+
submit-label,none,,,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/SubmitButton/Label/SubmitLabelElementTypeFactory.php
|
|
102
|
+
submit-loading,none,,,yes,Mosaic/NodeTypes/Pro/Form/Form/MElements/SubmitButton/Loading/SubmitLoadingElementTypeFactory.php
|
|
103
|
+
success-screen,any,,,yes,Mosaic/NodeTypes/Pro/Form/SuccessScreen/SuccessScreenElementTypeFactory.php
|
|
104
|
+
tabs,allow,tabs-content|tabs-menu,,yes,Mosaic/NodeTypes/Pro/Tabs/TabsElementTypeFactory.php
|
|
105
|
+
tabs-content,allow,tabs-loop-tab-panes|tabs-tab-pane,,yes,Mosaic/NodeTypes/Pro/Tabs/TabsContent/TabsContentElementTypeFactory.php
|
|
106
|
+
tabs-loop-tab-panes,allow,tabs-tab-pane,,yes,Mosaic/NodeTypes/Pro/Tabs/TabsContent/LoopTabPanes/TabLoopTabPanesElementTypeFactory.php
|
|
107
|
+
tabs-loop-tabs,allow,tabs-tab,yes,yes,Mosaic/NodeTypes/Pro/Tabs/TabsMenu/LoopTabs/TabLoopTabsElementTypeFactory.php
|
|
108
|
+
tabs-menu,allow,tabs-loop-tabs|tabs-tab,,yes,Mosaic/NodeTypes/Pro/Tabs/TabsMenu/TabsMenuElementTypeFactory.php
|
|
109
|
+
tabs-tab,any,,yes,yes,Mosaic/NodeTypes/Pro/Tabs/TabsMenu/Tab/TabElementTypeFactory.php
|
|
110
|
+
tabs-tab-pane,any,,,yes,Mosaic/NodeTypes/Pro/Tabs/TabsContent/TabPane/TabPaneElementTypeFactory.php
|
|
111
|
+
template-external,none,,yes,,Mosaic/NodeTypes/Template/TemplateExternal/TemplateExternalElementTypeFactory.php
|
|
112
|
+
template-internal,any,,,yes,Mosaic/NodeTypes/Template/TemplateInternal/TemplateInternalElementTypeFactory.php
|
|
113
|
+
text,none,,,yes,Mosaic/NodeTypes/Text/TextElementTypeFactory.php
|
|
114
|
+
text-input,none,,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/InputText/InputTextElementTypeFactory.php
|
|
115
|
+
textarea-input,none,,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/TextArea/TextAreaElementTypeFactory.php
|
|
116
|
+
turnstile,none,,yes,,Mosaic/NodeTypes/Pro/Form/Form/MElements/Turnstile/TurnstileElementTypeFactory.php
|
|
117
|
+
video,none,,,,Mosaic/NodeTypes/Video/VideoElementTypeFactory.php
|
|
118
|
+
vimeo,none,,,,Mosaic/NodeTypes/Vimeo/VimeoElementTypeFactory.php
|
|
119
|
+
wp-menu,allow,list-item,yes,,Mosaic/NodeTypes/Menu/WPMenu/WPMenuElementTypeFactory.php
|
|
120
|
+
wpContent,none,,,,Mosaic/NodeTypes/WPContent/WPContentElementTypeFactory.php
|
|
121
|
+
wpShortcode,none,,,,Mosaic/NodeTypes/WPShortcode/WPShortcodeElementTypeFactory.php
|
|
122
|
+
wysiwyg-linebreak,none,,,,Mosaic/NodeTypes/Wysiwyg/WysiwygLineBreak/WysiwygLineBreakNodeTypeFactory.php
|
|
123
|
+
wysiwyg-link,none,,,,Mosaic/NodeTypes/Wysiwyg/WysiwygLink/WysiwygLinkElementTypeFactory.php
|
|
124
|
+
wysiwyg-span,none,,,,Mosaic/NodeTypes/Wysiwyg/WysiwygSpan/WysiwygSpanElementTypeFactory.php
|
|
125
|
+
wysiwyg-text,none,,,,Mosaic/NodeTypes/Wysiwyg/WysiwygText/WysiwygTextNodeTypeFactory.php
|
|
126
|
+
wysiwyg-variable,none,,,,Mosaic/NodeTypes/Wysiwyg/WysiwygVariable/WysiwygVariableNodeTypeFactory.php
|
|
127
|
+
youtube,none,,,,Mosaic/NodeTypes/YouTube/YouTubeElementTypeFactory.php
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
slider,check,result,detail
|
|
2
|
-
"hero, 4 slides,
|
|
3
|
-
"hero, 4 slides,
|
|
4
|
-
"hero, 4 slides,
|
|
5
|
-
"hero, 4 slides,
|
|
6
|
-
"hero, 4 slides,
|
|
7
|
-
"hero, 4 slides,
|
|
8
|
-
"hero, 4 slides,
|
|
9
|
-
"hero, 4 slides,
|
|
10
|
-
"hero, 4 slides,
|
|
11
|
-
"hero, 4 slides,
|
|
12
|
-
"hero, 4 slides,
|
|
13
|
-
"hero, 4 slides,
|
|
14
|
-
"hero, 4 slides,
|
|
15
|
-
"hero, 4 slides,
|
|
16
|
-
"hero, 4 slides,
|
|
2
|
+
"hero, 4 slides, carousel",HOST,PASS,"<mosaic-slider> animation=slide carousel=true, 4 slides"
|
|
3
|
+
"hero, 4 slides, carousel",TRACK,PASS,<mosaic-slider-slides> aria-live=off
|
|
4
|
+
"hero, 4 slides, carousel",HAS_CURRENT,PASS,slide 0 is current at rest
|
|
5
|
+
"hero, 4 slides, carousel",BULLET_TEMPLATE,PASS,"4 bullets for 4 slides, all with id='sl-main-nav-dot' - one authored bullet is repeated per slide, duplicate ids included"
|
|
6
|
+
"hero, 4 slides, carousel",BULLET_ARIA,PASS,"role=button tabindex=0 labels=一、輪播不是相簿, 二、四種動畫, 三、箭頭會自己消失, 四、不想動就不動 - taken from each slide's own title"
|
|
7
|
+
"hero, 4 slides, carousel",ADVANCES,PASS,reached 4 of 4 slides unaided
|
|
8
|
+
"hero, 4 slides, carousel",AUTOPLAY_DECLARED,PASS,data-autoplay=true delay=3600
|
|
9
|
+
"hero, 4 slides, carousel",BULLET_GOES,PASS,bullet 0 -> slide 0
|
|
10
|
+
"hero, 4 slides, carousel",ARROW_ENDS,PASS,"carousel: it wraps, so neither arrow hides (prev hidden=False, next hidden=False)"
|
|
11
|
+
"hero, 4 slides, carousel",CAROUSEL_LAYOUT,PASS,"grid ""slide"", every slide still one track wide ([1200] vs 1200) - isCarousel wraps the ends, it does not show more than one"
|
|
12
|
+
"hero, 4 slides, carousel",ARROW_ARIA,PASS,role=button tabindex=0 label='下一張投影片'
|
|
13
|
+
"hero, 4 slides, carousel",NEXT,PASS,slide 0 -> 1
|
|
14
|
+
"hero, 4 slides, carousel",PREV,PASS,slide 1 -> 0
|
|
15
|
+
"hero, 4 slides, carousel",KEYBOARD,PASS,"focus bullet 3 taken, Enter -> slide 3"
|
|
16
|
+
"hero, 4 slides, carousel",REDUCED,PASS,under prefers-reduced-motion it holds still (slide 0 -> 0)
|
|
17
17
|
"carousel, 6 slides, wraps",HOST,PASS,"<mosaic-slider> animation=slide carousel=true, 6 slides"
|
|
18
18
|
"carousel, 6 slides, wraps",TRACK,PASS,<mosaic-slider-slides> aria-live=off
|
|
19
19
|
"carousel, 6 slides, wraps",HAS_CURRENT,PASS,slide 0 is current at rest
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mosaic-headless",
|
|
3
|
-
"version": "1.25.
|
|
3
|
+
"version": "1.25.1",
|
|
4
4
|
"description": "AI-agent skill: build Mosaic Pro (Nextend) WordPress sites by writing the underlying data model directly - 23 custom tables, no visual editor, no DOM. Every node type, style property and node property swept against a live install and asserted on the delivered HTML and compiled CSS. Installs into Claude Code, Cursor, Codex CLI, Gemini CLI, Copilot, Continue, Windsurf and Claude.ai.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"wordpress",
|
|
@@ -128,3 +128,35 @@ this (they are gitignored - they were scaffolding, not a deliverable) — they s
|
|
|
128
128
|
everything
|
|
129
129
|
per node, because their job was to exercise the style compiler across eight visual
|
|
130
130
|
languages, not to model a maintainable theme. A real site inverts that ratio.
|
|
131
|
+
|
|
132
|
+
## A grouped menu, and two more places the placement table lied
|
|
133
|
+
|
|
134
|
+
Nine flat links in a header is what happens when a site grows and nobody re-reads
|
|
135
|
+
the nav. Mosaic's `dropdown` family is the fix and is worth knowing for its own
|
|
136
|
+
sake:
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
dropdown horizontalAlign: left | center | right
|
|
140
|
+
dropdown-toggle url, target, rel; takes the label as children
|
|
141
|
+
dropdown-wrapper takes the links as children
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Both children are inserted by `onHeal()` if you leave them out, so only the two
|
|
145
|
+
need authoring. **It opens on CLICK, not hover** — the host gains
|
|
146
|
+
`dropdown--opening dropdown--opened` and the wrapper goes from `display:none` to
|
|
147
|
+
`display:flex`. A hover test reports a dropdown that does not work.
|
|
148
|
+
|
|
149
|
+
`dropdown-wrapper` reads as a leaf in `placement-rules.csv`, because `rule` is the
|
|
150
|
+
`canBeParentFor()` answer and that method is never overridden on it. But its
|
|
151
|
+
factory is `getDropdownWrapperElementDefaultData($data, $children)` and the editor
|
|
152
|
+
fills it. "Will the editor let me drop this here" is not the same question as "can
|
|
153
|
+
this hold children", and a build guard that reads only the first refuses correct
|
|
154
|
+
structures — it refused this menu. `extract_placement.py` now also records
|
|
155
|
+
`takes_children` from the factory signature, and `build_page.py` reads it.
|
|
156
|
+
|
|
157
|
+
That is the second table to be caught short the same way this week. The first was
|
|
158
|
+
`default-children.csv`, which held only the declared `getDefaultData()` statics and
|
|
159
|
+
so knew nothing about children a type HEALS into itself — modal's overlay, loop's
|
|
160
|
+
`loop-items`, slider's `slider-slides`, dropdown's own two. Both fixes are the same
|
|
161
|
+
move: the question the table answers was narrower than the question the table's
|
|
162
|
+
name suggests, so read the other source as well and say which is which.
|
|
@@ -102,7 +102,7 @@ const counts = {
|
|
|
102
102
|
"data/slider-verification.csv": 30,
|
|
103
103
|
"data/token-verification.csv": 15,
|
|
104
104
|
"data/mobile-audit.csv": 54,
|
|
105
|
-
"data/navigation-verification.csv":
|
|
105
|
+
"data/navigation-verification.csv": 22,
|
|
106
106
|
"data/page-modal-verification.csv": 19,
|
|
107
107
|
"data/interaction-rules-verification.csv": 17,
|
|
108
108
|
"data/dialog-form-verification.csv": 49,
|