taleem-player 1.0.1 → 1.0.2

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.
@@ -344,4 +344,67 @@
344
344
  .slide.table thead tr:has(th:empty) {
345
345
  display: none;
346
346
  }
347
+
348
+
349
+ /* -------------------------------
350
+ Corner Words Slide (4 Quadrants)
351
+ ------------------------------- */
352
+
353
+ .slide.cornerWordsSlide {
354
+ position: relative;
355
+ width: 100%;
356
+ height: 100vh;
357
+ padding: 0;
358
+ }
359
+
360
+ /* base card */
361
+ .cornerWordsSlide .corner-card {
362
+ position: absolute;
363
+ width: 45%;
364
+ height: 45%;
365
+
366
+ display: flex;
367
+ flex-direction: column;
368
+ justify-content: center;
369
+ align-items: center;
370
+ gap: 16px;
371
+
372
+ font-size: 4.2rem;
373
+ font-weight: 700;
374
+ letter-spacing: 0.02em;
375
+ text-align: center;
376
+ }
377
+
378
+ /* emoji / icon */
379
+ .cornerWordsSlide .corner-card .icon {
380
+ font-size: 5.2rem;
381
+ line-height: 1;
382
+ }
383
+
384
+ /* label text */
385
+ .cornerWordsSlide .corner-card .label {
386
+ font-size: 3.6rem;
387
+ font-weight: 600;
388
+ }
389
+
390
+ /* quadrants */
391
+ .cornerWordsSlide .corner-1 {
392
+ top: 0;
393
+ left: 0;
394
+ }
395
+
396
+ .cornerWordsSlide .corner-2 {
397
+ top: 0;
398
+ right: 0;
399
+ }
400
+
401
+ .cornerWordsSlide .corner-3 {
402
+ bottom: 0;
403
+ left: 0;
404
+ }
405
+
406
+ .cornerWordsSlide .corner-4 {
407
+ bottom: 0;
408
+ right: 0;
409
+ }
347
410
 
@@ -591,7 +591,7 @@ function getSlideTemplate(type) {
591
591
  }
592
592
 
593
593
  // src/engines/player/stage.js
594
- function createStage(mount) {
594
+ function createStage(mount, background = {}) {
595
595
  if (!mount) throw new Error("taleem-player: mount is required");
596
596
  const root = typeof mount === "string" ? document.querySelector(mount) : mount;
597
597
  if (!root) throw new Error("taleem-player: mount element not found");
@@ -601,15 +601,41 @@ function createStage(mount) {
601
601
  stage.style.position = "relative";
602
602
  stage.style.width = "100%";
603
603
  stage.style.height = "100%";
604
+ stage.style.overflow = "hidden";
605
+ const bgLayer = document.createElement("div");
606
+ bgLayer.className = "taleem-player-bg";
607
+ bgLayer.style.position = "absolute";
608
+ bgLayer.style.inset = "0";
609
+ bgLayer.style.zIndex = "0";
610
+ bgLayer.style.backgroundRepeat = "no-repeat";
611
+ bgLayer.style.backgroundSize = "cover";
612
+ bgLayer.style.backgroundPosition = "center";
613
+ if (background.backgroundColor) {
614
+ bgLayer.style.backgroundColor = background.backgroundColor;
615
+ }
616
+ if (background.backgroundImage) {
617
+ bgLayer.style.backgroundImage = `url("${background.backgroundImage}")`;
618
+ }
619
+ if (typeof background.backgroundImageOpacity === "number" && background.backgroundImageOpacity < 1) {
620
+ bgLayer.style.opacity = String(background.backgroundImageOpacity);
621
+ }
622
+ const slideLayer = document.createElement("div");
623
+ slideLayer.className = "taleem-player-slides";
624
+ slideLayer.style.position = "relative";
625
+ slideLayer.style.zIndex = "1";
626
+ slideLayer.style.width = "100%";
627
+ slideLayer.style.height = "100%";
628
+ stage.appendChild(bgLayer);
629
+ stage.appendChild(slideLayer);
604
630
  root.appendChild(stage);
605
631
  function clear() {
606
- stage.innerHTML = "";
632
+ slideLayer.innerHTML = "";
607
633
  }
608
634
  function destroy() {
609
635
  root.innerHTML = "";
610
636
  }
611
637
  return {
612
- el: stage,
638
+ el: slideLayer,
613
639
  clear,
614
640
  destroy
615
641
  };
@@ -617,7 +643,7 @@ function createStage(mount) {
617
643
 
618
644
  // src/engines/player/player.js
619
645
  function createTaleemPlayer({ mount, deck }) {
620
- const stage = createStage(mount);
646
+ const stage = createStage(mount, deck.background);
621
647
  let lastSlide = null;
622
648
  let lastRenderedKey = null;
623
649
  function getSlideAtTime(deck2, time) {
@@ -621,7 +621,7 @@ var TaleemPlayer = (() => {
621
621
  }
622
622
 
623
623
  // src/engines/player/stage.js
624
- function createStage(mount) {
624
+ function createStage(mount, background = {}) {
625
625
  if (!mount) throw new Error("taleem-player: mount is required");
626
626
  const root = typeof mount === "string" ? document.querySelector(mount) : mount;
627
627
  if (!root) throw new Error("taleem-player: mount element not found");
@@ -631,15 +631,41 @@ var TaleemPlayer = (() => {
631
631
  stage.style.position = "relative";
632
632
  stage.style.width = "100%";
633
633
  stage.style.height = "100%";
634
+ stage.style.overflow = "hidden";
635
+ const bgLayer = document.createElement("div");
636
+ bgLayer.className = "taleem-player-bg";
637
+ bgLayer.style.position = "absolute";
638
+ bgLayer.style.inset = "0";
639
+ bgLayer.style.zIndex = "0";
640
+ bgLayer.style.backgroundRepeat = "no-repeat";
641
+ bgLayer.style.backgroundSize = "cover";
642
+ bgLayer.style.backgroundPosition = "center";
643
+ if (background.backgroundColor) {
644
+ bgLayer.style.backgroundColor = background.backgroundColor;
645
+ }
646
+ if (background.backgroundImage) {
647
+ bgLayer.style.backgroundImage = `url("${background.backgroundImage}")`;
648
+ }
649
+ if (typeof background.backgroundImageOpacity === "number" && background.backgroundImageOpacity < 1) {
650
+ bgLayer.style.opacity = String(background.backgroundImageOpacity);
651
+ }
652
+ const slideLayer = document.createElement("div");
653
+ slideLayer.className = "taleem-player-slides";
654
+ slideLayer.style.position = "relative";
655
+ slideLayer.style.zIndex = "1";
656
+ slideLayer.style.width = "100%";
657
+ slideLayer.style.height = "100%";
658
+ stage.appendChild(bgLayer);
659
+ stage.appendChild(slideLayer);
634
660
  root.appendChild(stage);
635
661
  function clear() {
636
- stage.innerHTML = "";
662
+ slideLayer.innerHTML = "";
637
663
  }
638
664
  function destroy() {
639
665
  root.innerHTML = "";
640
666
  }
641
667
  return {
642
- el: stage,
668
+ el: slideLayer,
643
669
  clear,
644
670
  destroy
645
671
  };
@@ -647,7 +673,7 @@ var TaleemPlayer = (() => {
647
673
 
648
674
  // src/engines/player/player.js
649
675
  function createTaleemPlayer({ mount, deck }) {
650
- const stage = createStage(mount);
676
+ const stage = createStage(mount, deck.background);
651
677
  let lastSlide = null;
652
678
  let lastRenderedKey = null;
653
679
  function getSlideAtTime(deck2, time) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "taleem-player",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "type": "module",
5
5
  "main": "./dist/taleem-player.umd.js",
6
6
  "module": "./dist/taleem-player.esm.js",
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "taleem-core": "^1.4.3",
32
- "taleem-slides": "^0.6.2-rc.6"
32
+ "taleem-slides": "file:../taleem-slides"
33
33
  },
34
34
  "devDependencies": {
35
35
  "esbuild": "^0.27.2",