@almadar/ui 2.60.2 → 2.60.3

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.
@@ -36416,7 +36416,7 @@ function VerifyModePanel({
36416
36416
  serverCount,
36417
36417
  localCount
36418
36418
  }) {
36419
- const [expanded, setExpanded] = React127__namespace.useState(false);
36419
+ const [expanded, setExpanded] = React127__namespace.useState(true);
36420
36420
  const scrollRef = React127__namespace.useRef(null);
36421
36421
  const prevCountRef = React127__namespace.useRef(0);
36422
36422
  React127__namespace.useEffect(() => {
@@ -51675,19 +51675,18 @@ function ServerBridgeProvider({
51675
51675
  error: result.error
51676
51676
  };
51677
51677
  if (result.success) {
51678
- if (result.clientEffects) {
51679
- for (const effect of result.clientEffects) {
51680
- const arr = effect;
51681
- const effectType = arr[0];
51682
- if (effectType === "render-ui") {
51683
- const slot = arr[1];
51684
- const pattern = arr[2];
51685
- effects.push({ type: "render-ui", slot, pattern: pattern ?? void 0 });
51686
- } else if (effectType === "navigate") {
51687
- effects.push({ type: "navigate", route: arr[1], params: arr[2] });
51688
- } else if (effectType === "notify") {
51689
- effects.push({ type: "notify", message: arr[1] });
51690
- }
51678
+ const tagged = result.clientEffectsByTrait;
51679
+ const tuples = tagged ? tagged.map((entry) => ({ effect: entry.effect, traitName: entry.traitName })) : (result.clientEffects ?? []).map((eff) => ({ effect: eff }));
51680
+ for (const { effect, traitName } of tuples) {
51681
+ const effectType = effect[0];
51682
+ if (effectType === "render-ui") {
51683
+ const slot = effect[1];
51684
+ const pattern = effect[2];
51685
+ effects.push({ type: "render-ui", slot, pattern: pattern ?? void 0, traitName });
51686
+ } else if (effectType === "navigate") {
51687
+ effects.push({ type: "navigate", route: effect[1], params: effect[2], traitName });
51688
+ } else if (effectType === "notify") {
51689
+ effects.push({ type: "notify", message: effect[1], traitName });
51691
51690
  }
51692
51691
  }
51693
51692
  if (result.emittedEvents) {
@@ -51875,7 +51874,7 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
51875
51874
  slotsActions.setSlotPatterns(
51876
51875
  eff.slot,
51877
51876
  [{ pattern: eff.pattern, props: {} }],
51878
- { trait: "server", state: "server", transition: "server-effect" }
51877
+ { trait: eff.traitName ?? "server", state: "server", transition: "server-effect" }
51879
51878
  );
51880
51879
  } else if (eff.type === "navigate" && eff.route && onNavigate) {
51881
51880
  onNavigate(eff.route, eff.params);
@@ -51935,7 +51934,7 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
51935
51934
  slotsActions.setSlotPatterns(
51936
51935
  eff.slot,
51937
51936
  [{ pattern: eff.pattern, props: {} }],
51938
- { trait: "server", state: "server", transition: "server-effect" }
51937
+ { trait: eff.traitName ?? "server", state: "server", transition: "server-effect" }
51939
51938
  );
51940
51939
  }
51941
51940
  }
package/dist/avl/index.js CHANGED
@@ -36370,7 +36370,7 @@ function VerifyModePanel({
36370
36370
  serverCount,
36371
36371
  localCount
36372
36372
  }) {
36373
- const [expanded, setExpanded] = React127.useState(false);
36373
+ const [expanded, setExpanded] = React127.useState(true);
36374
36374
  const scrollRef = React127.useRef(null);
36375
36375
  const prevCountRef = React127.useRef(0);
36376
36376
  React127.useEffect(() => {
@@ -51629,19 +51629,18 @@ function ServerBridgeProvider({
51629
51629
  error: result.error
51630
51630
  };
51631
51631
  if (result.success) {
51632
- if (result.clientEffects) {
51633
- for (const effect of result.clientEffects) {
51634
- const arr = effect;
51635
- const effectType = arr[0];
51636
- if (effectType === "render-ui") {
51637
- const slot = arr[1];
51638
- const pattern = arr[2];
51639
- effects.push({ type: "render-ui", slot, pattern: pattern ?? void 0 });
51640
- } else if (effectType === "navigate") {
51641
- effects.push({ type: "navigate", route: arr[1], params: arr[2] });
51642
- } else if (effectType === "notify") {
51643
- effects.push({ type: "notify", message: arr[1] });
51644
- }
51632
+ const tagged = result.clientEffectsByTrait;
51633
+ const tuples = tagged ? tagged.map((entry) => ({ effect: entry.effect, traitName: entry.traitName })) : (result.clientEffects ?? []).map((eff) => ({ effect: eff }));
51634
+ for (const { effect, traitName } of tuples) {
51635
+ const effectType = effect[0];
51636
+ if (effectType === "render-ui") {
51637
+ const slot = effect[1];
51638
+ const pattern = effect[2];
51639
+ effects.push({ type: "render-ui", slot, pattern: pattern ?? void 0, traitName });
51640
+ } else if (effectType === "navigate") {
51641
+ effects.push({ type: "navigate", route: effect[1], params: effect[2], traitName });
51642
+ } else if (effectType === "notify") {
51643
+ effects.push({ type: "notify", message: effect[1], traitName });
51645
51644
  }
51646
51645
  }
51647
51646
  if (result.emittedEvents) {
@@ -51829,7 +51828,7 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
51829
51828
  slotsActions.setSlotPatterns(
51830
51829
  eff.slot,
51831
51830
  [{ pattern: eff.pattern, props: {} }],
51832
- { trait: "server", state: "server", transition: "server-effect" }
51831
+ { trait: eff.traitName ?? "server", state: "server", transition: "server-effect" }
51833
51832
  );
51834
51833
  } else if (eff.type === "navigate" && eff.route && onNavigate) {
51835
51834
  onNavigate(eff.route, eff.params);
@@ -51889,7 +51888,7 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
51889
51888
  slotsActions.setSlotPatterns(
51890
51889
  eff.slot,
51891
51890
  [{ pattern: eff.pattern, props: {} }],
51892
- { trait: "server", state: "server", transition: "server-effect" }
51891
+ { trait: eff.traitName ?? "server", state: "server", transition: "server-effect" }
51893
51892
  );
51894
51893
  }
51895
51894
  }
@@ -32404,7 +32404,7 @@ function VerifyModePanel({
32404
32404
  serverCount,
32405
32405
  localCount
32406
32406
  }) {
32407
- const [expanded, setExpanded] = React110__namespace.useState(false);
32407
+ const [expanded, setExpanded] = React110__namespace.useState(true);
32408
32408
  const scrollRef = React110__namespace.useRef(null);
32409
32409
  const prevCountRef = React110__namespace.useRef(0);
32410
32410
  React110__namespace.useEffect(() => {
@@ -32359,7 +32359,7 @@ function VerifyModePanel({
32359
32359
  serverCount,
32360
32360
  localCount
32361
32361
  }) {
32362
- const [expanded, setExpanded] = React110.useState(false);
32362
+ const [expanded, setExpanded] = React110.useState(true);
32363
32363
  const scrollRef = React110.useRef(null);
32364
32364
  const prevCountRef = React110.useRef(0);
32365
32365
  React110.useEffect(() => {
@@ -33214,7 +33214,7 @@ function VerifyModePanel({
33214
33214
  serverCount,
33215
33215
  localCount
33216
33216
  }) {
33217
- const [expanded, setExpanded] = React116__namespace.useState(false);
33217
+ const [expanded, setExpanded] = React116__namespace.useState(true);
33218
33218
  const scrollRef = React116__namespace.useRef(null);
33219
33219
  const prevCountRef = React116__namespace.useRef(0);
33220
33220
  React116__namespace.useEffect(() => {
@@ -33169,7 +33169,7 @@ function VerifyModePanel({
33169
33169
  serverCount,
33170
33170
  localCount
33171
33171
  }) {
33172
- const [expanded, setExpanded] = React116.useState(false);
33172
+ const [expanded, setExpanded] = React116.useState(true);
33173
33173
  const scrollRef = React116.useRef(null);
33174
33174
  const prevCountRef = React116.useRef(0);
33175
33175
  React116.useEffect(() => {
@@ -6,6 +6,12 @@ export interface ServerClientEffect {
6
6
  route?: string;
7
7
  params?: Record<string, unknown>;
8
8
  message?: string;
9
+ /**
10
+ * Trait that emitted this effect. Used by `<TraitFrame>` to resolve
11
+ * `@trait.X` bindings. Undefined when the server didn't tag the effect
12
+ * (older servers that pre-date the per-trait sidecar).
13
+ */
14
+ traitName?: string;
9
15
  }
10
16
  /** Metadata about what the server returned, for debugger logging */
11
17
  export interface ServerResponseMeta {
@@ -32787,7 +32787,7 @@ function VerifyModePanel({
32787
32787
  serverCount,
32788
32788
  localCount
32789
32789
  }) {
32790
- const [expanded, setExpanded] = React116__namespace.useState(false);
32790
+ const [expanded, setExpanded] = React116__namespace.useState(true);
32791
32791
  const scrollRef = React116__namespace.useRef(null);
32792
32792
  const prevCountRef = React116__namespace.useRef(0);
32793
32793
  React116__namespace.useEffect(() => {
@@ -38451,19 +38451,18 @@ function ServerBridgeProvider({
38451
38451
  error: result.error
38452
38452
  };
38453
38453
  if (result.success) {
38454
- if (result.clientEffects) {
38455
- for (const effect of result.clientEffects) {
38456
- const arr = effect;
38457
- const effectType = arr[0];
38458
- if (effectType === "render-ui") {
38459
- const slot = arr[1];
38460
- const pattern = arr[2];
38461
- effects.push({ type: "render-ui", slot, pattern: pattern ?? void 0 });
38462
- } else if (effectType === "navigate") {
38463
- effects.push({ type: "navigate", route: arr[1], params: arr[2] });
38464
- } else if (effectType === "notify") {
38465
- effects.push({ type: "notify", message: arr[1] });
38466
- }
38454
+ const tagged = result.clientEffectsByTrait;
38455
+ const tuples = tagged ? tagged.map((entry) => ({ effect: entry.effect, traitName: entry.traitName })) : (result.clientEffects ?? []).map((eff) => ({ effect: eff }));
38456
+ for (const { effect, traitName } of tuples) {
38457
+ const effectType = effect[0];
38458
+ if (effectType === "render-ui") {
38459
+ const slot = effect[1];
38460
+ const pattern = effect[2];
38461
+ effects.push({ type: "render-ui", slot, pattern: pattern ?? void 0, traitName });
38462
+ } else if (effectType === "navigate") {
38463
+ effects.push({ type: "navigate", route: effect[1], params: effect[2], traitName });
38464
+ } else if (effectType === "notify") {
38465
+ effects.push({ type: "notify", message: effect[1], traitName });
38467
38466
  }
38468
38467
  }
38469
38468
  if (result.emittedEvents) {
@@ -38650,7 +38649,7 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
38650
38649
  slotsActions.setSlotPatterns(
38651
38650
  eff.slot,
38652
38651
  [{ pattern: eff.pattern, props: {} }],
38653
- { trait: "server", state: "server", transition: "server-effect" }
38652
+ { trait: eff.traitName ?? "server", state: "server", transition: "server-effect" }
38654
38653
  );
38655
38654
  } else if (eff.type === "navigate" && eff.route && onNavigate) {
38656
38655
  onNavigate(eff.route, eff.params);
@@ -38710,7 +38709,7 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
38710
38709
  slotsActions.setSlotPatterns(
38711
38710
  eff.slot,
38712
38711
  [{ pattern: eff.pattern, props: {} }],
38713
- { trait: "server", state: "server", transition: "server-effect" }
38712
+ { trait: eff.traitName ?? "server", state: "server", transition: "server-effect" }
38714
38713
  );
38715
38714
  }
38716
38715
  }
@@ -32742,7 +32742,7 @@ function VerifyModePanel({
32742
32742
  serverCount,
32743
32743
  localCount
32744
32744
  }) {
32745
- const [expanded, setExpanded] = React116.useState(false);
32745
+ const [expanded, setExpanded] = React116.useState(true);
32746
32746
  const scrollRef = React116.useRef(null);
32747
32747
  const prevCountRef = React116.useRef(0);
32748
32748
  React116.useEffect(() => {
@@ -38406,19 +38406,18 @@ function ServerBridgeProvider({
38406
38406
  error: result.error
38407
38407
  };
38408
38408
  if (result.success) {
38409
- if (result.clientEffects) {
38410
- for (const effect of result.clientEffects) {
38411
- const arr = effect;
38412
- const effectType = arr[0];
38413
- if (effectType === "render-ui") {
38414
- const slot = arr[1];
38415
- const pattern = arr[2];
38416
- effects.push({ type: "render-ui", slot, pattern: pattern ?? void 0 });
38417
- } else if (effectType === "navigate") {
38418
- effects.push({ type: "navigate", route: arr[1], params: arr[2] });
38419
- } else if (effectType === "notify") {
38420
- effects.push({ type: "notify", message: arr[1] });
38421
- }
38409
+ const tagged = result.clientEffectsByTrait;
38410
+ const tuples = tagged ? tagged.map((entry) => ({ effect: entry.effect, traitName: entry.traitName })) : (result.clientEffects ?? []).map((eff) => ({ effect: eff }));
38411
+ for (const { effect, traitName } of tuples) {
38412
+ const effectType = effect[0];
38413
+ if (effectType === "render-ui") {
38414
+ const slot = effect[1];
38415
+ const pattern = effect[2];
38416
+ effects.push({ type: "render-ui", slot, pattern: pattern ?? void 0, traitName });
38417
+ } else if (effectType === "navigate") {
38418
+ effects.push({ type: "navigate", route: effect[1], params: effect[2], traitName });
38419
+ } else if (effectType === "notify") {
38420
+ effects.push({ type: "notify", message: effect[1], traitName });
38422
38421
  }
38423
38422
  }
38424
38423
  if (result.emittedEvents) {
@@ -38605,7 +38604,7 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
38605
38604
  slotsActions.setSlotPatterns(
38606
38605
  eff.slot,
38607
38606
  [{ pattern: eff.pattern, props: {} }],
38608
- { trait: "server", state: "server", transition: "server-effect" }
38607
+ { trait: eff.traitName ?? "server", state: "server", transition: "server-effect" }
38609
38608
  );
38610
38609
  } else if (eff.type === "navigate" && eff.route && onNavigate) {
38611
38610
  onNavigate(eff.route, eff.params);
@@ -38665,7 +38664,7 @@ function TraitInitializer({ traits: traits2, orbitalNames, onNavigate, onLocalFa
38665
38664
  slotsActions.setSlotPatterns(
38666
38665
  eff.slot,
38667
38666
  [{ pattern: eff.pattern, props: {} }],
38668
- { trait: "server", state: "server", transition: "server-effect" }
38667
+ { trait: eff.traitName ?? "server", state: "server", transition: "server-effect" }
38669
38668
  );
38670
38669
  }
38671
38670
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/ui",
3
- "version": "2.60.2",
3
+ "version": "2.60.3",
4
4
  "description": "React UI components, hooks, and providers for Almadar",
5
5
  "type": "module",
6
6
  "main": "./dist/components/index.js",
@@ -121,19 +121,19 @@
121
121
  "@almadar/core": ">=4.8.2",
122
122
  "@almadar/evaluator": ">=2.8.1",
123
123
  "@almadar/patterns": ">=2.14.1",
124
+ "@almadar/runtime": ">=3.2.3",
124
125
  "@almadar/std": ">=6.4.1",
125
126
  "@almadar/syntax": ">=1.3.1",
126
- "@almadar/runtime": ">=3.2.2",
127
127
  "@xyflow/react": "12.10.1",
128
128
  "clsx": "^2.1.0",
129
129
  "elkjs": "0.11.1",
130
+ "hastscript": "^9.0.0",
130
131
  "leaflet": "1.9.4",
131
132
  "lucide-react": "^0.344.0",
133
+ "parse-entities": "^4.0.0",
132
134
  "react-leaflet": "^4.2.1",
133
135
  "react-markdown": "^9.0.0",
134
136
  "react-syntax-highlighter": "^16.1.0",
135
- "hastscript": "^9.0.0",
136
- "parse-entities": "^4.0.0",
137
137
  "refractor": "^5.0.0",
138
138
  "rehype-katex": "^7.0.0",
139
139
  "remark-gfm": "^4.0.0",