@makeswift/runtime 0.9.2 → 0.9.4

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 (197) hide show
  1. package/dist/Box.cjs.js +1 -3
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +2 -4
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +1 -3
  6. package/dist/Button.cjs.js.map +1 -1
  7. package/dist/Button.es.js +2 -4
  8. package/dist/Button.es.js.map +1 -1
  9. package/dist/Carousel.cjs.js +1 -3
  10. package/dist/Carousel.cjs.js.map +1 -1
  11. package/dist/Carousel.es.js +2 -4
  12. package/dist/Carousel.es.js.map +1 -1
  13. package/dist/Countdown.cjs.js +1 -3
  14. package/dist/Countdown.cjs.js.map +1 -1
  15. package/dist/Countdown.es.js +2 -4
  16. package/dist/Countdown.es.js.map +1 -1
  17. package/dist/Divider.cjs.js +1 -3
  18. package/dist/Divider.cjs.js.map +1 -1
  19. package/dist/Divider.es.js +2 -4
  20. package/dist/Divider.es.js.map +1 -1
  21. package/dist/Embed.es.js +1 -1
  22. package/dist/Form.cjs.js +1 -3
  23. package/dist/Form.cjs.js.map +1 -1
  24. package/dist/Form.es.js +2 -4
  25. package/dist/Form.es.js.map +1 -1
  26. package/dist/Image.cjs.js +1 -3
  27. package/dist/Image.cjs.js.map +1 -1
  28. package/dist/Image.es.js +2 -4
  29. package/dist/Image.es.js.map +1 -1
  30. package/dist/LiveProvider.cjs.js +1 -3
  31. package/dist/LiveProvider.cjs.js.map +1 -1
  32. package/dist/LiveProvider.es.js +2 -4
  33. package/dist/LiveProvider.es.js.map +1 -1
  34. package/dist/Navigation.cjs.js +1 -3
  35. package/dist/Navigation.cjs.js.map +1 -1
  36. package/dist/Navigation.es.js +2 -4
  37. package/dist/Navigation.es.js.map +1 -1
  38. package/dist/PreviewProvider.cjs.js +3 -5
  39. package/dist/PreviewProvider.cjs.js.map +1 -1
  40. package/dist/PreviewProvider.es.js +3 -5
  41. package/dist/PreviewProvider.es.js.map +1 -1
  42. package/dist/ReadOnlyText.cjs.js +4 -7
  43. package/dist/ReadOnlyText.cjs.js.map +1 -1
  44. package/dist/ReadOnlyText.es.js +4 -7
  45. package/dist/ReadOnlyText.es.js.map +1 -1
  46. package/dist/ReadOnlyTextV2.cjs.js +11 -14
  47. package/dist/ReadOnlyTextV2.cjs.js.map +1 -1
  48. package/dist/ReadOnlyTextV2.es.js +10 -13
  49. package/dist/ReadOnlyTextV2.es.js.map +1 -1
  50. package/dist/Root.cjs.js +1 -3
  51. package/dist/Root.cjs.js.map +1 -1
  52. package/dist/Root.es.js +2 -4
  53. package/dist/Root.es.js.map +1 -1
  54. package/dist/SocialLinks.cjs.js +1 -3
  55. package/dist/SocialLinks.cjs.js.map +1 -1
  56. package/dist/SocialLinks.es.js +2 -4
  57. package/dist/SocialLinks.es.js.map +1 -1
  58. package/dist/Text.cjs.js +2 -4
  59. package/dist/Text.cjs.js.map +1 -1
  60. package/dist/Text.es.js +2 -4
  61. package/dist/Text.es.js.map +1 -1
  62. package/dist/Video.es.js +1 -1
  63. package/dist/components.cjs.js +1 -3
  64. package/dist/components.cjs.js.map +1 -1
  65. package/dist/components.es.js +1 -3
  66. package/dist/components.es.js.map +1 -1
  67. package/dist/control-serialization.es.js +1 -1
  68. package/dist/controls.cjs.js +18 -15
  69. package/dist/controls.cjs.js.map +1 -1
  70. package/dist/controls.es.js +2 -3
  71. package/dist/controls.es.js.map +1 -1
  72. package/dist/index.cjs.js +205 -57
  73. package/dist/index.cjs.js.map +1 -1
  74. package/dist/index.cjs10.js +261 -172
  75. package/dist/index.cjs10.js.map +1 -1
  76. package/dist/index.cjs5.js +99 -5
  77. package/dist/index.cjs5.js.map +1 -1
  78. package/dist/index.cjs6.js +23 -700
  79. package/dist/index.cjs6.js.map +1 -1
  80. package/dist/index.cjs7.js +13 -37
  81. package/dist/index.cjs7.js.map +1 -1
  82. package/dist/index.cjs8.js +39 -17
  83. package/dist/index.cjs8.js.map +1 -1
  84. package/dist/index.cjs9.js +269 -16
  85. package/dist/index.cjs9.js.map +1 -1
  86. package/dist/index.es.js +187 -41
  87. package/dist/index.es.js.map +1 -1
  88. package/dist/index.es10.js +262 -173
  89. package/dist/index.es10.js.map +1 -1
  90. package/dist/index.es2.js +1 -1
  91. package/dist/index.es4.js +1 -1
  92. package/dist/index.es5.js +91 -2
  93. package/dist/index.es5.js.map +1 -1
  94. package/dist/index.es6.js +23 -695
  95. package/dist/index.es6.js.map +1 -1
  96. package/dist/index.es7.js +14 -33
  97. package/dist/index.es7.js.map +1 -1
  98. package/dist/index.es8.js +37 -17
  99. package/dist/index.es8.js.map +1 -1
  100. package/dist/index.es9.js +264 -15
  101. package/dist/index.es9.js.map +1 -1
  102. package/dist/next.cjs.js +1 -3
  103. package/dist/next.cjs.js.map +1 -1
  104. package/dist/next.es.js +2 -4
  105. package/dist/next.es.js.map +1 -1
  106. package/dist/react-page.cjs.js +97 -9
  107. package/dist/react-page.cjs.js.map +1 -1
  108. package/dist/react-page.es.js +95 -9
  109. package/dist/react-page.es.js.map +1 -1
  110. package/dist/react.cjs.js +1 -3
  111. package/dist/react.cjs.js.map +1 -1
  112. package/dist/react.es.js +1 -3
  113. package/dist/react.es.js.map +1 -1
  114. package/dist/slate.cjs.js +260 -97
  115. package/dist/slate.cjs.js.map +1 -1
  116. package/dist/slate.es.js +249 -92
  117. package/dist/slate.es.js.map +1 -1
  118. package/dist/types/src/components/builtin/Button/Button.d.ts +1 -1
  119. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
  120. package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts.map +1 -1
  121. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts +0 -17
  122. package/dist/types/src/components/builtin/Text/components/Leaf/leaf.d.ts.map +1 -1
  123. package/dist/types/src/controls/control.d.ts +3 -2
  124. package/dist/types/src/controls/control.d.ts.map +1 -1
  125. package/dist/types/src/controls/icon-radio-group.d.ts +5 -2
  126. package/dist/types/src/controls/icon-radio-group.d.ts.map +1 -1
  127. package/dist/types/src/controls/index.d.ts +1 -0
  128. package/dist/types/src/controls/index.d.ts.map +1 -1
  129. package/dist/types/src/controls/list.d.ts +2 -0
  130. package/dist/types/src/controls/list.d.ts.map +1 -1
  131. package/dist/types/src/controls/shape.d.ts +2 -0
  132. package/dist/types/src/controls/shape.d.ts.map +1 -1
  133. package/dist/types/src/controls/style-v2.d.ts.map +1 -1
  134. package/dist/types/src/controls/typography.d.ts +31 -0
  135. package/dist/types/src/controls/typography.d.ts.map +1 -0
  136. package/dist/types/src/next/client.d.ts.map +1 -1
  137. package/dist/types/src/prop-controllers/descriptors.d.ts +6 -3
  138. package/dist/types/src/prop-controllers/descriptors.d.ts.map +1 -1
  139. package/dist/types/src/prop-controllers/introspection.d.ts +1 -1
  140. package/dist/types/src/prop-controllers/introspection.d.ts.map +1 -1
  141. package/dist/types/src/runtimes/react/controls/control.d.ts +3 -2
  142. package/dist/types/src/runtimes/react/controls/control.d.ts.map +1 -1
  143. package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -1
  144. package/dist/types/src/runtimes/react/controls/typography.d.ts +21 -0
  145. package/dist/types/src/runtimes/react/controls/typography.d.ts.map +1 -0
  146. package/dist/types/src/runtimes/react/controls.d.ts.map +1 -1
  147. package/dist/types/src/slate/InlinePlugin/getValue.d.ts +5 -0
  148. package/dist/types/src/slate/InlinePlugin/getValue.d.ts.map +1 -0
  149. package/dist/types/src/slate/InlinePlugin/index.d.ts +16 -0
  150. package/dist/types/src/slate/InlinePlugin/index.d.ts.map +1 -0
  151. package/dist/types/src/slate/InlinePlugin/onChange.d.ts +4 -0
  152. package/dist/types/src/slate/InlinePlugin/onChange.d.ts.map +1 -0
  153. package/dist/types/src/slate/InlinePlugin/types.d.ts +9 -0
  154. package/dist/types/src/slate/InlinePlugin/types.d.ts.map +1 -0
  155. package/dist/types/src/slate/LinkPlugin/getValue.d.ts +5 -0
  156. package/dist/types/src/slate/LinkPlugin/getValue.d.ts.map +1 -0
  157. package/dist/types/src/slate/LinkPlugin/index.d.ts +15 -0
  158. package/dist/types/src/slate/LinkPlugin/index.d.ts.map +1 -0
  159. package/dist/types/src/slate/LinkPlugin/onChange.d.ts +4 -0
  160. package/dist/types/src/slate/LinkPlugin/onChange.d.ts.map +1 -0
  161. package/dist/types/src/slate/LinkPlugin/types.d.ts +5 -0
  162. package/dist/types/src/slate/LinkPlugin/types.d.ts.map +1 -0
  163. package/dist/types/src/slate/TextAlignPlugin/index.d.ts +2 -0
  164. package/dist/types/src/slate/TextAlignPlugin/index.d.ts.map +1 -1
  165. package/dist/types/src/slate/TypographyPlugin/index.d.ts +9 -0
  166. package/dist/types/src/slate/TypographyPlugin/index.d.ts.map +1 -1
  167. package/dist/types/src/slate/index.d.ts +2 -0
  168. package/dist/types/src/slate/index.d.ts.map +1 -1
  169. package/dist/types.cjs2.js +753 -0
  170. package/dist/types.cjs2.js.map +1 -0
  171. package/dist/types.es2.js +736 -0
  172. package/dist/types.es2.js.map +1 -0
  173. package/dist/typography.cjs.js +56 -0
  174. package/dist/typography.cjs.js.map +1 -0
  175. package/dist/typography.es.js +41 -0
  176. package/dist/typography.es.js.map +1 -0
  177. package/package.json +1 -1
  178. package/dist/deepEqual.cjs.js +0 -40
  179. package/dist/deepEqual.cjs.js.map +0 -1
  180. package/dist/deepEqual.es.js +0 -39
  181. package/dist/deepEqual.es.js.map +0 -1
  182. package/dist/index.cjs11.js +0 -375
  183. package/dist/index.cjs11.js.map +0 -1
  184. package/dist/index.es11.js +0 -368
  185. package/dist/index.es11.js.map +0 -1
  186. package/dist/leaf.cjs.js +0 -182
  187. package/dist/leaf.cjs.js.map +0 -1
  188. package/dist/leaf.es.js +0 -179
  189. package/dist/leaf.es.js.map +0 -1
  190. package/dist/select.cjs.js +0 -21
  191. package/dist/select.cjs.js.map +0 -1
  192. package/dist/select.es.js +0 -16
  193. package/dist/select.es.js.map +0 -1
  194. package/dist/text-input.cjs.js +0 -26
  195. package/dist/text-input.cjs.js.map +0 -1
  196. package/dist/text-input.es.js +0 -18
  197. package/dist/text-input.es.js.map +0 -1
package/dist/index.cjs.js CHANGED
@@ -41,15 +41,13 @@ var dynamic = require("next/dynamic");
41
41
  var reactPage = require("./react-page.cjs.js");
42
42
  var actions = require("./actions.cjs.js");
43
43
  var jsxRuntime = require("react/jsx-runtime");
44
- var textInput = require("./text-input.cjs.js");
44
+ var typography = require("./typography.cjs.js");
45
45
  var combobox = require("./combobox.cjs.js");
46
- var select = require("./select.cjs.js");
47
46
  require("slate");
48
47
  var shim = require("use-sync-external-store/shim");
49
48
  var redux = require("redux");
50
49
  var thunk = require("redux-thunk");
51
50
  var types = require("./types.cjs.js");
52
- var deepEqual = require("./deepEqual.cjs.js");
53
51
  var state_breakpoints = require("./state/breakpoints.cjs.js");
54
52
  var boxModels = require("./box-models.cjs.js");
55
53
  var ColorHelper = require("color");
@@ -149,6 +147,43 @@ function BodySnippet({
149
147
  }, [code, cleanup]);
150
148
  return null;
151
149
  }
150
+ function is(x, y) {
151
+ if (x === y)
152
+ return x !== 0 || y !== 0 || 1 / x === 1 / y;
153
+ return x !== x && y !== y;
154
+ }
155
+ const { hasOwnProperty: hasOwnProperty$1 } = Object.prototype;
156
+ const shallowEqual = (a, b) => {
157
+ if (is(a, b))
158
+ return true;
159
+ if (typeof a !== "object" || a === null || typeof b !== "object" || b === null)
160
+ return false;
161
+ const keysA = Object.keys(a);
162
+ const keysB = Object.keys(b);
163
+ if (keysA.length !== keysB.length)
164
+ return false;
165
+ for (let i = 0; i < keysA.length; i += 1) {
166
+ if (!hasOwnProperty$1.call(b, keysA[i]) || !is(a[keysA[i]], b[keysA[i]]))
167
+ return false;
168
+ }
169
+ return true;
170
+ };
171
+ const { hasOwnProperty } = Object.prototype;
172
+ const deepEqual = (a, b) => {
173
+ if (shallowEqual(a, b))
174
+ return true;
175
+ if (typeof a !== "object" || a === null || typeof b !== "object" || b === null)
176
+ return false;
177
+ const keysA = Object.keys(a);
178
+ const keysB = Object.keys(b);
179
+ if (keysA.length !== keysB.length)
180
+ return false;
181
+ for (let i = 0; i < keysA.length; i += 1) {
182
+ if (!hasOwnProperty.call(b, keysA[i]) || !deepEqual(a[keysA[i]], b[keysA[i]]))
183
+ return false;
184
+ }
185
+ return true;
186
+ };
152
187
  function getInitialState(serializedState = {
153
188
  Swatch: [],
154
189
  File: [],
@@ -182,7 +217,7 @@ function reducer$1(state = getInitialState(), action) {
182
217
  }
183
218
  case actions.ActionTypes.CHANGE_API_RESOURCE: {
184
219
  const existingApiResource = getAPIResource$1(state, action.payload.resource.__typename, action.payload.resource.id);
185
- if (deepEqual.deepEqual(existingApiResource, action.payload.resource))
220
+ if (deepEqual(existingApiResource, action.payload.resource))
186
221
  return state;
187
222
  return new Map(state).set(action.payload.resource.__typename, new Map(state.get(action.payload.resource.__typename)).set(action.payload.resource.id, action.payload.resource));
188
223
  }
@@ -573,7 +608,7 @@ function Page$1({
573
608
  return;
574
609
  const oldSnippets = snippets.map(filterUsedSnippetProperties);
575
610
  const newSnippets = cachedPage.snippets.map(filterUsedSnippetProperties);
576
- if (deepEqual.deepEqual(newSnippets, oldSnippets))
611
+ if (deepEqual(newSnippets, oldSnippets))
577
612
  return;
578
613
  setSnippets(cachedPage.snippets);
579
614
  }, [cachedPage]);
@@ -924,7 +959,7 @@ Received "${apiKey}" instead.`);
924
959
  while (current = remaining.pop()) {
925
960
  let getResourcesFromElementDescriptors = function(elementDescriptors2, props) {
926
961
  Object.entries(elementDescriptors2).forEach(([propName, descriptor]) => {
927
- reactPage.getElementSwatchIds(descriptor, props[propName]).forEach((swatchId) => {
962
+ reactPage.getSwatchIds(descriptor, props[propName]).forEach((swatchId) => {
928
963
  swatchIds.add(swatchId);
929
964
  });
930
965
  reactPage.getFileIds(descriptor, props[propName]).forEach((fileId) => fileIds.add(fileId));
@@ -937,34 +972,6 @@ Received "${apiKey}" instead.`);
937
972
  remaining.push(child);
938
973
  }
939
974
  });
940
- if (descriptor.type === reactPage.ShapeControlType) {
941
- const prop = props[propName];
942
- if (prop == null)
943
- return;
944
- getResourcesFromElementDescriptors(descriptor.config.type, prop);
945
- }
946
- if (descriptor.type === reactPage.ListControlType) {
947
- const prop = props[propName];
948
- if (prop == null)
949
- return;
950
- prop.forEach((item) => {
951
- getResourcesFromElementDescriptors({ propName: descriptor.config.type }, { propName: item.value });
952
- });
953
- }
954
- if (descriptor.type === reactPage.Types.Shape) {
955
- const prop = props[propName];
956
- if (prop == null)
957
- return;
958
- getResourcesFromElementDescriptors(descriptor.options.type, prop);
959
- }
960
- if (descriptor.type === reactPage.Types.List) {
961
- const prop = props[propName];
962
- if (prop == null)
963
- return;
964
- prop.forEach((item) => {
965
- getResourcesFromElementDescriptors({ propName: descriptor.options.type }, { propName: item.value });
966
- });
967
- }
968
975
  });
969
976
  };
970
977
  let element2;
@@ -984,8 +991,8 @@ Received "${apiKey}" instead.`);
984
991
  getResourcesFromElementDescriptors(elementDescriptors, element2.props);
985
992
  }
986
993
  const typographies = await this.getTypographies([...typographyIds]);
987
- typographies.forEach((typography) => {
988
- typography == null ? void 0 : typography.style.forEach((style) => {
994
+ typographies.forEach((typography2) => {
995
+ typography2 == null ? void 0 : typography2.style.forEach((style) => {
989
996
  var _a;
990
997
  const swatchId = (_a = style.value.color) == null ? void 0 : _a.swatchId;
991
998
  if (swatchId != null)
@@ -1020,7 +1027,7 @@ Received "${apiKey}" instead.`);
1020
1027
  var _a;
1021
1028
  return {
1022
1029
  id,
1023
- value: (_a = typographies.find((typography) => (typography == null ? void 0 : typography.id) === id)) != null ? _a : null
1030
+ value: (_a = typographies.find((typography2) => (typography2 == null ? void 0 : typography2.id) === id)) != null ? _a : null
1024
1031
  };
1025
1032
  }),
1026
1033
  [types.APIResourceType.Table]: [...tableIds].map((id) => {
@@ -1147,7 +1154,7 @@ async function fonts(_req, res, { getFonts } = {}) {
1147
1154
  const fonts2 = (_a = await (getFonts == null ? void 0 : getFonts())) != null ? _a : [];
1148
1155
  return res.json(fonts2);
1149
1156
  }
1150
- const version = "0.9.2";
1157
+ const version = "0.9.4";
1151
1158
  async function handler(req, res, { apiKey, unstable_siteVersions }) {
1152
1159
  if (req.query.secret !== apiKey) {
1153
1160
  return res.status(401).json({ message: "Unauthorized" });
@@ -2551,12 +2558,12 @@ function useFiles(fileIds) {
2551
2558
  function useTypography(typographyId) {
2552
2559
  const client = useMakeswiftClient();
2553
2560
  const readTypography = () => typographyId == null ? null : client.readTypography(typographyId);
2554
- const typography = shim.useSyncExternalStore(client.subscribe, readTypography, readTypography);
2561
+ const typography2 = shim.useSyncExternalStore(client.subscribe, readTypography, readTypography);
2555
2562
  React.useEffect(() => {
2556
2563
  if (typographyId != null)
2557
2564
  client.fetchTypography(typographyId).catch(console.error);
2558
2565
  }, [client, typographyId]);
2559
- return typography;
2566
+ return typography2;
2560
2567
  }
2561
2568
  function useGlobalElement(globalElementId) {
2562
2569
  const client = useMakeswiftClient();
@@ -2969,7 +2976,7 @@ function useFormattedStyle(styleControlData, controlDefinition, control) {
2969
2976
  return;
2970
2977
  const element = document.querySelector(`.${guid}`);
2971
2978
  const measuredBoxModel = element == null ? null : boxModels.getBox(element);
2972
- if (!deepEqual.deepEqual(currentBoxModel, measuredBoxModel)) {
2979
+ if (!deepEqual(currentBoxModel, measuredBoxModel)) {
2973
2980
  currentBoxModel = measuredBoxModel;
2974
2981
  control.changeBoxModel(currentBoxModel);
2975
2982
  }
@@ -3122,7 +3129,7 @@ function useNumber(numberControlData, controlDefinition) {
3122
3129
  return numberControlData != null ? numberControlData : controlDefinition.config.defaultValue;
3123
3130
  }
3124
3131
  const Text = forwardNextDynamicRef((patch) => dynamic__default["default"](() => patch(Promise.resolve().then(function() {
3125
- return require("./index.cjs9.js");
3132
+ return require("./index.cjs8.js");
3126
3133
  }))));
3127
3134
  function useRichText(data, control) {
3128
3135
  const textCallbackRef = React.useCallback((handle) => {
@@ -3138,7 +3145,7 @@ function useRichText(data, control) {
3138
3145
  });
3139
3146
  }
3140
3147
  const EditableText = forwardNextDynamicRef((patch) => dynamic__default["default"](() => patch(Promise.resolve().then(function() {
3141
- return require("./index.cjs10.js");
3148
+ return require("./index.cjs9.js");
3142
3149
  }))));
3143
3150
  const ReadOnlyText = forwardNextDynamicRef((patch) => dynamic__default["default"](() => patch(Promise.resolve().then(function() {
3144
3151
  return require("./ReadOnlyTextV2.cjs.js");
@@ -3179,7 +3186,7 @@ function pollBoxModel({
3179
3186
  let currentBoxModel = null;
3180
3187
  const handleAnimationFrameRequest = () => {
3181
3188
  const measuredBoxModel = boxModels.getBox(element);
3182
- if (!deepEqual.deepEqual(currentBoxModel, measuredBoxModel)) {
3189
+ if (!deepEqual(currentBoxModel, measuredBoxModel)) {
3183
3190
  currentBoxModel = measuredBoxModel;
3184
3191
  onBoxModelChange(currentBoxModel);
3185
3192
  }
@@ -3377,6 +3384,138 @@ function useTextAreaValue(data, definition) {
3377
3384
  function useTextInputValue(data, definition) {
3378
3385
  return data != null ? data : definition.config.defaultValue;
3379
3386
  }
3387
+ function isNonNullable(value) {
3388
+ return value != null;
3389
+ }
3390
+ function typographyFragementToTypographyControlData(typography2) {
3391
+ if (typography2 == null)
3392
+ return void 0;
3393
+ return {
3394
+ id: typography2.id,
3395
+ style: typography2.style.map(({ deviceId, value }) => {
3396
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
3397
+ return {
3398
+ deviceId,
3399
+ value: {
3400
+ fontFamily: (_a = value.fontFamily) != null ? _a : void 0,
3401
+ lineHeight: (_b = value.lineHeight) != null ? _b : void 0,
3402
+ letterSpacing: (_c = value.letterSpacing) != null ? _c : void 0,
3403
+ fontWeight: (_d = value.fontWeight) != null ? _d : void 0,
3404
+ textAlign: (_e = value.textAlign) != null ? _e : void 0,
3405
+ uppercase: (_f = value.uppercase) != null ? _f : void 0,
3406
+ underline: (_g = value.underline) != null ? _g : void 0,
3407
+ strikethrough: (_h = value.strikethrough) != null ? _h : void 0,
3408
+ italic: (_i = value.italic) != null ? _i : void 0,
3409
+ fontSize: (_j = value.fontSize) != null ? _j : void 0,
3410
+ color: (_k = value.color) != null ? _k : void 0
3411
+ }
3412
+ };
3413
+ })
3414
+ };
3415
+ }
3416
+ function getTypographyStyleSwatchIds(style) {
3417
+ var _a;
3418
+ return (_a = style == null ? void 0 : style.map((override) => override.value).flatMap((typographyStyle) => {
3419
+ var _a2;
3420
+ return (_a2 = typographyStyle.color) == null ? void 0 : _a2.swatchId;
3421
+ }).filter(isNonNullable)) != null ? _a : [];
3422
+ }
3423
+ const withColor = (swatches) => (deviceRawTypographyValue) => {
3424
+ var _b, _c;
3425
+ const { value, deviceId } = deviceRawTypographyValue;
3426
+ if (value.color == null) {
3427
+ const _a = value, { color } = _a, nextValue = __objRest(_a, ["color"]);
3428
+ return {
3429
+ deviceId,
3430
+ value: nextValue
3431
+ };
3432
+ }
3433
+ return {
3434
+ deviceId,
3435
+ value: __spreadProps(__spreadValues({}, value), {
3436
+ color: {
3437
+ swatch: swatches.find((s) => {
3438
+ var _a2;
3439
+ return s && s.id === ((_a2 = value.color) == null ? void 0 : _a2.swatchId);
3440
+ }),
3441
+ alpha: (_c = (_b = value.color) == null ? void 0 : _b.alpha) != null ? _c : void 0
3442
+ }
3443
+ })
3444
+ };
3445
+ };
3446
+ const getDeviceId = ({ deviceId }) => deviceId;
3447
+ function useEnhancedTypography(value) {
3448
+ var _a, _b, _c;
3449
+ const typography2 = typographyFragementToTypographyControlData(useTypography((_a = value == null ? void 0 : value.id) != null ? _a : null));
3450
+ const source = (_b = typography2 == null ? void 0 : typography2.style) != null ? _b : [];
3451
+ const override = (_c = value == null ? void 0 : value.style) != null ? _c : [];
3452
+ const breakpoints = useBreakpoints();
3453
+ const swatchIds = [
3454
+ ...getTypographyStyleSwatchIds(value == null ? void 0 : value.style),
3455
+ ...getTypographyStyleSwatchIds(typography2 == null ? void 0 : typography2.style)
3456
+ ];
3457
+ const swatches = useSwatches(swatchIds).filter(isNonNullable);
3458
+ const enhancedSource = source.map(withColor(swatches));
3459
+ const enhancedOverride = override.map(withColor(swatches));
3460
+ const devices = [
3461
+ ...new Set(enhancedSource.map(getDeviceId).concat(enhancedOverride.map(getDeviceId)))
3462
+ ];
3463
+ return devices.map((deviceId) => {
3464
+ var _a2, _b2;
3465
+ const deviceSource = (_a2 = state_breakpoints.findBreakpointOverride(breakpoints, enhancedSource, deviceId)) == null ? void 0 : _a2.value;
3466
+ const deviceOverride = (_b2 = state_breakpoints.findBreakpointOverride(breakpoints, enhancedOverride, deviceId, (v) => v)) == null ? void 0 : _b2.value;
3467
+ if (deviceSource && deviceOverride) {
3468
+ return {
3469
+ deviceId,
3470
+ value: __spreadValues(__spreadValues({}, deviceSource), deviceOverride)
3471
+ };
3472
+ } else if (deviceOverride) {
3473
+ return {
3474
+ deviceId,
3475
+ value: deviceOverride
3476
+ };
3477
+ } else if (deviceSource) {
3478
+ return {
3479
+ deviceId,
3480
+ value: deviceSource
3481
+ };
3482
+ }
3483
+ return null;
3484
+ }).filter(isNonNullable);
3485
+ }
3486
+ function useTypographyClassName(value) {
3487
+ return reactPage.useStyle(useResponsiveStyle([value], ([value2]) => {
3488
+ if (value2 === void 0)
3489
+ return {};
3490
+ let styles = {};
3491
+ if (value2.color != null)
3492
+ styles.color = colorToString(value2.color);
3493
+ if (value2.fontFamily != null)
3494
+ styles.fontFamily = value2.fontFamily;
3495
+ if (value2.fontSize != null && value2.fontSize.value != null && value2.fontSize.unit != null)
3496
+ styles.fontSize = `${value2.fontSize.value}${value2.fontSize.unit}`;
3497
+ if (value2.fontWeight != null)
3498
+ styles.fontWeight = value2.fontWeight;
3499
+ if (value2.lineHeight != null)
3500
+ styles.lineHeight = value2.lineHeight;
3501
+ if (value2.letterSpacing != null)
3502
+ styles.letterSpacing = `${value2.letterSpacing / 10}em`;
3503
+ if (value2.uppercase != null)
3504
+ styles.textTransform = value2.uppercase === true ? "uppercase" : "initial";
3505
+ if (value2.underline != null || value2.strikethrough != null)
3506
+ styles.textDecoration = [
3507
+ Boolean(value2.underline) && "underline",
3508
+ Boolean(value2.strikethrough) && "line-through"
3509
+ ].filter(Boolean).join(" ");
3510
+ if (value2.italic != null)
3511
+ styles.fontStyle = value2.italic === true ? "italic" : "initial";
3512
+ return styles;
3513
+ }, state_breakpoints.shallowMergeFallbacks));
3514
+ }
3515
+ function useTypographyValue(data) {
3516
+ const enhancedTypography = useEnhancedTypography(data);
3517
+ return useTypographyClassName(enhancedTypography);
3518
+ }
3380
3519
  function ControlValue({
3381
3520
  data,
3382
3521
  definition,
@@ -3384,31 +3523,31 @@ function ControlValue({
3384
3523
  control
3385
3524
  }) {
3386
3525
  switch (definition.type) {
3387
- case textInput.CheckboxControlType:
3526
+ case typography.CheckboxControlType:
3388
3527
  return /* @__PURE__ */ jsxRuntime.jsx(RenderHook, {
3389
3528
  hook: useCheckboxControlValue,
3390
3529
  parameters: [data, definition],
3391
3530
  children: (value) => children(value)
3392
3531
  }, definition.type);
3393
- case textInput.NumberControlType:
3532
+ case typography.NumberControlType:
3394
3533
  return /* @__PURE__ */ jsxRuntime.jsx(RenderHook, {
3395
3534
  hook: useNumber,
3396
3535
  parameters: [data, definition],
3397
3536
  children: (value) => children(value)
3398
3537
  }, definition.type);
3399
- case textInput.TextInputControlType:
3538
+ case typography.TextInputControlType:
3400
3539
  return /* @__PURE__ */ jsxRuntime.jsx(RenderHook, {
3401
3540
  hook: useTextInputValue,
3402
3541
  parameters: [data, definition],
3403
3542
  children: (value) => children(value)
3404
3543
  }, definition.type);
3405
- case textInput.TextAreaControlType:
3544
+ case typography.TextAreaControlType:
3406
3545
  return /* @__PURE__ */ jsxRuntime.jsx(RenderHook, {
3407
3546
  hook: useTextAreaValue,
3408
3547
  parameters: [data, definition],
3409
3548
  children: (value) => children(value)
3410
3549
  }, definition.type);
3411
- case select.SelectControlType:
3550
+ case typography.SelectControlType:
3412
3551
  return /* @__PURE__ */ jsxRuntime.jsx(RenderHook, {
3413
3552
  hook: useSelectControlValue,
3414
3553
  parameters: [data, definition],
@@ -3420,7 +3559,7 @@ function ControlValue({
3420
3559
  parameters: [data, definition],
3421
3560
  children: (value) => children(value)
3422
3561
  }, definition.type);
3423
- case select.IconRadioGroupControlType:
3562
+ case typography.IconRadioGroupControlType:
3424
3563
  return /* @__PURE__ */ jsxRuntime.jsx(RenderHook, {
3425
3564
  hook: useIconRadioGroupValue,
3426
3565
  parameters: [data, definition],
@@ -3489,6 +3628,12 @@ function ControlValue({
3489
3628
  parameters: [data, definition, control],
3490
3629
  children: (value) => children(value)
3491
3630
  }, definition.type);
3631
+ case typography.TypographyControlType:
3632
+ return /* @__PURE__ */ jsxRuntime.jsx(RenderHook, {
3633
+ hook: useTypographyValue,
3634
+ parameters: [data],
3635
+ children: (value) => children(value)
3636
+ }, definition.type);
3492
3637
  default:
3493
3638
  return children(data);
3494
3639
  }
@@ -3530,19 +3675,20 @@ function PropsValue({
3530
3675
  return Object.entries(propControllerDescriptorsRef.current).reduceRight((renderFn, [propName, descriptor]) => (propsValue) => {
3531
3676
  var _a2, _b, _c, _d;
3532
3677
  switch (descriptor.type) {
3533
- case textInput.CheckboxControlType:
3534
- case textInput.NumberControlType:
3535
- case textInput.TextInputControlType:
3536
- case textInput.TextAreaControlType:
3537
- case select.SelectControlType:
3678
+ case typography.CheckboxControlType:
3679
+ case typography.NumberControlType:
3680
+ case typography.TextInputControlType:
3681
+ case typography.TextAreaControlType:
3682
+ case typography.SelectControlType:
3538
3683
  case reactPage.ColorControlType:
3539
- case select.IconRadioGroupControlType:
3684
+ case typography.IconRadioGroupControlType:
3540
3685
  case reactPage.ImageControlType:
3541
3686
  case combobox.ComboboxControlType:
3542
3687
  case reactPage.ShapeControlType:
3543
3688
  case reactPage.ListControlType:
3544
3689
  case reactPage.LinkControlType:
3545
3690
  case reactPage.StyleV2ControlType:
3691
+ case typography.TypographyControlType:
3546
3692
  return /* @__PURE__ */ jsxRuntime.jsx(ControlValue, {
3547
3693
  definition: descriptor,
3548
3694
  data: props[propName],
@@ -4068,6 +4214,7 @@ exports.Shapes = Shapes;
4068
4214
  exports.Sizes = Sizes;
4069
4215
  exports.StoreContext = StoreContext;
4070
4216
  exports.colorToString = colorToString;
4217
+ exports.deepEqual = deepEqual;
4071
4218
  exports.forwardNextDynamicRef = forwardNextDynamicRef;
4072
4219
  exports.getServerSideProps = getServerSideProps;
4073
4220
  exports.getStaticPaths = getStaticPaths;
@@ -4078,6 +4225,7 @@ exports.useBoxShadow = useBoxShadow;
4078
4225
  exports.useBreakpoints = useBreakpoints;
4079
4226
  exports.useBuilderEditMode = useBuilderEditMode;
4080
4227
  exports.useElementId = useElementId;
4228
+ exports.useEnhancedTypography = useEnhancedTypography;
4081
4229
  exports.useFile = useFile;
4082
4230
  exports.useFiles = useFiles;
4083
4231
  exports.useFormContext = useFormContext;
@@ -4093,5 +4241,5 @@ exports.useResponsiveTextStyle = useResponsiveTextStyle;
4093
4241
  exports.useResponsiveWidth = useResponsiveWidth;
4094
4242
  exports.useSwatches = useSwatches;
4095
4243
  exports.useTable = useTable;
4096
- exports.useTypography = useTypography;
4244
+ exports.useTypographyClassName = useTypographyClassName;
4097
4245
  //# sourceMappingURL=index.cjs.js.map