@sitecore-content-sdk/react 2.0.0-canary.1 → 2.0.0-canary.12

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 (113) hide show
  1. package/dist/cjs/components/Date.js +13 -11
  2. package/dist/cjs/components/DefaultEmptyFieldEditingComponents.js +2 -1
  3. package/dist/cjs/components/DesignLibrary/DesignLibrary.js +5 -9
  4. package/dist/cjs/components/DesignLibrary/DesignLibraryClientEvents.js +14 -6
  5. package/dist/cjs/components/DesignLibrary/DesignLibraryServer.js +11 -5
  6. package/dist/cjs/components/EditingScripts.js +2 -2
  7. package/dist/cjs/components/ErrorBoundary.js +10 -6
  8. package/dist/cjs/components/File.js +3 -1
  9. package/dist/cjs/components/Form.js +16 -7
  10. package/dist/cjs/components/Image.js +12 -9
  11. package/dist/cjs/components/Link.js +19 -46
  12. package/dist/cjs/components/Placeholder/AppPlaceholder.js +56 -58
  13. package/dist/cjs/components/Placeholder/ClientComponentWrapper.js +5 -9
  14. package/dist/cjs/components/Placeholder/Placeholder.js +21 -93
  15. package/dist/cjs/components/Placeholder/index.js +1 -2
  16. package/dist/cjs/components/Placeholder/placeholder-utils.js +7 -35
  17. package/dist/cjs/components/RichText.js +18 -49
  18. package/dist/cjs/components/SitecoreProvider.js +81 -33
  19. package/dist/cjs/components/Text.js +12 -8
  20. package/dist/cjs/enhancers/withAppPlaceholder.js +6 -0
  21. package/dist/cjs/enhancers/withDatasourceCheck.js +4 -3
  22. package/dist/cjs/enhancers/withEditorChromes.js +50 -15
  23. package/dist/cjs/enhancers/withEmptyFieldEditingComponent.js +8 -38
  24. package/dist/cjs/enhancers/withFieldMetadata.js +9 -39
  25. package/dist/cjs/enhancers/withPlaceholder.js +16 -52
  26. package/dist/cjs/enhancers/withSitecore.js +5 -29
  27. package/dist/cjs/index.js +9 -7
  28. package/dist/cjs/search/utils.js +2 -2
  29. package/dist/esm/components/Date.js +13 -11
  30. package/dist/esm/components/DefaultEmptyFieldEditingComponents.js +2 -1
  31. package/dist/esm/components/DesignLibrary/DesignLibrary.js +5 -9
  32. package/dist/esm/components/DesignLibrary/DesignLibraryClientEvents.js +13 -5
  33. package/dist/esm/components/DesignLibrary/DesignLibraryServer.js +11 -5
  34. package/dist/esm/components/EditingScripts.js +2 -2
  35. package/dist/esm/components/ErrorBoundary.js +10 -6
  36. package/dist/esm/components/File.js +3 -1
  37. package/dist/esm/components/Form.js +15 -6
  38. package/dist/esm/components/Image.js +12 -9
  39. package/dist/esm/components/Link.js +16 -13
  40. package/dist/esm/components/Placeholder/AppPlaceholder.js +57 -59
  41. package/dist/esm/components/Placeholder/ClientComponentWrapper.js +4 -8
  42. package/dist/esm/components/Placeholder/Placeholder.js +20 -89
  43. package/dist/esm/components/Placeholder/index.js +1 -1
  44. package/dist/esm/components/Placeholder/placeholder-utils.js +5 -32
  45. package/dist/esm/components/RichText.js +15 -16
  46. package/dist/esm/components/SitecoreProvider.js +46 -32
  47. package/dist/esm/components/Text.js +12 -8
  48. package/dist/esm/enhancers/withAppPlaceholder.js +6 -0
  49. package/dist/esm/enhancers/withDatasourceCheck.js +3 -2
  50. package/dist/esm/enhancers/withEditorChromes.js +17 -12
  51. package/dist/esm/enhancers/withEmptyFieldEditingComponent.js +5 -5
  52. package/dist/esm/enhancers/withFieldMetadata.js +6 -6
  53. package/dist/esm/enhancers/withPlaceholder.js +15 -52
  54. package/dist/esm/enhancers/withSitecore.js +6 -29
  55. package/dist/esm/index.js +4 -3
  56. package/dist/esm/search/utils.js +1 -1
  57. package/package.json +7 -6
  58. package/types/components/Date.d.ts.map +1 -1
  59. package/types/components/DefaultEmptyFieldEditingComponents.d.ts.map +1 -1
  60. package/types/components/DesignLibrary/DesignLibrary.d.ts +0 -2
  61. package/types/components/DesignLibrary/DesignLibrary.d.ts.map +1 -1
  62. package/types/components/DesignLibrary/DesignLibraryClientEvents.d.ts.map +1 -1
  63. package/types/components/DesignLibrary/DesignLibraryServer.d.ts.map +1 -1
  64. package/types/components/DesignLibrary/models.d.ts +9 -3
  65. package/types/components/DesignLibrary/models.d.ts.map +1 -1
  66. package/types/components/EditingScripts.d.ts +2 -2
  67. package/types/components/EditingScripts.d.ts.map +1 -1
  68. package/types/components/ErrorBoundary.d.ts +2 -2
  69. package/types/components/ErrorBoundary.d.ts.map +1 -1
  70. package/types/components/File.d.ts.map +1 -1
  71. package/types/components/Form.d.ts.map +1 -1
  72. package/types/components/Image.d.ts.map +1 -1
  73. package/types/components/Link.d.ts.map +1 -1
  74. package/types/components/Placeholder/AppPlaceholder.d.ts +1 -1
  75. package/types/components/Placeholder/AppPlaceholder.d.ts.map +1 -1
  76. package/types/components/Placeholder/ClientComponentWrapper.d.ts +2 -2
  77. package/types/components/Placeholder/ClientComponentWrapper.d.ts.map +1 -1
  78. package/types/components/Placeholder/Placeholder.d.ts +4 -19
  79. package/types/components/Placeholder/Placeholder.d.ts.map +1 -1
  80. package/types/components/Placeholder/index.d.ts +1 -1
  81. package/types/components/Placeholder/index.d.ts.map +1 -1
  82. package/types/components/Placeholder/models.d.ts +35 -58
  83. package/types/components/Placeholder/models.d.ts.map +1 -1
  84. package/types/components/Placeholder/placeholder-utils.d.ts +5 -13
  85. package/types/components/Placeholder/placeholder-utils.d.ts.map +1 -1
  86. package/types/components/RichText.d.ts +2 -0
  87. package/types/components/RichText.d.ts.map +1 -1
  88. package/types/components/SitecoreProvider.d.ts +43 -13
  89. package/types/components/SitecoreProvider.d.ts.map +1 -1
  90. package/types/components/Text.d.ts.map +1 -1
  91. package/types/enhancers/withAppPlaceholder.d.ts +6 -0
  92. package/types/enhancers/withAppPlaceholder.d.ts.map +1 -1
  93. package/types/enhancers/withDatasourceCheck.d.ts.map +1 -1
  94. package/types/enhancers/withEditorChromes.d.ts +4 -1
  95. package/types/enhancers/withEditorChromes.d.ts.map +1 -1
  96. package/types/enhancers/withEmptyFieldEditingComponent.d.ts +5 -3
  97. package/types/enhancers/withEmptyFieldEditingComponent.d.ts.map +1 -1
  98. package/types/enhancers/withFieldMetadata.d.ts +4 -2
  99. package/types/enhancers/withFieldMetadata.d.ts.map +1 -1
  100. package/types/enhancers/withPlaceholder.d.ts +14 -32
  101. package/types/enhancers/withPlaceholder.d.ts.map +1 -1
  102. package/types/enhancers/withSitecore.d.ts +8 -50
  103. package/types/enhancers/withSitecore.d.ts.map +1 -1
  104. package/types/index.d.ts +4 -3
  105. package/types/index.d.ts.map +1 -1
  106. package/dist/cjs/enhancers/withComponentMap.js +0 -24
  107. package/dist/cjs/enhancers/withLoadImportMap.js +0 -62
  108. package/dist/esm/enhancers/withComponentMap.js +0 -18
  109. package/dist/esm/enhancers/withLoadImportMap.js +0 -25
  110. package/types/enhancers/withComponentMap.d.ts +0 -13
  111. package/types/enhancers/withComponentMap.d.ts.map +0 -1
  112. package/types/enhancers/withLoadImportMap.d.ts +0 -28
  113. package/types/enhancers/withLoadImportMap.d.ts.map +0 -1
@@ -1,45 +1,15 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
35
5
  Object.defineProperty(exports, "__esModule", { value: true });
36
6
  exports.withEmptyFieldEditingComponent = withEmptyFieldEditingComponent;
37
- const react_1 = __importStar(require("react"));
7
+ const react_1 = __importDefault(require("react"));
38
8
  const layout_1 = require("@sitecore-content-sdk/content/layout");
39
9
  /**
40
10
  * Returns the passed field component or default component in case field value is empty and edit mode is 'metadata'
41
11
  * @param {ComponentType<FieldComponentProps>} FieldComponent the field component
42
- * @param {WithEmptyFieldEditingComponentProps} options the options of the HOC;
12
+ * @param {WithEmptyFieldEditingComponentOptions} options the options of the HOC;
43
13
  * @public
44
14
  */
45
15
  function withEmptyFieldEditingComponent(FieldComponent, options) {
@@ -59,10 +29,10 @@ function withEmptyFieldEditingComponent(FieldComponent, options) {
59
29
  return null;
60
30
  };
61
31
  if (options.isForwardRef) {
62
- return (0, react_1.forwardRef)((props, ref) => {
32
+ return (props) => {
63
33
  const emptyFieldEditingComponent = getEmptyFieldEditingComponent(props);
64
- return (emptyFieldEditingComponent || (react_1.default.createElement(FieldComponent, Object.assign({}, props, { ref: ref }))));
65
- });
34
+ return (emptyFieldEditingComponent || react_1.default.createElement(FieldComponent, Object.assign({}, props)));
35
+ };
66
36
  }
67
37
  return (props) => {
68
38
  const emptyFieldEditingComponent = getEmptyFieldEditingComponent(props);
@@ -1,59 +1,29 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
35
5
  Object.defineProperty(exports, "__esModule", { value: true });
36
6
  exports.withFieldMetadata = withFieldMetadata;
37
- const react_1 = __importStar(require("react"));
7
+ const react_1 = __importDefault(require("react"));
38
8
  const FieldMetadata_1 = require("../components/FieldMetadata");
39
9
  /**
40
10
  * Wraps the field component with metadata markup intended to be used for chromes hydration in Pages
41
11
  * @param {ComponentType<FieldComponentProps>} FieldComponent the field component
42
- * @param {boolean} isForwardRef set to 'true' if forward reference is needed
12
+ * @param {boolean} isForwardRef set to 'true' if the ref prop should be explicitly accepted and forwarded
43
13
  * @public
44
14
  */
45
15
  function withFieldMetadata(FieldComponent, isForwardRef = false) {
46
16
  if (isForwardRef) {
47
- return (0, react_1.forwardRef)((props, ref) => {
17
+ return (props) => {
48
18
  var _a;
49
19
  const { editable = true } = props;
50
20
  const metadata = (_a = props.field) === null || _a === void 0 ? void 0 : _a.metadata;
51
21
  if (!metadata || !editable) {
52
- return react_1.default.createElement(FieldComponent, Object.assign({}, props, { ref: ref }));
22
+ return react_1.default.createElement(FieldComponent, Object.assign({}, props));
53
23
  }
54
24
  return (react_1.default.createElement(FieldMetadata_1.FieldMetadata, { metadata: metadata },
55
- react_1.default.createElement(FieldComponent, Object.assign({}, props, { ref: ref }))));
56
- });
25
+ react_1.default.createElement(FieldComponent, Object.assign({}, props))));
26
+ };
57
27
  }
58
28
  return (props) => {
59
29
  var _a;
@@ -1,64 +1,28 @@
1
1
  "use strict";
2
+ 'use client';
2
3
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
4
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
5
  };
5
6
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.withPlaceholder = withPlaceholder;
7
+ exports.withPlaceholder = void 0;
7
8
  const react_1 = __importDefault(require("react"));
8
- const withComponentMap_1 = require("./withComponentMap");
9
- const withSitecore_1 = require("./withSitecore");
10
9
  const Placeholder_1 = require("../components/Placeholder");
11
- const ErrorBoundary_1 = require("../components/ErrorBoundary");
12
10
  /**
13
- * HOC to provide client-side placeholder functionality to a component.
14
- * @param {WithPlaceholderSpec} placeholders
15
- * @param {WithPlaceholderOptions} [options]
11
+ * Provides a slot-like functionality by wrapping a component in client/SSR context and rendering placeholders defined in the layout data.
12
+ * @param {ComponentType<T>} Component - The component to be wrapped around placeholders.
13
+ * @returns {React.ReactNode} A new component that renders the original component with placeholders.
16
14
  * @public
17
15
  */
18
- function withPlaceholder(placeholders, options) {
19
- return (WrappedComponent) => {
20
- class WithPlaceholder extends Placeholder_1.PlaceholderComponent {
21
- constructor(props) {
22
- super(props);
23
- }
24
- render() {
25
- let childProps = Object.assign({}, this.props);
26
- delete childProps.componentMap;
27
- if (options && options.propsTransformer) {
28
- childProps = options.propsTransformer(childProps);
29
- }
30
- if (this.state.error) {
31
- if (childProps.errorComponent) {
32
- return react_1.default.createElement(childProps.errorComponent, { error: this.state.error });
33
- }
34
- return (react_1.default.createElement(ErrorBoundary_1.ErrorComponent, { message: `A rendering error occurred: ${this.state.error.message}.` }));
35
- }
36
- const renderingData = options && options.resolvePlaceholderDataFromProps
37
- ? options.resolvePlaceholderDataFromProps(childProps)
38
- : childProps.rendering;
39
- const definitelyArrayPlacholders = !Array.isArray(placeholders)
40
- ? [placeholders]
41
- : placeholders;
42
- definitelyArrayPlacholders.forEach((placeholder) => {
43
- let placeholderData;
44
- if (typeof placeholder !== 'string' && placeholder.placeholder && placeholder.prop) {
45
- placeholderData = (0, Placeholder_1.getPlaceholderRenderings)(renderingData, placeholder.placeholder, childProps.page.mode.isEditing);
46
- if (placeholderData) {
47
- childProps[placeholder.prop] =
48
- Placeholder_1.PlaceholderComponent.getRenderedComponents(this.props, placeholderData);
49
- }
50
- }
51
- else {
52
- placeholderData = (0, Placeholder_1.getPlaceholderRenderings)(renderingData, placeholder, childProps.page.mode.isEditing);
53
- if (placeholderData) {
54
- childProps[placeholder] =
55
- Placeholder_1.PlaceholderComponent.getRenderedComponents(this.props, placeholderData);
56
- }
57
- }
58
- });
59
- return react_1.default.createElement(WrappedComponent, Object.assign({}, childProps));
60
- }
16
+ const withPlaceholder = (Component) => {
17
+ return (props) => {
18
+ const placeholders = props.rendering.placeholders || {};
19
+ const phProps = {};
20
+ for (const placeholder of Object.keys(placeholders)) {
21
+ phProps[placeholder] = (react_1.default.createElement(Placeholder_1.Placeholder, { name: placeholder, rendering: props.rendering, page: props.page, componentMap: props.componentMap }));
61
22
  }
62
- return (0, withSitecore_1.withSitecore)()((0, withComponentMap_1.withComponentMap)(WithPlaceholder));
23
+ const displayName = Component.displayName || Component.name || 'Component';
24
+ const propsCopy = Object.assign(Object.assign({}, props), { displayName });
25
+ return react_1.default.createElement(Component, Object.assign({}, propsCopy, { placeholders: phProps }));
63
26
  };
64
- }
27
+ };
28
+ exports.withPlaceholder = withPlaceholder;
@@ -5,43 +5,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.withSitecore = withSitecore;
8
- exports.useSitecore = useSitecore;
9
8
  const react_1 = __importDefault(require("react"));
10
9
  const SitecoreProvider_1 = require("../components/SitecoreProvider");
11
10
  /**
12
- * @param {WithSitecoreProviderOptions} [options]
11
+ * @deprecated `useSitecore` hook is a better practice for consuming Sitecore context in components
12
+ * @param {UseSitecoreOptions} [options] - Options for whether return page context update method alongside the rest of context
13
+ * @returns A higher-order component that injects Sitecore context into the wrapped component.
13
14
  * @public
14
15
  */
15
16
  function withSitecore(options) {
16
17
  return function withSitecoreProviderHoc(Component) {
17
18
  return function WithSitecoreProvider(props) {
18
- return (react_1.default.createElement(SitecoreProvider_1.SitecoreProviderReactContext.Consumer, null, (value) => (react_1.default.createElement(Component, Object.assign({}, props, { page: value.page, api: value.api, updatePage: options && options.updatable && value.setPage })))));
19
+ const scContext = (0, SitecoreProvider_1.useSitecore)(options);
20
+ return (react_1.default.createElement(Component, Object.assign({}, props, { page: scContext.page, api: scContext.api, setPage: scContext.setPage, componentMap: scContext.componentMap, loadImportMap: scContext.loadImportMap })));
19
21
  };
20
22
  };
21
23
  }
22
- /**
23
- * This hook grants acсess to the current Sitecore page and api.
24
- * @param {WithSitecoreOptions} [options] hook options
25
- * @example
26
- * const EditMode = () => {
27
- * const { page } = useSitecore();
28
- * return <span>Edit Mode is {page.mode.isEditing ? 'active' : 'inactive'}</span>
29
- * }
30
- * @example
31
- * const EditMode = () => {
32
- * const { page, updatePage } = useSitecore({ updatable: true });
33
- * const onClick = () => updatePage({ itemId: '123' });
34
- * return <span onClick={onClick}>Item id is {page.itemId}</span>
35
- * }
36
- * @returns {object} { api, page, updatePage }
37
- * @public
38
- */
39
- function useSitecore(options) {
40
- const reactContext = react_1.default.useContext(SitecoreProvider_1.SitecoreProviderReactContext);
41
- const updatable = options === null || options === void 0 ? void 0 : options.updatable;
42
- return {
43
- api: reactContext.api,
44
- page: reactContext.page,
45
- updatePage: updatable ? reactContext.setPage : undefined,
46
- };
47
- }
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecore = exports.withSitecore = exports.SitecoreProviderReactContext = exports.SitecoreProvider = exports.File = exports.Link = exports.DesignLibraryApp = exports.DesignLibrary = exports.BYOCServerWrapper = exports.FEaaSServerWrapper = exports.FEaaSClientWrapper = exports.FEaaSWrapper = exports.BYOCClientWrapper = exports.BYOCWrapper = exports.fetchBYOCComponentServerProps = exports.BYOCComponent = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.DateField = exports.Text = exports.RichText = exports.Image = exports.renderEmptyPlaceholder = exports.AppPlaceholder = exports.Placeholder = exports.Form = exports.mediaApi = exports.ErrorPage = exports.GraphQLRequestClient = exports.DefaultRetryStrategy = exports.DictionaryService = exports.EditMode = exports.getFieldValue = exports.getChildPlaceholder = exports.LayoutService = exports.LayoutServicePageState = exports.getDesignLibraryStylesheetLinks = exports.getContentStylesheetLink = exports.resetEditorChromes = exports.isEditorActive = exports.NativeDataFetcher = exports.MemoryCacheClient = exports.ClientError = exports.enableDebug = exports.constants = void 0;
4
- exports.SitePathService = exports.ClientEditingChromesUpdate = exports.DefaultEmptyFieldEditingComponentImage = exports.DefaultEmptyFieldEditingComponentText = exports.EditingScripts = void 0;
3
+ exports.withAppPlaceholder = exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.withDatasourceCheck = exports.withSitecore = exports.withEditorChromes = exports.useSitecore = exports.SitecoreProviderReactContext = exports.SitecoreProvider = exports.File = exports.Link = exports.DesignLibraryApp = exports.DesignLibrary = exports.BYOCServerWrapper = exports.FEaaSServerWrapper = exports.FEaaSClientWrapper = exports.FEaaSWrapper = exports.BYOCClientWrapper = exports.BYOCWrapper = exports.fetchBYOCComponentServerProps = exports.BYOCComponent = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.DateField = exports.Text = exports.RichText = exports.Image = exports.renderEmptyPlaceholder = exports.AppPlaceholder = exports.Placeholder = exports.Form = exports.mediaApi = exports.ErrorPage = exports.GraphQLRequestClient = exports.DefaultRetryStrategy = exports.DictionaryService = exports.EditMode = exports.getFieldValue = exports.getChildPlaceholder = exports.LayoutService = exports.LayoutServicePageState = exports.getDesignLibraryStylesheetLinks = exports.getContentStylesheetLink = exports.resetEditorChromes = exports.isEditorActive = exports.NativeDataFetcher = exports.MemoryCacheClient = exports.ClientError = exports.enableDebug = exports.constants = void 0;
4
+ exports.SitePathService = exports.ClientEditingChromesUpdate = exports.DefaultEmptyFieldEditingComponentImage = exports.DefaultEmptyFieldEditingComponentText = exports.EditingScripts = exports.withPlaceholder = void 0;
5
5
  var core_1 = require("@sitecore-content-sdk/core");
6
6
  Object.defineProperty(exports, "constants", { enumerable: true, get: function () { return core_1.constants; } });
7
7
  Object.defineProperty(exports, "enableDebug", { enumerable: true, get: function () { return core_1.enableDebug; } });
@@ -63,19 +63,21 @@ Object.defineProperty(exports, "File", { enumerable: true, get: function () { re
63
63
  var SitecoreProvider_1 = require("./components/SitecoreProvider");
64
64
  Object.defineProperty(exports, "SitecoreProvider", { enumerable: true, get: function () { return SitecoreProvider_1.SitecoreProvider; } });
65
65
  Object.defineProperty(exports, "SitecoreProviderReactContext", { enumerable: true, get: function () { return SitecoreProvider_1.SitecoreProviderReactContext; } });
66
- var withSitecore_1 = require("./enhancers/withSitecore");
67
- Object.defineProperty(exports, "withSitecore", { enumerable: true, get: function () { return withSitecore_1.withSitecore; } });
68
- Object.defineProperty(exports, "useSitecore", { enumerable: true, get: function () { return withSitecore_1.useSitecore; } });
66
+ Object.defineProperty(exports, "useSitecore", { enumerable: true, get: function () { return SitecoreProvider_1.useSitecore; } });
69
67
  var withEditorChromes_1 = require("./enhancers/withEditorChromes");
70
68
  Object.defineProperty(exports, "withEditorChromes", { enumerable: true, get: function () { return withEditorChromes_1.withEditorChromes; } });
71
- var withPlaceholder_1 = require("./enhancers/withPlaceholder");
72
- Object.defineProperty(exports, "withPlaceholder", { enumerable: true, get: function () { return withPlaceholder_1.withPlaceholder; } });
69
+ var withSitecore_1 = require("./enhancers/withSitecore");
70
+ Object.defineProperty(exports, "withSitecore", { enumerable: true, get: function () { return withSitecore_1.withSitecore; } });
73
71
  var withDatasourceCheck_1 = require("./enhancers/withDatasourceCheck");
74
72
  Object.defineProperty(exports, "withDatasourceCheck", { enumerable: true, get: function () { return withDatasourceCheck_1.withDatasourceCheck; } });
75
73
  var withFieldMetadata_1 = require("./enhancers/withFieldMetadata");
76
74
  Object.defineProperty(exports, "withFieldMetadata", { enumerable: true, get: function () { return withFieldMetadata_1.withFieldMetadata; } });
77
75
  var withEmptyFieldEditingComponent_1 = require("./enhancers/withEmptyFieldEditingComponent");
78
76
  Object.defineProperty(exports, "withEmptyFieldEditingComponent", { enumerable: true, get: function () { return withEmptyFieldEditingComponent_1.withEmptyFieldEditingComponent; } });
77
+ var withAppPlaceholder_1 = require("./enhancers/withAppPlaceholder");
78
+ Object.defineProperty(exports, "withAppPlaceholder", { enumerable: true, get: function () { return withAppPlaceholder_1.withAppPlaceholder; } });
79
+ var withPlaceholder_1 = require("./enhancers/withPlaceholder");
80
+ Object.defineProperty(exports, "withPlaceholder", { enumerable: true, get: function () { return withPlaceholder_1.withPlaceholder; } });
79
81
  var EditingScripts_1 = require("./components/EditingScripts");
80
82
  Object.defineProperty(exports, "EditingScripts", { enumerable: true, get: function () { return EditingScripts_1.EditingScripts; } });
81
83
  var DefaultEmptyFieldEditingComponents_1 = require("./components/DefaultEmptyFieldEditingComponents");
@@ -4,14 +4,14 @@ exports.getOffset = exports.DEFAULT_PAGE_SIZE = void 0;
4
4
  exports.useSearchService = useSearchService;
5
5
  const search_1 = require("@sitecore-content-sdk/search");
6
6
  const react_1 = require("react");
7
- const withSitecore_1 = require("../enhancers/withSitecore");
7
+ const SitecoreProvider_1 = require("../components/SitecoreProvider");
8
8
  exports.DEFAULT_PAGE_SIZE = 10;
9
9
  /**
10
10
  * Hook to initialize and manage SearchService.
11
11
  */
12
12
  function useSearchService() {
13
13
  var _a, _b;
14
- const { api } = (0, withSitecore_1.useSitecore)();
14
+ const { api } = (0, SitecoreProvider_1.useSitecore)();
15
15
  return (0, react_1.useMemo)(() => {
16
16
  var _a;
17
17
  if (!((_a = api === null || api === void 0 ? void 0 : api.edge) === null || _a === void 0 ? void 0 : _a.clientContextId)) {
@@ -14,19 +14,13 @@ import { withFieldMetadata } from '../enhancers/withFieldMetadata';
14
14
  import { withEmptyFieldEditingComponent } from '../enhancers/withEmptyFieldEditingComponent';
15
15
  import { DefaultEmptyFieldEditingComponentText } from './DefaultEmptyFieldEditingComponents';
16
16
  import { isFieldValueEmpty } from '@sitecore-content-sdk/content/layout';
17
- /**
18
- * The DateField component.
19
- * @public
20
- */
21
- export const DateField = withFieldMetadata(withEmptyFieldEditingComponent(
22
- // eslint-disable-next-line no-unused-vars
23
- (_a) => {
24
- var { field, tag, editable = true, render } = _a, otherProps = __rest(_a, ["field", "tag", "editable", "render"]);
17
+ const DateFieldComponent = (_a) => {
18
+ var { field, tag, render } = _a, htmlProps = __rest(_a, ["field", "tag", "render"]);
25
19
  if (isFieldValueEmpty(field)) {
26
20
  return null;
27
21
  }
22
+ delete htmlProps.editable; // prevent editable from being passed to the DOM
28
23
  let children;
29
- const htmlProps = Object.assign({}, otherProps);
30
24
  if (render) {
31
25
  children = render(field.value ? new Date(field.value) : null);
32
26
  }
@@ -34,10 +28,18 @@ export const DateField = withFieldMetadata(withEmptyFieldEditingComponent(
34
28
  children = field.value;
35
29
  }
36
30
  if (tag) {
37
- return React.createElement(tag || 'span', htmlProps, children);
31
+ const Tag = (tag || 'span');
32
+ return React.createElement(Tag, Object.assign({}, htmlProps), children);
38
33
  }
39
34
  else {
40
35
  return React.createElement(React.Fragment, null, children);
41
36
  }
42
- }, { defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText }));
37
+ };
38
+ /**
39
+ * The DateField component.
40
+ * @public
41
+ */
42
+ export const DateField = withFieldMetadata(withEmptyFieldEditingComponent(DateFieldComponent, {
43
+ defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText,
44
+ }));
43
45
  DateField.displayName = 'Date';
@@ -5,7 +5,8 @@ import React from 'react';
5
5
  * @public
6
6
  */
7
7
  export const DefaultEmptyFieldEditingComponentText = (props) => {
8
- return React.createElement(props.tag || 'span', Object.assign(Object.assign({}, props), { suppressHydrationWarning: true }), '[No text in field]');
8
+ const Tag = (props.tag || 'span');
9
+ return (React.createElement(Tag, Object.assign({}, props, { suppressHydrationWarning: true }), "[No text in field]"));
9
10
  };
10
11
  /**
11
12
  * The DefaultEmptyFieldEditingComponentImage component.
@@ -6,10 +6,9 @@ import { EDITING_COMPONENT_ID, EDITING_COMPONENT_PLACEHOLDER, } from '@sitecore-
6
6
  import { DesignLibraryStatus, getDesignLibraryStatusEvent, addComponentUpdateHandler, } from '@sitecore-content-sdk/content/editing';
7
7
  import * as codegen from '@sitecore-content-sdk/content/codegen';
8
8
  import * as editing from '@sitecore-content-sdk/content/editing';
9
- import { useSitecore } from '../../enhancers/withSitecore';
9
+ import { useSitecore } from '../../components/SitecoreProvider';
10
10
  import { Placeholder, PlaceholderMetadata } from '../Placeholder';
11
11
  import { DesignLibraryErrorBoundary } from './DesignLibraryErrorBoundary';
12
- import { useLoadImportMap } from '../../enhancers/withLoadImportMap';
13
12
  import { ErrorComponent } from '../ErrorBoundary';
14
13
  let { getDesignLibraryImportMapEvent, getDesignLibraryComponentPropsEvent, addComponentPreviewHandler, sendErrorEvent, } = codegen;
15
14
  let { postToDesignLibrary } = editing;
@@ -29,15 +28,12 @@ export const __mockDependencies = (mocks) => {
29
28
  * when generation is enabled (`page.mode.designLibrary.isVariantGeneration === true`),
30
29
  * wires the **variant generation** handshake so the parent (DL Studio) can send
31
30
  * generated code to preview and iterate on.
32
- * @param {DesignLibraryProps} props
33
- * @param {() => Promise} [props.loadImportMap] Optional async loader that resolves to the import-map used to resolve the generated component’s imports. Required when `isVariantGeneration` is true.
34
31
  * @returns {JSX.Element} The preview surface, or `null` when not in Design Library mode.
35
32
  * @public
36
33
  */
37
34
  export const DesignLibrary = () => {
38
35
  var _a, _b;
39
- const { page } = useSitecore();
40
- const loadImportMap = useLoadImportMap();
36
+ const { page, loadImportMap } = useSitecore();
41
37
  const route = page.layout.sitecore.route;
42
38
  const rendering = (_a = route === null || route === void 0 ? void 0 : route.placeholders[EDITING_COMPONENT_PLACEHOLDER]) === null || _a === void 0 ? void 0 : _a[0];
43
39
  const uid = rendering === null || rendering === void 0 ? void 0 : rendering.uid;
@@ -86,7 +82,7 @@ export const DesignLibrary = () => {
86
82
  let unsubscribe;
87
83
  (async () => {
88
84
  if (!loadImportMap) {
89
- sendErrorEvent(uid, 'No loadImportMap provided', codegen.DesignLibraryPreviewError.RenderInit);
85
+ sendErrorEvent(uid, 'No loadImportMap provided', codegen.DesignLibraryPreviewError.ImportMapMissing);
90
86
  return;
91
87
  }
92
88
  let importMap;
@@ -95,7 +91,7 @@ export const DesignLibrary = () => {
95
91
  importMap = mod.default;
96
92
  }
97
93
  catch (e) {
98
- sendErrorEvent(uid, `Error loading import map: ${e}`, codegen.DesignLibraryPreviewError.RenderInit);
94
+ sendErrorEvent(uid, `Error loading import map: ${e}`, codegen.DesignLibraryPreviewError.ImportMapLoad);
99
95
  return;
100
96
  }
101
97
  // account for component being unmounted while resolving async import map
@@ -118,7 +114,7 @@ export const DesignLibrary = () => {
118
114
  cancelled = true;
119
115
  unsubscribe && unsubscribe();
120
116
  };
121
- }, [isVariantGeneration, uid]);
117
+ }, [isDesignLibrary, isVariantGeneration, uid, loadImportMap, propsState]);
122
118
  return (React.createElement("main", null, isGeneratedComponentActive ? (React.createElement(DesignLibraryErrorBoundary, { uid: uid, renderKey: renderKey },
123
119
  React.createElement(PlaceholderMetadata, { rendering: rendering },
124
120
  React.createElement(Component, { fields: propsState.fields, params: propsState.params, key: renderKey })))) : (React.createElement("div", { id: EDITING_COMPONENT_ID }, route && (React.createElement(Placeholder, { name: EDITING_COMPONENT_PLACEHOLDER, rendering: route, key: renderKey }))))));
@@ -3,7 +3,7 @@ import React, { useEffect } from 'react';
3
3
  import * as dlHelpers from '@sitecore-content-sdk/content/editing';
4
4
  import * as codegen from '@sitecore-content-sdk/content/codegen';
5
5
  import { updateComponentAction, previewComponentAction, } from '../../server-actions/update-server-component-action';
6
- import { useSitecore } from '../../enhancers/withSitecore';
6
+ import { useSitecore } from '../SitecoreProvider';
7
7
  let { getDesignLibraryComponentPropsEvent, addServerComponentPreviewHandler, getDesignLibraryImportMapEvent, addStyleElement, sendErrorEvent, } = codegen;
8
8
  let { getDesignLibraryStatusEvent, addComponentUpdateHandler, postToDesignLibrary } = dlHelpers;
9
9
  let _updateComponentAction = updateComponentAction;
@@ -49,7 +49,9 @@ export const DesignLibraryPreviewEvents = ({ designLibraryStatus, component, })
49
49
  * @returns {JSX.Element} empty JSX element.
50
50
  */
51
51
  export const DesignLibraryVariantGenerationEvents = ({ designLibraryStatus, component, importMap, componentInitError, generatedComponentData, }) => {
52
+ var _a;
52
53
  const { api } = useSitecore();
54
+ const edgeUrl = (_a = api === null || api === void 0 ? void 0 : api.edge) === null || _a === void 0 ? void 0 : _a.edgeUrl;
53
55
  useEffect(() => {
54
56
  var _a;
55
57
  if (!(component === null || component === void 0 ? void 0 : component.uid))
@@ -63,15 +65,14 @@ export const DesignLibraryVariantGenerationEvents = ({ designLibraryStatus, comp
63
65
  });
64
66
  });
65
67
  const unsubPreview = addServerComponentPreviewHandler((eventArgs) => {
66
- var _a;
67
68
  _previewComponentAction({
68
69
  uid: component.uid,
69
70
  args: eventArgs,
70
- }, (_a = api === null || api === void 0 ? void 0 : api.edge) === null || _a === void 0 ? void 0 : _a.edgeUrl);
71
+ }, edgeUrl);
71
72
  });
72
73
  if (componentInitError) {
73
74
  // an error occurred during initialization of the component on the server side
74
- sendErrorEvent(component.uid, componentInitError, codegen.DesignLibraryPreviewError.RenderInit);
75
+ sendErrorEvent(component.uid, componentInitError.message, componentInitError.type);
75
76
  }
76
77
  else {
77
78
  const importMapEvent = getDesignLibraryImportMapEvent(component.uid, importMap);
@@ -87,6 +88,13 @@ export const DesignLibraryVariantGenerationEvents = ({ designLibraryStatus, comp
87
88
  unsubUpdate && unsubUpdate();
88
89
  unsubPreview && unsubPreview();
89
90
  };
90
- }, [component, designLibraryStatus, importMap, componentInitError, generatedComponentData]);
91
+ }, [
92
+ component,
93
+ designLibraryStatus,
94
+ importMap,
95
+ componentInitError,
96
+ generatedComponentData,
97
+ edgeUrl,
98
+ ]);
91
99
  return React.createElement(React.Fragment, null);
92
100
  };
@@ -62,10 +62,14 @@ export const DesignLibraryServerVariantGeneration = async ({ page, rendering, lo
62
62
  let Component;
63
63
  let componentInitError;
64
64
  let generatedComponentData;
65
+ const getComponentInitError = (type, error) => ({
66
+ type,
67
+ message: error instanceof Error ? error.message : String(error),
68
+ });
65
69
  // load importmap and importmap payload to pass to FE
66
70
  // if not provided, or errors during load set error to pass to FE
67
71
  if (!loadServerImportMap) {
68
- componentInitError = 'No loadImportMap provided';
72
+ componentInitError = getComponentInitError(codegen.DesignLibraryPreviewError.ImportMapMissing, 'No loadImportMap provided');
69
73
  }
70
74
  else {
71
75
  try {
@@ -74,7 +78,7 @@ export const DesignLibraryServerVariantGeneration = async ({ page, rendering, lo
74
78
  importMapInfo = getImportMapInfo(importMap);
75
79
  }
76
80
  catch (e) {
77
- componentInitError = `Error loading import map: ${e}`;
81
+ componentInitError = getComponentInitError(codegen.DesignLibraryPreviewError.ImportMapLoad, `Error loading import map: ${e}`);
78
82
  }
79
83
  }
80
84
  let componentToUpdate = (_b = (_a = rendering === null || rendering === void 0 ? void 0 : rendering.placeholders) === null || _a === void 0 ? void 0 : _a[EDITING_COMPONENT_PLACEHOLDER]) === null || _b === void 0 ? void 0 : _b[0];
@@ -103,7 +107,7 @@ export const DesignLibraryServerVariantGeneration = async ({ page, rendering, lo
103
107
  }
104
108
  catch (error) {
105
109
  // error during component initialization - send error to client
106
- componentInitError = error.toString();
110
+ componentInitError = getComponentInitError(codegen.DesignLibraryPreviewError.RenderInit, error);
107
111
  }
108
112
  }
109
113
  }
@@ -111,7 +115,9 @@ export const DesignLibraryServerVariantGeneration = async ({ page, rendering, lo
111
115
  // we have a preview update, get it and clean the cache
112
116
  designLibraryStatus = DesignLibraryStatus.RENDERED;
113
117
  const previewData = getCacheAndClean(componentPreviewKey);
114
- componentInitError = previewData === null || previewData === void 0 ? void 0 : previewData.error;
118
+ if (previewData === null || previewData === void 0 ? void 0 : previewData.error) {
119
+ componentInitError = getComponentInitError(codegen.DesignLibraryPreviewError.GeneratedComponentFetch, previewData.error);
120
+ }
115
121
  if (previewData === null || previewData === void 0 ? void 0 : previewData.generatedComponentData) {
116
122
  generatedComponentData = previewData.generatedComponentData;
117
123
  try {
@@ -120,7 +126,7 @@ export const DesignLibraryServerVariantGeneration = async ({ page, rendering, lo
120
126
  }
121
127
  catch (error) {
122
128
  // error during component initialization - send error to client
123
- componentInitError = error.toString();
129
+ componentInitError = getComponentInitError(codegen.DesignLibraryPreviewError.RenderInit, error);
124
130
  }
125
131
  }
126
132
  }
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import React from 'react';
3
- import { useSitecore } from '../enhancers/withSitecore';
4
- import { getContentSdkPagesClientData, getDesignLibraryScriptLink } from '@sitecore-content-sdk/content/editing';
3
+ import { useSitecore } from './SitecoreProvider';
4
+ import { getContentSdkPagesClientData, getDesignLibraryScriptLink, } from '@sitecore-content-sdk/content/editing';
5
5
  /**
6
6
  * Renders client scripts and data for editing/preview mode for Pages.
7
7
  * Renders script required for the Design Library (when mode.isDesignLibrary is true).
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import React, { Suspense } from 'react';
3
- import { withSitecore } from '../enhancers/withSitecore';
3
+ import { useSitecore } from './SitecoreProvider';
4
4
  /**
5
5
  * Simple error component applying basic error styling.
6
6
  * @param {object} props - Either with `message` (string) or with `children` (ReactNode), but not both.
@@ -8,7 +8,7 @@ import { withSitecore } from '../enhancers/withSitecore';
8
8
  export const ErrorComponent = (props) => {
9
9
  return (React.createElement("div", { className: "sc-content-sdk-placeholder-error" }, props.message ? props.message : props.children));
10
10
  };
11
- class ErrorBoundary extends React.Component {
11
+ class ErrorBoundaryClass extends React.Component {
12
12
  constructor(props) {
13
13
  super(props);
14
14
  this.defaultErrorMessage = 'There was a problem loading this section.';
@@ -32,7 +32,7 @@ class ErrorBoundary extends React.Component {
32
32
  return this.isInDevMode() || this.props.page.mode.isEditing || this.props.page.mode.isPreview;
33
33
  }
34
34
  render() {
35
- var _a;
35
+ var _a, _b;
36
36
  if (this.state.error) {
37
37
  if (this.props.errorComponent) {
38
38
  return React.createElement(this.props.errorComponent, { error: this.state.error });
@@ -55,10 +55,14 @@ class ErrorBoundary extends React.Component {
55
55
  }
56
56
  }
57
57
  // do not apply suspense when suspense is disabled or when on already dynamic components
58
- if (this.props.disableSuspense || this.props.isDynamic) {
58
+ if (((_b = this.props.disableSuspense) !== null && _b !== void 0 ? _b : true) || this.props.isDynamic)
59
59
  return this.props.children;
60
- }
61
60
  return (React.createElement(Suspense, { fallback: React.createElement("h4", null, this.props.componentLoadingMessage || this.defaultLoadingMessage) }, this.props.children));
62
61
  }
63
62
  }
64
- export default withSitecore()(ErrorBoundary);
63
+ const ErrorBoundary = (props) => {
64
+ const { page } = useSitecore();
65
+ const boundaryProps = Object.assign(Object.assign({}, props), { page });
66
+ return React.createElement(ErrorBoundaryClass, Object.assign({}, boundaryProps));
67
+ };
68
+ export default ErrorBoundary;
@@ -31,6 +31,8 @@ export const File = (_a) => {
31
31
  const anchorAttrs = {
32
32
  href: file.src,
33
33
  };
34
- return React.createElement('a', Object.assign(Object.assign({}, anchorAttrs), otherProps), linkText, children);
34
+ return (React.createElement("a", Object.assign({}, anchorAttrs, otherProps),
35
+ linkText,
36
+ children));
35
37
  };
36
38
  File.displayName = 'File';