@gymmymac/bob-widget 3.1.20 → 3.2.2

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/CHANGELOG.md CHANGED
@@ -5,6 +5,47 @@ All notable changes to the `@gymmymac/bob-widget` package will be documented in
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [v3.2.2] - 2026-02-15
9
+
10
+ ### Fixed
11
+ - 🛡️ **Host CSS Override Protection**: PTT button, chat bar input, and state overlay styles now use CSS Custom Properties consumed by scoped `!important` rules (`.bob-widget-root .bob-ptt-btn` etc.) to resist host-site CSS overrides — fixes green PTT and white chat bar not rendering on CARFIX
12
+ - 🎨 **Keyframe Colour Correction**: `ptt-pulse` and `ring-breathe` animations updated from blue (`rgba(0,102,204)`) to green (`rgba(34,197,94)`)
13
+
14
+ ---
15
+
16
+ ## [v3.2.1] - 2026-02-15
17
+
18
+ ### Added
19
+ - 📜 **Auto-Scroll to Highlighted Category**: Mobile/tablet product shelf now auto-scrolls to the matching partslot group when Bob mentions a specific part type (e.g. "front pads"), bringing parity with desktop behaviour
20
+
21
+ ### Changed
22
+ - 🟢 **PTT Idle Button Colour**: Changed from blue to green to match the breathing idle ring
23
+
24
+ ### Fixed
25
+ - 🛡️ **Host CSS Override Protection**: PTT button, chat bar input, and state overlay styles now resist host-site CSS overrides via scoped `!important` rules with CSS Custom Properties
26
+ - 🎨 **Keyframe Colour Correction**: `ptt-pulse` and `ring-breathe` animations updated from blue to green
27
+
28
+ ---
29
+
30
+ ## [v3.2.0] - 2026-02-15
31
+
32
+ ### Added
33
+ - 🎯 **PTT 4-State Visual Feedback**: Push-to-Talk button now provides visual cues via circumference rings and chat bar overlays across four states (idle, listening, processing, speaking)
34
+ - 🟢 **Green Idle PTT**: Idle state uses green button and breathing green ring to indicate "action required"
35
+ - 🟠 **Orange Listening State**: Expanding orange wave rings around PTT + pulsing dot in chat bar
36
+ - ⚙️ **Processing Overlay**: Grey contracting ring + "Bob is researching your input." message in chat bar
37
+ - 🔊 **Speaking Waveform**: Green glowing ring + 5-bar CSS waveform visualizer in chat bar with muted warning icon
38
+
39
+ ### Changed
40
+ - 🎨 **Chat Bar**: White background (#FFFFFF) with Deep Navy text (#0F172A) for high contrast — enforced via `!important` overrides to prevent host-site bleeding
41
+ - 🔤 **Processing Text**: Changed from "Bob is thinking..." to "Bob is researching your input."
42
+ - 🟢 **PTT Button Colour**: Idle state changed from blue to green to match the idle ring
43
+
44
+ ### Fixed
45
+ - 🎨 **Chat Bar Dark Blue Override**: Fixed `widget-reset.css` forcing dark blue background on inputs — now forces white
46
+
47
+ ---
48
+
8
49
  ## [3.1.20] - 2026-02-13
9
50
 
10
51
  ### Added
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  AI-powered automotive parts assistant widget for partner websites.
4
4
 
5
- **Current Version:** 3.1.20 | **36 unit tests** | **8+ E2E scenarios** | Production-ready
5
+ **Current Version:** v3.2.1 | **36 unit tests** | **8+ E2E scenarios** | Production-ready
6
6
 
7
7
  ---
8
8
 
@@ -18,7 +18,7 @@ const __filename = fileURLToPath(import.meta.url);
18
18
  const __dirname = dirname(__filename);
19
19
  const INSTALL_DIR = join(__dirname, '..', 'install', 'carfix');
20
20
 
21
- const VERSION = '3.1.20';
21
+ const VERSION = '3.2.1';
22
22
 
23
23
  const COLORS = {
24
24
  reset: '\x1b[0m',
@@ -0,0 +1,13 @@
1
+ /**
2
+ * PTT Long-Press Protection Tests
3
+ *
4
+ * Verifies the 3-layer defense against mobile browsers triggering
5
+ * "Save image" context menus when users long-press the PTT button.
6
+ *
7
+ * Layer 1: CSS properties on all widget images (-webkit-touch-callout, user-select, draggable)
8
+ * Layer 2: contextmenu event prevention on the widget container
9
+ * Layer 3: preventDefault() on PTT touchstart/mousedown handlers
10
+ *
11
+ * See: .lovable/plan.md - "Fix: PTT Long-Press Triggers Save Image on Mobile"
12
+ */
13
+ export {};