@myop/sdk 0.3.24 → 0.3.25

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 (40) hide show
  1. package/dist/bundled-declarations.d.ts +23 -0
  2. package/dist/cjs/_IframeSDK.1f1af47b.min.js +1 -0
  3. package/dist/cjs/{_IframeSDK.398c9caf.js → _IframeSDK.4fb657bf.js} +57 -4
  4. package/dist/cjs/_IframeSDK.4fb657bf.js.map +7 -0
  5. package/dist/cjs/_MyopHelpers.6fb8c382.min.js +1 -0
  6. package/dist/cjs/{_MyopHelpers.71a8a09b.js → _MyopHelpers.859b9bc8.js} +37 -0
  7. package/dist/cjs/{_MyopHelpers.71a8a09b.js.map → _MyopHelpers.859b9bc8.js.map} +2 -2
  8. package/dist/cjs/_WebComponentSDK.05217c76.min.js +1 -0
  9. package/dist/cjs/{_WebComponentSDK.c8c6ebc0.js → _WebComponentSDK.949eae52.js} +57 -4
  10. package/dist/cjs/{_WebComponentSDK.c8c6ebc0.js.map → _WebComponentSDK.949eae52.js.map} +2 -2
  11. package/dist/cjs/{_hostSDK.6d5f8f31.js → _hostSDK.664e938c.js} +57 -4
  12. package/dist/cjs/{_hostSDK.6d5f8f31.js.map → _hostSDK.664e938c.js.map} +2 -2
  13. package/dist/cjs/_hostSDK.d90560a4.min.js +1 -0
  14. package/dist/cjs/myop_sdk.js +14 -14
  15. package/dist/cjs/myop_sdk.js.map +1 -1
  16. package/dist/cjs/myop_sdk.min.js +1 -1
  17. package/dist/cjs-bundled/myop_sdk.bundled.js +64 -6
  18. package/dist/cjs-bundled/myop_sdk.bundled.js.map +3 -3
  19. package/dist/cjs-bundled/myop_sdk.bundled.min.js +1 -1
  20. package/dist/module/Iframe/index.js +58 -5
  21. package/dist/module/Iframe/index.js.map +2 -2
  22. package/dist/module/SDK.js +64 -6
  23. package/dist/module/SDK.js.map +3 -3
  24. package/dist/module/embeddedSDK.js +1 -1
  25. package/dist/module/helpers/CloudRepository.d.ts +14 -0
  26. package/dist/module/helpers/cloudRepositoryHelpers.d.ts +1 -0
  27. package/dist/module/helpers/index.js +37 -1
  28. package/dist/module/helpers/index.js.map +2 -2
  29. package/dist/module/host/embeddedSDK.js +1 -1
  30. package/dist/module/host/hostSDK.d.ts +8 -0
  31. package/dist/module/host/index.js +58 -5
  32. package/dist/module/host/index.js.map +2 -2
  33. package/dist/module/webcomponent/index.js +58 -5
  34. package/dist/module/webcomponent/index.js.map +2 -2
  35. package/package.json +1 -1
  36. package/dist/cjs/_IframeSDK.398c9caf.js.map +0 -7
  37. package/dist/cjs/_IframeSDK.b1090eff.min.js +0 -1
  38. package/dist/cjs/_MyopHelpers.19dc0df3.min.js +0 -1
  39. package/dist/cjs/_WebComponentSDK.fc58ea5a.min.js +0 -1
  40. package/dist/cjs/_hostSDK.2c80162b.min.js +0 -1
@@ -1562,10 +1562,22 @@ var MyopIframeComponent = class extends BaseMyopComponent {
1562
1562
  const prevMinWidth = container.style.minWidth;
1563
1563
  if (needsHeightCollapse) container.style.minHeight = "".concat(currentIframeHeight, "px");
1564
1564
  if (needsWidthCollapse) container.style.minWidth = "".concat(currentIframeWidth, "px");
1565
+ const measureStyle = contentDoc.createElement("style");
1566
+ measureStyle.id = "__myop_measure";
1567
+ const rules = [];
1568
+ if (needsHeightCollapse) {
1569
+ rules.push("height: auto !important", "min-height: 0 !important", "max-height: none !important");
1570
+ }
1571
+ if (needsWidthCollapse) {
1572
+ rules.push("width: auto !important", "min-width: 0 !important", "max-width: none !important");
1573
+ }
1574
+ measureStyle.textContent = "*, *::before, *::after { ".concat(rules.join("; "), "; flex-basis: auto !important; flex-grow: 0 !important; }");
1575
+ contentDoc.head.appendChild(measureStyle);
1565
1576
  if (needsHeightCollapse) iframe.style.height = "0px";
1566
1577
  if (needsWidthCollapse) iframe.style.width = "0px";
1567
1578
  contentWidth = Math.ceil(Math.max(contentDoc.documentElement.scrollWidth, contentDoc.body.scrollWidth, contentDoc.body.getBoundingClientRect().width));
1568
1579
  contentHeight = Math.ceil(Math.max(contentDoc.documentElement.scrollHeight, contentDoc.body.scrollHeight, contentDoc.body.getBoundingClientRect().height));
1580
+ measureStyle.remove();
1569
1581
  container.style.minHeight = prevMinHeight;
1570
1582
  container.style.minWidth = prevMinWidth;
1571
1583
  }
@@ -1886,7 +1898,7 @@ var WebcomponentLoader = class extends BaseMyopLoader {
1886
1898
  };
1887
1899
 
1888
1900
  // version:myop-sdk-version
1889
- var myop_sdk_version_default = "0.3.24";
1901
+ var myop_sdk_version_default = "0.3.25";
1890
1902
 
1891
1903
  // src/webcomponent/messageHandlers/BaseWebComponentMessageHandler.ts
1892
1904
  var BaseWebComponentMessageHandler = class extends BaseContextMessageHandler {
@@ -2343,10 +2355,19 @@ var HTMLComponentLoader = class extends BaseMyopLoader {
2343
2355
  const comp = new MyopIframeComponent(componentDefinition, skin, container, IframeElement, options);
2344
2356
  comp.sizeMeta = parsedSizeMeta;
2345
2357
  comp.initiated().then(() => {
2346
- comp.observeAutoSize({ forceAutoSize: true });
2347
- if (!(options == null ? void 0 : options.hidden)) {
2348
- comp.show();
2358
+ if ((options == null ? void 0 : options.autoSize) === false) {
2359
+ return;
2349
2360
  }
2361
+ let shown = false;
2362
+ comp.observeAutoSize({
2363
+ forceAutoSize: true,
2364
+ onSizeChange: () => {
2365
+ if (!shown && !(options == null ? void 0 : options.hidden)) {
2366
+ shown = true;
2367
+ comp.show();
2368
+ }
2369
+ }
2370
+ });
2350
2371
  });
2351
2372
  return comp;
2352
2373
  }
@@ -2533,6 +2554,7 @@ var _CloudRepository = class _CloudRepository {
2533
2554
  constructor(_baseUrl = "https://cloud.myop.dev") {
2534
2555
  this._baseUrl = _baseUrl;
2535
2556
  // v2 cache - keyed by componentId:env:preview|live
2557
+ // Each Promise is tagged with a `resolved` property after settling (see fetchComponentV2).
2536
2558
  __publicField(this, "variants", {});
2537
2559
  // Track which components were preloaded and with what params
2538
2560
  // Key: componentId, Value: { env, preview }
@@ -2633,6 +2655,7 @@ var _CloudRepository = class _CloudRepository {
2633
2655
  return;
2634
2656
  }
2635
2657
  const componentConfig = convertV2VariantToComponentConfig(variant);
2658
+ this.variants[cacheKey].resolved = componentConfig;
2636
2659
  resolve(componentConfig);
2637
2660
  } catch (e) {
2638
2661
  reject(e);
@@ -2642,6 +2665,36 @@ var _CloudRepository = class _CloudRepository {
2642
2665
  }
2643
2666
  return await this.variants[cacheKey];
2644
2667
  }
2668
+ /**
2669
+ * Synchronous version of fetchComponentV2 — returns the config only if
2670
+ * the fetch already completed, null otherwise.
2671
+ *
2672
+ * Uses the same `this.variants` cache that fetchComponentV2/preloadComponents
2673
+ * populate. Each cached Promise is tagged with a `.resolved` property when
2674
+ * it settles — this method just reads that property. No separate cache.
2675
+ *
2676
+ * Why this exists: React Native needs the config at render time to embed it
2677
+ * in the WebView HTML (can't await in useState). If preloadComponents ran
2678
+ * earlier and the fetch completed, this returns the result synchronously,
2679
+ * skipping the WEBVIEW_READY → fetch → inject round trip entirely.
2680
+ */
2681
+ getResolvedConfig(componentId, env, preview) {
2682
+ var _a;
2683
+ const preloaded = this.preloadedComponents[componentId];
2684
+ const hasExplicitParams = env !== void 0 || preview !== void 0;
2685
+ let resolvedEnv;
2686
+ let usePreview;
2687
+ if (!hasExplicitParams && preloaded) {
2688
+ resolvedEnv = preloaded.env;
2689
+ usePreview = preloaded.preview;
2690
+ } else {
2691
+ resolvedEnv = env || this._defaultEnv;
2692
+ const hasEffectiveEnv = env || this._envExplicitlySet;
2693
+ usePreview = preview === true ? true : preview === false ? false : !hasEffectiveEnv;
2694
+ }
2695
+ const cacheKey = "".concat(componentId, ":").concat(resolvedEnv, ":").concat(usePreview ? "preview" : "live");
2696
+ return ((_a = this.variants[cacheKey]) == null ? void 0 : _a.resolved) || null;
2697
+ }
2645
2698
  // ============ V1 Methods (Legacy) ============
2646
2699
  /**
2647
2700
  * Fetch a v1 component from a flow