@almadar/ui 5.140.0 → 5.141.0

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.
@@ -15697,9 +15697,26 @@ var init_imageCache = __esm({
15697
15697
  });
15698
15698
 
15699
15699
  // lib/webPainter2d.ts
15700
+ function makeNoiseTile(alpha, color) {
15701
+ const tile = document.createElement("canvas");
15702
+ tile.width = NOISE_CELLS;
15703
+ tile.height = NOISE_CELLS;
15704
+ const t = tile.getContext("2d");
15705
+ if (t) {
15706
+ t.fillStyle = color;
15707
+ for (let y = 0; y < NOISE_CELLS; y++) {
15708
+ for (let x = 0; x < NOISE_CELLS; x++) {
15709
+ t.globalAlpha = noiseHash(x, y) * alpha;
15710
+ t.fillRect(x, y, 1, 1);
15711
+ }
15712
+ }
15713
+ }
15714
+ return tile;
15715
+ }
15700
15716
  function createWebPainter(ctx, onAssetLoad) {
15701
15717
  let vw = 0;
15702
15718
  let vh = 0;
15719
+ const patternCache = /* @__PURE__ */ new Map();
15703
15720
  const tracePoly = (points, closed) => {
15704
15721
  if (points.length === 0) return;
15705
15722
  ctx.beginPath();
@@ -15707,9 +15724,28 @@ function createWebPainter(ctx, onAssetLoad) {
15707
15724
  for (let i = 1; i < points.length; i++) ctx.lineTo(points[i].x, points[i].y);
15708
15725
  if (closed) ctx.closePath();
15709
15726
  };
15727
+ const toCanvasPattern = (style) => {
15728
+ const key = JSON.stringify(style);
15729
+ let pattern = patternCache.get(key);
15730
+ if (pattern === void 0) {
15731
+ if (style.kind === "noise") {
15732
+ pattern = ctx.createPattern(makeNoiseTile(style.alpha ?? 0.12, style.color ?? "#000000"), "repeat");
15733
+ } else {
15734
+ const img = getOrLoadImage(style.url, onAssetLoad);
15735
+ if (!img) return "rgba(0,0,0,0)";
15736
+ pattern = ctx.createPattern(img, "repeat");
15737
+ }
15738
+ if (pattern && style.scale !== void 0 && style.scale !== 1) {
15739
+ pattern.setTransform(new DOMMatrix().scale(style.scale));
15740
+ }
15741
+ patternCache.set(key, pattern);
15742
+ }
15743
+ return pattern ?? "rgba(0,0,0,0)";
15744
+ };
15710
15745
  const toCanvasStyle = (style) => {
15711
15746
  if (typeof style === "string") return style;
15712
- const g = style.kind === "linear" ? ctx.createLinearGradient(style.x1, style.y1, style.x2, style.y2) : ctx.createRadialGradient(style.cx, style.cy, 0, style.cx, style.cy, style.r);
15747
+ if (style.kind === "noise" || style.kind === "image") return toCanvasPattern(style);
15748
+ const g = style.kind === "linear" ? ctx.createLinearGradient(style.x1, style.y1, style.x2, style.y2) : style.kind === "conic" ? ctx.createConicGradient(style.angle, style.cx, style.cy) : ctx.createRadialGradient(style.cx, style.cy, 0, style.cx, style.cy, style.r);
15713
15749
  for (const stop of style.stops) g.addColorStop(stop.offset, stop.color);
15714
15750
  return g;
15715
15751
  };
@@ -15744,6 +15780,19 @@ function createWebPainter(ctx, onAssetLoad) {
15744
15780
  ctx.shadowColor = shadow ? shadow.color : "transparent";
15745
15781
  ctx.shadowBlur = shadow ? shadow.blur : 0;
15746
15782
  },
15783
+ setBlend(mode) {
15784
+ ctx.globalCompositeOperation = mode ?? "source-over";
15785
+ },
15786
+ setLineDash(pattern, offset = 0) {
15787
+ ctx.setLineDash(pattern ? [...pattern] : []);
15788
+ ctx.lineDashOffset = offset;
15789
+ },
15790
+ setBlur(px) {
15791
+ ctx.filter = px && px > 0 ? `blur(${px}px)` : "none";
15792
+ },
15793
+ clipPath(d) {
15794
+ ctx.clip(new Path2D(d));
15795
+ },
15747
15796
  resolveTexture(url) {
15748
15797
  const img = getOrLoadImage(url, onAssetLoad);
15749
15798
  if (!img) return null;
@@ -15819,13 +15868,18 @@ function createWebPainter(ctx, onAssetLoad) {
15819
15868
  }
15820
15869
  };
15821
15870
  }
15822
- var handleByImage, imageByHandle;
15871
+ var handleByImage, imageByHandle, noiseHash, NOISE_CELLS;
15823
15872
  var init_webPainter2d = __esm({
15824
15873
  "lib/webPainter2d.ts"() {
15825
15874
  "use client";
15826
15875
  init_imageCache();
15827
15876
  handleByImage = /* @__PURE__ */ new WeakMap();
15828
15877
  imageByHandle = /* @__PURE__ */ new WeakMap();
15878
+ noiseHash = (x, y) => {
15879
+ const s = Math.sin(x * 12.9898 + y * 78.233) * 43758.5453;
15880
+ return s - Math.floor(s);
15881
+ };
15882
+ NOISE_CELLS = 32;
15829
15883
  }
15830
15884
  });
15831
15885
 
@@ -16112,6 +16166,16 @@ function gradientStyle(g, ox, oy, scale) {
16112
16166
  stops: g.stops
16113
16167
  };
16114
16168
  }
16169
+ if (g.kind === "conic") {
16170
+ if (!g.center) return void 0;
16171
+ return {
16172
+ kind: "conic",
16173
+ cx: ox + g.center.x * scale,
16174
+ cy: oy + g.center.y * scale,
16175
+ angle: g.angle ?? 0,
16176
+ stops: g.stops
16177
+ };
16178
+ }
16115
16179
  if (!g.center || g.radius === void 0) return void 0;
16116
16180
  return {
16117
16181
  kind: "radial",
@@ -16121,6 +16185,13 @@ function gradientStyle(g, ox, oy, scale) {
16121
16185
  stops: g.stops
16122
16186
  };
16123
16187
  }
16188
+ function patternStyle(p, unit) {
16189
+ if (p.kind === "image") {
16190
+ if (!p.url) return void 0;
16191
+ return { kind: "image", url: p.url, scale: (p.scale ?? 1) / unit };
16192
+ }
16193
+ return { kind: "noise", scale: (p.scale ?? 2) / unit, alpha: p.alpha, color: p.color };
16194
+ }
16124
16195
  function DrawShape(props) {
16125
16196
  const register = React76.useContext(DrawableRegistryContext);
16126
16197
  if (register) {
@@ -16149,7 +16220,9 @@ var init_DrawShape = __esm({
16149
16220
  "radiusY",
16150
16221
  "width",
16151
16222
  "height",
16152
- "strokeWidth"
16223
+ "strokeWidth",
16224
+ "strokeDashOffset",
16225
+ "blur"
16153
16226
  ];
16154
16227
  lerp = (a, b, k) => a + (b - a) * k;
16155
16228
  paintShape = (painter, rawNode, dctx) => {
@@ -16159,6 +16232,16 @@ var init_DrawShape = __esm({
16159
16232
  if (node.opacity !== void 0 && node.opacity !== 1) painter.setAlpha(node.opacity);
16160
16233
  const origin = dctx.projector.project(node.position);
16161
16234
  const tileWidth = dctx.projector.tileWidth;
16235
+ const groupScale = dctx.groupScale ?? 1;
16236
+ const strokePx = (node.strokeWidth ?? 1) / groupScale;
16237
+ if (node.blendMode) painter.setBlend(node.blendMode);
16238
+ if (node.strokeDash && node.strokeDash.length > 0) {
16239
+ painter.setLineDash(
16240
+ node.strokeDash.map((v) => v / groupScale),
16241
+ (node.strokeDashOffset ?? 0) / groupScale
16242
+ );
16243
+ }
16244
+ if (node.blur !== void 0 && node.blur > 0) painter.setBlur(node.blur / groupScale);
16162
16245
  if (node.rotate) {
16163
16246
  const pivot = node.pivot ?? { x: 0.5, y: 0.5 };
16164
16247
  const px = origin.x + pivot.x * tileWidth;
@@ -16167,15 +16250,18 @@ var init_DrawShape = __esm({
16167
16250
  painter.rotate(node.rotate);
16168
16251
  painter.translate(-px, -py);
16169
16252
  }
16170
- if (node.shadow) painter.setShadow({ color: node.shadow.color, blur: node.shadow.blur * tileWidth });
16253
+ if (node.shadow) painter.setShadow({ color: node.shadow.color, blur: node.shadow.blur * tileWidth * groupScale });
16171
16254
  const fill = node.fill === "none" ? void 0 : node.fill;
16172
16255
  const stroke = node.stroke === "none" ? void 0 : node.stroke;
16173
16256
  const pxFill = node.gradient ? gradientStyle(node.gradient, origin.x, origin.y, tileWidth) ?? fill : fill;
16257
+ const pxStroke = node.strokeGradient ? gradientStyle(node.strokeGradient, origin.x, origin.y, tileWidth) ?? stroke : stroke;
16258
+ const patFill = node.fillPattern ? patternStyle(node.fillPattern, groupScale) : void 0;
16174
16259
  switch (node.shape) {
16175
16260
  case "cell": {
16176
16261
  const pts = dctx.projector.cellPath(node.position);
16177
16262
  if (pxFill) painter.fillPoly(pts, pxFill);
16178
- if (stroke) painter.strokePoly(pts, stroke, node.strokeWidth ?? 1, true);
16263
+ if (patFill) painter.fillPoly(pts, patFill);
16264
+ if (pxStroke) painter.strokePoly(pts, pxStroke, strokePx, true);
16179
16265
  break;
16180
16266
  }
16181
16267
  case "rect": {
@@ -16186,7 +16272,8 @@ var init_DrawShape = __esm({
16186
16272
  const w = (node.width ?? 0) * tw;
16187
16273
  const h = (node.height ?? 0) * tw;
16188
16274
  if (pxFill) painter.fillRect(x, y, w, h, pxFill);
16189
- if (stroke) painter.strokeRect(x, y, w, h, stroke, node.strokeWidth ?? 1);
16275
+ if (patFill) painter.fillRect(x, y, w, h, patFill);
16276
+ if (pxStroke) painter.strokeRect(x, y, w, h, pxStroke, strokePx);
16190
16277
  break;
16191
16278
  }
16192
16279
  case "ellipse": {
@@ -16197,7 +16284,8 @@ var init_DrawShape = __esm({
16197
16284
  const rx = (node.radiusX ?? 0) * tw;
16198
16285
  const ry = (node.radiusY ?? rx) * tw;
16199
16286
  if (pxFill) painter.fillEllipse(cx, cy, rx, ry, pxFill);
16200
- if (stroke) painter.strokeEllipse(cx, cy, rx, ry, stroke, node.strokeWidth ?? 1);
16287
+ if (patFill) painter.fillEllipse(cx, cy, rx, ry, patFill);
16288
+ if (pxStroke) painter.strokeEllipse(cx, cy, rx, ry, pxStroke, strokePx);
16201
16289
  break;
16202
16290
  }
16203
16291
  case "poly": {
@@ -16206,16 +16294,27 @@ var init_DrawShape = __esm({
16206
16294
  y: origin.y + ((node.offsetY ?? 0) + pt.y) * tileWidth
16207
16295
  }));
16208
16296
  if (pxFill) painter.fillPoly(pts, pxFill);
16209
- if (stroke) painter.strokePoly(pts, stroke, node.strokeWidth ?? 1, true);
16297
+ if (patFill) painter.fillPoly(pts, patFill);
16298
+ if (pxStroke) painter.strokePoly(pts, pxStroke, strokePx, true);
16210
16299
  break;
16211
16300
  }
16212
16301
  case "path": {
16213
16302
  if (!node.d) break;
16214
16303
  painter.translate(origin.x + (node.offsetX ?? 0) * tileWidth, origin.y + (node.offsetY ?? 0) * tileWidth);
16215
16304
  painter.scale(tileWidth, tileWidth);
16305
+ if (node.strokeDash && node.strokeDash.length > 0) {
16306
+ painter.setLineDash(
16307
+ node.strokeDash.map((v) => v / (groupScale * tileWidth)),
16308
+ (node.strokeDashOffset ?? 0) / (groupScale * tileWidth)
16309
+ );
16310
+ }
16311
+ if (node.blur !== void 0 && node.blur > 0) painter.setBlur(node.blur / (groupScale * tileWidth));
16216
16312
  const localFill = node.gradient ? gradientStyle(node.gradient, 0, 0, 1) ?? fill : fill;
16313
+ const localStroke = node.strokeGradient ? gradientStyle(node.strokeGradient, 0, 0, 1) ?? stroke : stroke;
16314
+ const localPat = node.fillPattern ? patternStyle(node.fillPattern, groupScale * tileWidth) : void 0;
16217
16315
  if (localFill) painter.fillPath(node.d, localFill);
16218
- if (stroke) painter.strokePath(node.d, stroke, (node.strokeWidth ?? 1) / tileWidth);
16316
+ if (localPat) painter.fillPath(node.d, localPat);
16317
+ if (localStroke) painter.strokePath(node.d, localStroke, strokePx / tileWidth);
16219
16318
  break;
16220
16319
  }
16221
16320
  }
@@ -16296,8 +16395,6 @@ var init_DrawTextLayer = __esm({
16296
16395
  };
16297
16396
  }
16298
16397
  });
16299
-
16300
- // lib/drawable/paintDispatch.ts
16301
16398
  function paintDrawable(painter, node, dctx) {
16302
16399
  switch (node.type) {
16303
16400
  case "draw-sprite":
@@ -16318,10 +16415,20 @@ function paintDrawable(painter, node, dctx) {
16318
16415
  if (node.scale !== void 0) painter.scale(node.scale, node.scale);
16319
16416
  if (node.rotate !== void 0) painter.rotate(node.rotate);
16320
16417
  if (node.opacity !== void 0 && node.opacity !== 1) painter.setAlpha(node.opacity);
16321
- for (const item of node.items) paintDrawable(painter, item, dctx);
16418
+ if (node.clip) {
16419
+ const tw = dctx.projector.tileWidth;
16420
+ painter.scale(tw, tw);
16421
+ painter.clipPath(node.clip);
16422
+ painter.scale(1 / tw, 1 / tw);
16423
+ }
16424
+ const childCtx = node.scale !== void 0 && node.scale !== 1 ? { ...dctx, groupScale: (dctx.groupScale ?? 1) * node.scale } : dctx;
16425
+ for (const item of node.items) paintDrawable(painter, item, childCtx);
16322
16426
  painter.restore();
16323
16427
  break;
16324
16428
  }
16429
+ case "draw-mesh":
16430
+ warnUnsupported2d("draw-mesh");
16431
+ break;
16325
16432
  case "draw-sprite-layer":
16326
16433
  paintSpriteLayer(painter, node, dctx);
16327
16434
  break;
@@ -16333,6 +16440,7 @@ function paintDrawable(painter, node, dctx) {
16333
16440
  break;
16334
16441
  }
16335
16442
  }
16443
+ var paint2dLog, warnedUnsupported2d, warnUnsupported2d;
16336
16444
  var init_paintDispatch = __esm({
16337
16445
  "lib/drawable/paintDispatch.ts"() {
16338
16446
  init_contract();
@@ -16342,6 +16450,13 @@ var init_paintDispatch = __esm({
16342
16450
  init_DrawSpriteLayer();
16343
16451
  init_DrawShapeLayer();
16344
16452
  init_DrawTextLayer();
16453
+ paint2dLog = logger.createLogger("almadar:ui:drawable-2d");
16454
+ warnedUnsupported2d = /* @__PURE__ */ new Set();
16455
+ warnUnsupported2d = (kind) => {
16456
+ if (warnedUnsupported2d.has(kind)) return;
16457
+ warnedUnsupported2d.add(kind);
16458
+ paint2dLog.warn("unsupported drawable kind on the 2D painter \u2014 skipped", { kind });
16459
+ };
16345
16460
  }
16346
16461
  });
16347
16462
 
@@ -16356,6 +16471,7 @@ function collectDrawnItems(nodes) {
16356
16471
  case "draw-shape":
16357
16472
  case "draw-text":
16358
16473
  case "draw-group":
16474
+ case "draw-mesh":
16359
16475
  if (isValidScenePos(n.position)) out.push({ pos: n.position, id: n.id });
16360
16476
  break;
16361
16477
  case "draw-sprite-layer":
@@ -16973,6 +17089,7 @@ function Canvas({
16973
17089
  isLoading,
16974
17090
  cameraMode: to3DCameraMode(camera?.mode),
16975
17091
  ...zoom !== void 0 ? { scale: zoom } : {},
17092
+ ...camera?.fov !== void 0 ? { fov: camera.fov } : {},
16976
17093
  ...camera?.target !== void 0 ? { followTarget: camera.target } : {},
16977
17094
  unitScale,
16978
17095
  backgroundColor,
@@ -40209,14 +40326,26 @@ var init_DetailPanel = __esm({
40209
40326
  exports.DetailPanel.displayName = "DetailPanel";
40210
40327
  }
40211
40328
  });
40212
-
40213
- // components/game/atoms/DrawGroup.tsx
40214
- function DrawGroup(_props) {
40329
+ function DrawGroup(props) {
40330
+ const register = React76.useContext(DrawableRegistryContext);
40331
+ if (register) register({ ...props, type: "draw-group" });
40215
40332
  return null;
40216
40333
  }
40217
40334
  var init_DrawGroup = __esm({
40218
40335
  "components/game/atoms/DrawGroup.tsx"() {
40219
40336
  "use client";
40337
+ init_registry();
40338
+ }
40339
+ });
40340
+ function DrawMesh(props) {
40341
+ const register = React76.useContext(DrawableRegistryContext);
40342
+ if (register) register({ ...props, type: "draw-mesh" });
40343
+ return null;
40344
+ }
40345
+ var init_DrawMesh = __esm({
40346
+ "components/game/atoms/DrawMesh.tsx"() {
40347
+ "use client";
40348
+ init_registry();
40220
40349
  }
40221
40350
  });
40222
40351
  function extractTitle(children) {
@@ -45923,6 +46052,7 @@ var init_component_registry_generated = __esm({
45923
46052
  init_DocTOC();
45924
46053
  init_DocumentViewer();
45925
46054
  init_DrawGroup();
46055
+ init_DrawMesh();
45926
46056
  init_DrawShape();
45927
46057
  init_DrawShapeLayer();
45928
46058
  init_DrawSprite();
@@ -46191,6 +46321,7 @@ var init_component_registry_generated = __esm({
46191
46321
  "DocTOC": exports.DocTOC,
46192
46322
  "DocumentViewer": exports.DocumentViewer,
46193
46323
  "DrawGroup": DrawGroup,
46324
+ "DrawMesh": DrawMesh,
46194
46325
  "DrawShape": DrawShape,
46195
46326
  "DrawShapeLayer": DrawShapeLayer,
46196
46327
  "DrawSprite": DrawSprite,
@@ -8,9 +8,9 @@ export { A as AudioManifest, G as GameAudioContext, a as GameAudioContextValue,
8
8
  import { SExpr } from '@almadar/evaluator';
9
9
  import { U as UnitAnimationState, F as FacingDirection, S as SpriteSheetUrls, d as SpriteFrameDims, R as ResolvedFrame, a as IsometricUnit, C as CameraState, e as FieldInfo, f as OrbitalTraitInfo, g as OrbitalPageInfo, T as TraitLevelData, E as ExternalLink } from '../avl-schema-parser-B8Onmfsu.cjs';
10
10
  export { B as BoardTile, G as GameAction, h as GamePhase, i as GameState, j as GameUnit, b as IsometricFeature, I as IsometricTile, P as Position, k as UnitTrait, l as calculateAttackTargets, m as calculateValidMoves, n as createInitialGameState } from '../avl-schema-parser-B8Onmfsu.cjs';
11
- import { D as DrawableNode } from '../paintDispatch-B5pPeSEp.cjs';
12
- import { C as ContentSegment, b as DomLayoutData, d as DomStateNode, V as VisualizerConfig, e as DomTransitionLabel } from '../cn-DkGYzPOg.cjs';
13
- export { n as cn } from '../cn-DkGYzPOg.cjs';
11
+ import { D as DrawableNode } from '../paintDispatch-BQn5Lyx1.cjs';
12
+ import { C as ContentSegment, b as DomLayoutData, d as DomStateNode, V as VisualizerConfig, e as DomTransitionLabel } from '../cn-rwc3svaX.cjs';
13
+ export { n as cn } from '../cn-rwc3svaX.cjs';
14
14
  import { b as SlotContent } from '../useUISlots-BesZYMks.cjs';
15
15
  export { D as DEFAULT_SLOTS, S as SlotAnimation, a as SlotChangeCallback, c as SlotRenderConfig, U as UISlotManager, u as useUISlotManager } from '../useUISlots-BesZYMks.cjs';
16
16
  export { ALMADAR_DND_MIME, AuthContextValue, AuthUser, CanvasGestureCallbacks, CanvasGestureHandlers, CompileResult, CompileStage, DragReorderResult, DraggablePayload, Extension, ExtensionManifest, FileSystemFile, FileSystemStatus, GitHubRepo, GitHubStatus, HistoryChangeSummary, HistoryTimelineItem, I18nContextValue, I18nProvider, InfiniteScrollOptions, InfiniteScrollResult, LongPressHandlers, LongPressOptions, OpenFile, Positioned, PullToRefreshOptions, PullToRefreshResult, QuerySingletonEntity, QuerySingletonResult, QuerySingletonState, QueryState, RenderInterpolationHandle, RenderInterpolationOptions, RevertResult, SelectedFile, SharedEntityStore, SharedEntityStoreContext, SharedEntitySubscriber, SharedEntityWriter, SwipeGestureOptions, SwipeGestureResult, SwipeHandlers, TapRevealOptions, TapRevealResult, TraitListenSpec, TranslateFunction, UseCanvasGesturesOptions, UseCompileResult, UseDraggableOptions, UseDraggableResult, UseDropZoneOptions, UseDropZoneResult, UseExtensionsOptions, UseExtensionsResult, UseFileEditorOptions, UseFileEditorResult, UseFileSystemResult, UseOrbitalHistoryOptions, UseOrbitalHistoryResult, createSharedEntityStore, createTranslate, parseQueryBinding, runTickFrame, useAgentChat, useAuthContext, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInfiniteScroll, useLongPress, useMediaQuery, useOrbitalHistory, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTapReveal, useTraitListens, useTranslate, useUIEvents, useValidation } from '../hooks/index.cjs';
@@ -8,9 +8,9 @@ export { A as AudioManifest, G as GameAudioContext, a as GameAudioContextValue,
8
8
  import { SExpr } from '@almadar/evaluator';
9
9
  import { U as UnitAnimationState, F as FacingDirection, S as SpriteSheetUrls, d as SpriteFrameDims, R as ResolvedFrame, a as IsometricUnit, C as CameraState, e as FieldInfo, f as OrbitalTraitInfo, g as OrbitalPageInfo, T as TraitLevelData, E as ExternalLink } from '../avl-schema-parser-B8Onmfsu.js';
10
10
  export { B as BoardTile, G as GameAction, h as GamePhase, i as GameState, j as GameUnit, b as IsometricFeature, I as IsometricTile, P as Position, k as UnitTrait, l as calculateAttackTargets, m as calculateValidMoves, n as createInitialGameState } from '../avl-schema-parser-B8Onmfsu.js';
11
- import { D as DrawableNode } from '../paintDispatch-B5pPeSEp.js';
12
- import { C as ContentSegment, b as DomLayoutData, d as DomStateNode, V as VisualizerConfig, e as DomTransitionLabel } from '../cn-Do5Ra3l3.js';
13
- export { n as cn } from '../cn-Do5Ra3l3.js';
11
+ import { D as DrawableNode } from '../paintDispatch-BQn5Lyx1.js';
12
+ import { C as ContentSegment, b as DomLayoutData, d as DomStateNode, V as VisualizerConfig, e as DomTransitionLabel } from '../cn-BDwC4QpH.js';
13
+ export { n as cn } from '../cn-BDwC4QpH.js';
14
14
  import { b as SlotContent } from '../useUISlots-BesZYMks.js';
15
15
  export { D as DEFAULT_SLOTS, S as SlotAnimation, a as SlotChangeCallback, c as SlotRenderConfig, U as UISlotManager, u as useUISlotManager } from '../useUISlots-BesZYMks.js';
16
16
  export { ALMADAR_DND_MIME, AuthContextValue, AuthUser, CanvasGestureCallbacks, CanvasGestureHandlers, CompileResult, CompileStage, DragReorderResult, DraggablePayload, Extension, ExtensionManifest, FileSystemFile, FileSystemStatus, GitHubRepo, GitHubStatus, HistoryChangeSummary, HistoryTimelineItem, I18nContextValue, I18nProvider, InfiniteScrollOptions, InfiniteScrollResult, LongPressHandlers, LongPressOptions, OpenFile, Positioned, PullToRefreshOptions, PullToRefreshResult, QuerySingletonEntity, QuerySingletonResult, QuerySingletonState, QueryState, RenderInterpolationHandle, RenderInterpolationOptions, RevertResult, SelectedFile, SharedEntityStore, SharedEntityStoreContext, SharedEntitySubscriber, SharedEntityWriter, SwipeGestureOptions, SwipeGestureResult, SwipeHandlers, TapRevealOptions, TapRevealResult, TraitListenSpec, TranslateFunction, UseCanvasGesturesOptions, UseCompileResult, UseDraggableOptions, UseDraggableResult, UseDropZoneOptions, UseDropZoneResult, UseExtensionsOptions, UseExtensionsResult, UseFileEditorOptions, UseFileEditorResult, UseFileSystemResult, UseOrbitalHistoryOptions, UseOrbitalHistoryResult, createSharedEntityStore, createTranslate, parseQueryBinding, runTickFrame, useAgentChat, useAuthContext, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInfiniteScroll, useLongPress, useMediaQuery, useOrbitalHistory, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTapReveal, useTraitListens, useTranslate, useUIEvents, useValidation } from '../hooks/index.js';