@makeswift/runtime 0.10.14 → 0.10.16

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 (133) hide show
  1. package/dist/Box.cjs.js +1 -0
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +1 -0
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +1 -0
  6. package/dist/Button.cjs.js.map +1 -1
  7. package/dist/Button.es.js +1 -0
  8. package/dist/Button.es.js.map +1 -1
  9. package/dist/Carousel.cjs.js +1 -0
  10. package/dist/Carousel.cjs.js.map +1 -1
  11. package/dist/Carousel.es.js +1 -0
  12. package/dist/Carousel.es.js.map +1 -1
  13. package/dist/Countdown.cjs.js +1 -0
  14. package/dist/Countdown.cjs.js.map +1 -1
  15. package/dist/Countdown.es.js +1 -0
  16. package/dist/Countdown.es.js.map +1 -1
  17. package/dist/Divider.cjs.js +1 -0
  18. package/dist/Divider.cjs.js.map +1 -1
  19. package/dist/Divider.es.js +1 -0
  20. package/dist/Divider.es.js.map +1 -1
  21. package/dist/Embed.cjs.js +1 -0
  22. package/dist/Embed.cjs.js.map +1 -1
  23. package/dist/Embed.es.js +1 -0
  24. package/dist/Embed.es.js.map +1 -1
  25. package/dist/Form.cjs.js +1 -0
  26. package/dist/Form.cjs.js.map +1 -1
  27. package/dist/Form.es.js +1 -0
  28. package/dist/Form.es.js.map +1 -1
  29. package/dist/Image.cjs.js +1 -0
  30. package/dist/Image.cjs.js.map +1 -1
  31. package/dist/Image.es.js +1 -0
  32. package/dist/Image.es.js.map +1 -1
  33. package/dist/LiveProvider.cjs.js +1 -0
  34. package/dist/LiveProvider.cjs.js.map +1 -1
  35. package/dist/LiveProvider.es.js +1 -0
  36. package/dist/LiveProvider.es.js.map +1 -1
  37. package/dist/Navigation.cjs.js +1 -0
  38. package/dist/Navigation.cjs.js.map +1 -1
  39. package/dist/Navigation.es.js +1 -0
  40. package/dist/Navigation.es.js.map +1 -1
  41. package/dist/PreviewProvider.cjs.js +1 -0
  42. package/dist/PreviewProvider.cjs.js.map +1 -1
  43. package/dist/PreviewProvider.es.js +1 -0
  44. package/dist/PreviewProvider.es.js.map +1 -1
  45. package/dist/ReadOnlyText.cjs.js +1 -0
  46. package/dist/ReadOnlyText.cjs.js.map +1 -1
  47. package/dist/ReadOnlyText.es.js +1 -0
  48. package/dist/ReadOnlyText.es.js.map +1 -1
  49. package/dist/ReadOnlyTextV2.cjs.js +1 -0
  50. package/dist/ReadOnlyTextV2.cjs.js.map +1 -1
  51. package/dist/ReadOnlyTextV2.es.js +1 -0
  52. package/dist/ReadOnlyTextV2.es.js.map +1 -1
  53. package/dist/Root.cjs.js +1 -0
  54. package/dist/Root.cjs.js.map +1 -1
  55. package/dist/Root.es.js +1 -0
  56. package/dist/Root.es.js.map +1 -1
  57. package/dist/SocialLinks.cjs.js +1 -0
  58. package/dist/SocialLinks.cjs.js.map +1 -1
  59. package/dist/SocialLinks.es.js +1 -0
  60. package/dist/SocialLinks.es.js.map +1 -1
  61. package/dist/Video.cjs.js +1 -0
  62. package/dist/Video.cjs.js.map +1 -1
  63. package/dist/Video.es.js +1 -0
  64. package/dist/Video.es.js.map +1 -1
  65. package/dist/builder.cjs.js +1 -0
  66. package/dist/builder.cjs.js.map +1 -1
  67. package/dist/builder.es.js +1 -0
  68. package/dist/builder.es.js.map +1 -1
  69. package/dist/components.cjs.js +1 -0
  70. package/dist/components.cjs.js.map +1 -1
  71. package/dist/components.es.js +1 -0
  72. package/dist/components.es.js.map +1 -1
  73. package/dist/control-serialization.cjs.js +1 -0
  74. package/dist/control-serialization.cjs.js.map +1 -1
  75. package/dist/control-serialization.es.js +1 -0
  76. package/dist/control-serialization.es.js.map +1 -1
  77. package/dist/controls.cjs.js +1 -0
  78. package/dist/controls.cjs.js.map +1 -1
  79. package/dist/controls.es.js +1 -0
  80. package/dist/controls.es.js.map +1 -1
  81. package/dist/index.cjs.js +19 -12
  82. package/dist/index.cjs.js.map +1 -1
  83. package/dist/index.cjs2.js +1 -0
  84. package/dist/index.cjs2.js.map +1 -1
  85. package/dist/index.cjs8.js +1 -0
  86. package/dist/index.cjs8.js.map +1 -1
  87. package/dist/index.cjs9.js +1 -0
  88. package/dist/index.cjs9.js.map +1 -1
  89. package/dist/index.es.js +19 -12
  90. package/dist/index.es.js.map +1 -1
  91. package/dist/index.es2.js +1 -0
  92. package/dist/index.es2.js.map +1 -1
  93. package/dist/index.es8.js +1 -0
  94. package/dist/index.es8.js.map +1 -1
  95. package/dist/index.es9.js +1 -0
  96. package/dist/index.es9.js.map +1 -1
  97. package/dist/main.cjs.js +1 -0
  98. package/dist/main.cjs.js.map +1 -1
  99. package/dist/main.es.js +1 -0
  100. package/dist/main.es.js.map +1 -1
  101. package/dist/next.cjs.js +1 -0
  102. package/dist/next.cjs.js.map +1 -1
  103. package/dist/next.es.js +1 -0
  104. package/dist/next.es.js.map +1 -1
  105. package/dist/prop-controllers.cjs.js +1 -0
  106. package/dist/prop-controllers.cjs.js.map +1 -1
  107. package/dist/prop-controllers.es.js +1 -0
  108. package/dist/prop-controllers.es.js.map +1 -1
  109. package/dist/react-page.cjs.js +48 -4
  110. package/dist/react-page.cjs.js.map +1 -1
  111. package/dist/react-page.es.js +47 -4
  112. package/dist/react-page.es.js.map +1 -1
  113. package/dist/react.cjs.js +1 -0
  114. package/dist/react.cjs.js.map +1 -1
  115. package/dist/react.es.js +1 -0
  116. package/dist/react.es.js.map +1 -1
  117. package/dist/slate.cjs.js +1 -0
  118. package/dist/slate.cjs.js.map +1 -1
  119. package/dist/slate.es.js +1 -0
  120. package/dist/slate.es.js.map +1 -1
  121. package/dist/toText.cjs.js +1 -0
  122. package/dist/toText.cjs.js.map +1 -1
  123. package/dist/toText.es.js +1 -0
  124. package/dist/toText.es.js.map +1 -1
  125. package/dist/types/src/controls/control.d.ts.map +1 -1
  126. package/dist/types/src/controls/image.d.ts +16 -1
  127. package/dist/types/src/controls/image.d.ts.map +1 -1
  128. package/dist/types/src/controls/rich-text-v2/translatableData.d.ts +3 -0
  129. package/dist/types/src/controls/rich-text-v2/translatableData.d.ts.map +1 -0
  130. package/dist/types/src/prop-controllers/introspection.d.ts.map +1 -1
  131. package/dist/types/src/runtimes/react/controls/image.d.ts.map +1 -1
  132. package/dist/types/types/locale.d.ts +1 -1
  133. package/package.json +3 -1
@@ -43,6 +43,7 @@ import { match, P } from "ts-pattern";
43
43
  import ipsum from "corporate-ipsum";
44
44
  import { Element, Range, Editor, Text, Path, Transforms, Node, Point } from "slate";
45
45
  import { v4 } from "uuid";
46
+ import escapeHtml from "escape-html";
46
47
  import React__default from "react";
47
48
  import { cache, cx } from "@emotion/css";
48
49
  import { serializeStyles } from "@emotion/serialize";
@@ -807,14 +808,19 @@ const ImageControlValueFormat = {
807
808
  WithDimensions: "makeswift::controls::image::format::with-dimensions"
808
809
  };
809
810
  function Image(config = {}) {
810
- return { type: ImageControlType, config };
811
+ return { type: ImageControlType, config, version: 1 };
811
812
  }
812
813
  Image.Format = ImageControlValueFormat;
813
814
  function copyImageData(value, context) {
814
- var _a;
815
815
  if (value == null)
816
816
  return value;
817
- return (_a = context.replacementContext.fileIds.get(value)) != null ? _a : value;
817
+ return match(value).with(P.string, (id) => {
818
+ var _a;
819
+ return (_a = context.replacementContext.fileIds.get(id)) != null ? _a : id;
820
+ }).with({ type: "makeswift-file" }, ({ id }) => {
821
+ var _a;
822
+ return (_a = context.replacementContext.fileIds.get(id)) != null ? _a : id;
823
+ }).otherwise((val) => val);
818
824
  }
819
825
  if (import_meta.vitest) {
820
826
  const { describe, test, expect } = import_meta.vitest;
@@ -3974,6 +3980,41 @@ function copyRichTextV2Data(data, context) {
3974
3980
  });
3975
3981
  }
3976
3982
  }
3983
+ function hashTranslationString(s) {
3984
+ let hash = 0;
3985
+ for (let i = 0, len = s.length; i < len; i++) {
3986
+ let chr = s.charCodeAt(i);
3987
+ hash = (hash << 5) - hash + chr;
3988
+ hash |= 0;
3989
+ }
3990
+ return hash.toString();
3991
+ }
3992
+ function getRichTextV2TranslatableDescendant(definition2, descendant) {
3993
+ if (Text.isText(descendant)) {
3994
+ let string = escapeHtml(descendant.text);
3995
+ return string;
3996
+ }
3997
+ const children = descendant.children.map((child) => getRichTextV2TranslatableDescendant(definition2, child)).join("");
3998
+ switch (descendant.type) {
3999
+ case InlineType.Link:
4000
+ return `<a>${children}</a>`;
4001
+ case InlineType.Link:
4002
+ return `<sup>${children}</sup>`;
4003
+ case InlineType.Link:
4004
+ return `<sub>${children}</sub>`;
4005
+ case InlineType.Link:
4006
+ return `<code>${children}</code>`;
4007
+ default:
4008
+ return children;
4009
+ }
4010
+ }
4011
+ function getRichTextV2TranslatableData(definition2, data) {
4012
+ return data.descendants.reduce((acc, descendant) => {
4013
+ const value = getRichTextV2TranslatableDescendant(definition2, descendant);
4014
+ const key = hashTranslationString(value);
4015
+ return __spreadProps(__spreadValues({}, acc), { [key]: value });
4016
+ }, {});
4017
+ }
3977
4018
  function copy(definition2, value, context) {
3978
4019
  switch (definition2.type) {
3979
4020
  case Types.Backgrounds:
@@ -4027,6 +4068,8 @@ function getTranslatableData(definition2, data) {
4027
4068
  case TextInputControlType:
4028
4069
  case TextAreaControlType:
4029
4070
  return data;
4071
+ case RichTextV2ControlType:
4072
+ return getRichTextV2TranslatableData(definition2, data);
4030
4073
  case ListControlType:
4031
4074
  return getListTranslatableData(definition2, data);
4032
4075
  case ShapeControlType:
@@ -4374,7 +4417,7 @@ function getFileIds(descriptor, prop) {
4374
4417
  }
4375
4418
  case ImageControlType: {
4376
4419
  const value = prop;
4377
- return value == null ? [] : [value];
4420
+ return match(value).with(P.string, (f) => [f]).with({ type: "makeswift-file" }, (f) => [f.id]).with({ type: "external-file" }, () => []).otherwise(() => []);
4378
4421
  }
4379
4422
  case ShapeControlType: {
4380
4423
  return getShapeFileIds(descriptor, prop);