legend-doctor 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/EXAMPLES.md +68 -8
  2. package/REPORT.md +3 -1
  3. package/dist/src/analysis/verdicts/control-flow-gate.d.ts +9 -0
  4. package/dist/src/analysis/verdicts/control-flow-gate.d.ts.map +1 -0
  5. package/dist/src/analysis/verdicts/control-flow-gate.js +66 -0
  6. package/dist/src/analysis/verdicts/control-flow-gate.js.map +1 -0
  7. package/dist/src/analysis/verdicts/subtree-verdicts.d.ts.map +1 -1
  8. package/dist/src/analysis/verdicts/subtree-verdicts.js +3 -1
  9. package/dist/src/analysis/verdicts/subtree-verdicts.js.map +1 -1
  10. package/dist/src/core/types.d.ts +1 -1
  11. package/dist/src/core/types.d.ts.map +1 -1
  12. package/dist/src/core/types.js +1 -0
  13. package/dist/src/core/types.js.map +1 -1
  14. package/dist/src/practices/practice-rules.d.ts +1 -1
  15. package/dist/src/practices/practice-rules.d.ts.map +1 -1
  16. package/dist/src/practices/practice-rules.js +11 -0
  17. package/dist/src/practices/practice-rules.js.map +1 -1
  18. package/dist/src/rules/control-flow-components/control-flow-slots.d.ts +60 -0
  19. package/dist/src/rules/control-flow-components/control-flow-slots.d.ts.map +1 -0
  20. package/dist/src/rules/control-flow-components/control-flow-slots.js +233 -0
  21. package/dist/src/rules/control-flow-components/control-flow-slots.js.map +1 -0
  22. package/dist/src/rules/literal-boolean-leaf/boolean-setters.d.ts +1 -0
  23. package/dist/src/rules/literal-boolean-leaf/boolean-setters.d.ts.map +1 -1
  24. package/dist/src/rules/literal-boolean-leaf/boolean-setters.js +1 -1
  25. package/dist/src/rules/literal-boolean-leaf/boolean-setters.js.map +1 -1
  26. package/dist/src/rules/observable-lists/observable-lists.d.ts +11 -0
  27. package/dist/src/rules/observable-lists/observable-lists.d.ts.map +1 -0
  28. package/dist/src/rules/observable-lists/observable-lists.js +134 -0
  29. package/dist/src/rules/observable-lists/observable-lists.js.map +1 -0
  30. package/dist/src/rules/observable-lists/tracked-row-keys.d.ts +11 -0
  31. package/dist/src/rules/observable-lists/tracked-row-keys.d.ts.map +1 -0
  32. package/dist/src/rules/observable-lists/tracked-row-keys.js +108 -0
  33. package/dist/src/rules/observable-lists/tracked-row-keys.js.map +1 -0
  34. package/dist/src/rules/observable-reads/control-flow-move-down.d.ts +13 -0
  35. package/dist/src/rules/observable-reads/control-flow-move-down.d.ts.map +1 -0
  36. package/dist/src/rules/observable-reads/control-flow-move-down.js +36 -0
  37. package/dist/src/rules/observable-reads/control-flow-move-down.js.map +1 -0
  38. package/dist/src/rules/observable-reads/move-down.d.ts.map +1 -1
  39. package/dist/src/rules/observable-reads/move-down.js +8 -1
  40. package/dist/src/rules/observable-reads/move-down.js.map +1 -1
  41. package/dist/src/rules/observable-tracking/reactive-inputs.d.ts +4 -0
  42. package/dist/src/rules/observable-tracking/reactive-inputs.d.ts.map +1 -1
  43. package/dist/src/rules/observable-tracking/reactive-inputs.js +1 -1
  44. package/dist/src/rules/observable-tracking/reactive-inputs.js.map +1 -1
  45. package/package.json +1 -1
package/EXAMPLES.md CHANGED
@@ -12,7 +12,15 @@ The snippets assume these imports when needed:
12
12
 
13
13
  ```tsx
14
14
  import { batch, type Observable } from "@legendapp/state";
15
- import { Computed, useObservable, useObserveEffect, useValue } from "@legendapp/state/react";
15
+ import {
16
+ Computed,
17
+ For,
18
+ Show,
19
+ Switch,
20
+ useObservable,
21
+ useObserveEffect,
22
+ useValue,
23
+ } from "@legendapp/state/react";
16
24
  import { $React } from "@legendapp/state/react-web";
17
25
  ```
18
26
 
@@ -491,7 +499,7 @@ microtask, so it saves them together either way.
491
499
 
492
500
  ### Preserve a conditional child's mount behavior
493
501
 
494
- Keep the observable at the owner. Put the condition in a stable leaf.
502
+ Keep the observable at the owner. Let `Show` hold the condition.
495
503
 
496
504
  ```tsx
497
505
  function Page() {
@@ -500,17 +508,26 @@ function Page() {
500
508
  <>
501
509
  <Canvas />
502
510
  <button onClick={() => open$.set(true)}>Open</button>
503
- <PanelGate open$={open$} />
511
+ <Show if={open$}>{() => <Panel />}</Show>
504
512
  </>
505
513
  );
506
514
  }
507
-
508
- function PanelGate({ open$ }: { open$: Observable<boolean> }) {
509
- return useValue(open$) ? <Panel /> : null;
510
- }
511
515
  ```
512
516
 
513
- `PanelGate` stays mounted. `Panel` keeps its original conditional mount.
517
+ `Show` stays mounted as the only subscriber and calls its child function only while the condition holds, so
518
+ `Panel` keeps its original conditional mount. It re-renders with the owner, so values the child captures stay
519
+ current. `cond ? <A /> : <B />` becomes `<Show if={cond$} else={() => <B />}>{() => <A />}</Show>`, and a chain
520
+ of `tab === "posts" ? ... : tab === "media" ? ... : ...` becomes `<Switch value={tab$}>` with one arm per value
521
+ and a `default` arm. Both return the selected element from one position, so a branch keeps its state across
522
+ toggles exactly when it did before. A finding uses this form only when it renders the same thing:
523
+
524
+ - A `&&` condition must be boolean. A falsy `0` or `""` would render under `&&` but not under `Show`.
525
+ - A value narrowed by the condition is not read in a branch, because `get()` would lose the narrowing.
526
+ - The slot reads no other observable with `get()` and calls no hook, since `Show` tracks its child function.
527
+ - A ternary sits directly in a host element or fragment, which never inspects its children.
528
+ - `Switch` needs every value the state can hold to be a string literal outside `Object.prototype`.
529
+
530
+ Otherwise the finding asks for an always-mounted wrapper component that evaluates the slot as written.
514
531
 
515
532
  ### Subscribe once per keyed row
516
533
 
@@ -527,6 +544,39 @@ rows.map((row) => <RowState key={row.id} id={row.id} selectedId$={selectedId$} /
527
544
 
528
545
  Index keys and state-controlled row mounts need review.
529
546
 
547
+ ### Render an observable list with For
548
+
549
+ `render-list-with-for` changes a component whose only read of an observable array is a keyed map.
550
+
551
+ ```tsx
552
+ // Before: a change to one todo renders Todos and every row
553
+ const todos = useValue(todos$);
554
+ return (
555
+ <ul>
556
+ {todos.map((todo) => (
557
+ <TodoRow key={todo.id} todo={todo} />
558
+ ))}
559
+ </ul>
560
+ );
561
+
562
+ // After: a change to one todo renders its row
563
+ return (
564
+ <ul>
565
+ <For each={todos$}>
566
+ {(todo$) => {
567
+ const todo = todo$.get();
568
+ return <TodoRow todo={todo} />;
569
+ }}
570
+ </For>
571
+ </ul>
572
+ );
573
+ ```
574
+
575
+ `For` subscribes to the array shallowly and renders each row in its own observer, keyed by the item's `id`.
576
+ Rows do not re-render with the component, so a row that captures a prop, state, or other render value would keep
577
+ its first value; those maps, index keys, keys other than `item.id`, rows that read other observables, and maps
578
+ inside a component that inspects its children stay unchanged.
579
+
530
580
  ## Keep command state out of renders
531
581
 
532
582
  ### Replace render-free state with a ref
@@ -562,6 +612,16 @@ const save = () => persist(settings$.theme.peek()); // After
562
612
 
563
613
  Render reads and reactive callbacks keep tracking reads. The finding's `edits` rename `get` to `peek`.
564
614
 
615
+ A row `key` read with `get()` inside an `observer` render or a `Computed`, `Memo`, `Show`, or `For` child function
616
+ is a `candidate`. The tracked read subscribes the parent to every row's key; `For` derives keys without tracking
617
+ them. The two differ only when code rewrites a key in place, which remounts the row under `get()` and keeps it
618
+ under `peek()`, so confirm no such write exists.
619
+
620
+ ```tsx
621
+ <For each={todos$}>{(todo$) => <TodoRow key={todo$.id.get()} todo$={todo$} />}</For> // Before
622
+ <For each={todos$}>{(todo$) => <TodoRow key={todo$.id.peek()} todo$={todo$} />}</For> // After
623
+ ```
624
+
565
625
  ## Track every render read
566
626
 
567
627
  Legend tracks a `get()` only inside a tracking context: `useValue`, `observer`, a reactive component's selector, or
package/REPORT.md CHANGED
@@ -239,7 +239,9 @@ a type assertion, when a render read follows an early return or sits in JSX, a b
239
239
  when only a new import declaration would bring the hook into scope, when a render read would reuse a legacy
240
240
  binding that the file's legacy migration removes, when a destructure is annotated or its call has type arguments,
241
241
  when a legacy binding is referenced other than by a reported call, and when a `Memo` import swap would touch the
242
- specifier another rule adds `useValue` beside. Hoisting instructions, `move-*`, `split-*`, and batching stay prose;
242
+ specifier another rule adds `useValue` beside. Hoisting instructions, `move-*`, `split-*`, `render-list-with-for`, and
243
+ batching stay prose; so do the `Show`, `Switch`, and `For` elements an instruction writes, which elide a branch or row
244
+ longer than one short line as `<Tag … />`;
243
245
  a render initializer below an early return or `throw` is told to move above it. Every instruction for a new
244
246
  subscription, including `useState` and `useEffect` findings and instructions for other files such as the consumers of
245
247
  a context, names the file's `useValue` binding or `useValue`. A description of an existing subscription, such as the
@@ -0,0 +1,9 @@
1
+ import type { StateSubtree } from "../model.js";
2
+ import type { StateClassificationContext } from "./classification-context.js";
3
+ /**
4
+ * The gate verdict's always-mounted leaf, written as the Legend component that already is one.
5
+ * A logical gate leaf replaces the slot and a ternary gate leaf wraps the slot's enclosing element;
6
+ * `Show` or `Switch` replaces the slot in either case, so its parent must ignore its children.
7
+ */
8
+ export declare function controlFlowGateMessage({ hostTags, state, usage }: StateClassificationContext, gate: StateSubtree): string | null;
9
+ //# sourceMappingURL=control-flow-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-flow-gate.d.ts","sourceRoot":"","sources":["../../../../src/analysis/verdicts/control-flow-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,YAAY,EAAc,MAAM,aAAa,CAAC;AAQ5E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAM9E;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,0BAA0B,EACtD,IAAI,EAAE,YAAY,GACjB,MAAM,GAAG,IAAI,CAoBf"}
@@ -0,0 +1,66 @@
1
+ import { controlFlowElement, controlFlowSlot, elidedReadNote, hostChildSlot, } from "../../rules/control-flow-components/control-flow-slots.js";
2
+ import { isIdentifierNamed, unwrapTransparentExpression } from "../../core/analysis-ast.js";
3
+ import { isPureBooleanSetter } from "../../rules/literal-boolean-leaf/boolean-setters.js";
4
+ import { lineOf } from "../../core/ast.js";
5
+ import ts from "typescript";
6
+ /**
7
+ * The gate verdict's always-mounted leaf, written as the Legend component that already is one.
8
+ * A logical gate leaf replaces the slot and a ternary gate leaf wraps the slot's enclosing element;
9
+ * `Show` or `Switch` replaces the slot in either case, so its parent must ignore its children.
10
+ */
11
+ export function controlFlowGateMessage({ hostTags, state, usage }, gate) {
12
+ const references = usage.directRenderNodes;
13
+ const slot = references[0] ? hostChildSlot(references[0], hostTags) : null;
14
+ const read = {
15
+ observable: `${state.valueName}$`,
16
+ references,
17
+ values: stateValues(state, usage),
18
+ };
19
+ const control = slot ? controlFlowSlot(slot, read) : null;
20
+ const replacesGateLeaf = slot?.parent === gate.node ||
21
+ (control?.kind === "show" && control.alternate === null && control.content === gate.node);
22
+ if (!slot || !control || !replacesGateLeaf) {
23
+ return null;
24
+ }
25
+ const [component, selection] = control.kind === "show"
26
+ ? ["Show", "calls the child function only while the condition holds"]
27
+ : ["Switch", "calls only the selected arm"];
28
+ return `Replace \`${state.valueName}\` with a component-lifetime observable and replace the state-controlled slot at line ${lineOf(slot)} with \`${controlFlowElement(control, read)}\`. \`${component}\` is the only subscriber: it stays mounted, ${selection}, and re-renders with this owner, so each branch keeps its mount behavior and current props.${elidedReadNote(control, read)}`;
29
+ }
30
+ /**
31
+ * The values React state can hold when its initializer and every setter call are literal or
32
+ * boolean-valued. A setter handed to other code could write anything, so it proves nothing.
33
+ */
34
+ function stateValues(state, usage) {
35
+ const [initializer] = state.call.arguments;
36
+ const initial = initializer && state.call.arguments.length === 1 && usage.setterReferences === usage.setterCalls
37
+ ? unwrapTransparentExpression(initializer)
38
+ : null;
39
+ const writes = usage.setterCallNodes.map(({ arguments: [argument, ...rest] }) => argument && rest.length === 0 ? unwrapTransparentExpression(argument) : null);
40
+ const literalWrites = [initial, ...writes].filter((write) => write !== null && ts.isStringLiteralLike(write));
41
+ return {
42
+ boolean: (initial?.kind === ts.SyntaxKind.TrueKeyword ||
43
+ initial?.kind === ts.SyntaxKind.FalseKeyword) &&
44
+ usage.setterCallNodes.every((call, index) => isPureBooleanSetter(call) || isNegatingUpdater(writes[index] ?? null)),
45
+ literals: initial && literalWrites.length === writes.length + 1
46
+ ? new Set(literalWrites.map((write) => write.text))
47
+ : null,
48
+ };
49
+ }
50
+ /** `(value) => !value`. */
51
+ function isNegatingUpdater(updater) {
52
+ if (!updater ||
53
+ !ts.isArrowFunction(updater) ||
54
+ updater.parameters.length !== 1 ||
55
+ !ts.isExpression(updater.body)) {
56
+ return false;
57
+ }
58
+ const [parameter] = updater.parameters;
59
+ const body = unwrapTransparentExpression(updater.body);
60
+ return (parameter !== undefined &&
61
+ ts.isIdentifier(parameter.name) &&
62
+ ts.isPrefixUnaryExpression(body) &&
63
+ body.operator === ts.SyntaxKind.ExclamationToken &&
64
+ isIdentifierNamed(body.operand, parameter.name.text));
65
+ }
66
+ //# sourceMappingURL=control-flow-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-flow-gate.js","sourceRoot":"","sources":["../../../../src/analysis/verdicts/control-flow-gate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"subtree-verdicts.d.ts","sourceRoot":"","sources":["../../../../src/analysis/verdicts/subtree-verdicts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAA8B,MAAM,aAAa,CAAC;AAI/E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAW9E,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CAuBxB;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CAsCxB;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CAYxB;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CAWxB;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CAYxB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CA6BxB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CAoCxB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CA+BxB;AAgBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,eAAe,GAAG,IAAI,CAuB/F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,eAAe,GAAG,IAAI,CAiB/F;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CAoCxB"}
1
+ {"version":3,"file":"subtree-verdicts.d.ts","sourceRoot":"","sources":["../../../../src/analysis/verdicts/subtree-verdicts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAA8B,MAAM,aAAa,CAAC;AAI/E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAY9E,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CAuBxB;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CAsCxB;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CAYxB;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CAWxB;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CAYxB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CA6BxB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CAoCxB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CA+BxB;AAgBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,eAAe,GAAG,IAAI,CAyB/F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,eAAe,GAAG,IAAI,CAiB/F;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,0BAA0B,GAClC,eAAe,GAAG,IAAI,CAoCxB"}
@@ -1,6 +1,7 @@
1
1
  import { DEFAULT_PRESENTATION_LEAF_COUNT, WIDE_OWNER_LINE_SPAN } from "../constants.js";
2
2
  import { isCustomHookOwner, ownerLineSpan } from "../ast-helpers.js";
3
3
  import { isStructuralLegendCandidate, legendCandidateMessage } from "../finding-format.js";
4
+ import { controlFlowGateMessage } from "./control-flow-gate.js";
4
5
  import { hasNoEffectReads } from "../state-usage.js";
5
6
  import { jsxElementCount } from "../../rules/state-proofs/jsx-subtrees.js";
6
7
  import { passThroughScope } from "./pass-through-leaf.js";
@@ -205,7 +206,8 @@ export function gatedSubtreeVerdict(context) {
205
206
  return {
206
207
  action: "use-observable",
207
208
  confidence: "probable",
208
- message: `Replace \`${state.valueName}\` with a component-lifetime observable and replace the full state-controlled render expression at the ${gateSubtree.label} boundary on line ${gateSubtree.line} with one always-mounted leaf subscriber; evaluate the complete gate and its selected content inside that wrapper so an initially hidden child can still open.`,
209
+ message: controlFlowGateMessage(context, gateSubtree) ??
210
+ `Replace \`${state.valueName}\` with a component-lifetime observable and replace the full state-controlled render expression at the ${gateSubtree.label} boundary on line ${gateSubtree.line} with one always-mounted leaf subscriber; evaluate the complete gate and its selected content inside that wrapper so an initially hidden child can still open.`,
209
211
  };
210
212
  }
211
213
  if (projectionSubtree && !hasCompanionWrites) {
@@ -1 +1 @@
1
- {"version":3,"file":"subtree-verdicts.js","sourceRoot":"","sources":["../../../../src/analysis/verdicts/subtree-verdicts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subtree-verdicts.js","sourceRoot":"","sources":["../../../../src/analysis/verdicts/subtree-verdicts.ts"],"names":[],"mappings":"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"}
@@ -70,7 +70,7 @@ type StateAction = (typeof STATE_ACTIONS)[number];
70
70
  declare const EFFECT_ACTIONS: readonly ["delete-effect", "move-to-event", "reset-during-render", "use-mount", "use-unmount", "use-observe-effect", "persist-observable", "keep-effect", "review-effect"];
71
71
  type EffectAction = (typeof EFFECT_ACTIONS)[number];
72
72
  type HookAction = StateAction | EffectAction;
73
- declare const LEGEND_PRACTICE_ACTIONS: readonly ["select-primitive-projection", "assign-observable-fields", "batch-observable-writes", "move-use-value-into-child", "move-use-value-down", "narrow-observable-write", "narrow-use-value-subscription", "pass-observable-to-use-value", "peek-unrendered-use-value", "replace-legacy-use-value", "reuse-observable-reference", "select-stable-selector-result", "snapshot-mutated-use-value", "split-use-value-leaves", "toggle-observable", "use-computed-for-parent-reads", "use-peek-for-snapshot", "use-value-for-render-read"];
73
+ declare const LEGEND_PRACTICE_ACTIONS: readonly ["select-primitive-projection", "assign-observable-fields", "batch-observable-writes", "move-use-value-into-child", "move-use-value-down", "narrow-observable-write", "narrow-use-value-subscription", "pass-observable-to-use-value", "peek-unrendered-use-value", "render-list-with-for", "replace-legacy-use-value", "reuse-observable-reference", "select-stable-selector-result", "snapshot-mutated-use-value", "split-use-value-leaves", "toggle-observable", "use-computed-for-parent-reads", "use-peek-for-snapshot", "use-value-for-render-read"];
74
74
  type LegendPracticeAction = (typeof LEGEND_PRACTICE_ACTIONS)[number];
75
75
  /** Practice actions whose findings can carry `edits`. */
76
76
  declare const EDITABLE_PRACTICE_ACTIONS: readonly ["narrow-use-value-subscription", "pass-observable-to-use-value", "replace-legacy-use-value", "select-primitive-projection", "use-computed-for-parent-reads", "use-peek-for-snapshot", "use-value-for-render-read"];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,KAAK,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;AAGzC,QAAA,MAAM,cAAc,EAAG,CAAU,CAAC;AAElC,QAAA,MAAM,kBAAkB,seAiBd,CAAC;AAEX,KAAK,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,QAAA,MAAM,WAAW,wCAAyC,CAAC;AAE3D,KAAK,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C,KAAK,gBAAgB,GAAG,IAAI,GAAG,KAAK,CAAC;AAErC,KAAK,gBAAgB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;AAEpE,sEAAsE;AACtE,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,oFAAoF;AACpF,UAAU,cAAc;IACtB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,KAAK,iBAAiB,GAClB,OAAO,CAAC,WAAW,EAAE,sBAAsB,GAAG,qBAAqB,GAAG,YAAY,CAAC,GACnF,qBAAqB,CAAC;AAE1B,iFAAiF;AACjF,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,wEAAwE;AACxE,UAAU,eAAe;IACvB,mGAAmG;IACnG,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,wFAAwF;IACxF,WAAW,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,EAAE,EAAE,MAAM,CAAC;IACX,iFAAiF;IACjF,WAAW,EAAE,iBAAiB,CAAC;IAC/B,uGAAuG;IACvG,OAAO,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAClC,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,MAAM,EAAE,gBAAgB,CAAC;IACzB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,QAAA,MAAM,aAAa,qJAST,CAAC;AAEX,KAAK,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD,QAAA,MAAM,cAAc,4KAUV,CAAC;AAEX,KAAK,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD,KAAK,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;AAE7C,QAAA,MAAM,uBAAuB,qiBAoBnB,CAAC;AAEX,KAAK,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,yDAAyD;AACzD,QAAA,MAAM,yBAAyB,8NAQqB,CAAC;AAErD,QAAA,MAAM,iBAAiB,0CAA2C,CAAC;AAEnE,QAAA,MAAM,qBAAqB,2CAA4C,CAAC;AAExE,QAAA,MAAM,YAAY,8GAQR,CAAC;AAEX,wFAAwF;AACxF,QAAA,MAAM,uBAAuB,6BAA8B,CAAC;AAE5D,KAAK,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,8FAA8F;AAC9F,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,UAAU,QAAQ;IAChB,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,cAAc,CAAC;CACvB;AAED,sFAAsF;AACtF,UAAU,YAAY;IACpB,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,iFAAiF;IACjF,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,yFAAyF;IACzF,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,uGAAuG;IACvG,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,iGAAiG;IACjG,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC;IAC/B,KAAK,CAAC,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,eAAe,CAAC;QACtB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE,cAAc,CAAC;IACzB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE;QACX,SAAS,EAAE,QAAQ,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;QAC9F,YAAY,EACR,YAAY,GACZ,gBAAgB,GAChB,MAAM,GACN,aAAa,GACb,iBAAiB,GACjB,QAAQ,CAAC;KACd,CAAC;CACH;AAED,UAAU,cAAc;IACtB,4FAA4F;IAC5F,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,IAAI,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;IACpC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;CACd;AAED,KAAK,WAAW,GAAG,eAAe,GAChC,CACI;IACE,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,EAAE,eAAe,GAAG,cAAc,CAAC;CAC1C,GACD;IACE,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,eAAe,GAAG,cAAc,CAAC,CAAC;CAC/D,CACJ,CAAC;AAEJ,UAAU,qBAAqB;IAC7B,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;IACpD;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC5B,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,CAAC;CAC3D;AAED,iEAAiE;AACjE,UAAU,mBAAmB;IAC3B,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,qHAAqH;AACrH,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,KAAK,mBAAmB,GAAG,WAAW,GAAG,eAAe,CAAC;AAEzD,KAAK,uBAAuB,GAAG,qBAAqB,GAAG,eAAe,CAAC;AAEvE,UAAU,cAAc;IACtB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,sDAAsD;IACtD,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,SAAS,EAAE,uBAAuB,EAAE,CAAC;IACrC,YAAY,EAAE,kBAAkB,CAAC;IACjC,aAAa,EAAE,OAAO,cAAc,CAAC;IACrC,uFAAuF;IACvF,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;AAED,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,oBAAoB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,kBAAkB;IAC1B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,gFAAgF;IAChF,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,UAAU,WAAW;IACnB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,UAAU,WAAW;IACnB,gGAAgG;IAChG,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,GACd,CAAC;AACF,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,WAAW,EACX,cAAc,EACd,cAAc,EACd,WAAW,EACX,eAAe,EACf,QAAQ,EACR,YAAY,GACb,CAAC"}
@@ -50,6 +50,7 @@ const LEGEND_PRACTICE_ACTIONS = [
50
50
  "narrow-use-value-subscription",
51
51
  "pass-observable-to-use-value",
52
52
  "peek-unrendered-use-value",
53
+ "render-list-with-for",
53
54
  "replace-legacy-use-value",
54
55
  "reuse-observable-reference",
55
56
  "select-stable-selector-result",
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAKA,oFAAoF;AACpF,MAAM,cAAc,GAAG,CAAU,CAAC;AAElC,MAAM,kBAAkB,GAAG;IACzB,iCAAiC;IACjC,4BAA4B;IAC5B,2BAA2B;IAC3B,4BAA4B;IAC5B,2BAA2B;IAC3B,8BAA8B;IAC9B,4BAA4B;IAC5B,gCAAgC;IAChC,mCAAmC;IACnC,yBAAyB;IACzB,wBAAwB;IACxB,2BAA2B;IAC3B,+BAA+B;IAC/B,wBAAwB;IACxB,qBAAqB;IACrB,uBAAuB;CACf,CAAC;AAIX,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC;AAwE3D,MAAM,aAAa,GAAG;IACpB,YAAY;IACZ,qBAAqB;IACrB,iBAAiB;IACjB,gBAAgB;IAChB,WAAW;IACX,sBAAsB;IACtB,SAAS;IACT,cAAc;CACN,CAAC;AAIX,MAAM,cAAc,GAAG;IACrB,eAAe;IACf,eAAe;IACf,qBAAqB;IACrB,WAAW;IACX,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,aAAa;IACb,eAAe;CACP,CAAC;AAMX,MAAM,uBAAuB,GAAG;IAC9B,6BAA6B;IAC7B,0BAA0B;IAC1B,yBAAyB;IACzB,2BAA2B;IAC3B,qBAAqB;IACrB,yBAAyB;IACzB,+BAA+B;IAC/B,8BAA8B;IAC9B,2BAA2B;IAC3B,0BAA0B;IAC1B,4BAA4B;IAC5B,+BAA+B;IAC/B,4BAA4B;IAC5B,wBAAwB;IACxB,mBAAmB;IACnB,+BAA+B;IAC/B,uBAAuB;IACvB,2BAA2B;CACnB,CAAC;AAIX,yDAAyD;AACzD,MAAM,yBAAyB,GAAG;IAChC,+BAA+B;IAC/B,8BAA8B;IAC9B,0BAA0B;IAC1B,6BAA6B;IAC7B,+BAA+B;IAC/B,uBAAuB;IACvB,2BAA2B;CACuB,CAAC;AAErD,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAEnE,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAU,CAAC;AAExE,MAAM,YAAY,GAAG;IACnB,SAAS;IACT,SAAS;IACT,UAAU;IACV,YAAY;IACZ,aAAa;IACb,mBAAmB;IACnB,aAAa;CACL,CAAC;AAEX,wFAAwF;AACxF,MAAM,uBAAuB,GAAG,CAAC,gBAAgB,CAAU,CAAC;AAwL5D,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,GACd,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/types.ts"],"names":[],"mappings":"AAKA,oFAAoF;AACpF,MAAM,cAAc,GAAG,CAAU,CAAC;AAElC,MAAM,kBAAkB,GAAG;IACzB,iCAAiC;IACjC,4BAA4B;IAC5B,2BAA2B;IAC3B,4BAA4B;IAC5B,2BAA2B;IAC3B,8BAA8B;IAC9B,4BAA4B;IAC5B,gCAAgC;IAChC,mCAAmC;IACnC,yBAAyB;IACzB,wBAAwB;IACxB,2BAA2B;IAC3B,+BAA+B;IAC/B,wBAAwB;IACxB,qBAAqB;IACrB,uBAAuB;CACf,CAAC;AAIX,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC;AAwE3D,MAAM,aAAa,GAAG;IACpB,YAAY;IACZ,qBAAqB;IACrB,iBAAiB;IACjB,gBAAgB;IAChB,WAAW;IACX,sBAAsB;IACtB,SAAS;IACT,cAAc;CACN,CAAC;AAIX,MAAM,cAAc,GAAG;IACrB,eAAe;IACf,eAAe;IACf,qBAAqB;IACrB,WAAW;IACX,aAAa;IACb,oBAAoB;IACpB,oBAAoB;IACpB,aAAa;IACb,eAAe;CACP,CAAC;AAMX,MAAM,uBAAuB,GAAG;IAC9B,6BAA6B;IAC7B,0BAA0B;IAC1B,yBAAyB;IACzB,2BAA2B;IAC3B,qBAAqB;IACrB,yBAAyB;IACzB,+BAA+B;IAC/B,8BAA8B;IAC9B,2BAA2B;IAC3B,sBAAsB;IACtB,0BAA0B;IAC1B,4BAA4B;IAC5B,+BAA+B;IAC/B,4BAA4B;IAC5B,wBAAwB;IACxB,mBAAmB;IACnB,+BAA+B;IAC/B,uBAAuB;IACvB,2BAA2B;CACnB,CAAC;AAIX,yDAAyD;AACzD,MAAM,yBAAyB,GAAG;IAChC,+BAA+B;IAC/B,8BAA8B;IAC9B,0BAA0B;IAC1B,6BAA6B;IAC7B,+BAA+B;IAC/B,uBAAuB;IACvB,2BAA2B;CACuB,CAAC;AAErD,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAEnE,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAU,CAAC;AAExE,MAAM,YAAY,GAAG;IACnB,SAAS;IACT,SAAS;IACT,UAAU;IACV,YAAY;IACZ,aAAa;IACb,mBAAmB;IACnB,aAAa;CACL,CAAC;AAEX,wFAAwF;AACxF,MAAM,uBAAuB,GAAG,CAAC,gBAAgB,CAAU,CAAC;AAwL5D,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,GACd,CAAC"}
@@ -4,7 +4,7 @@ import type { LegendPracticeFinding } from "../core/types.js";
4
4
  import type { LegendPracticesRequest } from "./model.js";
5
5
  import type { ObservableFieldFacts } from "../rules/observable-reads/field-writes.js";
6
6
  import type { SubscriptionInventory } from "../core/subscriptions.js";
7
- export type PracticeRuleId = "plain-primitive-projection" | "fresh-selector-results" | "in-place-memo-keys" | "legacy-use-value" | "memo-parent-captures" | "observable-clone-writes" | "observable-ownership" | "observable-reads" | "observable-toggle" | "observable-tracking" | "observable-transactions";
7
+ export type PracticeRuleId = "plain-primitive-projection" | "fresh-selector-results" | "in-place-memo-keys" | "legacy-use-value" | "memo-parent-captures" | "observable-clone-writes" | "observable-lists" | "observable-ownership" | "observable-reads" | "observable-toggle" | "observable-tracking" | "observable-transactions";
8
8
  export type PracticeRuleGateReason = "react-compiler";
9
9
  export interface PracticeRuleGate {
10
10
  readonly detail: string;
@@ -1 +1 @@
1
- {"version":3,"file":"practice-rules.d.ts","sourceRoot":"","sources":["../../../src/practices/practice-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AActE,MAAM,MAAM,cAAc,GACtB,4BAA4B,GAC5B,wBAAwB,GACxB,oBAAoB,GACpB,kBAAkB,GAClB,sBAAsB,GACtB,yBAAyB,GACzB,sBAAsB,GACtB,kBAAkB,GAClB,mBAAmB,GACnB,qBAAqB,GACrB,yBAAyB,CAAC;AAE9B,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,4FAA4F;IAC5F,QAAQ,CAAC,SAAS,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;CAC1C;AAED,MAAM,WAAW,YAAY;IAC3B,wFAAwF;IACxF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,KAAK,gBAAgB,GAAG,IAAI,CAAC;IACpF,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,gFAAgF;IAChF,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,SAAS,qBAAqB,EAAE,CAAC;CAC9E;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;CAC/B;AAQD,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EA8IjD,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,gBAAgB,GAAG,oBAAoB,EAAE,CAK5F;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,gBAAgB,GAAG,YAAY,EAAE,CAEnF"}
1
+ {"version":3,"file":"practice-rules.d.ts","sourceRoot":"","sources":["../../../src/practices/practice-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAetE,MAAM,MAAM,cAAc,GACtB,4BAA4B,GAC5B,wBAAwB,GACxB,oBAAoB,GACpB,kBAAkB,GAClB,sBAAsB,GACtB,yBAAyB,GACzB,kBAAkB,GAClB,sBAAsB,GACtB,kBAAkB,GAClB,mBAAmB,GACnB,qBAAqB,GACrB,yBAAyB,CAAC;AAE9B,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,4FAA4F;IAC5F,QAAQ,CAAC,SAAS,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;CAC1C;AAED,MAAM,WAAW,YAAY;IAC3B,wFAAwF;IACxF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,KAAK,gBAAgB,GAAG,IAAI,CAAC;IACpF,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;IAC5B,gFAAgF;IAChF,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,SAAS,qBAAqB,EAAE,CAAC;CAC9E;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;CAC/B;AAQD,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAyJjD,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,gBAAgB,GAAG,oBAAoB,EAAE,CAK5F;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,gBAAgB,GAAG,YAAY,EAAE,CAEnF"}
@@ -4,6 +4,7 @@ import { findInPlaceMemoKeyPractices } from "../rules/in-place-memo-keys/in-plac
4
4
  import { findLegacyUseValuePractices } from "../rules/legacy-use-value.js";
5
5
  import { findMemoParentCapturePractices } from "../rules/memo-parent-captures/memo-parent-captures.js";
6
6
  import { findObservableCloneWritePractices } from "../rules/observable-clone-writes/observable-clone-writes.js";
7
+ import { findObservableListPractices } from "../rules/observable-lists/observable-lists.js";
7
8
  import { findObservableOwnershipPractices } from "../rules/observable-ownership/observable-ownership.js";
8
9
  import { findObservableReadPractices } from "../rules/observable-reads/observable-reads.js";
9
10
  import { findObservableTogglePractices } from "../rules/observable-toggle.js";
@@ -133,6 +134,16 @@ export const PRACTICE_RULES = [
133
134
  sourceFile: request.sourceFile,
134
135
  }),
135
136
  },
137
+ {
138
+ id: "observable-lists",
139
+ needsObservableBindings: true,
140
+ run: ({ imports, observableBindings, request }) => findObservableListPractices({
141
+ fileName: request.fileName,
142
+ imports,
143
+ observableBindings,
144
+ sourceFile: request.sourceFile,
145
+ }),
146
+ },
136
147
  {
137
148
  id: "observable-ownership",
138
149
  needsObservableBindings: true,
@@ -1 +1 @@
1
- {"version":3,"file":"practice-rules.js","sourceRoot":"","sources":["../../../src/practices/practice-rules.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,uDAAuD,CAAC;AACvG,OAAO,EAAE,iCAAiC,EAAE,MAAM,6DAA6D,CAAC;AAChH,OAAO,EAAE,gCAAgC,EAAE,MAAM,uDAAuD,CAAC;AACzG,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AA4CxF,MAAM,mBAAmB,GAAqB;IAC5C,MAAM,EACJ,8GAA8G;IAChH,MAAM,EAAE,gBAAgB;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD;QACE,EAAE,EAAE,4BAA4B;QAChC,uBAAuB,EAAE,IAAI;QAC7B,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CAChD,wBAAwB,CAAC;YACvB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,cAAc,EAAE,OAAO,CAAC,wBAAwB;YAChD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,oBAAoB,EAAE,OAAO,CAAC,8BAA8B,IAAI,IAAI,GAAG,EAAE;YACzE,OAAO;YACP,kBAAkB;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC7C,CAAC;KACL;IACD;QACE,EAAE,EAAE,wBAAwB;QAC5B,uBAAuB,EAAE,IAAI;QAC7B,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CAChD,wBAAwB,CAAC;YACvB,cAAc,EAAE,OAAO,CAAC,wBAAwB;YAChD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,oBAAoB,EAAE,OAAO,CAAC,8BAA8B,IAAI,IAAI,GAAG,EAAE;YACzE,OAAO;YACP,kBAAkB;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;KACL;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,uBAAuB,EAAE,KAAK;QAC9B,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CAChD,2BAA2B,CAAC;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO;YACP,kBAAkB;YAClB,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,aAAa;YACjD,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;KACL;IACD;QACE,EAAE,EAAE,yBAAyB;QAC7B,uBAAuB,EAAE,IAAI;QAC7B,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CAChD,0BAA0B,CAAC;YACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO;YACP,kBAAkB;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;KACL;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,uBAAuB,EAAE,KAAK;QAC9B,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,CAC7E,2BAA2B,CAAC;YAC1B,SAAS;YACT,cAAc,EAAE,OAAO,CAAC,gCAAgC,IAAI,IAAI,GAAG,EAAE;YACrE,cAAc,EAAE,OAAO,CAAC,gCAAgC,IAAI,IAAI,GAAG,EAAE;YACrE,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO;YACP,kBAAkB;YAClB,gBAAgB;YAChB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;KACL;IACD;QACE,YAAY,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;QACzF,EAAE,EAAE,yBAAyB;QAC7B,uBAAuB,EAAE,IAAI;QAC7B,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CAChD,iCAAiC,CAAC;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,4BAA4B,EAAE,OAAO,CAAC,4BAA4B;YAClE,OAAO;YACP,kBAAkB;YAClB,qBAAqB,EACnB,OAAO,CAAC,+BAA+B;gBACvC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CACxB,qBAAqB,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACpE,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;KACL;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,uBAAuB,EAAE,IAAI;QAC7B,GAAG,EAAE,CAAC,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CACvC,6BAA6B,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,kBAAkB,CAAC;KAC1F;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,uBAAuB,EAAE,IAAI;QAC7B,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CAChD,+BAA+B,CAAC;YAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO;YACP,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,WAAW;YAC7C,kBAAkB;YAClB,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,aAAa;YACjD,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;KACL;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,uBAAuB,EAAE,IAAI;QAC7B,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CAChD,2BAA2B,CAAC;YAC1B,UAAU,EAAE,OAAO,CAAC,4BAA4B;YAChD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO;YACP,aAAa,EAAE,OAAO,CAAC,uBAAuB;YAC9C,kBAAkB;YAClB,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,aAAa;YACjD,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;KACL;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,uBAAuB,EAAE,KAAK;QAC9B,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CAChD,8BAA8B,CAAC;YAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO;YACP,kBAAkB;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;KACL;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,uBAAuB,EAAE,IAAI;QAC7B,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,CAChD,gCAAgC,CAAC;YAC/B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO;YACP,kBAAkB;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;KACL;CACF,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,YAA8B;IAClE,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;QACvD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,YAA8B;IACjE,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;AAC/F,CAAC"}
1
+ {"version":3,"file":"practice-rules.js","sourceRoot":"","sources":["../../../src/practices/practice-rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import type { HostTagImports } from "../../core/imports.js";
2
+ import type { JsxSubtreeNode } from "../deferred-reveal/jsx-subtrees.js";
3
+ import ts from "typescript";
4
+ /** The values a slot's state can hold, proven from its declaration and every write. */
5
+ export interface StateValues {
6
+ readonly boolean: boolean;
7
+ /** Every string the value can hold, or null when a write is not a string literal. */
8
+ readonly literals: ReadonlySet<string> | null;
9
+ }
10
+ /** The observable that replaces the slot's value, and every render read it replaces. */
11
+ export interface SlotRead {
12
+ readonly observable: string;
13
+ readonly references: readonly ts.Node[];
14
+ readonly values: StateValues;
15
+ }
16
+ export type ControlFlowSlot = {
17
+ readonly kind: "show";
18
+ readonly alternate: JsxSubtreeNode | null;
19
+ readonly condition: ts.Expression;
20
+ readonly content: JsxSubtreeNode;
21
+ } | {
22
+ readonly kind: "switch";
23
+ readonly arms: readonly SwitchArm[];
24
+ readonly fallback: JsxSubtreeNode | null;
25
+ };
26
+ interface SwitchArm {
27
+ readonly content: JsxSubtreeNode;
28
+ readonly label: string;
29
+ /** The compared read of the value. */
30
+ readonly reference: ts.Node;
31
+ }
32
+ export declare const UNPROVEN_VALUES: StateValues;
33
+ /**
34
+ * The child slot of a host element or fragment that holds `node` with no function in between. A
35
+ * host element or fragment never inspects its children, so a `Show`, `Switch`, or `For` element in
36
+ * the slot renders the same tree; a component such as `AnimatePresence` reads its direct children.
37
+ */
38
+ export declare function hostChildSlot(node: ts.Node, hostTags: HostTagImports): ts.JsxExpression | null;
39
+ /** The host child slot whose whole expression is `expression`. */
40
+ export declare function wholeHostChildSlot(expression: ts.Expression, hostTags: HostTagImports): ts.JsxExpression | null;
41
+ /**
42
+ * The Legend control-flow component that renders `slot` exactly as written. `Show` evaluates its
43
+ * condition with the slot's truthiness and calls only the selected branch; `Switch` looks the value
44
+ * up among its arms. Both re-render with their parent, so captured owner values stay current, and
45
+ * both return the selected element from one position, so branch mount identity is unchanged. A
46
+ * slot that would track another observable, call a hook, or render a falsy non-boolean has no
47
+ * equivalent form.
48
+ */
49
+ export declare function controlFlowSlot(slot: ts.JsxExpression, read: SlotRead): ControlFlowSlot | null;
50
+ /** The `Show` or `Switch` element that replaces the slot, with long branches elided. */
51
+ export declare function controlFlowElement(control: ControlFlowSlot, read: SlotRead): string;
52
+ /** Names the reads an elided branch must still rewrite, or an empty string when none are hidden. */
53
+ export declare function elidedReadNote(control: ControlFlowSlot, read: SlotRead): string;
54
+ /**
55
+ * A `get()` would start tracking inside a Legend selector or row observer, and a hook call cannot
56
+ * move into a conditionally called child function.
57
+ */
58
+ export declare function readsTrackedOrHookState(node: ts.Node): boolean;
59
+ export {};
60
+ //# sourceMappingURL=control-flow-slots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control-flow-slots.d.ts","sourceRoot":"","sources":["../../../../src/rules/control-flow-components/control-flow-slots.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,uFAAuF;AACvF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAC/C;AAED,wFAAwF;AACxF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED,MAAM,MAAM,eAAe,GACvB;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;CAC1C,CAAC;AAEN,UAAU,SAAS;IACjB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,eAAe,EAAE,WAAgD,CAAC;AAS/E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,IAAI,CAY9F;AAED,kEAAkE;AAClE,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,QAAQ,EAAE,cAAc,GACvB,EAAE,CAAC,aAAa,GAAG,IAAI,CAMzB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI,CAc9F;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAkBnF;AAED,oGAAoG;AACpG,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAW/E;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAO9D"}