@almadar/ui 2.48.3 → 2.48.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.
@@ -95,22 +95,13 @@ function cn(...inputs) {
95
95
  // lib/logger.ts
96
96
  var LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
97
97
  var ENV = typeof process !== "undefined" && process.env ? process.env : {};
98
- var VITE_ENV = typeof globalThis !== "undefined" && globalThis.__vite_env__ ? globalThis.__vite_env__ : {};
99
- function getViteEnv(key) {
100
- try {
101
- const meta = (0, eval)('typeof import.meta !== "undefined" && import.meta');
102
- return meta ? meta.env?.[key] : void 0;
103
- } catch {
104
- return void 0;
105
- }
106
- }
107
- function envGet(key, viteKey) {
108
- return ENV[key] ?? (viteKey ? getViteEnv(viteKey) : void 0) ?? VITE_ENV[viteKey ?? key];
98
+ function envGet(key) {
99
+ return ENV[key] ?? ENV[`VITE_${key}`];
109
100
  }
110
- var NODE_ENV = envGet("NODE_ENV", "VITE_NODE_ENV") ?? "development";
111
- var CONFIGURED_LEVEL = (envGet("LOG_LEVEL", "VITE_LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
101
+ var NODE_ENV = envGet("NODE_ENV") ?? "development";
102
+ var CONFIGURED_LEVEL = (envGet("LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
112
103
  var MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
113
- var DEBUG_FILTER = (envGet("ALMADAR_DEBUG", "VITE_ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
104
+ var DEBUG_FILTER = (envGet("ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
114
105
  function matchesNamespace(namespace) {
115
106
  if (DEBUG_FILTER.length === 0) return true;
116
107
  return DEBUG_FILTER.some((pattern) => {
@@ -5939,43 +5930,43 @@ function useQuerySingleton(query) {
5939
5930
  if (!query) {
5940
5931
  return null;
5941
5932
  }
5942
- const store2 = React90.useMemo(() => getOrCreateStore(query), [query]);
5933
+ const store = React90.useMemo(() => getOrCreateStore(query), [query]);
5943
5934
  React90.useMemo(() => {
5944
5935
  const listener = () => forceUpdate({});
5945
- store2.listeners.add(listener);
5936
+ store.listeners.add(listener);
5946
5937
  return () => {
5947
- store2.listeners.delete(listener);
5938
+ store.listeners.delete(listener);
5948
5939
  };
5949
- }, [store2]);
5950
- const notifyListeners2 = React90.useCallback(() => {
5951
- store2.listeners.forEach((listener) => listener());
5952
- }, [store2]);
5940
+ }, [store]);
5941
+ const notifyListeners = React90.useCallback(() => {
5942
+ store.listeners.forEach((listener) => listener());
5943
+ }, [store]);
5953
5944
  const setSearch = React90.useCallback((value) => {
5954
- store2.search = value;
5955
- notifyListeners2();
5956
- }, [store2, notifyListeners2]);
5945
+ store.search = value;
5946
+ notifyListeners();
5947
+ }, [store, notifyListeners]);
5957
5948
  const setFilter = React90.useCallback((key, value) => {
5958
- store2.filters = { ...store2.filters, [key]: value };
5959
- notifyListeners2();
5960
- }, [store2, notifyListeners2]);
5949
+ store.filters = { ...store.filters, [key]: value };
5950
+ notifyListeners();
5951
+ }, [store, notifyListeners]);
5961
5952
  const clearFilters = React90.useCallback(() => {
5962
- store2.filters = {};
5963
- store2.search = "";
5964
- notifyListeners2();
5965
- }, [store2, notifyListeners2]);
5953
+ store.filters = {};
5954
+ store.search = "";
5955
+ notifyListeners();
5956
+ }, [store, notifyListeners]);
5966
5957
  const setSort = React90.useCallback((field, direction) => {
5967
- store2.sortField = field;
5968
- store2.sortDirection = direction;
5969
- notifyListeners2();
5970
- }, [store2, notifyListeners2]);
5958
+ store.sortField = field;
5959
+ store.sortDirection = direction;
5960
+ notifyListeners();
5961
+ }, [store, notifyListeners]);
5971
5962
  return {
5972
- search: store2.search,
5963
+ search: store.search,
5973
5964
  setSearch,
5974
- filters: store2.filters,
5965
+ filters: store.filters,
5975
5966
  setFilter,
5976
5967
  clearFilters,
5977
- sortField: store2.sortField,
5978
- sortDirection: store2.sortDirection,
5968
+ sortField: store.sortField,
5969
+ sortDirection: store.sortDirection,
5979
5970
  setSort
5980
5971
  };
5981
5972
  }
@@ -29217,134 +29208,6 @@ function calculateDamage(attack, defense, isDefending = false, criticalChance =
29217
29208
  function generateCombatMessage(event) {
29218
29209
  return event.message;
29219
29210
  }
29220
- var storeLog = createLogger("almadar:entity:store");
29221
- var store = /* @__PURE__ */ new Map();
29222
- var storeListeners = /* @__PURE__ */ new Set();
29223
- var watchCallbacks = /* @__PURE__ */ new Map();
29224
- function extractId(record) {
29225
- const r = record;
29226
- return String(r.id ?? r._id ?? r.key ?? "");
29227
- }
29228
- function materialize(snap) {
29229
- return snap.ids.map((id) => snap.entities.get(id));
29230
- }
29231
- function notifyListeners(entityType, prev) {
29232
- for (const listener of storeListeners) {
29233
- listener();
29234
- }
29235
- const cbs = watchCallbacks.get(entityType);
29236
- if (cbs) {
29237
- const oldData = prev ? materialize(prev) : [];
29238
- const cur = store.get(entityType);
29239
- const newData = cur ? materialize(cur) : [];
29240
- for (const cb of cbs) {
29241
- try {
29242
- cb(oldData, newData);
29243
- } catch {
29244
- }
29245
- }
29246
- }
29247
- }
29248
- function setAll(entityType, records) {
29249
- const entities2 = /* @__PURE__ */ new Map();
29250
- const ids = [];
29251
- for (const r of records) {
29252
- const rec = r;
29253
- const id = extractId(rec);
29254
- if (id) {
29255
- entities2.set(id, rec);
29256
- ids.push(id);
29257
- }
29258
- }
29259
- const prev = store.get(entityType);
29260
- const newVersion = (prev?.version ?? 0) + 1;
29261
- store.set(entityType, { entities: entities2, ids, version: newVersion });
29262
- storeLog.debug("setAll", { entityType, recordCount: records.length, version: newVersion });
29263
- notifyListeners(entityType, prev);
29264
- }
29265
- function upsertOne(entityType, record) {
29266
- const id = extractId(record);
29267
- if (!id) return;
29268
- const prev = store.get(entityType);
29269
- const snapshot = prev ? { entities: new Map(prev.entities), ids: [...prev.ids], version: prev.version } : { entities: /* @__PURE__ */ new Map(), ids: [], version: 0 };
29270
- snapshot.entities.set(id, record);
29271
- if (!snapshot.ids.includes(id)) snapshot.ids.push(id);
29272
- snapshot.version++;
29273
- store.set(entityType, snapshot);
29274
- storeLog.debug("upsertOne", { entityType, id, version: snapshot.version });
29275
- notifyListeners(entityType, prev);
29276
- }
29277
- function addOne(entityType, record) {
29278
- upsertOne(entityType, record);
29279
- }
29280
- function updateOne(entityType, id, changes) {
29281
- const prev = store.get(entityType);
29282
- if (!prev?.entities.has(id)) return;
29283
- const snapshot = {
29284
- entities: new Map(prev.entities),
29285
- ids: [...prev.ids],
29286
- version: prev.version
29287
- };
29288
- snapshot.entities.set(id, { ...snapshot.entities.get(id), ...changes });
29289
- snapshot.version++;
29290
- store.set(entityType, snapshot);
29291
- storeLog.debug("updateOne", { entityType, id, changedFields: Object.keys(changes), version: snapshot.version });
29292
- notifyListeners(entityType, prev);
29293
- }
29294
- function removeOne(entityType, id) {
29295
- const prev = store.get(entityType);
29296
- if (!prev) return;
29297
- const snapshot = {
29298
- entities: new Map(prev.entities),
29299
- ids: prev.ids.filter((i) => i !== id),
29300
- version: prev.version
29301
- };
29302
- snapshot.entities.delete(id);
29303
- snapshot.version++;
29304
- store.set(entityType, snapshot);
29305
- storeLog.debug("removeOne", { entityType, id, remainingCount: snapshot.ids.length, version: snapshot.version });
29306
- notifyListeners(entityType, prev);
29307
- }
29308
- function getSnapshot2(entityType) {
29309
- const snap = store.get(entityType);
29310
- if (!snap) return [];
29311
- return materialize(snap);
29312
- }
29313
- function getById(entityType, id) {
29314
- return store.get(entityType)?.entities.get(id) ?? null;
29315
- }
29316
- function getVersion(entityType) {
29317
- return store.get(entityType)?.version ?? 0;
29318
- }
29319
- function subscribeToStore(listener) {
29320
- storeListeners.add(listener);
29321
- return () => {
29322
- storeListeners.delete(listener);
29323
- };
29324
- }
29325
- function useEntityRef(entityType) {
29326
- const versionRef = React90.useRef(0);
29327
- const dataRef = React90.useRef([]);
29328
- const getSnapshotStable = React90__namespace.default.useCallback(() => {
29329
- const currentVersion = getVersion(entityType);
29330
- if (currentVersion !== versionRef.current) {
29331
- versionRef.current = currentVersion;
29332
- dataRef.current = getSnapshot2(entityType);
29333
- }
29334
- return dataRef.current;
29335
- }, [entityType]);
29336
- return React90.useSyncExternalStore(subscribeToStore, getSnapshotStable, () => []);
29337
- }
29338
- var contextValue = {
29339
- setAll,
29340
- upsertOne,
29341
- addOne,
29342
- updateOne,
29343
- removeOne,
29344
- getSnapshot: getSnapshot2,
29345
- getById
29346
- };
29347
- React90.createContext(contextValue);
29348
29211
  var EntitySchemaContext = React90.createContext(null);
29349
29212
  function useEntitySchemaOptional() {
29350
29213
  return React90.useContext(EntitySchemaContext);
@@ -35071,7 +34934,7 @@ function SlotContentRenderer({
35071
34934
  }) {
35072
34935
  const entityProp = content.props.entity;
35073
34936
  const entityType = typeof entityProp === "string" ? entityProp : "";
35074
- const storeData = useEntityRef(entityType);
34937
+ const storeData = providers.useEntityRef(entityType);
35075
34938
  const schemaCtx = useEntitySchemaOptional();
35076
34939
  const entityDef = entityType && schemaCtx ? schemaCtx.entities.get(entityType) : void 0;
35077
34940
  const PatternComponent = getComponentForPattern(content.pattern);
@@ -36910,9 +36773,6 @@ function useUISlotManager() {
36910
36773
  getContent
36911
36774
  };
36912
36775
  }
36913
- var SelectionContext = React90.createContext(null);
36914
-
36915
- // hooks/useUIEvents.ts
36916
36776
  var UI_PREFIX = "UI:";
36917
36777
  function useUIEvents(dispatch, validEvents, eventBusInstance) {
36918
36778
  const defaultEventBus = useEventBus();
@@ -36990,7 +36850,7 @@ function useSelectedEntity(eventBusInstance) {
36990
36850
  return [localSelected, setLocalSelected];
36991
36851
  }
36992
36852
  function useSelectionContext() {
36993
- const context = React90.useContext(SelectionContext);
36853
+ const context = React90.useContext(providers.SelectionContext);
36994
36854
  return context;
36995
36855
  }
36996
36856
  var EntityDataContext = React90.createContext(null);
@@ -37632,13 +37492,13 @@ function clearEntities() {
37632
37492
  entities = /* @__PURE__ */ new Map();
37633
37493
  notify();
37634
37494
  }
37635
- function getSnapshot3() {
37495
+ function getSnapshot2() {
37636
37496
  return entities;
37637
37497
  }
37638
37498
 
37639
37499
  // hooks/useEntities.ts
37640
37500
  function useEntities() {
37641
- const entities2 = React90.useSyncExternalStore(subscribe, getSnapshot3, getSnapshot3);
37501
+ const entities2 = React90.useSyncExternalStore(subscribe, getSnapshot2, getSnapshot2);
37642
37502
  return {
37643
37503
  entities: entities2,
37644
37504
  getEntity,
@@ -37653,15 +37513,15 @@ function useEntities() {
37653
37513
  };
37654
37514
  }
37655
37515
  function useEntity2(id) {
37656
- const entities2 = React90.useSyncExternalStore(subscribe, getSnapshot3, getSnapshot3);
37516
+ const entities2 = React90.useSyncExternalStore(subscribe, getSnapshot2, getSnapshot2);
37657
37517
  return entities2.get(id);
37658
37518
  }
37659
37519
  function useEntitiesByType(type) {
37660
- const entities2 = React90.useSyncExternalStore(subscribe, getSnapshot3, getSnapshot3);
37520
+ const entities2 = React90.useSyncExternalStore(subscribe, getSnapshot2, getSnapshot2);
37661
37521
  return [...entities2.values()].filter((e) => e.type === type);
37662
37522
  }
37663
37523
  function useSingletonEntity(type) {
37664
- const entities2 = React90.useSyncExternalStore(subscribe, getSnapshot3, getSnapshot3);
37524
+ const entities2 = React90.useSyncExternalStore(subscribe, getSnapshot2, getSnapshot2);
37665
37525
  return [...entities2.values()].find((e) => e.type === type);
37666
37526
  }
37667
37527
  function usePlayer() {
@@ -4,7 +4,7 @@ import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import * as LucideIcons from 'lucide-react';
6
6
  import { Loader2, ChevronDown, X, ArrowRight, TrendingDown, TrendingUp, Check, Copy, AlertCircle, User, Sun, Moon, FileQuestion, Inbox, Search, Info, XCircle, CheckCircle, AlertTriangle, ChevronRight, Filter, Plus, ChevronLeft, HelpCircle, ChevronUp, Zap, Sword, Move, Heart, Shield, Minus, Star, FileWarning, Upload, MoreHorizontal, ArrowLeft, Menu as Menu$1, ArrowUp, ArrowDown, MoreVertical, Package, Trash2, List as List$1, Printer, Play, RotateCcw, Send, Wrench, Bug, Pause, SkipForward, Code, FileText, WrapText, Settings, Bell, LogOut, ZoomOut, ZoomIn, Download, Image as Image$1, Eraser, Circle, Clock, CheckCircle2, Calendar, Pencil, Eye, Tag, DollarSign } from 'lucide-react';
7
- import { EventBusContext } from '@almadar/ui/providers';
7
+ import { EventBusContext, useEntityRef, SelectionContext } from '@almadar/ui/providers';
8
8
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
9
9
  import { evaluate, createMinimalContext } from '@almadar/evaluator';
10
10
  import { createPortal } from 'react-dom';
@@ -49,22 +49,13 @@ function cn(...inputs) {
49
49
  // lib/logger.ts
50
50
  var LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
51
51
  var ENV = typeof process !== "undefined" && process.env ? process.env : {};
52
- var VITE_ENV = typeof globalThis !== "undefined" && globalThis.__vite_env__ ? globalThis.__vite_env__ : {};
53
- function getViteEnv(key) {
54
- try {
55
- const meta = (0, eval)('typeof import.meta !== "undefined" && import.meta');
56
- return meta ? meta.env?.[key] : void 0;
57
- } catch {
58
- return void 0;
59
- }
60
- }
61
- function envGet(key, viteKey) {
62
- return ENV[key] ?? (viteKey ? getViteEnv(viteKey) : void 0) ?? VITE_ENV[viteKey ?? key];
52
+ function envGet(key) {
53
+ return ENV[key] ?? ENV[`VITE_${key}`];
63
54
  }
64
- var NODE_ENV = envGet("NODE_ENV", "VITE_NODE_ENV") ?? "development";
65
- var CONFIGURED_LEVEL = (envGet("LOG_LEVEL", "VITE_LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
55
+ var NODE_ENV = envGet("NODE_ENV") ?? "development";
56
+ var CONFIGURED_LEVEL = (envGet("LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
66
57
  var MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
67
- var DEBUG_FILTER = (envGet("ALMADAR_DEBUG", "VITE_ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
58
+ var DEBUG_FILTER = (envGet("ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
68
59
  function matchesNamespace(namespace) {
69
60
  if (DEBUG_FILTER.length === 0) return true;
70
61
  return DEBUG_FILTER.some((pattern) => {
@@ -5893,43 +5884,43 @@ function useQuerySingleton(query) {
5893
5884
  if (!query) {
5894
5885
  return null;
5895
5886
  }
5896
- const store2 = useMemo(() => getOrCreateStore(query), [query]);
5887
+ const store = useMemo(() => getOrCreateStore(query), [query]);
5897
5888
  useMemo(() => {
5898
5889
  const listener = () => forceUpdate({});
5899
- store2.listeners.add(listener);
5890
+ store.listeners.add(listener);
5900
5891
  return () => {
5901
- store2.listeners.delete(listener);
5892
+ store.listeners.delete(listener);
5902
5893
  };
5903
- }, [store2]);
5904
- const notifyListeners2 = useCallback(() => {
5905
- store2.listeners.forEach((listener) => listener());
5906
- }, [store2]);
5894
+ }, [store]);
5895
+ const notifyListeners = useCallback(() => {
5896
+ store.listeners.forEach((listener) => listener());
5897
+ }, [store]);
5907
5898
  const setSearch = useCallback((value) => {
5908
- store2.search = value;
5909
- notifyListeners2();
5910
- }, [store2, notifyListeners2]);
5899
+ store.search = value;
5900
+ notifyListeners();
5901
+ }, [store, notifyListeners]);
5911
5902
  const setFilter = useCallback((key, value) => {
5912
- store2.filters = { ...store2.filters, [key]: value };
5913
- notifyListeners2();
5914
- }, [store2, notifyListeners2]);
5903
+ store.filters = { ...store.filters, [key]: value };
5904
+ notifyListeners();
5905
+ }, [store, notifyListeners]);
5915
5906
  const clearFilters = useCallback(() => {
5916
- store2.filters = {};
5917
- store2.search = "";
5918
- notifyListeners2();
5919
- }, [store2, notifyListeners2]);
5907
+ store.filters = {};
5908
+ store.search = "";
5909
+ notifyListeners();
5910
+ }, [store, notifyListeners]);
5920
5911
  const setSort = useCallback((field, direction) => {
5921
- store2.sortField = field;
5922
- store2.sortDirection = direction;
5923
- notifyListeners2();
5924
- }, [store2, notifyListeners2]);
5912
+ store.sortField = field;
5913
+ store.sortDirection = direction;
5914
+ notifyListeners();
5915
+ }, [store, notifyListeners]);
5925
5916
  return {
5926
- search: store2.search,
5917
+ search: store.search,
5927
5918
  setSearch,
5928
- filters: store2.filters,
5919
+ filters: store.filters,
5929
5920
  setFilter,
5930
5921
  clearFilters,
5931
- sortField: store2.sortField,
5932
- sortDirection: store2.sortDirection,
5922
+ sortField: store.sortField,
5923
+ sortDirection: store.sortDirection,
5933
5924
  setSort
5934
5925
  };
5935
5926
  }
@@ -29171,134 +29162,6 @@ function calculateDamage(attack, defense, isDefending = false, criticalChance =
29171
29162
  function generateCombatMessage(event) {
29172
29163
  return event.message;
29173
29164
  }
29174
- var storeLog = createLogger("almadar:entity:store");
29175
- var store = /* @__PURE__ */ new Map();
29176
- var storeListeners = /* @__PURE__ */ new Set();
29177
- var watchCallbacks = /* @__PURE__ */ new Map();
29178
- function extractId(record) {
29179
- const r = record;
29180
- return String(r.id ?? r._id ?? r.key ?? "");
29181
- }
29182
- function materialize(snap) {
29183
- return snap.ids.map((id) => snap.entities.get(id));
29184
- }
29185
- function notifyListeners(entityType, prev) {
29186
- for (const listener of storeListeners) {
29187
- listener();
29188
- }
29189
- const cbs = watchCallbacks.get(entityType);
29190
- if (cbs) {
29191
- const oldData = prev ? materialize(prev) : [];
29192
- const cur = store.get(entityType);
29193
- const newData = cur ? materialize(cur) : [];
29194
- for (const cb of cbs) {
29195
- try {
29196
- cb(oldData, newData);
29197
- } catch {
29198
- }
29199
- }
29200
- }
29201
- }
29202
- function setAll(entityType, records) {
29203
- const entities2 = /* @__PURE__ */ new Map();
29204
- const ids = [];
29205
- for (const r of records) {
29206
- const rec = r;
29207
- const id = extractId(rec);
29208
- if (id) {
29209
- entities2.set(id, rec);
29210
- ids.push(id);
29211
- }
29212
- }
29213
- const prev = store.get(entityType);
29214
- const newVersion = (prev?.version ?? 0) + 1;
29215
- store.set(entityType, { entities: entities2, ids, version: newVersion });
29216
- storeLog.debug("setAll", { entityType, recordCount: records.length, version: newVersion });
29217
- notifyListeners(entityType, prev);
29218
- }
29219
- function upsertOne(entityType, record) {
29220
- const id = extractId(record);
29221
- if (!id) return;
29222
- const prev = store.get(entityType);
29223
- const snapshot = prev ? { entities: new Map(prev.entities), ids: [...prev.ids], version: prev.version } : { entities: /* @__PURE__ */ new Map(), ids: [], version: 0 };
29224
- snapshot.entities.set(id, record);
29225
- if (!snapshot.ids.includes(id)) snapshot.ids.push(id);
29226
- snapshot.version++;
29227
- store.set(entityType, snapshot);
29228
- storeLog.debug("upsertOne", { entityType, id, version: snapshot.version });
29229
- notifyListeners(entityType, prev);
29230
- }
29231
- function addOne(entityType, record) {
29232
- upsertOne(entityType, record);
29233
- }
29234
- function updateOne(entityType, id, changes) {
29235
- const prev = store.get(entityType);
29236
- if (!prev?.entities.has(id)) return;
29237
- const snapshot = {
29238
- entities: new Map(prev.entities),
29239
- ids: [...prev.ids],
29240
- version: prev.version
29241
- };
29242
- snapshot.entities.set(id, { ...snapshot.entities.get(id), ...changes });
29243
- snapshot.version++;
29244
- store.set(entityType, snapshot);
29245
- storeLog.debug("updateOne", { entityType, id, changedFields: Object.keys(changes), version: snapshot.version });
29246
- notifyListeners(entityType, prev);
29247
- }
29248
- function removeOne(entityType, id) {
29249
- const prev = store.get(entityType);
29250
- if (!prev) return;
29251
- const snapshot = {
29252
- entities: new Map(prev.entities),
29253
- ids: prev.ids.filter((i) => i !== id),
29254
- version: prev.version
29255
- };
29256
- snapshot.entities.delete(id);
29257
- snapshot.version++;
29258
- store.set(entityType, snapshot);
29259
- storeLog.debug("removeOne", { entityType, id, remainingCount: snapshot.ids.length, version: snapshot.version });
29260
- notifyListeners(entityType, prev);
29261
- }
29262
- function getSnapshot2(entityType) {
29263
- const snap = store.get(entityType);
29264
- if (!snap) return [];
29265
- return materialize(snap);
29266
- }
29267
- function getById(entityType, id) {
29268
- return store.get(entityType)?.entities.get(id) ?? null;
29269
- }
29270
- function getVersion(entityType) {
29271
- return store.get(entityType)?.version ?? 0;
29272
- }
29273
- function subscribeToStore(listener) {
29274
- storeListeners.add(listener);
29275
- return () => {
29276
- storeListeners.delete(listener);
29277
- };
29278
- }
29279
- function useEntityRef(entityType) {
29280
- const versionRef = useRef(0);
29281
- const dataRef = useRef([]);
29282
- const getSnapshotStable = React90__default.useCallback(() => {
29283
- const currentVersion = getVersion(entityType);
29284
- if (currentVersion !== versionRef.current) {
29285
- versionRef.current = currentVersion;
29286
- dataRef.current = getSnapshot2(entityType);
29287
- }
29288
- return dataRef.current;
29289
- }, [entityType]);
29290
- return useSyncExternalStore(subscribeToStore, getSnapshotStable, () => []);
29291
- }
29292
- var contextValue = {
29293
- setAll,
29294
- upsertOne,
29295
- addOne,
29296
- updateOne,
29297
- removeOne,
29298
- getSnapshot: getSnapshot2,
29299
- getById
29300
- };
29301
- createContext(contextValue);
29302
29165
  var EntitySchemaContext = createContext(null);
29303
29166
  function useEntitySchemaOptional() {
29304
29167
  return useContext(EntitySchemaContext);
@@ -36864,9 +36727,6 @@ function useUISlotManager() {
36864
36727
  getContent
36865
36728
  };
36866
36729
  }
36867
- var SelectionContext = createContext(null);
36868
-
36869
- // hooks/useUIEvents.ts
36870
36730
  var UI_PREFIX = "UI:";
36871
36731
  function useUIEvents(dispatch, validEvents, eventBusInstance) {
36872
36732
  const defaultEventBus = useEventBus();
@@ -37586,13 +37446,13 @@ function clearEntities() {
37586
37446
  entities = /* @__PURE__ */ new Map();
37587
37447
  notify();
37588
37448
  }
37589
- function getSnapshot3() {
37449
+ function getSnapshot2() {
37590
37450
  return entities;
37591
37451
  }
37592
37452
 
37593
37453
  // hooks/useEntities.ts
37594
37454
  function useEntities() {
37595
- const entities2 = useSyncExternalStore(subscribe, getSnapshot3, getSnapshot3);
37455
+ const entities2 = useSyncExternalStore(subscribe, getSnapshot2, getSnapshot2);
37596
37456
  return {
37597
37457
  entities: entities2,
37598
37458
  getEntity,
@@ -37607,15 +37467,15 @@ function useEntities() {
37607
37467
  };
37608
37468
  }
37609
37469
  function useEntity2(id) {
37610
- const entities2 = useSyncExternalStore(subscribe, getSnapshot3, getSnapshot3);
37470
+ const entities2 = useSyncExternalStore(subscribe, getSnapshot2, getSnapshot2);
37611
37471
  return entities2.get(id);
37612
37472
  }
37613
37473
  function useEntitiesByType(type) {
37614
- const entities2 = useSyncExternalStore(subscribe, getSnapshot3, getSnapshot3);
37474
+ const entities2 = useSyncExternalStore(subscribe, getSnapshot2, getSnapshot2);
37615
37475
  return [...entities2.values()].filter((e) => e.type === type);
37616
37476
  }
37617
37477
  function useSingletonEntity(type) {
37618
- const entities2 = useSyncExternalStore(subscribe, getSnapshot3, getSnapshot3);
37478
+ const entities2 = useSyncExternalStore(subscribe, getSnapshot2, getSnapshot2);
37619
37479
  return [...entities2.values()].find((e) => e.type === type);
37620
37480
  }
37621
37481
  function usePlayer() {
@@ -1379,22 +1379,13 @@ function useRaycaster(options) {
1379
1379
  // lib/logger.ts
1380
1380
  var LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
1381
1381
  var ENV = typeof process !== "undefined" && process.env ? process.env : {};
1382
- var VITE_ENV = typeof globalThis !== "undefined" && globalThis.__vite_env__ ? globalThis.__vite_env__ : {};
1383
- function getViteEnv(key) {
1384
- try {
1385
- const meta = (0, eval)('typeof import.meta !== "undefined" && import.meta');
1386
- return meta ? meta.env?.[key] : void 0;
1387
- } catch {
1388
- return void 0;
1389
- }
1390
- }
1391
- function envGet(key, viteKey) {
1392
- return ENV[key] ?? (viteKey ? getViteEnv(viteKey) : void 0) ?? VITE_ENV[viteKey ?? key];
1382
+ function envGet(key) {
1383
+ return ENV[key] ?? ENV[`VITE_${key}`];
1393
1384
  }
1394
- var NODE_ENV = envGet("NODE_ENV", "VITE_NODE_ENV") ?? "development";
1395
- var CONFIGURED_LEVEL = (envGet("LOG_LEVEL", "VITE_LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
1385
+ var NODE_ENV = envGet("NODE_ENV") ?? "development";
1386
+ var CONFIGURED_LEVEL = (envGet("LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
1396
1387
  var MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
1397
- var DEBUG_FILTER = (envGet("ALMADAR_DEBUG", "VITE_ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
1388
+ var DEBUG_FILTER = (envGet("ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
1398
1389
  function matchesNamespace(namespace) {
1399
1390
  if (DEBUG_FILTER.length === 0) return true;
1400
1391
  return DEBUG_FILTER.some((pattern) => {
@@ -1355,22 +1355,13 @@ function useRaycaster(options) {
1355
1355
  // lib/logger.ts
1356
1356
  var LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
1357
1357
  var ENV = typeof process !== "undefined" && process.env ? process.env : {};
1358
- var VITE_ENV = typeof globalThis !== "undefined" && globalThis.__vite_env__ ? globalThis.__vite_env__ : {};
1359
- function getViteEnv(key) {
1360
- try {
1361
- const meta = (0, eval)('typeof import.meta !== "undefined" && import.meta');
1362
- return meta ? meta.env?.[key] : void 0;
1363
- } catch {
1364
- return void 0;
1365
- }
1366
- }
1367
- function envGet(key, viteKey) {
1368
- return ENV[key] ?? (viteKey ? getViteEnv(viteKey) : void 0) ?? VITE_ENV[viteKey ?? key];
1358
+ function envGet(key) {
1359
+ return ENV[key] ?? ENV[`VITE_${key}`];
1369
1360
  }
1370
- var NODE_ENV = envGet("NODE_ENV", "VITE_NODE_ENV") ?? "development";
1371
- var CONFIGURED_LEVEL = (envGet("LOG_LEVEL", "VITE_LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
1361
+ var NODE_ENV = envGet("NODE_ENV") ?? "development";
1362
+ var CONFIGURED_LEVEL = (envGet("LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
1372
1363
  var MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
1373
- var DEBUG_FILTER = (envGet("ALMADAR_DEBUG", "VITE_ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
1364
+ var DEBUG_FILTER = (envGet("ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
1374
1365
  function matchesNamespace(namespace) {
1375
1366
  if (DEBUG_FILTER.length === 0) return true;
1376
1367
  return DEBUG_FILTER.some((pattern) => {
@@ -2510,22 +2510,13 @@ function cn(...inputs) {
2510
2510
  // lib/logger.ts
2511
2511
  var LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
2512
2512
  var ENV = typeof process !== "undefined" && process.env ? process.env : {};
2513
- var VITE_ENV = typeof globalThis !== "undefined" && globalThis.__vite_env__ ? globalThis.__vite_env__ : {};
2514
- function getViteEnv(key) {
2515
- try {
2516
- const meta = (0, eval)('typeof import.meta !== "undefined" && import.meta');
2517
- return meta ? meta.env?.[key] : void 0;
2518
- } catch {
2519
- return void 0;
2520
- }
2521
- }
2522
- function envGet(key, viteKey) {
2523
- return ENV[key] ?? (viteKey ? getViteEnv(viteKey) : void 0) ?? VITE_ENV[viteKey ?? key];
2513
+ function envGet(key) {
2514
+ return ENV[key] ?? ENV[`VITE_${key}`];
2524
2515
  }
2525
- var NODE_ENV = envGet("NODE_ENV", "VITE_NODE_ENV") ?? "development";
2526
- var CONFIGURED_LEVEL = (envGet("LOG_LEVEL", "VITE_LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
2516
+ var NODE_ENV = envGet("NODE_ENV") ?? "development";
2517
+ var CONFIGURED_LEVEL = (envGet("LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
2527
2518
  var MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
2528
- var DEBUG_FILTER = (envGet("ALMADAR_DEBUG", "VITE_ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
2519
+ var DEBUG_FILTER = (envGet("ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
2529
2520
  function matchesNamespace(namespace) {
2530
2521
  if (DEBUG_FILTER.length === 0) return true;
2531
2522
  return DEBUG_FILTER.some((pattern) => {