suada-components 1.9.0 → 1.9.1

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 (96) hide show
  1. package/dist/{components/DailyMotion-B7yDPBbg.js → DailyMotion-B-Q4fBEb.js} +1 -1
  2. package/dist/{components/DailyMotion-BmnymjR1.esm.js → DailyMotion-BAvo3Toe.esm.js} +1 -1
  3. package/dist/{components/Facebook-D9Ak6ZJU.esm.js → Facebook-C8GOujDt.esm.js} +1 -1
  4. package/dist/{components/Facebook-42iqQU2G.js → Facebook-CASik-P5.js} +1 -1
  5. package/dist/{components/FilePlayer-wg9lyafD.esm.js → FilePlayer-BOZIvaDy.esm.js} +1 -1
  6. package/dist/{components/FilePlayer-CAnHK0Cd.js → FilePlayer-CQ80KWY2.js} +1 -1
  7. package/dist/{components/Kaltura-DPaEN-dq.esm.js → Kaltura-B12Xdl6X.esm.js} +1 -1
  8. package/dist/{components/Kaltura-Ct6kwbgP.js → Kaltura-nYc5k7UB.js} +1 -1
  9. package/dist/{components/Mixcloud-sBbcL5rG.js → Mixcloud-DGQnlDAK.js} +1 -1
  10. package/dist/{components/Mixcloud-BobSN3YI.esm.js → Mixcloud-JfeQIOki.esm.js} +1 -1
  11. package/dist/{components/Mux-B9YP-rFr.esm.js → Mux-BHWzpAR-.esm.js} +1 -1
  12. package/dist/{components/Mux-Cosy8sFO.js → Mux-CiKZc8gj.js} +1 -1
  13. package/dist/{components/Preview-XcTlhHT1.esm.js → Preview-DSovY9gr.esm.js} +1 -1
  14. package/dist/{components/Preview-DiVfo6aa.js → Preview-DvZKrgm5.js} +1 -1
  15. package/dist/{components/SoundCloud-CIWqB-QW.js → SoundCloud-Di7z3nmP.js} +1 -1
  16. package/dist/{components/SoundCloud-BTHoyFWT.esm.js → SoundCloud-j_R0lK8D.esm.js} +1 -1
  17. package/dist/{components/Streamable-DsfQCy3p.esm.js → Streamable-CRhXZIKP.esm.js} +1 -1
  18. package/dist/{components/Streamable-9anYiQtU.js → Streamable-CV1mgzRv.js} +1 -1
  19. package/dist/{components/Twitch-D1BOr8hj.esm.js → Twitch-6icfp-ZE.esm.js} +1 -1
  20. package/dist/{components/Twitch-Dud6e1Rv.js → Twitch-Dj66vkCD.js} +1 -1
  21. package/dist/{components/Vidyard-C1csjpQH.esm.js → Vidyard--KX47pZ0.esm.js} +1 -1
  22. package/dist/{components/Vidyard-BuOu85uS.js → Vidyard-B-qmApe9.js} +1 -1
  23. package/dist/{components/Vimeo-CHlHIswX.esm.js → Vimeo-Ba9C6utC.esm.js} +1 -1
  24. package/dist/{components/Vimeo-DrDJ5O9H.js → Vimeo-DePzl7Sn.js} +1 -1
  25. package/dist/{components/Wistia-fh9U2CA2.js → Wistia-CXYB3Yus.js} +1 -1
  26. package/dist/{components/Wistia-D-eYyONb.esm.js → Wistia-DWJcdcY2.esm.js} +1 -1
  27. package/dist/{components/YouTube-CmnnzZvk.esm.js → YouTube-DdBVPxzz.esm.js} +1 -1
  28. package/dist/{components/YouTube-DC2uZ14c.js → YouTube-vwMoW93C.js} +1 -1
  29. package/dist/components/CourseCard/CourseCard.styles.d.ts +1 -1
  30. package/dist/components/DailyMotion-Cr_8IZRR.js +180 -0
  31. package/dist/components/DailyMotion-D2n1NDDi.esm.js +178 -0
  32. package/dist/components/Facebook-CDrTA2_L.esm.js +179 -0
  33. package/dist/components/Facebook-YxZce26V.js +181 -0
  34. package/dist/components/FilePlayer-BzkVMbQ8.esm.js +408 -0
  35. package/dist/components/FilePlayer-DqqTufgX.js +410 -0
  36. package/dist/components/Kaltura-B0UZLr6g.esm.js +176 -0
  37. package/dist/components/Kaltura-krSxvIBr.js +178 -0
  38. package/dist/components/Mixcloud-BCT5e47d.js +166 -0
  39. package/dist/components/Mixcloud-D9qk3D6i.esm.js +164 -0
  40. package/dist/components/Mux-BZleoaJh.esm.js +264 -0
  41. package/dist/components/Mux-D_si09u2.js +266 -0
  42. package/dist/components/Preview-CmduMeEZ.js +175 -0
  43. package/dist/components/Preview-DQLbQ8_C.esm.js +173 -0
  44. package/dist/components/SoundCloud-BHgTfaW7.js +183 -0
  45. package/dist/components/SoundCloud-BgnX8kOF.esm.js +181 -0
  46. package/dist/components/Streamable-DTAzjVwd.js +176 -0
  47. package/dist/components/Streamable-DbRbUflP.esm.js +174 -0
  48. package/dist/components/Twitch-CXOhay4a.esm.js +168 -0
  49. package/dist/components/Twitch-CnEk-l9R.js +170 -0
  50. package/dist/components/VideoPlayer/PiPContext.d.ts +8 -0
  51. package/dist/components/VideoPlayer/PiPContext.js +149 -0
  52. package/dist/components/VideoPlayer/PiPContext.js.map +1 -0
  53. package/dist/components/VideoPlayer/PiPContext.types.d.ts +16 -0
  54. package/dist/components/VideoPlayer/PiPContext.types.js +2 -0
  55. package/dist/components/VideoPlayer/PiPContext.types.js.map +1 -0
  56. package/dist/components/VideoPlayer/usePiP.d.ts +2 -0
  57. package/dist/components/VideoPlayer/usePiP.js +10 -0
  58. package/dist/components/VideoPlayer/usePiP.js.map +1 -0
  59. package/dist/components/VideoPlayer/usePlayerControls.js +12 -40
  60. package/dist/components/VideoPlayer/usePlayerControls.js.map +1 -1
  61. package/dist/components/Vidyard-Cn_LcGwi.js +174 -0
  62. package/dist/components/Vidyard-YcZH6kkW.esm.js +172 -0
  63. package/dist/components/Vimeo-BUVxWt7t.js +215 -0
  64. package/dist/components/Vimeo-Cv0qx3aR.esm.js +213 -0
  65. package/dist/components/Wistia-COWrV8QC.js +190 -0
  66. package/dist/components/Wistia-PneZ48dn.esm.js +188 -0
  67. package/dist/components/YouTube-BUyvzJQw.esm.js +258 -0
  68. package/dist/components/YouTube-DeQdfkWm.js +260 -0
  69. package/dist/components/components/CourseCard/CourseCard.styles.d.ts +1 -1
  70. package/dist/components/components/VideoPlayer/PiPContext.d.ts +8 -0
  71. package/dist/components/components/VideoPlayer/PiPContext.types.d.ts +16 -0
  72. package/dist/components/components/VideoPlayer/usePiP.d.ts +2 -0
  73. package/dist/components/components/index.d.ts +2 -0
  74. package/dist/components/{index-DetZ05pw.js → index-Bs-XxxV4.js} +153 -304
  75. package/dist/components/{index-DKAGRUEW.esm.js → index-C4Mk2H3N.esm.js} +152 -305
  76. package/dist/components/index.d.ts +2 -0
  77. package/dist/components/index.esm.js +1 -1
  78. package/dist/components/index.js +2 -0
  79. package/dist/components/index.js.map +1 -1
  80. package/dist/icons/components/CourseCard/CourseCard.styles.d.ts +1 -1
  81. package/dist/icons/components/VideoPlayer/PiPContext.d.ts +8 -0
  82. package/dist/icons/components/VideoPlayer/PiPContext.types.d.ts +16 -0
  83. package/dist/icons/components/VideoPlayer/usePiP.d.ts +2 -0
  84. package/dist/icons/components/index.d.ts +2 -0
  85. package/dist/index-Bp-idbg5.esm.js +94907 -0
  86. package/dist/index-CSj9NYxJ.js +95129 -0
  87. package/dist/index.d.ts +2 -0
  88. package/dist/index.esm.js +3 -3
  89. package/dist/index.js +3 -0
  90. package/dist/index.js.map +1 -1
  91. package/package.json +1 -1
  92. package/dist/components/VideoPlayer/pipManager.d.ts +0 -60
  93. package/dist/components/VideoPlayer/pipManager.js +0 -272
  94. package/dist/components/VideoPlayer/pipManager.js.map +0 -1
  95. package/dist/components/components/VideoPlayer/pipManager.d.ts +0 -60
  96. package/dist/icons/components/VideoPlayer/pipManager.d.ts +0 -60
@@ -81355,7 +81355,7 @@ function requirePlayers () {
81355
81355
  canPlay: import_patterns.canPlay.youtube,
81356
81356
  lazyPlayer: (0, import_utils.lazy)(() => import(
81357
81357
  /* webpackChunkName: 'reactPlayerYouTube' */
81358
- './YouTube-CmnnzZvk.esm.js'
81358
+ './YouTube-BUyvzJQw.esm.js'
81359
81359
  ).then(function (n) { return n.Y; }))
81360
81360
  },
81361
81361
  {
@@ -81364,7 +81364,7 @@ function requirePlayers () {
81364
81364
  canPlay: import_patterns.canPlay.soundcloud,
81365
81365
  lazyPlayer: (0, import_utils.lazy)(() => import(
81366
81366
  /* webpackChunkName: 'reactPlayerSoundCloud' */
81367
- './SoundCloud-BTHoyFWT.esm.js'
81367
+ './SoundCloud-BgnX8kOF.esm.js'
81368
81368
  ).then(function (n) { return n.S; }))
81369
81369
  },
81370
81370
  {
@@ -81373,7 +81373,7 @@ function requirePlayers () {
81373
81373
  canPlay: import_patterns.canPlay.vimeo,
81374
81374
  lazyPlayer: (0, import_utils.lazy)(() => import(
81375
81375
  /* webpackChunkName: 'reactPlayerVimeo' */
81376
- './Vimeo-CHlHIswX.esm.js'
81376
+ './Vimeo-Cv0qx3aR.esm.js'
81377
81377
  ).then(function (n) { return n.V; }))
81378
81378
  },
81379
81379
  {
@@ -81382,7 +81382,7 @@ function requirePlayers () {
81382
81382
  canPlay: import_patterns.canPlay.mux,
81383
81383
  lazyPlayer: (0, import_utils.lazy)(() => import(
81384
81384
  /* webpackChunkName: 'reactPlayerMux' */
81385
- './Mux-B9YP-rFr.esm.js'
81385
+ './Mux-BZleoaJh.esm.js'
81386
81386
  ).then(function (n) { return n.M; }))
81387
81387
  },
81388
81388
  {
@@ -81391,7 +81391,7 @@ function requirePlayers () {
81391
81391
  canPlay: import_patterns.canPlay.facebook,
81392
81392
  lazyPlayer: (0, import_utils.lazy)(() => import(
81393
81393
  /* webpackChunkName: 'reactPlayerFacebook' */
81394
- './Facebook-D9Ak6ZJU.esm.js'
81394
+ './Facebook-CDrTA2_L.esm.js'
81395
81395
  ).then(function (n) { return n.F; }))
81396
81396
  },
81397
81397
  {
@@ -81400,7 +81400,7 @@ function requirePlayers () {
81400
81400
  canPlay: import_patterns.canPlay.streamable,
81401
81401
  lazyPlayer: (0, import_utils.lazy)(() => import(
81402
81402
  /* webpackChunkName: 'reactPlayerStreamable' */
81403
- './Streamable-DsfQCy3p.esm.js'
81403
+ './Streamable-DbRbUflP.esm.js'
81404
81404
  ).then(function (n) { return n.S; }))
81405
81405
  },
81406
81406
  {
@@ -81409,7 +81409,7 @@ function requirePlayers () {
81409
81409
  canPlay: import_patterns.canPlay.wistia,
81410
81410
  lazyPlayer: (0, import_utils.lazy)(() => import(
81411
81411
  /* webpackChunkName: 'reactPlayerWistia' */
81412
- './Wistia-D-eYyONb.esm.js'
81412
+ './Wistia-PneZ48dn.esm.js'
81413
81413
  ).then(function (n) { return n.W; }))
81414
81414
  },
81415
81415
  {
@@ -81418,7 +81418,7 @@ function requirePlayers () {
81418
81418
  canPlay: import_patterns.canPlay.twitch,
81419
81419
  lazyPlayer: (0, import_utils.lazy)(() => import(
81420
81420
  /* webpackChunkName: 'reactPlayerTwitch' */
81421
- './Twitch-D1BOr8hj.esm.js'
81421
+ './Twitch-CXOhay4a.esm.js'
81422
81422
  ).then(function (n) { return n.T; }))
81423
81423
  },
81424
81424
  {
@@ -81427,7 +81427,7 @@ function requirePlayers () {
81427
81427
  canPlay: import_patterns.canPlay.dailymotion,
81428
81428
  lazyPlayer: (0, import_utils.lazy)(() => import(
81429
81429
  /* webpackChunkName: 'reactPlayerDailyMotion' */
81430
- './DailyMotion-BmnymjR1.esm.js'
81430
+ './DailyMotion-D2n1NDDi.esm.js'
81431
81431
  ).then(function (n) { return n.D; }))
81432
81432
  },
81433
81433
  {
@@ -81436,7 +81436,7 @@ function requirePlayers () {
81436
81436
  canPlay: import_patterns.canPlay.mixcloud,
81437
81437
  lazyPlayer: (0, import_utils.lazy)(() => import(
81438
81438
  /* webpackChunkName: 'reactPlayerMixcloud' */
81439
- './Mixcloud-BobSN3YI.esm.js'
81439
+ './Mixcloud-D9qk3D6i.esm.js'
81440
81440
  ).then(function (n) { return n.M; }))
81441
81441
  },
81442
81442
  {
@@ -81445,7 +81445,7 @@ function requirePlayers () {
81445
81445
  canPlay: import_patterns.canPlay.vidyard,
81446
81446
  lazyPlayer: (0, import_utils.lazy)(() => import(
81447
81447
  /* webpackChunkName: 'reactPlayerVidyard' */
81448
- './Vidyard-C1csjpQH.esm.js'
81448
+ './Vidyard-YcZH6kkW.esm.js'
81449
81449
  ).then(function (n) { return n.V; }))
81450
81450
  },
81451
81451
  {
@@ -81454,7 +81454,7 @@ function requirePlayers () {
81454
81454
  canPlay: import_patterns.canPlay.kaltura,
81455
81455
  lazyPlayer: (0, import_utils.lazy)(() => import(
81456
81456
  /* webpackChunkName: 'reactPlayerKaltura' */
81457
- './Kaltura-DPaEN-dq.esm.js'
81457
+ './Kaltura-B0UZLr6g.esm.js'
81458
81458
  ).then(function (n) { return n.K; }))
81459
81459
  },
81460
81460
  {
@@ -81466,7 +81466,7 @@ function requirePlayers () {
81466
81466
  },
81467
81467
  lazyPlayer: (0, import_utils.lazy)(() => import(
81468
81468
  /* webpackChunkName: 'reactPlayerFilePlayer' */
81469
- './FilePlayer-wg9lyafD.esm.js'
81469
+ './FilePlayer-BzkVMbQ8.esm.js'
81470
81470
  ).then(function (n) { return n.F; }))
81471
81471
  }
81472
81472
  ];
@@ -82287,7 +82287,7 @@ function requireReactPlayer () {
82287
82287
  var import_Player = __toESM(/*@__PURE__*/ requirePlayer());
82288
82288
  const Preview = (0, import_utils.lazy)(() => import(
82289
82289
  /* webpackChunkName: 'reactPlayerPreview' */
82290
- './Preview-XcTlhHT1.esm.js'
82290
+ './Preview-DQLbQ8_C.esm.js'
82291
82291
  ).then(function (n) { return n.P; }));
82292
82292
  const IS_BROWSER = typeof window !== "undefined" && window.document && typeof document !== "undefined";
82293
82293
  const IS_GLOBAL = typeof commonjsGlobal !== "undefined" && commonjsGlobal.window && commonjsGlobal.window.document;
@@ -88738,247 +88738,6 @@ var useEventListener = function useEventListener(eventName, handler, element, sh
88738
88738
  }, [eventName, element, shouldRun]);
88739
88739
  };
88740
88740
 
88741
- /**
88742
- * Global Picture-in-Picture Manager
88743
- * This module manages PiP state across component unmounts and route changes
88744
- */
88745
- var PictureInPictureManager = /** @class */function () {
88746
- function PictureInPictureManager() {
88747
- this.videoElement = null;
88748
- this.pipContainer = null;
88749
- this.currentVideoState = null;
88750
- this.onStateChange = null;
88751
- // Listen for PiP events globally
88752
- document.addEventListener('leavepictureinpicture', this.handlePiPExit.bind(this));
88753
- document.addEventListener('enterpictureinpicture', this.handlePiPEnter.bind(this));
88754
- }
88755
- /**
88756
- * Register a video element for PiP management
88757
- */
88758
- PictureInPictureManager.prototype.registerVideo = function (videoElement, url, onStateChange) {
88759
- this.videoElement = videoElement;
88760
- this.onStateChange = onStateChange || null;
88761
- // Store current video state
88762
- this.currentVideoState = {
88763
- url: url,
88764
- currentTime: videoElement.currentTime,
88765
- isPlaying: !videoElement.paused,
88766
- volume: videoElement.volume,
88767
- playbackRate: videoElement.playbackRate
88768
- };
88769
- // Add listeners to track state changes
88770
- videoElement.addEventListener('timeupdate', this.handleTimeUpdate.bind(this));
88771
- videoElement.addEventListener('play', this.handlePlayStateChange.bind(this));
88772
- videoElement.addEventListener('pause', this.handlePlayStateChange.bind(this));
88773
- videoElement.addEventListener('volumechange', this.handleVolumeChange.bind(this));
88774
- videoElement.addEventListener('ratechange', this.handleRateChange.bind(this));
88775
- };
88776
- /**
88777
- * Unregister the current video element
88778
- */
88779
- PictureInPictureManager.prototype.unregisterVideo = function () {
88780
- if (this.videoElement) {
88781
- this.videoElement.removeEventListener('timeupdate', this.handleTimeUpdate.bind(this));
88782
- this.videoElement.removeEventListener('play', this.handlePlayStateChange.bind(this));
88783
- this.videoElement.removeEventListener('pause', this.handlePlayStateChange.bind(this));
88784
- this.videoElement.removeEventListener('volumechange', this.handleVolumeChange.bind(this));
88785
- this.videoElement.removeEventListener('ratechange', this.handleRateChange.bind(this));
88786
- }
88787
- this.videoElement = null;
88788
- this.onStateChange = null;
88789
- };
88790
- /**
88791
- * Create a persistent video element for PiP
88792
- */
88793
- PictureInPictureManager.prototype.createPersistentVideo = function (originalVideo) {
88794
- var persistentVideo = originalVideo.cloneNode(true);
88795
- // Copy all relevant properties
88796
- persistentVideo.src = originalVideo.src;
88797
- persistentVideo.currentTime = originalVideo.currentTime;
88798
- persistentVideo.volume = originalVideo.volume;
88799
- persistentVideo.playbackRate = originalVideo.playbackRate;
88800
- persistentVideo.muted = originalVideo.muted;
88801
- // Set properties for PiP
88802
- persistentVideo.style.position = 'fixed';
88803
- persistentVideo.style.top = '-9999px';
88804
- persistentVideo.style.left = '-9999px';
88805
- persistentVideo.style.width = '1px';
88806
- persistentVideo.style.height = '1px';
88807
- persistentVideo.style.opacity = '0';
88808
- persistentVideo.style.pointerEvents = 'none';
88809
- return persistentVideo;
88810
- };
88811
- /**
88812
- * Enter picture-in-picture mode with persistence
88813
- */
88814
- PictureInPictureManager.prototype.enterPiP = function () {
88815
- return __awaiter(this, void 0, void 0, function () {
88816
- var persistentVideo_1, error_1;
88817
- return __generator(this, function (_a) {
88818
- switch (_a.label) {
88819
- case 0:
88820
- if (!this.videoElement || !document.pictureInPictureEnabled) {
88821
- return [2 /*return*/];
88822
- }
88823
- _a.label = 1;
88824
- case 1:
88825
- _a.trys.push([1, 6,, 7]);
88826
- if (!document.pictureInPictureElement) return [3 /*break*/, 3];
88827
- return [4 /*yield*/, document.exitPictureInPicture()];
88828
- case 2:
88829
- _a.sent();
88830
- _a.label = 3;
88831
- case 3:
88832
- // Create a container if it doesn't exist
88833
- if (!this.pipContainer) {
88834
- this.pipContainer = document.createElement('div');
88835
- this.pipContainer.id = 'suada-pip-container';
88836
- this.pipContainer.style.position = 'fixed';
88837
- this.pipContainer.style.top = '-9999px';
88838
- this.pipContainer.style.left = '-9999px';
88839
- this.pipContainer.style.width = '1px';
88840
- this.pipContainer.style.height = '1px';
88841
- this.pipContainer.style.zIndex = '-1';
88842
- document.body.appendChild(this.pipContainer);
88843
- }
88844
- persistentVideo_1 = this.createPersistentVideo(this.videoElement);
88845
- this.pipContainer.appendChild(persistentVideo_1);
88846
- // Wait for video to load
88847
- return [4 /*yield*/, new Promise(function (resolve) {
88848
- if (persistentVideo_1.readyState >= 2) {
88849
- resolve();
88850
- } else {
88851
- persistentVideo_1.addEventListener('loadedmetadata', function () {
88852
- return resolve();
88853
- }, {
88854
- once: true
88855
- });
88856
- }
88857
- })
88858
- // Enter PiP mode
88859
- ];
88860
- case 4:
88861
- // Wait for video to load
88862
- _a.sent();
88863
- // Enter PiP mode
88864
- return [4 /*yield*/, persistentVideo_1.requestPictureInPicture()
88865
- // Update the reference to the persistent video
88866
- ];
88867
- case 5:
88868
- // Enter PiP mode
88869
- _a.sent();
88870
- // Update the reference to the persistent video
88871
- this.videoElement = persistentVideo_1;
88872
- return [3 /*break*/, 7];
88873
- case 6:
88874
- error_1 = _a.sent();
88875
- console.error('Failed to enter picture-in-picture:', error_1);
88876
- return [3 /*break*/, 7];
88877
- case 7:
88878
- return [2 /*return*/];
88879
- }
88880
- });
88881
- });
88882
- };
88883
- /**
88884
- * Exit picture-in-picture mode
88885
- */
88886
- PictureInPictureManager.prototype.exitPiP = function () {
88887
- return __awaiter(this, void 0, void 0, function () {
88888
- var error_2;
88889
- return __generator(this, function (_a) {
88890
- switch (_a.label) {
88891
- case 0:
88892
- _a.trys.push([0, 3,, 4]);
88893
- if (!document.pictureInPictureElement) return [3 /*break*/, 2];
88894
- return [4 /*yield*/, document.exitPictureInPicture()];
88895
- case 1:
88896
- _a.sent();
88897
- _a.label = 2;
88898
- case 2:
88899
- return [3 /*break*/, 4];
88900
- case 3:
88901
- error_2 = _a.sent();
88902
- console.error('Failed to exit picture-in-picture:', error_2);
88903
- return [3 /*break*/, 4];
88904
- case 4:
88905
- return [2 /*return*/];
88906
- }
88907
- });
88908
- });
88909
- };
88910
- /**
88911
- * Check if currently in PiP mode
88912
- */
88913
- PictureInPictureManager.prototype.isPiPActive = function () {
88914
- return !!document.pictureInPictureElement;
88915
- };
88916
- /**
88917
- * Get current video state
88918
- */
88919
- PictureInPictureManager.prototype.getCurrentState = function () {
88920
- return this.currentVideoState;
88921
- };
88922
- /**
88923
- * Restore video state to a new video element
88924
- */
88925
- PictureInPictureManager.prototype.restoreStateToVideo = function (videoElement) {
88926
- if (!this.currentVideoState) return;
88927
- videoElement.currentTime = this.currentVideoState.currentTime;
88928
- videoElement.volume = this.currentVideoState.volume;
88929
- videoElement.playbackRate = this.currentVideoState.playbackRate;
88930
- if (this.currentVideoState.isPlaying) {
88931
- videoElement.play()["catch"](console.error);
88932
- }
88933
- };
88934
- PictureInPictureManager.prototype.handleTimeUpdate = function () {
88935
- if (this.videoElement && this.currentVideoState) {
88936
- this.currentVideoState.currentTime = this.videoElement.currentTime;
88937
- this.notifyStateChange();
88938
- }
88939
- };
88940
- PictureInPictureManager.prototype.handlePlayStateChange = function () {
88941
- if (this.videoElement && this.currentVideoState) {
88942
- this.currentVideoState.isPlaying = !this.videoElement.paused;
88943
- this.notifyStateChange();
88944
- }
88945
- };
88946
- PictureInPictureManager.prototype.handleVolumeChange = function () {
88947
- if (this.videoElement && this.currentVideoState) {
88948
- this.currentVideoState.volume = this.videoElement.volume;
88949
- this.notifyStateChange();
88950
- }
88951
- };
88952
- PictureInPictureManager.prototype.handleRateChange = function () {
88953
- if (this.videoElement && this.currentVideoState) {
88954
- this.currentVideoState.playbackRate = this.videoElement.playbackRate;
88955
- this.notifyStateChange();
88956
- }
88957
- };
88958
- PictureInPictureManager.prototype.handlePiPEnter = function () {
88959
- console.log('Entered picture-in-picture mode');
88960
- };
88961
- PictureInPictureManager.prototype.handlePiPExit = function () {
88962
- console.log('Exited picture-in-picture mode');
88963
- this.cleanup();
88964
- };
88965
- PictureInPictureManager.prototype.notifyStateChange = function () {
88966
- if (this.onStateChange && this.currentVideoState) {
88967
- this.onStateChange(this.currentVideoState);
88968
- }
88969
- };
88970
- PictureInPictureManager.prototype.cleanup = function () {
88971
- // Clean up the persistent container
88972
- if (this.pipContainer && this.pipContainer.parentNode) {
88973
- this.pipContainer.parentNode.removeChild(this.pipContainer);
88974
- this.pipContainer = null;
88975
- }
88976
- };
88977
- return PictureInPictureManager;
88978
- }();
88979
- // Create a singleton instance
88980
- var pipManager = new PictureInPictureManager();
88981
-
88982
88741
  var count = 0;
88983
88742
  var defaultVideoState = {
88984
88743
  muted: false,
@@ -89063,8 +88822,6 @@ function usePlayerControls(_a) {
89063
88822
  };
89064
88823
  var handlePiPLeave = function handlePiPLeave() {
89065
88824
  setIsPiPActive(false);
89066
- // Also cleanup the PiP manager when PiP exits
89067
- pipManager.unregisterVideo();
89068
88825
  };
89069
88826
  document.addEventListener('fullscreenchange', handleFullscreenChange);
89070
88827
  document.addEventListener('enterpictureinpicture', handlePiPEnter);
@@ -89088,33 +88845,19 @@ function usePlayerControls(_a) {
89088
88845
  }, [url]); // Re-run when URL changes to ensure proper cleanup and setup
89089
88846
  useEffect(function () {
89090
88847
  setStartPlayed(false);
89091
- // Check if there's an active PiP session and restore state
89092
- if (pipManager.isPiPActive()) {
89093
- var savedState_1 = pipManager.getCurrentState();
89094
- if (savedState_1 && savedState_1.url === url) {
89095
- setIsPiPActive(true);
89096
- // Restore video state from PiP manager
89097
- setVideoState(function (prev) {
89098
- var _a;
89099
- return __assign(__assign({}, prev), {
89100
- volume: savedState_1.volume,
89101
- playbackRate: savedState_1.playbackRate,
89102
- played: savedState_1.currentTime / (((_a = videoPlayerRef.current) === null || _a === void 0 ? void 0 : _a.getDuration()) || 1)
89103
- });
89104
- });
89105
- setIsPlaying(savedState_1.isPlaying);
89106
- }
89107
- }
89108
- }, [url, setIsPlaying]);
88848
+ }, [url]);
89109
88849
  // Cleanup effect to handle component unmounting while in PiP mode
89110
88850
  useEffect(function () {
88851
+ var currentVideoPlayerRef = videoPlayerRef.current;
89111
88852
  return function () {
89112
- // Unregister from PiP manager when component unmounts
89113
- pipManager.unregisterVideo();
89114
88853
  // Check if we're in PiP mode when component unmounts
89115
88854
  if (document.pictureInPictureElement) {
89116
- // The PiP manager will handle keeping the video alive
89117
- console.log('Component unmounting while in Picture-in-Picture mode - PiP will persist');
88855
+ // Try to keep the video element alive by cloning it
88856
+ var videoElement = currentVideoPlayerRef === null || currentVideoPlayerRef === void 0 ? void 0 : currentVideoPlayerRef.getInternalPlayer();
88857
+ if (videoElement && videoElement instanceof HTMLVideoElement) {
88858
+ // Create a warning for the user that PiP will exit
88859
+ console.log('Component unmounting while in Picture-in-Picture mode');
88860
+ }
89118
88861
  }
89119
88862
  };
89120
88863
  }, []);
@@ -89288,18 +89031,9 @@ function usePlayerControls(_a) {
89288
89031
  if (videoPlayerRef.current && !startPlayed) {
89289
89032
  videoPlayerRef.current.seekTo(startTime);
89290
89033
  setStartPlayed(true);
89291
- // Register video with PiP manager when it's ready
89292
- var videoElement = videoPlayerRef.current.getInternalPlayer();
89293
- if (videoElement && videoElement instanceof HTMLVideoElement) {
89294
- // Restore state if there was a previous PiP session
89295
- var savedState = pipManager.getCurrentState();
89296
- if (savedState && savedState.url === url && pipManager.isPiPActive()) {
89297
- pipManager.restoreStateToVideo(videoElement);
89298
- }
89299
- }
89300
89034
  }
89301
89035
  setLoading(false);
89302
- }, [startTime, startPlayed, setLoading, url]);
89036
+ }, [startTime, startPlayed, setLoading]);
89303
89037
  var handleFullScreen = function handleFullScreen() {
89304
89038
  var playerContainer = playerContainerRef.current;
89305
89039
  if (!playerContainer) {
@@ -89322,33 +89056,21 @@ function usePlayerControls(_a) {
89322
89056
  return;
89323
89057
  }
89324
89058
  if (document.pictureInPictureElement) {
89325
- pipManager.exitPiP()["catch"](function (error) {
89059
+ document.exitPictureInPicture()["catch"](function (error) {
89326
89060
  console.error('Failed to exit picture-in-picture:', error);
89327
89061
  });
89328
89062
  } else {
89329
- // Register the video with the PiP manager
89330
- pipManager.registerVideo(videoElement, url, function (state) {
89331
- // Update local state when PiP video state changes
89332
- setVideoState(function (prev) {
89333
- return __assign(__assign({}, prev), {
89334
- played: state.currentTime / duration,
89335
- volume: state.volume,
89336
- playbackRate: state.playbackRate
89337
- });
89338
- });
89339
- setIsPlaying(state.isPlaying);
89340
- });
89341
89063
  // Ensure the video is playing before entering PiP mode
89342
89064
  if (videoElement.paused && isPlaying) {
89343
89065
  videoElement.play().then(function () {
89344
- pipManager.enterPiP()["catch"](function (error) {
89066
+ videoElement.requestPictureInPicture()["catch"](function (error) {
89345
89067
  console.error('Failed to enter picture-in-picture:', error);
89346
89068
  });
89347
89069
  })["catch"](function (error) {
89348
89070
  console.error('Failed to play video before PiP:', error);
89349
89071
  });
89350
89072
  } else {
89351
- pipManager.enterPiP()["catch"](function (error) {
89073
+ videoElement.requestPictureInPicture()["catch"](function (error) {
89352
89074
  console.error('Failed to enter picture-in-picture:', error);
89353
89075
  });
89354
89076
  }
@@ -89726,6 +89448,131 @@ var VideoPlayer = function VideoPlayer(_a) {
89726
89448
  });
89727
89449
  };
89728
89450
 
89451
+ var PiPContext = /*#__PURE__*/createContext(undefined);
89452
+ var PiPProvider = function PiPProvider(_a) {
89453
+ var children = _a.children;
89454
+ var _b = useState(false),
89455
+ isPiPActive = _b[0],
89456
+ setIsPiPActive = _b[1];
89457
+ var _c = useState(null),
89458
+ pipVideoState = _c[0],
89459
+ setPipVideoState = _c[1];
89460
+ var videoElementRef = useRef(null);
89461
+ var updateVideoState = useCallback(function (state) {
89462
+ setPipVideoState(function (prev) {
89463
+ return prev ? __assign(__assign({}, prev), state) : null;
89464
+ });
89465
+ }, []);
89466
+ var registerVideoElement = useCallback(function (element) {
89467
+ videoElementRef.current = element;
89468
+ }, []);
89469
+ var unregisterVideoElement = useCallback(function () {
89470
+ videoElementRef.current = null;
89471
+ }, []);
89472
+ var enterPiP = useCallback(function (videoElement, videoState) {
89473
+ return __awaiter(void 0, void 0, void 0, function () {
89474
+ var error_1;
89475
+ return __generator(this, function (_a) {
89476
+ switch (_a.label) {
89477
+ case 0:
89478
+ if (!document.pictureInPictureEnabled) {
89479
+ console.warn('Picture-in-Picture is not supported in this browser');
89480
+ return [2 /*return*/, false];
89481
+ }
89482
+ if (document.pictureInPictureElement) {
89483
+ console.warn('Another video is already in Picture-in-Picture mode');
89484
+ return [2 /*return*/, false];
89485
+ }
89486
+ _a.label = 1;
89487
+ case 1:
89488
+ _a.trys.push([1, 5,, 6]);
89489
+ // Store video state
89490
+ setPipVideoState(videoState);
89491
+ videoElementRef.current = videoElement;
89492
+ if (!(videoElement.paused && videoState.isPlaying)) return [3 /*break*/, 3];
89493
+ return [4 /*yield*/, videoElement.play()];
89494
+ case 2:
89495
+ _a.sent();
89496
+ _a.label = 3;
89497
+ case 3:
89498
+ return [4 /*yield*/, videoElement.requestPictureInPicture()];
89499
+ case 4:
89500
+ _a.sent();
89501
+ return [2 /*return*/, true];
89502
+ case 5:
89503
+ error_1 = _a.sent();
89504
+ console.error('Failed to enter picture-in-picture:', error_1);
89505
+ return [2 /*return*/, false];
89506
+ case 6:
89507
+ return [2 /*return*/];
89508
+ }
89509
+ });
89510
+ });
89511
+ }, []);
89512
+ var exitPiP = useCallback(function () {
89513
+ return __awaiter(void 0, void 0, void 0, function () {
89514
+ var error_2;
89515
+ return __generator(this, function (_a) {
89516
+ switch (_a.label) {
89517
+ case 0:
89518
+ _a.trys.push([0, 3,, 4]);
89519
+ if (!document.pictureInPictureElement) return [3 /*break*/, 2];
89520
+ return [4 /*yield*/, document.exitPictureInPicture()];
89521
+ case 1:
89522
+ _a.sent();
89523
+ _a.label = 2;
89524
+ case 2:
89525
+ return [2 /*return*/, true];
89526
+ case 3:
89527
+ error_2 = _a.sent();
89528
+ console.error('Failed to exit picture-in-picture:', error_2);
89529
+ return [2 /*return*/, false];
89530
+ case 4:
89531
+ return [2 /*return*/];
89532
+ }
89533
+ });
89534
+ });
89535
+ }, []);
89536
+ // Listen for PiP events
89537
+ useEffect(function () {
89538
+ var handlePiPEnter = function handlePiPEnter() {
89539
+ setIsPiPActive(true);
89540
+ };
89541
+ var handlePiPLeave = function handlePiPLeave() {
89542
+ setIsPiPActive(false);
89543
+ // Keep the video state for potential restoration
89544
+ // but don't clear it immediately
89545
+ };
89546
+ document.addEventListener('enterpictureinpicture', handlePiPEnter);
89547
+ document.addEventListener('leavepictureinpicture', handlePiPLeave);
89548
+ return function () {
89549
+ document.removeEventListener('enterpictureinpicture', handlePiPEnter);
89550
+ document.removeEventListener('leavepictureinpicture', handlePiPLeave);
89551
+ };
89552
+ }, []);
89553
+ var value = {
89554
+ isPiPActive: isPiPActive,
89555
+ pipVideoState: pipVideoState,
89556
+ enterPiP: enterPiP,
89557
+ exitPiP: exitPiP,
89558
+ updateVideoState: updateVideoState,
89559
+ registerVideoElement: registerVideoElement,
89560
+ unregisterVideoElement: unregisterVideoElement
89561
+ };
89562
+ return jsxRuntimeExports.jsx(PiPContext.Provider, {
89563
+ value: value,
89564
+ children: children
89565
+ });
89566
+ };
89567
+
89568
+ var usePiP = function usePiP() {
89569
+ var context = useContext(PiPContext);
89570
+ if (context === undefined) {
89571
+ throw new Error('usePiP must be used within a PiPProvider');
89572
+ }
89573
+ return context;
89574
+ };
89575
+
89729
89576
  var Whiteboard = dt.div(templateObject_1$6 || (templateObject_1$6 = __makeTemplateObject(["\n background-color: #ffffff;\n padding: 20px;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 75vh;\n border: 1px solid #e7e9ed;\n border-radius: 4px;\n flex-direction: column;\n padding: 40px;\n"], ["\n background-color: #ffffff;\n padding: 20px;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 75vh;\n border: 1px solid #e7e9ed;\n border-radius: 4px;\n flex-direction: column;\n padding: 40px;\n"])));
89730
89577
  var CenteredText = dt.div(templateObject_2$4 || (templateObject_2$4 = __makeTemplateObject(["\n font-weight: 800;\n display: flex;\n flex-direction: column;\n align-items: center;\n font-size: 20px;\n font-family: 'Open Sans', sans-serif;\n text-align: center;\n gap: 8px;\n margin-top: ", ";\n\n h1 {\n font-size: 18px;\n font-weight: 800;\n }\n\n h4 {\n color: #68707a;\n font-size: 16px;\n font-weight: 500;\n }\n"], ["\n font-weight: 800;\n display: flex;\n flex-direction: column;\n align-items: center;\n font-size: 20px;\n font-family: 'Open Sans', sans-serif;\n text-align: center;\n gap: 8px;\n margin-top: ", ";\n\n h1 {\n font-size: 18px;\n font-weight: 800;\n }\n\n h4 {\n color: #68707a;\n font-size: 16px;\n font-weight: 500;\n }\n"])), function (_a) {
89731
89578
  var marginTop = _a.marginTop;
@@ -95055,4 +94902,4 @@ var RangeSlider = function RangeSlider(_a) {
95055
94902
  });
95056
94903
  };
95057
94904
 
95058
- export { AudioPlayer as A, Button$1 as B, CourseCard as C, DropDown as D, GridActionMenu as G, Loader as L, NavigationBar as N, PhoneCountryCode as P, RadioButton as R, SearchInput as S, TranslationProvider as T, Uploader as U, VideoPlayer as V, requirePatterns as a, ThemeProvider as b, CustomSwitcher as c, DatePicker as d, Checkbox as e, Pagination as f, getDefaultExportFromCjs as g, Breadcrumb as h, Tile as i, ColorPicker as j, Badge as k, TooltipHeight as l, CustomTooltip as m, SplashScreen as n, ColumnNavigation as o, StatusIndicator as p, TabPanel as q, requireUtils as r, TabNavigation as s, activeTabClassName as t, DrawerTips as u, RangeSlider as v };
94905
+ export { AudioPlayer as A, Button$1 as B, CourseCard as C, DropDown as D, GridActionMenu as G, Loader as L, NavigationBar as N, PhoneCountryCode as P, RadioButton as R, SearchInput as S, TranslationProvider as T, Uploader as U, VideoPlayer as V, requirePatterns as a, ThemeProvider as b, CustomSwitcher as c, DatePicker as d, Checkbox as e, Pagination as f, getDefaultExportFromCjs as g, Breadcrumb as h, Tile as i, ColorPicker as j, Badge as k, TooltipHeight as l, CustomTooltip as m, PiPProvider as n, SplashScreen as o, ColumnNavigation as p, StatusIndicator as q, requireUtils as r, TabPanel as s, TabNavigation as t, usePiP as u, activeTabClassName as v, DrawerTips as w, RangeSlider as x };
@@ -19,6 +19,8 @@ export { Badge } from './Badge';
19
19
  export { TooltipHeight } from './Tooltip';
20
20
  export { CustomTooltip } from './Tooltip';
21
21
  export { VideoPlayer } from './VideoPlayer';
22
+ export { PiPProvider } from './VideoPlayer/PiPContext';
23
+ export { usePiP } from './VideoPlayer/usePiP';
22
24
  export { SplashScreen } from './SplashScreen';
23
25
  export { AudioPlayer } from './AudioPlayer';
24
26
  export { ColumnNavigation } from './ColumnNavigation';
@@ -1,3 +1,3 @@
1
- export { A as AudioPlayer, k as Badge, h as Breadcrumb, B as Button, e as Checkbox, j as ColorPicker, o as ColumnNavigation, C as CourseCard, c as CustomSwitcher, m as CustomTooltip, d as DatePicker, u as DrawerTips, D as DropDown, G as GridActionMenu, L as Loader, N as NavigationBar, f as Pagination, P as PhoneCountryCode, R as RadioButton, v as RangeSlider, S as SearchInput, n as SplashScreen, p as StatusIndicator, s as TabNavigation, q as TabPanel, b as ThemeProvider, i as Tile, l as TooltipHeight, T as TranslationProvider, U as Uploader, V as VideoPlayer, t as activeTabClassName } from './index-DKAGRUEW.esm.js';
1
+ export { A as AudioPlayer, k as Badge, h as Breadcrumb, B as Button, e as Checkbox, j as ColorPicker, p as ColumnNavigation, C as CourseCard, c as CustomSwitcher, m as CustomTooltip, d as DatePicker, w as DrawerTips, D as DropDown, G as GridActionMenu, L as Loader, N as NavigationBar, f as Pagination, P as PhoneCountryCode, n as PiPProvider, R as RadioButton, x as RangeSlider, S as SearchInput, o as SplashScreen, q as StatusIndicator, t as TabNavigation, s as TabPanel, b as ThemeProvider, i as Tile, l as TooltipHeight, T as TranslationProvider, U as Uploader, V as VideoPlayer, v as activeTabClassName, u as usePiP } from './index-C4Mk2H3N.esm.js';
2
2
  import 'react';
3
3
  import 'react-dom';
@@ -19,6 +19,8 @@ export { Badge } from './Badge';
19
19
  export { TooltipHeight } from './Tooltip';
20
20
  export { CustomTooltip } from './Tooltip';
21
21
  export { VideoPlayer } from './VideoPlayer';
22
+ export { PiPProvider } from './VideoPlayer/PiPContext';
23
+ export { usePiP } from './VideoPlayer/usePiP';
22
24
  export { SplashScreen } from './SplashScreen';
23
25
  export { AudioPlayer } from './AudioPlayer';
24
26
  export { ColumnNavigation } from './ColumnNavigation';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}