@orchyn/mcp 1.17.7 → 1.17.8

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.
@@ -49,8 +49,18 @@ body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--
49
49
  .stagger>*:nth-child(8){animation-delay:.4s}
50
50
 
51
51
  /* ─── Cards ─── */
52
- .gallery{display:flex;flex-wrap:wrap;gap:10px;}
53
- .card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;width:380px;background:var(--card);display:inline-block;vertical-align:top;box-shadow:var(--shadow-sm);transition:var(--transition);cursor:default;}
52
+ .gallery-wrap{position:relative;margin:0 -4px}
53
+ .gallery{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding:4px 4px 8px;scrollbar-width:none}
54
+ .gallery::-webkit-scrollbar{display:none}
55
+ .gallery-dots{display:flex;justify-content:center;gap:6px;margin-top:10px;flex-wrap:wrap}
56
+ .gallery-dots .dot{width:8px;height:8px;border-radius:50%;background:var(--border);border:none;cursor:pointer;transition:var(--transition);padding:0}
57
+ .gallery-dots .dot.active{background:var(--accent);transform:scale(1.3)}
58
+ .gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow-md);cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--fg);transition:var(--transition);opacity:0}
59
+ .gallery-wrap:hover .gallery-nav{opacity:1}
60
+ .gallery-nav:hover{background:var(--accent);color:#fff}
61
+ .gallery-nav.prev{left:-16px}
62
+ .gallery-nav.next{right:-16px}
63
+ .card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;width:380px;min-width:380px;background:var(--card);display:block;box-shadow:var(--shadow-sm);transition:var(--transition);cursor:default;scroll-snap-align:start;flex-shrink:0}
54
64
  .card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--muted);}
55
65
  .card-wide{width:100%;}
56
66
  .card img{width:100%;height:260px;object-fit:cover;display:block;transition:transform .3s ease;}
@@ -487,6 +497,58 @@ body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--
487
497
  return result;
488
498
  }
489
499
 
500
+ var galleryId=0;
501
+ function galleryWrap(cardsHtml,count){
502
+ var id="gal"+(galleryId++);
503
+ if(count<=1)return cardsHtml;
504
+ var dots="";
505
+ for(var i=0;i<count;i++)dots+='<button class="dot'+(i===0?" active":"")+'" data-g="'+id+'" data-i="'+i+'"></button>';
506
+ return '<div class="gallery-wrap fade-in">'
507
+ +'<button class="gallery-nav prev" data-gnav="'+id+'" data-dir="-1">\u2039</button>'
508
+ +'<div class="gallery" id="'+id+'">'+cardsHtml+'</div>'
509
+ +'<button class="gallery-nav next" data-gnav="'+id+'" data-dir="1">\u203a</button>'
510
+ +'<div class="gallery-dots" id="'+id+'-dots">'+dots+'</div>'
511
+ +'</div>';
512
+ }
513
+ function initGalleryNav(){
514
+ document.addEventListener('click',function(e){
515
+ var navBtn=e.target.closest('.gallery-nav[data-gnav]');
516
+ if(navBtn){
517
+ var g=document.getElementById(navBtn.getAttribute('data-gnav'));
518
+ if(!g)return;
519
+ var dir=Number(navBtn.getAttribute('data-dir'));
520
+ var cardW=g.querySelector('.card')?.offsetWidth||380;
521
+ g.scrollBy({left:dir*(cardW+12),behavior:'smooth'});
522
+ return;
523
+ }
524
+ var dotBtn=e.target.closest('.dot[data-g]');
525
+ if(dotBtn){
526
+ var gId=dotBtn.getAttribute('data-g');
527
+ var g=document.getElementById(gId);
528
+ var dots=document.getElementById(gId+'-dots');
529
+ if(!g||!dots)return;
530
+ var idx=Number(dotBtn.getAttribute('data-i'));
531
+ var cards=g.querySelectorAll('.card');
532
+ if(cards[idx])cards[idx].scrollIntoView({behavior:'smooth',block:'nearest',inline:'start'});
533
+ dots.querySelectorAll('.dot').forEach(function(d){d.classList.remove('active')});
534
+ dotBtn.classList.add('active');
535
+ }
536
+ });
537
+ document.addEventListener('scroll',function(e){
538
+ if(!e.target.classList||!e.target.classList.contains('gallery'))return;
539
+ var g=e.target;var gId=g.id;
540
+ var dots=document.getElementById(gId+'-dots');
541
+ if(!dots)return;
542
+ var cards=g.querySelectorAll('.card');
543
+ if(!cards.length)return;
544
+ var scrollLeft=g.scrollLeft;var cardW=cards[0].offsetWidth+12;
545
+ var active=Math.round(scrollLeft/cardW);
546
+ active=Math.max(0,Math.min(active,cards.length-1));
547
+ dots.querySelectorAll('.dot').forEach(function(d,i){d.classList.toggle('active',i===active)});
548
+ },true);
549
+ }
550
+ initGalleryNav();
551
+
490
552
  function render(result){
491
553
  var app=document.getElementById("app");if(!app)return;
492
554
  var d=extractResult(result);
@@ -499,11 +561,11 @@ body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--
499
561
  // Posts gallery
500
562
  if(d.posts&&Array.isArray(d.posts)){
501
563
  if(!d.posts.length){app.innerHTML='<div class="empty-state fade-in"><div class="icon">🔍</div><div class="text">No posts found</div></div>';return;}
502
- app.innerHTML='<div class="gallery stagger">'+d.posts.map(function(p){return postCard(p,false);}).join("")+"</div>";return;}
564
+ app.innerHTML=galleryWrap(d.posts.map(function(p){return postCard(p,false);}).join(""),d.posts.length);return;}
503
565
  // Creators
504
566
  if(d.creators&&Array.isArray(d.creators)){
505
567
  if(!d.creators.length){app.innerHTML='<div class="empty-state fade-in"><div class="icon">👤</div><div class="text">No creators found</div></div>';return;}
506
- app.innerHTML='<div class="gallery stagger">'+d.creators.map(function(c){return creatorCard(c);}).join("")+"</div>";return;}
568
+ app.innerHTML=galleryWrap(d.creators.map(function(c){return creatorCard(c);}).join(""),d.creators.length);return;}
507
569
  // Comments
508
570
  if(d.comments&&Array.isArray(d.comments)){
509
571
  var ch=d.comments.slice(0,15).map(function(c){
@@ -516,7 +578,7 @@ body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--
516
578
  +'<div style="font-size:16px;font-weight:700;margin-bottom:12px">💬 Comments ('+d.comments.length+')</div>'+ch+"</div></div>";return;}
517
579
  // Sounds
518
580
  if(d.sounds&&Array.isArray(d.sounds)){
519
- app.innerHTML='<div class="gallery stagger">'+d.sounds.map(function(s){
581
+ app.innerHTML=galleryWrap(d.sounds.map(function(s){
520
582
  var color=pColor(s.platform||"tiktok");
521
583
  var cover=s.coverUrl?'<img class="sound-cover" src="'+esc(s.coverUrl)+'" alt="cover" loading="lazy"/>'
522
584
  :'<div class="sound-cover" style="background:'+color+'15;display:flex;align-items:center;justify-content:center;font-size:26px">🎵</div>';
@@ -527,7 +589,7 @@ body{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--
527
589
  +'<div style="font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">'+esc(s.title||"")+"</div>"
528
590
  +'<div style="font-size:12px;color:var(--muted)">'+esc(s.artist||s.author||"")+(s.duration?" • "+esc(s.duration):"")+"</div>"
529
591
  +playBtn+"</div></div></div>";
530
- }).join("")+"</div>";return;}
592
+ }).join(""),d.sounds.length);return;}
531
593
  // Credits
532
594
  if(d.balance!=null||d.tier){
533
595
  var bal=Number(d.balance)||0,tier=d.tier||"",ff=d.firstFreeTools||[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orchyn/mcp",
3
- "version": "1.17.7",
3
+ "version": "1.17.8",
4
4
  "description": "MCP server for orchyn - fetch, discover and understand TikTok/Instagram/YouTube/X/LinkedIn posts with AI (media metadata, niche discovery, hook & viral analysis)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",