@almadar/ui 6.52.0 → 6.53.1

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 (64) hide show
  1. package/dist/{EntityBindingContext-BbxrwSb9.d.ts → AwaitingSkeletonContext-Bh399p1x.d.ts} +17 -2
  2. package/dist/{Canvas3DHost-CWO0tswb.d.ts → Canvas3DHost-B-y2TNij.d.ts} +1 -1
  3. package/dist/{GameAudioProvider-_hPzjqp-.d.ts → GameAudioProvider-DyBvYP2c.d.ts} +1 -1
  4. package/dist/Typography-7QEWUTW3.js +5 -0
  5. package/dist/{UISlotRenderer-CR7SCAMR.js → UISlotRenderer-P7A4SZSK.js} +10 -10
  6. package/dist/avl/index.cjs +40157 -39958
  7. package/dist/avl/index.d.ts +5 -2
  8. package/dist/avl/index.js +34 -21
  9. package/dist/{chunk-XUSSAWKL.js → chunk-2LFBQ4IS.js} +1 -1
  10. package/dist/{chunk-QWDKMVLX.js → chunk-53VTY5CC.js} +141 -82
  11. package/dist/{chunk-MSBMVG3B.js → chunk-6O37FCX4.js} +1 -0
  12. package/dist/{chunk-WB2A6V3I.js → chunk-7KSLPY56.js} +49 -1
  13. package/dist/{chunk-BHZG4PDZ.js → chunk-7LM6I3NA.js} +629 -626
  14. package/dist/{chunk-NCNP2RKZ.js → chunk-E37BYSXY.js} +2 -2
  15. package/dist/{chunk-5GCI6C7J.js → chunk-FUQASYEW.js} +2 -2
  16. package/dist/{chunk-CLSLVFSP.js → chunk-HB4C27KU.js} +2 -2
  17. package/dist/{chunk-EERAGPBW.js → chunk-HUG25TT3.js} +32341 -33067
  18. package/dist/{chunk-TWHYH25Q.js → chunk-JRW33U35.js} +80 -80
  19. package/dist/{chunk-G4GMXYMY.js → chunk-KQXXO42S.js} +93 -171
  20. package/dist/chunk-OKWD7LPO.js +80 -0
  21. package/dist/{chunk-YHY5K2Y7.js → chunk-PEST66PN.js} +6 -0
  22. package/dist/{chunk-V5AGW2JN.js → chunk-QVXLKFUQ.js} +1 -1
  23. package/dist/chunk-UOTYAPV5.js +284 -0
  24. package/dist/{chunk-2QB2PXOO.js → chunk-VHTJRS2N.js} +3 -5
  25. package/dist/components/index.cjs +42813 -42691
  26. package/dist/components/index.d.ts +182 -319
  27. package/dist/components/index.js +621 -13
  28. package/dist/context/index.cjs +8 -3
  29. package/dist/context/index.js +3 -3
  30. package/dist/hooks/index.cjs +56 -4
  31. package/dist/hooks/index.js +7 -7
  32. package/dist/lib/drawable/three/index.cjs +49 -1
  33. package/dist/lib/drawable/three/index.d.ts +5 -5
  34. package/dist/lib/drawable/three/index.js +7 -7
  35. package/dist/lib/index.cjs +50 -1
  36. package/dist/lib/index.d.ts +2 -2
  37. package/dist/lib/index.js +6 -5
  38. package/dist/locales/index.cjs +147 -3
  39. package/dist/locales/index.js +99 -3
  40. package/dist/{paintDispatch-DHo3WhaU.d.ts → paintDispatch-_6EhJCiL.d.ts} +3 -3
  41. package/dist/providers/index.cjs +35850 -35687
  42. package/dist/providers/index.d.ts +33 -8
  43. package/dist/providers/index.js +37 -13
  44. package/dist/renderer/index.cjs +6 -0
  45. package/dist/renderer/index.d.ts +1 -1
  46. package/dist/renderer/index.js +1 -1
  47. package/dist/runtime/index.cjs +42533 -42343
  48. package/dist/runtime/index.d.ts +4 -2
  49. package/dist/runtime/index.js +12 -12
  50. package/dist/ssr/index.cjs +377 -137
  51. package/dist/ssr/index.d.cts +5 -1
  52. package/dist/ssr/index.d.ts +5 -1
  53. package/dist/ssr/index.js +313 -73
  54. package/dist/{verificationRegistry-BYD3cVhS.d.ts → verificationRegistry-CD7Xb40L.d.ts} +1 -1
  55. package/locales/ar.json +49 -1
  56. package/locales/en.json +49 -1
  57. package/locales/sl.json +49 -1
  58. package/package.json +6 -6
  59. package/tailwind-preset.cjs +23 -0
  60. package/themes/_base.css +28 -8
  61. package/themes/_contract.md +5 -0
  62. package/dist/Typography-7FRZOS2H.js +0 -5
  63. package/dist/{avl-3d-context-DLteNEwu.d.ts → avl-3d-context-MAt_NuU9.d.ts} +3 -3
  64. package/dist/{chunk-IN3BVW2Z.js → chunk-64WACXM7.js} +14 -14
@@ -1,20 +1,20 @@
1
1
  import React__default, { ReactNode } from 'react';
2
- import { EntityRow, SExpr, EventPayload, EffectTrace } from '@almadar/core';
3
- export { ANONYMOUS_USER, comparePathSpecificity, matchPath, matchPathAmong } from '@almadar/core';
2
+ import { EntityRow, SExpr, EventPayload, EffectTrace, SurfaceMode } from '@almadar/core';
3
+ export { ANONYMOUS_USER, SurfaceMode, comparePathSpecificity, matchPath, matchPathAmong } from '@almadar/core';
4
4
  import { U as UIThemeDefinition } from '../ArbitraryClassCompiler-DvzdeHxc.js';
5
5
  export { A as ARBITRARY_CLASS_STYLE_ID, a as ArbitraryClassCompiler, b as ArbitraryClassCompilerProvider, c as ArbitraryClassCompilerProviderProps, d as CurrentPagePathContext, e as CurrentPagePathProvider, f as CurrentPagePathProviderProps, g as DesignThemeProvider, O as OrbitalThemeProvider, h as OrbitalThemeProviderProps, r as resetArbitraryClassStyles, u as useArbitraryClassStyles, m as useCurrentPagePath, n as useDesignTheme } from '../ArbitraryClassCompiler-DvzdeHxc.js';
6
6
  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 EntityBindingContext, E as EntityBindingSource, a as EntitySchemaContextValue, b as EntitySchemaProvider, c as EntitySchemaProviderProps, d as ServerBridgeContextValue, e as ServerBridgeProvider, o as ServerBridgeProviderProps, S as ServerBridgeTransport, T as TraitContext, f as TraitContextValue, g as TraitInstance, h as TraitProvider, i as TraitProviderProps, p as useEntityBindingSnapshot, u as useEntitySchema, j as useEntitySchemaOptional, k as useServerBridge, l as useTrait, m as useTraitContext } from '../EntityBindingContext-BbxrwSb9.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-BYD3cVhS.js';
14
- export { G as GameAudioContext, a as GameAudioContextValue, b as GameAudioProvider, c as GameAudioProviderProps, u as useGameAudioContext, d as useGameAudioContextOptional } from '../GameAudioProvider-_hPzjqp-.js';
15
- export { A as Avl3DConfig, a as Avl3DContext, b as Avl3DModelOverrides, u as useAvl3DConfig, c as useAvl3DPalette } from '../avl-3d-context-DLteNEwu.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';
15
+ export { A as Avl3DConfig, a as Avl3DContext, b as Avl3DModelOverrides, u as useAvl3DConfig, c as useAvl3DPalette } from '../avl-3d-context-MAt_NuU9.js';
16
16
  export { AccessTokenProvider } from '@almadar/runtime';
17
- import '../paintDispatch-DHo3WhaU.js';
17
+ import '../paintDispatch-_6EhJCiL.js';
18
18
  import 'lucide-react';
19
19
  import 'three';
20
20
 
@@ -509,4 +509,29 @@ declare function useOfflineMode(): OfflineModeContextValue;
509
509
  */
510
510
  declare function useOptionalOfflineMode(): OfflineModeContextValue | null;
511
511
 
512
- export { EventBusContext, EventBusProvider, type OfflineModeContextValue, OfflineModeProvider, type OfflineModeProviderProps, OrbitalProvider, type OrbitalProviderProps, RenderSlotProvider, type RenderSlotProviderProps, SelectionContext, type SelectionContextType, SelectionProvider, type TraitScope, TraitScopeProvider, type TraitScopeProviderProps, UIThemeDefinition, UserData, VerificationProvider, type VerificationProviderProps, mapServerEffectResults, useOfflineMode, useOptionalOfflineMode, useRenderSlot, useSelection, useSelectionOptional, useTraitScope, useTraitScopeChain };
512
+ /**
513
+ * Content surfaces: the background box behind a content block (table,
514
+ * calendar, list, chart …). Every block paints the theme-owned `.surface-content`
515
+ * by default, so a patterned page never shows through one block and not the
516
+ * next; the THEME decides what that surface looks like via `--surface-content-*`.
517
+ *
518
+ * Anything that already is a surface (a Card, a dialog, a panel, or a block that
519
+ * painted one) marks its subtree, and a block inside that subtree stays flat —
520
+ * declared ancestry, so a surface never nests inside another.
521
+ */
522
+
523
+ /** Marks its subtree as already sitting on a surface. */
524
+ declare function SurfaceBoundary({ children }: {
525
+ children?: React__default.ReactNode;
526
+ }): React__default.ReactElement;
527
+ interface ContentSurface {
528
+ /** `surface-content` when this block paints the surface, otherwise undefined. */
529
+ className: string | undefined;
530
+ /** Wraps the block's content so nested blocks know they already sit on a surface. */
531
+ provide: (node: React__default.ReactNode) => React__default.ReactElement;
532
+ }
533
+ declare function useContentSurface(surface?: SurfaceMode): ContentSurface;
534
+ /** True when an ancestor already painted a surface. */
535
+ declare function useOnSurface(): boolean;
536
+
537
+ export { type ContentSurface, EventBusContext, EventBusProvider, type OfflineModeContextValue, OfflineModeProvider, type OfflineModeProviderProps, OrbitalProvider, type OrbitalProviderProps, RenderSlotProvider, type RenderSlotProviderProps, SelectionContext, type SelectionContextType, SelectionProvider, SurfaceBoundary, type TraitScope, TraitScopeProvider, type TraitScopeProviderProps, UIThemeDefinition, UserData, VerificationProvider, type VerificationProviderProps, mapServerEffectResults, useContentSurface, useOfflineMode, useOnSurface, useOptionalOfflineMode, useRenderSlot, useSelection, useSelectionOptional, useTraitScope, useTraitScopeChain };
@@ -1,20 +1,20 @@
1
1
  import { arbitraryClassesOf } from '../chunk-ERXIHZW3.js';
2
- import { useGameAudio, SuspenseConfigProvider } from '../chunk-EERAGPBW.js';
3
- import { Box } from '../chunk-BHZG4PDZ.js';
4
- import '../chunk-CLSLVFSP.js';
5
- import '../chunk-TWHYH25Q.js';
2
+ import { resolveThemeForRuntime, themeTokensToCssVars } from '../chunk-6O37FCX4.js';
3
+ import { useGameAudio, SuspenseConfigProvider } from '../chunk-HUG25TT3.js';
4
+ import { useOfflineExecutor } from '../chunk-PQKU62LK.js';
5
+ import { Box } from '../chunk-7LM6I3NA.js';
6
+ import '../chunk-HB4C27KU.js';
7
+ import '../chunk-JRW33U35.js';
6
8
  import '../chunk-XJTHMW4G.js';
7
9
  import { setGlobalEventBus, useEventBus } from '../chunk-6EV3OEBQ.js';
8
- import { resolveThemeForRuntime, themeTokensToCssVars } from '../chunk-MSBMVG3B.js';
9
- import '../chunk-G4GMXYMY.js';
10
+ import '../chunk-PEST66PN.js';
11
+ import '../chunk-KQXXO42S.js';
10
12
  import { registerCheck, recordTransition, bindEventBus, bindTraitStateGetter } from '../chunk-O7OLVVBR.js';
11
- import '../chunk-IN3BVW2Z.js';
12
- import '../chunk-V5AGW2JN.js';
13
- import '../chunk-WB2A6V3I.js';
14
- import { useOfflineExecutor } from '../chunk-PQKU62LK.js';
15
- import '../chunk-YHY5K2Y7.js';
13
+ import '../chunk-64WACXM7.js';
14
+ import '../chunk-QVXLKFUQ.js';
15
+ import '../chunk-7KSLPY56.js';
16
16
  import '../chunk-QPXIAUJD.js';
17
- import { createContext, useRef, useCallback, useMemo, useEffect, useState, useContext, useSyncExternalStore } from 'react';
17
+ import React17, { createContext, useRef, useCallback, useMemo, useEffect, useState, useContext, useSyncExternalStore } from 'react';
18
18
  import { ThemeProvider, useThemeScope, useTheme, ThemeScopeContext } from '@almadar/ui/context';
19
19
  export { DesignThemeProvider, useDesignTheme } from '@almadar/ui/context';
20
20
  import { createLogger } from '@almadar/logger';
@@ -1062,6 +1062,15 @@ function useEntityBindingSnapshot(traitName) {
1062
1062
  state: source !== null && traitName !== void 0 ? source.getState(traitName) : ""
1063
1063
  };
1064
1064
  }
1065
+ var AwaitingSkeletonContext = createContext(null);
1066
+ var NOOP_SUBSCRIBE2 = () => () => void 0;
1067
+ var ZERO = () => 0;
1068
+ function useAwaitingSkeleton(target) {
1069
+ const source = useContext(AwaitingSkeletonContext);
1070
+ useSyncExternalStore(source?.subscribe ?? NOOP_SUBSCRIBE2, source?.getVersion ?? ZERO, ZERO);
1071
+ if (source === null) return void 0;
1072
+ return "slot" in target ? source.forSlot(target.slot) : source.forTrait(target.trait);
1073
+ }
1065
1074
  var OfflineModeContext = createContext(null);
1066
1075
  function OfflineModeProvider({
1067
1076
  children,
@@ -1430,5 +1439,20 @@ function useAvl3DConfig() {
1430
1439
  function useAvl3DPalette() {
1431
1440
  return useContext(Avl3DContext).palette;
1432
1441
  }
1442
+ var SurfaceContext = React17.createContext(false);
1443
+ function SurfaceBoundary({ children }) {
1444
+ return /* @__PURE__ */ jsx(SurfaceContext.Provider, { value: true, children });
1445
+ }
1446
+ function useContentSurface(surface = "auto") {
1447
+ const onSurface = React17.useContext(SurfaceContext);
1448
+ const paints = surface === "auto" && !onSurface;
1449
+ return {
1450
+ className: paints ? "surface-content" : void 0,
1451
+ provide: (node) => paints ? /* @__PURE__ */ jsx(SurfaceBoundary, { children: node }) : /* @__PURE__ */ jsx(Fragment, { children: node })
1452
+ };
1453
+ }
1454
+ function useOnSurface() {
1455
+ return React17.useContext(SurfaceContext);
1456
+ }
1433
1457
 
1434
- export { ARBITRARY_CLASS_STYLE_ID, ArbitraryClassCompilerProvider, Avl3DContext, CurrentPagePathContext, CurrentPagePathProvider, EntityBindingContext, EntitySchemaProvider, EventBusContext, EventBusProvider, GameAudioContext, GameAudioProvider, NavStackProvider, NavStackRouterBridge, NavigationProvider, OfflineModeProvider, OrbitalProvider, OrbitalThemeProvider, RenderSlotProvider, SelectionContext, SelectionProvider, ServerBridgeProvider, TraitContext, TraitProvider, TraitScopeProvider, UserContext, UserProvider, VerificationProvider, extractRouteParams, findPageByName, findPageByPath, getAllPages, getDefaultPage, isInertNavStack, mapServerEffectResults, pathMatches, resetArbitraryClassStyles, useActivePage, useArbitraryClassStyles, useAvl3DConfig, useAvl3DPalette, useCurrentPagePath, useEntityBindingSnapshot, useEntitySchema, useEntitySchemaOptional, useGameAudioContext, useGameAudioContextOptional, useHasPermission, useHasRole, useInitPayload, useNavStack, useNavigateTo, useNavigation, useNavigationId, useNavigationState, useOfflineMode, useOptionalOfflineMode, useRenderSlot, useSelection, useSelectionOptional, useServerBridge, useTrait, useTraitContext, useTraitScope, useTraitScopeChain, useUser, useUserForEvaluation };
1458
+ 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 };
@@ -343,6 +343,12 @@ var SLOT_DEFINITIONS = {
343
343
  name: "sidebar",
344
344
  type: "inline"
345
345
  },
346
+ dock: {
347
+ name: "dock",
348
+ type: "portal",
349
+ portalTarget: "body",
350
+ zIndex: 850
351
+ },
346
352
  // -------------------------------------------------------------------------
347
353
  // Portal Slots - Render to document.body via React Portal
348
354
  // -------------------------------------------------------------------------
@@ -302,7 +302,7 @@ declare function hasEntities(entityName: string, context: DataContext): boolean;
302
302
  * Inline slots render within the component hierarchy.
303
303
  * Portal slots render to document.body, breaking out of overflow containers.
304
304
  */
305
- declare const SLOT_DEFINITIONS: Partial<Record<UISlot, SlotDefinition>> & Record<'main' | 'sidebar' | 'modal' | 'drawer' | 'overlay' | 'center' | 'toast' | 'hud-top' | 'hud-bottom' | 'floating', SlotDefinition>;
305
+ declare const SLOT_DEFINITIONS: Partial<Record<UISlot, SlotDefinition>> & Record<'main' | 'sidebar' | 'dock' | 'modal' | 'drawer' | 'overlay' | 'center' | 'toast' | 'hud-top' | 'hud-bottom' | 'floating', SlotDefinition>;
306
306
  /**
307
307
  * Get the slot definition for a slot name.
308
308
  */
@@ -1,3 +1,3 @@
1
1
  export { ClientEffectConfigContext, ClientEffectConfigProvider, NavigationProvider, OfflineExecutor, comparePathSpecificity, createOfflineExecutor, executeClientEffects, extractRouteParams, findPageByName, findPageByPath, getAllPages, getDefaultPage, getKnownPatterns, getPatternDefinition, getPatternMapping, getPatternsByCategory, getRenderUIEffects, hasEntities, initializePatternResolver, initializePatterns, isKnownPattern, matchPath, matchPathAmong, parseClientEffect, parseClientEffects, pathMatches, resolveEntityById, resolveEntityData, resolveEntityDataWithQuery, resolvePattern, setComponentMapping, setPatternRegistry, useActivePage, useClientEffectConfig, useClientEffectConfigOptional, useClientEffects, useInitPayload, useNavigateTo, useNavigation, useNavigationId, useNavigationState, useOfflineExecutor } from '../chunk-PQKU62LK.js';
2
- export { ALL_SLOTS, SLOT_DEFINITIONS, getInlineSlots, getSlotDefinition, isPortalSlot } from '../chunk-YHY5K2Y7.js';
2
+ export { ALL_SLOTS, SLOT_DEFINITIONS, getInlineSlots, getSlotDefinition, isPortalSlot } from '../chunk-PEST66PN.js';
3
3
  import '../chunk-QPXIAUJD.js';