@lushly-dev/fast-element 3.0.1-preview.0 → 3.0.1-preview.2

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 (250) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/command/command.api.json +7857 -0
  3. package/dist/context/context.api.json +1084 -0
  4. package/dist/declarative/declarative.api.json +8130 -0
  5. package/dist/definition-schema/definition-schema.api.json +2689 -0
  6. package/dist/di/di.api.json +4945 -0
  7. package/dist/dts/arrays.d.ts +2 -0
  8. package/dist/dts/binding/binding.d.ts +59 -0
  9. package/dist/dts/binding/exports.d.ts +9 -0
  10. package/dist/dts/binding/normalize.d.ts +9 -0
  11. package/dist/dts/binding/one-time.d.ts +11 -0
  12. package/dist/dts/binding/one-way.d.ts +20 -0
  13. package/dist/dts/binding/signal.d.ts +36 -0
  14. package/dist/dts/binding/two-way.d.ts +44 -0
  15. package/dist/dts/command/behavior.d.ts +94 -0
  16. package/dist/dts/command/behaviors/confirm-behavior.d.ts +139 -0
  17. package/dist/dts/command/behaviors/undo-behavior.d.ts +178 -0
  18. package/dist/dts/command/command.d.ts +79 -0
  19. package/dist/dts/command/component-registry.d.ts +50 -0
  20. package/dist/dts/command/components/confirm-dialog.d.ts +117 -0
  21. package/dist/dts/command/index.d.ts +21 -0
  22. package/dist/dts/command/registry.d.ts +201 -0
  23. package/dist/dts/command/schema-validation.d.ts +45 -0
  24. package/dist/dts/command/types.d.ts +332 -0
  25. package/dist/dts/command/validation.d.ts +116 -0
  26. package/dist/dts/command/weak-ref.d.ts +11 -0
  27. package/dist/dts/components/attributes.d.ts +153 -0
  28. package/dist/dts/components/definition-schema-transforms.d.ts +9 -0
  29. package/dist/dts/components/element-controller.d.ts +349 -0
  30. package/dist/dts/components/element-hydration.d.ts +2 -0
  31. package/dist/dts/components/enable-hydration.d.ts +66 -0
  32. package/dist/dts/components/fast-definitions.d.ts +211 -0
  33. package/dist/dts/components/fast-element-registry.d.ts +23 -0
  34. package/dist/dts/components/fast-element.d.ts +91 -0
  35. package/dist/dts/components/hydration-tracker.d.ts +110 -0
  36. package/dist/dts/components/hydration.d.ts +52 -0
  37. package/dist/dts/components/schema.d.ts +205 -0
  38. package/dist/dts/context.d.ts +171 -0
  39. package/dist/dts/debug.d.ts +5 -0
  40. package/dist/dts/declarative/attribute-map.d.ts +58 -0
  41. package/dist/dts/declarative/debug.d.ts +4 -0
  42. package/dist/dts/declarative/index.d.ts +14 -0
  43. package/dist/dts/declarative/interfaces.d.ts +8 -0
  44. package/dist/dts/declarative/observer-map-utilities.d.ts +58 -0
  45. package/dist/dts/declarative/observer-map.d.ts +89 -0
  46. package/dist/dts/declarative/runtime.d.ts +5 -0
  47. package/dist/dts/declarative/syntax.d.ts +21 -0
  48. package/dist/dts/declarative/template-bridge.d.ts +33 -0
  49. package/dist/dts/declarative/template-parser.d.ts +98 -0
  50. package/dist/dts/declarative/template.d.ts +9 -0
  51. package/dist/dts/declarative/utilities.d.ts +358 -0
  52. package/dist/dts/definition-schema/api.d.ts +42 -0
  53. package/dist/dts/definition-schema/cem.d.ts +78 -0
  54. package/dist/dts/definition-schema/extension.d.ts +18 -0
  55. package/dist/dts/definition-schema/extract.d.ts +38 -0
  56. package/dist/dts/definition-schema/index.d.ts +9 -0
  57. package/dist/dts/definition-schema/storage.d.ts +35 -0
  58. package/dist/dts/definition-schema/types.d.ts +176 -0
  59. package/dist/dts/dev-mode.d.ts +13 -0
  60. package/dist/dts/di/di.d.ts +894 -0
  61. package/dist/dts/dom-policy.d.ts +101 -0
  62. package/dist/dts/dom.d.ts +88 -0
  63. package/dist/dts/hydration/diagnostics.d.ts +93 -0
  64. package/dist/dts/hydration/exports.d.ts +18 -0
  65. package/dist/dts/hydration/hydration-debugger.d.ts +35 -0
  66. package/dist/dts/hydration/messages.d.ts +62 -0
  67. package/dist/dts/hydration/runtime.d.ts +7 -0
  68. package/dist/dts/hydration/target-builder.d.ts +107 -0
  69. package/dist/dts/index.d.ts +51 -0
  70. package/dist/dts/index.debug.d.ts +1 -0
  71. package/dist/dts/index.rollup.d.ts +1 -0
  72. package/dist/dts/index.rollup.debug.d.ts +1 -0
  73. package/dist/dts/interfaces.d.ts +106 -0
  74. package/dist/dts/metadata.d.ts +26 -0
  75. package/dist/dts/observation/arrays.d.ts +248 -0
  76. package/dist/dts/observation/notifier.d.ts +127 -0
  77. package/dist/dts/observation/observable.d.ts +276 -0
  78. package/dist/dts/observation/update-queue.d.ts +40 -0
  79. package/dist/dts/observation/volatile.d.ts +9 -0
  80. package/dist/dts/platform.d.ts +87 -0
  81. package/dist/dts/registry.d.ts +2 -0
  82. package/dist/dts/render.d.ts +7 -0
  83. package/dist/dts/schema.d.ts +1 -0
  84. package/dist/dts/scoped/detection.d.ts +55 -0
  85. package/dist/dts/scoped/index.d.ts +68 -0
  86. package/dist/dts/scoped/mixin.d.ts +118 -0
  87. package/dist/dts/scoped/registry.d.ts +76 -0
  88. package/dist/dts/scoped/types.d.ts +48 -0
  89. package/dist/dts/state/exports.d.ts +3 -0
  90. package/dist/dts/state/reactive.d.ts +8 -0
  91. package/dist/dts/state/state.d.ts +141 -0
  92. package/dist/dts/state/visitor.d.ts +6 -0
  93. package/dist/dts/state/watch.d.ts +10 -0
  94. package/dist/dts/styles/css-directive.d.ts +50 -0
  95. package/dist/dts/styles/css.d.ts +34 -0
  96. package/dist/dts/styles/element-styles.d.ts +61 -0
  97. package/dist/dts/styles/host.d.ts +65 -0
  98. package/dist/dts/styles/style-strategy.d.ts +42 -0
  99. package/dist/dts/templating/children.d.ts +62 -0
  100. package/dist/dts/templating/compiler.d.ts +54 -0
  101. package/dist/dts/templating/html-binding-directive.d.ts +155 -0
  102. package/dist/dts/templating/html-directive.d.ts +218 -0
  103. package/dist/dts/templating/html.d.ts +1 -0
  104. package/dist/dts/templating/hydration-view.d.ts +130 -0
  105. package/dist/dts/templating/markup.d.ts +48 -0
  106. package/dist/dts/templating/node-observation.d.ts +99 -0
  107. package/dist/dts/templating/ref.d.ts +23 -0
  108. package/dist/dts/templating/render.d.ts +318 -0
  109. package/dist/dts/templating/repeat.d.ts +131 -0
  110. package/dist/dts/templating/slotted.d.ts +38 -0
  111. package/dist/dts/templating/template.d.ts +221 -0
  112. package/dist/dts/templating/view.d.ts +268 -0
  113. package/dist/dts/templating/when.d.ts +12 -0
  114. package/dist/dts/testing/exports.d.ts +3 -0
  115. package/dist/dts/testing/fakes.d.ts +16 -0
  116. package/dist/dts/testing/fixture.d.ts +84 -0
  117. package/dist/dts/testing/models.d.ts +20 -0
  118. package/dist/dts/testing/timeout.d.ts +7 -0
  119. package/dist/dts/trust/index.d.ts +8 -0
  120. package/dist/dts/trust/types.d.ts +48 -0
  121. package/dist/dts/trust/utils.d.ts +26 -0
  122. package/dist/dts/tsdoc-metadata.json +11 -0
  123. package/dist/dts/utilities.d.ts +76 -0
  124. package/dist/esm/arrays.js +1 -0
  125. package/dist/esm/binding/binding.js +18 -0
  126. package/dist/esm/binding/exports.js +6 -0
  127. package/dist/esm/binding/normalize.js +17 -0
  128. package/dist/esm/binding/one-time.js +21 -0
  129. package/dist/esm/binding/one-way.js +30 -0
  130. package/dist/esm/binding/signal.js +99 -0
  131. package/dist/esm/binding/two-way.js +109 -0
  132. package/dist/esm/command/behavior.js +155 -0
  133. package/dist/esm/command/behaviors/confirm-behavior.js +225 -0
  134. package/dist/esm/command/behaviors/undo-behavior.js +313 -0
  135. package/dist/esm/command/command.js +104 -0
  136. package/dist/esm/command/component-registry.js +107 -0
  137. package/dist/esm/command/components/confirm-dialog.js +370 -0
  138. package/dist/esm/command/index.js +22 -0
  139. package/dist/esm/command/registry.js +755 -0
  140. package/dist/esm/command/schema-validation.js +194 -0
  141. package/dist/esm/command/types.js +86 -0
  142. package/dist/esm/command/validation.js +508 -0
  143. package/dist/esm/command/weak-ref.js +5 -0
  144. package/dist/esm/components/attributes.js +219 -0
  145. package/dist/esm/components/definition-schema-transforms.js +23 -0
  146. package/dist/esm/components/element-controller.js +840 -0
  147. package/dist/esm/components/element-hydration.js +2 -0
  148. package/dist/esm/components/enable-hydration.js +123 -0
  149. package/dist/esm/components/fast-definitions.js +294 -0
  150. package/dist/esm/components/fast-element-registry.js +67 -0
  151. package/dist/esm/components/fast-element.js +82 -0
  152. package/dist/esm/components/hydration-tracker.js +211 -0
  153. package/dist/esm/components/hydration.js +187 -0
  154. package/dist/esm/components/schema.js +253 -0
  155. package/dist/esm/context.js +185 -0
  156. package/dist/esm/debug.js +71 -0
  157. package/dist/esm/declarative/attribute-map.js +122 -0
  158. package/dist/esm/declarative/debug.js +4 -0
  159. package/dist/esm/declarative/index.js +10 -0
  160. package/dist/esm/declarative/interfaces.js +9 -0
  161. package/dist/esm/declarative/observer-map-utilities.js +565 -0
  162. package/dist/esm/declarative/observer-map.js +216 -0
  163. package/dist/esm/declarative/runtime.js +14 -0
  164. package/dist/esm/declarative/syntax.js +36 -0
  165. package/dist/esm/declarative/template-bridge.js +160 -0
  166. package/dist/esm/declarative/template-parser.js +306 -0
  167. package/dist/esm/declarative/template.js +116 -0
  168. package/dist/esm/declarative/utilities.js +1069 -0
  169. package/dist/esm/definition-schema/api.js +129 -0
  170. package/dist/esm/definition-schema/cem.js +89 -0
  171. package/dist/esm/definition-schema/extension.js +53 -0
  172. package/dist/esm/definition-schema/extract.js +167 -0
  173. package/dist/esm/definition-schema/index.js +8 -0
  174. package/dist/esm/definition-schema/storage.js +58 -0
  175. package/dist/esm/definition-schema/types.js +8 -0
  176. package/dist/esm/dev-mode.js +22 -0
  177. package/dist/esm/di/di.js +1441 -0
  178. package/dist/esm/dom-policy.js +374 -0
  179. package/dist/esm/dom.js +101 -0
  180. package/dist/esm/hydration/diagnostics.js +50 -0
  181. package/dist/esm/hydration/exports.js +6 -0
  182. package/dist/esm/hydration/hydration-debugger.js +112 -0
  183. package/dist/esm/hydration/messages.js +84 -0
  184. package/dist/esm/hydration/runtime.js +33 -0
  185. package/dist/esm/hydration/target-builder.js +264 -0
  186. package/dist/esm/index.debug.js +3 -0
  187. package/dist/esm/index.js +49 -0
  188. package/dist/esm/index.rollup.debug.js +6 -0
  189. package/dist/esm/index.rollup.js +4 -0
  190. package/dist/esm/interfaces.js +55 -0
  191. package/dist/esm/metadata.js +57 -0
  192. package/dist/esm/observation/arrays.js +661 -0
  193. package/dist/esm/observation/notifier.js +162 -0
  194. package/dist/esm/observation/observable.js +324 -0
  195. package/dist/esm/observation/update-queue.js +56 -0
  196. package/dist/esm/observation/volatile.js +16 -0
  197. package/dist/esm/platform.js +98 -0
  198. package/dist/esm/registry.js +2 -0
  199. package/dist/esm/render.js +1 -0
  200. package/dist/esm/schema.js +1 -0
  201. package/dist/esm/scoped/detection.js +102 -0
  202. package/dist/esm/scoped/index.js +69 -0
  203. package/dist/esm/scoped/mixin.js +127 -0
  204. package/dist/esm/scoped/registry.js +125 -0
  205. package/dist/esm/scoped/types.js +4 -0
  206. package/dist/esm/state/exports.js +3 -0
  207. package/dist/esm/state/reactive.js +34 -0
  208. package/dist/esm/state/state.js +148 -0
  209. package/dist/esm/state/visitor.js +28 -0
  210. package/dist/esm/state/watch.js +36 -0
  211. package/dist/esm/styles/css-directive.js +36 -0
  212. package/dist/esm/styles/css.js +56 -0
  213. package/dist/esm/styles/element-styles.js +144 -0
  214. package/dist/esm/styles/host.js +1 -0
  215. package/dist/esm/styles/style-strategy.js +1 -0
  216. package/dist/esm/templating/children.js +67 -0
  217. package/dist/esm/templating/compiler.js +359 -0
  218. package/dist/esm/templating/html-binding-directive.js +288 -0
  219. package/dist/esm/templating/html-directive.js +113 -0
  220. package/dist/esm/templating/html.js +1 -0
  221. package/dist/esm/templating/hydration-view.js +228 -0
  222. package/dist/esm/templating/markup.js +83 -0
  223. package/dist/esm/templating/node-observation.js +84 -0
  224. package/dist/esm/templating/ref.js +21 -0
  225. package/dist/esm/templating/render.js +468 -0
  226. package/dist/esm/templating/repeat.js +434 -0
  227. package/dist/esm/templating/slotted.js +49 -0
  228. package/dist/esm/templating/template.js +206 -0
  229. package/dist/esm/templating/view.js +298 -0
  230. package/dist/esm/templating/when.js +22 -0
  231. package/dist/esm/testing/exports.js +3 -0
  232. package/dist/esm/testing/fakes.js +107 -0
  233. package/dist/esm/testing/fixture.js +86 -0
  234. package/dist/esm/testing/models.js +58 -0
  235. package/dist/esm/testing/timeout.js +24 -0
  236. package/dist/esm/trust/index.js +7 -0
  237. package/dist/esm/trust/types.js +6 -0
  238. package/dist/esm/trust/utils.js +126 -0
  239. package/dist/esm/utilities.js +140 -0
  240. package/dist/fast-element.api.json +26798 -0
  241. package/dist/fast-element.d.ts +3985 -0
  242. package/dist/fast-element.debug.js +7604 -0
  243. package/dist/fast-element.debug.min.js +3 -0
  244. package/dist/fast-element.js +7603 -0
  245. package/dist/fast-element.min.js +3 -0
  246. package/dist/fast-element.untrimmed.d.ts +4103 -0
  247. package/dist/observation/arrays/arrays.api.json +2621 -0
  248. package/dist/scoped/scoped.api.json +891 -0
  249. package/dist/trust/trust.api.json +629 -0
  250. package/package.json +21 -23
@@ -0,0 +1,891 @@
1
+ {
2
+ "metadata": {
3
+ "toolPackage": "@microsoft/api-extractor",
4
+ "toolVersion": "7.60.1",
5
+ "schemaVersion": 1011,
6
+ "oldestForwardsCompatibleVersion": 1001,
7
+ "tsdocConfig": {
8
+ "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
9
+ "noStandardTags": true,
10
+ "tagDefinitions": [
11
+ {
12
+ "tagName": "@alpha",
13
+ "syntaxKind": "modifier"
14
+ },
15
+ {
16
+ "tagName": "@beta",
17
+ "syntaxKind": "modifier"
18
+ },
19
+ {
20
+ "tagName": "@defaultValue",
21
+ "syntaxKind": "block"
22
+ },
23
+ {
24
+ "tagName": "@decorator",
25
+ "syntaxKind": "block",
26
+ "allowMultiple": true
27
+ },
28
+ {
29
+ "tagName": "@deprecated",
30
+ "syntaxKind": "block"
31
+ },
32
+ {
33
+ "tagName": "@eventProperty",
34
+ "syntaxKind": "modifier"
35
+ },
36
+ {
37
+ "tagName": "@example",
38
+ "syntaxKind": "block",
39
+ "allowMultiple": true
40
+ },
41
+ {
42
+ "tagName": "@experimental",
43
+ "syntaxKind": "modifier"
44
+ },
45
+ {
46
+ "tagName": "@inheritDoc",
47
+ "syntaxKind": "inline"
48
+ },
49
+ {
50
+ "tagName": "@internal",
51
+ "syntaxKind": "modifier"
52
+ },
53
+ {
54
+ "tagName": "@label",
55
+ "syntaxKind": "inline"
56
+ },
57
+ {
58
+ "tagName": "@link",
59
+ "syntaxKind": "inline",
60
+ "allowMultiple": true
61
+ },
62
+ {
63
+ "tagName": "@override",
64
+ "syntaxKind": "modifier"
65
+ },
66
+ {
67
+ "tagName": "@packageDocumentation",
68
+ "syntaxKind": "modifier"
69
+ },
70
+ {
71
+ "tagName": "@param",
72
+ "syntaxKind": "block",
73
+ "allowMultiple": true
74
+ },
75
+ {
76
+ "tagName": "@privateRemarks",
77
+ "syntaxKind": "block"
78
+ },
79
+ {
80
+ "tagName": "@public",
81
+ "syntaxKind": "modifier"
82
+ },
83
+ {
84
+ "tagName": "@readonly",
85
+ "syntaxKind": "modifier"
86
+ },
87
+ {
88
+ "tagName": "@remarks",
89
+ "syntaxKind": "block"
90
+ },
91
+ {
92
+ "tagName": "@returns",
93
+ "syntaxKind": "block"
94
+ },
95
+ {
96
+ "tagName": "@sealed",
97
+ "syntaxKind": "modifier"
98
+ },
99
+ {
100
+ "tagName": "@see",
101
+ "syntaxKind": "block"
102
+ },
103
+ {
104
+ "tagName": "@throws",
105
+ "syntaxKind": "block",
106
+ "allowMultiple": true
107
+ },
108
+ {
109
+ "tagName": "@typeParam",
110
+ "syntaxKind": "block",
111
+ "allowMultiple": true
112
+ },
113
+ {
114
+ "tagName": "@virtual",
115
+ "syntaxKind": "modifier"
116
+ },
117
+ {
118
+ "tagName": "@jsx",
119
+ "syntaxKind": "block"
120
+ },
121
+ {
122
+ "tagName": "@jsxRuntime",
123
+ "syntaxKind": "block"
124
+ },
125
+ {
126
+ "tagName": "@jsxFrag",
127
+ "syntaxKind": "block"
128
+ },
129
+ {
130
+ "tagName": "@jsxImportSource",
131
+ "syntaxKind": "block"
132
+ },
133
+ {
134
+ "tagName": "@betaDocumentation",
135
+ "syntaxKind": "modifier"
136
+ },
137
+ {
138
+ "tagName": "@internalRemarks",
139
+ "syntaxKind": "block"
140
+ },
141
+ {
142
+ "tagName": "@preapproved",
143
+ "syntaxKind": "modifier"
144
+ }
145
+ ],
146
+ "supportForTags": {
147
+ "@alpha": true,
148
+ "@beta": true,
149
+ "@defaultValue": true,
150
+ "@decorator": true,
151
+ "@deprecated": true,
152
+ "@eventProperty": true,
153
+ "@example": true,
154
+ "@experimental": true,
155
+ "@inheritDoc": true,
156
+ "@internal": true,
157
+ "@label": true,
158
+ "@link": true,
159
+ "@override": true,
160
+ "@packageDocumentation": true,
161
+ "@param": true,
162
+ "@privateRemarks": true,
163
+ "@public": true,
164
+ "@readonly": true,
165
+ "@remarks": true,
166
+ "@returns": true,
167
+ "@sealed": true,
168
+ "@see": true,
169
+ "@throws": true,
170
+ "@typeParam": true,
171
+ "@virtual": true,
172
+ "@betaDocumentation": true,
173
+ "@internalRemarks": true,
174
+ "@preapproved": true
175
+ },
176
+ "reportUnsupportedHtmlElements": false
177
+ }
178
+ },
179
+ "kind": "Package",
180
+ "canonicalReference": "@lushly-dev/fast-element!",
181
+ "docComment": "/**\n * Scoped Custom Element Registries support for FAST-AF.\n *\n * @remarks\n *\n * This module provides utilities for working with Scoped Custom Element Registries,\n * enabling isolated component definitions within shadow roots. This solves namespace\n * collisions for micro-frontends and design system versioning.\n *\n * @example\n *\n * Using ScopedRegistryMixin (recommended)\n * ```typescript\n * import { FASTElement, html } from '@lushly-dev/fast-element';\n * import { ScopedRegistryMixin } from '@lushly-dev/fast-element/scoped.js';\n *\n * class MyButton extends HTMLElement {}\n *\n * class MyCard extends ScopedRegistryMixin(FASTElement) {\n * static elementDefinitions = {\n * 'my-button': MyButton,\n * };\n * }\n *\n * // The shadow root gets the scoped registry, so <my-button> is upgraded without\n * // being defined globally.\n * await FASTElement.define(MyCard, {\n * name: 'my-card',\n * template: html`<my-button>Click me</my-button>`,\n * shadowOptions: MyCard.getShadowOptions(),\n * });\n * ```\n *\n * @example\n *\n * Using createRegistry directly\n * ```typescript\n * import {\n * createRegistry,\n * createRegistryAsync,\n * supportsScopedRegistries,\n * ensureScopedRegistrySupport,\n * } from '@lushly-dev/fast-element/scoped.js';\n *\n * class MyButton extends HTMLElement {}\n * class MyInput extends HTMLElement {}\n *\n * // Check support\n * if (supportsScopedRegistries()) {\n * const registry = createRegistry([\n * [MyButton, 'my-button'],\n * [MyInput, 'my-input'],\n * ]);\n *\n * element.attachShadow({\n * mode: 'open',\n * customElementRegistry: registry,\n * });\n * }\n *\n * // Or use async version with automatic polyfill\n * const registry = await createRegistryAsync([\n * [MyButton, 'my-button'],\n * ]);\n * ```\n *\n * @packageDocumentation\n */\n",
182
+ "name": "@lushly-dev/fast-element",
183
+ "preserveMemberOrder": false,
184
+ "members": [
185
+ {
186
+ "kind": "EntryPoint",
187
+ "canonicalReference": "@lushly-dev/fast-element!",
188
+ "name": "",
189
+ "preserveMemberOrder": false,
190
+ "members": [
191
+ {
192
+ "kind": "Function",
193
+ "canonicalReference": "@lushly-dev/fast-element!createRegistry:function(1)",
194
+ "docComment": "/**\n * Creates a scoped custom element registry with the provided element definitions.\n *\n * @remarks\n *\n * When scoped registries are supported, creates a new CustomElementRegistry\n * and defines all provided elements in it. When not supported, falls back to\n * registering elements on the global `customElements` registry (with a dev warning).\n *\n * In strict mode, throws an error if scoped registries are not supported\n * instead of falling back to the global registry.\n *\n * @param definitions - Array of [Constructor, tagName] tuples to register\n *\n * @param options - Configuration options\n *\n * @returns The created registry, or undefined if fallback to global occurred\n *\n * @example\n * ```typescript\n * // Basic usage\n * const registry = createRegistry([\n * [MyButton, 'my-button'],\n * [MyInput, 'my-input'],\n * ]);\n *\n * if (registry) {\n * element.attachShadow({ mode: 'open', customElementRegistry: registry });\n * }\n * ```\n *\n * @example\n * ```typescript\n * // Strict mode - throws if not supported\n * const registry = createRegistry(\n * [[MyButton, 'my-button']],\n * { strict: true }\n * );\n * ```\n *\n * @public\n */\n",
195
+ "excerptTokens": [
196
+ {
197
+ "kind": "Content",
198
+ "text": "export declare function createRegistry(definitions: "
199
+ },
200
+ {
201
+ "kind": "Reference",
202
+ "text": "ElementDefinition",
203
+ "canonicalReference": "@lushly-dev/fast-element!ElementDefinition:type"
204
+ },
205
+ {
206
+ "kind": "Content",
207
+ "text": "[]"
208
+ },
209
+ {
210
+ "kind": "Content",
211
+ "text": ", options?: "
212
+ },
213
+ {
214
+ "kind": "Reference",
215
+ "text": "CreateRegistryOptions",
216
+ "canonicalReference": "@lushly-dev/fast-element!CreateRegistryOptions:interface"
217
+ },
218
+ {
219
+ "kind": "Content",
220
+ "text": "): "
221
+ },
222
+ {
223
+ "kind": "Reference",
224
+ "text": "CustomElementRegistry",
225
+ "canonicalReference": "!CustomElementRegistry:interface"
226
+ },
227
+ {
228
+ "kind": "Content",
229
+ "text": " | undefined"
230
+ },
231
+ {
232
+ "kind": "Content",
233
+ "text": ";"
234
+ }
235
+ ],
236
+ "fileUrlPath": "dist/dts/scoped/registry.d.ts",
237
+ "returnTypeTokenRange": {
238
+ "startIndex": 6,
239
+ "endIndex": 8
240
+ },
241
+ "releaseTag": "Public",
242
+ "overloadIndex": 1,
243
+ "parameters": [
244
+ {
245
+ "parameterName": "definitions",
246
+ "parameterTypeTokenRange": {
247
+ "startIndex": 1,
248
+ "endIndex": 3
249
+ },
250
+ "isOptional": false
251
+ },
252
+ {
253
+ "parameterName": "options",
254
+ "parameterTypeTokenRange": {
255
+ "startIndex": 4,
256
+ "endIndex": 5
257
+ },
258
+ "isOptional": true
259
+ }
260
+ ],
261
+ "name": "createRegistry"
262
+ },
263
+ {
264
+ "kind": "Function",
265
+ "canonicalReference": "@lushly-dev/fast-element!createRegistryAsync:function(1)",
266
+ "docComment": "/**\n * Creates a scoped custom element registry with automatic polyfill loading.\n *\n * @remarks\n *\n * This async version first ensures scoped registry support is available\n * (loading the polyfill if necessary), then creates the registry.\n *\n * Unlike `createRegistry()`, this function always operates in strict mode\n * after polyfill loading, as the polyfill should provide support. If the\n * polyfill fails to load, the underlying `ensureScopedRegistrySupport()`\n * will throw.\n *\n * @param definitions - Array of [Constructor, tagName] tuples to register\n *\n * @param options - Configuration options (strict is always true after polyfill)\n *\n * @returns Promise resolving to the created registry\n *\n * @throws\n *\n * Error if polyfill loading fails\n *\n * @example\n * ```typescript\n * // Automatically loads polyfill if needed\n * const registry = await createRegistryAsync([\n * [MyButton, 'my-button'],\n * [MyInput, 'my-input'],\n * ]);\n *\n * element.attachShadow({ mode: 'open', customElementRegistry: registry });\n * ```\n *\n * @public\n */\n",
267
+ "excerptTokens": [
268
+ {
269
+ "kind": "Content",
270
+ "text": "export declare function createRegistryAsync(definitions: "
271
+ },
272
+ {
273
+ "kind": "Reference",
274
+ "text": "ElementDefinition",
275
+ "canonicalReference": "@lushly-dev/fast-element!ElementDefinition:type"
276
+ },
277
+ {
278
+ "kind": "Content",
279
+ "text": "[]"
280
+ },
281
+ {
282
+ "kind": "Content",
283
+ "text": ", options?: "
284
+ },
285
+ {
286
+ "kind": "Reference",
287
+ "text": "CreateRegistryOptions",
288
+ "canonicalReference": "@lushly-dev/fast-element!CreateRegistryOptions:interface"
289
+ },
290
+ {
291
+ "kind": "Content",
292
+ "text": "): "
293
+ },
294
+ {
295
+ "kind": "Reference",
296
+ "text": "Promise",
297
+ "canonicalReference": "!Promise:interface"
298
+ },
299
+ {
300
+ "kind": "Content",
301
+ "text": "<"
302
+ },
303
+ {
304
+ "kind": "Reference",
305
+ "text": "CustomElementRegistry",
306
+ "canonicalReference": "!CustomElementRegistry:interface"
307
+ },
308
+ {
309
+ "kind": "Content",
310
+ "text": ">"
311
+ },
312
+ {
313
+ "kind": "Content",
314
+ "text": ";"
315
+ }
316
+ ],
317
+ "fileUrlPath": "dist/dts/scoped/registry.d.ts",
318
+ "returnTypeTokenRange": {
319
+ "startIndex": 6,
320
+ "endIndex": 10
321
+ },
322
+ "releaseTag": "Public",
323
+ "overloadIndex": 1,
324
+ "parameters": [
325
+ {
326
+ "parameterName": "definitions",
327
+ "parameterTypeTokenRange": {
328
+ "startIndex": 1,
329
+ "endIndex": 3
330
+ },
331
+ "isOptional": false
332
+ },
333
+ {
334
+ "parameterName": "options",
335
+ "parameterTypeTokenRange": {
336
+ "startIndex": 4,
337
+ "endIndex": 5
338
+ },
339
+ "isOptional": true
340
+ }
341
+ ],
342
+ "name": "createRegistryAsync"
343
+ },
344
+ {
345
+ "kind": "Interface",
346
+ "canonicalReference": "@lushly-dev/fast-element!CreateRegistryOptions:interface",
347
+ "docComment": "/**\n * Options for createRegistry helper.\n *\n * @public\n */\n",
348
+ "excerptTokens": [
349
+ {
350
+ "kind": "Content",
351
+ "text": "export interface CreateRegistryOptions "
352
+ }
353
+ ],
354
+ "fileUrlPath": "dist/dts/scoped/types.d.ts",
355
+ "releaseTag": "Public",
356
+ "name": "CreateRegistryOptions",
357
+ "preserveMemberOrder": false,
358
+ "members": [
359
+ {
360
+ "kind": "PropertySignature",
361
+ "canonicalReference": "@lushly-dev/fast-element!CreateRegistryOptions#strict:member",
362
+ "docComment": "/**\n * If true, throw when unsupported instead of falling back to global registry.\n * Default: false (uses global registry fallback)\n */\n",
363
+ "excerptTokens": [
364
+ {
365
+ "kind": "Content",
366
+ "text": "strict?: "
367
+ },
368
+ {
369
+ "kind": "Content",
370
+ "text": "boolean"
371
+ },
372
+ {
373
+ "kind": "Content",
374
+ "text": ";"
375
+ }
376
+ ],
377
+ "isReadonly": false,
378
+ "isOptional": true,
379
+ "releaseTag": "Public",
380
+ "name": "strict",
381
+ "propertyTypeTokenRange": {
382
+ "startIndex": 1,
383
+ "endIndex": 2
384
+ }
385
+ }
386
+ ],
387
+ "extendsTokenRanges": []
388
+ },
389
+ {
390
+ "kind": "TypeAlias",
391
+ "canonicalReference": "@lushly-dev/fast-element!ElementDefinition:type",
392
+ "docComment": "/**\n * Element definition tuple: [Constructor, tag-name]\n *\n * @remarks\n *\n * Used with createRegistry() to define elements in a scoped registry.\n *\n * @example\n * ```typescript\n * const definitions: ElementDefinition[] = [\n * [MyButton, 'my-button'],\n * [MyInput, 'my-input'],\n * ];\n * ```\n *\n * @public\n */\n",
393
+ "excerptTokens": [
394
+ {
395
+ "kind": "Content",
396
+ "text": "export type ElementDefinition = "
397
+ },
398
+ {
399
+ "kind": "Content",
400
+ "text": "["
401
+ },
402
+ {
403
+ "kind": "Reference",
404
+ "text": "CustomElementConstructor",
405
+ "canonicalReference": "!CustomElementConstructor:interface"
406
+ },
407
+ {
408
+ "kind": "Content",
409
+ "text": ", string]"
410
+ },
411
+ {
412
+ "kind": "Content",
413
+ "text": ";"
414
+ }
415
+ ],
416
+ "fileUrlPath": "dist/dts/scoped/types.d.ts",
417
+ "releaseTag": "Public",
418
+ "name": "ElementDefinition",
419
+ "typeTokenRange": {
420
+ "startIndex": 1,
421
+ "endIndex": 4
422
+ }
423
+ },
424
+ {
425
+ "kind": "TypeAlias",
426
+ "canonicalReference": "@lushly-dev/fast-element!ElementDefinitionMap:type",
427
+ "docComment": "/**\n * Map of element definitions: tag-name to constructor.\n *\n * @remarks\n *\n * Used with ScopedRegistryMixin to define child elements that should\n * be registered in the component's scoped registry.\n *\n * @example\n * ```typescript\n * static elementDefinitions: ElementDefinitionMap = {\n * 'my-button': MyButton,\n * 'my-input': MyInput,\n * };\n * ```\n *\n * @public\n */\n",
428
+ "excerptTokens": [
429
+ {
430
+ "kind": "Content",
431
+ "text": "export type ElementDefinitionMap = "
432
+ },
433
+ {
434
+ "kind": "Reference",
435
+ "text": "Record",
436
+ "canonicalReference": "!Record:type"
437
+ },
438
+ {
439
+ "kind": "Content",
440
+ "text": "<string, "
441
+ },
442
+ {
443
+ "kind": "Reference",
444
+ "text": "CustomElementConstructor",
445
+ "canonicalReference": "!CustomElementConstructor:interface"
446
+ },
447
+ {
448
+ "kind": "Content",
449
+ "text": ">"
450
+ },
451
+ {
452
+ "kind": "Content",
453
+ "text": ";"
454
+ }
455
+ ],
456
+ "fileUrlPath": "dist/dts/scoped/mixin.d.ts",
457
+ "releaseTag": "Public",
458
+ "name": "ElementDefinitionMap",
459
+ "typeTokenRange": {
460
+ "startIndex": 1,
461
+ "endIndex": 5
462
+ }
463
+ },
464
+ {
465
+ "kind": "Function",
466
+ "canonicalReference": "@lushly-dev/fast-element!ensureScopedRegistrySupport:function(1)",
467
+ "docComment": "/**\n * Idempotency-safe polyfill loading for Scoped Custom Element Registries.\n *\n * @remarks\n *\n * Safe to call from multiple micro-frontend bundles. Uses a global flag\n * (`window.__scopedRegistryPolyfillApplied`) to prevent double-patching\n * which could corrupt the CustomElementRegistry prototype.\n *\n * If native support is detected, returns immediately without loading the polyfill.\n * On polyfill load failure, the flag is reset to allow retry on subsequent calls.\n *\n * @throws\n *\n * Error if the polyfill fails to load (network error, etc.)\n *\n * @example\n * ```typescript\n * // At app startup\n * await ensureScopedRegistrySupport();\n *\n * // Now safe to use scoped registries\n * const registry = new CustomElementRegistry();\n * ```\n *\n * @public\n */\n",
468
+ "excerptTokens": [
469
+ {
470
+ "kind": "Content",
471
+ "text": "export declare function ensureScopedRegistrySupport(): "
472
+ },
473
+ {
474
+ "kind": "Reference",
475
+ "text": "Promise",
476
+ "canonicalReference": "!Promise:interface"
477
+ },
478
+ {
479
+ "kind": "Content",
480
+ "text": "<void>"
481
+ },
482
+ {
483
+ "kind": "Content",
484
+ "text": ";"
485
+ }
486
+ ],
487
+ "fileUrlPath": "dist/dts/scoped/detection.d.ts",
488
+ "returnTypeTokenRange": {
489
+ "startIndex": 1,
490
+ "endIndex": 3
491
+ },
492
+ "releaseTag": "Public",
493
+ "overloadIndex": 1,
494
+ "parameters": [],
495
+ "name": "ensureScopedRegistrySupport"
496
+ },
497
+ {
498
+ "kind": "Interface",
499
+ "canonicalReference": "@lushly-dev/fast-element!ScopedRegistryHost:interface",
500
+ "docComment": "/**\n * Interface for classes that host a scoped registry.\n *\n * @remarks\n *\n * Implemented by classes using the ScopedRegistryMixin.\n *\n * @public\n */\n",
501
+ "excerptTokens": [
502
+ {
503
+ "kind": "Content",
504
+ "text": "export interface ScopedRegistryHost "
505
+ }
506
+ ],
507
+ "fileUrlPath": "dist/dts/scoped/mixin.d.ts",
508
+ "releaseTag": "Public",
509
+ "name": "ScopedRegistryHost",
510
+ "preserveMemberOrder": false,
511
+ "members": [
512
+ {
513
+ "kind": "PropertySignature",
514
+ "canonicalReference": "@lushly-dev/fast-element!ScopedRegistryHost#elementDefinitions:member",
515
+ "docComment": "/**\n * Static element definitions for the scoped registry.\n */\n",
516
+ "excerptTokens": [
517
+ {
518
+ "kind": "Content",
519
+ "text": "elementDefinitions?: "
520
+ },
521
+ {
522
+ "kind": "Reference",
523
+ "text": "ElementDefinitionMap",
524
+ "canonicalReference": "@lushly-dev/fast-element!ElementDefinitionMap:type"
525
+ },
526
+ {
527
+ "kind": "Content",
528
+ "text": ";"
529
+ }
530
+ ],
531
+ "isReadonly": false,
532
+ "isOptional": true,
533
+ "releaseTag": "Public",
534
+ "name": "elementDefinitions",
535
+ "propertyTypeTokenRange": {
536
+ "startIndex": 1,
537
+ "endIndex": 2
538
+ }
539
+ },
540
+ {
541
+ "kind": "PropertySignature",
542
+ "canonicalReference": "@lushly-dev/fast-element!ScopedRegistryHost#scopedRegistry:member",
543
+ "docComment": "/**\n * The scoped registry created from elementDefinitions.\n *\n * @remarks\n *\n * Lazily created on first access.\n */\n",
544
+ "excerptTokens": [
545
+ {
546
+ "kind": "Content",
547
+ "text": "scopedRegistry: "
548
+ },
549
+ {
550
+ "kind": "Reference",
551
+ "text": "CustomElementRegistry",
552
+ "canonicalReference": "!CustomElementRegistry:interface"
553
+ },
554
+ {
555
+ "kind": "Content",
556
+ "text": " | undefined"
557
+ },
558
+ {
559
+ "kind": "Content",
560
+ "text": ";"
561
+ }
562
+ ],
563
+ "isReadonly": false,
564
+ "isOptional": false,
565
+ "releaseTag": "Public",
566
+ "name": "scopedRegistry",
567
+ "propertyTypeTokenRange": {
568
+ "startIndex": 1,
569
+ "endIndex": 3
570
+ }
571
+ }
572
+ ],
573
+ "extendsTokenRanges": []
574
+ },
575
+ {
576
+ "kind": "Interface",
577
+ "canonicalReference": "@lushly-dev/fast-element!ScopedRegistryHostConstructor:interface",
578
+ "docComment": "/**\n * Static interface for ScopedRegistryMixin classes.\n *\n * @public\n */\n",
579
+ "excerptTokens": [
580
+ {
581
+ "kind": "Content",
582
+ "text": "export interface ScopedRegistryHostConstructor "
583
+ }
584
+ ],
585
+ "fileUrlPath": "dist/dts/scoped/mixin.d.ts",
586
+ "releaseTag": "Public",
587
+ "name": "ScopedRegistryHostConstructor",
588
+ "preserveMemberOrder": false,
589
+ "members": [
590
+ {
591
+ "kind": "PropertySignature",
592
+ "canonicalReference": "@lushly-dev/fast-element!ScopedRegistryHostConstructor#elementDefinitions:member",
593
+ "docComment": "/**\n * Static element definitions for the scoped registry.\n */\n",
594
+ "excerptTokens": [
595
+ {
596
+ "kind": "Content",
597
+ "text": "elementDefinitions?: "
598
+ },
599
+ {
600
+ "kind": "Reference",
601
+ "text": "ElementDefinitionMap",
602
+ "canonicalReference": "@lushly-dev/fast-element!ElementDefinitionMap:type"
603
+ },
604
+ {
605
+ "kind": "Content",
606
+ "text": ";"
607
+ }
608
+ ],
609
+ "isReadonly": false,
610
+ "isOptional": true,
611
+ "releaseTag": "Public",
612
+ "name": "elementDefinitions",
613
+ "propertyTypeTokenRange": {
614
+ "startIndex": 1,
615
+ "endIndex": 2
616
+ }
617
+ },
618
+ {
619
+ "kind": "MethodSignature",
620
+ "canonicalReference": "@lushly-dev/fast-element!ScopedRegistryHostConstructor#getShadowOptions:member(1)",
621
+ "docComment": "/**\n * Gets shadow root options with the scoped registry configured.\n *\n * @param baseOptions - Optional base shadow root options to extend\n *\n * @returns Shadow root options with customElementRegistry if applicable\n */\n",
622
+ "excerptTokens": [
623
+ {
624
+ "kind": "Content",
625
+ "text": "getShadowOptions(baseOptions?: "
626
+ },
627
+ {
628
+ "kind": "Reference",
629
+ "text": "ScopedShadowRootInit",
630
+ "canonicalReference": "@lushly-dev/fast-element!ScopedShadowRootInit:interface"
631
+ },
632
+ {
633
+ "kind": "Content",
634
+ "text": "): "
635
+ },
636
+ {
637
+ "kind": "Reference",
638
+ "text": "ScopedShadowRootInit",
639
+ "canonicalReference": "@lushly-dev/fast-element!ScopedShadowRootInit:interface"
640
+ },
641
+ {
642
+ "kind": "Content",
643
+ "text": ";"
644
+ }
645
+ ],
646
+ "isOptional": false,
647
+ "returnTypeTokenRange": {
648
+ "startIndex": 3,
649
+ "endIndex": 4
650
+ },
651
+ "releaseTag": "Public",
652
+ "overloadIndex": 1,
653
+ "parameters": [
654
+ {
655
+ "parameterName": "baseOptions",
656
+ "parameterTypeTokenRange": {
657
+ "startIndex": 1,
658
+ "endIndex": 2
659
+ },
660
+ "isOptional": true
661
+ }
662
+ ],
663
+ "name": "getShadowOptions"
664
+ },
665
+ {
666
+ "kind": "PropertySignature",
667
+ "canonicalReference": "@lushly-dev/fast-element!ScopedRegistryHostConstructor#scopedRegistry:member",
668
+ "docComment": "/**\n * The scoped registry created from elementDefinitions.\n */\n",
669
+ "excerptTokens": [
670
+ {
671
+ "kind": "Content",
672
+ "text": "readonly scopedRegistry: "
673
+ },
674
+ {
675
+ "kind": "Reference",
676
+ "text": "CustomElementRegistry",
677
+ "canonicalReference": "!CustomElementRegistry:interface"
678
+ },
679
+ {
680
+ "kind": "Content",
681
+ "text": " | undefined"
682
+ },
683
+ {
684
+ "kind": "Content",
685
+ "text": ";"
686
+ }
687
+ ],
688
+ "isReadonly": true,
689
+ "isOptional": false,
690
+ "releaseTag": "Public",
691
+ "name": "scopedRegistry",
692
+ "propertyTypeTokenRange": {
693
+ "startIndex": 1,
694
+ "endIndex": 3
695
+ }
696
+ }
697
+ ],
698
+ "extendsTokenRanges": []
699
+ },
700
+ {
701
+ "kind": "Function",
702
+ "canonicalReference": "@lushly-dev/fast-element!ScopedRegistryMixin:function(1)",
703
+ "docComment": "/**\n * Creates a mixin that enables scoped custom element registries for a FASTElement.\n *\n * @remarks\n *\n * The ScopedRegistryMixin provides a way to define child elements that are\n * scoped to the component's shadow root, preventing namespace collisions\n * in micro-frontend scenarios and enabling design system versioning.\n *\n * The mixin adds:\n * - A static `elementDefinitions` property for defining child elements\n * - A static `scopedRegistry` getter that lazily creates the registry\n * - A method to get shadow root options with the scoped registry\n *\n * When scoped registries are not supported by the browser, elements fall back\n * to the global registry with a development warning.\n *\n * @param Base - The FASTElement base class to extend\n *\n * @returns A class that supports scoped element definitions\n *\n * @example\n * ```typescript\n * import { FASTElement, html, css } from '@lushly-dev/fast-element';\n * import { ScopedRegistryMixin } from '@lushly-dev/fast-element/scoped.js';\n *\n * // Children can be plain custom elements. FASTElement children must be composed\n * // first (FASTElementDefinition.compose(MyIcon, { name: 'my-icon' })) so the\n * // registry can reuse their FAST definition; creating an element of an\n * // undefined FASTElement class throws FAST error 1401.\n * class MyButton extends HTMLElement {\n * // Button implementation\n * }\n *\n * class MyCard extends ScopedRegistryMixin(FASTElement) {\n * static elementDefinitions = {\n * 'my-button': MyButton,\n * };\n * }\n *\n * // Attach the scoped registry to the shadow root through getShadowOptions().\n * // The template's <my-button> is created against it and does not need to be\n * // (and here is not) defined in the global registry.\n * await FASTElement.define(MyCard, {\n * name: 'my-card',\n * template: html`<my-button>Click me</my-button>`,\n * shadowOptions: MyCard.getShadowOptions(),\n * });\n * ```\n *\n * @public\n */\n",
704
+ "excerptTokens": [
705
+ {
706
+ "kind": "Content",
707
+ "text": "export declare function ScopedRegistryMixin<T extends "
708
+ },
709
+ {
710
+ "kind": "Reference",
711
+ "text": "CustomElementConstructor",
712
+ "canonicalReference": "!CustomElementConstructor:interface"
713
+ },
714
+ {
715
+ "kind": "Content",
716
+ "text": ">(Base: "
717
+ },
718
+ {
719
+ "kind": "Content",
720
+ "text": "T"
721
+ },
722
+ {
723
+ "kind": "Content",
724
+ "text": "): "
725
+ },
726
+ {
727
+ "kind": "Content",
728
+ "text": "T & "
729
+ },
730
+ {
731
+ "kind": "Reference",
732
+ "text": "ScopedRegistryHostConstructor",
733
+ "canonicalReference": "@lushly-dev/fast-element!ScopedRegistryHostConstructor:interface"
734
+ },
735
+ {
736
+ "kind": "Content",
737
+ "text": ";"
738
+ }
739
+ ],
740
+ "fileUrlPath": "dist/dts/scoped/mixin.d.ts",
741
+ "returnTypeTokenRange": {
742
+ "startIndex": 5,
743
+ "endIndex": 7
744
+ },
745
+ "releaseTag": "Public",
746
+ "overloadIndex": 1,
747
+ "parameters": [
748
+ {
749
+ "parameterName": "Base",
750
+ "parameterTypeTokenRange": {
751
+ "startIndex": 3,
752
+ "endIndex": 4
753
+ },
754
+ "isOptional": false
755
+ }
756
+ ],
757
+ "typeParameters": [
758
+ {
759
+ "typeParameterName": "T",
760
+ "constraintTokenRange": {
761
+ "startIndex": 1,
762
+ "endIndex": 2
763
+ },
764
+ "defaultTypeTokenRange": {
765
+ "startIndex": 0,
766
+ "endIndex": 0
767
+ }
768
+ }
769
+ ],
770
+ "name": "ScopedRegistryMixin"
771
+ },
772
+ {
773
+ "kind": "Interface",
774
+ "canonicalReference": "@lushly-dev/fast-element!ScopedShadowRootInit:interface",
775
+ "docComment": "/**\n * Extended ShadowRootInit with registry support.\n *\n * @remarks\n *\n * Extends the standard ShadowRootInit to support scoped custom element registries.\n * The `customElementRegistry` property is the native spec key (Safari 26+, Chrome 133+ OT).\n * The `registry` property is deprecated and will be removed in a future version.\n *\n * @public\n */\n",
776
+ "excerptTokens": [
777
+ {
778
+ "kind": "Content",
779
+ "text": "export interface ScopedShadowRootInit extends "
780
+ },
781
+ {
782
+ "kind": "Reference",
783
+ "text": "ShadowRootInit",
784
+ "canonicalReference": "!ShadowRootInit:interface"
785
+ },
786
+ {
787
+ "kind": "Content",
788
+ "text": " "
789
+ }
790
+ ],
791
+ "fileUrlPath": "dist/dts/scoped/types.d.ts",
792
+ "releaseTag": "Public",
793
+ "name": "ScopedShadowRootInit",
794
+ "preserveMemberOrder": false,
795
+ "members": [
796
+ {
797
+ "kind": "PropertySignature",
798
+ "canonicalReference": "@lushly-dev/fast-element!ScopedShadowRootInit#customElementRegistry:member",
799
+ "docComment": "/**\n * Native spec key - preferred (Safari 26+, Chrome 133+ Origin Trial)\n */\n",
800
+ "excerptTokens": [
801
+ {
802
+ "kind": "Content",
803
+ "text": "customElementRegistry?: "
804
+ },
805
+ {
806
+ "kind": "Reference",
807
+ "text": "CustomElementRegistry",
808
+ "canonicalReference": "!CustomElementRegistry:interface"
809
+ },
810
+ {
811
+ "kind": "Content",
812
+ "text": ";"
813
+ }
814
+ ],
815
+ "isReadonly": false,
816
+ "isOptional": true,
817
+ "releaseTag": "Public",
818
+ "name": "customElementRegistry",
819
+ "propertyTypeTokenRange": {
820
+ "startIndex": 1,
821
+ "endIndex": 2
822
+ }
823
+ },
824
+ {
825
+ "kind": "PropertySignature",
826
+ "canonicalReference": "@lushly-dev/fast-element!ScopedShadowRootInit#registry:member",
827
+ "docComment": "/**\n * @deprecated\n *\n * Use customElementRegistry instead\n */\n",
828
+ "excerptTokens": [
829
+ {
830
+ "kind": "Content",
831
+ "text": "registry?: "
832
+ },
833
+ {
834
+ "kind": "Reference",
835
+ "text": "CustomElementRegistry",
836
+ "canonicalReference": "!CustomElementRegistry:interface"
837
+ },
838
+ {
839
+ "kind": "Content",
840
+ "text": ";"
841
+ }
842
+ ],
843
+ "isReadonly": false,
844
+ "isOptional": true,
845
+ "releaseTag": "Public",
846
+ "name": "registry",
847
+ "propertyTypeTokenRange": {
848
+ "startIndex": 1,
849
+ "endIndex": 2
850
+ }
851
+ }
852
+ ],
853
+ "extendsTokenRanges": [
854
+ {
855
+ "startIndex": 1,
856
+ "endIndex": 2
857
+ }
858
+ ]
859
+ },
860
+ {
861
+ "kind": "Function",
862
+ "canonicalReference": "@lushly-dev/fast-element!supportsScopedRegistries:function(1)",
863
+ "docComment": "/**\n * Robust feature detection for Scoped Custom Element Registries.\n *\n * @remarks\n *\n * Tests the full API surface, not just the constructor existence.\n * This ensures the browser actually supports attaching a custom registry\n * to a shadow root, which is the critical functionality.\n *\n * @returns true if the browser supports scoped custom element registries\n *\n * @example\n * ```typescript\n * if (supportsScopedRegistries()) {\n * const registry = new CustomElementRegistry();\n * element.attachShadow({ mode: 'open', customElementRegistry: registry });\n * }\n * ```\n *\n * @public\n */\n",
864
+ "excerptTokens": [
865
+ {
866
+ "kind": "Content",
867
+ "text": "export declare function supportsScopedRegistries(): "
868
+ },
869
+ {
870
+ "kind": "Content",
871
+ "text": "boolean"
872
+ },
873
+ {
874
+ "kind": "Content",
875
+ "text": ";"
876
+ }
877
+ ],
878
+ "fileUrlPath": "dist/dts/scoped/detection.d.ts",
879
+ "returnTypeTokenRange": {
880
+ "startIndex": 1,
881
+ "endIndex": 2
882
+ },
883
+ "releaseTag": "Public",
884
+ "overloadIndex": 1,
885
+ "parameters": [],
886
+ "name": "supportsScopedRegistries"
887
+ }
888
+ ]
889
+ }
890
+ ]
891
+ }