@excom/include-content 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/.rush/temp/chunked-rush-logs/include-content.apply-exports.chunks.jsonl +1 -0
  2. package/.rush/temp/chunked-rush-logs/include-content.build_docs.chunks.jsonl +1 -0
  3. package/.rush/temp/chunked-rush-logs/include-content.build_package-metas.chunks.jsonl +1 -0
  4. package/.rush/temp/operation/apply-exports/all.log +1 -0
  5. package/.rush/temp/operation/apply-exports/log-chunks.jsonl +1 -0
  6. package/.rush/temp/operation/apply-exports/state.json +3 -0
  7. package/.rush/temp/operation/build_docs/all.log +1 -0
  8. package/.rush/temp/operation/build_docs/log-chunks.jsonl +1 -0
  9. package/.rush/temp/operation/build_docs/state.json +3 -0
  10. package/.rush/temp/operation/build_package-metas/all.log +1 -0
  11. package/.rush/temp/operation/build_package-metas/log-chunks.jsonl +1 -0
  12. package/.rush/temp/operation/build_package-metas/state.json +3 -0
  13. package/.rush/temp/shrinkwrap-deps.json +3 -0
  14. package/config/rig.json +5 -0
  15. package/include-content.ts +176 -0
  16. package/index.css +5 -0
  17. package/index.ts +17 -0
  18. package/package.json +45 -0
  19. package/rush-logs/include-content.apply-exports.cache.log +1 -0
  20. package/rush-logs/include-content.apply-exports.log +1 -0
  21. package/rush-logs/include-content.build_docs.cache.log +1 -0
  22. package/rush-logs/include-content.build_docs.log +1 -0
  23. package/rush-logs/include-content.build_package-metas.cache.log +1 -0
  24. package/rush-logs/include-content.build_package-metas.log +1 -0
  25. package/src/include-content.css +66 -0
  26. package/support/custom-elements.json +277 -0
  27. package/support/demos/lazy.html +19 -0
  28. package/support/demos/persist-content.html +23 -0
  29. package/support/demos/portal.html +8 -0
  30. package/support/demos/simple.html +16 -0
  31. package/support/demos/template-include.html +7 -0
  32. package/support/demos/template-ref.html +7 -0
  33. package/support/dist-docs/include-content.md +265 -0
  34. package/support/docs/README.md +64 -0
  35. package/support/package-meta.json +360 -0
  36. package/support/tests/include-content.test.ts +764 -0
  37. package/support/tests/lazy.view.test.ts +22 -0
  38. package/support/tests/persist-content.view.test.ts +33 -0
  39. package/support/tests/portal.view.test.ts +21 -0
  40. package/support/tests/simple.view.test.ts +23 -0
  41. package/support/tests/template-include.view.test.ts +35 -0
  42. package/support/tests/template-ref.view.test.ts +21 -0
  43. package/tsconfig.json +5 -0
@@ -0,0 +1,360 @@
1
+ {
2
+ "shortName": "include-content",
3
+ "package": {
4
+ "name": "@excom/include-content",
5
+ "version": "0.1.0",
6
+ "description": "<include-content> custom element",
7
+ "peerDependencies": {},
8
+ "excom": {
9
+ "packageType": "kit-element"
10
+ }
11
+ },
12
+ "demos": {
13
+ "lazy": "<section>\n <p>Scroll down…</p>\n <include-content lazy-load lazy-unload observer-root=\"section:has(> :scope)\"\n observer-root-margin=\"0px\" observer-threshold=\"0.5\">\n <template>\n <p>Rendered at 50% visibility. Scroll away to remove\n (<code>lazy-unload</code>).</p>\n </template>\n </include-content>\n <p>Keep scrolling…</p>\n <style>\n #demo-include-content-lazy > :first-child {\n include-content {\n /* Prevent size collapse → render/unrender loop */\n min-height: 108px;\n }\n }\n </style>\n</section>\n",
14
+ "persist-content": "<div>\n <quark-sheet>\n :scope {\n @on change {\n include-content { is-active: if(event.target.checked: \"\"; else: none); }\n }\n }\n </quark-sheet>\n <form>\n <label>\n <input type=\"checkbox\" name=\"is-active\" checked />\n Active\n </label>\n </form>\n <include-content is-active persist-content>\n <template>\n <label>\n Type, then toggle Active —\n <input type=\"text\" placeholder=\"value is kept\" />\n </label>\n </template>\n </include-content>\n</div>\n",
15
+ "portal": "<div>\n <include-content is-active host-ref=\"#ic-portal-mount\">\n <template>\n <p>Portaled into the aside.</p>\n </template>\n </include-content>\n <aside id=\"ic-portal-mount\"></aside>\n</div>\n",
16
+ "simple": "<div>\n <a>Hover me</a>\n <include-content lazy-load>\n <template>\n <p>HTML inserted</p>\n </template>\n </include-content>\n <small role=\"note\">See Live document tab for DOM changes.</small>\n <style>\n #demo-include-content-simple > :first-child {\n a:not(:hover) + include-content:not([is-active]) {\n display: none;\n }\n }\n </style>\n</div>\n",
17
+ "template-include": "<div>\n <template id=\"ic-include-piece\">\n <p>A reusable view piece.</p>\n </template>\n <include-content is-active template-ref=\"#ic-include-piece\"></include-content>\n <include-content is-active template-ref=\"/fragments/remote-include.html\"></include-content>\n</div>\n",
18
+ "template-ref": "<div>\n <template id=\"ic-shared-template\">\n <p>Shared template — both hosts render this node.</p>\n </template>\n <include-content is-active template-ref=\"#ic-shared-template\"></include-content>\n <include-content idle-load template-ref=\"#ic-shared-template\"></include-content>\n</div>\n"
19
+ },
20
+ "readme": "<h1 id=\"md-include-content\">include-content</h1>\n<p>One-stop shop for rendering a view when &amp; where you need it — lazy-loading/unloading, conditional rendering, portalling… no app JS required.</p>\n<p><include-content data-demo=\"simple\"></include-content></p>\n<h2 id=\"md-features\">Features</h2>\n<ul>\n<li><strong>Zero JS</strong> Sophisticated UX from a simple HTML-only API, as with all Nucleus Kit elements.</li>\n<li><strong>Lazy (un)load</strong> Lazy load and lazy unload your views</li>\n<li><strong>Eager / idle</strong> Prioritize critical content; defer the rest</li>\n<li><strong>Prefetch</strong> Warm templates so they&#39;re ready on activate</li>\n<li><strong>Shared / remote templates</strong> Point at a DOM <code>&lt;template&gt;</code> or URL</li>\n<li><strong>Choose the host</strong> Portal into light DOM, shadow, author iframe, or any selector</li>\n<li><strong>Keep state</strong> Reuse the same tree across toggles</li>\n<li><strong>Animatable</strong> Built-in fade, or bring your own with <code>.instant</code></li>\n</ul>\n<h2 id=\"md-installation\">Installation</h2>\n<p><include-content is-active template-ref=\"/views/install-section/install-section.html\"></include-content></p>\n<h2 id=\"md-usage\">Usage</h2>\n<p>Put a <code>&lt;template&gt;</code> inside (or set <code>template-ref</code>) and pick when it should appear. For conditional rendering, use Quark or JS to toggle <code>is-active</code>.</p>\n<include-content data-language=\"html\"><template>&lt;include-content lazy-load template-ref=\"/path/to/view.html\"&gt;&lt;/include-content&gt;</template></include-content>\n<h3 id=\"md-api-reference\">API Reference</h3>\n<p><include-content is-active template-ref=\"/views/api-reference/api-reference.html\"></include-content></p>\n<h3 id=\"md-examples\">Examples</h3>\n<h4 id=\"md-template-include\">Template include</h4>\n<p>Break your app into smaller views. Point <code>template-ref</code> at a <code>&lt;template&gt;</code> or a URL with <code>is-active</code> to render it immediately. This demo does both.</p>\n<p><include-content data-demo=\"template-include\"></include-content></p>\n<h4 id=\"md-lazy-load-amp-unload\">Lazy Load &amp; Unload</h4>\n<p><code>lazy-load</code> waits until on screen; <code>lazy-unload</code> removes it when it leaves. Give the host a real <code>min-height</code> so the trigger isn&#39;t ambiguous. Tune with <code>observer-root</code>, <code>observer-root-margin</code>, <code>observer-threshold</code>, and <code>observer-delay</code> — e.g. expand the margin to pre-render before the user scrolls to it. If remote template, pair with <code>pre-fetch=&quot;idle&quot;</code> to warm the cache early.</p>\n<p><include-content data-demo=\"lazy\"></include-content></p>\n<h4 id=\"md-portal-elsewhere\">Portal elsewhere</h4>\n<p>By default content lands in the element&#39;s light DOM. Set <code>host-ref</code> to\n<code>shadow</code>, <code>iframe</code> (with a child <code>&lt;iframe data-render-host&gt;</code>), or any CSS\nselector to render somewhere else. The iframe host only moves nodes: custom\nelements inside it upgrade only if that document loads their definitions.</p>\n<p><include-content data-demo=\"portal\"></include-content></p>\n<h4 id=\"md-keep-tree-state\">Keep tree state</h4>\n<p>Toggling <code>is-active</code> off leaves <code>did-load</code> set (warm re-resolve; URL\nrefs hit the shared fetch cache). <code>persist-content</code> goes further and\nreuses the same live nodes so implicit state (form values, open details,\netc.) survives toggles.</p>\n<p><include-content data-demo=\"persist-content\"></include-content></p>\n",
21
+ "docs": {
22
+ "readme": "<h1 id=\"md-include-content\">include-content</h1>\n<p>One-stop shop for rendering a view when &amp; where you need it — lazy-loading/unloading, conditional rendering, portalling… no app JS required.</p>\n<p><include-content data-demo=\"simple\"></include-content></p>\n<h2 id=\"md-features\">Features</h2>\n<ul>\n<li><strong>Zero JS</strong> Sophisticated UX from a simple HTML-only API, as with all Nucleus Kit elements.</li>\n<li><strong>Lazy (un)load</strong> Lazy load and lazy unload your views</li>\n<li><strong>Eager / idle</strong> Prioritize critical content; defer the rest</li>\n<li><strong>Prefetch</strong> Warm templates so they&#39;re ready on activate</li>\n<li><strong>Shared / remote templates</strong> Point at a DOM <code>&lt;template&gt;</code> or URL</li>\n<li><strong>Choose the host</strong> Portal into light DOM, shadow, author iframe, or any selector</li>\n<li><strong>Keep state</strong> Reuse the same tree across toggles</li>\n<li><strong>Animatable</strong> Built-in fade, or bring your own with <code>.instant</code></li>\n</ul>\n<h2 id=\"md-installation\">Installation</h2>\n<p><include-content is-active template-ref=\"/views/install-section/install-section.html\"></include-content></p>\n<h2 id=\"md-usage\">Usage</h2>\n<p>Put a <code>&lt;template&gt;</code> inside (or set <code>template-ref</code>) and pick when it should appear. For conditional rendering, use Quark or JS to toggle <code>is-active</code>.</p>\n<include-content data-language=\"html\"><template>&lt;include-content lazy-load template-ref=\"/path/to/view.html\"&gt;&lt;/include-content&gt;</template></include-content>\n<h3 id=\"md-api-reference\">API Reference</h3>\n<p><include-content is-active template-ref=\"/views/api-reference/api-reference.html\"></include-content></p>\n<h3 id=\"md-examples\">Examples</h3>\n<h4 id=\"md-template-include\">Template include</h4>\n<p>Break your app into smaller views. Point <code>template-ref</code> at a <code>&lt;template&gt;</code> or a URL with <code>is-active</code> to render it immediately. This demo does both.</p>\n<p><include-content data-demo=\"template-include\"></include-content></p>\n<h4 id=\"md-lazy-load-amp-unload\">Lazy Load &amp; Unload</h4>\n<p><code>lazy-load</code> waits until on screen; <code>lazy-unload</code> removes it when it leaves. Give the host a real <code>min-height</code> so the trigger isn&#39;t ambiguous. Tune with <code>observer-root</code>, <code>observer-root-margin</code>, <code>observer-threshold</code>, and <code>observer-delay</code> — e.g. expand the margin to pre-render before the user scrolls to it. If remote template, pair with <code>pre-fetch=&quot;idle&quot;</code> to warm the cache early.</p>\n<p><include-content data-demo=\"lazy\"></include-content></p>\n<h4 id=\"md-portal-elsewhere\">Portal elsewhere</h4>\n<p>By default content lands in the element&#39;s light DOM. Set <code>host-ref</code> to\n<code>shadow</code>, <code>iframe</code> (with a child <code>&lt;iframe data-render-host&gt;</code>), or any CSS\nselector to render somewhere else. The iframe host only moves nodes: custom\nelements inside it upgrade only if that document loads their definitions.</p>\n<p><include-content data-demo=\"portal\"></include-content></p>\n<h4 id=\"md-keep-tree-state\">Keep tree state</h4>\n<p>Toggling <code>is-active</code> off leaves <code>did-load</code> set (warm re-resolve; URL\nrefs hit the shared fetch cache). <code>persist-content</code> goes further and\nreuses the same live nodes so implicit state (form values, open details,\netc.) survives toggles.</p>\n<p><include-content data-demo=\"persist-content\"></include-content></p>\n"
23
+ },
24
+ "installation": {
25
+ "name": "@excom/include-content",
26
+ "shortName": "include-content",
27
+ "version": "0.1.0",
28
+ "description": "<include-content> custom element",
29
+ "packageType": "kit-element",
30
+ "cdn": "<script src=\"https://unpkg.com/@excom/kit-utils/dist/index.umd.min.js\"></script>\n<script src=\"https://unpkg.com/@excom/neutron/dist/index.umd.min.js\"></script>\n<script src=\"https://unpkg.com/@excom/include-content@0.1.0/dist/index.umd.min.js\"></script>\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@excom/include-content@0.1.0/dist/index.css\">",
31
+ "install": {
32
+ "npm": "npm install @excom/include-content"
33
+ },
34
+ "imports": {
35
+ "js": "import \"@excom/include-content\";",
36
+ "css": "@import \"@excom/include-content\";",
37
+ "html": "<!-- import path to `node_modules` will depend on your build setup -->\n<script type=\"module\" src=\"/node_modules/@excom/include-content\"></script>\n<link rel=\"stylesheet\" href=\"/node_modules/@excom/include-content\">"
38
+ },
39
+ "peerDependencies": []
40
+ },
41
+ "elementApis": [
42
+ {
43
+ "tag": "include-content",
44
+ "summary": "Declarative view rendering — lazy (un)load, idle, conditional.",
45
+ "kind": "class",
46
+ "attributes": [
47
+ {
48
+ "name": "bypass-cache",
49
+ "type": "boolean",
50
+ "description": "Skip the in-memory response cache (URL <code>template-ref</code> only).",
51
+ "fieldName": "bypassCache",
52
+ "surface": "option",
53
+ "inheritedFrom": "@excom/renderable-element"
54
+ },
55
+ {
56
+ "name": "host-ref",
57
+ "type": "string",
58
+ "description": "Where rendered children land. Unset = this element&#39;s light DOM. <code>shadow</code> attaches an open shadow root. <code>iframe</code> paints into a child <code>&lt;iframe data-render-host&gt;</code> body (you supply the iframe — useful for sandboxed / third-party document isolation). Any other value is a portal selector.",
59
+ "fieldName": "hostRef",
60
+ "surface": "option",
61
+ "values": "\"shadow\" | \"iframe\" | <CSS Selector>",
62
+ "inheritedFrom": "@excom/renderable-element"
63
+ },
64
+ {
65
+ "name": "idle-load",
66
+ "type": "boolean",
67
+ "description": "Activate after first paint, when the browser is idle. Useful for below-the-fold / secondary views that should not compete with critical content.",
68
+ "fieldName": "idleLoad",
69
+ "surface": "option"
70
+ },
71
+ {
72
+ "name": "lazy-load",
73
+ "type": "boolean",
74
+ "description": "Activate when this element is on screen. Pair with <code>lazy-unload</code> for lazy load and lazy unload of views.",
75
+ "fieldName": "lazyLoad",
76
+ "surface": "option"
77
+ },
78
+ {
79
+ "name": "lazy-unload",
80
+ "type": "boolean",
81
+ "description": "Deactivate (unrender) when no longer on screen. Use with <code>lazy-load</code> to free DOM for off-screen views.",
82
+ "fieldName": "lazyUnload",
83
+ "surface": "option"
84
+ },
85
+ {
86
+ "name": "observer-delay",
87
+ "type": "number",
88
+ "description": "Minimum time visible before activating (ms). Ignored where unsupported. Useful for ensuring lazy load is not triggered when a programmatic smooth scroll zips the user right past the element.",
89
+ "fieldName": "observerDelay",
90
+ "surface": "option",
91
+ "default": "0"
92
+ },
93
+ {
94
+ "name": "observer-root",
95
+ "type": "string",
96
+ "description": "Scroll container for lazy load / unload. Defaults to the viewport.",
97
+ "fieldName": "observerRoot",
98
+ "surface": "option",
99
+ "values": "<CSS Selector>"
100
+ },
101
+ {
102
+ "name": "observer-root-margin",
103
+ "type": "string",
104
+ "description": "How far outside the root counts as &quot;visible&quot;. Expand (e.g. <code>500px</code>) to lazy-load a view <em>before</em> it enters the viewport so users never see an empty slot; shrink (default <code>-1px</code>) so edge-flush elements wait until they truly enter.",
105
+ "fieldName": "observerRootMargin",
106
+ "surface": "option",
107
+ "default": "\"-1px -1px -1px -1px\"",
108
+ "values": "<length> | <percentage>"
109
+ },
110
+ {
111
+ "name": "observer-threshold",
112
+ "type": "number",
113
+ "description": "Fraction of the element that must be visible (<code>0</code>–<code>1</code>) before activating.",
114
+ "fieldName": "observerThreshold",
115
+ "surface": "option"
116
+ },
117
+ {
118
+ "name": "persist-content",
119
+ "type": "boolean",
120
+ "description": "Reuse the same live nodes across unrender / render (held on <code>_persistedTree</code>) so form values, scroll position, and subtree state survive toggles.",
121
+ "fieldName": "persistContent",
122
+ "surface": "option",
123
+ "inheritedFrom": "@excom/renderable-element"
124
+ },
125
+ {
126
+ "name": "pre-fetch",
127
+ "type": "string",
128
+ "description": "When to fetch the template, independent of when it renders. <code>&quot;&quot;</code> aliases <code>eager</code>.",
129
+ "fieldName": "preFetch",
130
+ "surface": "option",
131
+ "default": "\"lazy\"",
132
+ "values": "\"\" | \"eager\" | \"idle\" | \"lazy\"",
133
+ "inheritedFrom": "@excom/renderable-element"
134
+ },
135
+ {
136
+ "name": "ready-on",
137
+ "type": "string",
138
+ "description": "Event name that marks rendered children &quot;ready&quot;. Until it fires, <code>delaying-ready</code> is set so CSS can hide the host for a coordinated paint / view transition.",
139
+ "fieldName": "readyOn",
140
+ "surface": "option",
141
+ "values": "<Event Name>",
142
+ "inheritedFrom": "@excom/renderable-element"
143
+ },
144
+ {
145
+ "name": "template-ref",
146
+ "type": "string",
147
+ "description": "Source <code>&lt;template&gt;</code> — in-document selector or remote URL. Changing mid-flight aborts and reloads. Can use <code>:scope</code> to relatively select elements: e.g. <code>main:has(:scope) &gt; template</code>",
148
+ "fieldName": "templateRef",
149
+ "surface": "option",
150
+ "default": "\":scope > template\"",
151
+ "values": "<CSS Selector> | <URL>",
152
+ "inheritedFrom": "@excom/renderable-element"
153
+ },
154
+ {
155
+ "name": "is-active",
156
+ "type": "boolean",
157
+ "description": "Master switch. Set to load (if needed) and render; unset to unrender. Drive from visibility, route match, hover, etc.",
158
+ "fieldName": "isActive",
159
+ "surface": "hybrid",
160
+ "inheritedFrom": "@excom/renderable-element"
161
+ },
162
+ {
163
+ "name": "delaying-ready",
164
+ "type": "boolean",
165
+ "description": "Between <code>render</code> and the matching <code>ready-on</code> event. Hook with CSS for coordinated paints / view transitions.",
166
+ "fieldName": "delayingReady",
167
+ "surface": "state",
168
+ "inheritedFrom": "@excom/renderable-element"
169
+ },
170
+ {
171
+ "name": "did-load",
172
+ "type": "boolean",
173
+ "description": "Template resolved at least once. Stays set across <code>is-active</code> toggles so consumers know later paints are warm (URL refs reuse the shared fetch cache in kit-utils). Cleared when <code>template-ref</code> changes or <code>--reload</code> forces a fresh resolve.",
174
+ "fieldName": "didLoad",
175
+ "surface": "state",
176
+ "inheritedFrom": "@excom/renderable-element"
177
+ },
178
+ {
179
+ "name": "is-error",
180
+ "type": "boolean",
181
+ "description": "Latest template fetch rejected (excluding abort). Fires with the <code>error</code> event.",
182
+ "fieldName": "isError",
183
+ "surface": "state",
184
+ "inheritedFrom": "@excom/renderable-element"
185
+ },
186
+ {
187
+ "name": "is-loading",
188
+ "type": "boolean",
189
+ "description": "Template fetch in flight.",
190
+ "fieldName": "isLoading",
191
+ "surface": "state",
192
+ "inheritedFrom": "@excom/renderable-element"
193
+ }
194
+ ],
195
+ "events": [
196
+ {
197
+ "name": "include-content-aborted",
198
+ "description": "Dispatched when an in-flight load / ready wait is canceled because <code>is-active</code> was unset (via <code>startTeardown</code>).",
199
+ "type": "RenderableAbortedEvent",
200
+ "typeExpanded": "CustomEvent & { type: \"{tag}-aborted\"; detail: void; bubbles: true; cancelable: true; composed: true }",
201
+ "inheritedFrom": "@excom/renderable-element"
202
+ },
203
+ {
204
+ "name": "include-content-did-render",
205
+ "description": "Dispatched after the template content has actually been placed into the host.",
206
+ "type": "RenderableDidRenderEvent",
207
+ "typeExpanded": "CustomEvent & { type: \"{tag}-did-render\"; detail: void; bubbles: true; cancelable: true; composed: true }",
208
+ "inheritedFrom": "@excom/renderable-element"
209
+ },
210
+ {
211
+ "name": "include-content-did-unrender",
212
+ "description": "Dispatched after rendered children have been removed from the host.",
213
+ "type": "RenderableDidUnrenderEvent",
214
+ "typeExpanded": "CustomEvent & { type: \"{tag}-did-unrender\"; detail: void; bubbles: true; cancelable: true; composed: true }",
215
+ "inheritedFrom": "@excom/renderable-element"
216
+ },
217
+ {
218
+ "name": "include-content-error",
219
+ "description": "Dispatched when the template promise rejects with anything other than an <code>AbortError</code>.",
220
+ "type": "RenderableErrorEvent",
221
+ "typeExpanded": "CustomEvent & { type: \"{tag}-error\"; detail: void; bubbles: true; cancelable: true; composed: true }",
222
+ "inheritedFrom": "@excom/renderable-element"
223
+ },
224
+ {
225
+ "name": "include-content-render",
226
+ "description": "Cancelable. Dispatched when the element becomes active and is about to place template content into the host. <code>event.detail</code> is a thunk that performs the load (if not already loaded) and renders the children, returning a Promise that resolves once the corresponding <code>ready-on</code> event fires (or immediately if <code>ready-on</code> is unset). The promise rejects if the element is torn down mid-flight (<code>startTeardown</code> while loading / <code>delaying-ready</code>). Call <code>preventDefault()</code> to defer rendering and invoke <code>event.detail()</code> later.",
227
+ "type": "RenderableRenderEvent",
228
+ "typeExpanded": "CustomEvent & { type: \"{tag}-render\"; detail: () => Promise<void>; bubbles: true; cancelable: true; composed: true }",
229
+ "inheritedFrom": "@excom/renderable-element",
230
+ "defaultAction": "Invokes <code>event.detail()</code> to load (if needed) and render the template into the host."
231
+ },
232
+ {
233
+ "name": "include-content-unrender",
234
+ "description": "Cancelable. Dispatched when the element becomes inactive and content is already painted. <code>event.detail</code> is a thunk that removes the rendered children. Call <code>preventDefault()</code> to defer the removal. Not fired when teardown cancels an in-flight load — that path emits <code>aborted</code> instead.",
235
+ "type": "RenderableUnrenderEvent",
236
+ "typeExpanded": "CustomEvent & { type: \"{tag}-unrender\"; detail: () => void; bubbles: true; cancelable: true; composed: true }",
237
+ "inheritedFrom": "@excom/renderable-element",
238
+ "defaultAction": "Invokes <code>event.detail()</code> to remove rendered children from the host."
239
+ }
240
+ ],
241
+ "slots": [],
242
+ "cssProperties": [
243
+ {
244
+ "name": "--include-content-transition-duration",
245
+ "description": "Fade-in duration.",
246
+ "syntax": "<time>",
247
+ "default": "0.15s"
248
+ },
249
+ {
250
+ "name": "--include-content-transition-ease",
251
+ "description": "Fade-in easing.",
252
+ "syntax": "*",
253
+ "default": "ease-in"
254
+ }
255
+ ],
256
+ "cssClasses": [
257
+ {
258
+ "name": "instant",
259
+ "description": "Skip the built-in fade — bring your own animation / view transition. Also opts-out if the element is portalling content elsewhere ([host-ref])"
260
+ }
261
+ ],
262
+ "cssAliases": [
263
+ {
264
+ "name": ":--include-content",
265
+ "selectors": [
266
+ "include-content",
267
+ ".tag-include-content"
268
+ ],
269
+ "kind": "element",
270
+ "description": ""
271
+ },
272
+ {
273
+ "name": ":--include-content--did-load",
274
+ "selectors": [
275
+ "[did-load]",
276
+ "[data-did-load]"
277
+ ],
278
+ "kind": "state",
279
+ "description": ""
280
+ },
281
+ {
282
+ "name": ":--include-content--host-shadow",
283
+ "selectors": [
284
+ "[host-ref=\"shadow\"]",
285
+ "[data-host-ref=\"shadow\"]"
286
+ ],
287
+ "kind": "state",
288
+ "description": ""
289
+ },
290
+ {
291
+ "name": ":--include-content--is-active",
292
+ "selectors": [
293
+ "[is-active]",
294
+ "[aria-current]"
295
+ ],
296
+ "kind": "state",
297
+ "description": ""
298
+ },
299
+ {
300
+ "name": ":--include-content--lazy-load",
301
+ "selectors": [
302
+ "[lazy-load]",
303
+ "[data-lazy-load]"
304
+ ],
305
+ "kind": "state",
306
+ "description": ""
307
+ },
308
+ {
309
+ "name": ":--include-content--lazy-unload",
310
+ "selectors": [
311
+ "[lazy-unload]",
312
+ "[data-lazy-unload]"
313
+ ],
314
+ "kind": "state",
315
+ "description": ""
316
+ }
317
+ ],
318
+ "listens": [],
319
+ "commands": [
320
+ {
321
+ "name": "--reload",
322
+ "description": "Aborts any in-flight fetch and re-resolves the template, bypassing the cache for URL refs (useful after remote content changes).",
323
+ "inheritedFrom": "@excom/renderable-element"
324
+ }
325
+ ],
326
+ "defaultActions": [
327
+ {
328
+ "name": "include-content-render",
329
+ "description": "Invokes <code>event.detail()</code> to load (if needed) and render the template into the host.",
330
+ "inheritedFrom": "@excom/renderable-element"
331
+ },
332
+ {
333
+ "name": "include-content-unrender",
334
+ "description": "Invokes <code>event.detail()</code> to remove rendered children from the host.",
335
+ "inheritedFrom": "@excom/renderable-element"
336
+ }
337
+ ],
338
+ "expectedChildren": [
339
+ {
340
+ "name": "child:iframe[data-render-host]",
341
+ "relationship": "child",
342
+ "selector": "iframe[data-render-host]",
343
+ "required": false,
344
+ "description": "Required when <code>host-ref=&quot;iframe&quot;</code>. Content paints into <code>iframe.contentDocument.body</code>. Provide your own iframe (e.g. with <code>srcdoc</code>); the element will not create one.",
345
+ "inheritedFrom": "@excom/renderable-element"
346
+ },
347
+ {
348
+ "name": "child:template",
349
+ "relationship": "child",
350
+ "selector": "template",
351
+ "required": false,
352
+ "description": "Optional immediate <code>&lt;template&gt;</code> child used when <code>template-ref</code> is the default <code>&quot;:scope &gt; template&quot;</code>. Not required when <code>template-ref</code> points at a selector or URL elsewhere.",
353
+ "inheritedFrom": "@excom/renderable-element"
354
+ }
355
+ ],
356
+ "provisions": []
357
+ }
358
+ ],
359
+ "exportedFiles": {}
360
+ }