@almadar/ui 3.5.4 → 3.5.5

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.
@@ -51158,6 +51158,7 @@ function useTraitStateMachine(traitBindings, slotsActions, options) {
51158
51158
  React126.useEffect(() => {
51159
51159
  traitStatesRef.current = traitStates;
51160
51160
  }, [traitStates]);
51161
+ const traitSnapshotDataRef = React126.useRef(/* @__PURE__ */ new Map());
51161
51162
  React126.useEffect(() => {
51162
51163
  const mgr = managerRef.current;
51163
51164
  const bindings = traitBindingsRef.current;
@@ -51207,16 +51208,28 @@ function useTraitStateMachine(traitBindings, slotsActions, options) {
51207
51208
  const snapshotUnregs = [];
51208
51209
  for (const binding of traitBindingsRef.current) {
51209
51210
  const traitName = binding.trait.name;
51211
+ if (!traitSnapshotDataRef.current.has(traitName)) {
51212
+ traitSnapshotDataRef.current.set(traitName, {
51213
+ data: {},
51214
+ cascadeReceived: []
51215
+ });
51216
+ }
51210
51217
  const unreg = registerTraitSnapshot(traitName, () => {
51211
51218
  const managerState = managerRef.current.getState(traitName);
51212
51219
  const currentState = managerState?.currentState ?? binding.trait.states[0]?.name ?? "unknown";
51220
+ const live = traitSnapshotDataRef.current.get(traitName) ?? {
51221
+ data: {},
51222
+ cascadeReceived: []
51223
+ };
51213
51224
  return {
51214
51225
  traitName,
51215
51226
  currentState,
51216
51227
  states: binding.trait.states.map((s) => s.name),
51217
51228
  events: binding.trait.events.map((e) => e.key),
51218
- data: {},
51219
- cascadeReceived: []
51229
+ data: live.data,
51230
+ ...live.lastPayload !== void 0 ? { lastPayload: live.lastPayload } : {},
51231
+ ...live.lastEventDispatched !== void 0 ? { lastEventDispatched: live.lastEventDispatched } : {},
51232
+ cascadeReceived: live.cascadeReceived
51220
51233
  };
51221
51234
  });
51222
51235
  snapshotUnregs.push(unreg);
@@ -51325,6 +51338,29 @@ function useTraitStateMachine(traitBindings, slotsActions, options) {
51325
51338
  const binding = bindingMap.get(traitName);
51326
51339
  const traitState = currentManager.getState(traitName);
51327
51340
  if (!binding || !traitState) continue;
51341
+ const snap = traitSnapshotDataRef.current.get(traitName);
51342
+ if (snap && result.executed) {
51343
+ snap.lastPayload = payload;
51344
+ snap.lastEventDispatched = {
51345
+ event: normalizedEvent,
51346
+ ...payload !== void 0 ? { payload } : {},
51347
+ timestamp: Date.now()
51348
+ };
51349
+ const pdata = payload?.data;
51350
+ if (Array.isArray(pdata) && binding.linkedEntity) {
51351
+ snap.data[binding.linkedEntity] = pdata;
51352
+ }
51353
+ const listensEntry = (binding.trait.listens ?? []).find(
51354
+ (l) => l.event === normalizedEvent || l.triggers === normalizedEvent
51355
+ );
51356
+ if (listensEntry) {
51357
+ snap.cascadeReceived.push({
51358
+ event: normalizedEvent,
51359
+ ...payload !== void 0 ? { payload } : {},
51360
+ timestamp: Date.now()
51361
+ });
51362
+ }
51363
+ }
51328
51364
  if (result.executed && result.effects.length > 0) {
51329
51365
  console.log(
51330
51366
  "[TraitStateMachine] Executing",
package/dist/avl/index.js CHANGED
@@ -51112,6 +51112,7 @@ function useTraitStateMachine(traitBindings, slotsActions, options) {
51112
51112
  useEffect(() => {
51113
51113
  traitStatesRef.current = traitStates;
51114
51114
  }, [traitStates]);
51115
+ const traitSnapshotDataRef = useRef(/* @__PURE__ */ new Map());
51115
51116
  useEffect(() => {
51116
51117
  const mgr = managerRef.current;
51117
51118
  const bindings = traitBindingsRef.current;
@@ -51161,16 +51162,28 @@ function useTraitStateMachine(traitBindings, slotsActions, options) {
51161
51162
  const snapshotUnregs = [];
51162
51163
  for (const binding of traitBindingsRef.current) {
51163
51164
  const traitName = binding.trait.name;
51165
+ if (!traitSnapshotDataRef.current.has(traitName)) {
51166
+ traitSnapshotDataRef.current.set(traitName, {
51167
+ data: {},
51168
+ cascadeReceived: []
51169
+ });
51170
+ }
51164
51171
  const unreg = registerTraitSnapshot(traitName, () => {
51165
51172
  const managerState = managerRef.current.getState(traitName);
51166
51173
  const currentState = managerState?.currentState ?? binding.trait.states[0]?.name ?? "unknown";
51174
+ const live = traitSnapshotDataRef.current.get(traitName) ?? {
51175
+ data: {},
51176
+ cascadeReceived: []
51177
+ };
51167
51178
  return {
51168
51179
  traitName,
51169
51180
  currentState,
51170
51181
  states: binding.trait.states.map((s) => s.name),
51171
51182
  events: binding.trait.events.map((e) => e.key),
51172
- data: {},
51173
- cascadeReceived: []
51183
+ data: live.data,
51184
+ ...live.lastPayload !== void 0 ? { lastPayload: live.lastPayload } : {},
51185
+ ...live.lastEventDispatched !== void 0 ? { lastEventDispatched: live.lastEventDispatched } : {},
51186
+ cascadeReceived: live.cascadeReceived
51174
51187
  };
51175
51188
  });
51176
51189
  snapshotUnregs.push(unreg);
@@ -51279,6 +51292,29 @@ function useTraitStateMachine(traitBindings, slotsActions, options) {
51279
51292
  const binding = bindingMap.get(traitName);
51280
51293
  const traitState = currentManager.getState(traitName);
51281
51294
  if (!binding || !traitState) continue;
51295
+ const snap = traitSnapshotDataRef.current.get(traitName);
51296
+ if (snap && result.executed) {
51297
+ snap.lastPayload = payload;
51298
+ snap.lastEventDispatched = {
51299
+ event: normalizedEvent,
51300
+ ...payload !== void 0 ? { payload } : {},
51301
+ timestamp: Date.now()
51302
+ };
51303
+ const pdata = payload?.data;
51304
+ if (Array.isArray(pdata) && binding.linkedEntity) {
51305
+ snap.data[binding.linkedEntity] = pdata;
51306
+ }
51307
+ const listensEntry = (binding.trait.listens ?? []).find(
51308
+ (l) => l.event === normalizedEvent || l.triggers === normalizedEvent
51309
+ );
51310
+ if (listensEntry) {
51311
+ snap.cascadeReceived.push({
51312
+ event: normalizedEvent,
51313
+ ...payload !== void 0 ? { payload } : {},
51314
+ timestamp: Date.now()
51315
+ });
51316
+ }
51317
+ }
51282
51318
  if (result.executed && result.effects.length > 0) {
51283
51319
  console.log(
51284
51320
  "[TraitStateMachine] Executing",
@@ -37954,6 +37954,7 @@ function useTraitStateMachine(traitBindings, slotsActions, options) {
37954
37954
  React116.useEffect(() => {
37955
37955
  traitStatesRef.current = traitStates;
37956
37956
  }, [traitStates]);
37957
+ const traitSnapshotDataRef = React116.useRef(/* @__PURE__ */ new Map());
37957
37958
  React116.useEffect(() => {
37958
37959
  const mgr = managerRef.current;
37959
37960
  const bindings = traitBindingsRef.current;
@@ -38003,16 +38004,28 @@ function useTraitStateMachine(traitBindings, slotsActions, options) {
38003
38004
  const snapshotUnregs = [];
38004
38005
  for (const binding of traitBindingsRef.current) {
38005
38006
  const traitName = binding.trait.name;
38007
+ if (!traitSnapshotDataRef.current.has(traitName)) {
38008
+ traitSnapshotDataRef.current.set(traitName, {
38009
+ data: {},
38010
+ cascadeReceived: []
38011
+ });
38012
+ }
38006
38013
  const unreg = registerTraitSnapshot(traitName, () => {
38007
38014
  const managerState = managerRef.current.getState(traitName);
38008
38015
  const currentState = managerState?.currentState ?? binding.trait.states[0]?.name ?? "unknown";
38016
+ const live = traitSnapshotDataRef.current.get(traitName) ?? {
38017
+ data: {},
38018
+ cascadeReceived: []
38019
+ };
38009
38020
  return {
38010
38021
  traitName,
38011
38022
  currentState,
38012
38023
  states: binding.trait.states.map((s) => s.name),
38013
38024
  events: binding.trait.events.map((e) => e.key),
38014
- data: {},
38015
- cascadeReceived: []
38025
+ data: live.data,
38026
+ ...live.lastPayload !== void 0 ? { lastPayload: live.lastPayload } : {},
38027
+ ...live.lastEventDispatched !== void 0 ? { lastEventDispatched: live.lastEventDispatched } : {},
38028
+ cascadeReceived: live.cascadeReceived
38016
38029
  };
38017
38030
  });
38018
38031
  snapshotUnregs.push(unreg);
@@ -38121,6 +38134,29 @@ function useTraitStateMachine(traitBindings, slotsActions, options) {
38121
38134
  const binding = bindingMap.get(traitName);
38122
38135
  const traitState = currentManager.getState(traitName);
38123
38136
  if (!binding || !traitState) continue;
38137
+ const snap = traitSnapshotDataRef.current.get(traitName);
38138
+ if (snap && result.executed) {
38139
+ snap.lastPayload = payload;
38140
+ snap.lastEventDispatched = {
38141
+ event: normalizedEvent,
38142
+ ...payload !== void 0 ? { payload } : {},
38143
+ timestamp: Date.now()
38144
+ };
38145
+ const pdata = payload?.data;
38146
+ if (Array.isArray(pdata) && binding.linkedEntity) {
38147
+ snap.data[binding.linkedEntity] = pdata;
38148
+ }
38149
+ const listensEntry = (binding.trait.listens ?? []).find(
38150
+ (l) => l.event === normalizedEvent || l.triggers === normalizedEvent
38151
+ );
38152
+ if (listensEntry) {
38153
+ snap.cascadeReceived.push({
38154
+ event: normalizedEvent,
38155
+ ...payload !== void 0 ? { payload } : {},
38156
+ timestamp: Date.now()
38157
+ });
38158
+ }
38159
+ }
38124
38160
  if (result.executed && result.effects.length > 0) {
38125
38161
  console.log(
38126
38162
  "[TraitStateMachine] Executing",
@@ -37909,6 +37909,7 @@ function useTraitStateMachine(traitBindings, slotsActions, options) {
37909
37909
  useEffect(() => {
37910
37910
  traitStatesRef.current = traitStates;
37911
37911
  }, [traitStates]);
37912
+ const traitSnapshotDataRef = useRef(/* @__PURE__ */ new Map());
37912
37913
  useEffect(() => {
37913
37914
  const mgr = managerRef.current;
37914
37915
  const bindings = traitBindingsRef.current;
@@ -37958,16 +37959,28 @@ function useTraitStateMachine(traitBindings, slotsActions, options) {
37958
37959
  const snapshotUnregs = [];
37959
37960
  for (const binding of traitBindingsRef.current) {
37960
37961
  const traitName = binding.trait.name;
37962
+ if (!traitSnapshotDataRef.current.has(traitName)) {
37963
+ traitSnapshotDataRef.current.set(traitName, {
37964
+ data: {},
37965
+ cascadeReceived: []
37966
+ });
37967
+ }
37961
37968
  const unreg = registerTraitSnapshot(traitName, () => {
37962
37969
  const managerState = managerRef.current.getState(traitName);
37963
37970
  const currentState = managerState?.currentState ?? binding.trait.states[0]?.name ?? "unknown";
37971
+ const live = traitSnapshotDataRef.current.get(traitName) ?? {
37972
+ data: {},
37973
+ cascadeReceived: []
37974
+ };
37964
37975
  return {
37965
37976
  traitName,
37966
37977
  currentState,
37967
37978
  states: binding.trait.states.map((s) => s.name),
37968
37979
  events: binding.trait.events.map((e) => e.key),
37969
- data: {},
37970
- cascadeReceived: []
37980
+ data: live.data,
37981
+ ...live.lastPayload !== void 0 ? { lastPayload: live.lastPayload } : {},
37982
+ ...live.lastEventDispatched !== void 0 ? { lastEventDispatched: live.lastEventDispatched } : {},
37983
+ cascadeReceived: live.cascadeReceived
37971
37984
  };
37972
37985
  });
37973
37986
  snapshotUnregs.push(unreg);
@@ -38076,6 +38089,29 @@ function useTraitStateMachine(traitBindings, slotsActions, options) {
38076
38089
  const binding = bindingMap.get(traitName);
38077
38090
  const traitState = currentManager.getState(traitName);
38078
38091
  if (!binding || !traitState) continue;
38092
+ const snap = traitSnapshotDataRef.current.get(traitName);
38093
+ if (snap && result.executed) {
38094
+ snap.lastPayload = payload;
38095
+ snap.lastEventDispatched = {
38096
+ event: normalizedEvent,
38097
+ ...payload !== void 0 ? { payload } : {},
38098
+ timestamp: Date.now()
38099
+ };
38100
+ const pdata = payload?.data;
38101
+ if (Array.isArray(pdata) && binding.linkedEntity) {
38102
+ snap.data[binding.linkedEntity] = pdata;
38103
+ }
38104
+ const listensEntry = (binding.trait.listens ?? []).find(
38105
+ (l) => l.event === normalizedEvent || l.triggers === normalizedEvent
38106
+ );
38107
+ if (listensEntry) {
38108
+ snap.cascadeReceived.push({
38109
+ event: normalizedEvent,
38110
+ ...payload !== void 0 ? { payload } : {},
38111
+ timestamp: Date.now()
38112
+ });
38113
+ }
38114
+ }
38079
38115
  if (result.executed && result.effects.length > 0) {
38080
38116
  console.log(
38081
38117
  "[TraitStateMachine] Executing",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/ui",
3
- "version": "3.5.4",
3
+ "version": "3.5.5",
4
4
  "description": "React UI components, hooks, and providers for Almadar",
5
5
  "type": "module",
6
6
  "main": "./dist/components/index.js",