@almadar/ui 2.48.5 → 2.48.7

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,21 +1,18 @@
1
1
  import * as React114 from 'react';
2
- import React114__default, { createContext, useCallback, useState, useRef, useEffect, useMemo, useLayoutEffect, lazy, useContext, Suspense, useId } from 'react';
2
+ import React114__default, { createContext, useCallback, useState, useRef, useEffect, lazy, useMemo, useLayoutEffect, useContext, Suspense, useId } from 'react';
3
3
  import { EventBusContext, OrbitalProvider, useEntityStore, VerificationProvider, useEntityRef } from '@almadar/ui/providers';
4
+ import { clsx } from 'clsx';
5
+ import { twMerge } from 'tailwind-merge';
6
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
7
  import '@tanstack/react-query';
5
8
  import { isCircuitEvent, schemaToIR, getPage, clearSchemaCache as clearSchemaCache$1 } from '@almadar/core';
6
9
  import { StateMachineManager, createContextFromBindings, interpolateValue, EffectExecutor } from '@almadar/runtime';
7
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
- import { clsx } from 'clsx';
9
- import { twMerge } from 'tailwind-merge';
10
10
  import { UISlotProvider, useUISlots } from '@almadar/ui/context';
11
11
  import { createPortal } from 'react-dom';
12
12
  import * as LucideIcons from 'lucide-react';
13
13
  import { Loader2, ChevronDown, X, ArrowRight, TrendingDown, TrendingUp, Check, Copy, AlertCircle, AlertTriangle, Info, CheckCircle, ChevronLeft, ChevronRight, FileWarning, Upload, Circle, Clock, CheckCircle2, Sun, Moon, ArrowUp, ArrowDown, MoreVertical, Minus, Star, XCircle, Play, RotateCcw, Pause, SkipForward, Eraser, Search, HelpCircle, ChevronUp, ArrowLeft, Plus, Image as Image$1, ZoomIn, Package, Menu as Menu$1, ZoomOut, Filter, FileQuestion, Inbox, FileText, Download, Printer, Bug, Send, MoreHorizontal, Settings, Bell, LogOut, Trash2, Zap, Sword, Move, Heart, Shield, Code, WrapText, Wrench, List, Calendar, Pencil, Eye, User, Tag, DollarSign } from 'lucide-react';
14
14
  import { evaluate, createMinimalContext } from '@almadar/evaluator';
15
15
  import { getComponentForPattern as getComponentForPattern$1 } from '@almadar/patterns';
16
- import { MapContainer, TileLayer, Marker, Popup, useMap } from 'react-leaflet';
17
- import L from 'leaflet';
18
- import 'leaflet/dist/leaflet.css';
19
16
  import { useLocation, Link, Outlet } from 'react-router-dom';
20
17
  import ReactMarkdown from 'react-markdown';
21
18
  import remarkGfm from 'remark-gfm';
@@ -42,19 +39,21 @@ import langGo from 'react-syntax-highlighter/dist/esm/languages/prism/go';
42
39
  import langGraphql from 'react-syntax-highlighter/dist/esm/languages/prism/graphql';
43
40
 
44
41
  var __defProp = Object.defineProperty;
42
+ var __getOwnPropNames = Object.getOwnPropertyNames;
45
43
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
44
+ var __esm = (fn, res) => function __init() {
45
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
46
+ };
47
+ var __export = (target, all) => {
48
+ for (var name in all)
49
+ __defProp(target, name, { get: all[name], enumerable: true });
50
+ };
46
51
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
47
52
 
48
53
  // lib/logger.ts
49
- var LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
50
- var ENV = typeof process !== "undefined" && process.env ? process.env : {};
51
54
  function envGet(key) {
52
55
  return ENV[key] ?? ENV[`VITE_${key}`];
53
56
  }
54
- var NODE_ENV = envGet("NODE_ENV") ?? "development";
55
- var CONFIGURED_LEVEL = (envGet("LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
56
- var MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
57
- var DEBUG_FILTER = (envGet("ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
58
57
  function matchesNamespace(namespace) {
59
58
  if (DEBUG_FILTER.length === 0) return true;
60
59
  return DEBUG_FILTER.some((pattern) => {
@@ -92,79 +91,40 @@ function createLogger(namespace) {
92
91
  error: (msg, data, cid) => log3("ERROR", msg, data, cid)
93
92
  };
94
93
  }
94
+ var LEVEL_PRIORITY, ENV, NODE_ENV, CONFIGURED_LEVEL, MIN_PRIORITY, DEBUG_FILTER;
95
+ var init_logger = __esm({
96
+ "lib/logger.ts"() {
97
+ LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
98
+ ENV = typeof process !== "undefined" && process.env ? process.env : {};
99
+ NODE_ENV = envGet("NODE_ENV") ?? "development";
100
+ CONFIGURED_LEVEL = (envGet("LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
101
+ MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
102
+ DEBUG_FILTER = (envGet("ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
103
+ }
104
+ });
95
105
 
96
106
  // hooks/useEventBus.ts
97
- var log = createLogger("almadar:eventbus");
98
- var subLog = createLogger("almadar:eventbus:subscribe");
107
+ var useEventBus_exports = {};
108
+ __export(useEventBus_exports, {
109
+ default: () => useEventBus_default,
110
+ getGlobalEventBus: () => getGlobalEventBus,
111
+ setGlobalEventBus: () => setGlobalEventBus,
112
+ useEmitEvent: () => useEmitEvent,
113
+ useEventBus: () => useEventBus,
114
+ useEventListener: () => useEventListener,
115
+ useEventSubscription: () => useEventSubscription
116
+ });
117
+ function setGlobalEventBus(bus) {
118
+ if (typeof window !== "undefined") {
119
+ window.__kflowEventBus = bus;
120
+ }
121
+ }
99
122
  function getGlobalEventBus() {
100
123
  if (typeof window !== "undefined") {
101
124
  return window.__kflowEventBus ?? null;
102
125
  }
103
126
  return null;
104
127
  }
105
- var fallbackListeners = /* @__PURE__ */ new Map();
106
- var fallbackAnyListeners = /* @__PURE__ */ new Set();
107
- var fallbackEventBus = {
108
- emit: (type, payload) => {
109
- const event = {
110
- type,
111
- payload,
112
- timestamp: Date.now()
113
- };
114
- const handlers = fallbackListeners.get(type);
115
- log.debug("emit", { type, payloadKeys: payload ? Object.keys(payload).length : 0, listenerCount: (handlers?.size ?? 0) + fallbackAnyListeners.size });
116
- if (handlers) {
117
- handlers.forEach((handler) => {
118
- try {
119
- handler(event);
120
- } catch (error) {
121
- console.error(`[EventBus] Error in listener for '${type}':`, error);
122
- }
123
- });
124
- }
125
- fallbackAnyListeners.forEach((handler) => {
126
- try {
127
- handler(event);
128
- } catch (error) {
129
- console.error(`[EventBus] Error in onAny listener for '${type}':`, error);
130
- }
131
- });
132
- },
133
- on: (type, listener) => {
134
- if (!fallbackListeners.has(type)) {
135
- fallbackListeners.set(type, /* @__PURE__ */ new Set());
136
- }
137
- fallbackListeners.get(type).add(listener);
138
- subLog.debug("subscribe", { type, totalListeners: fallbackListeners.get(type).size });
139
- return () => {
140
- const handlers = fallbackListeners.get(type);
141
- if (handlers) {
142
- handlers.delete(listener);
143
- if (handlers.size === 0) {
144
- fallbackListeners.delete(type);
145
- }
146
- }
147
- };
148
- },
149
- once: (type, listener) => {
150
- const wrappedListener = (event) => {
151
- fallbackListeners.get(type)?.delete(wrappedListener);
152
- listener(event);
153
- };
154
- return fallbackEventBus.on(type, wrappedListener);
155
- },
156
- hasListeners: (type) => {
157
- const handlers = fallbackListeners.get(type);
158
- return handlers !== void 0 && handlers.size > 0;
159
- },
160
- onAny: (listener) => {
161
- fallbackAnyListeners.add(listener);
162
- subLog.debug("subscribe:any", { totalAnyListeners: fallbackAnyListeners.size });
163
- return () => {
164
- fallbackAnyListeners.delete(listener);
165
- };
166
- }
167
- };
168
128
  function useEventBus() {
169
129
  const context = useContext(EventBusContext);
170
130
  return context ?? getGlobalEventBus() ?? fallbackEventBus;
@@ -183,6 +143,263 @@ function useEventListener(event, handler) {
183
143
  };
184
144
  }, [event, eventBus]);
185
145
  }
146
+ function useEmitEvent() {
147
+ const eventBus = useEventBus();
148
+ return useCallback(
149
+ (type, payload) => {
150
+ eventBus.emit(type, payload);
151
+ },
152
+ [eventBus]
153
+ );
154
+ }
155
+ var log, subLog, fallbackListeners, fallbackAnyListeners, fallbackEventBus, useEventSubscription, useEventBus_default;
156
+ var init_useEventBus = __esm({
157
+ "hooks/useEventBus.ts"() {
158
+ "use client";
159
+ init_logger();
160
+ log = createLogger("almadar:eventbus");
161
+ subLog = createLogger("almadar:eventbus:subscribe");
162
+ fallbackListeners = /* @__PURE__ */ new Map();
163
+ fallbackAnyListeners = /* @__PURE__ */ new Set();
164
+ fallbackEventBus = {
165
+ emit: (type, payload) => {
166
+ const event = {
167
+ type,
168
+ payload,
169
+ timestamp: Date.now()
170
+ };
171
+ const handlers = fallbackListeners.get(type);
172
+ log.debug("emit", { type, payloadKeys: payload ? Object.keys(payload).length : 0, listenerCount: (handlers?.size ?? 0) + fallbackAnyListeners.size });
173
+ if (handlers) {
174
+ handlers.forEach((handler) => {
175
+ try {
176
+ handler(event);
177
+ } catch (error) {
178
+ console.error(`[EventBus] Error in listener for '${type}':`, error);
179
+ }
180
+ });
181
+ }
182
+ fallbackAnyListeners.forEach((handler) => {
183
+ try {
184
+ handler(event);
185
+ } catch (error) {
186
+ console.error(`[EventBus] Error in onAny listener for '${type}':`, error);
187
+ }
188
+ });
189
+ },
190
+ on: (type, listener) => {
191
+ if (!fallbackListeners.has(type)) {
192
+ fallbackListeners.set(type, /* @__PURE__ */ new Set());
193
+ }
194
+ fallbackListeners.get(type).add(listener);
195
+ subLog.debug("subscribe", { type, totalListeners: fallbackListeners.get(type).size });
196
+ return () => {
197
+ const handlers = fallbackListeners.get(type);
198
+ if (handlers) {
199
+ handlers.delete(listener);
200
+ if (handlers.size === 0) {
201
+ fallbackListeners.delete(type);
202
+ }
203
+ }
204
+ };
205
+ },
206
+ once: (type, listener) => {
207
+ const wrappedListener = (event) => {
208
+ fallbackListeners.get(type)?.delete(wrappedListener);
209
+ listener(event);
210
+ };
211
+ return fallbackEventBus.on(type, wrappedListener);
212
+ },
213
+ hasListeners: (type) => {
214
+ const handlers = fallbackListeners.get(type);
215
+ return handlers !== void 0 && handlers.size > 0;
216
+ },
217
+ onAny: (listener) => {
218
+ fallbackAnyListeners.add(listener);
219
+ subLog.debug("subscribe:any", { totalAnyListeners: fallbackAnyListeners.size });
220
+ return () => {
221
+ fallbackAnyListeners.delete(listener);
222
+ };
223
+ }
224
+ };
225
+ useEventSubscription = useEventListener;
226
+ useEventBus_default = useEventBus;
227
+ }
228
+ });
229
+ function cn(...inputs) {
230
+ return twMerge(clsx(inputs));
231
+ }
232
+ var init_cn = __esm({
233
+ "lib/cn.ts"() {
234
+ }
235
+ });
236
+
237
+ // components/atoms/Typography.tsx
238
+ var Typography_exports = {};
239
+ __export(Typography_exports, {
240
+ Heading: () => Heading,
241
+ Text: () => Text,
242
+ Typography: () => Typography
243
+ });
244
+ var variantStyles, colorStyles, weightStyles, defaultElements, typographySizeStyles, overflowStyles2, Typography, sizeStyles, Heading, Text;
245
+ var init_Typography = __esm({
246
+ "components/atoms/Typography.tsx"() {
247
+ init_cn();
248
+ variantStyles = {
249
+ h1: "text-4xl font-bold tracking-tight text-foreground",
250
+ h2: "text-3xl font-bold tracking-tight text-foreground",
251
+ h3: "text-2xl font-bold text-foreground",
252
+ h4: "text-xl font-bold text-foreground",
253
+ h5: "text-lg font-bold text-foreground",
254
+ h6: "text-base font-bold text-foreground",
255
+ heading: "text-2xl font-bold text-foreground",
256
+ subheading: "text-lg font-semibold text-foreground",
257
+ body1: "text-base font-normal text-foreground",
258
+ body2: "text-sm font-normal text-foreground",
259
+ body: "text-base font-normal text-foreground",
260
+ caption: "text-xs font-normal text-muted-foreground",
261
+ overline: "text-xs uppercase tracking-wide font-bold text-muted-foreground",
262
+ small: "text-sm font-normal text-foreground",
263
+ large: "text-lg font-medium text-foreground",
264
+ label: "text-sm font-medium text-foreground"
265
+ };
266
+ colorStyles = {
267
+ primary: "text-foreground",
268
+ secondary: "text-muted-foreground",
269
+ muted: "text-muted-foreground",
270
+ error: "text-error",
271
+ success: "text-success",
272
+ warning: "text-warning",
273
+ inherit: "text-inherit"
274
+ };
275
+ weightStyles = {
276
+ light: "font-light",
277
+ normal: "font-normal",
278
+ medium: "font-medium",
279
+ semibold: "font-semibold",
280
+ bold: "font-bold"
281
+ };
282
+ defaultElements = {
283
+ h1: "h1",
284
+ h2: "h2",
285
+ h3: "h3",
286
+ h4: "h4",
287
+ h5: "h5",
288
+ h6: "h6",
289
+ heading: "h2",
290
+ subheading: "h3",
291
+ body1: "p",
292
+ body2: "p",
293
+ body: "p",
294
+ caption: "span",
295
+ overline: "span",
296
+ small: "span",
297
+ large: "p",
298
+ label: "span"
299
+ };
300
+ typographySizeStyles = {
301
+ xs: "text-xs",
302
+ sm: "text-sm",
303
+ md: "text-base",
304
+ lg: "text-lg",
305
+ xl: "text-xl",
306
+ "2xl": "text-2xl",
307
+ "3xl": "text-3xl"
308
+ };
309
+ overflowStyles2 = {
310
+ visible: "overflow-visible",
311
+ hidden: "overflow-hidden",
312
+ wrap: "break-words overflow-hidden",
313
+ "clamp-2": "overflow-hidden line-clamp-2",
314
+ "clamp-3": "overflow-hidden line-clamp-3"
315
+ };
316
+ Typography = ({
317
+ variant: variantProp,
318
+ level,
319
+ color = "primary",
320
+ align,
321
+ weight,
322
+ size,
323
+ truncate = false,
324
+ overflow,
325
+ as,
326
+ id,
327
+ className,
328
+ style,
329
+ content,
330
+ children
331
+ }) => {
332
+ const variant = variantProp ?? (level ? `h${level}` : "body1");
333
+ const Component = as || defaultElements[variant];
334
+ const Comp = Component;
335
+ return /* @__PURE__ */ jsx(
336
+ Comp,
337
+ {
338
+ id,
339
+ className: cn(
340
+ variantStyles[variant],
341
+ colorStyles[color],
342
+ weight && weightStyles[weight],
343
+ size && typographySizeStyles[size],
344
+ align && `text-${align}`,
345
+ truncate && "truncate overflow-hidden text-ellipsis",
346
+ overflow && overflowStyles2[overflow],
347
+ className
348
+ ),
349
+ style,
350
+ children: children ?? content
351
+ }
352
+ );
353
+ };
354
+ Typography.displayName = "Typography";
355
+ sizeStyles = {
356
+ xs: "text-xs",
357
+ sm: "text-sm",
358
+ md: "text-base",
359
+ lg: "text-lg",
360
+ xl: "text-xl",
361
+ "2xl": "text-2xl",
362
+ "3xl": "text-3xl"
363
+ };
364
+ Heading = ({
365
+ level = 2,
366
+ size,
367
+ className,
368
+ ...props
369
+ }) => {
370
+ const variant = `h${level}`;
371
+ const sizeClass = size ? sizeStyles[size] : void 0;
372
+ return /* @__PURE__ */ jsx(
373
+ Typography,
374
+ {
375
+ variant,
376
+ className: cn(sizeClass, className),
377
+ ...props
378
+ }
379
+ );
380
+ };
381
+ Heading.displayName = "Heading";
382
+ Text = ({
383
+ variant = "body",
384
+ ...props
385
+ }) => {
386
+ return /* @__PURE__ */ jsx(
387
+ Typography,
388
+ {
389
+ variant,
390
+ ...props
391
+ }
392
+ );
393
+ };
394
+ Text.displayName = "Text";
395
+ }
396
+ });
397
+
398
+ // hooks/index.ts
399
+ init_useEventBus();
400
+
401
+ // hooks/useUIEvents.ts
402
+ init_useEventBus();
186
403
  createContext(null);
187
404
  var queryStores = /* @__PURE__ */ new Map();
188
405
  function getOrCreateStore(query) {
@@ -641,6 +858,12 @@ function usePullToRefresh(onRefresh, options = {}) {
641
858
  endRefresh
642
859
  };
643
860
  }
861
+
862
+ // hooks/useDraggable.ts
863
+ init_useEventBus();
864
+
865
+ // hooks/useDropZone.ts
866
+ init_useEventBus();
644
867
  typeof process !== "undefined" && process.env?.VITE_API_URL ? process.env.VITE_API_URL : "http://localhost:3000";
645
868
 
646
869
  // runtime/createClientEffectHandlers.ts
@@ -742,6 +965,7 @@ function subscribeToTraitChanges(listener) {
742
965
  }
743
966
 
744
967
  // lib/verificationRegistry.ts
968
+ init_logger();
745
969
  var log2 = createLogger("almadar:bridge");
746
970
  var MAX_TRANSITIONS = 500;
747
971
  function getState() {
@@ -1479,9 +1703,10 @@ function useSlotsActions() {
1479
1703
  }
1480
1704
  return actions;
1481
1705
  }
1482
- function cn(...inputs) {
1483
- return twMerge(clsx(inputs));
1484
- }
1706
+
1707
+ // components/atoms/Box.tsx
1708
+ init_cn();
1709
+ init_useEventBus();
1485
1710
  var paddingStyles = {
1486
1711
  none: "p-0",
1487
1712
  xs: "p-1",
@@ -1680,113 +1905,12 @@ var Box = React114__default.forwardRef(
1680
1905
  }
1681
1906
  );
1682
1907
  Box.displayName = "Box";
1683
- var variantStyles = {
1684
- h1: "text-4xl font-bold tracking-tight text-foreground",
1685
- h2: "text-3xl font-bold tracking-tight text-foreground",
1686
- h3: "text-2xl font-bold text-foreground",
1687
- h4: "text-xl font-bold text-foreground",
1688
- h5: "text-lg font-bold text-foreground",
1689
- h6: "text-base font-bold text-foreground",
1690
- heading: "text-2xl font-bold text-foreground",
1691
- subheading: "text-lg font-semibold text-foreground",
1692
- body1: "text-base font-normal text-foreground",
1693
- body2: "text-sm font-normal text-foreground",
1694
- body: "text-base font-normal text-foreground",
1695
- caption: "text-xs font-normal text-muted-foreground",
1696
- overline: "text-xs uppercase tracking-wide font-bold text-muted-foreground",
1697
- small: "text-sm font-normal text-foreground",
1698
- large: "text-lg font-medium text-foreground",
1699
- label: "text-sm font-medium text-foreground"
1700
- };
1701
- var colorStyles = {
1702
- primary: "text-foreground",
1703
- secondary: "text-muted-foreground",
1704
- muted: "text-muted-foreground",
1705
- error: "text-error",
1706
- success: "text-success",
1707
- warning: "text-warning",
1708
- inherit: "text-inherit"
1709
- };
1710
- var weightStyles = {
1711
- light: "font-light",
1712
- normal: "font-normal",
1713
- medium: "font-medium",
1714
- semibold: "font-semibold",
1715
- bold: "font-bold"
1716
- };
1717
- var defaultElements = {
1718
- h1: "h1",
1719
- h2: "h2",
1720
- h3: "h3",
1721
- h4: "h4",
1722
- h5: "h5",
1723
- h6: "h6",
1724
- heading: "h2",
1725
- subheading: "h3",
1726
- body1: "p",
1727
- body2: "p",
1728
- body: "p",
1729
- caption: "span",
1730
- overline: "span",
1731
- small: "span",
1732
- large: "p",
1733
- label: "span"
1734
- };
1735
- var typographySizeStyles = {
1736
- xs: "text-xs",
1737
- sm: "text-sm",
1738
- md: "text-base",
1739
- lg: "text-lg",
1740
- xl: "text-xl",
1741
- "2xl": "text-2xl",
1742
- "3xl": "text-3xl"
1743
- };
1744
- var overflowStyles2 = {
1745
- visible: "overflow-visible",
1746
- hidden: "overflow-hidden",
1747
- wrap: "break-words overflow-hidden",
1748
- "clamp-2": "overflow-hidden line-clamp-2",
1749
- "clamp-3": "overflow-hidden line-clamp-3"
1750
- };
1751
- var Typography = ({
1752
- variant: variantProp,
1753
- level,
1754
- color = "primary",
1755
- align,
1756
- weight,
1757
- size,
1758
- truncate = false,
1759
- overflow,
1760
- as,
1761
- id,
1762
- className,
1763
- style,
1764
- content,
1765
- children
1766
- }) => {
1767
- const variant = variantProp ?? (level ? `h${level}` : "body1");
1768
- const Component = as || defaultElements[variant];
1769
- const Comp = Component;
1770
- return /* @__PURE__ */ jsx(
1771
- Comp,
1772
- {
1773
- id,
1774
- className: cn(
1775
- variantStyles[variant],
1776
- colorStyles[color],
1777
- weight && weightStyles[weight],
1778
- size && typographySizeStyles[size],
1779
- align && `text-${align}`,
1780
- truncate && "truncate overflow-hidden text-ellipsis",
1781
- overflow && overflowStyles2[overflow],
1782
- className
1783
- ),
1784
- style,
1785
- children: children ?? content
1786
- }
1787
- );
1788
- };
1789
- Typography.displayName = "Typography";
1908
+
1909
+ // runtime/OrbPreview.tsx
1910
+ init_Typography();
1911
+
1912
+ // components/atoms/Icon.tsx
1913
+ init_cn();
1790
1914
  var iconAliases = {
1791
1915
  "close": LucideIcons.X,
1792
1916
  "trash": LucideIcons.Trash2,
@@ -1865,6 +1989,13 @@ var Icon = ({
1865
1989
  );
1866
1990
  };
1867
1991
  Icon.displayName = "Icon";
1992
+
1993
+ // components/molecules/Modal.tsx
1994
+ init_Typography();
1995
+
1996
+ // components/atoms/Overlay.tsx
1997
+ init_cn();
1998
+ init_useEventBus();
1868
1999
  var Overlay = ({
1869
2000
  isVisible = true,
1870
2001
  onClick,
@@ -1894,6 +2025,10 @@ var Overlay = ({
1894
2025
  }
1895
2026
  );
1896
2027
  };
2028
+
2029
+ // components/molecules/Modal.tsx
2030
+ init_cn();
2031
+ init_useEventBus();
1897
2032
  var sizeClasses2 = {
1898
2033
  sm: "max-w-md",
1899
2034
  md: "max-w-2xl",
@@ -2091,6 +2226,9 @@ var Modal = ({
2091
2226
  ] });
2092
2227
  };
2093
2228
  Modal.displayName = "Modal";
2229
+ init_Typography();
2230
+ init_cn();
2231
+ init_useEventBus();
2094
2232
  var sizeWidths = {
2095
2233
  sm: "w-80",
2096
2234
  // 320px
@@ -2263,6 +2401,11 @@ var Drawer = ({
2263
2401
  ] });
2264
2402
  };
2265
2403
  Drawer.displayName = "Drawer";
2404
+ init_Typography();
2405
+
2406
+ // components/atoms/Button.tsx
2407
+ init_cn();
2408
+ init_useEventBus();
2266
2409
  var variantStyles2 = {
2267
2410
  primary: [
2268
2411
  "bg-primary text-primary-foreground",
@@ -2401,6 +2544,9 @@ var Button = React114__default.forwardRef(
2401
2544
  }
2402
2545
  );
2403
2546
  Button.displayName = "Button";
2547
+
2548
+ // components/atoms/Badge.tsx
2549
+ init_cn();
2404
2550
  var variantStyles3 = {
2405
2551
  default: [
2406
2552
  "bg-muted text-foreground",
@@ -2465,6 +2611,10 @@ var Badge = React114__default.forwardRef(
2465
2611
  }
2466
2612
  );
2467
2613
  Badge.displayName = "Badge";
2614
+
2615
+ // components/molecules/Toast.tsx
2616
+ init_cn();
2617
+ init_useEventBus();
2468
2618
  var variantClasses = {
2469
2619
  success: "bg-card border-[length:var(--border-width)] border-success",
2470
2620
  error: "bg-card border-[length:var(--border-width)] border-error",
@@ -2561,6 +2711,19 @@ var Toast = ({
2561
2711
  );
2562
2712
  };
2563
2713
  Toast.displayName = "Toast";
2714
+
2715
+ // components/organisms/UISlotRenderer.tsx
2716
+ init_Typography();
2717
+ init_cn();
2718
+
2719
+ // components/molecules/ErrorBoundary.tsx
2720
+ init_cn();
2721
+
2722
+ // components/molecules/ErrorState.tsx
2723
+ init_cn();
2724
+
2725
+ // components/atoms/Input.tsx
2726
+ init_cn();
2564
2727
  var Input = React114__default.forwardRef(
2565
2728
  ({
2566
2729
  className,
@@ -2673,6 +2836,9 @@ var Input = React114__default.forwardRef(
2673
2836
  }
2674
2837
  );
2675
2838
  Input.displayName = "Input";
2839
+
2840
+ // components/atoms/Label.tsx
2841
+ init_cn();
2676
2842
  var Label = React114__default.forwardRef(
2677
2843
  ({ className, required, children, ...props }, ref) => {
2678
2844
  return /* @__PURE__ */ jsxs(
@@ -2693,6 +2859,9 @@ var Label = React114__default.forwardRef(
2693
2859
  }
2694
2860
  );
2695
2861
  Label.displayName = "Label";
2862
+
2863
+ // components/atoms/Textarea.tsx
2864
+ init_cn();
2696
2865
  var Textarea = React114__default.forwardRef(
2697
2866
  ({ className, error, ...props }, ref) => {
2698
2867
  return /* @__PURE__ */ jsx(
@@ -2716,6 +2885,9 @@ var Textarea = React114__default.forwardRef(
2716
2885
  }
2717
2886
  );
2718
2887
  Textarea.displayName = "Textarea";
2888
+
2889
+ // components/atoms/Select.tsx
2890
+ init_cn();
2719
2891
  var Select = React114__default.forwardRef(
2720
2892
  ({ className, options, placeholder, error, ...props }, ref) => {
2721
2893
  return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
@@ -2752,6 +2924,9 @@ var Select = React114__default.forwardRef(
2752
2924
  }
2753
2925
  );
2754
2926
  Select.displayName = "Select";
2927
+
2928
+ // components/atoms/Checkbox.tsx
2929
+ init_cn();
2755
2930
  var Checkbox = React114__default.forwardRef(
2756
2931
  ({ className, label, id, ...props }, ref) => {
2757
2932
  const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
@@ -2784,6 +2959,9 @@ var Checkbox = React114__default.forwardRef(
2784
2959
  }
2785
2960
  );
2786
2961
  Checkbox.displayName = "Checkbox";
2962
+
2963
+ // components/atoms/Card.tsx
2964
+ init_cn();
2787
2965
  var variantStyles4 = {
2788
2966
  default: [
2789
2967
  "bg-card",
@@ -2892,6 +3070,9 @@ var CardFooter = React114__default.forwardRef(({ className, ...props }, ref) =>
2892
3070
  }
2893
3071
  ));
2894
3072
  CardFooter.displayName = "CardFooter";
3073
+
3074
+ // components/atoms/Spinner.tsx
3075
+ init_cn();
2895
3076
  var sizeStyles4 = {
2896
3077
  xs: "h-3 w-3",
2897
3078
  sm: "h-4 w-4",
@@ -2912,6 +3093,10 @@ var Spinner = React114__default.forwardRef(
2912
3093
  }
2913
3094
  );
2914
3095
  Spinner.displayName = "Spinner";
3096
+
3097
+ // components/atoms/Avatar.tsx
3098
+ init_cn();
3099
+ init_useEventBus();
2915
3100
  var sizeClasses3 = {
2916
3101
  xs: "w-6 h-6 text-xs",
2917
3102
  sm: "w-8 h-8 text-sm",
@@ -3061,6 +3246,9 @@ var Avatar = ({
3061
3246
  ] });
3062
3247
  };
3063
3248
  Avatar.displayName = "Avatar";
3249
+
3250
+ // components/atoms/Center.tsx
3251
+ init_cn();
3064
3252
  var Center = ({
3065
3253
  inline = false,
3066
3254
  horizontal = true,
@@ -3091,6 +3279,9 @@ var Center = ({
3091
3279
  }
3092
3280
  );
3093
3281
  };
3282
+
3283
+ // components/atoms/Divider.tsx
3284
+ init_cn();
3094
3285
  var variantStyles5 = {
3095
3286
  solid: "border-solid",
3096
3287
  dashed: "border-dashed",
@@ -3161,6 +3352,9 @@ var Divider = ({
3161
3352
  );
3162
3353
  };
3163
3354
  Divider.displayName = "Divider";
3355
+
3356
+ // components/atoms/ProgressBar.tsx
3357
+ init_cn();
3164
3358
  var colorClasses = {
3165
3359
  default: "bg-primary",
3166
3360
  primary: "bg-primary",
@@ -3314,6 +3508,9 @@ var ProgressBar = ({
3314
3508
  return null;
3315
3509
  };
3316
3510
  ProgressBar.displayName = "ProgressBar";
3511
+
3512
+ // components/atoms/Radio.tsx
3513
+ init_cn();
3317
3514
  var Radio = React114__default.forwardRef(
3318
3515
  ({
3319
3516
  label,
@@ -3418,6 +3615,9 @@ var Radio = React114__default.forwardRef(
3418
3615
  }
3419
3616
  );
3420
3617
  Radio.displayName = "Radio";
3618
+
3619
+ // components/atoms/Switch.tsx
3620
+ init_cn();
3421
3621
  var Switch = React114.forwardRef(
3422
3622
  ({
3423
3623
  checked,
@@ -3491,6 +3691,9 @@ var Switch = React114.forwardRef(
3491
3691
  }
3492
3692
  );
3493
3693
  Switch.displayName = "Switch";
3694
+
3695
+ // components/atoms/Spacer.tsx
3696
+ init_cn();
3494
3697
  var horizontalSizes = {
3495
3698
  xs: "w-1",
3496
3699
  sm: "w-2",
@@ -3524,6 +3727,10 @@ var Spacer = ({
3524
3727
  }
3525
3728
  );
3526
3729
  };
3730
+
3731
+ // components/atoms/Stack.tsx
3732
+ init_cn();
3733
+ init_useEventBus();
3527
3734
  var gapStyles = {
3528
3735
  none: "gap-0",
3529
3736
  xs: "gap-1",
@@ -3602,6 +3809,10 @@ var Stack = ({
3602
3809
  };
3603
3810
  var VStack = (props) => /* @__PURE__ */ jsx(Stack, { direction: "vertical", ...props });
3604
3811
  var HStack = (props) => /* @__PURE__ */ jsx(Stack, { direction: "horizontal", ...props });
3812
+
3813
+ // components/atoms/TextHighlight.tsx
3814
+ init_cn();
3815
+ init_useEventBus();
3605
3816
  var TextHighlight = ({
3606
3817
  highlightType,
3607
3818
  isActive = false,
@@ -3663,6 +3874,12 @@ var TextHighlight = ({
3663
3874
  );
3664
3875
  };
3665
3876
  TextHighlight.displayName = "TextHighlight";
3877
+
3878
+ // components/atoms/index.ts
3879
+ init_Typography();
3880
+
3881
+ // components/atoms/ThemeToggle.tsx
3882
+ init_cn();
3666
3883
  var BUILT_IN_THEMES = [
3667
3884
  {
3668
3885
  name: "wireframe",
@@ -3833,6 +4050,9 @@ var ThemeToggle = ({
3833
4050
  );
3834
4051
  };
3835
4052
  ThemeToggle.displayName = "ThemeToggle";
4053
+
4054
+ // components/atoms/FlipContainer.tsx
4055
+ init_cn();
3836
4056
  var FlipContainer = ({
3837
4057
  flipped,
3838
4058
  className,
@@ -3898,6 +4118,8 @@ var ConditionalWrapper = ({
3898
4118
  return isVisible ? /* @__PURE__ */ jsx(Fragment, { children }) : /* @__PURE__ */ jsx(Fragment, { children: fallback });
3899
4119
  };
3900
4120
  ConditionalWrapper.displayName = "ConditionalWrapper";
4121
+ init_Typography();
4122
+ init_cn();
3901
4123
  var positionStyles2 = {
3902
4124
  top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
3903
4125
  bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
@@ -4020,6 +4242,10 @@ var LawReferenceTooltip = ({
4020
4242
  );
4021
4243
  };
4022
4244
  LawReferenceTooltip.displayName = "LawReferenceTooltip";
4245
+
4246
+ // components/atoms/DayCell.tsx
4247
+ init_cn();
4248
+ init_Typography();
4023
4249
  var DAY_ABBREVIATIONS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
4024
4250
  function DayCell({
4025
4251
  date,
@@ -4069,6 +4295,9 @@ function DayCell({
4069
4295
  );
4070
4296
  }
4071
4297
  DayCell.displayName = "DayCell";
4298
+
4299
+ // components/atoms/TimeSlotCell.tsx
4300
+ init_cn();
4072
4301
  function TimeSlotCell({
4073
4302
  time,
4074
4303
  onClick,
@@ -4093,6 +4322,9 @@ function TimeSlotCell({
4093
4322
  );
4094
4323
  }
4095
4324
  TimeSlotCell.displayName = "TimeSlotCell";
4325
+
4326
+ // components/atoms/StatusDot.tsx
4327
+ init_cn();
4096
4328
  var statusColors = {
4097
4329
  online: "bg-success",
4098
4330
  offline: "bg-muted-foreground",
@@ -4140,6 +4372,9 @@ var StatusDot = React114__default.forwardRef(
4140
4372
  }
4141
4373
  );
4142
4374
  StatusDot.displayName = "StatusDot";
4375
+
4376
+ // components/atoms/TrendIndicator.tsx
4377
+ init_cn();
4143
4378
  var sizeStyles6 = {
4144
4379
  sm: { icon: "w-3 h-3", text: "text-xs" },
4145
4380
  md: { icon: "w-4 h-4", text: "text-sm" },
@@ -4200,6 +4435,10 @@ var TrendIndicator = React114__default.forwardRef(
4200
4435
  }
4201
4436
  );
4202
4437
  TrendIndicator.displayName = "TrendIndicator";
4438
+
4439
+ // components/atoms/RangeSlider.tsx
4440
+ init_cn();
4441
+ init_useEventBus();
4203
4442
  function useSafeEventBus() {
4204
4443
  try {
4205
4444
  return useEventBus();
@@ -4408,6 +4647,10 @@ var RangeSlider = React114__default.forwardRef(
4408
4647
  }
4409
4648
  );
4410
4649
  RangeSlider.displayName = "RangeSlider";
4650
+
4651
+ // components/atoms/AnimatedCounter.tsx
4652
+ init_cn();
4653
+ init_Typography();
4411
4654
  function easeOut(t) {
4412
4655
  return t * (2 - t);
4413
4656
  }
@@ -4459,6 +4702,10 @@ var AnimatedCounter = ({
4459
4702
  ] });
4460
4703
  };
4461
4704
  AnimatedCounter.displayName = "AnimatedCounter";
4705
+
4706
+ // components/atoms/InfiniteScrollSentinel.tsx
4707
+ init_cn();
4708
+ init_useEventBus();
4462
4709
  var InfiniteScrollSentinel = ({
4463
4710
  loadMoreEvent,
4464
4711
  loadMorePayload,
@@ -4488,6 +4735,9 @@ var InfiniteScrollSentinel = ({
4488
4735
  );
4489
4736
  };
4490
4737
  InfiniteScrollSentinel.displayName = "InfiniteScrollSentinel";
4738
+
4739
+ // components/atoms/ConfettiEffect.tsx
4740
+ init_cn();
4491
4741
  var CONFETTI_COLORS = [
4492
4742
  "var(--color-primary)",
4493
4743
  "var(--color-success)",
@@ -4594,6 +4844,10 @@ var ConfettiEffect = ({
4594
4844
  );
4595
4845
  };
4596
4846
  ConfettiEffect.displayName = "ConfettiEffect";
4847
+
4848
+ // components/atoms/TypewriterText.tsx
4849
+ init_cn();
4850
+ init_Typography();
4597
4851
  var TypewriterText = ({
4598
4852
  text,
4599
4853
  speed = 40,
@@ -4656,6 +4910,17 @@ var TypewriterText = ({
4656
4910
  ] });
4657
4911
  };
4658
4912
  TypewriterText.displayName = "TypewriterText";
4913
+
4914
+ // components/atoms/SectionHeader.tsx
4915
+ init_cn();
4916
+ init_Typography();
4917
+
4918
+ // components/atoms/StatCard.tsx
4919
+ init_cn();
4920
+ init_Typography();
4921
+
4922
+ // components/atoms/ContentSection.tsx
4923
+ init_cn();
4659
4924
  var backgroundClasses = {
4660
4925
  default: "",
4661
4926
  alt: "bg-surface",
@@ -4690,6 +4955,9 @@ var ContentSection = React114__default.forwardRef(
4690
4955
  }
4691
4956
  );
4692
4957
  ContentSection.displayName = "ContentSection";
4958
+
4959
+ // components/atoms/AnimatedReveal.tsx
4960
+ init_cn();
4693
4961
  var initialStyles = {
4694
4962
  "fade-up": { opacity: 0, transform: "translateY(24px)" },
4695
4963
  "fade-down": { opacity: 0, transform: "translateY(-24px)" },
@@ -4791,6 +5059,9 @@ var AnimatedReveal = React114__default.forwardRef(
4791
5059
  }
4792
5060
  );
4793
5061
  AnimatedReveal.displayName = "AnimatedReveal";
5062
+
5063
+ // components/atoms/AnimatedGraphic.tsx
5064
+ init_cn();
4794
5065
  function useFetchedSvg(src) {
4795
5066
  const [svg, setSvg] = useState(null);
4796
5067
  const cache = useRef({});
@@ -4973,6 +5244,9 @@ var AnimatedGraphic = React114__default.forwardRef(
4973
5244
  }
4974
5245
  );
4975
5246
  AnimatedGraphic.displayName = "AnimatedGraphic";
5247
+
5248
+ // components/atoms/game/HealthBar.tsx
5249
+ init_cn();
4976
5250
  var heartIcon = (filled, size) => /* @__PURE__ */ jsx(
4977
5251
  "svg",
4978
5252
  {
@@ -5040,6 +5314,9 @@ function HealthBar({
5040
5314
  ] });
5041
5315
  }
5042
5316
  HealthBar.displayName = "HealthBar";
5317
+
5318
+ // components/atoms/game/ScoreDisplay.tsx
5319
+ init_cn();
5043
5320
  var sizeMap2 = {
5044
5321
  sm: "text-sm",
5045
5322
  md: "text-lg",
@@ -5101,6 +5378,10 @@ function ScoreDisplay({
5101
5378
  );
5102
5379
  }
5103
5380
  ScoreDisplay.displayName = "ScoreDisplay";
5381
+
5382
+ // components/atoms/game/ControlButton.tsx
5383
+ init_cn();
5384
+ init_useEventBus();
5104
5385
  var sizeMap3 = {
5105
5386
  sm: "w-10 h-10 text-sm",
5106
5387
  md: "w-14 h-14 text-base",
@@ -5193,6 +5474,9 @@ function ControlButton({
5193
5474
  );
5194
5475
  }
5195
5476
  ControlButton.displayName = "ControlButton";
5477
+
5478
+ // components/atoms/game/Sprite.tsx
5479
+ init_useEventBus();
5196
5480
  function Sprite({
5197
5481
  spritesheet,
5198
5482
  frameWidth,
@@ -5262,6 +5546,9 @@ function Sprite({
5262
5546
  }
5263
5547
  );
5264
5548
  }
5549
+
5550
+ // components/atoms/game/StateIndicator.tsx
5551
+ init_cn();
5265
5552
  var DEFAULT_STATE_STYLES = {
5266
5553
  idle: { icon: "\u23F8", bgClass: "bg-muted" },
5267
5554
  active: { icon: "\u25B6", bgClass: "bg-success" },
@@ -5312,6 +5599,9 @@ function StateIndicator({
5312
5599
  );
5313
5600
  }
5314
5601
  StateIndicator.displayName = "StateIndicator";
5602
+
5603
+ // components/atoms/game/TimerDisplay.tsx
5604
+ init_cn();
5315
5605
  var sizeMap4 = {
5316
5606
  sm: "text-sm px-2 py-0.5",
5317
5607
  md: "text-lg px-3 py-1",
@@ -5356,6 +5646,9 @@ function TimerDisplay({
5356
5646
  );
5357
5647
  }
5358
5648
  TimerDisplay.displayName = "TimerDisplay";
5649
+
5650
+ // components/atoms/game/ResourceCounter.tsx
5651
+ init_cn();
5359
5652
  var sizeMap5 = {
5360
5653
  sm: { wrapper: "text-xs gap-1 px-1.5 py-0.5", icon: "text-sm" },
5361
5654
  md: { wrapper: "text-sm gap-1.5 px-2 py-1", icon: "text-base" },
@@ -5395,6 +5688,9 @@ function ResourceCounter({
5395
5688
  );
5396
5689
  }
5397
5690
  ResourceCounter.displayName = "ResourceCounter";
5691
+
5692
+ // components/atoms/game/ItemSlot.tsx
5693
+ init_cn();
5398
5694
  var sizeMap6 = {
5399
5695
  sm: "w-10 h-10 text-lg",
5400
5696
  md: "w-14 h-14 text-2xl",
@@ -5463,6 +5759,9 @@ function ItemSlot({
5463
5759
  );
5464
5760
  }
5465
5761
  ItemSlot.displayName = "ItemSlot";
5762
+
5763
+ // components/atoms/game/TurnIndicator.tsx
5764
+ init_cn();
5466
5765
  var sizeMap7 = {
5467
5766
  sm: { wrapper: "text-xs gap-1.5 px-2 py-0.5", dot: "w-1.5 h-1.5" },
5468
5767
  md: { wrapper: "text-sm gap-2 px-3 py-1", dot: "w-2 h-2" },
@@ -5509,6 +5808,9 @@ function TurnIndicator({
5509
5808
  );
5510
5809
  }
5511
5810
  TurnIndicator.displayName = "TurnIndicator";
5811
+
5812
+ // components/atoms/game/ComboCounter.tsx
5813
+ init_cn();
5512
5814
  var sizeMap8 = {
5513
5815
  sm: { combo: "text-lg", label: "text-[10px]", multiplier: "text-xs" },
5514
5816
  md: { combo: "text-2xl", label: "text-xs", multiplier: "text-sm" },
@@ -5560,6 +5862,9 @@ function ComboCounter({
5560
5862
  );
5561
5863
  }
5562
5864
  ComboCounter.displayName = "ComboCounter";
5865
+
5866
+ // components/atoms/game/XPBar.tsx
5867
+ init_cn();
5563
5868
  var sizeMap9 = {
5564
5869
  sm: { bar: "h-2", text: "text-[10px]", badge: "text-[10px] px-1.5 py-0.5" },
5565
5870
  md: { bar: "h-3", text: "text-xs", badge: "text-xs px-2 py-0.5" },
@@ -5622,6 +5927,9 @@ function XPBar({
5622
5927
  ] });
5623
5928
  }
5624
5929
  XPBar.displayName = "XPBar";
5930
+
5931
+ // components/atoms/game/WaypointMarker.tsx
5932
+ init_cn();
5625
5933
  var sizeMap10 = {
5626
5934
  sm: { dot: "w-4 h-4", ring: "w-6 h-6", label: "text-xs mt-1" },
5627
5935
  md: { dot: "w-6 h-6", ring: "w-8 h-8", label: "text-sm mt-1.5" },
@@ -5685,6 +5993,9 @@ function WaypointMarker({
5685
5993
  ] });
5686
5994
  }
5687
5995
  WaypointMarker.displayName = "WaypointMarker";
5996
+
5997
+ // components/atoms/game/StatusEffect.tsx
5998
+ init_cn();
5688
5999
  var sizeMap11 = {
5689
6000
  sm: { container: "w-8 h-8", icon: "text-sm", badge: "text-[10px] -top-1 -right-1 w-4 h-4", timer: "text-[9px]" },
5690
6001
  md: { container: "w-10 h-10", icon: "text-base", badge: "text-xs -top-1 -right-1 w-5 h-5", timer: "text-[10px]" },
@@ -5750,6 +6061,9 @@ function StatusEffect({
5750
6061
  ] });
5751
6062
  }
5752
6063
  StatusEffect.displayName = "StatusEffect";
6064
+
6065
+ // components/atoms/game/DamageNumber.tsx
6066
+ init_cn();
5753
6067
  var sizeMap12 = {
5754
6068
  sm: "text-sm",
5755
6069
  md: "text-lg",
@@ -5793,6 +6107,9 @@ function DamageNumber({
5793
6107
  ] });
5794
6108
  }
5795
6109
  DamageNumber.displayName = "DamageNumber";
6110
+
6111
+ // components/atoms/game/DialogueBubble.tsx
6112
+ init_cn();
5796
6113
  function DialogueBubble({
5797
6114
  speaker,
5798
6115
  text,
@@ -5826,6 +6143,9 @@ function DialogueBubble({
5826
6143
  );
5827
6144
  }
5828
6145
  DialogueBubble.displayName = "DialogueBubble";
6146
+
6147
+ // components/atoms/game/ChoiceButton.tsx
6148
+ init_cn();
5829
6149
  function ChoiceButton({
5830
6150
  text,
5831
6151
  index,
@@ -5867,6 +6187,9 @@ function ChoiceButton({
5867
6187
  );
5868
6188
  }
5869
6189
  ChoiceButton.displayName = "ChoiceButton";
6190
+
6191
+ // components/atoms/game/ActionButton.tsx
6192
+ init_cn();
5870
6193
  var sizeMap13 = {
5871
6194
  sm: { button: "px-3 py-1.5 text-xs", hotkey: "text-[9px] px-1", icon: "text-xs" },
5872
6195
  md: { button: "px-4 py-2 text-sm", hotkey: "text-[10px] px-1.5", icon: "text-sm" },
@@ -5934,6 +6257,9 @@ function ActionButton({
5934
6257
  );
5935
6258
  }
5936
6259
  ActionButton.displayName = "ActionButton";
6260
+
6261
+ // components/atoms/game/MiniMap.tsx
6262
+ init_cn();
5937
6263
  function MiniMap({
5938
6264
  tiles = [],
5939
6265
  units = [],
@@ -6021,6 +6347,10 @@ function MiniMap({
6021
6347
  );
6022
6348
  }
6023
6349
  MiniMap.displayName = "MiniMap";
6350
+
6351
+ // components/molecules/ErrorState.tsx
6352
+ init_Typography();
6353
+ init_useEventBus();
6024
6354
  var ErrorState = ({
6025
6355
  title,
6026
6356
  message,
@@ -6096,6 +6426,9 @@ var ErrorBoundary = class extends React114__default.Component {
6096
6426
  }
6097
6427
  };
6098
6428
  __publicField(ErrorBoundary, "displayName", "ErrorBoundary");
6429
+
6430
+ // components/molecules/Skeleton.tsx
6431
+ init_cn();
6099
6432
  var pulseClass = "animate-pulse bg-muted/60 rounded";
6100
6433
  function SkeletonLine({ className }) {
6101
6434
  return /* @__PURE__ */ jsx(Box, { className: cn(pulseClass, "h-4", className) });
@@ -6299,6 +6632,15 @@ function getAllPages(schema) {
6299
6632
  return pages;
6300
6633
  }
6301
6634
  createContext(null);
6635
+
6636
+ // components/organisms/ComponentPatterns.tsx
6637
+ init_useEventBus();
6638
+ init_Typography();
6639
+
6640
+ // components/molecules/Alert.tsx
6641
+ init_cn();
6642
+ init_Typography();
6643
+ init_useEventBus();
6302
6644
  var variantBorderClasses = {
6303
6645
  info: "border-info",
6304
6646
  success: "border-success",
@@ -6378,6 +6720,10 @@ var Alert = ({
6378
6720
  );
6379
6721
  };
6380
6722
  Alert.displayName = "Alert";
6723
+
6724
+ // components/molecules/Tooltip.tsx
6725
+ init_Typography();
6726
+ init_cn();
6381
6727
  var positionClasses = {
6382
6728
  top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
6383
6729
  bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
@@ -6486,6 +6832,10 @@ var Tooltip = ({
6486
6832
  ] });
6487
6833
  };
6488
6834
  Tooltip.displayName = "Tooltip";
6835
+
6836
+ // components/molecules/Popover.tsx
6837
+ init_Typography();
6838
+ init_cn();
6489
6839
  var positionClasses2 = {
6490
6840
  top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
6491
6841
  bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
@@ -6596,6 +6946,9 @@ var Popover = ({
6596
6946
  ] });
6597
6947
  };
6598
6948
  Popover.displayName = "Popover";
6949
+ init_Typography();
6950
+ init_cn();
6951
+ init_useEventBus();
6599
6952
  var Menu = ({
6600
6953
  trigger,
6601
6954
  items,
@@ -6755,6 +7108,9 @@ var Menu = ({
6755
7108
  ] });
6756
7109
  };
6757
7110
  Menu.displayName = "Menu";
7111
+ init_Typography();
7112
+ init_cn();
7113
+ init_useEventBus();
6758
7114
  function generateItemId(item, index) {
6759
7115
  if (item.id) return item.id;
6760
7116
  const headerText = item.header ?? item.title;
@@ -6861,6 +7217,9 @@ var Accordion = ({
6861
7217
  }) });
6862
7218
  };
6863
7219
  Accordion.displayName = "Accordion";
7220
+
7221
+ // components/molecules/Container.tsx
7222
+ init_cn();
6864
7223
  var sizeStyles7 = {
6865
7224
  xs: "max-w-xs",
6866
7225
  // 320px
@@ -6909,6 +7268,9 @@ var Container = ({
6909
7268
  );
6910
7269
  };
6911
7270
  Container.displayName = "Container";
7271
+
7272
+ // components/molecules/SimpleGrid.tsx
7273
+ init_cn();
6912
7274
  var gapStyles2 = {
6913
7275
  none: "gap-0",
6914
7276
  xs: "gap-1",
@@ -6952,6 +7314,9 @@ var SimpleGrid = ({
6952
7314
  );
6953
7315
  };
6954
7316
  SimpleGrid.displayName = "SimpleGrid";
7317
+ init_Typography();
7318
+ init_cn();
7319
+ init_useEventBus();
6955
7320
  function resolveIcon2(name) {
6956
7321
  const pascalName = name.split(/[-_]/).map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join("");
6957
7322
  const icons = LucideIcons;
@@ -7095,117 +7460,147 @@ var FloatingActionButton = ({
7095
7460
  return null;
7096
7461
  };
7097
7462
  FloatingActionButton.displayName = "FloatingActionButton";
7098
- var defaultIcon = L.icon({
7099
- iconUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png",
7100
- iconRetinaUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon-2x.png",
7101
- shadowUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png",
7102
- iconSize: [25, 41],
7103
- iconAnchor: [12, 41],
7104
- popupAnchor: [1, -34],
7105
- shadowSize: [41, 41]
7463
+ init_cn();
7464
+ var MapViewImpl = lazy(async () => {
7465
+ const [reactLeaflet, leafletMod] = await Promise.all([
7466
+ import('react-leaflet'),
7467
+ import('leaflet')
7468
+ ]);
7469
+ await import('leaflet/dist/leaflet.css');
7470
+ const { MapContainer, TileLayer, Marker, Popup, useMap } = reactLeaflet;
7471
+ const L = leafletMod.default;
7472
+ const defaultIcon = L.icon({
7473
+ iconUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png",
7474
+ iconRetinaUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon-2x.png",
7475
+ shadowUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png",
7476
+ iconSize: [25, 41],
7477
+ iconAnchor: [12, 41],
7478
+ popupAnchor: [1, -34],
7479
+ shadowSize: [41, 41]
7480
+ });
7481
+ L.Marker.prototype.options.icon = defaultIcon;
7482
+ const { useEffect: useEffect68, useRef: useRef65, useCallback: useCallback109, useState: useState102 } = React114__default;
7483
+ const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
7484
+ const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
7485
+ function MapUpdater({ centerLat, centerLng, zoom }) {
7486
+ const map = useMap();
7487
+ const prevRef = useRef65({ centerLat, centerLng, zoom });
7488
+ useEffect68(() => {
7489
+ const prev = prevRef.current;
7490
+ if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
7491
+ map.setView([centerLat, centerLng], zoom);
7492
+ prevRef.current = { centerLat, centerLng, zoom };
7493
+ }
7494
+ }, [map, centerLat, centerLng, zoom]);
7495
+ return null;
7496
+ }
7497
+ function MapClickHandler({ onMapClick }) {
7498
+ const map = useMap();
7499
+ useEffect68(() => {
7500
+ if (!onMapClick) return;
7501
+ const handler = (e) => {
7502
+ onMapClick(e.latlng.lat, e.latlng.lng);
7503
+ };
7504
+ map.on("click", handler);
7505
+ return () => {
7506
+ map.off("click", handler);
7507
+ };
7508
+ }, [map, onMapClick]);
7509
+ return null;
7510
+ }
7511
+ function MapViewInner({
7512
+ markers = [],
7513
+ centerLat = 51.505,
7514
+ centerLng = -0.09,
7515
+ zoom = 13,
7516
+ height = "400px",
7517
+ onMarkerClick,
7518
+ onMapClick,
7519
+ mapClickEvent,
7520
+ markerClickEvent,
7521
+ showClickedPin = false,
7522
+ className,
7523
+ showAttribution = true
7524
+ }) {
7525
+ const eventBus = useEventBus2();
7526
+ const [clickedPosition, setClickedPosition] = useState102(null);
7527
+ const handleMapClick = useCallback109((lat, lng) => {
7528
+ if (showClickedPin) {
7529
+ setClickedPosition({ lat, lng });
7530
+ }
7531
+ onMapClick?.(lat, lng);
7532
+ if (mapClickEvent) {
7533
+ eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
7534
+ }
7535
+ }, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
7536
+ const handleMarkerClick = useCallback109((marker) => {
7537
+ onMarkerClick?.(marker);
7538
+ if (markerClickEvent) {
7539
+ eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
7540
+ }
7541
+ }, [onMarkerClick, markerClickEvent, eventBus]);
7542
+ return /* @__PURE__ */ jsx(
7543
+ Box,
7544
+ {
7545
+ className: cn("relative w-full overflow-hidden rounded-lg", className),
7546
+ style: { height },
7547
+ "data-testid": "map-view",
7548
+ children: /* @__PURE__ */ jsxs(
7549
+ MapContainer,
7550
+ {
7551
+ center: [centerLat, centerLng],
7552
+ zoom,
7553
+ style: { height: "100%", width: "100%" },
7554
+ attributionControl: showAttribution,
7555
+ children: [
7556
+ /* @__PURE__ */ jsx(
7557
+ TileLayer,
7558
+ {
7559
+ url: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
7560
+ attribution: showAttribution ? '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>' : void 0
7561
+ }
7562
+ ),
7563
+ /* @__PURE__ */ jsx(MapUpdater, { centerLat, centerLng, zoom }),
7564
+ /* @__PURE__ */ jsx(MapClickHandler, { onMapClick: handleMapClick }),
7565
+ showClickedPin && clickedPosition && /* @__PURE__ */ jsx(Marker, { position: [clickedPosition.lat, clickedPosition.lng], children: /* @__PURE__ */ jsx(Popup, { children: /* @__PURE__ */ jsxs(Typography2, { variant: "body2", children: [
7566
+ clickedPosition.lat.toFixed(5),
7567
+ ", ",
7568
+ clickedPosition.lng.toFixed(5)
7569
+ ] }) }) }),
7570
+ markers.map((marker) => /* @__PURE__ */ jsx(
7571
+ Marker,
7572
+ {
7573
+ position: [marker.lat, marker.lng],
7574
+ eventHandlers: onMarkerClick || markerClickEvent ? { click: () => handleMarkerClick(marker) } : void 0,
7575
+ children: marker.label ? /* @__PURE__ */ jsxs(Popup, { children: [
7576
+ /* @__PURE__ */ jsx(Typography2, { variant: "body2", children: marker.label }),
7577
+ marker.category ? /* @__PURE__ */ jsx(Typography2, { variant: "caption", className: "text-muted-foreground", children: marker.category }) : null
7578
+ ] }) : null
7579
+ },
7580
+ marker.id
7581
+ ))
7582
+ ]
7583
+ },
7584
+ `map-${centerLat}-${centerLng}-${zoom}`
7585
+ )
7586
+ }
7587
+ );
7588
+ }
7589
+ return { default: MapViewInner };
7106
7590
  });
7107
- L.Marker.prototype.options.icon = defaultIcon;
7108
- function MapUpdater({ centerLat, centerLng, zoom }) {
7109
- const map = useMap();
7110
- const prevRef = useRef({ centerLat, centerLng, zoom });
7111
- useEffect(() => {
7112
- const prev = prevRef.current;
7113
- if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
7114
- map.setView([centerLat, centerLng], zoom);
7115
- prevRef.current = { centerLat, centerLng, zoom };
7116
- }
7117
- }, [map, centerLat, centerLng, zoom]);
7118
- return null;
7119
- }
7120
- function MapClickHandler({ onMapClick }) {
7121
- const map = useMap();
7122
- useEffect(() => {
7123
- if (!onMapClick) return;
7124
- const handler = (e) => {
7125
- onMapClick(e.latlng.lat, e.latlng.lng);
7126
- };
7127
- map.on("click", handler);
7128
- return () => {
7129
- map.off("click", handler);
7130
- };
7131
- }, [map, onMapClick]);
7132
- return null;
7133
- }
7134
- function MapView({
7135
- markers = [],
7136
- centerLat = 51.505,
7137
- centerLng = -0.09,
7138
- zoom = 13,
7139
- height = "400px",
7140
- onMarkerClick,
7141
- onMapClick,
7142
- mapClickEvent,
7143
- markerClickEvent,
7144
- showClickedPin = false,
7145
- className,
7146
- showAttribution = true
7147
- }) {
7148
- const eventBus = useEventBus();
7149
- const [clickedPosition, setClickedPosition] = useState(null);
7150
- const handleMapClick = useCallback((lat, lng) => {
7151
- if (showClickedPin) {
7152
- setClickedPosition({ lat, lng });
7153
- }
7154
- onMapClick?.(lat, lng);
7155
- if (mapClickEvent) {
7156
- eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
7157
- }
7158
- }, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
7159
- const handleMarkerClick = useCallback((marker) => {
7160
- onMarkerClick?.(marker);
7161
- if (markerClickEvent) {
7162
- eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
7163
- }
7164
- }, [onMarkerClick, markerClickEvent, eventBus]);
7591
+ function MapView(props) {
7165
7592
  return /* @__PURE__ */ jsx(
7166
- Box,
7593
+ Suspense,
7167
7594
  {
7168
- className: cn("relative w-full overflow-hidden rounded-lg", className),
7169
- style: { height },
7170
- "data-testid": "map-view",
7171
- children: /* @__PURE__ */ jsxs(
7172
- MapContainer,
7595
+ fallback: /* @__PURE__ */ jsx(
7596
+ Box,
7173
7597
  {
7174
- center: [centerLat, centerLng],
7175
- zoom,
7176
- style: { height: "100%", width: "100%" },
7177
- attributionControl: showAttribution,
7178
- children: [
7179
- /* @__PURE__ */ jsx(
7180
- TileLayer,
7181
- {
7182
- url: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
7183
- attribution: showAttribution ? '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>' : void 0
7184
- }
7185
- ),
7186
- /* @__PURE__ */ jsx(MapUpdater, { centerLat, centerLng, zoom }),
7187
- /* @__PURE__ */ jsx(MapClickHandler, { onMapClick: handleMapClick }),
7188
- showClickedPin && clickedPosition && /* @__PURE__ */ jsx(Marker, { position: [clickedPosition.lat, clickedPosition.lng], children: /* @__PURE__ */ jsx(Popup, { children: /* @__PURE__ */ jsxs(Typography, { variant: "body2", children: [
7189
- clickedPosition.lat.toFixed(5),
7190
- ", ",
7191
- clickedPosition.lng.toFixed(5)
7192
- ] }) }) }),
7193
- markers.map((marker) => /* @__PURE__ */ jsx(
7194
- Marker,
7195
- {
7196
- position: [marker.lat, marker.lng],
7197
- eventHandlers: onMarkerClick || markerClickEvent ? { click: () => handleMarkerClick(marker) } : void 0,
7198
- children: marker.label ? /* @__PURE__ */ jsxs(Popup, { children: [
7199
- /* @__PURE__ */ jsx(Typography, { variant: "body2", children: marker.label }),
7200
- marker.category ? /* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: marker.category }) : null
7201
- ] }) : null
7202
- },
7203
- marker.id
7204
- ))
7205
- ]
7206
- },
7207
- `map-${centerLat}-${centerLng}-${zoom}`
7208
- )
7598
+ className: cn("relative w-full overflow-hidden rounded-lg bg-muted/20", props.className),
7599
+ style: { height: props.height ?? "400px" },
7600
+ "data-testid": "map-view"
7601
+ }
7602
+ ),
7603
+ children: /* @__PURE__ */ jsx(MapViewImpl, { ...props })
7209
7604
  }
7210
7605
  );
7211
7606
  }
@@ -7636,6 +8031,10 @@ function MapViewPattern({
7636
8031
  );
7637
8032
  }
7638
8033
  MapViewPattern.displayName = "MapViewPattern";
8034
+
8035
+ // components/molecules/game/ActionButtons.tsx
8036
+ init_cn();
8037
+ init_useEventBus();
7639
8038
  var sizeMap14 = {
7640
8039
  sm: "sm",
7641
8040
  md: "md",
@@ -7755,6 +8154,10 @@ function ActionButtons({
7755
8154
  )) });
7756
8155
  }
7757
8156
  ActionButtons.displayName = "ActionButtons";
8157
+
8158
+ // components/organisms/game/puzzles/sequencer/ActionPalette.tsx
8159
+ init_cn();
8160
+ init_cn();
7758
8161
  var DRAG_MIME = "application/x-almadar-slot-item";
7759
8162
  var SIZE_CONFIG = {
7760
8163
  sm: { px: "px-2 py-1", icon: "text-lg", text: "text-xs" },
@@ -7828,6 +8231,10 @@ function ActionPalette({
7828
8231
  ] });
7829
8232
  }
7830
8233
  ActionPalette.displayName = "ActionPalette";
8234
+
8235
+ // components/templates/AuthLayout.tsx
8236
+ init_cn();
8237
+ init_Typography();
7831
8238
  var AuthLayout = ({
7832
8239
  appName = "{{APP_TITLE}}",
7833
8240
  logo,
@@ -7959,6 +8366,20 @@ var AuthLayout = ({
7959
8366
  ] });
7960
8367
  };
7961
8368
  AuthLayout.displayName = "AuthLayout";
8369
+
8370
+ // components/organisms/game/BattleBoard.tsx
8371
+ init_cn();
8372
+ init_useEventBus();
8373
+ init_Typography();
8374
+
8375
+ // components/molecules/game/IsometricCanvas.tsx
8376
+ init_cn();
8377
+ init_useEventBus();
8378
+ init_Typography();
8379
+
8380
+ // components/molecules/LoadingState.tsx
8381
+ init_cn();
8382
+ init_Typography();
7962
8383
  var LoadingState = ({
7963
8384
  title,
7964
8385
  message,
@@ -9240,6 +9661,10 @@ function BattleTemplate({
9240
9661
  );
9241
9662
  }
9242
9663
  BattleTemplate.displayName = "BattleTemplate";
9664
+
9665
+ // components/organisms/book/BookChapterView.tsx
9666
+ init_Typography();
9667
+ init_cn();
9243
9668
  var MIN_DIAGRAM_WIDTH = 200;
9244
9669
  var ScaledDiagram = ({
9245
9670
  children,
@@ -9329,6 +9754,7 @@ var ScaledDiagram = ({
9329
9754
  );
9330
9755
  };
9331
9756
  ScaledDiagram.displayName = "ScaledDiagram";
9757
+ init_cn();
9332
9758
  var MarkdownContent = React114__default.memo(
9333
9759
  ({ content, direction, className }) => {
9334
9760
  const { t: _t } = useTranslate();
@@ -9431,6 +9857,7 @@ var MarkdownContent = React114__default.memo(
9431
9857
  (prev, next) => prev.content === next.content && prev.className === next.className && prev.direction === next.direction
9432
9858
  );
9433
9859
  MarkdownContent.displayName = "MarkdownContent";
9860
+ init_useEventBus();
9434
9861
  SyntaxHighlighter.registerLanguage("json", langJson);
9435
9862
  SyntaxHighlighter.registerLanguage("javascript", langJavascript);
9436
9863
  SyntaxHighlighter.registerLanguage("js", langJavascript);
@@ -9713,6 +10140,9 @@ var CodeBlock = React114__default.memo(
9713
10140
  (prev, next) => prev.language === next.language && prev.code === next.code && prev.showCopyButton === next.showCopyButton && prev.maxHeight === next.maxHeight && prev.foldable === next.foldable
9714
10141
  );
9715
10142
  CodeBlock.displayName = "CodeBlock";
10143
+
10144
+ // components/molecules/Card.tsx
10145
+ init_useEventBus();
9716
10146
  function Card2({
9717
10147
  title,
9718
10148
  subtitle,
@@ -9798,6 +10228,10 @@ function Card2({
9798
10228
  );
9799
10229
  }
9800
10230
  Card2.displayName = "Card";
10231
+
10232
+ // components/molecules/QuizBlock.tsx
10233
+ init_Typography();
10234
+ init_cn();
9801
10235
  var QuizBlock = ({
9802
10236
  question,
9803
10237
  answer,
@@ -9827,6 +10261,10 @@ var QuizBlock = ({
9827
10261
  ] }) });
9828
10262
  };
9829
10263
  QuizBlock.displayName = "QuizBlock";
10264
+ init_Typography();
10265
+ init_Typography();
10266
+ init_useEventBus();
10267
+ init_cn();
9830
10268
  var StateNode = ({ state, config }) => {
9831
10269
  const { t } = useTranslate();
9832
10270
  const size = state.radius * 2;
@@ -11061,6 +11499,9 @@ function gearTeethPath(cx, cy, innerRadius, outerRadius, numTeeth) {
11061
11499
  parts.push("Z");
11062
11500
  return parts.join(" ");
11063
11501
  }
11502
+
11503
+ // components/organisms/JazariStateMachine.tsx
11504
+ init_cn();
11064
11505
  var JAZARI_VISUALIZER_CONFIG = {
11065
11506
  ...DEFAULT_CONFIG,
11066
11507
  colors: {
@@ -11305,6 +11746,9 @@ function parseContentSegments(content) {
11305
11746
  }
11306
11747
  return segments;
11307
11748
  }
11749
+
11750
+ // components/organisms/ContentRenderer.tsx
11751
+ init_cn();
11308
11752
  var ContentRenderer = ({
11309
11753
  content,
11310
11754
  segments: segmentsProp,
@@ -11380,6 +11824,9 @@ var ContentRenderer = ({
11380
11824
  }) });
11381
11825
  };
11382
11826
  ContentRenderer.displayName = "ContentRenderer";
11827
+
11828
+ // components/organisms/book/BookChapterView.tsx
11829
+ init_cn();
11383
11830
  var BookChapterView = ({
11384
11831
  chapter,
11385
11832
  direction,
@@ -11408,6 +11855,10 @@ var BookChapterView = ({
11408
11855
  );
11409
11856
  };
11410
11857
  BookChapterView.displayName = "BookChapterView";
11858
+
11859
+ // components/organisms/book/BookCoverPage.tsx
11860
+ init_Typography();
11861
+ init_cn();
11411
11862
  var BookCoverPage = ({
11412
11863
  title,
11413
11864
  subtitle,
@@ -11476,6 +11927,8 @@ var BookCoverPage = ({
11476
11927
  );
11477
11928
  };
11478
11929
  BookCoverPage.displayName = "BookCoverPage";
11930
+ init_Typography();
11931
+ init_cn();
11479
11932
  var BookNavBar = ({
11480
11933
  currentPage,
11481
11934
  totalPages,
@@ -11566,6 +12019,10 @@ var BookNavBar = ({
11566
12019
  );
11567
12020
  };
11568
12021
  BookNavBar.displayName = "BookNavBar";
12022
+
12023
+ // components/organisms/book/BookTableOfContents.tsx
12024
+ init_Typography();
12025
+ init_cn();
11569
12026
  var BookTableOfContents = ({
11570
12027
  parts,
11571
12028
  currentChapterId,
@@ -11611,6 +12068,13 @@ var BookTableOfContents = ({
11611
12068
  );
11612
12069
  };
11613
12070
  BookTableOfContents.displayName = "BookTableOfContents";
12071
+ init_useEventBus();
12072
+ init_cn();
12073
+
12074
+ // components/molecules/EmptyState.tsx
12075
+ init_cn();
12076
+ init_Typography();
12077
+ init_useEventBus();
11614
12078
  var ICON_MAP = {
11615
12079
  "check-circle": CheckCircle,
11616
12080
  check: CheckCircle,
@@ -11908,6 +12372,9 @@ var BookViewer = ({
11908
12372
  ] });
11909
12373
  };
11910
12374
  BookViewer.displayName = "BookViewer";
12375
+
12376
+ // components/molecules/Grid.tsx
12377
+ init_cn();
11911
12378
  var colStyles2 = {
11912
12379
  none: "grid-cols-none",
11913
12380
  1: "grid-cols-1",
@@ -12143,6 +12610,9 @@ function DividerPattern({
12143
12610
  );
12144
12611
  }
12145
12612
  DividerPattern.displayName = "DividerPattern";
12613
+ init_Typography();
12614
+ init_cn();
12615
+ init_useEventBus();
12146
12616
  var Breadcrumb = ({
12147
12617
  items,
12148
12618
  separator = ChevronRight,
@@ -12227,6 +12697,7 @@ var Breadcrumb = ({
12227
12697
  );
12228
12698
  };
12229
12699
  Breadcrumb.displayName = "Breadcrumb";
12700
+ init_useEventBus();
12230
12701
  function BuilderBoard({
12231
12702
  entity,
12232
12703
  completeEvent = "PUZZLE_COMPLETE",
@@ -12377,6 +12848,10 @@ function BuilderBoard({
12377
12848
  );
12378
12849
  }
12379
12850
  BuilderBoard.displayName = "BuilderBoard";
12851
+
12852
+ // components/molecules/ButtonGroup.tsx
12853
+ init_cn();
12854
+ init_useEventBus();
12380
12855
  function useSafeEventBus2() {
12381
12856
  try {
12382
12857
  return useEventBus();
@@ -12481,6 +12956,11 @@ var ButtonGroup = ({
12481
12956
  );
12482
12957
  };
12483
12958
  ButtonGroup.displayName = "ButtonGroup";
12959
+
12960
+ // components/molecules/CalendarGrid.tsx
12961
+ init_cn();
12962
+ init_Typography();
12963
+ init_useEventBus();
12484
12964
  function getStartOfWeek(date) {
12485
12965
  const d = new Date(date);
12486
12966
  const day = d.getDay();
@@ -12672,6 +13152,10 @@ function CalendarGrid({
12672
13152
  }
12673
13153
  CalendarGrid.displayName = "CalendarGrid";
12674
13154
 
13155
+ // components/organisms/game/CanvasEffect.tsx
13156
+ init_cn();
13157
+ init_useEventBus();
13158
+
12675
13159
  // components/organisms/game/types/effects.ts
12676
13160
  var EMPTY_EFFECT_STATE = {
12677
13161
  particles: [],
@@ -13912,6 +14396,9 @@ function CanvasEffect(props) {
13912
14396
  }
13913
14397
  CanvasEffect.displayName = "CanvasEffect";
13914
14398
 
14399
+ // components/organisms/CardGrid.tsx
14400
+ init_cn();
14401
+
13915
14402
  // lib/getNestedValue.ts
13916
14403
  function getNestedValue(obj, path) {
13917
14404
  if (obj === null || obj === void 0 || !path) {
@@ -13933,6 +14420,13 @@ function getNestedValue(obj, path) {
13933
14420
  }
13934
14421
  return value;
13935
14422
  }
14423
+
14424
+ // components/organisms/CardGrid.tsx
14425
+ init_useEventBus();
14426
+ init_Typography();
14427
+ init_Typography();
14428
+ init_cn();
14429
+ init_useEventBus();
13936
14430
  var Pagination = ({
13937
14431
  currentPage,
13938
14432
  totalPages,
@@ -14327,6 +14821,10 @@ var CardGrid = ({
14327
14821
  ] });
14328
14822
  };
14329
14823
  CardGrid.displayName = "CardGrid";
14824
+
14825
+ // components/molecules/Carousel.tsx
14826
+ init_cn();
14827
+ init_useEventBus();
14330
14828
  function useSafeEventBus3() {
14331
14829
  try {
14332
14830
  return useEventBus();
@@ -14560,6 +15058,10 @@ var Carousel = ({
14560
15058
  ] });
14561
15059
  };
14562
15060
  Carousel.displayName = "Carousel";
15061
+
15062
+ // components/organisms/game/CastleBoard.tsx
15063
+ init_cn();
15064
+ init_useEventBus();
14563
15065
  function CastleBoard({
14564
15066
  entity,
14565
15067
  scale = 0.45,
@@ -14689,6 +15191,10 @@ function CastleTemplate({
14689
15191
  );
14690
15192
  }
14691
15193
  CastleTemplate.displayName = "CastleTemplate";
15194
+
15195
+ // components/organisms/Chart.tsx
15196
+ init_cn();
15197
+ init_useEventBus();
14692
15198
  var CHART_COLORS = [
14693
15199
  "var(--color-primary)",
14694
15200
  "var(--color-success)",
@@ -14943,6 +15449,9 @@ var Chart = ({
14943
15449
  ] }) });
14944
15450
  };
14945
15451
  Chart.displayName = "Chart";
15452
+
15453
+ // components/molecules/ChartLegend.tsx
15454
+ init_cn();
14946
15455
  var ChartLegend = ({
14947
15456
  items,
14948
15457
  className,
@@ -14965,6 +15474,7 @@ var ChartLegend = ({
14965
15474
  ] }, item.label)) });
14966
15475
  };
14967
15476
  ChartLegend.displayName = "ChartLegend";
15477
+ init_useEventBus();
14968
15478
  function ClassifierBoard({
14969
15479
  entity,
14970
15480
  completeEvent = "PUZZLE_COMPLETE",
@@ -15104,6 +15614,7 @@ function ClassifierBoard({
15104
15614
  );
15105
15615
  }
15106
15616
  ClassifierBoard.displayName = "ClassifierBoard";
15617
+ init_cn();
15107
15618
  function CodeView({
15108
15619
  data,
15109
15620
  label,
@@ -15129,6 +15640,12 @@ function CodeView({
15129
15640
  ] });
15130
15641
  }
15131
15642
  CodeView.displayName = "CodeView";
15643
+
15644
+ // components/organisms/CodeViewer.tsx
15645
+ init_cn();
15646
+ init_Typography();
15647
+ init_cn();
15648
+ init_useEventBus();
15132
15649
  var Tabs = ({
15133
15650
  items,
15134
15651
  tabs,
@@ -15260,6 +15777,9 @@ var Tabs = ({
15260
15777
  ] });
15261
15778
  };
15262
15779
  Tabs.displayName = "Tabs";
15780
+
15781
+ // components/organisms/CodeViewer.tsx
15782
+ init_useEventBus();
15263
15783
  function generateDiff(oldVal, newVal) {
15264
15784
  const oldLines = oldVal.split("\n");
15265
15785
  const newLines = newVal.split("\n");
@@ -15504,6 +16024,7 @@ var CodeViewer = ({
15504
16024
  ] }) });
15505
16025
  };
15506
16026
  CodeViewer.displayName = "CodeViewer";
16027
+ init_cn();
15507
16028
  var eventIcons = {
15508
16029
  attack: Sword,
15509
16030
  defend: Shield,
@@ -15584,6 +16105,8 @@ function CombatLog({
15584
16105
  ] });
15585
16106
  }
15586
16107
  CombatLog.displayName = "CombatLog";
16108
+ init_Typography();
16109
+ init_cn();
15587
16110
  var variantConfig = {
15588
16111
  danger: {
15589
16112
  icon: Trash2,
@@ -15687,6 +16210,10 @@ var ConfirmDialog = ({
15687
16210
  );
15688
16211
  };
15689
16212
  ConfirmDialog.displayName = "ConfirmDialog";
16213
+
16214
+ // components/templates/CounterTemplate.tsx
16215
+ init_cn();
16216
+ init_Typography();
15690
16217
  var sizeStyles8 = {
15691
16218
  sm: { display: "text-4xl", button: "sm" },
15692
16219
  md: { display: "text-6xl", button: "md" },
@@ -15888,6 +16415,10 @@ var CounterTemplate = (props) => {
15888
16415
  }
15889
16416
  };
15890
16417
  CounterTemplate.displayName = "CounterTemplate";
16418
+
16419
+ // components/molecules/game/CraftingRecipe.tsx
16420
+ init_cn();
16421
+ init_useEventBus();
15891
16422
  var rarityValues = ["common", "uncommon", "rare", "epic", "legendary"];
15892
16423
  function isValidRarity(value) {
15893
16424
  if (!value) return false;
@@ -15958,6 +16489,11 @@ function CraftingRecipe({
15958
16489
  );
15959
16490
  }
15960
16491
  CraftingRecipe.displayName = "CraftingRecipe";
16492
+
16493
+ // components/organisms/CustomPattern.tsx
16494
+ init_useEventBus();
16495
+ init_cn();
16496
+ init_Typography();
15961
16497
  var ALLOWED_CUSTOM_COMPONENTS = [
15962
16498
  "div",
15963
16499
  "span",
@@ -16177,6 +16713,10 @@ function CustomPattern({
16177
16713
  }
16178
16714
  }
16179
16715
  CustomPattern.displayName = "CustomPattern";
16716
+
16717
+ // components/molecules/game/DPad.tsx
16718
+ init_cn();
16719
+ init_useEventBus();
16180
16720
  var sizeMap15 = {
16181
16721
  sm: { button: "sm", gap: "gap-0.5", container: "w-28" },
16182
16722
  md: { button: "md", gap: "gap-1", container: "w-40" },
@@ -16245,6 +16785,9 @@ function DPad({
16245
16785
  ] });
16246
16786
  }
16247
16787
  DPad.displayName = "DPad";
16788
+
16789
+ // components/organisms/layout/DashboardGrid.tsx
16790
+ init_cn();
16248
16791
  var gapStyles5 = {
16249
16792
  sm: "gap-2",
16250
16793
  md: "gap-4",
@@ -16297,6 +16840,10 @@ var DashboardGrid = ({
16297
16840
  );
16298
16841
  };
16299
16842
  DashboardGrid.displayName = "DashboardGrid";
16843
+
16844
+ // components/templates/DashboardLayout.tsx
16845
+ init_cn();
16846
+ init_Typography();
16300
16847
  var DashboardLayout = ({
16301
16848
  appName = "{{APP_TITLE}}",
16302
16849
  logo,
@@ -16590,6 +17137,11 @@ var NavLink = ({
16590
17137
  );
16591
17138
  };
16592
17139
  NavLink.displayName = "NavLink";
17140
+
17141
+ // components/molecules/DataGrid.tsx
17142
+ init_cn();
17143
+ init_useEventBus();
17144
+ init_Typography();
16593
17145
  function fieldLabel2(key) {
16594
17146
  return key.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/[_-]/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
16595
17147
  }
@@ -16909,6 +17461,11 @@ var DataGrid = ({
16909
17461
  ] });
16910
17462
  };
16911
17463
  DataGrid.displayName = "DataGrid";
17464
+
17465
+ // components/molecules/DataList.tsx
17466
+ init_cn();
17467
+ init_useEventBus();
17468
+ init_Typography();
16912
17469
  function fieldLabel3(key) {
16913
17470
  return key.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/[_-]/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
16914
17471
  }
@@ -17258,6 +17815,14 @@ var DataList = ({
17258
17815
  );
17259
17816
  };
17260
17817
  DataList.displayName = "DataList";
17818
+
17819
+ // components/organisms/DataTable.tsx
17820
+ init_cn();
17821
+ init_Typography();
17822
+
17823
+ // components/molecules/FormField.tsx
17824
+ init_cn();
17825
+ init_Typography();
17261
17826
  var FormField = ({
17262
17827
  label,
17263
17828
  required,
@@ -17274,6 +17839,10 @@ var FormField = ({
17274
17839
  ] });
17275
17840
  };
17276
17841
  FormField.displayName = "FormField";
17842
+
17843
+ // components/molecules/FilterGroup.tsx
17844
+ init_cn();
17845
+ init_useEventBus();
17277
17846
  var resolveFilterType = (filter) => filter.filterType ?? filter.type;
17278
17847
  var FilterGroup = ({
17279
17848
  entity,
@@ -17649,6 +18218,9 @@ var FilterGroup = ({
17649
18218
  );
17650
18219
  };
17651
18220
  FilterGroup.displayName = "FilterGroup";
18221
+
18222
+ // components/molecules/Flex.tsx
18223
+ init_cn();
17652
18224
  var directionStyles = {
17653
18225
  row: "flex-row",
17654
18226
  "row-reverse": "flex-row-reverse",
@@ -17727,6 +18299,10 @@ var Flex = ({
17727
18299
  );
17728
18300
  };
17729
18301
  Flex.displayName = "Flex";
18302
+
18303
+ // components/molecules/InputGroup.tsx
18304
+ init_Typography();
18305
+ init_cn();
17730
18306
  var InputGroup = ({
17731
18307
  leftAddon,
17732
18308
  rightAddon,
@@ -17782,6 +18358,10 @@ var InputGroup = ({
17782
18358
  };
17783
18359
  InputGroup.displayName = "InputGroup";
17784
18360
 
18361
+ // components/molecules/RelationSelect.tsx
18362
+ init_cn();
18363
+ init_Typography();
18364
+
17785
18365
  // lib/debug.ts
17786
18366
  var DEBUG_ENABLED = typeof window !== "undefined" && (localStorage.getItem("debug") === "true" || process.env.NODE_ENV === "development");
17787
18367
  function isDebugEnabled() {
@@ -18012,6 +18592,8 @@ var RelationSelect = ({
18012
18592
  ] });
18013
18593
  };
18014
18594
  RelationSelect.displayName = "RelationSelect";
18595
+ init_cn();
18596
+ init_useEventBus();
18015
18597
  var SearchInput = ({
18016
18598
  value,
18017
18599
  onSearch,
@@ -18102,6 +18684,9 @@ var SearchInput = ({
18102
18684
  ] });
18103
18685
  };
18104
18686
  SearchInput.displayName = "SearchInput";
18687
+ init_Typography();
18688
+ init_cn();
18689
+ init_useEventBus();
18105
18690
  var SidePanel = ({
18106
18691
  title,
18107
18692
  children,
@@ -18163,6 +18748,11 @@ var SidePanel = ({
18163
18748
  ] });
18164
18749
  };
18165
18750
  SidePanel.displayName = "SidePanel";
18751
+
18752
+ // components/molecules/WizardProgress.tsx
18753
+ init_Typography();
18754
+ init_cn();
18755
+ init_useEventBus();
18166
18756
  var WizardProgress = ({
18167
18757
  steps,
18168
18758
  currentStep,
@@ -18242,6 +18832,9 @@ var WizardProgress = ({
18242
18832
  );
18243
18833
  };
18244
18834
  WizardProgress.displayName = "WizardProgress";
18835
+ init_Typography();
18836
+ init_cn();
18837
+ init_useEventBus();
18245
18838
  function useSafeEventBus4() {
18246
18839
  try {
18247
18840
  return useEventBus();
@@ -18323,6 +18916,11 @@ var WizardNavigation = ({
18323
18916
  );
18324
18917
  };
18325
18918
  WizardNavigation.displayName = "WizardNavigation";
18919
+
18920
+ // components/molecules/RepeatableFormSection.tsx
18921
+ init_cn();
18922
+ init_Typography();
18923
+ init_useEventBus();
18326
18924
  var RepeatableFormSection = ({
18327
18925
  sectionType,
18328
18926
  title,
@@ -18447,6 +19045,10 @@ var RepeatableFormSection = ({
18447
19045
  ] });
18448
19046
  };
18449
19047
  RepeatableFormSection.displayName = "RepeatableFormSection";
19048
+
19049
+ // components/molecules/ViolationAlert.tsx
19050
+ init_cn();
19051
+ init_Typography();
18450
19052
  var actionTypeLabels = {
18451
19053
  measure: "Corrective Measure",
18452
19054
  admin: "Administrative Action",
@@ -18639,6 +19241,10 @@ var ViolationAlert = ({
18639
19241
  );
18640
19242
  };
18641
19243
  ViolationAlert.displayName = "ViolationAlert";
19244
+
19245
+ // components/molecules/FormSectionHeader.tsx
19246
+ init_cn();
19247
+ init_Typography();
18642
19248
  var FormSectionHeader = ({
18643
19249
  title,
18644
19250
  subtitle,
@@ -18705,6 +19311,9 @@ var FormSectionHeader = ({
18705
19311
  );
18706
19312
  };
18707
19313
  FormSectionHeader.displayName = "FormSectionHeader";
19314
+
19315
+ // components/molecules/FlipCard.tsx
19316
+ init_cn();
18708
19317
  var FlipCard = ({
18709
19318
  front,
18710
19319
  back,
@@ -18741,6 +19350,9 @@ var FlipCard = ({
18741
19350
  );
18742
19351
  };
18743
19352
  FlipCard.displayName = "FlipCard";
19353
+
19354
+ // components/molecules/DateRangeSelector.tsx
19355
+ init_cn();
18744
19356
  var DEFAULT_OPTIONS = [
18745
19357
  { label: "1W", value: "week" },
18746
19358
  { label: "1M", value: "month" },
@@ -18765,6 +19377,9 @@ var DateRangeSelector = ({
18765
19377
  )) });
18766
19378
  };
18767
19379
  DateRangeSelector.displayName = "DateRangeSelector";
19380
+
19381
+ // components/molecules/LineChart.tsx
19382
+ init_cn();
18768
19383
  var LineChart2 = ({
18769
19384
  data,
18770
19385
  width = 400,
@@ -18872,6 +19487,9 @@ var LineChart2 = ({
18872
19487
  ) });
18873
19488
  };
18874
19489
  LineChart2.displayName = "LineChart";
19490
+
19491
+ // components/molecules/ProgressDots.tsx
19492
+ init_cn();
18875
19493
  var sizeMap16 = {
18876
19494
  sm: { dot: 6, active: 8 },
18877
19495
  md: { dot: 8, active: 10 },
@@ -18923,6 +19541,9 @@ var ProgressDots = ({
18923
19541
  }) });
18924
19542
  };
18925
19543
  ProgressDots.displayName = "ProgressDots";
19544
+
19545
+ // components/molecules/game/StatBadge.tsx
19546
+ init_cn();
18926
19547
  var sizeMap17 = {
18927
19548
  sm: "text-xs px-2 py-1",
18928
19549
  md: "text-sm px-3 py-1.5",
@@ -18996,6 +19617,10 @@ function StatBadge({
18996
19617
  );
18997
19618
  }
18998
19619
  StatBadge.displayName = "StatBadge";
19620
+
19621
+ // components/molecules/game/InventoryGrid.tsx
19622
+ init_cn();
19623
+ init_useEventBus();
18999
19624
  var columnMap = {
19000
19625
  2: "grid-cols-2",
19001
19626
  3: "grid-cols-3",
@@ -19059,6 +19684,10 @@ function InventoryGrid({
19059
19684
  );
19060
19685
  }
19061
19686
  InventoryGrid.displayName = "InventoryGrid";
19687
+
19688
+ // components/molecules/game/QuestTracker.tsx
19689
+ init_cn();
19690
+ init_Typography();
19062
19691
  function QuestTracker({
19063
19692
  quests,
19064
19693
  activeQuestId,
@@ -19128,6 +19757,10 @@ function QuestTracker({
19128
19757
  }) });
19129
19758
  }
19130
19759
  QuestTracker.displayName = "QuestTracker";
19760
+
19761
+ // components/molecules/game/PowerupSlots.tsx
19762
+ init_cn();
19763
+ init_Typography();
19131
19764
  function formatTime2(seconds) {
19132
19765
  if (seconds >= 60) {
19133
19766
  const mins = Math.floor(seconds / 60);
@@ -19183,6 +19816,9 @@ function PowerupSlots({
19183
19816
  ] });
19184
19817
  }
19185
19818
  PowerupSlots.displayName = "PowerupSlots";
19819
+
19820
+ // components/molecules/game/GameCanvas2D.tsx
19821
+ init_cn();
19186
19822
  function GameCanvas2D({
19187
19823
  width = 800,
19188
19824
  height = 600,
@@ -19238,6 +19874,10 @@ function GameCanvas2D({
19238
19874
  ) });
19239
19875
  }
19240
19876
  GameCanvas2D.displayName = "GameCanvas2D";
19877
+
19878
+ // components/molecules/game/HealthPanel.tsx
19879
+ init_cn();
19880
+ init_Typography();
19241
19881
  var sizeMap18 = {
19242
19882
  sm: { gap: "gap-1", padding: "px-2 py-1.5", text: "text-xs", barSize: "sm" },
19243
19883
  md: { gap: "gap-1.5", padding: "px-3 py-2", text: "text-sm", barSize: "md" },
@@ -19348,6 +19988,9 @@ function HealthPanel({
19348
19988
  );
19349
19989
  }
19350
19990
  HealthPanel.displayName = "HealthPanel";
19991
+
19992
+ // components/molecules/game/ScoreBoard.tsx
19993
+ init_cn();
19351
19994
  function ScoreBoard({
19352
19995
  score: rawScore,
19353
19996
  highScore: rawHighScore,
@@ -19415,6 +20058,9 @@ function ScoreBoard({
19415
20058
  );
19416
20059
  }
19417
20060
  ScoreBoard.displayName = "ScoreBoard";
20061
+
20062
+ // components/molecules/game/ResourceBar.tsx
20063
+ init_cn();
19418
20064
  function ResourceBar({
19419
20065
  resources,
19420
20066
  size = "md",
@@ -19443,6 +20089,10 @@ function ResourceBar({
19443
20089
  );
19444
20090
  }
19445
20091
  ResourceBar.displayName = "ResourceBar";
20092
+
20093
+ // components/molecules/game/TurnPanel.tsx
20094
+ init_cn();
20095
+ init_useEventBus();
19446
20096
  function TurnPanel({
19447
20097
  currentTurn,
19448
20098
  maxTurns,
@@ -19494,6 +20144,10 @@ function TurnPanel({
19494
20144
  );
19495
20145
  }
19496
20146
  TurnPanel.displayName = "TurnPanel";
20147
+
20148
+ // components/molecules/game/EnemyPlate.tsx
20149
+ init_cn();
20150
+ init_Typography();
19497
20151
  var effectVariantMap2 = {
19498
20152
  buff: "success",
19499
20153
  debuff: "danger",
@@ -19571,6 +20225,11 @@ function EnemyPlate({
19571
20225
  );
19572
20226
  }
19573
20227
  EnemyPlate.displayName = "EnemyPlate";
20228
+
20229
+ // components/molecules/game/UnitCommandBar.tsx
20230
+ init_cn();
20231
+ init_Typography();
20232
+ init_useEventBus();
19574
20233
  function UnitCommandBar({
19575
20234
  commands,
19576
20235
  selectedUnitId,
@@ -19617,6 +20276,9 @@ function UnitCommandBar({
19617
20276
  );
19618
20277
  }
19619
20278
  UnitCommandBar.displayName = "UnitCommandBar";
20279
+
20280
+ // components/molecules/game/GameHud.tsx
20281
+ init_cn();
19620
20282
  var positionMap = {
19621
20283
  top: "top-0 left-0 right-0 flex justify-between items-start p-4",
19622
20284
  bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
@@ -19678,6 +20340,10 @@ function GameHud({
19678
20340
  );
19679
20341
  }
19680
20342
  GameHud.displayName = "GameHud";
20343
+
20344
+ // components/molecules/game/DialogueBox.tsx
20345
+ init_cn();
20346
+ init_useEventBus();
19681
20347
  function DialogueBox({
19682
20348
  dialogue,
19683
20349
  typewriterSpeed = 30,
@@ -19862,6 +20528,10 @@ function DialogueBox({
19862
20528
  }
19863
20529
  );
19864
20530
  }
20531
+
20532
+ // components/molecules/game/InventoryPanel.tsx
20533
+ init_cn();
20534
+ init_useEventBus();
19865
20535
  function InventoryPanel({
19866
20536
  items,
19867
20537
  slots,
@@ -20013,6 +20683,10 @@ function InventoryPanel({
20013
20683
  )
20014
20684
  ] });
20015
20685
  }
20686
+
20687
+ // components/molecules/game/GameMenu.tsx
20688
+ init_cn();
20689
+ init_useEventBus();
20016
20690
  var variantMap3 = {
20017
20691
  primary: "bg-[var(--color-primary)] hover:bg-blue-500 text-[var(--color-primary-foreground)] border-blue-400 shadow-lg shadow-blue-500/25",
20018
20692
  secondary: "bg-[var(--color-surface,#374151)] hover:bg-gray-600 text-[var(--color-foreground)] border-gray-500",
@@ -20111,6 +20785,10 @@ function GameMenu({
20111
20785
  );
20112
20786
  }
20113
20787
  GameMenu.displayName = "GameMenu";
20788
+
20789
+ // components/molecules/game/GameOverScreen.tsx
20790
+ init_cn();
20791
+ init_useEventBus();
20114
20792
  var variantColors = {
20115
20793
  victory: {
20116
20794
  bg: "from-green-900/90 to-emerald-950/90",
@@ -20240,6 +20918,10 @@ function GameOverScreen({
20240
20918
  );
20241
20919
  }
20242
20920
  GameOverScreen.displayName = "GameOverScreen";
20921
+
20922
+ // components/molecules/game/PlatformerCanvas.tsx
20923
+ init_cn();
20924
+ init_useEventBus();
20243
20925
  var PLATFORM_COLORS = {
20244
20926
  ground: "#4a7c59",
20245
20927
  platform: "#7c6b4a",
@@ -20487,6 +21169,9 @@ function PlatformerCanvas({
20487
21169
  );
20488
21170
  }
20489
21171
  PlatformerCanvas.displayName = "PlatformerCanvas";
21172
+
21173
+ // components/molecules/GraphView.tsx
21174
+ init_cn();
20490
21175
  var GROUP_COLORS = [
20491
21176
  "#3b82f6",
20492
21177
  // blue-500
@@ -20800,6 +21485,10 @@ var GraphView = ({
20800
21485
  );
20801
21486
  };
20802
21487
  GraphView.displayName = "GraphView";
21488
+
21489
+ // components/molecules/NumberStepper.tsx
21490
+ init_cn();
21491
+ init_useEventBus();
20803
21492
  function useSafeEventBus5() {
20804
21493
  try {
20805
21494
  return useEventBus();
@@ -20976,6 +21665,10 @@ var NumberStepper = ({
20976
21665
  );
20977
21666
  };
20978
21667
  NumberStepper.displayName = "NumberStepper";
21668
+
21669
+ // components/molecules/StarRating.tsx
21670
+ init_cn();
21671
+ init_useEventBus();
20979
21672
  function useSafeEventBus6() {
20980
21673
  try {
20981
21674
  return useEventBus();
@@ -21113,6 +21806,11 @@ var StarRating = ({
21113
21806
  );
21114
21807
  };
21115
21808
  StarRating.displayName = "StarRating";
21809
+
21810
+ // components/molecules/UploadDropZone.tsx
21811
+ init_cn();
21812
+ init_Typography();
21813
+ init_useEventBus();
21116
21814
  function useSafeEventBus7() {
21117
21815
  try {
21118
21816
  return useEventBus();
@@ -21273,6 +21971,10 @@ var UploadDropZone = ({
21273
21971
  );
21274
21972
  };
21275
21973
  UploadDropZone.displayName = "UploadDropZone";
21974
+
21975
+ // components/molecules/Lightbox.tsx
21976
+ init_cn();
21977
+ init_useEventBus();
21276
21978
  function useSafeEventBus8() {
21277
21979
  try {
21278
21980
  return useEventBus();
@@ -21460,6 +22162,10 @@ var Lightbox = ({
21460
22162
  );
21461
22163
  };
21462
22164
  Lightbox.displayName = "Lightbox";
22165
+
22166
+ // components/molecules/StatDisplay.tsx
22167
+ init_cn();
22168
+ init_Typography();
21463
22169
  function formatValue3(value, format, max) {
21464
22170
  if (value == null) return "0";
21465
22171
  const v = typeof value === "number" ? value : value;
@@ -21534,6 +22240,10 @@ var StatDisplay = ({
21534
22240
  ] }) });
21535
22241
  };
21536
22242
  StatDisplay.displayName = "StatDisplay";
22243
+
22244
+ // components/molecules/Meter.tsx
22245
+ init_cn();
22246
+ init_useEventBus();
21537
22247
  var DEFAULT_THRESHOLDS = [
21538
22248
  { value: 30, color: "var(--color-error)" },
21539
22249
  { value: 70, color: "var(--color-warning)" },
@@ -21737,6 +22447,10 @@ var Meter = ({
21737
22447
  ] }) });
21738
22448
  };
21739
22449
  Meter.displayName = "Meter";
22450
+
22451
+ // components/molecules/SwipeableRow.tsx
22452
+ init_cn();
22453
+ init_useEventBus();
21740
22454
  function useSafeEventBus9() {
21741
22455
  try {
21742
22456
  return useEventBus();
@@ -21908,6 +22622,10 @@ var SwipeableRow = ({
21908
22622
  );
21909
22623
  };
21910
22624
  SwipeableRow.displayName = "SwipeableRow";
22625
+
22626
+ // components/molecules/SortableList.tsx
22627
+ init_cn();
22628
+ init_useEventBus();
21911
22629
  var EMPTY_ITEMS = [];
21912
22630
  function useSafeEventBus10() {
21913
22631
  try {
@@ -22004,6 +22722,10 @@ function SortableListInner({
22004
22722
  }
22005
22723
  var SortableList = SortableListInner;
22006
22724
  SortableList.displayName = "SortableList";
22725
+
22726
+ // components/molecules/PullToRefresh.tsx
22727
+ init_cn();
22728
+ init_useEventBus();
22007
22729
  function useSafeEventBus11() {
22008
22730
  try {
22009
22731
  return useEventBus();
@@ -22105,6 +22827,87 @@ var PullToRefresh = ({
22105
22827
  };
22106
22828
  PullToRefresh.displayName = "PullToRefresh";
22107
22829
 
22830
+ // components/molecules/InstallBox.tsx
22831
+ init_cn();
22832
+ init_Typography();
22833
+
22834
+ // components/molecules/FeatureCard.tsx
22835
+ init_cn();
22836
+ init_Typography();
22837
+
22838
+ // components/molecules/FeatureGrid.tsx
22839
+ init_cn();
22840
+
22841
+ // components/molecules/CTABanner.tsx
22842
+ init_cn();
22843
+ init_Typography();
22844
+
22845
+ // components/molecules/HeroSection.tsx
22846
+ init_cn();
22847
+ init_Typography();
22848
+
22849
+ // components/molecules/PricingCard.tsx
22850
+ init_cn();
22851
+ init_Typography();
22852
+
22853
+ // components/molecules/PricingGrid.tsx
22854
+ init_cn();
22855
+
22856
+ // components/molecules/StatsGrid.tsx
22857
+ init_cn();
22858
+ init_Typography();
22859
+
22860
+ // components/molecules/ServiceCatalog.tsx
22861
+ init_cn();
22862
+ init_Typography();
22863
+
22864
+ // components/molecules/CaseStudyCard.tsx
22865
+ init_cn();
22866
+ init_Typography();
22867
+
22868
+ // components/molecules/ArticleSection.tsx
22869
+ init_cn();
22870
+ init_Typography();
22871
+
22872
+ // components/molecules/CodeExample.tsx
22873
+ init_cn();
22874
+ init_Typography();
22875
+
22876
+ // components/molecules/SocialProof.tsx
22877
+ init_cn();
22878
+ init_Typography();
22879
+
22880
+ // components/molecules/StepFlow.tsx
22881
+ init_cn();
22882
+ init_Typography();
22883
+
22884
+ // components/molecules/SplitSection.tsx
22885
+ init_cn();
22886
+ init_Typography();
22887
+
22888
+ // components/molecules/TagCloud.tsx
22889
+ init_cn();
22890
+
22891
+ // components/molecules/CommunityLinks.tsx
22892
+ init_Typography();
22893
+
22894
+ // components/molecules/TeamCard.tsx
22895
+ init_cn();
22896
+ init_Typography();
22897
+
22898
+ // components/molecules/ShowcaseCard.tsx
22899
+ init_cn();
22900
+ init_Typography();
22901
+
22902
+ // components/molecules/GeometricPattern.tsx
22903
+ init_cn();
22904
+
22905
+ // components/molecules/EdgeDecoration.tsx
22906
+ init_cn();
22907
+
22908
+ // components/organisms/DataTable.tsx
22909
+ init_useEventBus();
22910
+
22108
22911
  // components/organisms/types.ts
22109
22912
  var EntityDisplayEvents = {
22110
22913
  SORT: "SORT",
@@ -22512,6 +23315,7 @@ function DataTable({
22512
23315
  );
22513
23316
  }
22514
23317
  DataTable.displayName = "DataTable";
23318
+ init_useEventBus();
22515
23319
  function DebuggerBoard({
22516
23320
  entity,
22517
23321
  completeEvent = "PUZZLE_COMPLETE",
@@ -22642,6 +23446,8 @@ function DebuggerBoard({
22642
23446
  );
22643
23447
  }
22644
23448
  DebuggerBoard.displayName = "DebuggerBoard";
23449
+ init_cn();
23450
+ init_useEventBus();
22645
23451
  function getFieldIcon(fieldName) {
22646
23452
  const name = fieldName.toLowerCase();
22647
23453
  if (name.includes("date") || name.includes("time")) return Calendar;
@@ -23073,6 +23879,10 @@ var DetailPanel = ({
23073
23879
  );
23074
23880
  };
23075
23881
  DetailPanel.displayName = "DetailPanel";
23882
+
23883
+ // components/organisms/DocumentViewer.tsx
23884
+ init_cn();
23885
+ init_useEventBus();
23076
23886
  var DocumentViewer = ({
23077
23887
  title,
23078
23888
  src,
@@ -23258,6 +24068,7 @@ var DocumentViewer = ({
23258
24068
  ] }) });
23259
24069
  };
23260
24070
  DocumentViewer.displayName = "DocumentViewer";
24071
+ init_useEventBus();
23261
24072
  function extractTitle(children) {
23262
24073
  if (!React114__default.isValidElement(children)) return void 0;
23263
24074
  const props = children.props;
@@ -23295,6 +24106,12 @@ var DrawerSlot = ({
23295
24106
  );
23296
24107
  };
23297
24108
  DrawerSlot.displayName = "DrawerSlot";
24109
+ init_cn();
24110
+ init_useEventBus();
24111
+
24112
+ // components/organisms/game/TraitStateViewer.tsx
24113
+ init_cn();
24114
+ init_Typography();
23298
24115
  var SIZE_CONFIG2 = {
23299
24116
  sm: { nodeSize: "min-w-12 h-8", fontSize: "text-xs", gap: "gap-2" },
23300
24117
  md: { nodeSize: "min-w-16 h-10", fontSize: "text-sm", gap: "gap-4" },
@@ -23507,6 +24324,8 @@ function TraitStateViewer({
23507
24324
  }
23508
24325
  }
23509
24326
  TraitStateViewer.displayName = "TraitStateViewer";
24327
+ init_cn();
24328
+ init_cn();
23510
24329
  function RuleEditor({
23511
24330
  rule,
23512
24331
  availableEvents,
@@ -23618,6 +24437,7 @@ function ObjectRulePanel({
23618
24437
  ] });
23619
24438
  }
23620
24439
  ObjectRulePanel.displayName = "ObjectRulePanel";
24440
+ init_cn();
23621
24441
  var STATUS_STYLES = {
23622
24442
  pending: "text-muted-foreground",
23623
24443
  active: "text-primary animate-pulse",
@@ -23860,6 +24680,11 @@ function EventHandlerBoard({
23860
24680
  );
23861
24681
  }
23862
24682
  EventHandlerBoard.displayName = "EventHandlerBoard";
24683
+
24684
+ // components/organisms/Form.tsx
24685
+ init_cn();
24686
+ init_Typography();
24687
+ init_useEventBus();
23863
24688
  function toSharedContext2(formCtx) {
23864
24689
  return createMinimalContext(
23865
24690
  {
@@ -24420,6 +25245,9 @@ function formatDateTimeValue(value) {
24420
25245
  return "";
24421
25246
  }
24422
25247
  Form.displayName = "Form";
25248
+
25249
+ // components/organisms/game/GameAudioProvider.tsx
25250
+ init_useEventBus();
24423
25251
  function pickPath(entry) {
24424
25252
  if (Array.isArray(entry.path)) {
24425
25253
  return entry.path[Math.floor(Math.random() * entry.path.length)];
@@ -24734,6 +25562,7 @@ function GameAudioProvider({
24734
25562
  return /* @__PURE__ */ jsx(GameAudioContext.Provider, { value, children });
24735
25563
  }
24736
25564
  GameAudioProvider.displayName = "GameAudioProvider";
25565
+ init_cn();
24737
25566
  function GameAudioToggle({
24738
25567
  size = "sm",
24739
25568
  className
@@ -24755,6 +25584,10 @@ function GameAudioToggle({
24755
25584
  );
24756
25585
  }
24757
25586
  GameAudioToggle.displayName = "GameAudioToggle";
25587
+
25588
+ // components/templates/GameShell.tsx
25589
+ init_cn();
25590
+ init_Typography();
24758
25591
  var GameShell = ({
24759
25592
  appName = "Game",
24760
25593
  hud,
@@ -24824,6 +25657,10 @@ var GameShell = ({
24824
25657
  );
24825
25658
  };
24826
25659
  GameShell.displayName = "GameShell";
25660
+
25661
+ // components/templates/GameTemplate.tsx
25662
+ init_cn();
25663
+ init_Typography();
24827
25664
  var GameTemplate = ({
24828
25665
  entity,
24829
25666
  title = "Game",
@@ -24931,6 +25768,10 @@ var GameTemplate = ({
24931
25768
  );
24932
25769
  };
24933
25770
  GameTemplate.displayName = "GameTemplate";
25771
+
25772
+ // components/templates/GenericAppTemplate.tsx
25773
+ init_cn();
25774
+ init_Typography();
24934
25775
  var GenericAppTemplate = ({
24935
25776
  entity,
24936
25777
  title,
@@ -24970,6 +25811,10 @@ var GenericAppTemplate = ({
24970
25811
  ] });
24971
25812
  };
24972
25813
  GenericAppTemplate.displayName = "GenericAppTemplate";
25814
+
25815
+ // components/organisms/GraphCanvas.tsx
25816
+ init_cn();
25817
+ init_useEventBus();
24973
25818
  var GROUP_COLORS2 = [
24974
25819
  "var(--color-primary)",
24975
25820
  "var(--color-success)",
@@ -25271,6 +26116,8 @@ var GraphCanvas = ({
25271
26116
  ] }) });
25272
26117
  };
25273
26118
  GraphCanvas.displayName = "GraphCanvas";
26119
+ init_Typography();
26120
+ init_cn();
25274
26121
  var Header = ({
25275
26122
  logo,
25276
26123
  logoSrc,
@@ -25395,6 +26242,8 @@ var Header = ({
25395
26242
  );
25396
26243
  };
25397
26244
  Header.displayName = "Header";
26245
+ init_cn();
26246
+ init_useEventBus();
25398
26247
  function normalizeFields2(fields) {
25399
26248
  if (!fields) return [];
25400
26249
  return fields.map((f3) => typeof f3 === "string" ? f3 : f3.key ?? f3.name ?? "");
@@ -25913,6 +26762,10 @@ var List2 = ({
25913
26762
  );
25914
26763
  };
25915
26764
  List2.displayName = "List";
26765
+
26766
+ // components/organisms/layout/MasterDetail.tsx
26767
+ init_cn();
26768
+ init_Typography();
25916
26769
  var DefaultEmptyDetail = () => /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-full border-2 border-dashed border-border", children: /* @__PURE__ */ jsx(
25917
26770
  Typography,
25918
26771
  {
@@ -25957,6 +26810,10 @@ var MasterDetail = ({
25957
26810
  );
25958
26811
  };
25959
26812
  MasterDetail.displayName = "MasterDetail";
26813
+
26814
+ // components/organisms/MediaGallery.tsx
26815
+ init_cn();
26816
+ init_useEventBus();
25960
26817
  var COLUMN_CLASSES = {
25961
26818
  2: "grid-cols-2",
25962
26819
  3: "grid-cols-2 sm:grid-cols-3",
@@ -26164,6 +27021,7 @@ var MediaGallery = ({
26164
27021
  ] });
26165
27022
  };
26166
27023
  MediaGallery.displayName = "MediaGallery";
27024
+ init_useEventBus();
26167
27025
  function extractTitle2(children) {
26168
27026
  if (!React114__default.isValidElement(children)) return void 0;
26169
27027
  const props = children.props;
@@ -26199,6 +27057,9 @@ var ModalSlot = ({
26199
27057
  );
26200
27058
  };
26201
27059
  ModalSlot.displayName = "ModalSlot";
27060
+
27061
+ // components/organisms/Navigation.tsx
27062
+ init_cn();
26202
27063
  var Navigation = ({
26203
27064
  items,
26204
27065
  orientation = "horizontal",
@@ -26271,6 +27132,7 @@ var Navigation = ({
26271
27132
  );
26272
27133
  };
26273
27134
  Navigation.displayName = "Navigation";
27135
+ init_useEventBus();
26274
27136
  function getOpponentAction(strategy, actions, history) {
26275
27137
  const actionIds = actions.map((a) => a.id);
26276
27138
  switch (strategy) {
@@ -26417,6 +27279,8 @@ function NegotiatorBoard({
26417
27279
  );
26418
27280
  }
26419
27281
  NegotiatorBoard.displayName = "NegotiatorBoard";
27282
+ init_Typography();
27283
+ init_cn();
26420
27284
  var ORBITAL_CONFIGS = {
26421
27285
  "1s": {
26422
27286
  type: "1s",
@@ -26797,6 +27661,11 @@ var OrbitalVisualization = ({
26797
27661
  );
26798
27662
  };
26799
27663
  OrbitalVisualization.displayName = "OrbitalVisualization";
27664
+
27665
+ // components/organisms/PageHeader.tsx
27666
+ init_cn();
27667
+ init_Typography();
27668
+ init_useEventBus();
26800
27669
  var PageHeader = ({
26801
27670
  title,
26802
27671
  subtitle,
@@ -26921,6 +27790,9 @@ var PageHeader = ({
26921
27790
  };
26922
27791
  PageHeader.displayName = "PageHeader";
26923
27792
 
27793
+ // components/organisms/debug/RuntimeDebugger.tsx
27794
+ init_cn();
27795
+
26924
27796
  // lib/tickRegistry.ts
26925
27797
  var ticks = /* @__PURE__ */ new Map();
26926
27798
  var listeners2 = /* @__PURE__ */ new Set();
@@ -27028,6 +27900,10 @@ function onDebugToggle(listener) {
27028
27900
  listeners5.add(listener);
27029
27901
  return () => listeners5.delete(listener);
27030
27902
  }
27903
+
27904
+ // components/organisms/debug/RuntimeDebugger.tsx
27905
+ init_Typography();
27906
+ init_Typography();
27031
27907
  function layoutGraph(states, transitions, initialState, width, height) {
27032
27908
  if (states.length === 0) return [];
27033
27909
  const layers = /* @__PURE__ */ new Map();
@@ -27276,6 +28152,9 @@ function WalkMinimap() {
27276
28152
  ] });
27277
28153
  }
27278
28154
  WalkMinimap.displayName = "WalkMinimap";
28155
+
28156
+ // components/organisms/debug/tabs/TraitsTab.tsx
28157
+ init_Typography();
27279
28158
  function TraitsTab({ traits: traits2 }) {
27280
28159
  if (traits2.length === 0) {
27281
28160
  return /* @__PURE__ */ jsx(
@@ -27341,6 +28220,9 @@ function TraitsTab({ traits: traits2 }) {
27341
28220
  return /* @__PURE__ */ jsx("div", { className: "debug-tab debug-tab--traits", children: /* @__PURE__ */ jsx(Accordion, { items: accordionItems, multiple: true }) });
27342
28221
  }
27343
28222
  TraitsTab.displayName = "TraitsTab";
28223
+
28224
+ // components/organisms/debug/tabs/TicksTab.tsx
28225
+ init_Typography();
27344
28226
  function TicksTab({ ticks: ticks2 }) {
27345
28227
  const activeTicks = ticks2.filter((t) => t.active);
27346
28228
  const inactiveTicks = ticks2.filter((t) => !t.active);
@@ -27408,6 +28290,9 @@ function TicksTab({ ticks: ticks2 }) {
27408
28290
  ] });
27409
28291
  }
27410
28292
  TicksTab.displayName = "TicksTab";
28293
+
28294
+ // components/organisms/debug/tabs/EntitiesTab.tsx
28295
+ init_Typography();
27411
28296
  function EntitiesTab({ snapshot }) {
27412
28297
  if (!snapshot) {
27413
28298
  return /* @__PURE__ */ jsx(
@@ -27483,6 +28368,7 @@ function EntitiesTab({ snapshot }) {
27483
28368
  ] });
27484
28369
  }
27485
28370
  EntitiesTab.displayName = "EntitiesTab";
28371
+ init_Typography();
27486
28372
  var TYPE_BADGES = {
27487
28373
  trait: { variant: "primary", icon: "\u{1F504}" },
27488
28374
  tick: { variant: "warning", icon: "\u23F1\uFE0F" },
@@ -27598,6 +28484,7 @@ function EventFlowTab({ events: events2 }) {
27598
28484
  ] });
27599
28485
  }
27600
28486
  EventFlowTab.displayName = "EventFlowTab";
28487
+ init_Typography();
27601
28488
  function GuardsPanel({ guards }) {
27602
28489
  const [filter, setFilter] = React114.useState("all");
27603
28490
  if (guards.length === 0) {
@@ -27671,6 +28558,9 @@ function GuardsPanel({ guards }) {
27671
28558
  ] });
27672
28559
  }
27673
28560
  GuardsPanel.displayName = "GuardsPanel";
28561
+
28562
+ // components/organisms/debug/tabs/VerificationTab.tsx
28563
+ init_Typography();
27674
28564
  var STATUS_CONFIG = {
27675
28565
  pass: { variant: "success", icon: "\u2713", label: "PASS" },
27676
28566
  fail: { variant: "danger", icon: "\u2717", label: "FAIL" },
@@ -27741,6 +28631,7 @@ function VerificationTab({ checks, summary }) {
27741
28631
  ] });
27742
28632
  }
27743
28633
  VerificationTab.displayName = "VerificationTab";
28634
+ init_Typography();
27744
28635
  var EFFECT_STATUS_VARIANT = {
27745
28636
  executed: "success",
27746
28637
  failed: "danger",
@@ -27869,6 +28760,9 @@ function TransitionTimeline({ transitions }) {
27869
28760
  ] });
27870
28761
  }
27871
28762
  TransitionTimeline.displayName = "TransitionTimeline";
28763
+
28764
+ // components/organisms/debug/tabs/ServerBridgeTab.tsx
28765
+ init_Typography();
27872
28766
  function StatRow({ label, value, variant }) {
27873
28767
  return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-1.5 border-b border-gray-100 dark:border-gray-800 last:border-b-0", children: [
27874
28768
  /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-500", children: label }),
@@ -27945,6 +28839,8 @@ function ServerBridgeTab({ bridge }) {
27945
28839
  ] }) });
27946
28840
  }
27947
28841
  ServerBridgeTab.displayName = "ServerBridgeTab";
28842
+ init_Typography();
28843
+ init_useEventBus();
27948
28844
  function extractPayloadFields(schema, eventName) {
27949
28845
  if (!schema) return [];
27950
28846
  const orbitals = schema.orbitals;
@@ -28441,6 +29337,10 @@ function RuntimeDebugger({
28441
29337
  );
28442
29338
  }
28443
29339
  RuntimeDebugger.displayName = "RuntimeDebugger";
29340
+
29341
+ // components/organisms/Section.tsx
29342
+ init_cn();
29343
+ init_Typography();
28444
29344
  var paddingStyles4 = {
28445
29345
  none: "p-0",
28446
29346
  sm: "p-3",
@@ -28525,6 +29425,12 @@ var Section = ({
28525
29425
  );
28526
29426
  };
28527
29427
  Section.displayName = "Section";
29428
+ init_cn();
29429
+
29430
+ // components/organisms/game/TraitSlot.tsx
29431
+ init_cn();
29432
+ init_useEventBus();
29433
+ init_Typography();
28528
29434
  var SIZE_CONFIG3 = {
28529
29435
  sm: { box: 40, icon: 20, font: "text-xs" },
28530
29436
  md: { box: 56, icon: 28, font: "text-sm" },
@@ -28773,6 +29679,8 @@ function SequenceBar({
28773
29679
  ] }, i)) });
28774
29680
  }
28775
29681
  SequenceBar.displayName = "SequenceBar";
29682
+ init_cn();
29683
+ init_useEventBus();
28776
29684
  var ENCOURAGEMENT_KEYS2 = [
28777
29685
  "puzzle.tryAgain1",
28778
29686
  "puzzle.tryAgain2",
@@ -28988,6 +29896,9 @@ function SequencerBoard({
28988
29896
  );
28989
29897
  }
28990
29898
  SequencerBoard.displayName = "SequencerBoard";
29899
+ init_Typography();
29900
+ init_cn();
29901
+ init_useEventBus();
28991
29902
  var SidebarNavItem = ({ item, collapsed }) => {
28992
29903
  const Icon3 = item.icon;
28993
29904
  const isActive = item.active ?? item.isActive;
@@ -29156,6 +30067,10 @@ var Sidebar = ({
29156
30067
  );
29157
30068
  };
29158
30069
  Sidebar.displayName = "Sidebar";
30070
+
30071
+ // components/organisms/SignaturePad.tsx
30072
+ init_cn();
30073
+ init_useEventBus();
29159
30074
  var SignaturePad = ({
29160
30075
  label = "Signature",
29161
30076
  helperText = "Draw your signature above",
@@ -29333,6 +30248,9 @@ var SignaturePad = ({
29333
30248
  };
29334
30249
  SignaturePad.displayName = "SignaturePad";
29335
30250
 
30251
+ // components/organisms/game/physics-sim/SimulationCanvas.tsx
30252
+ init_cn();
30253
+
29336
30254
  // components/organisms/game/physics-sim/presets/mechanics.ts
29337
30255
  var projectileMotion = {
29338
30256
  id: "mechanics-projectile",
@@ -29657,6 +30575,7 @@ function SimulationGraph({
29657
30575
  ] }) });
29658
30576
  }
29659
30577
  SimulationGraph.displayName = "SimulationGraph";
30578
+ init_useEventBus();
29660
30579
  function SimulatorBoard({
29661
30580
  entity,
29662
30581
  completeEvent = "PUZZLE_COMPLETE",
@@ -29806,6 +30725,9 @@ function SimulatorBoard({
29806
30725
  );
29807
30726
  }
29808
30727
  SimulatorBoard.displayName = "SimulatorBoard";
30728
+
30729
+ // components/organisms/Split.tsx
30730
+ init_cn();
29809
30731
  var gapStyles9 = {
29810
30732
  none: "gap-0",
29811
30733
  sm: "gap-2",
@@ -29872,6 +30794,9 @@ var Split = ({
29872
30794
  );
29873
30795
  };
29874
30796
  Split.displayName = "Split";
30797
+
30798
+ // components/organisms/layout/SplitPane.tsx
30799
+ init_cn();
29875
30800
  var SplitPane = ({
29876
30801
  direction = "horizontal",
29877
30802
  ratio: initialRatio = 50,
@@ -29955,6 +30880,10 @@ var SplitPane = ({
29955
30880
  );
29956
30881
  };
29957
30882
  SplitPane.displayName = "SplitPane";
30883
+
30884
+ // components/organisms/StatCard.tsx
30885
+ init_cn();
30886
+ init_useEventBus();
29958
30887
  var StatCard = ({
29959
30888
  label: propLabel,
29960
30889
  title: propTitle,
@@ -30165,6 +31094,11 @@ var StatCard = ({
30165
31094
  ] });
30166
31095
  };
30167
31096
  StatCard.displayName = "StatCard";
31097
+ init_cn();
31098
+ init_useEventBus();
31099
+
31100
+ // components/organisms/game/puzzles/state-architect/StateNode.tsx
31101
+ init_cn();
30168
31102
  function StateNode2({
30169
31103
  name,
30170
31104
  isCurrent = false,
@@ -30211,6 +31145,9 @@ function StateNode2({
30211
31145
  );
30212
31146
  }
30213
31147
  StateNode2.displayName = "StateNode";
31148
+
31149
+ // components/organisms/game/puzzles/state-architect/TransitionArrow.tsx
31150
+ init_cn();
30214
31151
  var NODE_RADIUS = 40;
30215
31152
  function TransitionArrow({
30216
31153
  from,
@@ -30277,6 +31214,9 @@ function TransitionArrow({
30277
31214
  ] });
30278
31215
  }
30279
31216
  TransitionArrow.displayName = "TransitionArrow";
31217
+
31218
+ // components/organisms/game/puzzles/state-architect/VariablePanel.tsx
31219
+ init_cn();
30280
31220
  function VariablePanel({
30281
31221
  entityName,
30282
31222
  variables,
@@ -30628,6 +31568,10 @@ function StateArchitectBoard({
30628
31568
  );
30629
31569
  }
30630
31570
  StateArchitectBoard.displayName = "StateArchitectBoard";
31571
+
31572
+ // components/organisms/layout/TabbedContainer.tsx
31573
+ init_cn();
31574
+ init_Typography();
30631
31575
  var TabbedContainer = ({
30632
31576
  tabs,
30633
31577
  defaultTab,
@@ -30734,6 +31678,9 @@ var TabbedContainer = ({
30734
31678
  );
30735
31679
  };
30736
31680
  TabbedContainer.displayName = "TabbedContainer";
31681
+ init_Typography();
31682
+ init_cn();
31683
+ init_useEventBus();
30737
31684
  var Table = ({
30738
31685
  columns,
30739
31686
  // EntityDisplayProps
@@ -30916,6 +31863,9 @@ var Table = ({
30916
31863
  ] });
30917
31864
  };
30918
31865
  Table.displayName = "Table";
31866
+
31867
+ // components/organisms/Timeline.tsx
31868
+ init_cn();
30919
31869
  var STATUS_STYLES3 = {
30920
31870
  complete: {
30921
31871
  dotColor: "text-success",
@@ -31051,6 +32001,7 @@ var Timeline = ({
31051
32001
  ] }) });
31052
32002
  };
31053
32003
  Timeline.displayName = "Timeline";
32004
+ init_useEventBus();
31054
32005
  function extractToastProps(children) {
31055
32006
  if (!React114__default.isValidElement(children)) {
31056
32007
  if (typeof children === "string") {
@@ -31097,6 +32048,12 @@ var ToastSlot = ({
31097
32048
  ) });
31098
32049
  };
31099
32050
  ToastSlot.displayName = "ToastSlot";
32051
+
32052
+ // components/organisms/component-registry.generated.ts
32053
+ init_Typography();
32054
+
32055
+ // components/organisms/game/hooks/useBattleState.ts
32056
+ init_useEventBus();
31100
32057
  function useBattleState(initialUnits, eventConfig = {}, callbacks = {}) {
31101
32058
  const eventBus = useEventBus();
31102
32059
  const {
@@ -31261,6 +32218,8 @@ function UncontrolledBattleBoard({ entity, ...rest }) {
31261
32218
  );
31262
32219
  }
31263
32220
  UncontrolledBattleBoard.displayName = "UncontrolledBattleBoard";
32221
+ init_Typography();
32222
+ init_cn();
31264
32223
  var WizardContainer = ({
31265
32224
  steps,
31266
32225
  currentStep: controlledStep,
@@ -31433,6 +32392,10 @@ var WizardContainer = ({
31433
32392
  ] });
31434
32393
  };
31435
32394
  WizardContainer.displayName = "WizardContainer";
32395
+
32396
+ // components/organisms/game/WorldMapBoard.tsx
32397
+ init_cn();
32398
+ init_useEventBus();
31436
32399
  function defaultIsInRange(from, to, range) {
31437
32400
  return Math.abs(from.x - to.x) + Math.abs(from.y - to.y) <= range;
31438
32401
  }
@@ -32625,6 +33588,9 @@ function UISlotRenderer({
32625
33588
  return wrapped;
32626
33589
  }
32627
33590
  UISlotRenderer.displayName = "UISlotRenderer";
33591
+
33592
+ // runtime/ServerBridge.tsx
33593
+ init_useEventBus();
32628
33594
  var ServerBridgeContext = createContext(null);
32629
33595
  function useServerBridge() {
32630
33596
  const ctx = useContext(ServerBridgeContext);