@hustle-together/api-dev-tools 2.0.6 → 2.0.7

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.
@@ -583,12 +583,32 @@
583
583
 
584
584
  /* Audio highlight effect for elements being narrated */
585
585
  .audio-highlighted {
586
- box-shadow: 0 0 30px var(--accent-red-glow), 0 0 60px var(--accent-red-glow) !important;
586
+ outline: 2px solid var(--accent-red) !important;
587
+ outline-offset: 4px;
587
588
  border-color: var(--accent-red) !important;
588
- transform: scale(1.02);
589
589
  transition: all 0.3s ease !important;
590
590
  }
591
591
 
592
+ /* For container elements (cards, boxes), use glow effect */
593
+ .audio-highlighted.solution-card,
594
+ .audio-highlighted.phase-box,
595
+ .audio-highlighted.gap-item,
596
+ .audio-highlighted.phase-node {
597
+ box-shadow: 0 0 25px var(--accent-red-glow) !important;
598
+ outline: none !important;
599
+ transform: scale(1.02);
600
+ }
601
+
602
+ /* For text elements (headings, brand), use subtle underline/border */
603
+ .audio-highlighted h2,
604
+ h2.audio-highlighted,
605
+ .hustle-brand.audio-highlighted {
606
+ box-shadow: none !important;
607
+ outline: none !important;
608
+ border-bottom: 3px solid var(--accent-red) !important;
609
+ padding-bottom: 8px;
610
+ }
611
+
592
612
  /* Progress indicator */
593
613
  .progress-bar {
594
614
  position: fixed;
@@ -1713,7 +1733,7 @@
1713
1733
  <span class="hustle-word hustle-highlight">API-DEV-TOOLS</span>
1714
1734
  </div>
1715
1735
  <div class="package-name" id="packageName">@hustle-together/api-dev-tools</div>
1716
- <div class="version" id="versionText">v2.0.6</div>
1736
+ <div class="version" id="versionText">v2.0.7</div>
1717
1737
  <p class="tagline">"Hustle together. Share resources. Build stronger."<span class="cursor"></span></p>
1718
1738
 
1719
1739
  <div class="intro-text">
@@ -2546,11 +2566,13 @@
2546
2566
  const phaseArrows = document.querySelectorAll('#introFlow .phase-connector-arrow');
2547
2567
 
2548
2568
  // Create a separate timeline for the lighting sequence that loops
2549
- const lightingTL = gsap.timeline({
2569
+ // Store globally so we can pause during narration
2570
+ window.introLightingTL = gsap.timeline({
2550
2571
  repeat: -1,
2551
2572
  repeatDelay: 1,
2552
2573
  delay: 3 // Wait for intro animation to complete
2553
2574
  });
2575
+ const lightingTL = window.introLightingTL;
2554
2576
 
2555
2577
  phaseNodes.forEach((node, i) => {
2556
2578
  lightingTL
@@ -2840,10 +2862,20 @@
2840
2862
  currentHighlight = el;
2841
2863
  el.classList.add('audio-highlighted');
2842
2864
  el.scrollIntoView({ behavior: 'smooth', block: 'center' });
2843
- gsap.fromTo(el,
2844
- { boxShadow: '0 0 0px var(--accent-red-glow)' },
2845
- { boxShadow: '0 0 40px var(--accent-red-glow), 0 0 80px var(--accent-red-glow)', duration: 0.4, ease: 'power2.out' }
2846
- );
2865
+
2866
+ // Only apply box-shadow GSAP animation to container elements, not text
2867
+ const isContainer = el.classList.contains('solution-card') ||
2868
+ el.classList.contains('phase-box') ||
2869
+ el.classList.contains('gap-item') ||
2870
+ el.classList.contains('phase-node') ||
2871
+ el.classList.contains('install-command');
2872
+
2873
+ if (isContainer) {
2874
+ gsap.fromTo(el,
2875
+ { boxShadow: '0 0 0px var(--accent-red-glow)' },
2876
+ { boxShadow: '0 0 30px var(--accent-red-glow)', duration: 0.4, ease: 'power2.out' }
2877
+ );
2878
+ }
2847
2879
  }
2848
2880
  } catch (e) {
2849
2881
  console.warn('Could not highlight:', selector, e);
@@ -2931,6 +2963,14 @@
2931
2963
  playBtn.classList.add('active');
2932
2964
  playBtn.textContent = '⏸ STOP';
2933
2965
 
2966
+ // Pause the intro lighting animation to avoid visual conflict
2967
+ if (window.introLightingTL) {
2968
+ window.introLightingTL.pause();
2969
+ // Reset the phase nodes to clean state
2970
+ document.querySelectorAll('#introFlow .phase-node').forEach(n => n.classList.remove('active'));
2971
+ document.querySelectorAll('#introFlow .phase-connector-arrow').forEach(a => a.classList.remove('active'));
2972
+ }
2973
+
2934
2974
  // Scroll to top first
2935
2975
  window.scrollTo({ top: 0, behavior: 'smooth' });
2936
2976
 
@@ -2975,6 +3015,11 @@
2975
3015
  removeHighlight();
2976
3016
  highlightIndex = 0;
2977
3017
  currentSectionIdx = 0;
3018
+
3019
+ // Resume the intro lighting animation
3020
+ if (window.introLightingTL) {
3021
+ window.introLightingTL.restart();
3022
+ }
2978
3023
  }
2979
3024
 
2980
3025
  // Audio ended
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hustle-together/api-dev-tools",
3
- "version": "2.0.6",
3
+ "version": "2.0.7",
4
4
  "description": "Interview-driven API development workflow for Claude Code - Automates research, testing, and documentation",
5
5
  "main": "bin/cli.js",
6
6
  "bin": {