@editframe/create 0.6.0-beta.19 → 0.6.0-beta.21

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 (56) hide show
  1. package/dist/index.cjs +41 -0
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.js +39 -0
  4. package/dist/templates/card-poetry/index.html +120 -0
  5. package/dist/templates/card-poetry/package.json +21 -0
  6. package/dist/templates/card-poetry/postcss.config.cjs +5 -0
  7. package/dist/templates/card-poetry/src/assets/.gitkeep +0 -0
  8. package/dist/templates/card-poetry/src/assets/cards/card-9-spades.json +362 -0
  9. package/dist/templates/card-poetry/src/assets/cards/card-9-spades.mp3 +0 -0
  10. package/dist/templates/card-poetry/src/assets/cards/card-9-spades.png +0 -0
  11. package/dist/templates/card-poetry/src/assets/cards/card-joker.json +326 -0
  12. package/dist/templates/card-poetry/src/assets/cards/card-joker.mp3 +0 -0
  13. package/dist/templates/card-poetry/src/assets/cards/card-joker.png +0 -0
  14. package/dist/templates/card-poetry/src/assets/cards/card-king-clubs.json +344 -0
  15. package/dist/templates/card-poetry/src/assets/cards/card-king-clubs.mp3 +0 -0
  16. package/dist/templates/card-poetry/src/assets/cards/card-king-clubs.png +0 -0
  17. package/dist/templates/card-poetry/src/assets/cards/card-queen-spades.json +338 -0
  18. package/dist/templates/card-poetry/src/assets/cards/card-queen-spades.mp3 +0 -0
  19. package/dist/templates/card-poetry/src/assets/cards/card-queen-spades.png +0 -0
  20. package/dist/templates/card-poetry/src/index.js +2 -0
  21. package/dist/templates/card-poetry/src/keyframes.css +163 -0
  22. package/dist/templates/card-poetry/src/styles.css +30 -0
  23. package/dist/templates/card-poetry/tailwind.config.js +8 -0
  24. package/dist/templates/card-poetry/vite.config.ts +14 -0
  25. package/dist/templates/react-demo/index.html +13 -0
  26. package/dist/templates/react-demo/package.json +28 -0
  27. package/dist/templates/react-demo/postcss.config.cjs +5 -0
  28. package/dist/templates/react-demo/src/Video.tsx +62 -0
  29. package/dist/templates/react-demo/src/assets/.gitkeep +0 -0
  30. package/dist/templates/react-demo/src/assets/cards/card-9-spades.json +362 -0
  31. package/dist/templates/react-demo/src/assets/cards/card-9-spades.mp3 +0 -0
  32. package/dist/templates/react-demo/src/assets/cards/card-9-spades.png +0 -0
  33. package/dist/templates/react-demo/src/assets/cards/card-joker.json +326 -0
  34. package/dist/templates/react-demo/src/assets/cards/card-joker.mp3 +0 -0
  35. package/dist/templates/react-demo/src/assets/cards/card-joker.png +0 -0
  36. package/dist/templates/react-demo/src/assets/cards/card-king-clubs.json +344 -0
  37. package/dist/templates/react-demo/src/assets/cards/card-king-clubs.mp3 +0 -0
  38. package/dist/templates/react-demo/src/assets/cards/card-king-clubs.png +0 -0
  39. package/dist/templates/react-demo/src/assets/cards/card-queen-spades.json +338 -0
  40. package/dist/templates/react-demo/src/assets/cards/card-queen-spades.mp3 +0 -0
  41. package/dist/templates/react-demo/src/assets/cards/card-queen-spades.png +0 -0
  42. package/dist/templates/react-demo/src/main.tsx +10 -0
  43. package/dist/templates/react-demo/src/styles.css +3 -0
  44. package/dist/templates/react-demo/tailwind.config.js +8 -0
  45. package/dist/templates/react-demo/vite.config.ts +16 -0
  46. package/dist/templates/simple-demo/index.html +31 -0
  47. package/dist/templates/simple-demo/package.json +21 -0
  48. package/dist/templates/simple-demo/postcss.config.cjs +5 -0
  49. package/dist/templates/simple-demo/src/assets/.gitkeep +0 -0
  50. package/dist/templates/simple-demo/src/assets/bars-n-tone.mp4 +0 -0
  51. package/dist/templates/simple-demo/src/assets/editframe.png +0 -0
  52. package/dist/templates/simple-demo/src/index.js +2 -0
  53. package/dist/templates/simple-demo/src/styles.css +30 -0
  54. package/dist/templates/simple-demo/tailwind.config.js +8 -0
  55. package/dist/templates/simple-demo/vite.config.ts +14 -0
  56. package/package.json +1 -1
@@ -0,0 +1,338 @@
1
+ {
2
+ "text": " The Queen of Spades, a mysterious and formidable presence in the deck. Cloaked in the enigma of the Spade, she is the embodiment of intellect and intuition. The Queen of Spades, a strategist in her own right, weaves a tapestry of complexity and depth, challenging all who cross her path.",
3
+ "segments": [
4
+ {
5
+ "start": 0.12,
6
+ "end": 3.74,
7
+ "text": " The Queen of Spades, a mysterious and formidable presence in the deck.",
8
+ "confidence": 0.94,
9
+ "words": [
10
+ {
11
+ "text": "The",
12
+ "start": 0.12,
13
+ "end": 0.24,
14
+ "confidence": 0.8
15
+ },
16
+ {
17
+ "text": "Queen",
18
+ "start": 0.24,
19
+ "end": 0.4,
20
+ "confidence": 0.86
21
+ },
22
+ {
23
+ "text": "of",
24
+ "start": 0.4,
25
+ "end": 0.56,
26
+ "confidence": 0.98
27
+ },
28
+ {
29
+ "text": "Spades,",
30
+ "start": 0.56,
31
+ "end": 1.02,
32
+ "confidence": 0.99
33
+ },
34
+ {
35
+ "text": "a",
36
+ "start": 1.2,
37
+ "end": 1.28,
38
+ "confidence": 0.87
39
+ },
40
+ {
41
+ "text": "mysterious",
42
+ "start": 1.28,
43
+ "end": 1.72,
44
+ "confidence": 0.98
45
+ },
46
+ {
47
+ "text": "and",
48
+ "start": 1.72,
49
+ "end": 2.16,
50
+ "confidence": 0.99
51
+ },
52
+ {
53
+ "text": "formidable",
54
+ "start": 2.16,
55
+ "end": 2.58,
56
+ "confidence": 0.99
57
+ },
58
+ {
59
+ "text": "presence",
60
+ "start": 2.58,
61
+ "end": 3.06,
62
+ "confidence": 0.99
63
+ },
64
+ {
65
+ "text": "in",
66
+ "start": 3.06,
67
+ "end": 3.36,
68
+ "confidence": 0.98
69
+ },
70
+ {
71
+ "text": "the",
72
+ "start": 3.36,
73
+ "end": 3.5,
74
+ "confidence": 0.99
75
+ },
76
+ {
77
+ "text": "deck.",
78
+ "start": 3.5,
79
+ "end": 3.74,
80
+ "confidence": 0.87
81
+ }
82
+ ]
83
+ },
84
+ {
85
+ "start": 4.88,
86
+ "end": 8.94,
87
+ "text": " Cloaked in the enigma of the Spade, she is the embodiment of intellect and intuition.",
88
+ "confidence": 0.94,
89
+ "words": [
90
+ {
91
+ "text": "Cloaked",
92
+ "start": 4.88,
93
+ "end": 5.16,
94
+ "confidence": 0.85
95
+ },
96
+ {
97
+ "text": "in",
98
+ "start": 5.16,
99
+ "end": 5.28,
100
+ "confidence": 1.0
101
+ },
102
+ {
103
+ "text": "the",
104
+ "start": 5.28,
105
+ "end": 5.38,
106
+ "confidence": 1.0
107
+ },
108
+ {
109
+ "text": "enigma",
110
+ "start": 5.38,
111
+ "end": 5.72,
112
+ "confidence": 0.93
113
+ },
114
+ {
115
+ "text": "of",
116
+ "start": 5.72,
117
+ "end": 5.92,
118
+ "confidence": 1.0
119
+ },
120
+ {
121
+ "text": "the",
122
+ "start": 5.92,
123
+ "end": 6.02,
124
+ "confidence": 0.95
125
+ },
126
+ {
127
+ "text": "Spade,",
128
+ "start": 6.02,
129
+ "end": 6.46,
130
+ "confidence": 0.76
131
+ },
132
+ {
133
+ "text": "she",
134
+ "start": 6.64,
135
+ "end": 6.76,
136
+ "confidence": 0.96
137
+ },
138
+ {
139
+ "text": "is",
140
+ "start": 6.76,
141
+ "end": 6.88,
142
+ "confidence": 1.0
143
+ },
144
+ {
145
+ "text": "the",
146
+ "start": 6.88,
147
+ "end": 7.02,
148
+ "confidence": 1.0
149
+ },
150
+ {
151
+ "text": "embodiment",
152
+ "start": 7.02,
153
+ "end": 7.52,
154
+ "confidence": 1.0
155
+ },
156
+ {
157
+ "text": "of",
158
+ "start": 7.52,
159
+ "end": 7.7,
160
+ "confidence": 0.99
161
+ },
162
+ {
163
+ "text": "intellect",
164
+ "start": 7.7,
165
+ "end": 8.14,
166
+ "confidence": 0.99
167
+ },
168
+ {
169
+ "text": "and",
170
+ "start": 8.14,
171
+ "end": 8.46,
172
+ "confidence": 0.98
173
+ },
174
+ {
175
+ "text": "intuition.",
176
+ "start": 8.46,
177
+ "end": 8.94,
178
+ "confidence": 0.99
179
+ }
180
+ ]
181
+ },
182
+ {
183
+ "start": 10.14,
184
+ "end": 15.28,
185
+ "text": " The Queen of Spades, a strategist in her own right, weaves a tapestry of complexity and depth,",
186
+ "confidence": 0.94,
187
+ "words": [
188
+ {
189
+ "text": "The",
190
+ "start": 10.14,
191
+ "end": 10.24,
192
+ "confidence": 1.0
193
+ },
194
+ {
195
+ "text": "Queen",
196
+ "start": 10.24,
197
+ "end": 10.44,
198
+ "confidence": 0.99
199
+ },
200
+ {
201
+ "text": "of",
202
+ "start": 10.44,
203
+ "end": 10.58,
204
+ "confidence": 1.0
205
+ },
206
+ {
207
+ "text": "Spades,",
208
+ "start": 10.58,
209
+ "end": 11.06,
210
+ "confidence": 1.0
211
+ },
212
+ {
213
+ "text": "a",
214
+ "start": 11.22,
215
+ "end": 11.3,
216
+ "confidence": 0.99
217
+ },
218
+ {
219
+ "text": "strategist",
220
+ "start": 11.3,
221
+ "end": 11.94,
222
+ "confidence": 1.0
223
+ },
224
+ {
225
+ "text": "in",
226
+ "start": 11.94,
227
+ "end": 12.12,
228
+ "confidence": 0.99
229
+ },
230
+ {
231
+ "text": "her",
232
+ "start": 12.12,
233
+ "end": 12.28,
234
+ "confidence": 1.0
235
+ },
236
+ {
237
+ "text": "own",
238
+ "start": 12.28,
239
+ "end": 12.46,
240
+ "confidence": 1.0
241
+ },
242
+ {
243
+ "text": "right,",
244
+ "start": 12.46,
245
+ "end": 12.78,
246
+ "confidence": 0.99
247
+ },
248
+ {
249
+ "text": "weaves",
250
+ "start": 13.1,
251
+ "end": 13.36,
252
+ "confidence": 0.67
253
+ },
254
+ {
255
+ "text": "a",
256
+ "start": 13.36,
257
+ "end": 13.48,
258
+ "confidence": 0.99
259
+ },
260
+ {
261
+ "text": "tapestry",
262
+ "start": 13.48,
263
+ "end": 13.94,
264
+ "confidence": 0.99
265
+ },
266
+ {
267
+ "text": "of",
268
+ "start": 13.94,
269
+ "end": 14.12,
270
+ "confidence": 0.98
271
+ },
272
+ {
273
+ "text": "complexity",
274
+ "start": 14.12,
275
+ "end": 14.64,
276
+ "confidence": 0.99
277
+ },
278
+ {
279
+ "text": "and",
280
+ "start": 14.64,
281
+ "end": 15.08,
282
+ "confidence": 0.8
283
+ },
284
+ {
285
+ "text": "depth,",
286
+ "start": 15.08,
287
+ "end": 15.28,
288
+ "confidence": 0.86
289
+ }
290
+ ]
291
+ },
292
+ {
293
+ "start": 15.28,
294
+ "end": 17.38,
295
+ "text": " challenging all who cross her path.",
296
+ "confidence": 1.0,
297
+ "words": [
298
+ {
299
+ "text": "challenging",
300
+ "start": 15.28,
301
+ "end": 16.1,
302
+ "confidence": 0.98
303
+ },
304
+ {
305
+ "text": "all",
306
+ "start": 16.1,
307
+ "end": 16.46,
308
+ "confidence": 1.0
309
+ },
310
+ {
311
+ "text": "who",
312
+ "start": 16.46,
313
+ "end": 16.64,
314
+ "confidence": 1.0
315
+ },
316
+ {
317
+ "text": "cross",
318
+ "start": 16.64,
319
+ "end": 16.88,
320
+ "confidence": 1.0
321
+ },
322
+ {
323
+ "text": "her",
324
+ "start": 16.88,
325
+ "end": 17.08,
326
+ "confidence": 1.0
327
+ },
328
+ {
329
+ "text": "path.",
330
+ "start": 17.08,
331
+ "end": 17.38,
332
+ "confidence": 1.0
333
+ }
334
+ ]
335
+ }
336
+ ],
337
+ "language": "en"
338
+ }
@@ -0,0 +1,2 @@
1
+ import "@editframe/elements";
2
+ import "@editframe/elements/styles.css";
@@ -0,0 +1,163 @@
1
+ @keyframes fadein {
2
+ 0% {
3
+ opacity: 0;
4
+ }
5
+ 50% {
6
+ opacity: 0.5;
7
+ }
8
+ 100% {
9
+ opacity: 1;
10
+ }
11
+ }
12
+ @keyframes fadeout {
13
+ from {
14
+ opacity: 1;
15
+ }
16
+ to {
17
+ opacity: 0;
18
+ }
19
+ }
20
+ @keyframes disco {
21
+ from {
22
+ filter: hue-rotate(0deg);
23
+ }
24
+ to {
25
+ filter: hue-rotate(360deg);
26
+ }
27
+ }
28
+ @keyframes slide-in-left {
29
+ from {
30
+ left: -100%;
31
+ }
32
+ to {
33
+ left: 0%;
34
+ }
35
+ }
36
+ @keyframes slide-in-right {
37
+ from {
38
+ transform: translateX(150%);
39
+ }
40
+ to {
41
+ transform: translateX(0%);
42
+ }
43
+ }
44
+ @keyframes slide-out-right {
45
+ from {
46
+ transform: translateX(0%);
47
+ }
48
+ to {
49
+ transform: translateX(150%);
50
+ }
51
+ }
52
+ @keyframes flip {
53
+ from {
54
+ transform: rotateY(0deg);
55
+ }
56
+ to {
57
+ transform: rotateY(180deg);
58
+ }
59
+ }
60
+
61
+ @keyframes rotate {
62
+ from {
63
+ transform: rotate(0deg);
64
+ }
65
+ to {
66
+ transform: rotate(360deg);
67
+ }
68
+ }
69
+
70
+ @keyframes bounce-in {
71
+ 0% {
72
+ transform: scale(0.8);
73
+ }
74
+ 80% {
75
+ transform: scale(1.3);
76
+ }
77
+ 100% {
78
+ transform: scale(1);
79
+ }
80
+ }
81
+
82
+ @keyframes zoom-in {
83
+ from {
84
+ transform: scale(0);
85
+ }
86
+ to {
87
+ transform: scale(1);
88
+ }
89
+ }
90
+
91
+ @keyframes slide-in-left {
92
+ from {
93
+ transform: translateX(-150%);
94
+ }
95
+ to {
96
+ transform: translateX(0%);
97
+ }
98
+ }
99
+
100
+ @keyframes slide-up {
101
+ from {
102
+ transform: translateY(0%);
103
+ opacity: 1;
104
+ }
105
+ to {
106
+ transform: translateY(-100%);
107
+ opacity: 0;
108
+ }
109
+ }
110
+
111
+ @keyframes jiggle {
112
+ 0% {
113
+ transform: rotate(0deg);
114
+ }
115
+ 25% {
116
+ transform: rotate(5deg);
117
+ }
118
+ 50% {
119
+ transform: rotate(-5deg);
120
+ }
121
+ 75% {
122
+ transform: rotate(5deg);
123
+ }
124
+ 100% {
125
+ transform: rotate(0deg);
126
+ }
127
+ }
128
+
129
+ @keyframes barrel {
130
+ 0% {
131
+ transform: translate3d(0px, 0px, 0px) rotate3d(1, 0, 0, 0deg);
132
+ }
133
+ 10% {
134
+ transform: translate3d(30px, 10px, -30px) rotate3d(1, 0, 0, 36deg);
135
+ }
136
+ 20% {
137
+ transform: translate3d(60px, 20px, -60px) rotate3d(1, 0, 0, 72deg);
138
+ }
139
+ 30% {
140
+ transform: translate3d(90px, 40px, -90px) rotate3d(1, 1, 0, 108deg);
141
+ }
142
+ 40% {
143
+ transform: translate3d(120px, 60px, -120px) rotate3d(1, 1, 0, 144deg);
144
+ }
145
+ 50% {
146
+ transform: translate3d(150px, 80px, -150px) rotate3d(1, 1, 1, 180deg);
147
+ }
148
+ 60% {
149
+ transform: translate3d(120px, 100px, -120px) rotate3d(1, 1, 1, 216deg);
150
+ }
151
+ 70% {
152
+ transform: translate3d(90px, 120px, -90px) rotate3d(1, 1, 1, 252deg);
153
+ }
154
+ 80% {
155
+ transform: translate3d(60px, 140px, -60px) rotate3d(1, 1, 0, 288deg);
156
+ }
157
+ 90% {
158
+ transform: translate3d(30px, 160px, -30px) rotate3d(1, 0, 0, 324deg);
159
+ }
160
+ 100% {
161
+ transform: translate3d(0px, 180px, 0px) rotate3d(1, 0, 0, 360deg);
162
+ }
163
+ }
@@ -0,0 +1,30 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+
5
+ @keyframes slide-up {
6
+ from {
7
+ transform: translateY(100%);
8
+ }
9
+ to {
10
+ transform: translateY(0);
11
+ }
12
+ }
13
+
14
+ @keyframes fade-in {
15
+ from {
16
+ opacity: 0;
17
+ }
18
+ to {
19
+ opacity: 1;
20
+ }
21
+ }
22
+
23
+ @keyframes spin {
24
+ from {
25
+ transform: rotate(0deg);
26
+ }
27
+ to {
28
+ transform: rotate(360deg);
29
+ }
30
+ }
@@ -0,0 +1,8 @@
1
+ /** @type {import('tailwindcss').Config} */
2
+ module.exports = {
3
+ content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx,css}"],
4
+ theme: {
5
+ extend: {},
6
+ },
7
+ plugins: [],
8
+ };
@@ -0,0 +1,14 @@
1
+ import { defineConfig } from "vite";
2
+ import { viteSingleFile } from "vite-plugin-singlefile";
3
+ import { vitePluginEditframe } from "@editframe/vite-plugin";
4
+ import path from "node:path";
5
+
6
+ export default defineConfig({
7
+ plugins: [
8
+ vitePluginEditframe({
9
+ root: path.join(__dirname, "src"),
10
+ cacheRoot: path.join(__dirname, "src", "assets"),
11
+ }),
12
+ viteSingleFile(),
13
+ ],
14
+ });
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Card Poetry</title>
7
+ <script type="module" src="./src/main.tsx"></script>
8
+ <link rel="stylesheet" href="./src/styles.css" />
9
+ </head>
10
+ <body>
11
+ <div id="root"></div>
12
+ </body>
13
+ </html>
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "card-demo",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "type": "module",
7
+ "scripts": {
8
+ "start": "editframe preview"
9
+ },
10
+ "keywords": [],
11
+ "author": "",
12
+ "license": "ISC",
13
+ "dependencies": {
14
+ "@editframe/cli": "0.6.0-beta.21",
15
+ "@editframe/react": "0.6.0-beta.21",
16
+ "@editframe/vite-plugin": "0.6.0-beta.21",
17
+ "@vitejs/plugin-react": "^4.3.1",
18
+ "tailwindcss": "^3.4.3",
19
+ "vite": "^5.2.11",
20
+ "vite-plugin-singlefile": "^2.0.1",
21
+ "react": "^18.3.0",
22
+ "react-dom": "^18.3.0"
23
+ },
24
+ "devDependencies": {
25
+ "@types/react": "^18.3.0",
26
+ "@types/react-dom": "^18.3.0"
27
+ }
28
+ }
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ },
5
+ };
@@ -0,0 +1,62 @@
1
+ import { EFTimegroup, EFAudio, EFImage, useTimingInfo } from "@editframe/react";
2
+
3
+ interface CardInfo {
4
+ title: string;
5
+ id: string;
6
+ }
7
+
8
+ const cards: CardInfo[] = [
9
+ {
10
+ title: "9 Of Spades",
11
+ id: "card-9-spades",
12
+ },
13
+ {
14
+ title: "King of Clubs",
15
+ id: "card-king-clubs",
16
+ },
17
+ {
18
+ title: "Queen of Spades",
19
+ id: "card-queen-spades",
20
+ },
21
+ {
22
+ title: "The Joker",
23
+ id: "card-joker",
24
+ },
25
+ ];
26
+
27
+ const CardSegment = ({ title, id }: CardInfo) => {
28
+ const { ownCurrentTimeMs, durationMs, percentComplete, ref } =
29
+ useTimingInfo();
30
+
31
+ return (
32
+ <EFTimegroup mode="contain" ref={ref}>
33
+ <div className="absolute flex flex-col items-center justify-center z-10">
34
+ <h1 className="text-4xl p-4">{title}</h1>
35
+ <EFAudio id={id} src={`/assets/cards/${id}.mp3`} />
36
+ <EFImage src={`/assets/cards/${id}.png`} className="w-1/4" />
37
+ <code>
38
+ {(ownCurrentTimeMs / 1000).toFixed(2)}s /{" "}
39
+ {(durationMs / 1000).toFixed(2)}s
40
+ </code>
41
+ <progress max="1" value={percentComplete} className="h-[10px]" />
42
+ </div>
43
+ <EFImage
44
+ src={`/assets/cards/${id}.png`}
45
+ className="absolute z-0 blur-lg opacity-20 "
46
+ />
47
+ </EFTimegroup>
48
+ );
49
+ };
50
+
51
+ export const Video = () => {
52
+ return (
53
+ <EFTimegroup
54
+ className="w-[500px] h-[500px] bg-slate-200 flex items-center justify-center relative overflow-hidden"
55
+ mode="sequence"
56
+ >
57
+ {cards.map((card) => (
58
+ <CardSegment key={card.id} {...card} />
59
+ ))}
60
+ </EFTimegroup>
61
+ );
62
+ };
File without changes