@almadar/ui 2.48.6 → 2.48.9

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.
@@ -1,18 +1,15 @@
1
1
  'use strict';
2
2
 
3
3
  var React114 = require('react');
4
- var jsxRuntime = require('react/jsx-runtime');
5
4
  var providers = require('@almadar/ui/providers');
5
+ var clsx = require('clsx');
6
+ var tailwindMerge = require('tailwind-merge');
7
+ var jsxRuntime = require('react/jsx-runtime');
6
8
  require('react-dom');
7
9
  require('@almadar/ui/context');
8
10
  var LucideIcons = require('lucide-react');
9
- var clsx = require('clsx');
10
- var tailwindMerge = require('tailwind-merge');
11
11
  require('@almadar/evaluator');
12
12
  require('@almadar/patterns');
13
- require('react-leaflet');
14
- var L = require('leaflet');
15
- require('leaflet/dist/leaflet.css');
16
13
  require('react-router-dom');
17
14
  var ReactMarkdown = require('react-markdown');
18
15
  var remarkGfm = require('remark-gfm');
@@ -60,7 +57,6 @@ function _interopNamespace(e) {
60
57
 
61
58
  var React114__namespace = /*#__PURE__*/_interopNamespace(React114);
62
59
  var LucideIcons__namespace = /*#__PURE__*/_interopNamespace(LucideIcons);
63
- var L__default = /*#__PURE__*/_interopDefault(L);
64
60
  var ReactMarkdown__default = /*#__PURE__*/_interopDefault(ReactMarkdown);
65
61
  var remarkGfm__default = /*#__PURE__*/_interopDefault(remarkGfm);
66
62
  var remarkMath__default = /*#__PURE__*/_interopDefault(remarkMath);
@@ -85,8 +81,361 @@ var langGo__default = /*#__PURE__*/_interopDefault(langGo);
85
81
  var langGraphql__default = /*#__PURE__*/_interopDefault(langGraphql);
86
82
 
87
83
  var __defProp = Object.defineProperty;
84
+ var __getOwnPropNames = Object.getOwnPropertyNames;
88
85
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
86
+ var __esm = (fn, res) => function __init() {
87
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
88
+ };
89
+ var __export = (target, all) => {
90
+ for (var name in all)
91
+ __defProp(target, name, { get: all[name], enumerable: true });
92
+ };
89
93
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
94
+
95
+ // lib/logger.ts
96
+ function envGet(key) {
97
+ return ENV[key] ?? ENV[`VITE_${key}`];
98
+ }
99
+ function matchesNamespace(namespace) {
100
+ if (DEBUG_FILTER.length === 0) return true;
101
+ return DEBUG_FILTER.some((pattern) => {
102
+ if (pattern === "*" || pattern === "almadar:*") return true;
103
+ if (pattern.endsWith(":*")) return namespace.startsWith(pattern.slice(0, -1));
104
+ return namespace === pattern;
105
+ });
106
+ }
107
+ function createLogger(namespace) {
108
+ const nsAllowed = matchesNamespace(namespace);
109
+ const log4 = (level, message, data, correlationId) => {
110
+ if (LEVEL_PRIORITY[level] < MIN_PRIORITY) return;
111
+ if (level === "DEBUG" && !nsAllowed) return;
112
+ const prefix = `[${namespace}]`;
113
+ const logData = correlationId ? { ...data, cid: correlationId } : data;
114
+ switch (level) {
115
+ case "DEBUG":
116
+ console.debug(prefix, message, logData ?? "");
117
+ break;
118
+ case "INFO":
119
+ console.info(prefix, message, logData ?? "");
120
+ break;
121
+ case "WARN":
122
+ console.warn(prefix, message, logData ?? "");
123
+ break;
124
+ case "ERROR":
125
+ console.error(prefix, message, logData ?? "");
126
+ break;
127
+ }
128
+ };
129
+ return {
130
+ debug: (msg, data, cid) => log4("DEBUG", msg, data, cid),
131
+ info: (msg, data, cid) => log4("INFO", msg, data, cid),
132
+ warn: (msg, data, cid) => log4("WARN", msg, data, cid),
133
+ error: (msg, data, cid) => log4("ERROR", msg, data, cid)
134
+ };
135
+ }
136
+ var LEVEL_PRIORITY, ENV, NODE_ENV, CONFIGURED_LEVEL, MIN_PRIORITY, DEBUG_FILTER;
137
+ var init_logger = __esm({
138
+ "lib/logger.ts"() {
139
+ LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
140
+ ENV = typeof process !== "undefined" && process.env ? process.env : {};
141
+ NODE_ENV = envGet("NODE_ENV") ?? "development";
142
+ CONFIGURED_LEVEL = (envGet("LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
143
+ MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
144
+ DEBUG_FILTER = (envGet("ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
145
+ }
146
+ });
147
+
148
+ // hooks/useEventBus.ts
149
+ var useEventBus_exports = {};
150
+ __export(useEventBus_exports, {
151
+ default: () => useEventBus_default,
152
+ getGlobalEventBus: () => getGlobalEventBus,
153
+ setGlobalEventBus: () => setGlobalEventBus,
154
+ useEmitEvent: () => useEmitEvent,
155
+ useEventBus: () => useEventBus,
156
+ useEventListener: () => useEventListener,
157
+ useEventSubscription: () => useEventSubscription
158
+ });
159
+ function setGlobalEventBus(bus) {
160
+ if (typeof window !== "undefined") {
161
+ window.__kflowEventBus = bus;
162
+ }
163
+ }
164
+ function getGlobalEventBus() {
165
+ if (typeof window !== "undefined") {
166
+ return window.__kflowEventBus ?? null;
167
+ }
168
+ return null;
169
+ }
170
+ function useEventBus() {
171
+ const context = React114.useContext(providers.EventBusContext);
172
+ return context ?? getGlobalEventBus() ?? fallbackEventBus;
173
+ }
174
+ function useEventListener(event, handler) {
175
+ const eventBus = useEventBus();
176
+ const handlerRef = React114.useRef(handler);
177
+ handlerRef.current = handler;
178
+ React114.useEffect(() => {
179
+ const wrappedHandler = (evt) => {
180
+ handlerRef.current(evt);
181
+ };
182
+ const unsub = eventBus.on(event, wrappedHandler);
183
+ return () => {
184
+ if (typeof unsub === "function") unsub();
185
+ };
186
+ }, [event, eventBus]);
187
+ }
188
+ function useEmitEvent() {
189
+ const eventBus = useEventBus();
190
+ return React114.useCallback(
191
+ (type, payload) => {
192
+ eventBus.emit(type, payload);
193
+ },
194
+ [eventBus]
195
+ );
196
+ }
197
+ var log, subLog, fallbackListeners, fallbackAnyListeners, fallbackEventBus, useEventSubscription, useEventBus_default;
198
+ var init_useEventBus = __esm({
199
+ "hooks/useEventBus.ts"() {
200
+ "use client";
201
+ init_logger();
202
+ log = createLogger("almadar:eventbus");
203
+ subLog = createLogger("almadar:eventbus:subscribe");
204
+ fallbackListeners = /* @__PURE__ */ new Map();
205
+ fallbackAnyListeners = /* @__PURE__ */ new Set();
206
+ fallbackEventBus = {
207
+ emit: (type, payload) => {
208
+ const event = {
209
+ type,
210
+ payload,
211
+ timestamp: Date.now()
212
+ };
213
+ const handlers = fallbackListeners.get(type);
214
+ log.debug("emit", { type, payloadKeys: payload ? Object.keys(payload).length : 0, listenerCount: (handlers?.size ?? 0) + fallbackAnyListeners.size });
215
+ if (handlers) {
216
+ handlers.forEach((handler) => {
217
+ try {
218
+ handler(event);
219
+ } catch (error) {
220
+ console.error(`[EventBus] Error in listener for '${type}':`, error);
221
+ }
222
+ });
223
+ }
224
+ fallbackAnyListeners.forEach((handler) => {
225
+ try {
226
+ handler(event);
227
+ } catch (error) {
228
+ console.error(`[EventBus] Error in onAny listener for '${type}':`, error);
229
+ }
230
+ });
231
+ },
232
+ on: (type, listener) => {
233
+ if (!fallbackListeners.has(type)) {
234
+ fallbackListeners.set(type, /* @__PURE__ */ new Set());
235
+ }
236
+ fallbackListeners.get(type).add(listener);
237
+ subLog.debug("subscribe", { type, totalListeners: fallbackListeners.get(type).size });
238
+ return () => {
239
+ const handlers = fallbackListeners.get(type);
240
+ if (handlers) {
241
+ handlers.delete(listener);
242
+ if (handlers.size === 0) {
243
+ fallbackListeners.delete(type);
244
+ }
245
+ }
246
+ };
247
+ },
248
+ once: (type, listener) => {
249
+ const wrappedListener = (event) => {
250
+ fallbackListeners.get(type)?.delete(wrappedListener);
251
+ listener(event);
252
+ };
253
+ return fallbackEventBus.on(type, wrappedListener);
254
+ },
255
+ hasListeners: (type) => {
256
+ const handlers = fallbackListeners.get(type);
257
+ return handlers !== void 0 && handlers.size > 0;
258
+ },
259
+ onAny: (listener) => {
260
+ fallbackAnyListeners.add(listener);
261
+ subLog.debug("subscribe:any", { totalAnyListeners: fallbackAnyListeners.size });
262
+ return () => {
263
+ fallbackAnyListeners.delete(listener);
264
+ };
265
+ }
266
+ };
267
+ useEventSubscription = useEventListener;
268
+ useEventBus_default = useEventBus;
269
+ }
270
+ });
271
+ function cn(...inputs) {
272
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
273
+ }
274
+ var init_cn = __esm({
275
+ "lib/cn.ts"() {
276
+ }
277
+ });
278
+
279
+ // components/atoms/Typography.tsx
280
+ var Typography_exports = {};
281
+ __export(Typography_exports, {
282
+ Heading: () => Heading,
283
+ Text: () => Text,
284
+ Typography: () => Typography
285
+ });
286
+ var variantStyles, colorStyles, weightStyles, defaultElements, typographySizeStyles, overflowStyles2, Typography, sizeStyles, Heading, Text;
287
+ var init_Typography = __esm({
288
+ "components/atoms/Typography.tsx"() {
289
+ init_cn();
290
+ variantStyles = {
291
+ h1: "text-4xl font-bold tracking-tight text-foreground",
292
+ h2: "text-3xl font-bold tracking-tight text-foreground",
293
+ h3: "text-2xl font-bold text-foreground",
294
+ h4: "text-xl font-bold text-foreground",
295
+ h5: "text-lg font-bold text-foreground",
296
+ h6: "text-base font-bold text-foreground",
297
+ heading: "text-2xl font-bold text-foreground",
298
+ subheading: "text-lg font-semibold text-foreground",
299
+ body1: "text-base font-normal text-foreground",
300
+ body2: "text-sm font-normal text-foreground",
301
+ body: "text-base font-normal text-foreground",
302
+ caption: "text-xs font-normal text-muted-foreground",
303
+ overline: "text-xs uppercase tracking-wide font-bold text-muted-foreground",
304
+ small: "text-sm font-normal text-foreground",
305
+ large: "text-lg font-medium text-foreground",
306
+ label: "text-sm font-medium text-foreground"
307
+ };
308
+ colorStyles = {
309
+ primary: "text-foreground",
310
+ secondary: "text-muted-foreground",
311
+ muted: "text-muted-foreground",
312
+ error: "text-error",
313
+ success: "text-success",
314
+ warning: "text-warning",
315
+ inherit: "text-inherit"
316
+ };
317
+ weightStyles = {
318
+ light: "font-light",
319
+ normal: "font-normal",
320
+ medium: "font-medium",
321
+ semibold: "font-semibold",
322
+ bold: "font-bold"
323
+ };
324
+ defaultElements = {
325
+ h1: "h1",
326
+ h2: "h2",
327
+ h3: "h3",
328
+ h4: "h4",
329
+ h5: "h5",
330
+ h6: "h6",
331
+ heading: "h2",
332
+ subheading: "h3",
333
+ body1: "p",
334
+ body2: "p",
335
+ body: "p",
336
+ caption: "span",
337
+ overline: "span",
338
+ small: "span",
339
+ large: "p",
340
+ label: "span"
341
+ };
342
+ typographySizeStyles = {
343
+ xs: "text-xs",
344
+ sm: "text-sm",
345
+ md: "text-base",
346
+ lg: "text-lg",
347
+ xl: "text-xl",
348
+ "2xl": "text-2xl",
349
+ "3xl": "text-3xl"
350
+ };
351
+ overflowStyles2 = {
352
+ visible: "overflow-visible",
353
+ hidden: "overflow-hidden",
354
+ wrap: "break-words overflow-hidden",
355
+ "clamp-2": "overflow-hidden line-clamp-2",
356
+ "clamp-3": "overflow-hidden line-clamp-3"
357
+ };
358
+ Typography = ({
359
+ variant: variantProp,
360
+ level,
361
+ color = "primary",
362
+ align,
363
+ weight,
364
+ size,
365
+ truncate = false,
366
+ overflow,
367
+ as,
368
+ id,
369
+ className,
370
+ style,
371
+ content,
372
+ children
373
+ }) => {
374
+ const variant = variantProp ?? (level ? `h${level}` : "body1");
375
+ const Component = as || defaultElements[variant];
376
+ const Comp = Component;
377
+ return /* @__PURE__ */ jsxRuntime.jsx(
378
+ Comp,
379
+ {
380
+ id,
381
+ className: cn(
382
+ variantStyles[variant],
383
+ colorStyles[color],
384
+ weight && weightStyles[weight],
385
+ size && typographySizeStyles[size],
386
+ align && `text-${align}`,
387
+ truncate && "truncate overflow-hidden text-ellipsis",
388
+ overflow && overflowStyles2[overflow],
389
+ className
390
+ ),
391
+ style,
392
+ children: children ?? content
393
+ }
394
+ );
395
+ };
396
+ Typography.displayName = "Typography";
397
+ sizeStyles = {
398
+ xs: "text-xs",
399
+ sm: "text-sm",
400
+ md: "text-base",
401
+ lg: "text-lg",
402
+ xl: "text-xl",
403
+ "2xl": "text-2xl",
404
+ "3xl": "text-3xl"
405
+ };
406
+ Heading = ({
407
+ level = 2,
408
+ size,
409
+ className,
410
+ ...props
411
+ }) => {
412
+ const variant = `h${level}`;
413
+ const sizeClass = size ? sizeStyles[size] : void 0;
414
+ return /* @__PURE__ */ jsxRuntime.jsx(
415
+ Typography,
416
+ {
417
+ variant,
418
+ className: cn(sizeClass, className),
419
+ ...props
420
+ }
421
+ );
422
+ };
423
+ Heading.displayName = "Heading";
424
+ Text = ({
425
+ variant = "body",
426
+ ...props
427
+ }) => {
428
+ return /* @__PURE__ */ jsxRuntime.jsx(
429
+ Typography,
430
+ {
431
+ variant,
432
+ ...props
433
+ }
434
+ );
435
+ };
436
+ Text.displayName = "Text";
437
+ }
438
+ });
90
439
  var BUILT_IN_THEMES = [
91
440
  {
92
441
  name: "wireframe",
@@ -318,53 +667,8 @@ var ThemeProvider = ({
318
667
  return /* @__PURE__ */ jsxRuntime.jsx(ThemeContext.Provider, { value: contextValue2, children });
319
668
  };
320
669
 
321
- // lib/logger.ts
322
- var LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
323
- var ENV = typeof process !== "undefined" && process.env ? process.env : {};
324
- function envGet(key) {
325
- return ENV[key] ?? ENV[`VITE_${key}`];
326
- }
327
- var NODE_ENV = envGet("NODE_ENV") ?? "development";
328
- var CONFIGURED_LEVEL = (envGet("LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
329
- var MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
330
- var DEBUG_FILTER = (envGet("ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
331
- function matchesNamespace(namespace) {
332
- if (DEBUG_FILTER.length === 0) return true;
333
- return DEBUG_FILTER.some((pattern) => {
334
- if (pattern === "*" || pattern === "almadar:*") return true;
335
- if (pattern.endsWith(":*")) return namespace.startsWith(pattern.slice(0, -1));
336
- return namespace === pattern;
337
- });
338
- }
339
- function createLogger(namespace) {
340
- const nsAllowed = matchesNamespace(namespace);
341
- const log4 = (level, message, data, correlationId) => {
342
- if (LEVEL_PRIORITY[level] < MIN_PRIORITY) return;
343
- if (level === "DEBUG" && !nsAllowed) return;
344
- const prefix = `[${namespace}]`;
345
- const logData = correlationId ? { ...data, cid: correlationId } : data;
346
- switch (level) {
347
- case "DEBUG":
348
- console.debug(prefix, message, logData ?? "");
349
- break;
350
- case "INFO":
351
- console.info(prefix, message, logData ?? "");
352
- break;
353
- case "WARN":
354
- console.warn(prefix, message, logData ?? "");
355
- break;
356
- case "ERROR":
357
- console.error(prefix, message, logData ?? "");
358
- break;
359
- }
360
- };
361
- return {
362
- debug: (msg, data, cid) => log4("DEBUG", msg, data, cid),
363
- info: (msg, data, cid) => log4("INFO", msg, data, cid),
364
- warn: (msg, data, cid) => log4("WARN", msg, data, cid),
365
- error: (msg, data, cid) => log4("ERROR", msg, data, cid)
366
- };
367
- }
670
+ // providers/EntityStoreProvider.tsx
671
+ init_logger();
368
672
  var storeLog = createLogger("almadar:entity:store");
369
673
  var store = /* @__PURE__ */ new Map();
370
674
  var storeListeners = /* @__PURE__ */ new Set();
@@ -533,86 +837,10 @@ function useEntityStore() {
533
837
  function EntityStoreProvider({ children }) {
534
838
  return /* @__PURE__ */ jsxRuntime.jsx(EntityStoreContext.Provider, { value: contextValue, children });
535
839
  }
536
- var log = createLogger("almadar:eventbus");
537
- var subLog = createLogger("almadar:eventbus:subscribe");
538
- function setGlobalEventBus(bus) {
539
- if (typeof window !== "undefined") {
540
- window.__kflowEventBus = bus;
541
- }
542
- }
543
- function getGlobalEventBus() {
544
- if (typeof window !== "undefined") {
545
- return window.__kflowEventBus ?? null;
546
- }
547
- return null;
548
- }
549
- var fallbackListeners = /* @__PURE__ */ new Map();
550
- var fallbackAnyListeners = /* @__PURE__ */ new Set();
551
- var fallbackEventBus = {
552
- emit: (type, payload) => {
553
- const event = {
554
- type,
555
- payload,
556
- timestamp: Date.now()
557
- };
558
- const handlers = fallbackListeners.get(type);
559
- log.debug("emit", { type, payloadKeys: payload ? Object.keys(payload).length : 0, listenerCount: (handlers?.size ?? 0) + fallbackAnyListeners.size });
560
- if (handlers) {
561
- handlers.forEach((handler) => {
562
- try {
563
- handler(event);
564
- } catch (error) {
565
- console.error(`[EventBus] Error in listener for '${type}':`, error);
566
- }
567
- });
568
- }
569
- fallbackAnyListeners.forEach((handler) => {
570
- try {
571
- handler(event);
572
- } catch (error) {
573
- console.error(`[EventBus] Error in onAny listener for '${type}':`, error);
574
- }
575
- });
576
- },
577
- on: (type, listener) => {
578
- if (!fallbackListeners.has(type)) {
579
- fallbackListeners.set(type, /* @__PURE__ */ new Set());
580
- }
581
- fallbackListeners.get(type).add(listener);
582
- subLog.debug("subscribe", { type, totalListeners: fallbackListeners.get(type).size });
583
- return () => {
584
- const handlers = fallbackListeners.get(type);
585
- if (handlers) {
586
- handlers.delete(listener);
587
- if (handlers.size === 0) {
588
- fallbackListeners.delete(type);
589
- }
590
- }
591
- };
592
- },
593
- once: (type, listener) => {
594
- const wrappedListener = (event) => {
595
- fallbackListeners.get(type)?.delete(wrappedListener);
596
- listener(event);
597
- };
598
- return fallbackEventBus.on(type, wrappedListener);
599
- },
600
- hasListeners: (type) => {
601
- const handlers = fallbackListeners.get(type);
602
- return handlers !== void 0 && handlers.size > 0;
603
- },
604
- onAny: (listener) => {
605
- fallbackAnyListeners.add(listener);
606
- subLog.debug("subscribe:any", { totalAnyListeners: fallbackAnyListeners.size });
607
- return () => {
608
- fallbackAnyListeners.delete(listener);
609
- };
610
- }
611
- };
612
- function useEventBus() {
613
- const context = React114.useContext(providers.EventBusContext);
614
- return context ?? getGlobalEventBus() ?? fallbackEventBus;
615
- }
840
+
841
+ // providers/EventBusProvider.tsx
842
+ init_useEventBus();
843
+ init_logger();
616
844
  var busLog = createLogger("almadar:eventbus");
617
845
  var subLog2 = createLogger("almadar:eventbus:subscribe");
618
846
  var EventBusContext2 = React114.createContext(null);
@@ -736,6 +964,9 @@ function EventBusProvider({ children, debug: debug2 = false }) {
736
964
  }, [contextValue2]);
737
965
  return /* @__PURE__ */ jsxRuntime.jsx(EventBusContext2.Provider, { value: contextValue2, children });
738
966
  }
967
+
968
+ // providers/SelectionProvider.tsx
969
+ init_useEventBus();
739
970
  var SelectionContext = React114.createContext(null);
740
971
  var defaultCompareEntities = (a, b) => {
741
972
  if (a === b) return true;
@@ -824,9 +1055,9 @@ function useSelectionOptional() {
824
1055
  return context;
825
1056
  }
826
1057
  React114.createContext(null);
827
- function cn(...inputs) {
828
- return tailwindMerge.twMerge(clsx.clsx(inputs));
829
- }
1058
+
1059
+ // components/atoms/Icon.tsx
1060
+ init_cn();
830
1061
  var iconAliases = {
831
1062
  "close": LucideIcons__namespace.X,
832
1063
  "trash": LucideIcons__namespace.Trash2,
@@ -862,6 +1093,10 @@ function doResolve(name) {
862
1093
  if (asIs && typeof asIs === "object") return asIs;
863
1094
  return LucideIcons__namespace.HelpCircle;
864
1095
  }
1096
+
1097
+ // components/atoms/Box.tsx
1098
+ init_cn();
1099
+ init_useEventBus();
865
1100
  var paddingStyles = {
866
1101
  none: "p-0",
867
1102
  xs: "p-1",
@@ -1060,113 +1295,25 @@ var Box = React114__namespace.default.forwardRef(
1060
1295
  }
1061
1296
  );
1062
1297
  Box.displayName = "Box";
1063
- var variantStyles = {
1064
- h1: "text-4xl font-bold tracking-tight text-foreground",
1065
- h2: "text-3xl font-bold tracking-tight text-foreground",
1066
- h3: "text-2xl font-bold text-foreground",
1067
- h4: "text-xl font-bold text-foreground",
1068
- h5: "text-lg font-bold text-foreground",
1069
- h6: "text-base font-bold text-foreground",
1070
- heading: "text-2xl font-bold text-foreground",
1071
- subheading: "text-lg font-semibold text-foreground",
1072
- body1: "text-base font-normal text-foreground",
1073
- body2: "text-sm font-normal text-foreground",
1074
- body: "text-base font-normal text-foreground",
1075
- caption: "text-xs font-normal text-muted-foreground",
1076
- overline: "text-xs uppercase tracking-wide font-bold text-muted-foreground",
1077
- small: "text-sm font-normal text-foreground",
1078
- large: "text-lg font-medium text-foreground",
1079
- label: "text-sm font-medium text-foreground"
1080
- };
1081
- var colorStyles = {
1082
- primary: "text-foreground",
1083
- secondary: "text-muted-foreground",
1084
- muted: "text-muted-foreground",
1085
- error: "text-error",
1086
- success: "text-success",
1087
- warning: "text-warning",
1088
- inherit: "text-inherit"
1089
- };
1090
- var weightStyles = {
1091
- light: "font-light",
1092
- normal: "font-normal",
1093
- medium: "font-medium",
1094
- semibold: "font-semibold",
1095
- bold: "font-bold"
1096
- };
1097
- var defaultElements = {
1098
- h1: "h1",
1099
- h2: "h2",
1100
- h3: "h3",
1101
- h4: "h4",
1102
- h5: "h5",
1103
- h6: "h6",
1104
- heading: "h2",
1105
- subheading: "h3",
1106
- body1: "p",
1107
- body2: "p",
1108
- body: "p",
1109
- caption: "span",
1110
- overline: "span",
1111
- small: "span",
1112
- large: "p",
1113
- label: "span"
1114
- };
1115
- var typographySizeStyles = {
1116
- xs: "text-xs",
1117
- sm: "text-sm",
1118
- md: "text-base",
1119
- lg: "text-lg",
1120
- xl: "text-xl",
1121
- "2xl": "text-2xl",
1122
- "3xl": "text-3xl"
1123
- };
1124
- var overflowStyles2 = {
1125
- visible: "overflow-visible",
1126
- hidden: "overflow-hidden",
1127
- wrap: "break-words overflow-hidden",
1128
- "clamp-2": "overflow-hidden line-clamp-2",
1129
- "clamp-3": "overflow-hidden line-clamp-3"
1130
- };
1131
- var Typography = ({
1132
- variant: variantProp,
1133
- level,
1134
- color = "primary",
1135
- align,
1136
- weight,
1137
- size,
1138
- truncate = false,
1139
- overflow,
1140
- as,
1141
- id,
1142
- className,
1143
- style,
1144
- content,
1145
- children
1146
- }) => {
1147
- const variant = variantProp ?? (level ? `h${level}` : "body1");
1148
- const Component = as || defaultElements[variant];
1149
- const Comp = Component;
1150
- return /* @__PURE__ */ jsxRuntime.jsx(
1151
- Comp,
1152
- {
1153
- id,
1154
- className: cn(
1155
- variantStyles[variant],
1156
- colorStyles[color],
1157
- weight && weightStyles[weight],
1158
- size && typographySizeStyles[size],
1159
- align && `text-${align}`,
1160
- truncate && "truncate overflow-hidden text-ellipsis",
1161
- overflow && overflowStyles2[overflow],
1162
- className
1163
- ),
1164
- style,
1165
- children: children ?? content
1166
- }
1167
- );
1168
- };
1169
- Typography.displayName = "Typography";
1298
+
1299
+ // components/molecules/Modal.tsx
1300
+ init_Typography();
1301
+
1302
+ // components/atoms/Overlay.tsx
1303
+ init_cn();
1304
+ init_useEventBus();
1305
+
1306
+ // components/molecules/Modal.tsx
1307
+ init_cn();
1308
+ init_useEventBus();
1309
+ init_Typography();
1310
+ init_cn();
1311
+ init_useEventBus();
1312
+ init_Typography();
1313
+
1314
+ // components/atoms/Button.tsx
1315
+ init_cn();
1316
+ init_useEventBus();
1170
1317
  var variantStyles2 = {
1171
1318
  primary: [
1172
1319
  "bg-primary text-primary-foreground",
@@ -1305,6 +1452,9 @@ var Button = React114__namespace.default.forwardRef(
1305
1452
  }
1306
1453
  );
1307
1454
  Button.displayName = "Button";
1455
+
1456
+ // components/atoms/Badge.tsx
1457
+ init_cn();
1308
1458
  var variantStyles3 = {
1309
1459
  default: [
1310
1460
  "bg-muted text-foreground",
@@ -1369,6 +1519,23 @@ var Badge = React114__namespace.default.forwardRef(
1369
1519
  }
1370
1520
  );
1371
1521
  Badge.displayName = "Badge";
1522
+
1523
+ // components/molecules/Toast.tsx
1524
+ init_cn();
1525
+ init_useEventBus();
1526
+
1527
+ // components/organisms/UISlotRenderer.tsx
1528
+ init_Typography();
1529
+ init_cn();
1530
+
1531
+ // components/molecules/ErrorBoundary.tsx
1532
+ init_cn();
1533
+
1534
+ // components/molecules/ErrorState.tsx
1535
+ init_cn();
1536
+
1537
+ // components/atoms/Input.tsx
1538
+ init_cn();
1372
1539
  var Input = React114__namespace.default.forwardRef(
1373
1540
  ({
1374
1541
  className,
@@ -1481,6 +1648,9 @@ var Input = React114__namespace.default.forwardRef(
1481
1648
  }
1482
1649
  );
1483
1650
  Input.displayName = "Input";
1651
+
1652
+ // components/atoms/Label.tsx
1653
+ init_cn();
1484
1654
  var Label = React114__namespace.default.forwardRef(
1485
1655
  ({ className, required, children, ...props }, ref) => {
1486
1656
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1501,6 +1671,9 @@ var Label = React114__namespace.default.forwardRef(
1501
1671
  }
1502
1672
  );
1503
1673
  Label.displayName = "Label";
1674
+
1675
+ // components/atoms/Textarea.tsx
1676
+ init_cn();
1504
1677
  var Textarea = React114__namespace.default.forwardRef(
1505
1678
  ({ className, error, ...props }, ref) => {
1506
1679
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -1524,6 +1697,9 @@ var Textarea = React114__namespace.default.forwardRef(
1524
1697
  }
1525
1698
  );
1526
1699
  Textarea.displayName = "Textarea";
1700
+
1701
+ // components/atoms/Select.tsx
1702
+ init_cn();
1527
1703
  var Select = React114__namespace.default.forwardRef(
1528
1704
  ({ className, options, placeholder, error, ...props }, ref) => {
1529
1705
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
@@ -1560,6 +1736,9 @@ var Select = React114__namespace.default.forwardRef(
1560
1736
  }
1561
1737
  );
1562
1738
  Select.displayName = "Select";
1739
+
1740
+ // components/atoms/Checkbox.tsx
1741
+ init_cn();
1563
1742
  var Checkbox = React114__namespace.default.forwardRef(
1564
1743
  ({ className, label, id, ...props }, ref) => {
1565
1744
  const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
@@ -1592,6 +1771,9 @@ var Checkbox = React114__namespace.default.forwardRef(
1592
1771
  }
1593
1772
  );
1594
1773
  Checkbox.displayName = "Checkbox";
1774
+
1775
+ // components/atoms/Card.tsx
1776
+ init_cn();
1595
1777
  var variantStyles4 = {
1596
1778
  default: [
1597
1779
  "bg-card",
@@ -1700,6 +1882,9 @@ var CardFooter = React114__namespace.default.forwardRef(({ className, ...props }
1700
1882
  }
1701
1883
  ));
1702
1884
  CardFooter.displayName = "CardFooter";
1885
+
1886
+ // components/atoms/Spinner.tsx
1887
+ init_cn();
1703
1888
  var sizeStyles4 = {
1704
1889
  xs: "h-3 w-3",
1705
1890
  sm: "h-4 w-4",
@@ -1720,6 +1905,22 @@ var Spinner = React114__namespace.default.forwardRef(
1720
1905
  }
1721
1906
  );
1722
1907
  Spinner.displayName = "Spinner";
1908
+
1909
+ // components/atoms/Avatar.tsx
1910
+ init_cn();
1911
+ init_useEventBus();
1912
+
1913
+ // components/atoms/Center.tsx
1914
+ init_cn();
1915
+
1916
+ // components/atoms/Divider.tsx
1917
+ init_cn();
1918
+
1919
+ // components/atoms/ProgressBar.tsx
1920
+ init_cn();
1921
+
1922
+ // components/atoms/Radio.tsx
1923
+ init_cn();
1723
1924
  var Radio = React114__namespace.default.forwardRef(
1724
1925
  ({
1725
1926
  label,
@@ -1824,6 +2025,9 @@ var Radio = React114__namespace.default.forwardRef(
1824
2025
  }
1825
2026
  );
1826
2027
  Radio.displayName = "Radio";
2028
+
2029
+ // components/atoms/Switch.tsx
2030
+ init_cn();
1827
2031
  var Switch = React114__namespace.forwardRef(
1828
2032
  ({
1829
2033
  checked,
@@ -1897,6 +2101,13 @@ var Switch = React114__namespace.forwardRef(
1897
2101
  }
1898
2102
  );
1899
2103
  Switch.displayName = "Switch";
2104
+
2105
+ // components/atoms/Spacer.tsx
2106
+ init_cn();
2107
+
2108
+ // components/atoms/Stack.tsx
2109
+ init_cn();
2110
+ init_useEventBus();
1900
2111
  var gapStyles = {
1901
2112
  none: "gap-0",
1902
2113
  xs: "gap-1",
@@ -1975,6 +2186,31 @@ var Stack = ({
1975
2186
  };
1976
2187
  var VStack = (props) => /* @__PURE__ */ jsxRuntime.jsx(Stack, { direction: "vertical", ...props });
1977
2188
  var HStack = (props) => /* @__PURE__ */ jsxRuntime.jsx(Stack, { direction: "horizontal", ...props });
2189
+
2190
+ // components/atoms/TextHighlight.tsx
2191
+ init_cn();
2192
+ init_useEventBus();
2193
+
2194
+ // components/atoms/index.ts
2195
+ init_Typography();
2196
+
2197
+ // components/atoms/ThemeToggle.tsx
2198
+ init_cn();
2199
+
2200
+ // components/atoms/FlipContainer.tsx
2201
+ init_cn();
2202
+ init_Typography();
2203
+ init_cn();
2204
+
2205
+ // components/atoms/DayCell.tsx
2206
+ init_cn();
2207
+ init_Typography();
2208
+
2209
+ // components/atoms/TimeSlotCell.tsx
2210
+ init_cn();
2211
+
2212
+ // components/atoms/StatusDot.tsx
2213
+ init_cn();
1978
2214
  var statusColors = {
1979
2215
  online: "bg-success",
1980
2216
  offline: "bg-muted-foreground",
@@ -2022,6 +2258,9 @@ var StatusDot = React114__namespace.default.forwardRef(
2022
2258
  }
2023
2259
  );
2024
2260
  StatusDot.displayName = "StatusDot";
2261
+
2262
+ // components/atoms/TrendIndicator.tsx
2263
+ init_cn();
2025
2264
  var sizeStyles6 = {
2026
2265
  sm: { icon: "w-3 h-3", text: "text-xs" },
2027
2266
  md: { icon: "w-4 h-4", text: "text-sm" },
@@ -2082,6 +2321,10 @@ var TrendIndicator = React114__namespace.default.forwardRef(
2082
2321
  }
2083
2322
  );
2084
2323
  TrendIndicator.displayName = "TrendIndicator";
2324
+
2325
+ // components/atoms/RangeSlider.tsx
2326
+ init_cn();
2327
+ init_useEventBus();
2085
2328
  function useSafeEventBus() {
2086
2329
  try {
2087
2330
  return useEventBus();
@@ -2290,6 +2533,34 @@ var RangeSlider = React114__namespace.default.forwardRef(
2290
2533
  }
2291
2534
  );
2292
2535
  RangeSlider.displayName = "RangeSlider";
2536
+
2537
+ // components/atoms/AnimatedCounter.tsx
2538
+ init_cn();
2539
+ init_Typography();
2540
+
2541
+ // components/atoms/InfiniteScrollSentinel.tsx
2542
+ init_cn();
2543
+
2544
+ // components/atoms/InfiniteScrollSentinel.tsx
2545
+ init_useEventBus();
2546
+
2547
+ // components/atoms/ConfettiEffect.tsx
2548
+ init_cn();
2549
+
2550
+ // components/atoms/TypewriterText.tsx
2551
+ init_cn();
2552
+ init_Typography();
2553
+
2554
+ // components/atoms/SectionHeader.tsx
2555
+ init_cn();
2556
+ init_Typography();
2557
+
2558
+ // components/atoms/StatCard.tsx
2559
+ init_cn();
2560
+ init_Typography();
2561
+
2562
+ // components/atoms/ContentSection.tsx
2563
+ init_cn();
2293
2564
  var backgroundClasses = {
2294
2565
  default: "",
2295
2566
  alt: "bg-surface",
@@ -2324,6 +2595,9 @@ var ContentSection = React114__namespace.default.forwardRef(
2324
2595
  }
2325
2596
  );
2326
2597
  ContentSection.displayName = "ContentSection";
2598
+
2599
+ // components/atoms/AnimatedReveal.tsx
2600
+ init_cn();
2327
2601
  var initialStyles = {
2328
2602
  "fade-up": { opacity: 0, transform: "translateY(24px)" },
2329
2603
  "fade-down": { opacity: 0, transform: "translateY(-24px)" },
@@ -2425,6 +2699,9 @@ var AnimatedReveal = React114__namespace.default.forwardRef(
2425
2699
  }
2426
2700
  );
2427
2701
  AnimatedReveal.displayName = "AnimatedReveal";
2702
+
2703
+ // components/atoms/AnimatedGraphic.tsx
2704
+ init_cn();
2428
2705
  function useFetchedSvg(src) {
2429
2706
  const [svg, setSvg] = React114.useState(null);
2430
2707
  const cache = React114.useRef({});
@@ -2608,6 +2885,65 @@ var AnimatedGraphic = React114__namespace.default.forwardRef(
2608
2885
  );
2609
2886
  AnimatedGraphic.displayName = "AnimatedGraphic";
2610
2887
 
2888
+ // components/atoms/game/HealthBar.tsx
2889
+ init_cn();
2890
+
2891
+ // components/atoms/game/ScoreDisplay.tsx
2892
+ init_cn();
2893
+
2894
+ // components/atoms/game/ControlButton.tsx
2895
+ init_cn();
2896
+ init_useEventBus();
2897
+
2898
+ // components/atoms/game/Sprite.tsx
2899
+ init_useEventBus();
2900
+
2901
+ // components/atoms/game/StateIndicator.tsx
2902
+ init_cn();
2903
+
2904
+ // components/atoms/game/TimerDisplay.tsx
2905
+ init_cn();
2906
+
2907
+ // components/atoms/game/ResourceCounter.tsx
2908
+ init_cn();
2909
+
2910
+ // components/atoms/game/ItemSlot.tsx
2911
+ init_cn();
2912
+
2913
+ // components/atoms/game/TurnIndicator.tsx
2914
+ init_cn();
2915
+
2916
+ // components/atoms/game/ComboCounter.tsx
2917
+ init_cn();
2918
+
2919
+ // components/atoms/game/XPBar.tsx
2920
+ init_cn();
2921
+
2922
+ // components/atoms/game/WaypointMarker.tsx
2923
+ init_cn();
2924
+
2925
+ // components/atoms/game/StatusEffect.tsx
2926
+ init_cn();
2927
+
2928
+ // components/atoms/game/DamageNumber.tsx
2929
+ init_cn();
2930
+
2931
+ // components/atoms/game/DialogueBubble.tsx
2932
+ init_cn();
2933
+
2934
+ // components/atoms/game/ChoiceButton.tsx
2935
+ init_cn();
2936
+
2937
+ // components/atoms/game/ActionButton.tsx
2938
+ init_cn();
2939
+
2940
+ // components/atoms/game/MiniMap.tsx
2941
+ init_cn();
2942
+
2943
+ // components/molecules/ErrorState.tsx
2944
+ init_Typography();
2945
+ init_useEventBus();
2946
+
2611
2947
  // locales/en.json
2612
2948
  var en_default = {
2613
2949
  $meta: { locale: "en", direction: "ltr" },
@@ -2804,6 +3140,9 @@ var ErrorBoundary = class extends React114__namespace.default.Component {
2804
3140
  };
2805
3141
  __publicField(ErrorBoundary, "displayName", "ErrorBoundary");
2806
3142
 
3143
+ // components/molecules/Skeleton.tsx
3144
+ init_cn();
3145
+
2807
3146
  // renderer/client-effect-executor.ts
2808
3147
  function executeClientEffects(effects, config) {
2809
3148
  if (!effects || effects.length === 0) {
@@ -3178,18 +3517,195 @@ function useOfflineExecutor(options) {
3178
3517
  };
3179
3518
  }
3180
3519
  React114.createContext(null);
3181
- var defaultIcon = L__default.default.icon({
3182
- iconUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png",
3183
- iconRetinaUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon-2x.png",
3184
- shadowUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png",
3185
- iconSize: [25, 41],
3186
- iconAnchor: [12, 41],
3187
- popupAnchor: [1, -34],
3188
- shadowSize: [41, 41]
3520
+
3521
+ // components/organisms/ComponentPatterns.tsx
3522
+ init_useEventBus();
3523
+ init_Typography();
3524
+
3525
+ // components/molecules/Alert.tsx
3526
+ init_cn();
3527
+ init_Typography();
3528
+ init_useEventBus();
3529
+
3530
+ // components/molecules/Tooltip.tsx
3531
+ init_Typography();
3532
+ init_cn();
3533
+
3534
+ // components/molecules/Popover.tsx
3535
+ init_Typography();
3536
+ init_cn();
3537
+ init_Typography();
3538
+ init_cn();
3539
+ init_useEventBus();
3540
+ init_Typography();
3541
+ init_cn();
3542
+ init_useEventBus();
3543
+
3544
+ // components/molecules/Container.tsx
3545
+ init_cn();
3546
+
3547
+ // components/molecules/SimpleGrid.tsx
3548
+ init_cn();
3549
+ init_Typography();
3550
+ init_cn();
3551
+ init_useEventBus();
3552
+ init_cn();
3553
+ React114.lazy(async () => {
3554
+ const [reactLeaflet, leafletMod] = await Promise.all([
3555
+ import('react-leaflet'),
3556
+ import('leaflet')
3557
+ ]);
3558
+ await import('leaflet/dist/leaflet.css');
3559
+ const { MapContainer, TileLayer, Marker, Popup, useMap } = reactLeaflet;
3560
+ const L = leafletMod.default;
3561
+ const defaultIcon = L.icon({
3562
+ iconUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png",
3563
+ iconRetinaUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon-2x.png",
3564
+ shadowUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png",
3565
+ iconSize: [25, 41],
3566
+ iconAnchor: [12, 41],
3567
+ popupAnchor: [1, -34],
3568
+ shadowSize: [41, 41]
3569
+ });
3570
+ L.Marker.prototype.options.icon = defaultIcon;
3571
+ const { useEffect: useEffect62, useRef: useRef63, useCallback: useCallback94, useState: useState85 } = React114__namespace.default;
3572
+ const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
3573
+ const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
3574
+ function MapUpdater({ centerLat, centerLng, zoom }) {
3575
+ const map = useMap();
3576
+ const prevRef = useRef63({ centerLat, centerLng, zoom });
3577
+ useEffect62(() => {
3578
+ const prev = prevRef.current;
3579
+ if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
3580
+ map.setView([centerLat, centerLng], zoom);
3581
+ prevRef.current = { centerLat, centerLng, zoom };
3582
+ }
3583
+ }, [map, centerLat, centerLng, zoom]);
3584
+ return null;
3585
+ }
3586
+ function MapClickHandler({ onMapClick }) {
3587
+ const map = useMap();
3588
+ useEffect62(() => {
3589
+ if (!onMapClick) return;
3590
+ const handler = (e) => {
3591
+ onMapClick(e.latlng.lat, e.latlng.lng);
3592
+ };
3593
+ map.on("click", handler);
3594
+ return () => {
3595
+ map.off("click", handler);
3596
+ };
3597
+ }, [map, onMapClick]);
3598
+ return null;
3599
+ }
3600
+ function MapViewInner({
3601
+ markers = [],
3602
+ centerLat = 51.505,
3603
+ centerLng = -0.09,
3604
+ zoom = 13,
3605
+ height = "400px",
3606
+ onMarkerClick,
3607
+ onMapClick,
3608
+ mapClickEvent,
3609
+ markerClickEvent,
3610
+ showClickedPin = false,
3611
+ className,
3612
+ showAttribution = true
3613
+ }) {
3614
+ const eventBus = useEventBus2();
3615
+ const [clickedPosition, setClickedPosition] = useState85(null);
3616
+ const handleMapClick = useCallback94((lat, lng) => {
3617
+ if (showClickedPin) {
3618
+ setClickedPosition({ lat, lng });
3619
+ }
3620
+ onMapClick?.(lat, lng);
3621
+ if (mapClickEvent) {
3622
+ eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
3623
+ }
3624
+ }, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
3625
+ const handleMarkerClick = useCallback94((marker) => {
3626
+ onMarkerClick?.(marker);
3627
+ if (markerClickEvent) {
3628
+ eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
3629
+ }
3630
+ }, [onMarkerClick, markerClickEvent, eventBus]);
3631
+ return /* @__PURE__ */ jsxRuntime.jsx(
3632
+ Box,
3633
+ {
3634
+ className: cn("relative w-full overflow-hidden rounded-lg", className),
3635
+ style: { height },
3636
+ "data-testid": "map-view",
3637
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
3638
+ MapContainer,
3639
+ {
3640
+ center: [centerLat, centerLng],
3641
+ zoom,
3642
+ style: { height: "100%", width: "100%" },
3643
+ attributionControl: showAttribution,
3644
+ children: [
3645
+ /* @__PURE__ */ jsxRuntime.jsx(
3646
+ TileLayer,
3647
+ {
3648
+ url: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
3649
+ attribution: showAttribution ? '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>' : void 0
3650
+ }
3651
+ ),
3652
+ /* @__PURE__ */ jsxRuntime.jsx(MapUpdater, { centerLat, centerLng, zoom }),
3653
+ /* @__PURE__ */ jsxRuntime.jsx(MapClickHandler, { onMapClick: handleMapClick }),
3654
+ showClickedPin && clickedPosition && /* @__PURE__ */ jsxRuntime.jsx(Marker, { position: [clickedPosition.lat, clickedPosition.lng], children: /* @__PURE__ */ jsxRuntime.jsx(Popup, { children: /* @__PURE__ */ jsxRuntime.jsxs(Typography2, { variant: "body2", children: [
3655
+ clickedPosition.lat.toFixed(5),
3656
+ ", ",
3657
+ clickedPosition.lng.toFixed(5)
3658
+ ] }) }) }),
3659
+ markers.map((marker) => /* @__PURE__ */ jsxRuntime.jsx(
3660
+ Marker,
3661
+ {
3662
+ position: [marker.lat, marker.lng],
3663
+ eventHandlers: onMarkerClick || markerClickEvent ? { click: () => handleMarkerClick(marker) } : void 0,
3664
+ children: marker.label ? /* @__PURE__ */ jsxRuntime.jsxs(Popup, { children: [
3665
+ /* @__PURE__ */ jsxRuntime.jsx(Typography2, { variant: "body2", children: marker.label }),
3666
+ marker.category ? /* @__PURE__ */ jsxRuntime.jsx(Typography2, { variant: "caption", className: "text-muted-foreground", children: marker.category }) : null
3667
+ ] }) : null
3668
+ },
3669
+ marker.id
3670
+ ))
3671
+ ]
3672
+ },
3673
+ `map-${centerLat}-${centerLng}-${zoom}`
3674
+ )
3675
+ }
3676
+ );
3677
+ }
3678
+ return { default: MapViewInner };
3189
3679
  });
3190
- L__default.default.Marker.prototype.options.icon = defaultIcon;
3680
+
3681
+ // components/molecules/game/ActionButtons.tsx
3682
+ init_cn();
3683
+ init_useEventBus();
3684
+
3685
+ // components/organisms/game/puzzles/sequencer/ActionPalette.tsx
3686
+ init_cn();
3687
+ init_cn();
3688
+
3689
+ // components/templates/AuthLayout.tsx
3690
+ init_cn();
3691
+ init_Typography();
3692
+
3693
+ // components/organisms/game/BattleBoard.tsx
3694
+ init_cn();
3695
+ init_useEventBus();
3696
+ init_Typography();
3697
+
3698
+ // components/molecules/game/IsometricCanvas.tsx
3699
+ init_cn();
3700
+ init_useEventBus();
3701
+ init_Typography();
3702
+
3703
+ // components/molecules/LoadingState.tsx
3704
+ init_cn();
3705
+ init_Typography();
3191
3706
 
3192
3707
  // lib/verificationRegistry.ts
3708
+ init_logger();
3193
3709
  var log2 = createLogger("almadar:bridge");
3194
3710
  var MAX_TRANSITIONS = 500;
3195
3711
  function getState() {
@@ -3359,6 +3875,11 @@ function bindTraitStateGetter(getter) {
3359
3875
  }
3360
3876
  }
3361
3877
  exposeOnWindow();
3878
+
3879
+ // components/organisms/book/BookChapterView.tsx
3880
+ init_Typography();
3881
+ init_cn();
3882
+ init_cn();
3362
3883
  var MarkdownContent = React114__namespace.default.memo(
3363
3884
  ({ content, direction, className }) => {
3364
3885
  const { t: _t } = useTranslate();
@@ -3461,6 +3982,7 @@ var MarkdownContent = React114__namespace.default.memo(
3461
3982
  (prev, next) => prev.content === next.content && prev.className === next.className && prev.direction === next.direction
3462
3983
  );
3463
3984
  MarkdownContent.displayName = "MarkdownContent";
3985
+ init_useEventBus();
3464
3986
  SyntaxHighlighter__default.default.registerLanguage("json", langJson__default.default);
3465
3987
  SyntaxHighlighter__default.default.registerLanguage("javascript", langJavascript__default.default);
3466
3988
  SyntaxHighlighter__default.default.registerLanguage("js", langJavascript__default.default);
@@ -3744,11 +4266,547 @@ var CodeBlock = React114__namespace.default.memo(
3744
4266
  );
3745
4267
  CodeBlock.displayName = "CodeBlock";
3746
4268
 
4269
+ // components/molecules/Card.tsx
4270
+ init_useEventBus();
4271
+
4272
+ // components/molecules/QuizBlock.tsx
4273
+ init_Typography();
4274
+ init_cn();
4275
+ init_Typography();
4276
+ init_Typography();
4277
+ init_useEventBus();
4278
+ init_cn();
4279
+
4280
+ // components/organisms/JazariStateMachine.tsx
4281
+ init_cn();
4282
+
4283
+ // components/organisms/ContentRenderer.tsx
4284
+ init_cn();
4285
+
4286
+ // components/organisms/book/BookChapterView.tsx
4287
+ init_cn();
4288
+
4289
+ // components/organisms/book/BookCoverPage.tsx
4290
+ init_Typography();
4291
+ init_cn();
4292
+ init_Typography();
4293
+ init_cn();
4294
+
4295
+ // components/organisms/book/BookTableOfContents.tsx
4296
+ init_Typography();
4297
+ init_cn();
4298
+ init_useEventBus();
4299
+ init_cn();
4300
+
4301
+ // components/molecules/EmptyState.tsx
4302
+ init_cn();
4303
+ init_Typography();
4304
+ init_useEventBus();
4305
+
4306
+ // components/molecules/Grid.tsx
4307
+ init_cn();
4308
+ init_Typography();
4309
+ init_cn();
4310
+ init_useEventBus();
4311
+ init_useEventBus();
4312
+
4313
+ // components/molecules/ButtonGroup.tsx
4314
+ init_cn();
4315
+ init_useEventBus();
4316
+
4317
+ // components/molecules/CalendarGrid.tsx
4318
+ init_cn();
4319
+ init_Typography();
4320
+ init_useEventBus();
4321
+
4322
+ // components/organisms/game/CanvasEffect.tsx
4323
+ init_cn();
4324
+ init_useEventBus();
4325
+
4326
+ // components/organisms/CardGrid.tsx
4327
+ init_cn();
4328
+
4329
+ // components/organisms/CardGrid.tsx
4330
+ init_useEventBus();
4331
+ init_Typography();
4332
+ init_Typography();
4333
+ init_cn();
4334
+ init_useEventBus();
4335
+
4336
+ // components/molecules/Carousel.tsx
4337
+ init_cn();
4338
+ init_useEventBus();
4339
+
4340
+ // components/organisms/game/CastleBoard.tsx
4341
+ init_cn();
4342
+ init_useEventBus();
4343
+
4344
+ // components/organisms/Chart.tsx
4345
+ init_cn();
4346
+ init_useEventBus();
4347
+
4348
+ // components/molecules/ChartLegend.tsx
4349
+ init_cn();
4350
+ init_useEventBus();
4351
+ init_cn();
4352
+
4353
+ // components/organisms/CodeViewer.tsx
4354
+ init_cn();
4355
+ init_Typography();
4356
+ init_cn();
4357
+ init_useEventBus();
4358
+
4359
+ // components/organisms/CodeViewer.tsx
4360
+ init_useEventBus();
4361
+ init_cn();
4362
+ init_Typography();
4363
+ init_cn();
4364
+
4365
+ // components/templates/CounterTemplate.tsx
4366
+ init_cn();
4367
+ init_Typography();
4368
+
4369
+ // components/molecules/game/CraftingRecipe.tsx
4370
+ init_cn();
4371
+ init_useEventBus();
4372
+
4373
+ // components/organisms/CustomPattern.tsx
4374
+ init_useEventBus();
4375
+ init_cn();
4376
+ init_Typography();
4377
+
4378
+ // components/molecules/game/DPad.tsx
4379
+ init_cn();
4380
+ init_useEventBus();
4381
+
4382
+ // components/organisms/layout/DashboardGrid.tsx
4383
+ init_cn();
4384
+
4385
+ // components/templates/DashboardLayout.tsx
4386
+ init_cn();
4387
+ init_Typography();
4388
+
4389
+ // components/molecules/DataGrid.tsx
4390
+ init_cn();
4391
+ init_useEventBus();
4392
+ init_Typography();
4393
+
4394
+ // components/molecules/DataList.tsx
4395
+ init_cn();
4396
+ init_useEventBus();
4397
+ init_Typography();
4398
+
4399
+ // components/organisms/DataTable.tsx
4400
+ init_cn();
4401
+ init_Typography();
4402
+
4403
+ // components/molecules/FormField.tsx
4404
+ init_cn();
4405
+ init_Typography();
4406
+
4407
+ // components/molecules/FilterGroup.tsx
4408
+ init_cn();
4409
+ init_useEventBus();
4410
+
4411
+ // components/molecules/Flex.tsx
4412
+ init_cn();
4413
+
4414
+ // components/molecules/InputGroup.tsx
4415
+ init_Typography();
4416
+ init_cn();
4417
+
4418
+ // components/molecules/RelationSelect.tsx
4419
+ init_cn();
4420
+ init_Typography();
4421
+
3747
4422
  // lib/debug.ts
3748
4423
  typeof window !== "undefined" && (localStorage.getItem("debug") === "true" || process.env.NODE_ENV === "development");
4424
+ init_cn();
4425
+ init_useEventBus();
4426
+ init_Typography();
4427
+ init_cn();
4428
+ init_useEventBus();
4429
+
4430
+ // components/molecules/WizardProgress.tsx
4431
+ init_Typography();
4432
+ init_cn();
4433
+ init_useEventBus();
4434
+ init_Typography();
4435
+ init_cn();
4436
+ init_useEventBus();
4437
+
4438
+ // components/molecules/RepeatableFormSection.tsx
4439
+ init_cn();
4440
+ init_Typography();
4441
+ init_useEventBus();
4442
+
4443
+ // components/molecules/ViolationAlert.tsx
4444
+ init_cn();
4445
+ init_Typography();
4446
+
4447
+ // components/molecules/FormSectionHeader.tsx
4448
+ init_cn();
4449
+ init_Typography();
4450
+
4451
+ // components/molecules/FlipCard.tsx
4452
+ init_cn();
4453
+
4454
+ // components/molecules/DateRangeSelector.tsx
4455
+ init_cn();
4456
+
4457
+ // components/molecules/LineChart.tsx
4458
+ init_cn();
4459
+
4460
+ // components/molecules/ProgressDots.tsx
4461
+ init_cn();
4462
+
4463
+ // components/molecules/game/StatBadge.tsx
4464
+ init_cn();
4465
+
4466
+ // components/molecules/game/InventoryGrid.tsx
4467
+ init_cn();
4468
+ init_useEventBus();
4469
+
4470
+ // components/molecules/game/QuestTracker.tsx
4471
+ init_cn();
4472
+ init_Typography();
4473
+
4474
+ // components/molecules/game/PowerupSlots.tsx
4475
+ init_cn();
4476
+ init_Typography();
4477
+
4478
+ // components/molecules/game/GameCanvas2D.tsx
4479
+ init_cn();
4480
+
4481
+ // components/molecules/game/HealthPanel.tsx
4482
+ init_cn();
4483
+ init_Typography();
4484
+
4485
+ // components/molecules/game/ScoreBoard.tsx
4486
+ init_cn();
4487
+
4488
+ // components/molecules/game/ResourceBar.tsx
4489
+ init_cn();
4490
+
4491
+ // components/molecules/game/TurnPanel.tsx
4492
+ init_cn();
4493
+ init_useEventBus();
4494
+
4495
+ // components/molecules/game/EnemyPlate.tsx
4496
+ init_cn();
4497
+ init_Typography();
4498
+
4499
+ // components/molecules/game/UnitCommandBar.tsx
4500
+ init_cn();
4501
+ init_Typography();
4502
+ init_useEventBus();
4503
+
4504
+ // components/molecules/game/GameHud.tsx
4505
+ init_cn();
4506
+
4507
+ // components/molecules/game/DialogueBox.tsx
4508
+ init_cn();
4509
+ init_useEventBus();
4510
+
4511
+ // components/molecules/game/InventoryPanel.tsx
4512
+ init_cn();
4513
+ init_useEventBus();
4514
+
4515
+ // components/molecules/game/GameMenu.tsx
4516
+ init_cn();
4517
+ init_useEventBus();
4518
+
4519
+ // components/molecules/game/GameOverScreen.tsx
4520
+ init_cn();
4521
+ init_useEventBus();
4522
+
4523
+ // components/molecules/game/PlatformerCanvas.tsx
4524
+ init_cn();
4525
+ init_useEventBus();
4526
+
4527
+ // components/molecules/GraphView.tsx
4528
+ init_cn();
4529
+
4530
+ // components/molecules/NumberStepper.tsx
4531
+ init_cn();
4532
+ init_useEventBus();
4533
+
4534
+ // components/molecules/StarRating.tsx
4535
+ init_cn();
4536
+ init_useEventBus();
4537
+
4538
+ // components/molecules/UploadDropZone.tsx
4539
+ init_cn();
4540
+ init_Typography();
4541
+ init_useEventBus();
4542
+
4543
+ // components/molecules/Lightbox.tsx
4544
+ init_cn();
4545
+ init_useEventBus();
4546
+
4547
+ // components/molecules/StatDisplay.tsx
4548
+ init_cn();
4549
+ init_Typography();
4550
+
4551
+ // components/molecules/Meter.tsx
4552
+ init_cn();
4553
+ init_useEventBus();
4554
+
4555
+ // components/molecules/SwipeableRow.tsx
4556
+ init_cn();
4557
+ init_useEventBus();
4558
+
4559
+ // components/molecules/SortableList.tsx
4560
+ init_cn();
4561
+ init_useEventBus();
4562
+
4563
+ // components/molecules/PullToRefresh.tsx
4564
+ init_cn();
4565
+ init_useEventBus();
4566
+
4567
+ // components/molecules/InstallBox.tsx
4568
+ init_cn();
4569
+ init_Typography();
4570
+
4571
+ // components/molecules/FeatureCard.tsx
4572
+ init_cn();
4573
+ init_Typography();
4574
+
4575
+ // components/molecules/FeatureGrid.tsx
4576
+ init_cn();
4577
+
4578
+ // components/molecules/CTABanner.tsx
4579
+ init_cn();
4580
+ init_Typography();
4581
+
4582
+ // components/molecules/HeroSection.tsx
4583
+ init_cn();
4584
+ init_Typography();
4585
+
4586
+ // components/molecules/PricingCard.tsx
4587
+ init_cn();
4588
+ init_Typography();
4589
+
4590
+ // components/molecules/PricingGrid.tsx
4591
+ init_cn();
4592
+
4593
+ // components/molecules/StatsGrid.tsx
4594
+ init_cn();
4595
+ init_Typography();
4596
+
4597
+ // components/molecules/ServiceCatalog.tsx
4598
+ init_cn();
4599
+ init_Typography();
4600
+
4601
+ // components/molecules/CaseStudyCard.tsx
4602
+ init_cn();
4603
+ init_Typography();
4604
+
4605
+ // components/molecules/ArticleSection.tsx
4606
+ init_cn();
4607
+ init_Typography();
4608
+
4609
+ // components/molecules/CodeExample.tsx
4610
+ init_cn();
4611
+ init_Typography();
4612
+
4613
+ // components/molecules/SocialProof.tsx
4614
+ init_cn();
4615
+ init_Typography();
4616
+
4617
+ // components/molecules/StepFlow.tsx
4618
+ init_cn();
4619
+ init_Typography();
4620
+
4621
+ // components/molecules/SplitSection.tsx
4622
+ init_cn();
4623
+ init_Typography();
4624
+
4625
+ // components/molecules/TagCloud.tsx
4626
+ init_cn();
4627
+
4628
+ // components/molecules/CommunityLinks.tsx
4629
+ init_Typography();
4630
+
4631
+ // components/molecules/TeamCard.tsx
4632
+ init_cn();
4633
+ init_Typography();
4634
+
4635
+ // components/molecules/ShowcaseCard.tsx
4636
+ init_cn();
4637
+ init_Typography();
4638
+
4639
+ // components/molecules/GeometricPattern.tsx
4640
+ init_cn();
4641
+
4642
+ // components/molecules/EdgeDecoration.tsx
4643
+ init_cn();
4644
+
4645
+ // components/organisms/DataTable.tsx
4646
+ init_useEventBus();
4647
+ init_useEventBus();
4648
+ init_cn();
4649
+ init_useEventBus();
3749
4650
  React114.lazy(() => import('react-markdown'));
4651
+
4652
+ // components/organisms/DocumentViewer.tsx
4653
+ init_cn();
4654
+ init_useEventBus();
4655
+ init_useEventBus();
4656
+ init_cn();
4657
+ init_useEventBus();
4658
+
4659
+ // components/organisms/game/TraitStateViewer.tsx
4660
+ init_cn();
4661
+ init_Typography();
4662
+ init_cn();
4663
+ init_cn();
4664
+ init_cn();
4665
+
4666
+ // components/organisms/Form.tsx
4667
+ init_cn();
4668
+ init_Typography();
4669
+ init_useEventBus();
4670
+
4671
+ // components/organisms/game/GameAudioProvider.tsx
4672
+ init_useEventBus();
3750
4673
  var GameAudioContext = React114.createContext(null);
3751
4674
  GameAudioContext.displayName = "GameAudioContext";
4675
+ init_cn();
4676
+
4677
+ // components/templates/GameShell.tsx
4678
+ init_cn();
4679
+ init_Typography();
4680
+
4681
+ // components/templates/GameTemplate.tsx
4682
+ init_cn();
4683
+ init_Typography();
4684
+
4685
+ // components/templates/GenericAppTemplate.tsx
4686
+ init_cn();
4687
+ init_Typography();
4688
+
4689
+ // components/organisms/GraphCanvas.tsx
4690
+ init_cn();
4691
+ init_useEventBus();
4692
+ init_Typography();
4693
+ init_cn();
4694
+ init_cn();
4695
+ init_useEventBus();
4696
+
4697
+ // components/organisms/layout/MasterDetail.tsx
4698
+ init_cn();
4699
+ init_Typography();
4700
+
4701
+ // components/organisms/MediaGallery.tsx
4702
+ init_cn();
4703
+ init_useEventBus();
4704
+ init_useEventBus();
4705
+
4706
+ // components/organisms/Navigation.tsx
4707
+ init_cn();
4708
+ init_useEventBus();
4709
+ init_Typography();
4710
+ init_cn();
4711
+
4712
+ // components/organisms/PageHeader.tsx
4713
+ init_cn();
4714
+ init_Typography();
4715
+ init_useEventBus();
4716
+
4717
+ // components/organisms/debug/RuntimeDebugger.tsx
4718
+ init_cn();
4719
+
4720
+ // components/organisms/debug/RuntimeDebugger.tsx
4721
+ init_Typography();
4722
+ init_Typography();
4723
+
4724
+ // components/organisms/debug/tabs/TraitsTab.tsx
4725
+ init_Typography();
4726
+
4727
+ // components/organisms/debug/tabs/TicksTab.tsx
4728
+ init_Typography();
4729
+
4730
+ // components/organisms/debug/tabs/EntitiesTab.tsx
4731
+ init_Typography();
4732
+ init_Typography();
4733
+ init_Typography();
4734
+
4735
+ // components/organisms/debug/tabs/VerificationTab.tsx
4736
+ init_Typography();
4737
+ init_Typography();
4738
+
4739
+ // components/organisms/debug/tabs/ServerBridgeTab.tsx
4740
+ init_Typography();
4741
+ init_Typography();
4742
+ init_useEventBus();
4743
+
4744
+ // components/organisms/Section.tsx
4745
+ init_cn();
4746
+ init_Typography();
4747
+ init_cn();
4748
+
4749
+ // components/organisms/game/TraitSlot.tsx
4750
+ init_cn();
4751
+ init_useEventBus();
4752
+ init_Typography();
4753
+ init_cn();
4754
+ init_useEventBus();
4755
+ init_Typography();
4756
+ init_cn();
4757
+ init_useEventBus();
4758
+
4759
+ // components/organisms/SignaturePad.tsx
4760
+ init_cn();
4761
+ init_useEventBus();
4762
+
4763
+ // components/organisms/game/physics-sim/SimulationCanvas.tsx
4764
+ init_cn();
4765
+ init_useEventBus();
4766
+
4767
+ // components/organisms/Split.tsx
4768
+ init_cn();
4769
+
4770
+ // components/organisms/layout/SplitPane.tsx
4771
+ init_cn();
4772
+
4773
+ // components/organisms/StatCard.tsx
4774
+ init_cn();
4775
+ init_useEventBus();
4776
+ init_cn();
4777
+ init_useEventBus();
4778
+
4779
+ // components/organisms/game/puzzles/state-architect/StateNode.tsx
4780
+ init_cn();
4781
+
4782
+ // components/organisms/game/puzzles/state-architect/TransitionArrow.tsx
4783
+ init_cn();
4784
+
4785
+ // components/organisms/game/puzzles/state-architect/VariablePanel.tsx
4786
+ init_cn();
4787
+
4788
+ // components/organisms/layout/TabbedContainer.tsx
4789
+ init_cn();
4790
+ init_Typography();
4791
+ init_Typography();
4792
+ init_cn();
4793
+ init_useEventBus();
4794
+
4795
+ // components/organisms/Timeline.tsx
4796
+ init_cn();
4797
+ init_useEventBus();
4798
+
4799
+ // components/organisms/component-registry.generated.ts
4800
+ init_Typography();
4801
+
4802
+ // components/organisms/game/hooks/useBattleState.ts
4803
+ init_useEventBus();
4804
+ init_Typography();
4805
+ init_cn();
4806
+
4807
+ // components/organisms/game/WorldMapBoard.tsx
4808
+ init_cn();
4809
+ init_useEventBus();
3752
4810
 
3753
4811
  // components/organisms/component-registry.generated.ts
3754
4812
  function lazyThree(name, loader) {
@@ -3791,6 +4849,10 @@ function SuspenseConfigProvider({
3791
4849
  );
3792
4850
  }
3793
4851
  SuspenseConfigProvider.displayName = "SuspenseConfigProvider";
4852
+
4853
+ // providers/VerificationProvider.tsx
4854
+ init_useEventBus();
4855
+ init_logger();
3794
4856
  var log3 = createLogger("almadar:verify");
3795
4857
  var DISPATCH_SUFFIX = ":DISPATCH";
3796
4858
  var SUCCESS_SUFFIX = ":SUCCESS";