@framv/slides 0.1.0 → 0.1.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.
- package/README.md +47 -1
- package/dist/bundle.esm.js +16 -1
- package/dist/bundle.iife.js +16 -1
- package/dist/element.d.ts.map +1 -1
- package/dist/element.js +18 -2
- package/dist/element.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1 +1,47 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @framv/slides
|
|
2
|
+
|
|
3
|
+
`<framv-slides>` + `<framv-slide>` — presentation slideshow with transitions, keyboard navigation, and PDF export.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @framv/slides
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## CDN
|
|
12
|
+
|
|
13
|
+
```html
|
|
14
|
+
<script src="https://cdn.jsdelivr.net/npm/@framv/core/dist/bundle.iife.js"></script>
|
|
15
|
+
<script src="https://cdn.jsdelivr.net/npm/@framv/slides/dist/bundle.iife.js"></script>
|
|
16
|
+
|
|
17
|
+
<framv-slides controls width="1920" height="1080" transition="fade">
|
|
18
|
+
<framv-slide background="#1a1a2e">
|
|
19
|
+
<h1>Slide 1</h1>
|
|
20
|
+
</framv-slide>
|
|
21
|
+
<framv-slide background="#16213e">
|
|
22
|
+
<h2>Slide 2</h2>
|
|
23
|
+
</framv-slide>
|
|
24
|
+
</framv-slides>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## `<framv-slides>` attributes
|
|
28
|
+
|
|
29
|
+
| Attribute | Default | Description |
|
|
30
|
+
|-----------|---------|-------------|
|
|
31
|
+
| `width` / `height` | 1920 / 1080 | Slide dimensions |
|
|
32
|
+
| `transition` | slide | fade, slide, slide-up, zoom |
|
|
33
|
+
| `controls` | — | Always show controls |
|
|
34
|
+
| `autoplay` | — | Auto-advance slides |
|
|
35
|
+
| `interval` | 5000 | Autoplay interval in ms |
|
|
36
|
+
| `loop` | — | Loop back to first slide |
|
|
37
|
+
|
|
38
|
+
## `<framv-slide>` attributes
|
|
39
|
+
|
|
40
|
+
| Attribute | Default | Description |
|
|
41
|
+
|-----------|---------|-------------|
|
|
42
|
+
| `background` | — | CSS background value |
|
|
43
|
+
| `transition` | inherit | Override parent transition |
|
|
44
|
+
|
|
45
|
+
## Navigation
|
|
46
|
+
|
|
47
|
+
Arrow keys, Space, click to advance. Fullscreen with F. Export to PDF.
|
package/dist/bundle.esm.js
CHANGED
|
@@ -122,6 +122,7 @@ var STYLES2 = `
|
|
|
122
122
|
var FramvSlidesElement = class extends HTMLElement {
|
|
123
123
|
static observedAttributes = ["transition"];
|
|
124
124
|
_currentIndex = 0;
|
|
125
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
125
126
|
_slides = [];
|
|
126
127
|
_stage;
|
|
127
128
|
_controls;
|
|
@@ -168,7 +169,21 @@ var FramvSlidesElement = class extends HTMLElement {
|
|
|
168
169
|
this._nextBtn = this.querySelector(".btn-next");
|
|
169
170
|
this._fullscreenBtn = this.querySelector(".btn-fullscreen");
|
|
170
171
|
this._exportBtn = this.querySelector(".btn-export");
|
|
171
|
-
|
|
172
|
+
const existingSlides = Array.from(this.querySelectorAll("framv-slide"));
|
|
173
|
+
if (existingSlides.length > 0) {
|
|
174
|
+
this._slides = existingSlides;
|
|
175
|
+
} else {
|
|
176
|
+
const children = Array.from(this.children).filter(
|
|
177
|
+
(c) => !(c instanceof HTMLElement && (c.classList.contains("framv-slides-stage") || c.classList.contains("framv-slides-controls") || c.classList.contains("framv-progress") || c.classList.contains("framv-fullscreen-badge") || c.tagName === "STYLE"))
|
|
178
|
+
);
|
|
179
|
+
const wrapped = children.map((child) => {
|
|
180
|
+
if (child instanceof HTMLElement && child.tagName === "FRAMV-SLIDE") return child;
|
|
181
|
+
const slide = document.createElement("framv-slide");
|
|
182
|
+
slide.appendChild(child);
|
|
183
|
+
return slide;
|
|
184
|
+
});
|
|
185
|
+
this._slides = wrapped;
|
|
186
|
+
}
|
|
172
187
|
this._slides.forEach((slide, i) => {
|
|
173
188
|
slide.setAttribute("transition", slide.getAttribute("transition") ?? this.transition);
|
|
174
189
|
this._stage.appendChild(slide);
|
package/dist/bundle.iife.js
CHANGED
|
@@ -33068,6 +33068,7 @@ var FramvSlides = (() => {
|
|
|
33068
33068
|
var FramvSlidesElement = class extends HTMLElement {
|
|
33069
33069
|
static observedAttributes = ["transition"];
|
|
33070
33070
|
_currentIndex = 0;
|
|
33071
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
33071
33072
|
_slides = [];
|
|
33072
33073
|
_stage;
|
|
33073
33074
|
_controls;
|
|
@@ -33114,7 +33115,21 @@ var FramvSlides = (() => {
|
|
|
33114
33115
|
this._nextBtn = this.querySelector(".btn-next");
|
|
33115
33116
|
this._fullscreenBtn = this.querySelector(".btn-fullscreen");
|
|
33116
33117
|
this._exportBtn = this.querySelector(".btn-export");
|
|
33117
|
-
|
|
33118
|
+
const existingSlides = Array.from(this.querySelectorAll("framv-slide"));
|
|
33119
|
+
if (existingSlides.length > 0) {
|
|
33120
|
+
this._slides = existingSlides;
|
|
33121
|
+
} else {
|
|
33122
|
+
const children = Array.from(this.children).filter(
|
|
33123
|
+
(c4) => !(c4 instanceof HTMLElement && (c4.classList.contains("framv-slides-stage") || c4.classList.contains("framv-slides-controls") || c4.classList.contains("framv-progress") || c4.classList.contains("framv-fullscreen-badge") || c4.tagName === "STYLE"))
|
|
33124
|
+
);
|
|
33125
|
+
const wrapped = children.map((child) => {
|
|
33126
|
+
if (child instanceof HTMLElement && child.tagName === "FRAMV-SLIDE") return child;
|
|
33127
|
+
const slide = document.createElement("framv-slide");
|
|
33128
|
+
slide.appendChild(child);
|
|
33129
|
+
return slide;
|
|
33130
|
+
});
|
|
33131
|
+
this._slides = wrapped;
|
|
33132
|
+
}
|
|
33118
33133
|
this._slides.forEach((slide, i3) => {
|
|
33119
33134
|
slide.setAttribute("transition", slide.getAttribute("transition") ?? this.transition);
|
|
33120
33135
|
this._stage.appendChild(slide);
|
package/dist/element.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"AA0DA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,MAAM,CAAC,kBAAkB,WAAkB;IAE3C,OAAO,CAAC,aAAa,CAAK;
|
|
1
|
+
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"AA0DA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,MAAM,CAAC,kBAAkB,WAAkB;IAE3C,OAAO,CAAC,aAAa,CAAK;IAE1B,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,UAAU,CAAS;IAE3B,IAAI,YAAY,IAAI,MAAM,CAEzB;IACD,IAAI,UAAU,IAAI,MAAM,CAEvB;IACD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,iBAAiB,IAAI,IAAI;IA6FzB,oBAAoB,IAAI,IAAI;IAI5B,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ5C,IAAI,IAAI,IAAI;IAQZ,IAAI,IAAI,IAAI;IAQZ,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMzB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;YAQX,OAAO;CA8BtB"}
|
package/dist/element.js
CHANGED
|
@@ -82,6 +82,7 @@ const STYLES = `
|
|
|
82
82
|
export class FramvSlidesElement extends HTMLElement {
|
|
83
83
|
static observedAttributes = ["transition"];
|
|
84
84
|
_currentIndex = 0;
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
85
86
|
_slides = [];
|
|
86
87
|
_stage;
|
|
87
88
|
_controls;
|
|
@@ -128,8 +129,23 @@ export class FramvSlidesElement extends HTMLElement {
|
|
|
128
129
|
this._nextBtn = this.querySelector(".btn-next");
|
|
129
130
|
this._fullscreenBtn = this.querySelector(".btn-fullscreen");
|
|
130
131
|
this._exportBtn = this.querySelector(".btn-export");
|
|
131
|
-
// Move slide children into stage
|
|
132
|
-
|
|
132
|
+
// Move slide children into stage — accept any direct child, not just <framv-slide>
|
|
133
|
+
const existingSlides = Array.from(this.querySelectorAll("framv-slide"));
|
|
134
|
+
if (existingSlides.length > 0) {
|
|
135
|
+
this._slides = existingSlides;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
// Wrap each direct child in a <framv-slide> if it isn't already one
|
|
139
|
+
const children = Array.from(this.children).filter((c) => !(c instanceof HTMLElement && (c.classList.contains("framv-slides-stage") || c.classList.contains("framv-slides-controls") || c.classList.contains("framv-progress") || c.classList.contains("framv-fullscreen-badge") || c.tagName === "STYLE")));
|
|
140
|
+
const wrapped = children.map((child) => {
|
|
141
|
+
if (child instanceof HTMLElement && child.tagName === "FRAMV-SLIDE")
|
|
142
|
+
return child;
|
|
143
|
+
const slide = document.createElement("framv-slide");
|
|
144
|
+
slide.appendChild(child);
|
|
145
|
+
return slide;
|
|
146
|
+
});
|
|
147
|
+
this._slides = wrapped;
|
|
148
|
+
}
|
|
133
149
|
this._slides.forEach((slide, i) => {
|
|
134
150
|
slide.setAttribute("transition", slide.getAttribute("transition") ?? this.transition);
|
|
135
151
|
this._stage.appendChild(slide);
|
package/dist/element.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDd,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IACjD,MAAM,CAAC,kBAAkB,GAAG,CAAC,YAAY,CAAC,CAAC;IAEnC,aAAa,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}
|