@craft-ts/component 0.7.0-beta.13 → 0.7.0-beta.16

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 (195) hide show
  1. package/package.json +7 -2
  2. package/src/index.d.ts +40 -40
  3. package/src/index.js +35 -35
  4. package/src/lib/a11y-control.d.ts +0 -1
  5. package/src/lib/a11y-control.js +0 -1
  6. package/src/lib/a11y.d.ts +4 -5
  7. package/src/lib/a11y.js +3 -4
  8. package/src/lib/ai/ai-context-menu.d.ts +24 -25
  9. package/src/lib/ai/ai-context-menu.js +2 -3
  10. package/src/lib/ai/ai-send-dialog.d.ts +277 -278
  11. package/src/lib/ai/ai-send-dialog.js +4 -5
  12. package/src/lib/ai/send-context-to-ai.d.ts +1 -2
  13. package/src/lib/ai/send-context-to-ai.js +4 -5
  14. package/src/lib/assert-defined-input.d.ts +1 -2
  15. package/src/lib/assert-defined-input.js +0 -1
  16. package/src/lib/bootstrap.d.ts +4 -3
  17. package/src/lib/bootstrap.js +6 -8
  18. package/src/lib/bridge.d.ts +9 -10
  19. package/src/lib/bridge.js +3 -4
  20. package/src/lib/catch-node.d.ts +35 -0
  21. package/src/lib/{block.js → catch-node.js} +9 -10
  22. package/src/lib/component.d.ts +23 -10
  23. package/src/lib/component.js +5 -6
  24. package/src/lib/composition.d.ts +1 -2
  25. package/src/lib/composition.js +2 -3
  26. package/src/lib/craft-defaults.d.ts +0 -1
  27. package/src/lib/craft-defaults.js +4 -5
  28. package/src/lib/craft-host-tokens.d.ts +0 -1
  29. package/src/lib/craft-host-tokens.js +0 -1
  30. package/src/lib/craft-router-outlet.d.ts +1 -2
  31. package/src/lib/craft-router-outlet.js +1 -2
  32. package/src/lib/css-vars.d.ts +0 -1
  33. package/src/lib/css-vars.js +0 -1
  34. package/src/lib/css-vars.type.d.ts +1 -2
  35. package/src/lib/css-vars.type.js +0 -1
  36. package/src/lib/{defer.d.ts → defer-node.d.ts} +4 -5
  37. package/src/lib/{defer.js → defer-node.js} +1 -2
  38. package/src/lib/directive.d.ts +1 -2
  39. package/src/lib/directive.js +1 -2
  40. package/src/lib/factory-runtime.d.ts +1 -2
  41. package/src/lib/factory-runtime.js +0 -1
  42. package/src/lib/{field-exception-block.d.ts → field-error-node.d.ts} +22 -23
  43. package/src/lib/{field-exception-block.js → field-error-node.js} +8 -9
  44. package/src/lib/for-node.d.ts +28 -0
  45. package/src/lib/{each.js → for-node.js} +4 -5
  46. package/src/lib/for-scheduling.d.ts +58 -0
  47. package/src/lib/{each-scheduling.js → for-scheduling.js} +14 -15
  48. package/src/lib/host-runtime.d.ts +0 -1
  49. package/src/lib/host-runtime.js +0 -1
  50. package/src/lib/hydrate.d.ts +2 -3
  51. package/src/lib/hydrate.js +57 -18
  52. package/src/lib/hyperscript.d.ts +1 -2
  53. package/src/lib/hyperscript.js +1 -2
  54. package/src/lib/if-node.d.ts +7 -0
  55. package/src/lib/{if-block.js → if-node.js} +2 -3
  56. package/src/lib/locator.d.ts +5 -6
  57. package/src/lib/locator.js +1 -2
  58. package/src/lib/{match-block.d.ts → match-node.d.ts} +8 -9
  59. package/src/lib/{match-block.js → match-node.js} +3 -4
  60. package/src/lib/{pending-block.d.ts → pending-node.d.ts} +28 -29
  61. package/src/lib/{pending-block.js → pending-node.js} +12 -13
  62. package/src/lib/project.d.ts +2 -3
  63. package/src/lib/project.js +2 -3
  64. package/src/lib/render/hydration-metadata.d.ts +0 -1
  65. package/src/lib/render/hydration-metadata.js +0 -1
  66. package/src/lib/render/hydration.d.ts +0 -1
  67. package/src/lib/render/hydration.js +0 -1
  68. package/src/lib/render/interpreter.d.ts +9 -8
  69. package/src/lib/render/interpreter.js +156 -81
  70. package/src/lib/render/server-style-collector.d.ts +0 -1
  71. package/src/lib/render/server-style-collector.js +0 -1
  72. package/src/lib/render/ssr-coordinator.d.ts +4 -2
  73. package/src/lib/render/ssr-coordinator.js +14 -3
  74. package/src/lib/render/string-dom.d.ts +0 -1
  75. package/src/lib/render/string-dom.js +48 -7
  76. package/src/lib/render/style-registry.d.ts +3 -2
  77. package/src/lib/render/style-registry.js +3 -2
  78. package/src/lib/render/style-scope.d.ts +0 -1
  79. package/src/lib/render/style-scope.js +0 -1
  80. package/src/lib/render/vnode.d.ts +117 -54
  81. package/src/lib/render/vnode.js +26 -27
  82. package/src/lib/security.d.ts +54 -0
  83. package/src/lib/security.js +502 -0
  84. package/src/lib/server-render.d.ts +12 -3
  85. package/src/lib/server-render.js +76 -17
  86. package/src/lib/start.d.ts +2 -3
  87. package/src/lib/start.js +3 -3
  88. package/src/lib/template-contract.d.ts +22 -23
  89. package/src/lib/template-contract.js +0 -1
  90. package/src/lib/template.d.ts +2 -3
  91. package/src/lib/template.js +2 -3
  92. package/src/lib/testing.d.ts +3 -4
  93. package/src/lib/testing.js +5 -6
  94. package/src/lib/types.d.ts +40 -28
  95. package/src/lib/types.js +3 -4
  96. package/testing/public-api.d.ts +0 -1
  97. package/testing/public-api.js +0 -1
  98. package/src/index.d.ts.map +0 -1
  99. package/src/index.js.map +0 -1
  100. package/src/lib/a11y-control.d.ts.map +0 -1
  101. package/src/lib/a11y-control.js.map +0 -1
  102. package/src/lib/a11y.d.ts.map +0 -1
  103. package/src/lib/a11y.js.map +0 -1
  104. package/src/lib/ai/ai-context-menu.d.ts.map +0 -1
  105. package/src/lib/ai/ai-context-menu.js.map +0 -1
  106. package/src/lib/ai/ai-send-dialog.d.ts.map +0 -1
  107. package/src/lib/ai/ai-send-dialog.js.map +0 -1
  108. package/src/lib/ai/send-context-to-ai.d.ts.map +0 -1
  109. package/src/lib/ai/send-context-to-ai.js.map +0 -1
  110. package/src/lib/assert-defined-input.d.ts.map +0 -1
  111. package/src/lib/assert-defined-input.js.map +0 -1
  112. package/src/lib/block.d.ts +0 -36
  113. package/src/lib/block.d.ts.map +0 -1
  114. package/src/lib/block.js.map +0 -1
  115. package/src/lib/bootstrap.d.ts.map +0 -1
  116. package/src/lib/bootstrap.js.map +0 -1
  117. package/src/lib/bridge.d.ts.map +0 -1
  118. package/src/lib/bridge.js.map +0 -1
  119. package/src/lib/component.d.ts.map +0 -1
  120. package/src/lib/component.js.map +0 -1
  121. package/src/lib/composition.d.ts.map +0 -1
  122. package/src/lib/composition.js.map +0 -1
  123. package/src/lib/craft-defaults.d.ts.map +0 -1
  124. package/src/lib/craft-defaults.js.map +0 -1
  125. package/src/lib/craft-host-tokens.d.ts.map +0 -1
  126. package/src/lib/craft-host-tokens.js.map +0 -1
  127. package/src/lib/craft-router-outlet.d.ts.map +0 -1
  128. package/src/lib/craft-router-outlet.js.map +0 -1
  129. package/src/lib/css-vars.d.ts.map +0 -1
  130. package/src/lib/css-vars.js.map +0 -1
  131. package/src/lib/css-vars.type.d.ts.map +0 -1
  132. package/src/lib/css-vars.type.js.map +0 -1
  133. package/src/lib/defer.d.ts.map +0 -1
  134. package/src/lib/defer.js.map +0 -1
  135. package/src/lib/directive.d.ts.map +0 -1
  136. package/src/lib/directive.js.map +0 -1
  137. package/src/lib/each-scheduling.d.ts +0 -59
  138. package/src/lib/each-scheduling.d.ts.map +0 -1
  139. package/src/lib/each-scheduling.js.map +0 -1
  140. package/src/lib/each.d.ts +0 -29
  141. package/src/lib/each.d.ts.map +0 -1
  142. package/src/lib/each.js.map +0 -1
  143. package/src/lib/factory-runtime.d.ts.map +0 -1
  144. package/src/lib/factory-runtime.js.map +0 -1
  145. package/src/lib/field-exception-block.d.ts.map +0 -1
  146. package/src/lib/field-exception-block.js.map +0 -1
  147. package/src/lib/host-runtime.d.ts.map +0 -1
  148. package/src/lib/host-runtime.js.map +0 -1
  149. package/src/lib/hydrate.d.ts.map +0 -1
  150. package/src/lib/hydrate.js.map +0 -1
  151. package/src/lib/hyperscript.d.ts.map +0 -1
  152. package/src/lib/hyperscript.js.map +0 -1
  153. package/src/lib/if-block.d.ts +0 -8
  154. package/src/lib/if-block.d.ts.map +0 -1
  155. package/src/lib/if-block.js.map +0 -1
  156. package/src/lib/locator.d.ts.map +0 -1
  157. package/src/lib/locator.js.map +0 -1
  158. package/src/lib/match-block.d.ts.map +0 -1
  159. package/src/lib/match-block.js.map +0 -1
  160. package/src/lib/pending-block.d.ts.map +0 -1
  161. package/src/lib/pending-block.js.map +0 -1
  162. package/src/lib/project.d.ts.map +0 -1
  163. package/src/lib/project.js.map +0 -1
  164. package/src/lib/render/hydration-metadata.d.ts.map +0 -1
  165. package/src/lib/render/hydration-metadata.js.map +0 -1
  166. package/src/lib/render/hydration.d.ts.map +0 -1
  167. package/src/lib/render/hydration.js.map +0 -1
  168. package/src/lib/render/interpreter.d.ts.map +0 -1
  169. package/src/lib/render/interpreter.js.map +0 -1
  170. package/src/lib/render/server-style-collector.d.ts.map +0 -1
  171. package/src/lib/render/server-style-collector.js.map +0 -1
  172. package/src/lib/render/ssr-coordinator.d.ts.map +0 -1
  173. package/src/lib/render/ssr-coordinator.js.map +0 -1
  174. package/src/lib/render/string-dom.d.ts.map +0 -1
  175. package/src/lib/render/string-dom.js.map +0 -1
  176. package/src/lib/render/style-registry.d.ts.map +0 -1
  177. package/src/lib/render/style-registry.js.map +0 -1
  178. package/src/lib/render/style-scope.d.ts.map +0 -1
  179. package/src/lib/render/style-scope.js.map +0 -1
  180. package/src/lib/render/vnode.d.ts.map +0 -1
  181. package/src/lib/render/vnode.js.map +0 -1
  182. package/src/lib/server-render.d.ts.map +0 -1
  183. package/src/lib/server-render.js.map +0 -1
  184. package/src/lib/start.d.ts.map +0 -1
  185. package/src/lib/start.js.map +0 -1
  186. package/src/lib/template-contract.d.ts.map +0 -1
  187. package/src/lib/template-contract.js.map +0 -1
  188. package/src/lib/template.d.ts.map +0 -1
  189. package/src/lib/template.js.map +0 -1
  190. package/src/lib/testing.d.ts.map +0 -1
  191. package/src/lib/testing.js.map +0 -1
  192. package/src/lib/types.d.ts.map +0 -1
  193. package/src/lib/types.js.map +0 -1
  194. package/testing/public-api.d.ts.map +0 -1
  195. package/testing/public-api.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-contract.js","sourceRoot":"","sources":["../../../../../libs/component/src/lib/template-contract.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n CraftComponent,\n ComponentTemplateOf,\n ComponentTemplateNameOf,\n FactoryContext,\n Output,\n PropsOf,\n TemplateMethodUse,\n} from './types';\nimport type {\n NamedYieldableValue,\n Yieldable,\n YieldableMethod,\n} from '@craft-ts/core';\nimport type {\n ComponentNode,\n CraftDirectiveNode,\n CraftNodeChildren,\n DeferNode,\n EachNode,\n IfBlockNode,\n ElementNodeBase,\n} from './render/vnode';\n\nexport type TemplateContractError<Message extends string> = {\n readonly error: Message;\n};\n\ntype IsAny<Value> = 0 extends 1 & Value ? true : false;\n\ntype IsUnion<Value, Whole = Value> = Value extends any\n ? [Whole] extends [Value]\n ? false\n : true\n : never;\n\ntype ContractErrors<Result> = Extract<Result, TemplateContractError<string>>;\n\ntype ContractResult<Result> = [ContractErrors<Result>] extends [never]\n ? true\n : ContractErrors<Result>;\n\ntype Registered<\n Component,\n Registry extends readonly CraftComponent<any, any>[],\n> = [Component] extends [Registry[number]] ? true : false;\n\ntype ComponentName<Component> =\n Component extends CraftComponent<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n infer Name\n >\n ? Name\n : 'anonymous';\n\ntype ComponentPropsMatch<\n ActualProps,\n Component extends CraftComponent<any, any>,\n> =\n IsAny<ActualProps> extends true\n ? TemplateContractError<`Props for component ${ComponentName<Component>} could not be inferred.`>\n : InvalidComponentProps<ActualProps, Component>;\n\ntype InvalidComponentProps<\n ActualProps,\n Component extends CraftComponent<any, any>,\n> = {\n [Key in keyof PropsOf<Component>]-?: Key extends keyof ActualProps\n ? ActualProps[Key] extends PropsOf<Component>[Key]\n ? never\n : TemplateContractError<`Prop ${Key & string} on component ${ComponentName<Component>} has an incompatible type.`>\n : TemplateContractError<`Prop ${Key & string} is missing on component ${ComponentName<Component>}.`>;\n}[keyof PropsOf<Component>] extends never\n ? true\n : {\n [Key in keyof PropsOf<Component>]-?: Key extends keyof ActualProps\n ? ActualProps[Key] extends PropsOf<Component>[Key]\n ? never\n : TemplateContractError<`Prop ${Key & string} on component ${ComponentName<Component>} has an incompatible type.`>\n : TemplateContractError<`Prop ${Key & string} is missing on component ${ComponentName<Component>}.`>;\n }[keyof PropsOf<Component>];\n\ntype IsTemplateCallback<Value> = Value extends\n | Yieldable<any, any, any>\n | YieldableMethod<any, any, any>\n ? true\n : false;\n\ntype InvalidCallback<Message extends string, Value> =\n IsTemplateCallback<Value> extends true\n ? never\n : TemplateContractError<Message>;\n\ntype DomEventKey = keyof GlobalEventHandlersEventMap & string;\n\ntype InvalidElementCallbacks<Props> = {\n [Key in keyof Props & string]: Key extends DomEventKey\n ? Props[Key] extends (...args: any[]) => any\n ? InvalidCallback<\n `Event ${Key} must use a generator callback or a branded Craft method.`,\n Props[Key]\n >\n : never\n : Key extends `on${Capitalize<DomEventKey>}`\n ? Props[Key] extends (...args: any[]) => any\n ? InvalidCallback<\n `Event ${Key} must use a generator callback or a branded Craft method.`,\n Props[Key]\n >\n : never\n : never;\n}[keyof Props & string];\n\ntype FactoryOf<Component> =\n Component extends CraftComponent<any, any, infer Factory> ? Factory : never;\n\ntype OutputKeys<Component> = {\n [Key in keyof FactoryContext<FactoryOf<Component>>]: FactoryContext<\n FactoryOf<Component>\n >[Key] extends Output<(...args: any[]) => any>\n ? Key\n : never;\n}[keyof FactoryContext<FactoryOf<Component>>];\n\ntype InvalidOutputCallbacks<\n ActualProps,\n Component extends CraftComponent<any, any>,\n> = {\n [Key in OutputKeys<Component> & string]: Key extends keyof ActualProps\n ? ActualProps[Key] extends (...args: any[]) => any\n ? InvalidCallback<\n `Output ${Key} on component ${ComponentName<Component>} must use a generator callback or a branded Craft method.`,\n ActualProps[Key]\n >\n : never\n : never;\n}[OutputKeys<Component> & string];\n\ntype ComponentOfNode<Node> = Node extends {\n readonly component: infer Component;\n}\n ? Component extends CraftComponent<any, any>\n ? Component\n : never\n : never;\n\ntype VisitChildren<\n Children,\n Registry extends readonly CraftComponent<any, any>[],\n Seen extends readonly unknown[],\n> = Children extends readonly (infer Child)[]\n ? VisitChildren<Child, Registry, Seen>\n : Children extends ElementNodeBase<any, any, infer Props, infer Nested>\n ? InvalidElementCallbacks<Props> | VisitChildren<Nested, Registry, Seen>\n : Children extends ComponentNode<infer ActualProps, any, any>\n ?\n | ComponentPropsMatch<ActualProps, ComponentOfNode<Children>>\n | InvalidOutputCallbacks<ActualProps, ComponentOfNode<Children>>\n | VisitComponent<ComponentOfNode<Children>, Registry, Seen>\n : Children extends CraftDirectiveNode<any>\n ? VisitChildren<Children['node'], Registry, Seen>\n : Children extends EachNode<\n infer _Item,\n infer _Key,\n infer _Dependencies\n >\n ? VisitChildren<\n | ReturnType<Children['itemTemplate']>\n | (Children['empty'] extends (...args: any[]) => infer Empty\n ? Empty\n : never),\n Registry,\n Seen\n >\n : Children extends DeferNode<infer Loaded, infer _Dependencies>\n ? VisitChildren<\n Loaded extends CraftComponent<any, any>\n ? ComponentNode<PropsOf<Loaded>, {}, Loaded>\n : ReturnType<Children['resolve']>,\n Registry,\n Seen\n >\n : true;\n\ntype VisitComponent<\n Component extends CraftComponent<any, any>,\n Registry extends readonly CraftComponent<any, any>[],\n Seen extends readonly unknown[],\n> =\n IsAny<Component> extends true\n ? TemplateContractError<'Dynamic component references cannot be resolved.'>\n : IsUnion<Component> extends true\n ? TemplateContractError<'Union component references cannot be resolved by the template contract; register a concrete component.'>\n : Registered<Component, Registry> extends true\n ? Component extends Seen[number]\n ? true\n : VisitChildren<\n ReturnType<ComponentTemplateOf<Component>>,\n Registry,\n [...Seen, Component]\n >\n : TemplateContractError<`Component ${ComponentName<Component>} is missing from the template registry.`>;\n\ntype RootVisit<\n Component extends CraftComponent<any, any>,\n Registry extends readonly CraftComponent<any, any>[],\n> = VisitChildren<\n ReturnType<ComponentTemplateOf<Component>>,\n Registry,\n [Component]\n>;\n\nexport type TemplateContractAssertions<\n Component extends CraftComponent<any, any>,\n Registry extends readonly CraftComponent<any, any>[],\n> = {\n readonly component: Component;\n readonly registry: Registry;\n readonly valid: true;\n};\n\n/**\n * Type-only template setup contract. It never creates an Angular fixture or\n * touches the DOM; invalid child registrations resolve to a diagnostic type.\n */\nexport type SetupTestComponentTemplate<\n Component extends CraftComponent<any, any>,\n Registry extends readonly CraftComponent<any, any>[] = [],\n> =\n ContractResult<RootVisit<Component, Registry>> extends infer Result\n ? Result extends TemplateContractError<any>\n ? Result\n : TemplateContractAssertions<Component, Registry>\n : never;\n\ntype ElementMatching<Children, Tag extends string, Props> =\n Children extends ElementNodeBase<any, infer ActualTag, infer ActualProps>\n ? ActualTag extends Tag\n ? [Props] extends [never]\n ? true\n : ActualProps extends Props\n ? Props extends ActualProps\n ? true\n : false\n : false\n : false\n : never;\n\ntype FindElement<\n Children,\n Tag extends string,\n Props = never,\n> = Children extends readonly (infer Child)[]\n ? FindElement<Child, Tag, Props>\n : Children extends ElementNodeBase<any, infer ActualTag, any>\n ? ActualTag extends Tag\n ? ElementMatching<Children, Tag, Props>\n : FindElement<Children['children'], Tag, Props>\n : Children extends CraftDirectiveNode<any>\n ? FindElement<Children['node'], Tag, Props>\n : Children extends ComponentNode<any, any, infer Component>\n ? FindElement<ReturnType<ComponentTemplateOf<Component>>, Tag, Props>\n : Children extends EachNode<any, any>\n ? FindElement<\n | ReturnType<Children['itemTemplate']>\n | (Children['empty'] extends (...args: any[]) => infer Empty\n ? Empty\n : never),\n Tag,\n Props\n >\n : Children extends IfBlockNode<\n infer ConditionName,\n any,\n infer True,\n infer False\n >\n ? FindElement<True | False, Tag, Props>\n : Children extends DeferNode<infer Loaded>\n ? FindElement<\n Loaded extends CraftComponent<any, any>\n ? ReturnType<ComponentTemplateOf<Loaded>>\n : ReturnType<Children['resolve']>,\n Tag,\n Props\n >\n : false;\n\nexport type TemplateHasElement<\n Children extends CraftNodeChildren,\n Tag extends string,\n> = FindElement<Children, Tag>;\n\n/** Checks the exact tag and props of a matching element. */\nexport type TemplateHasElementWithProps<\n Children extends CraftNodeChildren,\n Tag extends string,\n Props extends object,\n> = FindElement<Children, Tag, Props>;\n\ntype VisitProperty<\n Children,\n Tag extends string,\n Property extends string,\n Value,\n> = Children extends readonly (infer Child)[]\n ? VisitProperty<Child, Tag, Property, Value>\n : Children extends ElementNodeBase<\n any,\n infer ActualTag,\n infer Props,\n infer Nested\n >\n ? ActualTag extends Tag\n ? Property extends keyof Props\n ? NonNullable<Props[Property]> extends Value\n ? true\n : false\n : false\n : VisitProperty<Nested, Tag, Property, Value>\n : Children extends CraftDirectiveNode<any>\n ? VisitProperty<Children['node'], Tag, Property, Value>\n : Children extends ComponentNode<any, any, infer Component>\n ? VisitProperty<\n ReturnType<ComponentTemplateOf<Component>>,\n Tag,\n Property,\n Value\n >\n : Children extends EachNode<any, any>\n ? VisitProperty<\n (\n | ReturnType<Children['itemTemplate']>\n | (Children['empty'] extends (...args: any[]) => infer Empty\n ? Empty\n : never)\n ) &\n CraftNodeChildren,\n Tag,\n Property,\n Value\n >\n : Children extends DeferNode<infer Loaded>\n ? VisitProperty<\n Loaded extends CraftComponent<any, any>\n ? ReturnType<ComponentTemplateOf<Loaded>>\n : ReturnType<Children['resolve']>,\n Tag,\n Property,\n Value\n >\n : false;\n\n/** Checks the type of a static or dynamic property on an element. */\nexport type TemplateHasProperty<\n Children extends CraftNodeChildren,\n Tag extends string,\n Property extends string,\n Value,\n> = VisitProperty<Children, Tag, Property, Value>;\n\ntype VisitYieldableProperty<\n Children,\n Tag extends string,\n Property extends string,\n Result,\n> = Children extends readonly (infer Child)[]\n ? VisitYieldableProperty<Child, Tag, Property, Result>\n : Children extends ElementNodeBase<\n any,\n infer ActualTag,\n infer Props,\n infer Nested\n >\n ? ActualTag extends Tag\n ? Property extends keyof Props\n ? NonNullable<Props[Property]> extends (\n ...args: infer Args\n ) => Generator<any, infer ActualResult, any>\n ? Args extends []\n ? ActualResult extends Result\n ? Result extends ActualResult\n ? true\n : false\n : false\n : false\n : false\n : false\n : VisitYieldableProperty<Nested, Tag, Property, Result>\n : Children extends CraftDirectiveNode<any>\n ? VisitYieldableProperty<Children['node'], Tag, Property, Result>\n : Children extends ComponentNode<any, any, infer Component>\n ? VisitYieldableProperty<\n ReturnType<ComponentTemplateOf<Component>>,\n Tag,\n Property,\n Result\n >\n : Children extends EachNode<any, any>\n ? VisitYieldableProperty<\n (\n | ReturnType<Children['itemTemplate']>\n | (Children['empty'] extends (...args: any[]) => infer Empty\n ? Empty\n : never)\n ) &\n CraftNodeChildren,\n Tag,\n Property,\n Result\n >\n : Children extends DeferNode<infer Loaded>\n ? VisitYieldableProperty<\n Loaded extends CraftComponent<any, any>\n ? ReturnType<ComponentTemplateOf<Loaded>>\n : ReturnType<Children['resolve']>,\n Tag,\n Property,\n Result\n >\n : false;\n\n/** Checks that an element property is driven by a no-argument generator. */\nexport type TemplateHasYieldableProperty<\n Children extends CraftNodeChildren,\n Tag extends string,\n Property extends string,\n Result,\n> = TemplateHasProperty<\n Children,\n Tag,\n Property,\n Yieldable<[], Result, unknown>\n>;\n\ntype VisitContextUse<\n Children,\n Tag extends string,\n Property extends string,\n ContextMethod extends string,\n> = Children extends readonly (infer Child)[]\n ? VisitContextUse<Child, Tag, Property, ContextMethod>\n : Children extends ElementNodeBase<\n any,\n infer ActualTag,\n infer Props,\n infer Nested\n >\n ? ActualTag extends Tag\n ? Property extends keyof Props\n ? NonNullable<Props[Property]> extends (\n ...args: any[]\n ) => Generator<infer Yielded, infer Returned, any>\n ? TemplateMethodUse<ContextMethod> extends Yielded | Returned\n ? true\n : Extract<\n Yielded | Returned,\n TemplateMethodUse<ContextMethod>\n > extends never\n ? false\n : true\n : false\n : false\n : VisitContextUse<Nested, Tag, Property, ContextMethod>\n : Children extends CraftDirectiveNode<any>\n ? VisitContextUse<Children['node'], Tag, Property, ContextMethod>\n : Children extends ComponentNode<any, any, infer Component>\n ? VisitContextUse<\n ReturnType<ComponentTemplateOf<Component>>,\n Tag,\n Property,\n ContextMethod\n >\n : Children extends EachNode<any, any>\n ? VisitContextUse<\n (\n | ReturnType<Children['itemTemplate']>\n | (Children['empty'] extends (...args: any[]) => infer Empty\n ? Empty\n : never)\n ) &\n CraftNodeChildren,\n Tag,\n Property,\n ContextMethod\n >\n : Children extends DeferNode<infer Loaded>\n ? VisitContextUse<\n Loaded extends CraftComponent<any, any>\n ? ReturnType<ComponentTemplateOf<Loaded>>\n : ReturnType<Children['resolve']>,\n Tag,\n Property,\n ContextMethod\n >\n : false;\n\n/** Checks that a property callback delegates to a named template context member. */\nexport type TemplateDelegatesToContext<\n Children extends CraftNodeChildren,\n Tag extends string,\n Property extends string,\n ContextMethod extends string = Property,\n> = VisitContextUse<Children, Tag, Property, ContextMethod>;\n\ntype EventHandlerOf<\n Props,\n EventName extends string,\n> = EventName extends keyof Props\n ? Props[EventName]\n : `on${Capitalize<EventName>}` extends keyof Props\n ? Props[`on${Capitalize<EventName>}`]\n : never;\n\ntype VisitEvent<\n Children,\n Tag extends string,\n EventName extends string,\n Handler extends (...args: any[]) => any,\n> = Children extends readonly (infer Child)[]\n ? VisitEvent<Child, Tag, EventName, Handler>\n : Children extends ElementNodeBase<any, infer ActualTag, infer Props>\n ? ActualTag extends Tag\n ? EventHandlerOf<Props, EventName> extends Handler\n ? Handler extends EventHandlerOf<Props, EventName>\n ? true\n : false\n : false\n : VisitEvent<Children['children'], Tag, EventName, Handler>\n : Children extends CraftDirectiveNode<any>\n ? VisitEvent<Children['node'], Tag, EventName, Handler>\n : Children extends ComponentNode<any, any, infer Component>\n ? VisitEvent<\n ReturnType<ComponentTemplateOf<Component>>,\n Tag,\n EventName,\n Handler\n >\n : false;\n\ntype VisitOutput<\n Children,\n Target extends CraftComponent<any, any>,\n Name extends keyof PropsOf<Target> & string,\n Handler extends (...args: any[]) => any,\n> = Children extends readonly (infer Child)[]\n ? VisitOutput<Child, Target, Name, Handler>\n : Children extends ElementNodeBase<any, any, any, infer Nested>\n ? VisitOutput<Nested, Target, Name, Handler>\n : Children extends CraftDirectiveNode<any>\n ? VisitOutput<Children['node'], Target, Name, Handler>\n : Children extends ComponentNode<infer Props, any, infer Actual>\n ? [Actual] extends [Target]\n ? Name extends keyof Props\n ? Props[Name] extends Handler\n ? Handler extends Props[Name]\n ? true\n : false\n : false\n : false\n : VisitOutput<\n ReturnType<ComponentTemplateOf<Actual>>,\n Target,\n Name,\n Handler\n >\n : Children extends EachNode<any, any>\n ? VisitOutput<\n | ReturnType<Children['itemTemplate']>\n | (Children['empty'] extends (...args: any[]) => infer Empty\n ? Empty\n : never),\n Target,\n Name,\n Handler\n >\n : Children extends DeferNode<infer Loaded>\n ? VisitOutput<\n Loaded extends CraftComponent<any, any>\n ? ReturnType<ComponentTemplateOf<Loaded>>\n : ReturnType<Children['resolve']>,\n Target,\n Name,\n Handler\n >\n : false;\n\n/** Checks an event callback and therefore preserves its argument type. */\nexport type TemplateHasEvent<\n Children extends CraftNodeChildren,\n Tag extends string,\n EventName extends string,\n Handler extends (...args: any[]) => any,\n> = VisitEvent<Children, Tag, EventName, Handler>;\n\n/** Checks that a DOM event is a generator callback with the given arguments. */\nexport type TemplateHasYieldableEvent<\n Children extends CraftNodeChildren,\n Tag extends string,\n EventName extends string,\n Args extends unknown[],\n> = VisitYieldableEvent<Children, Tag, EventName, Args>;\n\n/** Checks a branded Craft method used directly as a DOM event callback. */\nexport type TemplateHasYieldableMethodEvent<\n Children extends CraftNodeChildren,\n Tag extends string,\n EventName extends string,\n Args extends unknown[],\n> = TemplateHasEvent<Children, Tag, EventName, YieldableMethod<Args, any, any>>;\n\ntype VisitYieldableEvent<\n Children,\n Tag extends string,\n EventName extends string,\n Args extends unknown[],\n> = Children extends readonly (infer Child)[]\n ? VisitYieldableEvent<Child, Tag, EventName, Args>\n : Children extends ElementNodeBase<any, infer ActualTag, infer Props>\n ? ActualTag extends Tag\n ? EventHandlerOf<Props, EventName> extends (\n ...args: infer ActualArgs\n ) => Generator<any, any, any>\n ? ActualArgs extends Args\n ? Args extends ActualArgs\n ? true\n : false\n : false\n : false\n : VisitYieldableEvent<Children['children'], Tag, EventName, Args>\n : Children extends CraftDirectiveNode<any>\n ? VisitYieldableEvent<Children['node'], Tag, EventName, Args>\n : Children extends ComponentNode<any, any, infer Component>\n ? VisitYieldableEvent<\n ReturnType<ComponentTemplateOf<Component>>,\n Tag,\n EventName,\n Args\n >\n : false;\n\n/** Checks an output callback passed to a concrete Craft child component. */\nexport type TemplateHasOutput<\n Children extends CraftNodeChildren,\n Component extends CraftComponent<any, any>,\n Name extends keyof PropsOf<Component> & string,\n Handler extends (...args: any[]) => any,\n> = VisitOutput<Children, Component, Name, Handler>;\n\nexport type TemplateUsesComponent<\n Children extends CraftNodeChildren,\n Component extends CraftComponent<any, any>,\n> = Children extends readonly (infer Child)[]\n ? TemplateUsesComponent<Child & CraftNodeChildren, Component>\n : Children extends ComponentNode<any, any, infer Actual>\n ? [Actual] extends [Component]\n ? true\n : TemplateUsesComponent<\n ReturnType<ComponentTemplateOf<Actual>>,\n Component\n >\n : Children extends ElementNodeBase<any, any, any, infer Nested>\n ? TemplateUsesComponent<Nested, Component>\n : Children extends CraftDirectiveNode<any>\n ? TemplateUsesComponent<Children['node'], Component>\n : Children extends EachNode<any, any>\n ? TemplateUsesComponent<\n (\n | ReturnType<Children['itemTemplate']>\n | (Children['empty'] extends (...args: any[]) => infer Empty\n ? Empty\n : never)\n ) &\n CraftNodeChildren,\n Component\n >\n : Children extends DeferNode<infer Loaded>\n ? Loaded extends CraftComponent<any, any>\n ? [Loaded] extends [Component]\n ? true\n : TemplateUsesComponent<\n ReturnType<ComponentTemplateOf<Loaded>>,\n Component\n >\n : TemplateUsesComponent<\n ReturnType<Children['resolve']>,\n Component\n >\n : false;\n\ntype VisibilityValue = boolean | 'nonEmpty' | 'empty';\ntype Visibility = Readonly<Record<string, VisibilityValue>>;\n\ntype VisibilityMatches<\n Actual extends Visibility,\n Expected extends Visibility,\n> = keyof Expected extends never\n ? keyof Actual extends never\n ? true\n : false\n : {\n [Key in keyof Expected]: Key extends keyof Actual\n ? Actual[Key] extends Expected[Key]\n ? Expected[Key] extends Actual[Key]\n ? never\n : false\n : false\n : false;\n }[keyof Expected] extends never\n ? true\n : {\n [Key in keyof Expected]: Key extends keyof Actual\n ? Actual[Key] extends Expected[Key]\n ? Expected[Key] extends Actual[Key]\n ? never\n : false\n : false\n : false;\n }[keyof Expected];\n\ntype StateMarkerMatches<Value, StateName extends string> =\n Value extends NamedYieldableValue<infer ActualName extends string, any>\n ? ActualName extends StateName\n ? true\n : false\n : Value extends TemplateMethodUse<StateName>\n ? true\n : false;\n\ntype ValueUsesState<Value, StateName extends string> =\n IsAny<Value> extends true\n ? false\n : StateMarkerMatches<Value, StateName> extends true\n ? true\n : Value extends (\n ...args: any[]\n ) => Generator<infer Yielded, infer Returned, any>\n ? TemplateMethodUse<StateName> extends Yielded | Returned\n ? true\n : false\n : Value extends (...args: any[]) => infer Returned\n ? Returned extends TemplateMethodUse<StateName>\n ? true\n : false\n : Value extends readonly (infer Item)[]\n ? ValueUsesState<Item, StateName>\n : Value extends object\n ? true extends {\n [Key in keyof Value]: ValueUsesState<Value[Key], StateName>;\n }[keyof Value]\n ? true\n : false\n : false;\n\ntype RenderPropsUseState<Props, StateName extends string> = true extends {\n [Key in keyof Props & string]: Key extends DomEventKey\n ? false\n : Key extends `on${Capitalize<DomEventKey>}`\n ? false\n : ValueUsesState<Props[Key], StateName>;\n}[keyof Props & string]\n ? true\n : false;\n\ntype VisitRenderedState<\n Children,\n StateName extends string,\n Expected extends Visibility,\n Current extends Visibility = {},\n Seen extends readonly unknown[] = [],\n Depth extends readonly unknown[] = [],\n> = Depth['length'] extends 8\n ? false\n : Children extends readonly (infer Child)[]\n ? VisitRenderedState<\n Child,\n StateName,\n Expected,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : Children extends ElementNodeBase<any, any, infer Props, infer Nested>\n ?\n | (RenderPropsUseState<Props, StateName> extends true\n ? VisibilityMatches<Current, Expected>\n : false)\n | VisitRenderedState<\n Nested,\n StateName,\n Expected,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : Children extends CraftDirectiveNode<any>\n ? VisitRenderedState<\n Children['node'],\n StateName,\n Expected,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : Children extends ComponentNode<any, any, infer Component>\n ? Component extends Seen[number]\n ? false\n : VisitRenderedState<\n ReturnType<ComponentTemplateOf<Component>>,\n StateName,\n Expected,\n Current,\n [...Seen, Component],\n [...Depth, unknown]\n >\n : Children extends EachNode<\n any,\n any,\n any,\n infer SourceName,\n infer Item,\n infer Empty\n >\n ?\n | VisitRenderedState<\n Item,\n StateName,\n Expected,\n Extract<SourceName, string> extends never\n ? Current\n : AddVisibility<\n Current,\n Extract<SourceName, string>,\n 'nonEmpty'\n >,\n Seen,\n [...Depth, unknown]\n >\n | VisitRenderedState<\n Empty,\n StateName,\n Expected,\n Extract<SourceName, string> extends never\n ? Current\n : AddVisibility<\n Current,\n Extract<SourceName, string>,\n 'empty'\n >,\n Seen,\n [...Depth, unknown]\n >\n : Children extends IfBlockNode<\n infer ConditionName,\n any,\n infer True,\n infer False\n >\n ?\n | VisitRenderedState<\n True,\n StateName,\n Expected,\n AddVisibility<Current, ConditionName, true>,\n Seen,\n [...Depth, unknown]\n >\n | VisitRenderedState<\n False,\n StateName,\n Expected,\n AddVisibility<Current, ConditionName, false>,\n Seen,\n [...Depth, unknown]\n >\n : Children extends DeferNode<infer Loaded>\n ? VisitRenderedState<\n Loaded extends CraftComponent<any, any>\n ? ReturnType<ComponentTemplateOf<Loaded>>\n : ReturnType<Children['resolve']>,\n StateName,\n Expected,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : ValueUsesState<Children, StateName> extends true\n ? VisibilityMatches<Current, Expected>\n : false;\n\ntype RenderedStateResult<Result> =\n true extends Extract<Result, true> ? true : false;\n\n/** Checks that a named reactive value is used by a rendered binding. */\nexport type TemplateRendersStateWhen<\n Children,\n StateName extends string,\n Conditions extends { readonly when?: Visibility } = {},\n> = RenderedStateResult<\n VisitRenderedState<\n Children,\n StateName,\n Conditions extends { readonly when: infer When extends Visibility }\n ? When\n : {}\n >\n>;\n\ntype ActionHandlerAvailable<Handler> = IsTemplateCallback<Handler>;\n\ntype ActionElementMatches<\n Props,\n LocalName,\n EventName extends string,\n ExpectedLocalName extends string,\n> = LocalName extends ExpectedLocalName\n ? ExpectedLocalName extends LocalName\n ? EventHandlerOf<Props, EventName> extends infer Handler\n ? ActionHandlerAvailable<Handler>\n : false\n : false\n : false;\n\ntype VisitAvailableAction<\n Children,\n EventName extends string,\n LocalName extends string,\n Expected extends Visibility,\n Current extends Visibility = {},\n Seen extends readonly unknown[] = [],\n Depth extends readonly unknown[] = [],\n> = Depth['length'] extends 8\n ? false\n : Children extends readonly (infer Child)[]\n ? VisitAvailableAction<\n Child,\n EventName,\n LocalName,\n Expected,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : Children extends ElementNodeBase<\n any,\n any,\n infer Props,\n infer Nested,\n infer ActualLocalName\n >\n ?\n | (ActionElementMatches<\n Props,\n ActualLocalName,\n EventName,\n LocalName\n > extends true\n ? VisibilityMatches<Current, Expected>\n : false)\n | VisitAvailableAction<\n Nested,\n EventName,\n LocalName,\n Expected,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : Children extends CraftDirectiveNode<any>\n ? VisitAvailableAction<\n Children['node'],\n EventName,\n LocalName,\n Expected,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : Children extends ComponentNode<any, any, infer Component>\n ? Component extends Seen[number]\n ? false\n : VisitAvailableAction<\n ReturnType<ComponentTemplateOf<Component>>,\n EventName,\n LocalName,\n Expected,\n Current,\n [...Seen, Component],\n [...Depth, unknown]\n >\n : Children extends EachNode<\n any,\n any,\n any,\n infer SourceName,\n infer Item,\n infer Empty\n >\n ?\n | VisitAvailableAction<\n Item,\n EventName,\n LocalName,\n Expected,\n Extract<SourceName, string> extends never\n ? Current\n : AddVisibility<\n Current,\n Extract<SourceName, string>,\n 'nonEmpty'\n >,\n Seen,\n [...Depth, unknown]\n >\n | VisitAvailableAction<\n Empty,\n EventName,\n LocalName,\n Expected,\n Extract<SourceName, string> extends never\n ? Current\n : AddVisibility<\n Current,\n Extract<SourceName, string>,\n 'empty'\n >,\n Seen,\n [...Depth, unknown]\n >\n : Children extends IfBlockNode<\n infer ConditionName,\n any,\n infer True,\n infer False\n >\n ?\n | VisitAvailableAction<\n True,\n EventName,\n LocalName,\n Expected,\n AddVisibility<Current, ConditionName, true>,\n Seen,\n [...Depth, unknown]\n >\n | VisitAvailableAction<\n False,\n EventName,\n LocalName,\n Expected,\n AddVisibility<Current, ConditionName, false>,\n Seen,\n [...Depth, unknown]\n >\n : Children extends DeferNode<infer Loaded>\n ? VisitAvailableAction<\n Loaded extends CraftComponent<any, any>\n ? ReturnType<ComponentTemplateOf<Loaded>>\n : ReturnType<Children['resolve']>,\n EventName,\n LocalName,\n Expected,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : false;\n\ntype AvailableActionResult<Result> =\n true extends Extract<Result, true> ? true : false;\n\n/** Checks an event action on a named element and its visibility path. */\nexport type TemplateRenderAvailableActionWhen<\n Children,\n ActionKey extends `${string}:${string}`,\n Conditions extends { readonly when?: Visibility } = {},\n> = ActionKey extends `${infer EventName}:${infer LocalName}`\n ? AvailableActionResult<\n VisitAvailableAction<\n Children,\n EventName,\n LocalName,\n Conditions extends { readonly when: infer When extends Visibility }\n ? When\n : {}\n >\n >\n : false;\n\ntype AddVisibility<\n Current extends Visibility,\n Key extends string,\n Value extends VisibilityValue,\n> = Current & { readonly [K in Key]: Value };\n\ntype NamedElementMatches<\n Owner extends string,\n Identity extends string,\n Tag extends string,\n LocalName,\n> = LocalName extends string\n ? Identity extends `${infer IdentityOwner}:${infer IdentityTag}:${infer IdentityLocal}`\n ? (\n [Owner] extends [never]\n ? true\n : Owner extends IdentityOwner\n ? true\n : false\n ) extends true\n ? [Tag, LocalName] extends [IdentityTag, IdentityLocal]\n ? true\n : false\n : false\n : false\n : false;\n\ntype LiteralString<Value> = Value extends string\n ? string extends Value\n ? never\n : Value\n : never;\n\ntype NamedElementIdentity<\n Owner extends string,\n Tag extends string,\n LocalName extends string,\n> = string extends Owner\n ? `${string}:${Tag}:${LocalName}`\n : [Owner] extends [never]\n ? `${string}:${Tag}:${LocalName}`\n : `${Owner}:${Tag}:${LocalName}`;\n\ntype VisitNamedElementIdentities<\n Children,\n Owner extends string = never,\n Seen extends readonly unknown[] = [],\n Depth extends readonly unknown[] = [],\n> = Depth['length'] extends 8\n ? never\n : IsAny<Children> extends true\n ? never\n : Children extends readonly (infer Child)[]\n ? VisitNamedElementIdentities<Child, Owner, Seen, [...Depth, unknown]>\n : Children extends ElementNodeBase<\n any,\n infer Tag extends string,\n any,\n infer Nested,\n infer LocalName\n >\n ? LiteralString<Extract<LocalName, string>> extends infer Name extends\n string\n ?\n | NamedElementIdentity<Owner, Tag, Name>\n | VisitNamedElementIdentities<\n Nested,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : VisitNamedElementIdentities<\n Nested,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : Children extends CraftDirectiveNode<any>\n ? VisitNamedElementIdentities<\n Children['node'],\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : Children extends ComponentNode<any, any, infer Component>\n ? IsAny<Component> extends true\n ? never\n : Component extends Seen[number]\n ? never\n : VisitNamedElementIdentities<\n ReturnType<ComponentTemplateOf<Component>>,\n ComponentName<Component>,\n [...Seen, Component],\n [...Depth, unknown]\n >\n : Children extends EachNode<\n any,\n any,\n any,\n any,\n infer Item,\n infer Empty\n >\n ? VisitNamedElementIdentities<\n Item | Empty,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : Children extends IfBlockNode<any, any, infer True, infer False>\n ? VisitNamedElementIdentities<\n True | False,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : Children extends DeferNode<infer Loaded>\n ? VisitNamedElementIdentities<\n Loaded extends CraftComponent<any, any>\n ? ReturnType<ComponentTemplateOf<Loaded>>\n : ReturnType<Children['resolve']>,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : never;\n\ntype TemplateContractOutput<Template> = Template extends (\n ...args: any[]\n) => infer Output\n ? Output\n : Template;\n\ntype TemplateContractOwner<Template> = Template extends (...args: any[]) => any\n ? ComponentTemplateNameOf<Template> extends infer Name extends string\n ? string extends Name\n ? never\n : Name\n : never\n : never;\n\n/** Named element identities available for a template, for editor completion. */\nexport type TemplateNamedElementIdentity<Template> =\n VisitNamedElementIdentities<\n TemplateContractOutput<Template>,\n TemplateContractOwner<Template>\n >;\n\ntype TemplateContextOf<Template> = Template extends (\n context: infer Context,\n ...args: any[]\n) => any\n ? Context\n : never;\n\ntype TemplateContextPathKeys<Value> = Exclude<\n keyof Value,\n keyof ((...args: never[]) => unknown) | symbol | number\n> &\n string;\n\ntype TemplateContextPaths<\n Value,\n Prefix extends string = '',\n Depth extends readonly unknown[] = [],\n> = Depth['length'] extends 8\n ? never\n :\n | Prefix\n | (Value extends readonly unknown[]\n ? never\n : Value extends object\n ? {\n [Key in TemplateContextPathKeys<Value>]: TemplateContextPaths<\n Value[Key],\n Prefix extends '' ? Key : `${Prefix}.${Key}`,\n [...Depth, unknown]\n >;\n }[TemplateContextPathKeys<Value>]\n : never);\n\n/** Context paths available for a template callback, with editor completion. */\nexport type TemplateContextMethodOf<Template> = Extract<\n TemplateContextPaths<TemplateContextOf<Template>>,\n string\n>;\n\ntype NamedElementPropsOf<\n Children,\n Identity extends string,\n Owner extends string = never,\n Seen extends readonly unknown[] = [],\n Depth extends readonly unknown[] = [],\n> = Depth['length'] extends 8\n ? never\n : IsAny<Children> extends true\n ? never\n : Children extends readonly (infer Child)[]\n ? NamedElementPropsOf<Child, Identity, Owner, Seen, [...Depth, unknown]>\n : Children extends ElementNodeBase<\n any,\n infer Tag,\n infer Props,\n infer Nested,\n infer LocalName\n >\n ? NamedElementMatches<\n Owner,\n Identity,\n Tag,\n Extract<LocalName, string>\n > extends true\n ? Props\n : NamedElementPropsOf<\n Nested,\n Identity,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : Children extends CraftDirectiveNode<any>\n ? NamedElementPropsOf<\n Children['node'],\n Identity,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : Children extends ComponentNode<any, any, infer Component>\n ? Component extends Seen[number]\n ? never\n : NamedElementPropsOf<\n ReturnType<ComponentTemplateOf<Component>>,\n Identity,\n ComponentName<Component>,\n [...Seen, Component],\n [...Depth, unknown]\n >\n : Children extends EachNode<\n any,\n any,\n any,\n any,\n infer Item,\n infer Empty\n >\n ? NamedElementPropsOf<\n Item | Empty,\n Identity,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : Children extends IfBlockNode<any, any, infer True, infer False>\n ? NamedElementPropsOf<\n True | False,\n Identity,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : Children extends DeferNode<infer Loaded>\n ? NamedElementPropsOf<\n Loaded extends CraftComponent<any, any>\n ? ReturnType<ComponentTemplateOf<Loaded>>\n : ReturnType<Children['resolve']>,\n Identity,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : never;\n\n/** Properties declared on a named element, with editor completion. */\nexport type TemplateNamedElementProperty<\n Template,\n Identity extends TemplateNamedElementIdentity<Template>,\n> = Extract<\n keyof NamedElementPropsOf<\n TemplateContractOutput<Template>,\n Identity,\n TemplateContractOwner<Template>\n >,\n string\n>;\n\ntype TemplateContextUseResult<Result> =\n true extends Extract<Result, true> ? true : false;\n\ntype HandlerDelegatesToContext<\n Handler,\n ContextMethod extends string,\n> = Handler extends (\n ...args: any[]\n) => Generator<infer Yielded, infer Returned, any>\n ? TemplateMethodUse<ContextMethod> extends Yielded | Returned\n ? true\n : false\n : false;\n\ntype NamedElementDelegatesToContextOf<\n Children,\n Identity extends string,\n Property extends string,\n ContextMethod extends string,\n Owner extends string = never,\n Seen extends readonly unknown[] = [],\n Depth extends readonly unknown[] = [],\n> = Depth['length'] extends 8\n ? false\n : Children extends readonly (infer Child)[]\n ? NamedElementDelegatesToContextOf<\n Child,\n Identity,\n Property,\n ContextMethod,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : Children extends ElementNodeBase<\n any,\n infer Tag,\n infer Props,\n infer Nested,\n infer LocalName\n >\n ?\n | (NamedElementMatches<\n Owner,\n Identity,\n Tag,\n Extract<LocalName, string>\n > extends true\n ? Property extends keyof Props\n ? HandlerDelegatesToContext<Props[Property], ContextMethod>\n : false\n : false)\n | NamedElementDelegatesToContextOf<\n Nested,\n Identity,\n Property,\n ContextMethod,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : Children extends CraftDirectiveNode<any>\n ? NamedElementDelegatesToContextOf<\n Children['node'],\n Identity,\n Property,\n ContextMethod,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : Children extends ComponentNode<any, any, infer Component>\n ? Component extends Seen[number]\n ? false\n : NamedElementDelegatesToContextOf<\n ReturnType<ComponentTemplateOf<Component>>,\n Identity,\n Property,\n ContextMethod,\n ComponentName<Component>,\n [...Seen, Component],\n [...Depth, unknown]\n >\n : Children extends EachNode<\n any,\n any,\n any,\n any,\n infer Item,\n infer Empty\n >\n ? NamedElementDelegatesToContextOf<\n Item | Empty,\n Identity,\n Property,\n ContextMethod,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : Children extends IfBlockNode<any, any, infer True, infer False>\n ? NamedElementDelegatesToContextOf<\n True | False,\n Identity,\n Property,\n ContextMethod,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : Children extends DeferNode<infer Loaded>\n ? NamedElementDelegatesToContextOf<\n Loaded extends CraftComponent<any, any>\n ? ReturnType<ComponentTemplateOf<Loaded>>\n : ReturnType<Children['resolve']>,\n Identity,\n Property,\n ContextMethod,\n Owner,\n Seen,\n [...Depth, unknown]\n >\n : false;\n\n/** Checks that a named element property delegates to a context method. */\nexport type TemplateNamedElementDelegatesToContext<\n Template,\n Identity extends TemplateNamedElementIdentity<Template>,\n Property extends TemplateNamedElementProperty<Template, Identity>,\n ContextMethod extends TemplateContextMethodOf<Template>,\n> = TemplateContextUseResult<\n NamedElementDelegatesToContextOf<\n TemplateContractOutput<Template>,\n Identity,\n Property,\n ContextMethod,\n TemplateContractOwner<Template>\n >\n>;\n\ntype NamedElementRendersStateWhenOf<\n Children,\n Identity extends string,\n Property extends string,\n StateName extends string,\n Expected extends Visibility,\n Owner extends string = never,\n Current extends Visibility = {},\n Seen extends readonly unknown[] = [],\n Depth extends readonly unknown[] = [],\n> = Depth['length'] extends 8\n ? false\n : Children extends readonly (infer Child)[]\n ? NamedElementRendersStateWhenOf<\n Child,\n Identity,\n Property,\n StateName,\n Expected,\n Owner,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : Children extends ElementNodeBase<\n any,\n infer Tag,\n infer Props,\n infer Nested,\n infer LocalName\n >\n ?\n | (NamedElementMatches<\n Owner,\n Identity,\n Tag,\n Extract<LocalName, string>\n > extends true\n ? Property extends keyof Props\n ? ValueUsesState<Props[Property], StateName> extends true\n ? VisibilityMatches<Current, Expected>\n : false\n : false\n : false)\n | NamedElementRendersStateWhenOf<\n Nested,\n Identity,\n Property,\n StateName,\n Expected,\n Owner,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : Children extends CraftDirectiveNode<any>\n ? NamedElementRendersStateWhenOf<\n Children['node'],\n Identity,\n Property,\n StateName,\n Expected,\n Owner,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : Children extends ComponentNode<any, any, infer Component>\n ? Component extends Seen[number]\n ? false\n : NamedElementRendersStateWhenOf<\n ReturnType<ComponentTemplateOf<Component>>,\n Identity,\n Property,\n StateName,\n Expected,\n ComponentName<Component>,\n Current,\n [...Seen, Component],\n [...Depth, unknown]\n >\n : Children extends EachNode<\n any,\n any,\n any,\n infer SourceName,\n infer Item,\n infer Empty\n >\n ?\n | NamedElementRendersStateWhenOf<\n Item,\n Identity,\n Property,\n StateName,\n Expected,\n Owner,\n Extract<SourceName, string> extends never\n ? Current\n : AddVisibility<\n Current,\n Extract<SourceName, string>,\n 'nonEmpty'\n >,\n Seen,\n [...Depth, unknown]\n >\n | NamedElementRendersStateWhenOf<\n Empty,\n Identity,\n Property,\n StateName,\n Expected,\n Owner,\n Extract<SourceName, string> extends never\n ? Current\n : AddVisibility<\n Current,\n Extract<SourceName, string>,\n 'empty'\n >,\n Seen,\n [...Depth, unknown]\n >\n : Children extends IfBlockNode<\n infer ConditionName,\n any,\n infer True,\n infer False\n >\n ?\n | NamedElementRendersStateWhenOf<\n True,\n Identity,\n Property,\n StateName,\n Expected,\n Owner,\n AddVisibility<Current, ConditionName, true>,\n Seen,\n [...Depth, unknown]\n >\n | NamedElementRendersStateWhenOf<\n False,\n Identity,\n Property,\n StateName,\n Expected,\n Owner,\n AddVisibility<Current, ConditionName, false>,\n Seen,\n [...Depth, unknown]\n >\n : Children extends DeferNode<infer Loaded>\n ? NamedElementRendersStateWhenOf<\n Loaded extends CraftComponent<any, any>\n ? ReturnType<ComponentTemplateOf<Loaded>>\n : ReturnType<Children['resolve']>,\n Identity,\n Property,\n StateName,\n Expected,\n Owner,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : false;\n\n/** Checks that a named element property is driven by a context state. */\nexport type TemplateNamedElementRendersStateWhen<\n Template,\n Identity extends TemplateNamedElementIdentity<Template>,\n Property extends TemplateNamedElementProperty<Template, Identity>,\n StateName extends TemplateContextMethodOf<Template>,\n Conditions extends { readonly when?: Visibility } = {},\n> = TemplateContextUseResult<\n NamedElementRendersStateWhenOf<\n TemplateContractOutput<Template>,\n Identity,\n Property,\n StateName,\n Conditions extends { readonly when: infer When extends Visibility }\n ? When\n : {},\n TemplateContractOwner<Template>\n >\n>;\n\ntype VisitNamedElement<\n Children,\n Identity extends string,\n Expected extends Visibility,\n Owner extends string = never,\n Current extends Visibility = {},\n Seen extends readonly unknown[] = [],\n Depth extends readonly unknown[] = [],\n> = Depth['length'] extends 8\n ? false\n : Children extends readonly (infer Child)[]\n ? VisitNamedElement<\n Child,\n Identity,\n Expected,\n Owner,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : Children extends ElementNodeBase<\n any,\n infer Tag,\n any,\n infer Nested,\n infer LocalName\n >\n ?\n | (NamedElementMatches<\n Owner,\n Identity,\n Tag,\n Extract<LocalName, string>\n > extends true\n ? VisibilityMatches<Current, Expected>\n : false)\n | VisitNamedElement<\n Nested,\n Identity,\n Expected,\n Owner,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : Children extends CraftDirectiveNode<any>\n ? VisitNamedElement<\n Children['node'],\n Identity,\n Expected,\n Owner,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : Children extends ComponentNode<any, any, infer Component>\n ? Component extends Seen[number]\n ? false\n : VisitNamedElement<\n ReturnType<ComponentTemplateOf<Component>>,\n Identity,\n Expected,\n ComponentName<Component>,\n Current,\n [...Seen, Component],\n [...Depth, unknown]\n >\n : Children extends EachNode<\n any,\n any,\n any,\n infer SourceName,\n infer Item,\n infer Empty\n >\n ?\n | VisitNamedElement<\n Item,\n Identity,\n Expected,\n Owner,\n Extract<SourceName, string> extends never\n ? Current\n : AddVisibility<\n Current,\n Extract<SourceName, string>,\n 'nonEmpty'\n >,\n Seen,\n [...Depth, unknown]\n >\n | VisitNamedElement<\n Empty,\n Identity,\n Expected,\n Owner,\n Extract<SourceName, string> extends never\n ? Current\n : AddVisibility<\n Current,\n Extract<SourceName, string>,\n 'empty'\n >,\n Seen,\n [...Depth, unknown]\n >\n : Children extends IfBlockNode<\n infer ConditionName,\n any,\n infer True,\n infer False\n >\n ?\n | VisitNamedElement<\n True,\n Identity,\n Expected,\n Owner,\n AddVisibility<Current, ConditionName, true>,\n Seen,\n [...Depth, unknown]\n >\n | VisitNamedElement<\n False,\n Identity,\n Expected,\n Owner,\n AddVisibility<Current, ConditionName, false>,\n Seen,\n [...Depth, unknown]\n >\n : Children extends DeferNode<infer Loaded>\n ? VisitNamedElement<\n Loaded extends CraftComponent<any, any>\n ? ReturnType<ComponentTemplateOf<Loaded>>\n : ReturnType<Children['resolve']>,\n Identity,\n Expected,\n Owner,\n Current,\n Seen,\n [...Depth, unknown]\n >\n : false;\n\ntype NamedElementResult<Result> =\n true extends Extract<Result, true>\n ? true\n : Extract<Result, TemplateContractError<string>> extends never\n ? false\n : Extract<Result, TemplateContractError<string>>;\n\n/** Checks a named element and the visibility path that renders it. */\nexport type TemplateRendersNamedElementWhen<\n Children,\n Identity extends TemplateNamedElementIdentity<Children>,\n Conditions extends { readonly when?: Visibility } = {},\n> = NamedElementResult<\n VisitNamedElement<\n TemplateContractOutput<Children>,\n Identity,\n Conditions extends { readonly when: infer When extends Visibility }\n ? When\n : {},\n TemplateContractOwner<Children>\n >\n>;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../../libs/component/src/lib/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,6BAA6B,EAC7B,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,SAAS,CAAC;AAGjB,KAAK,oBAAoB,CAAC,OAAO,IAAI,OAAO,SAAS,MAAM,GACvD;KACG,GAAG,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;CAChE,GACD,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;AAElC,8EAA8E;AAC9E,wBAAgB,aAAa,CAC3B,OAAO,EACP,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,EACpD,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAUxE;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,SAAS,iBAAiB,EACtE,QAAQ,EAAE,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,EACxC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAC9C,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAOtE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../libs/component/src/lib/template.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,cAAc,GAGf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAQ3D,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAG3B,QAAsC;IACtC,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAGxD,CAAC;IACF,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE;QAC9C,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAC5B,QAAwC,EACxC,OAA+C;IAE/C,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,QAAQ;QACR,OAAO,EAAE,OAAkB;QAC3B,kBAAkB,EAAE,yBAAyB,EAAE;KAChD,CAAC;AACJ,CAAC","sourcesContent":["import type {\n CraftNodeChildren,\n CraftNodeChildrenDependencies,\n TemplateNode,\n} from './render/vnode';\nimport {\n CRAFT_TEMPLATE,\n type CraftTemplate,\n type InputValue,\n} from './types';\nimport { currentCraftRenderContext } from './render/vnode';\n\ntype TemplateContextInput<Context> = Context extends object\n ? {\n [Key in keyof Context]: Context[Key] | InputValue<Context[Key]>;\n }\n : Context | InputValue<Context>;\n\n/** Creates an inert, reusable and context-checked Craft template fragment. */\nexport function craftTemplate<\n Context,\n Output extends CraftNodeChildren = CraftNodeChildren,\n>(renderer: (context: Context) => Output): CraftTemplate<Context, Output> {\n const template = ((context: Context) => renderer(context)) as CraftTemplate<\n Context,\n Output\n >;\n Object.defineProperty(template, CRAFT_TEMPLATE, {\n value: true,\n enumerable: false,\n });\n return template;\n}\n\n/** Schedules a typed template for rendering without evaluating it eagerly. */\nexport function renderTemplate<Context, Output extends CraftNodeChildren>(\n template: CraftTemplate<Context, Output>,\n context: TemplateContextInput<NoInfer<Context>>,\n): TemplateNode<Context, Output, CraftNodeChildrenDependencies<Output>> {\n return {\n kind: 'template',\n template,\n context: context as Context,\n declarationContext: currentCraftRenderContext(),\n };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../../../libs/component/src/lib/testing.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../../../libs/component/src/lib/testing.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,UAAU,EAEV,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,GAI1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,yBAAyB,EACzB,iCAAiC,GAClC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,eAAe,EACf,eAAe,GAShB,MAAM,SAAS,CAAC;AAsKjB,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,4BAA4B,IAAI,KAAK,CACtC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,SAAsD;IAEtD,OAAO,yBAAyB,CAC9B;QACE,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE;QAC9C,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;KACrB,EACD,QAAQ,CAAC,IAA2B,EACpC,wBAAwB,CACzB,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,QAA8C;IAE9C,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAgD,CAAC;IAC1E,MAAM,KAAK,GAA4B,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YACvE,SAAS;QACX,CAAC;QAED,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAC/C,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,IAAI,CAAC;QACb,OAAO,EAAE,yBAAyB;QAClC,QAAQ,EAAE,SAAS;KACpB,CAAC,CAAC;IAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,uBAAuB,CAC9B,SAA8B,EAC9B,MAA2B,EAC3B,IAAa,EACb,QAA8C;IAE9C,MAAM,UAAU,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;IAC9C,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,yBAAyB,CACxC;QACE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QACpC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;QACvD,GAAG,SAAS;KACb,EACD,MAAM,EACN,oBAAoB,CACrB,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAuC;IACpE,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,UAAU,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,CACjC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAe;IAC5C,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,CAAC;QACb,OAAO;IACT,CAAC;IAED,IACE,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI;QACf,WAAW,IAAI,MAAM;QACrB,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,EACtC,CAAC;QACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAExC,MAMD,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,QAA8C,EAC9C,QAAsD,EACtD,QAAkB;IAElB,MAAM,UAAU,GAAG,IAAI,GAAG,CACxB,6BAA6B,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAChD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAU,CAAC;IAC7C,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAC3D,CAAC,IAAI,EAAE,EAAE,CACP,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,SAAS,CAC1E,CAAC;IACF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,kDAAkD,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjF,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,kCAAkC,IAAI,gCAAgC,CACvE,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC3D,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,yDAAyD,CACjF,CAAC;QACJ,CAAC;QAED,MAAM,qBAAqB,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,eAAe,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,SAAoB,EACpB,OAAgB,EAChB,QAA8C,EAC9C,SAAsD;IAEtD,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,qBAAqB,CAAC;QACnC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;QACpB,GAAG,OAAO,CAAC,SAAS;KACrB,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,iCAAiC,CAC/C,SAAS,EACT,IAAI,EACJ,MAAM,EACN,OAAO,EACP,OAAO,CAAC,SAAS,CAClB,CAAC;IAEF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,gCAAgC,CAK7C,SAAoB,EACpB,OAA8D;IAE9D,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;IAC9C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,uBAAuB,CACjD,SAAS,EACT,MAAM,EACN,IAAI,EACJ,OAAO,CAAC,QAAgD,CACzD,CAAC;IACF,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACnC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAA+B,CAAC;IAChE,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,CACnD,4BAA4B,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CACrB,CAAC;IAEnC,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,qBAAqB,CACzB,OAAO,CAAC,QAAgD,EACxD,OAAO,CAAC,QAAQ,EAChB,QAAQ,CACT,CAAC;IAEF,OAAO;QACL,OAAO;QACP,KAAK,EAAE,KAAgC;QACvC,QAAQ;QACR,OAAO,EAAE,GAAG,EAAE;YACZ,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,MAAM,CACvD,gCAAgC,EAChC,EAAE,UAAU,EAAE,gCAAgC,EAAE,CACjD,CAAC;AAsBF,SAAS,WAAW,CAClB,MAAc,EACd,QAAqC;IAErC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,MAAM,KAAK,QAAQ,CAAC;IAC7B,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,IAAI,CAAC;QACH,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;QACvB,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IACjC,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAgB,EAAE,EAAU;IAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAc,MAAM,CAAC,CAAC,CAAC,IAAI,CAChE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAC/B,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAgB,EAAE,EAAU;IAChD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAmB,OAAO,CAAC,CAAC,CAAC,IAAI,CACtE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,CAChC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB,EAAE,IAAgB;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC3D,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU;aACd,KAAK,CAAC,KAAK,CAAC;aACZ,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC;aAClD,IAAI,CAAC,GAAG,CAAC;aACT,IAAI,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACrD,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;IACvC,IACE,OAAO,YAAY,gBAAgB;QACnC,OAAO,YAAY,mBAAmB;QACtC,OAAO,YAAY,iBAAiB;QACpC,OAAO,YAAY,iBAAiB,EACpC,CAAC;QACD,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7C,IAAI,KAAK;gBAAE,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB;IACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC1C,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACtC,IAAI,GAAG,KAAK,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC/D,IAAI,GAAG,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,GAAI,OAA4B,CAAC,IAAI,CAAC;QAChD,IAAI,IAAI,KAAK,UAAU;YAAE,OAAO,UAAU,CAAC;QAC3C,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,OAAO,CAAC;QACrC,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO;YAC5D,OAAO,QAAQ,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,YAAY,CAAC;IACvC,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CACrB,IAAa,EACb,IAAY,EACZ,OAAoC;IAEpC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAc,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACzE,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC9C,OAAO,WAAW,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CACpB,QAAuB,EACvB,KAAa,EACb,UAAmB;IAEnB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,CAAC,MAAM,kBAAkB,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,UAAU;YAAE,OAAO,SAAS,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAiB;IAChD,OAAO;QACL,SAAS,CAAC,IAAY,EAAE,OAAoC;YAC1D,MAAM,KAAK,GAAG,SAAS,IAAI,IACzB,OAAO,EAAE,IAAI,KAAK,SAAS;gBACzB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GACzC,EAAE,CAAC;YACH,OAAO,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAE,CAAC;QAC3E,CAAC;QACD,WAAW,CAAC,IAAY,EAAE,OAAoC;YAC5D,MAAM,KAAK,GAAG,SAAS,IAAI,IACzB,OAAO,EAAE,IAAI,KAAK,SAAS;gBACzB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GACzC,EAAE,CAAC;YACH,OAAO,aAAa,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACzE,CAAC;QACD,UAAU,CAAC,IAAqB;YAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CACzB,IAAI,CAAC,gBAAgB,CAAc,iCAAiC,CAAC,CACtE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAClE,OAAO,aAAa,CAAC,QAAQ,EAAE,UAAU,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAE,CAAC;QACpE,CAAC;QACD,YAAY,CAAC,IAAqB;YAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CACzB,IAAI,CAAC,gBAAgB,CAAc,iCAAiC,CAAC,CACtE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAClE,OAAO,aAAa,CAAC,QAAQ,EAAE,UAAU,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC;KACF,CAAC;AACJ,CAAC;AAYD,KAAK,UAAU,mCAAmC,CAKhD,SAAoB,EAAE,OAA2C;IACjE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAC7D,SAAS,EACT,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,QAAgD,EACxD,OAAO,CAAC,SAAS,CAClB,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;IACjE,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;QAClC,aAAa,EAAE,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAkD,CAC7D,GAAgC,EAChC,QAA2C,EAC3C,EAAE,CACF,OAAO,CAAC,OAAO,CACb,GAAG,EACH,QAA6C,CACrC,CAAC;IAEb,OAAO;QACL,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,KAAgC;QACvC,GAAG,uBAAuB,CAAC,IAAI,CAAC;QAChC,aAAa;QACb,aAAa,CAAC,OAAgB;YAC5B,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,OAAO;QACP,cAAc,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAC5C,OAAO;YACL,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC,MAAM,CAC1D,mCAAmC,EACnC,EAAE,UAAU,EAAE,mCAAmC,EAAE,CACpD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAGxC,SAAoB,EACpB,UAGI,EAAE;IAEN,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,yBAAyB,CACvC,SAAkB,EAClB,IAAI,EACJ,MAAM,EACN,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAuB,CAC5C,CAAC;IACF,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;IACjE,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;QACvB,IAAI,SAAS;YAAE,OAAO;QACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC1C,aAAa,EAAE,CAAC;YAChB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,KAAK,EAAE,CAAC;IACd,OAAO;QACL,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,IAAI;QACb,OAAO;QACP,wEAAwE;QACxE,0CAA0C;QAC1C,QAAQ,EAAE,MAAM;QAChB,aAAa;QACb,KAAK;QACL,OAAO;YACL,SAAS,GAAG,IAAI,CAAC;YACjB,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC;AASD,KAAK,UAAU,gCAAgC,CAM7C,SAAoB,EAAE,OAAmD;IACzE,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,8BAA8B,CACxD,MAAM,EACN,IAAI,EACJ,OAAO,CAAC,QAAgD,CACzD,CAAC;IACF,MAAM,UAAU,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,EAAE,GAAG,EAAE,CACnD,4BAA4B,CAC1B,KAAK,EACL,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAA6B,EAChD,QAAQ,CACT,CACkD,CAAC;IAEtD,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IAED,MAAM,qBAAqB,CACzB,OAAO,CAAC,QAAgD,EACxD,OAAO,CAAC,QAAQ,EAChB,QAAQ,CACT,CAAC;IAEF,OAAO;QACL,OAAO;QACP,KAAK,EAAE,KAAgC;QACvC,QAAQ;QACR,OAAO,EAAE,GAAG,EAAE;YACZ,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CACrC,MAA2B,EAC3B,IAAa,EACb,QAA8C;IAE9C,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC9D,OAAO;QACL,QAAQ,EAAE,yBAAyB,CACjC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,EACvE,MAAM,EACN,oBAAoB,CACrB;QACD,KAAK;KACN,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,MAAM,CACvD,gCAAgC,EAChC,EAAE,UAAU,EAAE,gCAAgC,EAAE,CACjD,CAAC;AASF,KAAK,UAAU,mCAAmC,CAQhD,SAAoB,EACpB,OAEC;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,cAAc,CAC9B,0BAA0B,UAAU,CAAC,IAAI,EAAE,EAC3C;QACE,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM;QAC9B,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS;KACrC,EACD,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EACV,iBAA0C,CAC3C,CAAC;IACF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAC7D,SAAS,EACT,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,QAAgD,EACxD,OAAO,CAAC,SAAS,CAClB,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;IACjE,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;QAClC,aAAa,EAAE,CAAC;IAClB,CAAC;IAED,OAAO;QACL,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,KAAgC;QACvC,GAAG,uBAAuB,CAAC,IAAI,CAAC;QAChC,aAAa;QACb,aAAa,CAAC,OAAgB;YAC5B,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QACD,OAAO;YACL,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC,MAAM,CAC1D,mCAAmC,EACnC,EAAE,UAAU,EAAE,mCAAmC,EAAE,CACpD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAkB;IACvD,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAClD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,UAAU,CAAC,IAAI,CACb,aAAa,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAChE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,SAAS;SACN,gBAAgB,CAAC,4BAA4B,CAAC;SAC9C,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnB,MAAM,IAAI,GAAG,CACX,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;YAClC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC;YACvC,OAAO,CAAC,WAAW;YACnB,EAAE,CACH,CAAC,IAAI,EAAE,CAAC;QACT,IACE,CAAC,IAAI;YACL,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI;YACrC,CAAC,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EACnC,CAAC;YACD,UAAU,CAAC,IAAI,CACb,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,0BAA0B,CAC5D,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACjD,UAAU,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACxC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,KAAK,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACrD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC","sourcesContent":["import {\n createEnvironmentInjector,\n ElementRef,\n EnvironmentInjector,\n Injector,\n runInInjectionContext,\n ɵEffectScheduler,\n ɵINJECTOR_SCOPE,\n} from './host-runtime';\nimport {\n CRAFT_SERVICE_PROVIDER_BRAND,\n createExposedServiceValue,\n getRegisteredAppStartServices,\n getServiceMetaData,\n runServiceAppStart,\n SERVICE_RUNTIME_OVERRIDES,\n type CraftServiceProvider,\n type CompleteServiceDependencyMapFromYielded,\n type FlattenDependencyTree,\n} from '@craft-ts/core';\nimport {\n mountInterpretedComponent,\n mountInterpretedComponentTemplate,\n} from './render/interpreter';\nimport { craftComponent } from './component';\nimport { executeCraftComponentFactory } from './factory-runtime';\nimport {\n CRAFT_COMPONENT,\n CRAFT_DIRECTIVE,\n type ComponentFactory,\n type ComponentTemplate,\n type CraftComponent,\n type CraftDirective,\n type FactoryContext,\n type FactoryYielded,\n type PropsOf,\n type TemplateDependencies,\n} from './types';\nimport type { CraftTemplateLocatorApi } from './locator';\n\ntype IsAny<T> = 0 extends 1 & T ? true : false;\n\ntype ComponentFactoryOf<Component> =\n Component extends CraftComponent<\n any,\n any,\n infer Factory extends ComponentFactory\n >\n ? Factory\n : ComponentFactory;\n\ntype ComponentContextOf<Component> = FactoryContext<\n ComponentFactoryOf<Component>\n>;\n\ntype ComponentTemplateDepsOf<Component> =\n Component extends CraftComponent<any, any, any, any, any, infer TemplateDeps>\n ? TemplateDeps\n : {};\n\ntype LogicDependenciesOf<Component> =\n Component extends CraftComponent<any, infer Dependencies extends object>\n ? Omit<Dependencies, 'missingProvider'> & { missingProvider: {} }\n : {};\n\ntype ServiceNamesFromNodeMap<Dependencies extends object> =\n IsAny<Dependencies> extends true\n ? never\n : string extends keyof Dependencies\n ? never\n : Extract<keyof FlattenDependencyTree<Dependencies>, string>;\n\ntype ServiceNamesFromProperties<Properties extends object> = {\n [Name in Extract<keyof Properties, string>]: Properties[Name] extends object\n ? ServiceNamesFromNodeMap<Properties[Name]>\n : never;\n}[Extract<keyof Properties, string>];\n\ntype ServiceNamesFromContract<Contract> = Contract extends object\n ?\n | (Contract extends { deps: infer Dependencies extends object }\n ? ServiceNamesFromNodeMap<Dependencies>\n : never)\n | (Contract extends {\n propertiesDeps: infer Properties extends object;\n }\n ? ServiceNamesFromProperties<Properties>\n : never)\n | (Contract extends {\n missingProvider: infer Missing extends object;\n }\n ? ServiceNamesFromNodeMap<Missing>\n : never)\n : never;\n\n/** The dependency contract used when only a Craft component factory is tested. */\nexport type CraftComponentLogicDepsOf<Component> =\n LogicDependenciesOf<Component>;\n\n/** The service dependency contract used when only a Craft component template is tested. */\nexport type CraftComponentTemplateDepsOf<Component> = {\n deps: Record<\n Extract<\n ServiceNamesFromContract<ComponentTemplateDepsOf<Component>>,\n string\n >,\n unknown\n >;\n propertiesDeps: {};\n provided: {};\n publicProperties: {};\n missingProvider: {};\n};\n\ntype DirectiveLogicFactory<Directive> =\n Directive extends CraftDirective<infer Logic, any, any>\n ? ReturnType<Logic> extends ComponentFactory\n ? ReturnType<Logic>\n : ComponentFactory\n : ComponentFactory;\n\ntype LogicDependenciesForFactory<Factory extends ComponentFactory> = {\n deps: CompleteServiceDependencyMapFromYielded<FactoryYielded<Factory>>;\n propertiesDeps: {};\n provided: {};\n publicProperties: {};\n missingProvider: {};\n};\n\ntype TemplateContractForTemplate<Template extends ComponentTemplate<any>> = {\n deps: Record<\n Extract<ServiceNamesFromContract<TemplateDependencies<Template>>, string>,\n unknown\n >;\n};\n\n/** The dependency contract added by a directive's logic decorator. */\nexport type CraftDirectiveLogicDepsOf<Directive> = LogicDependenciesForFactory<\n DirectiveLogicFactory<Directive>\n>;\n\ntype DirectiveTemplateDependenciesOf<Directive> =\n Directive extends CraftDirective<any, infer Template, any>\n ? Template extends (baseTemplate: ComponentTemplate<any>) => infer Decorated\n ? TemplateDependencies<Decorated>\n : {}\n : {};\n\n/** The service dependencies used by a directive's template decorator. */\nexport type CraftDirectiveTemplateDepsOf<Directive> = {\n deps: Record<\n Extract<\n ServiceNamesFromContract<DirectiveTemplateDependenciesOf<Directive>>,\n string\n >,\n unknown\n >;\n propertiesDeps: {};\n provided: {};\n publicProperties: {};\n missingProvider: {};\n};\n\ntype RegisterValue =\n | 'real'\n | 'provided'\n | 'notReached'\n | CraftServiceProvider\n | Record<string, unknown>;\n\ntype RegisterForNames<Names extends string> = {\n [Name in Names]: RegisterValue;\n};\n\ntype RegisterForContract<Contract> = RegisterForNames<\n Extract<ServiceNamesFromContract<Contract>, string>\n>;\n\ntype AppStartDecision = 'run' | 'ignore';\n\ntype TestBedOptions = {\n providers?: CraftServiceProvider[];\n appStart?: Record<string, AppStartDecision>;\n};\n\ntype LogicOptions<\n Factory extends ComponentFactory,\n Contract,\n> = TestBedOptions & {\n register: RegisterForContract<Contract>;\n args?: Parameters<Factory>;\n};\n\ntype TemplateOptions<Context, Contract> = TestBedOptions & {\n context: Context;\n register: RegisterForContract<Contract>;\n detectChanges?: boolean;\n};\n\ntype RegisterRuntimeEntry =\n | RegisterValue\n | { readonly [CRAFT_SERVICE_PROVIDER_BRAND]?: unknown };\n\nfunction isProvider(value: unknown): value is CraftServiceProvider {\n return (\n typeof value === 'object' &&\n value !== null &&\n CRAFT_SERVICE_PROVIDER_BRAND in value\n );\n}\n\nfunction createTestingInjector(\n providers: readonly CraftServiceProvider[] | undefined,\n) {\n return createEnvironmentInjector(\n [\n { provide: ɵINJECTOR_SCOPE, useValue: 'root' },\n ...(providers ?? []),\n ],\n Injector.NULL as EnvironmentInjector,\n 'CraftComponentTestRoot',\n );\n}\n\nfunction createRuntimeProviders(\n register: Record<string, RegisterRuntimeEntry>,\n): { providers: CraftServiceProvider[]; mocks: Record<string, unknown> } {\n const providers: CraftServiceProvider[] = [];\n const overrides = new Map<string, { kind: 'useValue'; value: unknown }>();\n const mocks: Record<string, unknown> = {};\n\n for (const [name, entry] of Object.entries(register)) {\n if (entry === 'real' || entry === 'provided' || entry === 'notReached') {\n continue;\n }\n\n if (isProvider(entry)) {\n providers.push(entry);\n continue;\n }\n\n const value = createExposedServiceValue(entry);\n overrides.set(name, { kind: 'useValue', value });\n mocks[name] = value;\n }\n\n providers.push({\n provide: SERVICE_RUNTIME_OVERRIDES,\n useValue: overrides,\n });\n\n return { providers, mocks };\n}\n\nfunction createComponentInjector(\n component: CraftComponent<any>,\n parent: EnvironmentInjector,\n host: Element,\n register: Record<string, RegisterRuntimeEntry>,\n): { injector: EnvironmentInjector; mocks: Record<string, unknown> } {\n const definition = component[CRAFT_COMPONENT];\n const { providers, mocks } = createRuntimeProviders(register);\n const injector = createEnvironmentInjector(\n [\n ...(definition.meta.providers ?? []),\n { provide: ElementRef, useValue: new ElementRef(host) },\n ...providers,\n ],\n parent,\n 'CraftComponentTest',\n );\n\n return { injector, mocks };\n}\n\nfunction isActiveRegisterEntry(entry: RegisterRuntimeEntry | undefined) {\n return entry === 'real' || entry === 'provided' || isProvider(entry);\n}\n\nfunction isPromiseLike(value: unknown): value is PromiseLike<unknown> {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'then' in value &&\n typeof value.then === 'function'\n );\n}\n\nasync function waitForAppStart(result: unknown): Promise<void> {\n if (isPromiseLike(result)) {\n await result;\n return;\n }\n\n if (\n typeof result === 'object' &&\n result !== null &&\n 'subscribe' in result &&\n typeof result.subscribe === 'function'\n ) {\n await new Promise<void>((resolve, reject) => {\n (\n result as {\n subscribe: (observer: {\n error: (error: unknown) => void;\n complete: () => void;\n }) => unknown;\n }\n ).subscribe({ error: reject, complete: resolve });\n });\n }\n}\n\nasync function runConfiguredAppStart(\n register: Record<string, RegisterRuntimeEntry>,\n appStart: Record<string, AppStartDecision> | undefined,\n injector: Injector,\n): Promise<void> {\n const references = new Map(\n getRegisteredAppStartServices().map((reference) => {\n const metadata = getServiceMetaData(reference);\n return [metadata.name, reference] as const;\n }),\n );\n\n const missingDecisions = Array.from(references.keys()).filter(\n (name) =>\n isActiveRegisterEntry(register[name]) && appStart?.[name] === undefined,\n );\n if (missingDecisions.length > 0) {\n throw new Error(\n `Craft testing requires appStart decisions for: ${missingDecisions.join(', ')}.`,\n );\n }\n\n for (const [name, decision] of Object.entries(appStart ?? {})) {\n if (decision !== 'run' && decision !== 'ignore') {\n throw new Error(\n `Invalid appStart decision for \"${name}\". Expected \"run\" or \"ignore\".`,\n );\n }\n\n const entry = register[name];\n if (!isActiveRegisterEntry(entry) || decision === 'ignore') {\n continue;\n }\n\n const reference = references.get(name);\n if (!reference) {\n throw new Error(\n `Register entry \"${name}\" is not a craftService configured with appStart: true.`,\n );\n }\n\n await runInInjectionContext(injector, async () => {\n const metadata = getServiceMetaData(reference);\n const value = metadata.inject();\n await waitForAppStart(runServiceAppStart(reference, value));\n });\n }\n}\n\nfunction componentTemplateMount<Component extends CraftComponent<any>, Context>(\n component: Component,\n context: Context,\n register: Record<string, RegisterRuntimeEntry>,\n providers: readonly CraftServiceProvider[] | undefined,\n) {\n const runtime = createRuntimeProviders(register);\n const parent = createTestingInjector([\n ...(providers ?? []),\n ...runtime.providers,\n ]);\n const host = document.createElement('div');\n document.body.append(host);\n const mounted = mountInterpretedComponentTemplate(\n component,\n host,\n parent,\n context,\n runtime.providers,\n );\n\n return { host, mounted, mocks: runtime.mocks, parent };\n}\n\nasync function setupCraftComponentLogicTestImpl<\n Component extends CraftComponent<any>,\n const Contract extends\n CraftComponentLogicDepsOf<Component> = CraftComponentLogicDepsOf<Component>,\n>(\n component: Component,\n options: LogicOptions<ComponentFactoryOf<Component>, Contract>,\n) {\n const parent = createTestingInjector(options.providers);\n const host = document.createElement('div');\n const definition = component[CRAFT_COMPONENT];\n const { injector, mocks } = createComponentInjector(\n component,\n parent,\n host,\n options.register as Record<string, RegisterRuntimeEntry>,\n );\n const factory = definition.factory;\n const args = (options.args ?? []) as Parameters<typeof factory>;\n const context = runInInjectionContext(injector, () =>\n executeCraftComponentFactory(factory, args, injector),\n ) as ComponentContextOf<Component>;\n\n if (isPromiseLike(context)) {\n throw new Error(\n 'Async component factories are not supported by setupCraftComponentLogicTest.',\n );\n }\n\n await runConfiguredAppStart(\n options.register as Record<string, RegisterRuntimeEntry>,\n options.appStart,\n injector,\n );\n\n return {\n context,\n mocks: mocks as Record<string, unknown>,\n injector,\n destroy: () => {\n injector.destroy();\n parent.destroy();\n },\n };\n}\n\nexport const setupCraftComponentLogicTest = Object.assign(\n setupCraftComponentLogicTestImpl,\n { byRegister: setupCraftComponentLogicTestImpl },\n);\n\ntype TemplateTestResult<\n Component extends CraftComponent<any>,\n Context,\n> = CraftTemplateLocatorApi<Component> & {\n nativeElement: HTMLDivElement;\n element: HTMLDivElement;\n mocks: Record<string, unknown>;\n detectChanges(): void;\n updateContext(context: Context): void;\n destroy(): void;\n toBeAccessible(): Promise<void>;\n getByRole(role: string, options?: { name?: string | RegExp }): HTMLElement;\n queryByRole(\n role: string,\n options?: { name?: string | RegExp },\n ): HTMLElement | undefined;\n getByLabel(name: string | RegExp): HTMLElement;\n queryByLabel(name: string | RegExp): HTMLElement | undefined;\n};\n\nfunction matchesName(\n actual: string,\n expected: string | RegExp | undefined,\n): boolean {\n if (expected === undefined) return true;\n if (typeof expected === 'string') {\n return actual === expected;\n }\n const lastIndex = expected.lastIndex;\n try {\n expected.lastIndex = 0;\n return expected.test(actual);\n } finally {\n expected.lastIndex = lastIndex;\n }\n}\n\nfunction findById(root: ParentNode, id: string): Element | undefined {\n return Array.from(root.querySelectorAll<HTMLElement>('[id]')).find(\n (element) => element.id === id,\n );\n}\n\nfunction findLabelFor(root: ParentNode, id: string): Element | undefined {\n return Array.from(root.querySelectorAll<HTMLLabelElement>('label')).find(\n (label) => label.htmlFor === id,\n );\n}\n\nfunction accessibleName(element: Element, root: ParentNode): string {\n const labelledBy = element.getAttribute('aria-labelledby');\n if (labelledBy) {\n return labelledBy\n .split(/\\s+/)\n .map((id) => findById(root, id)?.textContent ?? '')\n .join(' ')\n .trim();\n }\n const ariaLabel = element.getAttribute('aria-label');\n if (ariaLabel) return ariaLabel.trim();\n if (\n element instanceof HTMLInputElement ||\n element instanceof HTMLTextAreaElement ||\n element instanceof HTMLSelectElement ||\n element instanceof HTMLButtonElement\n ) {\n if (element.id) {\n const label = findLabelFor(root, element.id);\n if (label) return (label.textContent ?? '').trim();\n }\n }\n return (element.textContent ?? '').trim();\n}\n\nfunction implicitRole(element: Element): string | null {\n const explicit = element.getAttribute('role');\n if (explicit) return explicit;\n const tag = element.tagName.toLowerCase();\n if (tag === 'button') return 'button';\n if (tag === 'a' && element.hasAttribute('href')) return 'link';\n if (tag === 'textarea') return 'textbox';\n if (tag === 'input') {\n const type = (element as HTMLInputElement).type;\n if (type === 'checkbox') return 'checkbox';\n if (type === 'radio') return 'radio';\n if (type === 'submit' || type === 'button' || type === 'reset')\n return 'button';\n return 'textbox';\n }\n if (tag === 'img') return 'img';\n if (tag === 'nav') return 'navigation';\n if (tag === 'main') return 'main';\n if (/^h[1-6]$/.test(tag)) return 'heading';\n return null;\n}\n\nfunction queryAllByRole(\n root: Element,\n role: string,\n options?: { name?: string | RegExp },\n): HTMLElement[] {\n return Array.from(root.querySelectorAll<HTMLElement>('*')).filter((node) => {\n if (implicitRole(node) !== role) return false;\n return matchesName(accessibleName(node, root), options?.name);\n });\n}\n\nfunction requireSingle(\n elements: HTMLElement[],\n query: string,\n allowEmpty: boolean,\n): HTMLElement | undefined {\n if (elements.length > 1) {\n throw new Error(`Found ${elements.length} elements with ${query}`);\n }\n if (elements.length === 0) {\n if (allowEmpty) return undefined;\n throw new Error(`Unable to find ${query}`);\n }\n return elements[0];\n}\n\nfunction createAccessibleQueries(root: HTMLElement) {\n return {\n getByRole(role: string, options?: { name?: string | RegExp }) {\n const query = `role \"${role}\"${\n options?.name === undefined\n ? ''\n : ` with name \"${String(options.name)}\"`\n }`;\n return requireSingle(queryAllByRole(root, role, options), query, false)!;\n },\n queryByRole(role: string, options?: { name?: string | RegExp }) {\n const query = `role \"${role}\"${\n options?.name === undefined\n ? ''\n : ` with name \"${String(options.name)}\"`\n }`;\n return requireSingle(queryAllByRole(root, role, options), query, true);\n },\n getByLabel(name: string | RegExp) {\n const labelled = Array.from(\n root.querySelectorAll<HTMLElement>('input, textarea, select, button'),\n ).filter((node) => matchesName(accessibleName(node, root), name));\n return requireSingle(labelled, `label \"${String(name)}\"`, false)!;\n },\n queryByLabel(name: string | RegExp) {\n const labelled = Array.from(\n root.querySelectorAll<HTMLElement>('input, textarea, select, button'),\n ).filter((node) => matchesName(accessibleName(node, root), name));\n return requireSingle(labelled, `label \"${String(name)}\"`, true);\n },\n };\n}\n\nfunction setupCraftComponentTemplateTestImpl<\n Component extends CraftComponent<any>,\n const Contract extends\n CraftComponentTemplateDepsOf<Component> = CraftComponentTemplateDepsOf<Component>,\n Context = unknown,\n>(\n component: Component,\n options: TemplateOptions<Context, Contract>,\n): Promise<TemplateTestResult<Component, Context>>;\n\nasync function setupCraftComponentTemplateTestImpl<\n Component extends CraftComponent<any>,\n const Contract extends\n CraftComponentTemplateDepsOf<Component> = CraftComponentTemplateDepsOf<Component>,\n Context = unknown,\n>(component: Component, options: TemplateOptions<Context, Contract>) {\n const { host, mounted, mocks, parent } = componentTemplateMount(\n component,\n options.context,\n options.register as Record<string, RegisterRuntimeEntry>,\n options.providers,\n );\n\n const detectChanges = () => parent.get(ɵEffectScheduler).flush();\n if (options.detectChanges ?? true) {\n detectChanges();\n }\n\n const locator: CraftTemplateLocatorApi<Component>['locator'] = (\n tag: keyof HTMLElementTagNameMap,\n criteria: Readonly<Record<string, unknown>>,\n ) =>\n mounted.locator(\n tag,\n criteria as Readonly<Record<string, unknown>>,\n ) as never;\n\n return {\n nativeElement: host,\n element: host,\n mocks: mocks as Record<string, unknown>,\n ...createAccessibleQueries(host),\n detectChanges,\n updateContext(context: Context) {\n mounted.updateContext(context);\n },\n locator,\n toBeAccessible: () => assertAccessible(host),\n destroy() {\n mounted.destroy();\n host.remove();\n parent.destroy();\n },\n };\n}\n\nexport const setupCraftComponentTemplateTest = Object.assign(\n setupCraftComponentTemplateTestImpl,\n { byRegister: setupCraftComponentTemplateTestImpl },\n);\n\nexport async function renderCraftComponent<\n Component extends CraftComponent<any>,\n>(\n component: Component,\n options: {\n props?: PropsOf<Component>;\n providers?: CraftServiceProvider[];\n } = {},\n) {\n const parent = createTestingInjector(options.providers);\n const host = document.createElement('div');\n document.body.append(host);\n const mounted = mountInterpretedComponent(\n component as never,\n host,\n parent,\n (options.props ?? {}) as PropsOf<Component>,\n );\n const detectChanges = () => parent.get(ɵEffectScheduler).flush();\n let destroyed = false;\n const flush = async () => {\n if (destroyed) return;\n for (let index = 0; index < 5; index += 1) {\n detectChanges();\n await Promise.resolve();\n }\n if (!destroyed) {\n detectChanges();\n }\n };\n await flush();\n return {\n nativeElement: host,\n element: host,\n mounted,\n // The injector the component was mounted under, so a test can reach the\n // services its own `providers` installed.\n injector: parent,\n detectChanges,\n flush,\n destroy() {\n destroyed = true;\n mounted.destroy();\n host.remove();\n parent.destroy();\n },\n };\n}\n\ntype DirectiveLogicOptions<\n BaseLogic extends ComponentFactory,\n Contract,\n> = LogicOptions<BaseLogic, Contract> & {\n baseLogic: BaseLogic;\n};\n\nasync function setupCraftDirectiveLogicTestImpl<\n Directive extends CraftDirective,\n const BaseLogic extends ComponentFactory,\n const Contract extends CraftDirectiveLogicDepsOf<Directive> &\n LogicDependenciesForFactory<BaseLogic> = CraftDirectiveLogicDepsOf<Directive> &\n LogicDependenciesForFactory<BaseLogic>,\n>(directive: Directive, options: DirectiveLogicOptions<BaseLogic, Contract>) {\n const parent = createTestingInjector(options.providers);\n const host = document.createElement('div');\n const { injector, mocks } = createRuntimeDirectiveInjector(\n parent,\n host,\n options.register as Record<string, RegisterRuntimeEntry>,\n );\n const definition = directive[CRAFT_DIRECTIVE];\n const logic = definition.logic(options.baseLogic);\n const context = runInInjectionContext(injector, () =>\n executeCraftComponentFactory(\n logic,\n (options.args ?? []) as Parameters<typeof logic>,\n injector,\n ),\n ) as FactoryContext<DirectiveLogicFactory<Directive>>;\n\n if (isPromiseLike(context)) {\n throw new Error(\n 'Async directive factories are not supported by setupCraftDirectiveLogicTest.',\n );\n }\n\n await runConfiguredAppStart(\n options.register as Record<string, RegisterRuntimeEntry>,\n options.appStart,\n injector,\n );\n\n return {\n context,\n mocks: mocks as Record<string, unknown>,\n injector,\n destroy: () => {\n injector.destroy();\n parent.destroy();\n },\n };\n}\n\nfunction createRuntimeDirectiveInjector(\n parent: EnvironmentInjector,\n host: Element,\n register: Record<string, RegisterRuntimeEntry>,\n) {\n const { providers, mocks } = createRuntimeProviders(register);\n return {\n injector: createEnvironmentInjector(\n [{ provide: ElementRef, useValue: new ElementRef(host) }, ...providers],\n parent,\n 'CraftDirectiveTest',\n ),\n mocks,\n };\n}\n\nexport const setupCraftDirectiveLogicTest = Object.assign(\n setupCraftDirectiveLogicTestImpl,\n { byRegister: setupCraftDirectiveLogicTestImpl },\n);\n\ntype DirectiveTemplateOptions<Context, Contract> = TemplateOptions<\n Context,\n Contract\n> & {\n baseTemplate: ComponentTemplate<any>;\n};\n\nasync function setupCraftDirectiveTemplateTestImpl<\n Directive extends CraftDirective,\n const BaseTemplate extends ComponentTemplate<any>,\n const Contract extends CraftDirectiveTemplateDepsOf<Directive> &\n TemplateContractForTemplate<BaseTemplate> = CraftDirectiveTemplateDepsOf<Directive> &\n TemplateContractForTemplate<BaseTemplate>,\n Context = unknown,\n>(\n directive: Directive,\n options: DirectiveTemplateOptions<Context, Contract> & {\n baseTemplate: BaseTemplate;\n },\n) {\n const definition = directive[CRAFT_DIRECTIVE];\n const decoratedTemplate = definition.template(options.baseTemplate);\n const synthetic = craftComponent(\n `CraftDirectiveTemplate:${definition.name}`,\n {\n styles: definition.meta.styles,\n stylesUrl: definition.meta.stylesUrl,\n },\n () => ({}),\n decoratedTemplate as ComponentTemplate<{}>,\n );\n const { host, mounted, mocks, parent } = componentTemplateMount(\n synthetic,\n options.context,\n options.register as Record<string, RegisterRuntimeEntry>,\n options.providers,\n );\n\n const detectChanges = () => parent.get(ɵEffectScheduler).flush();\n if (options.detectChanges ?? true) {\n detectChanges();\n }\n\n return {\n nativeElement: host,\n element: host,\n mocks: mocks as Record<string, unknown>,\n ...createAccessibleQueries(host),\n detectChanges,\n updateContext(context: Context) {\n mounted.updateContext(context);\n },\n destroy() {\n mounted.destroy();\n host.remove();\n parent.destroy();\n },\n };\n}\n\nexport const setupCraftDirectiveTemplateTest = Object.assign(\n setupCraftDirectiveTemplateTestImpl,\n { byRegister: setupCraftDirectiveTemplateTestImpl },\n);\n\n/**\n * WCAG 2.2 AA smoke checks on a mounted Craft tree. Complements axe/AccessLint\n * in application CI: images have alt, controls have a name, tabindex is not\n * positive, ARIA attributes are known.\n */\nexport async function assertAccessible(container: Element): Promise<void> {\n const violations: string[] = [];\n\n container.querySelectorAll('img').forEach((image) => {\n if (!image.hasAttribute('alt')) {\n violations.push(\n `<img src=\"${image.getAttribute('src') ?? ''}\"> is missing alt`,\n );\n }\n });\n\n container\n .querySelectorAll('button, a, [role=\"button\"]')\n .forEach((control) => {\n const name = (\n control.getAttribute('aria-label') ||\n control.getAttribute('aria-labelledby') ||\n control.textContent ||\n ''\n ).trim();\n if (\n !name &&\n control.getAttribute('href') !== null &&\n !(control.textContent ?? '').trim()\n ) {\n violations.push(\n `<${control.tagName.toLowerCase()}> has no accessible name`,\n );\n } else if (!name && control.tagName === 'BUTTON') {\n violations.push('<button> has no accessible name');\n }\n });\n\n container.querySelectorAll('[tabindex]').forEach((node) => {\n const value = Number(node.getAttribute('tabindex'));\n if (Number.isFinite(value) && value > 0) {\n violations.push(`${node.tagName.toLowerCase()} has tabIndex=${value}`);\n }\n });\n\n container.querySelectorAll('iframe').forEach((frame) => {\n if (!frame.getAttribute('title')) {\n violations.push('<iframe> is missing title');\n }\n });\n\n if (violations.length > 0) {\n throw new Error(`Accessibility violations:\\n- ${violations.join('\\n- ')}`);\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../libs/component/src/lib/types.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../libs/component/src/lib/types.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAiE9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAC/C,mCAAmC,CACpC,CAAC;AACF,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AA+ZvD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AA6BzD,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,UAAU,IAAI,eAAe,IAAI,KAAK,CAAC;AACjE,CAAC;AAqCD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAiGzD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;AACrE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CACnD,uCAAuC,CACxC,CAAC;AACF,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CACnD,uCAAuC,CACxC,CAAC;AAquBF,MAAM,UAAU,gBAAgB,CAC9B,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,UAAU,IAAI,eAAe,IAAI,KAAK,CAAC;AACjE,CAAC","sourcesContent":["import type {\n AnyCraftException,\n ComponentDepsCarrier,\n CraftComponentDependencies,\n CraftServiceProvider,\n ExtractCraftGenExceptions,\n ResolveGeneratorResult,\n Yieldable,\n YieldableMethod,\n NamedYieldableValue,\n CatchTagExhaustiveCodesCheck,\n CraftRegistrationTarget,\n CraftNodeDirectiveMount,\n CRAFT_FIELD_VALIDATION_CASES,\n CraftFieldValidationCasesCarrier,\n ReactiveReadRequest,\n DEEP_YIELDABLE,\n YIELDABLE_DEPENDENCY,\n YieldableReactiveValue,\n} from '@craft-ts/core';\nimport { CRAFT_SERVICE_PROVIDER_BRAND } from '@craft-ts/core';\nimport type {\n ɵRAW_REACTIVE_VALUE as RAW_REACTIVE_VALUE,\n REACTIVE_VALUE_TYPE,\n YIELDABLE_VALUE,\n} from '@craft-ts/core';\nimport type { HostProps } from './hyperscript';\nimport type { StaticLocatorCriteria } from './locator';\nimport type {\n CraftNodeChildren,\n CraftNodeChildrenDependencies,\n CraftNodeChildrenCssVars,\n CraftNodeChildrenPendingSources,\n CraftNodeChildrenHeadingNeed,\n CraftNodeChildrenSettledExceptions,\n CraftNodeChildrenExceptions,\n CraftNodeChildrenFieldExceptions,\n CraftNodeChildrenRawFieldExceptions,\n CraftNodeChildrenHandledExceptionCodes,\n CraftNodeDepsCarrier,\n ComponentNode,\n ContentDependenciesFromProps,\n ElementNodeBase,\n} from './render/vnode';\nimport type {\n CssVarContract,\n CssVarsAfterCall,\n CssVarsCallProps,\n CssVarsContractOfMeta,\n CssVarsMetaDeclaration,\n MergeCssVarContracts,\n} from './css-vars.type';\nimport type {\n FieldExceptionBlockDirective,\n FieldExceptionBlockExhaustiveCheck,\n FieldExceptionBlockPartialCheck,\n FieldExceptionBlockOptions,\n FieldExceptionHandlerFieldExceptions,\n FieldExceptionHandlerChildren,\n FieldExceptionHandlers,\n ResidualFieldValidationCases,\n ResidualFieldValidationCasesByIdentity,\n FieldValidationHandledIdentitiesOf,\n UnhandledFieldValidationCases,\n} from './field-exception-block';\n\nexport type CraftProvider = unknown;\ntype HostReader<T> = () => T;\ntype HostSignal<T> = HostReader<T> &\n Omit<\n YieldableReactiveValue<T, string>,\n | typeof RAW_REACTIVE_VALUE\n | typeof REACTIVE_VALUE_TYPE\n | typeof YIELDABLE_VALUE\n >;\n\ndeclare const INPUT_BRAND: unique symbol;\ndeclare const OUTPUT_BRAND: unique symbol;\ndeclare const TEMPLATE_METHOD_USE: unique symbol;\ndeclare const COMPONENT_TEMPLATE_NAME: unique symbol;\ndeclare const COMPONENT_INITIALIZATION_EXCEPTIONS: unique symbol;\ndeclare const COMPONENT_FIELD_EXCEPTIONS: unique symbol;\ndeclare const COMPONENT_LOGIC_OUTPUT: unique symbol;\ndeclare const COMPONENT_OPERATOR_PROVIDERS: unique symbol;\ndeclare const COMPONENT_OPERATOR_CODES: unique symbol;\nexport const CONTENT_STYLE_POLICY = Symbol('craft-content-style-policy');\nexport const CONTENT_OUTPUT = Symbol('craft-content-output');\nexport const CONTENT_REQUIREMENT = Symbol('craft-content-requirement');\nexport const CONTENT_RENDERABLE = Symbol('craft-content-renderable');\nexport const CONTENT_DECLARATION_CONTEXT = Symbol(\n 'craft-content-declaration-context',\n);\nexport const PROJECTION_CONTRACT = Symbol('craft-projection-contract');\nexport const CRAFT_TEMPLATE = Symbol('craft-template');\n\n/** Type-only carrier for exceptions raised while evaluating a component input. */\nexport declare const CRAFT_INPUT_EXCEPTIONS: unique symbol;\n\nexport type CraftInputExceptionsCarrier<Exceptions extends string = string> = {\n readonly [CRAFT_INPUT_EXCEPTIONS]?: Exceptions;\n};\n\n/**\n * A component input is a yieldable reader.\n *\n * Inputs deliberately use the same read contract as Craft primitives: callers\n * can pass a primitive reader directly and component logic/templates consume\n * it with `yield* input()`.\n */\nexport type Input<T> = Yieldable<[], T> & {\n readonly [INPUT_BRAND]?: T;\n};\n\nexport type Output<Handler extends (...args: any[]) => unknown> = Handler & {\n readonly [OUTPUT_BRAND]: Handler;\n};\n\n/** A callback that a Craft template may delegate with `yield*`. */\nexport type YieldableTemplateCallback<\n Args extends unknown[] = unknown[],\n Result = unknown,\n Yielded = unknown,\n ContextMethod extends string = never,\n> = (\n ...args: Args\n) => Generator<Yielded | TemplateMethodUse<ContextMethod>, Result, unknown>;\n\nexport type TemplateMethodUse<ContextMethod extends string> = {\n readonly [TEMPLATE_METHOD_USE]: ContextMethod;\n};\n\n/**\n * Projects branded Craft methods and outputs to generator callbacks only while\n * a template is type-checked. Inputs already use the generator reader\n * contract, while ordinary render-time functions stay unchanged.\n */\ntype ContextPathKey<\n Prefix extends string,\n Key extends PropertyKey,\n> = Key extends string | number\n ? Prefix extends ''\n ? `${Key}`\n : `${Prefix}.${Key}`\n : Prefix;\n\ntype ProjectTemplateObject<\n Value extends object,\n ContextMethod extends string,\n> = {\n [Key in keyof Value as Key extends typeof YIELDABLE_VALUE\n ? never\n : Key extends typeof RAW_REACTIVE_VALUE\n ? never\n : Key extends typeof REACTIVE_VALUE_TYPE\n ? never\n : Key extends typeof YIELDABLE_DEPENDENCY\n ? never\n : Key extends typeof DEEP_YIELDABLE\n ? never\n : Key extends '__craftDeepYieldable'\n ? never\n : Key]: Key extends typeof CRAFT_FIELD_VALIDATION_CASES\n ? Value[Key]\n : ProjectTemplateValue<Value[Key], ContextPathKey<ContextMethod, Key>>;\n};\n\ntype ProjectTemplateSignalProperties<\n Value extends object,\n ContextMethod extends string,\n> = {\n [Key in keyof Value as Key extends typeof YIELDABLE_VALUE\n ? never\n : Key extends typeof REACTIVE_VALUE_TYPE\n ? never\n : Key extends keyof HostSignal<any>\n ? never\n : Key]: ProjectTemplateValue<\n Value[Key],\n ContextPathKey<ContextMethod, Key>\n >;\n};\n\n// Brand-only check: `Value extends RenderableContent` expands CraftNodeChildren\n// and cycles back here through component nodes (TS2456).\ntype ProjectTemplateValue<Value, ContextMethod extends string> = Value extends {\n readonly [CONTENT_RENDERABLE]: true;\n}\n ? Value\n : Value extends ProjectionUnit<any>\n ? Value\n : Value extends { readonly __craftDeepYieldable: true }\n ? ProjectTemplateDeepYieldableValue<Value, ContextMethod>\n : Value extends {\n readonly [REACTIVE_VALUE_TYPE]: infer ReactiveState;\n }\n ? YieldableTemplateCallback<\n [],\n ReactiveState,\n ReactiveReadRequest<ReactiveState>,\n ContextMethod\n > & {\n readonly [YIELDABLE_VALUE]: ContextMethod;\n } & ProjectTemplateObject<Value & object, ContextMethod>\n : Value extends YieldableMethod<infer Args, infer Result, infer Yielded>\n ? Value extends NamedYieldableValue<\n infer _Name extends string,\n infer _Value\n >\n ? NamedYieldableValue<\n ContextMethod,\n YieldableTemplateCallback<Args, Result, Yielded, ContextMethod>\n >\n : YieldableTemplateCallback<Args, Result, Yielded, ContextMethod>\n : Value extends NamedYieldableValue<\n infer _Name extends string,\n infer _Value\n >\n ? Value extends HostSignal<infer State>\n ? NamedYieldableValue<\n ContextMethod,\n () => State & TemplateMethodUse<ContextMethod>\n > &\n ProjectTemplateSignalProperties<Value & object, ContextMethod>\n : Value extends object\n ? ProjectTemplateObject<Value & object, ContextMethod>\n : Value\n : Value extends {\n readonly [OUTPUT_BRAND]: infer Handler extends (\n ...args: any[]\n ) => unknown;\n }\n ? YieldableTemplateCallback<\n Parameters<Handler>,\n ReturnType<Handler>,\n unknown,\n ContextMethod\n >\n : Value extends HostSignal<infer State>\n ? NamedYieldableValue<\n ContextMethod,\n () => State & TemplateMethodUse<ContextMethod>\n > &\n ProjectTemplateObject<Value, ContextMethod>\n : Value extends readonly (infer Item)[]\n ? readonly ProjectTemplateValue<Item, ContextMethod>[]\n : Value extends (\n ...args: infer Args\n ) => Generator<infer Yielded, infer Result, any>\n ? (\n ...args: Args\n ) => Generator<\n Yielded | TemplateMethodUse<ContextMethod>,\n Result,\n unknown\n >\n : Value extends (...args: infer Args) => infer Result\n ? ((\n ...args: Args\n ) => ProjectTemplateValue<Result, ContextMethod>) &\n ProjectTemplateObject<Value & object, ContextMethod>\n : Value extends object\n ? ProjectTemplateObject<Value, ContextMethod>\n : Value;\n\ntype ProjectTemplateDeepYieldableValue<\n Value,\n ContextMethod extends string,\n> = Value extends (\n ...args: infer Args\n) => Generator<infer Yielded, infer Result, any>\n ? ((\n ...args: Args\n ) => Generator<\n Yielded | TemplateMethodUse<ContextMethod>,\n Result,\n unknown\n >) &\n ProjectTemplateObject<Value & object, ContextMethod>\n : ProjectTemplateObject<Value & object, ContextMethod>;\n\ntype DirectTemplateContextMethod<Context> =\n Context extends NamedYieldableValue<infer Name extends string, any>\n ? Name\n : '';\n\nexport type YieldableTemplateContext<Context> = Context extends {\n readonly [REACTIVE_VALUE_TYPE]: unknown;\n}\n ? ProjectTemplateValue<Context, DirectTemplateContextMethod<Context>>\n : {\n [Key in keyof Context]: ProjectTemplateValue<\n Context[Key],\n ContextPathKey<'', Key>\n >;\n };\n\n/** Public call-site shape of an {@link Input}. */\nexport type InputValue<T> = Yieldable<[], T>;\n\nexport type ContentStylePolicy = 'isolated' | 'allow-container-styles';\n\n/** A lazily evaluated, declaration-context-preserving piece of Craft content. */\nexport type RenderableContent<\n Output extends CraftNodeChildren = CraftNodeChildren,\n> = (() => Output) &\n CraftNodeDepsCarrier<CraftNodeChildrenDependencies<Output>> & {\n readonly [CONTENT_RENDERABLE]: true;\n };\n\nexport type ContentSlot<Output extends CraftNodeChildren = CraftNodeChildren> =\n RenderableContent<Output>;\n\nexport type ContentOptions = {\n readonly allowContainerStyles?: boolean;\n};\n\nexport type ContentRequirement = {\n readonly selector: ContentSelector;\n};\n\n/** A content slot whose DOM shape is checked at each component call site. */\nexport type RequiredContent<Requirement extends ContentRequirement> =\n RenderableContent & { readonly [CONTENT_REQUIREMENT]: Requirement };\n\n/**\n * Styles explicitement exposés par un composant à son contenu projeté.\n *\n * `styles` s'applique au template propre du composant. `contentStyles` ne\n * s'applique qu'à un contenu rendu via `renderContent(slotName, content)` lorsque\n * le parent a activé `allowContainerStyles` sur ce fragment.\n *\n * Le contenu projeté conserve l'injecteur de son lieu de déclaration. Ces\n * styles peuvent affecter les nœuds DOM ordinaires du fragment, mais ne\n * traversent pas les frontières des composants Craft ou Angular imbriqués.\n */\nexport type ContentStyles<SlotName extends string> = Partial<\n Record<SlotName, string>\n>;\n\n/** Contraintes DOM statiques qu'un fragment projeté doit satisfaire. */\nexport type ContentSelector = {\n readonly tag?: keyof HTMLElementTagNameMap;\n readonly class?: string;\n readonly [dataAttribute: `data-${string}`]: string | undefined;\n readonly [ariaAttribute: `aria-${string}`]: string | undefined;\n};\n\nexport type ContentSelectorCondition = ContentRequirement;\n\n/** A reusable, parameterized Craft fragment. */\nexport interface CraftTemplate<\n Context,\n Output extends CraftNodeChildren = CraftNodeChildren,\n> extends CraftNodeDepsCarrier<CraftNodeChildrenDependencies<Output>> {\n (context: Context): Output;\n readonly [CRAFT_TEMPLATE]: true;\n}\n\n/**\n * Contrats DOM vérifiés statiquement chez l'appelant. Le type est volontairement\n * structurel : `content(...)` ne connaît pas le slot consommateur.\n */\nexport type ContentRequirementOf<Value> = Value extends {\n readonly [CONTENT_REQUIREMENT]: infer Requirement extends ContentRequirement;\n}\n ? Requirement\n : never;\n\ntype SlotOutput<Value> = Value extends (...args: any[]) => infer Output\n ? Output\n : never;\n\n/** Dependencies declared by the renderers stored in a slot map. */\nexport type ContentDependencies<Slots extends object> =\n CraftNodeChildrenDependencies<SlotOutput<NonNullable<Slots[keyof Slots]>>>;\n\nexport type ComponentFactory = (...args: any[]) => any;\n\nexport type FactoryContext<Factory extends ComponentFactory> = Awaited<\n ResolveGeneratorResult<ReturnType<Factory>>\n>;\n\ntype DirectComponentLogicFieldExceptions<Value> = 0 extends 1 & Value\n ? never\n : Value extends CraftFieldValidationCasesCarrier<infer Cases>\n ? unknown extends Cases\n ? never\n : Cases\n : never;\n\n/** Typed field-validation cases exposed by a component logic factory. */\nexport type ComponentLogicFieldExceptions<Context> =\n | DirectComponentLogicFieldExceptions<Context>\n | (Context extends (...args: any[]) => any\n ? never\n : Context extends object\n ? {\n [Key in keyof Context]: DirectComponentLogicFieldExceptions<\n Context[Key]\n >;\n }[keyof Context]\n : never);\n\ntype ComponentTemplateFieldExceptions<Template> = Template extends (\n ...args: any[]\n) => any\n ? CraftNodeChildrenRawFieldExceptions<ReturnType<Template>>\n : never;\n\nexport type ComponentResidualFieldExceptions<Factory, Template> = 0 extends 1 &\n Factory\n ? any\n : 0 extends 1 & Template\n ? any\n : Factory extends ComponentFactory\n ? Template extends (...args: any[]) => any\n ?\n | ResidualFieldValidationCasesByIdentity<\n ComponentLogicFieldExceptions<FactoryContext<Factory>>,\n FieldValidationHandledIdentitiesOf<\n ComponentTemplateFieldExceptions<Template>\n >\n >\n | UnhandledFieldValidationCases<\n ComponentTemplateFieldExceptions<Template>\n >\n : never\n : never;\n\nexport type FactoryYielded<Factory extends ComponentFactory> =\n ReturnType<Factory> extends Generator<infer Yielded, any, any>\n ? Yielded\n : never;\n\nexport type ComponentTemplate<\n Context = unknown,\n Output extends CraftNodeChildren = CraftNodeChildren,\n> = (\n context: YieldableTemplateContext<Context>,\n hostProps?: HostProps,\n) => Output;\n\ntype NamedComponentTemplate<Template, Name extends string> = Template & {\n readonly [COMPONENT_TEMPLATE_NAME]?: Name;\n};\n\nexport type ComponentTemplateNameOf<Template> = Template extends {\n readonly [COMPONENT_TEMPLATE_NAME]?: infer Name extends string;\n}\n ? Name\n : string;\n\nexport type TemplateDependencies<Template> = Template extends (\n ...args: any[]\n) => infer Output\n ? CraftNodeChildrenDependencies<Output>\n : {};\n\nexport type TemplateCssVars<Template> = Template extends (\n ...args: any[]\n) => infer Output\n ? CraftNodeChildrenCssVars<Output>\n : import('./css-vars.type').EmptyCssVarContract;\n\n/** Async sources a template renders without covering them with a `pendingBlock`. */\nexport type TemplatePendingSources<Template> = Template extends (\n ...args: any[]\n) => infer Output\n ? CraftNodeChildrenPendingSources<Output>\n : never;\n\n/**\n * Heading outline a template still exposes. Local `heading()` is `'heading'`.\n * A child component with an uncovered `heading()` is `'heading-from-child'`.\n */\nexport type TemplateHeadingNeed<Template> = Template extends (\n ...args: any[]\n) => infer Output\n ? CraftNodeChildrenHeadingNeed<Output>\n : never;\n\n/**\n * Exception codes a template can reach through a settled read without covering\n * them with a `catchBlock`.\n */\nexport type TemplateSettledExceptions<Template> = Template extends (\n ...args: any[]\n) => infer Output\n ? CraftNodeChildrenSettledExceptions<Output>\n : never;\n\nexport type HostRequiredLogic<Context extends object> = (\n ...args: any[]\n) => Context;\n\nexport type HostTemplate<Context extends object> = ComponentTemplate<Context>;\n\nexport type LogicDecorator = (baseLogic: ComponentFactory) => ComponentFactory;\n\nexport type TemplateDecorator = (\n baseTemplate: ComponentTemplate<any>,\n) => ComponentTemplate<any>;\n\ntype DirectiveInstance<Logic extends LogicDecorator> =\n ReturnType<Logic> extends ComponentFactory\n ? FactoryContext<ReturnType<Logic>>\n : unknown;\n\nexport const CRAFT_DIRECTIVE = Symbol('craft-directive');\ndeclare const CRAFT_DIRECTIVE_DEPS: unique symbol;\n\nexport interface CraftDirective<\n Logic extends LogicDecorator = LogicDecorator,\n Template extends (\n baseTemplate: ComponentTemplate<any>,\n ) => any = TemplateDecorator,\n TemplateDependencies extends object = {},\n> extends CraftRegistrationTarget<\n string,\n 'directive',\n DirectiveInstance<Logic>\n > {\n readonly [CRAFT_DIRECTIVE]: {\n readonly name: string;\n readonly meta: DirectiveMeta;\n readonly logic: Logic;\n readonly template: Template;\n readonly componentOperator?: ComponentOperatorDefinition;\n };\n readonly [CRAFT_DIRECTIVE_DEPS]?: TemplateDependencies;\n}\n\nexport type CraftDirectiveTemplateDependencies<Directive> =\n Directive extends CraftDirective<any, any, infer Dependencies extends object>\n ? Dependencies\n : {};\n\nexport function isCraftDirective(value: unknown): value is CraftDirective {\n return typeof value === 'function' && CRAFT_DIRECTIVE in value;\n}\n\ntype Simplify<T> = { [K in keyof T]: T[K] } & {};\n\ntype IsInputContextValue<Value> = Value extends object\n ? typeof INPUT_BRAND extends keyof Value\n ? true\n : false\n : false;\n\ntype InputValueOfContextValue<Value> =\n IsInputContextValue<Value> extends true\n ? Value extends Yieldable<[], infer Result>\n ? Result\n : never\n : never;\n\nexport type PropsFromContext<Context> = Simplify<{\n [Key in keyof Context as IsInputContextValue<Context[Key]> extends true\n ? Key\n : Context[Key] extends RenderableContent\n ? Key\n : ContentRequirementOf<Context[Key]> extends never\n ? Context[Key] extends Output<(...args: any[]) => unknown>\n ? Key\n : never\n : Key]: IsInputContextValue<Context[Key]> extends true\n ? InputValue<InputValueOfContextValue<Context[Key]>>\n : Context[Key] extends RenderableContent\n ? Context[Key]\n : ContentRequirementOf<Context[Key]> extends never\n ? Context[Key] extends Output<infer Handler>\n ? Handler\n : never\n : Context[Key];\n}>;\n\nexport const CRAFT_COMPONENT = Symbol('craft-component');\n\ntype ComponentProvider = (CraftProvider & any) | (CraftProvider & any)[];\n\nexport interface ComponentMeta<\n Providers extends readonly ComponentProvider[] = readonly ComponentProvider[],\n SlotName extends string = string,\n> {\n readonly providers?: Providers;\n readonly host?: Readonly<Record<string, unknown>>;\n readonly styles?: string | readonly string[];\n /** CSS text imported from an external stylesheet with the build text loader. */\n readonly stylesUrl?: string | readonly string[];\n /** Explicit contract for opaque external styles. */\n readonly cssVars?: CssVarsMetaDeclaration;\n /** Styles exposed explicitly to opted-in projected fragments, by slot. */\n readonly contentStyles?: ContentStyles<SlotName>;\n}\n\nexport interface DirectiveMeta {\n readonly styles?: string | readonly string[];\n /** CSS text imported from an external stylesheet with the build text loader. */\n readonly stylesUrl?: string | readonly string[];\n /** Optional behavior mounted against the concrete DOM node being decorated. */\n readonly node?: {\n readonly inputs?: readonly string[];\n readonly mount: CraftNodeDirectiveMount<any>;\n };\n}\n\nexport interface StyleOwner {\n readonly name: string;\n readonly styles?: string | readonly string[];\n readonly definition?: object;\n readonly registrationTarget?: unknown;\n}\n\nexport interface ComponentDefinition<Context = unknown> {\n readonly name: string;\n readonly meta: ComponentMeta;\n readonly factory: ComponentFactory;\n readonly template: ComponentTemplate<Context>;\n readonly styleOwners: readonly StyleOwner[];\n readonly scopeDefinition: object;\n readonly composition?: ComponentCompositionDefinition;\n}\n\nexport type ComponentExceptionHandler = (\n exception: AnyCraftException,\n) => CraftNodeChildren;\n\nexport type ComponentExceptionHandlerOptions = {\n /** Keep the component template visible while rendering the fallback. */\n readonly showSource?: boolean;\n /** Place the fallback before or after the source block. */\n readonly position?: 'before' | 'after';\n};\n\nexport type ComponentExceptionHandlerDefinition =\n ComponentExceptionHandlerOptions & {\n readonly render: ComponentExceptionHandler;\n };\n\nexport type ComponentExceptionHandlerEntry =\n | ComponentExceptionHandler\n | ComponentExceptionHandlerDefinition;\n\nexport type ComponentExceptionHandlerChildren<Handler> = Handler extends (\n ...args: any[]\n) => infer Children\n ? Children\n : Handler extends { readonly render: (...args: any[]) => infer Children }\n ? Children\n : never;\n\nexport type ComponentExceptionGenerator = (\n exception: AnyCraftException,\n) => Generator<unknown, void, unknown>;\n\nexport type ComponentCompositionDefinition = {\n readonly providers?: readonly CraftServiceProvider[];\n readonly catchHandlers?: Readonly<\n Record<string, ComponentExceptionHandlerEntry>\n >;\n readonly catchTagHandlers?: Readonly<\n Record<string, ComponentExceptionGenerator>\n >;\n readonly catchBlockPosition?: 'before' | 'after';\n readonly fieldExceptionHandlers?: FieldExceptionHandlers;\n readonly fieldExceptionOptions?: Required<\n Pick<FieldExceptionBlockOptions, 'mode' | 'position'>\n > &\n Pick<FieldExceptionBlockOptions, 'visibility'>;\n};\n\nexport type ComponentOperatorDefinition = ComponentCompositionDefinition;\n\n/** Internal marker carried by operators that alter component composition. */\nexport const COMPONENT_OPERATOR = Symbol('craft-component-operator');\nexport const COMPONENT_CATCH_BLOCK = Symbol('craft-component-catch-block');\nexport const COMPONENT_FIELD_EXCEPTION_BLOCK = Symbol(\n 'craft-component-field-exception-block',\n);\nexport const FIELD_EXCEPTION_BLOCK_DIRECTIVE = Symbol(\n 'craft-field-exception-block-directive',\n);\n\nexport type ComponentOperator<\n Providers extends\n readonly CraftServiceProvider[] = readonly CraftServiceProvider[],\n Codes extends string = never,\n> = CraftDirective & {\n readonly [COMPONENT_OPERATOR_PROVIDERS]: Providers;\n readonly [COMPONENT_OPERATOR_CODES]: Codes;\n readonly [COMPONENT_OPERATOR]: ComponentCompositionDefinition &\n (Codes extends never\n ? { readonly kind: 'providers'; readonly providers: Providers }\n :\n | {\n readonly kind: 'catchTag';\n readonly catchTagHandlers: Record<\n Codes,\n ComponentExceptionGenerator\n >;\n }\n | {\n readonly kind: 'catchBlock';\n readonly catchHandlers: Record<\n Codes,\n ComponentExceptionHandlerEntry\n >;\n readonly catchBlockPosition?: 'before' | 'after';\n });\n};\n\ntype PublicComponentProps<Props extends object> = {\n [Key in keyof Props]: NonNullable<Props[Key]> extends RenderableContent\n ? () => CraftNodeChildren\n : Props[Key];\n};\n\ntype ComponentCallProps<\n Props extends object,\n Contract extends CssVarContract,\n> = PublicComponentProps<Props> & HostProps & CssVarsCallProps<Contract>;\n\nexport type ComponentCssVars<Meta, Template> = MergeCssVarContracts<\n CssVarsContractOfMeta<Meta>,\n TemplateCssVars<Template>\n>;\n\ntype CraftInputExceptionsOf<Value> =\n Value extends CraftInputExceptionsCarrier<infer Exceptions extends string>\n ? Exceptions\n : never;\n\nexport type ComponentInputExceptionsOf<Props extends object> =\n CraftInputExceptionsOf<Props[keyof Props]>;\n\ntype ProvidersFromMeta<Meta extends ComponentMeta> = Meta extends {\n readonly providers: infer Providers;\n}\n ? Providers\n : readonly [];\n\nexport type ProviderExceptions<Providers> =\n Providers extends readonly (infer Provider)[]\n ? ProviderExceptions<Provider>\n : Providers extends {\n readonly [CRAFT_SERVICE_PROVIDER_BRAND]?: infer Metadata;\n }\n ? Metadata extends {\n readonly yielded: infer Yielded;\n readonly output: infer Output;\n }\n ?\n | ExtractCraftGenExceptions<Yielded>\n | Extract<Output, { readonly _tag: string }>\n : never\n : never;\n\ntype ComponentFactoryExceptions<Factory extends ComponentFactory> =\n | ExtractCraftGenExceptions<FactoryYielded<Factory>>\n | Extract<FactoryContext<Factory>, { readonly _tag: string }>;\n\nexport type ComponentInitializationExceptions<\n Factory extends ComponentFactory,\n Providers,\n> = ComponentFactoryExceptions<Factory> | ProviderExceptions<Providers>;\n\ntype ComponentExceptionCodes<Exceptions> = Exceptions extends {\n readonly _tag: infer Code extends string;\n}\n ? Code\n : never;\n\nexport type ComponentInitializationExceptionCodes<\n Factory extends ComponentFactory,\n Providers,\n> = ComponentExceptionCodes<\n ComponentInitializationExceptions<Factory, Providers>\n>;\n\nexport type ComponentInitializationExceptionCodesForTemplate<\n Factory extends ComponentFactory,\n Providers,\n Template extends ComponentTemplate<FactoryContext<Factory>>,\n> = Exclude<\n ComponentInitializationExceptionCodes<Factory, Providers>,\n Extract<CraftNodeChildrenHandledExceptionCodes<ReturnType<Template>>, string>\n>;\n\ntype ComponentOperatorProviders<Operator> = Operator extends {\n readonly [COMPONENT_OPERATOR_PROVIDERS]: infer Providers;\n}\n ? Providers\n : readonly [];\n\ntype ComponentOperatorHandlers<Operator> = Operator extends {\n readonly [COMPONENT_OPERATOR_CODES]: infer Codes;\n}\n ? Codes\n : never;\n\ntype ComponentOperatorExceptionCodes<Operator> = ComponentExceptionCodes<\n ProviderExceptions<ComponentOperatorProviders<Operator>>\n>;\n\ntype ComponentOperatorFallbackExceptionCodes<Operator> = Operator extends {\n readonly [COMPONENT_OPERATOR]: {\n readonly catchHandlers: infer Handlers extends Record<\n string,\n ComponentExceptionHandlerEntry\n >;\n };\n}\n ? CraftNodeChildrenExceptions<\n ComponentExceptionHandlerChildren<Handlers[keyof Handlers]>\n >\n : never;\n\ntype ComponentExceptionsBeforeOperator<\n Factory extends ComponentFactory,\n Meta extends ComponentMeta,\n Operator,\n ExistingExceptions extends string,\n> =\n | ExistingExceptions\n | ComponentInitializationExceptionCodes<Factory, ProvidersFromMeta<Meta>>\n | ComponentOperatorExceptionCodes<Operator>;\n\ntype ComponentExceptionsAfterOperator<\n Factory extends ComponentFactory,\n Meta extends ComponentMeta,\n Operator,\n ExistingExceptions extends string = never,\n> = [ComponentOperatorHandlers<Operator>] extends [never]\n ? ComponentExceptionsBeforeOperator<\n Factory,\n Meta,\n Operator,\n ExistingExceptions\n >\n :\n | Exclude<\n ComponentExceptionsBeforeOperator<\n Factory,\n Meta,\n Operator,\n ExistingExceptions\n >,\n ComponentOperatorHandlers<Operator>\n >\n | ComponentOperatorFallbackExceptionCodes<Operator>;\n\ntype ComponentOperatorExhaustiveCheck<\n Factory extends ComponentFactory,\n Meta extends ComponentMeta,\n Operator,\n ExistingExceptions extends string,\n HandledByTemplate extends string = never,\n> = [ComponentOperatorHandlers<Operator>] extends [never]\n ? unknown\n : CatchTagExhaustiveCodesCheck<\n ComponentExceptionsBeforeOperator<\n Factory,\n Meta,\n Operator,\n ExistingExceptions\n >,\n Record<Extract<ComponentOperatorHandlers<Operator>, string>, unknown>\n > &\n (Operator extends { readonly [COMPONENT_CATCH_BLOCK]: true }\n ? [\n Extract<ComponentOperatorHandlers<Operator>, HandledByTemplate>,\n ] extends [never]\n ? unknown\n : {\n 'catchBlock.exhaustive has handlers for codes already handled by the template': Extract<\n ComponentOperatorHandlers<Operator>,\n HandledByTemplate\n >;\n }\n : unknown);\n\ntype ComponentTemplateHandledExceptionCodes<\n Template extends ComponentTemplate<any>,\n> = Extract<\n CraftNodeChildrenHandledExceptionCodes<ReturnType<Template>>,\n string\n>;\n\ntype NextContentSelectorDepth<Depth extends readonly unknown[]> = [\n ...Depth,\n unknown,\n];\n\ntype IsAnyContentSelector<Value> = 0 extends 1 & Value ? true : false;\n\ntype ContentSelectorCandidate<\n Tag extends keyof HTMLElementTagNameMap,\n Criteria extends object,\n> = {\n readonly tag: Tag;\n readonly criteria: Criteria;\n};\n\ntype VisitProjectedContent<\n Node,\n Depth extends readonly unknown[] = [],\n> = Depth['length'] extends 8\n ? never\n : IsAnyContentSelector<Node> extends true\n ? never\n : Node extends readonly (infer Child)[]\n ? VisitProjectedContent<Child, NextContentSelectorDepth<Depth>>\n : Node extends ElementNodeBase<\n any,\n infer Tag extends keyof HTMLElementTagNameMap,\n infer Props,\n infer Children\n >\n ?\n | ContentSelectorCandidate<Tag, StaticLocatorCriteria<Props>>\n | VisitProjectedContent<Children, NextContentSelectorDepth<Depth>>\n : Node extends {\n readonly kind: 'directive';\n readonly node: infer DirectiveNode;\n }\n ? VisitProjectedContent<\n DirectiveNode,\n NextContentSelectorDepth<Depth>\n >\n : Node extends {\n readonly kind: 'if';\n readonly whenTrue: () => infer TrueChildren;\n readonly whenFalse?: () => infer FalseChildren;\n }\n ? VisitProjectedContent<\n TrueChildren | FalseChildren,\n NextContentSelectorDepth<Depth>\n >\n : Node extends {\n readonly kind: 'each';\n readonly itemTemplate: (...args: any[]) => infer ItemChildren;\n readonly empty?: () => infer EmptyChildren;\n }\n ? VisitProjectedContent<\n ItemChildren | EmptyChildren,\n NextContentSelectorDepth<Depth>\n >\n : Node extends {\n readonly kind: 'defer';\n readonly resolve: (...args: any[]) => infer Resolved;\n }\n ? VisitProjectedContent<\n Resolved,\n NextContentSelectorDepth<Depth>\n >\n : never;\n\ntype ContentSelectorCriteria<Selector extends ContentSelector> = Omit<\n Selector,\n 'tag'\n>;\n\ntype ContentSelectorMatches<Candidate, Selector extends ContentSelector> =\n Candidate extends ContentSelectorCandidate<infer Tag, infer Available>\n ? Selector extends {\n readonly tag: infer WantedTag extends keyof HTMLElementTagNameMap;\n }\n ? Tag extends WantedTag\n ? ContentSelectorCriteria<Selector> extends Partial<Available>\n ? true\n : false\n : false\n : ContentSelectorCriteria<Selector> extends Partial<Available>\n ? true\n : false\n : false;\n\ntype MatchingProjectedContent<\n Candidates,\n Selector extends ContentSelector,\n> = Candidates extends unknown\n ? ContentSelectorMatches<Candidates, Selector> extends true\n ? Candidates\n : never\n : never;\n\ntype ContentSelectorContractCheck<Output, Selector extends ContentSelector> = [\n MatchingProjectedContent<VisitProjectedContent<Output>, Selector>,\n] extends [never]\n ? {\n readonly 'projected content does not satisfy the declared selector': Selector;\n }\n : unknown;\n\ntype ContentConditionsCheck<\n Actual extends object,\n Requirements extends object,\n> = {\n [Key in keyof Actual & keyof Requirements]: Requirements[Key] extends {\n readonly selector: infer Selector extends ContentSelector;\n }\n ? ContentSelectorContractCheck<\n SlotOutput<NonNullable<Actual[Key]>>,\n Selector\n >\n : unknown;\n};\n\ntype IsLogicInputObject<Value> = Value extends (...args: any[]) => any\n ? false\n : Value extends object\n ? true\n : false;\n\ntype LogicInputProps<Factory extends ComponentFactory> =\n Parameters<Factory> extends [infer Input]\n ? IsLogicInputObject<Input> extends true\n ? Simplify<Input & object>\n : never\n : never;\n\nexport type PropsFromFactory<Factory extends ComponentFactory> = [\n LogicInputProps<Factory>,\n] extends [never]\n ? PropsFromContext<FactoryContext<Factory>>\n : LogicInputProps<Factory>;\n\ntype ContentRequirementsFromContext<Context> = Simplify<{\n [Key in keyof Context as ContentRequirementOf<Context[Key]> extends never\n ? never\n : Key]: ContentRequirementOf<Context[Key]>;\n}>;\n\ntype ContentRequirementsOfFactory<Factory extends ComponentFactory> =\n ContentRequirementsFromContext<FactoryContext<Factory>>;\n\ntype ProjectionOutputOf<Component> = Component extends {\n readonly [COMPONENT_LOGIC_OUTPUT]: infer Output;\n}\n ? Output\n : never;\n\nexport type ProjectionContractOf<Component> =\n ProjectionOutputOf<Component> extends {\n readonly contract: infer Contract;\n }\n ? Contract\n : never;\n\ntype ProjectionKeyOf<Component> =\n ProjectionOutputOf<Component> extends {\n readonly key: infer Key extends PropertyKey;\n }\n ? Key\n : never;\n\nexport type ProjectionUnit<\n Contract = unknown,\n Key extends PropertyKey = PropertyKey,\n> = ComponentNode<any, any> & {\n readonly key: Key;\n readonly [PROJECTION_CONTRACT]?: Contract;\n};\n\nexport type ProjectionSlot<Contract> = readonly ProjectionUnit<Contract>[];\n\nexport type ProjectionOf<Component> = [\n ProjectionContractOf<Component>,\n] extends [never]\n ? never\n : ProjectionUnit<ProjectionContractOf<Component>, ProjectionKeyOf<Component>>;\n\ntype ComponentCallNode<\n CallProps extends object,\n ComponentDeps extends object,\n Component extends CraftComponent<any, ComponentDeps>,\n Factory extends ComponentFactory,\n InputProps extends object = {},\n CssVars extends\n CssVarContract = import('./css-vars.type').EmptyCssVarContract,\n> =\n ComponentInputExceptionsOf<\n Pick<CallProps, keyof InputProps & keyof CallProps>\n > extends infer InputExceptions extends string\n ? FactoryContext<Factory> extends {\n readonly contract: infer Contract;\n readonly key: infer Key extends PropertyKey;\n }\n ? ComponentNode<\n CallProps,\n ComponentDeps,\n Component,\n ContentDependenciesFromProps<CallProps>,\n InputExceptions,\n CssVars\n > &\n ProjectionUnit<Contract, Key>\n : ComponentNode<\n CallProps,\n ComponentDeps,\n Component,\n ContentDependenciesFromProps<CallProps>,\n InputExceptions,\n CssVars\n >\n : never;\n\ntype AppliedDirectiveFactory<\n Factory extends ComponentFactory,\n Directive extends CraftDirective,\n> = Directive extends { readonly [COMPONENT_FIELD_EXCEPTION_BLOCK]: true }\n ? Factory\n : Directive extends ComponentOperator<any, any>\n ? Factory\n : Directive extends CraftDirective<infer Logic, any>\n ? ReturnType<Logic> extends ComponentFactory\n ? ReturnType<Logic>\n : Factory\n : Factory;\n\ntype MissingProviderMap<Dependencies> = Dependencies extends {\n missingProvider: infer Missing extends object;\n}\n ? Missing\n : {};\n\ntype MergePipedComponentDependencies<\n Existing extends object,\n Recomputed extends object,\n> = Simplify<\n Omit<Recomputed, 'missingProvider'> & {\n missingProvider: Simplify<\n MissingProviderMap<Existing> & MissingProviderMap<Recomputed>\n >;\n }\n>;\n\ntype ComponentFieldExceptionsAfterOperator<ExistingFieldExceptions, Directive> =\n Directive extends FieldExceptionBlockDirective<\n infer Handlers extends FieldExceptionHandlers,\n boolean\n >\n ?\n | ResidualFieldValidationCases<ExistingFieldExceptions, Handlers>\n | FieldExceptionHandlerFieldExceptions<Handlers>\n : ExistingFieldExceptions;\n\ntype ComponentFieldExceptionOperatorCheck<ExistingFieldExceptions, Directive> =\n Directive extends FieldExceptionBlockDirective<\n infer Handlers extends FieldExceptionHandlers,\n infer Exhaustive extends boolean\n >\n ? Exhaustive extends true\n ? FieldExceptionBlockExhaustiveCheck<ExistingFieldExceptions, Handlers>\n : FieldExceptionBlockPartialCheck<ExistingFieldExceptions, Handlers>\n : unknown;\n\ntype ComponentFieldExceptionFallbackExceptionCodes<Directive> =\n Directive extends FieldExceptionBlockDirective<\n infer Handlers extends FieldExceptionHandlers,\n boolean\n >\n ? CraftNodeChildrenExceptions<\n FieldExceptionHandlerChildren<Handlers[keyof Handlers]>\n >\n : never;\n\ntype PipedComponent<\n Factory extends ComponentFactory,\n Meta extends ComponentMeta,\n Directive extends CraftDirective,\n RootFactory extends ComponentFactory,\n ExistingComponentDeps extends object,\n ExistingExceptions extends string,\n ExistingFieldExceptions,\n TemplateDependencies extends object,\n Template extends ComponentTemplate<\n FactoryContext<Factory>\n > = ComponentTemplate<FactoryContext<Factory>>,\n Name extends string = string,\n> =\n AppliedDirectiveFactory<Factory, Directive> extends infer NextFactory extends\n ComponentFactory\n ? CraftComponent<\n PropsFromFactory<NextFactory>,\n MergePipedComponentDependencies<\n ExistingComponentDeps,\n CraftComponentDependencies<\n FactoryYielded<RootFactory> | FactoryYielded<NextFactory>,\n FactoryContext<NextFactory>,\n ProvidersFromMeta<Meta> | ComponentOperatorProviders<Directive>,\n PropsFromFactory<NextFactory>,\n TemplateDependencies | CraftDirectiveTemplateDependencies<Directive>\n >\n >,\n NextFactory,\n Meta,\n RootFactory,\n TemplateDependencies | CraftDirectiveTemplateDependencies<Directive>,\n Template &\n ComponentTemplate<FactoryContext<NextFactory>, ReturnType<Template>>,\n Name,\n (\n | ComponentExceptionsAfterOperator<\n Factory,\n Meta,\n Directive,\n ExistingExceptions\n >\n | ComponentFieldExceptionFallbackExceptionCodes<Directive>\n ) &\n ComponentOperatorExhaustiveCheck<\n Factory,\n Meta,\n Directive,\n ExistingExceptions\n >,\n ContentRequirementsOfFactory<NextFactory>,\n ComponentFieldExceptionsAfterOperator<\n ExistingFieldExceptions,\n Directive\n >\n >\n : never;\n\nexport interface CraftComponent<\n Props extends object = Record<never, never>,\n ComponentDeps extends object = Record<never, never>,\n Factory extends ComponentFactory = ComponentFactory,\n Meta extends ComponentMeta = ComponentMeta,\n RootFactory extends ComponentFactory = Factory,\n TemplateDependencies extends object = never,\n Template extends ComponentTemplate<\n FactoryContext<Factory>\n > = ComponentTemplate<FactoryContext<Factory>>,\n Name extends string = string,\n InitializationExceptions extends string = string,\n ContentRequirements extends object = {},\n FieldExceptions = any,\n> extends ComponentDepsCarrier<ComponentDeps>,\n CraftRegistrationTarget<Name, 'component', FactoryContext<Factory>> {\n <\n CallProps extends ComponentCallProps<\n Props,\n ComponentCssVars<Meta, Template>\n > = ComponentCallProps<Props, ComponentCssVars<Meta, Template>>,\n >(\n ...args: keyof Props extends never\n ? [\n props?: CallProps &\n ContentConditionsCheck<NoInfer<CallProps>, ContentRequirements>,\n ]\n : [\n props: CallProps &\n ContentConditionsCheck<NoInfer<CallProps>, ContentRequirements>,\n ]\n ): ComponentCallNode<\n CallProps,\n ComponentDeps,\n CraftComponent<\n Props,\n ComponentDeps,\n Factory,\n Meta,\n RootFactory,\n TemplateDependencies,\n Template,\n Name,\n InitializationExceptions,\n ContentRequirements,\n FieldExceptions\n >,\n Factory,\n Props,\n CssVarsAfterCall<ComponentCssVars<Meta, Template>, CallProps>\n >;\n readonly [CRAFT_COMPONENT]: ComponentDefinition<unknown> & {\n readonly name: Name;\n readonly factory: Factory;\n };\n readonly [COMPONENT_INITIALIZATION_EXCEPTIONS]: InitializationExceptions;\n readonly [COMPONENT_FIELD_EXCEPTIONS]: FieldExceptions;\n readonly [COMPONENT_LOGIC_OUTPUT]: FactoryContext<Factory>;\n readonly pipe: {\n <Directive extends CraftDirective>(\n directiveFactory: (\n component: CraftComponent<\n Props,\n ComponentDeps,\n Factory,\n Meta,\n RootFactory,\n TemplateDependencies,\n Template,\n Name,\n InitializationExceptions,\n ContentRequirements,\n FieldExceptions\n >,\n ) => Directive &\n ComponentOperatorExhaustiveCheck<\n Factory,\n Meta,\n Directive,\n InitializationExceptions,\n ComponentTemplateHandledExceptionCodes<Template>\n > &\n ComponentFieldExceptionOperatorCheck<FieldExceptions, Directive>,\n ): PipedComponent<\n Factory,\n Meta,\n Directive,\n RootFactory,\n ComponentDeps,\n InitializationExceptions,\n FieldExceptions,\n TemplateDependencies,\n Template,\n Name\n >;\n <Directive extends CraftDirective>(\n directive: Directive &\n ComponentOperatorExhaustiveCheck<\n Factory,\n Meta,\n Directive,\n InitializationExceptions,\n ComponentTemplateHandledExceptionCodes<Template>\n > &\n ComponentFieldExceptionOperatorCheck<FieldExceptions, Directive>,\n ): PipedComponent<\n Factory,\n Meta,\n Directive,\n RootFactory,\n ComponentDeps,\n InitializationExceptions,\n FieldExceptions,\n TemplateDependencies,\n Template,\n Name\n >;\n (\n ...directives: readonly [CraftDirective, CraftDirective]\n ): CraftComponent<any, any>;\n };\n}\n\nexport type ComponentCssVarsOf<Component> =\n Component extends CraftComponent<\n any,\n any,\n any,\n infer Meta,\n any,\n any,\n infer Template,\n any,\n any,\n any,\n any\n >\n ? ComponentCssVars<Meta, Template>\n : import('./css-vars.type').EmptyCssVarContract;\n\nexport type ComponentNameOf<Component> =\n Component extends CraftComponent<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n infer Name,\n any,\n any,\n any\n >\n ? Name\n : string;\n\nexport type ComponentInitializationExceptionsOf<Component> = Component extends {\n readonly [COMPONENT_INITIALIZATION_EXCEPTIONS]: infer Exceptions extends\n string;\n}\n ? Exceptions\n : never;\n\nexport type ComponentFieldExceptionsOf<Component> = Component extends {\n readonly [COMPONENT_FIELD_EXCEPTIONS]: infer FieldExceptions;\n}\n ? Exclude<FieldExceptions, undefined>\n : never;\n\n/** The value returned by a component's logic factory. */\nexport type ComponentLogicOutputOf<Component> = Component extends {\n readonly [COMPONENT_LOGIC_OUTPUT]: infer Output;\n}\n ? Output\n : never;\n\nexport type ContentRequirementsOfContext<Context> =\n ContentRequirementsFromContext<Context>;\n\nexport type ComponentTemplateOf<Component> =\n Component extends CraftComponent<\n any,\n any,\n any,\n any,\n any,\n any,\n infer Template extends ComponentTemplate<any>,\n infer Name extends string\n >\n ? NamedComponentTemplate<Template, Name>\n : never;\n\nexport type PropsOf<Component> =\n Component extends CraftComponent<infer Props, any> ? Props : never;\n\nexport function isCraftComponent(\n value: unknown,\n): value is CraftComponent<object> {\n return typeof value === 'function' && CRAFT_COMPONENT in value;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../../../libs/component/testing/public-api.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,kCAAkC,EAClC,mBAAmB,GACpB,MAAM,gBAAgB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../../../libs/component/testing/public-api.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,kCAAkC,EAClC,mBAAmB,GACpB,MAAM,gBAAgB,CAAC","sourcesContent":["export * from '@craft-ts/component';\nexport {\n setupCraftServiceTestingByRegister,\n setupTestingService,\n} from '@craft-ts/core';\n"]}