@textcortex/slidewise 1.0.1 → 1.1.0

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 (51) hide show
  1. package/dist/index.mjs +6261 -6108
  2. package/dist/index.mjs.map +1 -1
  3. package/dist/slidewise.css +1 -1
  4. package/package.json +4 -19
  5. package/src/SlidewiseEditor.css +121 -4
  6. package/src/SlidewiseEditor.tsx +82 -166
  7. package/src/SlidewiseFileEditor.tsx +77 -11
  8. package/src/components/editor/TopBar.tsx +37 -24
  9. package/src/compound/HostContext.tsx +29 -0
  10. package/src/compound/IconContext.tsx +42 -0
  11. package/src/compound/ReadOnlyContext.tsx +23 -0
  12. package/src/compound/SlidewiseRoot.tsx +274 -0
  13. package/src/compound/index.ts +50 -0
  14. package/src/compound/parts.tsx +160 -0
  15. package/src/css.d.ts +4 -0
  16. package/src/index.ts +42 -0
  17. package/README.md +0 -112
  18. package/dist/file.svg +0 -1
  19. package/dist/globe.svg +0 -1
  20. package/dist/types/SlidewiseEditor.d.ts +0 -47
  21. package/dist/types/SlidewiseFileEditor.d.ts +0 -54
  22. package/dist/types/components/editor/BottomToolbar.d.ts +0 -1
  23. package/dist/types/components/editor/Canvas.d.ts +0 -1
  24. package/dist/types/components/editor/Editor.d.ts +0 -8
  25. package/dist/types/components/editor/ElementView.d.ts +0 -6
  26. package/dist/types/components/editor/FloatingToolbar.d.ts +0 -6
  27. package/dist/types/components/editor/GridView.d.ts +0 -1
  28. package/dist/types/components/editor/PlayMode.d.ts +0 -1
  29. package/dist/types/components/editor/SelectionFrame.d.ts +0 -8
  30. package/dist/types/components/editor/SlideRail.d.ts +0 -1
  31. package/dist/types/components/editor/SlideView.d.ts +0 -5
  32. package/dist/types/components/editor/TopBar.d.ts +0 -7
  33. package/dist/types/index.d.ts +0 -7
  34. package/dist/types/lib/StoreProvider.d.ts +0 -8
  35. package/dist/types/lib/fonts.d.ts +0 -9
  36. package/dist/types/lib/pptx/deckToPptx.d.ts +0 -9
  37. package/dist/types/lib/pptx/index.d.ts +0 -3
  38. package/dist/types/lib/pptx/pptxToDeck.d.ts +0 -18
  39. package/dist/types/lib/pptx/types.d.ts +0 -15
  40. package/dist/types/lib/pptx/units.d.ts +0 -25
  41. package/dist/types/lib/schema/migrate.d.ts +0 -25
  42. package/dist/types/lib/seed.d.ts +0 -2
  43. package/dist/types/lib/store.d.ts +0 -55
  44. package/dist/types/lib/types.d.ts +0 -141
  45. package/dist/window.svg +0 -1
  46. package/src/App.tsx +0 -261
  47. package/src/components/editor/Editor.tsx +0 -53
  48. package/src/index.css +0 -13
  49. package/src/lib/seed.ts +0 -777
  50. package/src/main.tsx +0 -10
  51. package/src/vite-env.d.ts +0 -3
package/src/lib/seed.ts DELETED
@@ -1,777 +0,0 @@
1
- import { nanoid } from "nanoid";
2
- import type { Deck, Slide, SlideElement } from "./types";
3
- import { CURRENT_DECK_VERSION } from "./schema/migrate";
4
-
5
- const id = () => nanoid(8);
6
-
7
- const blue = "#4F5BD5";
8
- const ink = "#0E1330";
9
- const cream = "#F4F1EA";
10
-
11
- function el<T extends SlideElement>(e: T): T {
12
- return e;
13
- }
14
-
15
- const slide1: Slide = {
16
- id: id(),
17
- background: blue,
18
- elements: [
19
- el({
20
- id: id(),
21
- type: "shape",
22
- shape: "rect",
23
- x: 96,
24
- y: 96,
25
- w: 84,
26
- h: 84,
27
- rotation: 0,
28
- z: 1,
29
- fill: ink,
30
- enter: "fade",
31
- delay: 0,
32
- }),
33
- el({
34
- id: id(),
35
- type: "text",
36
- x: 200,
37
- y: 96,
38
- w: 220,
39
- h: 96,
40
- rotation: 0,
41
- z: 1,
42
- text: "Eldora\nUI",
43
- fontFamily: "Inter",
44
- fontSize: 36,
45
- fontWeight: 600,
46
- italic: false,
47
- underline: false,
48
- strike: false,
49
- color: "#FFFFFF",
50
- align: "left",
51
- vAlign: "top",
52
- lineHeight: 1.05,
53
- letterSpacing: 0,
54
- enter: "fade",
55
- delay: 0.1,
56
- }),
57
- el({
58
- id: id(),
59
- type: "text",
60
- x: 1700,
61
- y: 110,
62
- w: 160,
63
- h: 48,
64
- rotation: 0,
65
- z: 1,
66
- text: "2026",
67
- fontFamily: "Inter",
68
- fontSize: 28,
69
- fontWeight: 500,
70
- italic: false,
71
- underline: false,
72
- strike: false,
73
- color: ink,
74
- align: "right",
75
- vAlign: "top",
76
- lineHeight: 1.1,
77
- letterSpacing: 0,
78
- enter: "fade",
79
- delay: 0.2,
80
- }),
81
- el({
82
- id: id(),
83
- type: "text",
84
- x: 96,
85
- y: 380,
86
- w: 1740,
87
- h: 220,
88
- rotation: 0,
89
- z: 1,
90
- text: "ELDORAUI",
91
- fontFamily: "Inter",
92
- fontSize: 220,
93
- fontWeight: 800,
94
- italic: false,
95
- underline: false,
96
- strike: false,
97
- color: "#FFFFFF",
98
- align: "left",
99
- vAlign: "middle",
100
- lineHeight: 1,
101
- letterSpacing: -6,
102
- enter: "slide-up",
103
- delay: 0.15,
104
- }),
105
- el({
106
- id: id(),
107
- type: "text",
108
- x: 96,
109
- y: 612,
110
- w: 1100,
111
- h: 110,
112
- rotation: 0,
113
- z: 1,
114
- text: "Open-Source React Component Library\nfor Design Engineers",
115
- fontFamily: "Inter",
116
- fontSize: 44,
117
- fontWeight: 500,
118
- italic: false,
119
- underline: false,
120
- strike: false,
121
- color: "#FFFFFF",
122
- align: "left",
123
- vAlign: "top",
124
- lineHeight: 1.15,
125
- letterSpacing: 0,
126
- enter: "slide-up",
127
- delay: 0.3,
128
- }),
129
- el({
130
- id: id(),
131
- type: "text",
132
- x: 96,
133
- y: 760,
134
- w: 1300,
135
- h: 56,
136
- rotation: 0,
137
- z: 1,
138
- text: "150+ animated components | React | TypeScript | Tailwind | Motion",
139
- fontFamily: "Inter",
140
- fontSize: 28,
141
- fontWeight: 500,
142
- italic: false,
143
- underline: false,
144
- strike: false,
145
- color: "#E7E9FF",
146
- align: "left",
147
- vAlign: "top",
148
- lineHeight: 1.2,
149
- letterSpacing: 0,
150
- enter: "fade",
151
- delay: 0.45,
152
- }),
153
- el({
154
- id: id(),
155
- type: "shape",
156
- shape: "rect",
157
- x: 1620,
158
- y: 740,
159
- w: 200,
160
- h: 160,
161
- rotation: 0,
162
- z: 1,
163
- fill: ink,
164
- enter: "scale",
165
- delay: 0.55,
166
- }),
167
- el({
168
- id: id(),
169
- type: "line",
170
- x: 96,
171
- y: 880,
172
- w: 1728,
173
- h: 2,
174
- rotation: 0,
175
- z: 0,
176
- stroke: ink,
177
- strokeWidth: 2,
178
- enter: "draw",
179
- delay: 0.7,
180
- }),
181
- ],
182
- };
183
-
184
- const slide2: Slide = {
185
- id: id(),
186
- background: cream,
187
- elements: [
188
- el({
189
- id: id(),
190
- type: "shape",
191
- shape: "rounded",
192
- x: 96,
193
- y: 96,
194
- w: 96,
195
- h: 96,
196
- rotation: 0,
197
- z: 1,
198
- fill: "#9CA3AF",
199
- radius: 16,
200
- enter: "scale",
201
- delay: 0,
202
- }),
203
- el({
204
- id: id(),
205
- type: "text",
206
- x: 116,
207
- y: 116,
208
- w: 60,
209
- h: 60,
210
- rotation: 0,
211
- z: 2,
212
- text: "02",
213
- fontFamily: "Inter",
214
- fontSize: 48,
215
- fontWeight: 800,
216
- italic: false,
217
- underline: false,
218
- strike: false,
219
- color: "#FFFFFF",
220
- align: "center",
221
- vAlign: "middle",
222
- lineHeight: 1,
223
- letterSpacing: 0,
224
- }),
225
- el({
226
- id: id(),
227
- type: "text",
228
- x: 96,
229
- y: 260,
230
- w: 900,
231
- h: 160,
232
- rotation: 0,
233
- z: 1,
234
- text: "AGENDA",
235
- fontFamily: "Inter",
236
- fontSize: 140,
237
- fontWeight: 800,
238
- italic: false,
239
- underline: false,
240
- strike: false,
241
- color: ink,
242
- align: "left",
243
- vAlign: "top",
244
- lineHeight: 1,
245
- letterSpacing: -4,
246
- enter: "slide-up",
247
- delay: 0.1,
248
- }),
249
- el({
250
- id: id(),
251
- type: "image",
252
- x: 1080,
253
- y: 120,
254
- w: 760,
255
- h: 360,
256
- rotation: 0,
257
- z: 1,
258
- src: "https://images.unsplash.com/photo-1527430253228-e93688616381?auto=format&fit=crop&w=1600&q=70",
259
- fit: "cover",
260
- radius: 12,
261
- enter: "fade",
262
- delay: 0.2,
263
- }),
264
- el({
265
- id: id(),
266
- type: "table",
267
- x: 96,
268
- y: 540,
269
- w: 1740,
270
- h: 380,
271
- rotation: 0,
272
- z: 1,
273
- rows: [
274
- ["01 Introduction", "04 Technology Stack"],
275
- ["02 Component Showcase", "05 Roadmap"],
276
- ["03 Developer Experience", "06 Getting Started"],
277
- ],
278
- headerFill: "#D7DBE2",
279
- rowFill: "#EBEDF1",
280
- textColor: ink,
281
- fontSize: 22,
282
- enter: "slide-up",
283
- delay: 0.3,
284
- }),
285
- ],
286
- };
287
-
288
- const slide3: Slide = {
289
- id: id(),
290
- background: blue,
291
- elements: [
292
- el({
293
- id: id(),
294
- type: "shape",
295
- shape: "rect",
296
- x: 96,
297
- y: 96,
298
- w: 110,
299
- h: 110,
300
- rotation: 0,
301
- z: 1,
302
- fill: ink,
303
- }),
304
- el({
305
- id: id(),
306
- type: "text",
307
- x: 110,
308
- y: 116,
309
- w: 90,
310
- h: 80,
311
- rotation: 0,
312
- z: 2,
313
- text: "01",
314
- fontFamily: "Inter",
315
- fontSize: 64,
316
- fontWeight: 800,
317
- italic: false,
318
- underline: false,
319
- strike: false,
320
- color: "#FFFFFF",
321
- align: "center",
322
- vAlign: "middle",
323
- lineHeight: 1,
324
- letterSpacing: 0,
325
- }),
326
- el({
327
- id: id(),
328
- type: "text",
329
- x: 96,
330
- y: 260,
331
- w: 1100,
332
- h: 360,
333
- rotation: 0,
334
- z: 1,
335
- text: "INTRO\nDUCTION",
336
- fontFamily: "Inter",
337
- fontSize: 200,
338
- fontWeight: 800,
339
- italic: false,
340
- underline: false,
341
- strike: false,
342
- color: "#FFFFFF",
343
- align: "left",
344
- vAlign: "top",
345
- lineHeight: 0.95,
346
- letterSpacing: -6,
347
- enter: "slide-up",
348
- delay: 0.1,
349
- }),
350
- el({
351
- id: id(),
352
- type: "text",
353
- x: 96,
354
- y: 700,
355
- w: 1100,
356
- h: 80,
357
- rotation: 0,
358
- z: 1,
359
- text: "The story, philosophy, and mission",
360
- fontFamily: "Inter",
361
- fontSize: 36,
362
- fontWeight: 500,
363
- italic: false,
364
- underline: false,
365
- strike: false,
366
- color: "#E7E9FF",
367
- align: "left",
368
- vAlign: "top",
369
- lineHeight: 1.2,
370
- letterSpacing: 0,
371
- enter: "fade",
372
- delay: 0.3,
373
- }),
374
- el({
375
- id: id(),
376
- type: "image",
377
- x: 1240,
378
- y: 96,
379
- w: 600,
380
- h: 888,
381
- rotation: 0,
382
- z: 1,
383
- src: "https://images.unsplash.com/photo-1518770660439-4636190af475?auto=format&fit=crop&w=1200&q=70",
384
- fit: "cover",
385
- radius: 0,
386
- enter: "fade",
387
- delay: 0.2,
388
- }),
389
- ],
390
- };
391
-
392
- const slide4: Slide = {
393
- id: id(),
394
- background: "#FFFFFF",
395
- elements: [
396
- el({
397
- id: id(),
398
- type: "text",
399
- x: 96,
400
- y: 120,
401
- w: 1700,
402
- h: 140,
403
- rotation: 0,
404
- z: 1,
405
- text: "WHAT IS ELDORAUI?",
406
- fontFamily: "Inter",
407
- fontSize: 96,
408
- fontWeight: 800,
409
- italic: false,
410
- underline: false,
411
- strike: false,
412
- color: ink,
413
- align: "left",
414
- vAlign: "top",
415
- lineHeight: 1,
416
- letterSpacing: -3,
417
- enter: "slide-up",
418
- delay: 0,
419
- }),
420
- el({
421
- id: id(),
422
- type: "text",
423
- x: 96,
424
- y: 320,
425
- w: 1700,
426
- h: 460,
427
- rotation: 0,
428
- z: 1,
429
- text: "EldoraUI is a meticulously crafted React component library for design engineers who care about polish.\n\nEvery component is animated, accessible, and copy-paste ready — built on Tailwind CSS and Motion.",
430
- fontFamily: "Inter",
431
- fontSize: 36,
432
- fontWeight: 400,
433
- italic: false,
434
- underline: false,
435
- strike: false,
436
- color: "#3A3F5C",
437
- align: "left",
438
- vAlign: "top",
439
- lineHeight: 1.45,
440
- letterSpacing: 0,
441
- enter: "fade",
442
- delay: 0.2,
443
- }),
444
- ],
445
- };
446
-
447
- const slide5: Slide = {
448
- id: id(),
449
- background: cream,
450
- elements: [
451
- el({
452
- id: id(),
453
- type: "text",
454
- x: 96,
455
- y: 120,
456
- w: 1700,
457
- h: 120,
458
- rotation: 0,
459
- z: 1,
460
- text: "OUR PHILOSOPHY",
461
- fontFamily: "Inter",
462
- fontSize: 88,
463
- fontWeight: 800,
464
- italic: false,
465
- underline: false,
466
- strike: false,
467
- color: ink,
468
- align: "left",
469
- vAlign: "top",
470
- lineHeight: 1,
471
- letterSpacing: -3,
472
- enter: "slide-up",
473
- delay: 0,
474
- }),
475
- el({
476
- id: id(),
477
- type: "shape",
478
- shape: "rounded",
479
- x: 96,
480
- y: 320,
481
- w: 540,
482
- h: 540,
483
- rotation: 0,
484
- z: 1,
485
- fill: "#E7E9FF",
486
- radius: 20,
487
- enter: "scale",
488
- delay: 0.1,
489
- }),
490
- el({
491
- id: id(),
492
- type: "shape",
493
- shape: "rounded",
494
- x: 690,
495
- y: 320,
496
- w: 540,
497
- h: 540,
498
- rotation: 0,
499
- z: 1,
500
- fill: "#FCE7DF",
501
- radius: 20,
502
- enter: "scale",
503
- delay: 0.2,
504
- }),
505
- el({
506
- id: id(),
507
- type: "shape",
508
- shape: "rounded",
509
- x: 1284,
510
- y: 320,
511
- w: 540,
512
- h: 540,
513
- rotation: 0,
514
- z: 1,
515
- fill: "#DCEDE0",
516
- radius: 20,
517
- enter: "scale",
518
- delay: 0.3,
519
- }),
520
- el({
521
- id: id(),
522
- type: "text",
523
- x: 130,
524
- y: 360,
525
- w: 470,
526
- h: 80,
527
- rotation: 0,
528
- z: 2,
529
- text: "Polish",
530
- fontFamily: "Inter",
531
- fontSize: 44,
532
- fontWeight: 700,
533
- italic: false,
534
- underline: false,
535
- strike: false,
536
- color: ink,
537
- align: "left",
538
- vAlign: "top",
539
- lineHeight: 1,
540
- letterSpacing: 0,
541
- enter: "fade",
542
- delay: 0.35,
543
- }),
544
- el({
545
- id: id(),
546
- type: "text",
547
- x: 130,
548
- y: 460,
549
- w: 470,
550
- h: 360,
551
- rotation: 0,
552
- z: 2,
553
- text: "Pixel-perfect spacing, motion that feels right, and details you only notice when they are missing.",
554
- fontFamily: "Inter",
555
- fontSize: 24,
556
- fontWeight: 400,
557
- italic: false,
558
- underline: false,
559
- strike: false,
560
- color: "#3A3F5C",
561
- align: "left",
562
- vAlign: "top",
563
- lineHeight: 1.4,
564
- letterSpacing: 0,
565
- enter: "fade",
566
- delay: 0.4,
567
- }),
568
- el({
569
- id: id(),
570
- type: "text",
571
- x: 720,
572
- y: 360,
573
- w: 470,
574
- h: 80,
575
- rotation: 0,
576
- z: 2,
577
- text: "Speed",
578
- fontFamily: "Inter",
579
- fontSize: 44,
580
- fontWeight: 700,
581
- italic: false,
582
- underline: false,
583
- strike: false,
584
- color: ink,
585
- align: "left",
586
- vAlign: "top",
587
- lineHeight: 1,
588
- letterSpacing: 0,
589
- enter: "fade",
590
- delay: 0.45,
591
- }),
592
- el({
593
- id: id(),
594
- type: "text",
595
- x: 720,
596
- y: 460,
597
- w: 470,
598
- h: 360,
599
- rotation: 0,
600
- z: 2,
601
- text: "Copy, paste, and ship. No install steps, no version drift, no opinions you can't override.",
602
- fontFamily: "Inter",
603
- fontSize: 24,
604
- fontWeight: 400,
605
- italic: false,
606
- underline: false,
607
- strike: false,
608
- color: "#3A3F5C",
609
- align: "left",
610
- vAlign: "top",
611
- lineHeight: 1.4,
612
- letterSpacing: 0,
613
- enter: "fade",
614
- delay: 0.5,
615
- }),
616
- el({
617
- id: id(),
618
- type: "text",
619
- x: 1314,
620
- y: 360,
621
- w: 470,
622
- h: 80,
623
- rotation: 0,
624
- z: 2,
625
- text: "Open",
626
- fontFamily: "Inter",
627
- fontSize: 44,
628
- fontWeight: 700,
629
- italic: false,
630
- underline: false,
631
- strike: false,
632
- color: ink,
633
- align: "left",
634
- vAlign: "top",
635
- lineHeight: 1,
636
- letterSpacing: 0,
637
- enter: "fade",
638
- delay: 0.55,
639
- }),
640
- el({
641
- id: id(),
642
- type: "text",
643
- x: 1314,
644
- y: 460,
645
- w: 470,
646
- h: 360,
647
- rotation: 0,
648
- z: 2,
649
- text: "MIT-licensed, community-driven, and built in public — every line of source visible.",
650
- fontFamily: "Inter",
651
- fontSize: 24,
652
- fontWeight: 400,
653
- italic: false,
654
- underline: false,
655
- strike: false,
656
- color: "#3A3F5C",
657
- align: "left",
658
- vAlign: "top",
659
- lineHeight: 1.4,
660
- letterSpacing: 0,
661
- enter: "fade",
662
- delay: 0.6,
663
- }),
664
- ],
665
- };
666
-
667
- const slide6: Slide = {
668
- id: id(),
669
- background: ink,
670
- elements: [
671
- el({
672
- id: id(),
673
- type: "shape",
674
- shape: "rect",
675
- x: 96,
676
- y: 96,
677
- w: 110,
678
- h: 110,
679
- rotation: 0,
680
- z: 1,
681
- fill: "#9CA3AF",
682
- }),
683
- el({
684
- id: id(),
685
- type: "text",
686
- x: 110,
687
- y: 116,
688
- w: 90,
689
- h: 80,
690
- rotation: 0,
691
- z: 2,
692
- text: "06",
693
- fontFamily: "Inter",
694
- fontSize: 64,
695
- fontWeight: 800,
696
- italic: false,
697
- underline: false,
698
- strike: false,
699
- color: ink,
700
- align: "center",
701
- vAlign: "middle",
702
- lineHeight: 1,
703
- letterSpacing: 0,
704
- }),
705
- el({
706
- id: id(),
707
- type: "text",
708
- x: 96,
709
- y: 260,
710
- w: 1100,
711
- h: 360,
712
- rotation: 0,
713
- z: 1,
714
- text: "TECHNO\nLOGY",
715
- fontFamily: "Inter",
716
- fontSize: 200,
717
- fontWeight: 800,
718
- italic: false,
719
- underline: false,
720
- strike: false,
721
- color: "#FFFFFF",
722
- align: "left",
723
- vAlign: "top",
724
- lineHeight: 0.95,
725
- letterSpacing: -6,
726
- enter: "slide-up",
727
- delay: 0.1,
728
- }),
729
- el({
730
- id: id(),
731
- type: "shape",
732
- shape: "rounded",
733
- x: 1140,
734
- y: 240,
735
- w: 700,
736
- h: 700,
737
- rotation: 0,
738
- z: 1,
739
- fill: "#0A0F26",
740
- radius: 16,
741
- stroke: "#1F2547",
742
- strokeWidth: 2,
743
- enter: "fade",
744
- delay: 0.2,
745
- }),
746
- el({
747
- id: id(),
748
- type: "text",
749
- x: 1180,
750
- y: 280,
751
- w: 620,
752
- h: 620,
753
- rotation: 0,
754
- z: 2,
755
- text: "import { Button } from 'eldora/ui'\n\nexport default function Demo() {\n return (\n <Button>\n Ship it\n </Button>\n )\n}",
756
- fontFamily: "JetBrains Mono",
757
- fontSize: 26,
758
- fontWeight: 500,
759
- italic: false,
760
- underline: false,
761
- strike: false,
762
- color: "#A8FF9E",
763
- align: "left",
764
- vAlign: "top",
765
- lineHeight: 1.45,
766
- letterSpacing: 0,
767
- enter: "fade",
768
- delay: 0.35,
769
- }),
770
- ],
771
- };
772
-
773
- export const seedDeck: Deck = {
774
- version: CURRENT_DECK_VERSION,
775
- title: "EldoraUI - Open-Source React Component Library",
776
- slides: [slide1, slide2, slide3, slide4, slide5, slide6],
777
- };