@craft-ts/component 0.7.0-beta.13

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 (190) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +36 -0
  3. package/src/index.d.ts +40 -0
  4. package/src/index.d.ts.map +1 -0
  5. package/src/index.js +38 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/a11y-control.d.ts +58 -0
  8. package/src/lib/a11y-control.d.ts.map +1 -0
  9. package/src/lib/a11y-control.js +74 -0
  10. package/src/lib/a11y-control.js.map +1 -0
  11. package/src/lib/a11y.d.ts +87 -0
  12. package/src/lib/a11y.d.ts.map +1 -0
  13. package/src/lib/a11y.js +96 -0
  14. package/src/lib/a11y.js.map +1 -0
  15. package/src/lib/ai/ai-context-menu.d.ts +140 -0
  16. package/src/lib/ai/ai-context-menu.d.ts.map +1 -0
  17. package/src/lib/ai/ai-context-menu.js +66 -0
  18. package/src/lib/ai/ai-context-menu.js.map +1 -0
  19. package/src/lib/ai/ai-send-dialog.d.ts +1263 -0
  20. package/src/lib/ai/ai-send-dialog.d.ts.map +1 -0
  21. package/src/lib/ai/ai-send-dialog.js +288 -0
  22. package/src/lib/ai/ai-send-dialog.js.map +1 -0
  23. package/src/lib/ai/send-context-to-ai.d.ts +29 -0
  24. package/src/lib/ai/send-context-to-ai.d.ts.map +1 -0
  25. package/src/lib/ai/send-context-to-ai.js +127 -0
  26. package/src/lib/ai/send-context-to-ai.js.map +1 -0
  27. package/src/lib/assert-defined-input.d.ts +26 -0
  28. package/src/lib/assert-defined-input.d.ts.map +1 -0
  29. package/src/lib/assert-defined-input.js +47 -0
  30. package/src/lib/assert-defined-input.js.map +1 -0
  31. package/src/lib/block.d.ts +36 -0
  32. package/src/lib/block.d.ts.map +1 -0
  33. package/src/lib/block.js +55 -0
  34. package/src/lib/block.js.map +1 -0
  35. package/src/lib/bootstrap.d.ts +32 -0
  36. package/src/lib/bootstrap.d.ts.map +1 -0
  37. package/src/lib/bootstrap.js +60 -0
  38. package/src/lib/bootstrap.js.map +1 -0
  39. package/src/lib/bridge.d.ts +56 -0
  40. package/src/lib/bridge.d.ts.map +1 -0
  41. package/src/lib/bridge.js +81 -0
  42. package/src/lib/bridge.js.map +1 -0
  43. package/src/lib/component.d.ts +46 -0
  44. package/src/lib/component.d.ts.map +1 -0
  45. package/src/lib/component.js +118 -0
  46. package/src/lib/component.js.map +1 -0
  47. package/src/lib/composition.d.ts +17 -0
  48. package/src/lib/composition.d.ts.map +1 -0
  49. package/src/lib/composition.js +28 -0
  50. package/src/lib/composition.js.map +1 -0
  51. package/src/lib/craft-defaults.d.ts +2 -0
  52. package/src/lib/craft-defaults.d.ts.map +1 -0
  53. package/src/lib/craft-defaults.js +41 -0
  54. package/src/lib/craft-defaults.js.map +1 -0
  55. package/src/lib/craft-host-tokens.d.ts +6 -0
  56. package/src/lib/craft-host-tokens.d.ts.map +1 -0
  57. package/src/lib/craft-host-tokens.js +7 -0
  58. package/src/lib/craft-host-tokens.js.map +1 -0
  59. package/src/lib/craft-router-outlet.d.ts +15 -0
  60. package/src/lib/craft-router-outlet.d.ts.map +1 -0
  61. package/src/lib/craft-router-outlet.js +10 -0
  62. package/src/lib/craft-router-outlet.js.map +1 -0
  63. package/src/lib/css-vars.d.ts +31 -0
  64. package/src/lib/css-vars.d.ts.map +1 -0
  65. package/src/lib/css-vars.js +43 -0
  66. package/src/lib/css-vars.js.map +1 -0
  67. package/src/lib/css-vars.type.d.ts +151 -0
  68. package/src/lib/css-vars.type.d.ts.map +1 -0
  69. package/src/lib/css-vars.type.js +1 -0
  70. package/src/lib/css-vars.type.js.map +1 -0
  71. package/src/lib/defer.d.ts +31 -0
  72. package/src/lib/defer.d.ts.map +1 -0
  73. package/src/lib/defer.js +19 -0
  74. package/src/lib/defer.js.map +1 -0
  75. package/src/lib/directive.d.ts +9 -0
  76. package/src/lib/directive.d.ts.map +1 -0
  77. package/src/lib/directive.js +31 -0
  78. package/src/lib/directive.js.map +1 -0
  79. package/src/lib/each-scheduling.d.ts +59 -0
  80. package/src/lib/each-scheduling.d.ts.map +1 -0
  81. package/src/lib/each-scheduling.js +120 -0
  82. package/src/lib/each-scheduling.js.map +1 -0
  83. package/src/lib/each.d.ts +29 -0
  84. package/src/lib/each.d.ts.map +1 -0
  85. package/src/lib/each.js +23 -0
  86. package/src/lib/each.js.map +1 -0
  87. package/src/lib/factory-runtime.d.ts +5 -0
  88. package/src/lib/factory-runtime.d.ts.map +1 -0
  89. package/src/lib/factory-runtime.js +26 -0
  90. package/src/lib/factory-runtime.js.map +1 -0
  91. package/src/lib/field-exception-block.d.ts +96 -0
  92. package/src/lib/field-exception-block.d.ts.map +1 -0
  93. package/src/lib/field-exception-block.js +44 -0
  94. package/src/lib/field-exception-block.js.map +1 -0
  95. package/src/lib/host-runtime.d.ts +60 -0
  96. package/src/lib/host-runtime.d.ts.map +1 -0
  97. package/src/lib/host-runtime.js +16 -0
  98. package/src/lib/host-runtime.js.map +1 -0
  99. package/src/lib/hydrate.d.ts +15 -0
  100. package/src/lib/hydrate.d.ts.map +1 -0
  101. package/src/lib/hydrate.js +79 -0
  102. package/src/lib/hydrate.js.map +1 -0
  103. package/src/lib/hyperscript.d.ts +148 -0
  104. package/src/lib/hyperscript.d.ts.map +1 -0
  105. package/src/lib/hyperscript.js +96 -0
  106. package/src/lib/hyperscript.js.map +1 -0
  107. package/src/lib/if-block.d.ts +8 -0
  108. package/src/lib/if-block.d.ts.map +1 -0
  109. package/src/lib/if-block.js +16 -0
  110. package/src/lib/if-block.js.map +1 -0
  111. package/src/lib/locator.d.ts +170 -0
  112. package/src/lib/locator.d.ts.map +1 -0
  113. package/src/lib/locator.js +151 -0
  114. package/src/lib/locator.js.map +1 -0
  115. package/src/lib/match-block.d.ts +38 -0
  116. package/src/lib/match-block.d.ts.map +1 -0
  117. package/src/lib/match-block.js +29 -0
  118. package/src/lib/match-block.js.map +1 -0
  119. package/src/lib/pending-block.d.ts +125 -0
  120. package/src/lib/pending-block.d.ts.map +1 -0
  121. package/src/lib/pending-block.js +48 -0
  122. package/src/lib/pending-block.js.map +1 -0
  123. package/src/lib/project.d.ts +19 -0
  124. package/src/lib/project.d.ts.map +1 -0
  125. package/src/lib/project.js +56 -0
  126. package/src/lib/project.js.map +1 -0
  127. package/src/lib/render/hydration-metadata.d.ts +3 -0
  128. package/src/lib/render/hydration-metadata.d.ts.map +1 -0
  129. package/src/lib/render/hydration-metadata.js +8 -0
  130. package/src/lib/render/hydration-metadata.js.map +1 -0
  131. package/src/lib/render/hydration.d.ts +24 -0
  132. package/src/lib/render/hydration.d.ts.map +1 -0
  133. package/src/lib/render/hydration.js +181 -0
  134. package/src/lib/render/hydration.js.map +1 -0
  135. package/src/lib/render/interpreter.d.ts +32 -0
  136. package/src/lib/render/interpreter.d.ts.map +1 -0
  137. package/src/lib/render/interpreter.js +3588 -0
  138. package/src/lib/render/interpreter.js.map +1 -0
  139. package/src/lib/render/server-style-collector.d.ts +6 -0
  140. package/src/lib/render/server-style-collector.d.ts.map +1 -0
  141. package/src/lib/render/server-style-collector.js +23 -0
  142. package/src/lib/render/server-style-collector.js.map +1 -0
  143. package/src/lib/render/ssr-coordinator.d.ts +20 -0
  144. package/src/lib/render/ssr-coordinator.d.ts.map +1 -0
  145. package/src/lib/render/ssr-coordinator.js +99 -0
  146. package/src/lib/render/ssr-coordinator.js.map +1 -0
  147. package/src/lib/render/string-dom.d.ts +9 -0
  148. package/src/lib/render/string-dom.d.ts.map +1 -0
  149. package/src/lib/render/string-dom.js +377 -0
  150. package/src/lib/render/string-dom.js.map +1 -0
  151. package/src/lib/render/style-registry.d.ts +14 -0
  152. package/src/lib/render/style-registry.d.ts.map +1 -0
  153. package/src/lib/render/style-registry.js +79 -0
  154. package/src/lib/render/style-registry.js.map +1 -0
  155. package/src/lib/render/style-scope.d.ts +30 -0
  156. package/src/lib/render/style-scope.d.ts.map +1 -0
  157. package/src/lib/render/style-scope.js +261 -0
  158. package/src/lib/render/style-scope.js.map +1 -0
  159. package/src/lib/render/vnode.d.ts +330 -0
  160. package/src/lib/render/vnode.d.ts.map +1 -0
  161. package/src/lib/render/vnode.js +293 -0
  162. package/src/lib/render/vnode.js.map +1 -0
  163. package/src/lib/server-render.d.ts +34 -0
  164. package/src/lib/server-render.d.ts.map +1 -0
  165. package/src/lib/server-render.js +84 -0
  166. package/src/lib/server-render.js.map +1 -0
  167. package/src/lib/start.d.ts +13 -0
  168. package/src/lib/start.d.ts.map +1 -0
  169. package/src/lib/start.js +20 -0
  170. package/src/lib/start.js.map +1 -0
  171. package/src/lib/template-contract.d.ts +347 -0
  172. package/src/lib/template-contract.d.ts.map +1 -0
  173. package/src/lib/template-contract.js +1 -0
  174. package/src/lib/template-contract.js.map +1 -0
  175. package/src/lib/template.d.ts +11 -0
  176. package/src/lib/template.d.ts.map +1 -0
  177. package/src/lib/template.js +21 -0
  178. package/src/lib/template.js.map +1 -0
  179. package/src/lib/testing.d.ts +157 -0
  180. package/src/lib/testing.d.ts.map +1 -0
  181. package/src/lib/testing.js +416 -0
  182. package/src/lib/testing.js.map +1 -0
  183. package/src/lib/types.d.ts +442 -0
  184. package/src/lib/types.d.ts.map +1 -0
  185. package/src/lib/types.js +22 -0
  186. package/src/lib/types.js.map +1 -0
  187. package/testing/public-api.d.ts +3 -0
  188. package/testing/public-api.d.ts.map +1 -0
  189. package/testing/public-api.js +3 -0
  190. package/testing/public-api.js.map +1 -0
@@ -0,0 +1,347 @@
1
+ import type { CraftComponent, ComponentTemplateOf, ComponentTemplateNameOf, FactoryContext, Output, PropsOf, TemplateMethodUse } from './types';
2
+ import type { NamedYieldableValue, Yieldable, YieldableMethod } from '@craft-ts/core';
3
+ import type { ComponentNode, CraftDirectiveNode, CraftNodeChildren, DeferNode, EachNode, IfBlockNode, ElementNodeBase } from './render/vnode';
4
+ export type TemplateContractError<Message extends string> = {
5
+ readonly error: Message;
6
+ };
7
+ type IsAny<Value> = 0 extends 1 & Value ? true : false;
8
+ type IsUnion<Value, Whole = Value> = Value extends any ? [Whole] extends [Value] ? false : true : never;
9
+ type ContractErrors<Result> = Extract<Result, TemplateContractError<string>>;
10
+ type ContractResult<Result> = [ContractErrors<Result>] extends [never] ? true : ContractErrors<Result>;
11
+ type Registered<Component, Registry extends readonly CraftComponent<any, any>[]> = [Component] extends [Registry[number]] ? true : false;
12
+ type ComponentName<Component> = Component extends CraftComponent<any, any, any, any, any, any, any, infer Name> ? Name : 'anonymous';
13
+ type ComponentPropsMatch<ActualProps, Component extends CraftComponent<any, any>> = IsAny<ActualProps> extends true ? TemplateContractError<`Props for component ${ComponentName<Component>} could not be inferred.`> : InvalidComponentProps<ActualProps, Component>;
14
+ type InvalidComponentProps<ActualProps, Component extends CraftComponent<any, any>> = {
15
+ [Key in keyof PropsOf<Component>]-?: Key extends keyof ActualProps ? ActualProps[Key] extends PropsOf<Component>[Key] ? never : TemplateContractError<`Prop ${Key & string} on component ${ComponentName<Component>} has an incompatible type.`> : TemplateContractError<`Prop ${Key & string} is missing on component ${ComponentName<Component>}.`>;
16
+ }[keyof PropsOf<Component>] extends never ? true : {
17
+ [Key in keyof PropsOf<Component>]-?: Key extends keyof ActualProps ? ActualProps[Key] extends PropsOf<Component>[Key] ? never : TemplateContractError<`Prop ${Key & string} on component ${ComponentName<Component>} has an incompatible type.`> : TemplateContractError<`Prop ${Key & string} is missing on component ${ComponentName<Component>}.`>;
18
+ }[keyof PropsOf<Component>];
19
+ type IsTemplateCallback<Value> = Value extends Yieldable<any, any, any> | YieldableMethod<any, any, any> ? true : false;
20
+ type InvalidCallback<Message extends string, Value> = IsTemplateCallback<Value> extends true ? never : TemplateContractError<Message>;
21
+ type DomEventKey = keyof GlobalEventHandlersEventMap & string;
22
+ type InvalidElementCallbacks<Props> = {
23
+ [Key in keyof Props & string]: Key extends DomEventKey ? Props[Key] extends (...args: any[]) => any ? InvalidCallback<`Event ${Key} must use a generator callback or a branded Craft method.`, Props[Key]> : never : Key extends `on${Capitalize<DomEventKey>}` ? Props[Key] extends (...args: any[]) => any ? InvalidCallback<`Event ${Key} must use a generator callback or a branded Craft method.`, Props[Key]> : never : never;
24
+ }[keyof Props & string];
25
+ type FactoryOf<Component> = Component extends CraftComponent<any, any, infer Factory> ? Factory : never;
26
+ type OutputKeys<Component> = {
27
+ [Key in keyof FactoryContext<FactoryOf<Component>>]: FactoryContext<FactoryOf<Component>>[Key] extends Output<(...args: any[]) => any> ? Key : never;
28
+ }[keyof FactoryContext<FactoryOf<Component>>];
29
+ type InvalidOutputCallbacks<ActualProps, Component extends CraftComponent<any, any>> = {
30
+ [Key in OutputKeys<Component> & string]: Key extends keyof ActualProps ? ActualProps[Key] extends (...args: any[]) => any ? InvalidCallback<`Output ${Key} on component ${ComponentName<Component>} must use a generator callback or a branded Craft method.`, ActualProps[Key]> : never : never;
31
+ }[OutputKeys<Component> & string];
32
+ type ComponentOfNode<Node> = Node extends {
33
+ readonly component: infer Component;
34
+ } ? Component extends CraftComponent<any, any> ? Component : never : never;
35
+ type VisitChildren<Children, Registry extends readonly CraftComponent<any, any>[], Seen extends readonly unknown[]> = Children extends readonly (infer Child)[] ? VisitChildren<Child, Registry, Seen> : Children extends ElementNodeBase<any, any, infer Props, infer Nested> ? InvalidElementCallbacks<Props> | VisitChildren<Nested, Registry, Seen> : Children extends ComponentNode<infer ActualProps, any, any> ? ComponentPropsMatch<ActualProps, ComponentOfNode<Children>> | InvalidOutputCallbacks<ActualProps, ComponentOfNode<Children>> | VisitComponent<ComponentOfNode<Children>, Registry, Seen> : Children extends CraftDirectiveNode<any> ? VisitChildren<Children['node'], Registry, Seen> : Children extends EachNode<infer _Item, infer _Key, infer _Dependencies> ? VisitChildren<ReturnType<Children['itemTemplate']> | (Children['empty'] extends (...args: any[]) => infer Empty ? Empty : never), Registry, Seen> : Children extends DeferNode<infer Loaded, infer _Dependencies> ? VisitChildren<Loaded extends CraftComponent<any, any> ? ComponentNode<PropsOf<Loaded>, {}, Loaded> : ReturnType<Children['resolve']>, Registry, Seen> : true;
36
+ type VisitComponent<Component extends CraftComponent<any, any>, Registry extends readonly CraftComponent<any, any>[], Seen extends readonly unknown[]> = IsAny<Component> extends true ? TemplateContractError<'Dynamic component references cannot be resolved.'> : IsUnion<Component> extends true ? TemplateContractError<'Union component references cannot be resolved by the template contract; register a concrete component.'> : Registered<Component, Registry> extends true ? Component extends Seen[number] ? true : VisitChildren<ReturnType<ComponentTemplateOf<Component>>, Registry, [
37
+ ...Seen,
38
+ Component
39
+ ]> : TemplateContractError<`Component ${ComponentName<Component>} is missing from the template registry.`>;
40
+ type RootVisit<Component extends CraftComponent<any, any>, Registry extends readonly CraftComponent<any, any>[]> = VisitChildren<ReturnType<ComponentTemplateOf<Component>>, Registry, [
41
+ Component
42
+ ]>;
43
+ export type TemplateContractAssertions<Component extends CraftComponent<any, any>, Registry extends readonly CraftComponent<any, any>[]> = {
44
+ readonly component: Component;
45
+ readonly registry: Registry;
46
+ readonly valid: true;
47
+ };
48
+ /**
49
+ * Type-only template setup contract. It never creates an Angular fixture or
50
+ * touches the DOM; invalid child registrations resolve to a diagnostic type.
51
+ */
52
+ export type SetupTestComponentTemplate<Component extends CraftComponent<any, any>, Registry extends readonly CraftComponent<any, any>[] = []> = ContractResult<RootVisit<Component, Registry>> extends infer Result ? Result extends TemplateContractError<any> ? Result : TemplateContractAssertions<Component, Registry> : never;
53
+ type ElementMatching<Children, Tag extends string, Props> = Children extends ElementNodeBase<any, infer ActualTag, infer ActualProps> ? ActualTag extends Tag ? [Props] extends [never] ? true : ActualProps extends Props ? Props extends ActualProps ? true : false : false : false : never;
54
+ type FindElement<Children, Tag extends string, Props = never> = Children extends readonly (infer Child)[] ? FindElement<Child, Tag, Props> : Children extends ElementNodeBase<any, infer ActualTag, any> ? ActualTag extends Tag ? ElementMatching<Children, Tag, Props> : FindElement<Children['children'], Tag, Props> : Children extends CraftDirectiveNode<any> ? FindElement<Children['node'], Tag, Props> : Children extends ComponentNode<any, any, infer Component> ? FindElement<ReturnType<ComponentTemplateOf<Component>>, Tag, Props> : Children extends EachNode<any, any> ? FindElement<ReturnType<Children['itemTemplate']> | (Children['empty'] extends (...args: any[]) => infer Empty ? Empty : never), Tag, Props> : Children extends IfBlockNode<infer ConditionName, any, infer True, infer False> ? FindElement<True | False, Tag, Props> : Children extends DeferNode<infer Loaded> ? FindElement<Loaded extends CraftComponent<any, any> ? ReturnType<ComponentTemplateOf<Loaded>> : ReturnType<Children['resolve']>, Tag, Props> : false;
55
+ export type TemplateHasElement<Children extends CraftNodeChildren, Tag extends string> = FindElement<Children, Tag>;
56
+ /** Checks the exact tag and props of a matching element. */
57
+ export type TemplateHasElementWithProps<Children extends CraftNodeChildren, Tag extends string, Props extends object> = FindElement<Children, Tag, Props>;
58
+ type VisitProperty<Children, Tag extends string, Property extends string, Value> = Children extends readonly (infer Child)[] ? VisitProperty<Child, Tag, Property, Value> : Children extends ElementNodeBase<any, infer ActualTag, infer Props, infer Nested> ? ActualTag extends Tag ? Property extends keyof Props ? NonNullable<Props[Property]> extends Value ? true : false : false : VisitProperty<Nested, Tag, Property, Value> : Children extends CraftDirectiveNode<any> ? VisitProperty<Children['node'], Tag, Property, Value> : Children extends ComponentNode<any, any, infer Component> ? VisitProperty<ReturnType<ComponentTemplateOf<Component>>, Tag, Property, Value> : Children extends EachNode<any, any> ? VisitProperty<(ReturnType<Children['itemTemplate']> | (Children['empty'] extends (...args: any[]) => infer Empty ? Empty : never)) & CraftNodeChildren, Tag, Property, Value> : Children extends DeferNode<infer Loaded> ? VisitProperty<Loaded extends CraftComponent<any, any> ? ReturnType<ComponentTemplateOf<Loaded>> : ReturnType<Children['resolve']>, Tag, Property, Value> : false;
59
+ /** Checks the type of a static or dynamic property on an element. */
60
+ export type TemplateHasProperty<Children extends CraftNodeChildren, Tag extends string, Property extends string, Value> = VisitProperty<Children, Tag, Property, Value>;
61
+ /** Checks that an element property is driven by a no-argument generator. */
62
+ export type TemplateHasYieldableProperty<Children extends CraftNodeChildren, Tag extends string, Property extends string, Result> = TemplateHasProperty<Children, Tag, Property, Yieldable<[], Result, unknown>>;
63
+ type VisitContextUse<Children, Tag extends string, Property extends string, ContextMethod extends string> = Children extends readonly (infer Child)[] ? VisitContextUse<Child, Tag, Property, ContextMethod> : Children extends ElementNodeBase<any, infer ActualTag, infer Props, infer Nested> ? ActualTag extends Tag ? Property extends keyof Props ? NonNullable<Props[Property]> extends (...args: any[]) => Generator<infer Yielded, infer Returned, any> ? TemplateMethodUse<ContextMethod> extends Yielded | Returned ? true : Extract<Yielded | Returned, TemplateMethodUse<ContextMethod>> extends never ? false : true : false : false : VisitContextUse<Nested, Tag, Property, ContextMethod> : Children extends CraftDirectiveNode<any> ? VisitContextUse<Children['node'], Tag, Property, ContextMethod> : Children extends ComponentNode<any, any, infer Component> ? VisitContextUse<ReturnType<ComponentTemplateOf<Component>>, Tag, Property, ContextMethod> : Children extends EachNode<any, any> ? VisitContextUse<(ReturnType<Children['itemTemplate']> | (Children['empty'] extends (...args: any[]) => infer Empty ? Empty : never)) & CraftNodeChildren, Tag, Property, ContextMethod> : Children extends DeferNode<infer Loaded> ? VisitContextUse<Loaded extends CraftComponent<any, any> ? ReturnType<ComponentTemplateOf<Loaded>> : ReturnType<Children['resolve']>, Tag, Property, ContextMethod> : false;
64
+ /** Checks that a property callback delegates to a named template context member. */
65
+ export type TemplateDelegatesToContext<Children extends CraftNodeChildren, Tag extends string, Property extends string, ContextMethod extends string = Property> = VisitContextUse<Children, Tag, Property, ContextMethod>;
66
+ type EventHandlerOf<Props, EventName extends string> = EventName extends keyof Props ? Props[EventName] : `on${Capitalize<EventName>}` extends keyof Props ? Props[`on${Capitalize<EventName>}`] : never;
67
+ type VisitEvent<Children, Tag extends string, EventName extends string, Handler extends (...args: any[]) => any> = Children extends readonly (infer Child)[] ? VisitEvent<Child, Tag, EventName, Handler> : Children extends ElementNodeBase<any, infer ActualTag, infer Props> ? ActualTag extends Tag ? EventHandlerOf<Props, EventName> extends Handler ? Handler extends EventHandlerOf<Props, EventName> ? true : false : false : VisitEvent<Children['children'], Tag, EventName, Handler> : Children extends CraftDirectiveNode<any> ? VisitEvent<Children['node'], Tag, EventName, Handler> : Children extends ComponentNode<any, any, infer Component> ? VisitEvent<ReturnType<ComponentTemplateOf<Component>>, Tag, EventName, Handler> : false;
68
+ type VisitOutput<Children, Target extends CraftComponent<any, any>, Name extends keyof PropsOf<Target> & string, Handler extends (...args: any[]) => any> = Children extends readonly (infer Child)[] ? VisitOutput<Child, Target, Name, Handler> : Children extends ElementNodeBase<any, any, any, infer Nested> ? VisitOutput<Nested, Target, Name, Handler> : Children extends CraftDirectiveNode<any> ? VisitOutput<Children['node'], Target, Name, Handler> : Children extends ComponentNode<infer Props, any, infer Actual> ? [Actual] extends [Target] ? Name extends keyof Props ? Props[Name] extends Handler ? Handler extends Props[Name] ? true : false : false : false : VisitOutput<ReturnType<ComponentTemplateOf<Actual>>, Target, Name, Handler> : Children extends EachNode<any, any> ? VisitOutput<ReturnType<Children['itemTemplate']> | (Children['empty'] extends (...args: any[]) => infer Empty ? Empty : never), Target, Name, Handler> : Children extends DeferNode<infer Loaded> ? VisitOutput<Loaded extends CraftComponent<any, any> ? ReturnType<ComponentTemplateOf<Loaded>> : ReturnType<Children['resolve']>, Target, Name, Handler> : false;
69
+ /** Checks an event callback and therefore preserves its argument type. */
70
+ export type TemplateHasEvent<Children extends CraftNodeChildren, Tag extends string, EventName extends string, Handler extends (...args: any[]) => any> = VisitEvent<Children, Tag, EventName, Handler>;
71
+ /** Checks that a DOM event is a generator callback with the given arguments. */
72
+ export type TemplateHasYieldableEvent<Children extends CraftNodeChildren, Tag extends string, EventName extends string, Args extends unknown[]> = VisitYieldableEvent<Children, Tag, EventName, Args>;
73
+ /** Checks a branded Craft method used directly as a DOM event callback. */
74
+ export type TemplateHasYieldableMethodEvent<Children extends CraftNodeChildren, Tag extends string, EventName extends string, Args extends unknown[]> = TemplateHasEvent<Children, Tag, EventName, YieldableMethod<Args, any, any>>;
75
+ type VisitYieldableEvent<Children, Tag extends string, EventName extends string, Args extends unknown[]> = Children extends readonly (infer Child)[] ? VisitYieldableEvent<Child, Tag, EventName, Args> : Children extends ElementNodeBase<any, infer ActualTag, infer Props> ? ActualTag extends Tag ? EventHandlerOf<Props, EventName> extends (...args: infer ActualArgs) => Generator<any, any, any> ? ActualArgs extends Args ? Args extends ActualArgs ? true : false : false : false : VisitYieldableEvent<Children['children'], Tag, EventName, Args> : Children extends CraftDirectiveNode<any> ? VisitYieldableEvent<Children['node'], Tag, EventName, Args> : Children extends ComponentNode<any, any, infer Component> ? VisitYieldableEvent<ReturnType<ComponentTemplateOf<Component>>, Tag, EventName, Args> : false;
76
+ /** Checks an output callback passed to a concrete Craft child component. */
77
+ export type TemplateHasOutput<Children extends CraftNodeChildren, Component extends CraftComponent<any, any>, Name extends keyof PropsOf<Component> & string, Handler extends (...args: any[]) => any> = VisitOutput<Children, Component, Name, Handler>;
78
+ export type TemplateUsesComponent<Children extends CraftNodeChildren, Component extends CraftComponent<any, any>> = Children extends readonly (infer Child)[] ? TemplateUsesComponent<Child & CraftNodeChildren, Component> : Children extends ComponentNode<any, any, infer Actual> ? [Actual] extends [Component] ? true : TemplateUsesComponent<ReturnType<ComponentTemplateOf<Actual>>, Component> : Children extends ElementNodeBase<any, any, any, infer Nested> ? TemplateUsesComponent<Nested, Component> : Children extends CraftDirectiveNode<any> ? TemplateUsesComponent<Children['node'], Component> : Children extends EachNode<any, any> ? TemplateUsesComponent<(ReturnType<Children['itemTemplate']> | (Children['empty'] extends (...args: any[]) => infer Empty ? Empty : never)) & CraftNodeChildren, Component> : Children extends DeferNode<infer Loaded> ? Loaded extends CraftComponent<any, any> ? [Loaded] extends [Component] ? true : TemplateUsesComponent<ReturnType<ComponentTemplateOf<Loaded>>, Component> : TemplateUsesComponent<ReturnType<Children['resolve']>, Component> : false;
79
+ type VisibilityValue = boolean | 'nonEmpty' | 'empty';
80
+ type Visibility = Readonly<Record<string, VisibilityValue>>;
81
+ type VisibilityMatches<Actual extends Visibility, Expected extends Visibility> = keyof Expected extends never ? keyof Actual extends never ? true : false : {
82
+ [Key in keyof Expected]: Key extends keyof Actual ? Actual[Key] extends Expected[Key] ? Expected[Key] extends Actual[Key] ? never : false : false : false;
83
+ }[keyof Expected] extends never ? true : {
84
+ [Key in keyof Expected]: Key extends keyof Actual ? Actual[Key] extends Expected[Key] ? Expected[Key] extends Actual[Key] ? never : false : false : false;
85
+ }[keyof Expected];
86
+ type StateMarkerMatches<Value, StateName extends string> = Value extends NamedYieldableValue<infer ActualName extends string, any> ? ActualName extends StateName ? true : false : Value extends TemplateMethodUse<StateName> ? true : false;
87
+ type ValueUsesState<Value, StateName extends string> = IsAny<Value> extends true ? false : StateMarkerMatches<Value, StateName> extends true ? true : Value extends (...args: any[]) => Generator<infer Yielded, infer Returned, any> ? TemplateMethodUse<StateName> extends Yielded | Returned ? true : false : Value extends (...args: any[]) => infer Returned ? Returned extends TemplateMethodUse<StateName> ? true : false : Value extends readonly (infer Item)[] ? ValueUsesState<Item, StateName> : Value extends object ? true extends {
88
+ [Key in keyof Value]: ValueUsesState<Value[Key], StateName>;
89
+ }[keyof Value] ? true : false : false;
90
+ type RenderPropsUseState<Props, StateName extends string> = true extends {
91
+ [Key in keyof Props & string]: Key extends DomEventKey ? false : Key extends `on${Capitalize<DomEventKey>}` ? false : ValueUsesState<Props[Key], StateName>;
92
+ }[keyof Props & string] ? true : false;
93
+ type VisitRenderedState<Children, StateName extends string, Expected extends Visibility, Current extends Visibility = {}, Seen extends readonly unknown[] = [], Depth extends readonly unknown[] = []> = Depth['length'] extends 8 ? false : Children extends readonly (infer Child)[] ? VisitRenderedState<Child, StateName, Expected, Current, Seen, [
94
+ ...Depth,
95
+ unknown
96
+ ]> : Children extends ElementNodeBase<any, any, infer Props, infer Nested> ? (RenderPropsUseState<Props, StateName> extends true ? VisibilityMatches<Current, Expected> : false) | VisitRenderedState<Nested, StateName, Expected, Current, Seen, [
97
+ ...Depth,
98
+ unknown
99
+ ]> : Children extends CraftDirectiveNode<any> ? VisitRenderedState<Children['node'], StateName, Expected, Current, Seen, [
100
+ ...Depth,
101
+ unknown
102
+ ]> : Children extends ComponentNode<any, any, infer Component> ? Component extends Seen[number] ? false : VisitRenderedState<ReturnType<ComponentTemplateOf<Component>>, StateName, Expected, Current, [
103
+ ...Seen,
104
+ Component
105
+ ], [
106
+ ...Depth,
107
+ unknown
108
+ ]> : Children extends EachNode<any, any, any, infer SourceName, infer Item, infer Empty> ? VisitRenderedState<Item, StateName, Expected, Extract<SourceName, string> extends never ? Current : AddVisibility<Current, Extract<SourceName, string>, 'nonEmpty'>, Seen, [
109
+ ...Depth,
110
+ unknown
111
+ ]> | VisitRenderedState<Empty, StateName, Expected, Extract<SourceName, string> extends never ? Current : AddVisibility<Current, Extract<SourceName, string>, 'empty'>, Seen, [
112
+ ...Depth,
113
+ unknown
114
+ ]> : Children extends IfBlockNode<infer ConditionName, any, infer True, infer False> ? VisitRenderedState<True, StateName, Expected, AddVisibility<Current, ConditionName, true>, Seen, [
115
+ ...Depth,
116
+ unknown
117
+ ]> | VisitRenderedState<False, StateName, Expected, AddVisibility<Current, ConditionName, false>, Seen, [
118
+ ...Depth,
119
+ unknown
120
+ ]> : Children extends DeferNode<infer Loaded> ? VisitRenderedState<Loaded extends CraftComponent<any, any> ? ReturnType<ComponentTemplateOf<Loaded>> : ReturnType<Children['resolve']>, StateName, Expected, Current, Seen, [
121
+ ...Depth,
122
+ unknown
123
+ ]> : ValueUsesState<Children, StateName> extends true ? VisibilityMatches<Current, Expected> : false;
124
+ type RenderedStateResult<Result> = true extends Extract<Result, true> ? true : false;
125
+ /** Checks that a named reactive value is used by a rendered binding. */
126
+ export type TemplateRendersStateWhen<Children, StateName extends string, Conditions extends {
127
+ readonly when?: Visibility;
128
+ } = {}> = RenderedStateResult<VisitRenderedState<Children, StateName, Conditions extends {
129
+ readonly when: infer When extends Visibility;
130
+ } ? When : {}>>;
131
+ type ActionHandlerAvailable<Handler> = IsTemplateCallback<Handler>;
132
+ type ActionElementMatches<Props, LocalName, EventName extends string, ExpectedLocalName extends string> = LocalName extends ExpectedLocalName ? ExpectedLocalName extends LocalName ? EventHandlerOf<Props, EventName> extends infer Handler ? ActionHandlerAvailable<Handler> : false : false : false;
133
+ type VisitAvailableAction<Children, EventName extends string, LocalName extends string, Expected extends Visibility, Current extends Visibility = {}, Seen extends readonly unknown[] = [], Depth extends readonly unknown[] = []> = Depth['length'] extends 8 ? false : Children extends readonly (infer Child)[] ? VisitAvailableAction<Child, EventName, LocalName, Expected, Current, Seen, [
134
+ ...Depth,
135
+ unknown
136
+ ]> : Children extends ElementNodeBase<any, any, infer Props, infer Nested, infer ActualLocalName> ? (ActionElementMatches<Props, ActualLocalName, EventName, LocalName> extends true ? VisibilityMatches<Current, Expected> : false) | VisitAvailableAction<Nested, EventName, LocalName, Expected, Current, Seen, [
137
+ ...Depth,
138
+ unknown
139
+ ]> : Children extends CraftDirectiveNode<any> ? VisitAvailableAction<Children['node'], EventName, LocalName, Expected, Current, Seen, [
140
+ ...Depth,
141
+ unknown
142
+ ]> : Children extends ComponentNode<any, any, infer Component> ? Component extends Seen[number] ? false : VisitAvailableAction<ReturnType<ComponentTemplateOf<Component>>, EventName, LocalName, Expected, Current, [
143
+ ...Seen,
144
+ Component
145
+ ], [
146
+ ...Depth,
147
+ unknown
148
+ ]> : Children extends EachNode<any, any, any, infer SourceName, infer Item, infer Empty> ? VisitAvailableAction<Item, EventName, LocalName, Expected, Extract<SourceName, string> extends never ? Current : AddVisibility<Current, Extract<SourceName, string>, 'nonEmpty'>, Seen, [
149
+ ...Depth,
150
+ unknown
151
+ ]> | VisitAvailableAction<Empty, EventName, LocalName, Expected, Extract<SourceName, string> extends never ? Current : AddVisibility<Current, Extract<SourceName, string>, 'empty'>, Seen, [
152
+ ...Depth,
153
+ unknown
154
+ ]> : Children extends IfBlockNode<infer ConditionName, any, infer True, infer False> ? VisitAvailableAction<True, EventName, LocalName, Expected, AddVisibility<Current, ConditionName, true>, Seen, [
155
+ ...Depth,
156
+ unknown
157
+ ]> | VisitAvailableAction<False, EventName, LocalName, Expected, AddVisibility<Current, ConditionName, false>, Seen, [
158
+ ...Depth,
159
+ unknown
160
+ ]> : Children extends DeferNode<infer Loaded> ? VisitAvailableAction<Loaded extends CraftComponent<any, any> ? ReturnType<ComponentTemplateOf<Loaded>> : ReturnType<Children['resolve']>, EventName, LocalName, Expected, Current, Seen, [
161
+ ...Depth,
162
+ unknown
163
+ ]> : false;
164
+ type AvailableActionResult<Result> = true extends Extract<Result, true> ? true : false;
165
+ /** Checks an event action on a named element and its visibility path. */
166
+ export type TemplateRenderAvailableActionWhen<Children, ActionKey extends `${string}:${string}`, Conditions extends {
167
+ readonly when?: Visibility;
168
+ } = {}> = ActionKey extends `${infer EventName}:${infer LocalName}` ? AvailableActionResult<VisitAvailableAction<Children, EventName, LocalName, Conditions extends {
169
+ readonly when: infer When extends Visibility;
170
+ } ? When : {}>> : false;
171
+ type AddVisibility<Current extends Visibility, Key extends string, Value extends VisibilityValue> = Current & {
172
+ readonly [K in Key]: Value;
173
+ };
174
+ type NamedElementMatches<Owner extends string, Identity extends string, Tag extends string, LocalName> = LocalName extends string ? Identity extends `${infer IdentityOwner}:${infer IdentityTag}:${infer IdentityLocal}` ? ([
175
+ Owner
176
+ ] extends [never] ? true : Owner extends IdentityOwner ? true : false) extends true ? [Tag, LocalName] extends [IdentityTag, IdentityLocal] ? true : false : false : false : false;
177
+ type LiteralString<Value> = Value extends string ? string extends Value ? never : Value : never;
178
+ type NamedElementIdentity<Owner extends string, Tag extends string, LocalName extends string> = string extends Owner ? `${string}:${Tag}:${LocalName}` : [Owner] extends [never] ? `${string}:${Tag}:${LocalName}` : `${Owner}:${Tag}:${LocalName}`;
179
+ type VisitNamedElementIdentities<Children, Owner extends string = never, Seen extends readonly unknown[] = [], Depth extends readonly unknown[] = []> = Depth['length'] extends 8 ? never : IsAny<Children> extends true ? never : Children extends readonly (infer Child)[] ? VisitNamedElementIdentities<Child, Owner, Seen, [...Depth, unknown]> : Children extends ElementNodeBase<any, infer Tag extends string, any, infer Nested, infer LocalName> ? LiteralString<Extract<LocalName, string>> extends infer Name extends string ? NamedElementIdentity<Owner, Tag, Name> | VisitNamedElementIdentities<Nested, Owner, Seen, [
180
+ ...Depth,
181
+ unknown
182
+ ]> : VisitNamedElementIdentities<Nested, Owner, Seen, [
183
+ ...Depth,
184
+ unknown
185
+ ]> : Children extends CraftDirectiveNode<any> ? VisitNamedElementIdentities<Children['node'], Owner, Seen, [
186
+ ...Depth,
187
+ unknown
188
+ ]> : Children extends ComponentNode<any, any, infer Component> ? IsAny<Component> extends true ? never : Component extends Seen[number] ? never : VisitNamedElementIdentities<ReturnType<ComponentTemplateOf<Component>>, ComponentName<Component>, [
189
+ ...Seen,
190
+ Component
191
+ ], [
192
+ ...Depth,
193
+ unknown
194
+ ]> : Children extends EachNode<any, any, any, any, infer Item, infer Empty> ? VisitNamedElementIdentities<Item | Empty, Owner, Seen, [
195
+ ...Depth,
196
+ unknown
197
+ ]> : Children extends IfBlockNode<any, any, infer True, infer False> ? VisitNamedElementIdentities<True | False, Owner, Seen, [
198
+ ...Depth,
199
+ unknown
200
+ ]> : Children extends DeferNode<infer Loaded> ? VisitNamedElementIdentities<Loaded extends CraftComponent<any, any> ? ReturnType<ComponentTemplateOf<Loaded>> : ReturnType<Children['resolve']>, Owner, Seen, [
201
+ ...Depth,
202
+ unknown
203
+ ]> : never;
204
+ type TemplateContractOutput<Template> = Template extends (...args: any[]) => infer Output ? Output : Template;
205
+ type TemplateContractOwner<Template> = Template extends (...args: any[]) => any ? ComponentTemplateNameOf<Template> extends infer Name extends string ? string extends Name ? never : Name : never : never;
206
+ /** Named element identities available for a template, for editor completion. */
207
+ export type TemplateNamedElementIdentity<Template> = VisitNamedElementIdentities<TemplateContractOutput<Template>, TemplateContractOwner<Template>>;
208
+ type TemplateContextOf<Template> = Template extends (context: infer Context, ...args: any[]) => any ? Context : never;
209
+ type TemplateContextPathKeys<Value> = Exclude<keyof Value, keyof ((...args: never[]) => unknown) | symbol | number> & string;
210
+ type TemplateContextPaths<Value, Prefix extends string = '', Depth extends readonly unknown[] = []> = Depth['length'] extends 8 ? never : Prefix | (Value extends readonly unknown[] ? never : Value extends object ? {
211
+ [Key in TemplateContextPathKeys<Value>]: TemplateContextPaths<Value[Key], Prefix extends '' ? Key : `${Prefix}.${Key}`, [
212
+ ...Depth,
213
+ unknown
214
+ ]>;
215
+ }[TemplateContextPathKeys<Value>] : never);
216
+ /** Context paths available for a template callback, with editor completion. */
217
+ export type TemplateContextMethodOf<Template> = Extract<TemplateContextPaths<TemplateContextOf<Template>>, string>;
218
+ type NamedElementPropsOf<Children, Identity extends string, Owner extends string = never, Seen extends readonly unknown[] = [], Depth extends readonly unknown[] = []> = Depth['length'] extends 8 ? never : IsAny<Children> extends true ? never : Children extends readonly (infer Child)[] ? NamedElementPropsOf<Child, Identity, Owner, Seen, [...Depth, unknown]> : Children extends ElementNodeBase<any, infer Tag, infer Props, infer Nested, infer LocalName> ? NamedElementMatches<Owner, Identity, Tag, Extract<LocalName, string>> extends true ? Props : NamedElementPropsOf<Nested, Identity, Owner, Seen, [
219
+ ...Depth,
220
+ unknown
221
+ ]> : Children extends CraftDirectiveNode<any> ? NamedElementPropsOf<Children['node'], Identity, Owner, Seen, [
222
+ ...Depth,
223
+ unknown
224
+ ]> : Children extends ComponentNode<any, any, infer Component> ? Component extends Seen[number] ? never : NamedElementPropsOf<ReturnType<ComponentTemplateOf<Component>>, Identity, ComponentName<Component>, [
225
+ ...Seen,
226
+ Component
227
+ ], [
228
+ ...Depth,
229
+ unknown
230
+ ]> : Children extends EachNode<any, any, any, any, infer Item, infer Empty> ? NamedElementPropsOf<Item | Empty, Identity, Owner, Seen, [
231
+ ...Depth,
232
+ unknown
233
+ ]> : Children extends IfBlockNode<any, any, infer True, infer False> ? NamedElementPropsOf<True | False, Identity, Owner, Seen, [
234
+ ...Depth,
235
+ unknown
236
+ ]> : Children extends DeferNode<infer Loaded> ? NamedElementPropsOf<Loaded extends CraftComponent<any, any> ? ReturnType<ComponentTemplateOf<Loaded>> : ReturnType<Children['resolve']>, Identity, Owner, Seen, [
237
+ ...Depth,
238
+ unknown
239
+ ]> : never;
240
+ /** Properties declared on a named element, with editor completion. */
241
+ export type TemplateNamedElementProperty<Template, Identity extends TemplateNamedElementIdentity<Template>> = Extract<keyof NamedElementPropsOf<TemplateContractOutput<Template>, Identity, TemplateContractOwner<Template>>, string>;
242
+ type TemplateContextUseResult<Result> = true extends Extract<Result, true> ? true : false;
243
+ type HandlerDelegatesToContext<Handler, ContextMethod extends string> = Handler extends (...args: any[]) => Generator<infer Yielded, infer Returned, any> ? TemplateMethodUse<ContextMethod> extends Yielded | Returned ? true : false : false;
244
+ type NamedElementDelegatesToContextOf<Children, Identity extends string, Property extends string, ContextMethod extends string, Owner extends string = never, Seen extends readonly unknown[] = [], Depth extends readonly unknown[] = []> = Depth['length'] extends 8 ? false : Children extends readonly (infer Child)[] ? NamedElementDelegatesToContextOf<Child, Identity, Property, ContextMethod, Owner, Seen, [
245
+ ...Depth,
246
+ unknown
247
+ ]> : Children extends ElementNodeBase<any, infer Tag, infer Props, infer Nested, infer LocalName> ? (NamedElementMatches<Owner, Identity, Tag, Extract<LocalName, string>> extends true ? Property extends keyof Props ? HandlerDelegatesToContext<Props[Property], ContextMethod> : false : false) | NamedElementDelegatesToContextOf<Nested, Identity, Property, ContextMethod, Owner, Seen, [
248
+ ...Depth,
249
+ unknown
250
+ ]> : Children extends CraftDirectiveNode<any> ? NamedElementDelegatesToContextOf<Children['node'], Identity, Property, ContextMethod, Owner, Seen, [
251
+ ...Depth,
252
+ unknown
253
+ ]> : Children extends ComponentNode<any, any, infer Component> ? Component extends Seen[number] ? false : NamedElementDelegatesToContextOf<ReturnType<ComponentTemplateOf<Component>>, Identity, Property, ContextMethod, ComponentName<Component>, [
254
+ ...Seen,
255
+ Component
256
+ ], [
257
+ ...Depth,
258
+ unknown
259
+ ]> : Children extends EachNode<any, any, any, any, infer Item, infer Empty> ? NamedElementDelegatesToContextOf<Item | Empty, Identity, Property, ContextMethod, Owner, Seen, [
260
+ ...Depth,
261
+ unknown
262
+ ]> : Children extends IfBlockNode<any, any, infer True, infer False> ? NamedElementDelegatesToContextOf<True | False, Identity, Property, ContextMethod, Owner, Seen, [
263
+ ...Depth,
264
+ unknown
265
+ ]> : Children extends DeferNode<infer Loaded> ? NamedElementDelegatesToContextOf<Loaded extends CraftComponent<any, any> ? ReturnType<ComponentTemplateOf<Loaded>> : ReturnType<Children['resolve']>, Identity, Property, ContextMethod, Owner, Seen, [
266
+ ...Depth,
267
+ unknown
268
+ ]> : false;
269
+ /** Checks that a named element property delegates to a context method. */
270
+ export type TemplateNamedElementDelegatesToContext<Template, Identity extends TemplateNamedElementIdentity<Template>, Property extends TemplateNamedElementProperty<Template, Identity>, ContextMethod extends TemplateContextMethodOf<Template>> = TemplateContextUseResult<NamedElementDelegatesToContextOf<TemplateContractOutput<Template>, Identity, Property, ContextMethod, TemplateContractOwner<Template>>>;
271
+ type NamedElementRendersStateWhenOf<Children, Identity extends string, Property extends string, StateName extends string, Expected extends Visibility, Owner extends string = never, Current extends Visibility = {}, Seen extends readonly unknown[] = [], Depth extends readonly unknown[] = []> = Depth['length'] extends 8 ? false : Children extends readonly (infer Child)[] ? NamedElementRendersStateWhenOf<Child, Identity, Property, StateName, Expected, Owner, Current, Seen, [
272
+ ...Depth,
273
+ unknown
274
+ ]> : Children extends ElementNodeBase<any, infer Tag, infer Props, infer Nested, infer LocalName> ? (NamedElementMatches<Owner, Identity, Tag, Extract<LocalName, string>> extends true ? Property extends keyof Props ? ValueUsesState<Props[Property], StateName> extends true ? VisibilityMatches<Current, Expected> : false : false : false) | NamedElementRendersStateWhenOf<Nested, Identity, Property, StateName, Expected, Owner, Current, Seen, [
275
+ ...Depth,
276
+ unknown
277
+ ]> : Children extends CraftDirectiveNode<any> ? NamedElementRendersStateWhenOf<Children['node'], Identity, Property, StateName, Expected, Owner, Current, Seen, [
278
+ ...Depth,
279
+ unknown
280
+ ]> : Children extends ComponentNode<any, any, infer Component> ? Component extends Seen[number] ? false : NamedElementRendersStateWhenOf<ReturnType<ComponentTemplateOf<Component>>, Identity, Property, StateName, Expected, ComponentName<Component>, Current, [
281
+ ...Seen,
282
+ Component
283
+ ], [
284
+ ...Depth,
285
+ unknown
286
+ ]> : Children extends EachNode<any, any, any, infer SourceName, infer Item, infer Empty> ? NamedElementRendersStateWhenOf<Item, Identity, Property, StateName, Expected, Owner, Extract<SourceName, string> extends never ? Current : AddVisibility<Current, Extract<SourceName, string>, 'nonEmpty'>, Seen, [
287
+ ...Depth,
288
+ unknown
289
+ ]> | NamedElementRendersStateWhenOf<Empty, Identity, Property, StateName, Expected, Owner, Extract<SourceName, string> extends never ? Current : AddVisibility<Current, Extract<SourceName, string>, 'empty'>, Seen, [
290
+ ...Depth,
291
+ unknown
292
+ ]> : Children extends IfBlockNode<infer ConditionName, any, infer True, infer False> ? NamedElementRendersStateWhenOf<True, Identity, Property, StateName, Expected, Owner, AddVisibility<Current, ConditionName, true>, Seen, [
293
+ ...Depth,
294
+ unknown
295
+ ]> | NamedElementRendersStateWhenOf<False, Identity, Property, StateName, Expected, Owner, AddVisibility<Current, ConditionName, false>, Seen, [
296
+ ...Depth,
297
+ unknown
298
+ ]> : Children extends DeferNode<infer Loaded> ? NamedElementRendersStateWhenOf<Loaded extends CraftComponent<any, any> ? ReturnType<ComponentTemplateOf<Loaded>> : ReturnType<Children['resolve']>, Identity, Property, StateName, Expected, Owner, Current, Seen, [
299
+ ...Depth,
300
+ unknown
301
+ ]> : false;
302
+ /** Checks that a named element property is driven by a context state. */
303
+ export type TemplateNamedElementRendersStateWhen<Template, Identity extends TemplateNamedElementIdentity<Template>, Property extends TemplateNamedElementProperty<Template, Identity>, StateName extends TemplateContextMethodOf<Template>, Conditions extends {
304
+ readonly when?: Visibility;
305
+ } = {}> = TemplateContextUseResult<NamedElementRendersStateWhenOf<TemplateContractOutput<Template>, Identity, Property, StateName, Conditions extends {
306
+ readonly when: infer When extends Visibility;
307
+ } ? When : {}, TemplateContractOwner<Template>>>;
308
+ type VisitNamedElement<Children, Identity extends string, Expected extends Visibility, Owner extends string = never, Current extends Visibility = {}, Seen extends readonly unknown[] = [], Depth extends readonly unknown[] = []> = Depth['length'] extends 8 ? false : Children extends readonly (infer Child)[] ? VisitNamedElement<Child, Identity, Expected, Owner, Current, Seen, [
309
+ ...Depth,
310
+ unknown
311
+ ]> : Children extends ElementNodeBase<any, infer Tag, any, infer Nested, infer LocalName> ? (NamedElementMatches<Owner, Identity, Tag, Extract<LocalName, string>> extends true ? VisibilityMatches<Current, Expected> : false) | VisitNamedElement<Nested, Identity, Expected, Owner, Current, Seen, [
312
+ ...Depth,
313
+ unknown
314
+ ]> : Children extends CraftDirectiveNode<any> ? VisitNamedElement<Children['node'], Identity, Expected, Owner, Current, Seen, [
315
+ ...Depth,
316
+ unknown
317
+ ]> : Children extends ComponentNode<any, any, infer Component> ? Component extends Seen[number] ? false : VisitNamedElement<ReturnType<ComponentTemplateOf<Component>>, Identity, Expected, ComponentName<Component>, Current, [
318
+ ...Seen,
319
+ Component
320
+ ], [
321
+ ...Depth,
322
+ unknown
323
+ ]> : Children extends EachNode<any, any, any, infer SourceName, infer Item, infer Empty> ? VisitNamedElement<Item, Identity, Expected, Owner, Extract<SourceName, string> extends never ? Current : AddVisibility<Current, Extract<SourceName, string>, 'nonEmpty'>, Seen, [
324
+ ...Depth,
325
+ unknown
326
+ ]> | VisitNamedElement<Empty, Identity, Expected, Owner, Extract<SourceName, string> extends never ? Current : AddVisibility<Current, Extract<SourceName, string>, 'empty'>, Seen, [
327
+ ...Depth,
328
+ unknown
329
+ ]> : Children extends IfBlockNode<infer ConditionName, any, infer True, infer False> ? VisitNamedElement<True, Identity, Expected, Owner, AddVisibility<Current, ConditionName, true>, Seen, [
330
+ ...Depth,
331
+ unknown
332
+ ]> | VisitNamedElement<False, Identity, Expected, Owner, AddVisibility<Current, ConditionName, false>, Seen, [
333
+ ...Depth,
334
+ unknown
335
+ ]> : Children extends DeferNode<infer Loaded> ? VisitNamedElement<Loaded extends CraftComponent<any, any> ? ReturnType<ComponentTemplateOf<Loaded>> : ReturnType<Children['resolve']>, Identity, Expected, Owner, Current, Seen, [
336
+ ...Depth,
337
+ unknown
338
+ ]> : false;
339
+ type NamedElementResult<Result> = true extends Extract<Result, true> ? true : Extract<Result, TemplateContractError<string>> extends never ? false : Extract<Result, TemplateContractError<string>>;
340
+ /** Checks a named element and the visibility path that renders it. */
341
+ export type TemplateRendersNamedElementWhen<Children, Identity extends TemplateNamedElementIdentity<Children>, Conditions extends {
342
+ readonly when?: Visibility;
343
+ } = {}> = NamedElementResult<VisitNamedElement<TemplateContractOutput<Children>, Identity, Conditions extends {
344
+ readonly when: infer When extends Visibility;
345
+ } ? When : {}, TemplateContractOwner<Children>>>;
346
+ export {};
347
+ //# sourceMappingURL=template-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-contract.d.ts","sourceRoot":"","sources":["../../../../../libs/component/src/lib/template-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=template-contract.js.map