@alloy-js/core 0.23.0-dev.12 → 0.23.0-dev.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api-extractor.json +1 -8
- package/api-extractor.testing.json +19 -0
- package/dist/dev/src/binder.js +108 -1
- package/dist/dev/src/binder.js.map +1 -1
- package/dist/dev/src/components/Block.js +17 -5
- package/dist/dev/src/components/Block.js.map +1 -1
- package/dist/dev/src/components/List.js +1 -1
- package/dist/dev/src/components/List.js.map +1 -1
- package/dist/dev/src/components/MemberDeclaration.js +6 -6
- package/dist/dev/src/components/MemberName.js +7 -0
- package/dist/dev/src/components/MemberName.js.map +1 -1
- package/dist/dev/src/components/MemberScope.js +7 -2
- package/dist/dev/src/components/MemberScope.js.map +1 -1
- package/dist/dev/src/components/Output.js +4 -4
- package/dist/dev/src/components/Output.js.map +1 -1
- package/dist/dev/src/components/Scope.js +7 -1
- package/dist/dev/src/components/Scope.js.map +1 -1
- package/dist/dev/src/components/SourceFile.js +3 -3
- package/dist/dev/src/components/SourceFile.js.map +1 -1
- package/dist/dev/src/context/binder.js +5 -0
- package/dist/dev/src/context/binder.js.map +1 -1
- package/dist/dev/src/context/format-options.js +14 -1
- package/dist/dev/src/context/format-options.js.map +1 -1
- package/dist/dev/src/context/scope.js +5 -0
- package/dist/dev/src/context/scope.js.map +1 -1
- package/dist/dev/src/context/source-directory.js +9 -0
- package/dist/dev/src/context/source-directory.js.map +1 -1
- package/dist/dev/src/debug/cli.js +3 -2
- package/dist/dev/src/debug/cli.js.map +1 -1
- package/dist/dev/src/debug/source-map.browser.js +24 -0
- package/dist/dev/src/debug/source-map.browser.js.map +1 -0
- package/dist/dev/src/debug/trace.js +7 -6
- package/dist/dev/src/debug/trace.js.map +1 -1
- package/dist/dev/src/host/node-host.browser.js +21 -0
- package/dist/dev/src/host/node-host.browser.js.map +1 -0
- package/dist/dev/src/host/node-host.js +20 -0
- package/dist/dev/src/host/node-host.js.map +1 -0
- package/dist/dev/src/library-symbol-reference.js +54 -0
- package/dist/dev/src/library-symbol-reference.js.map +1 -1
- package/dist/dev/src/name-policy.js +27 -0
- package/dist/dev/src/name-policy.js.map +1 -1
- package/dist/dev/src/reactivity.js +16 -0
- package/dist/dev/src/reactivity.js.map +1 -1
- package/dist/dev/src/render-stack.js +4 -3
- package/dist/dev/src/render-stack.js.map +1 -1
- package/dist/dev/src/render.js.map +1 -1
- package/dist/dev/src/symbols/output-scope.js +34 -1
- package/dist/dev/src/symbols/output-scope.js.map +1 -1
- package/dist/dev/src/symbols/output-space.js +15 -0
- package/dist/dev/src/symbols/output-space.js.map +1 -1
- package/dist/dev/src/symbols/output-symbol.js +81 -11
- package/dist/dev/src/symbols/output-symbol.js.map +1 -1
- package/dist/dev/src/symbols/symbol-slot.js +7 -0
- package/dist/dev/src/symbols/symbol-slot.js.map +1 -1
- package/dist/dev/src/symbols/symbol-slot.test.js +27 -2
- package/dist/dev/src/symbols/symbol-slot.test.js.map +1 -1
- package/dist/dev/src/write-output.js +6 -5
- package/dist/dev/src/write-output.js.map +1 -1
- package/dist/dev/test/browser-build.test.js +67 -68
- package/dist/dev/test/browser-build.test.js.map +1 -1
- package/dist/dev/testing/create-test-wrapper.js +59 -5
- package/dist/dev/testing/create-test-wrapper.js.map +1 -1
- package/dist/dev/testing/extend-expect.js +20 -0
- package/dist/dev/testing/extend-expect.js.map +1 -1
- package/dist/dev/testing/index.js +1 -1
- package/dist/dev/testing/index.js.map +1 -1
- package/dist/dev/testing/render.js +11 -0
- package/dist/dev/testing/render.js.map +1 -1
- package/dist/src/binder.d.ts +107 -3
- package/dist/src/binder.d.ts.map +1 -1
- package/dist/src/binder.js +108 -1
- package/dist/src/binder.js.map +1 -1
- package/dist/src/components/Block.d.ts +12 -0
- package/dist/src/components/Block.d.ts.map +1 -1
- package/dist/src/components/Block.js +12 -0
- package/dist/src/components/Block.js.map +1 -1
- package/dist/src/components/List.d.ts +11 -1
- package/dist/src/components/List.d.ts.map +1 -1
- package/dist/src/components/List.js.map +1 -1
- package/dist/src/components/MemberDeclaration.d.ts +6 -6
- package/dist/src/components/MemberDeclaration.js +6 -6
- package/dist/src/components/MemberName.d.ts +6 -0
- package/dist/src/components/MemberName.d.ts.map +1 -1
- package/dist/src/components/MemberName.js +7 -0
- package/dist/src/components/MemberName.js.map +1 -1
- package/dist/src/components/MemberScope.d.ts +5 -0
- package/dist/src/components/MemberScope.d.ts.map +1 -1
- package/dist/src/components/MemberScope.js +5 -0
- package/dist/src/components/MemberScope.js.map +1 -1
- package/dist/src/components/Output.d.ts +4 -2
- package/dist/src/components/Output.d.ts.map +1 -1
- package/dist/src/components/Output.js.map +1 -1
- package/dist/src/components/Scope.d.ts +6 -0
- package/dist/src/components/Scope.d.ts.map +1 -1
- package/dist/src/components/Scope.js +6 -0
- package/dist/src/components/Scope.js.map +1 -1
- package/dist/src/components/SourceFile.d.ts +22 -2
- package/dist/src/components/SourceFile.d.ts.map +1 -1
- package/dist/src/components/SourceFile.js.map +1 -1
- package/dist/src/context/binder.d.ts +4 -0
- package/dist/src/context/binder.d.ts.map +1 -1
- package/dist/src/context/binder.js +5 -0
- package/dist/src/context/binder.js.map +1 -1
- package/dist/src/context/format-options.d.ts +14 -1
- package/dist/src/context/format-options.d.ts.map +1 -1
- package/dist/src/context/format-options.js +14 -1
- package/dist/src/context/format-options.js.map +1 -1
- package/dist/src/context/scope.d.ts +4 -0
- package/dist/src/context/scope.d.ts.map +1 -1
- package/dist/src/context/scope.js +5 -0
- package/dist/src/context/scope.js.map +1 -1
- package/dist/src/context/source-directory.d.ts +9 -0
- package/dist/src/context/source-directory.d.ts.map +1 -1
- package/dist/src/context/source-directory.js +9 -0
- package/dist/src/context/source-directory.js.map +1 -1
- package/dist/src/debug/cli.d.ts.map +1 -1
- package/dist/src/debug/cli.js +3 -2
- package/dist/src/debug/cli.js.map +1 -1
- package/dist/src/debug/source-map.browser.d.ts +16 -0
- package/dist/src/debug/source-map.browser.d.ts.map +1 -0
- package/dist/src/debug/source-map.browser.js +24 -0
- package/dist/src/debug/source-map.browser.js.map +1 -0
- package/dist/src/debug/trace.d.ts.map +1 -1
- package/dist/src/debug/trace.js +7 -6
- package/dist/src/debug/trace.js.map +1 -1
- package/dist/src/host/node-host.browser.d.ts +11 -0
- package/dist/src/host/node-host.browser.d.ts.map +1 -0
- package/dist/src/host/node-host.browser.js +21 -0
- package/dist/src/host/node-host.browser.js.map +1 -0
- package/dist/src/host/node-host.d.ts +11 -0
- package/dist/src/host/node-host.d.ts.map +1 -0
- package/dist/src/host/node-host.js +20 -0
- package/dist/src/host/node-host.js.map +1 -0
- package/dist/src/library-symbol-reference.d.ts +52 -0
- package/dist/src/library-symbol-reference.d.ts.map +1 -1
- package/dist/src/library-symbol-reference.js +54 -0
- package/dist/src/library-symbol-reference.js.map +1 -1
- package/dist/src/name-policy.d.ts +30 -3
- package/dist/src/name-policy.d.ts.map +1 -1
- package/dist/src/name-policy.js +27 -0
- package/dist/src/name-policy.js.map +1 -1
- package/dist/src/reactivity.d.ts +15 -0
- package/dist/src/reactivity.d.ts.map +1 -1
- package/dist/src/reactivity.js +16 -0
- package/dist/src/reactivity.js.map +1 -1
- package/dist/src/render-stack.d.ts.map +1 -1
- package/dist/src/render-stack.js +4 -3
- package/dist/src/render-stack.js.map +1 -1
- package/dist/src/render.d.ts +2 -0
- package/dist/src/render.d.ts.map +1 -1
- package/dist/src/render.js.map +1 -1
- package/dist/src/symbols/output-scope.d.ts +33 -1
- package/dist/src/symbols/output-scope.d.ts.map +1 -1
- package/dist/src/symbols/output-scope.js +34 -1
- package/dist/src/symbols/output-scope.js.map +1 -1
- package/dist/src/symbols/output-space.d.ts +12 -0
- package/dist/src/symbols/output-space.d.ts.map +1 -1
- package/dist/src/symbols/output-space.js +15 -0
- package/dist/src/symbols/output-space.js.map +1 -1
- package/dist/src/symbols/output-symbol.d.ts +93 -12
- package/dist/src/symbols/output-symbol.d.ts.map +1 -1
- package/dist/src/symbols/output-symbol.js +81 -11
- package/dist/src/symbols/output-symbol.js.map +1 -1
- package/dist/src/symbols/symbol-slot.d.ts.map +1 -1
- package/dist/src/symbols/symbol-slot.js +7 -0
- package/dist/src/symbols/symbol-slot.js.map +1 -1
- package/dist/src/symbols/symbol-slot.test.js +18 -1
- package/dist/src/symbols/symbol-slot.test.js.map +1 -1
- package/dist/src/write-output.d.ts.map +1 -1
- package/dist/src/write-output.js +6 -5
- package/dist/src/write-output.js.map +1 -1
- package/dist/test/browser-build.test.js +67 -68
- package/dist/test/browser-build.test.js.map +1 -1
- package/dist/testing/create-test-wrapper.d.ts +75 -2
- package/dist/testing/create-test-wrapper.d.ts.map +1 -1
- package/dist/testing/create-test-wrapper.js +55 -1
- package/dist/testing/create-test-wrapper.js.map +1 -1
- package/dist/testing/extend-expect.d.ts +26 -0
- package/dist/testing/extend-expect.d.ts.map +1 -1
- package/dist/testing/extend-expect.js +20 -0
- package/dist/testing/extend-expect.js.map +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/render.d.ts +9 -0
- package/dist/testing/render.d.ts.map +1 -1
- package/dist/testing/render.js +11 -0
- package/dist/testing/render.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/api/components/AppendRegion.md +83 -0
- package/docs/api/components/Block.md +49 -0
- package/docs/api/components/CopyFile.md +26 -0
- package/docs/api/components/Declaration.md +85 -0
- package/docs/api/components/For.md +91 -0
- package/docs/api/components/Indent.md +40 -0
- package/docs/api/components/List.md +68 -0
- package/docs/api/components/MemberDeclaration.md +89 -0
- package/docs/api/components/MemberName.md +21 -0
- package/docs/api/components/MemberScope.md +81 -0
- package/docs/api/components/Name.md +19 -0
- package/docs/api/components/Output.md +62 -0
- package/docs/api/components/Prose.md +29 -0
- package/docs/api/components/ReferenceOrContent.md +28 -0
- package/docs/api/components/Scope.md +83 -0
- package/docs/api/components/Show.md +32 -0
- package/docs/api/components/SourceDirectory.md +28 -0
- package/docs/api/components/SourceFile.md +60 -0
- package/docs/api/components/StatementList.md +29 -0
- package/docs/api/components/Switch.md +42 -0
- package/docs/api/components/TemplateFile.md +71 -0
- package/docs/api/components/TemplateVariable.md +57 -0
- package/docs/api/components/UpdateFile.md +56 -0
- package/docs/api/components/Wrap.md +40 -0
- package/docs/api/components/createAccessExpression.md +55 -0
- package/docs/api/components/index.md +27 -0
- package/docs/api/contexts/Assignment-context.md +43 -0
- package/docs/api/contexts/Binder-context.md +22 -0
- package/docs/api/contexts/Declaration-context.md +15 -0
- package/docs/api/contexts/Member-context.md +17 -0
- package/docs/api/contexts/MemberDeclaration-context.md +24 -0
- package/docs/api/contexts/NamePolicy-context.md +18 -0
- package/docs/api/contexts/Scope-context.md +20 -0
- package/docs/api/contexts/SourceDirectory-context.md +26 -0
- package/docs/api/contexts/SourceFile-context.md +19 -0
- package/docs/api/contexts/index.md +11 -0
- package/docs/api/functions/attachDiagnosticsCollector.md +18 -0
- package/docs/api/functions/baseListPropsToMapJoinArgs.md +20 -0
- package/docs/api/functions/children.md +27 -0
- package/docs/api/functions/childrenArray.md +25 -0
- package/docs/api/functions/code.md +25 -0
- package/docs/api/functions/computed.md +18 -0
- package/docs/api/functions/createComponent.md +20 -0
- package/docs/api/functions/createContentSlot.md +33 -0
- package/docs/api/functions/createContext.md +19 -0
- package/docs/api/functions/createCustomContext.md +18 -0
- package/docs/api/functions/createDeclarationTap.md +20 -0
- package/docs/api/functions/createFileResource.md +35 -0
- package/docs/api/functions/createFormatOptionsContextFor.md +28 -0
- package/docs/api/functions/createIntrinsic.md +19 -0
- package/docs/api/functions/createMemberTap.md +20 -0
- package/docs/api/functions/createNamePolicy.md +37 -0
- package/docs/api/functions/createNamedContext.md +19 -0
- package/docs/api/functions/createOutputBinder.md +24 -0
- package/docs/api/functions/createRenderTreeHook.md +19 -0
- package/docs/api/functions/createResource.md +77 -0
- package/docs/api/functions/createScope.md +35 -0
- package/docs/api/functions/createScopeTap.md +20 -0
- package/docs/api/functions/createSourceFileTap.md +20 -0
- package/docs/api/functions/createSymbol.md +25 -0
- package/docs/api/functions/createSymbolSlot.md +19 -0
- package/docs/api/functions/createTap.md +55 -0
- package/docs/api/functions/decl.md +20 -0
- package/docs/api/functions/defaultProps.md +21 -0
- package/docs/api/functions/effect.md +26 -0
- package/docs/api/functions/emitDiagnostic.md +18 -0
- package/docs/api/functions/emitSymbol.md +18 -0
- package/docs/api/functions/ensureIsEmpty.md +20 -0
- package/docs/api/functions/findCurrentEffectId.md +19 -0
- package/docs/api/functions/findKeyedChild.md +19 -0
- package/docs/api/functions/findKeyedChildren.md +19 -0
- package/docs/api/functions/findUnkeyedChildren.md +18 -0
- package/docs/api/functions/formatReactivePropertyLabel.md +21 -0
- package/docs/api/functions/getAssignmentSymbol.md +19 -0
- package/docs/api/functions/getContext.md +17 -0
- package/docs/api/functions/getContextForRenderNode.md +18 -0
- package/docs/api/functions/getDiagnosticsForTree.md +18 -0
- package/docs/api/functions/getEffectDebugId.md +18 -0
- package/docs/api/functions/getElementCache.md +17 -0
- package/docs/api/functions/getReactiveCreationLocation.md +18 -0
- package/docs/api/functions/getSymbolCreator.md +18 -0
- package/docs/api/functions/getSymbolCreatorSymbol.md +17 -0
- package/docs/api/functions/index.md +105 -0
- package/docs/api/functions/inspectRefkey.md +18 -0
- package/docs/api/functions/instantiateTakenMembersTo.md +20 -0
- package/docs/api/functions/isComponentCreator.md +19 -0
- package/docs/api/functions/isCustomContext.md +18 -0
- package/docs/api/functions/isIntrinsicElement.md +18 -0
- package/docs/api/functions/isKeyedChild.md +18 -0
- package/docs/api/functions/isLibrarySymbolReference.md +18 -0
- package/docs/api/functions/isMemberRefkey.md +18 -0
- package/docs/api/functions/isNamekey.md +18 -0
- package/docs/api/functions/isPrintHook.md +18 -0
- package/docs/api/functions/isRefkey.md +18 -0
- package/docs/api/functions/isRefkeyable.md +18 -0
- package/docs/api/functions/isRenderableObject.md +20 -0
- package/docs/api/functions/isSymbolRefkey.md +18 -0
- package/docs/api/functions/join.md +33 -0
- package/docs/api/functions/mapJoin.md +106 -0
- package/docs/api/functions/memberRefkey.md +27 -0
- package/docs/api/functions/memo.md +29 -0
- package/docs/api/functions/mergeProps.md +64 -0
- package/docs/api/functions/moveTakenMembersTo.md +18 -0
- package/docs/api/functions/namekey.md +41 -0
- package/docs/api/functions/nextReactiveId.md +19 -0
- package/docs/api/functions/notifyContentState.md +17 -0
- package/docs/api/functions/onCleanup.md +26 -0
- package/docs/api/functions/printTree.md +31 -0
- package/docs/api/functions/reactivePropertyRefId.md +21 -0
- package/docs/api/functions/ref.md +21 -0
- package/docs/api/functions/refId.md +18 -0
- package/docs/api/functions/refkey.md +24 -0
- package/docs/api/functions/render.md +31 -0
- package/docs/api/functions/renderAsync.md +31 -0
- package/docs/api/functions/renderTree.md +18 -0
- package/docs/api/functions/reportDiagnostics.md +18 -0
- package/docs/api/functions/resetRefIdCounter.md +17 -0
- package/docs/api/functions/resolve.md +31 -0
- package/docs/api/functions/root.md +25 -0
- package/docs/api/functions/shallowReactive.md +18 -0
- package/docs/api/functions/shallowRef.md +21 -0
- package/docs/api/functions/sourceFilesForTree.md +31 -0
- package/docs/api/functions/splitProps.md +19 -0
- package/docs/api/functions/stc.md +18 -0
- package/docs/api/functions/sti.md +18 -0
- package/docs/api/functions/symbolForRefkey.md +24 -0
- package/docs/api/functions/taggedComponent.md +19 -0
- package/docs/api/functions/takeSymbols.md +18 -0
- package/docs/api/functions/text.md +19 -0
- package/docs/api/functions/toRef.md +20 -0
- package/docs/api/functions/toRefkey.md +18 -0
- package/docs/api/functions/toRefs.md +20 -0
- package/docs/api/functions/traverseOutput.md +21 -0
- package/docs/api/functions/unresolvedRefkey.md +18 -0
- package/docs/api/functions/untrack.md +18 -0
- package/docs/api/functions/useContext.md +18 -0
- package/docs/api/functions/useFormatOptions.md +18 -0
- package/docs/api/functions/useMemberContext.md +17 -0
- package/docs/api/functions/useMemberScope.md +17 -0
- package/docs/api/functions/writeOutput.md +21 -0
- package/docs/api/index.md +9 -0
- package/docs/api/testing/functions/createTestWrapper.md +70 -0
- package/docs/api/testing/functions/d.md +21 -0
- package/docs/api/testing/functions/dedent.md +18 -0
- package/docs/api/testing/functions/index.md +6 -0
- package/docs/api/testing/functions/renderToString.md +20 -0
- package/docs/api/testing/index.md +4 -0
- package/docs/api/testing/types/TestWrapper.md +10 -0
- package/docs/api/testing/types/ToRenderToOptions.md +24 -0
- package/docs/api/testing/types/index.md +4 -0
- package/docs/api/types/AlignIntrinsicElement.md +5 -0
- package/docs/api/types/AppendRegionProps.md +5 -0
- package/docs/api/types/BaseListProps.md +21 -0
- package/docs/api/types/BasePartProps.md +10 -0
- package/docs/api/types/BasicScope.md +15 -0
- package/docs/api/types/BasicSymbol.md +18 -0
- package/docs/api/types/Binder.md +18 -0
- package/docs/api/types/BinderOptions.md +7 -0
- package/docs/api/types/BrIntrinsicElement.md +5 -0
- package/docs/api/types/BreakParentIntrinsicElement.md +5 -0
- package/docs/api/types/Child.md +5 -0
- package/docs/api/types/Children.md +5 -0
- package/docs/api/types/ChildrenOptions.md +7 -0
- package/docs/api/types/CommonFormatOptions.md +8 -0
- package/docs/api/types/Component.md +8 -0
- package/docs/api/types/ComponentContext.md +11 -0
- package/docs/api/types/ComponentCreator.md +11 -0
- package/docs/api/types/ComponentDefinition.md +7 -0
- package/docs/api/types/ContentOutputFile.md +10 -0
- package/docs/api/types/ContentSlot.md +12 -0
- package/docs/api/types/Context.md +19 -0
- package/docs/api/types/ContextProviderProps.md +8 -0
- package/docs/api/types/CopyFileContext.md +8 -0
- package/docs/api/types/CopyOutputFile.md +9 -0
- package/docs/api/types/CustomContext.md +10 -0
- package/docs/api/types/CustomContextChildrenCallback.md +5 -0
- package/docs/api/types/DeclarationProps.md +5 -0
- package/docs/api/types/DedentIntrinsicElement.md +5 -0
- package/docs/api/types/DedentToRootIntrinsicElement.md +5 -0
- package/docs/api/types/Diagnostic.md +11 -0
- package/docs/api/types/DiagnosticHandle.md +7 -0
- package/docs/api/types/DiagnosticInput.md +10 -0
- package/docs/api/types/DiagnosticSeverity.md +5 -0
- package/docs/api/types/DiagnosticStackEntry.md +9 -0
- package/docs/api/types/DiagnosticsCollector.md +8 -0
- package/docs/api/types/Disposable_2.md +7 -0
- package/docs/api/types/EffectDebugOptions.md +8 -0
- package/docs/api/types/EffectOptions.md +7 -0
- package/docs/api/types/ElementCache.md +5 -0
- package/docs/api/types/ElementCacheKey.md +5 -0
- package/docs/api/types/FillIntrinsicElement.md +5 -0
- package/docs/api/types/ForCallbackArgs.md +5 -0
- package/docs/api/types/ForSupportedCollections.md +5 -0
- package/docs/api/types/GroupIntrinsicElement.md +5 -0
- package/docs/api/types/HardlineIntrinsicElement.md +5 -0
- package/docs/api/types/HbrIntrinsicElement.md +5 -0
- package/docs/api/types/IfBreakIntrinsicElement.md +5 -0
- package/docs/api/types/IndentIfBreakIntrinsicElement.md +5 -0
- package/docs/api/types/IndentIntrinsicElement.md +5 -0
- package/docs/api/types/IntrinsicElement.md +5 -0
- package/docs/api/types/IntrinsicElementBase.md +9 -0
- package/docs/api/types/IntrinsicElements.md +26 -0
- package/docs/api/types/JoinOptions.md +9 -0
- package/docs/api/types/LbrIntrinsicElement.md +5 -0
- package/docs/api/types/LibrarySymbolReference.md +13 -0
- package/docs/api/types/LineIntrinsicElement.md +5 -0
- package/docs/api/types/LineSuffixBoundaryIntrinsicElement.md +5 -0
- package/docs/api/types/LineSuffixIntrinsicElement.md +5 -0
- package/docs/api/types/LiterallineIntrinsicElement.md +5 -0
- package/docs/api/types/MakeChildrenOptional.md +7 -0
- package/docs/api/types/MarkAsRootIntrinsicElement.md +5 -0
- package/docs/api/types/MatchProps.md +9 -0
- package/docs/api/types/MemberDeclarationProps.md +5 -0
- package/docs/api/types/MemberDescriptor.md +10 -0
- package/docs/api/types/MemberRefkey.md +10 -0
- package/docs/api/types/MemberResolutionContext.md +10 -0
- package/docs/api/types/MemberResolver.md +32 -0
- package/docs/api/types/MemberScopeProps.md +5 -0
- package/docs/api/types/Metadata.md +5 -0
- package/docs/api/types/NameConflictResolver.md +27 -0
- package/docs/api/types/NamePolicy.md +8 -0
- package/docs/api/types/NamePolicyGetter.md +9 -0
- package/docs/api/types/Namekey.md +10 -0
- package/docs/api/types/NamekeyOptions.md +8 -0
- package/docs/api/types/OnReactiveSetAddCallback.md +5 -0
- package/docs/api/types/OnReactiveSetDeleteCallback.md +5 -0
- package/docs/api/types/OutputDeclarationSpace.md +13 -0
- package/docs/api/types/OutputDirectory.md +59 -0
- package/docs/api/types/OutputFile.md +5 -0
- package/docs/api/types/OutputFileBase.md +8 -0
- package/docs/api/types/OutputMemberSpace.md +13 -0
- package/docs/api/types/OutputScope.md +33 -0
- package/docs/api/types/OutputScopeOptions.md +9 -0
- package/docs/api/types/OutputSpace.md +7 -0
- package/docs/api/types/OutputSymbol.md +76 -0
- package/docs/api/types/OutputSymbolOptions.md +16 -0
- package/docs/api/types/OutputVisitor.md +10 -0
- package/docs/api/types/PrintHook.md +10 -0
- package/docs/api/types/PrintTreeOptions.md +11 -0
- package/docs/api/types/Props.md +5 -0
- package/docs/api/types/ReactiveUnionSet.md +20 -0
- package/docs/api/types/ReactiveUnionSetOptions.md +8 -0
- package/docs/api/types/Refkey.md +5 -0
- package/docs/api/types/Refkeyable.md +5 -0
- package/docs/api/types/RefkeyableObject.md +7 -0
- package/docs/api/types/RenderableObject.md +9 -0
- package/docs/api/types/RenderedTextTree.md +5 -0
- package/docs/api/types/ResolutionResult.md +39 -0
- package/docs/api/types/ResolveDeclarationByKeyOptions.md +7 -0
- package/docs/api/types/Resource.md +11 -0
- package/docs/api/types/RootOptions.md +7 -0
- package/docs/api/types/SbrIntrinsicElement.md +5 -0
- package/docs/api/types/ScopeProps.md +5 -0
- package/docs/api/types/SoftlineIntrinsicElement.md +5 -0
- package/docs/api/types/SourceLocation.md +9 -0
- package/docs/api/types/SplitProps.md +12 -0
- package/docs/api/types/StcComponentCreator.md +9 -0
- package/docs/api/types/StcSignature.md +5 -0
- package/docs/api/types/StiComponentCreator.md +9 -0
- package/docs/api/types/StiSignature.md +7 -0
- package/docs/api/types/SymbolCreator.md +15 -0
- package/docs/api/types/SymbolRefkey.md +9 -0
- package/docs/api/types/SymbolSlot.md +12 -0
- package/docs/api/types/SymbolTable.md +15 -0
- package/docs/api/types/TakeSymbolCallback.md +7 -0
- package/docs/api/types/TakeSymbolsCallback.md +7 -0
- package/docs/api/types/Tap.md +11 -0
- package/docs/api/types/TapHandler.md +9 -0
- package/docs/api/types/Tapper.md +9 -0
- package/docs/api/types/TemplateVariableProps.md +5 -0
- package/docs/api/types/index.md +122 -0
- package/docs/api/variables/FormatOptions.md +5 -0
- package/docs/api/variables/Match.md +7 -0
- package/docs/api/variables/REFKEYABLE.md +5 -0
- package/docs/api/variables/RENDERABLE.md +5 -0
- package/docs/api/variables/TO_SYMBOL.md +39 -0
- package/docs/api/variables/contextsByKey.md +5 -0
- package/docs/api/variables/index.md +11 -0
- package/docs/api/variables/intrinsicElementKey.md +5 -0
- package/docs/api/variables/matchTag.md +5 -0
- package/docs/api/variables/printHookTag.md +7 -0
- package/docs/components.md +97 -0
- package/docs/context.md +67 -0
- package/docs/control-flow.md +5 -0
- package/docs/debugging.md +105 -0
- package/docs/formatting.md +99 -0
- package/docs/guides/language-package-guide.md +593 -0
- package/docs/guides/references-and-refkeys.md +210 -0
- package/docs/guides/style-guide.md +244 -0
- package/docs/index.md +22 -0
- package/docs/reactivity.md +68 -0
- package/docs/rendering.md +41 -0
- package/docs/symbols-and-scopes.md +180 -0
- package/package.json +8 -4
- package/src/binder.ts +107 -3
- package/src/components/Block.tsx +12 -0
- package/src/components/List.tsx +11 -1
- package/src/components/MemberDeclaration.tsx +6 -6
- package/src/components/MemberName.tsx +6 -0
- package/src/components/MemberScope.tsx +5 -0
- package/src/components/Output.tsx +4 -1
- package/src/components/Scope.tsx +6 -0
- package/src/components/SourceFile.tsx +22 -2
- package/src/context/binder.ts +4 -0
- package/src/context/format-options.ts +14 -1
- package/src/context/scope.ts +4 -0
- package/src/context/source-directory.ts +9 -0
- package/src/debug/cli.ts +3 -2
- package/src/debug/source-map.browser.ts +30 -0
- package/src/debug/trace.ts +7 -6
- package/src/host/node-host.browser.ts +23 -0
- package/src/host/node-host.ts +22 -0
- package/src/library-symbol-reference.ts +52 -0
- package/src/name-policy.ts +30 -3
- package/src/reactivity.ts +15 -0
- package/src/render-stack.ts +4 -3
- package/src/render.ts +2 -0
- package/src/symbols/output-scope.ts +33 -1
- package/src/symbols/output-space.ts +13 -0
- package/src/symbols/output-symbol.ts +93 -12
- package/src/symbols/symbol-slot.test.tsx +28 -1
- package/src/symbols/symbol-slot.tsx +8 -0
- package/src/write-output.ts +6 -5
- package/temp/api-testing.json +673 -0
- package/temp/api.json +48 -47
- package/test/browser-build.test.ts +71 -78
- package/testing/create-test-wrapper.tsx +81 -2
- package/testing/extend-expect.ts +22 -1
- package/testing/index.ts +1 -1
- package/testing/render.ts +9 -0
- package/testing/vitest.d.ts +3 -8
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Output
|
|
2
|
+
|
|
3
|
+
This component is the root component for all your emitted output. Place your various [SourceDirectory](../sourcedirectory/) and [SourceFile](../sourcefile/) components inside [`Output`](Output.md) to create directories and files in your output directory.
|
|
4
|
+
|
|
5
|
+
* jsx
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Output } from "@alloy-js/core";
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
<Output
|
|
12
|
+
basePath="string"
|
|
13
|
+
externals={SymbolCreator[]}
|
|
14
|
+
insertFinalNewLine
|
|
15
|
+
nameConflictResolver={NameConflictResolver}
|
|
16
|
+
namePolicy={NamePolicy<string>}
|
|
17
|
+
noFlush
|
|
18
|
+
printWidth={number}
|
|
19
|
+
tabWidth={number}
|
|
20
|
+
useTabs
|
|
21
|
+
>
|
|
22
|
+
{children}
|
|
23
|
+
</Output>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
* stc
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
import { Output } from "@alloy-js/core/stc";
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
Output({
|
|
33
|
+
basePath: string,
|
|
34
|
+
externals: SymbolCreator[],
|
|
35
|
+
insertFinalNewLine: boolean,
|
|
36
|
+
nameConflictResolver: NameConflictResolver,
|
|
37
|
+
namePolicy: NamePolicy<string>,
|
|
38
|
+
noFlush: boolean,
|
|
39
|
+
printWidth: number,
|
|
40
|
+
tabWidth: number,
|
|
41
|
+
useTabs: boolean,
|
|
42
|
+
}).children(children)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Props
|
|
46
|
+
|
|
47
|
+
| | | |
|
|
48
|
+
| -------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
|
|
49
|
+
| basePath | optional string | The base path for the output contents. Defaults to ”.“ |
|
|
50
|
+
| children | optional [Children](../../types/children/) | |
|
|
51
|
+
| externals | optional [SymbolCreator](../../types/symbolcreator/)\[] | External libraries whose symbols should be available for reference. |
|
|
52
|
+
| insertFinalNewLine | optional boolean | If files should end with a final new line. |
|
|
53
|
+
| nameConflictResolver | optional [NameConflictResolver](../../types/nameconflictresolver/) | Policy for handling multiple symbols declared with the same name. |
|
|
54
|
+
| namePolicy | optional [NamePolicy](../../types/namepolicy/)\<string> | Name policy to use for this output. |
|
|
55
|
+
| noFlush | optional boolean | Skip flushing scheduled jobs before printing. |
|
|
56
|
+
| printWidth | optional number | The number of characters the printer will wrap on. Defaults to 100 characters. |
|
|
57
|
+
| tabWidth | optional number | The number of spaces to use for indentation. Defaults to 2 spaces. |
|
|
58
|
+
| useTabs | optional boolean | Whether to use tabs instead of spaces for indentation. Defaults to false. |
|
|
59
|
+
|
|
60
|
+
## See also
|
|
61
|
+
|
|
62
|
+
* [NamePolicy context](../../contexts/namepolicy-context/)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Prose
|
|
2
|
+
|
|
3
|
+
Create a block of text which will break once a word exceeds the configured line width. The children are expected to be strings, and a is added between each word.
|
|
4
|
+
|
|
5
|
+
* jsx
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Prose } from "@alloy-js/core";
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
<Prose >
|
|
12
|
+
{children}
|
|
13
|
+
</Prose>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
* stc
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import { Prose } from "@alloy-js/core/stc";
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
Prose({ }).children(children)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
| | | |
|
|
28
|
+
| -------- | --------------------------------- | - |
|
|
29
|
+
| children | [Children](../../types/children/) | |
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# ReferenceOrContent
|
|
2
|
+
|
|
3
|
+
* jsx
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
import { ReferenceOrContent } from "@alloy-js/core";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
<ReferenceOrContent refkey={Refkey}>
|
|
10
|
+
{children}
|
|
11
|
+
</ReferenceOrContent>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
* stc
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
import { ReferenceOrContent } from "@alloy-js/core/stc";
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
ReferenceOrContent({ refkey: Refkey }).children(children)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Props
|
|
24
|
+
|
|
25
|
+
| | | |
|
|
26
|
+
| -------- | --------------------------------- | - |
|
|
27
|
+
| children | [Children](../../types/children/) | |
|
|
28
|
+
| refkey | [Refkey](../../types/refkey/) | |
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Scope
|
|
2
|
+
|
|
3
|
+
Declare a scope for this component’s children. Any symbols and scopes declared in the children of this component will be in this scope.
|
|
4
|
+
|
|
5
|
+
## Overload 1
|
|
6
|
+
|
|
7
|
+
Declare a scope by providing an already created scope. The scope is merely exposed via [Scope context](../../contexts/scope-context/).
|
|
8
|
+
|
|
9
|
+
* jsx
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
import { Scope } from "@alloy-js/core";
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
<Scope value={OutputScope}>
|
|
16
|
+
{children}
|
|
17
|
+
</Scope>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
* stc
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
import { Scope } from "@alloy-js/core/stc";
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
Scope({ value: OutputScope }).children(children)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Props
|
|
30
|
+
|
|
31
|
+
| | | |
|
|
32
|
+
| -------- | ------------------------------------------ | --------------------------------------------------------------- |
|
|
33
|
+
| children | optional [Children](../../types/children/) | |
|
|
34
|
+
| value | [OutputScope](../../types/outputscope/) | The scope to use. If not provided, a new scope will be created. |
|
|
35
|
+
|
|
36
|
+
## Overload 2
|
|
37
|
+
|
|
38
|
+
Create a scope by providing a name and optional metadata.
|
|
39
|
+
|
|
40
|
+
* jsx
|
|
41
|
+
|
|
42
|
+
```tsx
|
|
43
|
+
import { Scope } from "@alloy-js/core";
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<Scope
|
|
47
|
+
metadata={Record<string, unknown>}
|
|
48
|
+
name="string"
|
|
49
|
+
ownerSymbol={OutputSymbol}
|
|
50
|
+
>
|
|
51
|
+
{children}
|
|
52
|
+
</Scope>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
* stc
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
import { Scope } from "@alloy-js/core/stc";
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
Scope({
|
|
62
|
+
metadata: Record<string, unknown>,
|
|
63
|
+
name: string,
|
|
64
|
+
ownerSymbol: OutputSymbol,
|
|
65
|
+
}).children(children)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Props
|
|
69
|
+
|
|
70
|
+
| | | |
|
|
71
|
+
| ----------- | -------------------------------------------------- | --------------------------------------------------------------------------- |
|
|
72
|
+
| children | optional [Children](../../types/children/) | |
|
|
73
|
+
| metadata | optional Record\<string, unknown> | Additional metadata for the scope. |
|
|
74
|
+
| name | optional string | The name of this scope. |
|
|
75
|
+
| ownerSymbol | optional [OutputSymbol](../../types/outputsymbol/) | Create a member scope with the owner symbol providing the in-scope symbols. |
|
|
76
|
+
|
|
77
|
+
## Remarks
|
|
78
|
+
|
|
79
|
+
When called with `name` (without `value`), this creates a [`BasicScope`](../types/BasicScope.md). The parent scope must also be a [`BasicScope`](../types/BasicScope.md); for custom scope types, create your scope and pass it via the `value` prop instead.
|
|
80
|
+
|
|
81
|
+
## See also
|
|
82
|
+
|
|
83
|
+
* [Scope context](../../contexts/scope-context/)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Show
|
|
2
|
+
|
|
3
|
+
* jsx
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
import { Show } from "@alloy-js/core";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
<Show fallback={Children} when={boolean | undefined | null}>
|
|
10
|
+
{children}
|
|
11
|
+
</Show>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
* stc
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
import { Show } from "@alloy-js/core/stc";
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
Show({
|
|
21
|
+
fallback: Children,
|
|
22
|
+
when: boolean | undefined | null,
|
|
23
|
+
}).children(children)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Props
|
|
27
|
+
|
|
28
|
+
| | | |
|
|
29
|
+
| -------- | ------------------------------------------ | - |
|
|
30
|
+
| children | [Children](../../types/children/) | |
|
|
31
|
+
| fallback | optional [Children](../../types/children/) | |
|
|
32
|
+
| when | boolean \| undefined \| null | |
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# SourceDirectory
|
|
2
|
+
|
|
3
|
+
* jsx
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
import { SourceDirectory } from "@alloy-js/core";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
<SourceDirectory path="string">
|
|
10
|
+
{children}
|
|
11
|
+
</SourceDirectory>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
* stc
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
import { SourceDirectory } from "@alloy-js/core/stc";
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
SourceDirectory({ path: string }).children(children)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Props
|
|
24
|
+
|
|
25
|
+
| | | |
|
|
26
|
+
| -------- | ------------------------------------------ | - |
|
|
27
|
+
| children | optional [Children](../../types/children/) | |
|
|
28
|
+
| path | string | |
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# SourceFile
|
|
2
|
+
|
|
3
|
+
* jsx
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
import { SourceFile } from "@alloy-js/core";
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
<SourceFile
|
|
10
|
+
filetype="string"
|
|
11
|
+
header={Children}
|
|
12
|
+
insertFinalNewLine
|
|
13
|
+
noFlush
|
|
14
|
+
path="string"
|
|
15
|
+
printWidth={number}
|
|
16
|
+
reference={ComponentDefinition<{
|
|
17
|
+
refkey: Refkey;
|
|
18
|
+
}>}
|
|
19
|
+
tabWidth={number}
|
|
20
|
+
useTabs
|
|
21
|
+
>
|
|
22
|
+
{children}
|
|
23
|
+
</SourceFile>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
* stc
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
import { SourceFile } from "@alloy-js/core/stc";
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
SourceFile({
|
|
33
|
+
filetype: string,
|
|
34
|
+
header: Children,
|
|
35
|
+
insertFinalNewLine: boolean,
|
|
36
|
+
noFlush: boolean,
|
|
37
|
+
path: string,
|
|
38
|
+
printWidth: number,
|
|
39
|
+
reference: ComponentDefinition<{
|
|
40
|
+
refkey: Refkey;
|
|
41
|
+
}>,
|
|
42
|
+
tabWidth: number,
|
|
43
|
+
useTabs: boolean,
|
|
44
|
+
}).children(children)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Props
|
|
48
|
+
|
|
49
|
+
| | | |
|
|
50
|
+
| ------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
51
|
+
| children | optional [Children](../../types/children/) | |
|
|
52
|
+
| filetype | string | The type of contents in this file. This is a metadata hint only. It does not trigger formatting or content processing. The value is forwarded to debug tooling and the [`ContentOutputFile`](../types/ContentOutputFile.md) output metadata. |
|
|
53
|
+
| header | optional [Children](../../types/children/) | Content rendered before the file body, separated from it by a hard line break. The separator is emitted whenever `header` is not `undefined` — including when it is an empty string or a component that renders nothing. To suppress both the header and the separator, omit this prop entirely. |
|
|
54
|
+
| insertFinalNewLine | optional boolean | If files should end with a final new line. |
|
|
55
|
+
| noFlush | optional boolean | Skip flushing scheduled jobs before printing. |
|
|
56
|
+
| path | string | The path of this file relative to its parent directory |
|
|
57
|
+
| printWidth | optional number | The number of characters the printer will wrap on. Defaults to 100 characters. |
|
|
58
|
+
| reference | optional [ComponentDefinition](../../types/componentdefinition/)<{ refkey: [Refkey](../../types/refkey/); }> | The component to use to render refkeys references within the file’s contents. |
|
|
59
|
+
| tabWidth | optional number | The number of spaces to use for indentation. Defaults to 2 spaces. |
|
|
60
|
+
| useTabs | optional boolean | Whether to use tabs instead of spaces for indentation. Defaults to false. |
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# StatementList
|
|
2
|
+
|
|
3
|
+
Join child elements with semicolons and hardlines.
|
|
4
|
+
|
|
5
|
+
* jsx
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { StatementList } from "@alloy-js/core";
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
<StatementList >
|
|
12
|
+
{children}
|
|
13
|
+
</StatementList>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
* stc
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import { StatementList } from "@alloy-js/core/stc";
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
StatementList({ }).children(children)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
| | | |
|
|
28
|
+
| -------- | --------------------------------- | - |
|
|
29
|
+
| children | [Children](../../types/children/) | |
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Switch
|
|
2
|
+
|
|
3
|
+
Conditionally render blocks of content based on the `when` prop of nested [Match](../../variables/match/) components.
|
|
4
|
+
|
|
5
|
+
* jsx
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Switch } from "@alloy-js/core";
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
<Switch >
|
|
12
|
+
{children}
|
|
13
|
+
</Switch>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
* stc
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import { Switch } from "@alloy-js/core/stc";
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
Switch({ }).children(children)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
| | | |
|
|
28
|
+
| -------- | --------------------------------- | - |
|
|
29
|
+
| children | [Children](../../types/children/) | |
|
|
30
|
+
|
|
31
|
+
## Example
|
|
32
|
+
|
|
33
|
+
```tsx
|
|
34
|
+
<Switch>
|
|
35
|
+
<Match when={someCondition}>
|
|
36
|
+
<div>Condition met!</div>
|
|
37
|
+
</Match>
|
|
38
|
+
<Match else>
|
|
39
|
+
<div>Condition not met!</div>
|
|
40
|
+
</Match>
|
|
41
|
+
</Switch>
|
|
42
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# TemplateFile
|
|
2
|
+
|
|
3
|
+
A component that reads a template file and replaces variable placeholders with actual values.
|
|
4
|
+
|
|
5
|
+
Template files can contain variable placeholders in the format `{{ variable_name }}` which will be replaced with values from [`TemplateVariable`](TemplateVariable.md) children components. Whitespace around variable names is ignored, so `{{ name }}`, `{{name}}`, and `{{ name }}` are all equivalent.
|
|
6
|
+
|
|
7
|
+
* jsx
|
|
8
|
+
|
|
9
|
+
```tsx
|
|
10
|
+
import { TemplateFile } from "@alloy-js/core";
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
<TemplateFile path="string" src="string">
|
|
14
|
+
{children}
|
|
15
|
+
</TemplateFile>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
* stc
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
import { TemplateFile } from "@alloy-js/core/stc";
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
TemplateFile({ path: string, src: string }).children(children)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Props
|
|
28
|
+
|
|
29
|
+
| | | |
|
|
30
|
+
| -------- | ------------------------------------------ | ------------------------------------------- |
|
|
31
|
+
| children | optional [Children](../../types/children/) | Template variable children components. |
|
|
32
|
+
| path | string | The path to write the compiled template to. |
|
|
33
|
+
| src | string | The file path of the template. |
|
|
34
|
+
|
|
35
|
+
## Examples
|
|
36
|
+
|
|
37
|
+
Basic usage with template variables:
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
// Template file content (greeting.txt):
|
|
41
|
+
// "Hello {{ name }}! You are {{ age }} years old."
|
|
42
|
+
|
|
43
|
+
<TemplateFile src="greeting.txt" path="output.txt">
|
|
44
|
+
<TemplateVariable name="name" value="John" />
|
|
45
|
+
<TemplateVariable name="age" value="25" />
|
|
46
|
+
</TemplateFile>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Using children instead of value prop:
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
// Template file content (welcome.txt):
|
|
53
|
+
// "Welcome {{ greeting }}!"
|
|
54
|
+
|
|
55
|
+
<TemplateFile src="welcome.txt" path="output.txt">
|
|
56
|
+
<TemplateVariable name="greeting">Hello World</TemplateVariable>
|
|
57
|
+
</TemplateFile>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Complex template with multiple variables:
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
// Template file content (profile.txt):
|
|
64
|
+
// "Name: {{ name }}\nAge: {{ age }}\nLocation: {{ location }}"
|
|
65
|
+
|
|
66
|
+
<TemplateFile src="profile.txt" path="profile-output.txt">
|
|
67
|
+
<TemplateVariable name="name" value="Alice" />
|
|
68
|
+
<TemplateVariable name="age">30</TemplateVariable>
|
|
69
|
+
<TemplateVariable name="location" value="New York" />
|
|
70
|
+
</TemplateFile>
|
|
71
|
+
```
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# TemplateVariable
|
|
2
|
+
|
|
3
|
+
## Overload 1
|
|
4
|
+
|
|
5
|
+
* jsx
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { TemplateVariable } from "@alloy-js/core";
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
<TemplateVariable name="string">
|
|
12
|
+
{children}
|
|
13
|
+
</TemplateVariable>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
* stc
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import { TemplateVariable } from "@alloy-js/core/stc";
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
TemplateVariable({ name: string }).children(children)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Props
|
|
26
|
+
|
|
27
|
+
| | | |
|
|
28
|
+
| -------- | --------------------------------- | -------------------------- |
|
|
29
|
+
| children | [Children](../../types/children/) | The value of the variable. |
|
|
30
|
+
| name | string | The name of the variable. |
|
|
31
|
+
|
|
32
|
+
## Overload 2
|
|
33
|
+
|
|
34
|
+
* jsx
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
import { TemplateVariable } from "@alloy-js/core";
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
<TemplateVariable name="string" value="string" />
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
* stc
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
import { TemplateVariable } from "@alloy-js/core/stc";
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
TemplateVariable({ name: string, value: string }).children(children)
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Props
|
|
53
|
+
|
|
54
|
+
| | | |
|
|
55
|
+
| ----- | ------ | -------------------------- |
|
|
56
|
+
| name | string | The name of the variable. |
|
|
57
|
+
| value | string | The value of the variable. |
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# UpdateFile
|
|
2
|
+
|
|
3
|
+
A component for updating existing files or initializing new files.
|
|
4
|
+
|
|
5
|
+
This component allows you to read the current contents of a file and generate new content based on those contents. If the file doesn’t exist, it can use default content from either a file path or inline content.
|
|
6
|
+
|
|
7
|
+
Props for the UpdateFile component.
|
|
8
|
+
|
|
9
|
+
* jsx
|
|
10
|
+
|
|
11
|
+
```tsx
|
|
12
|
+
import { UpdateFile } from "@alloy-js/core";
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
<UpdateFile
|
|
16
|
+
defaultContent={Children}
|
|
17
|
+
defaultContentPath="string"
|
|
18
|
+
path="string"
|
|
19
|
+
>
|
|
20
|
+
{children}
|
|
21
|
+
</UpdateFile>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
* stc
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
import { UpdateFile } from "@alloy-js/core/stc";
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
UpdateFile({
|
|
31
|
+
defaultContent: Children,
|
|
32
|
+
defaultContentPath: string,
|
|
33
|
+
path: string,
|
|
34
|
+
}).children(children)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Props
|
|
38
|
+
|
|
39
|
+
| | | |
|
|
40
|
+
| ------------------ | ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
|
|
41
|
+
| children | (currentContents: string \| null) => [Children](../../types/children/) | Function that receives the current file contents and returns the new content |
|
|
42
|
+
| defaultContent | optional [Children](../../types/children/) | Optional default content to use when the target file doesn’t exist |
|
|
43
|
+
| defaultContentPath | optional string | Optional path to a file containing default content to use when the target file doesn’t exist |
|
|
44
|
+
| path | string | The relative path to the file to update or create |
|
|
45
|
+
|
|
46
|
+
## Example
|
|
47
|
+
|
|
48
|
+
```tsx
|
|
49
|
+
<UpdateFile path="config.json" defaultContent="{}">
|
|
50
|
+
{(currentContents) => {
|
|
51
|
+
const config = currentContents ? JSON.parse(currentContents) : {};
|
|
52
|
+
config.newProperty = "value";
|
|
53
|
+
return JSON.stringify(config, null, 2);
|
|
54
|
+
}}
|
|
55
|
+
</UpdateFile>
|
|
56
|
+
```
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Wrap
|
|
2
|
+
|
|
3
|
+
Conditionally wrap the children of this component with the component given to `with` and passing `props` to it.
|
|
4
|
+
|
|
5
|
+
* jsx
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { Wrap } from "@alloy-js/core";
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
<Wrap
|
|
12
|
+
props={Omit<TProps, "children">}
|
|
13
|
+
when
|
|
14
|
+
with={ComponentDefinition<TProps>}
|
|
15
|
+
>
|
|
16
|
+
{children}
|
|
17
|
+
</Wrap>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
* stc
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
import { Wrap } from "@alloy-js/core/stc";
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
Wrap({
|
|
27
|
+
props: Omit<TProps, "children">,
|
|
28
|
+
when: boolean,
|
|
29
|
+
with: ComponentDefinition<TProps>,
|
|
30
|
+
}).children(children)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Props
|
|
34
|
+
|
|
35
|
+
| | | |
|
|
36
|
+
| -------- | ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
37
|
+
| children | [Children](../../types/children/) | Children to be wrapped. |
|
|
38
|
+
| props | optional Omit\<TProps, “children”> | Props to pass to the wrapper component. |
|
|
39
|
+
| when | boolean | When true, the children will be wrapped with the provided component. Otherwise, the children will be rendered as is. |
|
|
40
|
+
| with | [ComponentDefinition](../../types/componentdefinition/)\<TProps> | Component to be used for wrapping. |
|