@sitecore-content-sdk/react 0.1.0-beta.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 (99) hide show
  1. package/LICENSE.txt +202 -0
  2. package/README.md +10 -0
  3. package/dist/cjs/ComponentBuilder.js +25 -0
  4. package/dist/cjs/components/BYOCComponent.js +132 -0
  5. package/dist/cjs/components/BYOCWrapper.js +21 -0
  6. package/dist/cjs/components/ComponentLibraryLayout.js +80 -0
  7. package/dist/cjs/components/Date.js +57 -0
  8. package/dist/cjs/components/DefaultEmptyFieldEditingComponents.js +22 -0
  9. package/dist/cjs/components/EditingScripts.js +27 -0
  10. package/dist/cjs/components/ErrorBoundary.js +95 -0
  11. package/dist/cjs/components/FEaaSComponent.js +161 -0
  12. package/dist/cjs/components/FEaaSWrapper.js +18 -0
  13. package/dist/cjs/components/FieldMetadata.js +34 -0
  14. package/dist/cjs/components/File.js +51 -0
  15. package/dist/cjs/components/HiddenRendering.js +18 -0
  16. package/dist/cjs/components/Image.js +83 -0
  17. package/dist/cjs/components/Link.js +106 -0
  18. package/dist/cjs/components/MissingComponent.js +34 -0
  19. package/dist/cjs/components/Placeholder.js +72 -0
  20. package/dist/cjs/components/PlaceholderCommon.js +191 -0
  21. package/dist/cjs/components/PlaceholderMetadata.js +63 -0
  22. package/dist/cjs/components/RichText.js +82 -0
  23. package/dist/cjs/components/SitecoreContext.js +67 -0
  24. package/dist/cjs/components/Text.js +78 -0
  25. package/dist/cjs/components/sharedTypes.js +2 -0
  26. package/dist/cjs/enhancers/withComponentFactory.js +26 -0
  27. package/dist/cjs/enhancers/withDatasourceCheck.js +28 -0
  28. package/dist/cjs/enhancers/withEditorChromes.js +24 -0
  29. package/dist/cjs/enhancers/withEmptyFieldEditingComponent.js +65 -0
  30. package/dist/cjs/enhancers/withFieldMetadata.js +69 -0
  31. package/dist/cjs/enhancers/withPlaceholder.js +63 -0
  32. package/dist/cjs/enhancers/withSitecoreContext.js +48 -0
  33. package/dist/cjs/index.js +78 -0
  34. package/dist/cjs/utils.js +38 -0
  35. package/dist/esm/ComponentBuilder.js +21 -0
  36. package/dist/esm/components/BYOCComponent.js +91 -0
  37. package/dist/esm/components/BYOCWrapper.js +14 -0
  38. package/dist/esm/components/ComponentLibraryLayout.js +43 -0
  39. package/dist/esm/components/Date.js +51 -0
  40. package/dist/esm/components/DefaultEmptyFieldEditingComponents.js +14 -0
  41. package/dist/esm/components/EditingScripts.js +20 -0
  42. package/dist/esm/components/ErrorBoundary.js +60 -0
  43. package/dist/esm/components/FEaaSComponent.js +119 -0
  44. package/dist/esm/components/FEaaSWrapper.js +11 -0
  45. package/dist/esm/components/FieldMetadata.js +27 -0
  46. package/dist/esm/components/File.js +44 -0
  47. package/dist/esm/components/HiddenRendering.js +11 -0
  48. package/dist/esm/components/Image.js +77 -0
  49. package/dist/esm/components/Link.js +67 -0
  50. package/dist/esm/components/MissingComponent.js +27 -0
  51. package/dist/esm/components/Placeholder.js +66 -0
  52. package/dist/esm/components/PlaceholderCommon.js +184 -0
  53. package/dist/esm/components/PlaceholderMetadata.js +56 -0
  54. package/dist/esm/components/RichText.js +43 -0
  55. package/dist/esm/components/SitecoreContext.js +60 -0
  56. package/dist/esm/components/Text.js +72 -0
  57. package/dist/esm/components/sharedTypes.js +1 -0
  58. package/dist/esm/enhancers/withComponentFactory.js +20 -0
  59. package/dist/esm/enhancers/withDatasourceCheck.js +20 -0
  60. package/dist/esm/enhancers/withEditorChromes.js +17 -0
  61. package/dist/esm/enhancers/withEmptyFieldEditingComponent.js +29 -0
  62. package/dist/esm/enhancers/withFieldMetadata.js +33 -0
  63. package/dist/esm/enhancers/withPlaceholder.js +57 -0
  64. package/dist/esm/enhancers/withSitecoreContext.js +41 -0
  65. package/dist/esm/index.js +28 -0
  66. package/dist/esm/utils.js +33 -0
  67. package/package.json +78 -0
  68. package/types/ComponentBuilder.d.ts +27 -0
  69. package/types/components/BYOCComponent.d.ts +93 -0
  70. package/types/components/BYOCWrapper.d.ts +6 -0
  71. package/types/components/ComponentLibraryLayout.d.ts +2 -0
  72. package/types/components/Date.d.ts +16 -0
  73. package/types/components/DefaultEmptyFieldEditingComponents.d.ts +3 -0
  74. package/types/components/EditingScripts.d.ts +4 -0
  75. package/types/components/ErrorBoundary.d.ts +17 -0
  76. package/types/components/FEaaSComponent.d.ts +71 -0
  77. package/types/components/FEaaSWrapper.d.ts +3 -0
  78. package/types/components/FieldMetadata.d.ts +22 -0
  79. package/types/components/File.d.ts +18 -0
  80. package/types/components/HiddenRendering.d.ts +2 -0
  81. package/types/components/Image.d.ts +48 -0
  82. package/types/components/Link.d.ts +38 -0
  83. package/types/components/MissingComponent.d.ts +8 -0
  84. package/types/components/Placeholder.d.ts +20 -0
  85. package/types/components/PlaceholderCommon.d.ts +98 -0
  86. package/types/components/PlaceholderMetadata.d.ts +28 -0
  87. package/types/components/RichText.d.ts +29 -0
  88. package/types/components/SitecoreContext.d.ts +42 -0
  89. package/types/components/Text.d.ts +20 -0
  90. package/types/components/sharedTypes.d.ts +28 -0
  91. package/types/enhancers/withComponentFactory.d.ts +12 -0
  92. package/types/enhancers/withDatasourceCheck.d.ts +21 -0
  93. package/types/enhancers/withEditorChromes.d.ts +2 -0
  94. package/types/enhancers/withEmptyFieldEditingComponent.d.ts +27 -0
  95. package/types/enhancers/withFieldMetadata.d.ts +16 -0
  96. package/types/enhancers/withPlaceholder.d.ts +34 -0
  97. package/types/enhancers/withSitecoreContext.d.ts +40 -0
  98. package/types/index.d.ts +30 -0
  99. package/types/utils.d.ts +17 -0
@@ -0,0 +1,28 @@
1
+ import { ReactNode } from 'react';
2
+ import { ComponentRendering } from '@sitecore-content-sdk/core/layout';
3
+ /**
4
+ * Props containing the component data to render.
5
+ */
6
+ export interface PlaceholderMetadataProps {
7
+ rendering: ComponentRendering;
8
+ placeholderName?: string;
9
+ children?: ReactNode;
10
+ }
11
+ export type CodeBlockAttributes = {
12
+ type: string;
13
+ chrometype: string;
14
+ className: string;
15
+ kind: string;
16
+ id?: string;
17
+ };
18
+ /**
19
+ * A React component to generate metadata blocks for a placeholder or rendering.
20
+ * It utilizes dynamic attributes based on whether the component acts as a placeholder
21
+ * or as a rendering to properly render the surrounding code blocks.
22
+ * @param {object} props The properties passed to the component.
23
+ * @param {ComponentRendering} props.rendering The rendering data.
24
+ * @param {string} [props.placeholderName] The name of the placeholder.
25
+ * @param {JSX.Element} props.children The child components or elements to be wrapped by the metadata code blocks.
26
+ * @returns {JSX.Element} A React fragment containing open and close code blocks surrounding the children elements.
27
+ */
28
+ export declare const PlaceholderMetadata: ({ rendering, placeholderName, children, }: PlaceholderMetadataProps) => JSX.Element;
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { EditableFieldProps } from './sharedTypes';
4
+ import { FieldMetadata } from '@sitecore-content-sdk/core/layout';
5
+ export interface RichTextField extends FieldMetadata {
6
+ value?: string;
7
+ }
8
+ export interface RichTextProps extends EditableFieldProps {
9
+ [htmlAttributes: string]: unknown;
10
+ /** The rich text field data. */
11
+ field?: RichTextField;
12
+ /**
13
+ * The HTML element that will wrap the contents of the field.
14
+ * @default <div />
15
+ */
16
+ tag?: string;
17
+ }
18
+ export declare const RichText: React.FC<RichTextProps>;
19
+ export declare const RichTextPropTypes: {
20
+ field: PropTypes.Requireable<PropTypes.InferProps<{
21
+ value: PropTypes.Requireable<string>;
22
+ metadata: PropTypes.Requireable<{
23
+ [x: string]: any;
24
+ }>;
25
+ }>>;
26
+ tag: PropTypes.Requireable<string>;
27
+ editable: PropTypes.Requireable<boolean>;
28
+ emptyFieldEditingComponent: PropTypes.Requireable<NonNullable<React.ComponentClass<unknown, any> | React.FC<unknown>>>;
29
+ };
@@ -0,0 +1,42 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { ComponentFactory } from './sharedTypes';
4
+ import { LayoutServiceContext, LayoutServiceData, RouteData } from '../index';
5
+ export interface SitecoreContextProps {
6
+ componentFactory: ComponentFactory;
7
+ layoutData?: LayoutServiceData;
8
+ children: React.ReactNode;
9
+ }
10
+ export interface SitecoreContextState {
11
+ setContext: (value: SitecoreContextValue | LayoutServiceData) => void;
12
+ context: SitecoreContextValue;
13
+ }
14
+ export declare const SitecoreContextReactContext: React.Context<SitecoreContextState>;
15
+ export declare const ComponentFactoryReactContext: React.Context<ComponentFactory>;
16
+ export type SitecoreContextValue = LayoutServiceContext & {
17
+ itemId?: string;
18
+ route?: RouteData;
19
+ };
20
+ export declare class SitecoreContext extends React.Component<SitecoreContextProps, SitecoreContextState> {
21
+ static propTypes: {
22
+ children: PropTypes.Validator<any>;
23
+ componentFactory: PropTypes.Requireable<(...args: any[]) => any>;
24
+ layoutData: PropTypes.Requireable<PropTypes.InferProps<{
25
+ sitecore: PropTypes.Requireable<PropTypes.InferProps<{
26
+ context: PropTypes.Requireable<any>;
27
+ route: PropTypes.Requireable<any>;
28
+ }>>;
29
+ }>>;
30
+ };
31
+ static displayName: string;
32
+ constructor(props: SitecoreContextProps);
33
+ constructContext(layoutData?: LayoutServiceData): SitecoreContextValue;
34
+ componentDidUpdate(prevProps: SitecoreContextProps): void;
35
+ /**
36
+ * Update context state. Value can be @type {LayoutServiceData} which will be automatically transformed
37
+ * or you can provide exact @type {SitecoreContextValue}
38
+ * @param {SitecoreContextValue | LayoutServiceData} value New context value
39
+ */
40
+ setContext: (value: SitecoreContextValue | LayoutServiceData) => void;
41
+ render(): React.JSX.Element;
42
+ }
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { EditableFieldProps } from './sharedTypes';
3
+ import { FieldMetadata } from '@sitecore-content-sdk/core/layout';
4
+ export interface TextField extends FieldMetadata {
5
+ value?: string | number;
6
+ }
7
+ export interface TextProps extends EditableFieldProps {
8
+ [htmlAttributes: string]: unknown;
9
+ /** The text field data. */
10
+ field?: TextField;
11
+ /**
12
+ * The HTML element that will wrap the contents of the field.
13
+ */
14
+ tag?: string;
15
+ /**
16
+ * If false, HTML-encoding of the field value is disabled and the value is rendered as-is.
17
+ */
18
+ encode?: boolean;
19
+ }
20
+ export declare const Text: React.FC<TextProps>;
@@ -0,0 +1,28 @@
1
+ import { ComponentType } from 'react';
2
+ /**
3
+ * @param {string} componentName component to be imported from the component factory
4
+ * @param {string?} exportName component to be imported in case you export multiple components from the same file
5
+ */
6
+ export type ComponentFactory = (componentName: string, exportName?: string) => JssComponentType | null;
7
+ /**
8
+ * Component type returned from component builder / factory
9
+ */
10
+ export type JssComponentType = ComponentType & {
11
+ render?: {
12
+ [key: string]: unknown;
13
+ };
14
+ };
15
+ /**
16
+ * Shared editing field props
17
+ */
18
+ export interface EditableFieldProps {
19
+ /**
20
+ * Can be used to explicitly disable inline editing.
21
+ * @default true
22
+ */
23
+ editable?: boolean;
24
+ /**
25
+ * Custom element to render in Pages in edit mode if field value is empty
26
+ */
27
+ emptyFieldEditingComponent?: React.ComponentClass<unknown> | React.FC<unknown>;
28
+ }
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { ComponentFactory } from '../components/sharedTypes';
3
+ export interface ComponentFactoryProps {
4
+ componentFactory?: ComponentFactory;
5
+ }
6
+ /**
7
+ * @param {React.ComponentClass<T> | React.FC<T>} Component
8
+ */
9
+ export declare function withComponentFactory<T extends ComponentFactoryProps>(Component: React.ComponentClass<T> | React.FC<T>): {
10
+ (props: T): JSX.Element;
11
+ displayName: string;
12
+ };
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { ComponentRendering } from '@sitecore-content-sdk/core/layout';
3
+ export declare const DefaultEditingError: () => JSX.Element;
4
+ export interface WithDatasourceCheckProps {
5
+ rendering: ComponentRendering;
6
+ }
7
+ export interface WithDatasourceCheckOptions {
8
+ /**
9
+ * A component that is rendered when a datasource is missing during editing.
10
+ * If unspecified, a default component with message is displayed.
11
+ */
12
+ editingErrorComponent?: React.ComponentClass<unknown> | React.FC<unknown>;
13
+ }
14
+ /**
15
+ * Checks whether a Sitecore datasource is present and renders appropriately depending on page mode (normal vs editing).
16
+ * @param {WithDatasourceCheckOptions} [options]
17
+ * @returns
18
+ * The wrapped component, if a datasource is present.
19
+ * A null component (in normal mode) or an error component (in editing mode), if a datasource is not present.
20
+ */
21
+ export declare function withDatasourceCheck(options?: WithDatasourceCheckOptions): <ComponentProps extends WithDatasourceCheckProps>(Component: React.ComponentType<ComponentProps>) => (props: ComponentProps) => React.JSX.Element;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const withEditorChromes: (WrappedComponent: React.ComponentClass<unknown> | React.FC<unknown>) => React.ComponentClass;
@@ -0,0 +1,27 @@
1
+ import React, { ComponentType } from 'react';
2
+ import { GenericFieldValue, Field, FieldMetadata } from '@sitecore-content-sdk/core/layout';
3
+ /**
4
+ * The HOC options
5
+ */
6
+ export interface WithEmptyFieldEditingComponentOptions {
7
+ /**
8
+ * the default empty field component
9
+ */
10
+ defaultEmptyFieldEditingComponent: React.FC;
11
+ /**
12
+ * 'true' if forward reference is needed
13
+ */
14
+ isForwardRef?: boolean;
15
+ }
16
+ interface WithEmptyFieldEditingComponentProps {
17
+ field?: (Partial<Field> | GenericFieldValue) & FieldMetadata;
18
+ editable?: boolean;
19
+ emptyFieldEditingComponent?: React.ComponentClass | React.FC;
20
+ }
21
+ /**
22
+ * Returns the passed field component or default component in case field value is empty and edit mode is 'metadata'
23
+ * @param {ComponentType<FieldComponentProps>} FieldComponent the field component
24
+ * @param {WithEmptyFieldEditingComponentProps} options the options of the HOC;
25
+ */
26
+ export declare function withEmptyFieldEditingComponent<FieldComponentProps extends WithEmptyFieldEditingComponentProps, RefElementType = HTMLElement>(FieldComponent: ComponentType<FieldComponentProps>, options: WithEmptyFieldEditingComponentOptions): React.ForwardRefExoticComponent<React.PropsWithoutRef<FieldComponentProps> & React.RefAttributes<RefElementType>> | ((props: FieldComponentProps) => React.JSX.Element);
27
+ export {};
@@ -0,0 +1,16 @@
1
+ import React, { ComponentType } from 'react';
2
+ interface WithMetadataProps {
3
+ field?: {
4
+ metadata?: {
5
+ [key: string]: unknown;
6
+ };
7
+ };
8
+ editable?: boolean;
9
+ }
10
+ /**
11
+ * Wraps the field component with metadata markup intended to be used for chromes hydration in Pages
12
+ * @param {ComponentType<FieldComponentProps>} FieldComponent the field component
13
+ * @param {boolean} isForwardRef set to 'true' if forward reference is needed
14
+ */
15
+ export declare function withFieldMetadata<FieldComponentProps extends WithMetadataProps, RefElementType = HTMLElement>(FieldComponent: ComponentType<FieldComponentProps>, isForwardRef?: boolean): React.ForwardRefExoticComponent<React.PropsWithoutRef<FieldComponentProps> & React.RefAttributes<RefElementType>> | ((props: FieldComponentProps) => React.JSX.Element);
16
+ export {};
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import { ComponentRendering, RouteData } from '@sitecore-content-sdk/core/layout';
3
+ import { PlaceholderProps } from '../components/PlaceholderCommon';
4
+ export interface WithPlaceholderOptions {
5
+ /**
6
+ * Function to map incoming placeholder props into rendering data to use for the placeholder data.
7
+ * Normally in a JSS component, props.rendering is passed the component data, and that is the default.
8
+ * However, if your component data is in a different prop, like say 'route' in a sample app,
9
+ * this lets you map that.
10
+ */
11
+ resolvePlaceholderDataFromProps?: (props: unknown) => ComponentRendering | RouteData;
12
+ /**
13
+ * Function to alter the placeholder props from within the HOC. Enables the props to be
14
+ * transformed before being used by the placeholder/HOC, for example to customize the
15
+ * error or missing component display
16
+ */
17
+ propsTransformer?: (props: PlaceholderProps) => PlaceholderProps;
18
+ }
19
+ export interface PlaceholderToPropMapping {
20
+ /**
21
+ * The name of the placeholder this component will expose
22
+ */
23
+ placeholder: string;
24
+ /**
25
+ * The name of the prop on your wrapped component that you would like the placeholder data injected on
26
+ */
27
+ prop: string;
28
+ }
29
+ export type WithPlaceholderSpec = (string | PlaceholderToPropMapping) | (string | PlaceholderToPropMapping)[];
30
+ /**
31
+ * @param {WithPlaceholderSpec} placeholders
32
+ * @param {WithPlaceholderOptions} [options]
33
+ */
34
+ export declare function withPlaceholder(placeholders: WithPlaceholderSpec, options?: WithPlaceholderOptions): (WrappedComponent: React.ComponentClass<PlaceholderProps> | React.FunctionComponent<PlaceholderProps>) => (props: import("@sitecore-content-sdk/core/utils").EnhancedOmit<PlaceholderProps, keyof import("./withSitecoreContext").WithSitecoreContextProps>) => React.JSX.Element;
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import { EnhancedOmit } from '@sitecore-content-sdk/core/utils';
3
+ import { SitecoreContextValue } from '../components/SitecoreContext';
4
+ export interface WithSitecoreContextOptions {
5
+ updatable?: boolean;
6
+ }
7
+ export interface WithSitecoreContextProps {
8
+ sitecoreContext: SitecoreContextValue;
9
+ updateSitecoreContext?: ((value: SitecoreContextValue) => void) | false;
10
+ }
11
+ export type WithSitecoreContextHocProps<ComponentProps> = EnhancedOmit<ComponentProps, keyof WithSitecoreContextProps>;
12
+ /**
13
+ * @param {WithSitecoreContextOptions} [options]
14
+ */
15
+ export declare function withSitecoreContext(options?: WithSitecoreContextOptions): <ComponentProps extends WithSitecoreContextProps>(Component: React.ComponentType<ComponentProps>) => (props: WithSitecoreContextHocProps<ComponentProps>) => React.JSX.Element;
16
+ /**
17
+ * This hook grants acсess to the current Sitecore page context
18
+ * by default JSS includes the following properties in this context:
19
+ * - pageEditing - Provided by Layout Service, a boolean indicating whether the route is being accessed via the Sitecore Editor.
20
+ * - pageState - Like pageEditing, but a string: normal, preview or edit.
21
+ * - site - Provided by Layout Service, an object containing the name of the current Sitecore site context.
22
+ * @see https://jss.sitecore.com/docs/techniques/extending-layout-service/layoutservice-extending-context
23
+ * @param {WithSitecoreContextOptions} [options] hook options
24
+ * @example
25
+ * const EditMode = () => {
26
+ * const { sitecoreContext } = useSitecoreContext();
27
+ * return <span>Edit Mode is {sitecoreContext.pageEditing ? 'active' : 'inactive'}</span>
28
+ * }
29
+ * @example
30
+ * const EditMode = () => {
31
+ * const { sitecoreContext, updateSitecoreContext } = useSitecoreContext({ updatable: true });
32
+ * const onClick = () => updateSitecoreContext({ pageEditing: true });
33
+ * return <span onClick={onClick}>Edit Mode is {sitecoreContext.pageEditing ? 'active' : 'inactive'}</span>
34
+ * }
35
+ * @returns {object} { sitecoreContext, updateSitecoreContext }
36
+ */
37
+ export declare function useSitecoreContext(options?: WithSitecoreContextOptions): {
38
+ sitecoreContext: SitecoreContextValue;
39
+ updateSitecoreContext: (value: SitecoreContextValue | import("@sitecore-content-sdk/core/layout").LayoutServiceData) => void;
40
+ };
@@ -0,0 +1,30 @@
1
+ export { constants, enableDebug, ClientError, CacheClient, CacheOptions, MemoryCacheClient, NativeDataFetcher, NativeDataFetcherResponse, NativeDataFetcherConfig, } from '@sitecore-content-sdk/core';
2
+ export { EnhancedOmit } from '@sitecore-content-sdk/core/utils';
3
+ export { isEditorActive, resetEditorChromes } from '@sitecore-content-sdk/core/editing';
4
+ export { getContentStylesheetLink, getComponentLibraryStylesheetLinks, LayoutService, LayoutServiceData, LayoutServicePageState, LayoutServiceContext, LayoutServiceContextData, GraphQLLayoutService, RouteData, Field, Item, getChildPlaceholder, getFieldValue, ComponentRendering, ComponentFields, ComponentParams, EditMode, } from '@sitecore-content-sdk/core/layout';
5
+ export { DictionaryPhrases, DictionaryService, GraphQLDictionaryService, } from '@sitecore-content-sdk/core/i18n';
6
+ export { GraphQLClientError, RetryStrategy, DefaultRetryStrategy, GraphQLRequestClientFactoryConfig, GraphQLRequestClient, } from '@sitecore-content-sdk/core/graphql';
7
+ export { mediaApi } from '@sitecore-content-sdk/core/media';
8
+ export { ComponentFactory, JssComponentType } from './components/sharedTypes';
9
+ export { Placeholder, PlaceholderComponentProps } from './components/Placeholder';
10
+ export { Image, ImageProps, ImageField, ImageFieldValue, ImageSizeParameters, } from './components/Image';
11
+ export { RichText, RichTextProps, RichTextPropTypes, RichTextField } from './components/RichText';
12
+ export { Text, TextField } from './components/Text';
13
+ export { DateField, DateFieldProps } from './components/Date';
14
+ export { FEaaSComponent, FEaaSComponentProps, FEaaSComponentParams, fetchFEaaSComponentServerProps, } from './components/FEaaSComponent';
15
+ export { FEaaSWrapper } from './components/FEaaSWrapper';
16
+ export { ComponentLibraryLayout } from './components/ComponentLibraryLayout';
17
+ export { BYOCComponent, BYOCComponentParams, BYOCComponentProps, fetchBYOCComponentServerProps, } from './components/BYOCComponent';
18
+ export { BYOCWrapper } from './components/BYOCWrapper';
19
+ export { Link, LinkField, LinkFieldValue, LinkProps, LinkPropTypes } from './components/Link';
20
+ export { File, FileField } from './components/File';
21
+ export { SitecoreContext, SitecoreContextState, SitecoreContextValue, SitecoreContextReactContext, } from './components/SitecoreContext';
22
+ export { withSitecoreContext, useSitecoreContext, WithSitecoreContextOptions, WithSitecoreContextProps, WithSitecoreContextHocProps, } from './enhancers/withSitecoreContext';
23
+ export { withEditorChromes } from './enhancers/withEditorChromes';
24
+ export { withPlaceholder } from './enhancers/withPlaceholder';
25
+ export { withDatasourceCheck } from './enhancers/withDatasourceCheck';
26
+ export { ComponentBuilder, ComponentBuilderConfig } from './ComponentBuilder';
27
+ export { withFieldMetadata } from './enhancers/withFieldMetadata';
28
+ export { withEmptyFieldEditingComponent } from './enhancers/withEmptyFieldEditingComponent';
29
+ export { EditingScripts } from './components/EditingScripts';
30
+ export { DefaultEmptyFieldEditingComponentText, DefaultEmptyFieldEditingComponentImage, } from './components/DefaultEmptyFieldEditingComponents';
@@ -0,0 +1,17 @@
1
+ import { ComponentFields } from '@sitecore-content-sdk/core/layout';
2
+ /**
3
+ * "class" property will be transformed into or appended to "className" instead.
4
+ * @param {string} otherAttrs all other props included on the image component
5
+ * @returns {void}
6
+ */
7
+ export declare const addClassName: (otherAttrs: {
8
+ [key: string]: unknown;
9
+ }) => void;
10
+ /**
11
+ * Used in FEAAS and BYOC implementations to convert datasource item field values into component props
12
+ * @param {ComponentFields} fields field collection from Sitecore
13
+ * @returns JSON object that can be used as props
14
+ */
15
+ export declare const getDataFromFields: (fields: ComponentFields) => {
16
+ [key: string]: unknown;
17
+ };