@almadar/ui 6.51.2 → 6.52.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.
Files changed (121) hide show
  1. package/dist/{Canvas3DHost-CLC_jXh_.d.ts → Canvas3DHost-CWO0tswb.d.ts} +1 -1
  2. package/dist/{FileTree-RKQqRhIM.d.ts → FileTree-DUi7e7Z8.d.ts} +5 -5
  3. package/dist/{GameAudioProvider-BgWLggIy.d.ts → GameAudioProvider-_hPzjqp-.d.ts} +1 -1
  4. package/dist/{NavStackContext-B-XLULCO.d.ts → NavStackContext-04NLdXsY.d.ts} +8 -0
  5. package/dist/Typography-7FRZOS2H.js +5 -0
  6. package/dist/{UISlotContext-DNM8iXna.d.ts → UISlotContext-CS487Uoc.d.ts} +1 -1
  7. package/dist/{UISlotRenderer-7UYHFW4S.js → UISlotRenderer-CR7SCAMR.js} +8 -8
  8. package/dist/avl/index.cjs +3401 -1590
  9. package/dist/avl/index.d.ts +4 -4
  10. package/dist/avl/index.js +26 -23
  11. package/dist/{chunk-6CFYRP4S.js → chunk-2QB2PXOO.js} +1 -3
  12. package/dist/{chunk-R4V7IZQP.js → chunk-5GCI6C7J.js} +2 -2
  13. package/dist/{chunk-BUEIZY54.js → chunk-BHZG4PDZ.js} +420 -422
  14. package/dist/{chunk-MWPX2O4M.js → chunk-CLSLVFSP.js} +3 -16
  15. package/dist/{chunk-GIPZSCND.js → chunk-EERAGPBW.js} +3078 -1832
  16. package/dist/{chunk-OLZ3EEML.js → chunk-G4GMXYMY.js} +109 -15
  17. package/dist/{chunk-HQDKHLFG.js → chunk-IN3BVW2Z.js} +15 -1
  18. package/dist/{chunk-FGHRVJCI.js → chunk-MSBMVG3B.js} +12 -2
  19. package/dist/{chunk-YKHNK5JH.js → chunk-NCNP2RKZ.js} +11 -4
  20. package/dist/{chunk-T7IH5ABO.js → chunk-QWDKMVLX.js} +69 -17
  21. package/dist/{chunk-NTO555KF.js → chunk-TWHYH25Q.js} +136 -15
  22. package/dist/{chunk-GHXWGQTX.js → chunk-V5AGW2JN.js} +1 -1
  23. package/dist/{chunk-L55SAFKL.js → chunk-WB2A6V3I.js} +31 -1
  24. package/dist/{chunk-JXUYEO7U.js → chunk-XUSSAWKL.js} +7 -1
  25. package/dist/{cn-CO-0rolG.d.ts → cn-ClXGlIOY.d.ts} +2 -2
  26. package/dist/components/index.cjs +4933 -3165
  27. package/dist/components/index.d.ts +499 -416
  28. package/dist/components/index.js +11 -11
  29. package/dist/context/index.cjs +12 -4
  30. package/dist/context/index.d.ts +3 -3
  31. package/dist/context/index.js +2 -2
  32. package/dist/hooks/index.cjs +73 -6
  33. package/dist/hooks/index.d.ts +32 -7
  34. package/dist/hooks/index.js +6 -6
  35. package/dist/lib/drawable/three/index.cjs +33 -2
  36. package/dist/lib/drawable/three/index.d.ts +5 -5
  37. package/dist/lib/drawable/three/index.js +7 -7
  38. package/dist/lib/index.cjs +69 -2
  39. package/dist/lib/index.d.ts +29 -6
  40. package/dist/lib/index.js +5 -5
  41. package/dist/locales/index.cjs +93 -3
  42. package/dist/locales/index.js +63 -3
  43. package/dist/{paintDispatch-CMgOyVjS.d.ts → paintDispatch-DHo3WhaU.d.ts} +4 -4
  44. package/dist/providers/index.cjs +3392 -1607
  45. package/dist/providers/index.d.ts +6 -6
  46. package/dist/providers/index.js +55 -16
  47. package/dist/runtime/index.cjs +3417 -1611
  48. package/dist/runtime/index.d.ts +2 -2
  49. package/dist/runtime/index.js +10 -10
  50. package/dist/ssr/index.cjs +306 -141
  51. package/dist/ssr/index.d.cts +32 -44
  52. package/dist/ssr/index.d.ts +32 -44
  53. package/dist/ssr/index.js +249 -84
  54. package/dist/{themeTokens-CN9WCXQc.d.ts → themeTokens-Ccu7EmGY.d.ts} +4 -2
  55. package/dist/{useUISlots-CwUWM1ra.d.ts → useUISlots-1dk2TR4j.d.ts} +1 -9
  56. package/dist/{verificationRegistry-DBHfOR9y.d.ts → verificationRegistry-BYD3cVhS.d.ts} +1 -1
  57. package/locales/ar.json +31 -1
  58. package/locales/en.json +31 -1
  59. package/locales/sl.json +31 -1
  60. package/package.json +12 -9
  61. package/tailwind-preset.cjs +24 -1
  62. package/themes/_base.css +86 -0
  63. package/themes/_contract.md +1 -0
  64. package/themes/almadar-website.css +2 -0
  65. package/themes/almadar.css +2 -0
  66. package/themes/aqua.css +5 -3
  67. package/themes/arabesque.css +9 -7
  68. package/themes/art-deco.css +5 -3
  69. package/themes/art-nouveau.css +4 -0
  70. package/themes/atelier.css +10 -8
  71. package/themes/bauhaus.css +2 -0
  72. package/themes/bloomberg-dense.css +13 -11
  73. package/themes/blueprint.css +2 -0
  74. package/themes/clay.css +2 -0
  75. package/themes/comic.css +12 -10
  76. package/themes/constructivist.css +2 -0
  77. package/themes/corporate.css +4 -2
  78. package/themes/cyberpunk.css +2 -0
  79. package/themes/frutiger-aero.css +2 -0
  80. package/themes/game-adventure.css +1 -0
  81. package/themes/game-rpg.css +1 -0
  82. package/themes/game-sci-fi.css +1 -0
  83. package/themes/game-ui-pack.css +1 -0
  84. package/themes/gazette.css +10 -8
  85. package/themes/glass.css +17 -15
  86. package/themes/gothic.css +2 -0
  87. package/themes/ink-wash.css +2 -0
  88. package/themes/kawaii.css +2 -0
  89. package/themes/kiosk.css +17 -15
  90. package/themes/linear-clean.css +12 -10
  91. package/themes/luxury.css +2 -0
  92. package/themes/mac-classic.css +2 -0
  93. package/themes/material.css +2 -0
  94. package/themes/memphis.css +2 -0
  95. package/themes/mid-century.css +2 -0
  96. package/themes/minimalist.css +2 -0
  97. package/themes/mudcloth.css +2 -0
  98. package/themes/neon.css +2 -0
  99. package/themes/neumorphic.css +2 -0
  100. package/themes/newsprint.css +2 -0
  101. package/themes/notion-editorial.css +12 -10
  102. package/themes/pixel.css +2 -0
  103. package/themes/prism.css +20 -18
  104. package/themes/retro.css +2 -0
  105. package/themes/risograph.css +2 -0
  106. package/themes/scandi.css +2 -0
  107. package/themes/sketch.css +2 -0
  108. package/themes/solarpunk.css +2 -0
  109. package/themes/steampunk.css +2 -0
  110. package/themes/swiss.css +2 -0
  111. package/themes/terminal.css +8 -6
  112. package/themes/trait-wars.css +2 -0
  113. package/themes/ukiyo-e.css +2 -0
  114. package/themes/vaporwave.css +2 -0
  115. package/themes/victorian.css +2 -0
  116. package/themes/wabi-sabi.css +2 -0
  117. package/themes/win95.css +2 -0
  118. package/themes/wireframe.css +2 -0
  119. package/themes/zine.css +2 -0
  120. package/dist/Typography-2Z3JKWHN.js +0 -5
  121. package/dist/{avl-3d-context-MAt_NuU9.d.ts → avl-3d-context-DLteNEwu.d.ts} +3 -3
@@ -1,19 +1,19 @@
1
1
  export { assertUniqueSlotsPerHost } from '../chunk-O2EIWXWE.js';
2
- export { keyChord, mergeCaptureTables, useAgentChat, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useKeyboardRouter, useNavStack, usePreview, useRenderInterpolation, useTraitListens, useUIEvents, useValidation } from '../chunk-JXUYEO7U.js';
3
- export { I18nProvider, createTranslate, useFormatContext, useTranslate } from '../chunk-YKHNK5JH.js';
2
+ export { keyChord, mergeCaptureTables, useAgentChat, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useKeyboardRouter, useNavStack, usePreview, useRenderInterpolation, useTraitListens, useUIEvents, useValidation } from '../chunk-XUSSAWKL.js';
3
+ export { I18nProvider, createTranslate, useFormatContext, useTranslate } from '../chunk-NCNP2RKZ.js';
4
4
  export { SharedEntityStoreContext, createSharedEntityStore, runTickFrame, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext } from '../chunk-DQTV6QVS.js';
5
- export { DEFAULT_SLOTS, useUISlotManager } from '../chunk-6CFYRP4S.js';
6
- export { ALL_PRESETS, Accordion, Card2 as ActionCard, ActionPalette, ActionTile, ActivationBlock, Alert, AlgoGraphCanvas, AlgorithmCanvas, AnimatedCounter, AnimatedGraphic, AnimatedReveal, Aside, AssetPicker, AtlasImage, AtlasPanel, AuthLayout, Avatar, Badge, BehaviorView, BiologyCanvas, BloomQuizBlock, BranchingLogicBuilder, Breadcrumb, Button, ButtonGroup, COMPACT_MEDIA_QUERY, CalendarGrid, Canvas, Canvas2D, Card, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, Center, ChangeList, Chart, ChartLegend, ChatBar, Checkbox, ChemistryCanvas, ChoiceButton, Coachmark, 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, DataTable, 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, EntityDisplayEvents, 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, IconPicker, Image, ImportPreviewTree, ImportProgress, ImportSourcePicker, InfiniteScrollSentinel, Input, InputGroup, JazariStateMachine, JsonTreeEditor, Label, LawReferenceTooltip, LearningCanvas, LearningScene3D, Lightbox, LikertScale, LineChart, List, LoadingState, MapView, MarkdownContent, MasterDetail, MasterDetailLayout, MathCanvas, MatrixQuestion, MediaGallery, Menu, Meter, Modal, ModalSlot, ModuleCard, Navigation, NodeSlotEditor, NumberStepper, OnboardingSpotlight, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, Overlay, PageHeader, PageTransition, Pagination, PatternTile, PhysicsCanvas, Popover, PositionedCanvas, Presence, ProgressBar, ProgressDots, PropertyInspector, 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, 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, applyCompletion, applySuggestions, arrowBetween, billboardLabel, boardEntity, bool, calculateAttackTargets, calculateValidMoves, createInitialGameState, createUnitAnimationState, cylinderBetween, dispatchCommandPaletteCommand, get3DClickPayload, getCurrentFrame, getTileDimensions, 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, useAnchorRect, useAtlasSliceDataUrl, useCamera, useCompactLayout, useDockLayout, useGameAudio, useGameAudioContext, useImageCache, usePresence, useUnitSpriteAtlas, vec2 } from '../chunk-GIPZSCND.js';
7
- export { Box, HStack, Stack, VStack } from '../chunk-BUEIZY54.js';
8
- export { Typography } from '../chunk-MWPX2O4M.js';
9
- export { ALMADAR_DND_MIME, parseQueryBinding, useAuthContext, useCanvasGestures, useDragReorder, useDraggable, useDropZone, useInfiniteScroll, useLongPress, useMediaQuery, usePullToRefresh, useQuerySingleton, useSwipeGesture } from '../chunk-NTO555KF.js';
5
+ export { DEFAULT_SLOTS, useUISlotManager } from '../chunk-2QB2PXOO.js';
6
+ export { ALL_PRESETS, Accordion, Card2 as ActionCard, ActionPalette, ActionTile, ActivationBlock, Alert, AlgoGraphCanvas, AlgorithmCanvas, AnimatedCounter, AnimatedGraphic, AnimatedReveal, Aside, AssetPicker, AtlasImage, AtlasPanel, AuthLayout, Avatar, Badge, BehaviorView, BiologyCanvas, BloomQuizBlock, BranchingLogicBuilder, Breadcrumb, Button, ButtonGroup, COMPACT_MEDIA_QUERY, CalendarGrid, Canvas, Canvas2D, Card, CardBody, CardContent, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, Center, ChangeList, Chart, ChartLegend, ChatBar, Checkbox, ChemistryCanvas, ChoiceButton, Coachmark, 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, DataTable, 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, EntityDisplayEvents, 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, IconPicker, Image, ImportPreviewTree, ImportProgress, ImportSourcePicker, InfiniteScrollSentinel, Input, InputGroup, JazariStateMachine, JsonTreeEditor, Label, LawReferenceTooltip, LearningCanvas, LearningScene3D, Lightbox, LikertScale, LineChart, List, LoadingState, MapView, MarkdownContent, MasterDetail, MasterDetailLayout, MathCanvas, MatrixQuestion, MediaGallery, Menu, Meter, Modal, ModalSlot, ModuleCard, Navigation, NodeSlotEditor, NumberStepper, OnboardingSpotlight, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, Overlay, PageHeader, PageTransition, Pagination, PatternTile, PhysicsCanvas, Popover, PositionedCanvas, ProgressBar, ProgressDots, PropertyInspector, 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, 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, applyCompletion, applySuggestions, arrowBetween, billboardLabel, boardEntity, bool, calculateAttackTargets, calculateValidMoves, createInitialGameState, createUnitAnimationState, cylinderBetween, dispatchCommandPaletteCommand, get3DClickPayload, getCurrentFrame, getTileDimensions, 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, useAnchorRect, useAtlasSliceDataUrl, useCamera, useCompactLayout, useDockLayout, useGameAudio, useGameAudioContext, useImageCache, useUnitSpriteAtlas, vec2 } from '../chunk-EERAGPBW.js';
7
+ export { Box, HStack, Stack, VStack } from '../chunk-BHZG4PDZ.js';
8
+ export { Typography } from '../chunk-CLSLVFSP.js';
9
+ export { ALMADAR_DND_MIME, parseQueryBinding, useAuthContext, useCanvasGestures, useDragReorder, useDraggable, useDropZone, useInfiniteScroll, useLongPress, useMediaQuery, usePrefersReducedMotion, usePullToRefresh, useQuerySingleton, useSwipeGesture } from '../chunk-TWHYH25Q.js';
10
10
  export { useTapReveal } from '../chunk-XJTHMW4G.js';
11
11
  export { useEmitEvent, useEventBus, useEventListener } from '../chunk-6EV3OEBQ.js';
12
- export { parseLessonSegments, parseMarkdownWithCodeBlocks } from '../chunk-OLZ3EEML.js';
12
+ export { Presence, parseLessonSegments, parseMarkdownWithCodeBlocks, usePresence } from '../chunk-G4GMXYMY.js';
13
13
  import '../chunk-O7OLVVBR.js';
14
- export { cn } from '../chunk-HQDKHLFG.js';
15
- import '../chunk-GHXWGQTX.js';
16
- import '../chunk-L55SAFKL.js';
14
+ export { cn } from '../chunk-IN3BVW2Z.js';
15
+ import '../chunk-V5AGW2JN.js';
16
+ import '../chunk-WB2A6V3I.js';
17
17
  import '../chunk-PQKU62LK.js';
18
18
  import '../chunk-YHY5K2Y7.js';
19
19
  import '../chunk-QPXIAUJD.js';
@@ -218,7 +218,6 @@ function aggregateSlot(sources) {
218
218
  children
219
219
  },
220
220
  priority: 0,
221
- animation: "fade",
222
221
  sourceTrait: MULTI_SOURCE_STACK_TRAIT
223
222
  };
224
223
  }
@@ -282,7 +281,6 @@ function useUISlotManager() {
282
281
  pattern: config.pattern,
283
282
  props: config.props ?? {},
284
283
  priority: config.priority ?? 0,
285
- animation: config.animation ?? "fade",
286
284
  onDismiss: config.onDismiss,
287
285
  sourceTrait: config.sourceTrait,
288
286
  slot: config.target,
@@ -323,7 +321,7 @@ function useUISlotManager() {
323
321
  });
324
322
  return prev;
325
323
  }
326
- if (existing && existing.priority === content.priority && existing.pattern === content.pattern && existing.animation === content.animation && existing.transitionEvent === content.transitionEvent && existing.fromState === content.fromState && existing.entity === content.entity && existing.nodeId === content.nodeId && existing.autoDismissAt === void 0 && content.autoDismissAt === void 0 && existing.onDismiss === void 0 === (content.onDismiss === void 0)) {
324
+ if (existing && existing.priority === content.priority && existing.pattern === content.pattern && existing.transitionEvent === content.transitionEvent && existing.fromState === content.fromState && existing.entity === content.entity && existing.nodeId === content.nodeId && existing.autoDismissAt === void 0 && content.autoDismissAt === void 0 && existing.onDismiss === void 0 === (content.onDismiss === void 0)) {
327
325
  const reconciled = reconcileSlotProps(existing.props, content.props);
328
326
  if (reconciled.equal) {
329
327
  log.debug("slot:flush-bail", { slot: config.target, sourceKey, pattern: content.pattern });
@@ -871,7 +869,10 @@ var MOTION_SHAPE_VARS = [
871
869
  { cssVar: "--motion-popover-exit-to-transform", key: "popoverExit" },
872
870
  { cssVar: "--motion-toast-enter-from-transform", key: "toastEnter" },
873
871
  { cssVar: "--motion-toast-exit-to-transform", key: "toastExit" },
874
- { cssVar: "--motion-page-enter-from-transform", key: "pageEnter" }
872
+ { cssVar: "--motion-page-enter-from-transform", key: "pageEnter" },
873
+ { cssVar: "--motion-enter-rise-from-transform", key: "enterRise" },
874
+ { cssVar: "--motion-enter-scale-from-transform", key: "enterScale" },
875
+ { cssVar: "--motion-enter-slide-from-transform", key: "enterSlide" }
875
876
  ];
876
877
  var ICONOGRAPHY_VARS = [
877
878
  { cssVar: "--icon-family", key: "family" },
@@ -895,6 +896,7 @@ var GEOMETRY_VARS = [
895
896
  { cssVar: "--border-heavy", key: "borderHeavy" },
896
897
  { cssVar: "--corner-shape", key: "cornerShape" },
897
898
  { cssVar: "--corner-shape-pill", key: "cornerShapePill" },
899
+ { cssVar: "--corner-shape-interactive", key: "cornerShapeInteractive" },
898
900
  { cssVar: "--border-style", key: "borderStyle" },
899
901
  { cssVar: "--border-style-interactive", key: "borderStyleInteractive" }
900
902
  ];
@@ -1033,6 +1035,12 @@ function emitMotion(m, vars) {
1033
1035
  }
1034
1036
  }
1035
1037
  applyFlat(m.shapes, MOTION_SHAPE_VARS, vars);
1038
+ if (m.entry?.default !== void 0) vars["--motion-enter-default"] = enterKeyframe(m.entry.default);
1039
+ if (m.entry?.stagger !== void 0) vars["--motion-enter-stagger"] = m.entry.stagger;
1040
+ if (m.busyDelay !== void 0) vars["--motion-busy-delay"] = m.busyDelay;
1041
+ }
1042
+ function enterKeyframe(enter) {
1043
+ return enter === "none" ? "none" : `almadar-enter-${enter}`;
1036
1044
  }
1037
1045
  function emitIconography(i, vars) {
1038
1046
  applyFlat(i, ICONOGRAPHY_VARS, vars);
@@ -1,10 +1,10 @@
1
- export { U as UISlotContext, a as UISlotProvider, u as useSlotContent, b as useSlotHasContent, c as useUISlots } from '../UISlotContext-DNM8iXna.js';
1
+ export { U as UISlotContext, a as UISlotProvider, u as useSlotContent, b as useSlotHasContent, c as useUISlots } from '../UISlotContext-CS487Uoc.js';
2
2
  import { U as UIThemeDefinition } from '../ArbitraryClassCompiler-DvzdeHxc.js';
3
3
  export { A as ARBITRARY_CLASS_STYLE_ID, a as ArbitraryClassCompiler, b as ArbitraryClassCompilerProvider, c as ArbitraryClassCompilerProviderProps, C as ColorMode, d as CurrentPagePathContext, e as CurrentPagePathProvider, f as CurrentPagePathProviderProps, D as DesignTheme, g as DesignThemeProvider, O as OrbitalThemeProvider, h as OrbitalThemeProviderProps, R as ResolvedMode, T as ThemeContext, i as ThemeProvider, j as ThemeProviderProps, k as ThemeScope, l as ThemeScopeContext, u as useArbitraryClassStyles, m as useCurrentPagePath, n as useDesignTheme, o as useTheme, p as useThemeScope } from '../ArbitraryClassCompiler-DvzdeHxc.js';
4
- export { T as ThemeMode, r as resolveThemeForRuntime, t as themeTokensToCssVars } from '../themeTokens-CN9WCXQc.js';
4
+ export { T as ThemeMode, r as resolveThemeForRuntime, t as themeTokensToCssVars } from '../themeTokens-Ccu7EmGY.js';
5
5
  export { U as UserContext, a as UserContextValue, b as UserData, c as UserProvider, d as UserProviderProps, u as useHasPermission, e as useHasRole, f as useUser, g as useUserForEvaluation } from '../UserContext-D566nfWA.js';
6
6
  export { ANONYMOUS_USER, UISlot } from '@almadar/core';
7
- export { S as SlotAnimation, a as SlotChangeCallback, b as SlotContent, c as SlotRenderConfig, U as UISlotManager } from '../useUISlots-CwUWM1ra.js';
7
+ export { S as SlotChangeCallback, a as SlotContent, b as SlotRenderConfig, U as UISlotManager } from '../useUISlots-1dk2TR4j.js';
8
8
  import 'react';
9
9
 
10
10
  /**
@@ -1,5 +1,5 @@
1
- import { useUISlotManager } from '../chunk-6CFYRP4S.js';
2
- export { resolveThemeForRuntime, themeTokensToCssVars } from '../chunk-FGHRVJCI.js';
1
+ import { useUISlotManager } from '../chunk-2QB2PXOO.js';
2
+ export { resolveThemeForRuntime, themeTokensToCssVars } from '../chunk-MSBMVG3B.js';
3
3
  import '../chunk-YHY5K2Y7.js';
4
4
  import '../chunk-QPXIAUJD.js';
5
5
  import { createContext, useMemo, useContext, useState, useEffect, useCallback } from 'react';
@@ -1197,7 +1197,6 @@ function aggregateSlot(sources) {
1197
1197
  children
1198
1198
  },
1199
1199
  priority: 0,
1200
- animation: "fade",
1201
1200
  sourceTrait: MULTI_SOURCE_STACK_TRAIT
1202
1201
  };
1203
1202
  }
@@ -1261,7 +1260,6 @@ function useUISlotManager() {
1261
1260
  pattern: config.pattern,
1262
1261
  props: config.props ?? {},
1263
1262
  priority: config.priority ?? 0,
1264
- animation: config.animation ?? "fade",
1265
1263
  onDismiss: config.onDismiss,
1266
1264
  sourceTrait: config.sourceTrait,
1267
1265
  slot: config.target,
@@ -1302,7 +1300,7 @@ function useUISlotManager() {
1302
1300
  });
1303
1301
  return prev;
1304
1302
  }
1305
- if (existing && existing.priority === content.priority && existing.pattern === content.pattern && existing.animation === content.animation && existing.transitionEvent === content.transitionEvent && existing.fromState === content.fromState && existing.entity === content.entity && existing.nodeId === content.nodeId && existing.autoDismissAt === void 0 && content.autoDismissAt === void 0 && existing.onDismiss === void 0 === (content.onDismiss === void 0)) {
1303
+ if (existing && existing.priority === content.priority && existing.pattern === content.pattern && existing.transitionEvent === content.transitionEvent && existing.fromState === content.fromState && existing.entity === content.entity && existing.nodeId === content.nodeId && existing.autoDismissAt === void 0 && content.autoDismissAt === void 0 && existing.onDismiss === void 0 === (content.onDismiss === void 0)) {
1306
1304
  const reconciled = reconcileSlotProps(existing.props, content.props);
1307
1305
  if (reconciled.equal) {
1308
1306
  log10.debug("slot:flush-bail", { slot: config.target, sourceKey, pattern: content.pattern });
@@ -1507,6 +1505,27 @@ function useUISlotManager() {
1507
1505
  updateTraitContent
1508
1506
  };
1509
1507
  }
1508
+ var counts = /* @__PURE__ */ new Map();
1509
+ var keyListeners = /* @__PURE__ */ new Map();
1510
+ function notify(key) {
1511
+ keyListeners.get(key)?.forEach((cb) => cb());
1512
+ }
1513
+ function beginPending(key) {
1514
+ counts.set(key, (counts.get(key) ?? 0) + 1);
1515
+ if (counts.get(key) === 1) notify(key);
1516
+ }
1517
+ function endPending(key) {
1518
+ const n = (counts.get(key) ?? 0) - 1;
1519
+ if (n > 0) {
1520
+ counts.set(key, n);
1521
+ return;
1522
+ }
1523
+ counts.delete(key);
1524
+ notify(key);
1525
+ }
1526
+ React.createContext(null);
1527
+
1528
+ // hooks/useUIEvents.ts
1510
1529
  var UI_PREFIX = "UI:";
1511
1530
  function useUIEvents(dispatch, traitName, validEvents, eventBusInstance) {
1512
1531
  const defaultEventBus = useEventBus();
@@ -1524,7 +1543,12 @@ function useUIEvents(dispatch, traitName, validEvents, eventBusInstance) {
1524
1543
  if (event.source && event.source.dispatched) {
1525
1544
  return;
1526
1545
  }
1527
- dispatch(smEvent, event.payload);
1546
+ const pendingKey = event.source?.pendingKey;
1547
+ const settled = dispatch(smEvent, event.payload);
1548
+ if (pendingKey !== void 0 && settled instanceof Promise) {
1549
+ beginPending(pendingKey);
1550
+ void settled.finally(() => endPending(pendingKey));
1551
+ }
1528
1552
  };
1529
1553
  unsubscribes.push(
1530
1554
  eventBus.on(`${UI_PREFIX}${traitName}.${smEvent}`, handler)
@@ -2857,7 +2881,37 @@ var en_default = {
2857
2881
  "flowCanvas.presetSize": "{{label}} ({{width}}px)",
2858
2882
  "avl.breadcrumb.transitionNumber": "Transition #{{n}}",
2859
2883
  "orbInspector.pattern": "Pattern",
2860
- "orbInspector.slotLabel": "slot: {{slot}}"
2884
+ "orbInspector.slotLabel": "slot: {{slot}}",
2885
+ "detailPanel.section.activity": "Activity",
2886
+ "detailPanel.section.lineItems": "Line items",
2887
+ "detailPanel.tab.overview": "Overview",
2888
+ "detailPanel.thread.empty": "No messages yet",
2889
+ "detailPanel.openImage": "Open image",
2890
+ "detailPanel.showImage": "Show image {{index}}",
2891
+ "aria.clearSelection": "Clear selection",
2892
+ "aria.searchOptions": "Search options",
2893
+ "aria.zoomIn": "Zoom in",
2894
+ "aria.zoomOut": "Zoom out",
2895
+ "aria.previousPage": "Previous page",
2896
+ "aria.nextPage": "Next page",
2897
+ "aria.downloadDocument": "Download document",
2898
+ "aria.printDocument": "Print document",
2899
+ "aria.wrapLines": "Wrap lines",
2900
+ "aria.copyCode": "Copy code",
2901
+ "aria.clearInput": "Clear input",
2902
+ "aria.skipToContent": "Skip to content",
2903
+ "aria.mainNavigation": "Main navigation",
2904
+ "aria.carouselSlides": "Slides",
2905
+ "aria.minimap": "Minimap",
2906
+ "aria.canvasScene": "Game scene",
2907
+ "aria.learningCanvas": "Interactive diagram",
2908
+ "aria.scene3d": "3D scene",
2909
+ "aria.graphCanvas": "Graph",
2910
+ "aria.positionedCanvas": "Floor plan",
2911
+ "aria.walkTraitDone": "completed",
2912
+ "aria.walkTraitPending": "pending",
2913
+ "aria.walkGraph": "State graph for {{trait}}: {{from}} to {{to}}",
2914
+ "aria.loading": "Loading"
2861
2915
  };
2862
2916
 
2863
2917
  // lib/format.ts
@@ -2883,7 +2937,14 @@ var I18nContext = React.createContext({
2883
2937
  }
2884
2938
  });
2885
2939
  I18nContext.displayName = "I18nContext";
2886
- var I18nProvider = I18nContext.Provider;
2940
+ function I18nProvider({ value, children, documentRoot }) {
2941
+ React.useEffect(() => {
2942
+ if (!documentRoot) return;
2943
+ document.documentElement.lang = value.locale;
2944
+ document.documentElement.dir = value.direction;
2945
+ }, [documentRoot, value.locale, value.direction]);
2946
+ return React__default.default.createElement(I18nContext.Provider, { value }, children);
2947
+ }
2887
2948
  function useTranslate() {
2888
2949
  return React.useContext(I18nContext);
2889
2950
  }
@@ -3109,6 +3170,11 @@ function useMediaQuery(query) {
3109
3170
  function hasMatchMedia() {
3110
3171
  return typeof window !== "undefined" && typeof window.matchMedia === "function";
3111
3172
  }
3173
+
3174
+ // hooks/usePrefersReducedMotion.ts
3175
+ function usePrefersReducedMotion() {
3176
+ return useMediaQuery("(prefers-reduced-motion: reduce)");
3177
+ }
3112
3178
  function useInfiniteScroll(onLoadMore, options = {}) {
3113
3179
  const { rootMargin = "200px", hasMore = true, isLoading = false } = options;
3114
3180
  const observerRef = React.useRef(null);
@@ -3619,6 +3685,7 @@ exports.useInfiniteScroll = useInfiniteScroll;
3619
3685
  exports.useKeyboardRouter = useKeyboardRouter;
3620
3686
  exports.useLongPress = useLongPress;
3621
3687
  exports.useMediaQuery = useMediaQuery;
3688
+ exports.usePrefersReducedMotion = usePrefersReducedMotion;
3622
3689
  exports.usePreview = usePreview;
3623
3690
  exports.usePullToRefresh = usePullToRefresh;
3624
3691
  exports.useQuerySingleton = useQuerySingleton;
@@ -1,14 +1,29 @@
1
1
  import { OrbitalSchema, FieldValue, EventPayload, BusEventSource, BusEventListener, EntityFrameState, EntityFieldWrite } from '@almadar/core';
2
2
  export { BusEvent, BusEventListener, BusEventSource, BusEventListener as EventListener, UISlot, Unsubscribe } from '@almadar/core';
3
- import { E as EventBusContextType } from '../NavStackContext-B-XLULCO.js';
4
- export { a as NavStackApi, u as useNavStack } from '../NavStackContext-B-XLULCO.js';
3
+ import { E as EventBusContextType } from '../NavStackContext-04NLdXsY.js';
4
+ export { a as NavStackApi, u as useNavStack } from '../NavStackContext-04NLdXsY.js';
5
5
  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';
6
- export { D as DEFAULT_SLOTS, S as SlotAnimation, a as SlotChangeCallback, b as SlotContent, c as SlotRenderConfig, U as UISlotManager, u as useUISlotManager } from '../useUISlots-CwUWM1ra.js';
6
+ export { D as DEFAULT_SLOTS, S as SlotChangeCallback, a as SlotContent, b as SlotRenderConfig, U as UISlotManager, u as useUISlotManager } from '../useUISlots-1dk2TR4j.js';
7
7
  import * as React$1 from 'react';
8
8
  import React__default from 'react';
9
9
  import { F as FormatContext } from '../format-Czimj421.js';
10
10
  import * as _tanstack_react_query from '@tanstack/react-query';
11
11
 
12
+ /**
13
+ * useTranslate — i18n hook for Almadar UI components.
14
+ *
15
+ * Provides locale-aware string translation via React context.
16
+ * No provider = passthrough: t('key') returns 'key' as-is (never crashes).
17
+ *
18
+ * Usage in organisms:
19
+ * const { t, locale, direction } = useTranslate();
20
+ * <Button>{t('common.save')}</Button>
21
+ * <Typography>{t('table.showing', { count: 5, total: 20 })}</Typography>
22
+ *
23
+ * Templates MUST NOT use this hook (flattener rule). They receive
24
+ * translated strings via entity props from the organism above.
25
+ */
26
+
12
27
  type TranslateFunction = (key: string, params?: Record<string, string | number>) => string;
13
28
  interface I18nContextValue {
14
29
  /** Current locale code (e.g. 'en', 'ar', 'sl') */
@@ -29,7 +44,14 @@ interface I18nContextValue {
29
44
  * </I18nProvider>
30
45
  * ```
31
46
  */
32
- declare const I18nProvider: React$1.Provider<I18nContextValue>;
47
+ interface I18nProviderProps {
48
+ value: I18nContextValue;
49
+ children?: React__default.ReactNode;
50
+ /** The app's root provider: mirrors locale + direction onto `<html lang dir>`.
51
+ * Embedded previews omit it so they never rewrite their host document. */
52
+ documentRoot?: boolean;
53
+ }
54
+ declare function I18nProvider({ value, children, documentRoot }: I18nProviderProps): React__default.ReactElement;
33
55
  /**
34
56
  * Hook to access the current locale and translate function.
35
57
  * Safe to call without a provider — returns passthrough t().
@@ -508,7 +530,7 @@ declare function useEmitEvent(): (type: string, payload?: EventPayload, source?:
508
530
  * for each entry.
509
531
  * @param eventBusInstance - Optional event bus instance (for testing)
510
532
  */
511
- declare function useUIEvents<E extends string>(dispatch: (event: E, payload?: EventPayload) => void, traitName: string, validEvents: readonly E[], eventBusInstance?: ReturnType<typeof useEventBus>): void;
533
+ declare function useUIEvents<E extends string>(dispatch: (event: E, payload?: EventPayload) => void | Promise<void>, traitName: string, validEvents: readonly E[], eventBusInstance?: ReturnType<typeof useEventBus>): void;
512
534
  /**
513
535
  * Hook to subscribe to cross-trait listens (gap #13, Phase 4 codegen).
514
536
  *
@@ -765,7 +787,7 @@ interface DragReorderResult<T> {
765
787
  onPointerDown: (e: React__default.PointerEvent) => void;
766
788
  style: React__default.CSSProperties;
767
789
  'aria-grabbed': boolean;
768
- role: string;
790
+ role: 'button';
769
791
  };
770
792
  /** Props to spread on each list item for a given index */
771
793
  getItemProps: (index: number) => {
@@ -787,6 +809,9 @@ declare function useDragReorder<T>(initialItems: T[], onReorder: (fromIndex: num
787
809
  */
788
810
  declare function useMediaQuery(query: string): boolean;
789
811
 
812
+ /** Whether the OS asks for reduced motion — the one gate for JS/rAF/camera animations (CSS ones collapse in `_base.css`). */
813
+ declare function usePrefersReducedMotion(): boolean;
814
+
790
815
  interface InfiniteScrollOptions {
791
816
  /** Root margin for IntersectionObserver (default: "200px") */
792
817
  rootMargin?: string;
@@ -1045,4 +1070,4 @@ declare function useGitHubBranches(owner: string, repo: string, enabled?: boolea
1045
1070
  branches: string[];
1046
1071
  }>, Error>;
1047
1072
 
1048
- export { ALMADAR_DND_MIME, type AuthContextValue, type AuthUser, type CanvasGestureCallbacks, type CanvasGestureHandlers, type CompileResult, type CompileStage, type DragReorderResult, type DraggablePayload, EventBusContextType, type Extension, type ExtensionManifest, type FileSystemFile, type FileSystemStatus, type GitHubRepo, type GitHubStatus, type I18nContextValue, I18nProvider, type InfiniteScrollOptions, type InfiniteScrollResult, type LongPressHandlers, type LongPressOptions, type OpenFile, type Positioned, type PullToRefreshOptions, type PullToRefreshResult, type QuerySingletonEntity, type QuerySingletonResult, type QuerySingletonState, type QueryState, type RenderInterpolationHandle, type RenderInterpolationOptions, type SelectedFile, type SharedEntityStore, SharedEntityStoreContext, type SharedEntitySubscriber, type SharedEntityWriter, type SwipeGestureOptions, type SwipeGestureResult, type SwipeHandlers, type TapRevealOptions, type TapRevealResult, type TraitListenSpec, type TranslateFunction, type UseCanvasGesturesOptions, type UseCompileResult, type UseDraggableOptions, type UseDraggableResult, type UseDropZoneOptions, type UseDropZoneResult, type UseExtensionsOptions, type UseExtensionsResult, type UseFileEditorOptions, type UseFileEditorResult, type 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, usePreview, usePullToRefresh, useQuerySingleton, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTapReveal, useTraitListens, useTranslate, useUIEvents, useValidation };
1073
+ export { ALMADAR_DND_MIME, type AuthContextValue, type AuthUser, type CanvasGestureCallbacks, type CanvasGestureHandlers, type CompileResult, type CompileStage, type DragReorderResult, type DraggablePayload, EventBusContextType, type Extension, type ExtensionManifest, type FileSystemFile, type FileSystemStatus, type GitHubRepo, type GitHubStatus, type I18nContextValue, I18nProvider, type InfiniteScrollOptions, type InfiniteScrollResult, type LongPressHandlers, type LongPressOptions, type OpenFile, type Positioned, type PullToRefreshOptions, type PullToRefreshResult, type QuerySingletonEntity, type QuerySingletonResult, type QuerySingletonState, type QueryState, type RenderInterpolationHandle, type RenderInterpolationOptions, type SelectedFile, type SharedEntityStore, SharedEntityStoreContext, type SharedEntitySubscriber, type SharedEntityWriter, type SwipeGestureOptions, type SwipeGestureResult, type SwipeHandlers, type TapRevealOptions, type TapRevealResult, type TraitListenSpec, type TranslateFunction, type UseCanvasGesturesOptions, type UseCompileResult, type UseDraggableOptions, type UseDraggableResult, type UseDropZoneOptions, type UseDropZoneResult, type UseExtensionsOptions, type UseExtensionsResult, type UseFileEditorOptions, type UseFileEditorResult, type 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, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTapReveal, useTraitListens, useTranslate, useUIEvents, useValidation };
@@ -1,11 +1,11 @@
1
- export { keyChord, mergeCaptureTables, useAgentChat, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useKeyboardRouter, useNavStack, usePreview, useRenderInterpolation, useTraitListens, useUIEvents, useValidation } from '../chunk-JXUYEO7U.js';
2
- export { I18nProvider, createTranslate, useFormatContext, useTranslate } from '../chunk-YKHNK5JH.js';
1
+ export { keyChord, mergeCaptureTables, useAgentChat, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useKeyboardRouter, useNavStack, usePreview, useRenderInterpolation, useTraitListens, useUIEvents, useValidation } from '../chunk-XUSSAWKL.js';
2
+ export { I18nProvider, createTranslate, useFormatContext, useTranslate } from '../chunk-NCNP2RKZ.js';
3
3
  export { SharedEntityStoreContext, createSharedEntityStore, runTickFrame, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext } from '../chunk-DQTV6QVS.js';
4
- export { DEFAULT_SLOTS, useUISlotManager } from '../chunk-6CFYRP4S.js';
5
- export { ALMADAR_DND_MIME, parseQueryBinding, useAuthContext, useCanvasGestures, useDragReorder, useDraggable, useDropZone, useInfiniteScroll, useLongPress, useMediaQuery, usePullToRefresh, useQuerySingleton, useSwipeGesture } from '../chunk-NTO555KF.js';
4
+ export { DEFAULT_SLOTS, useUISlotManager } from '../chunk-2QB2PXOO.js';
5
+ export { ALMADAR_DND_MIME, parseQueryBinding, useAuthContext, useCanvasGestures, useDragReorder, useDraggable, useDropZone, useInfiniteScroll, useLongPress, useMediaQuery, usePrefersReducedMotion, usePullToRefresh, useQuerySingleton, useSwipeGesture } from '../chunk-TWHYH25Q.js';
6
6
  export { useTapReveal } from '../chunk-XJTHMW4G.js';
7
7
  export { useEmitEvent, useEventBus, useEventListener } from '../chunk-6EV3OEBQ.js';
8
- import '../chunk-GHXWGQTX.js';
9
- import '../chunk-L55SAFKL.js';
8
+ import '../chunk-V5AGW2JN.js';
9
+ import '../chunk-WB2A6V3I.js';
10
10
  import '../chunk-YHY5K2Y7.js';
11
11
  import '../chunk-QPXIAUJD.js';
@@ -5218,7 +5218,37 @@ var en_default = {
5218
5218
  "flowCanvas.presetSize": "{{label}} ({{width}}px)",
5219
5219
  "avl.breadcrumb.transitionNumber": "Transition #{{n}}",
5220
5220
  "orbInspector.pattern": "Pattern",
5221
- "orbInspector.slotLabel": "slot: {{slot}}"
5221
+ "orbInspector.slotLabel": "slot: {{slot}}",
5222
+ "detailPanel.section.activity": "Activity",
5223
+ "detailPanel.section.lineItems": "Line items",
5224
+ "detailPanel.tab.overview": "Overview",
5225
+ "detailPanel.thread.empty": "No messages yet",
5226
+ "detailPanel.openImage": "Open image",
5227
+ "detailPanel.showImage": "Show image {{index}}",
5228
+ "aria.clearSelection": "Clear selection",
5229
+ "aria.searchOptions": "Search options",
5230
+ "aria.zoomIn": "Zoom in",
5231
+ "aria.zoomOut": "Zoom out",
5232
+ "aria.previousPage": "Previous page",
5233
+ "aria.nextPage": "Next page",
5234
+ "aria.downloadDocument": "Download document",
5235
+ "aria.printDocument": "Print document",
5236
+ "aria.wrapLines": "Wrap lines",
5237
+ "aria.copyCode": "Copy code",
5238
+ "aria.clearInput": "Clear input",
5239
+ "aria.skipToContent": "Skip to content",
5240
+ "aria.mainNavigation": "Main navigation",
5241
+ "aria.carouselSlides": "Slides",
5242
+ "aria.minimap": "Minimap",
5243
+ "aria.canvasScene": "Game scene",
5244
+ "aria.learningCanvas": "Interactive diagram",
5245
+ "aria.scene3d": "3D scene",
5246
+ "aria.graphCanvas": "Graph",
5247
+ "aria.positionedCanvas": "Floor plan",
5248
+ "aria.walkTraitDone": "completed",
5249
+ "aria.walkTraitPending": "pending",
5250
+ "aria.walkGraph": "State graph for {{trait}}: {{from}} to {{to}}",
5251
+ "aria.loading": "Loading"
5222
5252
  };
5223
5253
 
5224
5254
  // lib/format.ts
@@ -5282,10 +5312,11 @@ function formatValue(value, format, fmt = {}) {
5282
5312
  var INLINE_TEXT_ATTR = "data-inline-text";
5283
5313
 
5284
5314
  // lib/domPassthrough.ts
5315
+ var GLOBAL_ATTRIBUTES = /* @__PURE__ */ new Set(["role", "id", "lang", "dir", "tabIndex"]);
5285
5316
  function domPassthrough(props) {
5286
5317
  const out = {};
5287
5318
  for (const [key, value] of Object.entries(props)) {
5288
- if (key.startsWith("aria-") || key.startsWith("data-") || key === "role" || key === "id") {
5319
+ if (key.startsWith("aria-") || key.startsWith("data-") || GLOBAL_ATTRIBUTES.has(key)) {
5289
5320
  if (typeof value === "string" || typeof value === "number" || typeof value === "boolean" || value === void 0) {
5290
5321
  out[key] = value;
5291
5322
  }
@@ -1,14 +1,14 @@
1
- import { C as CanvasPointLightConfig, I as IsometricTile, a as IsometricUnit, b as IsometricFeature } from '../../../Canvas3DHost-CLC_jXh_.js';
2
- export { c as Canvas3DHost, d as Canvas3DHostHandle, e as Canvas3DHostProps, c as GameCanvas3D, U as UnitAnimationState } from '../../../Canvas3DHost-CLC_jXh_.js';
1
+ import { C as CanvasPointLightConfig, I as IsometricTile, a as IsometricUnit, b as IsometricFeature } from '../../../Canvas3DHost-CWO0tswb.js';
2
+ export { c as Canvas3DHost, d as Canvas3DHostHandle, e as Canvas3DHostProps, c as GameCanvas3D, U as UnitAnimationState } from '../../../Canvas3DHost-CWO0tswb.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';
6
6
  import { JsonObject, EventEmit, OrbitalSchema } from '@almadar/core';
7
7
  import { Z as ZoomLevel } from '../../../avl-zoom-state-CKMVuBFg.js';
8
- import { b as Avl3DModelOverrides } from '../../../avl-3d-context-MAt_NuU9.js';
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-MAt_NuU9.js';
8
+ import { b as Avl3DModelOverrides } from '../../../avl-3d-context-DLteNEwu.js';
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-DLteNEwu.js';
10
10
  import { A as ApplicationLevelData, b as OrbitalLevelData, T as TraitLevelData, c as TransitionLevelData } from '../../../avl-schema-parser-C0wnAp5x.js';
11
- import '../../../paintDispatch-CMgOyVjS.js';
11
+ import '../../../paintDispatch-DHo3WhaU.js';
12
12
  import 'lucide-react';
13
13
 
14
14
  /**
@@ -1,13 +1,13 @@
1
- import { goldenSpiralPositions, forceDirectedPositions, Avl3DOrbitalNode, Avl3DCrossWire, Avl3DEntityCore, fibonacciSpherePositions, Avl3DLabel, Avl3DStateNode, Avl3DTransitionArc, Avl3DExprTree, AVL_3D_COLORS, zoomReducer, initialZoomState, CAMERA_POSITIONS, getBreadcrumbs, Avl3DTooltip } from '../../../chunk-R4V7IZQP.js';
2
- export { AVL_3D_COLORS, CAMERA_POSITIONS, arcCurve3D, fibonacciSpherePositions, goldenSpiralPositions, orbitRingPositions, selfLoopCurve3D, treeLayout3D } from '../../../chunk-R4V7IZQP.js';
3
- import { collectDrawnItems, buildHitIndex, withPreviewPosition, isValidScenePos, isAnimatedShape, applyShapeAnimation, expandFxLayer, isAnimatedGroup, applyMeshAnimation, spriteAssetState, SPRITE_FALLBACK_FILL, isAnimatedMesh, clampSegments, isAtlasAsset, getAtlas, subRectFor, polyhedronBounds, AVL_INK, parseTransitionLevel, parseTraitLevel, parseOrbitalLevel, parseApplicationLevel, Box, HStack, pressableProps, resolveThemeColor } from '../../../chunk-BUEIZY54.js';
4
- import { Typography } from '../../../chunk-MWPX2O4M.js';
1
+ import { goldenSpiralPositions, forceDirectedPositions, Avl3DOrbitalNode, Avl3DCrossWire, Avl3DEntityCore, fibonacciSpherePositions, Avl3DLabel, Avl3DStateNode, Avl3DTransitionArc, Avl3DExprTree, AVL_3D_COLORS, zoomReducer, initialZoomState, CAMERA_POSITIONS, getBreadcrumbs, Avl3DTooltip } from '../../../chunk-5GCI6C7J.js';
2
+ export { AVL_3D_COLORS, CAMERA_POSITIONS, arcCurve3D, fibonacciSpherePositions, goldenSpiralPositions, orbitRingPositions, selfLoopCurve3D, treeLayout3D } from '../../../chunk-5GCI6C7J.js';
3
+ import { collectDrawnItems, buildHitIndex, withPreviewPosition, isValidScenePos, isAnimatedShape, applyShapeAnimation, expandFxLayer, isAnimatedGroup, applyMeshAnimation, spriteAssetState, SPRITE_FALLBACK_FILL, isAnimatedMesh, clampSegments, isAtlasAsset, getAtlas, subRectFor, polyhedronBounds, AVL_INK, parseTransitionLevel, parseTraitLevel, parseOrbitalLevel, parseApplicationLevel, Box, HStack, pressableProps, resolveThemeColor } from '../../../chunk-BHZG4PDZ.js';
4
+ import { Typography } from '../../../chunk-CLSLVFSP.js';
5
5
  import '../../../chunk-XJTHMW4G.js';
6
6
  import { useEventBus, useEmitEvent } from '../../../chunk-6EV3OEBQ.js';
7
7
  import { keyMapCode, resolveKeyMapEvent } from '../../../chunk-O7OLVVBR.js';
8
- import { cn } from '../../../chunk-HQDKHLFG.js';
9
- import '../../../chunk-GHXWGQTX.js';
10
- import '../../../chunk-L55SAFKL.js';
8
+ import { cn } from '../../../chunk-IN3BVW2Z.js';
9
+ import '../../../chunk-V5AGW2JN.js';
10
+ import '../../../chunk-WB2A6V3I.js';
11
11
  import { __publicField } from '../../../chunk-QPXIAUJD.js';
12
12
  import React3, { createContext, forwardRef, useRef, useState, useMemo, useEffect, useCallback, useImperativeHandle, Component, useContext, useReducer, useLayoutEffect } from 'react';
13
13
  import { useTranslate } from '@almadar/ui/hooks';
@@ -6,6 +6,7 @@ var logger = require('@almadar/logger');
6
6
  var react = require('react');
7
7
  var ui = require('@almadar/runtime/ui');
8
8
  var core = require('@almadar/core');
9
+ require('react/jsx-runtime');
9
10
 
10
11
  var __defProp = Object.defineProperty;
11
12
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
@@ -2044,7 +2045,37 @@ var en_default = {
2044
2045
  "flowCanvas.presetSize": "{{label}} ({{width}}px)",
2045
2046
  "avl.breadcrumb.transitionNumber": "Transition #{{n}}",
2046
2047
  "orbInspector.pattern": "Pattern",
2047
- "orbInspector.slotLabel": "slot: {{slot}}"
2048
+ "orbInspector.slotLabel": "slot: {{slot}}",
2049
+ "detailPanel.section.activity": "Activity",
2050
+ "detailPanel.section.lineItems": "Line items",
2051
+ "detailPanel.tab.overview": "Overview",
2052
+ "detailPanel.thread.empty": "No messages yet",
2053
+ "detailPanel.openImage": "Open image",
2054
+ "detailPanel.showImage": "Show image {{index}}",
2055
+ "aria.clearSelection": "Clear selection",
2056
+ "aria.searchOptions": "Search options",
2057
+ "aria.zoomIn": "Zoom in",
2058
+ "aria.zoomOut": "Zoom out",
2059
+ "aria.previousPage": "Previous page",
2060
+ "aria.nextPage": "Next page",
2061
+ "aria.downloadDocument": "Download document",
2062
+ "aria.printDocument": "Print document",
2063
+ "aria.wrapLines": "Wrap lines",
2064
+ "aria.copyCode": "Copy code",
2065
+ "aria.clearInput": "Clear input",
2066
+ "aria.skipToContent": "Skip to content",
2067
+ "aria.mainNavigation": "Main navigation",
2068
+ "aria.carouselSlides": "Slides",
2069
+ "aria.minimap": "Minimap",
2070
+ "aria.canvasScene": "Game scene",
2071
+ "aria.learningCanvas": "Interactive diagram",
2072
+ "aria.scene3d": "3D scene",
2073
+ "aria.graphCanvas": "Graph",
2074
+ "aria.positionedCanvas": "Floor plan",
2075
+ "aria.walkTraitDone": "completed",
2076
+ "aria.walkTraitPending": "pending",
2077
+ "aria.walkGraph": "State graph for {{trait}}: {{from}} to {{to}}",
2078
+ "aria.loading": "Loading"
2048
2079
  };
2049
2080
 
2050
2081
  // lib/format.ts
@@ -3139,7 +3170,10 @@ var MOTION_SHAPE_VARS = [
3139
3170
  { cssVar: "--motion-popover-exit-to-transform", key: "popoverExit" },
3140
3171
  { cssVar: "--motion-toast-enter-from-transform", key: "toastEnter" },
3141
3172
  { cssVar: "--motion-toast-exit-to-transform", key: "toastExit" },
3142
- { cssVar: "--motion-page-enter-from-transform", key: "pageEnter" }
3173
+ { cssVar: "--motion-page-enter-from-transform", key: "pageEnter" },
3174
+ { cssVar: "--motion-enter-rise-from-transform", key: "enterRise" },
3175
+ { cssVar: "--motion-enter-scale-from-transform", key: "enterScale" },
3176
+ { cssVar: "--motion-enter-slide-from-transform", key: "enterSlide" }
3143
3177
  ];
3144
3178
  var ICONOGRAPHY_VARS = [
3145
3179
  { cssVar: "--icon-family", key: "family" },
@@ -3163,6 +3197,7 @@ var GEOMETRY_VARS = [
3163
3197
  { cssVar: "--border-heavy", key: "borderHeavy" },
3164
3198
  { cssVar: "--corner-shape", key: "cornerShape" },
3165
3199
  { cssVar: "--corner-shape-pill", key: "cornerShapePill" },
3200
+ { cssVar: "--corner-shape-interactive", key: "cornerShapeInteractive" },
3166
3201
  { cssVar: "--border-style", key: "borderStyle" },
3167
3202
  { cssVar: "--border-style-interactive", key: "borderStyleInteractive" }
3168
3203
  ];
@@ -3301,6 +3336,12 @@ function emitMotion(m, vars) {
3301
3336
  }
3302
3337
  }
3303
3338
  applyFlat(m.shapes, MOTION_SHAPE_VARS, vars);
3339
+ if (m.entry?.default !== void 0) vars["--motion-enter-default"] = enterKeyframe(m.entry.default);
3340
+ if (m.entry?.stagger !== void 0) vars["--motion-enter-stagger"] = m.entry.stagger;
3341
+ if (m.busyDelay !== void 0) vars["--motion-busy-delay"] = m.busyDelay;
3342
+ }
3343
+ function enterKeyframe(enter) {
3344
+ return enter === "none" ? "none" : `almadar-enter-${enter}`;
3304
3345
  }
3305
3346
  function emitIconography(i, vars) {
3306
3347
  applyFlat(i, ICONOGRAPHY_VARS, vars);
@@ -3589,6 +3630,27 @@ function middleSnake(a, aLo, aHi, b, bLo, bHi) {
3589
3630
  }
3590
3631
  throw new Error("computeLineDiff: no middle snake \u2014 unreachable for differing texts");
3591
3632
  }
3633
+ var motionEnabledCache = null;
3634
+ function isMotionEnabled() {
3635
+ if (typeof document === "undefined") return true;
3636
+ if (motionEnabledCache !== null) return motionEnabledCache;
3637
+ const v = getComputedStyle(document.documentElement).getPropertyValue("--motion-enable").trim().toLowerCase();
3638
+ motionEnabledCache = v !== "off";
3639
+ return motionEnabledCache;
3640
+ }
3641
+
3642
+ // lib/enter.ts
3643
+ var ENTER_SLOT_CLASS = "almadar-enter-slot";
3644
+ function asEnterAnimation(value) {
3645
+ return core.ENTER_ANIMATIONS.find((e) => e === value);
3646
+ }
3647
+ var MAX_ENTER_DELAY = core.ENTER_DELAY_STEPS.length;
3648
+ function enterClassName(enter, enterDelay) {
3649
+ if (enter === void 0 || enter === "none" || !isMotionEnabled()) return void 0;
3650
+ const base = `almadar-enter-${enter}`;
3651
+ if (enterDelay === void 0 || !Number.isInteger(enterDelay) || enterDelay < 1 || enterDelay > MAX_ENTER_DELAY) return base;
3652
+ return `${base} almadar-enter-delay-${enterDelay}`;
3653
+ }
3592
3654
 
3593
3655
  Object.defineProperty(exports, "PERF_NAMESPACE", {
3594
3656
  enumerable: true,
@@ -3629,6 +3691,7 @@ exports.DENSITY_SPACING_VARS = DENSITY_SPACING_VARS;
3629
3691
  exports.EDITOR_MOTIONS = EDITOR_MOTIONS;
3630
3692
  exports.EDITOR_OPERATORS = EDITOR_OPERATORS;
3631
3693
  exports.ELEVATION_VARS = ELEVATION_VARS;
3694
+ exports.ENTER_SLOT_CLASS = ENTER_SLOT_CLASS;
3632
3695
  exports.GEOMETRY_VARS = GEOMETRY_VARS;
3633
3696
  exports.ICONOGRAPHY_VARS = ICONOGRAPHY_VARS;
3634
3697
  exports.ICON_ALIASES = ICON_ALIASES;
@@ -3637,6 +3700,7 @@ exports.ICON_NATIVE_MAP = ICON_NATIVE_MAP;
3637
3700
  exports.INDENT_UNIT = INDENT_UNIT;
3638
3701
  exports.JAZARI_COLORS = JAZARI_COLORS;
3639
3702
  exports.LEGACY_PREFIXES = LEGACY_PREFIXES;
3703
+ exports.MAX_ENTER_DELAY = MAX_ENTER_DELAY;
3640
3704
  exports.MOTION_DURATION_KEYS = MOTION_DURATION_KEYS;
3641
3705
  exports.MOTION_EASING_KEYS = MOTION_EASING_KEYS;
3642
3706
  exports.MOTION_INTENT_VARS = MOTION_INTENT_VARS;
@@ -3650,6 +3714,7 @@ exports.apiClient = apiClient;
3650
3714
  exports.applyMotion = applyMotion;
3651
3715
  exports.applyOperator = applyOperator;
3652
3716
  exports.arrowheadPath = arrowheadPath;
3717
+ exports.asEnterAnimation = asEnterAnimation;
3653
3718
  exports.bindCanvasCapture = bindCanvasCapture;
3654
3719
  exports.bindEventBus = bindEventBus;
3655
3720
  exports.bindLastDrawables = bindLastDrawables;
@@ -3679,6 +3744,8 @@ exports.debugTime = debugTime;
3679
3744
  exports.debugTimeEnd = debugTimeEnd;
3680
3745
  exports.debugWarn = debugWarn;
3681
3746
  exports.eightPointedStarPath = eightPointedStarPath;
3747
+ exports.enterClassName = enterClassName;
3748
+ exports.enterKeyframe = enterKeyframe;
3682
3749
  exports.formatDate = formatDate;
3683
3750
  exports.formatDateTime = formatDateTime;
3684
3751
  exports.formatTime = formatTime;