paymob-widget-alpha 1.0.5 → 1.0.6

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 (2) hide show
  1. package/main.js +27 -4
  2. package/package.json +1 -1
package/main.js CHANGED
@@ -666,6 +666,10 @@ const ShadowWrapper = ({
666
666
  shadow.appendChild(link);
667
667
  appendedHrefs.add(href);
668
668
  };
669
+ const preferExplicitStyleUrls = () => {
670
+ const urls = window.__PAYMOB_WIDGET_STYLE_URLS__;
671
+ return Array.isArray(urls) && urls.length ? urls : null;
672
+ };
669
673
 
670
674
  // If the widget script is loaded from a URL (CDN/dev server),
671
675
  // also load sibling CSS assets from the same base so Shadow DOM always
@@ -677,10 +681,15 @@ const ShadowWrapper = ({
677
681
  const best = candidates.find(src => src.includes('paymob-widget')) || candidates.find(src => src.includes('paymob_widget')) || candidates[candidates.length - 1];
678
682
  return best ? best.replace(/\/[^/]*$/, '') : null;
679
683
  };
680
- const base = resolveBaseFromScript();
681
- if (base) {
682
- appendStylesheetLink(`${base}/styles.css`);
683
- appendStylesheetLink(`${base}/main.css`);
684
+ const explicit = preferExplicitStyleUrls();
685
+ if (explicit) {
686
+ explicit.forEach(appendStylesheetLink);
687
+ } else {
688
+ const base = resolveBaseFromScript();
689
+ if (base) {
690
+ appendStylesheetLink(`${base}/styles.css`);
691
+ appendStylesheetLink(`${base}/main.css`);
692
+ }
684
693
  }
685
694
  environment.PIXEL_CSS_LINKS.forEach(href => {
686
695
  if (href.match(/\.(woff2?|ttf|otf|eot)$/)) {
@@ -8437,9 +8446,23 @@ class paymob_widget_PaymobWidget {
8437
8446
  console.log("Submitting for:", instance._options.elementId);
8438
8447
  }
8439
8448
  }
8449
+
8450
+ // Expose stable CSS URLs for Shadow DOM style injection.
8451
+ // We must resolve at runtime (not via `new URL(..., import.meta.url)`), otherwise
8452
+ // webpack will try to resolve `./styles.css` at build time (it doesn't exist in src/).
8440
8453
  _PaymobWidget = paymob_widget_PaymobWidget;
8441
8454
  paymob_widget_PaymobWidget._instances = {};
8442
8455
  paymob_widget_PaymobWidget._lastInstanceId = null;
8456
+ (_window$__PAYMOB_WIDG => {
8457
+ if (typeof window === 'undefined' || typeof document === 'undefined') return;
8458
+ if ((_window$__PAYMOB_WIDG = window.__PAYMOB_WIDGET_STYLE_URLS__) != null && _window$__PAYMOB_WIDG.length) return;
8459
+ const scripts = Array.from(document.querySelectorAll('script[src]'));
8460
+ const candidates = scripts.map(s => String(s.src || '')).filter(Boolean).filter(src => /\/main\.js(\?.*)?$/.test(src));
8461
+ const best = candidates.find(src => src.includes('paymob-widget')) || candidates.find(src => src.includes('paymob_widget')) || candidates[candidates.length - 1];
8462
+ if (!best) return;
8463
+ const base = best.replace(/\/[^/]*$/, '');
8464
+ window.__PAYMOB_WIDGET_STYLE_URLS__ = [`${base}/styles.css`, `${base}/main.css`];
8465
+ })();
8443
8466
  window.PaymobWidget = paymob_widget_PaymobWidget;
8444
8467
  /* harmony default export */ const paymob_widget = ((/* unused pure expression or super */ null && (paymob_widget_PaymobWidget)));
8445
8468
  ;// ./src/index.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "paymob-widget-alpha",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "keywords": ["paymob","widget","paymob-widget"],
5
5
  "main": "./main.js",
6
6
  "license": "MIT",