@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.
@@ -2,20 +2,17 @@
2
2
 
3
3
  var React114 = require('react');
4
4
  var providers = require('@almadar/ui/providers');
5
+ var clsx = require('clsx');
6
+ var tailwindMerge = require('tailwind-merge');
7
+ var jsxRuntime = require('react/jsx-runtime');
5
8
  require('@tanstack/react-query');
6
9
  var core = require('@almadar/core');
7
10
  var runtime = require('@almadar/runtime');
8
- var jsxRuntime = require('react/jsx-runtime');
9
- var clsx = require('clsx');
10
- var tailwindMerge = require('tailwind-merge');
11
11
  var context = require('@almadar/ui/context');
12
12
  var reactDom = require('react-dom');
13
13
  var LucideIcons = require('lucide-react');
14
14
  var evaluator = require('@almadar/evaluator');
15
15
  var patterns = require('@almadar/patterns');
16
- var reactLeaflet = require('react-leaflet');
17
- var L = require('leaflet');
18
- require('leaflet/dist/leaflet.css');
19
16
  var reactRouterDom = require('react-router-dom');
20
17
  var ReactMarkdown = require('react-markdown');
21
18
  var remarkGfm = require('remark-gfm');
@@ -63,7 +60,6 @@ function _interopNamespace(e) {
63
60
 
64
61
  var React114__namespace = /*#__PURE__*/_interopNamespace(React114);
65
62
  var LucideIcons__namespace = /*#__PURE__*/_interopNamespace(LucideIcons);
66
- var L__default = /*#__PURE__*/_interopDefault(L);
67
63
  var ReactMarkdown__default = /*#__PURE__*/_interopDefault(ReactMarkdown);
68
64
  var remarkGfm__default = /*#__PURE__*/_interopDefault(remarkGfm);
69
65
  var remarkMath__default = /*#__PURE__*/_interopDefault(remarkMath);
@@ -88,19 +84,21 @@ var langGo__default = /*#__PURE__*/_interopDefault(langGo);
88
84
  var langGraphql__default = /*#__PURE__*/_interopDefault(langGraphql);
89
85
 
90
86
  var __defProp = Object.defineProperty;
87
+ var __getOwnPropNames = Object.getOwnPropertyNames;
91
88
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
89
+ var __esm = (fn, res) => function __init() {
90
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
91
+ };
92
+ var __export = (target, all) => {
93
+ for (var name in all)
94
+ __defProp(target, name, { get: all[name], enumerable: true });
95
+ };
92
96
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
93
97
 
94
98
  // lib/logger.ts
95
- var LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
96
- var ENV = typeof process !== "undefined" && process.env ? process.env : {};
97
99
  function envGet(key) {
98
100
  return ENV[key] ?? ENV[`VITE_${key}`];
99
101
  }
100
- var NODE_ENV = envGet("NODE_ENV") ?? "development";
101
- var CONFIGURED_LEVEL = (envGet("LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
102
- var MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
103
- var DEBUG_FILTER = (envGet("ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
104
102
  function matchesNamespace(namespace) {
105
103
  if (DEBUG_FILTER.length === 0) return true;
106
104
  return DEBUG_FILTER.some((pattern) => {
@@ -138,79 +136,40 @@ function createLogger(namespace) {
138
136
  error: (msg, data, cid) => log3("ERROR", msg, data, cid)
139
137
  };
140
138
  }
139
+ var LEVEL_PRIORITY, ENV, NODE_ENV, CONFIGURED_LEVEL, MIN_PRIORITY, DEBUG_FILTER;
140
+ var init_logger = __esm({
141
+ "lib/logger.ts"() {
142
+ LEVEL_PRIORITY = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3 };
143
+ ENV = typeof process !== "undefined" && process.env ? process.env : {};
144
+ NODE_ENV = envGet("NODE_ENV") ?? "development";
145
+ CONFIGURED_LEVEL = (envGet("LOG_LEVEL") ?? (NODE_ENV === "production" ? "info" : "debug")).toUpperCase();
146
+ MIN_PRIORITY = LEVEL_PRIORITY[CONFIGURED_LEVEL] ?? 0;
147
+ DEBUG_FILTER = (envGet("ALMADAR_DEBUG") ?? "").split(",").map((s) => s.trim()).filter(Boolean);
148
+ }
149
+ });
141
150
 
142
151
  // hooks/useEventBus.ts
143
- var log = createLogger("almadar:eventbus");
144
- var subLog = createLogger("almadar:eventbus:subscribe");
152
+ var useEventBus_exports = {};
153
+ __export(useEventBus_exports, {
154
+ default: () => useEventBus_default,
155
+ getGlobalEventBus: () => getGlobalEventBus,
156
+ setGlobalEventBus: () => setGlobalEventBus,
157
+ useEmitEvent: () => useEmitEvent,
158
+ useEventBus: () => useEventBus,
159
+ useEventListener: () => useEventListener,
160
+ useEventSubscription: () => useEventSubscription
161
+ });
162
+ function setGlobalEventBus(bus) {
163
+ if (typeof window !== "undefined") {
164
+ window.__kflowEventBus = bus;
165
+ }
166
+ }
145
167
  function getGlobalEventBus() {
146
168
  if (typeof window !== "undefined") {
147
169
  return window.__kflowEventBus ?? null;
148
170
  }
149
171
  return null;
150
172
  }
151
- var fallbackListeners = /* @__PURE__ */ new Map();
152
- var fallbackAnyListeners = /* @__PURE__ */ new Set();
153
- var fallbackEventBus = {
154
- emit: (type, payload) => {
155
- const event = {
156
- type,
157
- payload,
158
- timestamp: Date.now()
159
- };
160
- const handlers = fallbackListeners.get(type);
161
- log.debug("emit", { type, payloadKeys: payload ? Object.keys(payload).length : 0, listenerCount: (handlers?.size ?? 0) + fallbackAnyListeners.size });
162
- if (handlers) {
163
- handlers.forEach((handler) => {
164
- try {
165
- handler(event);
166
- } catch (error) {
167
- console.error(`[EventBus] Error in listener for '${type}':`, error);
168
- }
169
- });
170
- }
171
- fallbackAnyListeners.forEach((handler) => {
172
- try {
173
- handler(event);
174
- } catch (error) {
175
- console.error(`[EventBus] Error in onAny listener for '${type}':`, error);
176
- }
177
- });
178
- },
179
- on: (type, listener) => {
180
- if (!fallbackListeners.has(type)) {
181
- fallbackListeners.set(type, /* @__PURE__ */ new Set());
182
- }
183
- fallbackListeners.get(type).add(listener);
184
- subLog.debug("subscribe", { type, totalListeners: fallbackListeners.get(type).size });
185
- return () => {
186
- const handlers = fallbackListeners.get(type);
187
- if (handlers) {
188
- handlers.delete(listener);
189
- if (handlers.size === 0) {
190
- fallbackListeners.delete(type);
191
- }
192
- }
193
- };
194
- },
195
- once: (type, listener) => {
196
- const wrappedListener = (event) => {
197
- fallbackListeners.get(type)?.delete(wrappedListener);
198
- listener(event);
199
- };
200
- return fallbackEventBus.on(type, wrappedListener);
201
- },
202
- hasListeners: (type) => {
203
- const handlers = fallbackListeners.get(type);
204
- return handlers !== void 0 && handlers.size > 0;
205
- },
206
- onAny: (listener) => {
207
- fallbackAnyListeners.add(listener);
208
- subLog.debug("subscribe:any", { totalAnyListeners: fallbackAnyListeners.size });
209
- return () => {
210
- fallbackAnyListeners.delete(listener);
211
- };
212
- }
213
- };
214
173
  function useEventBus() {
215
174
  const context = React114.useContext(providers.EventBusContext);
216
175
  return context ?? getGlobalEventBus() ?? fallbackEventBus;
@@ -229,6 +188,263 @@ function useEventListener(event, handler) {
229
188
  };
230
189
  }, [event, eventBus]);
231
190
  }
191
+ function useEmitEvent() {
192
+ const eventBus = useEventBus();
193
+ return React114.useCallback(
194
+ (type, payload) => {
195
+ eventBus.emit(type, payload);
196
+ },
197
+ [eventBus]
198
+ );
199
+ }
200
+ var log, subLog, fallbackListeners, fallbackAnyListeners, fallbackEventBus, useEventSubscription, useEventBus_default;
201
+ var init_useEventBus = __esm({
202
+ "hooks/useEventBus.ts"() {
203
+ "use client";
204
+ init_logger();
205
+ log = createLogger("almadar:eventbus");
206
+ subLog = createLogger("almadar:eventbus:subscribe");
207
+ fallbackListeners = /* @__PURE__ */ new Map();
208
+ fallbackAnyListeners = /* @__PURE__ */ new Set();
209
+ fallbackEventBus = {
210
+ emit: (type, payload) => {
211
+ const event = {
212
+ type,
213
+ payload,
214
+ timestamp: Date.now()
215
+ };
216
+ const handlers = fallbackListeners.get(type);
217
+ log.debug("emit", { type, payloadKeys: payload ? Object.keys(payload).length : 0, listenerCount: (handlers?.size ?? 0) + fallbackAnyListeners.size });
218
+ if (handlers) {
219
+ handlers.forEach((handler) => {
220
+ try {
221
+ handler(event);
222
+ } catch (error) {
223
+ console.error(`[EventBus] Error in listener for '${type}':`, error);
224
+ }
225
+ });
226
+ }
227
+ fallbackAnyListeners.forEach((handler) => {
228
+ try {
229
+ handler(event);
230
+ } catch (error) {
231
+ console.error(`[EventBus] Error in onAny listener for '${type}':`, error);
232
+ }
233
+ });
234
+ },
235
+ on: (type, listener) => {
236
+ if (!fallbackListeners.has(type)) {
237
+ fallbackListeners.set(type, /* @__PURE__ */ new Set());
238
+ }
239
+ fallbackListeners.get(type).add(listener);
240
+ subLog.debug("subscribe", { type, totalListeners: fallbackListeners.get(type).size });
241
+ return () => {
242
+ const handlers = fallbackListeners.get(type);
243
+ if (handlers) {
244
+ handlers.delete(listener);
245
+ if (handlers.size === 0) {
246
+ fallbackListeners.delete(type);
247
+ }
248
+ }
249
+ };
250
+ },
251
+ once: (type, listener) => {
252
+ const wrappedListener = (event) => {
253
+ fallbackListeners.get(type)?.delete(wrappedListener);
254
+ listener(event);
255
+ };
256
+ return fallbackEventBus.on(type, wrappedListener);
257
+ },
258
+ hasListeners: (type) => {
259
+ const handlers = fallbackListeners.get(type);
260
+ return handlers !== void 0 && handlers.size > 0;
261
+ },
262
+ onAny: (listener) => {
263
+ fallbackAnyListeners.add(listener);
264
+ subLog.debug("subscribe:any", { totalAnyListeners: fallbackAnyListeners.size });
265
+ return () => {
266
+ fallbackAnyListeners.delete(listener);
267
+ };
268
+ }
269
+ };
270
+ useEventSubscription = useEventListener;
271
+ useEventBus_default = useEventBus;
272
+ }
273
+ });
274
+ function cn(...inputs) {
275
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
276
+ }
277
+ var init_cn = __esm({
278
+ "lib/cn.ts"() {
279
+ }
280
+ });
281
+
282
+ // components/atoms/Typography.tsx
283
+ var Typography_exports = {};
284
+ __export(Typography_exports, {
285
+ Heading: () => Heading,
286
+ Text: () => Text,
287
+ Typography: () => Typography
288
+ });
289
+ var variantStyles, colorStyles, weightStyles, defaultElements, typographySizeStyles, overflowStyles2, Typography, sizeStyles, Heading, Text;
290
+ var init_Typography = __esm({
291
+ "components/atoms/Typography.tsx"() {
292
+ init_cn();
293
+ variantStyles = {
294
+ h1: "text-4xl font-bold tracking-tight text-foreground",
295
+ h2: "text-3xl font-bold tracking-tight text-foreground",
296
+ h3: "text-2xl font-bold text-foreground",
297
+ h4: "text-xl font-bold text-foreground",
298
+ h5: "text-lg font-bold text-foreground",
299
+ h6: "text-base font-bold text-foreground",
300
+ heading: "text-2xl font-bold text-foreground",
301
+ subheading: "text-lg font-semibold text-foreground",
302
+ body1: "text-base font-normal text-foreground",
303
+ body2: "text-sm font-normal text-foreground",
304
+ body: "text-base font-normal text-foreground",
305
+ caption: "text-xs font-normal text-muted-foreground",
306
+ overline: "text-xs uppercase tracking-wide font-bold text-muted-foreground",
307
+ small: "text-sm font-normal text-foreground",
308
+ large: "text-lg font-medium text-foreground",
309
+ label: "text-sm font-medium text-foreground"
310
+ };
311
+ colorStyles = {
312
+ primary: "text-foreground",
313
+ secondary: "text-muted-foreground",
314
+ muted: "text-muted-foreground",
315
+ error: "text-error",
316
+ success: "text-success",
317
+ warning: "text-warning",
318
+ inherit: "text-inherit"
319
+ };
320
+ weightStyles = {
321
+ light: "font-light",
322
+ normal: "font-normal",
323
+ medium: "font-medium",
324
+ semibold: "font-semibold",
325
+ bold: "font-bold"
326
+ };
327
+ defaultElements = {
328
+ h1: "h1",
329
+ h2: "h2",
330
+ h3: "h3",
331
+ h4: "h4",
332
+ h5: "h5",
333
+ h6: "h6",
334
+ heading: "h2",
335
+ subheading: "h3",
336
+ body1: "p",
337
+ body2: "p",
338
+ body: "p",
339
+ caption: "span",
340
+ overline: "span",
341
+ small: "span",
342
+ large: "p",
343
+ label: "span"
344
+ };
345
+ typographySizeStyles = {
346
+ xs: "text-xs",
347
+ sm: "text-sm",
348
+ md: "text-base",
349
+ lg: "text-lg",
350
+ xl: "text-xl",
351
+ "2xl": "text-2xl",
352
+ "3xl": "text-3xl"
353
+ };
354
+ overflowStyles2 = {
355
+ visible: "overflow-visible",
356
+ hidden: "overflow-hidden",
357
+ wrap: "break-words overflow-hidden",
358
+ "clamp-2": "overflow-hidden line-clamp-2",
359
+ "clamp-3": "overflow-hidden line-clamp-3"
360
+ };
361
+ Typography = ({
362
+ variant: variantProp,
363
+ level,
364
+ color = "primary",
365
+ align,
366
+ weight,
367
+ size,
368
+ truncate = false,
369
+ overflow,
370
+ as,
371
+ id,
372
+ className,
373
+ style,
374
+ content,
375
+ children
376
+ }) => {
377
+ const variant = variantProp ?? (level ? `h${level}` : "body1");
378
+ const Component = as || defaultElements[variant];
379
+ const Comp = Component;
380
+ return /* @__PURE__ */ jsxRuntime.jsx(
381
+ Comp,
382
+ {
383
+ id,
384
+ className: cn(
385
+ variantStyles[variant],
386
+ colorStyles[color],
387
+ weight && weightStyles[weight],
388
+ size && typographySizeStyles[size],
389
+ align && `text-${align}`,
390
+ truncate && "truncate overflow-hidden text-ellipsis",
391
+ overflow && overflowStyles2[overflow],
392
+ className
393
+ ),
394
+ style,
395
+ children: children ?? content
396
+ }
397
+ );
398
+ };
399
+ Typography.displayName = "Typography";
400
+ sizeStyles = {
401
+ xs: "text-xs",
402
+ sm: "text-sm",
403
+ md: "text-base",
404
+ lg: "text-lg",
405
+ xl: "text-xl",
406
+ "2xl": "text-2xl",
407
+ "3xl": "text-3xl"
408
+ };
409
+ Heading = ({
410
+ level = 2,
411
+ size,
412
+ className,
413
+ ...props
414
+ }) => {
415
+ const variant = `h${level}`;
416
+ const sizeClass = size ? sizeStyles[size] : void 0;
417
+ return /* @__PURE__ */ jsxRuntime.jsx(
418
+ Typography,
419
+ {
420
+ variant,
421
+ className: cn(sizeClass, className),
422
+ ...props
423
+ }
424
+ );
425
+ };
426
+ Heading.displayName = "Heading";
427
+ Text = ({
428
+ variant = "body",
429
+ ...props
430
+ }) => {
431
+ return /* @__PURE__ */ jsxRuntime.jsx(
432
+ Typography,
433
+ {
434
+ variant,
435
+ ...props
436
+ }
437
+ );
438
+ };
439
+ Text.displayName = "Text";
440
+ }
441
+ });
442
+
443
+ // hooks/index.ts
444
+ init_useEventBus();
445
+
446
+ // hooks/useUIEvents.ts
447
+ init_useEventBus();
232
448
  React114.createContext(null);
233
449
  var queryStores = /* @__PURE__ */ new Map();
234
450
  function getOrCreateStore(query) {
@@ -687,6 +903,12 @@ function usePullToRefresh(onRefresh, options = {}) {
687
903
  endRefresh
688
904
  };
689
905
  }
906
+
907
+ // hooks/useDraggable.ts
908
+ init_useEventBus();
909
+
910
+ // hooks/useDropZone.ts
911
+ init_useEventBus();
690
912
  typeof process !== "undefined" && process.env?.VITE_API_URL ? process.env.VITE_API_URL : "http://localhost:3000";
691
913
 
692
914
  // runtime/createClientEffectHandlers.ts
@@ -788,6 +1010,7 @@ function subscribeToTraitChanges(listener) {
788
1010
  }
789
1011
 
790
1012
  // lib/verificationRegistry.ts
1013
+ init_logger();
791
1014
  var log2 = createLogger("almadar:bridge");
792
1015
  var MAX_TRANSITIONS = 500;
793
1016
  function getState() {
@@ -1525,9 +1748,10 @@ function useSlotsActions() {
1525
1748
  }
1526
1749
  return actions;
1527
1750
  }
1528
- function cn(...inputs) {
1529
- return tailwindMerge.twMerge(clsx.clsx(inputs));
1530
- }
1751
+
1752
+ // components/atoms/Box.tsx
1753
+ init_cn();
1754
+ init_useEventBus();
1531
1755
  var paddingStyles = {
1532
1756
  none: "p-0",
1533
1757
  xs: "p-1",
@@ -1726,113 +1950,12 @@ var Box = React114__namespace.default.forwardRef(
1726
1950
  }
1727
1951
  );
1728
1952
  Box.displayName = "Box";
1729
- var variantStyles = {
1730
- h1: "text-4xl font-bold tracking-tight text-foreground",
1731
- h2: "text-3xl font-bold tracking-tight text-foreground",
1732
- h3: "text-2xl font-bold text-foreground",
1733
- h4: "text-xl font-bold text-foreground",
1734
- h5: "text-lg font-bold text-foreground",
1735
- h6: "text-base font-bold text-foreground",
1736
- heading: "text-2xl font-bold text-foreground",
1737
- subheading: "text-lg font-semibold text-foreground",
1738
- body1: "text-base font-normal text-foreground",
1739
- body2: "text-sm font-normal text-foreground",
1740
- body: "text-base font-normal text-foreground",
1741
- caption: "text-xs font-normal text-muted-foreground",
1742
- overline: "text-xs uppercase tracking-wide font-bold text-muted-foreground",
1743
- small: "text-sm font-normal text-foreground",
1744
- large: "text-lg font-medium text-foreground",
1745
- label: "text-sm font-medium text-foreground"
1746
- };
1747
- var colorStyles = {
1748
- primary: "text-foreground",
1749
- secondary: "text-muted-foreground",
1750
- muted: "text-muted-foreground",
1751
- error: "text-error",
1752
- success: "text-success",
1753
- warning: "text-warning",
1754
- inherit: "text-inherit"
1755
- };
1756
- var weightStyles = {
1757
- light: "font-light",
1758
- normal: "font-normal",
1759
- medium: "font-medium",
1760
- semibold: "font-semibold",
1761
- bold: "font-bold"
1762
- };
1763
- var defaultElements = {
1764
- h1: "h1",
1765
- h2: "h2",
1766
- h3: "h3",
1767
- h4: "h4",
1768
- h5: "h5",
1769
- h6: "h6",
1770
- heading: "h2",
1771
- subheading: "h3",
1772
- body1: "p",
1773
- body2: "p",
1774
- body: "p",
1775
- caption: "span",
1776
- overline: "span",
1777
- small: "span",
1778
- large: "p",
1779
- label: "span"
1780
- };
1781
- var typographySizeStyles = {
1782
- xs: "text-xs",
1783
- sm: "text-sm",
1784
- md: "text-base",
1785
- lg: "text-lg",
1786
- xl: "text-xl",
1787
- "2xl": "text-2xl",
1788
- "3xl": "text-3xl"
1789
- };
1790
- var overflowStyles2 = {
1791
- visible: "overflow-visible",
1792
- hidden: "overflow-hidden",
1793
- wrap: "break-words overflow-hidden",
1794
- "clamp-2": "overflow-hidden line-clamp-2",
1795
- "clamp-3": "overflow-hidden line-clamp-3"
1796
- };
1797
- var Typography = ({
1798
- variant: variantProp,
1799
- level,
1800
- color = "primary",
1801
- align,
1802
- weight,
1803
- size,
1804
- truncate = false,
1805
- overflow,
1806
- as,
1807
- id,
1808
- className,
1809
- style,
1810
- content,
1811
- children
1812
- }) => {
1813
- const variant = variantProp ?? (level ? `h${level}` : "body1");
1814
- const Component = as || defaultElements[variant];
1815
- const Comp = Component;
1816
- return /* @__PURE__ */ jsxRuntime.jsx(
1817
- Comp,
1818
- {
1819
- id,
1820
- className: cn(
1821
- variantStyles[variant],
1822
- colorStyles[color],
1823
- weight && weightStyles[weight],
1824
- size && typographySizeStyles[size],
1825
- align && `text-${align}`,
1826
- truncate && "truncate overflow-hidden text-ellipsis",
1827
- overflow && overflowStyles2[overflow],
1828
- className
1829
- ),
1830
- style,
1831
- children: children ?? content
1832
- }
1833
- );
1834
- };
1835
- Typography.displayName = "Typography";
1953
+
1954
+ // runtime/OrbPreview.tsx
1955
+ init_Typography();
1956
+
1957
+ // components/atoms/Icon.tsx
1958
+ init_cn();
1836
1959
  var iconAliases = {
1837
1960
  "close": LucideIcons__namespace.X,
1838
1961
  "trash": LucideIcons__namespace.Trash2,
@@ -1911,6 +2034,13 @@ var Icon = ({
1911
2034
  );
1912
2035
  };
1913
2036
  Icon.displayName = "Icon";
2037
+
2038
+ // components/molecules/Modal.tsx
2039
+ init_Typography();
2040
+
2041
+ // components/atoms/Overlay.tsx
2042
+ init_cn();
2043
+ init_useEventBus();
1914
2044
  var Overlay = ({
1915
2045
  isVisible = true,
1916
2046
  onClick,
@@ -1940,6 +2070,10 @@ var Overlay = ({
1940
2070
  }
1941
2071
  );
1942
2072
  };
2073
+
2074
+ // components/molecules/Modal.tsx
2075
+ init_cn();
2076
+ init_useEventBus();
1943
2077
  var sizeClasses2 = {
1944
2078
  sm: "max-w-md",
1945
2079
  md: "max-w-2xl",
@@ -2137,6 +2271,9 @@ var Modal = ({
2137
2271
  ] });
2138
2272
  };
2139
2273
  Modal.displayName = "Modal";
2274
+ init_Typography();
2275
+ init_cn();
2276
+ init_useEventBus();
2140
2277
  var sizeWidths = {
2141
2278
  sm: "w-80",
2142
2279
  // 320px
@@ -2309,6 +2446,11 @@ var Drawer = ({
2309
2446
  ] });
2310
2447
  };
2311
2448
  Drawer.displayName = "Drawer";
2449
+ init_Typography();
2450
+
2451
+ // components/atoms/Button.tsx
2452
+ init_cn();
2453
+ init_useEventBus();
2312
2454
  var variantStyles2 = {
2313
2455
  primary: [
2314
2456
  "bg-primary text-primary-foreground",
@@ -2447,6 +2589,9 @@ var Button = React114__namespace.default.forwardRef(
2447
2589
  }
2448
2590
  );
2449
2591
  Button.displayName = "Button";
2592
+
2593
+ // components/atoms/Badge.tsx
2594
+ init_cn();
2450
2595
  var variantStyles3 = {
2451
2596
  default: [
2452
2597
  "bg-muted text-foreground",
@@ -2511,6 +2656,10 @@ var Badge = React114__namespace.default.forwardRef(
2511
2656
  }
2512
2657
  );
2513
2658
  Badge.displayName = "Badge";
2659
+
2660
+ // components/molecules/Toast.tsx
2661
+ init_cn();
2662
+ init_useEventBus();
2514
2663
  var variantClasses = {
2515
2664
  success: "bg-card border-[length:var(--border-width)] border-success",
2516
2665
  error: "bg-card border-[length:var(--border-width)] border-error",
@@ -2607,6 +2756,19 @@ var Toast = ({
2607
2756
  );
2608
2757
  };
2609
2758
  Toast.displayName = "Toast";
2759
+
2760
+ // components/organisms/UISlotRenderer.tsx
2761
+ init_Typography();
2762
+ init_cn();
2763
+
2764
+ // components/molecules/ErrorBoundary.tsx
2765
+ init_cn();
2766
+
2767
+ // components/molecules/ErrorState.tsx
2768
+ init_cn();
2769
+
2770
+ // components/atoms/Input.tsx
2771
+ init_cn();
2610
2772
  var Input = React114__namespace.default.forwardRef(
2611
2773
  ({
2612
2774
  className,
@@ -2719,6 +2881,9 @@ var Input = React114__namespace.default.forwardRef(
2719
2881
  }
2720
2882
  );
2721
2883
  Input.displayName = "Input";
2884
+
2885
+ // components/atoms/Label.tsx
2886
+ init_cn();
2722
2887
  var Label = React114__namespace.default.forwardRef(
2723
2888
  ({ className, required, children, ...props }, ref) => {
2724
2889
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -2739,6 +2904,9 @@ var Label = React114__namespace.default.forwardRef(
2739
2904
  }
2740
2905
  );
2741
2906
  Label.displayName = "Label";
2907
+
2908
+ // components/atoms/Textarea.tsx
2909
+ init_cn();
2742
2910
  var Textarea = React114__namespace.default.forwardRef(
2743
2911
  ({ className, error, ...props }, ref) => {
2744
2912
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -2762,6 +2930,9 @@ var Textarea = React114__namespace.default.forwardRef(
2762
2930
  }
2763
2931
  );
2764
2932
  Textarea.displayName = "Textarea";
2933
+
2934
+ // components/atoms/Select.tsx
2935
+ init_cn();
2765
2936
  var Select = React114__namespace.default.forwardRef(
2766
2937
  ({ className, options, placeholder, error, ...props }, ref) => {
2767
2938
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
@@ -2798,6 +2969,9 @@ var Select = React114__namespace.default.forwardRef(
2798
2969
  }
2799
2970
  );
2800
2971
  Select.displayName = "Select";
2972
+
2973
+ // components/atoms/Checkbox.tsx
2974
+ init_cn();
2801
2975
  var Checkbox = React114__namespace.default.forwardRef(
2802
2976
  ({ className, label, id, ...props }, ref) => {
2803
2977
  const inputId = id || `checkbox-${Math.random().toString(36).substr(2, 9)}`;
@@ -2830,6 +3004,9 @@ var Checkbox = React114__namespace.default.forwardRef(
2830
3004
  }
2831
3005
  );
2832
3006
  Checkbox.displayName = "Checkbox";
3007
+
3008
+ // components/atoms/Card.tsx
3009
+ init_cn();
2833
3010
  var variantStyles4 = {
2834
3011
  default: [
2835
3012
  "bg-card",
@@ -2938,6 +3115,9 @@ var CardFooter = React114__namespace.default.forwardRef(({ className, ...props }
2938
3115
  }
2939
3116
  ));
2940
3117
  CardFooter.displayName = "CardFooter";
3118
+
3119
+ // components/atoms/Spinner.tsx
3120
+ init_cn();
2941
3121
  var sizeStyles4 = {
2942
3122
  xs: "h-3 w-3",
2943
3123
  sm: "h-4 w-4",
@@ -2958,6 +3138,10 @@ var Spinner = React114__namespace.default.forwardRef(
2958
3138
  }
2959
3139
  );
2960
3140
  Spinner.displayName = "Spinner";
3141
+
3142
+ // components/atoms/Avatar.tsx
3143
+ init_cn();
3144
+ init_useEventBus();
2961
3145
  var sizeClasses3 = {
2962
3146
  xs: "w-6 h-6 text-xs",
2963
3147
  sm: "w-8 h-8 text-sm",
@@ -3107,6 +3291,9 @@ var Avatar = ({
3107
3291
  ] });
3108
3292
  };
3109
3293
  Avatar.displayName = "Avatar";
3294
+
3295
+ // components/atoms/Center.tsx
3296
+ init_cn();
3110
3297
  var Center = ({
3111
3298
  inline = false,
3112
3299
  horizontal = true,
@@ -3137,6 +3324,9 @@ var Center = ({
3137
3324
  }
3138
3325
  );
3139
3326
  };
3327
+
3328
+ // components/atoms/Divider.tsx
3329
+ init_cn();
3140
3330
  var variantStyles5 = {
3141
3331
  solid: "border-solid",
3142
3332
  dashed: "border-dashed",
@@ -3207,6 +3397,9 @@ var Divider = ({
3207
3397
  );
3208
3398
  };
3209
3399
  Divider.displayName = "Divider";
3400
+
3401
+ // components/atoms/ProgressBar.tsx
3402
+ init_cn();
3210
3403
  var colorClasses = {
3211
3404
  default: "bg-primary",
3212
3405
  primary: "bg-primary",
@@ -3360,6 +3553,9 @@ var ProgressBar = ({
3360
3553
  return null;
3361
3554
  };
3362
3555
  ProgressBar.displayName = "ProgressBar";
3556
+
3557
+ // components/atoms/Radio.tsx
3558
+ init_cn();
3363
3559
  var Radio = React114__namespace.default.forwardRef(
3364
3560
  ({
3365
3561
  label,
@@ -3464,6 +3660,9 @@ var Radio = React114__namespace.default.forwardRef(
3464
3660
  }
3465
3661
  );
3466
3662
  Radio.displayName = "Radio";
3663
+
3664
+ // components/atoms/Switch.tsx
3665
+ init_cn();
3467
3666
  var Switch = React114__namespace.forwardRef(
3468
3667
  ({
3469
3668
  checked,
@@ -3537,6 +3736,9 @@ var Switch = React114__namespace.forwardRef(
3537
3736
  }
3538
3737
  );
3539
3738
  Switch.displayName = "Switch";
3739
+
3740
+ // components/atoms/Spacer.tsx
3741
+ init_cn();
3540
3742
  var horizontalSizes = {
3541
3743
  xs: "w-1",
3542
3744
  sm: "w-2",
@@ -3570,6 +3772,10 @@ var Spacer = ({
3570
3772
  }
3571
3773
  );
3572
3774
  };
3775
+
3776
+ // components/atoms/Stack.tsx
3777
+ init_cn();
3778
+ init_useEventBus();
3573
3779
  var gapStyles = {
3574
3780
  none: "gap-0",
3575
3781
  xs: "gap-1",
@@ -3648,6 +3854,10 @@ var Stack = ({
3648
3854
  };
3649
3855
  var VStack = (props) => /* @__PURE__ */ jsxRuntime.jsx(Stack, { direction: "vertical", ...props });
3650
3856
  var HStack = (props) => /* @__PURE__ */ jsxRuntime.jsx(Stack, { direction: "horizontal", ...props });
3857
+
3858
+ // components/atoms/TextHighlight.tsx
3859
+ init_cn();
3860
+ init_useEventBus();
3651
3861
  var TextHighlight = ({
3652
3862
  highlightType,
3653
3863
  isActive = false,
@@ -3709,6 +3919,12 @@ var TextHighlight = ({
3709
3919
  );
3710
3920
  };
3711
3921
  TextHighlight.displayName = "TextHighlight";
3922
+
3923
+ // components/atoms/index.ts
3924
+ init_Typography();
3925
+
3926
+ // components/atoms/ThemeToggle.tsx
3927
+ init_cn();
3712
3928
  var BUILT_IN_THEMES = [
3713
3929
  {
3714
3930
  name: "wireframe",
@@ -3879,6 +4095,9 @@ var ThemeToggle = ({
3879
4095
  );
3880
4096
  };
3881
4097
  ThemeToggle.displayName = "ThemeToggle";
4098
+
4099
+ // components/atoms/FlipContainer.tsx
4100
+ init_cn();
3882
4101
  var FlipContainer = ({
3883
4102
  flipped,
3884
4103
  className,
@@ -3944,6 +4163,8 @@ var ConditionalWrapper = ({
3944
4163
  return isVisible ? /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children }) : /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: fallback });
3945
4164
  };
3946
4165
  ConditionalWrapper.displayName = "ConditionalWrapper";
4166
+ init_Typography();
4167
+ init_cn();
3947
4168
  var positionStyles2 = {
3948
4169
  top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
3949
4170
  bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
@@ -4066,6 +4287,10 @@ var LawReferenceTooltip = ({
4066
4287
  );
4067
4288
  };
4068
4289
  LawReferenceTooltip.displayName = "LawReferenceTooltip";
4290
+
4291
+ // components/atoms/DayCell.tsx
4292
+ init_cn();
4293
+ init_Typography();
4069
4294
  var DAY_ABBREVIATIONS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
4070
4295
  function DayCell({
4071
4296
  date,
@@ -4115,6 +4340,9 @@ function DayCell({
4115
4340
  );
4116
4341
  }
4117
4342
  DayCell.displayName = "DayCell";
4343
+
4344
+ // components/atoms/TimeSlotCell.tsx
4345
+ init_cn();
4118
4346
  function TimeSlotCell({
4119
4347
  time,
4120
4348
  onClick,
@@ -4139,6 +4367,9 @@ function TimeSlotCell({
4139
4367
  );
4140
4368
  }
4141
4369
  TimeSlotCell.displayName = "TimeSlotCell";
4370
+
4371
+ // components/atoms/StatusDot.tsx
4372
+ init_cn();
4142
4373
  var statusColors = {
4143
4374
  online: "bg-success",
4144
4375
  offline: "bg-muted-foreground",
@@ -4186,6 +4417,9 @@ var StatusDot = React114__namespace.default.forwardRef(
4186
4417
  }
4187
4418
  );
4188
4419
  StatusDot.displayName = "StatusDot";
4420
+
4421
+ // components/atoms/TrendIndicator.tsx
4422
+ init_cn();
4189
4423
  var sizeStyles6 = {
4190
4424
  sm: { icon: "w-3 h-3", text: "text-xs" },
4191
4425
  md: { icon: "w-4 h-4", text: "text-sm" },
@@ -4246,6 +4480,10 @@ var TrendIndicator = React114__namespace.default.forwardRef(
4246
4480
  }
4247
4481
  );
4248
4482
  TrendIndicator.displayName = "TrendIndicator";
4483
+
4484
+ // components/atoms/RangeSlider.tsx
4485
+ init_cn();
4486
+ init_useEventBus();
4249
4487
  function useSafeEventBus() {
4250
4488
  try {
4251
4489
  return useEventBus();
@@ -4454,6 +4692,10 @@ var RangeSlider = React114__namespace.default.forwardRef(
4454
4692
  }
4455
4693
  );
4456
4694
  RangeSlider.displayName = "RangeSlider";
4695
+
4696
+ // components/atoms/AnimatedCounter.tsx
4697
+ init_cn();
4698
+ init_Typography();
4457
4699
  function easeOut(t) {
4458
4700
  return t * (2 - t);
4459
4701
  }
@@ -4505,6 +4747,10 @@ var AnimatedCounter = ({
4505
4747
  ] });
4506
4748
  };
4507
4749
  AnimatedCounter.displayName = "AnimatedCounter";
4750
+
4751
+ // components/atoms/InfiniteScrollSentinel.tsx
4752
+ init_cn();
4753
+ init_useEventBus();
4508
4754
  var InfiniteScrollSentinel = ({
4509
4755
  loadMoreEvent,
4510
4756
  loadMorePayload,
@@ -4534,6 +4780,9 @@ var InfiniteScrollSentinel = ({
4534
4780
  );
4535
4781
  };
4536
4782
  InfiniteScrollSentinel.displayName = "InfiniteScrollSentinel";
4783
+
4784
+ // components/atoms/ConfettiEffect.tsx
4785
+ init_cn();
4537
4786
  var CONFETTI_COLORS = [
4538
4787
  "var(--color-primary)",
4539
4788
  "var(--color-success)",
@@ -4640,6 +4889,10 @@ var ConfettiEffect = ({
4640
4889
  );
4641
4890
  };
4642
4891
  ConfettiEffect.displayName = "ConfettiEffect";
4892
+
4893
+ // components/atoms/TypewriterText.tsx
4894
+ init_cn();
4895
+ init_Typography();
4643
4896
  var TypewriterText = ({
4644
4897
  text,
4645
4898
  speed = 40,
@@ -4702,6 +4955,17 @@ var TypewriterText = ({
4702
4955
  ] });
4703
4956
  };
4704
4957
  TypewriterText.displayName = "TypewriterText";
4958
+
4959
+ // components/atoms/SectionHeader.tsx
4960
+ init_cn();
4961
+ init_Typography();
4962
+
4963
+ // components/atoms/StatCard.tsx
4964
+ init_cn();
4965
+ init_Typography();
4966
+
4967
+ // components/atoms/ContentSection.tsx
4968
+ init_cn();
4705
4969
  var backgroundClasses = {
4706
4970
  default: "",
4707
4971
  alt: "bg-surface",
@@ -4736,6 +5000,9 @@ var ContentSection = React114__namespace.default.forwardRef(
4736
5000
  }
4737
5001
  );
4738
5002
  ContentSection.displayName = "ContentSection";
5003
+
5004
+ // components/atoms/AnimatedReveal.tsx
5005
+ init_cn();
4739
5006
  var initialStyles = {
4740
5007
  "fade-up": { opacity: 0, transform: "translateY(24px)" },
4741
5008
  "fade-down": { opacity: 0, transform: "translateY(-24px)" },
@@ -4837,6 +5104,9 @@ var AnimatedReveal = React114__namespace.default.forwardRef(
4837
5104
  }
4838
5105
  );
4839
5106
  AnimatedReveal.displayName = "AnimatedReveal";
5107
+
5108
+ // components/atoms/AnimatedGraphic.tsx
5109
+ init_cn();
4840
5110
  function useFetchedSvg(src) {
4841
5111
  const [svg, setSvg] = React114.useState(null);
4842
5112
  const cache = React114.useRef({});
@@ -5019,6 +5289,9 @@ var AnimatedGraphic = React114__namespace.default.forwardRef(
5019
5289
  }
5020
5290
  );
5021
5291
  AnimatedGraphic.displayName = "AnimatedGraphic";
5292
+
5293
+ // components/atoms/game/HealthBar.tsx
5294
+ init_cn();
5022
5295
  var heartIcon = (filled, size) => /* @__PURE__ */ jsxRuntime.jsx(
5023
5296
  "svg",
5024
5297
  {
@@ -5086,6 +5359,9 @@ function HealthBar({
5086
5359
  ] });
5087
5360
  }
5088
5361
  HealthBar.displayName = "HealthBar";
5362
+
5363
+ // components/atoms/game/ScoreDisplay.tsx
5364
+ init_cn();
5089
5365
  var sizeMap2 = {
5090
5366
  sm: "text-sm",
5091
5367
  md: "text-lg",
@@ -5147,6 +5423,10 @@ function ScoreDisplay({
5147
5423
  );
5148
5424
  }
5149
5425
  ScoreDisplay.displayName = "ScoreDisplay";
5426
+
5427
+ // components/atoms/game/ControlButton.tsx
5428
+ init_cn();
5429
+ init_useEventBus();
5150
5430
  var sizeMap3 = {
5151
5431
  sm: "w-10 h-10 text-sm",
5152
5432
  md: "w-14 h-14 text-base",
@@ -5239,6 +5519,9 @@ function ControlButton({
5239
5519
  );
5240
5520
  }
5241
5521
  ControlButton.displayName = "ControlButton";
5522
+
5523
+ // components/atoms/game/Sprite.tsx
5524
+ init_useEventBus();
5242
5525
  function Sprite({
5243
5526
  spritesheet,
5244
5527
  frameWidth,
@@ -5308,6 +5591,9 @@ function Sprite({
5308
5591
  }
5309
5592
  );
5310
5593
  }
5594
+
5595
+ // components/atoms/game/StateIndicator.tsx
5596
+ init_cn();
5311
5597
  var DEFAULT_STATE_STYLES = {
5312
5598
  idle: { icon: "\u23F8", bgClass: "bg-muted" },
5313
5599
  active: { icon: "\u25B6", bgClass: "bg-success" },
@@ -5358,6 +5644,9 @@ function StateIndicator({
5358
5644
  );
5359
5645
  }
5360
5646
  StateIndicator.displayName = "StateIndicator";
5647
+
5648
+ // components/atoms/game/TimerDisplay.tsx
5649
+ init_cn();
5361
5650
  var sizeMap4 = {
5362
5651
  sm: "text-sm px-2 py-0.5",
5363
5652
  md: "text-lg px-3 py-1",
@@ -5402,6 +5691,9 @@ function TimerDisplay({
5402
5691
  );
5403
5692
  }
5404
5693
  TimerDisplay.displayName = "TimerDisplay";
5694
+
5695
+ // components/atoms/game/ResourceCounter.tsx
5696
+ init_cn();
5405
5697
  var sizeMap5 = {
5406
5698
  sm: { wrapper: "text-xs gap-1 px-1.5 py-0.5", icon: "text-sm" },
5407
5699
  md: { wrapper: "text-sm gap-1.5 px-2 py-1", icon: "text-base" },
@@ -5441,6 +5733,9 @@ function ResourceCounter({
5441
5733
  );
5442
5734
  }
5443
5735
  ResourceCounter.displayName = "ResourceCounter";
5736
+
5737
+ // components/atoms/game/ItemSlot.tsx
5738
+ init_cn();
5444
5739
  var sizeMap6 = {
5445
5740
  sm: "w-10 h-10 text-lg",
5446
5741
  md: "w-14 h-14 text-2xl",
@@ -5509,6 +5804,9 @@ function ItemSlot({
5509
5804
  );
5510
5805
  }
5511
5806
  ItemSlot.displayName = "ItemSlot";
5807
+
5808
+ // components/atoms/game/TurnIndicator.tsx
5809
+ init_cn();
5512
5810
  var sizeMap7 = {
5513
5811
  sm: { wrapper: "text-xs gap-1.5 px-2 py-0.5", dot: "w-1.5 h-1.5" },
5514
5812
  md: { wrapper: "text-sm gap-2 px-3 py-1", dot: "w-2 h-2" },
@@ -5555,6 +5853,9 @@ function TurnIndicator({
5555
5853
  );
5556
5854
  }
5557
5855
  TurnIndicator.displayName = "TurnIndicator";
5856
+
5857
+ // components/atoms/game/ComboCounter.tsx
5858
+ init_cn();
5558
5859
  var sizeMap8 = {
5559
5860
  sm: { combo: "text-lg", label: "text-[10px]", multiplier: "text-xs" },
5560
5861
  md: { combo: "text-2xl", label: "text-xs", multiplier: "text-sm" },
@@ -5606,6 +5907,9 @@ function ComboCounter({
5606
5907
  );
5607
5908
  }
5608
5909
  ComboCounter.displayName = "ComboCounter";
5910
+
5911
+ // components/atoms/game/XPBar.tsx
5912
+ init_cn();
5609
5913
  var sizeMap9 = {
5610
5914
  sm: { bar: "h-2", text: "text-[10px]", badge: "text-[10px] px-1.5 py-0.5" },
5611
5915
  md: { bar: "h-3", text: "text-xs", badge: "text-xs px-2 py-0.5" },
@@ -5668,6 +5972,9 @@ function XPBar({
5668
5972
  ] });
5669
5973
  }
5670
5974
  XPBar.displayName = "XPBar";
5975
+
5976
+ // components/atoms/game/WaypointMarker.tsx
5977
+ init_cn();
5671
5978
  var sizeMap10 = {
5672
5979
  sm: { dot: "w-4 h-4", ring: "w-6 h-6", label: "text-xs mt-1" },
5673
5980
  md: { dot: "w-6 h-6", ring: "w-8 h-8", label: "text-sm mt-1.5" },
@@ -5731,6 +6038,9 @@ function WaypointMarker({
5731
6038
  ] });
5732
6039
  }
5733
6040
  WaypointMarker.displayName = "WaypointMarker";
6041
+
6042
+ // components/atoms/game/StatusEffect.tsx
6043
+ init_cn();
5734
6044
  var sizeMap11 = {
5735
6045
  sm: { container: "w-8 h-8", icon: "text-sm", badge: "text-[10px] -top-1 -right-1 w-4 h-4", timer: "text-[9px]" },
5736
6046
  md: { container: "w-10 h-10", icon: "text-base", badge: "text-xs -top-1 -right-1 w-5 h-5", timer: "text-[10px]" },
@@ -5796,6 +6106,9 @@ function StatusEffect({
5796
6106
  ] });
5797
6107
  }
5798
6108
  StatusEffect.displayName = "StatusEffect";
6109
+
6110
+ // components/atoms/game/DamageNumber.tsx
6111
+ init_cn();
5799
6112
  var sizeMap12 = {
5800
6113
  sm: "text-sm",
5801
6114
  md: "text-lg",
@@ -5839,6 +6152,9 @@ function DamageNumber({
5839
6152
  ] });
5840
6153
  }
5841
6154
  DamageNumber.displayName = "DamageNumber";
6155
+
6156
+ // components/atoms/game/DialogueBubble.tsx
6157
+ init_cn();
5842
6158
  function DialogueBubble({
5843
6159
  speaker,
5844
6160
  text,
@@ -5872,6 +6188,9 @@ function DialogueBubble({
5872
6188
  );
5873
6189
  }
5874
6190
  DialogueBubble.displayName = "DialogueBubble";
6191
+
6192
+ // components/atoms/game/ChoiceButton.tsx
6193
+ init_cn();
5875
6194
  function ChoiceButton({
5876
6195
  text,
5877
6196
  index,
@@ -5913,6 +6232,9 @@ function ChoiceButton({
5913
6232
  );
5914
6233
  }
5915
6234
  ChoiceButton.displayName = "ChoiceButton";
6235
+
6236
+ // components/atoms/game/ActionButton.tsx
6237
+ init_cn();
5916
6238
  var sizeMap13 = {
5917
6239
  sm: { button: "px-3 py-1.5 text-xs", hotkey: "text-[9px] px-1", icon: "text-xs" },
5918
6240
  md: { button: "px-4 py-2 text-sm", hotkey: "text-[10px] px-1.5", icon: "text-sm" },
@@ -5980,6 +6302,9 @@ function ActionButton({
5980
6302
  );
5981
6303
  }
5982
6304
  ActionButton.displayName = "ActionButton";
6305
+
6306
+ // components/atoms/game/MiniMap.tsx
6307
+ init_cn();
5983
6308
  function MiniMap({
5984
6309
  tiles = [],
5985
6310
  units = [],
@@ -6067,6 +6392,10 @@ function MiniMap({
6067
6392
  );
6068
6393
  }
6069
6394
  MiniMap.displayName = "MiniMap";
6395
+
6396
+ // components/molecules/ErrorState.tsx
6397
+ init_Typography();
6398
+ init_useEventBus();
6070
6399
  var ErrorState = ({
6071
6400
  title,
6072
6401
  message,
@@ -6142,6 +6471,9 @@ var ErrorBoundary = class extends React114__namespace.default.Component {
6142
6471
  }
6143
6472
  };
6144
6473
  __publicField(ErrorBoundary, "displayName", "ErrorBoundary");
6474
+
6475
+ // components/molecules/Skeleton.tsx
6476
+ init_cn();
6145
6477
  var pulseClass = "animate-pulse bg-muted/60 rounded";
6146
6478
  function SkeletonLine({ className }) {
6147
6479
  return /* @__PURE__ */ jsxRuntime.jsx(Box, { className: cn(pulseClass, "h-4", className) });
@@ -6345,6 +6677,15 @@ function getAllPages(schema) {
6345
6677
  return pages;
6346
6678
  }
6347
6679
  React114.createContext(null);
6680
+
6681
+ // components/organisms/ComponentPatterns.tsx
6682
+ init_useEventBus();
6683
+ init_Typography();
6684
+
6685
+ // components/molecules/Alert.tsx
6686
+ init_cn();
6687
+ init_Typography();
6688
+ init_useEventBus();
6348
6689
  var variantBorderClasses = {
6349
6690
  info: "border-info",
6350
6691
  success: "border-success",
@@ -6424,6 +6765,10 @@ var Alert = ({
6424
6765
  );
6425
6766
  };
6426
6767
  Alert.displayName = "Alert";
6768
+
6769
+ // components/molecules/Tooltip.tsx
6770
+ init_Typography();
6771
+ init_cn();
6427
6772
  var positionClasses = {
6428
6773
  top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
6429
6774
  bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
@@ -6532,6 +6877,10 @@ var Tooltip = ({
6532
6877
  ] });
6533
6878
  };
6534
6879
  Tooltip.displayName = "Tooltip";
6880
+
6881
+ // components/molecules/Popover.tsx
6882
+ init_Typography();
6883
+ init_cn();
6535
6884
  var positionClasses2 = {
6536
6885
  top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
6537
6886
  bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
@@ -6642,6 +6991,9 @@ var Popover = ({
6642
6991
  ] });
6643
6992
  };
6644
6993
  Popover.displayName = "Popover";
6994
+ init_Typography();
6995
+ init_cn();
6996
+ init_useEventBus();
6645
6997
  var Menu = ({
6646
6998
  trigger,
6647
6999
  items,
@@ -6801,6 +7153,9 @@ var Menu = ({
6801
7153
  ] });
6802
7154
  };
6803
7155
  Menu.displayName = "Menu";
7156
+ init_Typography();
7157
+ init_cn();
7158
+ init_useEventBus();
6804
7159
  function generateItemId(item, index) {
6805
7160
  if (item.id) return item.id;
6806
7161
  const headerText = item.header ?? item.title;
@@ -6907,6 +7262,9 @@ var Accordion = ({
6907
7262
  }) });
6908
7263
  };
6909
7264
  Accordion.displayName = "Accordion";
7265
+
7266
+ // components/molecules/Container.tsx
7267
+ init_cn();
6910
7268
  var sizeStyles7 = {
6911
7269
  xs: "max-w-xs",
6912
7270
  // 320px
@@ -6955,6 +7313,9 @@ var Container = ({
6955
7313
  );
6956
7314
  };
6957
7315
  Container.displayName = "Container";
7316
+
7317
+ // components/molecules/SimpleGrid.tsx
7318
+ init_cn();
6958
7319
  var gapStyles2 = {
6959
7320
  none: "gap-0",
6960
7321
  xs: "gap-1",
@@ -6998,6 +7359,9 @@ var SimpleGrid = ({
6998
7359
  );
6999
7360
  };
7000
7361
  SimpleGrid.displayName = "SimpleGrid";
7362
+ init_Typography();
7363
+ init_cn();
7364
+ init_useEventBus();
7001
7365
  function resolveIcon2(name) {
7002
7366
  const pascalName = name.split(/[-_]/).map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join("");
7003
7367
  const icons = LucideIcons__namespace;
@@ -7141,117 +7505,147 @@ var FloatingActionButton = ({
7141
7505
  return null;
7142
7506
  };
7143
7507
  FloatingActionButton.displayName = "FloatingActionButton";
7144
- var defaultIcon = L__default.default.icon({
7145
- iconUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png",
7146
- iconRetinaUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon-2x.png",
7147
- shadowUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png",
7148
- iconSize: [25, 41],
7149
- iconAnchor: [12, 41],
7150
- popupAnchor: [1, -34],
7151
- shadowSize: [41, 41]
7508
+ init_cn();
7509
+ var MapViewImpl = React114.lazy(async () => {
7510
+ const [reactLeaflet, leafletMod] = await Promise.all([
7511
+ import('react-leaflet'),
7512
+ import('leaflet')
7513
+ ]);
7514
+ await import('leaflet/dist/leaflet.css');
7515
+ const { MapContainer, TileLayer, Marker, Popup, useMap } = reactLeaflet;
7516
+ const L = leafletMod.default;
7517
+ const defaultIcon = L.icon({
7518
+ iconUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png",
7519
+ iconRetinaUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon-2x.png",
7520
+ shadowUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png",
7521
+ iconSize: [25, 41],
7522
+ iconAnchor: [12, 41],
7523
+ popupAnchor: [1, -34],
7524
+ shadowSize: [41, 41]
7525
+ });
7526
+ L.Marker.prototype.options.icon = defaultIcon;
7527
+ const { useEffect: useEffect68, useRef: useRef65, useCallback: useCallback109, useState: useState102 } = React114__namespace.default;
7528
+ const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
7529
+ const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
7530
+ function MapUpdater({ centerLat, centerLng, zoom }) {
7531
+ const map = useMap();
7532
+ const prevRef = useRef65({ centerLat, centerLng, zoom });
7533
+ useEffect68(() => {
7534
+ const prev = prevRef.current;
7535
+ if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
7536
+ map.setView([centerLat, centerLng], zoom);
7537
+ prevRef.current = { centerLat, centerLng, zoom };
7538
+ }
7539
+ }, [map, centerLat, centerLng, zoom]);
7540
+ return null;
7541
+ }
7542
+ function MapClickHandler({ onMapClick }) {
7543
+ const map = useMap();
7544
+ useEffect68(() => {
7545
+ if (!onMapClick) return;
7546
+ const handler = (e) => {
7547
+ onMapClick(e.latlng.lat, e.latlng.lng);
7548
+ };
7549
+ map.on("click", handler);
7550
+ return () => {
7551
+ map.off("click", handler);
7552
+ };
7553
+ }, [map, onMapClick]);
7554
+ return null;
7555
+ }
7556
+ function MapViewInner({
7557
+ markers = [],
7558
+ centerLat = 51.505,
7559
+ centerLng = -0.09,
7560
+ zoom = 13,
7561
+ height = "400px",
7562
+ onMarkerClick,
7563
+ onMapClick,
7564
+ mapClickEvent,
7565
+ markerClickEvent,
7566
+ showClickedPin = false,
7567
+ className,
7568
+ showAttribution = true
7569
+ }) {
7570
+ const eventBus = useEventBus2();
7571
+ const [clickedPosition, setClickedPosition] = useState102(null);
7572
+ const handleMapClick = useCallback109((lat, lng) => {
7573
+ if (showClickedPin) {
7574
+ setClickedPosition({ lat, lng });
7575
+ }
7576
+ onMapClick?.(lat, lng);
7577
+ if (mapClickEvent) {
7578
+ eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
7579
+ }
7580
+ }, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
7581
+ const handleMarkerClick = useCallback109((marker) => {
7582
+ onMarkerClick?.(marker);
7583
+ if (markerClickEvent) {
7584
+ eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
7585
+ }
7586
+ }, [onMarkerClick, markerClickEvent, eventBus]);
7587
+ return /* @__PURE__ */ jsxRuntime.jsx(
7588
+ Box,
7589
+ {
7590
+ className: cn("relative w-full overflow-hidden rounded-lg", className),
7591
+ style: { height },
7592
+ "data-testid": "map-view",
7593
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
7594
+ MapContainer,
7595
+ {
7596
+ center: [centerLat, centerLng],
7597
+ zoom,
7598
+ style: { height: "100%", width: "100%" },
7599
+ attributionControl: showAttribution,
7600
+ children: [
7601
+ /* @__PURE__ */ jsxRuntime.jsx(
7602
+ TileLayer,
7603
+ {
7604
+ url: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
7605
+ attribution: showAttribution ? '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>' : void 0
7606
+ }
7607
+ ),
7608
+ /* @__PURE__ */ jsxRuntime.jsx(MapUpdater, { centerLat, centerLng, zoom }),
7609
+ /* @__PURE__ */ jsxRuntime.jsx(MapClickHandler, { onMapClick: handleMapClick }),
7610
+ showClickedPin && clickedPosition && /* @__PURE__ */ jsxRuntime.jsx(Marker, { position: [clickedPosition.lat, clickedPosition.lng], children: /* @__PURE__ */ jsxRuntime.jsx(Popup, { children: /* @__PURE__ */ jsxRuntime.jsxs(Typography2, { variant: "body2", children: [
7611
+ clickedPosition.lat.toFixed(5),
7612
+ ", ",
7613
+ clickedPosition.lng.toFixed(5)
7614
+ ] }) }) }),
7615
+ markers.map((marker) => /* @__PURE__ */ jsxRuntime.jsx(
7616
+ Marker,
7617
+ {
7618
+ position: [marker.lat, marker.lng],
7619
+ eventHandlers: onMarkerClick || markerClickEvent ? { click: () => handleMarkerClick(marker) } : void 0,
7620
+ children: marker.label ? /* @__PURE__ */ jsxRuntime.jsxs(Popup, { children: [
7621
+ /* @__PURE__ */ jsxRuntime.jsx(Typography2, { variant: "body2", children: marker.label }),
7622
+ marker.category ? /* @__PURE__ */ jsxRuntime.jsx(Typography2, { variant: "caption", className: "text-muted-foreground", children: marker.category }) : null
7623
+ ] }) : null
7624
+ },
7625
+ marker.id
7626
+ ))
7627
+ ]
7628
+ },
7629
+ `map-${centerLat}-${centerLng}-${zoom}`
7630
+ )
7631
+ }
7632
+ );
7633
+ }
7634
+ return { default: MapViewInner };
7152
7635
  });
7153
- L__default.default.Marker.prototype.options.icon = defaultIcon;
7154
- function MapUpdater({ centerLat, centerLng, zoom }) {
7155
- const map = reactLeaflet.useMap();
7156
- const prevRef = React114.useRef({ centerLat, centerLng, zoom });
7157
- React114.useEffect(() => {
7158
- const prev = prevRef.current;
7159
- if (prev.centerLat !== centerLat || prev.centerLng !== centerLng || prev.zoom !== zoom) {
7160
- map.setView([centerLat, centerLng], zoom);
7161
- prevRef.current = { centerLat, centerLng, zoom };
7162
- }
7163
- }, [map, centerLat, centerLng, zoom]);
7164
- return null;
7165
- }
7166
- function MapClickHandler({ onMapClick }) {
7167
- const map = reactLeaflet.useMap();
7168
- React114.useEffect(() => {
7169
- if (!onMapClick) return;
7170
- const handler = (e) => {
7171
- onMapClick(e.latlng.lat, e.latlng.lng);
7172
- };
7173
- map.on("click", handler);
7174
- return () => {
7175
- map.off("click", handler);
7176
- };
7177
- }, [map, onMapClick]);
7178
- return null;
7179
- }
7180
- function MapView({
7181
- markers = [],
7182
- centerLat = 51.505,
7183
- centerLng = -0.09,
7184
- zoom = 13,
7185
- height = "400px",
7186
- onMarkerClick,
7187
- onMapClick,
7188
- mapClickEvent,
7189
- markerClickEvent,
7190
- showClickedPin = false,
7191
- className,
7192
- showAttribution = true
7193
- }) {
7194
- const eventBus = useEventBus();
7195
- const [clickedPosition, setClickedPosition] = React114.useState(null);
7196
- const handleMapClick = React114.useCallback((lat, lng) => {
7197
- if (showClickedPin) {
7198
- setClickedPosition({ lat, lng });
7199
- }
7200
- onMapClick?.(lat, lng);
7201
- if (mapClickEvent) {
7202
- eventBus.emit(`UI:${mapClickEvent}`, { latitude: lat, longitude: lng });
7203
- }
7204
- }, [onMapClick, mapClickEvent, eventBus, showClickedPin]);
7205
- const handleMarkerClick = React114.useCallback((marker) => {
7206
- onMarkerClick?.(marker);
7207
- if (markerClickEvent) {
7208
- eventBus.emit(`UI:${markerClickEvent}`, { ...marker });
7209
- }
7210
- }, [onMarkerClick, markerClickEvent, eventBus]);
7636
+ function MapView(props) {
7211
7637
  return /* @__PURE__ */ jsxRuntime.jsx(
7212
- Box,
7638
+ React114.Suspense,
7213
7639
  {
7214
- className: cn("relative w-full overflow-hidden rounded-lg", className),
7215
- style: { height },
7216
- "data-testid": "map-view",
7217
- children: /* @__PURE__ */ jsxRuntime.jsxs(
7218
- reactLeaflet.MapContainer,
7640
+ fallback: /* @__PURE__ */ jsxRuntime.jsx(
7641
+ Box,
7219
7642
  {
7220
- center: [centerLat, centerLng],
7221
- zoom,
7222
- style: { height: "100%", width: "100%" },
7223
- attributionControl: showAttribution,
7224
- children: [
7225
- /* @__PURE__ */ jsxRuntime.jsx(
7226
- reactLeaflet.TileLayer,
7227
- {
7228
- url: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
7229
- attribution: showAttribution ? '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>' : void 0
7230
- }
7231
- ),
7232
- /* @__PURE__ */ jsxRuntime.jsx(MapUpdater, { centerLat, centerLng, zoom }),
7233
- /* @__PURE__ */ jsxRuntime.jsx(MapClickHandler, { onMapClick: handleMapClick }),
7234
- showClickedPin && clickedPosition && /* @__PURE__ */ jsxRuntime.jsx(reactLeaflet.Marker, { position: [clickedPosition.lat, clickedPosition.lng], children: /* @__PURE__ */ jsxRuntime.jsx(reactLeaflet.Popup, { children: /* @__PURE__ */ jsxRuntime.jsxs(Typography, { variant: "body2", children: [
7235
- clickedPosition.lat.toFixed(5),
7236
- ", ",
7237
- clickedPosition.lng.toFixed(5)
7238
- ] }) }) }),
7239
- markers.map((marker) => /* @__PURE__ */ jsxRuntime.jsx(
7240
- reactLeaflet.Marker,
7241
- {
7242
- position: [marker.lat, marker.lng],
7243
- eventHandlers: onMarkerClick || markerClickEvent ? { click: () => handleMarkerClick(marker) } : void 0,
7244
- children: marker.label ? /* @__PURE__ */ jsxRuntime.jsxs(reactLeaflet.Popup, { children: [
7245
- /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", children: marker.label }),
7246
- marker.category ? /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", className: "text-muted-foreground", children: marker.category }) : null
7247
- ] }) : null
7248
- },
7249
- marker.id
7250
- ))
7251
- ]
7252
- },
7253
- `map-${centerLat}-${centerLng}-${zoom}`
7254
- )
7643
+ className: cn("relative w-full overflow-hidden rounded-lg bg-muted/20", props.className),
7644
+ style: { height: props.height ?? "400px" },
7645
+ "data-testid": "map-view"
7646
+ }
7647
+ ),
7648
+ children: /* @__PURE__ */ jsxRuntime.jsx(MapViewImpl, { ...props })
7255
7649
  }
7256
7650
  );
7257
7651
  }
@@ -7682,6 +8076,10 @@ function MapViewPattern({
7682
8076
  );
7683
8077
  }
7684
8078
  MapViewPattern.displayName = "MapViewPattern";
8079
+
8080
+ // components/molecules/game/ActionButtons.tsx
8081
+ init_cn();
8082
+ init_useEventBus();
7685
8083
  var sizeMap14 = {
7686
8084
  sm: "sm",
7687
8085
  md: "md",
@@ -7801,6 +8199,10 @@ function ActionButtons({
7801
8199
  )) });
7802
8200
  }
7803
8201
  ActionButtons.displayName = "ActionButtons";
8202
+
8203
+ // components/organisms/game/puzzles/sequencer/ActionPalette.tsx
8204
+ init_cn();
8205
+ init_cn();
7804
8206
  var DRAG_MIME = "application/x-almadar-slot-item";
7805
8207
  var SIZE_CONFIG = {
7806
8208
  sm: { px: "px-2 py-1", icon: "text-lg", text: "text-xs" },
@@ -7874,6 +8276,10 @@ function ActionPalette({
7874
8276
  ] });
7875
8277
  }
7876
8278
  ActionPalette.displayName = "ActionPalette";
8279
+
8280
+ // components/templates/AuthLayout.tsx
8281
+ init_cn();
8282
+ init_Typography();
7877
8283
  var AuthLayout = ({
7878
8284
  appName = "{{APP_TITLE}}",
7879
8285
  logo,
@@ -8005,6 +8411,20 @@ var AuthLayout = ({
8005
8411
  ] });
8006
8412
  };
8007
8413
  AuthLayout.displayName = "AuthLayout";
8414
+
8415
+ // components/organisms/game/BattleBoard.tsx
8416
+ init_cn();
8417
+ init_useEventBus();
8418
+ init_Typography();
8419
+
8420
+ // components/molecules/game/IsometricCanvas.tsx
8421
+ init_cn();
8422
+ init_useEventBus();
8423
+ init_Typography();
8424
+
8425
+ // components/molecules/LoadingState.tsx
8426
+ init_cn();
8427
+ init_Typography();
8008
8428
  var LoadingState = ({
8009
8429
  title,
8010
8430
  message,
@@ -9286,6 +9706,10 @@ function BattleTemplate({
9286
9706
  );
9287
9707
  }
9288
9708
  BattleTemplate.displayName = "BattleTemplate";
9709
+
9710
+ // components/organisms/book/BookChapterView.tsx
9711
+ init_Typography();
9712
+ init_cn();
9289
9713
  var MIN_DIAGRAM_WIDTH = 200;
9290
9714
  var ScaledDiagram = ({
9291
9715
  children,
@@ -9375,6 +9799,7 @@ var ScaledDiagram = ({
9375
9799
  );
9376
9800
  };
9377
9801
  ScaledDiagram.displayName = "ScaledDiagram";
9802
+ init_cn();
9378
9803
  var MarkdownContent = React114__namespace.default.memo(
9379
9804
  ({ content, direction, className }) => {
9380
9805
  const { t: _t } = useTranslate();
@@ -9477,6 +9902,7 @@ var MarkdownContent = React114__namespace.default.memo(
9477
9902
  (prev, next) => prev.content === next.content && prev.className === next.className && prev.direction === next.direction
9478
9903
  );
9479
9904
  MarkdownContent.displayName = "MarkdownContent";
9905
+ init_useEventBus();
9480
9906
  SyntaxHighlighter__default.default.registerLanguage("json", langJson__default.default);
9481
9907
  SyntaxHighlighter__default.default.registerLanguage("javascript", langJavascript__default.default);
9482
9908
  SyntaxHighlighter__default.default.registerLanguage("js", langJavascript__default.default);
@@ -9759,6 +10185,9 @@ var CodeBlock = React114__namespace.default.memo(
9759
10185
  (prev, next) => prev.language === next.language && prev.code === next.code && prev.showCopyButton === next.showCopyButton && prev.maxHeight === next.maxHeight && prev.foldable === next.foldable
9760
10186
  );
9761
10187
  CodeBlock.displayName = "CodeBlock";
10188
+
10189
+ // components/molecules/Card.tsx
10190
+ init_useEventBus();
9762
10191
  function Card2({
9763
10192
  title,
9764
10193
  subtitle,
@@ -9844,6 +10273,10 @@ function Card2({
9844
10273
  );
9845
10274
  }
9846
10275
  Card2.displayName = "Card";
10276
+
10277
+ // components/molecules/QuizBlock.tsx
10278
+ init_Typography();
10279
+ init_cn();
9847
10280
  var QuizBlock = ({
9848
10281
  question,
9849
10282
  answer,
@@ -9873,6 +10306,10 @@ var QuizBlock = ({
9873
10306
  ] }) });
9874
10307
  };
9875
10308
  QuizBlock.displayName = "QuizBlock";
10309
+ init_Typography();
10310
+ init_Typography();
10311
+ init_useEventBus();
10312
+ init_cn();
9876
10313
  var StateNode = ({ state, config }) => {
9877
10314
  const { t } = useTranslate();
9878
10315
  const size = state.radius * 2;
@@ -11107,6 +11544,9 @@ function gearTeethPath(cx, cy, innerRadius, outerRadius, numTeeth) {
11107
11544
  parts.push("Z");
11108
11545
  return parts.join(" ");
11109
11546
  }
11547
+
11548
+ // components/organisms/JazariStateMachine.tsx
11549
+ init_cn();
11110
11550
  var JAZARI_VISUALIZER_CONFIG = {
11111
11551
  ...DEFAULT_CONFIG,
11112
11552
  colors: {
@@ -11351,6 +11791,9 @@ function parseContentSegments(content) {
11351
11791
  }
11352
11792
  return segments;
11353
11793
  }
11794
+
11795
+ // components/organisms/ContentRenderer.tsx
11796
+ init_cn();
11354
11797
  var ContentRenderer = ({
11355
11798
  content,
11356
11799
  segments: segmentsProp,
@@ -11426,6 +11869,9 @@ var ContentRenderer = ({
11426
11869
  }) });
11427
11870
  };
11428
11871
  ContentRenderer.displayName = "ContentRenderer";
11872
+
11873
+ // components/organisms/book/BookChapterView.tsx
11874
+ init_cn();
11429
11875
  var BookChapterView = ({
11430
11876
  chapter,
11431
11877
  direction,
@@ -11454,6 +11900,10 @@ var BookChapterView = ({
11454
11900
  );
11455
11901
  };
11456
11902
  BookChapterView.displayName = "BookChapterView";
11903
+
11904
+ // components/organisms/book/BookCoverPage.tsx
11905
+ init_Typography();
11906
+ init_cn();
11457
11907
  var BookCoverPage = ({
11458
11908
  title,
11459
11909
  subtitle,
@@ -11522,6 +11972,8 @@ var BookCoverPage = ({
11522
11972
  );
11523
11973
  };
11524
11974
  BookCoverPage.displayName = "BookCoverPage";
11975
+ init_Typography();
11976
+ init_cn();
11525
11977
  var BookNavBar = ({
11526
11978
  currentPage,
11527
11979
  totalPages,
@@ -11612,6 +12064,10 @@ var BookNavBar = ({
11612
12064
  );
11613
12065
  };
11614
12066
  BookNavBar.displayName = "BookNavBar";
12067
+
12068
+ // components/organisms/book/BookTableOfContents.tsx
12069
+ init_Typography();
12070
+ init_cn();
11615
12071
  var BookTableOfContents = ({
11616
12072
  parts,
11617
12073
  currentChapterId,
@@ -11657,6 +12113,13 @@ var BookTableOfContents = ({
11657
12113
  );
11658
12114
  };
11659
12115
  BookTableOfContents.displayName = "BookTableOfContents";
12116
+ init_useEventBus();
12117
+ init_cn();
12118
+
12119
+ // components/molecules/EmptyState.tsx
12120
+ init_cn();
12121
+ init_Typography();
12122
+ init_useEventBus();
11660
12123
  var ICON_MAP = {
11661
12124
  "check-circle": LucideIcons.CheckCircle,
11662
12125
  check: LucideIcons.CheckCircle,
@@ -11954,6 +12417,9 @@ var BookViewer = ({
11954
12417
  ] });
11955
12418
  };
11956
12419
  BookViewer.displayName = "BookViewer";
12420
+
12421
+ // components/molecules/Grid.tsx
12422
+ init_cn();
11957
12423
  var colStyles2 = {
11958
12424
  none: "grid-cols-none",
11959
12425
  1: "grid-cols-1",
@@ -12189,6 +12655,9 @@ function DividerPattern({
12189
12655
  );
12190
12656
  }
12191
12657
  DividerPattern.displayName = "DividerPattern";
12658
+ init_Typography();
12659
+ init_cn();
12660
+ init_useEventBus();
12192
12661
  var Breadcrumb = ({
12193
12662
  items,
12194
12663
  separator = LucideIcons.ChevronRight,
@@ -12273,6 +12742,7 @@ var Breadcrumb = ({
12273
12742
  );
12274
12743
  };
12275
12744
  Breadcrumb.displayName = "Breadcrumb";
12745
+ init_useEventBus();
12276
12746
  function BuilderBoard({
12277
12747
  entity,
12278
12748
  completeEvent = "PUZZLE_COMPLETE",
@@ -12423,6 +12893,10 @@ function BuilderBoard({
12423
12893
  );
12424
12894
  }
12425
12895
  BuilderBoard.displayName = "BuilderBoard";
12896
+
12897
+ // components/molecules/ButtonGroup.tsx
12898
+ init_cn();
12899
+ init_useEventBus();
12426
12900
  function useSafeEventBus2() {
12427
12901
  try {
12428
12902
  return useEventBus();
@@ -12527,6 +13001,11 @@ var ButtonGroup = ({
12527
13001
  );
12528
13002
  };
12529
13003
  ButtonGroup.displayName = "ButtonGroup";
13004
+
13005
+ // components/molecules/CalendarGrid.tsx
13006
+ init_cn();
13007
+ init_Typography();
13008
+ init_useEventBus();
12530
13009
  function getStartOfWeek(date) {
12531
13010
  const d = new Date(date);
12532
13011
  const day = d.getDay();
@@ -12718,6 +13197,10 @@ function CalendarGrid({
12718
13197
  }
12719
13198
  CalendarGrid.displayName = "CalendarGrid";
12720
13199
 
13200
+ // components/organisms/game/CanvasEffect.tsx
13201
+ init_cn();
13202
+ init_useEventBus();
13203
+
12721
13204
  // components/organisms/game/types/effects.ts
12722
13205
  var EMPTY_EFFECT_STATE = {
12723
13206
  particles: [],
@@ -13958,6 +14441,9 @@ function CanvasEffect(props) {
13958
14441
  }
13959
14442
  CanvasEffect.displayName = "CanvasEffect";
13960
14443
 
14444
+ // components/organisms/CardGrid.tsx
14445
+ init_cn();
14446
+
13961
14447
  // lib/getNestedValue.ts
13962
14448
  function getNestedValue(obj, path) {
13963
14449
  if (obj === null || obj === void 0 || !path) {
@@ -13979,6 +14465,13 @@ function getNestedValue(obj, path) {
13979
14465
  }
13980
14466
  return value;
13981
14467
  }
14468
+
14469
+ // components/organisms/CardGrid.tsx
14470
+ init_useEventBus();
14471
+ init_Typography();
14472
+ init_Typography();
14473
+ init_cn();
14474
+ init_useEventBus();
13982
14475
  var Pagination = ({
13983
14476
  currentPage,
13984
14477
  totalPages,
@@ -14373,6 +14866,10 @@ var CardGrid = ({
14373
14866
  ] });
14374
14867
  };
14375
14868
  CardGrid.displayName = "CardGrid";
14869
+
14870
+ // components/molecules/Carousel.tsx
14871
+ init_cn();
14872
+ init_useEventBus();
14376
14873
  function useSafeEventBus3() {
14377
14874
  try {
14378
14875
  return useEventBus();
@@ -14606,6 +15103,10 @@ var Carousel = ({
14606
15103
  ] });
14607
15104
  };
14608
15105
  Carousel.displayName = "Carousel";
15106
+
15107
+ // components/organisms/game/CastleBoard.tsx
15108
+ init_cn();
15109
+ init_useEventBus();
14609
15110
  function CastleBoard({
14610
15111
  entity,
14611
15112
  scale = 0.45,
@@ -14735,6 +15236,10 @@ function CastleTemplate({
14735
15236
  );
14736
15237
  }
14737
15238
  CastleTemplate.displayName = "CastleTemplate";
15239
+
15240
+ // components/organisms/Chart.tsx
15241
+ init_cn();
15242
+ init_useEventBus();
14738
15243
  var CHART_COLORS = [
14739
15244
  "var(--color-primary)",
14740
15245
  "var(--color-success)",
@@ -14989,6 +15494,9 @@ var Chart = ({
14989
15494
  ] }) });
14990
15495
  };
14991
15496
  Chart.displayName = "Chart";
15497
+
15498
+ // components/molecules/ChartLegend.tsx
15499
+ init_cn();
14992
15500
  var ChartLegend = ({
14993
15501
  items,
14994
15502
  className,
@@ -15011,6 +15519,7 @@ var ChartLegend = ({
15011
15519
  ] }, item.label)) });
15012
15520
  };
15013
15521
  ChartLegend.displayName = "ChartLegend";
15522
+ init_useEventBus();
15014
15523
  function ClassifierBoard({
15015
15524
  entity,
15016
15525
  completeEvent = "PUZZLE_COMPLETE",
@@ -15150,6 +15659,7 @@ function ClassifierBoard({
15150
15659
  );
15151
15660
  }
15152
15661
  ClassifierBoard.displayName = "ClassifierBoard";
15662
+ init_cn();
15153
15663
  function CodeView({
15154
15664
  data,
15155
15665
  label,
@@ -15175,6 +15685,12 @@ function CodeView({
15175
15685
  ] });
15176
15686
  }
15177
15687
  CodeView.displayName = "CodeView";
15688
+
15689
+ // components/organisms/CodeViewer.tsx
15690
+ init_cn();
15691
+ init_Typography();
15692
+ init_cn();
15693
+ init_useEventBus();
15178
15694
  var Tabs = ({
15179
15695
  items,
15180
15696
  tabs,
@@ -15306,6 +15822,9 @@ var Tabs = ({
15306
15822
  ] });
15307
15823
  };
15308
15824
  Tabs.displayName = "Tabs";
15825
+
15826
+ // components/organisms/CodeViewer.tsx
15827
+ init_useEventBus();
15309
15828
  function generateDiff(oldVal, newVal) {
15310
15829
  const oldLines = oldVal.split("\n");
15311
15830
  const newLines = newVal.split("\n");
@@ -15550,6 +16069,7 @@ var CodeViewer = ({
15550
16069
  ] }) });
15551
16070
  };
15552
16071
  CodeViewer.displayName = "CodeViewer";
16072
+ init_cn();
15553
16073
  var eventIcons = {
15554
16074
  attack: LucideIcons.Sword,
15555
16075
  defend: LucideIcons.Shield,
@@ -15630,6 +16150,8 @@ function CombatLog({
15630
16150
  ] });
15631
16151
  }
15632
16152
  CombatLog.displayName = "CombatLog";
16153
+ init_Typography();
16154
+ init_cn();
15633
16155
  var variantConfig = {
15634
16156
  danger: {
15635
16157
  icon: LucideIcons.Trash2,
@@ -15733,6 +16255,10 @@ var ConfirmDialog = ({
15733
16255
  );
15734
16256
  };
15735
16257
  ConfirmDialog.displayName = "ConfirmDialog";
16258
+
16259
+ // components/templates/CounterTemplate.tsx
16260
+ init_cn();
16261
+ init_Typography();
15736
16262
  var sizeStyles8 = {
15737
16263
  sm: { display: "text-4xl", button: "sm" },
15738
16264
  md: { display: "text-6xl", button: "md" },
@@ -15934,6 +16460,10 @@ var CounterTemplate = (props) => {
15934
16460
  }
15935
16461
  };
15936
16462
  CounterTemplate.displayName = "CounterTemplate";
16463
+
16464
+ // components/molecules/game/CraftingRecipe.tsx
16465
+ init_cn();
16466
+ init_useEventBus();
15937
16467
  var rarityValues = ["common", "uncommon", "rare", "epic", "legendary"];
15938
16468
  function isValidRarity(value) {
15939
16469
  if (!value) return false;
@@ -16004,6 +16534,11 @@ function CraftingRecipe({
16004
16534
  );
16005
16535
  }
16006
16536
  CraftingRecipe.displayName = "CraftingRecipe";
16537
+
16538
+ // components/organisms/CustomPattern.tsx
16539
+ init_useEventBus();
16540
+ init_cn();
16541
+ init_Typography();
16007
16542
  var ALLOWED_CUSTOM_COMPONENTS = [
16008
16543
  "div",
16009
16544
  "span",
@@ -16223,6 +16758,10 @@ function CustomPattern({
16223
16758
  }
16224
16759
  }
16225
16760
  CustomPattern.displayName = "CustomPattern";
16761
+
16762
+ // components/molecules/game/DPad.tsx
16763
+ init_cn();
16764
+ init_useEventBus();
16226
16765
  var sizeMap15 = {
16227
16766
  sm: { button: "sm", gap: "gap-0.5", container: "w-28" },
16228
16767
  md: { button: "md", gap: "gap-1", container: "w-40" },
@@ -16291,6 +16830,9 @@ function DPad({
16291
16830
  ] });
16292
16831
  }
16293
16832
  DPad.displayName = "DPad";
16833
+
16834
+ // components/organisms/layout/DashboardGrid.tsx
16835
+ init_cn();
16294
16836
  var gapStyles5 = {
16295
16837
  sm: "gap-2",
16296
16838
  md: "gap-4",
@@ -16343,6 +16885,10 @@ var DashboardGrid = ({
16343
16885
  );
16344
16886
  };
16345
16887
  DashboardGrid.displayName = "DashboardGrid";
16888
+
16889
+ // components/templates/DashboardLayout.tsx
16890
+ init_cn();
16891
+ init_Typography();
16346
16892
  var DashboardLayout = ({
16347
16893
  appName = "{{APP_TITLE}}",
16348
16894
  logo,
@@ -16636,6 +17182,11 @@ var NavLink = ({
16636
17182
  );
16637
17183
  };
16638
17184
  NavLink.displayName = "NavLink";
17185
+
17186
+ // components/molecules/DataGrid.tsx
17187
+ init_cn();
17188
+ init_useEventBus();
17189
+ init_Typography();
16639
17190
  function fieldLabel2(key) {
16640
17191
  return key.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/[_-]/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
16641
17192
  }
@@ -16955,6 +17506,11 @@ var DataGrid = ({
16955
17506
  ] });
16956
17507
  };
16957
17508
  DataGrid.displayName = "DataGrid";
17509
+
17510
+ // components/molecules/DataList.tsx
17511
+ init_cn();
17512
+ init_useEventBus();
17513
+ init_Typography();
16958
17514
  function fieldLabel3(key) {
16959
17515
  return key.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/[_-]/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
16960
17516
  }
@@ -17304,6 +17860,14 @@ var DataList = ({
17304
17860
  );
17305
17861
  };
17306
17862
  DataList.displayName = "DataList";
17863
+
17864
+ // components/organisms/DataTable.tsx
17865
+ init_cn();
17866
+ init_Typography();
17867
+
17868
+ // components/molecules/FormField.tsx
17869
+ init_cn();
17870
+ init_Typography();
17307
17871
  var FormField = ({
17308
17872
  label,
17309
17873
  required,
@@ -17320,6 +17884,10 @@ var FormField = ({
17320
17884
  ] });
17321
17885
  };
17322
17886
  FormField.displayName = "FormField";
17887
+
17888
+ // components/molecules/FilterGroup.tsx
17889
+ init_cn();
17890
+ init_useEventBus();
17323
17891
  var resolveFilterType = (filter) => filter.filterType ?? filter.type;
17324
17892
  var FilterGroup = ({
17325
17893
  entity,
@@ -17695,6 +18263,9 @@ var FilterGroup = ({
17695
18263
  );
17696
18264
  };
17697
18265
  FilterGroup.displayName = "FilterGroup";
18266
+
18267
+ // components/molecules/Flex.tsx
18268
+ init_cn();
17698
18269
  var directionStyles = {
17699
18270
  row: "flex-row",
17700
18271
  "row-reverse": "flex-row-reverse",
@@ -17773,6 +18344,10 @@ var Flex = ({
17773
18344
  );
17774
18345
  };
17775
18346
  Flex.displayName = "Flex";
18347
+
18348
+ // components/molecules/InputGroup.tsx
18349
+ init_Typography();
18350
+ init_cn();
17776
18351
  var InputGroup = ({
17777
18352
  leftAddon,
17778
18353
  rightAddon,
@@ -17828,6 +18403,10 @@ var InputGroup = ({
17828
18403
  };
17829
18404
  InputGroup.displayName = "InputGroup";
17830
18405
 
18406
+ // components/molecules/RelationSelect.tsx
18407
+ init_cn();
18408
+ init_Typography();
18409
+
17831
18410
  // lib/debug.ts
17832
18411
  var DEBUG_ENABLED = typeof window !== "undefined" && (localStorage.getItem("debug") === "true" || process.env.NODE_ENV === "development");
17833
18412
  function isDebugEnabled() {
@@ -18058,6 +18637,8 @@ var RelationSelect = ({
18058
18637
  ] });
18059
18638
  };
18060
18639
  RelationSelect.displayName = "RelationSelect";
18640
+ init_cn();
18641
+ init_useEventBus();
18061
18642
  var SearchInput = ({
18062
18643
  value,
18063
18644
  onSearch,
@@ -18148,6 +18729,9 @@ var SearchInput = ({
18148
18729
  ] });
18149
18730
  };
18150
18731
  SearchInput.displayName = "SearchInput";
18732
+ init_Typography();
18733
+ init_cn();
18734
+ init_useEventBus();
18151
18735
  var SidePanel = ({
18152
18736
  title,
18153
18737
  children,
@@ -18209,6 +18793,11 @@ var SidePanel = ({
18209
18793
  ] });
18210
18794
  };
18211
18795
  SidePanel.displayName = "SidePanel";
18796
+
18797
+ // components/molecules/WizardProgress.tsx
18798
+ init_Typography();
18799
+ init_cn();
18800
+ init_useEventBus();
18212
18801
  var WizardProgress = ({
18213
18802
  steps,
18214
18803
  currentStep,
@@ -18288,6 +18877,9 @@ var WizardProgress = ({
18288
18877
  );
18289
18878
  };
18290
18879
  WizardProgress.displayName = "WizardProgress";
18880
+ init_Typography();
18881
+ init_cn();
18882
+ init_useEventBus();
18291
18883
  function useSafeEventBus4() {
18292
18884
  try {
18293
18885
  return useEventBus();
@@ -18369,6 +18961,11 @@ var WizardNavigation = ({
18369
18961
  );
18370
18962
  };
18371
18963
  WizardNavigation.displayName = "WizardNavigation";
18964
+
18965
+ // components/molecules/RepeatableFormSection.tsx
18966
+ init_cn();
18967
+ init_Typography();
18968
+ init_useEventBus();
18372
18969
  var RepeatableFormSection = ({
18373
18970
  sectionType,
18374
18971
  title,
@@ -18493,6 +19090,10 @@ var RepeatableFormSection = ({
18493
19090
  ] });
18494
19091
  };
18495
19092
  RepeatableFormSection.displayName = "RepeatableFormSection";
19093
+
19094
+ // components/molecules/ViolationAlert.tsx
19095
+ init_cn();
19096
+ init_Typography();
18496
19097
  var actionTypeLabels = {
18497
19098
  measure: "Corrective Measure",
18498
19099
  admin: "Administrative Action",
@@ -18685,6 +19286,10 @@ var ViolationAlert = ({
18685
19286
  );
18686
19287
  };
18687
19288
  ViolationAlert.displayName = "ViolationAlert";
19289
+
19290
+ // components/molecules/FormSectionHeader.tsx
19291
+ init_cn();
19292
+ init_Typography();
18688
19293
  var FormSectionHeader = ({
18689
19294
  title,
18690
19295
  subtitle,
@@ -18751,6 +19356,9 @@ var FormSectionHeader = ({
18751
19356
  );
18752
19357
  };
18753
19358
  FormSectionHeader.displayName = "FormSectionHeader";
19359
+
19360
+ // components/molecules/FlipCard.tsx
19361
+ init_cn();
18754
19362
  var FlipCard = ({
18755
19363
  front,
18756
19364
  back,
@@ -18787,6 +19395,9 @@ var FlipCard = ({
18787
19395
  );
18788
19396
  };
18789
19397
  FlipCard.displayName = "FlipCard";
19398
+
19399
+ // components/molecules/DateRangeSelector.tsx
19400
+ init_cn();
18790
19401
  var DEFAULT_OPTIONS = [
18791
19402
  { label: "1W", value: "week" },
18792
19403
  { label: "1M", value: "month" },
@@ -18811,6 +19422,9 @@ var DateRangeSelector = ({
18811
19422
  )) });
18812
19423
  };
18813
19424
  DateRangeSelector.displayName = "DateRangeSelector";
19425
+
19426
+ // components/molecules/LineChart.tsx
19427
+ init_cn();
18814
19428
  var LineChart2 = ({
18815
19429
  data,
18816
19430
  width = 400,
@@ -18918,6 +19532,9 @@ var LineChart2 = ({
18918
19532
  ) });
18919
19533
  };
18920
19534
  LineChart2.displayName = "LineChart";
19535
+
19536
+ // components/molecules/ProgressDots.tsx
19537
+ init_cn();
18921
19538
  var sizeMap16 = {
18922
19539
  sm: { dot: 6, active: 8 },
18923
19540
  md: { dot: 8, active: 10 },
@@ -18969,6 +19586,9 @@ var ProgressDots = ({
18969
19586
  }) });
18970
19587
  };
18971
19588
  ProgressDots.displayName = "ProgressDots";
19589
+
19590
+ // components/molecules/game/StatBadge.tsx
19591
+ init_cn();
18972
19592
  var sizeMap17 = {
18973
19593
  sm: "text-xs px-2 py-1",
18974
19594
  md: "text-sm px-3 py-1.5",
@@ -19042,6 +19662,10 @@ function StatBadge({
19042
19662
  );
19043
19663
  }
19044
19664
  StatBadge.displayName = "StatBadge";
19665
+
19666
+ // components/molecules/game/InventoryGrid.tsx
19667
+ init_cn();
19668
+ init_useEventBus();
19045
19669
  var columnMap = {
19046
19670
  2: "grid-cols-2",
19047
19671
  3: "grid-cols-3",
@@ -19105,6 +19729,10 @@ function InventoryGrid({
19105
19729
  );
19106
19730
  }
19107
19731
  InventoryGrid.displayName = "InventoryGrid";
19732
+
19733
+ // components/molecules/game/QuestTracker.tsx
19734
+ init_cn();
19735
+ init_Typography();
19108
19736
  function QuestTracker({
19109
19737
  quests,
19110
19738
  activeQuestId,
@@ -19174,6 +19802,10 @@ function QuestTracker({
19174
19802
  }) });
19175
19803
  }
19176
19804
  QuestTracker.displayName = "QuestTracker";
19805
+
19806
+ // components/molecules/game/PowerupSlots.tsx
19807
+ init_cn();
19808
+ init_Typography();
19177
19809
  function formatTime2(seconds) {
19178
19810
  if (seconds >= 60) {
19179
19811
  const mins = Math.floor(seconds / 60);
@@ -19229,6 +19861,9 @@ function PowerupSlots({
19229
19861
  ] });
19230
19862
  }
19231
19863
  PowerupSlots.displayName = "PowerupSlots";
19864
+
19865
+ // components/molecules/game/GameCanvas2D.tsx
19866
+ init_cn();
19232
19867
  function GameCanvas2D({
19233
19868
  width = 800,
19234
19869
  height = 600,
@@ -19284,6 +19919,10 @@ function GameCanvas2D({
19284
19919
  ) });
19285
19920
  }
19286
19921
  GameCanvas2D.displayName = "GameCanvas2D";
19922
+
19923
+ // components/molecules/game/HealthPanel.tsx
19924
+ init_cn();
19925
+ init_Typography();
19287
19926
  var sizeMap18 = {
19288
19927
  sm: { gap: "gap-1", padding: "px-2 py-1.5", text: "text-xs", barSize: "sm" },
19289
19928
  md: { gap: "gap-1.5", padding: "px-3 py-2", text: "text-sm", barSize: "md" },
@@ -19394,6 +20033,9 @@ function HealthPanel({
19394
20033
  );
19395
20034
  }
19396
20035
  HealthPanel.displayName = "HealthPanel";
20036
+
20037
+ // components/molecules/game/ScoreBoard.tsx
20038
+ init_cn();
19397
20039
  function ScoreBoard({
19398
20040
  score: rawScore,
19399
20041
  highScore: rawHighScore,
@@ -19461,6 +20103,9 @@ function ScoreBoard({
19461
20103
  );
19462
20104
  }
19463
20105
  ScoreBoard.displayName = "ScoreBoard";
20106
+
20107
+ // components/molecules/game/ResourceBar.tsx
20108
+ init_cn();
19464
20109
  function ResourceBar({
19465
20110
  resources,
19466
20111
  size = "md",
@@ -19489,6 +20134,10 @@ function ResourceBar({
19489
20134
  );
19490
20135
  }
19491
20136
  ResourceBar.displayName = "ResourceBar";
20137
+
20138
+ // components/molecules/game/TurnPanel.tsx
20139
+ init_cn();
20140
+ init_useEventBus();
19492
20141
  function TurnPanel({
19493
20142
  currentTurn,
19494
20143
  maxTurns,
@@ -19540,6 +20189,10 @@ function TurnPanel({
19540
20189
  );
19541
20190
  }
19542
20191
  TurnPanel.displayName = "TurnPanel";
20192
+
20193
+ // components/molecules/game/EnemyPlate.tsx
20194
+ init_cn();
20195
+ init_Typography();
19543
20196
  var effectVariantMap2 = {
19544
20197
  buff: "success",
19545
20198
  debuff: "danger",
@@ -19617,6 +20270,11 @@ function EnemyPlate({
19617
20270
  );
19618
20271
  }
19619
20272
  EnemyPlate.displayName = "EnemyPlate";
20273
+
20274
+ // components/molecules/game/UnitCommandBar.tsx
20275
+ init_cn();
20276
+ init_Typography();
20277
+ init_useEventBus();
19620
20278
  function UnitCommandBar({
19621
20279
  commands,
19622
20280
  selectedUnitId,
@@ -19663,6 +20321,9 @@ function UnitCommandBar({
19663
20321
  );
19664
20322
  }
19665
20323
  UnitCommandBar.displayName = "UnitCommandBar";
20324
+
20325
+ // components/molecules/game/GameHud.tsx
20326
+ init_cn();
19666
20327
  var positionMap = {
19667
20328
  top: "top-0 left-0 right-0 flex justify-between items-start p-4",
19668
20329
  bottom: "bottom-0 left-0 right-0 flex justify-between items-end p-4",
@@ -19724,6 +20385,10 @@ function GameHud({
19724
20385
  );
19725
20386
  }
19726
20387
  GameHud.displayName = "GameHud";
20388
+
20389
+ // components/molecules/game/DialogueBox.tsx
20390
+ init_cn();
20391
+ init_useEventBus();
19727
20392
  function DialogueBox({
19728
20393
  dialogue,
19729
20394
  typewriterSpeed = 30,
@@ -19908,6 +20573,10 @@ function DialogueBox({
19908
20573
  }
19909
20574
  );
19910
20575
  }
20576
+
20577
+ // components/molecules/game/InventoryPanel.tsx
20578
+ init_cn();
20579
+ init_useEventBus();
19911
20580
  function InventoryPanel({
19912
20581
  items,
19913
20582
  slots,
@@ -20059,6 +20728,10 @@ function InventoryPanel({
20059
20728
  )
20060
20729
  ] });
20061
20730
  }
20731
+
20732
+ // components/molecules/game/GameMenu.tsx
20733
+ init_cn();
20734
+ init_useEventBus();
20062
20735
  var variantMap3 = {
20063
20736
  primary: "bg-[var(--color-primary)] hover:bg-blue-500 text-[var(--color-primary-foreground)] border-blue-400 shadow-lg shadow-blue-500/25",
20064
20737
  secondary: "bg-[var(--color-surface,#374151)] hover:bg-gray-600 text-[var(--color-foreground)] border-gray-500",
@@ -20157,6 +20830,10 @@ function GameMenu({
20157
20830
  );
20158
20831
  }
20159
20832
  GameMenu.displayName = "GameMenu";
20833
+
20834
+ // components/molecules/game/GameOverScreen.tsx
20835
+ init_cn();
20836
+ init_useEventBus();
20160
20837
  var variantColors = {
20161
20838
  victory: {
20162
20839
  bg: "from-green-900/90 to-emerald-950/90",
@@ -20286,6 +20963,10 @@ function GameOverScreen({
20286
20963
  );
20287
20964
  }
20288
20965
  GameOverScreen.displayName = "GameOverScreen";
20966
+
20967
+ // components/molecules/game/PlatformerCanvas.tsx
20968
+ init_cn();
20969
+ init_useEventBus();
20289
20970
  var PLATFORM_COLORS = {
20290
20971
  ground: "#4a7c59",
20291
20972
  platform: "#7c6b4a",
@@ -20533,6 +21214,9 @@ function PlatformerCanvas({
20533
21214
  );
20534
21215
  }
20535
21216
  PlatformerCanvas.displayName = "PlatformerCanvas";
21217
+
21218
+ // components/molecules/GraphView.tsx
21219
+ init_cn();
20536
21220
  var GROUP_COLORS = [
20537
21221
  "#3b82f6",
20538
21222
  // blue-500
@@ -20846,6 +21530,10 @@ var GraphView = ({
20846
21530
  );
20847
21531
  };
20848
21532
  GraphView.displayName = "GraphView";
21533
+
21534
+ // components/molecules/NumberStepper.tsx
21535
+ init_cn();
21536
+ init_useEventBus();
20849
21537
  function useSafeEventBus5() {
20850
21538
  try {
20851
21539
  return useEventBus();
@@ -21022,6 +21710,10 @@ var NumberStepper = ({
21022
21710
  );
21023
21711
  };
21024
21712
  NumberStepper.displayName = "NumberStepper";
21713
+
21714
+ // components/molecules/StarRating.tsx
21715
+ init_cn();
21716
+ init_useEventBus();
21025
21717
  function useSafeEventBus6() {
21026
21718
  try {
21027
21719
  return useEventBus();
@@ -21159,6 +21851,11 @@ var StarRating = ({
21159
21851
  );
21160
21852
  };
21161
21853
  StarRating.displayName = "StarRating";
21854
+
21855
+ // components/molecules/UploadDropZone.tsx
21856
+ init_cn();
21857
+ init_Typography();
21858
+ init_useEventBus();
21162
21859
  function useSafeEventBus7() {
21163
21860
  try {
21164
21861
  return useEventBus();
@@ -21319,6 +22016,10 @@ var UploadDropZone = ({
21319
22016
  );
21320
22017
  };
21321
22018
  UploadDropZone.displayName = "UploadDropZone";
22019
+
22020
+ // components/molecules/Lightbox.tsx
22021
+ init_cn();
22022
+ init_useEventBus();
21322
22023
  function useSafeEventBus8() {
21323
22024
  try {
21324
22025
  return useEventBus();
@@ -21506,6 +22207,10 @@ var Lightbox = ({
21506
22207
  );
21507
22208
  };
21508
22209
  Lightbox.displayName = "Lightbox";
22210
+
22211
+ // components/molecules/StatDisplay.tsx
22212
+ init_cn();
22213
+ init_Typography();
21509
22214
  function formatValue3(value, format, max) {
21510
22215
  if (value == null) return "0";
21511
22216
  const v = typeof value === "number" ? value : value;
@@ -21580,6 +22285,10 @@ var StatDisplay = ({
21580
22285
  ] }) });
21581
22286
  };
21582
22287
  StatDisplay.displayName = "StatDisplay";
22288
+
22289
+ // components/molecules/Meter.tsx
22290
+ init_cn();
22291
+ init_useEventBus();
21583
22292
  var DEFAULT_THRESHOLDS = [
21584
22293
  { value: 30, color: "var(--color-error)" },
21585
22294
  { value: 70, color: "var(--color-warning)" },
@@ -21783,6 +22492,10 @@ var Meter = ({
21783
22492
  ] }) });
21784
22493
  };
21785
22494
  Meter.displayName = "Meter";
22495
+
22496
+ // components/molecules/SwipeableRow.tsx
22497
+ init_cn();
22498
+ init_useEventBus();
21786
22499
  function useSafeEventBus9() {
21787
22500
  try {
21788
22501
  return useEventBus();
@@ -21954,6 +22667,10 @@ var SwipeableRow = ({
21954
22667
  );
21955
22668
  };
21956
22669
  SwipeableRow.displayName = "SwipeableRow";
22670
+
22671
+ // components/molecules/SortableList.tsx
22672
+ init_cn();
22673
+ init_useEventBus();
21957
22674
  var EMPTY_ITEMS = [];
21958
22675
  function useSafeEventBus10() {
21959
22676
  try {
@@ -22050,6 +22767,10 @@ function SortableListInner({
22050
22767
  }
22051
22768
  var SortableList = SortableListInner;
22052
22769
  SortableList.displayName = "SortableList";
22770
+
22771
+ // components/molecules/PullToRefresh.tsx
22772
+ init_cn();
22773
+ init_useEventBus();
22053
22774
  function useSafeEventBus11() {
22054
22775
  try {
22055
22776
  return useEventBus();
@@ -22151,6 +22872,87 @@ var PullToRefresh = ({
22151
22872
  };
22152
22873
  PullToRefresh.displayName = "PullToRefresh";
22153
22874
 
22875
+ // components/molecules/InstallBox.tsx
22876
+ init_cn();
22877
+ init_Typography();
22878
+
22879
+ // components/molecules/FeatureCard.tsx
22880
+ init_cn();
22881
+ init_Typography();
22882
+
22883
+ // components/molecules/FeatureGrid.tsx
22884
+ init_cn();
22885
+
22886
+ // components/molecules/CTABanner.tsx
22887
+ init_cn();
22888
+ init_Typography();
22889
+
22890
+ // components/molecules/HeroSection.tsx
22891
+ init_cn();
22892
+ init_Typography();
22893
+
22894
+ // components/molecules/PricingCard.tsx
22895
+ init_cn();
22896
+ init_Typography();
22897
+
22898
+ // components/molecules/PricingGrid.tsx
22899
+ init_cn();
22900
+
22901
+ // components/molecules/StatsGrid.tsx
22902
+ init_cn();
22903
+ init_Typography();
22904
+
22905
+ // components/molecules/ServiceCatalog.tsx
22906
+ init_cn();
22907
+ init_Typography();
22908
+
22909
+ // components/molecules/CaseStudyCard.tsx
22910
+ init_cn();
22911
+ init_Typography();
22912
+
22913
+ // components/molecules/ArticleSection.tsx
22914
+ init_cn();
22915
+ init_Typography();
22916
+
22917
+ // components/molecules/CodeExample.tsx
22918
+ init_cn();
22919
+ init_Typography();
22920
+
22921
+ // components/molecules/SocialProof.tsx
22922
+ init_cn();
22923
+ init_Typography();
22924
+
22925
+ // components/molecules/StepFlow.tsx
22926
+ init_cn();
22927
+ init_Typography();
22928
+
22929
+ // components/molecules/SplitSection.tsx
22930
+ init_cn();
22931
+ init_Typography();
22932
+
22933
+ // components/molecules/TagCloud.tsx
22934
+ init_cn();
22935
+
22936
+ // components/molecules/CommunityLinks.tsx
22937
+ init_Typography();
22938
+
22939
+ // components/molecules/TeamCard.tsx
22940
+ init_cn();
22941
+ init_Typography();
22942
+
22943
+ // components/molecules/ShowcaseCard.tsx
22944
+ init_cn();
22945
+ init_Typography();
22946
+
22947
+ // components/molecules/GeometricPattern.tsx
22948
+ init_cn();
22949
+
22950
+ // components/molecules/EdgeDecoration.tsx
22951
+ init_cn();
22952
+
22953
+ // components/organisms/DataTable.tsx
22954
+ init_useEventBus();
22955
+
22154
22956
  // components/organisms/types.ts
22155
22957
  var EntityDisplayEvents = {
22156
22958
  SORT: "SORT",
@@ -22558,6 +23360,7 @@ function DataTable({
22558
23360
  );
22559
23361
  }
22560
23362
  DataTable.displayName = "DataTable";
23363
+ init_useEventBus();
22561
23364
  function DebuggerBoard({
22562
23365
  entity,
22563
23366
  completeEvent = "PUZZLE_COMPLETE",
@@ -22688,6 +23491,8 @@ function DebuggerBoard({
22688
23491
  );
22689
23492
  }
22690
23493
  DebuggerBoard.displayName = "DebuggerBoard";
23494
+ init_cn();
23495
+ init_useEventBus();
22691
23496
  function getFieldIcon(fieldName) {
22692
23497
  const name = fieldName.toLowerCase();
22693
23498
  if (name.includes("date") || name.includes("time")) return LucideIcons.Calendar;
@@ -23119,6 +23924,10 @@ var DetailPanel = ({
23119
23924
  );
23120
23925
  };
23121
23926
  DetailPanel.displayName = "DetailPanel";
23927
+
23928
+ // components/organisms/DocumentViewer.tsx
23929
+ init_cn();
23930
+ init_useEventBus();
23122
23931
  var DocumentViewer = ({
23123
23932
  title,
23124
23933
  src,
@@ -23304,6 +24113,7 @@ var DocumentViewer = ({
23304
24113
  ] }) });
23305
24114
  };
23306
24115
  DocumentViewer.displayName = "DocumentViewer";
24116
+ init_useEventBus();
23307
24117
  function extractTitle(children) {
23308
24118
  if (!React114__namespace.default.isValidElement(children)) return void 0;
23309
24119
  const props = children.props;
@@ -23341,6 +24151,12 @@ var DrawerSlot = ({
23341
24151
  );
23342
24152
  };
23343
24153
  DrawerSlot.displayName = "DrawerSlot";
24154
+ init_cn();
24155
+ init_useEventBus();
24156
+
24157
+ // components/organisms/game/TraitStateViewer.tsx
24158
+ init_cn();
24159
+ init_Typography();
23344
24160
  var SIZE_CONFIG2 = {
23345
24161
  sm: { nodeSize: "min-w-12 h-8", fontSize: "text-xs", gap: "gap-2" },
23346
24162
  md: { nodeSize: "min-w-16 h-10", fontSize: "text-sm", gap: "gap-4" },
@@ -23553,6 +24369,8 @@ function TraitStateViewer({
23553
24369
  }
23554
24370
  }
23555
24371
  TraitStateViewer.displayName = "TraitStateViewer";
24372
+ init_cn();
24373
+ init_cn();
23556
24374
  function RuleEditor({
23557
24375
  rule,
23558
24376
  availableEvents,
@@ -23664,6 +24482,7 @@ function ObjectRulePanel({
23664
24482
  ] });
23665
24483
  }
23666
24484
  ObjectRulePanel.displayName = "ObjectRulePanel";
24485
+ init_cn();
23667
24486
  var STATUS_STYLES = {
23668
24487
  pending: "text-muted-foreground",
23669
24488
  active: "text-primary animate-pulse",
@@ -23906,6 +24725,11 @@ function EventHandlerBoard({
23906
24725
  );
23907
24726
  }
23908
24727
  EventHandlerBoard.displayName = "EventHandlerBoard";
24728
+
24729
+ // components/organisms/Form.tsx
24730
+ init_cn();
24731
+ init_Typography();
24732
+ init_useEventBus();
23909
24733
  function toSharedContext2(formCtx) {
23910
24734
  return evaluator.createMinimalContext(
23911
24735
  {
@@ -24466,6 +25290,9 @@ function formatDateTimeValue(value) {
24466
25290
  return "";
24467
25291
  }
24468
25292
  Form.displayName = "Form";
25293
+
25294
+ // components/organisms/game/GameAudioProvider.tsx
25295
+ init_useEventBus();
24469
25296
  function pickPath(entry) {
24470
25297
  if (Array.isArray(entry.path)) {
24471
25298
  return entry.path[Math.floor(Math.random() * entry.path.length)];
@@ -24780,6 +25607,7 @@ function GameAudioProvider({
24780
25607
  return /* @__PURE__ */ jsxRuntime.jsx(GameAudioContext.Provider, { value, children });
24781
25608
  }
24782
25609
  GameAudioProvider.displayName = "GameAudioProvider";
25610
+ init_cn();
24783
25611
  function GameAudioToggle({
24784
25612
  size = "sm",
24785
25613
  className
@@ -24801,6 +25629,10 @@ function GameAudioToggle({
24801
25629
  );
24802
25630
  }
24803
25631
  GameAudioToggle.displayName = "GameAudioToggle";
25632
+
25633
+ // components/templates/GameShell.tsx
25634
+ init_cn();
25635
+ init_Typography();
24804
25636
  var GameShell = ({
24805
25637
  appName = "Game",
24806
25638
  hud,
@@ -24870,6 +25702,10 @@ var GameShell = ({
24870
25702
  );
24871
25703
  };
24872
25704
  GameShell.displayName = "GameShell";
25705
+
25706
+ // components/templates/GameTemplate.tsx
25707
+ init_cn();
25708
+ init_Typography();
24873
25709
  var GameTemplate = ({
24874
25710
  entity,
24875
25711
  title = "Game",
@@ -24977,6 +25813,10 @@ var GameTemplate = ({
24977
25813
  );
24978
25814
  };
24979
25815
  GameTemplate.displayName = "GameTemplate";
25816
+
25817
+ // components/templates/GenericAppTemplate.tsx
25818
+ init_cn();
25819
+ init_Typography();
24980
25820
  var GenericAppTemplate = ({
24981
25821
  entity,
24982
25822
  title,
@@ -25016,6 +25856,10 @@ var GenericAppTemplate = ({
25016
25856
  ] });
25017
25857
  };
25018
25858
  GenericAppTemplate.displayName = "GenericAppTemplate";
25859
+
25860
+ // components/organisms/GraphCanvas.tsx
25861
+ init_cn();
25862
+ init_useEventBus();
25019
25863
  var GROUP_COLORS2 = [
25020
25864
  "var(--color-primary)",
25021
25865
  "var(--color-success)",
@@ -25317,6 +26161,8 @@ var GraphCanvas = ({
25317
26161
  ] }) });
25318
26162
  };
25319
26163
  GraphCanvas.displayName = "GraphCanvas";
26164
+ init_Typography();
26165
+ init_cn();
25320
26166
  var Header = ({
25321
26167
  logo,
25322
26168
  logoSrc,
@@ -25441,6 +26287,8 @@ var Header = ({
25441
26287
  );
25442
26288
  };
25443
26289
  Header.displayName = "Header";
26290
+ init_cn();
26291
+ init_useEventBus();
25444
26292
  function normalizeFields2(fields) {
25445
26293
  if (!fields) return [];
25446
26294
  return fields.map((f3) => typeof f3 === "string" ? f3 : f3.key ?? f3.name ?? "");
@@ -25959,6 +26807,10 @@ var List2 = ({
25959
26807
  );
25960
26808
  };
25961
26809
  List2.displayName = "List";
26810
+
26811
+ // components/organisms/layout/MasterDetail.tsx
26812
+ init_cn();
26813
+ init_Typography();
25962
26814
  var DefaultEmptyDetail = () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center h-full border-2 border-dashed border-border", children: /* @__PURE__ */ jsxRuntime.jsx(
25963
26815
  Typography,
25964
26816
  {
@@ -26003,6 +26855,10 @@ var MasterDetail = ({
26003
26855
  );
26004
26856
  };
26005
26857
  MasterDetail.displayName = "MasterDetail";
26858
+
26859
+ // components/organisms/MediaGallery.tsx
26860
+ init_cn();
26861
+ init_useEventBus();
26006
26862
  var COLUMN_CLASSES = {
26007
26863
  2: "grid-cols-2",
26008
26864
  3: "grid-cols-2 sm:grid-cols-3",
@@ -26210,6 +27066,7 @@ var MediaGallery = ({
26210
27066
  ] });
26211
27067
  };
26212
27068
  MediaGallery.displayName = "MediaGallery";
27069
+ init_useEventBus();
26213
27070
  function extractTitle2(children) {
26214
27071
  if (!React114__namespace.default.isValidElement(children)) return void 0;
26215
27072
  const props = children.props;
@@ -26245,6 +27102,9 @@ var ModalSlot = ({
26245
27102
  );
26246
27103
  };
26247
27104
  ModalSlot.displayName = "ModalSlot";
27105
+
27106
+ // components/organisms/Navigation.tsx
27107
+ init_cn();
26248
27108
  var Navigation = ({
26249
27109
  items,
26250
27110
  orientation = "horizontal",
@@ -26317,6 +27177,7 @@ var Navigation = ({
26317
27177
  );
26318
27178
  };
26319
27179
  Navigation.displayName = "Navigation";
27180
+ init_useEventBus();
26320
27181
  function getOpponentAction(strategy, actions, history) {
26321
27182
  const actionIds = actions.map((a) => a.id);
26322
27183
  switch (strategy) {
@@ -26463,6 +27324,8 @@ function NegotiatorBoard({
26463
27324
  );
26464
27325
  }
26465
27326
  NegotiatorBoard.displayName = "NegotiatorBoard";
27327
+ init_Typography();
27328
+ init_cn();
26466
27329
  var ORBITAL_CONFIGS = {
26467
27330
  "1s": {
26468
27331
  type: "1s",
@@ -26843,6 +27706,11 @@ var OrbitalVisualization = ({
26843
27706
  );
26844
27707
  };
26845
27708
  OrbitalVisualization.displayName = "OrbitalVisualization";
27709
+
27710
+ // components/organisms/PageHeader.tsx
27711
+ init_cn();
27712
+ init_Typography();
27713
+ init_useEventBus();
26846
27714
  var PageHeader = ({
26847
27715
  title,
26848
27716
  subtitle,
@@ -26967,6 +27835,9 @@ var PageHeader = ({
26967
27835
  };
26968
27836
  PageHeader.displayName = "PageHeader";
26969
27837
 
27838
+ // components/organisms/debug/RuntimeDebugger.tsx
27839
+ init_cn();
27840
+
26970
27841
  // lib/tickRegistry.ts
26971
27842
  var ticks = /* @__PURE__ */ new Map();
26972
27843
  var listeners2 = /* @__PURE__ */ new Set();
@@ -27074,6 +27945,10 @@ function onDebugToggle(listener) {
27074
27945
  listeners5.add(listener);
27075
27946
  return () => listeners5.delete(listener);
27076
27947
  }
27948
+
27949
+ // components/organisms/debug/RuntimeDebugger.tsx
27950
+ init_Typography();
27951
+ init_Typography();
27077
27952
  function layoutGraph(states, transitions, initialState, width, height) {
27078
27953
  if (states.length === 0) return [];
27079
27954
  const layers = /* @__PURE__ */ new Map();
@@ -27322,6 +28197,9 @@ function WalkMinimap() {
27322
28197
  ] });
27323
28198
  }
27324
28199
  WalkMinimap.displayName = "WalkMinimap";
28200
+
28201
+ // components/organisms/debug/tabs/TraitsTab.tsx
28202
+ init_Typography();
27325
28203
  function TraitsTab({ traits: traits2 }) {
27326
28204
  if (traits2.length === 0) {
27327
28205
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -27387,6 +28265,9 @@ function TraitsTab({ traits: traits2 }) {
27387
28265
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "debug-tab debug-tab--traits", children: /* @__PURE__ */ jsxRuntime.jsx(Accordion, { items: accordionItems, multiple: true }) });
27388
28266
  }
27389
28267
  TraitsTab.displayName = "TraitsTab";
28268
+
28269
+ // components/organisms/debug/tabs/TicksTab.tsx
28270
+ init_Typography();
27390
28271
  function TicksTab({ ticks: ticks2 }) {
27391
28272
  const activeTicks = ticks2.filter((t) => t.active);
27392
28273
  const inactiveTicks = ticks2.filter((t) => !t.active);
@@ -27454,6 +28335,9 @@ function TicksTab({ ticks: ticks2 }) {
27454
28335
  ] });
27455
28336
  }
27456
28337
  TicksTab.displayName = "TicksTab";
28338
+
28339
+ // components/organisms/debug/tabs/EntitiesTab.tsx
28340
+ init_Typography();
27457
28341
  function EntitiesTab({ snapshot }) {
27458
28342
  if (!snapshot) {
27459
28343
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -27529,6 +28413,7 @@ function EntitiesTab({ snapshot }) {
27529
28413
  ] });
27530
28414
  }
27531
28415
  EntitiesTab.displayName = "EntitiesTab";
28416
+ init_Typography();
27532
28417
  var TYPE_BADGES = {
27533
28418
  trait: { variant: "primary", icon: "\u{1F504}" },
27534
28419
  tick: { variant: "warning", icon: "\u23F1\uFE0F" },
@@ -27644,6 +28529,7 @@ function EventFlowTab({ events: events2 }) {
27644
28529
  ] });
27645
28530
  }
27646
28531
  EventFlowTab.displayName = "EventFlowTab";
28532
+ init_Typography();
27647
28533
  function GuardsPanel({ guards }) {
27648
28534
  const [filter, setFilter] = React114__namespace.useState("all");
27649
28535
  if (guards.length === 0) {
@@ -27717,6 +28603,9 @@ function GuardsPanel({ guards }) {
27717
28603
  ] });
27718
28604
  }
27719
28605
  GuardsPanel.displayName = "GuardsPanel";
28606
+
28607
+ // components/organisms/debug/tabs/VerificationTab.tsx
28608
+ init_Typography();
27720
28609
  var STATUS_CONFIG = {
27721
28610
  pass: { variant: "success", icon: "\u2713", label: "PASS" },
27722
28611
  fail: { variant: "danger", icon: "\u2717", label: "FAIL" },
@@ -27787,6 +28676,7 @@ function VerificationTab({ checks, summary }) {
27787
28676
  ] });
27788
28677
  }
27789
28678
  VerificationTab.displayName = "VerificationTab";
28679
+ init_Typography();
27790
28680
  var EFFECT_STATUS_VARIANT = {
27791
28681
  executed: "success",
27792
28682
  failed: "danger",
@@ -27915,6 +28805,9 @@ function TransitionTimeline({ transitions }) {
27915
28805
  ] });
27916
28806
  }
27917
28807
  TransitionTimeline.displayName = "TransitionTimeline";
28808
+
28809
+ // components/organisms/debug/tabs/ServerBridgeTab.tsx
28810
+ init_Typography();
27918
28811
  function StatRow({ label, value, variant }) {
27919
28812
  return /* @__PURE__ */ jsxRuntime.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: [
27920
28813
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", className: "text-gray-500", children: label }),
@@ -27991,6 +28884,8 @@ function ServerBridgeTab({ bridge }) {
27991
28884
  ] }) });
27992
28885
  }
27993
28886
  ServerBridgeTab.displayName = "ServerBridgeTab";
28887
+ init_Typography();
28888
+ init_useEventBus();
27994
28889
  function extractPayloadFields(schema, eventName) {
27995
28890
  if (!schema) return [];
27996
28891
  const orbitals = schema.orbitals;
@@ -28487,6 +29382,10 @@ function RuntimeDebugger({
28487
29382
  );
28488
29383
  }
28489
29384
  RuntimeDebugger.displayName = "RuntimeDebugger";
29385
+
29386
+ // components/organisms/Section.tsx
29387
+ init_cn();
29388
+ init_Typography();
28490
29389
  var paddingStyles4 = {
28491
29390
  none: "p-0",
28492
29391
  sm: "p-3",
@@ -28571,6 +29470,12 @@ var Section = ({
28571
29470
  );
28572
29471
  };
28573
29472
  Section.displayName = "Section";
29473
+ init_cn();
29474
+
29475
+ // components/organisms/game/TraitSlot.tsx
29476
+ init_cn();
29477
+ init_useEventBus();
29478
+ init_Typography();
28574
29479
  var SIZE_CONFIG3 = {
28575
29480
  sm: { box: 40, icon: 20, font: "text-xs" },
28576
29481
  md: { box: 56, icon: 28, font: "text-sm" },
@@ -28819,6 +29724,8 @@ function SequenceBar({
28819
29724
  ] }, i)) });
28820
29725
  }
28821
29726
  SequenceBar.displayName = "SequenceBar";
29727
+ init_cn();
29728
+ init_useEventBus();
28822
29729
  var ENCOURAGEMENT_KEYS2 = [
28823
29730
  "puzzle.tryAgain1",
28824
29731
  "puzzle.tryAgain2",
@@ -29034,6 +29941,9 @@ function SequencerBoard({
29034
29941
  );
29035
29942
  }
29036
29943
  SequencerBoard.displayName = "SequencerBoard";
29944
+ init_Typography();
29945
+ init_cn();
29946
+ init_useEventBus();
29037
29947
  var SidebarNavItem = ({ item, collapsed }) => {
29038
29948
  const Icon3 = item.icon;
29039
29949
  const isActive = item.active ?? item.isActive;
@@ -29202,6 +30112,10 @@ var Sidebar = ({
29202
30112
  );
29203
30113
  };
29204
30114
  Sidebar.displayName = "Sidebar";
30115
+
30116
+ // components/organisms/SignaturePad.tsx
30117
+ init_cn();
30118
+ init_useEventBus();
29205
30119
  var SignaturePad = ({
29206
30120
  label = "Signature",
29207
30121
  helperText = "Draw your signature above",
@@ -29379,6 +30293,9 @@ var SignaturePad = ({
29379
30293
  };
29380
30294
  SignaturePad.displayName = "SignaturePad";
29381
30295
 
30296
+ // components/organisms/game/physics-sim/SimulationCanvas.tsx
30297
+ init_cn();
30298
+
29382
30299
  // components/organisms/game/physics-sim/presets/mechanics.ts
29383
30300
  var projectileMotion = {
29384
30301
  id: "mechanics-projectile",
@@ -29703,6 +30620,7 @@ function SimulationGraph({
29703
30620
  ] }) });
29704
30621
  }
29705
30622
  SimulationGraph.displayName = "SimulationGraph";
30623
+ init_useEventBus();
29706
30624
  function SimulatorBoard({
29707
30625
  entity,
29708
30626
  completeEvent = "PUZZLE_COMPLETE",
@@ -29852,6 +30770,9 @@ function SimulatorBoard({
29852
30770
  );
29853
30771
  }
29854
30772
  SimulatorBoard.displayName = "SimulatorBoard";
30773
+
30774
+ // components/organisms/Split.tsx
30775
+ init_cn();
29855
30776
  var gapStyles9 = {
29856
30777
  none: "gap-0",
29857
30778
  sm: "gap-2",
@@ -29918,6 +30839,9 @@ var Split = ({
29918
30839
  );
29919
30840
  };
29920
30841
  Split.displayName = "Split";
30842
+
30843
+ // components/organisms/layout/SplitPane.tsx
30844
+ init_cn();
29921
30845
  var SplitPane = ({
29922
30846
  direction = "horizontal",
29923
30847
  ratio: initialRatio = 50,
@@ -30001,6 +30925,10 @@ var SplitPane = ({
30001
30925
  );
30002
30926
  };
30003
30927
  SplitPane.displayName = "SplitPane";
30928
+
30929
+ // components/organisms/StatCard.tsx
30930
+ init_cn();
30931
+ init_useEventBus();
30004
30932
  var StatCard = ({
30005
30933
  label: propLabel,
30006
30934
  title: propTitle,
@@ -30211,6 +31139,11 @@ var StatCard = ({
30211
31139
  ] });
30212
31140
  };
30213
31141
  StatCard.displayName = "StatCard";
31142
+ init_cn();
31143
+ init_useEventBus();
31144
+
31145
+ // components/organisms/game/puzzles/state-architect/StateNode.tsx
31146
+ init_cn();
30214
31147
  function StateNode2({
30215
31148
  name,
30216
31149
  isCurrent = false,
@@ -30257,6 +31190,9 @@ function StateNode2({
30257
31190
  );
30258
31191
  }
30259
31192
  StateNode2.displayName = "StateNode";
31193
+
31194
+ // components/organisms/game/puzzles/state-architect/TransitionArrow.tsx
31195
+ init_cn();
30260
31196
  var NODE_RADIUS = 40;
30261
31197
  function TransitionArrow({
30262
31198
  from,
@@ -30323,6 +31259,9 @@ function TransitionArrow({
30323
31259
  ] });
30324
31260
  }
30325
31261
  TransitionArrow.displayName = "TransitionArrow";
31262
+
31263
+ // components/organisms/game/puzzles/state-architect/VariablePanel.tsx
31264
+ init_cn();
30326
31265
  function VariablePanel({
30327
31266
  entityName,
30328
31267
  variables,
@@ -30674,6 +31613,10 @@ function StateArchitectBoard({
30674
31613
  );
30675
31614
  }
30676
31615
  StateArchitectBoard.displayName = "StateArchitectBoard";
31616
+
31617
+ // components/organisms/layout/TabbedContainer.tsx
31618
+ init_cn();
31619
+ init_Typography();
30677
31620
  var TabbedContainer = ({
30678
31621
  tabs,
30679
31622
  defaultTab,
@@ -30780,6 +31723,9 @@ var TabbedContainer = ({
30780
31723
  );
30781
31724
  };
30782
31725
  TabbedContainer.displayName = "TabbedContainer";
31726
+ init_Typography();
31727
+ init_cn();
31728
+ init_useEventBus();
30783
31729
  var Table = ({
30784
31730
  columns,
30785
31731
  // EntityDisplayProps
@@ -30962,6 +31908,9 @@ var Table = ({
30962
31908
  ] });
30963
31909
  };
30964
31910
  Table.displayName = "Table";
31911
+
31912
+ // components/organisms/Timeline.tsx
31913
+ init_cn();
30965
31914
  var STATUS_STYLES3 = {
30966
31915
  complete: {
30967
31916
  dotColor: "text-success",
@@ -31097,6 +32046,7 @@ var Timeline = ({
31097
32046
  ] }) });
31098
32047
  };
31099
32048
  Timeline.displayName = "Timeline";
32049
+ init_useEventBus();
31100
32050
  function extractToastProps(children) {
31101
32051
  if (!React114__namespace.default.isValidElement(children)) {
31102
32052
  if (typeof children === "string") {
@@ -31143,6 +32093,12 @@ var ToastSlot = ({
31143
32093
  ) });
31144
32094
  };
31145
32095
  ToastSlot.displayName = "ToastSlot";
32096
+
32097
+ // components/organisms/component-registry.generated.ts
32098
+ init_Typography();
32099
+
32100
+ // components/organisms/game/hooks/useBattleState.ts
32101
+ init_useEventBus();
31146
32102
  function useBattleState(initialUnits, eventConfig = {}, callbacks = {}) {
31147
32103
  const eventBus = useEventBus();
31148
32104
  const {
@@ -31307,6 +32263,8 @@ function UncontrolledBattleBoard({ entity, ...rest }) {
31307
32263
  );
31308
32264
  }
31309
32265
  UncontrolledBattleBoard.displayName = "UncontrolledBattleBoard";
32266
+ init_Typography();
32267
+ init_cn();
31310
32268
  var WizardContainer = ({
31311
32269
  steps,
31312
32270
  currentStep: controlledStep,
@@ -31479,6 +32437,10 @@ var WizardContainer = ({
31479
32437
  ] });
31480
32438
  };
31481
32439
  WizardContainer.displayName = "WizardContainer";
32440
+
32441
+ // components/organisms/game/WorldMapBoard.tsx
32442
+ init_cn();
32443
+ init_useEventBus();
31482
32444
  function defaultIsInRange(from, to, range) {
31483
32445
  return Math.abs(from.x - to.x) + Math.abs(from.y - to.y) <= range;
31484
32446
  }
@@ -32671,6 +33633,9 @@ function UISlotRenderer({
32671
33633
  return wrapped;
32672
33634
  }
32673
33635
  UISlotRenderer.displayName = "UISlotRenderer";
33636
+
33637
+ // runtime/ServerBridge.tsx
33638
+ init_useEventBus();
32674
33639
  var ServerBridgeContext = React114.createContext(null);
32675
33640
  function useServerBridge() {
32676
33641
  const ctx = React114.useContext(ServerBridgeContext);