@common-stack/components-pro 7.1.1-alpha.0 → 7.1.1-alpha.3

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 (37) hide show
  1. package/lib/index.js +1 -1
  2. package/lib/plugin/context.d.ts +7 -0
  3. package/lib/plugin/context.js +1 -0
  4. package/lib/plugin/context.js.map +1 -0
  5. package/lib/plugin/dynamic-render.d.ts +1 -4
  6. package/lib/plugin/dynamic-render.js +16 -29
  7. package/lib/plugin/dynamic-render.js.map +1 -1
  8. package/lib/plugin/index.d.ts +2 -1
  9. package/lib/plugin/loader.d.ts +6 -0
  10. package/lib/plugin/loader.js +20 -0
  11. package/lib/plugin/loader.js.map +1 -0
  12. package/lib/plugin/plugin-render.d.ts +9 -10
  13. package/lib/plugin/plugin-render.js +21 -24
  14. package/lib/plugin/plugin-render.js.map +1 -1
  15. package/lib/plugin/provider.d.ts +6 -0
  16. package/lib/plugin/provider.js +4 -0
  17. package/lib/plugin/provider.js.map +1 -0
  18. package/lib/slot-fill/__tests__/filler-slot.test.d.ts +1 -1
  19. package/lib/slot-fill/__tests__/slot-features.test.d.ts +1 -1
  20. package/lib/slot-fill/__tests__/slot-fill-provider.test.d.ts +1 -0
  21. package/lib/slot-fill/base/context.js +2 -4
  22. package/lib/slot-fill/base/context.js.map +1 -1
  23. package/lib/slot-fill/base/provider.d.ts +0 -3
  24. package/lib/slot-fill/base/provider.js +1 -37
  25. package/lib/slot-fill/base/provider.js.map +1 -1
  26. package/lib/slot-fill/base/slot.js +76 -53
  27. package/lib/slot-fill/base/slot.js.map +1 -1
  28. package/lib/slot-fill/interfaces/index.d.ts +4 -6
  29. package/lib/slot-fill/utils/index.js +9 -0
  30. package/lib/slot-fill/utils/index.js.map +1 -0
  31. package/lib/slot-fill/utils/isEmptyElement.d.ts +1 -1
  32. package/lib/slot-fill/utils/isEmptyElement.js +18 -0
  33. package/lib/slot-fill/utils/isEmptyElement.js.map +1 -0
  34. package/package.json +5 -5
  35. package/lib/plugin/reset-rendered-fills.d.ts +0 -2
  36. package/lib/plugin/reset-rendered-fills.js +0 -4
  37. package/lib/plugin/reset-rendered-fills.js.map +0 -1
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- export{Fill,Slot,Provider as SlotFillProvider,createSlotFill}from'./slot-fill/index.js';export{removeUniversalPortals}from'./slot-fill/utils/removeUniversalPortals.js';export{renderedFillsPath,resetRenderedFills}from'./plugin/reset-rendered-fills.js';export{default as __experimentalUseSlot}from'./slot-fill/bubbles-virtually/use-slot.js';//# sourceMappingURL=index.js.map
1
+ export{Fill,Slot,Provider as SlotFillProvider,createSlotFill}from'./slot-fill/index.js';export{removeUniversalPortals}from'./slot-fill/utils/removeUniversalPortals.js';export{default as FillRenderProvider}from'./plugin/provider.js';export{PluginsLoader}from'./plugin/loader.js';export{default as __experimentalUseSlot}from'./slot-fill/bubbles-virtually/use-slot.js';//# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { ILoadedPlugin } from '../slot-fill/interfaces';
3
+ export interface IFillRenderContext {
4
+ loadedPlugins: ILoadedPlugin[];
5
+ }
6
+ declare const FillRenderContext: React.Context<IFillRenderContext>;
7
+ export default FillRenderContext;
@@ -0,0 +1 @@
1
+ import*as React from'react';const FillRenderContext = React.createContext(null);export{FillRenderContext as default};//# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sources":["../../src/plugin/context.tsx"],"sourcesContent":[null],"names":[],"mappings":"4BAOM,MAAA,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAA4B,IAAI"}
@@ -1,8 +1,5 @@
1
1
  import React from 'react';
2
- export declare const DynamicRender: ({ renderImporter, registerPluginData, loadPluginData, loaderContext, ...props }: {
2
+ export declare const DynamicRender: ({ renderImporter, ...props }: {
3
3
  [x: string]: any;
4
4
  renderImporter: any;
5
- registerPluginData: any;
6
- loadPluginData: any;
7
- loaderContext: any;
8
5
  }) => React.JSX.Element;
@@ -1,32 +1,19 @@
1
- import React__default,{lazy,Suspense}from'react';const DynamicRender = ({ renderImporter, registerPluginData, loadPluginData, loaderContext, ...props }) => {
2
- if (!renderImporter) {
1
+ import React__default,{useState,useEffect}from'react';const DynamicRender = ({ renderImporter, ...props }) => {
2
+ const [Component, setComponent] = useState(null);
3
+ useEffect(() => {
4
+ if (renderImporter) {
5
+ renderImporter()
6
+ .then((module) => {
7
+ const ImportedComponent = module.default;
8
+ setComponent(() => ImportedComponent);
9
+ })
10
+ .catch((error) => {
11
+ console.error(`Failed to load component from ${renderImporter}:`, error);
12
+ });
13
+ }
14
+ }, [renderImporter]);
15
+ if (!Component) {
3
16
  return React__default.createElement(React__default.Fragment, null);
4
17
  }
5
- // Create a lazy-loaded component from the importer
6
- const LazyComponent = lazy(async () => {
7
- try {
8
- const module = await renderImporter();
9
- let loaderData = {};
10
- if (module.loader && typeof module.loader === 'function') {
11
- if (typeof window === 'undefined' && loaderContext) {
12
- loaderData = await module.loader(loaderContext);
13
- registerPluginData(loaderData);
14
- }
15
- else {
16
- loaderData = loadPluginData();
17
- }
18
- }
19
- // Create a wrapper component that includes the loader data
20
- const WrappedComponent = (componentProps) => {
21
- return React__default.createElement(module.default, { ...componentProps, loaderData: loaderData });
22
- };
23
- return { default: WrappedComponent };
24
- }
25
- catch (error) {
26
- console.error(`Failed to load component from ${renderImporter}:`, error);
27
- return { default: () => React__default.createElement(React__default.Fragment, null) };
28
- }
29
- });
30
- return (React__default.createElement(Suspense, { fallback: React__default.createElement(React__default.Fragment, null) },
31
- React__default.createElement(LazyComponent, { ...props })));
18
+ return React__default.createElement(Component, { ...props });
32
19
  };export{DynamicRender};//# sourceMappingURL=dynamic-render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-render.js","sources":["../../src/plugin/dynamic-render.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"iDAEa,MAAA,aAAa,GAAG,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,KAAI;IAC7G,IAAI,CAAC,cAAc,EAAE;AACjB,QAAA,OAAOA,2DAAK,CAAC;KAChB;;AAGD,IAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAW;AAClC,QAAA,IAAI;AACA,YAAA,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;YACtC,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;AACtD,gBAAA,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,aAAa,EAAE;oBAChD,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBAChD,kBAAkB,CAAC,UAAU,CAAC,CAAC;iBAClC;qBAAM;oBACH,UAAU,GAAG,cAAc,EAAE,CAAC;iBACjC;aACJ;;AAGD,YAAA,MAAM,gBAAgB,GAAG,CAAC,cAAc,KAAI;gBACxC,OAAOA,cAAA,CAAA,aAAA,CAAC,MAAM,CAAC,OAAO,EAAA,EAAA,GAAK,cAAc,EAAE,UAAU,EAAE,UAAU,EAAA,CAAI,CAAC;AAC1E,aAAC,CAAC;AAEF,YAAA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;SACxC;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,CAAA,8BAAA,EAAiC,cAAc,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;YACzE,OAAO,EAAE,OAAO,EAAE,MAAMA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,CAAK,EAAE,CAAC;SACnC;AACL,KAAC,CAAC,CAAC;AAEH,IAAA,QACIA,cAAC,CAAA,aAAA,CAAA,QAAQ,EAAC,EAAA,QAAQ,EAAEA,cAAK,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,CAAA,EAAA;AACrB,QAAAA,cAAA,CAAA,aAAA,CAAC,aAAa,EAAK,EAAA,GAAA,KAAK,EAAI,CAAA,CACrB,EACb;AACN"}
1
+ {"version":3,"file":"dynamic-render.js","sources":["../../src/plugin/dynamic-render.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"sDAEO,MAAM,aAAa,GAAG,CAAC,EAAE,cAAc,EAAE,GAAG,KAAK,EAAE,KAAI;IAC1D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAkB,IAAI,CAAC,CAAC;IAElE,SAAS,CAAC,MAAK;QACX,IAAI,cAAc,EAAE;AAChB,YAAA,cAAc,EAAE;AACX,iBAAA,IAAI,CAAC,CAAC,MAAM,KAAI;AACb,gBAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC;AACzC,gBAAA,YAAY,CAAC,MAAM,iBAAiB,CAAC,CAAC;AAC1C,aAAC,CAAC;AACD,iBAAA,KAAK,CAAC,CAAC,KAAK,KAAI;gBACb,OAAO,CAAC,KAAK,CAAC,CAAA,8BAAA,EAAiC,cAAc,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;AAC7E,aAAC,CAAC,CAAC;SACV;AACL,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,IAAI,CAAC,SAAS,EAAE;AACZ,QAAA,OAAOA,2DAAK,CAAC;KAChB;AAED,IAAA,OAAOA,cAAC,CAAA,aAAA,CAAA,SAAS,EAAK,EAAA,GAAA,KAAK,GAAI,CAAC;AACpC"}
@@ -1 +1,2 @@
1
- export * from './reset-rendered-fills';
1
+ export { default as FillRenderProvider } from './provider';
2
+ export { PluginsLoader } from './loader';
@@ -0,0 +1,6 @@
1
+ import { IAppLoadContext, IResourceParams } from '@common-stack/client-core';
2
+ export declare function PluginsLoader(plugins: any[], loaderContext: {
3
+ request: Request;
4
+ context: IAppLoadContext;
5
+ params: IResourceParams;
6
+ }): Promise<any[]>;
@@ -0,0 +1,20 @@
1
+ async function PluginsLoader(plugins, loaderContext) {
2
+ const loadedPlugins = await Promise.all(plugins.map(async (plugin) => {
3
+ try {
4
+ if (plugin.renderImporter) {
5
+ const module = await plugin.renderImporter();
6
+ const ImportedComponent = module.default;
7
+ // if (module.loader && typeof module.loader === 'function') {
8
+ // const loaderData = await module.loader(loaderContext);
9
+ // return { ...plugin, Component: ImportedComponent, loaderData };
10
+ // }
11
+ return { ...plugin, Component: ImportedComponent };
12
+ }
13
+ }
14
+ catch (error) {
15
+ console.error('Error in PluginsLoader', error);
16
+ }
17
+ return plugin;
18
+ }));
19
+ return loadedPlugins;
20
+ }export{PluginsLoader};//# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sources":["../../src/plugin/loader.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,eAAe,aAAa,CAC/B,OAAc,EACd,aAAsF,EAAA;AAEtF,IAAA,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAW,KAAI;AAC9B,QAAA,IAAI;AACA,YAAA,IAAI,MAAM,CAAC,cAAc,EAAE;AACvB,gBAAA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;AAC7C,gBAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC;;;;;gBAMzC,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;aACtD;SACJ;QAAC,OAAO,KAAK,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;SAClD;AACD,QAAA,OAAO,MAAM,CAAC;KACjB,CAAC,CACL,CAAC;AACF,IAAA,OAAO,aAAa,CAAC;AACzB"}
@@ -1,14 +1,13 @@
1
- import React, { ReactNode } from 'react';
2
- import { IExtendedFill, IProviderState, Name } from '../slot-fill/interfaces';
3
- interface ChildrenRenderProps {
4
- children: ReactNode | ((props: any) => ReactNode);
5
- [key: string]: any;
6
- }
7
- export declare const ChildrenRender: React.FC<ChildrenRenderProps>;
8
- interface PluginRenderProps extends Partial<IProviderState> {
9
- fills: IExtendedFill[];
1
+ import React from 'react';
2
+ import { ILoadedPlugin, Name } from '../slot-fill/interfaces';
3
+ interface IPluginRenderProps {
4
+ fills: ILoadedPlugin[];
10
5
  name: Name;
11
6
  [key: string]: any;
12
7
  }
13
- export declare const PluginRender: React.FC<PluginRenderProps>;
8
+ export declare const ChildrenRender: ({ children, ...props }: {
9
+ [x: string]: any;
10
+ children: any;
11
+ }) => React.JSX.Element;
12
+ export declare const PluginRender: (props: IPluginRenderProps) => React.JSX.Element;
14
13
  export {};
@@ -1,47 +1,44 @@
1
- import React__default,{useCallback}from'react';import {DynamicRender}from'./dynamic-render.js';const ChildrenRender = ({ children, ...props }) => {
2
- const renderChildren = (props) => {
3
- if (typeof children === 'function') {
4
- return children(props);
5
- }
6
- return children;
7
- };
8
- return React__default.createElement(React__default.Fragment, null, renderChildren(props));
1
+ import React__default,{useContext}from'react';import {DynamicRender}from'./dynamic-render.js';import {isFunction}from'../slot-fill/utils/index.js';import FillRenderContext from'./context.js';const ChildrenRender = ({ children, ...props }) => {
2
+ return React__default.createElement(React__default.Fragment, null, isFunction(children) ? children(props) : children);
9
3
  };
10
4
  const PluginRender = (props) => {
11
- const FillRender = ({ fill, registerRenderedFill, loadRenderedFill, loaderContext, ...fillProps }) => {
12
- console.log('FillRender >>>', fillProps.name, fill);
13
- const registerPluginData = useCallback((loaderData) => {
14
- registerRenderedFill?.(fillProps.name, fill.index, loaderData);
15
- }, [registerRenderedFill, fillProps.name, fill.index]);
16
- const loadPluginData = useCallback(() => {
17
- return loadRenderedFill?.(fillProps.name, fill.index);
18
- }, [loadRenderedFill, fillProps.name, fill.index]);
19
- if (fill.renderImporter) {
20
- return (React__default.createElement(DynamicRender, { ...fillProps, renderImporter: fill.renderImporter, registerPluginData: registerPluginData, loadPluginData: loadPluginData, loaderContext: loaderContext }));
5
+ const context = useContext(FillRenderContext);
6
+ if (!context?.loadedPlugins) {
7
+ throw new Error('PluginRender must be used within a FillRenderContext.Provider');
8
+ }
9
+ const FillRender = ({ fill, ...props }) => {
10
+ const plugin = context.loadedPlugins.find((plugin) => plugin.index === fill.index);
11
+ const loaderData = plugin?.loaderData || {};
12
+ if (plugin?.Component) {
13
+ return React__default.createElement(plugin.Component, { ...props, loaderData: loaderData });
14
+ }
15
+ else if (fill.renderImporter) {
16
+ return React__default.createElement(DynamicRender, { ...props, renderImporter: fill.renderImporter, loaderData: loaderData });
21
17
  }
22
- else if (fill.render) {
18
+ else if (plugin?.render) {
23
19
  let children = null;
24
20
  try {
25
- const FillComponent = fill.render(null);
21
+ const FillComponent = plugin.render(props);
26
22
  if (React__default.isValidElement(FillComponent)) {
27
- children = FillComponent.props.children;
23
+ const element = FillComponent;
24
+ children = element.props?.children;
28
25
  }
29
26
  }
30
27
  catch (error) {
31
28
  console.error('Error in PluginRender', error);
32
29
  }
33
30
  if (children) {
34
- return React__default.createElement(ChildrenRender, { ...fillProps, children: children });
31
+ return React__default.createElement(ChildrenRender, { ...props, children: children });
35
32
  }
36
33
  }
37
34
  else if (fill.children) {
38
- return React__default.createElement(ChildrenRender, { ...fillProps, children: fill.children });
35
+ return React__default.createElement(ChildrenRender, { ...props, children: fill.children });
39
36
  }
40
37
  return React__default.createElement(React__default.Fragment, null);
41
38
  };
42
39
  return (React__default.createElement(React__default.Fragment, null, props.fills.map((fill, i) => {
43
40
  if (typeof window === 'undefined') {
44
- return (React__default.createElement("div", { key: i, "data-slot-name": `slot-${String(props.name)}` },
41
+ return (React__default.createElement("div", { key: i, "data-slot-name": `slot-${props.name}` },
45
42
  React__default.createElement(FillRender, { fill: fill, ...props })));
46
43
  }
47
44
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-render.js","sources":["../../src/plugin/plugin-render.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-render.js","sources":["../../src/plugin/plugin-render.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import React, { ReactNode } from 'react';
2
+ interface FillRenderProviderProps {
3
+ children: ReactNode;
4
+ }
5
+ declare const FillRenderProvider: React.FC<FillRenderProviderProps>;
6
+ export default FillRenderProvider;
@@ -0,0 +1,4 @@
1
+ import React__default from'react';import {useLoaderData}from'@remix-run/react';import FillRenderContext from'./context.js';const FillRenderProvider = ({ children }) => {
2
+ const { loadedPlugins } = useLoaderData();
3
+ return React__default.createElement(FillRenderContext.Provider, { value: { loadedPlugins } }, children);
4
+ };export{FillRenderProvider as default};//# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sources":["../../src/plugin/provider.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"2HAQA,MAAM,kBAAkB,GAAsC,CAAC,EAAE,QAAQ,EAAE,KAAI;AAC3E,IAAA,MAAM,EAAE,aAAa,EAAE,GAAQ,aAAa,EAAE,CAAC;AAE/C,IAAA,OAAOA,cAAC,CAAA,aAAA,CAAA,iBAAiB,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,EAAE,aAAa,EAAE,EAAG,EAAA,QAAQ,CAA8B,CAAC;AACzG"}
@@ -1 +1 @@
1
- import 'jest';
1
+ import '@testing-library/jest-dom';
@@ -1 +1 @@
1
- import 'jest';
1
+ import '@testing-library/jest-dom';
@@ -1,14 +1,12 @@
1
1
  import*as React from'react';const SlotFillContext = React.createContext({
2
+ // need to add default value otherwise it will fail
2
3
  registerSlot: () => { },
3
4
  unregisterSlot: () => { },
4
5
  registerFill: () => { },
5
6
  unregisterFill: () => { },
6
7
  getSlot: () => ({}),
7
- getFills: () => ([]),
8
+ getFills: () => [],
8
9
  hasFills: () => false,
9
10
  subscribe: () => { },
10
- registerRenderedFill: () => { },
11
- loadRenderedFill: () => { },
12
- loaderContext: null,
13
11
  });
14
12
  const { Provider, Consumer } = SlotFillContext;export{Consumer,Provider,SlotFillContext as default};//# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../../../src/slot-fill/base/context.tsx"],"sourcesContent":[null],"names":[],"mappings":"4BAGA,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAkB;AAC3D,IAAA,YAAY,EAAE,MAAK,GAAG;AACtB,IAAA,cAAc,EAAE,MAAK,GAAG;AACxB,IAAA,YAAY,EAAE,MAAK,GAAG;AACtB,IAAA,cAAc,EAAE,MAAK,GAAG;AACxB,IAAA,OAAO,EAAE,OAAO,EAAE,CAAQ;AAC1B,IAAA,QAAQ,EAAE,OAAO,EAAE,CAAC;AACpB,IAAA,QAAQ,EAAE,MAAM,KAAK;AACrB,IAAA,SAAS,EAAE,MAAK,GAAG;AACnB,IAAA,oBAAoB,EAAE,MAAK,GAAG;AAC9B,IAAA,gBAAgB,EAAE,MAAK,GAAG;AAC1B,IAAA,aAAa,EAAE,IAAI;AACpB,CAAA,EAAE;AACH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG"}
1
+ {"version":3,"file":"context.js","sources":["../../../src/slot-fill/base/context.tsx"],"sourcesContent":[null],"names":[],"mappings":"4BAGA,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAkB;;AAEzD,IAAA,YAAY,EAAE,MAAK,GAAG;AACtB,IAAA,cAAc,EAAE,MAAK,GAAG;AACxB,IAAA,YAAY,EAAE,MAAK,GAAG;AACtB,IAAA,cAAc,EAAE,MAAK,GAAG;AACxB,IAAA,OAAO,EAAE,OAAO,EAAE,CAAQ;AAC1B,IAAA,QAAQ,EAAE,MAAM,EAAE;AAClB,IAAA,QAAQ,EAAE,MAAM,KAAK;AACrB,IAAA,SAAS,EAAE,MAAK,GAAG;AACtB,CAAA,EAAE;AACH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG"}
@@ -2,9 +2,6 @@ import React, { ReactNode } from 'react';
2
2
  interface SlotFillProviderProps {
3
3
  children: ReactNode;
4
4
  context?: any;
5
- loaderContext?: any;
6
- renderedFillsPath?: string;
7
- renderedFillsJson?: any;
8
5
  }
9
6
  declare const SlotFillProvider: React.FC<SlotFillProviderProps>;
10
7
  export default SlotFillProvider;
@@ -1,14 +1,8 @@
1
- import React__default,{useRef,useEffect,useCallback}from'react';import {sortBy}from'lodash-es';import {Provider}from'./context.js';import fs from'fs';import path from'path';const SlotFillProvider = ({ children, context, loaderContext, renderedFillsPath, renderedFillsJson }) => {
1
+ import React__default,{useRef,useCallback}from'react';import {sortBy}from'lodash-es';import {Provider}from'./context.js';const SlotFillProvider = ({ children, context }) => {
2
2
  const slots = useRef({});
3
3
  const fills = useRef({});
4
4
  const listeners = useRef([]);
5
5
  const returnValue = useRef(context);
6
- const renderedFills = useRef({});
7
- // Load renderedFills from file on initialization (server-side only)
8
- useEffect(() => {
9
- renderedFills.current = renderedFillsJson;
10
- console.log('Loaded renderedFills from file:', renderedFills.current);
11
- }, [renderedFillsJson]);
12
6
  const forceUpdateSlot = useCallback((name) => {
13
7
  const slot = slots.current[name];
14
8
  if (slot && typeof slot.forceUpdate === 'function') {
@@ -66,33 +60,6 @@ import React__default,{useRef,useEffect,useCallback}from'react';import {sortBy}f
66
60
  listeners.current = listeners.current.filter((l) => l !== listener);
67
61
  };
68
62
  }, []);
69
- const registerRenderedFill = useCallback((name, index, loaderData) => {
70
- renderedFills.current[`${name}-${index}`] = { name, index, loaderData };
71
- if (typeof window === 'undefined' && fs) {
72
- try {
73
- // Ensure directory exists
74
- const dir = path.dirname(renderedFillsPath);
75
- if (!fs.existsSync(dir)) {
76
- fs.mkdirSync(dir, { recursive: true });
77
- }
78
- // Write to file
79
- fs.writeFileSync(renderedFillsPath, JSON.stringify(renderedFills.current, null, 2));
80
- console.log(`Saved renderedFills to ${renderedFillsPath}`);
81
- }
82
- catch (error) {
83
- console.error('Error writing renderedFills to file:', error);
84
- }
85
- }
86
- triggerListeners();
87
- }, [triggerListeners, renderedFillsPath]);
88
- const loadRenderedFill = useCallback((name, index) => {
89
- // Client-side: first check if we have it in memory
90
- const key = `${name}-${index}`;
91
- if (renderedFills.current[key]) {
92
- return renderedFills.current[key].loaderData;
93
- }
94
- return null;
95
- }, []);
96
63
  const contextValue = {
97
64
  registerSlot,
98
65
  unregisterSlot,
@@ -102,9 +69,6 @@ import React__default,{useRef,useEffect,useCallback}from'react';import {sortBy}f
102
69
  getFills,
103
70
  hasFills,
104
71
  subscribe,
105
- registerRenderedFill,
106
- loadRenderedFill,
107
- loaderContext,
108
72
  };
109
73
  if (context) {
110
74
  returnValue.current = context;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":["../../../src/slot-fill/base/provider.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sources":["../../../src/slot-fill/base/provider.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
@@ -1,62 +1,85 @@
1
- import React__default,{useRef,useState,useEffect,useCallback}from'react';import {Consumer}from'./context.js';import {PluginRender}from'../../plugin/plugin-render.js';const SlotComponent = (props) => {
2
- const { registerSlot, unregisterSlot, getFills, registerRenderedFill, loadRenderedFill, loaderContext, serverMode, name, fillProps = {}, children } = props;
3
- const nodeRef = useRef(null);
4
- const isUnmountedRef = useRef(false);
5
- const [_, setState] = useState({});
6
- useEffect(() => {
1
+ import React__default,{Component,Children,cloneElement}from'react';import {Consumer}from'./context.js';import {isFunction}from'../utils/index.js';import {PluginRender}from'../../plugin/plugin-render.js';import {isEmptyElement}from'../utils/isEmptyElement.js';class SlotComponent extends Component {
2
+ node;
3
+ isUnmounted;
4
+ constructor(props) {
5
+ super(props);
6
+ this.isUnmounted = false;
7
+ this.bindNode = this.bindNode.bind(this);
8
+ }
9
+ componentDidMount() {
10
+ const { registerSlot, serverMode } = this.props;
7
11
  if (!serverMode) {
8
- registerSlot(name, nodeRef.current);
12
+ registerSlot(this.props.name, this);
9
13
  }
10
- return () => {
11
- isUnmountedRef.current = true;
12
- unregisterSlot(name, nodeRef.current);
13
- };
14
- }, [name, registerSlot, unregisterSlot, serverMode]);
15
- useCallback(() => {
16
- if (isUnmountedRef.current) {
14
+ }
15
+ componentWillUnmount() {
16
+ const { unregisterSlot } = this.props;
17
+ this.isUnmounted = true;
18
+ unregisterSlot(this.props.name, this);
19
+ }
20
+ componentDidUpdate(prevProps) {
21
+ this.props;
22
+ // Commented following as we need the Slot to render at multiple places
23
+ // if (prevProps.name !== name) {
24
+ // unregisterSlot(prevProps.name);
25
+ // registerSlot(name, this);
26
+ // }
27
+ }
28
+ bindNode(node) {
29
+ this.node = node;
30
+ }
31
+ forceUpdate() {
32
+ if (this.isUnmounted) {
17
33
  return;
18
34
  }
19
- if (!serverMode) {
20
- // Trigger re-render
21
- console.log(`The slot ${name} is being updated`);
22
- setState({});
35
+ if (!this.props.serverMode) {
36
+ super.forceUpdate();
37
+ }
38
+ }
39
+ render() {
40
+ const { children, name, fillProps = {}, getFills, serverMode } = this.props;
41
+ const fills = getFills(name).filter((element) => !isEmptyElement(element));
42
+ if (fills.length > 0) {
43
+ if (isFunction(children)) {
44
+ const childrenFills = fills.map((fill) => {
45
+ const fillChildren = isFunction(fill.children)
46
+ ? fill.children(fillProps)
47
+ : fill.children;
48
+ return Children.map(fillChildren, (child, childIndex) => {
49
+ if (!child || typeof child === 'string') {
50
+ return child;
51
+ }
52
+ const childKey = child.key || childIndex;
53
+ return cloneElement(child, { key: childKey });
54
+ });
55
+ });
56
+ return React__default.createElement(React__default.Fragment, null, children(childrenFills));
57
+ }
58
+ else {
59
+ return React__default.createElement(PluginRender, { ...fillProps, name: name, fills: fills });
60
+ }
61
+ }
62
+ /*
63
+ if (serverMode) {
64
+ const fills = (getFills(name, this) ?? [])
65
+ .map((fill: any, i) => {
66
+ // unregisterFill(name, fill);
67
+ if (typeof fill === 'function') {
68
+ const child = fill({...fillProps, key: i});
69
+ return <div data-slot-name={`slot-${name}`}>{child}</div>;
70
+ }
71
+ return null;
72
+ });
73
+ return fills;
23
74
  }
24
- }, [serverMode]);
25
- // const fills = (getFills(name) ?? [])
26
- // .map((fill: any, i) => {
27
- // if (serverMode) {
28
- // if (typeof fill === 'function') {
29
- // const child = fill({...fillProps, key: i});
30
- // return <div data-slot-name={`slot-${name}`}>{child}</div>;
31
- // }
32
- // return null;
33
- // } else {
34
- // const fillChildren: ReactElement = isFunction(fill.children) ? fill.children(fillProps) : fill.children;
35
- // return Children.map(fillChildren, (child, childIndex) => {
36
- // if (!child || typeof child === 'string') {
37
- // return child;
38
- // }
39
- // const childKey = child.key || childIndex;
40
- // return cloneElement(child, { key: childKey });
41
- // });
42
- // }
43
- // })
44
- // .filter(
45
- // // In some cases fills are rendered only when some conditions apply.
46
- // // This ensures that we only use non-empty fills when rendering, i.e.,
47
- // // it allows us to render wrappers only when the fills are actually present.
48
- // (element) => !isEmptyElement(element),
49
- // );
50
- const fills = getFills(name);
51
- if (fills.length > 0) {
52
- return (React__default.createElement(PluginRender, { ...fillProps, name: name, fills: fills, registerRenderedFill: registerRenderedFill, loadRenderedFill: loadRenderedFill, loaderContext: loaderContext }));
75
+ */
76
+ return null;
53
77
  }
54
- return null;
55
- };
78
+ }
56
79
  const Slot = (props) => {
57
- const serverMode = (typeof window === 'undefined');
58
- return (React__default.createElement(Consumer, null, ({ registerSlot, unregisterSlot, getFills, registerRenderedFill, loadRenderedFill, loaderContext }) => (React__default.createElement(SlotComponent, { ...props,
59
- // We need to add id to fillProps with slot name,
80
+ const serverMode = typeof window === 'undefined';
81
+ return (React__default.createElement(Consumer, null, ({ registerSlot, unregisterSlot, getFills }) => (React__default.createElement(SlotComponent, { ...props,
82
+ // We need to add id to fillProps with slot name,
60
83
  // so that we can use it when remove the component during hydration.
61
- getFills: getFills, registerSlot: registerSlot, unregisterSlot: unregisterSlot, serverMode: serverMode, registerRenderedFill: registerRenderedFill, loadRenderedFill: loadRenderedFill, loaderContext: loaderContext }))));
84
+ getFills: getFills, registerSlot: registerSlot, unregisterSlot: unregisterSlot, serverMode: serverMode }))));
62
85
  };export{Slot as default};//# sourceMappingURL=slot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slot.js","sources":["../../../src/slot-fill/base/slot.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"sKAUA,MAAM,aAAa,GAA6B,CAAC,KAAK,KAAI;IACtD,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;AAC5J,IAAA,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;AAC7C,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEnC,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,UAAU,EAAE;AACb,YAAA,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;SACvC;AACD,QAAA,OAAO,MAAK;AACR,YAAA,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,YAAA,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1C,SAAC,CAAC;KACL,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;AAErD,IAAoB,WAAW,CAAC,MAAK;AACjC,QAAA,IAAI,cAAc,CAAC,OAAO,EAAE;YACxB,OAAO;SACV;QACD,IAAI,CAAC,UAAU,EAAE;;AAEb,YAAA,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAA,iBAAA,CAAmB,CAAC,CAAC;YACjD,QAAQ,CAAC,EAAE,CAAC,CAAC;SAChB;AACL,KAAC,EAAE,CAAC,UAAU,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCjB,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7B,IAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QAClB,QACIA,cAAC,CAAA,aAAA,CAAA,YAAY,EACL,EAAA,GAAA,SAAS,EACb,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAwB,EAC/B,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAC9B,CAAA,EACJ;KACL;AAED,IAAA,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,KAAiB,KAAI;IAC/B,MAAM,UAAU,IAAI,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC;IACnD,QACIA,cAAC,CAAA,aAAA,CAAA,QAAQ,EACJ,IAAA,EAAA,CAAC,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAC/FA,cAAA,CAAA,aAAA,CAAC,aAAa,EAAA,EAAA,GACN,KAAK;;;AAGT,QAAA,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,aAAa,EAAA,CAC9B,CACL,CACM,EACb;AACN"}
1
+ {"version":3,"file":"slot.js","sources":["../../../src/slot-fill/base/slot.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ReactNode, Component } from 'react';
2
- import { IPlugin } from '@common-stack/client-react';
2
+ import { IPlugin } from '@common-stack/client-core';
3
3
  export type Name = string | Symbol;
4
4
  export interface IFillProps {
5
5
  name: Name;
@@ -23,9 +23,6 @@ export interface IProviderState {
23
23
  getFills: (a: Name, b?: any) => IFill[] | [];
24
24
  hasFills: (a: Name) => boolean;
25
25
  subscribe: (listener: any) => void;
26
- registerRenderedFill: (a: Name, b: number, c: any) => void;
27
- loadRenderedFill: (a: Name, b: number) => any;
28
- loaderContext: any;
29
26
  }
30
27
  export type IReactContext = Omit<Partial<IProviderState>, 'registerSlot'> & {
31
28
  slots?: any;
@@ -86,7 +83,8 @@ export interface ISlotProps {
86
83
  */
87
84
  serverMode?: boolean;
88
85
  }
89
- export interface IExtendedFill extends IPlugin {
86
+ export interface ILoadedPlugin extends IPlugin {
90
87
  index?: number;
91
- children?: ReactNode | any;
88
+ Component?: React.ComponentType<any>;
89
+ loaderData?: Record<string, any>;
92
90
  }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Whether the argument is a function.
3
+ *
4
+ * @param {*} maybeFunc The argument to check.
5
+ * @returns {boolean} True if the argument is a function, false otherwise.
6
+ */
7
+ function isFunction(maybeFunc) {
8
+ return typeof maybeFunc === 'function';
9
+ }export{isFunction};//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/slot-fill/utils/index.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;;AAKG;AACG,SAAU,UAAU,CAAC,SAAc,EAAA;AACrC,IAAA,OAAO,OAAO,SAAS,KAAK,UAAU,CAAC;AAC3C"}
@@ -4,4 +4,4 @@
4
4
  * @param element React Component to check.
5
5
  * @returns True when an element is considered empty.
6
6
  */
7
- export declare const isEmptyElement: (element: any) => boolean;
7
+ export declare const isEmptyElement: (element: any) => any;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Checks if the provided element to check.
3
+ *
4
+ * @param element React Component to check.
5
+ * @returns True when an element is considered empty.
6
+ */
7
+ const isEmptyElement = (element) => {
8
+ if (typeof element === 'number') {
9
+ return false;
10
+ }
11
+ if (typeof element?.valueOf() === 'string' || Array.isArray(element)) {
12
+ return !element.length;
13
+ }
14
+ if (typeof element === 'object' && element !== null) {
15
+ return Object.keys(element).length === 0 || Object.values(element).every((value) => isEmptyElement(value));
16
+ }
17
+ return !element;
18
+ };export{isEmptyElement};//# sourceMappingURL=isEmptyElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isEmptyElement.js","sources":["../../../src/slot-fill/utils/isEmptyElement.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;AAKG;AAEU,MAAA,cAAc,GAAG,CAAC,OAAO,KAAI;AACtC,IAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,KAAK,CAAC;KAChB;AAED,IAAA,IAAI,OAAO,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAClE,QAAA,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;KAC1B;IAED,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE;AACjD,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9G;IAED,OAAO,CAAC,OAAO,CAAC;AACpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@common-stack/components-pro",
3
- "version": "7.1.1-alpha.0",
3
+ "version": "7.1.1-alpha.3",
4
4
  "description": "browser plugin for git",
5
5
  "homepage": "https://github.com/cdmbase/fullstack-pro#readme",
6
6
  "bugs": {
@@ -24,13 +24,13 @@
24
24
  "build:lib:watch": "npm run build:lib -- --watch",
25
25
  "jest": "./node_modules/.bin/jest",
26
26
  "prepublish": "npm run build",
27
- "test": "jest",
27
+ "test": "vitest",
28
28
  "test:debug": "npm test -- --runInBand",
29
29
  "test:watch": "npm test -- --watch",
30
30
  "watch": "npm run build:lib:watch"
31
31
  },
32
32
  "dependencies": {
33
- "@common-stack/client-core": "7.0.4-alpha.17",
33
+ "@common-stack/client-core": "7.1.1-alpha.3",
34
34
  "@wordpress/element": "^5.30.0",
35
35
  "@wordpress/hooks": "^3.53.0",
36
36
  "@wordpress/is-shallow-equal": "^4.53.0",
@@ -50,8 +50,8 @@
50
50
  "publishConfig": {
51
51
  "access": "public"
52
52
  },
53
+ "gitHead": "957549af03185aa8c04c216f68db9ab6251f2d0d",
53
54
  "typescript": {
54
55
  "definition": "lib/index.d.ts"
55
- },
56
- "gitHead": "93027005d418b28138e303fe77d1857867564bd8"
56
+ }
57
57
  }
@@ -1,2 +0,0 @@
1
- export declare const renderedFillsPath = "./app/rendered-fills.json";
2
- export declare const resetRenderedFills: (path: string) => void;
@@ -1,4 +0,0 @@
1
- import fs from'fs';const renderedFillsPath = './app/rendered-fills.json';
2
- const resetRenderedFills = (path) => {
3
- fs.writeFileSync(path, JSON.stringify({}, null, 2));
4
- };export{renderedFillsPath,resetRenderedFills};//# sourceMappingURL=reset-rendered-fills.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reset-rendered-fills.js","sources":["../../src/plugin/reset-rendered-fills.ts"],"sourcesContent":[null],"names":[],"mappings":"mBACO,MAAM,iBAAiB,GAAG,4BAA4B;AAEhD,MAAA,kBAAkB,GAAG,CAAC,IAAY,KAAI;AAC/C,IAAA,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACxD"}