@alloy-js/core 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/babel.config.cjs +4 -1
- package/dist/src/binder.d.ts +20 -13
- package/dist/src/binder.d.ts.map +1 -1
- package/dist/src/binder.js +33 -15
- package/dist/src/binder.js.map +1 -1
- package/dist/src/code.d.ts +2 -2
- package/dist/src/code.d.ts.map +1 -1
- package/dist/src/code.js +4 -4
- package/dist/src/code.js.map +1 -1
- package/dist/src/components/Block.d.ts +25 -0
- package/dist/src/components/Block.d.ts.map +1 -0
- package/dist/src/components/Block.js +25 -0
- package/dist/src/components/Block.js.map +1 -0
- package/dist/src/components/Declaration.d.ts +1 -1
- package/dist/src/components/Declaration.d.ts.map +1 -1
- package/dist/src/components/Declaration.js +4 -0
- package/dist/src/components/Declaration.js.map +1 -1
- package/dist/src/components/For.d.ts +44 -0
- package/dist/src/components/For.d.ts.map +1 -0
- package/dist/src/components/For.js +41 -0
- package/dist/src/components/For.js.map +1 -0
- package/dist/src/components/Indent.d.ts +6 -10
- package/dist/src/components/Indent.d.ts.map +1 -1
- package/dist/src/components/Indent.js +7 -18
- package/dist/src/components/Indent.js.map +1 -1
- package/dist/src/components/List.d.ts +38 -0
- package/dist/src/components/List.d.ts.map +1 -0
- package/dist/src/components/List.js +40 -0
- package/dist/src/components/List.js.map +1 -0
- package/dist/src/components/MemberDeclaration.d.ts +1 -1
- package/dist/src/components/MemberDeclaration.d.ts.map +1 -1
- package/dist/src/components/MemberDeclaration.js.map +1 -1
- package/dist/src/components/MemberName.d.ts +1 -1
- package/dist/src/components/MemberName.d.ts.map +1 -1
- package/dist/src/components/MemberName.js +1 -1
- package/dist/src/components/MemberName.js.map +1 -1
- package/dist/src/components/MemberScope.d.ts +1 -1
- package/dist/src/components/MemberScope.d.ts.map +1 -1
- package/dist/src/components/MemberScope.js.map +1 -1
- package/dist/src/components/Name.d.ts +1 -1
- package/dist/src/components/Name.d.ts.map +1 -1
- package/dist/src/components/Name.js +1 -1
- package/dist/src/components/Name.js.map +1 -1
- package/dist/src/components/Output.d.ts +3 -2
- package/dist/src/components/Output.d.ts.map +1 -1
- package/dist/src/components/Output.js +12 -2
- package/dist/src/components/Output.js.map +1 -1
- package/dist/src/components/Scope.d.ts +1 -1
- package/dist/src/components/Scope.d.ts.map +1 -1
- package/dist/src/components/Scope.js.map +1 -1
- package/dist/src/components/Show.d.ts +8 -0
- package/dist/src/components/Show.d.ts.map +1 -0
- package/dist/src/components/Show.js +4 -0
- package/dist/src/components/Show.js.map +1 -0
- package/dist/src/components/SourceDirectory.d.ts +2 -2
- package/dist/src/components/SourceDirectory.d.ts.map +1 -1
- package/dist/src/components/SourceDirectory.js +1 -0
- package/dist/src/components/SourceDirectory.js.map +1 -1
- package/dist/src/components/SourceFile.d.ts +4 -8
- package/dist/src/components/SourceFile.d.ts.map +1 -1
- package/dist/src/components/SourceFile.js +6 -13
- package/dist/src/components/SourceFile.js.map +1 -1
- package/dist/src/components/StatementList.d.ts +9 -0
- package/dist/src/components/StatementList.d.ts.map +1 -0
- package/dist/src/components/StatementList.js +17 -0
- package/dist/src/components/StatementList.js.map +1 -0
- package/dist/src/components/Switch.d.ts +41 -0
- package/dist/src/components/Switch.d.ts.map +1 -0
- package/dist/src/components/Switch.js +41 -0
- package/dist/src/components/Switch.js.map +1 -0
- package/dist/src/components/Wrap.d.ts +20 -0
- package/dist/src/components/Wrap.d.ts.map +1 -0
- package/dist/src/components/Wrap.js +15 -0
- package/dist/src/components/Wrap.js.map +1 -0
- package/dist/src/components/index.d.ts +8 -1
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +7 -0
- package/dist/src/components/index.js.map +1 -1
- package/dist/src/components/stc/index.d.ts +89 -18
- package/dist/src/components/stc/index.d.ts.map +1 -1
- package/dist/src/components/stc/index.js +17 -1
- package/dist/src/components/stc/index.js.map +1 -1
- package/dist/src/context/index.d.ts +0 -1
- package/dist/src/context/index.d.ts.map +1 -1
- package/dist/src/context/index.js +0 -1
- package/dist/src/context/index.js.map +1 -1
- package/dist/src/context/member-declaration.d.ts +1 -0
- package/dist/src/context/member-declaration.d.ts.map +1 -1
- package/dist/src/context/member-declaration.js +4 -1
- package/dist/src/context/member-declaration.js.map +1 -1
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +3 -3
- package/dist/src/context.js.map +1 -1
- package/dist/src/index.browser.d.ts +3 -0
- package/dist/src/index.browser.d.ts.map +1 -0
- package/dist/src/index.browser.js +3 -0
- package/dist/src/index.browser.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/jsx-runtime.d.ts +151 -7
- package/dist/src/jsx-runtime.d.ts.map +1 -1
- package/dist/src/jsx-runtime.js +113 -12
- package/dist/src/jsx-runtime.js.map +1 -1
- package/dist/src/render.d.ts +107 -132
- package/dist/src/render.d.ts.map +1 -1
- package/dist/src/render.js +272 -178
- package/dist/src/render.js.map +1 -1
- package/dist/src/stc.d.ts +14 -0
- package/dist/src/stc.d.ts.map +1 -0
- package/dist/src/stc.js +52 -0
- package/dist/src/stc.js.map +1 -0
- package/dist/src/tap.d.ts +19 -0
- package/dist/src/tap.d.ts.map +1 -0
- package/dist/src/tap.js +39 -0
- package/dist/src/tap.js.map +1 -0
- package/dist/src/utils.d.ts +22 -15
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +95 -59
- package/dist/src/utils.js.map +1 -1
- package/dist/test/browser-build.test.d.ts +2 -0
- package/dist/test/browser-build.test.d.ts.map +1 -0
- package/dist/test/components/block.test.d.ts +2 -0
- package/dist/test/components/block.test.d.ts.map +1 -0
- package/dist/test/components/declaration.test.d.ts +2 -0
- package/dist/test/components/declaration.test.d.ts.map +1 -0
- package/dist/test/components/list.test.d.ts +2 -0
- package/dist/test/components/list.test.d.ts.map +1 -0
- package/dist/test/components/wrap.test.d.ts +2 -0
- package/dist/test/components/wrap.test.d.ts.map +1 -0
- package/dist/test/control-flow/for.test.d.ts +2 -0
- package/dist/test/control-flow/for.test.d.ts.map +1 -0
- package/dist/test/control-flow/match.test.d.ts +2 -0
- package/dist/test/control-flow/match.test.d.ts.map +1 -0
- package/dist/test/control-flow/show.test.d.ts +2 -0
- package/dist/test/control-flow/show.test.d.ts.map +1 -0
- package/dist/test/reactivity/cleanup.test.d.ts +2 -0
- package/dist/test/reactivity/cleanup.test.d.ts.map +1 -0
- package/dist/test/reactivity/memo.test.d.ts +2 -0
- package/dist/test/reactivity/memo.test.d.ts.map +1 -0
- package/dist/test/reactivity/untrack.test.d.ts +2 -0
- package/dist/test/reactivity/untrack.test.d.ts.map +1 -0
- package/dist/test/rendering/formatting.test.d.ts +2 -0
- package/dist/test/rendering/formatting.test.d.ts.map +1 -0
- package/dist/test/rendering/memoization.test.d.ts +2 -0
- package/dist/test/rendering/memoization.test.d.ts.map +1 -0
- package/dist/test/split-props.test.d.ts +2 -0
- package/dist/test/split-props.test.d.ts.map +1 -0
- package/dist/test/stc.test.d.ts.map +1 -1
- package/dist/test/utils.test.d.ts.map +1 -1
- package/dist/testing/extend-expect.js +4 -4
- package/dist/testing/extend-expect.js.map +1 -1
- package/dist/testing/render.d.ts +2 -3
- package/dist/testing/render.d.ts.map +1 -1
- package/dist/testing/render.js +2 -4
- package/dist/testing/render.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -9
- package/src/binder.ts +60 -50
- package/src/code.ts +17 -12
- package/src/components/Block.tsx +44 -0
- package/src/components/Declaration.tsx +10 -4
- package/src/components/For.tsx +81 -0
- package/src/components/Indent.tsx +20 -27
- package/src/components/List.tsx +94 -0
- package/src/components/MemberDeclaration.tsx +9 -6
- package/src/components/MemberScope.tsx +4 -2
- package/src/components/Output.tsx +27 -14
- package/src/components/Scope.tsx +4 -2
- package/src/components/Show.tsx +11 -0
- package/src/components/SourceDirectory.tsx +6 -2
- package/src/components/SourceFile.tsx +13 -17
- package/src/components/StatementList.tsx +16 -0
- package/src/components/Switch.tsx +62 -0
- package/src/components/Wrap.tsx +29 -0
- package/src/components/index.tsx +8 -1
- package/src/components/stc/index.ts +18 -1
- package/src/context/index.ts +0 -1
- package/src/context/member-declaration.ts +9 -1
- package/src/context.ts +2 -3
- package/src/index.browser.ts +2 -0
- package/src/index.ts +2 -0
- package/src/jsx-runtime.ts +265 -23
- package/src/render.ts +382 -200
- package/src/stc.ts +95 -0
- package/src/tap.ts +69 -0
- package/src/utils.ts +162 -95
- package/temp/api.json +8042 -1886
- package/test/browser-build.test.ts +91 -0
- package/test/children.test.tsx +8 -10
- package/test/components/block.test.tsx +48 -0
- package/test/components/declaration.test.tsx +37 -0
- package/test/components/list.test.tsx +91 -0
- package/test/components/slot.test.tsx +31 -25
- package/test/components/source-file.test.tsx +11 -31
- package/test/components/wrap.test.tsx +42 -0
- package/test/control-flow/for.test.tsx +194 -0
- package/test/control-flow/match.test.tsx +49 -0
- package/test/control-flow/show.test.tsx +25 -0
- package/test/name-policy.test.tsx +5 -5
- package/test/reactivity/cleanup.test.tsx +91 -0
- package/test/reactivity/memo.test.tsx +17 -0
- package/test/reactivity/ref-rendering.test.tsx +3 -8
- package/test/reactivity/test.test.tsx +7 -6
- package/test/reactivity/untrack.test.ts +33 -0
- package/test/rendering/basic.test.tsx +25 -47
- package/test/rendering/code.test.tsx +3 -3
- package/test/rendering/formatting.test.tsx +487 -0
- package/test/rendering/indent.test.tsx +42 -529
- package/test/rendering/memoization.test.tsx +30 -0
- package/test/split-props.test.ts +87 -0
- package/test/stc.test.tsx +29 -8
- package/test/symbols.test.ts +132 -3
- package/test/utils.test.tsx +129 -20
- package/testing/extend-expect.ts +14 -4
- package/testing/render.ts +2 -4
- package/testing/vitest.d.ts +6 -1
- package/vitest.config.ts +1 -1
- package/dist/src/context/indent.d.ts +0 -5
- package/dist/src/context/indent.d.ts.map +0 -1
- package/dist/src/context/indent.js +0 -8
- package/dist/src/context/indent.js.map +0 -1
- package/dist/test/rendering/linebreaks.test.d.ts +0 -2
- package/dist/test/rendering/linebreaks.test.d.ts.map +0 -1
- package/src/context/indent.ts +0 -17
- package/test/rendering/linebreaks.test.tsx +0 -72
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,58 @@
|
|
|
1
1
|
# Changelog - @alloy-js/core
|
|
2
2
|
|
|
3
|
+
## 0.6.0
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
- [#54](https://github.com/alloy-framework/alloy/pull/54) Fix browser mappings
|
|
8
|
+
- [#55](https://github.com/alloy-framework/alloy/pull/55) Export missing STC components.
|
|
9
|
+
- [#55](https://github.com/alloy-framework/alloy/pull/55) Properly handle reactive updates in the children of a context Provider.
|
|
10
|
+
- [#55](https://github.com/alloy-framework/alloy/pull/55) Fix cleanup of root contexts when cleanup is invoked from another context.
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) Added a List component which renders its immediate children with configurable joiner and ender text.
|
|
15
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) Added StatementList component for rendering lists of statements separated by semicolons and newlines.
|
|
16
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) The For component can now take a memo for its `each` prop.
|
|
17
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) The For component now takes various list-related boolean props for controlling the joiner and ender text.
|
|
18
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) The Indent component no longer includes a trailing line break by default in order to allow subsequent blocks to set their own indent level. The old behavior can be had by passing the `trailingBreak` boolean prop.
|
|
19
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) The Indent component can now configure its line break style (soft, hard, literal, or line).
|
|
20
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) Added support for the various formatting intrinsic elements.
|
|
21
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) Added `splitProps` utility which can split props into two or more separate props objects while handling reactivity. Useful to pass subsets of props to child components.
|
|
22
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) The various rendering and printing APIs now take print options `tabWidth`, `useTabs`, and `printWidth` to control formatting behavior.
|
|
23
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) Added `sti` function to create a wrapper around an intrinsic element similar to how `stc` works for components.
|
|
24
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) `mapJoin` can now be given `Children` for its joiner and ender props.
|
|
25
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) `children` and `childrenArray` now have a `preserveFragments` option which doesn't flatten fragments, allowing components like `List` to treat fragments as list items.
|
|
26
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) Added Block component for rendering an indented block with configurable opening text, closing text, and line breaks.
|
|
27
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) Added Show component for conditionally rendering child components. Similar to using the `&&` pattern but can be easier to read in some cases.
|
|
28
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) Added Wrap component for conditionally wrapping its children in another component.
|
|
29
|
+
- [#55](https://github.com/alloy-framework/alloy/pull/55) Add `For` component to iterate over a provided array and render a component for each element.
|
|
30
|
+
- [#55](https://github.com/alloy-framework/alloy/pull/55) Add `Switch` component to conditionally render content.
|
|
31
|
+
- [#55](https://github.com/alloy-framework/alloy/pull/55) Add support to the binder for deleting symbols.
|
|
32
|
+
- [#55](https://github.com/alloy-framework/alloy/pull/55) The `Declaration` component will now delete its symbol when its removed from the tree.
|
|
33
|
+
- [#55](https://github.com/alloy-framework/alloy/pull/55) Don't re-render unchanged elements when doing reactive updates.
|
|
34
|
+
- [#55](https://github.com/alloy-framework/alloy/pull/55) Add `createCustomContext` to allow establishing a custom reactive context during render.
|
|
35
|
+
- [#55](https://github.com/alloy-framework/alloy/pull/55) Add `findKeyedChildren` which finds multiple children with the given key.
|
|
36
|
+
|
|
37
|
+
### Breaking Changes
|
|
38
|
+
|
|
39
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) The Output component no longer takes an `indent` prop. Instead, provide `tabWidth`, `useTabs`, and `printWidth` to control indentation behavior.
|
|
40
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) The SourceFile component no longer takes an `indent` prop. Instead, provide `tabWidth, `useTabs`, and `printWidth` to control indentation behavior.
|
|
41
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) IndentContext has been removed. The rendering process no longer requires this information, indentation is handled during printing.
|
|
42
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) Tightened the types of `Child` and `Children`. `Child` can no longer be an array of itself.
|
|
43
|
+
- [#56](https://github.com/alloy-framework/alloy/pull/56) Added support for formatting primitives to produce formatted output. This includes elements like `group` and `fill` for attempting to fit text on a single line, `hbr`, `sbr`, `lbr`, and `br` for introducing line breaks, `align` for padding output, and more. All the built-in components have been updated to generate nicely formatted code.
|
|
44
|
+
- [#55](https://github.com/alloy-framework/alloy/pull/55) `mapJoin` now properly handles reactive sources. To support this, the array source must be wrapped in a callback. For example, `mapJoin(someArray, ...)` needs to be updated to `mapJoin(() => someArray, ...)`. The return value of `mapJoin` is now a memo rather than an array.
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
## 0.5.0
|
|
48
|
+
|
|
49
|
+
### Features
|
|
50
|
+
|
|
51
|
+
- [#50](https://github.com/alloy-framework/alloy/pull/50) Add support for adding refkeys to symbols after symbol creation.
|
|
52
|
+
- [#50](https://github.com/alloy-framework/alloy/pull/50) Improve types of JSX elements so typescript and editors can provide accurate errors when providing props to components. For example, component props can be unions of props interfaces, enabling an overload-like pattern.
|
|
53
|
+
- [#50](https://github.com/alloy-framework/alloy/pull/50) Add Tappers, which allow getting a reference to contexts provided by nested components from a parent component. Useful for allowing nested components to create things like symbols when the parent component merely needs access to it but doesn't care how its created.
|
|
54
|
+
|
|
55
|
+
|
|
3
56
|
## 0.4.0
|
|
4
57
|
|
|
5
58
|
### Features
|
package/babel.config.cjs
CHANGED
package/dist/src/binder.d.ts
CHANGED
|
@@ -182,6 +182,19 @@ export interface OutputScope {
|
|
|
182
182
|
*/
|
|
183
183
|
getSymbolNames(): Set<string>;
|
|
184
184
|
}
|
|
185
|
+
export type CreateSymbolOptions<T extends OutputSymbol = OutputSymbol> = {
|
|
186
|
+
name: string;
|
|
187
|
+
scope?: OutputScope;
|
|
188
|
+
refkey?: Refkey;
|
|
189
|
+
flags?: OutputSymbolFlags;
|
|
190
|
+
} & Omit<T, keyof OutputSymbol>;
|
|
191
|
+
export type CreateScopeOptions<T extends OutputScope = OutputScope> = {
|
|
192
|
+
kind: T["kind"];
|
|
193
|
+
name: string;
|
|
194
|
+
parent?: OutputScope | undefined;
|
|
195
|
+
flags?: OutputScopeFlags;
|
|
196
|
+
owner?: OutputSymbol;
|
|
197
|
+
} & Omit<T, keyof OutputScope>;
|
|
185
198
|
/**
|
|
186
199
|
* The binder tracks all output scopes and symbols. Scopes are nested containers
|
|
187
200
|
* for symbols.
|
|
@@ -200,23 +213,17 @@ export interface Binder {
|
|
|
200
213
|
* Create a new scope. The scope will be added to the parent scope's children.
|
|
201
214
|
* The returned scope object is reactive.
|
|
202
215
|
*/
|
|
203
|
-
createScope<T extends OutputScope>(args:
|
|
204
|
-
kind: T["kind"];
|
|
205
|
-
name: string;
|
|
206
|
-
parent?: OutputScope | undefined;
|
|
207
|
-
flags?: OutputScopeFlags;
|
|
208
|
-
owner?: OutputSymbol;
|
|
209
|
-
} & Omit<T, keyof OutputScope>): T;
|
|
216
|
+
createScope<T extends OutputScope>(args: CreateScopeOptions<T>): T;
|
|
210
217
|
/**
|
|
211
218
|
* Create a new symbol. The symbol will be added to the parent scope's symbols.
|
|
212
219
|
* The returned symbol object is reactive.
|
|
213
220
|
*/
|
|
214
|
-
createSymbol<T extends OutputSymbol>(args:
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
221
|
+
createSymbol<T extends OutputSymbol>(args: CreateSymbolOptions<T>): T;
|
|
222
|
+
/**
|
|
223
|
+
* Delete the given symbol. The symbol will be removed from its parent's
|
|
224
|
+
* scope. Any resolutions to this symbol will become undefined.
|
|
225
|
+
*/
|
|
226
|
+
deleteSymbol(symbol: OutputSymbol): void;
|
|
220
227
|
/**
|
|
221
228
|
* Instantiate the static members of a symbol into the instance members of
|
|
222
229
|
* another symbol.
|
package/dist/src/binder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../src/binder.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,GAAG,EAGJ,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../src/binder.ts"],"names":[],"mappings":"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"}
|
package/dist/src/binder.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { computed, effect, reactive, ref, shallowRef } from "@vue/reactivity";
|
|
2
|
+
import { useBinder } from "./context/binder.js";
|
|
2
3
|
import { useMemberScope } from "./context/member-scope.js";
|
|
3
4
|
import { useScope } from "./context/scope.js";
|
|
4
5
|
import { memo, untrack } from "./jsx-runtime.js";
|
|
@@ -114,6 +115,7 @@ export function createOutputBinder(options = {}) {
|
|
|
114
115
|
const binder = {
|
|
115
116
|
createScope,
|
|
116
117
|
createSymbol,
|
|
118
|
+
deleteSymbol,
|
|
117
119
|
resolveDeclarationByKey,
|
|
118
120
|
addStaticMembersToSymbol,
|
|
119
121
|
addInstanceMembersToSymbol,
|
|
@@ -241,9 +243,18 @@ export function createOutputBinder(options = {}) {
|
|
|
241
243
|
scope.symbols.add(symbol);
|
|
242
244
|
scope.symbolsByRefkey.set(symbol.refkey, symbol);
|
|
243
245
|
deconflict(symbol);
|
|
244
|
-
notifyRefkey(
|
|
246
|
+
notifyRefkey(symbol);
|
|
245
247
|
return symbol;
|
|
246
248
|
}
|
|
249
|
+
function deleteSymbol(symbol) {
|
|
250
|
+
symbol.scope.symbols.delete(symbol);
|
|
251
|
+
if (!refkey) {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
const resolution = waitingDeclarations.get(symbol.refkey);
|
|
255
|
+
if (!resolution) return;
|
|
256
|
+
resolution.value = undefined;
|
|
257
|
+
}
|
|
247
258
|
function instantiateSymbolInto(source, target) {
|
|
248
259
|
if (~source.flags & OutputSymbolFlags.InstanceMemberContainer) {
|
|
249
260
|
throw new Error("Can only instantiate symbols with instance members");
|
|
@@ -391,20 +402,27 @@ export function createOutputBinder(options = {}) {
|
|
|
391
402
|
}
|
|
392
403
|
return computed(() => cb(declSignal.value));
|
|
393
404
|
}
|
|
394
|
-
function notifyRefkey(
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
if (waitingName) {
|
|
405
|
-
waitingName.value = symbol;
|
|
405
|
+
function notifyRefkey(symbol) {
|
|
406
|
+
effect(() => {
|
|
407
|
+
const refkey = symbol.refkey;
|
|
408
|
+
if (!refkey) return;
|
|
409
|
+
|
|
410
|
+
// notify those waiting for this refkey
|
|
411
|
+
knownDeclarations.set(refkey, symbol);
|
|
412
|
+
if (waitingDeclarations.has(refkey)) {
|
|
413
|
+
const signal = waitingDeclarations.get(refkey);
|
|
414
|
+
signal.value = symbol;
|
|
406
415
|
}
|
|
407
|
-
|
|
416
|
+
|
|
417
|
+
// notify those waiting for this symbol name
|
|
418
|
+
const waitingScope = waitingSymbolNames.get(symbol.scope);
|
|
419
|
+
if (waitingScope) {
|
|
420
|
+
const waitingName = waitingScope.get(symbol.name);
|
|
421
|
+
if (waitingName) {
|
|
422
|
+
waitingName.value = symbol;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
});
|
|
408
426
|
}
|
|
409
427
|
function findSymbolName(scope, name) {
|
|
410
428
|
return untrack(() => {
|
|
@@ -496,7 +514,7 @@ export function createOutputBinder(options = {}) {
|
|
|
496
514
|
* is declared, the ref will be updated with the resolution result.
|
|
497
515
|
*/
|
|
498
516
|
export function resolve(refkey) {
|
|
499
|
-
const scope = useScope();
|
|
517
|
+
const scope = useScope() ?? useBinder().globalScope;
|
|
500
518
|
const memberScope = useMemberScope();
|
|
501
519
|
const binder = scope.binder;
|
|
502
520
|
return binder.resolveDeclarationByKey(scope, memberScope?.instanceMembers, refkey);
|
package/dist/src/binder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binder.js","names":["computed","effect","reactive","ref","shallowRef","useMemberScope","useScope","memo","untrack","refkey","OutputSymbolFlags","OutputScopeFlags","createOutputBinder","options","binder","createScope","createSymbol","resolveDeclarationByKey","addStaticMembersToSymbol","addInstanceMembersToSymbol","instantiateSymbolInto","findSymbolName","findScopeName","resolveFQN","globalScope","undefined","globalSymbols","Set","kind","name","symbols","symbolsByRefkey","Map","children","parent","flags","None","getSymbolNames","symbolNames","knownDeclarations","waitingDeclarations","waitingSymbolNames","waitingScopeNames","args","owner","rest","MemberScope","Error","parentScope","scope","add","has","waiting","get","value","useDefaultScope","Member","StaticMemberScope","InstanceMember","StaticMember","symbol","originalName","InstanceMemberContainer","instanceMemberScope","InstanceMemberScope","StaticMemberContainer","staticMemberScope","set","deconflict","notifyRefkey","source","target","sym","currentScope","currentMemberScope","key","targetDeclaration","buildResult","waitForRefkey","targetDeclarationBase","pathUp","pathDown","memberPath","commonScope","scopeChain","targetChain","scopeAndMemberChain","currentChain","diffStart","slice","length","at","result","currentSymbol","unshift","startScope","chain","existingNames","filter","nameConflictResolver","i","cb","declSignal","signal","waitingScope","waitingName","symRef","child","scopeRef","findScopeOrSymbolName","fqn","parts","match","base","op","resolve","memberScope","instanceMembers","createSymbolsSymbol","Symbol","getSymbolCreator","creator","getSymbolCreatorSymbol","names","values","staticMembers"],"sources":["../../src/binder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"binder.js","names":["computed","effect","reactive","ref","shallowRef","useBinder","useMemberScope","useScope","memo","untrack","refkey","OutputSymbolFlags","OutputScopeFlags","createOutputBinder","options","binder","createScope","createSymbol","deleteSymbol","resolveDeclarationByKey","addStaticMembersToSymbol","addInstanceMembersToSymbol","instantiateSymbolInto","findSymbolName","findScopeName","resolveFQN","globalScope","undefined","globalSymbols","Set","kind","name","symbols","symbolsByRefkey","Map","children","parent","flags","None","getSymbolNames","symbolNames","knownDeclarations","waitingDeclarations","waitingSymbolNames","waitingScopeNames","args","owner","rest","MemberScope","Error","parentScope","scope","add","has","waiting","get","value","useDefaultScope","Member","StaticMemberScope","InstanceMember","StaticMember","symbol","originalName","InstanceMemberContainer","instanceMemberScope","InstanceMemberScope","StaticMemberContainer","staticMemberScope","set","deconflict","notifyRefkey","delete","resolution","source","target","sym","currentScope","currentMemberScope","key","targetDeclaration","buildResult","waitForRefkey","targetDeclarationBase","pathUp","pathDown","memberPath","commonScope","scopeChain","targetChain","scopeAndMemberChain","currentChain","diffStart","slice","length","at","result","currentSymbol","unshift","startScope","chain","existingNames","filter","nameConflictResolver","i","cb","declSignal","signal","waitingScope","waitingName","symRef","child","scopeRef","findScopeOrSymbolName","fqn","parts","match","base","op","resolve","memberScope","instanceMembers","createSymbolsSymbol","Symbol","getSymbolCreator","creator","getSymbolCreatorSymbol","names","values","staticMembers"],"sources":["../../src/binder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/src/code.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { Child } from "
|
|
2
|
-
export declare function code(template: TemplateStringsArray, ...substitutions:
|
|
1
|
+
import { Child, Children } from "./jsx-runtime.js";
|
|
2
|
+
export declare function code(template: TemplateStringsArray, ...substitutions: Children[]): Child[];
|
|
3
3
|
//# sourceMappingURL=code.d.ts.map
|
package/dist/src/code.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/code.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../../src/code.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMnD,wBAAgB,IAAI,CAClB,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,WAkF7B"}
|
package/dist/src/code.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// this code is split into a tokenizer and a parser of sorts because I feel like
|
|
2
2
|
// it should be psosible to share logic between this and the babel transform, but
|
|
3
3
|
// this is an exercise for the future.
|
|
4
|
-
import {
|
|
4
|
+
import { hbr, indent } from "./components/stc/index.js";
|
|
5
5
|
export function code(template, ...substitutions) {
|
|
6
6
|
const indentNodes = [{
|
|
7
7
|
kind: "indent",
|
|
@@ -25,10 +25,11 @@ export function code(template, ...substitutions) {
|
|
|
25
25
|
}
|
|
26
26
|
popIndent();
|
|
27
27
|
flushLines();
|
|
28
|
+
return childNodesFor(indentNodes[0]);
|
|
28
29
|
function childNodesFor(indentNode) {
|
|
29
30
|
return indentNode.children.map(child => {
|
|
30
31
|
if (typeof child === "object" && child !== null && child.kind === "indent") {
|
|
31
|
-
return (
|
|
32
|
+
return indent({
|
|
32
33
|
children: childNodesFor(child)
|
|
33
34
|
});
|
|
34
35
|
} else {
|
|
@@ -36,7 +37,6 @@ export function code(template, ...substitutions) {
|
|
|
36
37
|
}
|
|
37
38
|
});
|
|
38
39
|
}
|
|
39
|
-
return childNodesFor(indentNodes[0]);
|
|
40
40
|
function pushIndent() {
|
|
41
41
|
flushLines();
|
|
42
42
|
const newIndent = {
|
|
@@ -61,7 +61,7 @@ export function code(template, ...substitutions) {
|
|
|
61
61
|
}
|
|
62
62
|
function flushLines() {
|
|
63
63
|
const currentIndent = indentNodes.at(-1);
|
|
64
|
-
currentIndent.children.push(currentIndent.pendingLines.
|
|
64
|
+
currentIndent.children.push(...currentIndent.pendingLines.map((str, index) => index < currentIndent.pendingLines.length - 1 ? [str, hbr()] : [str]).flat());
|
|
65
65
|
currentIndent.pendingLines = [];
|
|
66
66
|
}
|
|
67
67
|
}
|
package/dist/src/code.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code.js","names":["
|
|
1
|
+
{"version":3,"file":"code.js","names":["hbr","indent","code","template","substitutions","indentNodes","kind","children","pendingLines","child","childTokens","indentationLevel","length","pushIndent","popIndent","currentIndent","at","push","line","flushLines","value","childNodesFor","indentNode","map","newIndent","times","i","pop","str","index","flat","newline","indentStack","level","literalIndent","processLiteralString","undefined","pos","lines","split","lineTokens","match","shift","trimStart","lineNum","entries","lineIndent","startIndent"],"sources":["../../src/code.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Children } from "@alloy-js/core";
|
|
2
|
+
export interface BlockProps {
|
|
3
|
+
/**
|
|
4
|
+
* The opening punctuation of the block. Defaults to "\{".
|
|
5
|
+
*/
|
|
6
|
+
opener?: string;
|
|
7
|
+
/**
|
|
8
|
+
* The closing punctuation of the block. Defaults to "\}".
|
|
9
|
+
*/
|
|
10
|
+
closer?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Whether the block starts on a new line. When true, a hardline is added
|
|
13
|
+
* prior to the block.
|
|
14
|
+
*/
|
|
15
|
+
newline?: boolean;
|
|
16
|
+
/** The block's contents */
|
|
17
|
+
children?: Children;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Create an indented block of source text. The block has `opener` text which is
|
|
21
|
+
* added prior to the block, which defaults to "\{", and `closer` text which is
|
|
22
|
+
* added after the block, which defaults to "\}".
|
|
23
|
+
*/
|
|
24
|
+
export declare function Block(props: BlockProps): Children;
|
|
25
|
+
//# sourceMappingURL=Block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Block.d.ts","sourceRoot":"","sources":["../../../src/components/Block.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmC,MAAM,gBAAgB,CAAC;AAE3E,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,YAetC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
3
|
+
import { memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
4
|
+
import { childrenArray, computed, Indent } from "@alloy-js/core";
|
|
5
|
+
/**
|
|
6
|
+
* Create an indented block of source text. The block has `opener` text which is
|
|
7
|
+
* added prior to the block, which defaults to "\{", and `closer` text which is
|
|
8
|
+
* added after the block, which defaults to "\}".
|
|
9
|
+
*/
|
|
10
|
+
export function Block(props) {
|
|
11
|
+
const childCount = computed(() => childrenArray(() => props.children).length);
|
|
12
|
+
return _$createIntrinsic("group", {
|
|
13
|
+
get children() {
|
|
14
|
+
return [_$memo(() => _$memo(() => !!props.newline)() && _$createIntrinsic("br", {})), _$memo(() => props.opener ?? "{"), _$createComponent(Indent, {
|
|
15
|
+
get ["break"]() {
|
|
16
|
+
return childCount.value > 0 ? "hard" : "soft";
|
|
17
|
+
},
|
|
18
|
+
get children() {
|
|
19
|
+
return props.children;
|
|
20
|
+
}
|
|
21
|
+
}), _$memo(() => _$memo(() => childCount.value > 0)() ? _$createIntrinsic("hbr", {}) : _$createIntrinsic("sbr", {})), _$memo(() => props.closer ?? "}")];
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=Block.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Block.js","names":["childrenArray","computed","Indent","Block","props","childCount","children","length","_$createIntrinsic","_$memo","newline","opener","_$createComponent","break","value","closer"],"sources":["../../../src/components/Block.tsx"],"sourcesContent":[null],"mappings":";;;AAAA,SAAmBA,aAAa,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,gBAAgB;AAuB1E;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,KAAKA,CAACC,KAAiB,EAAE;EACvC,MAAMC,UAAU,GAAGJ,QAAQ,CAAC,MAAMD,aAAa,CAAC,MAAMI,KAAK,CAACE,QAAQ,CAAC,CAACC,MAAM,CAAC;EAC7E,OAAAC,iBAAA;IAAA,IAAAF,SAAA;MAAA,QAAAG,MAAA,OAEKA,MAAA,SAAAL,KAAK,CAACM,OAAO,OAAAF,iBAAA,UAAU,GAAAC,MAAA,OACvBL,KAAK,CAACO,MAAM,IAAI,GAAG,GAAAC,iBAAA,CACnBV,MAAM;QAAA,aAAAW,CAAA;UAAA,OAAQR,UAAU,CAACS,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM;QAAA;QAAA,IAAAR,SAAA;UAAA,OAClDF,KAAK,CAACE,QAAQ;QAAA;MAAA,IAAAG,MAAA,OAEhBA,MAAA,OAAAJ,UAAU,CAACS,KAAK,GAAG,CAAC,MAAAN,iBAAA,cAAAA,iBAAA,WAEZ,GAAAC,MAAA,OACRL,KAAK,CAACW,MAAM,IAAI,GAAG;IAAA;EAAA;AAG1B","ignoreList":[]}
|
|
@@ -25,5 +25,5 @@ export interface DeclarationProps {
|
|
|
25
25
|
*
|
|
26
26
|
* @see {@link BinderContext}
|
|
27
27
|
*/
|
|
28
|
-
export declare function Declaration(props: DeclarationProps):
|
|
28
|
+
export declare function Declaration(props: DeclarationProps): Children;
|
|
29
29
|
//# sourceMappingURL=Declaration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Declaration.d.ts","sourceRoot":"","sources":["../../../src/components/Declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI5C,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"Declaration.d.ts","sourceRoot":"","sources":["../../../src/components/Declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI5C,OAAO,EAAE,QAAQ,EAAa,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAU,MAAM,cAAc,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,YA0BlD"}
|
|
@@ -3,6 +3,7 @@ import { memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
|
3
3
|
import { useContext } from "../context.js";
|
|
4
4
|
import { BinderContext } from "../context/binder.js";
|
|
5
5
|
import { DeclarationContext } from "../context/declaration.js";
|
|
6
|
+
import { onCleanup } from "../jsx-runtime.js";
|
|
6
7
|
import { refkey } from "../refkey.js";
|
|
7
8
|
/**
|
|
8
9
|
* Declares a symbol in the current scope for this component's children.
|
|
@@ -36,6 +37,9 @@ export function Declaration(props) {
|
|
|
36
37
|
name: props.name,
|
|
37
38
|
refkey: rk
|
|
38
39
|
});
|
|
40
|
+
onCleanup(() => {
|
|
41
|
+
binder.deleteSymbol(declaration);
|
|
42
|
+
});
|
|
39
43
|
}
|
|
40
44
|
return _$createComponent(DeclarationContext.Provider, {
|
|
41
45
|
value: declaration,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Declaration.js","names":["useContext","BinderContext","DeclarationContext","refkey","Declaration","props","binder","Error","declaration","symbol","rk","name","createSymbol","_$createComponent","Provider","value","children"],"sources":["../../../src/components/Declaration.tsx"],"sourcesContent":[null],"mappings":";;AACA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,kBAAkB,QAAQ,2BAA2B;
|
|
1
|
+
{"version":3,"file":"Declaration.js","names":["useContext","BinderContext","DeclarationContext","onCleanup","refkey","Declaration","props","binder","Error","declaration","symbol","rk","name","createSymbol","deleteSymbol","_$createComponent","Provider","value","children"],"sources":["../../../src/components/Declaration.tsx"],"sourcesContent":[null],"mappings":";;AACA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,kBAAkB,QAAQ,2BAA2B;AAC9D,SAAmBC,SAAS,QAAQ,mBAAmB;AACvD,SAAiBC,MAAM,QAAQ,cAAc;AAS7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAE;EACnD,MAAMC,MAAM,GAAGP,UAAU,CAACC,aAAa,CAAC;EACxC,IAAI,CAACM,MAAM,EAAE;IACX,MAAM,IAAIC,KAAK,CAAC,4CAA4C,CAAC;EAC/D;EAEA,IAAIC,WAAW;EACf,IAAIH,KAAK,CAACI,MAAM,EAAE;IAChBD,WAAW,GAAGH,KAAK,CAACI,MAAM;EAC5B,CAAC,MAAM;IACL,MAAMC,EAAE,GAAGL,KAAK,CAACF,MAAM,GAAGE,KAAK,CAACF,MAAM,GAAGA,MAAM,CAACE,KAAK,CAACM,IAAI,CAAC;IAC3DH,WAAW,GAAGF,MAAM,CAACM,YAAY,CAAC;MAChCD,IAAI,EAAEN,KAAK,CAACM,IAAK;MACjBR,MAAM,EAAEO;IACV,CAAC,CAAC;IAEFR,SAAS,CAAC,MAAM;MACdI,MAAM,CAACO,YAAY,CAACL,WAAY,CAAC;IACnC,CAAC,CAAC;EACJ;EAEA,OAAAM,iBAAA,CACGb,kBAAkB,CAACc,QAAQ;IAACC,KAAK,EAAER,WAAW;IAAA,IAAAS,SAAA;MAAA,OAC5CZ,KAAK,CAACY,QAAQ;IAAA;EAAA;AAGrB","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Children } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { Ref } from "@vue/reactivity";
|
|
3
|
+
import { BaseListProps } from "./List.jsx";
|
|
4
|
+
export type ForCallbackArgs<T> = T extends Ref<infer U> ? ForCallbackArgs<U> : T extends () => infer U ? ForCallbackArgs<U> : T extends (infer U)[] ? [value: U] : T extends Map<infer U, infer V> ? [key: U, value: V] : T extends Set<infer U> ? [value: U] : [];
|
|
5
|
+
export interface ForProps<T extends ForSupportedCollections | (() => ForSupportedCollections) | Ref<ForSupportedCollections>, U extends Children> extends BaseListProps {
|
|
6
|
+
/**
|
|
7
|
+
* The array to iterate over.
|
|
8
|
+
*/
|
|
9
|
+
each: T;
|
|
10
|
+
/**
|
|
11
|
+
* A function to call for each item.
|
|
12
|
+
*/
|
|
13
|
+
children: (...args: [...ForCallbackArgs<T>, index: number]) => U;
|
|
14
|
+
}
|
|
15
|
+
export type ForSupportedCollections = any[] | Map<any, any> | Set<any>;
|
|
16
|
+
/**
|
|
17
|
+
* The For component iterates over the provided array and invokes the child
|
|
18
|
+
* callback for each item. It can optionally be provided with a `joiner` which
|
|
19
|
+
* is placed between each item, and an `ender` which is placed after the last
|
|
20
|
+
* item when there is at least one item.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
*
|
|
24
|
+
* ```tsx
|
|
25
|
+
* const items = ["apple", "pear", "plum"];
|
|
26
|
+
* return <For each={items}>
|
|
27
|
+
* {(item) => <>Fruit: {item}</>}
|
|
28
|
+
* </For>
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @remarks
|
|
32
|
+
*
|
|
33
|
+
* When the `each` prop is a reactive (e.g. a reactive array, or ref to an
|
|
34
|
+
* array), `For` will automatically update when the array changes. When doing
|
|
35
|
+
* so, it will attempt to avoid re-rendering items which have not changed. For
|
|
36
|
+
* example, when appending an item to a reactive array, existing items will not
|
|
37
|
+
* be re-rendered. Note that presently the implementation is fairly simple -
|
|
38
|
+
* when making modifications to the middle of an array it likely that every
|
|
39
|
+
* element after the modification will be rerendered.
|
|
40
|
+
*
|
|
41
|
+
* @see {@link (mapJoin:1)} for mapping arrays to elements outside of JSX templates.
|
|
42
|
+
*/
|
|
43
|
+
export declare function For<T extends ForSupportedCollections | (() => ForSupportedCollections) | Ref<ForSupportedCollections>, U extends Children>(props: ForProps<T, U>): () => any;
|
|
44
|
+
//# sourceMappingURL=For.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"For.d.ts","sourceRoot":"","sources":["../../../src/components/For.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAQ,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAS,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAA8B,MAAM,YAAY,CAAC;AAEvE,MAAM,MAAM,eAAe,CAAC,CAAC,IAC3B,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GACzC,CAAC,SAAS,MAAM,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAC5C,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAClC,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,GACpD,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GACnC,EAAE,CAAC;AAEP,MAAM,WAAW,QAAQ,CACvB,CAAC,SACG,uBAAuB,GACvB,CAAC,MAAM,uBAAuB,CAAC,GAC/B,GAAG,CAAC,uBAAuB,CAAC,EAChC,CAAC,SAAS,QAAQ,CAClB,SAAQ,aAAa;IACrB;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC;IAER;;OAEG;IACH,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;CAClE;AAED,MAAM,MAAM,uBAAuB,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACvE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,GAAG,CACjB,CAAC,SACG,uBAAuB,GACvB,CAAC,MAAM,uBAAuB,CAAC,GAC/B,GAAG,CAAC,uBAAuB,CAAC,EAChC,CAAC,SAAS,QAAQ,EAClB,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,aAetB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { memo } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { isRef } from "@vue/reactivity";
|
|
3
|
+
import { mapJoin } from "../utils.js";
|
|
4
|
+
import { baseListPropsToMapJoinArgs } from "./List.js";
|
|
5
|
+
/**
|
|
6
|
+
* The For component iterates over the provided array and invokes the child
|
|
7
|
+
* callback for each item. It can optionally be provided with a `joiner` which
|
|
8
|
+
* is placed between each item, and an `ender` which is placed after the last
|
|
9
|
+
* item when there is at least one item.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
*
|
|
13
|
+
* ```tsx
|
|
14
|
+
* const items = ["apple", "pear", "plum"];
|
|
15
|
+
* return <For each={items}>
|
|
16
|
+
* {(item) => <>Fruit: {item}</>}
|
|
17
|
+
* </For>
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
*
|
|
22
|
+
* When the `each` prop is a reactive (e.g. a reactive array, or ref to an
|
|
23
|
+
* array), `For` will automatically update when the array changes. When doing
|
|
24
|
+
* so, it will attempt to avoid re-rendering items which have not changed. For
|
|
25
|
+
* example, when appending an item to a reactive array, existing items will not
|
|
26
|
+
* be re-rendered. Note that presently the implementation is fairly simple -
|
|
27
|
+
* when making modifications to the middle of an array it likely that every
|
|
28
|
+
* element after the modification will be rerendered.
|
|
29
|
+
*
|
|
30
|
+
* @see {@link (mapJoin:1)} for mapping arrays to elements outside of JSX templates.
|
|
31
|
+
*/
|
|
32
|
+
export function For(props) {
|
|
33
|
+
const cb = props.children;
|
|
34
|
+
const options = baseListPropsToMapJoinArgs(props);
|
|
35
|
+
options.skipFalsy = true;
|
|
36
|
+
return memo(() => {
|
|
37
|
+
const maybeRef = props.each;
|
|
38
|
+
return mapJoin(typeof maybeRef === "function" ? maybeRef : () => isRef(maybeRef) ? maybeRef.value : maybeRef, cb, options);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=For.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"For.js","names":["memo","isRef","mapJoin","baseListPropsToMapJoinArgs","For","props","cb","children","options","skipFalsy","maybeRef","each","value"],"sources":["../../../src/components/For.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAAmBA,IAAI,QAAQ,4BAA4B;AAC3D,SAASC,KAAK,QAAa,iBAAiB;AAC5C,SAASC,OAAO,QAAQ,aAAa;AACrC,SAAwBC,0BAA0B;AA6BlD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,GAAGA,CAMjBC,KAAqB,EAAE;EACvB,MAAMC,EAAE,GAAGD,KAAK,CAACE,QAAQ;EACzB,MAAMC,OAAO,GAAGL,0BAA0B,CAACE,KAAK,CAAC;EACjDG,OAAO,CAACC,SAAS,GAAG,IAAI;EACxB,OAAOT,IAAI,CAAC,MAAM;IAChB,MAAMU,QAAQ,GAAGL,KAAK,CAACM,IAAI;IAE3B,OAAQT,OAAO,CACb,OAAOQ,QAAQ,KAAK,UAAU,GAAGA,QAAQ,GACvC,MAAOT,KAAK,CAACS,QAAQ,CAAC,GAAGA,QAAQ,CAACE,KAAK,GAAGF,QAC3C,EACDJ,EAAE,EACFE,OACF,CAAC;EACH,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import { Children } from "
|
|
1
|
+
import { Children } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
export interface IndentProps {
|
|
3
|
-
children
|
|
4
|
-
|
|
3
|
+
children: Children;
|
|
4
|
+
nobreak?: boolean;
|
|
5
|
+
break?: "space" | "soft" | "hard";
|
|
6
|
+
trailingBreak?: boolean;
|
|
5
7
|
}
|
|
6
|
-
export
|
|
7
|
-
level: number;
|
|
8
|
-
indent: string;
|
|
9
|
-
indentString: string;
|
|
10
|
-
noLeading?: boolean;
|
|
11
|
-
}
|
|
12
|
-
export declare function Indent(props: IndentProps): any;
|
|
8
|
+
export declare function Indent(props: IndentProps): Children;
|
|
13
9
|
//# sourceMappingURL=Indent.d.ts.map
|