conversation-replay 0.1.9 → 0.1.11

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 (3) hide show
  1. package/README.md +21 -32
  2. package/dist/cli.js +42 -6
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -1,35 +1,20 @@
1
1
  # Conversation Replay
2
2
 
3
- Create animated replays of text conversations.
3
+ Create annotated replays of text conversations.
4
4
 
5
5
  After parsing the annotated conversation data you supply in a YAML file, this tool will generate a self-contained embeddable HTML file. The published conversation can help with security awareness training and other communications that involve presenting an annotated text conversation.
6
6
 
7
- - [Conversation Replay](#conversation-replay)
8
- - [How This Is Useful](#how-this-is-useful)
9
- - [Installation](#installation)
10
- - [Run Without Installing (Recommended)](#run-without-installing-recommended)
11
- - [Global Install](#global-install)
12
- - [Install from GitHub](#install-from-github)
13
- - [Quick Start](#quick-start)
14
- - [YAML Schema](#yaml-schema)
15
- - [Basic Structure](#basic-structure)
16
- - [Step Types](#step-types)
17
- - [Message Options](#message-options)
18
- - [Meta Options](#meta-options)
19
- - [Output Features](#output-features)
20
- - [Embedding in Websites](#embedding-in-websites)
21
- - [Automatic "Seamless" Mode](#automatic-seamless-mode)
22
- - [Basic Iframe Code](#basic-iframe-code)
23
- - [Dark Mode Sync](#dark-mode-sync)
24
- - [Multi-Scenario Demos](#multi-scenario-demos)
25
- - [Development](#development)
26
- - [Repository Structure](#repository-structure)
27
- - [Commands](#commands)
28
- - [AI Agent Quick Reference](#ai-agent-quick-reference)
29
- - [Key Files](#key-files)
30
- - [Architecture](#architecture)
31
- - [Threat Modeling](#threat-modeling)
32
- - [Author](#author)
7
+ - [How This Is Useful](#how-this-is-useful)
8
+ - [Installation](#installation)
9
+ - [Quick Start](#quick-start)
10
+ - [YAML Schema](#yaml-schema)
11
+ - [Output Features](#output-features)
12
+ - [Embedding in Websites](#embedding-in-websites)
13
+ - [Multi-Scenario Demos](#multi-scenario-demos)
14
+ - [Development](#development)
15
+ - [AI Agent Quick Reference](#ai-agent-quick-reference)
16
+ - [Threat Modeling](#threat-modeling)
17
+ - [Author](#author)
33
18
 
34
19
 
35
20
  ## How This Is Useful
@@ -43,13 +28,17 @@ Conversation Replay lets you:
43
28
  - **Slick Design:** Modern UI, nice typography, clean colors, and smooth animations
44
29
  - **Embed Anywhere:** Seamlessly integrates into blogs and LMS platforms
45
30
 
46
- Want to see it in action? Open the pre-generated demo replays [examples/london-scam.html](examples/london-scam.html) or [examples/ir-report.html](examples/ir-report.html) in your browser.
31
+ To see it in action, see the replays embedded in the following articles as well as the corresponding files in the [examples folder](examples/).
32
+
33
+ * [Write Good Incident Response Reports Using Your AI Tool](https://zeltser.com/good-ir-reports-with-ai)
34
+ * [When Bots Chat With Social Network Participants
35
+ ](https://zeltser.com/bots-chatting-on-social-networks)
47
36
 
48
37
  ## Installation
49
38
 
50
39
  ### Run Without Installing (Recommended)
51
40
 
52
- The easiest way to use Conversation Replay—no installation required—after you create the annotated conversation file demo.yaml:
41
+ The easiest way to use Conversation Replay (no installation required) after you create the annotated conversation file demo.yaml:
53
42
 
54
43
  ```bash
55
44
  # Using npx (comes with Node.js)
@@ -189,16 +178,16 @@ meta:
189
178
  ```
190
179
 
191
180
  Custom colors (New Slate/Indigo Default Palette):
192
- You can override any color, but the defaults are designed for a premium look:
181
+ You can override any color:
193
182
  ```yaml
194
183
  meta:
195
184
  colors:
196
185
  accent: "#4f46e5" # Indigo 600 (Buttons, links)
197
186
  pageBg: "#f8fafc" # Slate 50 (Page background standalone)
198
187
  canvasBg: "#ffffff" # Chat container background
199
- leftBg: "#eef2ff" # Indigo 50 (Left/User bubble)
188
+ leftBg: "#eef2ff" # Indigo 50 (Left bubble)
200
189
  leftBorder: "transparent" # Border for left bubble
201
- rightBg: "#f1f5f9" # Slate 100 (Right/AI bubble)
190
+ rightBg: "#f1f5f9" # Slate 100 (Right bubble)
202
191
  rightBorder: "transparent" # Border for right bubble
203
192
  tabInactiveColor: "#94a3b8" # Slate 400
204
193
  annotationText: "#475569" # Slate 600 (Annotation text color)
package/dist/cli.js CHANGED
@@ -7270,8 +7270,8 @@ import { writeFile } from "node:fs/promises";
7270
7270
  // package.json
7271
7271
  var package_default = {
7272
7272
  name: "conversation-replay",
7273
- version: "0.1.9",
7274
- description: "Create animated text conversation replays",
7273
+ version: "0.1.11",
7274
+ description: "Create annotated replays of text conversations",
7275
7275
  main: "dist/cli.js",
7276
7276
  type: "module",
7277
7277
  bin: {
@@ -7477,14 +7477,43 @@ function generateCss(theme, hasMultipleScenarios, colors, cornerStyle, initialBl
7477
7477
  }
7478
7478
 
7479
7479
  @media (max-width: 600px) {
7480
+ .tabs {
7481
+ flex-wrap: nowrap;
7482
+ overflow-x: auto;
7483
+ overflow-y: hidden; /* Prevent vertical movement */
7484
+ -webkit-overflow-scrolling: touch;
7485
+ padding-bottom: 0;
7486
+ max-width: 100%; /* Ensure it doesn't overflow parent */
7487
+ /* Hide scrollbars */
7488
+ scrollbar-width: none;
7489
+ -ms-overflow-style: none;
7490
+ }
7491
+
7492
+ .tabs::-webkit-scrollbar {
7493
+ display: none;
7494
+ }
7495
+
7480
7496
  .tab {
7481
7497
  padding: 10px 14px;
7482
7498
  font-size: 12px;
7483
- flex: 1;
7499
+ flex: 0 0 auto; /* Don't shrink, let them scroll */
7484
7500
  text-align: center;
7485
7501
  min-width: 0;
7502
+ white-space: nowrap;
7486
7503
  }
7487
7504
  }
7505
+
7506
+ /* In iframe, ensure non-active tabs are visible against potentially dark/complex backgrounds */
7507
+ body.in-iframe .tab:not(.active) {
7508
+ background: rgba(255, 255, 255, 0.5);
7509
+ backdrop-filter: blur(4px);
7510
+ -webkit-backdrop-filter: blur(4px);
7511
+ }
7512
+
7513
+ :root[data-theme="dark"] body.in-iframe .tab:not(.active) {
7514
+ background: rgba(30, 41, 59, 0.5);
7515
+ color: rgba(248, 250, 252, 0.7);
7516
+ }
7488
7517
  ` : "";
7489
7518
  return `
7490
7519
  *, *::before, *::after {
@@ -7839,6 +7868,11 @@ function generateCss(theme, hasMultipleScenarios, colors, cornerStyle, initialBl
7839
7868
  .play-overlay-icon {
7840
7869
  width: 64px; /* Slightly smaller for elegance */
7841
7870
  height: 64px;
7871
+ flex: 0 0 auto; /* Prevent squishing on small screens */
7872
+ min-width: 64px;
7873
+ min-height: 64px;
7874
+ aspect-ratio: 1/1; /* Enforce square aspect ratio */
7875
+ margin: auto; /* Center in flex container if needed */
7842
7876
  background: white;
7843
7877
  border-radius: 50%;
7844
7878
  display: flex;
@@ -8357,6 +8391,8 @@ function generateCss(theme, hasMultipleScenarios, colors, cornerStyle, initialBl
8357
8391
  .play-overlay-icon {
8358
8392
  width: 70px;
8359
8393
  height: 70px;
8394
+ min-width: 70px;
8395
+ min-height: 70px;
8360
8396
  }
8361
8397
 
8362
8398
  .play-overlay-icon svg {
@@ -8376,13 +8412,13 @@ function generateCss(theme, hasMultipleScenarios, colors, cornerStyle, initialBl
8376
8412
  padding: 8px;
8377
8413
  }
8378
8414
 
8415
+ /* Very small phones - keep scrolling tabs instead of stacking */
8379
8416
  .tabs {
8380
- flex-direction: column;
8381
8417
  gap: 4px;
8382
8418
  }
8383
8419
 
8384
8420
  .tab {
8385
- width: 100%;
8421
+ /* width: 100%; Removed to prevent full stacking */
8386
8422
  text-align: center;
8387
8423
  }
8388
8424
 
@@ -9363,7 +9399,7 @@ async function buildDemo(demo, outputPath, options = {}) {
9363
9399
 
9364
9400
  // src/cli.ts
9365
9401
  var HELP = `
9366
- conversation-replay - Create animated conversation demos from YAML
9402
+ conversation-replay - Create annotated replays of text conversations from YAML
9367
9403
 
9368
9404
  Usage:
9369
9405
  conversation-replay build <scenario.yaml> -o <output.html> [options]
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "conversation-replay",
3
- "version": "0.1.9",
4
- "description": "Create animated text conversation replays",
3
+ "version": "0.1.11",
4
+ "description": "Create annotated replays of text conversations",
5
5
  "main": "dist/cli.js",
6
6
  "type": "module",
7
7
  "bin": {