taleem-player 1.0.14 → 1.0.16
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/dist/css/taleem.css +1 -601
- package/dist/css/themes/default.css +6 -0
- package/dist/spec/index.js +2 -7
- package/dist/taleem-player.esm.js +27 -13
- package/dist/taleem-player.umd.js +27 -13
- package/package.json +1 -1
package/dist/css/taleem.css
CHANGED
|
@@ -1,601 +1 @@
|
|
|
1
|
-
|
|
2
|
-
/* =====================================================
|
|
3
|
-
TALEEM — Single Public Stylesheet
|
|
4
|
-
|
|
5
|
-
/* -------------------------------
|
|
6
|
-
Global Page Reset
|
|
7
|
-
------------------------------- */
|
|
8
|
-
|
|
9
|
-
html,body {
|
|
10
|
-
height: 100%;
|
|
11
|
-
overflow: hidden;
|
|
12
|
-
margin: 0;
|
|
13
|
-
font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
|
|
14
|
-
background: var(--backgroundColor, #0b1220);
|
|
15
|
-
color: var(--primaryColor, #e6e9ff);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
#app {
|
|
19
|
-
position: relative;
|
|
20
|
-
width: 100vw;
|
|
21
|
-
min-height: 100vh;
|
|
22
|
-
overflow: hidden;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/* -------------------------------
|
|
26
|
-
Browser / Player Layers
|
|
27
|
-
------------------------------- */
|
|
28
|
-
.taleem-browser-bg {
|
|
29
|
-
position: absolute;
|
|
30
|
-
inset: 0;
|
|
31
|
-
z-index: 0;
|
|
32
|
-
background-size: cover;
|
|
33
|
-
background-position: center;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.taleem-browser-slide {
|
|
37
|
-
position: relative;
|
|
38
|
-
z-index: 1;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/* -------------------------------
|
|
42
|
-
Base Slide Grammar
|
|
43
|
-
------------------------------- */
|
|
44
|
-
.slide {
|
|
45
|
-
height: 100vh;
|
|
46
|
-
box-sizing: border-box;
|
|
47
|
-
|
|
48
|
-
display: flex;
|
|
49
|
-
flex-direction: column;
|
|
50
|
-
justify-content: center;
|
|
51
|
-
align-items: center;
|
|
52
|
-
|
|
53
|
-
padding: 64px 80px;
|
|
54
|
-
gap: 32px;
|
|
55
|
-
|
|
56
|
-
overflow: hidden;
|
|
57
|
-
background: transparent;
|
|
58
|
-
color: var(--primaryColor, #e6e9ff);
|
|
59
|
-
|
|
60
|
-
font-size: 2.4rem;
|
|
61
|
-
line-height: 1.6;
|
|
62
|
-
letter-spacing: 0.01em;
|
|
63
|
-
text-align: center;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/* -------------------------------
|
|
67
|
-
Global Image Safety
|
|
68
|
-
------------------------------- */
|
|
69
|
-
.slide img {
|
|
70
|
-
max-width: 100%;
|
|
71
|
-
max-height: 100%;
|
|
72
|
-
height: auto;
|
|
73
|
-
width: auto;
|
|
74
|
-
display: block;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/* -------------------------------
|
|
78
|
-
Headings
|
|
79
|
-
------------------------------- */
|
|
80
|
-
.slide h1 {
|
|
81
|
-
margin: 0;
|
|
82
|
-
letter-spacing: -0.015em;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/* -------------------------------
|
|
86
|
-
Slide Types
|
|
87
|
-
------------------------------- */
|
|
88
|
-
.slide.titleSlide h1 {
|
|
89
|
-
font-size: 5.6rem;
|
|
90
|
-
font-weight: 700;
|
|
91
|
-
line-height: 1.2;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.slide.titleAndSubtitle h1 {
|
|
95
|
-
font-size: 5.8rem;
|
|
96
|
-
font-weight: 700;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.slide.titleAndSubtitle h2 {
|
|
100
|
-
font-size: 3.8rem;
|
|
101
|
-
font-weight: 400;
|
|
102
|
-
opacity: 0.8;
|
|
103
|
-
margin: 0;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
.slide.titleAndPara h1 {
|
|
107
|
-
font-size: 4.8rem;
|
|
108
|
-
font-weight: 600;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
.slide.titleAndPara p {
|
|
112
|
-
font-size: 3rem;
|
|
113
|
-
max-width: 70ch;
|
|
114
|
-
opacity: 0.9;
|
|
115
|
-
margin: 0;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/* -------------------------------
|
|
119
|
-
Bullet List
|
|
120
|
-
------------------------------- */
|
|
121
|
-
.slide.bulletList ul {
|
|
122
|
-
list-style: disc;
|
|
123
|
-
padding-left: 2rem;
|
|
124
|
-
margin: 0;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
.slide.bulletList li {
|
|
128
|
-
font-size: 3.6rem;
|
|
129
|
-
margin-bottom: 1rem;
|
|
130
|
-
text-align: left;
|
|
131
|
-
font-weight: 500;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/* -------------------------------
|
|
135
|
-
Image Variants
|
|
136
|
-
------------------------------- */
|
|
137
|
-
.slide.imageSlide {
|
|
138
|
-
padding: 0;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
.slide.imageSlide img {
|
|
142
|
-
object-fit: contain;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
.slide.imageWithTitle {
|
|
146
|
-
position: relative;
|
|
147
|
-
padding: 48px;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
.slide.imageWithTitle img {
|
|
151
|
-
height: calc(100vh - 96px);
|
|
152
|
-
border-radius: 12px;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
.slide.imageWithTitle h1 {
|
|
156
|
-
position: absolute;
|
|
157
|
-
bottom: 64px;
|
|
158
|
-
left: 50%;
|
|
159
|
-
transform: translateX(-50%);
|
|
160
|
-
font-size: 4.6rem;
|
|
161
|
-
background: rgba(0, 0, 0, 0.45);
|
|
162
|
-
padding: 0.4em 0.8em;
|
|
163
|
-
border-radius: 6px;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
.slide.imageWithCaption {
|
|
167
|
-
display: flex;
|
|
168
|
-
flex-direction: column;
|
|
169
|
-
justify-content: center;
|
|
170
|
-
gap: 32px;
|
|
171
|
-
height: 100vh;
|
|
172
|
-
overflow: hidden;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
.slide.imageWithCaption img {
|
|
176
|
-
max-height: 55vh; /* reduce slightly */
|
|
177
|
-
object-fit: contain;
|
|
178
|
-
flex-shrink: 0;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
.slide.imageWithCaption p {
|
|
182
|
-
max-height: 20vh; /* hard cap text */
|
|
183
|
-
overflow: hidden;
|
|
184
|
-
text-overflow: ellipsis;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/* -------------------------------
|
|
188
|
-
Two Column Text
|
|
189
|
-
------------------------------- */
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
.slide.twoColumnText {
|
|
193
|
-
flex-direction: row;
|
|
194
|
-
justify-content: center; /* center the columns block */
|
|
195
|
-
align-items: center;
|
|
196
|
-
gap: 64px;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
.slide.twoColumnText > div {
|
|
200
|
-
flex: 1;
|
|
201
|
-
max-width: 520px; /* keeps columns visually centered */
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
/* QUOTE SLIDE */
|
|
206
|
-
.slide.quoteSlide {
|
|
207
|
-
display: flex;
|
|
208
|
-
flex-direction: column;
|
|
209
|
-
justify-content: center;
|
|
210
|
-
gap: 32px;
|
|
211
|
-
height: 100vh;
|
|
212
|
-
overflow: hidden;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
.slide.quoteSlide blockquote {
|
|
216
|
-
max-height: 60vh;
|
|
217
|
-
overflow: hidden;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
.slide.quoteSlide cite {
|
|
221
|
-
flex-shrink: 0;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
/* -------------------------------
|
|
225
|
-
Quote Slide
|
|
226
|
-
------------------------------- */
|
|
227
|
-
.slide.quoteSlide blockquote {
|
|
228
|
-
font-size: 3.8rem;
|
|
229
|
-
font-style: italic;
|
|
230
|
-
max-width: 60ch;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
.slide.quoteSlide cite {
|
|
234
|
-
font-size: 2.4rem;
|
|
235
|
-
opacity: 0.75;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/* -------------------------------
|
|
239
|
-
Big Number
|
|
240
|
-
------------------------------- */
|
|
241
|
-
.slide.bigNumber .number {
|
|
242
|
-
font-size: 9rem;
|
|
243
|
-
font-weight: 700;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
/* -------------------------------
|
|
247
|
-
Fill Image (Full Bleed)
|
|
248
|
-
------------------------------- */
|
|
249
|
-
.slide.fillImage {
|
|
250
|
-
padding: 0;
|
|
251
|
-
height: 100vh;
|
|
252
|
-
display: block;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
.slide.fillImage img {
|
|
256
|
-
width: 100%;
|
|
257
|
-
height: 100%;
|
|
258
|
-
object-fit: cover;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
/* -------------------------------
|
|
262
|
-
Demo / Player UI (Optional)
|
|
263
|
-
------------------------------- */
|
|
264
|
-
#timebar {
|
|
265
|
-
position: fixed;
|
|
266
|
-
bottom: 0;
|
|
267
|
-
left: 0;
|
|
268
|
-
right: 0;
|
|
269
|
-
height: 32px;
|
|
270
|
-
background: rgba(0, 0, 0, 0.6);
|
|
271
|
-
backdrop-filter: blur(6px);
|
|
272
|
-
z-index: 10;
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
/* -------------------------------
|
|
277
|
-
Image + Bullets (Side by Side)
|
|
278
|
-
------------------------------- */
|
|
279
|
-
|
|
280
|
-
.slide.imageRightBulletsLeft,
|
|
281
|
-
.slide.imageLeftBulletsRight {
|
|
282
|
-
display: flex;
|
|
283
|
-
flex-direction: row;
|
|
284
|
-
align-items: center;
|
|
285
|
-
gap: 64px;
|
|
286
|
-
text-align: left;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
/* image on right */
|
|
290
|
-
.slide.imageRightBulletsLeft img {
|
|
291
|
-
order: 2;
|
|
292
|
-
}
|
|
293
|
-
/* -------------------------------
|
|
294
|
-
Table Slide
|
|
295
|
-
------------------------------- */
|
|
296
|
-
|
|
297
|
-
.slide.table {
|
|
298
|
-
display: flex;
|
|
299
|
-
justify-content: center;
|
|
300
|
-
align-items: center;
|
|
301
|
-
|
|
302
|
-
width: 100%;
|
|
303
|
-
height: 100vh;
|
|
304
|
-
|
|
305
|
-
padding: 64px 80px;
|
|
306
|
-
box-sizing: border-box;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
/* actual table */
|
|
310
|
-
.slide.table table {
|
|
311
|
-
border-collapse: collapse;
|
|
312
|
-
width: 100%;
|
|
313
|
-
max-width: 1200px;
|
|
314
|
-
|
|
315
|
-
font-size: 2.8rem;
|
|
316
|
-
line-height: 1.4;
|
|
317
|
-
text-align: center;
|
|
318
|
-
|
|
319
|
-
color: var(--primaryColor, #e6e9ff);
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
/* header cells (title row) */
|
|
323
|
-
.slide.table thead th {
|
|
324
|
-
font-weight: 700; /* title row bold */
|
|
325
|
-
padding: 20px 24px;
|
|
326
|
-
|
|
327
|
-
border: 2px solid rgba(255, 255, 255, 0.35);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
/* body cells */
|
|
331
|
-
.slide.table tbody td {
|
|
332
|
-
padding: 20px 24px;
|
|
333
|
-
|
|
334
|
-
border: 2px solid rgba(255, 255, 255, 0.25);
|
|
335
|
-
}
|
|
336
|
-
/* hide empty table header row */
|
|
337
|
-
.slide.table thead th:empty {
|
|
338
|
-
display: none;
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
.slide.table thead tr:has(th:empty) {
|
|
342
|
-
display: none;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
/* =====================================================
|
|
347
|
-
EQ — Final visual behavior
|
|
348
|
-
===================================================== */
|
|
349
|
-
|
|
350
|
-
/* EQ should grow from TOP, not vertical center */
|
|
351
|
-
.slide.eq.imageRightBulletsLeft {
|
|
352
|
-
align-items: flex-start;
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
/* ---------- EQ: equation lines as table rows ---------- */
|
|
356
|
-
|
|
357
|
-
.slide.eq.imageRightBulletsLeft .eq-lines {
|
|
358
|
-
flex: 1;
|
|
359
|
-
list-style: none; /* remove bullet visuals */
|
|
360
|
-
padding: 0;
|
|
361
|
-
margin: 0;
|
|
362
|
-
|
|
363
|
-
display: flex;
|
|
364
|
-
flex-direction: column;
|
|
365
|
-
gap: 0;
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
.slide.eq.imageRightBulletsLeft .eq-lines li {
|
|
369
|
-
padding: 14px 18px;
|
|
370
|
-
font-size: 2.6rem;
|
|
371
|
-
line-height: 1.45;
|
|
372
|
-
|
|
373
|
-
border-bottom: 1px solid rgba(255, 255, 255, 0.18);
|
|
374
|
-
background: rgba(255, 255, 255, 0.03);
|
|
375
|
-
|
|
376
|
-
transition: background 0.25s ease, color 0.25s ease;
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
/* selected (latest) line */
|
|
380
|
-
.slide.eq.imageRightBulletsLeft .eq-lines li:last-child {
|
|
381
|
-
background: rgba(245, 197, 66, 0.18); /* soft yellow */
|
|
382
|
-
color: #ffd7a3; /* warm / reddish */
|
|
383
|
-
font-weight: 600;
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
/* ---------- RIGHT: fixed explanation panel ---------- */
|
|
387
|
-
|
|
388
|
-
.slide.eq.imageRightBulletsLeft .eq-side-panel {
|
|
389
|
-
flex: 1;
|
|
390
|
-
height: 75vh; /* FIXED height → no shaking */
|
|
391
|
-
overflow: hidden; /* contain layout */
|
|
392
|
-
|
|
393
|
-
padding: 28px 32px;
|
|
394
|
-
|
|
395
|
-
background: rgba(0, 0, 0, 0.35);
|
|
396
|
-
border: 1px solid rgba(255, 255, 255, 0.18);
|
|
397
|
-
border-radius: 16px;
|
|
398
|
-
|
|
399
|
-
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.45);
|
|
400
|
-
|
|
401
|
-
display: flex;
|
|
402
|
-
flex-direction: column;
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
/* ---------- Side panel items ---------- */
|
|
406
|
-
|
|
407
|
-
.slide.eq.imageRightBulletsLeft .eq-explain-item {
|
|
408
|
-
font-size: 1.6rem;
|
|
409
|
-
line-height: 1.75;
|
|
410
|
-
text-align:justify;
|
|
411
|
-
|
|
412
|
-
word-wrap: break-word;
|
|
413
|
-
overflow-wrap: break-word;
|
|
414
|
-
|
|
415
|
-
background: rgba(255, 255, 255, 0.06);
|
|
416
|
-
padding: 14px 18px;
|
|
417
|
-
border-radius: 12px;
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
/* ---------- Side panel image ---------- */
|
|
423
|
-
|
|
424
|
-
.slide.eq.imageRightBulletsLeft .eq-explain-image img {
|
|
425
|
-
width: 70%;
|
|
426
|
-
margin: 0 auto; /* center image */
|
|
427
|
-
display: block;
|
|
428
|
-
|
|
429
|
-
border-radius: 12px;
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
/* =====================================================
|
|
433
|
-
Bar Chart Slide
|
|
434
|
-
===================================================== */
|
|
435
|
-
|
|
436
|
-
.slide.barChart {
|
|
437
|
-
justify-content: center;
|
|
438
|
-
align-items: center;
|
|
439
|
-
text-align: left;
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
.slide.barChart .bar-chart {
|
|
443
|
-
width: 100%;
|
|
444
|
-
max-width: 900px;
|
|
445
|
-
|
|
446
|
-
display: flex;
|
|
447
|
-
flex-direction: column;
|
|
448
|
-
gap: 22px;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
/* one bar row */
|
|
452
|
-
.slide.barChart .bar-row {
|
|
453
|
-
display: flex;
|
|
454
|
-
align-items: center;
|
|
455
|
-
gap: 20px;
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
/* label on the left */
|
|
459
|
-
.slide.barChart .bar-label {
|
|
460
|
-
width: 220px;
|
|
461
|
-
font-size: 2.2rem;
|
|
462
|
-
opacity: 0.9;
|
|
463
|
-
flex-shrink: 0;
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
/* bar background */
|
|
467
|
-
.slide.barChart .bar-track {
|
|
468
|
-
flex: 1;
|
|
469
|
-
height: 26px;
|
|
470
|
-
|
|
471
|
-
background: rgba(255, 255, 255, 0.15);
|
|
472
|
-
border-radius: 13px;
|
|
473
|
-
overflow: hidden;
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
/* actual bar */
|
|
477
|
-
.slide.barChart .bar-fill {
|
|
478
|
-
height: 100%;
|
|
479
|
-
width: 0;
|
|
480
|
-
|
|
481
|
-
background: #ff9900;
|
|
482
|
-
border-radius: 13px;
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
/* numeric value on right */
|
|
486
|
-
.slide.barChart .bar-value {
|
|
487
|
-
width: 48px;
|
|
488
|
-
text-align: right;
|
|
489
|
-
font-size: 2rem;
|
|
490
|
-
opacity: 0.85;
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
/* -------------------------------
|
|
495
|
-
Progress Bar Slide
|
|
496
|
-
------------------------------- */
|
|
497
|
-
|
|
498
|
-
.slide.progressbar {
|
|
499
|
-
justify-content: center;
|
|
500
|
-
align-items: center;
|
|
501
|
-
text-align: left;
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
.slide.progressbar .progressbar-item {
|
|
505
|
-
width: 100%;
|
|
506
|
-
max-width: 900px;
|
|
507
|
-
|
|
508
|
-
display: flex;
|
|
509
|
-
flex-direction: column;
|
|
510
|
-
gap: 14px;
|
|
511
|
-
|
|
512
|
-
margin-bottom: 28px;
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
.slide.progressbar .progressbar-label {
|
|
516
|
-
font-size: 2.4rem;
|
|
517
|
-
font-weight: 600;
|
|
518
|
-
opacity: 0.9;
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
.slide.progressbar .progressbar-track {
|
|
522
|
-
width: 100%;
|
|
523
|
-
height: 28px;
|
|
524
|
-
|
|
525
|
-
background: rgba(255, 255, 255, 0.18);
|
|
526
|
-
border-radius: 14px;
|
|
527
|
-
overflow: hidden;
|
|
528
|
-
}
|
|
529
|
-
|
|
530
|
-
.slide.progressbar .progressbar-fill {
|
|
531
|
-
height: 100%;
|
|
532
|
-
width: 0;
|
|
533
|
-
|
|
534
|
-
background: #ff9900;
|
|
535
|
-
border-radius: 14px;
|
|
536
|
-
|
|
537
|
-
transition: width 0.6s ease;
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
/* -------------------------------
|
|
541
|
-
Key Ideas Slide (Corner Words / 4 Quadrants)
|
|
542
|
-
------------------------------- */
|
|
543
|
-
|
|
544
|
-
.slide.keyIdeasSlide {
|
|
545
|
-
position: relative;
|
|
546
|
-
width: 100%;
|
|
547
|
-
height: 100vh;
|
|
548
|
-
padding: 0;
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
/* base idea block */
|
|
552
|
-
.slide.keyIdeasSlide .key-idea {
|
|
553
|
-
position: absolute;
|
|
554
|
-
width: 45%;
|
|
555
|
-
height: 45%;
|
|
556
|
-
|
|
557
|
-
display: flex;
|
|
558
|
-
flex-direction: column;
|
|
559
|
-
justify-content: center;
|
|
560
|
-
align-items: center;
|
|
561
|
-
gap: 16px;
|
|
562
|
-
|
|
563
|
-
font-size: 4.2rem;
|
|
564
|
-
font-weight: 700;
|
|
565
|
-
letter-spacing: 0.02em;
|
|
566
|
-
text-align: center;
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
/* icon */
|
|
570
|
-
.slide.keyIdeasSlide .key-idea .icon {
|
|
571
|
-
font-size: 5.2rem;
|
|
572
|
-
line-height: 1;
|
|
573
|
-
}
|
|
574
|
-
|
|
575
|
-
/* label */
|
|
576
|
-
.slide.keyIdeasSlide .key-idea .label {
|
|
577
|
-
font-size: 3.6rem;
|
|
578
|
-
font-weight: 600;
|
|
579
|
-
}
|
|
580
|
-
|
|
581
|
-
/* quadrants */
|
|
582
|
-
.slide.keyIdeasSlide .key-idea:nth-child(1) {
|
|
583
|
-
top: 0;
|
|
584
|
-
left: 0;
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
.slide.keyIdeasSlide .key-idea:nth-child(2) {
|
|
588
|
-
top: 0;
|
|
589
|
-
right: 0;
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
.slide.keyIdeasSlide .key-idea:nth-child(3) {
|
|
593
|
-
bottom: 0;
|
|
594
|
-
left: 0;
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
.slide.keyIdeasSlide .key-idea:nth-child(4) {
|
|
598
|
-
bottom: 0;
|
|
599
|
-
right: 0;
|
|
600
|
-
}
|
|
601
|
-
|
|
1
|
+
.slide{width:100%;height:100vh;box-sizing:border-box;padding:4rem 6rem;display:flex;flex-direction:column;justify-content:center;font-family:system-ui,-apple-system,sans-serif;align-items:center;background:var(--backgroundColor, #ffffff);color:var(--primaryColor, #111111)}.slide img{max-width:100%;max-height:100%;height:auto;width:auto;display:block}.slide h1,.slide h2,.slide h3,.slide p{margin:0}.slide ul{margin:0;padding-left:1.2em}.slide li{margin:0}.katex{font-size:1.4em}body{margin:0;font-family:system-ui,sans-serif}#app{height:100vh;box-sizing:border-box}.nav-test{position:fixed;left:0;right:0;bottom:0;height:90px;transition:opacity .5s ease;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);background:#bbbbbcd9;border-top:1px solid rgba(0,0,0,.1);display:flex;align-items:center;gap:1rem;padding:0 1rem;z-index:999999}.nav-test span{font-weight:700;min-width:80px}input[type=range]{flex:1}.slide.titleAndSubtitle{align-items:center;text-align:center;gap:32px}.slide.titleAndSubtitle h1{font-size:5.8rem;font-weight:700;line-height:1.2;letter-spacing:-.015em;margin:0}.slide.titleAndSubtitle h2{font-size:2.3rem;font-weight:400;opacity:.8;margin:0}.slide.titleAndPara{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;padding-top:3rem;gap:1rem;text-align:center}.slide.titleAndPara h1{font-size:3rem;font-weight:700;line-height:1.2;max-width:1100px;margin:0 auto}.slide.titleAndPara p{font-size:2.2rem;line-height:1.7;max-width:1000px;margin:0 auto}@media(min-width:1024px){.slide.titleAndPara{padding-top:5rem;gap:2rem}.slide.titleAndPara h1{font-size:2.8rem;max-width:900px}.slide.titleAndPara p{font-size:1.6rem;max-width:750px;line-height:1.6}}@media(orientation:landscape){.slide.titleAndPara p{font-size:1.5rem;max-width:1100px;line-height:1.5}}@media(orientation:portrait){.slide.titleAndPara p{font-size:2.75rem;max-width:1100px;line-height:2.2;text-align:justify}}@media(min-width:1600px){.slide.titleAndPara{padding-top:6rem;gap:3rem}.slide.titleAndPara h1{font-size:4rem;max-width:1200px}.slide.titleAndPara p{font-size:2.4rem;max-width:1100px;line-height:1.8}}.slide.bulletList{align-items:center;text-align:left}.slide.bulletList ul{list-style:disc;padding-left:2rem;margin:0;max-width:900px}.slide.bulletList li{font-size:2.2rem;font-weight:500;line-height:2;margin-bottom:1rem}@media(orientation:portrait){.slide.bulletList li{line-height:3}}@media(min-width:1024px)and (max-width:1440px){.slide.bulletList ul{max-width:750px}.slide.bulletList li{font-size:3rem;line-height:1.8;margin-bottom:.8rem}}@media(min-width:1600px){.slide.bulletList ul{max-width:1100px}.slide.bulletList li{font-size:3rem;line-height:2.2}}.slide.twoColumnText{display:flex;flex-direction:row;font-size:2rem;line-height:1.7;justify-content:center;align-items:stretch;gap:4rem;text-align:center}.slide.twoColumnText>div{flex:1;max-width:600px;padding:2.5rem;border:1px solid white;border-radius:12px;box-shadow:0 12px 30px #00000014}@media(orientation:portrait){.slide.twoColumnText{flex-direction:column;font-size:3rem;line-height:2;gap:2rem}.slide.twoColumnText>div{max-width:100%}}@media(orientation:landscape){.slide.twoColumnText{font-size:1.5rem}.slide.twoColumnText>div{max-width:100%}}@media(min-width:1600px){.slide.twoColumnText{font-size:3rem;line-height:1.9;gap:3rem}.slide.twoColumnText>div{max-width:800px;padding:3rem}}.slide.imageSlide{padding:0;align-items:center;justify-content:center}.slide.imageSlide img{max-width:90%;max-height:90%;object-fit:contain}.slide.imageWithTitle{align-items:center;text-align:center;gap:2.5rem}.slide.imageWithTitle h1{font-size:2.5rem;font-weight:600;line-height:1.2;margin:0}.slide.imageWithTitle img{max-width:85%;max-height:70%;object-fit:contain}@media(orientation:portrait){.slide.imageWithTitle h1{font-size:3.2rem}.slide.imageWithTitle img{max-width:95%;max-height:65%}}.slide.imageWithCaption{margin:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:2.5rem}.slide.imageWithCaption img{max-width:85%;max-height:65%;object-fit:contain;display:block}.slide.imageWithCaption figcaption{font-size:2.4rem;line-height:1.6;max-width:800px;margin:0;opacity:.85}@media(orientation:portrait){.slide.imageWithCaption img{max-width:95%;max-height:60%}.slide.imageWithCaption figcaption{font-size:2.8rem}}.slide.imageLeftBulletsRight{flex-direction:row;align-items:center;justify-content:center;gap:4rem;text-align:left}.slide.imageLeftBulletsRight img{max-width:45%;max-height:75%;object-fit:contain}.slide.imageLeftBulletsRight ul{max-width:45%;margin:0;padding-left:2rem}.slide.imageLeftBulletsRight li{font-size:2rem;line-height:1.5;margin-bottom:1rem}@media(orientation:portrait){.slide.imageLeftBulletsRight{flex-direction:column;text-align:left}.slide.imageLeftBulletsRight img{max-width:85%}.slide.imageLeftBulletsRight ul{max-width:100%;padding-left:0;list-style-position:inside}}.slide.imageRightBulletsLeft{flex-direction:row;align-items:center;justify-content:center;gap:4rem;text-align:left}.slide.imageRightBulletsLeft img{order:2;max-width:45%;max-height:75%;object-fit:contain}.slide.imageRightBulletsLeft ul{order:1;max-width:45%;margin:0;padding-left:2rem}.slide.imageRightBulletsLeft li{font-size:2rem;line-height:1.5;margin-bottom:1rem}@media(orientation:portrait){.slide.imageRightBulletsLeft{flex-direction:column;text-align:left}.slide.imageRightBulletsLeft ul{order:1;max-width:100%;padding-left:0;list-style-position:inside}.slide.imageRightBulletsLeft img{order:2;max-width:85%}}.slide.table{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:4rem 2rem}.slide.table table{border-collapse:collapse;width:100%;max-width:1100px;table-layout:fixed}.slide.table td{padding:1rem;font-size:2.4rem;border:2px solid var(--primaryColor);word-break:break-word;text-align:center}@media(orientation:portrait){.slide.table td{font-size:1.8rem;padding:1rem 1.2rem}}.slide.barChart{align-items:center;justify-content:center;text-align:left}.slide.barChart .bar-chart{width:100%;max-width:900px;display:flex;flex-direction:column;gap:2.4rem}.slide.barChart .bar-row{display:flex;align-items:center;gap:2rem}.slide.barChart .bar-label{width:220px;flex-shrink:0;font-size:2.4rem;opacity:.9}.slide.barChart .bar-track{flex:1;height:28px;background:#00000014;border-radius:14px;overflow:hidden}.slide.barChart .bar-fill{height:100%;width:0;background:#f5c542;border-radius:14px;transition:width .6s ease}.slide.barChart .bar-value{width:60px;text-align:right;font-size:2.2rem;opacity:.85}@media(orientation:portrait){.slide.barChart .bar-label{width:140px;font-size:2rem}.slide.barChart .bar-value{width:48px;font-size:1.8rem}.slide.barChart .bar-track{height:22px}}.slide.progressbar{align-items:center;justify-content:center;text-align:center;gap:3rem}.slide.progressbar .progressbar-item{width:90%;max-width:900px}.slide.progressbar .progressbar-label{font-size:2.6rem;font-weight:500;margin-bottom:1.4rem}.slide.progressbar .progressbar-track{position:relative;height:46px;border-radius:999px;background:#00000040;box-shadow:inset 0 4px 8px #00000026}.slide.progressbar .progressbar-fill{height:100%;width:0;border-radius:999px;background:#f5c542;transition:width .6s ease;display:flex;align-items:center;padding-left:1.8rem;font-size:2.2rem;font-weight:600;color:#222}.slide.progressbar .progressbar-fill:before{content:attr(data-value) "%"}.slide.progressbar .progressbar-track:after{content:"100%";position:absolute;right:-75px;top:50%;transform:translateY(-50%);font-size:2.2rem;font-weight:500;opacity:.75}.slide.quoteSlide{margin:0;width:100%;align-items:center;justify-content:center;text-align:center;padding:6rem 10rem}.slide.quoteSlide p{font-size:4.2rem;line-height:1.4;font-weight:400;max-width:1100px;margin:0 auto;position:relative}.slide.quoteSlide p:before,.slide.quoteSlide p:after{font-size:6rem;opacity:.15;position:absolute}.slide.quoteSlide p:before{content:"\201c";left:-4rem;top:-2rem}.slide.quoteSlide p:after{content:"\201d";right:-4rem;bottom:-2rem}.slide.quoteSlide footer{margin-top:3rem;font-size:2.4rem;font-weight:500;opacity:.75}.slide.keyIdeasSlide{padding:2rem 6rem;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;align-content:center;justify-items:center;gap:4rem;text-align:center}.slide.keyIdeasSlide .key-idea{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.5rem}.slide.keyIdeasSlide .icon{font-size:8rem;line-height:1}.slide.keyIdeasSlide .label{font-size:3.6rem;font-weight:700;letter-spacing:.05em}@media(orientation:landscape)and (max-height:500px){.slide.keyIdeasSlide{padding:1.5rem 4rem;gap:3rem}.slide.keyIdeasSlide .icon{font-size:5rem}.slide.keyIdeasSlide .label{font-size:2.2rem}.slide.keyIdeasSlide .key-idea{gap:1.5rem}}.slide.fillImage{padding:0;display:flex}.slide.fillImage img{width:100%;height:100%;object-fit:cover}.slide.eq{display:flex;color:gray;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:1rem;padding-left:3rem;padding-right:3rem;overflow:hidden}.slide.eq .eq-lines{flex:0 0 45%;min-width:0;overflow:hidden;list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.slide.eq .eq-lines li{padding:4px 6px;font-size:1.25rem;line-height:1.3;border-bottom:1px solid rgba(255,255,255,.18);background:#ffffff08;overflow-x:auto;overflow-y:hidden;max-width:100%}.highlighted{background:#967c342e;color:#fff;font-weight:600;border:2px solid gold;border-radius:10px}.slide.eq .eq-side-panel{flex:0 0 55%;min-width:0;overflow:hidden;padding:6px;background:#00000059;border:1px solid rgba(255,255,255,.18);border-radius:16px;display:flex;flex-direction:column;gap:4px}.slide.eq .eq-explain-item{font-size:1.25rem;line-height:1.5;text-align:justify;background:#ffffff0f;padding:14px 18px;border-radius:12px;overflow-wrap:break-word}.slide.eq .eq-explain-image img{width:70%;margin:0 auto;display:block;border-radius:12px}@media(min-width:1024px){.slide.eq{gap:1.5rem}.slide.eq .eq-lines li{font-size:1.5rem}.slide.eq .eq-explain-item{font-size:1.2rem}}@media(min-width:1600px){.slide.eq{gap:2rem;padding-left:4rem;padding-right:4rem}.slide.eq .eq-lines,.slide.eq .eq-side-panel{flex:0 0 50%}.slide.eq .eq-lines li{font-size:2.25rem}.slide.eq .eq-explain-item{font-size:2.25rem;line-height:1.5em}}
|
package/dist/spec/index.js
CHANGED
|
@@ -206,7 +206,6 @@ var goldenDeckV1 = {
|
|
|
206
206
|
|
|
207
207
|
// src/spec/slideTypesV1.js
|
|
208
208
|
var SLIDE_TYPES_V1 = [
|
|
209
|
-
"titleSlide",
|
|
210
209
|
"titleAndSubtitle",
|
|
211
210
|
"titleAndPara",
|
|
212
211
|
"bulletList",
|
|
@@ -217,14 +216,10 @@ var SLIDE_TYPES_V1 = [
|
|
|
217
216
|
"imageLeftBulletsRight",
|
|
218
217
|
"imageRightBulletsLeft",
|
|
219
218
|
"table",
|
|
220
|
-
"statistic",
|
|
221
|
-
"donutChart",
|
|
222
|
-
"bigNumber",
|
|
223
219
|
"barChart",
|
|
220
|
+
"progressbar",
|
|
224
221
|
"quoteSlide",
|
|
225
|
-
"
|
|
226
|
-
"cornerWordsSlide",
|
|
227
|
-
"contactSlide",
|
|
222
|
+
"keyIdeasSlide",
|
|
228
223
|
"fillImage",
|
|
229
224
|
"eq"
|
|
230
225
|
];
|
|
@@ -157,8 +157,8 @@ var ImageWithTitleSlide = {
|
|
|
157
157
|
render() {
|
|
158
158
|
return `
|
|
159
159
|
<section class="slide imageWithTitle">
|
|
160
|
-
<img src="${src}" alt="" />
|
|
161
160
|
<h1>${title}</h1>
|
|
161
|
+
<img src="${src}" alt="" />
|
|
162
162
|
</section>
|
|
163
163
|
`;
|
|
164
164
|
}
|
|
@@ -262,13 +262,15 @@ var TableSlide = {
|
|
|
262
262
|
type: "table",
|
|
263
263
|
render() {
|
|
264
264
|
return `
|
|
265
|
-
|
|
265
|
+
<section class="slide table">
|
|
266
|
+
<table>
|
|
266
267
|
<tbody>
|
|
267
268
|
${rows.map(
|
|
268
269
|
(row) => `<tr>${row.map((cell) => `<td>${cell}</td>`).join("")}</tr>`
|
|
269
270
|
).join("")}
|
|
270
271
|
</tbody>
|
|
271
272
|
</table>
|
|
273
|
+
</section>
|
|
272
274
|
`;
|
|
273
275
|
}
|
|
274
276
|
});
|
|
@@ -339,7 +341,12 @@ var Progressbar = {
|
|
|
339
341
|
<div class="progressbar-item">
|
|
340
342
|
<div class="progressbar-label">${b.label}</div>
|
|
341
343
|
<div class="progressbar-track">
|
|
342
|
-
<div
|
|
344
|
+
<div
|
|
345
|
+
class="progressbar-fill"
|
|
346
|
+
style="width:${b.value}%"
|
|
347
|
+
data-value="${b.value}"
|
|
348
|
+
></div>
|
|
349
|
+
|
|
343
350
|
</div>
|
|
344
351
|
</div>
|
|
345
352
|
`;
|
|
@@ -411,25 +418,32 @@ var EqSlide = {
|
|
|
411
418
|
type: "eq",
|
|
412
419
|
fromJSON(raw) {
|
|
413
420
|
const lines = raw.data ?? [];
|
|
421
|
+
const maxVisible = 3;
|
|
414
422
|
return Object.freeze({
|
|
415
423
|
type: "eq",
|
|
416
424
|
lines,
|
|
417
|
-
render({
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
425
|
+
render({ activeIndex = -1 } = {}) {
|
|
426
|
+
let start = 0;
|
|
427
|
+
if (activeIndex >= maxVisible) {
|
|
428
|
+
start = activeIndex - (maxVisible - 1);
|
|
429
|
+
}
|
|
430
|
+
const visibleLines = lines.slice(start);
|
|
431
|
+
const activeLine = activeIndex >= 0 && activeIndex < lines.length ? lines[activeIndex] : null;
|
|
421
432
|
const spItems = activeLine?.spItems ?? [];
|
|
422
433
|
return `
|
|
423
|
-
<section class="slide eq
|
|
434
|
+
<section class="slide eq">
|
|
424
435
|
|
|
425
|
-
<!-- LEFT: lines (pure bullet behavior) -->
|
|
426
436
|
<ul class="eq-lines">
|
|
427
|
-
${visibleLines.map(
|
|
428
|
-
|
|
429
|
-
|
|
437
|
+
${visibleLines.map((line, index) => {
|
|
438
|
+
const realIndex = start + index;
|
|
439
|
+
return `
|
|
440
|
+
<li class="eq-line ${realIndex === activeIndex ? "highlighted" : ""}">
|
|
441
|
+
${line.content}
|
|
442
|
+
</li>
|
|
443
|
+
`;
|
|
444
|
+
}).join("")}
|
|
430
445
|
</ul>
|
|
431
446
|
|
|
432
|
-
<!-- RIGHT: explanation panel -->
|
|
433
447
|
<div class="eq-side-panel">
|
|
434
448
|
${spItems.map((item) => {
|
|
435
449
|
if (item.type === "spImage") {
|
|
@@ -188,8 +188,8 @@ var TaleemPlayer = (() => {
|
|
|
188
188
|
render() {
|
|
189
189
|
return `
|
|
190
190
|
<section class="slide imageWithTitle">
|
|
191
|
-
<img src="${src}" alt="" />
|
|
192
191
|
<h1>${title}</h1>
|
|
192
|
+
<img src="${src}" alt="" />
|
|
193
193
|
</section>
|
|
194
194
|
`;
|
|
195
195
|
}
|
|
@@ -293,13 +293,15 @@ var TaleemPlayer = (() => {
|
|
|
293
293
|
type: "table",
|
|
294
294
|
render() {
|
|
295
295
|
return `
|
|
296
|
-
|
|
296
|
+
<section class="slide table">
|
|
297
|
+
<table>
|
|
297
298
|
<tbody>
|
|
298
299
|
${rows.map(
|
|
299
300
|
(row) => `<tr>${row.map((cell) => `<td>${cell}</td>`).join("")}</tr>`
|
|
300
301
|
).join("")}
|
|
301
302
|
</tbody>
|
|
302
303
|
</table>
|
|
304
|
+
</section>
|
|
303
305
|
`;
|
|
304
306
|
}
|
|
305
307
|
});
|
|
@@ -370,7 +372,12 @@ var TaleemPlayer = (() => {
|
|
|
370
372
|
<div class="progressbar-item">
|
|
371
373
|
<div class="progressbar-label">${b.label}</div>
|
|
372
374
|
<div class="progressbar-track">
|
|
373
|
-
<div
|
|
375
|
+
<div
|
|
376
|
+
class="progressbar-fill"
|
|
377
|
+
style="width:${b.value}%"
|
|
378
|
+
data-value="${b.value}"
|
|
379
|
+
></div>
|
|
380
|
+
|
|
374
381
|
</div>
|
|
375
382
|
</div>
|
|
376
383
|
`;
|
|
@@ -442,25 +449,32 @@ var TaleemPlayer = (() => {
|
|
|
442
449
|
type: "eq",
|
|
443
450
|
fromJSON(raw) {
|
|
444
451
|
const lines = raw.data ?? [];
|
|
452
|
+
const maxVisible = 3;
|
|
445
453
|
return Object.freeze({
|
|
446
454
|
type: "eq",
|
|
447
455
|
lines,
|
|
448
|
-
render({
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
456
|
+
render({ activeIndex = -1 } = {}) {
|
|
457
|
+
let start = 0;
|
|
458
|
+
if (activeIndex >= maxVisible) {
|
|
459
|
+
start = activeIndex - (maxVisible - 1);
|
|
460
|
+
}
|
|
461
|
+
const visibleLines = lines.slice(start);
|
|
462
|
+
const activeLine = activeIndex >= 0 && activeIndex < lines.length ? lines[activeIndex] : null;
|
|
452
463
|
const spItems = activeLine?.spItems ?? [];
|
|
453
464
|
return `
|
|
454
|
-
<section class="slide eq
|
|
465
|
+
<section class="slide eq">
|
|
455
466
|
|
|
456
|
-
<!-- LEFT: lines (pure bullet behavior) -->
|
|
457
467
|
<ul class="eq-lines">
|
|
458
|
-
${visibleLines.map(
|
|
459
|
-
|
|
460
|
-
|
|
468
|
+
${visibleLines.map((line, index) => {
|
|
469
|
+
const realIndex = start + index;
|
|
470
|
+
return `
|
|
471
|
+
<li class="eq-line ${realIndex === activeIndex ? "highlighted" : ""}">
|
|
472
|
+
${line.content}
|
|
473
|
+
</li>
|
|
474
|
+
`;
|
|
475
|
+
}).join("")}
|
|
461
476
|
</ul>
|
|
462
477
|
|
|
463
|
-
<!-- RIGHT: explanation panel -->
|
|
464
478
|
<div class="eq-side-panel">
|
|
465
479
|
${spItems.map((item) => {
|
|
466
480
|
if (item.type === "spImage") {
|