@voiceflow/slate-serializer 1.7.2 → 2.1.0

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 (73) hide show
  1. package/build/{esm/guards.d.ts → guards.d.ts} +2 -1
  2. package/build/guards.d.ts.map +1 -0
  3. package/build/{esm/guards.mjs → guards.js} +1 -1
  4. package/build/guards.js.map +1 -0
  5. package/build/index.d.ts +5 -0
  6. package/build/index.d.ts.map +1 -0
  7. package/build/index.js +5 -0
  8. package/build/index.js.map +1 -0
  9. package/build/{cjs/selectors.d.ts → selectors.d.ts} +3 -2
  10. package/build/selectors.d.ts.map +1 -0
  11. package/build/{esm/selectors.mjs → selectors.js} +2 -2
  12. package/build/selectors.js.map +1 -0
  13. package/build/serializers/jsx.d.ts +11 -0
  14. package/build/serializers/jsx.d.ts.map +1 -0
  15. package/build/serializers/jsx.js +39 -0
  16. package/build/serializers/jsx.js.map +1 -0
  17. package/build/serializers/markdown.d.ts +10 -0
  18. package/build/serializers/markdown.d.ts.map +1 -0
  19. package/build/{esm/serializers/markdown.mjs → serializers/markdown.js} +12 -9
  20. package/build/serializers/markdown.js.map +1 -0
  21. package/build/serializers/text.d.ts +11 -0
  22. package/build/serializers/text.d.ts.map +1 -0
  23. package/build/{esm/serializers/text.mjs → serializers/text.js} +3 -4
  24. package/build/serializers/text.js.map +1 -0
  25. package/build/{cjs/styles.d.ts → styles.d.ts} +2 -1
  26. package/build/styles.d.ts.map +1 -0
  27. package/build/{esm/styles.mjs → styles.js} +1 -1
  28. package/build/styles.js.map +1 -0
  29. package/build/types.d.ts +3 -0
  30. package/build/types.d.ts.map +1 -0
  31. package/build/types.js +2 -0
  32. package/build/types.js.map +1 -0
  33. package/package.json +54 -91
  34. package/build/cjs/guards.cjs +0 -9
  35. package/build/cjs/guards.cjs.map +0 -1
  36. package/build/cjs/guards.d.ts +0 -3
  37. package/build/cjs/index.cjs +0 -21
  38. package/build/cjs/index.cjs.map +0 -1
  39. package/build/cjs/index.d.ts +0 -4
  40. package/build/cjs/selectors.cjs +0 -45
  41. package/build/cjs/selectors.cjs.map +0 -1
  42. package/build/cjs/serializers/jsx.cjs +0 -70
  43. package/build/cjs/serializers/jsx.cjs.map +0 -1
  44. package/build/cjs/serializers/jsx.d.ts +0 -10
  45. package/build/cjs/serializers/markdown.cjs +0 -80
  46. package/build/cjs/serializers/markdown.cjs.map +0 -1
  47. package/build/cjs/serializers/markdown.d.ts +0 -9
  48. package/build/cjs/serializers/text.cjs +0 -42
  49. package/build/cjs/serializers/text.cjs.map +0 -1
  50. package/build/cjs/serializers/text.d.ts +0 -9
  51. package/build/cjs/styles.cjs +0 -11
  52. package/build/cjs/styles.cjs.map +0 -1
  53. package/build/cjs/types.cjs +0 -3
  54. package/build/cjs/types.cjs.map +0 -1
  55. package/build/cjs/types.d.ts +0 -2
  56. package/build/esm/guards.mjs.map +0 -1
  57. package/build/esm/index.d.ts +0 -4
  58. package/build/esm/index.mjs +0 -5
  59. package/build/esm/index.mjs.map +0 -1
  60. package/build/esm/selectors.d.ts +0 -6
  61. package/build/esm/selectors.mjs.map +0 -1
  62. package/build/esm/serializers/jsx.d.ts +0 -10
  63. package/build/esm/serializers/jsx.mjs +0 -40
  64. package/build/esm/serializers/jsx.mjs.map +0 -1
  65. package/build/esm/serializers/markdown.d.ts +0 -9
  66. package/build/esm/serializers/markdown.mjs.map +0 -1
  67. package/build/esm/serializers/text.d.ts +0 -9
  68. package/build/esm/serializers/text.mjs.map +0 -1
  69. package/build/esm/styles.d.ts +0 -3
  70. package/build/esm/styles.mjs.map +0 -1
  71. package/build/esm/types.d.ts +0 -2
  72. package/build/esm/types.mjs +0 -2
  73. package/build/esm/types.mjs.map +0 -1
@@ -1,3 +1,4 @@
1
- import { AnySlateTextElement, SlateTextLinkElement, SlateTextVariableElement } from '@voiceflow/dtos-interact';
1
+ import type { AnySlateTextElement, SlateTextLinkElement, SlateTextVariableElement } from '@voiceflow/dtos-interact';
2
2
  export declare const isLinkElement: (element: AnySlateTextElement) => element is SlateTextLinkElement;
3
3
  export declare const isVariableElement: (element: AnySlateTextElement) => element is SlateTextVariableElement;
4
+ //# sourceMappingURL=guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGpH,eAAO,MAAM,aAAa,GAAI,SAAS,mBAAmB,KAAG,OAAO,IAAI,oBAC5B,CAAC;AAE7C,eAAO,MAAM,iBAAiB,GAAI,SAAS,mBAAmB,KAAG,OAAO,IAAI,wBAC5B,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { SlateTextElementType } from '@voiceflow/dtos-interact';
2
2
  export const isLinkElement = (element) => element.type === SlateTextElementType.LINK;
3
3
  export const isVariableElement = (element) => element.type === SlateTextElementType.VARIABLE;
4
- //# sourceMappingURL=guards.mjs.map
4
+ //# sourceMappingURL=guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAA4B,EAAmC,EAAE,CAC7F,OAAO,CAAC,IAAI,KAAK,oBAAoB,CAAC,IAAI,CAAC;AAE7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAA4B,EAAuC,EAAE,CACrG,OAAO,CAAC,IAAI,KAAK,oBAAoB,CAAC,QAAQ,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './guards';
2
+ export * from './selectors';
3
+ export * from './styles';
4
+ export * from './types';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
package/build/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export * from './guards';
2
+ export * from './selectors';
3
+ export * from './styles';
4
+ export * from './types';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -1,6 +1,7 @@
1
- import { AnySlateTextElement, SlateText } from '@voiceflow/dtos-interact';
2
- import { CSSProperties } from './types.js';
1
+ import type { AnySlateTextElement, SlateText } from '@voiceflow/dtos-interact';
2
+ import type { CSSProperties } from './types';
3
3
  export declare const getElementCSSProperties: (element: AnySlateTextElement) => CSSProperties;
4
4
  export declare const getTextCSSProperties: (text: SlateText) => CSSProperties;
5
5
  export declare const getElementStyles: (element: AnySlateTextElement) => string;
6
6
  export declare const getTextStyles: (text: SlateText) => string;
7
+ //# sourceMappingURL=selectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAI/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,uBAAuB,GAAI,SAAS,mBAAmB,KAAG,aAQtE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,SAAS,KAAG,aAyBtD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,SAAS,mBAAmB,KAAG,MACA,CAAC;AAEjE,eAAO,MAAM,aAAa,GAAI,MAAM,SAAS,KAAG,MAAkE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { SlateTextElementProperty, SlateTextProperty } from '@voiceflow/dtos-interact';
2
- import { convertCSSPropertiesToStyles } from './styles.mjs';
2
+ import { convertCSSPropertiesToStyles } from './styles';
3
3
  export const getElementCSSProperties = (element) => {
4
4
  const textAlign = element[SlateTextElementProperty.TEXT_ALIGN];
5
5
  const styles = {};
@@ -35,4 +35,4 @@ export const getTextCSSProperties = (text) => {
35
35
  };
36
36
  export const getElementStyles = (element) => convertCSSPropertiesToStyles(getElementCSSProperties(element));
37
37
  export const getTextStyles = (text) => convertCSSPropertiesToStyles(getTextCSSProperties(text));
38
- //# sourceMappingURL=selectors.mjs.map
38
+ //# sourceMappingURL=selectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.js","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAGxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAA4B,EAAiB,EAAE;IACrF,MAAM,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAA+B,CAAC;IAE7F,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,IAAI,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAE5C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAe,EAAiB,EAAE;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,IAAI,KAAK;QAAE,MAAM,CAAC,KAAK,GAAG,QAAQ,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC;IAC9E,IAAI,QAAQ;QAAE,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC1C,IAAI,UAAU;QAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,UAAU;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,UAAU,GAAG,CAAC;IAEtD,IAAI,WAAW,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,UAAU,GAAG,EAAE,CAAC;QAEpB,IAAI,WAAW;YAAE,UAAU,IAAI,WAAW,CAAC;QAC3C,IAAI,eAAe;YAAE,UAAU,IAAI,eAAe,CAAC;QAEnD,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAA4B,EAAU,EAAE,CACvE,4BAA4B,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAe,EAAU,EAAE,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { SlateTextValue } from '@voiceflow/dtos-interact';
2
+ import React from 'react';
3
+ export interface JSXSerializerOptions {
4
+ variablesMap?: Partial<Record<string, {
5
+ id: string;
6
+ name: string;
7
+ }>>;
8
+ transformHref?: (href: string) => string;
9
+ }
10
+ export declare const serializeToJSX: (content: SlateTextValue, options?: JSXSerializerOptions) => React.ReactNode;
11
+ //# sourceMappingURL=jsx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../../src/serializers/jsx.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACrE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1C;AAwED,eAAO,MAAM,cAAc,GAAI,SAAS,cAAc,EAAE,UAAS,oBAAyB,KAAG,KAAK,CAAC,SAChC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ import * as Slate from 'slate';
3
+ import { isLinkElement, isVariableElement } from '../guards';
4
+ import { getElementCSSProperties, getTextCSSProperties } from '../selectors';
5
+ const serializeTextNode = (node, index) => {
6
+ const styles = getTextCSSProperties(node);
7
+ return (_jsx("span", { style: styles, children: node.text || _jsx(_Fragment, { children: "\uFEFF" }) }, index));
8
+ };
9
+ const serializeLinkElement = (node, index, options) => {
10
+ const children = node.children.map((node, index) => serializeNode(node, index, options));
11
+ const styles = getElementCSSProperties(node);
12
+ const href = options.transformHref?.(node.url ?? '') ?? node.url ?? '';
13
+ return (_jsx("a", { rel: "noopener noreferrer", href: href, target: "_blank", style: { ...styles, pointerEvents: 'all' }, onClick: (event) => {
14
+ event.stopPropagation();
15
+ event.preventDefault();
16
+ if (!href)
17
+ return;
18
+ window.open(href, '_blank', 'noopener=true,noreferrer=true')?.focus();
19
+ }, children: children }, index));
20
+ };
21
+ const serializeVariableElement = (node, index, options) => (_jsx("span", { children: `{${options.variablesMap ? (options.variablesMap[node.id]?.name ?? node.id) : node.name}}` }, index));
22
+ const serializeElementNode = (node, index, options) => {
23
+ if (isLinkElement(node))
24
+ return serializeLinkElement(node, index, options);
25
+ if (isVariableElement(node))
26
+ return serializeVariableElement(node, index, options);
27
+ const children = node.children.map((node, index) => serializeNode(node, index, options));
28
+ const styles = getElementCSSProperties(node);
29
+ return (_jsx("div", { style: styles, children: children }, index));
30
+ };
31
+ const serializeNode = (node, index, options) =>
32
+ // eslint-disable-next-line no-nested-ternary
33
+ Slate.Text.isText(node)
34
+ ? serializeTextNode(node, index)
35
+ : Slate.Element.isElement(node)
36
+ ? serializeElementNode(node, index, options)
37
+ : null;
38
+ export const serializeToJSX = (content, options = {}) => content.map((node, index) => serializeNode(node, index, options));
39
+ //# sourceMappingURL=jsx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx.js","sourceRoot":"","sources":["../../src/serializers/jsx.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { SlateTextValue, SlateTextVariableElement } from '@voiceflow/dtos-interact';
2
+ export interface MarkdownSerializerOptions {
3
+ variablesMap?: Partial<Record<string, {
4
+ id: string;
5
+ name: string;
6
+ }>>;
7
+ }
8
+ export declare const serializeVariableElement: (node: SlateTextVariableElement, options: MarkdownSerializerOptions) => string;
9
+ export declare const serializeToMarkdown: (content: SlateTextValue, options?: MarkdownSerializerOptions) => string;
10
+ //# sourceMappingURL=markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/serializers/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,cAAc,EACd,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAMlC,MAAM,WAAW,yBAAyB;IACxC,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CACtE;AAmCD,eAAO,MAAM,wBAAwB,GAAI,MAAM,wBAAwB,EAAE,SAAS,yBAAyB,WAG1G,CAAC;AAiBF,eAAO,MAAM,mBAAmB,GAAI,SAAS,cAAc,EAAE,UAAS,yBAA8B,KAAG,MAIxB,CAAC"}
@@ -1,6 +1,6 @@
1
- import { SlateTextProperty, } from '@voiceflow/dtos-interact';
1
+ import { SlateTextProperty } from '@voiceflow/dtos-interact';
2
2
  import * as Slate from 'slate';
3
- import { isLinkElement, isVariableElement } from '../guards.mjs';
3
+ import { isLinkElement, isVariableElement } from '../guards';
4
4
  const serializeTextNode = (node) => {
5
5
  const isItalic = node[SlateTextProperty.ITALIC];
6
6
  const isUnderline = node[SlateTextProperty.UNDERLINE];
@@ -11,6 +11,7 @@ const serializeTextNode = (node) => {
11
11
  return text;
12
12
  // Extract leading and trailing whitespaces
13
13
  const leadingWhitespace = text.match(/^\s+/) || '';
14
+ // eslint-disable-next-line sonarjs/slow-regex
14
15
  const trailingWhitespace = text.match(/\s+$/) || '';
15
16
  // Trim the text to remove leading and trailing whitespaces
16
17
  text = text.trim();
@@ -26,14 +27,12 @@ const serializeTextNode = (node) => {
26
27
  return `${leadingWhitespace}${text}${trailingWhitespace}`;
27
28
  };
28
29
  const serializeLinkElement = (node, options) => {
29
- var _a;
30
30
  const children = node.children.map((node) => serializeNode(node, options));
31
- return `[${children}](${(_a = node.url) === null || _a === void 0 ? void 0 : _a.replace(/\s+/g, '')})`;
31
+ return `[${children}](${node.url?.replace(/\s+/g, '')})`;
32
32
  };
33
33
  export const serializeVariableElement = (node, options) => {
34
- var _a, _b, _c;
35
- const resultName = options.variablesMap ? (_b = (_a = options.variablesMap[node.id]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : node.id : node.name;
36
- return `{${resultName.concat((_c = node.path) !== null && _c !== void 0 ? _c : '')}}`;
34
+ const resultName = options.variablesMap ? (options.variablesMap[node.id]?.name ?? node.id) : node.name;
35
+ return `{${resultName.concat(node.path ?? '')}}`;
37
36
  };
38
37
  const serializeElementNode = (node, options) => {
39
38
  if (isLinkElement(node))
@@ -44,9 +43,13 @@ const serializeElementNode = (node, options) => {
44
43
  };
45
44
  const serializeNode = (node, options) =>
46
45
  // eslint-disable-next-line no-nested-ternary
47
- Slate.Text.isText(node) ? serializeTextNode(node) : Slate.Element.isElement(node) ? serializeElementNode(node, options) : '';
46
+ Slate.Text.isText(node)
47
+ ? serializeTextNode(node)
48
+ : Slate.Element.isElement(node)
49
+ ? serializeElementNode(node, options)
50
+ : '';
48
51
  export const serializeToMarkdown = (content, options = {}) => content
49
52
  .map((node) => serializeNode(node, options))
50
53
  .join('\n')
51
54
  .replace(/\n{3,}/g, (match) => `\n${'<br/>'.repeat(match.length - 2)}\n\n`);
52
- //# sourceMappingURL=markdown.mjs.map
55
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/serializers/markdown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { SlateTextValue } from '@voiceflow/dtos-interact';
2
+ export interface TextSerializerOptions {
3
+ variablesMap?: Partial<Record<string, {
4
+ id: string;
5
+ name: string;
6
+ }>>;
7
+ markdownLinks?: boolean;
8
+ encodeVariables?: boolean;
9
+ }
10
+ export declare const serializeToText: (content: SlateTextValue, { variablesMap, markdownLinks, encodeVariables }?: TextSerializerOptions) => string;
11
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/serializers/text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAK3E,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAgBD,eAAO,MAAM,eAAe,GAC1B,SAAS,cAAc,EACvB,mDAAsE,qBAA0B,KAC/F,MAAoG,CAAC"}
@@ -1,15 +1,14 @@
1
1
  import * as Slate from 'slate';
2
- import { isLinkElement, isVariableElement } from '../guards.mjs';
2
+ import { isLinkElement, isVariableElement } from '../guards';
3
3
  const nodeToString = (node, options) => {
4
- var _a, _b;
5
4
  if (!Slate.Element.isElement(node))
6
5
  return Slate.Node.string(node);
7
6
  if (isLinkElement(node) && options.markdownLinks)
8
7
  return `[${serializeToText(node.children)}](${node.url})`;
9
8
  if (isVariableElement(node) && options.encodeVariables)
10
- return `{${options.variablesMap ? (_b = (_a = options.variablesMap[node.id]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : node.id : node.name}}`;
9
+ return `{${options.variablesMap ? (options.variablesMap[node.id]?.name ?? node.id) : node.name}}`;
11
10
  return nodesToString(node.children, options).join('');
12
11
  };
13
12
  const nodesToString = (nodes, options) => nodes.map((node) => nodeToString(node, options));
14
13
  export const serializeToText = (content, { variablesMap = {}, markdownLinks = false, encodeVariables = true } = {}) => nodesToString(content, { variablesMap, markdownLinks, encodeVariables }).join('\n').trim();
15
- //# sourceMappingURL=text.mjs.map
14
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/serializers/text.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAQ7D,MAAM,YAAY,GAAG,CAAC,IAAgB,EAAE,OAA8B,EAAU,EAAE;IAChF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnE,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa;QAAE,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;IAE5G,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,eAAe;QACpD,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IAEpG,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAmB,EAAE,OAA8B,EAAY,EAAE,CACtF,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAuB,EACvB,EAAE,YAAY,GAAG,EAAE,EAAE,aAAa,GAAG,KAAK,EAAE,eAAe,GAAG,IAAI,KAA4B,EAAE,EACxF,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
- import { CSSProperties } from './types.js';
1
+ import type { CSSProperties } from './types';
2
2
  export declare const cssPropertyNameToStyleName: (name: string) => string;
3
3
  export declare const convertCSSPropertiesToStyles: (properties: CSSProperties) => string;
4
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C,eAAO,MAAM,0BAA0B,GAAI,MAAM,MAAM,KAAG,MACiB,CAAC;AAE5E,eAAO,MAAM,4BAA4B,GAAI,YAAY,aAAa,KAAG,MAG3D,CAAC"}
@@ -3,4 +3,4 @@ export const cssPropertyNameToStyleName = (name) => name.replace(CAPITAL_LETTER_
3
3
  export const convertCSSPropertiesToStyles = (properties) => Object.entries(properties)
4
4
  .map(([key, value]) => `${cssPropertyNameToStyleName(key)}:${value}`)
5
5
  .join(';');
6
- //# sourceMappingURL=styles.mjs.map
6
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAEvC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAU,EAAE,CACjE,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,UAAyB,EAAU,EAAE,CAChF,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;KACvB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,0BAA0B,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;KACpE,IAAI,CAAC,GAAG,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type CSS from 'csstype';
2
+ export type CSSProperties = CSS.Properties<string | number>;
3
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,SAAS,CAAC;AAE/B,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC"}
package/build/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,55 +1,23 @@
1
1
  {
2
2
  "name": "@voiceflow/slate-serializer",
3
- "type": "module",
3
+ "version": "2.1.0",
4
4
  "description": "Utilities for serializing slate data",
5
- "version": "1.7.2",
6
- "author": "Ben Teichman",
5
+ "keywords": [
6
+ "react",
7
+ "slate",
8
+ "voiceflow"
9
+ ],
10
+ "homepage": "https://github.com/voiceflow/oss/tree/master/libs/slate-serializer#readme",
7
11
  "bugs": {
8
- "url": "https://github.com/voiceflow/slate-serializer/issues"
9
- },
10
- "config": {
11
- "commitizen": {
12
- "path": "./node_modules/cz-conventional-changelog"
13
- }
14
- },
15
- "dependencies": {
16
- "csstype": "3.1.2"
12
+ "url": "https://github.com/voiceflow/oss/issues"
17
13
  },
18
- "devDependencies": {
19
- "@commitlint/cli": "17.6.1",
20
- "@istanbuljs/nyc-config-typescript": "1.0.2",
21
- "@types/chai": "4.3.5",
22
- "@types/mocha": "10.0.1",
23
- "@types/react": "18.2.4",
24
- "@voiceflow/commitlint-config": "2.1.0",
25
- "@voiceflow/dtos-interact": "1.17.1",
26
- "@voiceflow/eslint-config": "7.1.0",
27
- "@voiceflow/git-branch-check": "1.4.0",
28
- "@voiceflow/prettier-config": "1.3.0",
29
- "@voiceflow/tsconfig": "1.4.8",
30
- "chai": "4.3.7",
31
- "commitizen": "4.3.0",
32
- "cz-conventional-changelog": "^3.3.0",
33
- "depcheck": "1.4.3",
34
- "eslint": "8.39.0",
35
- "eslint-output": "^3.0.1",
36
- "fixpack": "^4.0.0",
37
- "husky": "8.0.3",
38
- "istanbul": "^0.4.5",
39
- "lint-staged": "13.1.2",
40
- "mocha": "10.2.0",
41
- "nyc": "^15.1.0",
42
- "prettier": "2.8.8",
43
- "react": "18.2.0",
44
- "slate": "0.94.1",
45
- "source-map-support": "0.5.21",
46
- "ts-mocha": "10.0.0",
47
- "ts-node": "10.9.1",
48
- "tsc-alias": "1.8.6",
49
- "tsc-esm-fix": "2.20.13",
50
- "typescript": "5.0.4",
51
- "zod": "3.22.4"
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/voiceflow/oss.git"
52
17
  },
18
+ "license": "ISC",
19
+ "author": "Ben Teichman",
20
+ "type": "module",
53
21
  "exports": {
54
22
  ".": {
55
23
  "types": "./build/esm/index.d.ts",
@@ -72,48 +40,7 @@
72
40
  "require": "./build/cjs/serializers/jsx.cjs"
73
41
  }
74
42
  },
75
- "files": [
76
- "build/"
77
- ],
78
- "homepage": "https://github.com/voiceflow/slate-serializer#readme",
79
- "keywords": [
80
- "react",
81
- "slate",
82
- "voiceflow"
83
- ],
84
- "license": "ISC",
85
- "peerDependencies": {
86
- "@voiceflow/dtos-interact": "^1.17.1",
87
- "react": "^17.0.2",
88
- "slate": "^0.72.3",
89
- "zod": "^3"
90
- },
91
- "prettier": "@voiceflow/prettier-config",
92
- "publishConfig": {
93
- "access": "public"
94
- },
95
- "repository": {
96
- "type": "git",
97
- "url": "git+https://github.com/voiceflow/slate-serializer.git"
98
- },
99
- "scripts": {
100
- "build": "yarn clean && yarn build:cjs && yarn build:esm",
101
- "build:cjs": "tsc -p tsconfig.build.cjs.json && tsc-alias -p tsconfig.build.cjs.json && tsc-esm-fix --sourceMap --target build/cjs --ext .cjs",
102
- "build:esm": "tsc -p tsconfig.build.esm.json && tsc-alias -p tsconfig.build.esm.json && tsc-esm-fix --sourceMap --target build/esm --ext .mjs",
103
- "clean": "rimraf build",
104
- "commit": "cz",
105
- "eslint-output": "eslint-output",
106
- "lint": "eslint '**/*.{js,ts,tsx}'",
107
- "lint:output": "yarn run eslint-output --quiet \"**/*.{js,ts,tsx}\"",
108
- "lint:quiet": "yarn lint --quiet",
109
- "lint:report": "yarn lint:output",
110
- "prepublishOnly": "yarn build",
111
- "test": "yarn test:run",
112
- "test:dependencies": "depcheck",
113
- "test:run": "NODE_ENV=test nyc ts-mocha --paths --config ./config/test/.mocharc.yml 'test/**/*.unit.ts'",
114
- "test:single": "NODE_ENV=test ts-mocha --paths --config ./config/test/.mocharc.yml",
115
- "test:unit": "NODE_ENV=test nyc --report-dir=nyc_coverage_unit ts-mocha --paths --config ./config/test/.mocharc.yml 'test/**/*.unit.ts'"
116
- },
43
+ "main": "build/cjs/index.js",
117
44
  "types": "build/esm/index.d.ts",
118
45
  "typesVersions": {
119
46
  "*": {
@@ -128,8 +55,44 @@
128
55
  ]
129
56
  }
130
57
  },
58
+ "files": [
59
+ "build"
60
+ ],
61
+ "scripts": {
62
+ "build": "yarn g:turbo run build:cmd --filter=@voiceflow/slate-serializer...",
63
+ "build:cmd": "yarn g:build:pkg",
64
+ "clean": "yarn g:rimraf build",
65
+ "lint": "yarn g:run-p -c lint:eslint lint:prettier",
66
+ "lint:eslint": "yarn g:eslint",
67
+ "lint:fix": "yarn g:run-p -c \"lint:eslint --fix\" \"lint:prettier --write\"",
68
+ "lint:prettier": "yarn g:prettier --check",
69
+ "tdd": "yarn g:vitest",
70
+ "test": "yarn g:run-p -c test:dependencies test:types test:unit",
71
+ "test:dependencies": "yarn g:depcruise",
72
+ "test:types": "yarn g:tsc --noEmit",
73
+ "test:unit": "yarn g:vitest run --coverage"
74
+ },
75
+ "dependencies": {
76
+ "csstype": "3.2.3"
77
+ },
78
+ "devDependencies": {
79
+ "@types/react": "18.2.4",
80
+ "@voiceflow/dtos-interact": "1.17.1",
81
+ "react": "18.2.0",
82
+ "slate": "0.94.1",
83
+ "zod": "3.22.4"
84
+ },
85
+ "peerDependencies": {
86
+ "@voiceflow/dtos-interact": "^1.17.1",
87
+ "react": "^17.0.2",
88
+ "slate": "^0.72.3",
89
+ "zod": "^3"
90
+ },
91
+ "engines": {
92
+ "node": "20"
93
+ },
131
94
  "volta": {
132
- "node": "20.12.1",
133
- "yarn": "1.22.19"
134
- }
95
+ "extends": "../../package.json"
96
+ },
97
+ "gitHead": "5b92236c351606f0686498e67c9634f2131e1852"
135
98
  }
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isVariableElement = exports.isLinkElement = void 0;
4
- const dtos_interact_1 = require("@voiceflow/dtos-interact");
5
- const isLinkElement = (element) => element.type === dtos_interact_1.SlateTextElementType.LINK;
6
- exports.isLinkElement = isLinkElement;
7
- const isVariableElement = (element) => element.type === dtos_interact_1.SlateTextElementType.VARIABLE;
8
- exports.isVariableElement = isVariableElement;
9
- //# sourceMappingURL=guards.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guards.cjs","sourceRoot":"","sources":["../../src/guards.ts"],"names":[],"mappings":";;;AAAA,4DAAqI;AAE9H,MAAM,aAAa,GAAG,CAAC,OAA4B,EAAmC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,oCAAoB,CAAC,IAAI,CAAC;AAA9H,QAAA,aAAa,iBAAiH;AAEpI,MAAM,iBAAiB,GAAG,CAAC,OAA4B,EAAuC,EAAE,CACrG,OAAO,CAAC,IAAI,KAAK,oCAAoB,CAAC,QAAQ,CAAC;AADpC,QAAA,iBAAiB,qBACmB"}
@@ -1,3 +0,0 @@
1
- import { AnySlateTextElement, SlateTextLinkElement, SlateTextVariableElement } from '@voiceflow/dtos-interact';
2
- export declare const isLinkElement: (element: AnySlateTextElement) => element is SlateTextLinkElement;
3
- export declare const isVariableElement: (element: AnySlateTextElement) => element is SlateTextVariableElement;
@@ -1,21 +0,0 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./guards.cjs"), exports);
18
- __exportStar(require("./selectors.cjs"), exports);
19
- __exportStar(require("./styles.cjs"), exports);
20
- __exportStar(require("./types.cjs"), exports);
21
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,2CAAyB;AACzB,0CAAwB"}
@@ -1,4 +0,0 @@
1
- export * from './guards.js';
2
- export * from './selectors.js';
3
- export * from './styles.js';
4
- export * from './types.js';
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTextStyles = exports.getElementStyles = exports.getTextCSSProperties = exports.getElementCSSProperties = void 0;
4
- const dtos_interact_1 = require("@voiceflow/dtos-interact");
5
- const styles_1 = require("./styles.cjs");
6
- const getElementCSSProperties = (element) => {
7
- const textAlign = element[dtos_interact_1.SlateTextElementProperty.TEXT_ALIGN];
8
- const styles = {};
9
- if (textAlign)
10
- styles.textAlign = textAlign;
11
- return styles;
12
- };
13
- exports.getElementCSSProperties = getElementCSSProperties;
14
- const getTextCSSProperties = (text) => {
15
- const color = text[dtos_interact_1.SlateTextProperty.COLOR];
16
- const isItalic = text[dtos_interact_1.SlateTextProperty.ITALIC];
17
- const fontWeight = text[dtos_interact_1.SlateTextProperty.FONT_WEIGHT];
18
- const fontFamily = text[dtos_interact_1.SlateTextProperty.FONT_FAMILY];
19
- const isUnderline = text[dtos_interact_1.SlateTextProperty.UNDERLINE];
20
- const isStrikeThrough = text[dtos_interact_1.SlateTextProperty.STRIKE_THROUGH];
21
- const styles = {};
22
- if (color)
23
- styles.color = `rgba(${color.r},${color.g},${color.b},${color.a})`;
24
- if (isItalic)
25
- styles.fontStyle = 'italic';
26
- if (fontWeight)
27
- styles.fontWeight = Number(fontWeight);
28
- if (fontFamily)
29
- styles.fontFamily = `"${fontFamily}"`;
30
- if (isUnderline || isStrikeThrough) {
31
- let decoration = '';
32
- if (isUnderline)
33
- decoration += 'underline';
34
- if (isStrikeThrough)
35
- decoration += ' line-through';
36
- styles.textDecoration = decoration.trim();
37
- }
38
- return styles;
39
- };
40
- exports.getTextCSSProperties = getTextCSSProperties;
41
- const getElementStyles = (element) => (0, styles_1.convertCSSPropertiesToStyles)((0, exports.getElementCSSProperties)(element));
42
- exports.getElementStyles = getElementStyles;
43
- const getTextStyles = (text) => (0, styles_1.convertCSSPropertiesToStyles)((0, exports.getTextCSSProperties)(text));
44
- exports.getTextStyles = getTextStyles;
45
- //# sourceMappingURL=selectors.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selectors.cjs","sourceRoot":"","sources":["../../src/selectors.ts"],"names":[],"mappings":";;;AAAA,4DAAuH;AAEvH,qCAAwD;AAGjD,MAAM,uBAAuB,GAAG,CAAC,OAA4B,EAAiB,EAAE;IACrF,MAAM,SAAS,GAAG,OAAO,CAAC,wCAAwB,CAAC,UAAU,CAA+B,CAAC;IAE7F,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,IAAI,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAE5C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AARW,QAAA,uBAAuB,2BAQlC;AAEK,MAAM,oBAAoB,GAAG,CAAC,IAAe,EAAiB,EAAE;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,iCAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,iCAAiB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,iCAAiB,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,iCAAiB,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,iCAAiB,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,IAAI,CAAC,iCAAiB,CAAC,cAAc,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,IAAI,KAAK;QAAE,MAAM,CAAC,KAAK,GAAG,QAAQ,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC;IAC9E,IAAI,QAAQ;QAAE,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC1C,IAAI,UAAU;QAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,UAAU;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,UAAU,GAAG,CAAC;IAEtD,IAAI,WAAW,IAAI,eAAe,EAAE;QAClC,IAAI,UAAU,GAAG,EAAE,CAAC;QAEpB,IAAI,WAAW;YAAE,UAAU,IAAI,WAAW,CAAC;QAC3C,IAAI,eAAe;YAAE,UAAU,IAAI,eAAe,CAAC;QAEnD,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;KAC3C;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAzBW,QAAA,oBAAoB,wBAyB/B;AAEK,MAAM,gBAAgB,GAAG,CAAC,OAA4B,EAAU,EAAE,CAAC,IAAA,qCAA4B,EAAC,IAAA,+BAAuB,EAAC,OAAO,CAAC,CAAC,CAAC;AAA5H,QAAA,gBAAgB,oBAA4G;AAElI,MAAM,aAAa,GAAG,CAAC,IAAe,EAAU,EAAE,CAAC,IAAA,qCAA4B,EAAC,IAAA,4BAAoB,EAAC,IAAI,CAAC,CAAC,CAAC;AAAtG,QAAA,aAAa,iBAAyF"}
@@ -1,70 +0,0 @@
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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.serializeToJSX = void 0;
30
- const react_1 = __importDefault(require("react"));
31
- const Slate = __importStar(require("slate"));
32
- const guards_1 = require("../guards.cjs");
33
- const selectors_1 = require("../selectors.cjs");
34
- const serializeTextNode = (node, index) => {
35
- const styles = (0, selectors_1.getTextCSSProperties)(node);
36
- return (react_1.default.createElement("span", { key: index, style: styles }, node.text || react_1.default.createElement(react_1.default.Fragment, null, "\uFEFF")));
37
- };
38
- const serializeLinkElement = (node, index, options) => {
39
- var _a, _b, _c, _d;
40
- const children = node.children.map((node, index) => serializeNode(node, index, options));
41
- const styles = (0, selectors_1.getElementCSSProperties)(node);
42
- const href = (_d = (_c = (_a = options.transformHref) === null || _a === void 0 ? void 0 : _a.call(options, (_b = node.url) !== null && _b !== void 0 ? _b : '')) !== null && _c !== void 0 ? _c : node.url) !== null && _d !== void 0 ? _d : '';
43
- return (react_1.default.createElement("a", { key: index, rel: "noopener noreferrer", href: href, target: "_blank", style: Object.assign(Object.assign({}, styles), { pointerEvents: 'all' }), onClick: (event) => {
44
- var _a;
45
- event.stopPropagation();
46
- event.preventDefault();
47
- if (!href)
48
- return;
49
- (_a = window.open(href, '_blank', 'noopener=true,noreferrer=true')) === null || _a === void 0 ? void 0 : _a.focus();
50
- } }, children));
51
- };
52
- const serializeVariableElement = (node, index, options) => {
53
- var _a, _b;
54
- return (react_1.default.createElement("span", { key: index }, `{${options.variablesMap ? (_b = (_a = options.variablesMap[node.id]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : node.id : node.name}}`));
55
- };
56
- const serializeElementNode = (node, index, options) => {
57
- if ((0, guards_1.isLinkElement)(node))
58
- return serializeLinkElement(node, index, options);
59
- if ((0, guards_1.isVariableElement)(node))
60
- return serializeVariableElement(node, index, options);
61
- const children = node.children.map((node, index) => serializeNode(node, index, options));
62
- const styles = (0, selectors_1.getElementCSSProperties)(node);
63
- return (react_1.default.createElement("div", { key: index, style: styles }, children));
64
- };
65
- const serializeNode = (node, index, options) =>
66
- // eslint-disable-next-line no-nested-ternary
67
- Slate.Text.isText(node) ? serializeTextNode(node, index) : Slate.Element.isElement(node) ? serializeElementNode(node, index, options) : null;
68
- const serializeToJSX = (content, options = {}) => content.map((node, index) => serializeNode(node, index, options));
69
- exports.serializeToJSX = serializeToJSX;
70
- //# sourceMappingURL=jsx.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsx.cjs","sourceRoot":"","sources":["../../../src/serializers/jsx.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { SlateText, SlateTextLinkElement, SlateTextVariableElement } from '@voiceflow/dtos-interact';
2
- import React from 'react';
3
- export interface JSXSerializerOptions {
4
- variablesMap?: Partial<Record<string, {
5
- id: string;
6
- name: string;
7
- }>>;
8
- transformHref?: (href: string) => string;
9
- }
10
- export declare const serializeToJSX: (content: (import("@voiceflow/dtos-interact").SlateTextElement | SlateTextLinkElement | SlateTextVariableElement | SlateText)[], options?: JSXSerializerOptions) => React.ReactNode;
@@ -1,80 +0,0 @@
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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.serializeToMarkdown = exports.serializeVariableElement = void 0;
27
- const dtos_interact_1 = require("@voiceflow/dtos-interact");
28
- const Slate = __importStar(require("slate"));
29
- const guards_1 = require("../guards.cjs");
30
- const serializeTextNode = (node) => {
31
- const isItalic = node[dtos_interact_1.SlateTextProperty.ITALIC];
32
- const isUnderline = node[dtos_interact_1.SlateTextProperty.UNDERLINE];
33
- const isStrikeThrough = node[dtos_interact_1.SlateTextProperty.STRIKE_THROUGH];
34
- const fontWeight = node[dtos_interact_1.SlateTextProperty.FONT_WEIGHT];
35
- let { text } = node;
36
- if (!text.trim())
37
- return text;
38
- // Extract leading and trailing whitespaces
39
- const leadingWhitespace = text.match(/^\s+/) || '';
40
- const trailingWhitespace = text.match(/\s+$/) || '';
41
- // Trim the text to remove leading and trailing whitespaces
42
- text = text.trim();
43
- if (isItalic)
44
- text = `*${text}*`;
45
- if (isUnderline)
46
- text = `<u>${text}</u>`;
47
- if (isStrikeThrough)
48
- text = `~~${text}~~`;
49
- if (fontWeight)
50
- text = `**${text}**`;
51
- // Add the leading and trailing whitespaces back to the outside of the markers
52
- return `${leadingWhitespace}${text}${trailingWhitespace}`;
53
- };
54
- const serializeLinkElement = (node, options) => {
55
- var _a;
56
- const children = node.children.map((node) => serializeNode(node, options));
57
- return `[${children}](${(_a = node.url) === null || _a === void 0 ? void 0 : _a.replace(/\s+/g, '')})`;
58
- };
59
- const serializeVariableElement = (node, options) => {
60
- var _a, _b, _c;
61
- const resultName = options.variablesMap ? (_b = (_a = options.variablesMap[node.id]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : node.id : node.name;
62
- return `{${resultName.concat((_c = node.path) !== null && _c !== void 0 ? _c : '')}}`;
63
- };
64
- exports.serializeVariableElement = serializeVariableElement;
65
- const serializeElementNode = (node, options) => {
66
- if ((0, guards_1.isLinkElement)(node))
67
- return serializeLinkElement(node, options);
68
- if ((0, guards_1.isVariableElement)(node))
69
- return (0, exports.serializeVariableElement)(node, options);
70
- return node.children.map((node) => serializeNode(node, options)).join('');
71
- };
72
- const serializeNode = (node, options) =>
73
- // eslint-disable-next-line no-nested-ternary
74
- Slate.Text.isText(node) ? serializeTextNode(node) : Slate.Element.isElement(node) ? serializeElementNode(node, options) : '';
75
- const serializeToMarkdown = (content, options = {}) => content
76
- .map((node) => serializeNode(node, options))
77
- .join('\n')
78
- .replace(/\n{3,}/g, (match) => `\n${'<br/>'.repeat(match.length - 2)}\n\n`);
79
- exports.serializeToMarkdown = serializeToMarkdown;
80
- //# sourceMappingURL=markdown.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown.cjs","sourceRoot":"","sources":["../../../src/serializers/markdown.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { SlateText, SlateTextLinkElement, SlateTextVariableElement } from '@voiceflow/dtos-interact';
2
- export interface MarkdownSerializerOptions {
3
- variablesMap?: Partial<Record<string, {
4
- id: string;
5
- name: string;
6
- }>>;
7
- }
8
- export declare const serializeVariableElement: (node: SlateTextVariableElement, options: MarkdownSerializerOptions) => string;
9
- export declare const serializeToMarkdown: (content: (import("@voiceflow/dtos-interact").SlateTextElement | SlateTextLinkElement | SlateTextVariableElement | SlateText)[], options?: MarkdownSerializerOptions) => string;
@@ -1,42 +0,0 @@
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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.serializeToText = void 0;
27
- const Slate = __importStar(require("slate"));
28
- const guards_1 = require("../guards.cjs");
29
- const nodeToString = (node, options) => {
30
- var _a, _b;
31
- if (!Slate.Element.isElement(node))
32
- return Slate.Node.string(node);
33
- if ((0, guards_1.isLinkElement)(node) && options.markdownLinks)
34
- return `[${(0, exports.serializeToText)(node.children)}](${node.url})`;
35
- if ((0, guards_1.isVariableElement)(node) && options.encodeVariables)
36
- return `{${options.variablesMap ? (_b = (_a = options.variablesMap[node.id]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : node.id : node.name}}`;
37
- return nodesToString(node.children, options).join('');
38
- };
39
- const nodesToString = (nodes, options) => nodes.map((node) => nodeToString(node, options));
40
- const serializeToText = (content, { variablesMap = {}, markdownLinks = false, encodeVariables = true } = {}) => nodesToString(content, { variablesMap, markdownLinks, encodeVariables }).join('\n').trim();
41
- exports.serializeToText = serializeToText;
42
- //# sourceMappingURL=text.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.cjs","sourceRoot":"","sources":["../../../src/serializers/text.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAA+B;AAE/B,sCAA6D;AAQ7D,MAAM,YAAY,GAAG,CAAC,IAAgB,EAAE,OAA8B,EAAU,EAAE;;IAChF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnE,IAAI,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa;QAAE,OAAO,IAAI,IAAA,uBAAe,EAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;IAE5G,IAAI,IAAA,0BAAiB,EAAC,IAAI,CAAC,IAAI,OAAO,CAAC,eAAe;QACpD,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,MAAA,MAAA,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,0CAAE,IAAI,mCAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IAElG,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAmB,EAAE,OAA8B,EAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnI,MAAM,eAAe,GAAG,CAC7B,OAAuB,EACvB,EAAE,YAAY,GAAG,EAAE,EAAE,aAAa,GAAG,KAAK,EAAE,eAAe,GAAG,IAAI,KAA4B,EAAE,EACxF,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAH3F,QAAA,eAAe,mBAG4E"}
@@ -1,9 +0,0 @@
1
- export interface TextSerializerOptions {
2
- variablesMap?: Partial<Record<string, {
3
- id: string;
4
- name: string;
5
- }>>;
6
- markdownLinks?: boolean;
7
- encodeVariables?: boolean;
8
- }
9
- export declare const serializeToText: (content: (import("@voiceflow/dtos-interact").SlateTextElement | import("@voiceflow/dtos-interact").SlateTextLinkElement | import("@voiceflow/dtos-interact").SlateTextVariableElement | import("@voiceflow/dtos-interact").SlateText)[], { variablesMap, markdownLinks, encodeVariables }?: TextSerializerOptions) => string;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertCSSPropertiesToStyles = exports.cssPropertyNameToStyleName = void 0;
4
- const CAPITAL_LETTER_REGEXP = /[A-Z]/g;
5
- const cssPropertyNameToStyleName = (name) => name.replace(CAPITAL_LETTER_REGEXP, (match) => `-${match.toLowerCase()}`);
6
- exports.cssPropertyNameToStyleName = cssPropertyNameToStyleName;
7
- const convertCSSPropertiesToStyles = (properties) => Object.entries(properties)
8
- .map(([key, value]) => `${(0, exports.cssPropertyNameToStyleName)(key)}:${value}`)
9
- .join(';');
10
- exports.convertCSSPropertiesToStyles = convertCSSPropertiesToStyles;
11
- //# sourceMappingURL=styles.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.cjs","sourceRoot":"","sources":["../../src/styles.ts"],"names":[],"mappings":";;;AAEA,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAEhC,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAAjI,QAAA,0BAA0B,8BAAuG;AAEvI,MAAM,4BAA4B,GAAG,CAAC,UAAyB,EAAU,EAAE,CAChF,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;KACvB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAA,kCAA0B,EAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;KACpE,IAAI,CAAC,GAAG,CAAC,CAAC;AAHF,QAAA,4BAA4B,gCAG1B"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- import CSS from 'csstype';
2
- export type CSSProperties = CSS.Properties<string | number>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"guards.mjs","sourceRoot":"","sources":["../../src/guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,oBAAoB,EAAkD,MAAM,0BAA0B,CAAC;AAErI,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAA4B,EAAmC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,oBAAoB,CAAC,IAAI,CAAC;AAE3I,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAA4B,EAAuC,EAAE,CACrG,OAAO,CAAC,IAAI,KAAK,oBAAoB,CAAC,QAAQ,CAAC"}
@@ -1,4 +0,0 @@
1
- export * from './guards.js';
2
- export * from './selectors.js';
3
- export * from './styles.js';
4
- export * from './types.js';
@@ -1,5 +0,0 @@
1
- export * from './guards.mjs';
2
- export * from './selectors.mjs';
3
- export * from './styles.mjs';
4
- export * from './types.mjs';
5
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -1,6 +0,0 @@
1
- import { AnySlateTextElement, SlateText } from '@voiceflow/dtos-interact';
2
- import { CSSProperties } from './types.js';
3
- export declare const getElementCSSProperties: (element: AnySlateTextElement) => CSSProperties;
4
- export declare const getTextCSSProperties: (text: SlateText) => CSSProperties;
5
- export declare const getElementStyles: (element: AnySlateTextElement) => string;
6
- export declare const getTextStyles: (text: SlateText) => string;
@@ -1 +0,0 @@
1
- {"version":3,"file":"selectors.mjs","sourceRoot":"","sources":["../../src/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEvH,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAGxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAA4B,EAAiB,EAAE;IACrF,MAAM,SAAS,GAAG,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAA+B,CAAC;IAE7F,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,IAAI,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAE5C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAe,EAAiB,EAAE;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,IAAI,KAAK;QAAE,MAAM,CAAC,KAAK,GAAG,QAAQ,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC;IAC9E,IAAI,QAAQ;QAAE,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC1C,IAAI,UAAU;QAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,UAAU;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,UAAU,GAAG,CAAC;IAEtD,IAAI,WAAW,IAAI,eAAe,EAAE;QAClC,IAAI,UAAU,GAAG,EAAE,CAAC;QAEpB,IAAI,WAAW;YAAE,UAAU,IAAI,WAAW,CAAC;QAC3C,IAAI,eAAe;YAAE,UAAU,IAAI,eAAe,CAAC;QAEnD,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;KAC3C;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAA4B,EAAU,EAAE,CAAC,4BAA4B,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzI,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAe,EAAU,EAAE,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- import { SlateText, SlateTextLinkElement, SlateTextVariableElement } from '@voiceflow/dtos-interact';
2
- import React from 'react';
3
- export interface JSXSerializerOptions {
4
- variablesMap?: Partial<Record<string, {
5
- id: string;
6
- name: string;
7
- }>>;
8
- transformHref?: (href: string) => string;
9
- }
10
- export declare const serializeToJSX: (content: (import("@voiceflow/dtos-interact").SlateTextElement | SlateTextLinkElement | SlateTextVariableElement | SlateText)[], options?: JSXSerializerOptions) => React.ReactNode;
@@ -1,40 +0,0 @@
1
- import React from 'react';
2
- import * as Slate from 'slate';
3
- import { isLinkElement, isVariableElement } from '../guards.mjs';
4
- import { getElementCSSProperties, getTextCSSProperties } from '../selectors.mjs';
5
- const serializeTextNode = (node, index) => {
6
- const styles = getTextCSSProperties(node);
7
- return (React.createElement("span", { key: index, style: styles }, node.text || React.createElement(React.Fragment, null, "\uFEFF")));
8
- };
9
- const serializeLinkElement = (node, index, options) => {
10
- var _a, _b, _c, _d;
11
- const children = node.children.map((node, index) => serializeNode(node, index, options));
12
- const styles = getElementCSSProperties(node);
13
- const href = (_d = (_c = (_a = options.transformHref) === null || _a === void 0 ? void 0 : _a.call(options, (_b = node.url) !== null && _b !== void 0 ? _b : '')) !== null && _c !== void 0 ? _c : node.url) !== null && _d !== void 0 ? _d : '';
14
- return (React.createElement("a", { key: index, rel: "noopener noreferrer", href: href, target: "_blank", style: Object.assign(Object.assign({}, styles), { pointerEvents: 'all' }), onClick: (event) => {
15
- var _a;
16
- event.stopPropagation();
17
- event.preventDefault();
18
- if (!href)
19
- return;
20
- (_a = window.open(href, '_blank', 'noopener=true,noreferrer=true')) === null || _a === void 0 ? void 0 : _a.focus();
21
- } }, children));
22
- };
23
- const serializeVariableElement = (node, index, options) => {
24
- var _a, _b;
25
- return (React.createElement("span", { key: index }, `{${options.variablesMap ? (_b = (_a = options.variablesMap[node.id]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : node.id : node.name}}`));
26
- };
27
- const serializeElementNode = (node, index, options) => {
28
- if (isLinkElement(node))
29
- return serializeLinkElement(node, index, options);
30
- if (isVariableElement(node))
31
- return serializeVariableElement(node, index, options);
32
- const children = node.children.map((node, index) => serializeNode(node, index, options));
33
- const styles = getElementCSSProperties(node);
34
- return (React.createElement("div", { key: index, style: styles }, children));
35
- };
36
- const serializeNode = (node, index, options) =>
37
- // eslint-disable-next-line no-nested-ternary
38
- Slate.Text.isText(node) ? serializeTextNode(node, index) : Slate.Element.isElement(node) ? serializeElementNode(node, index, options) : null;
39
- export const serializeToJSX = (content, options = {}) => content.map((node, index) => serializeNode(node, index, options));
40
- //# sourceMappingURL=jsx.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsx.mjs","sourceRoot":"","sources":["../../../src/serializers/jsx.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { SlateText, SlateTextLinkElement, SlateTextVariableElement } from '@voiceflow/dtos-interact';
2
- export interface MarkdownSerializerOptions {
3
- variablesMap?: Partial<Record<string, {
4
- id: string;
5
- name: string;
6
- }>>;
7
- }
8
- export declare const serializeVariableElement: (node: SlateTextVariableElement, options: MarkdownSerializerOptions) => string;
9
- export declare const serializeToMarkdown: (content: (import("@voiceflow/dtos-interact").SlateTextElement | SlateTextLinkElement | SlateTextVariableElement | SlateText)[], options?: MarkdownSerializerOptions) => string;
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown.mjs","sourceRoot":"","sources":["../../../src/serializers/markdown.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- export interface TextSerializerOptions {
2
- variablesMap?: Partial<Record<string, {
3
- id: string;
4
- name: string;
5
- }>>;
6
- markdownLinks?: boolean;
7
- encodeVariables?: boolean;
8
- }
9
- export declare const serializeToText: (content: (import("@voiceflow/dtos-interact").SlateTextElement | import("@voiceflow/dtos-interact").SlateTextLinkElement | import("@voiceflow/dtos-interact").SlateTextVariableElement | import("@voiceflow/dtos-interact").SlateText)[], { variablesMap, markdownLinks, encodeVariables }?: TextSerializerOptions) => string;
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.mjs","sourceRoot":"","sources":["../../../src/serializers/text.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAQ7D,MAAM,YAAY,GAAG,CAAC,IAAgB,EAAE,OAA8B,EAAU,EAAE;;IAChF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnE,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa;QAAE,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;IAE5G,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,eAAe;QACpD,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,MAAA,MAAA,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,0CAAE,IAAI,mCAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IAElG,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAmB,EAAE,OAA8B,EAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1I,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAuB,EACvB,EAAE,YAAY,GAAG,EAAE,EAAE,aAAa,GAAG,KAAK,EAAE,eAAe,GAAG,IAAI,KAA4B,EAAE,EACxF,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC"}
@@ -1,3 +0,0 @@
1
- import { CSSProperties } from './types.js';
2
- export declare const cssPropertyNameToStyleName: (name: string) => string;
3
- export declare const convertCSSPropertiesToStyles: (properties: CSSProperties) => string;
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.mjs","sourceRoot":"","sources":["../../src/styles.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAG,QAAQ,CAAC;AAEvC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAE9I,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,UAAyB,EAAU,EAAE,CAChF,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;KACvB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,0BAA0B,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;KACpE,IAAI,CAAC,GAAG,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import CSS from 'csstype';
2
- export type CSSProperties = CSS.Properties<string | number>;
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}