@strategicnerds/slide-nerds 0.1.1 → 0.2.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 (75) hide show
  1. package/dist/cli/commands/brand.d.ts +3 -0
  2. package/dist/cli/commands/brand.d.ts.map +1 -0
  3. package/dist/cli/commands/brand.js +145 -0
  4. package/dist/cli/commands/brand.js.map +1 -0
  5. package/dist/cli/commands/config.d.ts +18 -0
  6. package/dist/cli/commands/config.d.ts.map +1 -0
  7. package/dist/cli/commands/config.js +37 -0
  8. package/dist/cli/commands/config.js.map +1 -0
  9. package/dist/cli/commands/link.d.ts +12 -0
  10. package/dist/cli/commands/link.d.ts.map +1 -0
  11. package/dist/cli/commands/link.js +106 -0
  12. package/dist/cli/commands/link.js.map +1 -0
  13. package/dist/cli/commands/login.d.ts +4 -0
  14. package/dist/cli/commands/login.d.ts.map +1 -0
  15. package/dist/cli/commands/login.js +92 -0
  16. package/dist/cli/commands/login.js.map +1 -0
  17. package/dist/cli/commands/push.d.ts +13 -0
  18. package/dist/cli/commands/push.d.ts.map +1 -0
  19. package/dist/cli/commands/push.js +156 -0
  20. package/dist/cli/commands/push.js.map +1 -0
  21. package/dist/cli/index.js +8 -0
  22. package/dist/cli/index.js.map +1 -1
  23. package/dist/runtime/export-api.d.ts +2 -1
  24. package/dist/runtime/export-api.d.ts.map +1 -1
  25. package/dist/runtime/export-api.js +150 -7
  26. package/dist/runtime/export-api.js.map +1 -1
  27. package/dist/runtime/index.d.ts +6 -0
  28. package/dist/runtime/index.d.ts.map +1 -1
  29. package/dist/runtime/index.js +5 -0
  30. package/dist/runtime/index.js.map +1 -1
  31. package/dist/runtime/light-table.d.ts.map +1 -1
  32. package/dist/runtime/light-table.js +34 -10
  33. package/dist/runtime/light-table.js.map +1 -1
  34. package/dist/runtime/live/LiveAudienceCount.d.ts +4 -0
  35. package/dist/runtime/live/LiveAudienceCount.d.ts.map +1 -0
  36. package/dist/runtime/live/LiveAudienceCount.js +90 -0
  37. package/dist/runtime/live/LiveAudienceCount.js.map +1 -0
  38. package/dist/runtime/live/LivePoll.d.ts +9 -0
  39. package/dist/runtime/live/LivePoll.d.ts.map +1 -0
  40. package/dist/runtime/live/LivePoll.js +122 -0
  41. package/dist/runtime/live/LivePoll.js.map +1 -0
  42. package/dist/runtime/live/LiveQA.d.ts +4 -0
  43. package/dist/runtime/live/LiveQA.d.ts.map +1 -0
  44. package/dist/runtime/live/LiveQA.js +138 -0
  45. package/dist/runtime/live/LiveQA.js.map +1 -0
  46. package/dist/runtime/live/LiveReactions.d.ts +4 -0
  47. package/dist/runtime/live/LiveReactions.d.ts.map +1 -0
  48. package/dist/runtime/live/LiveReactions.js +124 -0
  49. package/dist/runtime/live/LiveReactions.js.map +1 -0
  50. package/dist/runtime/live/LiveWordCloud.d.ts +8 -0
  51. package/dist/runtime/live/LiveWordCloud.d.ts.map +1 -0
  52. package/dist/runtime/live/LiveWordCloud.js +141 -0
  53. package/dist/runtime/live/LiveWordCloud.js.map +1 -0
  54. package/dist/runtime/live/index.d.ts +7 -0
  55. package/dist/runtime/live/index.d.ts.map +1 -0
  56. package/dist/runtime/live/index.js +6 -0
  57. package/dist/runtime/live/index.js.map +1 -0
  58. package/dist/runtime/live/types.d.ts +40 -0
  59. package/dist/runtime/live/types.d.ts.map +1 -0
  60. package/dist/runtime/live/types.js +2 -0
  61. package/dist/runtime/live/types.js.map +1 -0
  62. package/dist/runtime/live/use-live-session.d.ts +17 -0
  63. package/dist/runtime/live/use-live-session.d.ts.map +1 -0
  64. package/dist/runtime/live/use-live-session.js +73 -0
  65. package/dist/runtime/live/use-live-session.js.map +1 -0
  66. package/dist/runtime/pptx-export.d.ts +2 -0
  67. package/dist/runtime/pptx-export.d.ts.map +1 -0
  68. package/dist/runtime/pptx-export.js +344 -0
  69. package/dist/runtime/pptx-export.js.map +1 -0
  70. package/dist/runtime/slide-controls.d.ts.map +1 -1
  71. package/dist/runtime/slide-controls.js +25 -22
  72. package/dist/runtime/slide-controls.js.map +1 -1
  73. package/package.json +3 -1
  74. package/skills/live/SKILL.md +244 -0
  75. package/templates/next-app/next.config.ts.tmpl +25 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../src/cli/commands/push.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -3,10 +3,18 @@ import { Command } from 'commander';
3
3
  import { registerCreateCommand } from './commands/create.js';
4
4
  import { registerExportCommand } from './commands/export.js';
5
5
  import { registerAnalyticsCommand } from './commands/analytics.js';
6
+ import { registerLoginCommand } from './commands/login.js';
7
+ import { registerLinkCommand } from './commands/link.js';
8
+ import { registerPushCommand } from './commands/push.js';
9
+ import { registerBrandCommand } from './commands/brand.js';
6
10
  const program = new Command();
7
11
  program.name('slidenerds').description('CLI for creating and managing slidenerds decks').version('0.1.0');
8
12
  registerCreateCommand(program);
9
13
  registerExportCommand(program);
10
14
  registerAnalyticsCommand(program);
15
+ registerLoginCommand(program);
16
+ registerLinkCommand(program);
17
+ registerPushCommand(program);
18
+ registerBrandCommand(program);
11
19
  program.parse();
12
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,gDAAgD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAEzG,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,wBAAwB,CAAC,OAAO,CAAC,CAAA;AAEjC,OAAO,CAAC,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,gDAAgD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAEzG,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,wBAAwB,CAAC,OAAO,CAAC,CAAA;AACjC,oBAAoB,CAAC,OAAO,CAAC,CAAA;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAC5B,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAC5B,oBAAoB,CAAC,OAAO,CAAC,CAAA;AAE7B,OAAO,CAAC,KAAK,EAAE,CAAA"}
@@ -1,6 +1,7 @@
1
- type ExportFormat = 'pdf' | 'pptx' | 'gslides';
1
+ type ExportFormat = 'pdf' | 'pptx';
2
2
  type ExportOptions = {
3
3
  format: ExportFormat;
4
+ onProgress?: (current: number, total: number) => void;
4
5
  };
5
6
  type SlidenerdsApi = {
6
7
  export: (options: ExportOptions) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"export-api.d.ts","sourceRoot":"","sources":["../../src/runtime/export-api.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAA;AAE9C,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,YAAY,CAAA;CACrB,CAAA;AAED,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAClD,CAAA;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,UAAU,EAAE,aAAa,CAAA;KAC1B;CACF;AAED,eAAO,MAAM,iBAAiB,QAAO,IAqBpC,CAAA"}
1
+ {"version":3,"file":"export-api.d.ts","sourceRoot":"","sources":["../../src/runtime/export-api.ts"],"names":[],"mappings":"AAEA,KAAK,YAAY,GAAG,KAAK,GAAG,MAAM,CAAA;AAElC,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACtD,CAAA;AAED,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAClD,CAAA;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,UAAU,EAAE,aAAa,CAAA;KAC1B;CACF;AA8KD,eAAO,MAAM,iBAAiB,QAAO,IAepC,CAAA"}
@@ -1,18 +1,161 @@
1
+ import { getSlideElements } from './slide-dom.js';
2
+ const SLIDE_WIDTH = 1920;
3
+ const SLIDE_HEIGHT = 1080;
4
+ const yieldToMain = () => new Promise((resolve) => setTimeout(resolve, 0));
5
+ const captureSlides = async (onProgress, overlay) => {
6
+ if (typeof document === 'undefined')
7
+ return [];
8
+ const html2canvas = (await import('html2canvas-pro')).default;
9
+ const slides = getSlideElements();
10
+ const total = slides.length;
11
+ const images = [];
12
+ const currentlyActive = document.querySelector('[data-slide].active');
13
+ const originalIndex = currentlyActive
14
+ ? Array.from(slides).indexOf(currentlyActive)
15
+ : 0;
16
+ for (let i = 0; i < total; i++) {
17
+ onProgress?.(i + 1, total);
18
+ slides.forEach((s, idx) => {
19
+ const el = s;
20
+ el.classList.toggle('active', idx === i);
21
+ el.classList.remove('exiting');
22
+ });
23
+ const slideEl = slides[i];
24
+ slideEl.querySelectorAll('[data-step], [data-auto-step]').forEach((step) => {
25
+ step.classList.add('step-visible');
26
+ const el = step;
27
+ el.style.setProperty('visibility', 'visible', 'important');
28
+ el.style.setProperty('opacity', '1', 'important');
29
+ el.style.setProperty('transform', 'none', 'important');
30
+ el.style.setProperty('clip-path', 'none', 'important');
31
+ el.style.setProperty('transition', 'none', 'important');
32
+ el.style.setProperty('animation', 'none', 'important');
33
+ });
34
+ slideEl.querySelectorAll('.auto-fade, .auto-pop, .auto-wipe-right, .auto-slide-down, .auto-slide-up').forEach((el) => {
35
+ const htmlEl = el;
36
+ htmlEl.style.setProperty('opacity', '1', 'important');
37
+ htmlEl.style.setProperty('transform', 'none', 'important');
38
+ htmlEl.style.setProperty('clip-path', 'none', 'important');
39
+ htmlEl.style.setProperty('animation', 'none', 'important');
40
+ });
41
+ if (overlay) {
42
+ overlay.style.zIndex = '99999';
43
+ }
44
+ await yieldToMain();
45
+ await new Promise((r) => setTimeout(r, 100));
46
+ const canvas = await html2canvas(slideEl, {
47
+ width: SLIDE_WIDTH,
48
+ height: SLIDE_HEIGHT,
49
+ scale: 1,
50
+ useCORS: true,
51
+ backgroundColor: null,
52
+ logging: false,
53
+ imageTimeout: 5000,
54
+ ignoreElements: (el) => {
55
+ return el === overlay ||
56
+ el.hasAttribute('data-notes') ||
57
+ el.classList?.contains('slide-controls-root');
58
+ },
59
+ });
60
+ images.push(canvas.toDataURL('image/jpeg', 0.92));
61
+ slideEl.querySelectorAll('[data-step], [data-auto-step]').forEach((step) => {
62
+ step.classList.remove('step-visible');
63
+ const el = step;
64
+ el.style.removeProperty('visibility');
65
+ el.style.removeProperty('opacity');
66
+ el.style.removeProperty('transform');
67
+ el.style.removeProperty('clip-path');
68
+ el.style.removeProperty('transition');
69
+ el.style.removeProperty('animation');
70
+ });
71
+ slideEl.querySelectorAll('.auto-fade, .auto-pop, .auto-wipe-right, .auto-slide-down, .auto-slide-up').forEach((el) => {
72
+ const htmlEl = el;
73
+ htmlEl.style.removeProperty('opacity');
74
+ htmlEl.style.removeProperty('transform');
75
+ htmlEl.style.removeProperty('clip-path');
76
+ htmlEl.style.removeProperty('animation');
77
+ });
78
+ await yieldToMain();
79
+ }
80
+ slides.forEach((s, idx) => {
81
+ const el = s;
82
+ el.classList.toggle('active', idx === originalIndex);
83
+ el.classList.remove('exiting');
84
+ });
85
+ return images;
86
+ };
87
+ const showProgress = () => {
88
+ const overlay = document.createElement('div');
89
+ overlay.style.cssText =
90
+ 'position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.95);font-family:system-ui,-apple-system,sans-serif;';
91
+ const box = document.createElement('div');
92
+ box.style.cssText =
93
+ 'background:rgba(0,0,0,0.9);border:1px solid rgba(255,255,255,0.1);border-radius:12px;padding:24px 32px;text-align:center;color:rgba(255,255,255,0.85);';
94
+ const label = document.createElement('div');
95
+ label.style.cssText = 'font-size:13px;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;color:rgba(255,255,255,0.4);margin-bottom:8px;';
96
+ label.textContent = 'Exporting';
97
+ const status = document.createElement('div');
98
+ status.style.cssText = 'font-size:18px;font-weight:500;';
99
+ status.textContent = 'Preparing...';
100
+ box.appendChild(label);
101
+ box.appendChild(status);
102
+ overlay.appendChild(box);
103
+ document.body.appendChild(overlay);
104
+ return {
105
+ element: overlay,
106
+ update: (current, total) => {
107
+ status.textContent = `Slide ${current} of ${total}`;
108
+ },
109
+ remove: () => {
110
+ document.body.removeChild(overlay);
111
+ },
112
+ };
113
+ };
114
+ const exportPdf = async () => {
115
+ const progress = showProgress();
116
+ try {
117
+ const { jsPDF } = await import('jspdf');
118
+ const images = await captureSlides(progress.update, progress.element);
119
+ if (images.length === 0)
120
+ return;
121
+ const pdf = new jsPDF({
122
+ orientation: 'landscape',
123
+ unit: 'px',
124
+ format: [SLIDE_WIDTH, SLIDE_HEIGHT],
125
+ hotfixes: ['px_scaling'],
126
+ });
127
+ for (let i = 0; i < images.length; i++) {
128
+ if (i > 0)
129
+ pdf.addPage([SLIDE_WIDTH, SLIDE_HEIGHT], 'landscape');
130
+ pdf.addImage(images[i], 'JPEG', 0, 0, SLIDE_WIDTH, SLIDE_HEIGHT);
131
+ }
132
+ pdf.save('presentation.pdf');
133
+ }
134
+ finally {
135
+ progress.remove();
136
+ }
137
+ };
138
+ const exportPptx = async () => {
139
+ const progress = showProgress();
140
+ try {
141
+ const { exportNativePptx } = await import('./pptx-export.js');
142
+ await exportNativePptx(progress.update);
143
+ }
144
+ finally {
145
+ progress.remove();
146
+ }
147
+ };
1
148
  export const registerExportApi = () => {
2
149
  if (typeof window === 'undefined')
3
150
  return;
4
151
  window.slidenerds = {
5
152
  export: async (options) => {
6
- const { format } = options;
7
- switch (format) {
153
+ switch (options.format) {
8
154
  case 'pdf':
9
- window.print();
155
+ await exportPdf();
10
156
  break;
11
157
  case 'pptx':
12
- console.info('[slidenerds] PPTX export triggered. Use the CLI for full export.');
13
- break;
14
- case 'gslides':
15
- console.info('[slidenerds] Google Slides export triggered. Use the CLI for full export.');
158
+ await exportPptx();
16
159
  break;
17
160
  }
18
161
  },
@@ -1 +1 @@
1
- {"version":3,"file":"export-api.js","sourceRoot":"","sources":["../../src/runtime/export-api.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAS,EAAE;IAC1C,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAM;IAEzC,MAAM,CAAC,UAAU,GAAG;QAClB,MAAM,EAAE,KAAK,EAAE,OAAsB,EAAE,EAAE;YACvC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;YAC1B,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,KAAK;oBACR,MAAM,CAAC,KAAK,EAAE,CAAA;oBACd,MAAK;gBACP,KAAK,MAAM;oBACT,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;oBAChF,MAAK;gBACP,KAAK,SAAS;oBACZ,OAAO,CAAC,IAAI,CACV,2EAA2E,CAC5E,CAAA;oBACD,MAAK;YACT,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"export-api.js","sourceRoot":"","sources":["../../src/runtime/export-api.ts"],"names":[],"mappings":"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"}
@@ -9,4 +9,10 @@ export { SlideControls } from './slide-controls.js';
9
9
  export { SlideShape } from './slide-shape.js';
10
10
  export type { ShapeType } from './slide-shape.js';
11
11
  export type { StepEntry } from './slide-dom.js';
12
+ export { LivePoll } from './live/LivePoll.js';
13
+ export { LiveReactions } from './live/LiveReactions.js';
14
+ export { LiveQA } from './live/LiveQA.js';
15
+ export { LiveAudienceCount } from './live/LiveAudienceCount.js';
16
+ export { LiveWordCloud } from './live/LiveWordCloud.js';
17
+ export type { ReactionType, LiveComponentProps, PollOption, PollResult, QAQuestion, WordCloudEntry, } from './live/types.js';
12
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,GACf,MAAM,iBAAiB,CAAA"}
@@ -5,4 +5,9 @@ export { useSlideState } from './slide-context.js';
5
5
  export { BrandConfigSchema } from './types.js';
6
6
  export { SlideControls } from './slide-controls.js';
7
7
  export { SlideShape } from './slide-shape.js';
8
+ export { LivePoll } from './live/LivePoll.js';
9
+ export { LiveReactions } from './live/LiveReactions.js';
10
+ export { LiveQA } from './live/LiveQA.js';
11
+ export { LiveAudienceCount } from './live/LiveAudienceCount.js';
12
+ export { LiveWordCloud } from './live/LiveWordCloud.js';
8
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"light-table.d.ts","sourceRoot":"","sources":["../../src/runtime/light-table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAIhF,KAAK,eAAe,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACzD,CAAA;AAmFD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA8EhD,CAAA"}
1
+ {"version":3,"file":"light-table.d.ts","sourceRoot":"","sources":["../../src/runtime/light-table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAIhF,KAAK,eAAe,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACzD,CAAA;AA0GD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAiFhD,CAAA"}
@@ -6,8 +6,9 @@ import { getSlideElements, getSlidesInfo } from './slide-dom.js';
6
6
  const THUMB_WIDTH = 280;
7
7
  const THUMB_HEIGHT = Math.round(THUMB_WIDTH * (9 / 16));
8
8
  const SCALE = THUMB_WIDTH / 1920;
9
- const SlideThumbnail = ({ slideIndex, isActive }) => {
9
+ const SlideThumbnail = ({ slideIndex, isActive, isPreviewing }) => {
10
10
  const containerRef = useRef(null);
11
+ const animTimerRef = useRef(null);
11
12
  useEffect(() => {
12
13
  const container = containerRef.current;
13
14
  if (!container)
@@ -26,21 +27,42 @@ const SlideThumbnail = ({ slideIndex, isActive }) => {
26
27
  clone.style.transformOrigin = 'top left';
27
28
  clone.style.pointerEvents = 'none';
28
29
  clone.style.display = 'flex';
29
- clone.querySelectorAll('[data-step]').forEach((step) => {
30
- const el = step;
31
- el.style.visibility = 'visible';
32
- el.style.opacity = '1';
33
- el.style.transform = 'none';
34
- });
30
+ const steps = clone.querySelectorAll('[data-step], [data-auto-step]');
31
+ if (isPreviewing) {
32
+ steps.forEach((step) => {
33
+ step.classList.remove('step-visible');
34
+ });
35
+ }
36
+ else {
37
+ steps.forEach((step) => {
38
+ step.classList.add('step-visible');
39
+ });
40
+ }
35
41
  clone.querySelectorAll('[data-notes]').forEach((note) => {
36
42
  note.style.display = 'none';
37
43
  });
38
- // Clear existing children safely
39
44
  while (container.firstChild) {
40
45
  container.removeChild(container.firstChild);
41
46
  }
42
47
  container.appendChild(clone);
43
- }, [slideIndex]);
48
+ if (isPreviewing && steps.length > 0) {
49
+ if (animTimerRef.current !== null)
50
+ clearTimeout(animTimerRef.current);
51
+ let stepIndex = 0;
52
+ const revealNext = () => {
53
+ if (stepIndex >= steps.length)
54
+ return;
55
+ steps[stepIndex].classList.add('step-visible');
56
+ stepIndex++;
57
+ animTimerRef.current = setTimeout(revealNext, 400);
58
+ };
59
+ animTimerRef.current = setTimeout(revealNext, 300);
60
+ }
61
+ return () => {
62
+ if (animTimerRef.current !== null)
63
+ clearTimeout(animTimerRef.current);
64
+ };
65
+ }, [slideIndex, isPreviewing]);
44
66
  return (_jsxs("div", { style: {
45
67
  borderRadius: '8px',
46
68
  overflow: 'hidden',
@@ -65,8 +87,10 @@ const SlideThumbnail = ({ slideIndex, isActive }) => {
65
87
  export const LightTable = ({ className, onReorder }) => {
66
88
  const { currentSlide, goToSlide } = useSlideState();
67
89
  const [dragSource, setDragSource] = useState(null);
90
+ const [previewIndex, setPreviewIndex] = useState(null);
68
91
  const slides = useMemo(() => getSlidesInfo(), []);
69
92
  const handleSlideClick = useCallback((index) => {
93
+ setPreviewIndex(index);
70
94
  goToSlide(index);
71
95
  }, [goToSlide]);
72
96
  const handleDragStart = useCallback((index) => {
@@ -99,6 +123,6 @@ export const LightTable = ({ className, onReorder }) => {
99
123
  }, children: slides.map((slide) => (_jsx("div", { role: "gridcell", "data-testid": `light-table-slide-${slide.index}`, draggable: true, onClick: () => handleSlideClick(slide.index), onDragStart: () => handleDragStart(slide.index), onDragOver: handleDragOver, onDrop: () => handleDrop(slide.index), onDragEnd: handleDragEnd, style: {
100
124
  opacity: dragSource === slide.index ? 0.5 : 1,
101
125
  cursor: 'pointer',
102
- }, children: _jsx(SlideThumbnail, { slideIndex: slide.index, isActive: slide.index === currentSlide }) }, slide.index))) }));
126
+ }, children: _jsx(SlideThumbnail, { slideIndex: slide.index, isActive: slide.index === currentSlide, isPreviewing: previewIndex === slide.index }) }, slide.index))) }));
103
127
  };
104
128
  //# sourceMappingURL=light-table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"light-table.js","sourceRoot":"","sources":["../../src/runtime/light-table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"light-table.js","sourceRoot":"","sources":["../../src/runtime/light-table.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { LiveComponentProps } from './types.js';
3
+ export declare const LiveAudienceCount: React.FC<LiveComponentProps>;
4
+ //# sourceMappingURL=LiveAudienceCount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveAudienceCount.d.ts","sourceRoot":"","sources":["../../../src/runtime/live/LiveAudienceCount.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAA;AAG7D,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,YAAY,CAAA;AAmDlE,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAsD1D,CAAA"}
@@ -0,0 +1,90 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useCallback, useEffect, useRef } from 'react';
4
+ import { useLiveApi, usePolling } from './use-live-session.js';
5
+ const styles = {
6
+ container: {
7
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
8
+ display: 'inline-flex',
9
+ alignItems: 'center',
10
+ gap: '8px',
11
+ padding: '8px 14px',
12
+ borderRadius: '20px',
13
+ background: 'rgba(0, 0, 0, 0.3)',
14
+ backdropFilter: 'blur(10px)',
15
+ border: '1px solid rgba(255, 255, 255, 0.1)',
16
+ },
17
+ dot: {
18
+ width: '8px',
19
+ height: '8px',
20
+ borderRadius: '50%',
21
+ background: '#3ECF8E',
22
+ animation: 'slidenerds-pulse 2s ease-in-out infinite',
23
+ },
24
+ text: {
25
+ fontSize: '14px',
26
+ color: 'rgba(255, 255, 255, 0.8)',
27
+ fontWeight: 500,
28
+ },
29
+ noSession: {
30
+ fontSize: '14px',
31
+ color: 'rgba(255, 255, 255, 0.4)',
32
+ fontStyle: 'italic',
33
+ },
34
+ };
35
+ const PULSE_KEYFRAMES = `
36
+ @keyframes slidenerds-pulse {
37
+ 0%, 100% { opacity: 1; transform: scale(1); }
38
+ 50% { opacity: 0.5; transform: scale(0.8); }
39
+ }
40
+ `;
41
+ const injectStyles = () => {
42
+ if (typeof document === 'undefined')
43
+ return;
44
+ const styleId = 'slidenerds-live-styles';
45
+ if (document.getElementById(styleId))
46
+ return;
47
+ const style = document.createElement('style');
48
+ style.id = styleId;
49
+ style.textContent = PULSE_KEYFRAMES;
50
+ document.head.appendChild(style);
51
+ };
52
+ export const LiveAudienceCount = ({ sessionId, serviceUrl }) => {
53
+ const { post, get, sessionId: resolvedSessionId, serviceUrl: resolvedServiceUrl } = useLiveApi({
54
+ sessionId,
55
+ serviceUrl,
56
+ });
57
+ const hasJoinedRef = useRef(false);
58
+ useEffect(() => {
59
+ injectStyles();
60
+ }, []);
61
+ useEffect(() => {
62
+ if (!resolvedSessionId || hasJoinedRef.current)
63
+ return;
64
+ hasJoinedRef.current = true;
65
+ post('/audience', { action: 'join' });
66
+ const leaveUrl = `${resolvedServiceUrl}/api/live/${resolvedSessionId}/audience`;
67
+ const handleBeforeUnload = () => {
68
+ navigator.sendBeacon(leaveUrl, JSON.stringify({ action: 'leave' }));
69
+ };
70
+ window.addEventListener('beforeunload', handleBeforeUnload);
71
+ return () => {
72
+ window.removeEventListener('beforeunload', handleBeforeUnload);
73
+ post('/audience', { action: 'leave' });
74
+ hasJoinedRef.current = false;
75
+ };
76
+ }, [resolvedSessionId, resolvedServiceUrl, post]);
77
+ const fetchAudience = useCallback(async () => {
78
+ const response = await get('/audience');
79
+ if (!response || !response.ok)
80
+ return null;
81
+ return response.json();
82
+ }, [get]);
83
+ const { data: audience } = usePolling(fetchAudience);
84
+ if (!resolvedSessionId) {
85
+ return _jsx("span", { style: styles.noSession, children: "No live session" });
86
+ }
87
+ const count = audience?.count ?? 0;
88
+ return (_jsxs("div", { style: styles.container, children: [_jsx("span", { style: styles.dot }), _jsxs("span", { style: styles.text, children: [count, " watching"] })] }));
89
+ };
90
+ //# sourceMappingURL=LiveAudienceCount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiveAudienceCount.js","sourceRoot":"","sources":["../../../src/runtime/live/LiveAudienceCount.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { LiveComponentProps } from './types.js';
3
+ type LivePollProps = LiveComponentProps & {
4
+ question: string;
5
+ options: string[];
6
+ };
7
+ export declare const LivePoll: React.FC<LivePollProps>;
8
+ export {};
9
+ //# sourceMappingURL=LivePoll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LivePoll.d.ts","sourceRoot":"","sources":["../../../src/runtime/live/LivePoll.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAGpD,OAAO,KAAK,EAAE,kBAAkB,EAAc,MAAM,YAAY,CAAA;AAEhE,KAAK,aAAa,GAAG,kBAAkB,GAAG;IACxC,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AA+ED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAoG5C,CAAA"}