@contember/react-client 1.2.0-alpha.1 → 1.2.0-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.
@@ -1,4 +1,4 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ import { jsxDEV } from "react/jsx-dev-runtime";
2
2
  import { memo, useMemo, useState, useCallback } from "react";
3
3
  import { ApiBaseUrlContext } from "./config/ApiBaseUrlContext.js";
4
4
  import { LoginTokenContext } from "./config/LoginTokenContext.js";
@@ -21,7 +21,31 @@ const ContemberClient = memo(function ContemberClient2({
21
21
  token: localStorageSessionToken ?? sessionToken,
22
22
  source: localStorageSessionToken ? "localstorage" : sessionToken ? "props" : void 0
23
23
  }), [localStorageSessionToken, sessionToken]);
24
- return /* @__PURE__ */ jsx(ApiBaseUrlContext.Provider, { value: apiBaseUrl, children: /* @__PURE__ */ jsx(LoginTokenContext.Provider, { value: loginToken, children: /* @__PURE__ */ jsx(SetSessionTokenContext.Provider, { value: setLocalStorageSessionToken, children: /* @__PURE__ */ jsx(SessionTokenContext.Provider, { value: sessionTokenContextValue, children: /* @__PURE__ */ jsx(ProjectSlugContext.Provider, { value: project, children: /* @__PURE__ */ jsx(StageSlugContext.Provider, { value: stage, children }) }) }) }) }) });
24
+ return /* @__PURE__ */ jsxDEV(ApiBaseUrlContext.Provider, { value: apiBaseUrl, children: /* @__PURE__ */ jsxDEV(LoginTokenContext.Provider, { value: loginToken, children: /* @__PURE__ */ jsxDEV(SetSessionTokenContext.Provider, { value: setLocalStorageSessionToken, children: /* @__PURE__ */ jsxDEV(SessionTokenContext.Provider, { value: sessionTokenContextValue, children: /* @__PURE__ */ jsxDEV(ProjectSlugContext.Provider, { value: project, children: /* @__PURE__ */ jsxDEV(StageSlugContext.Provider, { value: stage, children }, void 0, false, {
25
+ fileName: "/__w/interface/interface/packages/react-client/src/ContemberClient.tsx",
26
+ lineNumber: 41,
27
+ columnNumber: 8
28
+ }, this) }, void 0, false, {
29
+ fileName: "/__w/interface/interface/packages/react-client/src/ContemberClient.tsx",
30
+ lineNumber: 40,
31
+ columnNumber: 7
32
+ }, this) }, void 0, false, {
33
+ fileName: "/__w/interface/interface/packages/react-client/src/ContemberClient.tsx",
34
+ lineNumber: 39,
35
+ columnNumber: 6
36
+ }, this) }, void 0, false, {
37
+ fileName: "/__w/interface/interface/packages/react-client/src/ContemberClient.tsx",
38
+ lineNumber: 38,
39
+ columnNumber: 5
40
+ }, this) }, void 0, false, {
41
+ fileName: "/__w/interface/interface/packages/react-client/src/ContemberClient.tsx",
42
+ lineNumber: 37,
43
+ columnNumber: 4
44
+ }, this) }, void 0, false, {
45
+ fileName: "/__w/interface/interface/packages/react-client/src/ContemberClient.tsx",
46
+ lineNumber: 36,
47
+ columnNumber: 3
48
+ }, this);
25
49
  });
26
50
  const useLocalStorageSessionToken = () => {
27
51
  const [sessionTokenInner, setSessionTokenInner] = useState(() => localStorage.getItem(sessionTokenKey) ?? void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"ContemberClient.js","sources":["../../src/ContemberClient.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, useState } from 'react'\nimport { SessionTokenContext, SessionTokenContextValue, SetSessionTokenContext } from './auth'\nimport { ApiBaseUrlContext, LoginTokenContext } from './config'\nimport { ProjectSlugContext, StageSlugContext } from './project'\n\nexport interface ContemberClientProps {\n\tapiBaseUrl: string\n\tsessionToken?: string\n\tloginToken?: string\n\tproject?: string\n\tstage?: string\n}\n\nconst sessionTokenKey = 'contember_session_token'\n\n/**\n * @group Entrypoints\n */\nexport const ContemberClient = memo<ContemberClientProps & { children: React.ReactNode }>(function ContemberClient({\n\tapiBaseUrl,\n\tchildren,\n\tloginToken,\n\tproject,\n\tsessionToken,\n\tstage,\n}) {\n\tconst [localStorageSessionToken, setLocalStorageSessionToken] = useLocalStorageSessionToken()\n\n\tconst sessionTokenContextValue = useMemo((): SessionTokenContextValue => ({\n\t\tpropsToken: sessionToken,\n\t\ttoken: localStorageSessionToken ?? sessionToken,\n\t\tsource: localStorageSessionToken ? 'localstorage' : (sessionToken ? 'props' : undefined),\n\t}), [localStorageSessionToken, sessionToken])\n\n\treturn (\n\t\t<ApiBaseUrlContext.Provider value={apiBaseUrl}>\n\t\t\t<LoginTokenContext.Provider value={loginToken}>\n\t\t\t\t<SetSessionTokenContext.Provider value={setLocalStorageSessionToken}>\n\t\t\t\t\t<SessionTokenContext.Provider value={sessionTokenContextValue}>\n\t\t\t\t\t\t<ProjectSlugContext.Provider value={project}>\n\t\t\t\t\t\t\t<StageSlugContext.Provider value={stage}>{children}</StageSlugContext.Provider>\n\t\t\t\t\t\t</ProjectSlugContext.Provider>\n\t\t\t\t\t</SessionTokenContext.Provider>\n\t\t\t\t</SetSessionTokenContext.Provider>\n\t\t\t</LoginTokenContext.Provider>\n\t\t</ApiBaseUrlContext.Provider>\n\t)\n})\n\nconst useLocalStorageSessionToken = (): [value: string | undefined, set: (token: string | undefined) => void] => {\n\tconst [sessionTokenInner, setSessionTokenInner] = useState(() => localStorage.getItem(sessionTokenKey) ?? undefined)\n\n\tconst setSessionToken = useCallback((token: string | undefined) => {\n\t\tif (token !== undefined) {\n\t\t\tlocalStorage.setItem(sessionTokenKey, token)\n\t\t} else {\n\t\t\tlocalStorage.removeItem(sessionTokenKey)\n\t\t}\n\t\tsetSessionTokenInner(token)\n\t}, [])\n\n\treturn [sessionTokenInner, setSessionToken]\n}\n"],"names":["ContemberClient"],"mappings":";;;;;;;;AAaA,MAAM,kBAAkB;AAKX,MAAA,kBAAkB,KAA2D,SAASA,iBAAgB;AAAA,EAClH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAG;AACF,QAAM,CAAC,0BAA0B,2BAA2B,IAAI,4BAA4B;AAEtF,QAAA,2BAA2B,QAAQ,OAAiC;AAAA,IACzE,YAAY;AAAA,IACZ,OAAO,4BAA4B;AAAA,IACnC,QAAQ,2BAA2B,iBAAkB,eAAe,UAAU;AAAA,EAC3E,IAAA,CAAC,0BAA0B,YAAY,CAAC;AAE5C,6BACE,kBAAkB,UAAlB,EAA2B,OAAO,YAClC,8BAAC,kBAAkB,UAAlB,EAA2B,OAAO,YAClC,UAAC,oBAAA,uBAAuB,UAAvB,EAAgC,OAAO,6BACvC,UAAC,oBAAA,oBAAoB,UAApB,EAA6B,OAAO,0BACpC,UAAA,oBAAC,mBAAmB,UAAnB,EAA4B,OAAO,SACnC,UAAA,oBAAC,iBAAiB,UAAjB,EAA0B,OAAO,OAAQ,SAAS,CAAA,GACpD,EACD,CAAA,EACD,CAAA,GACD,EACD,CAAA;AAEF,CAAC;AAED,MAAM,8BAA8B,MAA6E;AAC1G,QAAA,CAAC,mBAAmB,oBAAoB,IAAI,SAAS,MAAM,aAAa,QAAQ,eAAe,KAAK,MAAS;AAE7G,QAAA,kBAAkB,YAAY,CAAC,UAA8B;AAClE,QAAI,UAAU,QAAW;AACX,mBAAA,QAAQ,iBAAiB,KAAK;AAAA,IAAA,OACrC;AACN,mBAAa,WAAW,eAAe;AAAA,IACxC;AACA,yBAAqB,KAAK;AAAA,EAC3B,GAAG,CAAE,CAAA;AAEE,SAAA,CAAC,mBAAmB,eAAe;AAC3C;"}
1
+ {"version":3,"file":"ContemberClient.js","sources":["../../src/ContemberClient.tsx"],"sourcesContent":["import { memo, useCallback, useMemo, useState } from 'react'\nimport { SessionTokenContext, SessionTokenContextValue, SetSessionTokenContext } from './auth'\nimport { ApiBaseUrlContext, LoginTokenContext } from './config'\nimport { ProjectSlugContext, StageSlugContext } from './project'\n\nexport interface ContemberClientProps {\n\tapiBaseUrl: string\n\tsessionToken?: string\n\tloginToken?: string\n\tproject?: string\n\tstage?: string\n}\n\nconst sessionTokenKey = 'contember_session_token'\n\n/**\n * @group Entrypoints\n */\nexport const ContemberClient = memo<ContemberClientProps & { children: React.ReactNode }>(function ContemberClient({\n\tapiBaseUrl,\n\tchildren,\n\tloginToken,\n\tproject,\n\tsessionToken,\n\tstage,\n}) {\n\tconst [localStorageSessionToken, setLocalStorageSessionToken] = useLocalStorageSessionToken()\n\n\tconst sessionTokenContextValue = useMemo((): SessionTokenContextValue => ({\n\t\tpropsToken: sessionToken,\n\t\ttoken: localStorageSessionToken ?? sessionToken,\n\t\tsource: localStorageSessionToken ? 'localstorage' : (sessionToken ? 'props' : undefined),\n\t}), [localStorageSessionToken, sessionToken])\n\n\treturn (\n\t\t<ApiBaseUrlContext.Provider value={apiBaseUrl}>\n\t\t\t<LoginTokenContext.Provider value={loginToken}>\n\t\t\t\t<SetSessionTokenContext.Provider value={setLocalStorageSessionToken}>\n\t\t\t\t\t<SessionTokenContext.Provider value={sessionTokenContextValue}>\n\t\t\t\t\t\t<ProjectSlugContext.Provider value={project}>\n\t\t\t\t\t\t\t<StageSlugContext.Provider value={stage}>{children}</StageSlugContext.Provider>\n\t\t\t\t\t\t</ProjectSlugContext.Provider>\n\t\t\t\t\t</SessionTokenContext.Provider>\n\t\t\t\t</SetSessionTokenContext.Provider>\n\t\t\t</LoginTokenContext.Provider>\n\t\t</ApiBaseUrlContext.Provider>\n\t)\n})\n\nconst useLocalStorageSessionToken = (): [value: string | undefined, set: (token: string | undefined) => void] => {\n\tconst [sessionTokenInner, setSessionTokenInner] = useState(() => localStorage.getItem(sessionTokenKey) ?? undefined)\n\n\tconst setSessionToken = useCallback((token: string | undefined) => {\n\t\tif (token !== undefined) {\n\t\t\tlocalStorage.setItem(sessionTokenKey, token)\n\t\t} else {\n\t\t\tlocalStorage.removeItem(sessionTokenKey)\n\t\t}\n\t\tsetSessionTokenInner(token)\n\t}, [])\n\n\treturn [sessionTokenInner, setSessionToken]\n}\n"],"names":["ContemberClient"],"mappings":";;;;;;;;AAaA,MAAM,kBAAkB;AAKX,MAAA,kBAAkB,KAA2D,SAASA,iBAAgB;AAAA,EAClH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAG;AACF,QAAM,CAAC,0BAA0B,2BAA2B,IAAI,4BAA4B;AAEtF,QAAA,2BAA2B,QAAQ,OAAiC;AAAA,IACzE,YAAY;AAAA,IACZ,OAAO,4BAA4B;AAAA,IACnC,QAAQ,2BAA2B,iBAAkB,eAAe,UAAU;AAAA,EAC3E,IAAA,CAAC,0BAA0B,YAAY,CAAC;AAE5C,gCACE,kBAAkB,UAAlB,EAA2B,OAAO,YAClC,UAAC,uBAAA,kBAAkB,UAAlB,EAA2B,OAAO,YAClC,UAAA,uBAAC,uBAAuB,UAAvB,EAAgC,OAAO,6BACvC,UAAC,uBAAA,oBAAoB,UAApB,EAA6B,OAAO,0BACpC,UAAA,uBAAC,mBAAmB,UAAnB,EAA4B,OAAO,SACnC,iCAAC,iBAAiB,UAAjB,EAA0B,OAAO,OAAQ,SAA1C,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAA,IAAmD,EADpD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAA,IAEA,EAHD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAA,IAIA,EALD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAA,IAMA,EAPD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAA,IAQA,EATD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAUA,GAAA,IAAA;AAEF,CAAC;AAED,MAAM,8BAA8B,MAA6E;AAC1G,QAAA,CAAC,mBAAmB,oBAAoB,IAAI,SAAS,MAAM,aAAa,QAAQ,eAAe,KAAK,MAAS;AAE7G,QAAA,kBAAkB,YAAY,CAAC,UAA8B;AAClE,QAAI,UAAU,QAAW;AACX,mBAAA,QAAQ,iBAAiB,KAAK;AAAA,IAAA,OACrC;AACN,mBAAa,WAAW,eAAe;AAAA,IACxC;AACA,yBAAqB,KAAK;AAAA,EAC3B,GAAG,CAAE,CAAA;AAEE,SAAA,CAAC,mBAAmB,eAAe;AAC3C;"}
@@ -1,4 +1,4 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ import { jsxDEV } from "react/jsx-dev-runtime";
2
2
  import { createElement } from "react";
3
3
  import { renderChildren } from "./renderChildren.js";
4
4
  import { RenderElementFallback } from "./RenderElementFallback.js";
@@ -7,7 +7,11 @@ import { useRichTextRenderMetadata } from "./RichTextRenderMetadataContext.js";
7
7
  function ElementRenderer({ element, children, options }) {
8
8
  const metadata = useRichTextRenderMetadata();
9
9
  const elementMetadata = resolveRichTextElementMetadata(element, metadata);
10
- const fallback = /* @__PURE__ */ jsx(RenderElementFallback, { element, options, children });
10
+ const fallback = /* @__PURE__ */ jsxDEV(RenderElementFallback, { element, options, children }, void 0, false, {
11
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/ElementRenderer.tsx",
12
+ lineNumber: 56,
13
+ columnNumber: 3
14
+ }, this);
11
15
  return options.renderElement ? createElement(options.renderElement, {
12
16
  ...elementMetadata,
13
17
  element,
@@ -1 +1 @@
1
- {"version":3,"file":"ElementRenderer.js","sources":["../../../../src/components/RichTextRenderer/ElementRenderer.tsx"],"sourcesContent":["import type { ComponentType, ReactElement } from 'react'\nimport { createElement } from 'react'\nimport type { BuiltinElements } from './BuiltinElements'\nimport type { BuiltinLeaves } from './BuiltinLeaves'\nimport type { RenderChildrenOptions } from './renderChildren'\nimport { renderChildren } from './renderChildren'\nimport { RenderElementFallback } from './RenderElementFallback'\nimport { resolveRichTextElementMetadata } from './resolveRichTextElementMetadata'\nimport type { RichTextElement } from './RichTextElement'\nimport type { RichTextElementMetadata } from './RichTextElementMetadata'\nimport type { RichTextLeaf } from './RichTextLeaf'\nimport type { RichTextReference } from './RichTextReference'\nimport { useRichTextRenderMetadata } from './RichTextRenderMetadataContext'\n\nexport type RenderElement<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n\tReference extends RichTextReference = RichTextReference,\n> = ComponentType<\n\t{\n\t\telement: CustomElements | BuiltinElements<CustomElements, CustomLeaves>\n\t\tchildren: ReactElement\n\n\t\tfallback: ReactElement\n\n\t\trenderChildren: (\n\t\t\tchildren:\n\t\t\t\t| CustomElements\n\t\t\t\t| BuiltinElements<CustomElements, CustomLeaves>\n\t\t\t\t| CustomLeaves\n\t\t\t\t| BuiltinLeaves\n\t\t\t\t| Array<CustomElements | BuiltinElements<CustomElements, CustomLeaves> | CustomLeaves | BuiltinLeaves>,\n\t\t\toptions: RenderChildrenOptions<CustomElements, CustomLeaves>,\n\t\t) => ReactElement\n\t\trenderChildrenOptions: RenderChildrenOptions<CustomElements, CustomLeaves>\n\t} & RichTextElementMetadata<CustomElements, CustomLeaves, Reference>\n>\n\nexport interface ElementRendererProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> {\n\telement: CustomElements | BuiltinElements<CustomElements, CustomLeaves>\n\tchildren: ReactElement\n\toptions: RenderChildrenOptions<CustomElements, CustomLeaves>\n}\n\nexport function ElementRenderer<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>({ element, children, options }: ElementRendererProps<CustomElements, CustomLeaves>) {\n\tconst metadata = useRichTextRenderMetadata<CustomElements, CustomLeaves>()\n\tconst elementMetadata = resolveRichTextElementMetadata<CustomElements, CustomLeaves>(element, metadata)\n\n\tconst fallback = (\n\t\t<RenderElementFallback element={element as BuiltinElements} options={options}>\n\t\t\t{children}\n\t\t</RenderElementFallback>\n\t)\n\n\treturn options.renderElement\n\t\t? createElement(options.renderElement, {\n\t\t\t\t...elementMetadata,\n\t\t\t\telement,\n\t\t\t\tfallback,\n\t\t\t\tchildren,\n\t\t\t\trenderChildren,\n\t\t\t\trenderChildrenOptions: options,\n\t\t })\n\t\t: fallback\n}\n"],"names":[],"mappings":";;;;;;AA+CO,SAAS,gBAGd,EAAE,SAAS,UAAU,WAA+D;AACrF,QAAM,WAAW;AACX,QAAA,kBAAkB,+BAA6D,SAAS,QAAQ;AAEtG,QAAM,WACL,oBAAC,uBAAsB,EAAA,SAAqC,SAC1D,SACF,CAAA;AAGD,SAAO,QAAQ,gBACZ,cAAc,QAAQ,eAAe;AAAA,IACrC,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,uBAAuB;AAAA,EACtB,CAAA,IACD;AACJ;"}
1
+ {"version":3,"file":"ElementRenderer.js","sources":["../../../../src/components/RichTextRenderer/ElementRenderer.tsx"],"sourcesContent":["import type { ComponentType, ReactElement } from 'react'\nimport { createElement } from 'react'\nimport type { BuiltinElements } from './BuiltinElements'\nimport type { BuiltinLeaves } from './BuiltinLeaves'\nimport type { RenderChildrenOptions } from './renderChildren'\nimport { renderChildren } from './renderChildren'\nimport { RenderElementFallback } from './RenderElementFallback'\nimport { resolveRichTextElementMetadata } from './resolveRichTextElementMetadata'\nimport type { RichTextElement } from './RichTextElement'\nimport type { RichTextElementMetadata } from './RichTextElementMetadata'\nimport type { RichTextLeaf } from './RichTextLeaf'\nimport type { RichTextReference } from './RichTextReference'\nimport { useRichTextRenderMetadata } from './RichTextRenderMetadataContext'\n\nexport type RenderElement<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n\tReference extends RichTextReference = RichTextReference,\n> = ComponentType<\n\t{\n\t\telement: CustomElements | BuiltinElements<CustomElements, CustomLeaves>\n\t\tchildren: ReactElement\n\n\t\tfallback: ReactElement\n\n\t\trenderChildren: (\n\t\t\tchildren:\n\t\t\t\t| CustomElements\n\t\t\t\t| BuiltinElements<CustomElements, CustomLeaves>\n\t\t\t\t| CustomLeaves\n\t\t\t\t| BuiltinLeaves\n\t\t\t\t| Array<CustomElements | BuiltinElements<CustomElements, CustomLeaves> | CustomLeaves | BuiltinLeaves>,\n\t\t\toptions: RenderChildrenOptions<CustomElements, CustomLeaves>,\n\t\t) => ReactElement\n\t\trenderChildrenOptions: RenderChildrenOptions<CustomElements, CustomLeaves>\n\t} & RichTextElementMetadata<CustomElements, CustomLeaves, Reference>\n>\n\nexport interface ElementRendererProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> {\n\telement: CustomElements | BuiltinElements<CustomElements, CustomLeaves>\n\tchildren: ReactElement\n\toptions: RenderChildrenOptions<CustomElements, CustomLeaves>\n}\n\nexport function ElementRenderer<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>({ element, children, options }: ElementRendererProps<CustomElements, CustomLeaves>) {\n\tconst metadata = useRichTextRenderMetadata<CustomElements, CustomLeaves>()\n\tconst elementMetadata = resolveRichTextElementMetadata<CustomElements, CustomLeaves>(element, metadata)\n\n\tconst fallback = (\n\t\t<RenderElementFallback element={element as BuiltinElements} options={options}>\n\t\t\t{children}\n\t\t</RenderElementFallback>\n\t)\n\n\treturn options.renderElement\n\t\t? createElement(options.renderElement, {\n\t\t\t\t...elementMetadata,\n\t\t\t\telement,\n\t\t\t\tfallback,\n\t\t\t\tchildren,\n\t\t\t\trenderChildren,\n\t\t\t\trenderChildrenOptions: options,\n\t\t })\n\t\t: fallback\n}\n"],"names":[],"mappings":";;;;;;AA+CO,SAAS,gBAGd,EAAE,SAAS,UAAU,WAA+D;AACrF,QAAM,WAAW;AACX,QAAA,kBAAkB,+BAA6D,SAAS,QAAQ;AAEtG,QAAM,WACL,uBAAC,uBAAsB,EAAA,SAAqC,SAC1D,SADF,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAEA,GAAA,IAAA;AAGD,SAAO,QAAQ,gBACZ,cAAc,QAAQ,eAAe;AAAA,IACrC,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,uBAAuB;AAAA,EACtB,CAAA,IACD;AACJ;"}
@@ -1,4 +1,4 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ import { jsxDEV } from "react/jsx-dev-runtime";
2
2
  import { createElement } from "react";
3
3
  import { RenderLeafFallback } from "./RenderLeafFallback.js";
4
4
  import { useRichTextRenderMetadata } from "./RichTextRenderMetadataContext.js";
@@ -7,7 +7,11 @@ function LeafRenderer({
7
7
  renderLeaf
8
8
  }) {
9
9
  const formatVersion = useRichTextRenderMetadata().formatVersion;
10
- const fallback = /* @__PURE__ */ jsx(RenderLeafFallback, { leaf });
10
+ const fallback = /* @__PURE__ */ jsxDEV(RenderLeafFallback, { leaf }, void 0, false, {
11
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/LeafRenderer.tsx",
12
+ lineNumber: 26,
13
+ columnNumber: 19
14
+ }, this);
11
15
  return renderLeaf ? createElement(
12
16
  renderLeaf,
13
17
  {
@@ -1 +1 @@
1
- {"version":3,"file":"LeafRenderer.js","sources":["../../../../src/components/RichTextRenderer/LeafRenderer.tsx"],"sourcesContent":["import type { ComponentType, ReactElement } from 'react'\nimport { createElement } from 'react'\nimport type { BuiltinLeaves } from './BuiltinLeaves'\nimport { RenderLeafFallback } from './RenderLeafFallback'\nimport type { RichTextLeaf } from './RichTextLeaf'\nimport type { RichTextLeafMetadata } from './RichTextLeafMetadata'\nimport { useRichTextRenderMetadata } from './RichTextRenderMetadataContext'\n\nexport type RenderLeaf<CustomLeaves extends RichTextLeaf> = ComponentType<\n\t{\n\t\tleaf: CustomLeaves | BuiltinLeaves\n\t\tfallback: ReactElement\n\t} & RichTextLeafMetadata\n>\n\nexport interface LeafRendererProps<CustomLeaves extends RichTextLeaf = never> {\n\trenderLeaf?: RenderLeaf<CustomLeaves>\n\tleaf: CustomLeaves | BuiltinLeaves\n}\n\nexport function LeafRenderer<CustomLeaves extends RichTextLeaf = never>({\n\tleaf,\n\trenderLeaf,\n}: LeafRendererProps<CustomLeaves>) {\n\tconst formatVersion = useRichTextRenderMetadata().formatVersion\n\tconst fallback = <RenderLeafFallback leaf={leaf} />\n\n\treturn renderLeaf\n\t\t? createElement(\n\t\t\t\trenderLeaf,\n\t\t\t\t{\n\t\t\t\t\tformatVersion,\n\t\t\t\t\tleaf,\n\t\t\t\t\tfallback,\n\t\t\t\t},\n\t\t\t\tleaf.text,\n\t\t )\n\t\t: fallback\n}\n"],"names":[],"mappings":";;;;AAoBO,SAAS,aAAwD;AAAA,EACvE;AAAA,EACA;AACD,GAAoC;AAC7B,QAAA,gBAAgB,0BAA4B,EAAA;AAC5C,QAAA,WAAY,oBAAA,oBAAA,EAAmB,KAAY,CAAA;AAEjD,SAAO,aACJ;AAAA,IACA;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA,KAAK;AAAA,EAEL,IAAA;AACJ;"}
1
+ {"version":3,"file":"LeafRenderer.js","sources":["../../../../src/components/RichTextRenderer/LeafRenderer.tsx"],"sourcesContent":["import type { ComponentType, ReactElement } from 'react'\nimport { createElement } from 'react'\nimport type { BuiltinLeaves } from './BuiltinLeaves'\nimport { RenderLeafFallback } from './RenderLeafFallback'\nimport type { RichTextLeaf } from './RichTextLeaf'\nimport type { RichTextLeafMetadata } from './RichTextLeafMetadata'\nimport { useRichTextRenderMetadata } from './RichTextRenderMetadataContext'\n\nexport type RenderLeaf<CustomLeaves extends RichTextLeaf> = ComponentType<\n\t{\n\t\tleaf: CustomLeaves | BuiltinLeaves\n\t\tfallback: ReactElement\n\t} & RichTextLeafMetadata\n>\n\nexport interface LeafRendererProps<CustomLeaves extends RichTextLeaf = never> {\n\trenderLeaf?: RenderLeaf<CustomLeaves>\n\tleaf: CustomLeaves | BuiltinLeaves\n}\n\nexport function LeafRenderer<CustomLeaves extends RichTextLeaf = never>({\n\tleaf,\n\trenderLeaf,\n}: LeafRendererProps<CustomLeaves>) {\n\tconst formatVersion = useRichTextRenderMetadata().formatVersion\n\tconst fallback = <RenderLeafFallback leaf={leaf} />\n\n\treturn renderLeaf\n\t\t? createElement(\n\t\t\t\trenderLeaf,\n\t\t\t\t{\n\t\t\t\t\tformatVersion,\n\t\t\t\t\tleaf,\n\t\t\t\t\tfallback,\n\t\t\t\t},\n\t\t\t\tleaf.text,\n\t\t )\n\t\t: fallback\n}\n"],"names":[],"mappings":";;;;AAoBO,SAAS,aAAwD;AAAA,EACvE;AAAA,EACA;AACD,GAAoC;AAC7B,QAAA,gBAAgB,0BAA4B,EAAA;AAC5C,QAAA,WAAY,uBAAA,oBAAA,EAAmB,QAApB,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAgC,GAAA,IAAA;AAEjD,SAAO,aACJ;AAAA,IACA;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA,KAAK;AAAA,EAEL,IAAA;AACJ;"}
@@ -1,7 +1,8 @@
1
- import { jsx, jsxs, Fragment } from "react/jsx-runtime";
1
+ import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
2
2
  import { createElement } from "react";
3
3
  import { renderChildren } from "./renderChildren.js";
4
4
  import { resolveRichTextElementMetadata } from "./resolveRichTextElementMetadata.js";
5
+ import { RichTextRendererError } from "./RichTextRendererError.js";
5
6
  import { useRichTextRenderMetadata } from "./RichTextRenderMetadataContext.js";
6
7
  const getElementDataAttributes = (element, attributeNamePrefix = "contember-") => {
7
8
  const { children, referenceId, ...extendedSpecifics } = element;
@@ -16,45 +17,111 @@ function RenderElementFallback({ element, children, options }) {
16
17
  const attributes = getElementDataAttributes(element, options.attributeNamePrefix);
17
18
  switch (element.type) {
18
19
  case "anchor":
19
- return /* @__PURE__ */ jsx("a", { ...attributes, href: element.href, children });
20
+ return /* @__PURE__ */ jsxDEV("a", { ...attributes, href: element.href, children }, void 0, false, {
21
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
22
+ lineNumber: 49,
23
+ columnNumber: 5
24
+ }, this);
20
25
  case "heading":
21
26
  return createElement(`h${element.level}`, attributes, children);
22
27
  case "horizontalRule":
23
- return /* @__PURE__ */ jsx("hr", { ...attributes });
28
+ return /* @__PURE__ */ jsxDEV("hr", { ...attributes }, void 0, false, {
29
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
30
+ lineNumber: 56,
31
+ columnNumber: 11
32
+ }, this);
24
33
  case "listItem":
25
- return /* @__PURE__ */ jsx("li", { ...attributes, children });
34
+ return /* @__PURE__ */ jsxDEV("li", { ...attributes, children }, void 0, false, {
35
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
36
+ lineNumber: 58,
37
+ columnNumber: 11
38
+ }, this);
26
39
  case "orderedList":
27
- return /* @__PURE__ */ jsx("ol", { ...attributes, children });
40
+ return /* @__PURE__ */ jsxDEV("ol", { ...attributes, children }, void 0, false, {
41
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
42
+ lineNumber: 60,
43
+ columnNumber: 11
44
+ }, this);
28
45
  case "paragraph":
29
- return /* @__PURE__ */ jsx("p", { ...attributes, children });
46
+ return /* @__PURE__ */ jsxDEV("p", { ...attributes, children }, void 0, false, {
47
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
48
+ lineNumber: 62,
49
+ columnNumber: 11
50
+ }, this);
30
51
  case "reference": {
31
- return /* @__PURE__ */ jsx(ReferenceElementFallback, { element, children });
52
+ return /* @__PURE__ */ jsxDEV(ReferenceElementFallback, { element, children }, void 0, false, {
53
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
54
+ lineNumber: 64,
55
+ columnNumber: 11
56
+ }, this);
32
57
  }
33
58
  case "scrollTarget":
34
- return /* @__PURE__ */ jsx("span", { ...attributes, id: element.identifier, children });
59
+ return /* @__PURE__ */ jsxDEV("span", { ...attributes, id: element.identifier, children }, void 0, false, {
60
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
61
+ lineNumber: 68,
62
+ columnNumber: 5
63
+ }, this);
35
64
  case "table": {
36
65
  const firstRow = element.children[0];
37
66
  if (!firstRow || firstRow.headerScope !== "table") {
38
- return /* @__PURE__ */ jsx("table", { ...attributes, children: /* @__PURE__ */ jsx("tbody", { children }) });
67
+ return /* @__PURE__ */ jsxDEV("table", { ...attributes, children: /* @__PURE__ */ jsxDEV("tbody", { children }, void 0, false, {
68
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
69
+ lineNumber: 77,
70
+ columnNumber: 7
71
+ }, this) }, void 0, false, {
72
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
73
+ lineNumber: 76,
74
+ columnNumber: 6
75
+ }, this);
39
76
  }
40
- return /* @__PURE__ */ jsxs("table", { ...attributes, children: [
41
- /* @__PURE__ */ jsx("thead", { children: renderChildren([firstRow], options) }),
42
- /* @__PURE__ */ jsx("tbody", { children: renderChildren(element.children.slice(1), options) })
43
- ] });
77
+ return /* @__PURE__ */ jsxDEV("table", { ...attributes, children: [
78
+ /* @__PURE__ */ jsxDEV("thead", { children: renderChildren([firstRow], options) }, void 0, false, {
79
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
80
+ lineNumber: 83,
81
+ columnNumber: 6
82
+ }, this),
83
+ /* @__PURE__ */ jsxDEV("tbody", { children: renderChildren(element.children.slice(1), options) }, void 0, false, {
84
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
85
+ lineNumber: 84,
86
+ columnNumber: 6
87
+ }, this)
88
+ ] }, void 0, true, {
89
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
90
+ lineNumber: 82,
91
+ columnNumber: 5
92
+ }, this);
44
93
  }
45
94
  case "tableRow":
46
- return /* @__PURE__ */ jsx("tr", { ...attributes, children });
95
+ return /* @__PURE__ */ jsxDEV("tr", { ...attributes, children }, void 0, false, {
96
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
97
+ lineNumber: 89,
98
+ columnNumber: 11
99
+ }, this);
47
100
  case "tableCell": {
48
101
  if (element.headerScope) {
49
- return /* @__PURE__ */ jsx("th", { ...attributes, scope: element.headerScope, children });
102
+ return /* @__PURE__ */ jsxDEV("th", { ...attributes, scope: element.headerScope, children }, void 0, false, {
103
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
104
+ lineNumber: 93,
105
+ columnNumber: 6
106
+ }, this);
50
107
  }
51
- return /* @__PURE__ */ jsx("td", { ...attributes, children });
108
+ return /* @__PURE__ */ jsxDEV("td", { ...attributes, children }, void 0, false, {
109
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
110
+ lineNumber: 98,
111
+ columnNumber: 11
112
+ }, this);
52
113
  }
53
114
  case "unorderedList":
54
- return /* @__PURE__ */ jsx("ul", { ...attributes, children });
115
+ return /* @__PURE__ */ jsxDEV("ul", { ...attributes, children }, void 0, false, {
116
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
117
+ lineNumber: 101,
118
+ columnNumber: 11
119
+ }, this);
55
120
  default: {
56
121
  {
57
- return children;
122
+ throw new RichTextRendererError(
123
+ `RichTextRenderer: unknown element of type '${element.type}'.`
124
+ );
58
125
  }
59
126
  }
60
127
  }
@@ -64,17 +131,23 @@ function ReferenceElementFallback({ element, children }) {
64
131
  const elementMetadata = resolveRichTextElementMetadata(element, metadata);
65
132
  if (elementMetadata.referenceRenderer === void 0 || elementMetadata.referenceType === void 0 || elementMetadata.reference === void 0) {
66
133
  {
67
- return children;
134
+ throw new RichTextRendererError(
135
+ `RichTextRenderer: cannot render reference of type '${elementMetadata.referenceType}'.`
136
+ );
68
137
  }
69
138
  }
70
- return /* @__PURE__ */ jsx(Fragment, { children: elementMetadata.referenceRenderer?.({
139
+ return /* @__PURE__ */ jsxDEV(Fragment, { children: elementMetadata.referenceRenderer?.({
71
140
  referenceType: elementMetadata.referenceType,
72
141
  referenceRenderer: elementMetadata.referenceRenderer,
73
142
  reference: elementMetadata.reference,
74
143
  formatVersion: elementMetadata.formatVersion,
75
144
  element,
76
145
  children
77
- }) });
146
+ }) }, void 0, false, {
147
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderElementFallback.tsx",
148
+ lineNumber: 136,
149
+ columnNumber: 3
150
+ }, this);
78
151
  }
79
152
  export {
80
153
  RenderElementFallback
@@ -1 +1 @@
1
- {"version":3,"file":"RenderElementFallback.js","sources":["../../../../src/components/RichTextRenderer/RenderElementFallback.tsx"],"sourcesContent":["import { createElement, ReactElement } from 'react'\nimport type { BuiltinElements, RichTextReferenceElement, RichTextTableRowElement } from './BuiltinElements'\nimport { renderChildren, RenderChildrenOptions } from './renderChildren'\nimport { resolveRichTextElementMetadata } from './resolveRichTextElementMetadata'\nimport type { RichTextElement } from './RichTextElement'\nimport type { RichTextLeaf } from './RichTextLeaf'\nimport { RichTextRendererError } from './RichTextRendererError'\nimport { useRichTextRenderMetadata } from './RichTextRenderMetadataContext'\n\nexport interface RenderElementFallbackProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> {\n\telement: BuiltinElements<CustomElements, CustomLeaves>\n\tchildren: ReactElement\n\toptions: RenderChildrenOptions<CustomElements, CustomLeaves>\n}\n\nconst getElementDataAttributes = <\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>(\n\telement: RichTextElement<CustomElements, CustomLeaves>,\n\tattributeNamePrefix: string = 'contember-',\n): {\n\t[dataAttribute: string]: string | number | boolean\n} => {\n\tconst { children, referenceId, ...extendedSpecifics } = element\n\n\treturn Object.fromEntries(\n\t\tObject.entries(extendedSpecifics)\n\t\t\t.filter(([, value]) => {\n\t\t\t\tconst t = typeof value\n\t\t\t\treturn t === 'string' || t === 'number' || t === 'boolean'\n\t\t\t})\n\t\t\t.map(([attribute, value]) => [`data-${attributeNamePrefix}${attribute.toLowerCase()}`, value]),\n\t)\n}\n\nexport function RenderElementFallback<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>({ element, children, options }: RenderElementFallbackProps<CustomElements, CustomLeaves>) {\n\tconst attributes = getElementDataAttributes(element, options.attributeNamePrefix)\n\n\tswitch (element.type) {\n\t\tcase 'anchor':\n\t\t\treturn (\n\t\t\t\t<a {...attributes} href={element.href}>\n\t\t\t\t\t{children}\n\t\t\t\t</a>\n\t\t\t)\n\t\tcase 'heading':\n\t\t\treturn createElement(`h${element.level}`, attributes, children) // TODO numbered\n\t\tcase 'horizontalRule':\n\t\t\treturn <hr {...attributes} />\n\t\tcase 'listItem':\n\t\t\treturn <li {...attributes}>{children}</li>\n\t\tcase 'orderedList':\n\t\t\treturn <ol {...attributes}>{children}</ol>\n\t\tcase 'paragraph':\n\t\t\treturn <p {...attributes}>{children}</p>\n\t\tcase 'reference': {\n\t\t\treturn <ReferenceElementFallback element={element} children={children} />\n\t\t}\n\t\tcase 'scrollTarget':\n\t\t\treturn (\n\t\t\t\t<span {...attributes} id={element.identifier}>\n\t\t\t\t\t{children}\n\t\t\t\t</span>\n\t\t\t)\n\t\tcase 'table': {\n\t\t\tconst firstRow = element.children[0] as RichTextTableRowElement<CustomElements, CustomLeaves> | undefined\n\t\t\tif (!firstRow || firstRow.headerScope !== 'table') {\n\t\t\t\treturn (\n\t\t\t\t\t<table {...attributes}>\n\t\t\t\t\t\t<tbody>{children}</tbody>\n\t\t\t\t\t</table>\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<table {...attributes}>\n\t\t\t\t\t<thead>{renderChildren<CustomElements, CustomLeaves>([firstRow], options)}</thead>\n\t\t\t\t\t<tbody>{renderChildren<CustomElements, CustomLeaves>(element.children.slice(1) as any, options)}</tbody>\n\t\t\t\t</table>\n\t\t\t)\n\t\t}\n\t\tcase 'tableRow':\n\t\t\treturn <tr {...attributes}>{children}</tr>\n\t\tcase 'tableCell': {\n\t\t\tif (element.headerScope) {\n\t\t\t\treturn (\n\t\t\t\t\t<th {...attributes} scope={element.headerScope}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</th>\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn <td {...attributes}>{children}</td>\n\t\t}\n\t\tcase 'unorderedList':\n\t\t\treturn <ul {...attributes}>{children}</ul>\n\t\tdefault: {\n\t\t\tif (import.meta.env.DEV) {\n\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t`RichTextRenderer: unknown element of type '${(element as { type: string }).type}'.`,\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\treturn children // At least render the text contents\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction ReferenceElementFallback<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>({ element, children }: { element: RichTextReferenceElement<CustomElements, CustomLeaves>; children: ReactElement }) {\n\tconst metadata = useRichTextRenderMetadata<CustomElements, CustomLeaves>()\n\tconst elementMetadata = resolveRichTextElementMetadata<CustomElements, CustomLeaves>(element, metadata)\n\n\tif (\n\t\telementMetadata.referenceRenderer === undefined ||\n\t\telementMetadata.referenceType === undefined ||\n\t\telementMetadata.reference === undefined\n\t) {\n\t\tif (import.meta.env.DEV) {\n\t\t\tthrow new RichTextRendererError(\n\t\t\t\t`RichTextRenderer: cannot render reference of type '${elementMetadata.referenceType}'.`,\n\t\t\t)\n\t\t} else {\n\t\t\treturn children // At least render the text contents\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{elementMetadata.referenceRenderer?.({\n\t\t\t\treferenceType: elementMetadata.referenceType,\n\t\t\t\treferenceRenderer: elementMetadata.referenceRenderer,\n\t\t\t\treference: elementMetadata.reference,\n\t\t\t\tformatVersion: elementMetadata.formatVersion,\n\t\t\t\telement,\n\t\t\t\tchildren,\n\t\t\t})}\n\t\t</>\n\t)\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderElementFallback.js","sources":["../../../../src/components/RichTextRenderer/RenderElementFallback.tsx"],"sourcesContent":["import { createElement, ReactElement } from 'react'\nimport type { BuiltinElements, RichTextReferenceElement, RichTextTableRowElement } from './BuiltinElements'\nimport { renderChildren, RenderChildrenOptions } from './renderChildren'\nimport { resolveRichTextElementMetadata } from './resolveRichTextElementMetadata'\nimport type { RichTextElement } from './RichTextElement'\nimport type { RichTextLeaf } from './RichTextLeaf'\nimport { RichTextRendererError } from './RichTextRendererError'\nimport { useRichTextRenderMetadata } from './RichTextRenderMetadataContext'\n\nexport interface RenderElementFallbackProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> {\n\telement: BuiltinElements<CustomElements, CustomLeaves>\n\tchildren: ReactElement\n\toptions: RenderChildrenOptions<CustomElements, CustomLeaves>\n}\n\nconst getElementDataAttributes = <\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>(\n\telement: RichTextElement<CustomElements, CustomLeaves>,\n\tattributeNamePrefix: string = 'contember-',\n): {\n\t[dataAttribute: string]: string | number | boolean\n} => {\n\tconst { children, referenceId, ...extendedSpecifics } = element\n\n\treturn Object.fromEntries(\n\t\tObject.entries(extendedSpecifics)\n\t\t\t.filter(([, value]) => {\n\t\t\t\tconst t = typeof value\n\t\t\t\treturn t === 'string' || t === 'number' || t === 'boolean'\n\t\t\t})\n\t\t\t.map(([attribute, value]) => [`data-${attributeNamePrefix}${attribute.toLowerCase()}`, value]),\n\t)\n}\n\nexport function RenderElementFallback<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>({ element, children, options }: RenderElementFallbackProps<CustomElements, CustomLeaves>) {\n\tconst attributes = getElementDataAttributes(element, options.attributeNamePrefix)\n\n\tswitch (element.type) {\n\t\tcase 'anchor':\n\t\t\treturn (\n\t\t\t\t<a {...attributes} href={element.href}>\n\t\t\t\t\t{children}\n\t\t\t\t</a>\n\t\t\t)\n\t\tcase 'heading':\n\t\t\treturn createElement(`h${element.level}`, attributes, children) // TODO numbered\n\t\tcase 'horizontalRule':\n\t\t\treturn <hr {...attributes} />\n\t\tcase 'listItem':\n\t\t\treturn <li {...attributes}>{children}</li>\n\t\tcase 'orderedList':\n\t\t\treturn <ol {...attributes}>{children}</ol>\n\t\tcase 'paragraph':\n\t\t\treturn <p {...attributes}>{children}</p>\n\t\tcase 'reference': {\n\t\t\treturn <ReferenceElementFallback element={element} children={children} />\n\t\t}\n\t\tcase 'scrollTarget':\n\t\t\treturn (\n\t\t\t\t<span {...attributes} id={element.identifier}>\n\t\t\t\t\t{children}\n\t\t\t\t</span>\n\t\t\t)\n\t\tcase 'table': {\n\t\t\tconst firstRow = element.children[0] as RichTextTableRowElement<CustomElements, CustomLeaves> | undefined\n\t\t\tif (!firstRow || firstRow.headerScope !== 'table') {\n\t\t\t\treturn (\n\t\t\t\t\t<table {...attributes}>\n\t\t\t\t\t\t<tbody>{children}</tbody>\n\t\t\t\t\t</table>\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<table {...attributes}>\n\t\t\t\t\t<thead>{renderChildren<CustomElements, CustomLeaves>([firstRow], options)}</thead>\n\t\t\t\t\t<tbody>{renderChildren<CustomElements, CustomLeaves>(element.children.slice(1) as any, options)}</tbody>\n\t\t\t\t</table>\n\t\t\t)\n\t\t}\n\t\tcase 'tableRow':\n\t\t\treturn <tr {...attributes}>{children}</tr>\n\t\tcase 'tableCell': {\n\t\t\tif (element.headerScope) {\n\t\t\t\treturn (\n\t\t\t\t\t<th {...attributes} scope={element.headerScope}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</th>\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn <td {...attributes}>{children}</td>\n\t\t}\n\t\tcase 'unorderedList':\n\t\t\treturn <ul {...attributes}>{children}</ul>\n\t\tdefault: {\n\t\t\tif (import.meta.env.DEV) {\n\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t`RichTextRenderer: unknown element of type '${(element as { type: string }).type}'.`,\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\treturn children // At least render the text contents\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction ReferenceElementFallback<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>({ element, children }: { element: RichTextReferenceElement<CustomElements, CustomLeaves>; children: ReactElement }) {\n\tconst metadata = useRichTextRenderMetadata<CustomElements, CustomLeaves>()\n\tconst elementMetadata = resolveRichTextElementMetadata<CustomElements, CustomLeaves>(element, metadata)\n\n\tif (\n\t\telementMetadata.referenceRenderer === undefined ||\n\t\telementMetadata.referenceType === undefined ||\n\t\telementMetadata.reference === undefined\n\t) {\n\t\tif (import.meta.env.DEV) {\n\t\t\tthrow new RichTextRendererError(\n\t\t\t\t`RichTextRenderer: cannot render reference of type '${elementMetadata.referenceType}'.`,\n\t\t\t)\n\t\t} else {\n\t\t\treturn children // At least render the text contents\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{elementMetadata.referenceRenderer?.({\n\t\t\t\treferenceType: elementMetadata.referenceType,\n\t\t\t\treferenceRenderer: elementMetadata.referenceRenderer,\n\t\t\t\treference: elementMetadata.reference,\n\t\t\t\tformatVersion: elementMetadata.formatVersion,\n\t\t\t\telement,\n\t\t\t\tchildren,\n\t\t\t})}\n\t\t</>\n\t)\n}\n"],"names":[],"mappings":"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"}
@@ -1,36 +1,72 @@
1
- import { jsx, Fragment, jsxs } from "react/jsx-runtime";
1
+ import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
2
2
  import { Fragment as Fragment$1 } from "react";
3
3
  function jsxN2br(text) {
4
4
  const lines = text.split("\n");
5
5
  if (lines.length <= 1) {
6
6
  return text;
7
7
  }
8
- return lines.map((line, i) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
9
- !!i && /* @__PURE__ */ jsx("br", {}),
8
+ return lines.map((line, i) => /* @__PURE__ */ jsxDEV(Fragment$1, { children: [
9
+ !!i && /* @__PURE__ */ jsxDEV("br", {}, void 0, false, {
10
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
11
+ lineNumber: 15,
12
+ columnNumber: 12
13
+ }, this),
10
14
  line
11
- ] }, i));
15
+ ] }, i, true, {
16
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
17
+ lineNumber: 14,
18
+ columnNumber: 3
19
+ }, this));
12
20
  }
13
21
  function RenderLeafFallback({ leaf }) {
14
22
  let element = jsxN2br(leaf.text);
15
23
  if ("isCode" in leaf && leaf.isCode === true) {
16
- element = /* @__PURE__ */ jsx("code", { children: element });
24
+ element = /* @__PURE__ */ jsxDEV("code", { children: element }, void 0, false, {
25
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
26
+ lineNumber: 25,
27
+ columnNumber: 13
28
+ }, this);
17
29
  }
18
30
  if ("isStruckThrough" in leaf && leaf.isStruckThrough === true) {
19
- element = /* @__PURE__ */ jsx("s", { children: element });
31
+ element = /* @__PURE__ */ jsxDEV("s", { children: element }, void 0, false, {
32
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
33
+ lineNumber: 28,
34
+ columnNumber: 13
35
+ }, this);
20
36
  }
21
37
  if ("isHighlighted" in leaf && leaf.isHighlighted === true) {
22
- element = /* @__PURE__ */ jsx("em", { children: element });
38
+ element = /* @__PURE__ */ jsxDEV("em", { children: element }, void 0, false, {
39
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
40
+ lineNumber: 31,
41
+ columnNumber: 13
42
+ }, this);
23
43
  }
24
44
  if ("isUnderlined" in leaf && leaf.isUnderlined === true) {
25
- element = /* @__PURE__ */ jsx("u", { children: element });
45
+ element = /* @__PURE__ */ jsxDEV("u", { children: element }, void 0, false, {
46
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
47
+ lineNumber: 34,
48
+ columnNumber: 13
49
+ }, this);
26
50
  }
27
51
  if ("isItalic" in leaf && leaf.isItalic === true) {
28
- element = /* @__PURE__ */ jsx("i", { children: element });
52
+ element = /* @__PURE__ */ jsxDEV("i", { children: element }, void 0, false, {
53
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
54
+ lineNumber: 37,
55
+ columnNumber: 13
56
+ }, this);
29
57
  }
30
58
  if ("isBold" in leaf && leaf.isBold === true) {
31
- element = /* @__PURE__ */ jsx("b", { children: element });
59
+ element = /* @__PURE__ */ jsxDEV("b", { children: element }, void 0, false, {
60
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
61
+ lineNumber: 40,
62
+ columnNumber: 13
63
+ }, this);
32
64
  }
33
- return /* @__PURE__ */ jsx(Fragment, { children: element });
65
+ return /* @__PURE__ */ jsxDEV(Fragment, { children: element }, void 0, false, {
66
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
67
+ lineNumber: 42,
68
+ columnNumber: 9
69
+ }, this);
34
70
  }
35
71
  export {
36
72
  RenderLeafFallback
@@ -1 +1 @@
1
- {"version":3,"file":"RenderLeafFallback.js","sources":["../../../../src/components/RichTextRenderer/RenderLeafFallback.tsx"],"sourcesContent":["import { Fragment, ReactNode } from 'react'\nimport type { BuiltinLeaves } from './BuiltinLeaves'\n\nexport interface RenderLeafFallbackProps {\n\tleaf: BuiltinLeaves\n}\n\nfunction jsxN2br(text: string): ReactNode {\n\tconst lines = text.split('\\n')\n\tif (lines.length <= 1) {\n\t\treturn text\n\t}\n\treturn lines.map((line, i) => (\n\t\t<Fragment key={i}>\n\t\t\t{!!i && <br />}\n\t\t\t{line}\n\t\t</Fragment>\n\t))\n}\n\nexport function RenderLeafFallback({ leaf }: RenderLeafFallbackProps) {\n\tlet element = jsxN2br(leaf.text)\n\n\tif ('isCode' in leaf && leaf.isCode === true) {\n\t\telement = <code>{element}</code>\n\t}\n\tif ('isStruckThrough' in leaf && leaf.isStruckThrough === true) {\n\t\telement = <s>{element}</s>\n\t}\n\tif ('isHighlighted' in leaf && leaf.isHighlighted === true) {\n\t\telement = <em>{element}</em>\n\t}\n\tif ('isUnderlined' in leaf && leaf.isUnderlined === true) {\n\t\telement = <u>{element}</u>\n\t}\n\tif ('isItalic' in leaf && leaf.isItalic === true) {\n\t\telement = <i>{element}</i>\n\t}\n\tif ('isBold' in leaf && leaf.isBold === true) {\n\t\telement = <b>{element}</b>\n\t}\n\treturn <>{element}</>\n}\n"],"names":["Fragment"],"mappings":";;AAOA,SAAS,QAAQ,MAAyB;AACnC,QAAA,QAAQ,KAAK,MAAM,IAAI;AACzB,MAAA,MAAM,UAAU,GAAG;AACf,WAAA;AAAA,EACR;AACA,SAAO,MAAM,IAAI,CAAC,MAAM,MACvB,qBAACA,YAAA,EACC,UAAA;AAAA,IAAC,CAAA,CAAC,KAAK,oBAAC,MAAG,CAAA,CAAA;AAAA,IACX;AAAA,EAAA,EAAA,GAFa,CAGf,CACA;AACF;AAEgB,SAAA,mBAAmB,EAAE,QAAiC;AACjE,MAAA,UAAU,QAAQ,KAAK,IAAI;AAE/B,MAAI,YAAY,QAAQ,KAAK,WAAW,MAAM;AACnC,cAAA,oBAAC,UAAM,UAAQ,QAAA,CAAA;AAAA,EAC1B;AACA,MAAI,qBAAqB,QAAQ,KAAK,oBAAoB,MAAM;AACrD,cAAA,oBAAC,OAAG,UAAQ,QAAA,CAAA;AAAA,EACvB;AACA,MAAI,mBAAmB,QAAQ,KAAK,kBAAkB,MAAM;AACjD,cAAA,oBAAC,QAAI,UAAQ,QAAA,CAAA;AAAA,EACxB;AACA,MAAI,kBAAkB,QAAQ,KAAK,iBAAiB,MAAM;AAC/C,cAAA,oBAAC,OAAG,UAAQ,QAAA,CAAA;AAAA,EACvB;AACA,MAAI,cAAc,QAAQ,KAAK,aAAa,MAAM;AACvC,cAAA,oBAAC,OAAG,UAAQ,QAAA,CAAA;AAAA,EACvB;AACA,MAAI,YAAY,QAAQ,KAAK,WAAW,MAAM;AACnC,cAAA,oBAAC,OAAG,UAAQ,QAAA,CAAA;AAAA,EACvB;AACA,yCAAU,UAAQ,QAAA,CAAA;AACnB;"}
1
+ {"version":3,"file":"RenderLeafFallback.js","sources":["../../../../src/components/RichTextRenderer/RenderLeafFallback.tsx"],"sourcesContent":["import { Fragment, ReactNode } from 'react'\nimport type { BuiltinLeaves } from './BuiltinLeaves'\n\nexport interface RenderLeafFallbackProps {\n\tleaf: BuiltinLeaves\n}\n\nfunction jsxN2br(text: string): ReactNode {\n\tconst lines = text.split('\\n')\n\tif (lines.length <= 1) {\n\t\treturn text\n\t}\n\treturn lines.map((line, i) => (\n\t\t<Fragment key={i}>\n\t\t\t{!!i && <br />}\n\t\t\t{line}\n\t\t</Fragment>\n\t))\n}\n\nexport function RenderLeafFallback({ leaf }: RenderLeafFallbackProps) {\n\tlet element = jsxN2br(leaf.text)\n\n\tif ('isCode' in leaf && leaf.isCode === true) {\n\t\telement = <code>{element}</code>\n\t}\n\tif ('isStruckThrough' in leaf && leaf.isStruckThrough === true) {\n\t\telement = <s>{element}</s>\n\t}\n\tif ('isHighlighted' in leaf && leaf.isHighlighted === true) {\n\t\telement = <em>{element}</em>\n\t}\n\tif ('isUnderlined' in leaf && leaf.isUnderlined === true) {\n\t\telement = <u>{element}</u>\n\t}\n\tif ('isItalic' in leaf && leaf.isItalic === true) {\n\t\telement = <i>{element}</i>\n\t}\n\tif ('isBold' in leaf && leaf.isBold === true) {\n\t\telement = <b>{element}</b>\n\t}\n\treturn <>{element}</>\n}\n"],"names":["Fragment"],"mappings":";;AAOA,SAAS,QAAQ,MAAyB;AACnC,QAAA,QAAQ,KAAK,MAAM,IAAI;AACzB,MAAA,MAAM,UAAU,GAAG;AACf,WAAA;AAAA,EACR;AACA,SAAO,MAAM,IAAI,CAAC,MAAM,MACvB,uBAACA,YAAA,EACC,UAAA;AAAA,IAAC,CAAA,CAAC,KAAK,uBAAC,MAAD,CAAA,GAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAI,GAAA,IAAA;AAAA,IACX;AAAA,EAAA,EAAA,GAFa,GAAf,MAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAA,IAGA,CACA;AACF;AAEgB,SAAA,mBAAmB,EAAE,QAAiC;AACjE,MAAA,UAAU,QAAQ,KAAK,IAAI;AAE/B,MAAI,YAAY,QAAQ,KAAK,WAAW,MAAM;AACnC,cAAA,uBAAC,UAAM,UAAP,WAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAe,GAAA,IAAA;AAAA,EAC1B;AACA,MAAI,qBAAqB,QAAQ,KAAK,oBAAoB,MAAM;AACrD,cAAA,uBAAC,OAAG,UAAJ,WAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAY,GAAA,IAAA;AAAA,EACvB;AACA,MAAI,mBAAmB,QAAQ,KAAK,kBAAkB,MAAM;AACjD,cAAA,uBAAC,QAAI,UAAL,WAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAa,GAAA,IAAA;AAAA,EACxB;AACA,MAAI,kBAAkB,QAAQ,KAAK,iBAAiB,MAAM;AAC/C,cAAA,uBAAC,OAAG,UAAJ,WAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAY,GAAA,IAAA;AAAA,EACvB;AACA,MAAI,cAAc,QAAQ,KAAK,aAAa,MAAM;AACvC,cAAA,uBAAC,OAAG,UAAJ,WAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAY,GAAA,IAAA;AAAA,EACvB;AACA,MAAI,YAAY,QAAQ,KAAK,WAAW,MAAM;AACnC,cAAA,uBAAC,OAAG,UAAJ,WAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAY,GAAA,IAAA;AAAA,EACvB;AACA,4CAAU,UAAH,WAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAW,GAAA,IAAA;AACnB;"}
@@ -1,4 +1,4 @@
1
- import { jsx, Fragment } from "react/jsx-runtime";
1
+ import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
2
2
  import { memo, useMemo, createElement } from "react";
3
3
  import { defaultDeserialize } from "./defaultDeserialize.js";
4
4
  import { renderChildren } from "./renderChildren.js";
@@ -8,7 +8,11 @@ const RichTextRenderer = memo(function RichTextRenderer2({
8
8
  deserialize = defaultDeserialize,
9
9
  renderElement,
10
10
  renderLeaf,
11
- renderBlock = ({ children }) => /* @__PURE__ */ jsx(Fragment, { children }),
11
+ renderBlock = ({ children }) => /* @__PURE__ */ jsxDEV(Fragment, { children }, void 0, false, {
12
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RichTextRenderer.tsx",
13
+ lineNumber: 52,
14
+ columnNumber: 34
15
+ }, this),
12
16
  attributeNamePrefix,
13
17
  ...sourceProps
14
18
  }) {
@@ -78,7 +82,7 @@ const RichTextRenderer = memo(function RichTextRenderer2({
78
82
  }
79
83
  throw new RichTextRendererError(`RichTextRenderer: invalid data supplied.`);
80
84
  }, [deserialize, sourceProps]);
81
- return /* @__PURE__ */ jsx(Fragment, { children: normalizedSource.map((block, i) => /* @__PURE__ */ jsx(
85
+ return /* @__PURE__ */ jsxDEV(Fragment, { children: normalizedSource.map((block, i) => /* @__PURE__ */ jsxDEV(
82
86
  RichTextRenderMetadataContext.Provider,
83
87
  {
84
88
  value: {
@@ -100,8 +104,19 @@ const RichTextRenderer = memo(function RichTextRenderer2({
100
104
  })
101
105
  )
102
106
  },
103
- block.id ?? i
104
- )) });
107
+ block.id ?? i,
108
+ false,
109
+ {
110
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RichTextRenderer.tsx",
111
+ lineNumber: 143,
112
+ columnNumber: 5
113
+ },
114
+ this
115
+ )) }, void 0, false, {
116
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RichTextRenderer.tsx",
117
+ lineNumber: 141,
118
+ columnNumber: 3
119
+ }, this);
105
120
  });
106
121
  export {
107
122
  RichTextRenderer
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextRenderer.js","sources":["../../../../src/components/RichTextRenderer/RichTextRenderer.tsx"],"sourcesContent":["import { ComponentType, createElement, memo, ReactElement, ReactNode, useMemo } from 'react'\nimport { defaultDeserialize } from './defaultDeserialize'\nimport type { RenderElement } from './ElementRenderer'\nimport type { RenderLeaf } from './LeafRenderer'\nimport type { NormalizedRichTextBlock } from './NormalizedRichTextBlock'\nimport type { ReferenceRenderer } from './ReferenceRenderer'\nimport { renderChildren } from './renderChildren'\nimport type { RichTextBlock } from './RichTextBlock'\nimport type { RichTextElement } from './RichTextElement'\nimport type { RichTextLeaf } from './RichTextLeaf'\nimport type { RichTextReference } from './RichTextReference'\nimport { RichTextRendererError } from './RichTextRendererError'\nimport { RichTextRenderMetadataContext } from './RichTextRenderMetadataContext'\nimport type { RootEditorNode } from './RootEditorNode'\n\nexport interface RichTextRendererFieldProps {\n\tsource: string | null\n}\n\nexport interface RichTextRendererBlockProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> {\n\tblocks: RichTextBlock[]\n\treferenceRenderers?: Record<string, ReferenceRenderer<any, CustomElements, CustomLeaves>>\n\tsourceField?: string\n\treferencesField?: string\n\treferenceDiscriminationField?: string\n}\n\nexport type RichTextRendererProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> = {\n\tdeserialize?: (source: string) => RootEditorNode<CustomElements, CustomLeaves>\n\trenderElement?: RenderElement<CustomElements, CustomLeaves>\n\trenderLeaf?: RenderLeaf<CustomLeaves>\n\tattributeNamePrefix?: string\n\trenderBlock?: ComponentType<{ block: unknown, children?: ReactNode }>\n} & (RichTextRendererFieldProps | RichTextRendererBlockProps<CustomElements, CustomLeaves>)\n\n/**\n * @group Content rendering\n */\nexport const RichTextRenderer = memo(function RichTextRenderer<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>({\n\tdeserialize = defaultDeserialize,\n\trenderElement,\n\trenderLeaf,\n\trenderBlock = ({ children }) => <>{children}</>,\n\tattributeNamePrefix,\n\t...sourceProps\n}: RichTextRendererProps<CustomElements, CustomLeaves>) {\n\tconst normalizedSource = useMemo<NormalizedRichTextBlock<CustomElements, CustomLeaves>[]>(() => {\n\t\tif ('source' in sourceProps && !('blocks' in sourceProps)) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tcontent: sourceProps.source\n\t\t\t\t\t\t? deserialize(sourceProps.source)\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tformatVersion: 0,\n\t\t\t\t\t\t\t\tchildren: [],\n\t\t\t\t\t\t },\n\t\t\t\t\tid: undefined,\n\t\t\t\t\treferencesField: undefined,\n\t\t\t\t\treferenceDiscriminationField: undefined,\n\t\t\t\t\treferenceRenderers: {},\n\t\t\t\t\treferences: undefined,\n\t\t\t\t},\n\t\t\t]\n\t\t}\n\t\tif (!('source' in sourceProps)) {\n\t\t\tconst sourceField = sourceProps.sourceField ?? 'source'\n\t\t\tconst referencesField = sourceProps.referencesField ?? 'references'\n\t\t\tconst referenceDiscriminationField = sourceProps.referenceDiscriminationField ?? 'type'\n\n\t\t\treturn sourceProps.blocks.map(block => {\n\t\t\t\tif (!(sourceField in block)) {\n\t\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t\t`Found a block without a '${sourceField}' field. ` +\n\t\t\t\t\t\t\t(sourceProps.sourceField === undefined\n\t\t\t\t\t\t\t\t? `The 'sourceField' prop has not been supplied, and so '${sourceField}' was used as a default.`\n\t\t\t\t\t\t\t\t: `That is what the 'sourceField' prop has been set to, and so either this is a typo, ` +\n\t\t\t\t\t\t\t\t `or the data supplied is invalid.`),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst source = block[sourceField]\n\t\t\t\tif (typeof source !== 'string') {\n\t\t\t\t\tthrow new RichTextRendererError(`Found a block whose source is not a string.`)\n\t\t\t\t}\n\n\t\t\t\tif (sourceProps.referencesField !== undefined && !(referencesField in block)) {\n\t\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t\t`The 'referencesField' prop is set to '${referencesField}' but a block without such field ` +\n\t\t\t\t\t\t\t`has been encountered. Unless this is just a typo, ` +\n\t\t\t\t\t\t\t`if you do not wish to use references, avoid supplying the 'referencesField' prop.`,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst references = block[referencesField]\n\n\t\t\t\tlet normalizedReferences: Map<string, RichTextReference> | undefined = undefined\n\t\t\t\tif (references) {\n\t\t\t\t\tif (typeof Object(references)[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new RichTextRendererError(`The set of references must be an iterable!`)\n\t\t\t\t\t}\n\n\t\t\t\t\tnormalizedReferences = new Map()\n\t\t\t\t\tfor (const reference of references as Iterable<RichTextReference>) {\n\t\t\t\t\t\tif (!('id' in reference)) {\n\t\t\t\t\t\t\tthrow new RichTextRendererError(`Found a reference without an id field.`)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!(referenceDiscriminationField in reference)) {\n\t\t\t\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t\t\t\t`Found a reference without a '${referenceDiscriminationField}' field. ` +\n\t\t\t\t\t\t\t\t\t(sourceProps.referenceDiscriminationField === undefined\n\t\t\t\t\t\t\t\t\t\t? `The 'referenceDiscriminationField' prop has not been supplied, ` +\n\t\t\t\t\t\t\t\t\t\t `and so '${referenceDiscriminationField}' was used as a default.`\n\t\t\t\t\t\t\t\t\t\t: `That is what the 'referenceDiscriminationField' prop has been set to, ` +\n\t\t\t\t\t\t\t\t\t\t `and so either this is a typo, or the data supplied is invalid.`),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnormalizedReferences.set(reference.id, reference)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tid: typeof block.id === 'string' ? block.id : undefined,\n\t\t\t\t\tcontent: deserialize(source),\n\t\t\t\t\treferenceDiscriminationField,\n\t\t\t\t\treferenceRenderers: sourceProps.referenceRenderers ?? {},\n\t\t\t\t\treferencesField,\n\t\t\t\t\treferences: normalizedReferences,\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tthrow new RichTextRendererError(`RichTextRenderer: invalid data supplied.`)\n\t}, [deserialize, sourceProps])\n\n\treturn (\n\t\t<>\n\t\t\t{normalizedSource.map((block, i) => (\n\t\t\t\t<RichTextRenderMetadataContext.Provider\n\t\t\t\t\tkey={block.id ?? i}\n\t\t\t\t\tvalue={{\n\t\t\t\t\t\tformatVersion: block.content.formatVersion,\n\t\t\t\t\t\treferenceRenderers: block.referenceRenderers,\n\t\t\t\t\t\treferencesField: block.referencesField,\n\t\t\t\t\t\treferenceDiscriminationField: block.referenceDiscriminationField,\n\t\t\t\t\t\treferences: block.references,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{createElement(\n\t\t\t\t\t\trenderBlock, {\n\t\t\t\t\t\t\tblock,\n\t\t\t\t\t\t}, renderChildren(block.content.children, {\n\t\t\t\t\t\t\trenderLeaf,\n\t\t\t\t\t\t\trenderElement,\n\t\t\t\t\t\t\tattributeNamePrefix,\n\t\t\t\t\t\t}),\n\t\t\t\t\t)}\n\t\t\t\t</RichTextRenderMetadataContext.Provider>\n\t\t\t))}\n\t\t</>\n\t)\n}) as <CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = never>(\n\tprops: RichTextRendererProps<CustomElements, CustomLeaves>,\n) => ReactElement\n"],"names":["RichTextRenderer"],"mappings":"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"}
1
+ {"version":3,"file":"RichTextRenderer.js","sources":["../../../../src/components/RichTextRenderer/RichTextRenderer.tsx"],"sourcesContent":["import { ComponentType, createElement, memo, ReactElement, ReactNode, useMemo } from 'react'\nimport { defaultDeserialize } from './defaultDeserialize'\nimport type { RenderElement } from './ElementRenderer'\nimport type { RenderLeaf } from './LeafRenderer'\nimport type { NormalizedRichTextBlock } from './NormalizedRichTextBlock'\nimport type { ReferenceRenderer } from './ReferenceRenderer'\nimport { renderChildren } from './renderChildren'\nimport type { RichTextBlock } from './RichTextBlock'\nimport type { RichTextElement } from './RichTextElement'\nimport type { RichTextLeaf } from './RichTextLeaf'\nimport type { RichTextReference } from './RichTextReference'\nimport { RichTextRendererError } from './RichTextRendererError'\nimport { RichTextRenderMetadataContext } from './RichTextRenderMetadataContext'\nimport type { RootEditorNode } from './RootEditorNode'\n\nexport interface RichTextRendererFieldProps {\n\tsource: string | null\n}\n\nexport interface RichTextRendererBlockProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> {\n\tblocks: RichTextBlock[]\n\treferenceRenderers?: Record<string, ReferenceRenderer<any, CustomElements, CustomLeaves>>\n\tsourceField?: string\n\treferencesField?: string\n\treferenceDiscriminationField?: string\n}\n\nexport type RichTextRendererProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> = {\n\tdeserialize?: (source: string) => RootEditorNode<CustomElements, CustomLeaves>\n\trenderElement?: RenderElement<CustomElements, CustomLeaves>\n\trenderLeaf?: RenderLeaf<CustomLeaves>\n\tattributeNamePrefix?: string\n\trenderBlock?: ComponentType<{ block: unknown, children?: ReactNode }>\n} & (RichTextRendererFieldProps | RichTextRendererBlockProps<CustomElements, CustomLeaves>)\n\n/**\n * @group Content rendering\n */\nexport const RichTextRenderer = memo(function RichTextRenderer<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>({\n\tdeserialize = defaultDeserialize,\n\trenderElement,\n\trenderLeaf,\n\trenderBlock = ({ children }) => <>{children}</>,\n\tattributeNamePrefix,\n\t...sourceProps\n}: RichTextRendererProps<CustomElements, CustomLeaves>) {\n\tconst normalizedSource = useMemo<NormalizedRichTextBlock<CustomElements, CustomLeaves>[]>(() => {\n\t\tif ('source' in sourceProps && !('blocks' in sourceProps)) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tcontent: sourceProps.source\n\t\t\t\t\t\t? deserialize(sourceProps.source)\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tformatVersion: 0,\n\t\t\t\t\t\t\t\tchildren: [],\n\t\t\t\t\t\t },\n\t\t\t\t\tid: undefined,\n\t\t\t\t\treferencesField: undefined,\n\t\t\t\t\treferenceDiscriminationField: undefined,\n\t\t\t\t\treferenceRenderers: {},\n\t\t\t\t\treferences: undefined,\n\t\t\t\t},\n\t\t\t]\n\t\t}\n\t\tif (!('source' in sourceProps)) {\n\t\t\tconst sourceField = sourceProps.sourceField ?? 'source'\n\t\t\tconst referencesField = sourceProps.referencesField ?? 'references'\n\t\t\tconst referenceDiscriminationField = sourceProps.referenceDiscriminationField ?? 'type'\n\n\t\t\treturn sourceProps.blocks.map(block => {\n\t\t\t\tif (!(sourceField in block)) {\n\t\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t\t`Found a block without a '${sourceField}' field. ` +\n\t\t\t\t\t\t\t(sourceProps.sourceField === undefined\n\t\t\t\t\t\t\t\t? `The 'sourceField' prop has not been supplied, and so '${sourceField}' was used as a default.`\n\t\t\t\t\t\t\t\t: `That is what the 'sourceField' prop has been set to, and so either this is a typo, ` +\n\t\t\t\t\t\t\t\t `or the data supplied is invalid.`),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst source = block[sourceField]\n\t\t\t\tif (typeof source !== 'string') {\n\t\t\t\t\tthrow new RichTextRendererError(`Found a block whose source is not a string.`)\n\t\t\t\t}\n\n\t\t\t\tif (sourceProps.referencesField !== undefined && !(referencesField in block)) {\n\t\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t\t`The 'referencesField' prop is set to '${referencesField}' but a block without such field ` +\n\t\t\t\t\t\t\t`has been encountered. Unless this is just a typo, ` +\n\t\t\t\t\t\t\t`if you do not wish to use references, avoid supplying the 'referencesField' prop.`,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst references = block[referencesField]\n\n\t\t\t\tlet normalizedReferences: Map<string, RichTextReference> | undefined = undefined\n\t\t\t\tif (references) {\n\t\t\t\t\tif (typeof Object(references)[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new RichTextRendererError(`The set of references must be an iterable!`)\n\t\t\t\t\t}\n\n\t\t\t\t\tnormalizedReferences = new Map()\n\t\t\t\t\tfor (const reference of references as Iterable<RichTextReference>) {\n\t\t\t\t\t\tif (!('id' in reference)) {\n\t\t\t\t\t\t\tthrow new RichTextRendererError(`Found a reference without an id field.`)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!(referenceDiscriminationField in reference)) {\n\t\t\t\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t\t\t\t`Found a reference without a '${referenceDiscriminationField}' field. ` +\n\t\t\t\t\t\t\t\t\t(sourceProps.referenceDiscriminationField === undefined\n\t\t\t\t\t\t\t\t\t\t? `The 'referenceDiscriminationField' prop has not been supplied, ` +\n\t\t\t\t\t\t\t\t\t\t `and so '${referenceDiscriminationField}' was used as a default.`\n\t\t\t\t\t\t\t\t\t\t: `That is what the 'referenceDiscriminationField' prop has been set to, ` +\n\t\t\t\t\t\t\t\t\t\t `and so either this is a typo, or the data supplied is invalid.`),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnormalizedReferences.set(reference.id, reference)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tid: typeof block.id === 'string' ? block.id : undefined,\n\t\t\t\t\tcontent: deserialize(source),\n\t\t\t\t\treferenceDiscriminationField,\n\t\t\t\t\treferenceRenderers: sourceProps.referenceRenderers ?? {},\n\t\t\t\t\treferencesField,\n\t\t\t\t\treferences: normalizedReferences,\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tthrow new RichTextRendererError(`RichTextRenderer: invalid data supplied.`)\n\t}, [deserialize, sourceProps])\n\n\treturn (\n\t\t<>\n\t\t\t{normalizedSource.map((block, i) => (\n\t\t\t\t<RichTextRenderMetadataContext.Provider\n\t\t\t\t\tkey={block.id ?? i}\n\t\t\t\t\tvalue={{\n\t\t\t\t\t\tformatVersion: block.content.formatVersion,\n\t\t\t\t\t\treferenceRenderers: block.referenceRenderers,\n\t\t\t\t\t\treferencesField: block.referencesField,\n\t\t\t\t\t\treferenceDiscriminationField: block.referenceDiscriminationField,\n\t\t\t\t\t\treferences: block.references,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{createElement(\n\t\t\t\t\t\trenderBlock, {\n\t\t\t\t\t\t\tblock,\n\t\t\t\t\t\t}, renderChildren(block.content.children, {\n\t\t\t\t\t\t\trenderLeaf,\n\t\t\t\t\t\t\trenderElement,\n\t\t\t\t\t\t\tattributeNamePrefix,\n\t\t\t\t\t\t}),\n\t\t\t\t\t)}\n\t\t\t\t</RichTextRenderMetadataContext.Provider>\n\t\t\t))}\n\t\t</>\n\t)\n}) as <CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = never>(\n\tprops: RichTextRendererProps<CustomElements, CustomLeaves>,\n) => ReactElement\n"],"names":["RichTextRenderer"],"mappings":"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"}
@@ -1,19 +1,31 @@
1
- import { jsx, Fragment } from "react/jsx-runtime";
1
+ import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
2
2
  import { ElementRenderer } from "./ElementRenderer.js";
3
3
  import { LeafRenderer } from "./LeafRenderer.js";
4
4
  const renderChildren = (children, options) => {
5
5
  if (!Array.isArray(children)) {
6
6
  children = [children];
7
7
  }
8
- return /* @__PURE__ */ jsx(Fragment, { children: children.map((child, i) => {
8
+ return /* @__PURE__ */ jsxDEV(Fragment, { children: children.map((child, i) => {
9
9
  if ("text" in child) {
10
- return /* @__PURE__ */ jsx(LeafRenderer, { leaf: child, renderLeaf: options.renderLeaf }, i);
10
+ return /* @__PURE__ */ jsxDEV(LeafRenderer, { leaf: child, renderLeaf: options.renderLeaf }, i, false, {
11
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/renderChildren.tsx",
12
+ lineNumber: 37,
13
+ columnNumber: 13
14
+ }, globalThis);
11
15
  }
12
16
  if ("children" in child) {
13
- return /* @__PURE__ */ jsx(ElementRenderer, { element: child, options, children: renderChildren(child.children, options) }, i);
17
+ return /* @__PURE__ */ jsxDEV(ElementRenderer, { element: child, options, children: renderChildren(child.children, options) }, i, false, {
18
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/renderChildren.tsx",
19
+ lineNumber: 41,
20
+ columnNumber: 7
21
+ }, globalThis);
14
22
  }
15
23
  return null;
16
- }) });
24
+ }) }, void 0, false, {
25
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/renderChildren.tsx",
26
+ lineNumber: 34,
27
+ columnNumber: 3
28
+ }, globalThis);
17
29
  };
18
30
  export {
19
31
  renderChildren
@@ -1 +1 @@
1
- {"version":3,"file":"renderChildren.js","sources":["../../../../src/components/RichTextRenderer/renderChildren.tsx"],"sourcesContent":["import type { ReactElement } from 'react'\nimport type { BuiltinElements } from './BuiltinElements'\nimport type { BuiltinLeaves } from './BuiltinLeaves'\nimport { ElementRenderer, RenderElement } from './ElementRenderer'\nimport { LeafRenderer, RenderLeaf } from './LeafRenderer'\nimport type { RichTextElement } from './RichTextElement'\nimport type { RichTextLeaf } from './RichTextLeaf'\n\nexport interface RenderChildrenOptions<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> {\n\trenderElement?: RenderElement<CustomElements, CustomLeaves>\n\trenderLeaf?: RenderLeaf<CustomLeaves>\n\tattributeNamePrefix?: string\n}\n\nexport const renderChildren = <\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>(\n\tchildren:\n\t\t| CustomElements\n\t\t| BuiltinElements<CustomElements, CustomLeaves>\n\t\t| CustomLeaves\n\t\t| BuiltinLeaves\n\t\t| Array<CustomElements | BuiltinElements<CustomElements, CustomLeaves> | CustomLeaves | BuiltinLeaves>,\n\toptions: RenderChildrenOptions<CustomElements, CustomLeaves>,\n): ReactElement => {\n\tif (!Array.isArray(children)) {\n\t\tchildren = [children]\n\t}\n\treturn (\n\t\t<>\n\t\t\t{children.map((child, i) => {\n\t\t\t\tif ('text' in child) {\n\t\t\t\t\treturn <LeafRenderer<CustomLeaves> key={i} leaf={child} renderLeaf={options.renderLeaf} />\n\t\t\t\t}\n\t\t\t\tif ('children' in child) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ElementRenderer<CustomElements, CustomLeaves> key={i} element={child} options={options}>\n\t\t\t\t\t\t\t{renderChildren<CustomElements, CustomLeaves>(child.children as typeof children, options)}\n\t\t\t\t\t\t</ElementRenderer>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\treturn null // Throw?\n\t\t\t})}\n\t\t</>\n\t)\n}\n"],"names":[],"mappings":";;;AAiBa,MAAA,iBAAiB,CAI7B,UAMA,YACkB;AAClB,MAAI,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAC7B,eAAW,CAAC,QAAQ;AAAA,EACrB;AACA,SAEG,oBAAA,UAAA,EAAA,UAAA,SAAS,IAAI,CAAC,OAAO,MAAM;AAC3B,QAAI,UAAU,OAAO;AACpB,iCAAQ,cAAmC,EAAA,MAAM,OAAO,YAAY,QAAQ,cAApC,CAAgD;AAAA,IACzF;AACA,QAAI,cAAc,OAAO;AAEvB,aAAA,oBAAC,iBAAsD,EAAA,SAAS,OAAO,SACrE,yBAA6C,MAAM,UAA6B,OAAO,EAAA,GADrC,CAEpD;AAAA,IAEF;AACO,WAAA;AAAA,EACP,CAAA,EACF,CAAA;AAEF;"}
1
+ {"version":3,"file":"renderChildren.js","sources":["../../../../src/components/RichTextRenderer/renderChildren.tsx"],"sourcesContent":["import type { ReactElement } from 'react'\nimport type { BuiltinElements } from './BuiltinElements'\nimport type { BuiltinLeaves } from './BuiltinLeaves'\nimport { ElementRenderer, RenderElement } from './ElementRenderer'\nimport { LeafRenderer, RenderLeaf } from './LeafRenderer'\nimport type { RichTextElement } from './RichTextElement'\nimport type { RichTextLeaf } from './RichTextLeaf'\n\nexport interface RenderChildrenOptions<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> {\n\trenderElement?: RenderElement<CustomElements, CustomLeaves>\n\trenderLeaf?: RenderLeaf<CustomLeaves>\n\tattributeNamePrefix?: string\n}\n\nexport const renderChildren = <\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>(\n\tchildren:\n\t\t| CustomElements\n\t\t| BuiltinElements<CustomElements, CustomLeaves>\n\t\t| CustomLeaves\n\t\t| BuiltinLeaves\n\t\t| Array<CustomElements | BuiltinElements<CustomElements, CustomLeaves> | CustomLeaves | BuiltinLeaves>,\n\toptions: RenderChildrenOptions<CustomElements, CustomLeaves>,\n): ReactElement => {\n\tif (!Array.isArray(children)) {\n\t\tchildren = [children]\n\t}\n\treturn (\n\t\t<>\n\t\t\t{children.map((child, i) => {\n\t\t\t\tif ('text' in child) {\n\t\t\t\t\treturn <LeafRenderer<CustomLeaves> key={i} leaf={child} renderLeaf={options.renderLeaf} />\n\t\t\t\t}\n\t\t\t\tif ('children' in child) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ElementRenderer<CustomElements, CustomLeaves> key={i} element={child} options={options}>\n\t\t\t\t\t\t\t{renderChildren<CustomElements, CustomLeaves>(child.children as typeof children, options)}\n\t\t\t\t\t\t</ElementRenderer>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\treturn null // Throw?\n\t\t\t})}\n\t\t</>\n\t)\n}\n"],"names":["this"],"mappings":";;;AAiBa,MAAA,iBAAiB,CAI7B,UAMA,YACkB;AAClB,MAAI,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAC7B,eAAW,CAAC,QAAQ;AAAA,EACrB;AACA,SAEG,uBAAA,UAAA,EAAA,UAAA,SAAS,IAAI,CAAC,OAAO,MAAM;AAC3B,QAAI,UAAU,OAAO;AACpB,oCAAQ,cAAmC,EAAA,MAAM,OAAO,YAAY,QAAQ,cAApC,GAAjC,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAiF,GAAAA,UAAA;AAAA,IACzF;AACA,QAAI,cAAc,OAAO;AAEvB,aAAA,uBAAC,iBAAsD,EAAA,SAAS,OAAO,SACrE,yBAA6C,MAAM,UAA6B,OAAO,EAAA,GADrC,GAApD,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAEA,GAAAA,UAAA;AAAA,IAEF;AACO,WAAA;AAAA,EAAA,CACP,EAbF,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAcA,GAAAA,UAAA;AAEF;"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@contember/react-client",
3
3
  "license": "Apache-2.0",
4
- "version": "1.2.0-alpha.1",
4
+ "version": "1.2.0-alpha.3",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "main": "./dist/production/index.js",
@@ -21,13 +21,13 @@
21
21
  "typings": "./dist/types/index.d.ts",
22
22
  "scripts": {
23
23
  "build": "yarn build:js:dev && yarn build:js:prod",
24
- "build:js:dev": "vite build --mode development",
24
+ "build:js:dev": "NODE_ENV=development vite build --mode development",
25
25
  "build:js:prod": "vite build --mode production",
26
26
  "ae:build": "api-extractor run --local",
27
27
  "ae:test": "api-extractor run"
28
28
  },
29
29
  "dependencies": {
30
- "@contember/client": "1.2.0-alpha.1"
30
+ "@contember/client": "1.2.0-alpha.3"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "react": "^17 || ^18"