@almadar/ui 6.57.0 → 6.58.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.
@@ -2,12 +2,12 @@ import { A11yProps, Asset, EventKey, EventPayload, EventEmit, AssetUrl, FieldVal
2
2
  export { AnimationDef, AnimationName, AudioManifest, BusEvent, BusEventListener, BusEventSource, BusEventListener as EventListener, SkeletonVariant, SoundEntry, SpriteDirection, UISlot, Unsubscribe } from '@almadar/core';
3
3
  import * as React$1 from 'react';
4
4
  import React__default, { ReactNode, ErrorInfo } from 'react';
5
- import { I as IconInput, U as UiError, D as DrawableNode, P as Projector, F as FxOverlayItem, B as BadgeColor, M as MeshShapeKind, a as MeshMaterial, b as DrawGroupProps, c as DrawTextProps, d as DrawMeshProps, e as DisplayField, f as BadgeVariant, C as ColorToken } from '../paintDispatch-_6EhJCiL.js';
6
- export { g as Badge, h as BadgeProps, i as FxOverlayKind, j as Icon, k as IconAnimation, l as IconProps, m as IconSize, n as ImageSource, L as LinkAction, o as Point, R as Rect } from '../paintDispatch-_6EhJCiL.js';
5
+ import { I as IconInput, U as UiError, D as DrawableNode, P as Projector, F as FxOverlayItem, B as BadgeColor, M as MeshShapeKind, a as MeshMaterial, b as DrawGroupProps, c as DrawTextProps, d as DrawMeshProps, e as DisplayField, f as DisplayFieldFormat, g as BadgeVariant, C as ColorToken } from '../paintDispatch-BN8Vbzgs.js';
6
+ export { h as Badge, i as BadgeProps, j as FxOverlayKind, k as Icon, l as IconAnimation, m as IconProps, n as IconSize, o as ImageSource, L as LinkAction, p as Point, R as Rect } from '../paintDispatch-BN8Vbzgs.js';
7
7
  import { SExpr } from '@almadar/evaluator';
8
- import { U as UnitAnimationState, F as FacingDirection, S as SpriteSheetUrls, f as SpriteFrameDims, R as ResolvedFrame, g as CanvasLighting, h as CanvasPost, a as IsometricUnit, i as CameraState } from '../Canvas3DHost-DfAhg6EH.js';
9
- export { B as BoardTile, G as GameAction, j as GamePhase, k as GameState, l as GameUnit, b as IsometricFeature, I as IsometricTile, P as Position, m as UnitTrait, n as calculateAttackTargets, o as calculateValidMoves, p as createInitialGameState } from '../Canvas3DHost-DfAhg6EH.js';
10
- export { G as GameAudioContext, a as GameAudioContextValue, e as GameAudioControls, b as GameAudioProvider, c as GameAudioProviderProps, U as UseGameAudioOptions, f as useGameAudio, u as useGameAudioContext } from '../GameAudioProvider-DyBvYP2c.js';
8
+ import { U as UnitAnimationState, F as FacingDirection, S as SpriteSheetUrls, f as SpriteFrameDims, R as ResolvedFrame, g as CanvasLighting, h as CanvasPost, a as IsometricUnit, i as CameraState } from '../Canvas3DHost-BTvRPfsr.js';
9
+ export { B as BoardTile, G as GameAction, j as GamePhase, k as GameState, l as GameUnit, b as IsometricFeature, I as IsometricTile, P as Position, m as UnitTrait, n as calculateAttackTargets, o as calculateValidMoves, p as createInitialGameState } from '../Canvas3DHost-BTvRPfsr.js';
10
+ export { G as GameAudioContext, a as GameAudioContextValue, e as GameAudioControls, b as GameAudioProvider, c as GameAudioProviderProps, U as UseGameAudioOptions, f as useGameAudio, u as useGameAudioContext } from '../GameAudioProvider-kXbonWTv.js';
11
11
  import { e as AvlStateMachineProps } from '../FileTree-BSfgp-HH.js';
12
12
  export { B as BehaviorView, f as BehaviorViewProps, g as FileTree, F as FileTreeItem, h as FileTreeNode, i as FileTreeProps, M as ModuleCard, j as ModuleCardProps } from '../FileTree-BSfgp-HH.js';
13
13
  import { LucideIcon } from 'lucide-react';
@@ -18,7 +18,7 @@ import { EmojiPickPayload, ItemActionPayload, SelectionChangePayload } from '@al
18
18
  import { T as TraitLevelData } from '../avl-schema-parser-CH1QoZw1.js';
19
19
  import { a as SlotContent, c as SlotPropValue } from '../useUISlots-1dk2TR4j.js';
20
20
  export { D as DEFAULT_SLOTS, S as SlotChangeCallback, b as SlotRenderConfig, U as UISlotManager, u as useUISlotManager } from '../useUISlots-1dk2TR4j.js';
21
- import '../verificationRegistry-CD7Xb40L.js';
21
+ import '../verificationRegistry-CK76GUfH.js';
22
22
  export { ALMADAR_DND_MIME, AuthContextValue, AuthUser, CanvasGestureCallbacks, CanvasGestureHandlers, CompileResult, CompileStage, DragReorderResult, DraggablePayload, Extension, ExtensionManifest, FileSystemFile, FileSystemStatus, GitHubRepo, GitHubStatus, I18nContextValue, I18nProvider, InfiniteScrollOptions, InfiniteScrollResult, LongPressHandlers, LongPressOptions, OpenFile, Positioned, PullToRefreshOptions, PullToRefreshResult, QuerySingletonEntity, QuerySingletonResult, QuerySingletonState, QueryState, RenderI18n, RenderInterpolationHandle, RenderInterpolationOptions, SelectedFile, SharedEntityStore, SharedEntityStoreContext, SharedEntitySubscriber, SharedEntityWriter, SwipeGestureOptions, SwipeGestureResult, SwipeHandlers, TapRevealOptions, TapRevealResult, TraitListenSpec, TranslateFunction, UseCanvasGesturesOptions, UseCompileResult, UseDraggableOptions, UseDraggableResult, UseDropZoneOptions, UseDropZoneResult, UseExtensionsOptions, UseExtensionsResult, UseFileEditorOptions, UseFileEditorResult, UseFileSystemResult, createSharedEntityStore, createTranslate, parseQueryBinding, runTickFrame, useAgentChat, useAuthContext, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useFormatContext, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInfiniteScroll, useLongPress, useMediaQuery, usePrefersReducedMotion, usePreview, usePullToRefresh, useQuerySingleton, useRenderI18n, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTapReveal, useTraitListens, useTranslate, useUIEvents, useValidation } from '../hooks/index.js';
23
23
  export { E as EventBusContextType, a as NavStackApi, u as useNavStack } from '../NavStackContext-04NLdXsY.js';
24
24
  export { E as EditorKeyEvent, a as KeyCaptureEntry, K as KeyCaptureTable, U as UseKeyboardRouterOptions, k as keyChord, m as mergeCaptureTables, u as useKeyboardRouter } from '../useKeyboardRouter-BW3rThep.js';
@@ -8190,6 +8190,8 @@ interface DataListProps extends DataDndProps, EmptyStateSlotProps, A11yProps {
8190
8190
  variant?: 'default' | 'card' | 'compact' | 'message';
8191
8191
  /** Group items by a field value (renders section headers between groups) */
8192
8192
  groupBy?: string;
8193
+ /** How a `groupBy` value is bucketed and labelled (`date` = one section per day) */
8194
+ groupFormat?: DisplayFieldFormat;
8193
8195
  /** Field name identifying the sender (used with variant: "message") */
8194
8196
  senderField?: string;
8195
8197
  /**
@@ -8275,7 +8277,7 @@ interface DataListProps extends DataDndProps, EmptyStateSlotProps, A11yProps {
8275
8277
  * field whose type is relation. Same contract DetailPanel takes. */
8276
8278
  relationsData?: Record<string, readonly RelationOption[]>;
8277
8279
  }
8278
- declare function DataList({ entity, fields, columns, itemActions, maxInlineActions, itemClickEvent, gap, variant, groupBy, senderField, senderLabelField, currentUser, emptyMessage, emptyIcon, emptyTitle, emptyDescription, emptyAction, className, isLoading, skeleton, error, reorderable: _reorderable, reorderEvent: _reorderEvent, swipeLeftEvent: _swipeLeftEvent, swipeLeftActions: _swipeLeftActions, swipeRightEvent: _swipeRightEvent, swipeRightActions: _swipeRightActions, longPressEvent: _longPressEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, sortBy, sortDirection, renderItem: schemaRenderItem, dragGroup, accepts, sortable: sortableProp, dropEvent, reorderEvent: dndReorderEvent, positionEvent, dndItemIdField, dndRoot, look, surface, relationsData, ...rest }: DataListProps): React__default.JSX.Element;
8280
+ declare function DataList({ entity, fields, columns, itemActions, maxInlineActions, itemClickEvent, gap, variant, groupBy, groupFormat, senderField, senderLabelField, currentUser, emptyMessage, emptyIcon, emptyTitle, emptyDescription, emptyAction, className, isLoading, skeleton, error, reorderable: _reorderable, reorderEvent: _reorderEvent, swipeLeftEvent: _swipeLeftEvent, swipeLeftActions: _swipeLeftActions, swipeRightEvent: _swipeRightEvent, swipeRightActions: _swipeRightActions, longPressEvent: _longPressEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, sortBy, sortDirection, renderItem: schemaRenderItem, dragGroup, accepts, sortable: sortableProp, dropEvent, reorderEvent: dndReorderEvent, positionEvent, dndItemIdField, dndRoot, look, surface, relationsData, ...rest }: DataListProps): React__default.JSX.Element;
8279
8281
  declare namespace DataList {
8280
8282
  var displayName: string;
8281
8283
  }
@@ -3,8 +3,8 @@ export { keyChord, mergeCaptureTables, useAgentChat, useCompile, useConnectGitHu
3
3
  export { I18nProvider, SharedEntityStoreContext, createSharedEntityStore, createTranslate, runTickFrame, useFormatContext, useRenderI18n, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useTranslate } from '../chunk-N7JIG57B.js';
4
4
  export { DEFAULT_SLOTS, useUISlotManager } from '../chunk-VHTJRS2N.js';
5
5
  import '../chunk-YYYHH5BA.js';
6
- import { GridPicker, Icon, Button, FormSection, Select, JsonTreeEditor, ThemedPortal, Switch, Input } from '../chunk-PYJ2UQWM.js';
7
- export { ALL_PRESETS, Accordion, Card2 as ActionCard, ActionPalette, ActionTile, ActivationBlock, AgentActivityFeed, AgentActivityRow, AgentChatFeed, AgentThinkingRow, Alert, AlgoGraphCanvas, AlgorithmCanvas, AnimatedCounter, AnimatedGraphic, AnimatedReveal, Aside, AtlasImage, AtlasPanel, AuthLayout, Avatar, Badge, BehaviorView, BiologyCanvas, BloomQuizBlock, BranchingLogicBuilder, Breadcrumb, Button, ButtonGroup, COMPACT_MEDIA_QUERY, CalendarGrid, Canvas, Canvas2D, Card, CardBody, CardContent, CardFooter, CardHeader, CardTitle, Carousel, Center, ChangeList, Chart, ChartLegend, ChatBar, Checkbox, ChemistryCanvas, ChoiceButton, CodeBlock, CodeRunnerPanel, CollapsibleSection, CommandPalette, CommitRow, ConditionalWrapper, ConfettiEffect, ConfirmDialog, ConnectionBlock, Container, ContentRenderer, ControlButton, ControlGrid, CounterTemplate, DEFAULT_LIKERT_OPTION_KEYS, DEFAULT_MATRIX_COLUMN_KEYS, DIAMOND_TOP_Y, DashboardGrid, DashboardLayout, DataGrid, DataList, DateRangePicker, DateRangeSelector, DayCell, DetailPanel, Dialog, DialogueBubble, Divider, DocBreadcrumb, DocPagination, DocSearch, DocSidebar, DocTOC, DockLayout, DocumentDetails, DocumentPanel, DocumentViewer, StateMachineView as DomStateMachineVisualizer, Drawer, DrawerSlot, ELEMENT_SELECTED_EVENT, EdgeDecoration, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EmojiPicker, EmptyState, ErrorBoundary, ErrorState, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FeatureCard, FeatureGrid, FileTree, FilterGroup, FilterPill, Flex, FlipCard, FlipContainer, FloatingActionButton, FloatingToolbar, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, FxOverlay, GameAudioContext, GameAudioCue, GameAudioProvider, GameAudioToggle, GameHud, GameIcon, GameMenu, GameShell, Gantt, GenericAppTemplate, GeometricPattern, GradientDivider, GraphCanvas, GraphView, Grid, GridPicker, Header, HealthBar, Icon, IconButton, Image, ImportPreviewTree, ImportProgress, ImportSourcePicker, InfiniteScrollSentinel, Input, InputGroup, JazariStateMachine, JsonTreeEditor, Label, LawReferenceTooltip, LearningCanvas, LearningScene3D, Lightbox, LikertScale, LineChart, LoadingState, MapView, MarkdownContent, MasterDetailLayout, MathCanvas, MatrixQuestion, MediaGallery, Menu, Meter, Modal, ModalSlot, ModuleCard, Navigation, NumberStepper, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, Overlay, PageHeader, PageTransition, Pagination, PatternTile, PhysicsCanvas, Popover, PositionedCanvas, ProgressBar, ProgressDots, PullToRefresh, QrScanner, QuizBlock, Radio, RangeSlider, ReflectionBlock, RelationSelect, RepeatableFormSection, ReplyTree, RichTextEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreDisplay, SearchInput, Section, SectionHeader, SegmentRenderer, Select, SequenceBar, SidePanel, Sidebar, SignaturePad, SimpleGrid, Skeleton, SkeletonTree, SlotContentRenderer, SocialProof, SortableList, Spacer, Sparkline, Spinner, Split, SplitPane, StarRating, StatBadge, StatCard, StatDisplay, StateGraph, StateJsonView, StateMachineView, StatusBar, StatusDot, SubagentTracePanel, SvgBranch, SvgConnection, SvgFlow, SvgGrid, SvgLobe, SvgMesh, SvgMorph, SvgNode, SvgPulse, SvgRing, SvgShield, SvgStack, SwipeableRow, Switch, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, TableView, Tabs, TagInput, TerrainPalette, TextHighlight, Textarea, ThemeToggle, TimeSlotCell, Timeline, TimerDisplay, Toast, ToastSlot, Tooltip, TopNavItem, TraitFrame, TraitSlot, TraitStateViewer, TrendIndicator, TypewriterText, UISlotComponent, UISlotRenderer, UploadDropZone, VersionDiff, ViolationAlert, VoteStack, WizardContainer, WizardNavigation, WizardProgress, activityRowFacts, applyCompletion, applySuggestions, arrowBetween, billboardLabel, boardEntity, bool, calculateAttackTargets, calculateValidMoves, createInitialGameState, createUnitAnimationState, cylinderBetween, dispatchCommandPaletteCommand, get3DClickPayload, getCurrentFrame, getTileDimensions, groupIntoConversations, inferDirection, isoToScreen, makeAsset, makeAssetMap, meshSphere, num, objAvailableActions, objAvailableEvents, objCurrentState, objIcon, objId, objMaxRules, objName, objRules, objStates, parseEditFocus, pendulum, projectileMotion, registerCodeLanguageLoader, renderPatternValue, resolveFrame, resolveSheetDirection, rows, sanitizeRichHtml, screenToIso, springOscillator, str, tickAnimationState, toCodeLanguage, transitionAnimation, unitHealth, unitPosition, unitTeam, useAtlasSliceDataUrl, useCamera, useCompactLayout, useDockLayout, useGameAudio, useGameAudioContext, useImageCache, useUnitSpriteAtlas, vec2 } from '../chunk-PYJ2UQWM.js';
6
+ import { GridPicker, Icon, Button, FormSection, Select, JsonTreeEditor, ThemedPortal, Switch, Input } from '../chunk-I2ZNE5TD.js';
7
+ export { ALL_PRESETS, Accordion, Card2 as ActionCard, ActionPalette, ActionTile, ActivationBlock, AgentActivityFeed, AgentActivityRow, AgentChatFeed, AgentThinkingRow, Alert, AlgoGraphCanvas, AlgorithmCanvas, AnimatedCounter, AnimatedGraphic, AnimatedReveal, Aside, AtlasImage, AtlasPanel, AuthLayout, Avatar, Badge, BehaviorView, BiologyCanvas, BloomQuizBlock, BranchingLogicBuilder, Breadcrumb, Button, ButtonGroup, COMPACT_MEDIA_QUERY, CalendarGrid, Canvas, Canvas2D, Card, CardBody, CardContent, CardFooter, CardHeader, CardTitle, Carousel, Center, ChangeList, Chart, ChartLegend, ChatBar, Checkbox, ChemistryCanvas, ChoiceButton, CodeBlock, CodeRunnerPanel, CollapsibleSection, CommandPalette, CommitRow, ConditionalWrapper, ConfettiEffect, ConfirmDialog, ConnectionBlock, Container, ContentRenderer, ControlButton, ControlGrid, CounterTemplate, DEFAULT_LIKERT_OPTION_KEYS, DEFAULT_MATRIX_COLUMN_KEYS, DIAMOND_TOP_Y, DashboardGrid, DashboardLayout, DataGrid, DataList, DateRangePicker, DateRangeSelector, DayCell, DetailPanel, Dialog, DialogueBubble, Divider, DocBreadcrumb, DocPagination, DocSearch, DocSidebar, DocTOC, DockLayout, DocumentDetails, DocumentPanel, DocumentViewer, StateMachineView as DomStateMachineVisualizer, Drawer, DrawerSlot, ELEMENT_SELECTED_EVENT, EdgeDecoration, EditorCheckbox, EditorSelect, EditorSlider, EditorTextInput, EditorToolbar, EmojiPicker, EmptyState, ErrorBoundary, ErrorState, FEATURE_COLORS, FEATURE_TYPES, FLOOR_HEIGHT, FeatureCard, FeatureGrid, FileTree, FilterGroup, FilterPill, Flex, FlipCard, FlipContainer, FloatingActionButton, FloatingToolbar, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, FxOverlay, GameAudioContext, GameAudioCue, GameAudioProvider, GameAudioToggle, GameHud, GameIcon, GameMenu, GameShell, Gantt, GenericAppTemplate, GeometricPattern, GradientDivider, GraphCanvas, GraphView, Grid, GridPicker, Header, HealthBar, Icon, IconButton, Image, ImportPreviewTree, ImportProgress, ImportSourcePicker, InfiniteScrollSentinel, Input, InputGroup, JazariStateMachine, JsonTreeEditor, Label, LawReferenceTooltip, LearningCanvas, LearningScene3D, Lightbox, LikertScale, LineChart, LoadingState, MapView, MarkdownContent, MasterDetailLayout, MathCanvas, MatrixQuestion, MediaGallery, Menu, Meter, Modal, ModalSlot, ModuleCard, Navigation, NumberStepper, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, Overlay, PageHeader, PageTransition, Pagination, PatternTile, PhysicsCanvas, Popover, PositionedCanvas, ProgressBar, ProgressDots, PullToRefresh, QrScanner, QuizBlock, Radio, RangeSlider, ReflectionBlock, RelationSelect, RepeatableFormSection, ReplyTree, RichTextEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreDisplay, SearchInput, Section, SectionHeader, SegmentRenderer, Select, SequenceBar, SidePanel, Sidebar, SignaturePad, SimpleGrid, Skeleton, SkeletonTree, SlotContentRenderer, SocialProof, SortableList, Spacer, Sparkline, Spinner, Split, SplitPane, StarRating, StatBadge, StatCard, StatDisplay, StateGraph, StateJsonView, StateMachineView, StatusBar, StatusDot, SubagentTracePanel, SvgBranch, SvgConnection, SvgFlow, SvgGrid, SvgLobe, SvgMesh, SvgMorph, SvgNode, SvgPulse, SvgRing, SvgShield, SvgStack, SwipeableRow, Switch, TERRAIN_COLORS, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, TableView, Tabs, TagInput, TerrainPalette, TextHighlight, Textarea, ThemeToggle, TimeSlotCell, Timeline, TimerDisplay, Toast, ToastSlot, Tooltip, TopNavItem, TraitFrame, TraitSlot, TraitStateViewer, TrendIndicator, TypewriterText, UISlotComponent, UISlotRenderer, UploadDropZone, VersionDiff, ViolationAlert, VoteStack, WizardContainer, WizardNavigation, WizardProgress, activityRowFacts, applyCompletion, applySuggestions, arrowBetween, billboardLabel, boardEntity, bool, calculateAttackTargets, calculateValidMoves, createInitialGameState, createUnitAnimationState, cylinderBetween, dispatchCommandPaletteCommand, get3DClickPayload, getCurrentFrame, getTileDimensions, groupIntoConversations, inferDirection, isoToScreen, makeAsset, makeAssetMap, meshSphere, num, objAvailableActions, objAvailableEvents, objCurrentState, objIcon, objId, objMaxRules, objName, objRules, objStates, parseEditFocus, pendulum, projectileMotion, registerCodeLanguageLoader, renderPatternValue, resolveFrame, resolveSheetDirection, rows, sanitizeRichHtml, screenToIso, springOscillator, str, tickAnimationState, toCodeLanguage, transitionAnimation, unitHealth, unitPosition, unitTeam, useAtlasSliceDataUrl, useCamera, useCompactLayout, useDockLayout, useGameAudio, useGameAudioContext, useImageCache, useUnitSpriteAtlas, vec2 } from '../chunk-I2ZNE5TD.js';
8
8
  import { VStack, HStack, Box } from '../chunk-HA7CJWQX.js';
9
9
  export { Box, HStack, Stack, VStack } from '../chunk-HA7CJWQX.js';
10
10
  import { Typography } from '../chunk-4ZGXIW3B.js';
@@ -1,5 +1,5 @@
1
- import { C as CanvasPointLightConfig, I as IsometricTile, a as IsometricUnit, b as IsometricFeature } from '../../../Canvas3DHost-DfAhg6EH.js';
2
- export { c as Canvas3DHost, d as Canvas3DHostHandle, e as Canvas3DHostProps, c as GameCanvas3D, U as UnitAnimationState } from '../../../Canvas3DHost-DfAhg6EH.js';
1
+ import { C as CanvasPointLightConfig, I as IsometricTile, a as IsometricUnit, b as IsometricFeature } from '../../../Canvas3DHost-BTvRPfsr.js';
2
+ export { c as Canvas3DHost, d as Canvas3DHostHandle, e as Canvas3DHostProps, c as GameCanvas3D, U as UnitAnimationState } from '../../../Canvas3DHost-BTvRPfsr.js';
3
3
  import React__default, { Component, ReactNode, ErrorInfo } from 'react';
4
4
  import * as THREE from 'three';
5
5
  import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
@@ -8,7 +8,7 @@ import { Z as ZoomLevel } from '../../../avl-zoom-state-CKMVuBFg.js';
8
8
  import { b as Avl3DModelOverrides } from '../../../avl-3d-context-BpBKZIbc.js';
9
9
  export { d as AVL_3D_COLORS, A as Avl3DConfig, a as Avl3DContext, C as CAMERA_POSITIONS, P as Position3D, e as arcCurve3D, f as fibonacciSpherePositions, g as goldenSpiralPositions, o as orbitRingPositions, s as selfLoopCurve3D, t as treeLayout3D, u as useAvl3DConfig } from '../../../avl-3d-context-BpBKZIbc.js';
10
10
  import { A as ApplicationLevelData, b as OrbitalLevelData, T as TraitLevelData, c as TransitionLevelData } from '../../../avl-schema-parser-CH1QoZw1.js';
11
- import '../../../paintDispatch-_6EhJCiL.js';
11
+ import '../../../paintDispatch-BN8Vbzgs.js';
12
12
  import 'lucide-react';
13
13
 
14
14
  /**
@@ -2,13 +2,13 @@ export { A as ApplyOperatorInput, a as ApplyOperatorResult, C as ContentSegment,
2
2
  import { FieldValue, EntityRow, EventKey, EnterAnimation } from '@almadar/core';
3
3
  export { AssetLoadStatus, BridgeHealth, CheckStatus, EffectTrace, EventLogEntry, OrbitalVerificationAPI, ServerResponseTrace, TraitStateSnapshot, TransitionTrace, VerificationCheck, VerificationSnapshot, VerificationSummary, getNestedValue } from '@almadar/core';
4
4
  export { p as profilerOnRender, u as usePerfBuffer } from '../perf-DaVdsbU0.js';
5
- export { T as TraitSnapshotGetter, b as bindCanvasCapture, a as bindEventBus, c as bindLastDrawables, d as bindTraitStateGetter, e as clearVerification, g as getAllChecks, f as getBridgeHealth, h as getSnapshot, i as getSummary, j as getTraitSnapshots, k as getTransitions, l as getTransitionsForTrait, r as recordOrbitalResponse, m as recordServerResponse, n as recordTransition, o as recordingTransport, p as registerCheck, q as registerTraitSnapshot, s as serverEffectTraces, t as subscribeToVerification, u as updateAssetStatus, v as updateBridgeHealth, w as updateCheck, x as waitForTransition } from '../verificationRegistry-CD7Xb40L.js';
5
+ export { T as TraitSnapshotGetter, b as bindCanvasCapture, a as bindEventBus, c as bindLastDrawables, d as bindTraitStateGetter, e as clearVerification, g as getAllChecks, f as getBridgeHealth, h as getSnapshot, i as getSummary, j as getTraitSnapshots, k as getTransitions, l as getTransitionsForTrait, r as recordOrbitalResponse, m as recordServerResponse, n as recordTransition, o as recordingTransport, p as registerCheck, q as registerTraitSnapshot, s as serverEffectTraces, t as subscribeToVerification, u as updateAssetStatus, v as updateBridgeHealth, w as updateCheck, x as waitForTransition } from '../verificationRegistry-CK76GUfH.js';
6
6
  export { B as BooleanLabels, D as DEFAULT_CURRENCY, F as FormatContext, S as SortDirection, V as ValueFormat, c as compareCellValues, f as formatDate, a as formatDateTime, b as formatTime, d as formatValue, p as parseCalendarDate, s as sortRows, t as toDateInputValue, e as toDateTimeInputValue } from '../format-Czimj421.js';
7
7
  export { D as DENSITY_ELEMENT_VARS, a as DENSITY_SPACING_VARS, b as DIAGRAM_VARS, E as ELEVATION_VARS, F as FlatVarEntry, G as GEOMETRY_VARS, I as ICONOGRAPHY_VARS, L as LEGACY_PREFIXES, M as MOTION_DURATION_KEYS, c as MOTION_EASING_KEYS, d as MOTION_INTENT_VARS, e as MOTION_SHAPE_VARS, S as SCENE_VARS, f as SURFACE_VARS, g as StringValueKey, h as TYPE_FAMILY_VARS, i as TYPE_HEADING_VARS, j as TYPE_INTENT_VARS, k as TYPE_SIZE_KEYS, T as ThemeMode, l as enterKeyframe, r as resolveThemeForRuntime, t as themeTokensToCssVars } from '../themeTokens-D6MFwKrC.js';
8
8
  export { PERF_NAMESPACE, PerfEntry, clearPerf, perfEnd, perfGauge, perfStart, perfTime, perfTimeAsync } from '@almadar/runtime/ui';
9
9
  import 'react';
10
10
  import 'clsx';
11
- import '../paintDispatch-_6EhJCiL.js';
11
+ import '../paintDispatch-BN8Vbzgs.js';
12
12
  import 'lucide-react';
13
13
  import '@almadar/runtime';
14
14
 
@@ -964,4 +964,4 @@ interface DrawFxLayerProps extends DrawableBase {
964
964
  /** Every drawable descriptor. The host's `children` are a `DrawableNode[]`. */
965
965
  type DrawableNode = DrawSpriteProps | DrawShapeProps | DrawTextProps | DrawGroupProps | DrawMeshProps | DrawSkinnedMeshProps | DrawSpriteLayerProps | DrawShapeLayerProps | DrawTextLayerProps | DrawFxLayerProps;
966
966
 
967
- export { type BadgeColor as B, type ColorToken as C, type DrawableNode as D, type FxOverlayItem as F, type IconInput as I, type LinkAction as L, type MeshShapeKind as M, type Projector as P, type Rect as R, type UiError as U, type MeshMaterial as a, type DrawGroupProps as b, type DrawTextProps as c, type DrawMeshProps as d, type DisplayField as e, type BadgeVariant as f, Badge as g, type BadgeProps as h, type FxOverlayKind as i, Icon as j, type IconAnimation as k, type IconProps as l, type IconSize as m, type ImageSource as n, type Point as o };
967
+ export { type BadgeColor as B, type ColorToken as C, type DrawableNode as D, type FxOverlayItem as F, type IconInput as I, type LinkAction as L, type MeshShapeKind as M, type Projector as P, type Rect as R, type UiError as U, type MeshMaterial as a, type DrawGroupProps as b, type DrawTextProps as c, type DrawMeshProps as d, type DisplayField as e, type DisplayFieldFormat as f, type BadgeVariant as g, Badge as h, type BadgeProps as i, type FxOverlayKind as j, Icon as k, type IconAnimation as l, type IconProps as m, type IconSize as n, type ImageSource as o, type Point as p };
@@ -19056,6 +19056,7 @@ var init_Tabs = __esm({
19056
19056
  }
19057
19057
  };
19058
19058
  const activeTabContent = safeItems.find((item) => item.id === activeTab)?.content;
19059
+ const rendersPanel = activeTabContent !== void 0 && activeTabContent !== null;
19059
19060
  if (safeItems.length === 0) {
19060
19061
  return /* @__PURE__ */ jsxRuntime.jsx(Box, { ...domPassthrough(rest), className: cn("w-full", className), children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", color: "muted", className: "py-4", children: t("empty.noItems") }) });
19061
19062
  }
@@ -19106,7 +19107,7 @@ var init_Tabs = __esm({
19106
19107
  id: tabId(item.id),
19107
19108
  role: "tab",
19108
19109
  "aria-selected": isActive,
19109
- "aria-controls": isActive ? panelId(item.id) : void 0,
19110
+ "aria-controls": isActive && rendersPanel ? panelId(item.id) : void 0,
19110
19111
  "aria-disabled": isDisabled,
19111
19112
  tabIndex: isActive ? 0 : -1,
19112
19113
  onClick: () => !isDisabled && handleTabChange(item.id, item.event),
@@ -19166,7 +19167,7 @@ var init_Tabs = __esm({
19166
19167
  )
19167
19168
  ] })
19168
19169
  ] }) : tablist,
19169
- activeTabContent !== void 0 && activeTabContent !== null && /* @__PURE__ */ jsxRuntime.jsx(
19170
+ rendersPanel && /* @__PURE__ */ jsxRuntime.jsx(
19170
19171
  Box,
19171
19172
  {
19172
19173
  role: "tabpanel",
@@ -34477,8 +34478,11 @@ function DataGrid({
34477
34478
  children: [
34478
34479
  imageField && (() => {
34479
34480
  const imgUrl = resolveImageUrl(core.getNestedValue(itemData, imageField));
34480
- if (!imgUrl) return null;
34481
- return /* @__PURE__ */ jsxRuntime.jsx(Box, { className: asRows ? "w-12 h-12 flex-shrink-0 overflow-hidden rounded-container" : "w-full aspect-video overflow-hidden rounded-t-container", children: /* @__PURE__ */ jsxRuntime.jsx(
34481
+ const mediaClass = asRows ? "w-12 h-12 flex-shrink-0 overflow-hidden rounded-container" : "w-full aspect-video overflow-hidden rounded-t-container";
34482
+ if (!imgUrl) {
34483
+ return /* @__PURE__ */ jsxRuntime.jsx(Box, { "data-media-placeholder": true, "aria-hidden": "true", className: cn(mediaClass, "flex items-center justify-center bg-muted text-muted-foreground"), children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "image", size: asRows ? "sm" : "lg" }) });
34484
+ }
34485
+ return /* @__PURE__ */ jsxRuntime.jsx(Box, { className: mediaClass, children: /* @__PURE__ */ jsxRuntime.jsx(
34482
34486
  "img",
34483
34487
  {
34484
34488
  src: imgUrl,
@@ -34511,7 +34515,7 @@ function DataGrid({
34511
34515
  Typography,
34512
34516
  {
34513
34517
  variant: titleField?.variant === "h3" && !asRows ? "h3" : "h4",
34514
- className: "font-semibold truncate min-w-0",
34518
+ className: cn("font-semibold min-w-0", asRows ? "truncate" : "line-clamp-2 break-words"),
34515
34519
  children: titleDisplay
34516
34520
  }
34517
34521
  )
@@ -34640,24 +34644,33 @@ var init_DataGrid = __esm({
34640
34644
  DataGrid.displayName = "DataGrid";
34641
34645
  }
34642
34646
  });
34643
- function renderIconInput2(icon, props) {
34644
- return typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: icon, ...props }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon, ...props });
34645
- }
34646
- function formatValue2(value, format, fmt2, relationOptions) {
34647
- const relationDisplay = resolveRelationCellDisplay(value, relationOptions);
34648
- if (relationDisplay !== void 0) return relationDisplay;
34649
- return formatValue(value, format, fmt2);
34650
- }
34651
- function groupData(items, field) {
34647
+
34648
+ // lib/groupRows.ts
34649
+ function groupRows(items, field, format, fmt2 = {}) {
34652
34650
  const groups = /* @__PURE__ */ new Map();
34653
34651
  for (const item of items) {
34654
- const key = String(core.getNestedValue(item, field) ?? "");
34652
+ const raw = core.getNestedValue(item, field);
34653
+ const key = format ? formatValue(raw ?? void 0, format, fmt2) : String(raw ?? "");
34655
34654
  const group = groups.get(key);
34656
34655
  if (group) group.push(item);
34657
34656
  else groups.set(key, [item]);
34658
34657
  }
34659
34658
  return Array.from(groups.entries()).map(([label, groupItems]) => ({ label, items: groupItems }));
34660
34659
  }
34660
+ var init_groupRows = __esm({
34661
+ "lib/groupRows.ts"() {
34662
+ init_format();
34663
+ init_getNestedValue();
34664
+ }
34665
+ });
34666
+ function renderIconInput2(icon, props) {
34667
+ return typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: icon, ...props }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon, ...props });
34668
+ }
34669
+ function formatValue2(value, format, fmt2, relationOptions) {
34670
+ const relationDisplay = resolveRelationCellDisplay(value, relationOptions);
34671
+ if (relationDisplay !== void 0) return relationDisplay;
34672
+ return formatValue(value, format, fmt2);
34673
+ }
34661
34674
  function DataList({
34662
34675
  entity,
34663
34676
  fields,
@@ -34668,6 +34681,7 @@ function DataList({
34668
34681
  gap = "none",
34669
34682
  variant = "default",
34670
34683
  groupBy,
34684
+ groupFormat,
34671
34685
  senderField,
34672
34686
  senderLabelField,
34673
34687
  currentUser,
@@ -34775,9 +34789,9 @@ function DataList({
34775
34789
  e.stopPropagation();
34776
34790
  fireRowAction(action, itemData, String(itemData.id ?? ""));
34777
34791
  };
34778
- const renderItemActions = (itemData, onPrimary = false) => {
34792
+ const renderItemActions = (itemData, onPrimary = false, only) => {
34779
34793
  if (!itemActions || itemActions.length === 0) return null;
34780
- const shown = rowActions(itemActions, itemData);
34794
+ const shown = only ?? rowActions(itemActions, itemData);
34781
34795
  if (shown.length === 0) return null;
34782
34796
  const inline = maxInlineActions != null ? shown.slice(0, maxInlineActions) : shown;
34783
34797
  const overflow = maxInlineActions != null ? shown.slice(maxInlineActions) : [];
@@ -34861,7 +34875,7 @@ function DataList({
34861
34875
  const isMessage = variant === "message";
34862
34876
  if (isMessage) {
34863
34877
  const items2 = [...data];
34864
- const groups2 = groupBy ? groupData(items2, groupBy) : [{ label: "", items: items2 }];
34878
+ const groups2 = groupBy ? groupRows(items2, groupBy, groupFormat, fmt2) : [{ label: "", items: items2 }];
34865
34879
  const contentField = (fieldDefs.find((f3) => f3.variant === "body") ?? titleField)?.name ?? "";
34866
34880
  const senderLabel = (itemData, raw) => {
34867
34881
  if (!senderLabelField) return raw;
@@ -34958,7 +34972,7 @@ function DataList({
34958
34972
  ] });
34959
34973
  }
34960
34974
  const items = [...data];
34961
- const groups = groupBy ? groupData(items, groupBy) : [{ label: "", items }];
34975
+ const groups = groupBy ? groupRows(items, groupBy, groupFormat, fmt2) : [{ label: "", items }];
34962
34976
  const idFieldName = dndItemIdField ?? "id";
34963
34977
  const renderItem = (itemData, index, isLast) => {
34964
34978
  const dndId = itemData[idFieldName] ?? `__idx_${index}`;
@@ -34969,7 +34983,11 @@ function DataList({
34969
34983
  const divider = (isCard || isCompact) && !isLast ? /* @__PURE__ */ jsxRuntime.jsx(Box, { className: cn("border-b border-border/40", isCompact ? "mx-4" : "mx-6") }) : null;
34970
34984
  if (hasRenderProp) {
34971
34985
  const id2 = itemData.id || String(index);
34972
- const actions = renderItemActions(itemData);
34986
+ const allActions = itemActions ? rowActions(itemActions, itemData) : [];
34987
+ const primaryActions = allActions.filter((a) => a.variant === "primary");
34988
+ const otherActions = allActions.filter((a) => a.variant !== "primary");
34989
+ const primary = primaryActions.length > 0 ? renderItemActions(itemData, false, primaryActions) : null;
34990
+ const actions = otherActions.length > 0 ? renderItemActions(itemData, false, otherActions) : null;
34973
34991
  return wrapDnd(
34974
34992
  /* @__PURE__ */ jsxRuntime.jsxs(
34975
34993
  Box,
@@ -34990,6 +35008,7 @@ function DataList({
34990
35008
  }
34991
35009
  ),
34992
35010
  /* @__PURE__ */ jsxRuntime.jsx(Box, { className: cn(onOpen && "relative"), children: itemRenderer(itemData, index) }),
35011
+ primary && /* @__PURE__ */ jsxRuntime.jsx(HStack, { justify: "end", className: cn("relative px-4 pb-3", STRETCHED_ABOVE), children: primary }),
34993
35012
  actions && /* @__PURE__ */ jsxRuntime.jsxs(Box, { onClick: (e) => e.stopPropagation(), className: "absolute top-2 right-2 z-10 opacity-0 group-hover/rowactions:opacity-100 focus-within:opacity-100 [@media(pointer:coarse)]:opacity-100 transition-opacity duration-fast", children: [
34994
35013
  /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "rounded-container border border-border bg-card/95 backdrop-blur-sm shadow-elevation-popover surface-material p-0.5 [@media(pointer:coarse)]:hidden", children: actions }),
34995
35014
  /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "hidden [@media(pointer:coarse)]:block rounded-container border border-border bg-card/95 backdrop-blur-sm shadow-elevation-popover surface-material p-0.5", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -34997,7 +35016,7 @@ function DataList({
34997
35016
  {
34998
35017
  position: "bottom-end",
34999
35018
  trigger: /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "ghost", size: "sm", "aria-label": t("common.actions"), "data-testid": "action-overflow", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "more-horizontal", size: "xs" }) }),
35000
- items: rowActions(itemActions ?? [], itemData).map((action) => ({
35019
+ items: otherActions.map((action) => ({
35001
35020
  label: action.label,
35002
35021
  icon: action.icon,
35003
35022
  variant: action.variant === "danger" ? "danger" : "default",
@@ -35188,6 +35207,7 @@ var init_DataList = __esm({
35188
35207
  init_format();
35189
35208
  init_relationLabel();
35190
35209
  init_getNestedValue();
35210
+ init_groupRows();
35191
35211
  init_useEventBus();
35192
35212
  init_useRowActions();
35193
35213
  init_Box();
@@ -36281,16 +36301,6 @@ function asFieldValue(v) {
36281
36301
  if (t === "object") return v;
36282
36302
  return void 0;
36283
36303
  }
36284
- function groupData2(items, field) {
36285
- const groups = /* @__PURE__ */ new Map();
36286
- for (const item of items) {
36287
- const key = String(core.getNestedValue(item, field) ?? "");
36288
- const group = groups.get(key);
36289
- if (group) group.push(item);
36290
- else groups.set(key, [item]);
36291
- }
36292
- return Array.from(groups.entries()).map(([label, groupItems]) => ({ label, items: groupItems }));
36293
- }
36294
36304
  function TableView({
36295
36305
  entity,
36296
36306
  columns,
@@ -36601,7 +36611,7 @@ function TableView({
36601
36611
  return dnd.isZone ? /* @__PURE__ */ jsxRuntime.jsx(dnd.SortableItem, { id: row[idField] ?? id, children: rowInner }, id) : /* @__PURE__ */ jsxRuntime.jsx(React99__namespace.default.Fragment, { children: rowInner }, id);
36602
36612
  };
36603
36613
  const items = Array.from(data);
36604
- const groups = groupBy ? groupData2(items, groupBy) : [{ label: "", items }];
36614
+ const groups = groupBy ? groupRows(items, groupBy) : [{ label: "", items }];
36605
36615
  let runningIndex = 0;
36606
36616
  const body = /* @__PURE__ */ jsxRuntime.jsx(Box, { role: "rowgroup", children: groups.map((group, gi) => /* @__PURE__ */ jsxRuntime.jsxs(React99__namespace.default.Fragment, { children: [
36607
36617
  group.label && /* @__PURE__ */ jsxRuntime.jsx(Divider, { label: group.label, className: gi > 0 ? "mt-3" : "mt-0" }),
@@ -36640,6 +36650,7 @@ var init_TableView = __esm({
36640
36650
  init_format();
36641
36651
  init_relationLabel();
36642
36652
  init_getNestedValue();
36653
+ init_groupRows();
36643
36654
  init_useEventBus();
36644
36655
  init_useRowActions();
36645
36656
  init_Box();
@@ -59207,9 +59218,6 @@ function useNavigationId2() {
59207
59218
  return context?.state.navigationId || 0;
59208
59219
  }
59209
59220
  var ServerBridgeContext = React99.createContext(null);
59210
- function useHasServerBridge() {
59211
- return React99.useContext(ServerBridgeContext) !== null;
59212
- }
59213
59221
  function useServerBridge() {
59214
59222
  const ctx = React99.useContext(ServerBridgeContext);
59215
59223
  if (!ctx) {
@@ -59976,7 +59984,6 @@ exports.useGameAudioContext = useGameAudioContext2;
59976
59984
  exports.useGameAudioContextOptional = useGameAudioContextOptional2;
59977
59985
  exports.useHasPermission = useHasPermission;
59978
59986
  exports.useHasRole = useHasRole;
59979
- exports.useHasServerBridge = useHasServerBridge;
59980
59987
  exports.useInitPayload = useInitPayload2;
59981
59988
  exports.useNavStack = useNavStack7;
59982
59989
  exports.useNavigateTo = useNavigateTo2;
@@ -7,14 +7,14 @@ import { b as UserData } from '../UserContext-D566nfWA.js';
7
7
  export { U as UserContext, a as UserContextValue, c as UserProvider, d as UserProviderProps, u as useHasPermission, e as useHasRole, f as useUser, g as useUserForEvaluation } from '../UserContext-D566nfWA.js';
8
8
  import { E as EventBusContextType } from '../NavStackContext-04NLdXsY.js';
9
9
  export { N as NavPageDecl, a as NavStackApi, b as NavStackProvider, c as NavStackProviderProps, d as NavStackRouterBridge, e as NavStackRouterBridgeProps, i as isInertNavStack, u as useNavStack } from '../NavStackContext-04NLdXsY.js';
10
- export { n as AwaitingSkeletonContext, A as AwaitingSkeletonSource, o as EntityBindingContext, E as EntityBindingSource, a as EntitySchemaContextValue, b as EntitySchemaProvider, c as EntitySchemaProviderProps, d as ServerBridgeContextValue, e as ServerBridgeProvider, p as ServerBridgeProviderProps, S as ServerBridgeTransport, T as TraitContext, f as TraitContextValue, g as TraitInstance, h as TraitProvider, i as TraitProviderProps, q as useAwaitingSkeleton, r as useEntityBindingSnapshot, u as useEntitySchema, j as useEntitySchemaOptional, s as useHasServerBridge, k as useServerBridge, l as useTrait, m as useTraitContext } from '../AwaitingSkeletonContext-DPgW__WV.js';
10
+ export { n as AwaitingSkeletonContext, A as AwaitingSkeletonSource, o as EntityBindingContext, E as EntityBindingSource, a as EntitySchemaContextValue, b as EntitySchemaProvider, c as EntitySchemaProviderProps, d as ServerBridgeContextValue, e as ServerBridgeProvider, p as ServerBridgeProviderProps, S as ServerBridgeTransport, T as TraitContext, f as TraitContextValue, g as TraitInstance, h as TraitProvider, i as TraitProviderProps, q as useAwaitingSkeleton, r as useEntityBindingSnapshot, u as useEntitySchema, j as useEntitySchemaOptional, k as useServerBridge, l as useTrait, m as useTraitContext } from '../AwaitingSkeletonContext-Bh399p1x.js';
11
11
  import { i as UseOfflineExecutorResult, U as UseOfflineExecutorOptions } from '../offline-executor-C0TWucBj.js';
12
12
  export { N as NavigationContextValue, c as NavigationProvider, d as NavigationProviderProps, e as NavigationState, k as extractRouteParams, l as findPageByName, m as findPageByPath, n as getAllPages, o as getDefaultPage, p as pathMatches, u as useActivePage, q as useInitPayload, r as useNavigateTo, s as useNavigation, t as useNavigationId, v as useNavigationState } from '../offline-executor-C0TWucBj.js';
13
- import '../verificationRegistry-CD7Xb40L.js';
14
- export { G as GameAudioContext, a as GameAudioContextValue, b as GameAudioProvider, c as GameAudioProviderProps, u as useGameAudioContext, d as useGameAudioContextOptional } from '../GameAudioProvider-DyBvYP2c.js';
13
+ import '../verificationRegistry-CK76GUfH.js';
14
+ export { G as GameAudioContext, a as GameAudioContextValue, b as GameAudioProvider, c as GameAudioProviderProps, u as useGameAudioContext, d as useGameAudioContextOptional } from '../GameAudioProvider-kXbonWTv.js';
15
15
  export { A as Avl3DConfig, a as Avl3DContext, b as Avl3DModelOverrides, u as useAvl3DConfig, c as useAvl3DPalette } from '../avl-3d-context-BpBKZIbc.js';
16
16
  export { AccessTokenProvider } from '@almadar/runtime';
17
- import '../paintDispatch-_6EhJCiL.js';
17
+ import '../paintDispatch-BN8Vbzgs.js';
18
18
  import 'lucide-react';
19
19
  import 'three';
20
20
 
@@ -1,5 +1,5 @@
1
1
  import { arbitraryClassesOf } from '../chunk-D2E44ODB.js';
2
- import { useGameAudio, SuspenseConfigProvider } from '../chunk-PYJ2UQWM.js';
2
+ import { useGameAudio, SuspenseConfigProvider } from '../chunk-I2ZNE5TD.js';
3
3
  import { Box } from '../chunk-HA7CJWQX.js';
4
4
  import '../chunk-4ZGXIW3B.js';
5
5
  import '../chunk-I5QOYW2Z.js';
@@ -894,9 +894,6 @@ function useNavigationId() {
894
894
  return context?.state.navigationId || 0;
895
895
  }
896
896
  var ServerBridgeContext = createContext(null);
897
- function useHasServerBridge() {
898
- return useContext(ServerBridgeContext) !== null;
899
- }
900
897
  function useServerBridge() {
901
898
  const ctx = useContext(ServerBridgeContext);
902
899
  if (!ctx) {
@@ -1469,4 +1466,4 @@ function useOnSurface() {
1469
1466
  return React17.useContext(SurfaceContext);
1470
1467
  }
1471
1468
 
1472
- export { ARBITRARY_CLASS_STYLE_ID, ArbitraryClassCompilerProvider, Avl3DContext, AwaitingSkeletonContext, CurrentPagePathContext, CurrentPagePathProvider, EntityBindingContext, EntitySchemaProvider, EventBusContext, EventBusProvider, GameAudioContext, GameAudioProvider, NavStackProvider, NavStackRouterBridge, NavigationProvider, OfflineModeProvider, OrbitalProvider, OrbitalThemeProvider, RenderSlotProvider, SelectionContext, SelectionProvider, ServerBridgeProvider, SurfaceBoundary, TraitContext, TraitProvider, TraitScopeProvider, UserContext, UserProvider, VerificationProvider, extractRouteParams, findPageByName, findPageByPath, getAllPages, getDefaultPage, isInertNavStack, mapServerEffectResults, pathMatches, resetArbitraryClassStyles, useActivePage, useArbitraryClassStyles, useAvl3DConfig, useAvl3DPalette, useAwaitingSkeleton, useContentSurface, useCurrentPagePath, useEntityBindingSnapshot, useEntitySchema, useEntitySchemaOptional, useGameAudioContext, useGameAudioContextOptional, useHasPermission, useHasRole, useHasServerBridge, useInitPayload, useNavStack, useNavigateTo, useNavigation, useNavigationId, useNavigationState, useOfflineMode, useOnSurface, useOptionalOfflineMode, useRenderSlot, useSelection, useSelectionOptional, useServerBridge, useTrait, useTraitContext, useTraitScope, useTraitScopeChain, useUser, useUserForEvaluation };
1469
+ export { ARBITRARY_CLASS_STYLE_ID, ArbitraryClassCompilerProvider, Avl3DContext, AwaitingSkeletonContext, CurrentPagePathContext, CurrentPagePathProvider, EntityBindingContext, EntitySchemaProvider, EventBusContext, EventBusProvider, GameAudioContext, GameAudioProvider, NavStackProvider, NavStackRouterBridge, NavigationProvider, OfflineModeProvider, OrbitalProvider, OrbitalThemeProvider, RenderSlotProvider, SelectionContext, SelectionProvider, ServerBridgeProvider, SurfaceBoundary, TraitContext, TraitProvider, TraitScopeProvider, UserContext, UserProvider, VerificationProvider, extractRouteParams, findPageByName, findPageByPath, getAllPages, getDefaultPage, isInertNavStack, mapServerEffectResults, pathMatches, resetArbitraryClassStyles, useActivePage, useArbitraryClassStyles, useAvl3DConfig, useAvl3DPalette, useAwaitingSkeleton, useContentSurface, useCurrentPagePath, useEntityBindingSnapshot, useEntitySchema, useEntitySchemaOptional, useGameAudioContext, useGameAudioContextOptional, useHasPermission, useHasRole, useInitPayload, useNavStack, useNavigateTo, useNavigation, useNavigationId, useNavigationState, useOfflineMode, useOnSurface, useOptionalOfflineMode, useRenderSlot, useSelection, useSelectionOptional, useServerBridge, useTrait, useTraitContext, useTraitScope, useTraitScopeChain, useUser, useUserForEvaluation };