@sitecore-feaas/clientside 0.3.11-alpha.1 → 0.3.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 (50) hide show
  1. package/build/components/FEAASElement.js +1 -0
  2. package/build/components/FEAASElement.js.map +1 -1
  3. package/build/ui/FEAASExternal.js +19 -1
  4. package/build/ui/FEAASExternal.js.map +1 -1
  5. package/build/ui/react.js +69 -5
  6. package/build/ui/react.js.map +1 -1
  7. package/dist/browser/headless.cjs +6 -6
  8. package/dist/browser/headless.cjs.map +3 -3
  9. package/dist/browser/headless.esm.js +1 -1
  10. package/dist/browser/headless.esm.js.map +1 -1
  11. package/dist/browser/index.cjs +6 -6
  12. package/dist/browser/index.cjs.map +3 -3
  13. package/dist/browser/index.esm.js +6 -6
  14. package/dist/browser/index.esm.js.map +1 -1
  15. package/dist/browser/react.cjs +6 -6
  16. package/dist/browser/react.cjs.map +3 -3
  17. package/dist/browser/react.esm.js +6 -6
  18. package/dist/browser/react.esm.js.map +1 -1
  19. package/dist/node/headless.cjs +4 -4
  20. package/dist/node/headless.cjs.map +3 -3
  21. package/dist/node/headless.esm.js +1 -1
  22. package/dist/node/headless.esm.js.map +1 -1
  23. package/dist/node/index.cjs +4 -4
  24. package/dist/node/index.cjs.map +3 -3
  25. package/dist/node/index.esm.js +4 -4
  26. package/dist/node/index.esm.js.map +3 -3
  27. package/dist/node/react.cjs +4 -4
  28. package/dist/node/react.cjs.map +3 -3
  29. package/dist/node/react.esm.js +4 -4
  30. package/dist/node/react.esm.js.map +3 -3
  31. package/headless.cjs +4 -4
  32. package/headless.cjs.map +3 -3
  33. package/headless.js +4 -4
  34. package/headless.js.map +3 -3
  35. package/package.json +1 -1
  36. package/react.cjs +6 -6
  37. package/react.cjs.map +3 -3
  38. package/react.js +6 -6
  39. package/react.js.map +3 -3
  40. package/src/components/FEAASElement.tsx +1 -0
  41. package/src/ui/FEAASExternal.tsx +21 -1
  42. package/src/ui/react.tsx +79 -8
  43. package/types/components/FEAASElement.d.ts +1 -0
  44. package/types/components/FEAASElement.d.ts.map +1 -1
  45. package/types/tsbuildinfo +1 -1
  46. package/types/ui/FEAASExternal.d.ts +3 -0
  47. package/types/ui/FEAASExternal.d.ts.map +1 -1
  48. package/types/ui/react.d.ts +62 -4
  49. package/types/ui/react.d.ts.map +1 -1
  50. package/types/ui/tsbuildinfo +1 -1
@@ -541,3 +541,4 @@ export class FEAASElement<Props = any, Payload = any> extends WebComponent {
541
541
  }
542
542
 
543
543
  export { FEAASElement as Element }
544
+ export { WebComponent }
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
2
  import ReactDOM from 'react-dom'
3
- import { FEAASElement } from '../components/FEAASElement.js'
3
+ import { FEAASElement, WebComponent } from '../components/FEAASElement.js'
4
4
  import { ReactJSX, ReactModules } from '../components/FEAASReactElement.js'
5
5
  import { kebabCase, reverseKebabCase } from '../utils/string.js'
6
6
  import { Component, FEAASComponentProps } from './react.js'
@@ -284,10 +284,30 @@ declare global {
284
284
  }
285
285
  }
286
286
  }
287
+ interface Window {
288
+ FEAASExternalComponents: RegisteredComponents
289
+ }
290
+ }
291
+
292
+ // Register schemas passed as <feaas-registration components=... />
293
+ class FEAASExternalRegistration extends WebComponent {
294
+ connectedCallback() {
295
+ try {
296
+ ;(JSON.parse(this.getAttribute('components')) as any[]).forEach((component) => {
297
+ FEAASExternal.registerComponent(null, component)
298
+ })
299
+ } catch (e) {}
300
+ }
301
+ static register(tagName: string) {
302
+ return FEAASElement.register.call(this, tagName)
303
+ }
287
304
  }
288
305
 
306
+ if (typeof window !== 'undefined' && window)
307
+ Object.defineProperty(window, 'FEAASExternalComponents', { get: () => FEAASExternal.registered })
289
308
  FEAASExternal.register('feaas-external')
290
309
  FEAASExternal.setRegistrationCallback()
310
+ FEAASExternalRegistration.register('feaas-registration')
291
311
 
292
312
  export const { getComponent, linkComponents, registerComponent } = FEAASExternal
293
313
  export { FEAASExternal as External }
package/src/ui/react.tsx CHANGED
@@ -5,7 +5,10 @@ import {
5
5
  getComponentURL,
6
6
  getStylesheetURL,
7
7
  parseComponentSource,
8
- FEAASStylesheetProps
8
+ FEAASCDNStylesheetSource,
9
+ FEAASCDNStylesheetParams,
10
+ parseStylesheetSource,
11
+ getStylesheetSource
9
12
  } from './index.js'
10
13
  import React from 'react'
11
14
  import { renderHTMLContent, HTMLNode, parseHTMLContent } from '../dom/html.js'
@@ -24,10 +27,27 @@ export type FEAASReactComponentProps = FEAASComponentProps & {
24
27
  lastModified?: Date | string
25
28
  }
26
29
 
27
- export const FEAASReactStylesheet = (props: FEAASStylesheetProps) => {
28
- return <feaas-stylesheet {...props} />
30
+ /**
31
+ * A component to include a stylesheet using a <link> tag. Placing one in the HEAD ensures that there will be no flash
32
+ * of unstyled content.
33
+ *
34
+ * @param {FEAASCDNStylesheetParams | FEAASCDNStylesheetSource} props - The properties for including the stylesheet.
35
+ * @returns {JSX.Element} The <link> element for the stylesheet.
36
+ */
37
+ export const FEAASReactStylesheet = (props: FEAASCDNStylesheetParams | FEAASCDNStylesheetSource) => {
38
+ if ('src' in props) {
39
+ props = parseStylesheetSource(props.src)
40
+ }
41
+ return <link rel='stylesheet' href={getStylesheetSource(props)} />
29
42
  }
30
43
 
44
+ /**
45
+ * An asynchronous wrapper over FEAAS.Component for use in React, especially suited for Next.js.
46
+ * This component fetches HTML and data asynchronously for server-side rendering with data mapping.
47
+ *
48
+ * @param {FEAASReactComponentProps} props - The properties for the component.
49
+ * @returns {Promise<JSX.Element>} The JSX element representing the component.
50
+ */
31
51
  export const FEAASReactServerComponent = async ({ ...props }: FEAASReactComponentProps) => {
32
52
  const fetchedData = await DataSettings.fetch(props?.data || {})
33
53
 
@@ -43,6 +63,13 @@ export const FEAASReactServerComponent = async ({ ...props }: FEAASReactComponen
43
63
  return FEAASReactComponent({ ...p, data: fetchedData })
44
64
  }
45
65
 
66
+ /**
67
+ * A wrapper over FEAAS.Component for use in React. It converts a passed template HTML into React,
68
+ * allowing external components in the render tree. Data can be provided in JSON format.
69
+ *
70
+ * @param {FEAASReactComponentProps} props - The properties for the component.
71
+ * @returns {JSX.Element} The JSX element representing the component.
72
+ */
46
73
  export function FEAASReactComponent({ data, ...props }: FEAASReactComponentProps) {
47
74
  let preload = null
48
75
  let children: null | React.ReactNode
@@ -91,6 +118,13 @@ export function FEAASReactComponent({ data, ...props }: FEAASReactComponentProps
91
118
  )
92
119
  }
93
120
 
121
+ /**
122
+ * A wrapper over External component that accepts a fallback for rendering in case of a missing component.
123
+ * It accepts properties in camelcase format and ensures no hydration errors on the client-side.
124
+ *
125
+ * @param {FEAASReactExternalComponentProps} props - The properties for the component.
126
+ * @returns {JSX.Element} The JSX element representing the component.
127
+ */
94
128
  export function FEAASReactExternalComponent(props: FEAASReactExternalComponentProps) {
95
129
  const { componentName, fallback, ...attributes } = props
96
130
  const Component = getComponent(componentName)?.component
@@ -117,7 +151,14 @@ export function FEAASReactExternalComponent(props: FEAASReactExternalComponentPr
117
151
  )
118
152
  }
119
153
 
120
- /** Turn HTMLNode into React tree. It accepts callback to customize the behavior */
154
+ /**
155
+ * Converts an HTMLNode into a React tree, ensuring proper context access for external components.
156
+ *
157
+ * @param {HTMLNode} node - The HTML node to be converted.
158
+ * @param {any} [callback] - Callback to customize turning of HTML node into react tree.
159
+ * @param {any} [key] - The key for the React element.
160
+ * @returns {React.ReactNode} The resulting React node.
161
+ */
121
162
  export function HTMLNodeToReact(
122
163
  node: HTMLNode,
123
164
  callback?: (node: HTMLNode, attributes: Record<string, any>) => [tagName: any, attributes: Record<string, any>],
@@ -158,6 +199,14 @@ export function HTMLNodeToReact(
158
199
  const NextComponents = new Map()
159
200
  var NextClientsideRenderer: any = null
160
201
  var NextDynamicFunction: any = null
202
+
203
+ /**
204
+ * A special case of ExternalComponent designed for Next.js.
205
+ * It uses `next/dynamic` to control rendering on the client, server, or both.
206
+ *
207
+ * @param {FEAASReactExternalComponentProps} props - The properties for the component.
208
+ * @returns {JSX.Element} The JSX element representing the component.
209
+ */
161
210
  export function FEAASNextExternalComponent(props: FEAASReactExternalComponentProps) {
162
211
  // See if component is registered in current context
163
212
  const { componentName, ...attributes } = props
@@ -175,23 +224,45 @@ export function FEAASNextExternalComponent(props: FEAASReactExternalComponentPro
175
224
  const External = NextComponents.get(componentName)
176
225
  return <External {...props} fallback={Component ? <Component {...props} /> : null}></External>
177
226
  }
227
+
228
+ /**
229
+ * Enables Next.js client/server rendering options for registered components.
230
+ * The `component` argument should be a function exported from a file with a `use client` directive.
231
+ *
232
+ * @param {any} dynamic - The Next dynamic function.
233
+ * @param {any} component - The component function.
234
+ * @returns {any} Augmented bundle.
235
+ */
178
236
  export function enableNextClientsideComponents(dynamic: any, component: any) {
179
237
  NextDynamicFunction = dynamic
180
238
  NextClientsideRenderer = component
181
239
  return component
182
240
  }
183
241
 
242
+ /**
243
+ * Renders a registered external component in a React tree.
244
+ *
245
+ * @param {FEAASReactExternalComponentProps} props - The properties for the component.
246
+ * @returns {JSX.Element} The JSX element representing the component.
247
+ */
184
248
  export function FEAASExternalComponent(props: FEAASReactExternalComponentProps) {
185
249
  if (Object.keys(props).length == 0) {
186
- // Serializing server-side registrations to clientside
187
- return (
188
- <feaas-registration components={JSON.stringify(Object.values(External.registered))} suppressHydrationWarning />
189
- )
250
+ return
190
251
  }
191
252
  if (NextDynamicFunction) return FEAASNextExternalComponent(props)
192
253
  return FEAASReactExternalComponent(props)
193
254
  }
255
+ export function FEAASReactExternalComponentBundle() {
256
+ return (
257
+ <>
258
+ <feaas-registration components={JSON.stringify(Object.values(External.registered))} suppressHydrationWarning />
259
+ {/** Will not be rendered, but needs to be referenced */}
260
+ {<NextClientsideRenderer />}
261
+ </>
262
+ )
263
+ }
194
264
 
265
+ export const ExternalComponentBundle = FEAASReactExternalComponentBundle
195
266
  export const ExternalComponent = FEAASExternalComponent
196
267
  export const ReactExternalComponent = FEAASReactExternalComponent
197
268
  export const NextExternalComponent = FEAASNextExternalComponent
@@ -306,4 +306,5 @@ export declare class FEAASElement<Props = any, Payload = any> extends WebCompone
306
306
  static register(tagName: string, win?: Window): void;
307
307
  }
308
308
  export { FEAASElement as Element };
309
+ export { WebComponent };
309
310
  //# sourceMappingURL=FEAASElement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FEAASElement.d.ts","sourceRoot":"","sources":["../../src/components/FEAASElement.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FEAASElement.d.ts","sourceRoot":"","sources":["../../src/components/FEAASElement.tsx"],"names":[],"mappings":"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"}