@inf-monkeys-tech/monkeys-design 1.0.7 → 1.0.8

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.
@@ -1,19 +1,24 @@
1
- import { e as RenderNodeHostElement, f as RenderNodeHostProps, h as RenderNodeRuntimeState } from '../../OverlayNodeHost-14bb9b0f18f4.mjs';
1
+ import { h as RenderNodeRuntimeState, e as RenderNodeHostElement, f as RenderNodeHostProps } from '../../OverlayNodeHost-14bb9b0f18f4.mjs';
2
2
  export { A as ApplicationHandoffLink, a as ApplicationHandoffLinkProps, O as OverlayHistoryAdapter, b as OverlayNodeHost, c as OverlayNodeHostProps, d as OverlayNodeRuntimeContext, R as RenderNodeHost, g as RenderNodePolicyState, i as RenderNodeScrollPosition, j as RenderNodeScrollRestoration, k as browserOverlayHistoryAdapter, l as buildOverlayUrl, m as getOverlayPresentationClassNames, n as getOverlayZIndex, o as getRenderNodeDataAttributes, p as isOverlayUrlActive, r as resolveRenderNodePolicyState, s as sessionRenderNodeScrollRestoration } from '../../OverlayNodeHost-14bb9b0f18f4.mjs';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
- import { RenderTree, RenderNode } from '@inf-monkeys-tech/monkeys';
5
- import { Ref, ReactNode } from 'react';
4
+ import { RenderNode, RenderTree } from '@inf-monkeys-tech/monkeys';
5
+ import { ReactNode, Ref } from 'react';
6
6
  import '../../types-3c51850d34c1.mjs';
7
7
  import '@radix-ui/react-context-menu';
8
8
  interface RenderTreeNodeContext extends RenderNodeRuntimeState {
9
9
  node: RenderNode;
10
10
  children: ReactNode;
11
+ childNodes: readonly RenderNode[];
12
+ childrenBySlot: Readonly<Record<string, ReactNode>>;
11
13
  }
12
14
  interface RenderTreeHostProps {
13
15
  tree: RenderTree;
14
16
  activeNodeIds?: ReadonlySet<string>;
15
17
  visibleNodeIds?: ReadonlySet<string>;
16
18
  manualQueryNodeIds?: ReadonlySet<string>;
19
+ loading?: ReactNode;
20
+ empty?: ReactNode;
21
+ error?: ReactNode;
17
22
  elementForNode?: (node: RenderNode) => RenderNodeHostElement;
18
23
  classNameForNode?: (node: RenderNode) => string | undefined;
19
24
  elementRefForNode?: (node: RenderNode) => Ref<HTMLElement> | undefined;
@@ -23,7 +28,7 @@ interface RenderTreeHostProps {
23
28
  onManualQueryEnabledChange?: RenderNodeHostProps['onManualQueryEnabledChange'];
24
29
  onRuntimeStateChange?: RenderNodeHostProps['onRuntimeStateChange'];
25
30
  }
26
- declare function RenderTreeHost({ tree, activeNodeIds, visibleNodeIds, manualQueryNodeIds, elementForNode, classNameForNode, elementRefForNode, scrollRestoration, renderNode, onActivate, onManualQueryEnabledChange, onRuntimeStateChange, }: RenderTreeHostProps): react_jsx_runtime.JSX.Element;
31
+ declare function RenderTreeHost({ tree, activeNodeIds, visibleNodeIds, manualQueryNodeIds, loading, empty, error, elementForNode, classNameForNode, elementRefForNode, scrollRestoration, renderNode, onActivate, onManualQueryEnabledChange, onRuntimeStateChange, }: RenderTreeHostProps): react_jsx_runtime.JSX.Element;
27
32
  interface RenderTreeRuntimeSnapshot {
28
33
  contract: 'RenderTreeRuntimeSnapshot';
29
34
  treeId: string;
@@ -45,4 +50,19 @@ interface RenderTreeRuntimeHostProps extends Omit<RenderTreeHostProps, 'activeNo
45
50
  onActivate?: RenderTreeHostProps['onActivate'];
46
51
  }
47
52
  declare function RenderTreeRuntimeHost({ tree, historyAdapter, onActivate, onRuntimeStateChange, ...props }: RenderTreeRuntimeHostProps): react_jsx_runtime.JSX.Element;
48
- export { RenderNodeHostElement, RenderNodeHostProps, RenderNodeRuntimeState, type RenderTreeHistoryAdapter, RenderTreeHost, type RenderTreeHostProps, type RenderTreeNodeContext, RenderTreeRuntimeHost, type RenderTreeRuntimeHostProps, type RenderTreeRuntimeSnapshot, browserRenderTreeHistoryAdapter };
53
+ interface RenderTreeRegistryNodeContext<TBinding = unknown> extends RenderTreeNodeContext {
54
+ binding: TBinding | undefined;
55
+ model: RenderNode['renderModel'];
56
+ }
57
+ type RenderTreeComponentRenderer<TBinding = unknown> = (context: RenderTreeRegistryNodeContext<TBinding>) => ReactNode;
58
+ type RenderTreeComponentRegistry = Readonly<Record<string, RenderTreeComponentRenderer>>;
59
+ type RenderTreeBindingRegistry = Readonly<Record<string, unknown>>;
60
+ interface RenderTreeRegistryHostProps extends Omit<RenderTreeRuntimeHostProps, 'renderNode' | 'tree'> {
61
+ tree: RenderTree;
62
+ components: RenderTreeComponentRegistry;
63
+ bindings?: RenderTreeBindingRegistry;
64
+ resolveBinding?: (node: RenderNode, bindings: RenderTreeBindingRegistry) => unknown;
65
+ renderMissingComponent?: (context: RenderTreeNodeContext) => ReactNode;
66
+ }
67
+ declare function RenderTreeRegistryHost({ tree, components, bindings, resolveBinding, renderMissingComponent, ...props }: RenderTreeRegistryHostProps): react_jsx_runtime.JSX.Element;
68
+ export { RenderNodeHostElement, RenderNodeHostProps, RenderNodeRuntimeState, type RenderTreeBindingRegistry, type RenderTreeComponentRegistry, type RenderTreeComponentRenderer, type RenderTreeHistoryAdapter, RenderTreeHost, type RenderTreeHostProps, type RenderTreeNodeContext, RenderTreeRegistryHost, type RenderTreeRegistryHostProps, type RenderTreeRegistryNodeContext, RenderTreeRuntimeHost, type RenderTreeRuntimeHostProps, type RenderTreeRuntimeSnapshot, browserRenderTreeHistoryAdapter };
@@ -1,19 +1,24 @@
1
- import { e as RenderNodeHostElement, f as RenderNodeHostProps, h as RenderNodeRuntimeState } from '../../OverlayNodeHost-3c763888b689.js';
1
+ import { h as RenderNodeRuntimeState, e as RenderNodeHostElement, f as RenderNodeHostProps } from '../../OverlayNodeHost-3c763888b689.js';
2
2
  export { A as ApplicationHandoffLink, a as ApplicationHandoffLinkProps, O as OverlayHistoryAdapter, b as OverlayNodeHost, c as OverlayNodeHostProps, d as OverlayNodeRuntimeContext, R as RenderNodeHost, g as RenderNodePolicyState, i as RenderNodeScrollPosition, j as RenderNodeScrollRestoration, k as browserOverlayHistoryAdapter, l as buildOverlayUrl, m as getOverlayPresentationClassNames, n as getOverlayZIndex, o as getRenderNodeDataAttributes, p as isOverlayUrlActive, r as resolveRenderNodePolicyState, s as sessionRenderNodeScrollRestoration } from '../../OverlayNodeHost-3c763888b689.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
- import { RenderTree, RenderNode } from '@inf-monkeys-tech/monkeys';
5
- import { Ref, ReactNode } from 'react';
4
+ import { RenderNode, RenderTree } from '@inf-monkeys-tech/monkeys';
5
+ import { ReactNode, Ref } from 'react';
6
6
  import '../../types-3c51850d34c1.js';
7
7
  import '@radix-ui/react-context-menu';
8
8
  interface RenderTreeNodeContext extends RenderNodeRuntimeState {
9
9
  node: RenderNode;
10
10
  children: ReactNode;
11
+ childNodes: readonly RenderNode[];
12
+ childrenBySlot: Readonly<Record<string, ReactNode>>;
11
13
  }
12
14
  interface RenderTreeHostProps {
13
15
  tree: RenderTree;
14
16
  activeNodeIds?: ReadonlySet<string>;
15
17
  visibleNodeIds?: ReadonlySet<string>;
16
18
  manualQueryNodeIds?: ReadonlySet<string>;
19
+ loading?: ReactNode;
20
+ empty?: ReactNode;
21
+ error?: ReactNode;
17
22
  elementForNode?: (node: RenderNode) => RenderNodeHostElement;
18
23
  classNameForNode?: (node: RenderNode) => string | undefined;
19
24
  elementRefForNode?: (node: RenderNode) => Ref<HTMLElement> | undefined;
@@ -23,7 +28,7 @@ interface RenderTreeHostProps {
23
28
  onManualQueryEnabledChange?: RenderNodeHostProps['onManualQueryEnabledChange'];
24
29
  onRuntimeStateChange?: RenderNodeHostProps['onRuntimeStateChange'];
25
30
  }
26
- declare function RenderTreeHost({ tree, activeNodeIds, visibleNodeIds, manualQueryNodeIds, elementForNode, classNameForNode, elementRefForNode, scrollRestoration, renderNode, onActivate, onManualQueryEnabledChange, onRuntimeStateChange, }: RenderTreeHostProps): react_jsx_runtime.JSX.Element;
31
+ declare function RenderTreeHost({ tree, activeNodeIds, visibleNodeIds, manualQueryNodeIds, loading, empty, error, elementForNode, classNameForNode, elementRefForNode, scrollRestoration, renderNode, onActivate, onManualQueryEnabledChange, onRuntimeStateChange, }: RenderTreeHostProps): react_jsx_runtime.JSX.Element;
27
32
  interface RenderTreeRuntimeSnapshot {
28
33
  contract: 'RenderTreeRuntimeSnapshot';
29
34
  treeId: string;
@@ -45,4 +50,19 @@ interface RenderTreeRuntimeHostProps extends Omit<RenderTreeHostProps, 'activeNo
45
50
  onActivate?: RenderTreeHostProps['onActivate'];
46
51
  }
47
52
  declare function RenderTreeRuntimeHost({ tree, historyAdapter, onActivate, onRuntimeStateChange, ...props }: RenderTreeRuntimeHostProps): react_jsx_runtime.JSX.Element;
48
- export { RenderNodeHostElement, RenderNodeHostProps, RenderNodeRuntimeState, type RenderTreeHistoryAdapter, RenderTreeHost, type RenderTreeHostProps, type RenderTreeNodeContext, RenderTreeRuntimeHost, type RenderTreeRuntimeHostProps, type RenderTreeRuntimeSnapshot, browserRenderTreeHistoryAdapter };
53
+ interface RenderTreeRegistryNodeContext<TBinding = unknown> extends RenderTreeNodeContext {
54
+ binding: TBinding | undefined;
55
+ model: RenderNode['renderModel'];
56
+ }
57
+ type RenderTreeComponentRenderer<TBinding = unknown> = (context: RenderTreeRegistryNodeContext<TBinding>) => ReactNode;
58
+ type RenderTreeComponentRegistry = Readonly<Record<string, RenderTreeComponentRenderer>>;
59
+ type RenderTreeBindingRegistry = Readonly<Record<string, unknown>>;
60
+ interface RenderTreeRegistryHostProps extends Omit<RenderTreeRuntimeHostProps, 'renderNode' | 'tree'> {
61
+ tree: RenderTree;
62
+ components: RenderTreeComponentRegistry;
63
+ bindings?: RenderTreeBindingRegistry;
64
+ resolveBinding?: (node: RenderNode, bindings: RenderTreeBindingRegistry) => unknown;
65
+ renderMissingComponent?: (context: RenderTreeNodeContext) => ReactNode;
66
+ }
67
+ declare function RenderTreeRegistryHost({ tree, components, bindings, resolveBinding, renderMissingComponent, ...props }: RenderTreeRegistryHostProps): react_jsx_runtime.JSX.Element;
68
+ export { RenderNodeHostElement, RenderNodeHostProps, RenderNodeRuntimeState, type RenderTreeBindingRegistry, type RenderTreeComponentRegistry, type RenderTreeComponentRenderer, type RenderTreeHistoryAdapter, RenderTreeHost, type RenderTreeHostProps, type RenderTreeNodeContext, RenderTreeRegistryHost, type RenderTreeRegistryHostProps, type RenderTreeRegistryNodeContext, RenderTreeRuntimeHost, type RenderTreeRuntimeHostProps, type RenderTreeRuntimeSnapshot, browserRenderTreeHistoryAdapter };
@@ -2683,6 +2683,9 @@ function RenderTreeHost({
2683
2683
  activeNodeIds,
2684
2684
  visibleNodeIds,
2685
2685
  manualQueryNodeIds,
2686
+ loading,
2687
+ empty,
2688
+ error,
2686
2689
  elementForNode = defaultElementForNode,
2687
2690
  classNameForNode,
2688
2691
  elementRefForNode,
@@ -2694,7 +2697,11 @@ function RenderTreeHost({
2694
2697
  }) {
2695
2698
  const compiled = react.useMemo(() => runtime.compileRenderTree(tree), [tree]);
2696
2699
  const renderBranch = (node) => {
2697
- const descendants = compiled.childrenOf(node.nodeId).map((child) => /* @__PURE__ */ jsxRuntime.jsx(react.Fragment, { children: renderBranch(child) }, child.nodeId));
2700
+ const childNodes = compiled.childrenOf(node.nodeId);
2701
+ const descendants = childNodes.map((child) => /* @__PURE__ */ jsxRuntime.jsx(react.Fragment, { children: renderBranch(child) }, child.nodeId));
2702
+ const childrenBySlot = Object.freeze(Object.fromEntries(
2703
+ childNodes.map((child, index) => [child.slot ?? child.nodeId, descendants[index]])
2704
+ ));
2698
2705
  return /* @__PURE__ */ jsxRuntime.jsx(
2699
2706
  RenderNodeHost,
2700
2707
  {
@@ -2703,13 +2710,22 @@ function RenderTreeHost({
2703
2710
  active: activeNodeIds?.has(node.nodeId) ?? true,
2704
2711
  visible: visibleNodeIds?.has(node.nodeId) ?? true,
2705
2712
  manualQueryEnabled: manualQueryNodeIds?.has(node.nodeId) ?? false,
2713
+ loading,
2714
+ empty,
2715
+ error,
2706
2716
  className: classNameForNode?.(node),
2707
2717
  elementRef: elementRefForNode?.(node),
2708
2718
  scrollRestoration,
2709
2719
  onActivate,
2710
2720
  onManualQueryEnabledChange,
2711
2721
  onRuntimeStateChange,
2712
- children: (runtime) => renderNode?.({ ...runtime, node, children: descendants }) ?? descendants
2722
+ children: (runtime) => renderNode?.({
2723
+ ...runtime,
2724
+ node,
2725
+ children: descendants,
2726
+ childNodes,
2727
+ childrenBySlot
2728
+ }) ?? descendants
2713
2729
  },
2714
2730
  node.nodeId
2715
2731
  );
@@ -2866,11 +2882,43 @@ function RenderTreeRuntimeHost({
2866
2882
  }
2867
2883
  );
2868
2884
  }
2885
+ var defaultResolveBinding = (node, bindings) => {
2886
+ const bindingId = node.dataContextRef?.id;
2887
+ return bindingId ? bindings[bindingId] : void 0;
2888
+ };
2889
+ function RenderTreeRegistryHost({
2890
+ tree,
2891
+ components,
2892
+ bindings = {},
2893
+ resolveBinding = defaultResolveBinding,
2894
+ renderMissingComponent,
2895
+ ...props
2896
+ }) {
2897
+ return /* @__PURE__ */ jsxRuntime.jsx(
2898
+ RenderTreeRuntimeHost,
2899
+ {
2900
+ ...props,
2901
+ tree,
2902
+ renderNode: (context) => {
2903
+ const renderer = components[context.node.capabilityRef.id];
2904
+ if (!renderer) {
2905
+ return renderMissingComponent?.(context) ?? context.children;
2906
+ }
2907
+ return renderer({
2908
+ ...context,
2909
+ binding: resolveBinding(context.node, bindings),
2910
+ model: context.node.renderModel
2911
+ });
2912
+ }
2913
+ }
2914
+ );
2915
+ }
2869
2916
 
2870
2917
  exports.ApplicationHandoffLink = ApplicationHandoffLink;
2871
2918
  exports.OverlayNodeHost = OverlayNodeHost;
2872
2919
  exports.RenderNodeHost = RenderNodeHost;
2873
2920
  exports.RenderTreeHost = RenderTreeHost;
2921
+ exports.RenderTreeRegistryHost = RenderTreeRegistryHost;
2874
2922
  exports.RenderTreeRuntimeHost = RenderTreeRuntimeHost;
2875
2923
  exports.browserOverlayHistoryAdapter = browserOverlayHistoryAdapter;
2876
2924
  exports.browserRenderTreeHistoryAdapter = browserRenderTreeHistoryAdapter;