@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.
- package/demo/workflow-demo.html +53 -8
- package/package.json +1 -1
package/demo/workflow-demo.html
CHANGED
|
@@ -583,12 +583,32 @@
|
|
|
583
583
|
|
|
584
584
|
/* Audio highlight effect for elements being narrated */
|
|
585
585
|
.audio-highlighted {
|
|
586
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
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