PageSourceSearch

https://circassianweb.com/assets/TamgaPage-BG8cj2Zu.js

js circassianweb.com collected 2026-10-02 17:55:17 UTC 192,171 bytes, 6 lines download raw bytes

1import{r as u,j as e}from"./vendor-ui-Dew8CZxq.js";import{a as U,u as Xa,c as oe}from"./vendor-query-Cjd1QUxP.js";import{c as Es,d as de,ar as be,ag as De,aT as re,bc as ya,Y as ae,aw as Ce,aU as Q,D as Ve,k as Ge,l as Za,m as Ja,U as ja,ax as Qe,bx as Ke,G as ze,c6 as Fs,b1 as Ne,be as ua,bf as ha,b2 as ke,a7 as me,e as Rs,cn as es,B as X,am as Me,W as ee,aB as Ea,Z as $e,_ as Oe,$ as Ue,a0 as He,a6 as as,a1 as Se,a5 as pe,aO as Ms,aj as ss,X as ts,an as G,s as A,ac as rs,P as is,g as ls,h as ns,al as Te,ao as je,ap as ve,aq as we,ad as xa,bn as $s,b3 as Os,aL as Us,a as da,I as Hs,aN as Ws,f as Vs,bb as Gs,bY as Qs,bD as Ys,p as Xs,q as Zs,v as Js,x as Fa,j as et,ai as at,af as st,E as tt,b7 as rt,bs as it,cb as lt,b4 as Ra,b5 as Ma,b8 as nt,bq as ot,N as dt,O as ct,Q as _e,V as ye}from"./index-DFuwCptV.js";import{S as ga}from"./skeleton-CvxAH_3S.js";import{L as va,a as os,b as mt}from"./vendor-router-DljXtjbj.js";import{T as ds}from"./tree-deciduous-BMIFWfNe.js";import{g as ut,p as $a,c as Oa}from"./transliterate-BzHPnEW0.js";import{T as ht}from"./TamgaReportDialog-BY56xq3R.js";import{E as wa}from"./external-link-zWb_6rlJ.js";import cs from"./AuthModal-RSIw9f9K.js";import{U as xt}from"./upload-CtS1OzKY.js";import{A as ms}from"./arrow-left-right-BmHsjaYD.js";import{L as gt}from"./layers-CrI754Bz.js";import ft from"./purify.es-B9ZVCkUG.js";import{U as pt}from"./user-minus-c3MlehJC.js";import{f as bt}from"./format-DMsKc6K-.js";import{u as yt,U as jt}from"./UrlPreviewCard-8NJ_DDnR.js";import{S as vt}from"./ShareContentDialog-CzSd94dR.js";import{f as ca}from"./dateLocale-dvUsQFT_.js";import{A as wt}from"./AiImageDialog-C9gtzxNn.js";import{E as Nt}from"./ellipsis-GSAw2rNP.js";import{Z as kt}from"./zoom-in-DXbhEYRR.js";import{g as It}from"./pageSeoTranslations-CZesfDB3.js";import{S as At}from"./SidebarLayout-D8Rdd3Io.js";import{S as _t}from"./ServicePageHeader-BXi0VbiV.js";import{A as Ct}from"./archive-DLksiWjA.js";import{L as Tt}from"./link-v6wVUpTr.js";import"./vendor-supabase-BOCL3uOH.js";import"./vendor-charts-Da-j9H4-.js";import"./vendor-editor-Ct-iNwJc.js";import"./auth-register-image-CKw0NjvU.js";import"./checkbox-B5Si2vjD.js";import"./index-9O2INCfF.js";import"./mail-xGzvri7f.js";import"./imageProxy-BW3G_cGR.js";import"./shareUtils-CYJxVENR.js";import"./wand-sparkles-CCL0BCfE.js";/**
2 * @license lucide-react v0.462.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const Dt=Es("SendHorizontal",[["path",{d:"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z",key:"117uat"}],["path",{d:"M6 12h16",key:"s4cdu5"}]]),us=["Kabardian","Adyghe","Cherkess","Balkarian","Abazin","Karachay"],St=[...us,"Other"],Kt=new Set(["abdzakh","abzakh","besleney","bzhedug","hatuqway","mamkhegh","natukhay","natukhai","shapsug","temirgoy","ubykh","yegeruqway","zhaney"]),fa=s=>{const n=(s||"").trim().toLowerCase();return n?n.includes("kabardian")||n.includes("каб")?"Kabardian":n.includes("karachay")||n.includes("кара")?"Karachay":n.includes("balkarian")||n.includes("balkar")||n.includes("балкар")?"Balkarian":n.includes("abazin")||n.includes("abaza")||n.includes("abkhaz")||n.includes("абаз")||n.includes("абхаз")?"Abazin":n.includes("cherkess")||n.includes("cherk")||n.includes("черк")?"Cherkess":n.includes("adyghe")||n.includes("adyg")||n.includes("адыг")||Kt.has(n)||n.includes("бесл")||n.includes("беслен")||n.includes("убых")?"Adyghe":"Other":"Other"},zt=({tamgas:s,treesWithTamga:n,isLoading:t})=>{const{t:c,isRTL:h}=de(),[f,D]=u.useState(""),[l,w]=u.useState(null),[I,p]=u.useState(null),S=u.useMemo(()=>{const o=new Set(s.map(g=>fa(g.tribe)));return St.filter(g=>o.has(g))},[s]);u.useMemo(()=>{S.length>0&&!I&&p(S[0])},[S,I]);const i=u.useMemo(()=>{const o={};return s.forEach(g=>{const v=f.toLowerCase();if(!f||g.name.toLowerCase().includes(v)||g.tribe.toLowerCase().includes(v)||g.family_name?.toLowerCase().includes(v)||g.description?.toLowerCase().includes(v)||g.name_ar?.toLowerCase().includes(v)||g.name_tr?.toLowerCase().includes(v)||g.name_ru?.toLowerCase().includes(v)||g.name_ady?.toLowerCase().includes(v)||g.name_he?.toLowerCase().includes(v)){const y=fa(g.tribe);o[y]||(o[y]=[]),o[y].push(g)}}),o},[s,f]),C=o=>n.filter(g=>g.tribe===o.tribe);if(t)return e.jsxs("div",{className:"space-y-8",children:[e.jsx(ga,{className:"h-12 w-full rounded-xl"}),e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-4",children:Array.from({length:8}).map((o,g)=>e.jsx(ga,{className:"h-48 rounded-2xl"},g))})]});const T=I?i[I]||[]:[];return e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"rounded-xl border bg-card p-5 space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-primary/10 flex items-center justify-center shrink-0",children:e.jsx(be,{className:"w-5 h-5 text-primary"})}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("h3",{className:"font-semibold text-sm",children:c("tamga.aboutTitle")}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:c("tamga.aboutDesc")})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 text-xs text-muted-foreground pl-[52px]",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx(De,{className:"w-3.5 h-3.5 text-yellow-500"})," ",c("tamga.aboutUsedFor")]}),e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx(re,{className:"w-3.5 h-3.5 text-muted-foreground"})," ",c("tamga.aboutUnique")]})]})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:c("tamga.galleryDesc")}),e.jsxs("div",{className:"relative",children:[e.jsx(ya,{className:`absolute top-2.5 w-4 h-4 text-muted-foreground ${h?"right-3":"left-3"}`}),e.jsx(ae,{placeholder:c("tamga.searchPlaceholder")||"Search tamgas...",value:f,onChange:o=>D(o.target.value),className:h?"pr-9":"pl-9"})]}),S.length===0?e.jsxs("div",{className:"text-center py-16",children:[e.jsx(re,{className:"w-12 h-12 text-muted-foreground mx-auto mb-3"}),e.jsx("p",{className:"text-muted-foreground",children:c("tamga.noResults")||"No tamgas found. Admins can add tamgas from the admin panel."})]}):e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"flex flex-wrap gap-2",children:S.map(o=>{const g=i[o]?.length||0,v=I===o;return s.find(d=>d.tribe===o),g===0&&f?null:e.jsxs("button",{onClick:()=>p(o),className:`flex items-center gap-2 px-3 py-2 text-sm rounded-xl border transition-all duration-200 ${v?"bg-primary text-primary-foreground border-primary shadow-md shadow-primary/20":"bg-card hover:bg-muted border-border hover:border-primary/30"}`,children:[e.jsx("div",{className:`w-5 h-5 rounded-full flex items-center justify-center shrink-0 overflow-hidden ${v?"bg-primary-foreground
6/20":"bg-foreground/10"}`,children:e.jsx(re,{className:"w-3 h-3 opacity-60"})}),e.jsx("span",{className:"font-medium",children:Ce(o,c)}),e.jsx("span",{className:`text-xs px-1.5 py-0.5 rounded-full ${v?"bg-primary-foreground/20":"bg-muted"}`,children:g})]},o)})}),I&&e.jsxs("div",{className:"flex items-center gap-3 pt-2",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-primary/10 flex items-center justify-center",children:e.jsx(re,{className:"w-4 h-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-lg",children:Ce(I,c)}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[T.length," ",c("tamga.tamgas")||"tamgas"]})]})]}),T.length===0?e.jsx("p",{className:"text-sm text-muted-foreground text-center py-8",children:c("tamga.noResults")||"No matching tamgas."}):e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4",children:T.map(o=>e.jsxs("div",{className:"group cursor-pointer rounded-2xl border bg-card hover:border-primary/40 hover:shadow-lg hover:shadow-primary/5 transition-all duration-300 overflow-hidden",onClick:()=>w(o),children:[e.jsx("div",{className:"bg-gradient-to-b from-muted/50 to-card flex items-center justify-center aspect-square relative overflow-hidden",children:o.image_url?e.jsx("img",{src:o.image_url,alt:o.name,className:"w-[75%] h-[75%] object-contain group-hover:scale-110 transition-transform duration-300",loading:"lazy"}):e.jsx(re,{className:"w-12 h-12 text-primary/20"})}),e.jsxs("div",{className:"p-3 space-y-1.5 border-t",children:[e.jsx("h4",{className:"font-bold text-sm leading-tight group-hover:text-primary transition-colors line-clamp-1",children:o.family_name?o.family_name.split("/")[0].trim():o.name.replace(" Tamga","")}),o.family_name&&o.family_name.includes("/")&&e.jsx("p",{className:"text-xs text-muted-foreground line-clamp-1",children:o.family_name.split("/")[1]?.trim()}),e.jsx(Q,{variant:"secondary",className:"text-[10px] px-1.5 py-0",children:Ce(o.tribe,c)})]})]},o.id))})]}),e.jsx(Ve,{open:!!l,onOpenChange:()=>w(null),children:e.jsx(Ge,{className:"max-w-md max-h-[90vh] overflow-y-auto",children:l&&e.jsxs(e.Fragment,{children:[e.jsx(Za,{children:e.jsx(Ja,{className:"flex items-center gap-2 text-lg",children:l.name})}),e.jsx("div",{className:"flex justify-center my-2",children:e.jsx("div",{className:"w-36 h-36 rounded-full bg-white border-4 border-primary flex items-center justify-center shadow-xl shadow-primary/15 relative overflow-hidden",children:l.image_url?e.jsx("img",{src:l.image_url,alt:l.name,className:"w-[75%] h-[75%] object-contain",loading:"lazy"}):e.jsx(re,{className:"w-14 h-14 text-primary/30"})})}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("div",{className:"flex justify-center",children:e.jsx(Q,{className:"bg-primary hover:bg-primary/90 text-primary-foreground",children:Ce(l.tribe,c)})}),l.family_name&&e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(ja,{className:"w-4 h-4 text-primary mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-muted-foreground",children:c("tamga.familyName")||"Family / Clan"}),e.jsx("p",{className:"text-sm font-semibold",children:l.family_name})]})]}),l.description&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-muted-foreground mb-1",children:c("tamga.description")||"Description"}),e.jsx("p",{className:"text-sm",children:l.description})]}),l.meaning&&e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(De,{className:"w-4 h-4 text-primary mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-muted-foreground",children:c("tamga.meaning")||"Meaning & Symbolism"}),e.jsx("p",{className:"text-sm",children:l.meaning})]})]}),l.origin&&e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(Qe,{className:"w-4 h-4 text-primary mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-muted-foreground",children:c("tamga.origin")||"Origin"}),e.jsx("p",{className:"text-sm",children:l.origin})]})]}),(l.era||l.region)&&e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[l.era&&e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(Ke,{className:"w-4 h-4 text-primary mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-muted-foreground",children:c("tamga.era")||"Era"}),e.jsx("p",{className:"text-sm",children:l.era})]})]}
6),l.region&&e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(ze,{className:"w-4 h-4 text-primary mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-muted-foreground",children:c("tamga.region")||"Region"}),e.jsx("p",{className:"text-sm",children:l.region})]})]})]}),l.history&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-muted-foreground mb-1",children:c("tamga.history")||"History"}),e.jsx("p",{className:"text-sm",children:l.history})]}),l.usage_context&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-muted-foreground mb-1",children:c("tamga.usageContext")||"Usage Context"}),e.jsx("p",{className:"text-sm",children:l.usage_context})]}),l.symbolic_elements&&l.symbolic_elements.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-muted-foreground mb-1",children:c("tamga.symbolicElements")||"Symbolic Elements"}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:l.symbolic_elements.map((o,g)=>e.jsx(Q,{variant:"outline",className:"text-xs bg-primary/5",children:o},g))})]}),l.variations&&l.variations.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-muted-foreground mb-1",children:c("tamga.variations")||"Variations"}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:l.variations.map((o,g)=>e.jsx(Q,{variant:"outline",className:"text-xs",children:o},g))})]}),l.alt_names&&l.alt_names.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-muted-foreground mb-1",children:c("tamga.altNames")||"Alternative Names"}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:l.alt_names.map((o,g)=>e.jsx(Q,{variant:"secondary",className:"text-xs",children:o},g))})]}),l.sources&&e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(be,{className:"w-4 h-4 text-primary mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-muted-foreground",children:c("tamga.sources")||"Sources"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:l.sources})]})]}),C(l).length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs font-medium text-muted-foreground mb-2",children:c("tamga.linkedTrees")||"Family Trees Using This Tamga"}),e.jsx("div",{className:"space-y-1.5",children:C(l).map(o=>e.jsxs(va,{to:`/tree/${o.id}`,className:"flex items-center gap-2 text-sm text-primary hover:underline",onClick:()=>w(null),children:[e.jsx(ds,{className:"w-3.5 h-3.5"}),o.name]},o.id))})]})]})]})})})]})},hs={0:{tribes:["Adyghe","Balkar","Kabardian","Karachai","Cherkess"],families:["Абазэ","Абазов","Абазэун","Абазаунов","Абазэкъо","Абазоков","Абай","Абей","Абаев","Абай-","Абанэ","Абат","Абанов","Абатов","Абайхан","Абахъо","Абдурэхьмэн","Абахов","Абдурахманов","Абрэдж","Абыдэкъу","Абрегов","Абидоков","Абрэджыкъу","Абыдэ","Абреджуков","Абидов","Абыкъу","Абыикъу","АбытIэ","Абуков","Абиюков","Абитов","Абэдзах","Абыцукъу","Абэзэжъ","Абдзах","Абицуков","Абазежев","Абадзехов"]},1:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["Абшэкъо","Агбэ","Агой","Аглинц","Абшоков","Агбов","Агоев","Агъагъэ","Агъырбэ","Агагов","Агирбов","Агъырджа-","Агъырджан","Агиржанов","Агиржаноков","Агъо","Агъэн","Аганов","Агъубэкъу","Агъубэч","Агубеков","Адагъо","Аднэй","Адагов","Аднаев","Адыгэ","Адыгэунэ","Адыгэшъау","Адигов","Адыгаунов","Адыгашаов","Адыгов","Адэжь","Адэмей","Адажев","Адамаев","Адэмокъо","Аджыгъырей","Адамоков","Аджигиреев"]},2:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Cherkess"],families:["Аджэнагъу","Адзын","Ажанагов","АдзиÐ
6½Ð¾Ð²","Аджабэ","Аджабов","Ажы","Ажнэгъой","Ажий","Ажнагоев","Ажиев","Ажэгъой","Ажагоев","Ажэдыгъу","Азанбэч","Азаныш","Ажадугов","Азанбеков","Азанишев","Азыкъо","Азнаур","Азэ","Азычэ","Азнауров","Азов","Азиков","Азэмэт-","Азэпщ","Азапшев","Азаматчериев","Азэпщэкъо","Айбазэ","Айдэбол","Азапшоков","Айбазов","Айдаболов","Айдэмыр","Аижъ","АйкIэпщ","Айдамиров"]},3:{tribes:["Adyghe","Kabardian","Karachai","Cherkess"],families:["Акъсор","Акъзэкъ","Акъсырэ","Ахъсор","Акзаков","Аксиров","Аксоров","АкIэжь","Акъылынчъ","АкIыгъу","АкIэIу","Акъэжъ","Акилинчев","Ачугов","Ачегу","Акежев","Алагъыр","Алборэ","Алда","Алшагъыр","Альборов","Альдов","Алчагиров","Алдаукъу","Алаш","Алмэ","Альдауков","Алашев","Альмов","Алтыдокъо","Алтыйакъ","Алътыдокъо","Алтиаков","Алтидоков","Алтых","Алтыхъу","Алхъо","Алиохъу","Алтыхов","Алтухов"]},4:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Cherkess"],families:["Амырхъан","Амырокъу","Амщыкъу","Анна","Амирханов","Амироков","Амшуков","Аннов","Андырхъу","Андзэрэкъу","Анзор","Андырхъуай","Анзароков","Анзоров","Андрухаев","Ансыкъу","Анцокъу","Аншъукъу","Анчоков","Ансоков","Анщыкъу","Апажьыхь","АпэтI","Аншуков","Апажихов","Апатов","Апсэ","Апхуд","Апычэ","Апсов","Апхудов","Апиков","Апыщ","Апщэ","Апшев","Апишев","Апэ","Апэжъ","Апиш","Апов"]},5:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Karachai","Cherkess"],families:["Арслъан-","Арыхъстан","Армани","Арманиев","Арсланоглы","Арихстанов","Арэ","Арслан","АрсланцIыкIу","Аров","Арсланов","Арсланцуков","Артын","Архъагъэ","Арчэл","Артинов","Архагов","Аркелов","Арэшыкъу","Аслъан","Аслъаныкъу","Арашуков","Асланов","Аслануков","Астэжъ","Астэмыр","Астежев","Астамиров","Ати","Атэжьыкъу","Атиев","Атажукин","Атэжьахь","Аулъ","Атажахов","Аутлев","Афэун","Афонбух","АфIэун","Афонбухов"]},6:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Cherkess"],families:["Ахъы","Ахъохъу","Ахов","Ахохов","Ахъубэч","Ацумыжъ","Ахубеков","Ачмизов","Ацуау","Ашабэ","АкIау","Ашабов","Ачау","Ашхъот","Ашхъун","Ашхотов","Ашхунов","Ашъын","Ашинов","Ашъхьэмаф","Ащэбэкъу","Ашхамафов","Ашабоков","Ащэмыкъу","Аюб","Ашамуков","Аюбов","Бабый","Бабыгъо","Бабиев","Бабугов","Бабыкъу","Багъырсэкъу","Бабуков","Багирсоков","Баджэкъу","Бадракъу","Бадэ","Баджэ","Божокъу"]},7:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Karachai","Cherkess"],families:["Байкъул","Байрамыкъу","Байкулов","Байрамуков","Бакъыжъ","Байрамкъул","БакIо","Балэ","Бакъыжь","Байрамкулов","Баков","Балов","Бакижев","Балкъар","Балкаров","Балкъарыкъу","Балкаруков","Балтыкъу","Балкъыз","Банэ","Болэтыкъу","Балкизов","Банов","Болетуков","Барасбий","Барагъун","Барзо","Бэрэсбый","Барагунов","Барзов","Барасбиев","Барсыкъу","Барсэбый","Барэ","Барсоков","Барсабиев","Баров","Бастэ","Батмэн","Батыр"]},8:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["БатIэкъу","Бахътыр","Бахъу","Батоков","Бахтиров","Бахов","Бахъукъу","Бацэ","Бахуков","Бацев","Бащорэ","Бгъанэ","Башоров","Бгане","Абхаз","Бгъуашэ","Беданэкъу","Бгуашев","Беданоков","Беждыгъу","Беждугов","Безрокъо","Безыр","Безроков","Безиров","Бек","Бей","Бекович-","Бэч","Беев","Черкасский","Беков","Бекмырзэ","Бекъан","Бекъалды","Бэчмырзэ","Бэкъан","Бекалдиев","Бекмирзов","Беканов"]},9:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["Бешкъазый","Бещто","Бещтокъу","Бешказиев","Бештов","Бештоков","Бештоев","Бжьэхъокъу","Бжамбей","Бжыхьакъу","Бжамбеев","Бжегаков","Бжихаков","БжыхьэлI","Бжэныщэ","Бжэнтхьэлэ","Бжихатлев","Бженишев","Бжентгалов","БжэныкIэ","Бжэмбахъо","Бжеников","Бжембахов","Бжэмыхъу","Бжьэмыхъу","Бжемухов","БжэIумых","Бжьахъу","БжьашIу","ПчъэIумых","Бжахов","Бжассо","Бжеумыхов","Бжьэдыгъу","Бжьынай","Бжъэдыгъу","Бжинаев","Бжедугов","Бжьэныкъу","Бженуков"]},10:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Cherkess"],families:["Биболет","Биболетов","Бибэ","Бый","Бибов","Биев","Биикъу","Бибэрд","Биюков","Бибердов","Биданэкъу","Бикэ","Биларыкъу","Биданоков","Биков","Биларуков","Осет","Бислъангъур","Бит","Биязыр","Бланэ","Бислангуров","Битов","Биязиров","Блянов","Блахъо","Блый","Блэгъожъ","Бляхов","Блиев","Блягоз","Богупс","Блэгъут","Блэнау","Бэгъупшъ","Блегутов","Бленаов","Богупсов","Боджар","Бози"]},11:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Ubykh"],families:["Ботэщ","Ботэжъ","Боташ","Ботежев","Боташев","БратI","Боцэ","Брам","Брат","Боцев","Брамов","БрантIэ","Брыцу","Брантов","Бричев","Брэхъащт","Бузд","Булай","Булжат","Брахаштев","Буздев","Булаев","Бульжатов","Булгэр","Буташ","Быго","Быд","Булгаров","Буташев","Бугов","Бидов","Быдж","Быджий","Быжь","Биджев","Биджиев","Бижев","Быжъыкъо","Бижоков","БыкIэ"]},12:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["Быщэ","Бэв","Бэвыжъ","Бэгъ","Бишев","Бевов","Бевижев","Багов","Бэгъарсыкъу","Багарсуков","Бэгърэт","Бэгъдан","Бэгъыд","Бэджрэт","Багданов","Багидов","Бегретов","Бэгъэтыр","Бэгъэрэкъу","Бэгъэдыр","Багароков","Багадиров","Бэгъот","Багатов","Чечен","Бэгъужъэкъу","Бэгъушъ","Бэгъупшъ","Богузоков","Богус","Бэгупсов","Бэдракъ","Бэдый","Бадраков","Бадиев","Бэджан","Бэджаш","Беджанов","Беджашев","Бэджэлды"]},13:{tribes:["Adyghe","Balkar","Kabardian","Karachai","Ubykh"],families:["Бэрзэдж","Бэрдыкъу","Берзек","Бердуков","Бэрзэгъ","Берзегов","Бэрсокъо","Бэрчэт","Барсыкъо","Берчетов","Барсоков","Бэрэгъун","Бэрэзэдж","Барагунов","Березегов","Бэрэсбый","Бэрэтар","Бэрэхъашт","Барасбиев","Беретарь","Барахаштов","Бэчыжъ","Бэч","Бэчыр","Бекижев","Беков","Бекиров","Бекизов","Бэшкэкъу","Бэчкъан","Бэшкъаз","Бэшъкъокъу","Бечканов","Бешказов","Бешкок","Бэщыкъу","Бш-хьадж","Бешуков","Бш-хаджев","Выкъо"]},14:{tribes:["Abazin","Adyghe","Balkar","Kabardian"],families:["Гелястэн","Гергъокъу","Гилеж","ГЪУ","Гелястенов","Гергоков","Гилежев","Гобэшы","Гого","Гогущэ","Гобашиев","Гогов","Гогушев","Голыкъу","Гон","Гондэхъу","ГонжафIэ","Голуков","Гонов","Гондохов","Гонжафов","Гощэкъу","Гонокъу","ГоныкIэ","Гостэхъу","Гоноков","Гоничев","Гостахов","Кошоков","Гуанэ","Гугъот","Гукъой","Гуанов","Кугъот","Гукоев","Гум","Гумзагъ","Гундэхъу","ГунжафIэ","Гумзагов"]},15:{tribes:["Abazin","Adyghe","Kabardian"],families:["Гъот","Готов","Гъоу","Гъотыжь","Гъош","Гъощэкъу","Гоов","Готыжев","Гошев","Гошоков","Гъуагъу","Гъуагъокъу","Гъубжь","Гуагов","Гуагоков","Губжев","Гъубжьэкъу","Губжоков","ГъукIэ","Гъудэ","Гуков","Гудов","Гучев","Кара","ГъукIэжъ","ГъукIэкъул","Гукежев","Гучекулов","Гучежев","ГъукIэлI","Гукетлев","Гучетлев","ГъукIэмыхъу","Гукемухов","Гучемухов","ГъукIэпшъэкъу","ГъукIэпщ","Гукепшоков","Гукепшев","Гучепшоков"]},16:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["Даго","Дадэ","Даев","Дагов","Дадов","Далэ","Дамэ","Далов","Дамов","Ногай","Дамэкъу","Дамэлей","Дармывэ","Дамоков","Дамалеев","Дармывов","Дарыкъу","Дарэ","Дзасэ","Датхъужъ","Даруков","Даров","Дзасов","Датхужев","Даур","Дауров","Даутов","Даутэкъу","Дахэ","Дахъунэ","Даутоков","Дахов","Дахунов","Дахъущэкъу","Докъущэкъу","Дохушоков","Дачъэ","Девтэр","Дед","Дачев"]},17:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Ubykh","Cherkess"],families:["Дударыкъу","Дударуков","Думэн","Думанов","Думаныщ","Думанишев","Дыбагъу","Дыгъэ","Дурдым","Дэбагъо","Дыгъу","Дурдымов","Дабагов","Дугов","Дыбагов","Дыгъужь","Дыгъужъэкъу","Дыгъужъый","Дугужоков","Дугужев","Дыгъулан","ДыдыкI","Дыджэ","Дугуланов","Дидичев","Дигов","Дыджэш","Дыкъынэ","Дыкъуджыкъу","Дынэ","Дигешев","Дикинов","Дукужуков","Динов","Дыпшъэ","Дырыкъу","Дырыхъу","Дышъ","Дипшев","Дириков"]},18:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Karachai","Cherkess"],families:["Дэлэл","Далелов","Дэпчэн","Дэр","Депчен","Деров","Дэрбэй","Дэрбэ","Дэрмыл","Дербеев","Дербе","Дермилов","Дэунэ","Дэунэжъ","Даунов","Даунежев","Дэхъущэкъу","Дохушоков","Дэщ","Дэцырхъой","Дэчъ","Дэшъ","Дацирхоев","Дечев","Дешев","Джабатыр","Джамбот","Джабатыров","Газов","Жамботов","Джамбэч","Жамбэч","Жамбеков","Джамырзэ","Джанбэ","Жамырзэ","Джанбэчыкъу","Джанбов","Жамирзов","Джанбечоков"]},19:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Cherkess"],families:["Джанчат","Джанчатов","Джапу","Джарым","Джапуев","Джаримов","Джатау","Чэтау","Джарымэкъу","Гетаов","Джаримоков","Четав","Четау","Джатэ","Джатэгъэжь","Джатэжъ","Гатов","Гетигежев","Гетежев","Джатэрывэ","Гетериев","Джолэ","Джолов","Джыгыт","Джигитов","Джыгун","Жыгун","Джигунов","Жигунов","Джылаш","ДжыдэцIым","Джыджий","Гилашев","Гедацимов","Гигиев","Глашев","Джэбагъэ","Джым","Къэзэныкъо","Джимов"]},20:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["ДжэÐ
6½Ð´Ð°Ñ€","Джэнтамыр","Жэндар","Жантамыр","Джандаров","Джантамиров","Жандаров","Жантемиров","Джэрэщтэ","Джэнэт","Джэрыджэ","Жэрэщты","Джанетов","Гергов","Жерештиев","Джэтэгъэжь","Чэтэгъэжъ","Гетигиев","Джэтэрывэ","Джэху","Чэтэрыжъо","Гехов","Гетериев","Джэш","Дзыбэ","Гешев","Дзыбов","Джешев","Дзыгъо","Цыгъо","Дзугов","Дзыгъур","Дзу","Дзугъул","Дзугуров","Дзуев","Дзугулов","ДзыхьмышI","Дзэгъащт","Дзахмишев"]},21:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Cherkess"],families:["Едгъул","Едыгъушъ","Едыдж","Едгулов","Едугушев","Едыгов","Ежъыгъу","Еджыбэкъу","Ежуг","Еджибоков","Ежугов","Езао","Езий","Езыгъо","ЕкIас","Езаов","Езиев","Езугов","Екасов","ЕкIыбэкъу","Елбатыкъу","Елбаш","Ечибоков","Елбатуков","Ельбашев","Елбэздэкъу","Елбыздыкъу","Эльбаздоков","Елгъэр","Елдар","Елджэр","Эльгаров","Эльдаров","Елдарыкъу","Елджэрыкъу","Эльдаруков","Ельжироков","Елмырз","Елмыщэкъу","Елтар"]},22:{tribes:["Adyghe","Kabardian","Karachai"],families:["Ерыджыбэкъу","Ерыстау","Ескындар","ЕсталI","Эреджибоков","Эристов","Ескиндаров","Естатлев","Ереджибоков","Есэнэй","Есенеев","Етлыхъу","Етлухов","Абхаз","ЕтлIэкIыкъу","Ету","Етыкъу","Етлачуков","Етуев","Етуков","Етэухъу","ЕтIлIэхъу","Етаухов","Етлохов","Еутых","ЕхъулI","Ехутль","Евтых","Яхутлев","Ехъщэкъу","Ехщоков","Ехъутэныдж","Ечмокъу","Ешхъот","Ешыгуау","Эхтангов","Ечмоков","Ешхотов","Ешугаов","Ещырокъо"]},23:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["Жамболэт","Жамболетов","Жамборэ","Жамборов","ККаабб","Жамурзэ","Жанбор","Жанкъулэн","Жандыбек","Жамурзов","Жанборов","Жанкуланов","Жандыбеков","Жандыбай","Жанджат","Жансит","Жандыбаев","Жанджатов","Жанситов","Жантегол","Жантемыр","Жансидокъу","Жантеголов","Жантемиров","Жансидоков","Жанхъот","Жанэ","Джанхъот","Жане","Жанхотов","Жанов","Джанхотов","Жанэкъу","Жаноков","Абхаз","Жарэмыкъу","Джарэмыкъу","Жатэй","Жаримоков","Жатеев"]},24:{tribes:["Abazin","Adyghe","Kabardian","Ubykh","Cherkess"],families:["Жылэ","Жылэкъан","Жылэкъу","Жылэтеж","Жилов","Жилаканов","Жилоков","Жилетежев","Абхаз","Жылэшх","Жэгутен","Жэмадыкъу","Джегутанов","Жамадуков","Джилешхов","Жэмбей","ЖынжакIэ","ЖэнэлI","Жамбаев","Жинжаков","Женетль","Жэрэщты","Жэщ","Жерештиев","Жешев","Жъырокъу","Жъудэ","Жъурымыкъу","Жероков","Жудов","Журимуков","Жьей","Жьормэкъо","Жьэхъщэкъул","Жеев","Жормоков","Жахшакул","Залэ","Занэ","Занэкъу"]},25:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Cherkess"],families:["Избашъ","Изгиндар","Изых","Избашев","Изгиндаров","Изихов","Инамыкъу","Илэрыкъу","Иляс","Инал","Инамуков","Илароков","Ильясов","Иналов","Инарэкъу","Ингуш","Инароков","Ингушев","Индар","Индрей","Индрыс","Инжыжокъу","Индаров","Индрисов","Инжижоков","Индреев","Иныхъу","Инэмыкъу","Ион","Инухов","Ионов","Ислъам","Исламов","Исмахьил","Исмел","ИсмэлI","Испыр","Исмаилов","Исмелов","Исметлов"]},26:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Karachai","Cherkess"],families:["Казбек","Кацыбей","КЪУ","КIУ","Казбеков","Кацибаев","Киасэ","Керешт","КIасэ","Керештов","Киясов","Кибок","Ким","Кубэкъу","КIэм","Кубоков","Кемов","Кинэч","Киржин","Китарий","Кобл","КIэнышэ","Киржинов","Китариев","Коблев","Кенечев","Козыр","Копыл","Козырев","Копылов","Костэкъу","Коныйкъой","Корщолохъ","Къостэкъу","Коныйкоев","Коршолохов","Костоков","Кош","Коцэ","Къощ"]},27:{tribes:["Abazin","Adyghe","Kabardian"],families:["Кунащэ","Кунашев","Куращын","Куп","Къуращын","Купов","КIуращын","Курашинов","Кургъокъу","Кургоков","Куржий","Куржэ","Куржиев","Курыжъо","Курэ","Курзов","Куров","Куржъ","Куфан","Курэдэ","Къуржъ","Къуфан","Курадов","Куржев","Куфанов","Куанэ","Куцокъу","Къуанэ","Куцоков","Кхъэунэ","Куанов","КушпIэ","Кушбокъу","Кушмэзокъу","КIушпIэ","Кушбоков","Кучмазоков","Кушпов","Кущтанэкъу","Кушъу"]},28:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Cherkess"],families:["Къазыкъу","Къаздэкъу","Къазый","Казуков","Каздоков","Казиев","Къазэнч","Къазотыкъо","Къэзэнш","Казотуков","Казанчиев","Къазэмыкъу","Къаит","Къайтмэс","Казамуков","Каитов","Кайтмесов","Къаир","Къайтыкъу","Каиров","Кайтуков","КъаквIон","Къакъый","Къалмыкъ","Хьакъон","Какиев","Калмыков","Хаконов","Къалэ","Къалэбатэ","Калов","Калабатов","Къалэбэч","Къалэжъыкъу","Къамбый","Калабеков","Калажуков","Камбиев","Къамыжъ","Каммыз"]},29:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Cherkess"],families:["Къанло","Къанлокъо","Къантемыр","Канлов","Канлоков","Кантемиров","Къаншъау","Къаныкъу","Къэнщауэ","Къанэкъу","Каншаов","Кануков","Каноков","Къангъэн","Къантлъокъу","Къаншыкъул","Канганов","Кантлоков","Канчекулов","Къанэмэт","Къап","Канаметов","Капов","Къардыкъу","Къардэн","Кардуков","Карданов","ККаабб","Къармэ","Кармов","Къармэкъу","Кармоков","Къарэшэ","Къарэ","Карашев","Каров","Къарэ-","Къундэт","Къарэныкъу","Къарэнашэ"]},30:{tribes:["Abazin","Adyghe","Kabardian","Karachai"],families:["КъарэцIыкIу","Къарэсэлихь","Къаскъул","Къат","Карацуков","Карасалихов","Каскулов","Кат","Къатбамбэ-","Къатбамбэт","Къатмэс","Катбамбетов","Катмесов","Катбамбетуков","Къатыкъу","Къатхъэн","Катуков","Катханов","Къауныщ","Къашыргъэ","Къваш","Каунишев","Кеширгов","Квашев","Къер","Къетыкъо","Къинтар","Кълыщ","Къаир","Кетуков","Кинтаров","Клишев","Каиров","Кълыщбый","Клишбиев","Кърым","Кърым-Джэрый","Крымов","Крымгериев","Кърымшъокъал"]},31:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Karachai","Cherkess"],families:["Къырым-","Адылджэрый","Къырымхъан","Къэбардэкъу","Кирим-","Киримханов","Кабардоков","Адылгериев","Ногай","Къэблахъо","Къэбэрдей","Къэбардэ","Каблахов","Кабардаев","Кабардов","Къэбэхь","Къэгъэзэжь","Къэгъэлокъо","Кабехов","Кагазежев","Кагалоков","Къэжакъ","Къэжай","Къэжэр","Къожокъу","Кажаев","Кажаров","Кожаков","Къэзан","Казанов","Къэзанэкъу","Казаноков","Къэзэнч","Къазанш","Казанчев","Къэзанш","Къэзанчыкъу","Казанчоков","Къэлэмэт","Чэлэмэт"]},32:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Cherkess"],families:["Къэрал","Къэрашэ","Каралов","Карашев","Къэргъей","Къэрш","Каргаев","Каршев","Къэрэгъол-","Къэрэбэт","Къэрэгъул","Къэрэхъукъу","Карабетов","Карагулов","Караголжуков","Къэрэжъ","Къэрэжъый","Къэрэзэжъ","Осет","Къэрэмыр-","Къэрэмырзэ","Къэрэшей","КъэрэцIыкIу","Къэсей","Къэсей-","Касеймишестов","Къэтхъэн","Къэтыкъуай","Катханов","Катукаев","Карахуков","Къэхъун","Къоблахь","Кахунов","Каблахов","Къугъолъкъо","Коголкин","Къогъоду","Къоджэбэр-","КIэгъэду"]},33:{tribes:["Abazin","Adyghe","Kabardian","Karachai"],families:["Къожъ","Кожев","КъоÐ
6ºIасэкъу","Къон","Кочасоков","Конов","Къонай","Къондрэкъу","Конаев","Кондроков","Къоныжъ","Къонэкъу","Конижев","Коноков","Къопыл","Къорэд","Копылов","Кородов","Къос","Къорокъо","Къош","Короков","Кошев","Къоукъу","Къостэхъу","Къостэщэкъу","Коуков","Костохов","Косташоков","Къохъужъ","Къохъужъыкъу","Къоц","Кохужев","Кохужуков","Коцев","Къощ","Къочкъар","Къашъ","Кочкаров","Къошколдый"]},34:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Karachai","Cherkess"],families:["Къуанэкъу","Куаноков","Къубанкъукъу","Къубат","Къубатый","Кубанкуков","Кубатов","Кубатиев","Къубатэкъу","Къудай","Кубатоков","Кудаев","Осет","Къуданэт","Къундет","Куданетов","Къудат","Къудант","Кудатов","Кудантов","Къужъай","Къудащ","Къудейбэрдокъу","Куж","Кудашев","Кудайбердоков","Кужев","Кужав","Къужъбэ","Къуекъу","Кужбов","Куек","Къуй","Къуижъ","Куев","Куижев","Къуйшъэкъу","Къул","Куйсоков","Кулов"]},35:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Cherkess"],families:["Къунащэ","КъумпIыл","Кунашэ","Кумпилов","Кунашев","Къундэт","Кундетов","Кудайнетов","Къунчыкъу","Кунчуков","Къунчыкъокъу","Къуныжъ","Кунчукоков","Кунижев","Къунып","Къунэ","Къурадэ","Кунипов","Кунов","Курадов","Кавк","Къурал","Къуралей","Къуращэ","Куралов","Куралаев","Курашев","Къургъокъу","Къурлан","Къурмалый","Кургоков","Курланов","Курмалиев","Къухъу-","Къуртат","Къуршэ","Куртатов","Куршев","Къохъужъыкъу","Кухужуков"]},36:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["Къушъхьэ-","Къушъхьэбый","Кушхабиев","Кушхатлоков","Къушъэрыкъу","КъушъхьэтIу","Къушъытэ","Къушъэкъу","Къущрокъо","Кушхатуев","Кушитов","Кушоков","Кушроков","КIаго","КIакIэ","Къущ","Кягов","Кяков","Кусов","Чагов","Чачов","КIасэ","КIарэ","Киясов","Кяров","КIыкI","Чичев","КIыржьын","КIыгъэду","Чыржьын","Чегадуев","Киржинов","КIытIэ","КIытIокъо","КIыщмахо","КIыщ","Китов","Китоков","Кишмахов","Кишев"]},37:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Cherkess"],families:["КIэсэбэжъ","Кесебежев","КIэтIрэж","КIэщт","КIэщао","Катрежев","Каштов","Кешаов","КIокIо","Коков","КIуае","КIуантэ","Куваев","Куантов","КIубэ","КIуашъэ","Кубэ","Квашев","Кубов","КIубэкъу","КIуп","Кубоков","Купов","КIац","КIущ","Къ-вакъ","Кяцев","КIуштэ","Куштов","Лакъ","Лакъай","Ламыкъу","ЛIакъу","Лакъый","Ламуков","Ляков","Лакаев","Ламкъо","Тляков","Лакиев"]},38:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["Лахъу","Лашэ","Ляхъ","Лащэ","Лахов","Ляшев","Ляхов","Лий","Лый","Лиев","Лиуан","Лиуанов","Лоу","Локъу","Лыдыджэ","Лау","Локов","Лидидов","Лоев","Кавк","Лыикъу","Лыкъу","Лыкъожъ","Лиюков","Луков","Лукожев","Лыупакъэ","Лыпагъу","ЛэупакIэ","Лыхь","Лъэкъун","Липагов","ЛIыупакъо","Лихов","Лакунов","Лиупаков","Лэгъуф","Лэгъуншъаукъу","ЛэгъунэлIыкъу","Лагуфов"]},39:{tribes:["Adyghe","Kabardian","Cherkess"],families:["Лъэбыщ","Лъэбыц","ЛъэбычI","Тлебичев","Абхаз","ЛъэгучI","Лъэгъуп-","Лъэиншэ","Лэгъуцу","Тлянчев","Тлегучев","Тлегупшауков","ЛъэкI","ЛъэмытхьэщI","ЛъэнкIэпIащэ","Тлячев","Тлемитхачев","Тленкопачев","ЛъэпцIэжъ","Лъэпсэрыкъу","ЛъэпцIэрыкъу","Тлепцежев","Тлепсеруков","Тлепцеруков","Тлевцежев","ЛъэпцIэрышэ","Лъэпшъ","Лъэпсэрышэ","Лъэпщ","Тлепцерише","Тлепшев","Лъэпшъыкъу","Лъэпшъэкъу","Тлепшуков","Тлепсов","Тлепсуков","Лъэпшъэрыкъу","Лъэустан-али","Лъэустэнджэл","Тлеустаналиев"]},40:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Karachai"],families:["ЛIыхас","ЛIыхъукI","Тлехас","Тлехуч","ЛIыхъусэжъ","ЛIыхъурай","ЛIышэ","Тлехусежев","Тлехурай","Тлишев","ЛIыIап
6I","Тлиапов","Мамай","Мамбэт","Мамгъэт","Мамаев","Мамбетов","Мамгетов","Мамжъый","Мамсыр","Мамжиев","Мамсиров","Мамхэгъ","Мамты","Мамхыгъ","Мамтов","Мамхегов","Мамыжъ","Мамижев","Мамыку","Мамрыкъу","Мамыкъу","Мамруков","Мамуков","Мамыхъу","Мамыщ","Мамэ","Мамухов","Мамишев","Мамов"]},41:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Karachai","Cherkess"],families:["Маржен","Мэрчан","Мартэкъу","Мархъан","Марженов","Мартоков","Марханов","Марчанов","Мату","МатIыжъ","Матуев","Матыжев","МафIэдз","Маушъ","Мафэ","МэшIодз","Маушев","Мафов","Мафедзов","МафэлI","Мафэщыкъу","МэхолI","МэфэшIукъу","Мафетлев","Мафашуков","Махотлев","Махъо","Махъсид","Маху","Максидов","Махов","Мекер","МацIэ","Мэкэр","Мацев","Мекеров","Мерэмкъул","Мерэм","Меремкулов","Меремов"]},42:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Cherkess"],families:["Муратыкъу","Муратуков","Муртазэ","Муртазов","Мусэ","Мусов","Мыгу","Мыгукъор","Мыгурэкъу","Муг
6у","Мугукор","Мугуруков","МыгъолI","Мыгъуадэ","Мыд","Муготлев","Мугуадов","Мидов","Мыдар","Мыжей","Мызэуш","Мударов","Мижаев","Мизаушев","Мыкъыд","Мыкъо","Микидов","Муков","Мыкъожъ","Мукожев","Мырзай","МыкIоф","МыкIытIэ","Мырзэбэч","Мырзэ","МыкIошъу","Микитов","Мурзабеков","Мурзаев","Мукофов"]},43:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Karachai"],families:["МытIэн","Мыхьамэт","Мышъэкъу","Митон","Мухаметов","Мисоков","Митонов","Мыщхъож","Мышъэост","Мышхъожъ","Мисостов","Мишхожев","Мэджаджэкъу","Мыщын","Мэджэс","Мэжджыхъ","Мэджыжъэкъу","Мишинов","Меджесов","Межгихов","Меджажоков","Мэжъокъу","Мэз","Мэзан","Мажаков","Мазов","Мазанов","Мэзэп","Мэзлэукъу","Мэзыкъу","Мазапов","Мазлов","Мазуков","Мэзукъэбз","Мэзкуку","Мазукабзов","Мазкуков","Мэкэри","Мэкъей","Мэкъуао"]},44:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Cherkess"],families:["Мэртазэ","Муртазов","Мэрчан","Мэртащыкъо","Марщэн","Марташуков","Маршенов","Абхаз","Мэрэтыкъу","Меретуков","Мэсей","Мэскъид","Масаев","Маскидов","Мэт","Мэтай","МэфэгъотлI","МэтI","Матаев","Мафаготлев","Метов","МэфэшIукъу","Мэфэщыкъу","Мэхъый","Мэхъош","Мафашуков","Махиев","Махошев","Мэчэр","Мэшхъой","Мэшэжъ","Мачаров","Машхоев","Машезов","Мэщ","МэщбашI","Мэщныб","МэщфэшIу","Машев","Машбашев"]},45:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Karachai","Cherkess"],families:["Найман","Найманов","Ногай","НакIэ","Наков","Налоев","Намдарханов","Нанижев","Начо","Напсэкъу","Напцэ","НапцIэкъу","Напцев","Напцоков","Напсоков","НапшIэкъу","Напщэ","Нарт","Напшоков","Напшев","Нартов","Нартыжъ","Нартэкъу","Нартыжев","Нартоков","Нартшъау","Нартшаов","Натхъо","Натырбый","Натхо","Натырбиев","Наурзэ","Наурзэкъу","Наурзов","Наурзоков","Нахъужъ","Наурыкъу","Ныхъущ","Науруков","Нахушев"]},46:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["Нэгумэ","Нэгъаплъэ","Ногмов","Нагаплев","Нэгъой","Нагоев","Нэгъойхъан","НэгъойцIыкIу","Нэджыкъу","Нэзрэн","Нагойханов","Нагойцуков","Наджуков","Назранов","НэкIацэ","НэкIухъу","НэмытIэкъу","Накацев","Накухов","Намитоков","Нэней","Нанаев","Нэпсэу","Нэп","Нэпсэкъу","Непсов","Напов","Напсоков","Напсо","Нэптыгъу","Нэпыт","НэпшIэкъуй","Нэр","Наптугов","Напитов","Напшекуев","Наров","НэтIабжъ","НэтIау","Натабжев"]},47:{tribes:["Abazin","Adyghe","Kabardian"],families:["Одыхь","Одыжъ","ОелIыкъу","Ожъ","Одихов","Одижев","Воетлуков","Ожев","Вадахов","Озрокъу","Озы","Озроков","Озов","Окъ","Ойокъу","Оков","Оракъ","Ойоков","Сэнащэкъу","Ораков","Санашоков","Орзей","Ордэкъу","Орзай","Ордоков","Оразаев","Ногай","Орзэл","Оркъ","Оркъыуасэ","Орзелев","Орков","Варквасов","Ортэбей","Ортэн","Орыш","Оршэкудыгъу","Ортабаев","Ортанов","Оришев"]},48:{tribes:["Adyghe","Besleney","Kabardian","Ubykh","Cherkess"],families:["ПащIэ","Понэжь","Псыхэмыхь","ПакIэ","Понежев","Психамихов","Пачев","Пэунэжъ","Псэгъуб","ПсыIушъу","Псэ","Псыгъуп","Псеуш","Псеев","Псегубов","Псэун","Псэунэкъу","Псаунов","Псеуноков","Псеунов","Пхэнай","Пунащ","ПхытIыкI","Пхъэнай","Пунашев","Пхитиков","Пханаев","ПчыхьалIэкъу","ПхъэчыяшI","Пхъэшх","ПщыхьалIэкъу","Пхачияш","Пхешхов","Пчегатлук","Пчэнышъуай","Пченушай","Пщыбый","ПшъэIап-","Пчэнаш","Пщаукъ"]},49:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["Пщымаф","Пщымахо","Пщымырзэ","Пшимахов","Пшимирзов","Пшимафов","ПщынэлI","Пщынщэ","ПщыукI","Пщыунэ","Пшинатлев","Пшиншев","Пшиучев","Пшиунов","ПщыунэлI","Пшиунетлев","Пщыхъожь","ПщыхIоф","ПщыхьакI","Пшихожев","Пшихофов","Пшихачев","ПщыIаж","Пшиажев","Пыл","Пыло","Пилов","Пилоев","Абхаз","Пырхъыш","Пэдыс","Пирхичев","Падисов","Пэжъ","Пэдысыгъо","ПэкIако","ПеÐ
6¶ÐµÐ²","Падисугов","Пачаков","Пезов"]},50:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Cherkess"],families:["Пэфыхъ","Пафихов","Пэщты","ПIаз","Паштов","Пазов","ПIапI","ПIапIшху","Папов","Папшхов","ПIытIыжъ","ПIатIэкъу","Питижев","Патоков","Пщыжъмыгъо","Пэхъу","Похов","Разов","Растов","Ротоков","Рахматулин","Рашоков","Рурфов","Рубжогов","Сабан","Самгъур","Саит","Сэбан","Сомгъур","Саитов","Сабанов","Самгуров","Сасыкъ","Сапый","Сасыкъу","Сароси","Сапиев","Сасыков","СекIо","Сатушы"]},51:{tribes:["Abazin","Adyghe","Balkar","Besleney","Kabardian","Cherkess"],families:["Сет","Сид","Сеит","Сидкъо","Сетов","Сидов","Сеитов","Сидакъ","Сидаков","Сидыкъу","Сыдкъо","Сидоков","Сижьажьэ","Сижажев","Симболэт","Симахо","Симболетов","Симахов","Сихъу","Сыихъу","Сихов","Сиюхов","Соблыр","Сого","Шъоблыр","Шъогъо","Соблиров","Согов","Соколыкъу","Созай","СокмышI","Шъокъолыкъу","Созаев","Сокмышев","Суколок","Соколуков","Солэкъохъу","Сонэ","Сосмакъ","Солакохов"]},52:{tribes:["Abazin","Adyghe","Balkar","Besleney","Kabardian","Karachai","Cherkess"],families:["СуинкI","Сыкун","Сымхьэ","Сукунов","Симхов","Суюнчев","Ногай","Ситым","Сэбаншы","Ситимов","Сабанчиев","Сэит","Сэкый","Саитов","Сакиев","Сэкур","Сэкъур","Сэкъал","Сэмахъ","Сэмэгу","Сокъур","Сакалов","Самахов","Самогов","Сокуров","Сэнащэкъу","Санашоков","Сэрахъэ","Сэфон","Сэхъу","Сарахов","Сафонов","Сохов","Сэхъурэкъу","Сохуроков","ТIУ","Табыхъу","Табыщ","Табухов","Табышев"]},53:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Karachai","Cherkess"],families:["Тамэ","Тамов","Ногай","Тап","Тапсерыкъу","Таркъанон","Тапов","Тапсеруков","Тарканонов","Татсэ","Тасук","Татрыкъу","Татыкъу","Тасуков","Татруков","Татсев","Тау","Таубэч","Таужъ","Тэубэч","Таужев","Таукъэн","Таур","Таус","Таукенов","Тауров","ТаусултIан","Таухъукъу","Таучэш","Таусултанов","Таухуков","Таукешев","Таш","Теберды","Тебердыкъу","Текуон","Тешев","Тебердиев","Тебердуков","Текюнов"]},54:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Karachai","Cherkess"],families:["Темырджан","Темырдащ","Темиржанов","Темирдашев","Темыркъан","Тен","Тенджыз","Темирканов","Тенов","Тенгизов","Тепсэрыкъу","Теркъохъу","Теркъул","Теувэ","Тепшъэрыкъу","Теркохов","Теркулов","Теувов","Тепсоруков","Теувэжь","Теуцожь","Теуй","Теуважев","Тауй","Теучеж","Теун","ТеуныкI","Теухъэжь","Теунов","Теуников","Техажев","Тешэ","Тлябич","ТишкIэ","Тишков","Тешев","Тлибеков","Тлъыс","Тогъулан","ЛIыш"]},55:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Ubykh","Cherkess"],families:["Трахъо","Туар","Туаршы","Трахов","Туаров","Туаршиев","Тугъан","Тубей","Тубэч","Тыгъон","Тубаев","Тубеков","Туганов","Тугъанэкъу","Туганоков","Ногай","Осет","Тузэр","Туй","Тузаров","Туев","Кавк","Тулпар","Тумэ","Тюльпаров","Тумов","Туо","Туркъанун","Тыу","Турканунов","Туов","Тутыкъу","Тут","Тутай","Тутарыщ","Тытыкъу","Тутов","Тутаев","Тутаришев","Тутуков"]},56:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Cherkess"],families:["ТхьакIумащ","ТхьакIумашIу","Тхакумашев","Тхакумачев","ТхьакIущын","Тхакушинов","ТхьалI","Тхатель","Тхьамэдэкъу","Тхьамэкъу","Тхамадоков","Тхамоков","Тхьапарэ","Тхьащэукъу","ТхьэгъапцI","Тхапаров","Тхашауков","Тхагапцев","Тхьэкъуахъу","Тхьэркъуахъу","Тхакахов","Тхакахо","Тхьэстокъу","Тхьэц","Тхьэщыгъой","Тхастоков","Тхацев","Тхашигоев","ТхьэщIокъу","Тыгъан","Тыгъон","Тхашоков","Туганов","Тугонов","Тыгъоныкъу","Тыгъу","Тугануков","Тугов","Тыгъужъ","Тыгъуй"]},57:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Cherkess"],families:["Тыкъэ","ТIыкъэ","Тиков","Тыков","Тыкъо","Тымыжьэкъу","Туко","Тымыщэкъу","Туков","Тимишоков","Тымэ","Тириу","Тырку","Тыркуау","Тимов","Тириов","Турков","Туркав","Мигрел","Тыркъанун","Тырмикъу","Турканунов","Тирмиков","Тыт","Тытыкъу","Тыу","Тышэ","Тит","Тутуков","Туов","Тишев","ТыIэщ","Таашев","Тэбыщ","Тэгъулан","Тэзэртыкъу","Табышев","Тугуланов","Тазартуков","Тэкъхъщы-"]},58:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["ТIакъырыкъу","ТIарикъ","ТIатIыкъу","ТIажъ","Такъурокъу","Тариков","Татуков","Тажев","Такуроков","ТIый","ТIыгъур","ТIымыжъ","Тиев","Тугуров","Тимижев","ТIыхъужъ","ТIэкIушынэ","ТIэмашэ","ТIэрэш","Тухужев","Такушинов","Тамашев","Терешев","ТIэхъу","ТIэш","ТIэшъу","Тохъо","Тешев","Тохов","Т-шъуй","Уайкъокъу","Уадахь","Уарпэкъу","Убжьыкъу","Уайкоков","Уадахов","Варпоков","Укжуков","Вайкоков","Увыжь"]},59:{tribes:["Abazin","Adyghe","Balkar","Besleney","Kabardian","Karachai","Cherkess"],families:["Унэгъэс","Унэжъ","Унагасов","Унежев","Унэрокъо","Унароков","Уракъ","Урыс","Уракъу","Урусов","Ураков","Ногай","Урысбый","Урусбиев","Урыщ","Урысыкъу","Орыщ","Устэ","Урусуков","Уришев","Устов","Урсок","Оришев","Утов","Утыз","Ушъый","Ушъухы","Ушиев","Ушхо","Утызов","ФиIапщэ","Фаджэ","Фокъо","Фиапщэ","Фаджев","Фоков","Фиапшев","ФочыщIэ","ФызыIэ","Фокичев"]},60:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Cherkess"],families:["Хурэ","Хурий","Хуров","Хуриев","Хэкужъ","Хутэ","ХыдзэлI","Хэжъ","ХьэкIужъ","Хъут","Хидзетлев","Хеж","Хакуз","Хутов","Хъаныкъор","Хъарс","Хъыбыртэ","Ханукор","Харсов","Хибиртов","Хъырцыжъэкъу","ХъытIу","Хирцижоков","Хитуев","Хъыщт","Хъоджай","Хъожъ","Хиштов","Хожаев","Хожев","ХъоÐ
6ºIон","Хъолэ","ХъорэлI","Хоконов","Холов","Хоретлев","Хъот","Хъост","Хот","Хостов"]},61:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Ubykh","Cherkess"],families:["Хъунагу","Хунагов","Хъунджэ","Хъунэ","Хунжев","Хунов","Хъупсырокъо","Хупсироков","Хъупэ","Хъупсэрыкъу","Хупов","Хупсеруков","Хъуран","Хъураш","Хуранов","Хурашев","Абазин","Хъурбызэ","Хъурай","Хъурым","Хурбизов","Хурай","Хурумов","Хъут","Хут","Хутов","Хъутат","Хъутыш","Хутатов","Хутышев","ХъутIэжъ","ХъутIыжъ","Хутаж","Хутыз","Хуташев","Хъухъал","Хухалов","Хъущт","Хьаблахъу","Хушт"]},62:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Cherkess"],families:["Хьабый","ХьабытIэ","ХьабытIэжъ","Хабиев","Хабитов","Хабитежев","ХьавпащIэ","ХьэхъупащIэ","Хьабэхъу","Хьабэч","ХьэпакI","Хабохов","Хабеков","Хавпачев","Хапачев","Хьагъэжей","Хьэгъэчъый","Хагажеев","Хьагъэудж","Хьагъуикъу","Хьагъундэкъу","Хагауджев","Хагуюков","Хагундоков","Хьагъур","Хагуров","ХьадэгъалI","Хьаджый","Хьаджым","Гадагатль","Хаджиев","Хаджимов","Хьэджы-","Хьаджы-","Хьаджыу","Хаджиногоев","Хаджиретлев","Хаджуов","Хьаджмус","Хьаджэмэстаф"]},63:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["Хьажъукъу","Хьажьыукъу","Хьазрэтыкъу","Хажуков","Хажиуков","Хазретуков","Хьакурын","Хьакъокъу","Хьэзартыкъу","Хакуринов","Хакоков","Хазартуков","Хьакъул","Хакулов","Хьакъ","Хьакъон","Хаков","Хаконов","Хьакъуй","Хьакъун","Хакуев","Хакунов","Хьакъупшъэкъу","Хакупшоков","ХьакIаку","ХьакIмамыкъу","ХьакIнэгъу","Хачак","Хачмамуков","Хачнагов","ХьэкIэмыз","ХьакIырэ","Хачемизов","Хакиров","ХьакIэлI","Хачетлев","ХьакIэмаф","ХьэщIымахуэ","ХьакIэмыкIу","ХьакIэрылъэ"]},64:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Cherkess"],families:["Хьалэкъай","Хьамгъэшкъу","Хьамдэхъу","Халакаев","Хамгашку","Хамдохов","ХьамтIэ","Хьамтэхъу","Хьамхъут","Хамтуй","Хамтохов","Хамхут","Хамтуев","Хьамыкъу","Хамуков","Хьамырзэкъу","Хьамэджыхь","Хьамшъау","Хамирзоков","Хамаджихов","Хамшаов","Хьанан","Хьанцэ","Хьанфан","Хананов","Ханцев","Ханфанов","Хьанахъу","Хьанэхъу","Хьао","Ханахов","Ханаху","Хаов","Хьапажэ","Хапажев","Хьапай","ХьапакIэ","ХьапцIэ","Хапай","Хапачев"]},65:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["Хьатам","Хьасыдж","Хьатай","ХьэтIамэ","Хасигов","Хатаев","Хатамов","Хьатикъуай","Хатукаев","Хьатишъокъу","Хьатэгъу","Хьатэгъогъу","Хатишоков","Хатагу","Хатагогу","Хьаткъо","Хьатэкъу","Хатко","Хаток","Хатков","Хьатэхъу","ХьатIэхъу","Хатохов","Хьатщыкъу","Хатшуков","Хьатыгъу","Хатэгъу","Хатугов","Хьатыгъу-","Хьэтэжъэкъу","Хатажуков","Хатугужуков","Хьатырбэ","Хьату","Хатирбов","Хатуев","Хьатэхъу-","Хьатхэ","Хатхе","Хатахужуков"]},66:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["ХьэфIыцIэ","Хьаужьыкъу","Хьаунэжъ","ХьашIуцIэ","Хаужуков","Хаунежев","Хафицев","ХьахъупащIэ","Хьахужь","Хьахъокъу","Хьахъупакъ","ХьавпащIэ","Хахужев","Хахоков","Хахупаков","Хавпачев","Хьахъупщэкъу","Хьахъушко","ХьацIыкIу","Хахупшоков","Хахушко","Хацуков","Хьэхъущэкъу","Хахушоков","Хьашъау","Хьашъхьанэкъу","Хьашъэкъу","Хашау","Хашханоков","Хашоков","Хасав","Хьащбыикъу","Хьащдэкъу","Хьащпакъэ","Хьашъджакъу","Хашбиюков","Хашдаков","Хашпаков","Хашджаков","Хьащрыкъу"]},67:{tribes:["Abazin","Adyghe","Kabardian","Karachai","Cherkess"],families:["Цыгъу","Цыгъуан","Цугов","Цуганов","Цыгъурыгъу","ЦыкIысэ","Цырымэ","Цигуригов","Цикисов","Цримов","Цыхъэ","Цышэ","Цэгъэ","Цихов","Цишев","Цагов","Цэй","Цей","Цеев","ЦыкIыщ","Цэкъэ","Цекишев","Цеков","ЦокъэжъыIу","Цуамыкъу","Цукъэжъэкъу","Цуамэкъу","Цикажуков","Чамоков","Цуекъо","Цужъыкъу","Чуяко","Чижиков","Цукъо","Чыкъо","Чуков","Цумазэкъу","ЦунтIыжъ","Чумазоков","Чунтыжев"]},68:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Karachai","Cherkess"],families:["ЦIырхъо","ЦIыкIу","ЦIыкIужъый","ЦIыпIын","Цырхъо","Цику","Цикужиев","Ципинов","Цирхов","ЦIыргъущ","Циргушев","Цуекъо","Чатэ","Чаго","Чанаби","Джатэ","Чагов","Чатов","Гятов","Черкес","Чачыхъу","Щэрджэс","Чыжьэкъу","Чачух","Черкесов","Чижоков","Чимен","Чихен","Чочэ","Чочев","Чименов","Чыдам","Чыкъо","Чуксей","Чидамов","Чыко","Кидамов","Чуков","Чым","Чыл"]},69:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["Чэмышъо","Чэнджэшъау","Чемсо","Чанджашаов","ЧэпэлI","Чэрым","Чэсэбый","Чапелов","Керимов","Чесебиев","Чэтгощ","Чэтау","Джэдгош","Четау","Четгошев","Гедугошев","Чэтмышх","Джэтмышх","Чэтыжъ","Чэтэжъ","Четмишхов","Четижев","Кетежев","Гедмишхов","Чэтыхъу","Чэужъ","Чэтэхъэжъ","Кетух","Чеужев","Четехежев","ШЪУ","Шагудж","Шагъырбый","Шакъ","ШIУ","Шагиров","Шаков","ШакIон","Шал","ШакIаныкъу"]},70:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Cherkess"],families:["Шахьин","Шахьан","ШащIэ","Шахинов","Шачев","Шаханов","Шипш","ШÐ
6ºIахъу","Шипшов","Шкахов","Шоджэн","Шэуджэн","Шогенов","Шеуджен","Шолэхъу","Шого","Щолэхъу","Шогов","Шъэолэхъу","Шолохов","Шорэ","Щорэ","Шоров","ШорэкIадэ","Шорман","Шорэкъадэ","Штым","Шорманов","Щорокъадзэ","Штымов","Шорокадов","Шумаф","Шурмэ","Шумэныкъу","Шумахо","Шумэн","Шуменуков","Шумафов","Шурдым","Шурдумов"]},71:{tribes:["Adyghe","Kabardian","Karachai","Cherkess"],families:["ШыгъэлIэкъу","Шыгъостан","Шыд","Шигетлоков","Шихостанов","Шидов","Шыдакъ","Шидаков","Абазин","ШыдукI","Шыдыгъу","Шыку","ШыджукI","Шытыгъу","Шыко","Шидуков","Шидугов","Шуков","Шыкъалэкъу","Шикалоков","Шыкъултыр","Шыкултыр","Шикультиров","Шимырзэ","Шымыгъэхъу","ШыкIэбахъу","Щамырзэ","Шемигохов","Шикабахов","Шамирзов","ШыргъэтIэпI","Шымэзокъу","Шырыкъу","Чемазоков","Шруков","Ширгатопов","Куб","Шырын","Шэрый","Шырыт"]},72:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Cherkess"],families:["Шэджэм","Шыдрыкъукъу","Шэду","ШэджыхьэщIэ","Шогемов","Чегемов","Шидиркоко","Шэджэрыкъу","Шэджэрэ","Шэнблыкъу","Шаджаруков","Шегиров","Шанблуков","Шагироков","Шэлбар","ШэмпIар","Шампаров","Шалбаров","Шэнджэрыкъу","Шопэр","Шопаров","Шанджаруков","ШэнкIэ","Шэныбэ","ЩIанкIэ","Щэныбэ","Шанков","Шанибов","Шэрдан","Щэрдан","Шэртан","Шорданов","Шартан","Горск","Шэрджэс","Шэрый","Черкесов","Шериев","Шэрмэт","Шерметов"]},73:{tribes:["Abazin","Adyghe","Kabardian","Cherkess"],families:["Шэх","Шъан","Шэшэн","Шъагъырыкъу","Щэх","Щанэ","Чеченов","Шагируков","Шехов","Шанов","Шъау","Шаов","Шъаукъу","Шауков","Шъхьабэ","Шъхьагъэпсэу","ШъхьакIумыд","Шъхьаныкъу","Шхабов","Шхагапсоев","Схакумидов","Шхануков","Шъхьанэрый","Шъхьаплъы","Шъхьаплъэкъу","ШъхьахъутI","Шханариев","Шхаплев","Схаплок","Шхахутов","Шъхьачэ","Шъхьэгощ","Шхачев","Шхагошев","Шъхьэгъанэ","Шхаганов","Шъхьэлахъу","Шъхьэзадэ","Схаляхо","Шхазадов"]},74:{tribes:["Abazin","Adyghe","Besleney","Kabardian","Cherkess"],families:["Шъэджэкъу","Шеджоков","Шъэдзэкъу","Шъэныбэ","Щадз","Щэныбэ","Шъэогъур","Шъэожъ","Шадзов","Шанибов","Шаогуров","Шаожев","Шъэокъарыкъу","Шъэолыхъу","Шъэокъар","Шаокаров","Савкаруков","Шолохов","ШъэошIу","ШъэоцIыкIу","Шъэумэн","Савазу","Шевацуков","Совмен","Савазов","Шъэфрыкъу","Шефруков","Шъоудакъ","Шъогу","Шыдакъ","Шогов","Шидаков","Шодаков","Кавк","Шъокъан","Шъокъар","Шоканов","Шокаров","Шъокъуй","Шъолакъ"]},75:{tribes:[],families:["ЩШШШ","ЩШШ"]},76:{tribes:["Adyghe","Kabardian","Cherkess"],families:["Щукэ","Щхьэгъэпсо","Шуков","Шхагапсоев","Щыгъущ","Шугушев","Щыд","Щыко","Шыд","Шыко","Шидов","Щыкъ","Щыкъалэкъ","Щымбылыкъу","Шыкъ","Шукалоков","Шибилуков","Шиков","Щыпщэ","Щыр","Шипшев","Широв","Щырыкъу","Щырыхъу","Шируков","Ширухов","Щырыхъупакъ","Щыуажьыкъу","Щыхьмырзэ","Ширухпаков","Шиважуков","Шихмирзов","Щыщ","Щэбан","Щэджрай","Шишев","Шабанов","Шаджраев","Щэуаджыкъу","Щэджэрыкъу"]},77:{tribes:["Abazin","Adyghe","Balkar","Kabardian","Cherkess"],families:["Щэржэс","Черкесов","Щэрмэт","Щэрэгъ","Щэуей","Щэх","Шерметов","Шерегов","Шаваев","Шехов","Щэщэн","Чеченов","Элдарэкъу","Этуй","Энгуш","Эльдароков","Этуев","Энгушев","Эгъаан","Языкъ","Якокъутэ","Яганов","Языков","Якокутов","Абжиев","Северокавк","Агоев","Азов","Апшев","Ашибов","Ашинов","Ашев","Абдоков","Абахов","Адажев","Эльбашев","Альмишев","Апажев","Ансоков","Апчиков"]},78:{tribes:["Abazin","Adyghe","Kabardian"],families:["Апхудов","Апажихов","Апазаов","Архов","Афашагов","Ахов","Ашхотов","Ахобеков","Уметов","Утижев","Аюбов","Амыгъэунэфыгъэтамыгъэхэр","Адыгэ","Темыр-","Кавказ"]},79:{tribes:[],families:["Шэрджэс"]},80:{tribes:[],families:["Къэбэртэе"]},81:{tribes:[],families:[]}},ne=new Map,ma=new Map,Bt=s=>{if(ne.has(s))return Promise.resolve(ne.get(s)??null);const n=ma.get(s);if(n)return n;const t=new Promise(c=>{const h=new Image;h.crossOrigin="anonymous",h.decoding="async",h.onload=()=>
6{try{const f=h.naturalWidth||h.width,D=h.naturalHeight||h.height;if(!f||!D||typeof document>"u"){ne.set(s,null),c(null);return}const l=Math.min(220,f),w=Math.max(1,Math.round(D/f*l)),I=document.createElement("canvas");I.width=l,I.height=w;const p=I.getContext("2d",{willReadFrequently:!0});if(!p){ne.set(s,null),c(null);return}p.drawImage(h,0,0,l,w);const{data:S}=p.getImageData(0,0,l,w),i=new Array(l).fill(0),C=new Array(w).fill(0);let T=0;for(let P=0;P<w;P++)for(let b=0;b<l;b++){const M=(P*l+b)*4;if(S[M+3]<20)continue;const K=S[M],V=S[M+1],E=S[M+2],ce=.2126*K+.7152*V+.0722*E,Z=Math.max(K,V,E)-Math.min(K,V,E);(ce<235||Z>18)&&(T+=1,i[b]+=1,C[P]+=1)}if(T<24){ne.set(s,null),c(null);return}const o=Math.max(2,Math.round(w*.03)),g=Math.max(2,Math.round(l*.015));let v=i.findIndex(P=>P>=o),d=i.length-1;for(;d>=0&&i[d]<o;)d-=1;let y=C.findIndex(P=>P>=g),$=C.length-1;for(;$>=0&&C[$]<g;)$-=1;if(v<0||y<0||d<=v||$<=y){ne.set(s,null),c(null);return}const ie=d-v+1,m=$-y+1,O=ie/l,W=m/w;if(O>.94&&W>.94){ne.set(s,null),c(null);return}const se=Math.max(6,Math.round(ie*.18)),Y=Math.max(6,Math.round(m*.18));v=Math.max(0,v-se),y=Math.max(0,y-Y),d=Math.min(l-1,d+se),$=Math.min(w-1,$+Y);const te=f/l,x=D/w,k={naturalWidth:f,naturalHeight:D,left:v*te,top:y*x,width:(d-v+1)*te,height:($-y+1)*x};ne.set(s,k),c(k)}catch{ne.set(s,null),c(null)}},h.onerror=()=>{ne.set(s,null),c(null)},h.src=s}).finally(()=>{ma.delete(s)});return ma.set(s,t),t},xs=({tamga:s,className:n="",size:t=56})=>{const c=s.image_url?.includes("/wiki/"),h=s.image_url?.includes("/submissions/"),f=s.image_url?.includes("/individual/"),D=s.image_url?.includes("/archive/"),l=s.image_url?.includes("/symbols/"),w=s.image_url&&(c||f||h||D||l),[I,p]=u.useState(s.image_url?ne.get(s.image_url)??null:null);u.useEffect(()=>{if(!f||!s.image_url){p(null);return}let i=!1;return Bt(s.image_url).then(C=>{i||p(C)}),()=>{i=!0}},[f,s.image_url]);const S=u.useMemo(()=>{if(!s.image_url||!I)return null;const i=Math.min(t/I.width,t/I.height)*.82,C=I.width*i,T=I.height*i,o=(t-C)/2-I.left*i,g=(t-T)/2-I.top*i;return{width:t,height:t,backgroundColor:"hsl(var(--background))",backgroundImage:`url(${s.image_url})`,backgroundRepeat:"no-repeat",backgroundSize:`${I.naturalWidth*i}px ${I.naturalHeight*i}px`,backgroundPosition:`${o}px ${g}px`}},[I,t,s.image_url]);return w?c||l?e.jsx("img",{src:s.image_url,alt:s.name,className:`object-contain ${n}`,style:{width:t,height:t},loading:"lazy"}):S?e.jsx("div",{role:"img","aria-label":s.name,className:`rounded-lg ${n}`,style:S}):e.jsx("div",{className:`overflow-hidden rounded-lg bg-background flex items-center justify-center ${n}`,style:{width:t,height:t},children:e.jsx("img",{src:s.image_url,alt:s.name,loading:"lazy",className:"w-full h-full object-contain p-1"})}):e.jsx("div",{className:`bg-muted/30 rounded-lg flex items-center justify-center ${n}`,style:{width:t,height:t},children:e.jsx("span",{className:"text-muted-foreground/40 text-xs",children:"—"})})},Ua={ar:"أشكال أخرى للاسم",tr:"Diğer yazılışlar",ru:"Другие формы имени",he:"צורות שם נוספות",ady:"ЦIэм ифэмэ-бжьымэхэр",en:"Alternative spellings"},Ha={ar:"عرض تفاصيل العائلة",tr:"Aile detaylarını görüntüle",ru:"Подробнее о семье",he:"צפה בפרטי המשפחה",ady:"Унагъом ехьылӏагъэр",en:"View Family Details"},We={ar:"صفحة الأرشيف",tr:"Arşiv sayfası",ru:"Страница архива",he:"עמוד ארכיון",ady:"Архивым инэкӏубгъу",en:"Archive page"},Wa={ar:"الإبلاغ عن خطأ",tr:"Hata bildir",ru:"Сообщить об ошибке",he:"דווח על שגיאה",ady:"Хэукъоныгъэ къэбар",en:"Report an error"};function Lt(s,n){if(!s||n==="en")return s;let t=s;const h={ar:{"Tamga of the":"تامغا عائلة","from archive page":"من صفحة الأرشيف","Found on archive page":"من صفحة الأرشيف",family:"",row:"صف",col:"عمود","one of the prominent":"من أبرز","noble houses":"البيوت النبيلة"},tr:{"Tamga of the":"","from archive page":"arşiv sayfasından","Found on archive page":"arşiv sayfasından",family:"ailesinin tamgası",row:"satır",col:"sütun","one of the prominent":"önde gelen","noble houses":"soylu ailelerinden"},ru:{"Tamga of the":"Тамга семьи","from archive page":"со страницы архива","Found on archive page":"со страницы архива",family:"",row:"ряд",col:"столбец","one of the prominent":"один из известных","noble houses":"дворянских родов"},he:{"Tamga of the":"טמגה של משפחת","from archive page":"מעמוד ארכיון","Found on archive page":"מעמוד ארכיון",family:"",row:"שורה",col:"עמודה","one of the prominent":"אחת מהבולטות","noble houses":"בתי האצולה"},ady:{"Tamga of the":"Унагъом итамыгъэ","from archive page":"архивым щыщ","Found on archive page":"архивым щыщ",family:"",row:"сатыр",col:"колонкэ","one of the prominent":"анахь цIэрыIохэм ащыщ","noble houses":"пщы лъэкъуацIэхэм"}}[n];if(!h)return s;for(const[f,D]of Object.entries(h))t=t.replace(new RegExp(f,"g"),D);return t}
6function Pt(s,n){if(!s||n==="en")return s;const t=We[n]||We.en;return s.replace(/Archive page/g,t)}const qt=({tamga:s,onClose:n})=>{const{t,isRTL:c,language:h}=de(),[f,D]=u.useState(!1);if(!s)return null;const l=Lt(s.description,h),w=Pt(s.origin,h);return e.jsxs(Ve,{open:!!s,onOpenChange:()=>n(),children:[e.jsxs(Ge,{className:"max-w-lg p-0 overflow-y-auto max-h-[90vh]",dir:c?"rtl":"ltr",children:[e.jsx("div",{className:"bg-white flex items-center justify-center min-h-[280px] max-h-[400px] p-6",children:s.image_url?e.jsx(xs,{tamga:s,size:300,className:"rounded"}):e.jsx(re,{className:"w-24 h-24 text-primary/20"})}),e.jsxs("div",{className:"p-5 space-y-3 border-t",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("h2",{className:"font-bold text-xl",children:s.family_name?s.family_name.split("/")[0].trim():s.name.replace(" Tamga","")}),e.jsx(Q,{className:"bg-primary hover:bg-primary/90 text-primary-foreground",children:Ce(s.tribe,t)})]}),s.family_name&&e.jsxs("div",{className:"flex items-center gap-2 text-base text-muted-foreground",children:[e.jsx(ja,{className:"w-4 h-4 shrink-0"}),e.jsx("span",{dir:"auto",children:s.family_name})]}),e.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[s.name_ru&&e.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full bg-muted text-muted-foreground",children:s.name_ru}),s.name_ar&&e.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full bg-muted text-muted-foreground",dir:"rtl",children:s.name_ar}),s.name_tr&&e.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full bg-muted text-muted-foreground",children:s.name_tr}),s.name_ady&&e.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full bg-muted text-muted-foreground",children:s.name_ady})]}),s.alt_names&&s.alt_names.length>0&&e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:Ua[h]||Ua.en}),e.jsx("div",{className:"flex flex-wrap gap-1",children:s.alt_names.map((I,p)=>e.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full bg-accent/50 text-accent-foreground",children:I},p))})]}),l&&e.jsx("p",{className:"text-base text-muted-foreground",children:l}),s.meaning&&e.jsxs("div",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(De,{className:"w-4 h-4 shrink-0 mt-0.5 text-primary"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-foreground",children:t("tamga.meaning")||"Meaning & Symbolism"}),e.jsx("p",{children:s.meaning})]})]}),w&&e.jsxs("div",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Qe,{className:"w-4 h-4 shrink-0 mt-0.5 text-primary"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-foreground",children:t("tamga.origin")||"Origin"}),e.jsx("p",{children:w})]})]}),(s.era||s.region)&&e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-sm text-muted-foreground",children:[s.era&&e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(Ke,{className:"w-4 h-4 shrink-0 mt-0.5 text-primary"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-foreground",children:t("tamga.era")||"Era"}),e.jsx("p",{children:s.era})]})]}),s.region&&e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(ze,{className:"w-4 h-4 shrink-0 mt-0.5 text-primary"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-foreground",children:t("tamga.region")||"Region"}),e.jsx("p",{children:s.region})]})]})]}),s.history&&e.jsxs("div",{className:"space-y-1 text-sm text-muted-foreground",children:[e.jsx("p",{className:"font-medium text-foreground",children:t("tamga.history")||"History"}),e.jsx("p",{children:s.history})]}),s.usage_context&&e.jsxs("div",{className:"space-y-1 text-sm text-muted-foreground",children:[e.jsx("p",{className:"font-medium text-foreground",children:t("tamga.usageContext")||"Usage Context"}),e.jsx("p",{children:s.usage_context})]}),s.symbolic_elements&&s.symbolic_elements.length>0&&e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:t("tamga.symbolicElements")||"Symbolic Elements"}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:s.symbolic_elements.map((I,p)=>e.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full bg-accent/50 text-accent-foreground",children:I},p))})]}),s.variations&&s.variations.length>0&&e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:t("tamga.variations")||"Variations"}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:s.variations.map((I,p)=>e.jsx("span",{className:"text-xs px-2 py-0.5 rounded-full bg-muted text-muted-foreground",children:I},p))})]}),s.sources&&e.jsxs("div",{className:"space-y-1 text-sm text-muted-foreground",children:[e.jsx("p",{className:"font-medium text-foreground",children:t("tamga.sources")||"Sources"}),e.jsx("p",{children:s.sources})]}),s.family_id&&e.jsxs(va,{to:`/circassian-surnames?highlight=${s.family_id}`,className:"inline-flex items-center gap-1.5 text-sm text-primary hover:underline font-medium",onClick:()=>n(),children:[e.jsx(wa,{className:"w-3.5 h-3.5"}),Ha[h]||Ha.en]}),s.crop_data?.page&&e.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[e.jsx(be,{className:"w-3.5 h-3.5 shrink-0"}),e.jsxs("span",{children:[We[h]||We.en," ",s.crop_data.page]})]}),e.jsxs("button",{onClick:()=>D(!0),className:"flex items-center gap-1.5 text-sm text-destructive hover:text-destructive/80 transition-colors mt-2 pt-2 border-t border-border/50 font-medium",children:[e.jsx(Fs,{className:"w-3.5 h-3.5"}),Wa[h]||Wa.en]})]})]}),e.jsx(ht,{open:f,onOpenChange:D,tamgaId:s.id,tamgaName:s.family_name||s.name})]})},Et="https://atmxoajajfykorudespf.supabase.co/storage/v1/object/public/tamga-images/archive",Ft=["meaning","origin","history","region","era","usage_context","sources"],Va=s=>
6s?s.includes("/wiki/")||s.includes("/individual/")||s.includes("/submissions/")||s.includes("/archive/")||s.includes("/symbols/"):!1,Ga=s=>{for(const n of Ft){const t=s[n];if(typeof t=="string"&&t.trim())return t}return s.symbolic_elements?.length?s.symbolic_elements.join(" · "):s.variations?.length?s.variations.join(" · "):null},Rt=({tamgas:s,treesWithTamga:n,isLoading:t,onNavigateToArchivePage:c})=>{const{t:h,language:f}=de(),[D,l]=u.useState(""),[w,I]=u.useState(""),[p,S]=u.useState("all"),[i,C]=u.useState(!1),[T,o]=u.useState(null);u.useEffect(()=>{const m=setTimeout(()=>{I(D),D.trim()&&C(!0)},300);return()=>clearTimeout(m)},[D]);const g=()=>{I(D),C(!0)},v=u.useMemo(()=>{const m=p==="all"?s:s.filter(b=>fa(b.tribe)===p);if(!w.trim())return p!=="all"||i?{tamgas:m.filter(b=>Va(b.image_url)).slice(0,200),archive:[]}:{tamgas:[],archive:[]};const O=w.toLowerCase().trim(),W=O.split(/\s+/).filter(b=>b.length>0),se=ut(O),Y=$a(O),te=Oa(O),k=m.map(b=>{const M=[{value:b.name,weight:10,fuzzy:!0},{value:b.family_name,weight:10,fuzzy:!0},{value:b.tribe,weight:8},{value:b.name_ar,weight:9,fuzzy:!0},{value:b.name_tr,weight:9,fuzzy:!0},{value:b.name_ru,weight:9,fuzzy:!0},{value:b.name_ady,weight:9,fuzzy:!0},{value:b.name_he,weight:9,fuzzy:!0},{value:b.description,weight:3},{value:b.origin,weight:5},{value:b.history,weight:3},{value:b.meaning,weight:6},{value:b.region,weight:5},{value:b.era,weight:4},{value:b.usage_context,weight:5},{value:b.sources,weight:2},...(b.variations||[]).map(K=>({value:K,weight:7,fuzzy:!0})),...(b.alt_names||[]).map(K=>({value:K,weight:8,fuzzy:!0})),...(b.symbolic_elements||[]).map(K=>({value:K,weight:5}))];let F=0;for(const K of M){if(!K.value)continue;const V=K.value.toLowerCase();for(const E of se)if(V===E){F+=K.weight*5;break}else if(V.startsWith(E)||E.startsWith(V)){F+=K.weight*3;break}else if(V.includes(E)||E.includes(V)){F+=K.weight*2;break}if(F===0&&K.fuzzy){if(Y.length>=3){const E=$a(K.value);E===Y?F+=K.weight*4:Math.abs(E.length-Y.length)<=1&&(E.startsWith(Y)||Y.startsWith(E))&&(F+=K.weight*2.5)}F===0&&te.length>=3&&Oa(K.value)===te&&(F+=K.weight*3)}if(F===0){const E=W.filter(ce=>V.includes(ce));E.length===W.length?F+=K.weight*1.5:E.length>0&&(F+=K.weight*(E.length/W.length))}}return{tamga:b,score:F}}).filter(b=>b.score>0&&Va(b.tamga.image_url)).sort((b,M)=>M.score-b.score).map(b=>b.tamga),P=[];for(const[b,M]of Object.entries(hs))for(const F of M.families){const K=F.toLowerCase();let V=0;for(const E of se){const ce=E.split(/\s+/).filter(ue=>ue.length>0);let Z=0;K===E?Z=50:K.startsWith(E)?Z=30:K.includes(E)?Z=20:E.length>=2&&ce.some(ue=>K.includes(ue))&&(Z=10),V=Math.max(V,Z)}V>
60&&P.push({pageIndex:parseInt(b),pageNumber:130+parseInt(b),familyName:F,score:V})}return P.sort((b,M)=>M.score-b.score),{tamgas:k,archive:P.slice(0,20)}},[s,w,p,i]),d=v.tamgas.length+v.archive.length,y=m=>n.filter(O=>O.tribe===m.tribe),$=m=>{switch(f){case"ar":return m.name_ar;case"tr":return m.name_tr;case"ru":return m.name_ru;case"ady":return m.name_ady;case"he":return m.name_he;default:return null}},ie=f==="ar"||f==="he";return e.jsxs("div",{className:"space-y-4",dir:ie?"rtl":"ltr",children:[e.jsxs(Ne,{className:"border-primary/15",children:[e.jsxs(ua,{className:"pb-2",children:[e.jsxs(ha,{className:"text-base flex items-center gap-2",children:[e.jsx(ya,{className:"w-4 h-4 text-primary"}),h("tamga.searchByText")||"Search by Name, Tribe, or Description"]}),e.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1.5 mt-1",children:[e.jsx(ze,{className:"w-3 h-3"}),h("tamga.searchMultilingual")||"Search in English, العربية, Türkçe, Русский, עברית, Адыгабзэ"]})]}),e.jsxs(ke,{className:"pt-0",children:[e.jsxs("div",{className:"flex gap-2 mb-3 flex-wrap",children:[e.jsx(ae,{placeholder:h("tamga.searchPlaceholder")||"Search tamgas… (any language)",value:D,onChange:m=>l(m.target.value),onKeyDown:m=>{m.key==="Enter"&&g()},className:"flex-1 min-w-[200px] text-base border-2 border-foreground
6/40 focus-visible:border-primary",dir:"auto"}),e.jsxs("select",{value:p,onChange:m=>{S(m.target.value),C(!0)},className:"shrink-0 px-3 py-2 rounded-md border-2 border-foreground/40 bg-background text-sm font-medium focus:outline-none focus:border-primary","aria-label":h("tamga.tribeFilter")||"Filter by tribe",children:[e.jsx("option",{value:"all",children:h("tamga.allTribes")||"All tribes"}),us.map(m=>e.jsx("option",{value:m,children:h(me[m])||m},m))]}),e.jsx("button",{type:"button",onClick:g,className:"shrink-0 px-5 py-2 rounded-md bg-[#4CAF50] hover:bg-[#43A047] text-white font-medium transition-colors",children:h("tamga.searchButton")||"Search"})]}),(i||D.trim()||p!=="all")&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("p",{className:"text-xs text-muted-foreground",children:[d," ",h("tamga.resultsFound")||"results found"]}),d===0?e.jsx("p",{className:"text-sm text-muted-foreground text-center py-4",children:h("tamga.noSearchResults")||"No matching tamgas found."}):e.jsxs(e.Fragment,{children:[v.tamgas.map(m=>{const O=$(m);return e.jsxs("div",{className:"flex items-start gap-4 p-4 rounded-xl bg-muted/30 hover:bg-primary/5 transition-colors cursor-pointer border border-border/50",onClick:()=>o(m),dir:ie?"rtl":"ltr",children:[e.jsx("div",{className:"w-16 h-16 rounded-xl bg-background border border-primary/30 flex items-center justify-center shrink-0 overflow-hidden p-1",children:m.image_url?e.jsx(xs,{tamga:m,size:56}):e.jsx(re,{className:"w-6 h-6 text-primary/40"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("h4",{className:"font-bold text-base text-foreground",children:m.name}),e.jsx(Q,{className:"text-xs bg-primary/10 text-primary border-0",children:h(me[m.tribe])||m.tribe})]}),O&&f!=="en"&&e.jsx("p",{className:"text-sm text-foreground/80 mt-1 font-medium",children:O}),m.family_name&&e.jsx("p",{className:"text-sm text-muted-foreground mt-0.5",children:m.family_name}),m.alt_names&&m.alt_names.length>0&&e.jsxs("div",{className:"flex flex-wrap gap-1.5 mt-2 items-center",children:[e.jsx("span",{className:"text-xs text-muted-foreground font-medium",children:h("tamga.alsoKnownAs")||"Also known as:"}),m.alt_names.map((W,se)=>e.jsx(Q,{variant:"secondary",className:"text-xs",children:W},se))]}),Ga(m)&&e.jsx("p",{className:"text-sm text-muted-foreground mt-2 line-clamp-2",children:Ga(m)}),y(m).length>0&&e.jsxs("div",{className:"flex items-center gap-1.5 mt-2 flex-wrap",children:[e.jsx(ds,{className:"w-3.5 h-3.5 text-primary"}),y(m).slice(0,3).map(W=>e.jsx(va,{to:`/tree/${W.id}`,className:"text-xs text-primary hover:underline",children:W.name},W.id)),y(m).length>3&&e.jsxs("span",{className:"text-xs text-muted-foreground",children:["+",y(m).length-3]})]})]})]},m.id)}),v.archive.length>0&&e.jsxs(e.Fragment,{children:[v.tamgas.length>0&&e.jsxs("div",{className:"flex items-center gap-2 pt-2",children:[e.jsx("div",{className:"h-px flex-1 bg-border"}),e.jsxs("span",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(be,{className:"w-3 h-3"}),h("tamga.archiveResults")||"Archive Results"]}),e.jsx("div",{className:"h-px flex-1 bg-border"})]}),v.archive.map((m,O)=>e.jsxs("button",{onClick:()=>c?.(m.pageIndex),className:"w-full flex items-start gap-3 p-3 rounded-xl bg-amber-50/50 dark:bg-amber-900/10 hover:bg-amber-100/70 dark:hover:bg-amber-900/20 transition-colors text-left border border-amber-200/30",dir:"auto",children:[e.jsx("div",{className:"w-14 h-14 rounded-lg bg-white border border-amber-300/50 flex items-center justify-center shrink-0 overflow-hidden",children:e.jsx("img",{src:`${Et}/page-${m.pageNumber}.jpg`,alt:`${h("tamga.archivePageLabel")||"Page"} ${m.pageNumber}`,className:"w-full h-full object-cover rounded-lg",loading:"lazy"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("h4",{className:"font-semibold text-sm",children:m.familyName}),e.jsxs(Q,{className:"text-xs bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-300 border-0",children:[e.jsx(be,{className:"w-3 h-3 me-1"}),h("tamga.archivePageLabel")||"Page"," ",m.pageNumber]})]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:h("tamga.archiveClickToView")||"Click to view the archive page containing this family's tamga"})]})]},`archive-${m.pageIndex}-${O}`))]})]})]})]})]}),e.jsx(qt,{tamga:T,onClose:()=>o(null)})]})},Mt=()=>{const{t:s}=de(),{user:n}=Rs(),[t,c]=u.useState(!1),[h,f]=u.useState(!1),[D,l]=u.useState(null),[w,I]=u.useState(null),[p,S]=u.useState(""),[i,C]=u.useState(""),[T,o]=u.useState(""),[g,v]=u.useState(!1),[d,y]=u.useState({name:"",tribe:"",family_name:"",description:"",meaning:"",origin:"",era:"",region:"",history:"",usage_context:"",symbolic_elements:[],sources:"",alt_names:[],variations:[]}),{data:$=[],refetch:ie}=U({queryKey:["my-tamga-submissions",n?.id],queryFn:async()=>
6{if(!n)return[];const{data:x,error:k}=await A.from("tamga_submissions").select("*").eq("user_id",n.id).order("created_at",{ascending:!1});if(k)throw k;return x},enabled:!!n}),m=x=>{const k=x.target.files?.[0];if(k){l(k);const P=new FileReader;P.onload=()=>I(P.result),P.readAsDataURL(k)}},O=async()=>{if(!D)return null;f(!0);const{compressImage:x}=await rs(async()=>{const{compressImage:K}=await import("./imageCompression-DuP5yY6Y.js");return{compressImage:K}},[]),k=await x(D),P=k.name.split(".").pop(),b=`submissions/${Date.now()}-${Math.random().toString(36).slice(2)}.${P}`,{error:M}=await A.storage.from("tamga-images").upload(b,k);if(f(!1),M)return G.error(s("tamga.imageUploadFailed")||"Image upload failed"),null;const{data:F}=A.storage.from("tamga-images").getPublicUrl(b);return F.publicUrl},W=(x,k,P)=>{const b=k.trim();b&&!d[x].includes(b)&&(y(M=>({...M,[x]:[...M[x],b]})),P(""))},se=(x,k)=>{y(P=>({...P,[x]:P[x].filter((b,M)=>M!==k)}))},Y=async()=>{if(!n)return;if(!d.name.trim()||!d.tribe){G.error(s("tamga.nameTribeRequired")||"Name and tribe are required");return}c(!0);const x=await O(),{error:k}=await A.from("tamga_submissions").insert({user_id:n.id,name:d.name.trim(),tribe:d.tribe,family_name:d.family_name.trim()||null,description:d.description.trim()||null,meaning:d.meaning.trim()||null,origin:d.origin.trim()||null,era:d.era.trim()||null,region:d.region.trim()||null,history:d.history.trim()||null,usage_context:d.usage_context.trim()||null,symbolic_elements:d.symbolic_elements.length?d.symbolic_elements:null,sources:d.sources.trim()||null,alt_names:d.alt_names.length?d.alt_names:null,variations:d.variations.length?d.variations:null,image_url:x});c(!1),k?G.error(s("tamga.submitFailed")||"Submission failed"):(G.success(s("tamga.submitSuccess")||"Tamga submitted for review!"),y({name:"",tribe:"",family_name:"",description:"",meaning:"",origin:"",era:"",region:"",history:"",usage_context:"",symbolic_elements:[],sources:"",alt_names:[],variations:[]}),l(null),I(null),ie())};if(!n)return e.jsxs(e.Fragment,{children:[e.jsx(Ne,{className:"border-primary/15",children:e.jsxs(ke,{className:"p-8 text-center",children:[e.jsx(es,{className:"w-10 h-10 text-muted-foreground mx-auto mb-3"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:s("tamga.loginToSubmit")||"Please log in to submit a tamga for review."}),e.jsx(X,{onClick:()=>v(!0),children:s("tamga.loginButton")||"Log In"})]})}),e.jsx(cs,{open:g,onOpenChange:v})]});const te=({label:x,field:k,value:P,setter:b,placeholder:M})=>e.jsxs("div",{children:[e.jsx(ee,{className:"text-sm font-medium",children:x}),e.jsxs("div",{className:"flex gap-2 mt-1.5",children:[e.jsx(ae,{value:P,onChange:F=>b(F.target.value),placeholder:M,className:"text-sm",onKeyDown:F=>{F.key==="Enter"&&(F.preventDefault(),W(k,P,b))}}),e.jsx(X,{type:"button",variant:"outline",size:"sm",onClick:()=>W(k,P,b),children:e.jsx(ss,{className:"w-4 h-4"})})]}),d[k].length>0&&e.jsx("div",{className:"flex flex-wrap gap-1.5 mt-2",children:d[k].map((F,K)=>e.jsxs(Q,{variant:"secondary",className:"text-sm gap-1 pr-1",children:[F,e.jsx("button",{onClick:()=>se(k,K),className:"hover:text-destructive",children:e.jsx(ts,{className:"w-3 h-3"})})]},K))})]});return e.jsxs("div",{className:"space-y-6",children:[e.jsxs(Ne,{className:"border-primary/15",children:[e.jsxs(ua,{className:"pb-3",children:[e.jsxs(ha,{className:"text-lg flex items-center gap-2",children:[e.jsx(Me,{className:"w-5 h-5 text-primary"}),s("tamga.submitTitle")||"Submit a Tamga"]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s("tamga.submitDesc")||"Share your knowledge of a tamga. Submissions are reviewed by admins before publishing."})]}),e.jsxs(ke,{className:"space-y-5",children:[e.jsxs("div",{children:[e.jsx(ee,{className:"text-sm font-medium",children:s("tamga.image")||"Image"}),e.jsxs("div",{className:"mt-1.5 flex items-center gap-3",children:[e.jsx("div",{className:"w-20 h-20 rounded-lg border bg-muted/20 flex items-center justify-center overflow-hidden",children:w?e.jsx("img",{src:w,alt:"Tamga image preview",className:"w-full h-full object-contain",loading:"lazy"}
6):e.jsx(Ea,{className:"w-6 h-6 text-muted-foreground/30"})}),e.jsxs("label",{children:[e.jsx("input",{type:"file",accept:"image/*",className:"hidden",onChange:m}),e.jsx(X,{variant:"outline",size:"sm",asChild:!0,children:e.jsxs("span",{className:"gap-1.5 text-sm",children:[e.jsx(xt,{className:"w-4 h-4"})," ",s("tamga.upload")||"Upload"]})})]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsxs(ee,{className:"text-sm font-medium",children:[s("tamga.nameLabel")||"Tamga Name"," *"]}),e.jsx(ae,{value:d.name,onChange:x=>y(k=>({...k,name:x.target.value})),placeholder:s("tamga.namePlaceholder")||"e.g. Kabardian Royal Tamga",className:"mt-1.5 text-sm"})]}),e.jsxs("div",{children:[e.jsxs(ee,{className:"text-sm font-medium",children:[s("tamga.tribeLabel")||"Tribe"," *"]}),e.jsxs($e,{value:d.tribe,onValueChange:x=>y(k=>({...k,tribe:x})),children:[e.jsx(Oe,{className:"mt-1.5 text-sm",children:e.jsx(Ue,{placeholder:s("tamga.selectTribe")||"Select tribe"})}),e.jsxs(He,{children:[as.map(x=>e.jsx(Se,{value:x,children:me[x]?s(me[x]):x},x)),e.jsx(Se,{value:"Other",children:s("tamga.other")})]})]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx(ee,{className:"text-sm font-medium",children:s("tamga.familyName")||"Family / Clan Name"}),e.jsx(ae,{value:d.family_name,onChange:x=>y(k=>({...k,family_name:x.target.value})),placeholder:s("tamga.familyPlaceholder")||"e.g. Tambiyev, Shogen",className:"mt-1.5 text-sm"})]}),e.jsxs("div",{children:[e.jsx(ee,{className:"text-sm font-medium",children:s("tamga.era")||"Era / Period"}),e.jsx(ae,{value:d.era,onChange:x=>y(k=>({...k,era:x.target.value})),placeholder:s("tamga.eraPlaceholder")||"e.g. 15th–18th century",className:"mt-1.5 text-sm"})]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx(ee,{className:"text-sm font-medium",children:s("tamga.region")||"Region"}),e.jsx(ae,{value:d.region,onChange:x=>y(k=>({...k,region:x.target.value})),placeholder:s("tamga.regionPlaceholder")||"e.g. Kabardino-Balkaria, Northwest Caucasus",className:"mt-1.5 text-sm"})]}),e.jsxs("div",{children:[e.jsx(ee,{className:"text-sm font-medium",children:s("tamga.origin")||"Origin"}),e.jsx(ae,{value:d.origin,onChange:x=>y(k=>({...k,origin:x.target.value})),placeholder:s("tamga.originPlaceholder")||"e.g. Originated from horse branding",className:"mt-1.5 text-sm"})]})]}),e.jsxs("div",{children:[e.jsx(ee,{className:"text-sm font-medium",children:s("tamga.description")||"Description"}),e.jsx(pe,{value:d.description,onChange:x=>y(k=>({...k,description:x.target.value})),placeholder:s("tamga.descPlaceholder")||"Describe the tamga symbol, its shape and visual elements...",className:"mt-1.5 text-sm",rows:3})]}),e.jsxs("div",{children:[e.jsx(ee,{className:"text-sm font-medium",children:s("tamga.meaning")||"Meaning & Symbolism"}),e.jsx(pe,{value:d.meaning,onChange:x=>y(k=>({...k,meaning:x.target.value})),placeholder:s("tamga.meaningPlaceholder")||"What does this tamga symbolize? Any spiritual or cultural significance...",className:"mt-1.5 text-sm",rows:3})]}),e.jsxs("div",{children:[e.jsx(ee,{className:"text-sm font-medium",children:s("tamga.history")||"History"}),e.jsx(pe,{value:d.history,onChange:x=>y(k=>({...k,history:x.target.value})),placeholder:s("tamga.historyPlaceholder")||"Historical context, how it was used across generations...",className:"mt-1.5 text-sm",rows:3})]}),e.jsxs("div",{children:[e.jsx(ee,{className:"text-sm font-medium",children:s("tamga.usageContext")||"Usage Context"}),e.jsx(pe,{value:d.usage_context,onChange:x=>y(k=>({...k,usage_context:x.target.value})),placeholder:s("tamga.usagePlaceholder")||"How was this tamga used? (branding, seals, architecture, tombstones...)",className:"mt-1.5 text-sm",rows:2})]}),e.jsx(te,{label:s("tamga.symbolicElements")||"Symbolic Elements",field:"symbolic_elements",value:p,setter:S,placeholder:s("tamga.elementPlaceholder")||"e.g. Arrow, Circle, Cross"}),e.jsx(te,{label:s("tamga.altNames")||"Alternative Names",field:"alt_names",value:i,setter:C,placeholder:s("tamga.altNamePlaceholder")||"e.g. Дамыгъэ, داميغه"}),e.jsx(te,{label:s("tamga.variations")||"Variations",field:"variations",value:T,setter:o,placeholder:s("tamga.variationPlaceholder")||"e.g. Royal variant, Simplified"}),e.jsxs("div",{children:[e.jsx(ee,{className:"text-sm font-medium",children:s("tamga.sources")||"Sources & References"}),e.jsx(pe,{value:d.sources,onChange:x=>y(k=>({...k,sources:x.target.value})),placeholder:s("tamga.sourcesPlaceholder")||"Books, oral tradition, family records, academic papers...",className:"mt-1.5 text-sm",rows:2})]}),e.jsxs(X,{onClick:Y,disabled:t||h,className:"w-full gap-2 text-sm",children:[t&&e.jsx(Ke,{className:"w-4 h-4 animate-spin"}),e.jsx(Me,{className:"w-4 h-4"}),s("tamga.submitButton")||"Submit for Review"]})]})]}),$.length>0&&e.jsxs(Ne,{className:"border-primary/15",children:[e.jsx(ua,{className:"pb-3",children:e.jsx(ha,{className:"text-base",children:s("tamga.mySubmissions")||"My Submissions"})}),e.jsx(ke,{children:e.jsx("div",{className:"space-y-3",children:$.map(x=>e.jsxs("div",{className:"flex items-center gap-3 p-3 rounded-xl bg-muted/30",children:[e.jsx("div",{className:"w-10 h-10 rounded-lg bg-muted/50 flex items-center justify-center overflow-hidden shrink-0",children:x.image_url?e.jsx("img",{src:x.image_url,alt:`Tamga submission by ${x.submitted_by||"user"}`,className:"w-full h-full object-contain",loading:"lazy"}
6):e.jsx(Ea,{className:"w-4 h-4 text-muted-foreground/40"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-medium text-sm truncate",children:x.name}),e.jsx("p",{className:"text-xs text-muted-foreground",children:x.tribe})]}),e.jsxs(Q,{variant:x.status==="approved"?"default":x.status==="rejected"?"destructive":"secondary",className:"text-xs shrink-0",children:[x.status==="approved"&&e.jsx(Ms,{className:"w-3 h-3 mr-1"}),s(`tamga.status.${x.status}`)||x.status]})]},x.id))})})]})]})},$t=({tamgas:s,isLoading:n})=>{const{t}=de(),[c,h]=u.useState(""),[f,D]=u.useState(""),l=i=>{if(!i)return"";const C=me[i];if(!C)return i;try{return t(C)||i}catch{return i}},w=u.useMemo(()=>(s||[]).filter(i=>i&&i.id),[s]),I=u.useMemo(()=>w.find(i=>i.id===c),[w,c]),p=u.useMemo(()=>w.find(i=>i.id===f),[w,f]),S=(i,C)=>i?e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"flex justify-center",children:e.jsx("div",{className:"w-28 h-28 rounded-full bg-white border-4 border-primary flex items-center justify-center shadow-lg shadow-primary/15 relative",children:i.image_url?e.jsx("img",{src:i.image_url,alt:i.name,className:"w-[65%] h-[65%] object-contain",loading:"lazy"}):e.jsx(re,{className:"w-12 h-12 text-primary/30"})})}),e.jsxs("div",{className:"text-center",children:[e.jsx("h3",{className:"font-bold text-lg",children:i.name}),e.jsx(Q,{className:"mt-1 bg-primary hover:bg-primary/90 text-primary-foreground",children:l(i.tribe)})]}),e.jsxs("div",{className:"space-y-3 text-sm",children:[i.family_name&&e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(ja,{className:"w-4 h-4 text-primary mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:t("tamga.familyName")||"Family"}),e.jsx("p",{children:i.family_name})]})]}),i.description&&e.jsx("p",{className:"text-muted-foreground",children:i.description}),i.meaning&&e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(De,{className:"w-4 h-4 text-primary mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:t("tamga.meaning")||"Meaning"}),e.jsx("p",{children:i.meaning})]})]}),i.origin&&e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(Qe,{className:"w-4 h-4 text-primary mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:t("tamga.origin")||"Origin"}),e.jsx("p",{children:i.origin})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-3",children:[i.era&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs",children:[e.jsx(Ke,{className:"w-3.5 h-3.5 text-primary"}),e.jsx("span",{className:"text-muted-foreground",children:i.era})]}),i.region&&e.jsxs("div",{className:"flex items-center gap-1.5 text-xs",children:[e.jsx(ze,{className:"w-3.5 h-3.5 text-primary"}),e.jsx("span",{className:"text-muted-foreground",children:i.region})]})]}),i.usage_context&&e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(gt,{className:"w-4 h-4 text-primary mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:t("tamga.usageContext")||"Usage"}),e.jsx("p",{children:i.usage_context})]})]}),i.symbolic_elements&&i.symbolic_elements.length>0&&e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:t("tamga.symbolicElements")||"Elements"}),e.jsx("div",{className:"flex flex-wrap gap-1 mt-1",children:i.symbolic_elements.map((T,o)=>e.jsx(Q,{variant:"outline",className:"text-xs bg-primary/5",children:T},o))})]})]})]}):e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[e.jsx(re,{className:"w-16 h-16 mb-3 opacity-20"}),e.jsx("p",{className:"text-sm",children:C})]});return n?null:e.jsxs("div",{className:"space-y-5",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:t("tamga.compareDesc")||"Select two tamgas to compare their symbols, meanings, and historical context side by side."}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs($e,{value:c,onValueChange:h,children:[e.jsx(Oe,{children:e.jsx(Ue,{placeholder:t("tamga.selectFirst")||"Select first tamga..."})}),e.jsx(He,{children:w.map(i=>e.jsxs(Se,{value:i.id,disabled:i.id===f,children:[i.name," — ",l(i.tribe)]},i.id))})]}),e.jsxs($e,{value:f,onValueChange:D,children:[e.jsx(Oe,{children:e.jsx(Ue,{placeholder:t("tamga.selectSecond")||"Select second tamga..."})}),e.jsx(He,{children:w.map(i=>e.jsxs(Se,{value:i.id,disabled:i.id===c,children:[i.name," — ",l(i.tribe)]},i.id))})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[1fr_auto_1fr] gap-4 items-start",children:[e.jsx(Ne,{className:"border-primary/15",children:e.jsx(ke,{className:"p-5",children:S(I,t("tamga.selectFirst")||"Select first tamga")})}),e.jsx("div",{className:"hidden md:flex items-center justify-center pt-20",children:e.jsx("div",{className:"w-10 h-10 rounded-full bg-primary/10 flex items-center justify-center",children:e.jsx(ms,{className:"w-5 h-5 text-primary"})})}),e.jsx(Ne,{className:"border-primary/15",children:e.jsx(ke,{className:"p-5",children:S(p,t("tamga.selectSecond")||"Select second tamga")})})]})]})},Qa=({userId:s,currentUserId:n,children:t})=>{const{t:c}=de(),h=Xa(),f=os(),[D,l]=u.useState(!1),{data:w,isLoading:I}=U({queryKey:["user-hover-profile",s],queryFn:async()=>{const{data:d,error:y}=await A.from("profiles_public").select("user_id, full_name, avatar_url, tribe, bio, created_at").eq("user_id",s).maybeSingle();if(y)throw y;return d},enabled:D,staleTime:6e4}),{data:p=!1}=U({queryKey:["user-follow-status",n,s],queryFn:async()=>
6{if(!n)return!1;const{data:d}=await A.from("user_follows").select("id").eq("follower_id",n).eq("following_id",s).maybeSingle();return!!d},enabled:D&&!!n&&n!==s,staleTime:3e4}),{data:S=0}=U({queryKey:["user-follower-count",s],queryFn:async()=>{const{count:d}=await A.from("user_follows").select("id",{count:"exact",head:!0}).eq("following_id",s);return d||0},enabled:D,staleTime:3e4}),{data:i=0}=U({queryKey:["user-following-count",s],queryFn:async()=>{const{count:d}=await A.from("user_follows").select("id",{count:"exact",head:!0}).eq("follower_id",s);return d||0},enabled:D,staleTime:3e4}),{data:C}=U({queryKey:["user-public-tree",s],queryFn:async()=>{const{data:d}=await A.from("family_trees").select("id").eq("user_id",s).eq("is_public",!0).limit(1).maybeSingle();return d},enabled:D,staleTime:6e4}),{data:T}=U({queryKey:["user-activity-counts",s],queryFn:async()=>{const[d,y,$]=await Promise.all([A.from("tamga_posts").select("id",{count:"exact",head:!0}).eq("user_id",s).eq("status","approved"),A.from("tamga_post_comments").select("id",{count:"exact",head:!0}).eq("user_id",s),A.from("community_board_posts").select("id",{count:"exact",head:!0}).eq("user_id",s)]);return{posts:(d.count||0)+($.count||0),comments:y.count||0}},enabled:D,staleTime:6e4}),o=oe({mutationFn:async()=>{if(!n)throw new Error("Not logged in");if(p){const{error:d}=await A.from("user_follows").delete().eq("follower_id",n).eq("following_id",s);if(d)throw d}else{const{error:d}=await A.from("user_follows").insert({follower_id:n,following_id:s});if(d)throw d}},onSuccess:()=>{h.invalidateQueries({queryKey:["user-follow-status",n,s]}),h.invalidateQueries({queryKey:["user-follower-count",s]}),G.success(p?c("user.unfollowed")||"Unfollowed":c("user.followed")||"Following")},onError:()=>G.error("Failed")}),g=n===s,v=w?.created_at?bt(new Date(w.created_at),"MMM yyyy"):null;return e.jsxs(is,{open:D,onOpenChange:l,children:[e.jsx(ls,{asChild:!0,onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),children:t}),e.jsx(ns,{className:"w-72 p-0 overflow-hidden",onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),side:"bottom",align:"start",sideOffset:4,children:I?e.jsx("div",{className:"flex items-center justify-center p-6",children:e.jsx(Te,{className:"w-5 h-5 animate-spin text-muted-foreground"})}):w?e.jsxs("div",{children:[e.jsx("div",{className:"h-12 bg-gradient-to-br from-primary via-primary/90 to-primary/70 relative",children:e.jsx("div",{className:"absolute -bottom-6 left-4",children:e.jsxs(je,{className:"w-12 h-12 ring-2 ring-card shadow-lg cursor-pointer",onClick:()=>{C&&f(`/tree/${C.id}`),l(!1)},children:[e.jsx(ve,{src:w.avatar_url||""}),e.jsx(we,{className:"bg-primary/10 text-primary font-bold",children:w.full_name?.charAt(0)||"?"})]})})}),e.jsxs("div",{className:"pt-8 px-4 pb-3 space-y-2.5",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-sm",children:w.full_name||"Anonymous"}),w.tribe&&e.jsxs("div",{className:"flex items-center gap-1 mt-0.5",children:[e.jsx(Qe,{className:"w-3 h-3 text-primary"}),e.jsx(Q,{variant:"secondary",className:"text-[10px] px-1.5 py-0",children:c(me[w.tribe])||w.tribe})]})]}),w.bio&&e.jsx("div",{className:"text-[11px] text-muted-foreground line-clamp-2 bg-muted/50 rounded px-2 py-1 prose prose-xs max-w-none",dangerouslySetInnerHTML:{__html:ft.sanitize(`"${w.bio}"`)}}),e.jsxs("div",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:[e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:S})," ",c("user.followers")||"followers"]}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:i})," ",c("user.following")||"following"]})]}),T&&(T.posts>0||T.comments>0)&&e.jsxs("div",{className:"flex items-center gap-3 text-[11px] text-muted-foreground",children:[T.posts>0&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(be,{className:"w-3 h-3 text-primary/70"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:T.posts})," ",c("user.posts")||"posts"]})]}),T.comments>0&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(xa,{
6className:"w-3 h-3 text-primary/70"}),e.jsxs("span",{children:[e.jsx("strong",{className:"text-foreground",children:T.comments})," ",c("user.comments")||"comments"]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 text-[11px] text-muted-foreground",children:[v&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx($s,{className:"w-3 h-3 text-primary/70"}),e.jsx("span",{children:v})]}),C&&e.jsxs("button",{onClick:()=>{f(`/tree/${C.id}`),l(!1)},className:"flex items-center gap-1 hover:text-primary transition-colors",children:[e.jsx(Os,{className:"w-3 h-3"}),c("user.viewTree")||"View Tree"]})]}),!g&&n&&e.jsxs(X,{size:"sm",variant:p?"outline":"default",className:"w-full gap-1.5",onClick:()=>o.mutate(),disabled:o.isPending,children:[o.isPending?e.jsx(Te,{className:"w-4 h-4 animate-spin"}):p?e.jsx(pt,{className:"w-4 h-4"}):e.jsx(Us,{className:"w-4 h-4"}),p?c("user.unfollow")||"Unfollow":c("user.follow")||"Follow"]})]})]}):null})]})},pa=[{emoji:"❤️",label:"Love",key:"love"},{emoji:"😂",label:"Haha",key:"haha"},{emoji:"😮",label:"Wow",key:"wow"},{emoji:"😢",label:"Sad",key:"sad"},{emoji:"😡",label:"Angry",key:"angry"},{emoji:"👍",label:"Like",key:"like"}],ba=s=>pa.find(n=>n.key===s)?.emoji||"👍",Ot=({currentReaction:s,onReact:n,disabled:t,totalCount:c=0,reactionSummary:h={},className:f})=>{const[D,l]=u.useState(!1),w=p=>{n(p),l(!1)},I=Object.entries(h).sort((p,S)=>S[1]-p[1]).slice(0,3).map(([p])=>ba(p));return e.jsxs("div",{className:da("flex items-center",f),children:[e.jsxs(is,{open:D,onOpenChange:l,children:[e.jsx(ls,{asChild:!0,children:e.jsxs("button",{onMouseEnter:()=>!t&&l(!0),onClick:()=>{t||n(s||"like")},disabled:t,className:da("flex items-center gap-1.5 py-2.5 px-1 text-sm font-medium transition-colors hover:bg-muted/50 rounded-lg",s?"text-primary":"text-muted-foreground"),children:[s?e.jsx("span",{className:"text-lg leading-none",children:ba(s)}):e.jsx("span",{className:"text-lg leading-none",children:"👍"}),e.jsx("span",{className:"hidden sm:inline",children:s&&pa.find(p=>p.key===s)?.label||"Like"})]})}),e.jsx(ns,{className:"w-auto p-1.5 flex gap-0.5",side:"top",align:"start",sideOffset:4,onMouseLeave:()=>l(!1),children:pa.map(p=>e.jsx("button",{onClick:()=>w(p.key),className:da("text-2xl p-1.5 rounded-full hover:scale-125 transition-transform hover:bg-muted/60",s===p.key&&"bg-primary/10 scale-110"),title:p.label,children:p.emoji},p.key))})]}),c>0&&e.jsxs("div",{className:"flex items-center gap-0.5 ml-1",children:[I.map((p,S)=>e.jsx("span",{className:"text-sm",children:p},S)),e.jsx("span",{className:"text-xs text-muted-foreground ml-0.5",children:c})]})]})},Ut=({tamgas:s,focusPostId:n})=>{const{t,language:c,currentLanguageInfo:h}=de(),f=Xa();os();const{notifyTamgaPostSubmission:D}=Hs(),[l,w]=u.useState(!1),[I,p]=u.useState(""),[S,i]=u.useState(""),[C,T]=u.useState(""),[o,g]=u.useState({}),[v,d]=u.useState(new Set),[y,$]=u.useState([]),[ie,m]=u.useState([]),[O,W]=u.useState(!1),[se,Y]=u.useState(null),te=u.useRef(null),[x,k]=u.useState(null),[P,b]=u.useState(""),[M,F]=u.useState(""),[K,V]=u.useState(null),[E,ce]=u.useState({}),[Z,ue]=u.useState(null),[gs,Vt]=u.useState(""),[Ye,Gt]=u.useState("public"),[fs,Xe]=u.useState(!1),[ps,Na]=u.useState(!1),[Be,Ze]=u.useState({}),{value:bs}=Ws("tamga_settings",{enableAiImageGeneration:!0}),ys=bs?.enableAiImageGeneration!==!1,[Le,js]=u.useState({}),[Je,ka]=u.useState(new Set),[ea,aa]=u.useState(new Set),he=yt(),vs=async(a,r,j)=>{const z=h.code==="en"?"ar":h.code;if(Le[a]){aa(B=>{const R=new Set(B);return R.has(a)?R.delete(a):R.add(a),R});return}ka(B=>new Set(B).add(a));try{const B=async(H,L)=>{const _=`https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl=${L}&dt=t&q=${encodeURIComponent(H)}`,q=await fetch(_);if(!q.ok)throw new Error("Translation failed");return(await q.json())[0].map(Ee=>Ee[0]).join("")},[R,J]=await Promise.all([B(r,z),B(j,z)]);js(H=>({...H,[a]:{title:R||r,content:J||j}})),aa(H=>new Set(H).add(a))}catch{G.error(t("tamga.translateFailed")||"Translation failed")}finally{ka(B=>{const R=new Set(B);return R.delete(a),R})}},xe=gs.trim(),{data:ws=[],isLoading:Qt}=U({queryKey:["profiles-for-send",xe],queryFn:async()=>{const{data:a,error:r}=await A.from("profiles_public").select("user_id, full_name, avatar_url, tribe").or(`full_name.ilike.%${xe}%,tribe.ilike.%${xe}%`).order("full_name").limit(20);if(r)throw r;return a||[]},enabled:!!Z&&Ye==="users"&&xe.length>=2}),{data:N}=U({queryKey:["session"],queryFn:async()=>{const{data:a}=await A.auth.getSession();return a.session}}),{data:Yt=[],isLoading:Xt}=U({queryKey:["my-trees-for-share",N?.user?.id,Ye,xe],queryFn:async()=>{const a=N?.user?.id;if(!a)return[];const{data:r,error:j}=await A.from("family_trees").select("id, name, tribe, image_url").eq("user_id",a).eq("is_legacy",!1);if(j)throw j;const{data:z}=await A.from("tree_collaborators").select("tree_id").eq("user_id",a),B=(z||[]).map(L=>L.tree_id);let R=[];if(B.length>0){const{data:L}=await A.from("family_trees").select("id, name, tribe, image_url").in("id",B).eq("is_legacy",!1);R=L||[]}const J=new Map;for(const L of[...r||[],...R])J.has(L.id)||J.set(L.id,L);let H=Array.from(J.values());if(xe.length>=1){const L=xe.toLowerCase();H=H.filter(_=>(_.name||"").toLowerCase().includes(L))}return H.sort((L,_)=>(L.name||"").localeCompare(_.name||""))},enabled:!!N?.user?.id&&Ye==="family"});ws.filter(a=>a.user_id!==N?.user?.id);const sa=N?.user?.id,{isAdmin:Ia}=Vs(),{data:ge=[],isLoading:Ns}=U({queryKey:["tamga-posts",sa,Ia],queryFn:async()=>
6{if(Ia){const{data:a,error:r}=await A.from("tamga_posts").select("*").order("created_at",{ascending:!1});if(r)throw r;return a||[]}else if(sa){const{data:a,error:r}=await A.from("tamga_posts").select("*").or(`status.eq.approved,user_id.eq.${sa}`).order("created_at",{ascending:!1});if(r)throw r;return a||[]}else{const{data:a,error:r}=await A.from("tamga_posts").select("*").eq("status","approved").order("created_at",{ascending:!1});if(r)throw r;return a||[]}}}),ta=[...new Set(ge.map(a=>a.user_id))].sort().join(","),{data:ks=[]}=U({queryKey:["tamga-post-profiles",ta],queryFn:async()=>{const a=ta.split(",").filter(Boolean);if(a.length===0)return[];const{data:r,error:j}=await A.from("profiles_public").select("user_id, full_name, avatar_url, tribe").in("user_id",a);if(j)throw j;return r},enabled:ta.length>0}),{data:Aa={}}=U({queryKey:["tamga-post-reactions",N?.user?.id],queryFn:async()=>{if(!N?.user?.id)return{};const{data:a,error:r}=await A.from("tamga_post_reactions").select("post_id, reaction").eq("user_id",N.user.id);if(r)throw r;const j={};return(a||[]).forEach(z=>{j[z.post_id]=z.reaction}),j},enabled:!!N?.user?.id}),{data:_a=[]}=U({queryKey:["tamga-post-all-reactions"],queryFn:async()=>{const{data:a,error:r}=await A.from("tamga_post_reactions").select("post_id, reaction");if(r)throw r;return a||[]}}),{data:Ca=[]}=U({queryKey:["tamga-post-likes",N?.user?.id],queryFn:async()=>{if(!N?.user?.id)return[];const{data:a,error:r}=await A.from("tamga_post_likes").select("post_id").eq("user_id",N.user.id);if(r)throw r;return a.map(j=>j.post_id)},enabled:!!N?.user?.id}),{data:ra=[]}=U({queryKey:["tamga-post-comments"],queryFn:async()=>{const{data:a,error:r}=await A.from("tamga_post_comments").select("*").order("created_at",{ascending:!0});if(r)throw r;return a}});u.useEffect(()=>{if(!n||!ge.some(z=>z.id===n))return;d(z=>{const B=new Set(z);return B.add(n),B});let a=0;const r=()=>{const z=document.getElementById(`tamga-post-${n}`);z?z.scrollIntoView({behavior:"smooth",block:"start"}):a<10&&(a++,setTimeout(r,150))},j=window.setTimeout(r,100);return()=>window.clearTimeout(j)},[n,ge]);const ia=[...new Set(ra.map(a=>a.user_id))].sort().join(","),{data:Is=[]}=U({queryKey:["tamga-comment-profiles",ia],queryFn:async()=>{const a=ia.split(",").filter(Boolean);if(a.length===0)return[];const{data:r,error:j}=await A.from("profiles_public").select("user_id, full_name, avatar_url").in("user_id",a);if(j)throw j;return r},enabled:ia.length>0}),{data:la=[]}=U({queryKey:["tamga-comment-likes",N?.user?.id],queryFn:async()=>{if(!N?.user?.id)return[];const{data:a}=await A.from("tamga_post_comment_likes").select("comment_id").eq("user_id",N.user.id);return(a||[]).map(r=>r.comment_id)},enabled:!!N?.user?.id}),Pe=ge.map(a=>a.id),{data:Ta={}}=U({queryKey:["tamga-post-view-counts",Pe.join(",")],queryFn:async()=>{if(Pe.length===0)return{};const{data:a}=await A.rpc("get_view_counts_batch",{p_table:"tamga_post_views",p_column:"post_id",p_ids:Pe}),r={};return(a||[]).forEach(j=>{r[j.content_id]=Number(j.view_count)||0}),r},enabled:Pe.length>0}),As=u.useCallback(async a=>{const r=`tamga_post_viewed_${a}`;sessionStorage.getItem(r)||(sessionStorage.setItem(r,"1"),await A.from("tamga_post_views").insert({post_id:a}),f.invalidateQueries({queryKey:["tamga-post-view-counts"]}))},[f]),{data:_s=[]}=U({queryKey:["tamga-comment-like-counts"],queryFn:async()=>{const{data:a}=await A.from("tamga_post_comment_likes").select("comment_id");return a||[]}}),Da=a=>_s.filter(r=>r.comment_id===a).length,Cs=async(a,r)=>{const j=[],{compressImages:z}=await rs(async()=>{const{compressImages:R}=await import("./imageCompression-DuP5yY6Y.js");return{compressImages:R}},[]),B=await z(a);for(const R of B){const J=R.name.split(".").pop()?.toLowerCase()||"jpg",H=`posts/${r}/${Date.now()}-${Math.random().toString(36).slice(2)}.${J}`,{error:L}=await A.storage.from("tamga-images").upload(H,R);if(L)throw L;const{data:{publicUrl:_}}=A.storage.from("tamga-images").getPublicUrl(H);j.push(_)}return j},Ts=async a=>{if(y.length>=5){G.error("Maximum 5 images allowed");return}const[r,j]=a.split(","),z=r.match(/:(.*?);/)?.[1]||"image/png",B=atob(j),R=new Uint8Array(B.length);for(let L=0;L<B.length;
6L++)R[L]=B.charCodeAt(L);const J=new Blob([R],{type:z}),H=new File([J],`ai-${Date.now()}.webp`,{type:z});$(L=>[...L,H]),m(L=>[...L,a])},qe=oe({mutationFn:async()=>{if(!N?.user?.id)throw new Error("Not logged in");const a=I.trim(),r=S.trim()||a;if(!a)throw new Error("Title is required");W(!0);let j=null;try{y.length>0&&(j=await Cs(y,N.user.id))}catch(B){throw W(!1),console.error("Image upload error:",B),new Error("Image upload failed: "+(B?.message||"Unknown error"))}W(!1);const{error:z}=await A.from("tamga_posts").insert({user_id:N.user.id,title:a,content:r,tribe:C||null,gallery_urls:j});if(z)throw console.error("Tamga post insert error:",z),z},onSuccess:()=>{f.invalidateQueries({queryKey:["tamga-posts"]});const a=I,r=N?.user?.user_metadata?.full_name||N?.user?.email||"Someone";D(a,r),w(!1),p(""),i(""),T(""),$([]),m([]),G.success(t("tamga.postPendingThankYou")||"🎉 Thank you for sharing your post! It will be reviewed by an admin before appearing publicly.",{duration:6e3})},onError:a=>{console.error("Create tamga post failed:",a),G.error(a?.message||t("tamga.postFailed")||"Failed to create post")}}),Ds=a=>{const r=Array.from(a.target.files||[]);if(y.length+r.length>5){G.error(t("events.maxImages")||"Maximum 5 images allowed");return}const z=r.filter(B=>B.type.startsWith("image/")&&B.size<=5*1024*1024);$(B=>[...B,...z]),z.forEach(B=>{const R=new FileReader;R.onload=J=>m(H=>[...H,J.target?.result]),R.readAsDataURL(B)}),a.target&&(a.target.value="")},Ss=a=>{$(r=>r.filter((j,z)=>z!==a)),m(r=>r.filter((j,z)=>z!==a))},Ks=oe({mutationFn:async({postId:a,reaction:r})=>{if(!N?.user?.id)throw new Error("Not logged in");const j=Aa[a];j===r?await A.from("tamga_post_reactions").delete().eq("post_id",a).eq("user_id",N.user.id):j?await A.from("tamga_post_reactions").update({reaction:r}).eq("post_id",a).eq("user_id",N.user.id):await A.from("tamga_post_reactions").insert({post_id:a,user_id:N.user.id,reaction:r})},onSuccess:()=>{f.invalidateQueries({queryKey:["tamga-post-reactions"]}),f.invalidateQueries({queryKey:["tamga-post-all-reactions"]}),f.invalidateQueries({queryKey:["tamga-posts"]})}});oe({mutationFn:async a=>{if(!N?.user?.id)throw new Error("Not logged in");Ca.includes(a)?await A.from("tamga_post_likes").delete().eq("post_id",a).eq("user_id",N.user.id):await A.from("tamga_post_likes").insert({post_id:a,user_id:N.user.id})},onSuccess:()=>{f.invalidateQueries({queryKey:["tamga-post-likes"]}),f.invalidateQueries({queryKey:["tamga-posts"]})}});const zs=a=>{const r={};return _a.filter(j=>j.post_id===a).forEach(j=>{r[j.reaction]=(r[j.reaction]||0)+1}),r},Bs=a=>_a.filter(r=>r.post_id===a).length,Sa=oe({mutationFn:async a=>{if(!N?.user?.id)throw new Error("Not logged in");const r=o[a]?.trim();if(!r)return;const{error:j}=await A.from("tamga_post_comments").insert({post_id:a,user_id:N.user.id,content:r});if(j)throw j},onSuccess:(a,r)=>{f.invalidateQueries({queryKey:["tamga-post-comments"]}),g(j=>({...j,[r]:""}))}}),Ls=oe({mutationFn:async a=>{const{error:r}=await A.from("tamga_posts").delete().eq("id",a);if(r)throw r},onSuccess:()=>{f.invalidateQueries({queryKey:["tamga-posts"]}),G.success(t("tamga.postDeleted"))},onError:()=>G.error(t("tamga.postDeleteFailed"))}),na=oe({mutationFn:async a=>{const{error:r}=await A.from("tamga_posts").update({title:P,content:M}).eq("id",a);if(r)throw r},onSuccess:()=>{f.invalidateQueries({queryKey:["tamga-posts"]}),k(null),G.success(t("tamga.postUpdated"))},onError:()=>G.error(t("tamga.postUpdateFailed"))}),Ka=oe({mutationFn:async a=>{if(!N?.user?.id)return;la.includes(a)?await A.from("tamga_post_comment_likes").delete().eq("comment_id",a).eq("user_id",N.user.id):await A.from("tamga_post_comment_likes").insert({comment_id:a,user_id:N.user.id})},onSuccess:()=>{f.invalidateQueries({queryKey:["tamga-comment-likes"]}),f.invalidateQueries({queryKey:["tamga-comment-like-counts"]})}}),za=oe({mutationFn:async({postId:a,parentId:r})=>{if(!N?.user?.id)return;const j=E[r]?.trim();if(!j)return;const{error:z}=await A.from("tamga_post_comments").insert({post_id:a,user_id:N.user.id,content:j,parent_id:r});if(z)throw z},onSuccess:(a,{parentId:r})=>{f.invalidateQueries({queryKey:["tamga-post-comments"]}),ce(j=>({...j,[r]:""})),V(null)}}),Ie=a=>ks.find(r=>r.user_id===a),Ba=a=>Is.find(r=>r.user_id===a),Ps=a=>ra.filter(r=>r.post_id===a&&!r.parent_id),qs=a=>ra.filter(r=>r.parent_id===a);return Ns?e.jsx("div",{className:"space-y-4",children:Array.from({length:3}).map((a,r)=>
6e.jsx(ga,{className:"h-40 rounded-xl"},r))}):e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:t("tamga.postsDesc")||"Share knowledge, stories, and discoveries about Circassian tamgas."}),N?e.jsxs(Ve,{open:l,onOpenChange:w,children:[e.jsx(Gs,{asChild:!0,children:e.jsxs(X,{size:"sm",className:"gap-1.5",children:[e.jsx(ss,{className:"w-4 h-4"}),t("tamga.newPost")||"New Post"]})}),e.jsxs(Ge,{children:[e.jsx(Za,{children:e.jsx(Ja,{children:t("tamga.createPost")||"Create a Tamga Post"})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(ae,{placeholder:t("tamga.postTitlePlaceholder")||"Post title...",value:I,onChange:a=>{p(a.target.value),Ze(r=>({...r,title:!1}))},className:Be.title?"border-destructive ring-destructive/30 ring-2":""}),Be.title&&e.jsx("p",{className:"text-xs text-destructive mt-1",children:t("tamga.titleRequired")||"Title is required"})]}),e.jsxs("div",{children:[e.jsx(pe,{placeholder:t("tamga.postContentPlaceholder")||"Share your knowledge about a tamga...",value:S,onChange:a=>{i(a.target.value),Ze(r=>({...r,content:!1}))},rows:5,className:Be.content?"border-destructive ring-destructive/30 ring-2":""}),Be.content&&e.jsx("p",{className:"text-xs text-destructive mt-1",children:t("tamga.contentRequired")||"Content is required"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"relative",children:[e.jsx(wa,{className:"absolute ltr:left-3 rtl:right-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(ae,{placeholder:t("community.linkPlaceholder")||"Paste a link (Facebook, YouTube, etc.)",className:"ltr:pl-9 rtl:pr-9 text-sm",onChange:a=>he.detectAndFetch(a.target.value),onPaste:a=>{setTimeout(()=>{const r=a.target.value;he.detectAndFetch(r)},100)}})]}),e.jsx(jt,{metadata:he.metadata,loading:he.loading,error:he.error,blockedPlatform:he.blockedPlatform,onClear:he.clear})]}),e.jsxs($e,{value:C,onValueChange:T,children:[e.jsx(Oe,{children:e.jsx(Ue,{placeholder:t("tamga.selectTribe")||"Select tribe (optional)"})}),e.jsx(He,{children:as.map(a=>e.jsx(Se,{value:a,children:t(me[a])||a},a))})]}),e.jsxs("div",{children:[e.jsxs("label",{className:"text-sm font-medium mb-1.5 block",children:[t("tamga.photos")||"Photos"," (",y.length,"/5)"]}),e.jsx("input",{type:"file",ref:te,onChange:Ds,accept:"image/*",multiple:!0,className:"hidden"}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[ie.map((a,r)=>e.jsxs("div",{className:"relative w-16 h-16 rounded-lg overflow-hidden border group",children:[e.jsx("img",{src:a,alt:`Post image preview ${r+1}`,className:"w-full h-full object-cover",loading:"lazy"}),e.jsx("button",{type:"button",onClick:()=>Ss(r),className:"absolute inset-0 bg-black/50 opacity-0 group-hover:opacity-100 flex items-center justify-center transition-opacity",children:e.jsx(ts,{className:"w-4 h-4 text-white"})})]},r)),y.length<5&&e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",onClick:()=>te.current?.click(),className:"w-16 h-16 rounded-lg border-2 border-dashed border-muted-foreground/30 hover:border-primary/50 flex items-center justify-center transition-colors",children:e.jsx(Qs,{className:"w-5 h-5 text-muted-foreground"})}),ys&&e.jsxs("button",{type:"button",onClick:()=>Na(!0),className:"w-16 h-16 rounded-lg border-2 border-dashed border-primary/30 hover:border-primary/60 hover:bg-primary/5 flex flex-col items-center justify-center transition-colors gap-0.5",title:t("ai.createWithAi")||"AI Image",children:[e.jsx(De,{className:"w-4 h-4 text-primary"}),e.jsx("span",{className:"text-[9px] text-primary font-medium",children:"AI"})]})]})]})]}),e.jsxs(X,{onClick:()=>{const a={title:!I.trim(),content:!S.trim()};Ze(a),!(a.title||a.content)&&qe.mutate()},disabled:qe.isPending||O,className:"w-full",children:[qe.isPending||O?e.jsx(Te,{className:"w-4 h-4 animate-spin mr-1"}):null,qe.isPending||O?"...":t("tamga.publishPost")||"Publish Post"]})]})]})]}):e.jsxs(X,{size:"sm",variant:"outline",className:"gap-1.5",onClick:()=>Xe(!0),children:[e.jsx(es,{className:"w-4 h-4"}),t("tamga.loginButton")||"Log In"]})]}),ge.length===0?e.jsxs("div",{className:"text-center py-16",children:[e.jsx(xa,{
6className:"w-12 h-12 text-muted-foreground mx-auto mb-3 opacity-30"}),e.jsx("p",{className:"text-muted-foreground",children:t("tamga.noPosts")||"No posts yet. Be the first to share!"})]}):e.jsx("div",{className:"space-y-4",children:ge.map(a=>{const r=Ie(a.user_id),j=Ps(a.id);Ca.includes(a.id);const z=Aa[a.id],B=zs(a.id),R=Bs(a.id),J=v.has(a.id),H=N?.user?.id===a.user_id;As(a.id);const L=a.status;return e.jsxs("div",{id:`tamga-post-${a.id}`,className:`bg-card rounded-xl border shadow-sm overflow-hidden max-w-[500px] mx-auto ${L==="pending"?"border-yellow-500/50":L==="rejected"?"border-destructive/40":"border-border/40"}`,children:[L==="pending"&&H&&e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2.5 bg-yellow-500/10 border-b border-yellow-500/20 text-yellow-600 dark:text-yellow-400",children:[e.jsx(Ke,{className:"w-4 h-4 shrink-0"}),e.jsxs("span",{className:"text-xs font-medium",children:["⏳ ",t("tamga.postPending")]})]}),L==="rejected"&&H&&e.jsxs("div",{className:"flex items-center gap-2 px-4 py-2.5 bg-destructive/10 border-b border-destructive/20 text-destructive",children:[e.jsx(Ys,{className:"w-4 h-4 shrink-0"}),e.jsx("span",{className:"text-xs font-medium",children:t("tamga.postRejected")})]}),e.jsxs("div",{className:"flex items-center gap-3 px-4 pt-4 pb-2",children:[e.jsx(Qa,{userId:a.user_id,currentUserId:N?.user?.id,children:e.jsx("button",{className:"shrink-0",children:e.jsxs(je,{className:"w-10 h-10 ring-2 ring-primary/20 cursor-pointer hover:ring-primary/50 transition-all",children:[e.jsx(ve,{src:r?.avatar_url||""}),e.jsx(we,{className:"text-sm font-bold bg-primary/10 text-primary",children:r?.full_name?.charAt(0)||"?"})]})})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx(Qa,{userId:a.user_id,currentUserId:N?.user?.id,children:e.jsx("button",{className:"text-left",children:e.jsx("p",{className:"text-sm font-bold truncate hover:underline cursor-pointer",children:r?.full_name||t("tamga.anonymous")||"Anonymous"})})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:ca(a.created_at,h.code)})]}),a.tribe&&e.jsx(Q,{className:"text-sm bg-primary/15 text-primary border-0 font-medium shrink-0 px-3 py-1",children:t(me[a.tribe])||a.tribe}),N?.user?.id===a.user_id&&e.jsxs(Xs,{children:[e.jsx(Zs,{asChild:!0,children:e.jsx("button",{className:"p-1.5 rounded-full hover:bg-muted/50 transition-colors",children:e.jsx(Nt,{className:"w-5 h-5 text-muted-foreground"})})}),e.jsxs(Js,{align:"end",children:[e.jsxs(Fa,{onClick:()=>{k(a.id),b(a.title),F(a.content)},children:[e.jsx(et,{className:"w-4 h-4 mr-2"}),t("tamga.edit")]}),e.jsxs(Fa,{className:"text-destructive focus:text-destructive",onClick:()=>{confirm(t("tamga.deleteConfirm"))&&Ls.mutate(a.id)},children:[e.jsx(at,{className:"w-4 h-4 mr-2"}),t("tamga.delete")]})]})]})]}),e.jsx("div",{className:"px-4 pb-3",children:x===a.id?e.jsxs("div",{className:"space-y-2",children:[e.jsx(ae,{value:P,onChange:_=>b(_.target.value),className:"text-sm font-bold"}),e.jsx(pe,{value:M,onChange:_=>F(_.target.value),rows:3}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(X,{size:"sm",onClick:()=>na.mutate(a.id),disabled:na.isPending,children:[na.isPending?e.jsx(Te,{className:"w-3 h-3 animate-spin mr-1"}):null,t("tamga.save")]}),e.jsx(X,{size:"sm",variant:"outline",onClick:()=>k(null),children:t("tamga.cancel")})]})]}):e.jsx(e.Fragment,{children:ea.has(a.id)&&Le[a.id]?e.jsxs(e.Fragment,{children:[e.jsx("h3",{className:"font-bold text-[15px] mb-1",children:Le[a.id].title}),e.jsx("p",{className:"text-sm text-foreground/80 whitespace-pre-wrap leading-relaxed",children:Le[a.id].content}),e.jsx("button",{onClick:()=>aa(_=>{const q=new Set(_);return q.delete(a.id),q}),className:"text-xs text-primary hover:underline mt-1.5 font-medium",children:t("tamga.showOriginal")||"Show Original"})]}):e.jsxs(e.Fragment,{children:[e.jsx("h3",{className:"font-bold text-[15px] mb-1",children:a.title}),e.jsx("p",{className:"text-sm text-foreground/80 whitespace-pre-wrap leading-relaxed",children:a.content})]})})}),a.image_url&&e.jsx("div",{className:"border-t border-b border-border/20 flex justify-center bg-muted/30",children:e.jsx("img",{src:a.image_url,alt:"Tamga community post image",className:"max-w-full max-h-[600px] object-contain cursor-pointer hover:opacity-95 transition-opacity",style:{width:"auto",height:"auto"},onClick:()=>Y(a.image_url)})}),a.gallery_urls&&a.gallery_urls.length>0&&e.jsx("div",{className:`border-t border-border/20 grid gap-0.5 ${a.gallery_urls.length===1?"grid-cols-1":(a.gallery_urls.length===2,"grid-cols-2")}`,children:a.gallery_urls.slice(0,4).map((_,q)=>e.jsxs("div",{className:`overflow-hidden cursor-pointer relative group ${a.gallery_urls.length===1?"":a.gallery_urls.length===3&&q===0?"row-span-2":""}`,onClick:()=>Y(_),children:[e.jsx("img",{src:_,alt:`Tamga gallery image ${q+1}`,className:`w-full group-hover:scale-105 transition-transform duration-300 ${a.gallery_urls.length===1?"max-h-[520px] object-contain bg-muted/30":"aspect-square object-cover"}`,loading:"lazy"}),q===3&&a.gallery_urls.length>4&&e.jsx("div",{className:"absolute inset-0 bg-black/50 flex items-center justify-center",children:e.jsxs("span",{className:"text-white text-2xl font-bold",children:["+",a.gallery_urls.length-4]})})]},q))}),e.jsxs("div",{className:"flex items-center justify-between px-4 py-2 text-xs text-muted-foreground",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[(R>0||a.likes_count>0)&&e.jsxs("div",{className:"flex items-center gap-1",children:[Object.entries(B).sort((_,q)=>q[1]-_[1]).slice(0,3).map(([_],q)=>e.jsx("span",{className:"text-sm",children:ba(_)},q)),R===0&&a.likes_count>0&&e.jsx("span",{className:"w-[18px] h-[18px] rounded-full bg-destructive flex items-center justify-center",children:e.jsx(st,{className:"w-2.5 h-2.5 text-white fill-white"})}),e.jsx("span",{children:R>0?R:a.likes_count})]}),(Ta[a.id]||0)>0&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(tt,{className:"w-3.5 h-3.5"}),e.jsx("span",{children:Ta[a.id]})]})]}),j.length>0&&e.jsxs("button",{onClick:()=>d(_=>{const q=new Set(_);return q.has(a.id)?q.delete(a.id):q.add(a.id),q}),className:"hover:underline",children:[j.length," ",j.length===1?t("tamga.commentCount"):t("tamga.commentsCount")]})]}),e.jsxs("div",{className:`flex items-center border-t border-border/30 mx-4 ${L!=="approved"&&H?"opacity-40 pointer-events-none":""}`,children:[e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx(Ot,{currentReaction:z||null,onReact:_=>N&&Ks.mutate({postId:a.id,reaction:_}),disabled:!N||L!=="approved"&&H})}),e.jsxs("button",{onClick:()=>d(_=>{const q=new Set(_);return q.has(a.id)?q.delete(a.id):q.add(a.id),q}),className:"flex-1 flex items-center justify-center gap-2 py-2.5 text-sm font-medium text-muted-foreground hover:bg-muted/50 rounded-lg my-1 transition-colors",children:[e.jsx(xa,{
6className:"w-[18px] h-[18px]"}),e.jsxs("span",{children:[t("tamga.comment"),j.length>0?` ${j.length}`:""]})]}),e.jsxs("button",{onClick:()=>{ue(a.id)},className:"flex-1 flex items-center justify-center gap-2 py-2.5 text-sm font-medium text-muted-foreground hover:bg-muted/50 rounded-lg my-1 transition-colors",children:[e.jsx(rt,{className:"w-[18px] h-[18px]"}),e.jsx("span",{children:t("tamga.share")})]}),e.jsxs("button",{onClick:()=>vs(a.id,a.title,a.content),disabled:Je.has(a.id),className:`flex-1 flex items-center justify-center gap-2 py-2.5 text-sm font-medium transition-colors hover:bg-muted/50 rounded-lg my-1 ${ea.has(a.id)?"text-primary":"text-muted-foreground"}`,children:[Je.has(a.id)?e.jsx(Te,{className:"w-[18px] h-[18px] animate-spin"}):e.jsx(it,{className:"w-[18px] h-[18px]"}),e.jsx("span",{children:Je.has(a.id)?t("tamga.translating"):ea.has(a.id)?t("tamga.showOriginal"):t("tamga.translate")})]})]}),J&&e.jsxs("div",{className:"border-t border-border/30 bg-muted/20 px-4 py-3 space-y-3",children:[j.map(_=>{const q=Ba(_.user_id),oa=Da(_.id),Ee=la.includes(_.id),La=qs(_.id);return e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsxs(je,{className:"w-8 h-8 mt-0.5",children:[e.jsx(ve,{src:q?.avatar_url||""}),e.jsx(we,{className:"text-[10px] bg-muted text-muted-foreground",children:q?.full_name?.charAt(0)||"?"})]}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"bg-muted/60 rounded-2xl px-3 py-2",children:[e.jsx("p",{className:"text-xs font-bold",children:q?.full_name||t("tamga.anonymous")}),e.jsx("p",{className:"text-sm",children:_.content})]}),e.jsxs("div",{className:"flex items-center gap-3 mt-0.5 ml-3",children:[e.jsx("p",{className:"text-[10px] text-muted-foreground",children:ca(_.created_at,h.code)}),e.jsxs("button",{onClick:()=>N&&Ka.mutate(_.id),className:`text-[10px] font-semibold hover:underline ${Ee?"text-red-500":"text-muted-foreground"}`,disabled:!N,children:[Ee?"❤️":t("tamga.like"),oa>0?` (${oa})`:""]}),e.jsx("button",{onClick:()=>V(K===_.id?null:_.id),className:"text-[10px] font-semibold text-muted-foreground hover:underline",children:t("tamga.reply")})]})]})]}),La.length>0&&e.jsx("div",{className:"ml-10 space-y-2",children:La.map(le=>{const Ae=Ba(le.user_id),Pa=Da(le.id),qa=la.includes(le.id);return e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsxs(je,{className:"w-6 h-6 mt-0.5",children:[e.jsx(ve,{src:Ae?.avatar_url||""}),e.jsx(we,{className:"text-[8px] bg-muted text-muted-foreground",children:Ae?.full_name?.charAt(0)||"?"})]}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"bg-muted/60 rounded-2xl px-3 py-1.5",children:[e.jsx("p",{className:"text-[10px] font-bold",children:Ae?.full_name||t("tamga.anonymous")}),e.jsx("p",{className:"text-xs",children:le.content})]}),e.jsxs("div",{className:"flex items-center gap-3 mt-0.5 ml-3",children:[e.jsx("p",{className:"text-[10px] text-muted-foreground",children:ca(le.created_at,h.code)}),e.jsxs("button",{onClick:()=>N&&Ka.mutate(le.id),className:`text-[10px] font-semibold hover:underline ${qa?"text-red-500":"text-muted-foreground"}`,disabled:!N,children:[qa?"❤️":t("tamga.like"),Pa>0?` (${Pa})`:""]})]})]})]},le.id)})}),K===_.id&&N&&e.jsxs("div",{className:"ml-10 flex items-center gap-2",children:[e.jsxs(je,{className:"w-6 h-6",children:[e.jsx(ve,{src:Ie(N.user.id)?.avatar_url||""}),e.jsx(we,{className:"text-[8px] bg-primary/10 text-primary",children:Ie(N.user.id)?.full_name?.charAt(0)||N.user?.email?.charAt(0)?.toUpperCase()||"?"})]}),e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(ae,{placeholder:t("tamga.writeReply"),value:E[_.id]||"",onChange:le=>ce(Ae=>({...Ae,[_.id]:le.target.value})),onKeyDown:le=>le.key==="Enter"&&za.mutate({postId:a.id,parentId:_.id}),className:"text-xs rounded-full bg-muted/50 border-border/30 pr-10 h-8"}),e.jsx(X,{size:"icon",variant:"ghost",onClick:()=>za.mutate({postId:a.id,parentId:_.id}),disabled:!E[_.id]?.trim(),className:"absolute right-1 top-1/2 -translate-y-1/2 w-6 h-6",children:e.jsx(Me,{className:"w-3 h-3 text-primary"})})]})]})]},_.id)}),N?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(je,{className:"w-8 h-8",children:[e.jsx(ve,{src:Ie(N.user.id)?.avatar_url||""}),e.jsx(we,{className:"text-[10px] bg-primary/10 text-primary",children:Ie(N.user.id)?.full_name?.charAt(0)||N.user?.email?.charAt(0)?.toUpperCase()||"?"})]}),e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(ae,{placeholder:t("tamga.writeComment")||"Write a comment...",value:o[a.id]||"",onChange:_=>g(q=>({...q,[a.id]:_.target.value})),onKeyDown:_=>_.key==="Enter"&&Sa.mutate(a.id),className:"text-sm rounded-full bg-muted/50 border-border/30 pr-10"}),e.jsx(X,{size:"icon",variant:"ghost",onClick:()=>Sa.mutate(a.id),disabled:!o[a.id]?.trim(),className:"absolute right-1 top-1/2 -translate-y-1/2 w-7 h-7",children:e.jsx(Me,{className:"w-3.5 h-3.5 text-primary"})})]})]}):e.jsx("p",{className:"text-xs text-muted-foreground text-center",children:e.jsx("button",{onClick:()=>Xe(!0),className:"text-primary hover:underline",children:t("tamga.loginToComment")||"Log in to comment"})})]})]},a.id)})}),e.jsx(lt,{src:se||"",alt:"Post image",open:!!se,onOpenChange:a=>!a&&Y(null)}),Z&&e.jsx(vt,{open:!!Z,onOpenChange:a=>!a&&ue(null),shareTitle:ge.find(a=>a.id===Z)?.title||"Tamga Post",sharePath:`/tamga?post=${Z}`,contentLabel:"post"}),e.jsx(cs,{open:fs,onOpenChange:Xe}),e.jsx(wt,{open:ps,onOpenChange:Na,onImageReady:Ts})]})},Ht="https://atmxoajajfykorudespf.supabase.co/storage/v1/object/public/tamga-images/archive",fe=[{page:130,label:"А — Abaze to Abdzakh",labelAr:"أ — أبازه إلى أبدزاخ",labelRu:"А — Абазе — Абдзах"}
6,{page:132,label:"А — Adzhenaghw to Azamet",labelAr:"أ — أدجيناغو إلى آزاميت",labelRu:"А — Адженагу — Азамет"},{page:134,label:"А — Amshyqw to Arqwash",labelAr:"أ — أمشيقو إلى أركواش",labelRu:"А — Амшуку — Аркуаш"},{page:136,label:"А — Akhw to B",labelAr:"أ — آخو إلى ب",labelRu:"А — Аху — Б"},{page:137,label:"Б — Bayramqul to Bzhedug",labelAr:"ب — بايرامقول إلى بجيدوغ",labelRu:"Б — Байрамкул — Бжедуг"},{page:140,label:"Б — Bibolet to Bzhasse",labelAr:"ب — بيبوليت إلى بجاسه",labelRu:"Б — Биболет — Бжасэ"},{page:144,label:"Г — Gelyasten to Gwoset",labelAr:"غ — غيلياستين إلى غوسيت",labelRu:"Г — Гелястен — Гвосет"},{page:146,label:"Д — Da to Dzase",labelAr:"د — دا إلى دزاسي",labelRu:"Д — Да — Дзасэ"},{page:150,label:"Дж — Dzhandar to Е",labelAr:"دج — جاندار إلى ي",labelRu:"Дж — Джандар — Е"},{page:156,label:"К — Kazbek to Kunashe",labelAr:"ك — كازبيك إلى كوناشه",labelRu:"К — Казбек — Кунаше"},{page:162,label:"Къ — Qeral to Qwmpyl",labelAr:"كع — كيرال إلى كومبيل",labelRu:"Къ — Керал — Кумпыл"},{page:168,label:"Л — Lakhw to M",labelAr:"ل — لاخو إلى م",labelRu:"Л — Лаху — М"},{page:174,label:"М — Mysost to Н",labelAr:"م — ميسوست إلى ن",labelRu:"М — Мысост — Н"},{page:180,label:"П — Pago to Р",labelAr:"ب — باغو إلى ر",labelRu:"П — Паго — Р"},{page:184,label:"С — Saat to Т",labelAr:"س — ساعت إلى ت",labelRu:"С — Саат — Т"},{page:190,label:"Т — Tlyzhyn to У",labelAr:"ت — تليجين إلى أو",labelRu:"Т — Тлыжин — У"},{page:194,label:"Х — Khabe to Ц",labelAr:"خ — خابي إلى تس",labelRu:"Х — Хабэ — Ц"},{page:198,label:"Ц — Tsiku to Ч",labelAr:"تس — تسيكو إلى ش",labelRu:"Ц — Цику — Ч"},{page:202,label:"Ш — Shedu to end",labelAr:"ش — شيدو إلى النهاية",labelRu:"Ш — Шеду — конец"},{page:209,label:"★ Circassian Tamga Summary",labelAr:"★ ملخص الدمغات الشركسية",labelRu:"★ Сводка черкесских тамга"},{page:210,label:"★ Kabardian Tamga Summary",labelAr:"★ ملخص الدمغات القبردية",labelRu:"★ Сводка кабардинских тамга"}],Fe=81,Re=130,Ya={en:{title:"Tamga Archive — Family Names & Emblems",source:'Source: "Adyghe Family Names and Tamga" by A. B. Chuyako, 2012',prev:"Previous",next:"Next",page:"Page",of:"of",jumpTo:"Jump to section",zoomTip:"Click image to zoom"},ar:{title:"أرشيف الدمغات — أسماء العائلات والشعارات",source:'المصدر: "الأسماء الأديغية والدمغات" - أ. ب. تشوياكو، 2012',prev:"السابق",next:"التالي",page:"صفحة",of:"من",jumpTo:"انتقل إلى القسم",zoomTip:"انقر على الصورة للتكبير"},tr:{title:"Tamga Arşivi — Aile İsimleri ve Armalar",source:'Kaynak: "Adıge Aile İsimleri ve Tamga" - A. B. Çuyako, 2012',prev:"Önceki",next:"Sonraki",page:"Sayfa",of:"/",jumpTo:"Bölüme git",zoomTip:"Büyütmek için tıklayın"},ru:{title:"Архив тамга — Фамилии и гербы",source:"Источник: «Адыгские фамилии и тамги» А. Б. Чуяко, 2012",prev:"Назад",next:"Далее",page:"Стр.",of:"из",jumpTo:"Перейти к разделу",zoomTip:"Нажмите для увеличения"},he:{title:"ארכיון טמגה — שמות משפחה וסמלים",source:`מקור: "שמות משפחה וטמגה אדיגיים" מאת א. ב. צ'ויאקו, 2012`,prev:"הקודם",next:"הבא",page:"עמוד",of:"מתוך",jumpTo:"עבור לסעיף",zoomTip:"לחץ להגדלה"},ady:{title:"Тамыгъэ архив — Лъэкъуацlэхэр",source:'Къыздэкlуар: "Адыгэ лъэкъуацlэхэмрэ тамыгъэхэмрэ" А. Б. Чуяко, 2012',prev:"Iэпэм",next:"Даблэм",page:"Нэкlубгъуэ",of:"-",jumpTo:"Iыхьэм кlуэн",zoomTip:"Тепыгъэу еплъын"}},Wt=({initialPageIndex:s}={})=>{const{language:n,isRTL:t}=de(),[c,h]=u.useState(s||0);u.useEffect(()=>{s!==void 0&&s>=0&&h(s)},[s]);const[f,D]=u.useState(!1),l=Ya[n]||Ya.en,w=Re+c,I=`${Ht}/page-${w}.jpg`,p=i=>{i>=0&&i<Fe&&h(i)},S=i=>{const C=Re+i,T=n;for(let o=fe.length-1;o>=0;o--)if(C>=fe[o].page)return T==="ar"?fe[o].labelAr:T==="ru"?fe[o].labelRu:fe[o].label;return""};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:`flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 ${t?"sm:flex-row-reverse":""}`,children:[e.jsxs("div",{className:t?"text-right":"",children:[e.jsxs("h2",{className:"text-xl font-bold text-foreground flex items-center gap-2",children:[e.jsx(be,{className:"w-5 h-5 text-primary"}),l.title]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:l.source})]}),e.jsx("select",{value:c,onChange:i=>p(Number(i.target.value)),className:"text-sm border border-border rounded-lg px-3 py-2 bg-card text-foreground max-w-[280px]","aria-label":l.jumpTo,children:fe.map(i=>{const C=i.page-Re,T=n,o=T==="ar"?i.labelAr:T==="ru"?i.labelRu:i.label;return e.jsx("option",{value:C,children:o},i.page)})})]}),e.jsx("div",{className:"text-center",children:e.jsx("span",{className:"inline-block bg-primary/10 text-primary text-sm font-medium px-4 py-1.5 rounded-full",children:S(c)})}),e.jsx("div",{className:"relative bg-card border border-border rounded-xl overflow-hidden",children:e.jsxs("button",{onClick:()=>D(!0),className:"w-full cursor-zoom-in group",title:l.zoomTip,children:[e.jsx("img",{src:I,alt:`Circassian Tamga Archive - ${S(c)}`,className:"w-full h-auto max-h-[80vh] object-contain mx-auto transition-transform group-hover:scale-[1.02]",loading:"lazy"}),e.jsx("div",{className:"absolute top-3 right-3 bg-background/80 backdrop-blur-sm rounded-lg p-2 opacity-0 group-hover:opacity-100 transition-opacity",children:e.jsx(kt,{className:"w-5 h-5 text-foreground"})})]})}),(()=>{const i=hs[c];if(!i||i.families.length===0)return null;const C={Kabardian:{en:"Kabardian",ar:"قبردي",tr:"Kabardey",ru:"Кабардинец"},Adyghe:{en:"Adyghe",ar:"أديغي",tr:"Adıge",ru:"Адыгеец"},Abazin:{en:"Abazin",ar:"أبازيني",tr:"Abazin",ru:"Абазинец"},Cherkess:{en:"Cherkess",ar:"شركسي",tr:"Çerkes",ru:"Черкес"},Balkar:{en:"Balkar",ar:"بلقاري",tr:"Balkar",ru:"Балкарец"},Karachai:{en:"Karachai",ar:"قراتشاي",tr:"Karaçay",ru:"Карачаевец"},Shapsug:{en:"Shapsug",ar:"شابسوغ",tr:"Şapsığ",ru:"Шапсуг"},Besleney:{en:"Besleney",ar:"بسلني",tr:"Besleney",ru:"Бесленеевец"}
6,Ubykh:{en:"Ubykh",ar:"أوبيخ",tr:"Ubıh",ru:"Убых"},Natukhay:{en:"Natukhay",ar:"ناتوخاي",tr:"Natuhay",ru:"Натухаец"},Bzhedug:{en:"Bzhedug",ar:"بجيدوغ",tr:"Bjedug",ru:"Бжедуг"},Temirgoy:{en:"Temirgoy",ar:"تيميرغوي",tr:"Temirgoy",ru:"Темиргоевец"},Hatuqway:{en:"Hatuqway",ar:"حاتوقواي",tr:"Hatukuay",ru:"Хатукаевец"},Mamkhegh:{en:"Mamkhegh",ar:"مامخيغ",tr:"Mamheğ",ru:"Мамхег"}},T=n;return e.jsxs("div",{className:"rounded-xl border bg-card p-4 space-y-3",children:[i.tribes.length>0&&e.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[e.jsx("span",{className:"text-xs font-medium text-muted-foreground mr-1",children:T==="ar"?"القبائل:":T==="ru"?"Племена:":T==="tr"?"Kabileler:":"Tribes:"}),i.tribes.map(o=>e.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-primary/10 text-primary",children:C[o]?.[T]||C[o]?.en||o},o))]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-xs font-medium text-muted-foreground block mb-2",children:T==="ar"?`العائلات في هذه الصفحة (${i.families.length}):`:T==="ru"?`Фамилии на этой странице (${i.families.length}
6):`:T==="tr"?`Bu sayfadaki aileler (${i.families.length}):`:`Families on this page (${i.families.length}):`}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:i.families.map((o,g)=>e.jsx("span",{className:"inline-block px-2 py-0.5 rounded-md text-xs bg-muted text-foreground border border-border/50",children:o},g))})]})]})})(),e.jsxs("div",{className:`flex items-center justify-between ${t?"flex-row-reverse":""}`,children:[e.jsxs(X,{variant:"outline",size:"sm",onClick:()=>p(c-1),disabled:c===0,className:"gap-1.5",children:[t?e.jsx(Ra,{className:"w-4 h-4"}):e.jsx(Ma,{className:"w-4 h-4"}),l.prev]}),e.jsxs("span",{className:"text-sm text-muted-foreground font-medium",children:[l.page," ",c+1," ",l.of," ",Fe]}),e.jsxs(X,{variant:"outline",size:"sm",onClick:()=>p(c+1),disabled:c===Fe-1,className:"gap-1.5",children:[l.next,t?e.jsx(Ma,{className:"w-4 h-4"}):e.jsx(Ra,{className:"w-4 h-4"})]})]}),e.jsx("div",{className:"flex gap-1.5 overflow-x-auto pb-2 scrollbar-thin",children:Array.from({length:Fe},(i,C)=>{const T=Re+C,o=C===c,g=fe.some(v=>v.page===T);return e.jsx("button",{onClick:()=>p(C),className:`shrink-0 w-10 h-10 rounded-md border-2 text-[10px] font-mono flex items-center justify-center transition-all ${o?"border-primary bg-primary/10 text-primary font-bold scale-110":g?"border-accent bg-accent/20 text-foreground hover:border-primary/50":"border-border bg-card text-muted-foreground hover:border-primary/30"}`,title:`Page ${T}`,children:T},C)})}),e.jsx(Ve,{open:f,onOpenChange:D,children:e.jsx(Ge,{className:"max-w-[95vw] max-h-[95vh] p-2 overflow-auto",children:e.jsx("img",{src:I,alt:`Circassian Tamga Archive - ${S(c)} (zoomed)`,className:"w-full h-auto",loading:"lazy"})})})]})},Lr=()=>{const{t:s,isRTL:n,language:t}=de(),c=It("tamga",t);nt({ogImage:"https://circassianweb.com/tamga-hero-v3.jpg",title:c.title,description:c.description,keywords:c.keywords,jsonLd:[{"@context":"https://schema.org","@type":"CollectionPage",name:"Circassian Tamga Encyclopedia – Tribal Crests & Clan Symbols",description:"Complete catalog of Circassian tribal tamga crests and clan symbols from all 12 Adyghe tribes.",url:"https://circassianweb.com/tamga",about:{"@type":"Thing",name:"Adyghe culture",description:"Cultural symbols and tribal identity of the Circassian people"}},{"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"How do I find my Circassian family tamga?",acceptedAnswer:{"@type":"Answer",text:"To find your Circassian family tamga, start by identifying your family's tribe and clan name. On CircassianWeb's Tamga page, you can search by tribe name (e.g. Kabardian, Shapsug, Bzhedug), family name, or browse the visual archive. You can also compare symbols to identify a tamga seen on old gravestones or family documents. If you cannot find your tamga, you can submit a request with your family details."}},{"@type":"Question",name:"Are Circassian tamga symbols still used today?",acceptedAnswer:{"@type":"Answer",text:"Yes, Circassian tamga symbols are still used today, particularly for cultural identity and heritage purposes. Many Circassians in diaspora communities use their family tamga on jewelry, tattoos, family documents, and social media profiles as a symbol of pride and ancestral connection. In the North Caucasus, tamga can be found on gravestones and monuments. CircassianWeb's archive preserves hundreds of documented tamga symbols."}}]}]});const[h]=mt(),f=h.get("post"),D=h.get("tab"),[l,w]=u.useState(D||"search"),[I,p]=u.useState(void 0),S=o=>{p(o),w("archive")},{data:i=[],isLoading:C}=U({queryKey:["tamgas"],queryFn:async()=>{const g=[];for(let v=0;;v+=1e3){const{data:d,error:y}=await A.from("tamgas").select("*").eq("has_symbol",!0).order("tribe",{ascending:!0}).range(v,v+1e3-1);if(y)throw y;if(!d||d.length===0||(g.push(...d),d.length<1e3))break}return g}}),{data:T=[]}=U({queryKey:["trees-with-tamga"],queryFn:async()=>{const{data:o,error:g}=await A.from("family_trees").select("id, name, tribe, tamga_url").eq("is_public",!0).not("tamga_url","is",null).order("name");if(g)throw g;return o}});return u.useEffect(()=>{f&&w("posts")},[f]),e.jsxs(At,{children:[(()=>{const o={en:{h1:"Circassian Tamga — Ancient Clan Symbols & Family Crests",slogan:"Every mark tells a story — discover the symbol that c
6onnects you to your ancestors.",h2:"The Largest Digital Archive of Adyghe Tribal Emblems",h3:"Search, Compare & Identify Your Family's Heritage Symbol",h4:"From Gravestones to Digital Preservation — Protecting Our Visual Identity",h5:"📜 5,684 Tamgas · 1,959 Family Crests · 12+ Circassian Tribes — the world's largest digital archive of Adyghe, Kabardian, Abazin, Shapsug, Ubykh, Besleney & more, with visual search, AI identification, side-by-side comparison, and linked family trees.",greeting:"Discover the Tamga of Your Ancestors!",intro:"The tamga (тамгъэ) is more than a symbol — it is a visual fingerprint of your family's place in Circassian history. CircassianWeb's Tamga Hub lets you explore, identify, and preserve these ancient emblems that have defined clan identity for centuries.",bullets:[{bold:"Visual Search & Identification",text:"— upload or describe a tamga you've seen on old gravestones, jewelry, or documents to find its origin."},{bold:"Side-by-Side Comparison Tool",text:"— compare symbols from different tribes to trace family connections and migration patterns."},{bold:"Community Submissions",text:"— contribute your family's tamga to grow the archive and help others reconnect with their roots."},{bold:"Linked Family Trees",text:"— see which documented family trees carry each tamga, connecting symbols to living lineages."},{bold:"Educational Encyclopedia",text:"— learn the meaning, history, and geographic origin of each symbol with scholarly references."}],internalTitle:"Explore Related Heritage",internalLinks:[{label:"Circassian Family Names & Tribes",href:"/families"},{label:"Build Your Family Tree",href:"/family-trees"},{label:"Circassian History & Heritage",href:"/history"},{label:"Community Board — Share & Discuss",href:"/community"}],externalTitle:"External References",externalLinks:[{label:"Tamga — Wikipedia",href:"https://en.wikipedia.org/wiki/Tamga"},{label:"Circassian Tribes — Wikipedia",href:"https://en.wikipedia.org/wiki/Circassian_tribes"},{label:"Heraldry & Clan Symbols — Britannica",href:"https://www.britannica.com/topic/heraldry"},{label:"Circassians — World History Encyclopedia",href:"https://www.worldhistory.org/Circassians/"}]},tr:{h1:"Çerkes Tamga — Kadim Klan Sembolleri ve Aile Armaları",slogan:"Her işaret bir hikâye anlatır — sizi atalarınıza bağlayan sembolü keşfedin.",h2:"Adıge Kabile Amblemlerinin En Büyük Dijital Arşivi",h3:"Ailenizin Miras Sembolünü Arayın, Karşılaştırın ve Tanımlayın",h4:"Mezar Taşlarından Dijital Korumaya — Görsel Kimliğimizi Koruyoruz",h5:"📜 5.684 Tamga · 1.959 Aile Arması · 12+ Çerkes Kabilesi — Adıge, Kabardey, Abazin, Şapsığ, Ubıh, Besleney ve daha fazlası için dünyanın en büyük dijital arşivi; görsel arama, yapay zekâ ile tanımlama, yan yana karşılaştırma ve bağlantılı soy ağaçları.",greeting:"Atalarınızın İzini Keşfedin!",intro:"Tamga (тамгъэ) bir sembolden fazlasıdır — ailenizin Çerkes tarihindeki yerinin görsel parmak izidir. CircassianWeb'in Tamga Merkezi, yüzyıllardır klan kimliğini tanımlayan bu kadim amblemleri keşfetmenizi, tanımlamanızı ve korumanızı sağlar.",bullets:[{bold:"Görsel Arama ve Tanımlama",text:"— eski mezar taşlarında, takılarda veya belgelerde gördüğünüz bir tamgayı yükleyin veya tanımlayın."},{bold:"Yan Yana Karşılaştırma Aracı",text:"— farklı kabilelerden sembolleri karşılaştırarak aile bağlarını ve göç izlerini takip edin."},{bold:"Topluluk Katkıları",text:"— ailenizin tamgasını ekleyerek arşivi büyütün ve diğerlerinin köklerini bulmasına yardım edin."},{bold:"Bağlantılı Soy Ağaçları",text:"— hangi belgelenmiş soy ağaçlarının her tamgayı taşıdığını görün."},{bold:"Eğitici Ansiklopedi",text:"— her sembolün anlamını, tarihini ve coğrafi kökenini akademik referanslarla öğrenin."}],internalTitle:"İlgili Mirası Keşfedin",internalLinks:[{label:"Çerkes Aile İsimleri ve Kabileler",href:"/tr/families"},{label:"Soy Ağacınızı Oluşturun",href:"/tr/family-trees"},{label:"Çerkes Tarihi ve Mirası",href:"/tr/history"},{label:"Topluluk Panosu",href:"/tr/community"}],externalTitle:"Dış Referanslar",externalLinks:[{label:"Tamga — Vikipedi",href:"https://tr.wikipedia.org/wiki/Tamga"},{label:"Çerkes Kabileleri — Vikipedi",href:"https://tr.wikipedia.org/wiki/%C3%87erkes_kabileleri"},{label:"Hanedan Armaları — Vikipedi",href:"https://tr.wikipedia.org/wiki/Arma"},{label:"Kaffed — Kafkas Dernekleri Federasyonu",href:"https://www.kaffed.org/"}]},ar:{h1:"الدمغة الشركسية — رموز العشائر القديمة وشعارات العائلات",slogan:"كل علامة تحكي قصة — اكتشف الرمز الذي يربطك بأجدادك.",h2:"صفحة أرشيف رقمي لشعارات القبائل الشركسية",h3:"ابحث، قارن وتعرّف على رمز تراث عائلتك",h4:"من شواهد القبور إلى الحفظ الرقمي — نحمي هويتنا البصرية",h5:"📜 5,684 دمغة · 1,959 شعار عائلة · أكثر من 12 قبيلة شركسية — أكبر أرشيف رقمي في العالم للأديغة والقبردي والأبازين والشابسوغ والأوبيخ والبسلني وغيرهم، مع بحث بصري، وتعرّف بالذكاء الاصطناعي، ومقارنة جنبًا إلى جنب، وأشجار عائلية مرتبطة.",greeting:"اكتشف علامة أجدادك!",intro:"الدمغة (тамгъэ) أكثر من مجرد رمز — إنها البصمة البصرية لمكانة عائلتك في التاريخ الشركسي. مركز الدمغات في CircassianWeb يتيح لكم استكشاف وتحديد وحفظ هذه الشعارات القديمة التي حددت هوية العشائر لقرون.",bullets:[{bold:"البحث البصري والتعرّف",text:"— ارفعوا أو صفوا دمغة رأيتموها على شواهد قبور قديمة أو مجوهرات أو وثائق لمعرفة أصلها."},{bold:"أداة المقارنة جنبًا إلى جنب",text:"— قارنوا رموزًا من قبائل مختلفة لتتبع الروابط العائلية وأنماط الهجرة."},{bold:"مساهمات المجتمع",text:"— أضيفوا دمغة عائلتكم لتنمية الأرشيف ومساعدة الآخرين على التواصل مع جذورهم."},{bold:"أشجار عائلية مرتبطة",text:"— شاهدوا أي أشجار عائلية موثقة تحمل كل دمغة، وربط الرموز بالأنساب الحية."},{bold:"موسوعة تعليمية",text:"— تعلموا معنى وتاريخ وأصل كل رمز جغرافيًا مع مراجع علمية."}],internalTitle:"استكشفوا التراث المرتبط",internalLinks:[{label:"أسماء العائلات والقبائل الشركسية",href:"/ar/families"},{label:"أنشئ شجرة عائلتك",href:"/ar/family-trees"},{label:"التاريخ والتراث الشركسي",href:"/ar/history"},{label:"لوحة المجتمع — شارك وناقش",href:"/ar/community"}],externalTitle:"مراجع خارجية",externalLinks:[{label:"الطمغة — ويكيبيديا",href:"https://ar.wikipedia.org/wiki/%D8%B7%D9%85%D8%BA%D8%A9"},{label:"الشركس — ويكيبيديا",href:"https://ar.wikipedia.org/wiki/%D8%B4%D8%B1%D9%83%D8%B3"},{label:"شعارات النبالة — ويكيبيديا",href:"https://ar.wikipedia.org/wiki/%D8%B4%D8%B9%D8%A7%D8%B1_%D8%A7%D9%84%D9%86%D8%A8%D8%A7%D9%84%D8%A9"},{label:"الجمعية الشركسية الدولية",href:"https://intercircass.org/"}]},ru:{h1:"Черкесская тамга — древние клановые символы и фамильные гербы",slogan:"Каждый знак рассказывает историю — найдите символ, связывающий вас с предками.",h2:"Крупнейший цифровой архив адыгских племенных эмблем",h3:"Ищите, сравнивайте и определяйте геральдический символ вашей семьи",h4:"От надгробий до цифрового хранения — защищаем нашу визуальную идентичность",h5:"📜 5 684 тамги · 1 959 фамильных гербов · 12+ черкесских племён — крупнейший в мире цифровой архив адыгских, кабардинских, абазинских, шапсугских, убыхских, бесленеевских и других тамг с визуальным поиском, ИИ-распознаванием, сравнением и связанными родословными.",greeting:"Откройте знак ваших предков!",intro:"Тамга (тамгъэ) — это больше, чем символ. Это визуальный отпечаток места вашей семьи в черкесской истории. Центр тамга на CircassianWeb позволяет исследовать, идентифицировать и сохранять эти древние эмблемы, определявшие клановую идентичность на протяжении веков.",bullets:[{bold:"Визуальный поиск и идентификация",text:"— загрузите или опишите тамгу, увиденную на старых надгробиях, украшениях или документах."},{bold:"Инструмент сравнения",text:"— сравнивайте символы разных племён для отслеживания семейных связей и миграционных путей."},{bold:"Вклад сообщества",text:"— добавьте тамгу вашей семьи, чтобы пополнить архив и помочь другим найти свои корни."},{bold:"Связанные родословные",text:"— смотрите, какие задокументированные родословные несут каждую тамгу."},{bold:"Образовательная энциклопедия",text:"— узнайте значение, историю и географическое происхождение каждого символа."}],internalTitle:"Исследуйте связанное наследие",internalLinks:[{label:"Черкесские фамилии и племена",href:"/ru/families"},{label:"Создайте родословное дерево",href:"/ru/family-trees"},{label:"Черкесская история и наследие",href:"/ru/history"},{label:"Доска сообщества",href:"/ru/community"}],externalTitle:"Внешние ссылки",externalLinks:[{label:"Тамга — Википедия",href:"https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D0%BC%D0%B3%D0%B0"},{label:"Черкесы — Википедия",href:"https://ru.wikipedia.org/wiki/%D0%A7%D0%B5%D1%80%D0%BA%D0%B5%D1%81%D1%8B"},{label:"Геральдика — Википедия",href:"https://ru.wikipedia.org/wiki/%D0%93%D0%B5%D1%80%D0%B0%D0%BB%D1%8C%D0%B4%D0%B8%D0%BA%D0%B0"},{label:"МЧА — Международная Черкесская Ассоциация",href:"https://intercircass.org/"}]}
6,he:{h1:"טמגה צ'רקסית — סמלי שבט עתיקים וסמלי משפחה",slogan:"כל סימן מספר סיפור — גלו את הסמל שמחבר אתכם לאבותיכם.",h2:"הארכיון הדיגיטלי הגדול ביותר של סמלי שבטים אדיגיים",h3:"חפשו, השוו וזהו את סמל המורשת של משפחתכם",h4:"ממצבות קבורה לשימור דיגיטלי — מגנים על הזהות החזותית שלנו",h5:"📜 5,684 תמגות · 1,959 סמלי משפחה · 12+ שבטים צ׳רקסים — הארכיון הדיגיטלי הגדול בעולם של אדיגה, קברדינית, אבזין, שפסוג, אוביך, בסלני ועוד, עם חיפוש חזותי, זיהוי AI, השוואה זה לצד זה ועצי משפחה מקושרים.",greeting:"גלו את סימן אבותיכם!",intro:"הטמגה (тамгъэ) היא יותר מסמל — היא טביעת האצבע החזותית של מקום משפחתכם בהיסטוריה הצ'רקסית. מרכז הטמגה של CircassianWeb מאפשר לכם לחקור, לזהות ולשמר את הסמלים העתיקים האלה.",bullets:[{bold:"חיפוש חזותי וזיהוי",text:"— העלו או תארו טמגה שראיתם על מצבות ישנות, תכשיטים או מסמכים."},{bold:"כלי השוואה זה לצד זה",text:"— השוו סמלים משבטים שונים לאיתור קשרי משפחה ודפוסי הגירה."},{bold:"תרומות הקהילה",text:"— הוסיפו את הטמגה של משפחתכם להרחבת הארכיון ולעזור לאחרים למצוא שורשים."},{bold:"עצי משפחה מקושרים",text:"— ראו אילו עצי משפחה מתועדים נושאים כל טמגה."},{bold:"אנציקלופדיה חינוכית",text:"— למדו את המשמעות, ההיסטוריה והמקור הגיאוגרפי של כל סמל."}],internalTitle:"חקרו מורשת קשורה",internalLinks:[{label:"שמות משפחה ושבטים צ'רקסיים",href:"/he/families"},{label:"בנו את עץ המשפחה שלכם",href:"/he/family-trees"},{label:"היסטוריה ומורשת צ'רקסית",href:"/he/history"},{label:"לוח קהילתי",href:"/he/community"}],externalTitle:"הפניות חיצוניות",externalLinks:[{label:"טמגה — ויקיפדיה",href:"https://he.wikipedia.org/wiki/%D7%98%D7%9E%D7%92%D7%94"},{label:"צ'רקסים — ויקיפדיה",href:"https://he.wikipedia.org/wiki/%D7%A6%27%D7%A8%D7%9B%D7%A1%D7%99%D7%9D"},{label:"הרלדיקה — ויקיפדיה",href:"https://he.wikipedia.org/wiki/%D7%94%D7%A8%D7%9C%D7%93%D7%99%D7%A7%D7%94"},{label:"הקהילה הצ'רקסית בישראל",href:"https://he.wikipedia.org/wiki/%D7%A6%27%D7%A8%D7%9B%D7%A1%D7%99%D7%9D_%D7%91%D7%99%D7%A9%D7%A8%D7%90%D7%9C"}]},ady:{h1:"Адыгэ тамгъэ — лIакъуэ дамыгъэжьхэмрэ унагъуэ гербхэмрэ",slogan:"Дамыгъэ къэс хъыбар еIуатэ — уи адэжьхэм узэзыпх дамыгъэр къэщIэ.",h2:"Адыгэ лъэпкъ дамыгъэхэм я нэхъ ин дыдэ цифровой архив",h3:"Лъыхъуэ, зэгъэпщэ, уи унагъуэм и тамгъэр къэщIэ",h4:"Сын мывэхэм къыщегъэжьауэ цифровой хъумапIэм нэс",h5:"📜 5,684 тамгъэ · 1,959 унагъуэ дамыгъэ · 12+ адыгэ лъэпкъ — Адыгэ, Къэбэрдей, Абазэ, Шапсыгъ, Убых, Беслъэней нэгъуэщIхэри зыхэт дунейпсо архив нэхъ ин дыдэр, сурэткIэ лъыхъуэн, AI-кIэ къэхутэн, зэгъэпщэн, унагъуэ жыгхэр зэпхауэ.",greeting:"Уи адэжьхэм я дамыгъэр къэщIэ!",intro:"Тамгъэр дамыгъэ къудейкъым — уи унагъуэм адыгэ тхыдэм щиIыгъ увыпIэм и нэрылъагъу «IэпэбзыпхъэщIщ». CircassianWeb-м и Тамгъэ Центрым ухуитщ мы дамыгъэжьх
6эр къэпщIэну, къэпхутэну, пхъумэну.",bullets:[{bold:"НэрылъагъуэкIэ лъыхъуэн",text:"— сын мывэжьхэм, дыщэ-дыжьын хьэпшыпхэм е тхылъхэм щыплъэгъуа тамгъэр къэщIэ."},{bold:"ЗэгъэпщэкIэ Iэмэпсымэ",text:"— лъэпкъ зэхуэмыдэхэм я дамыгъэхэр зэгъэпщи, благъагъэ зэпыщIэныгъэхэр къэхут."},{bold:"Жылагъуэм и хэлъхьэныгъэ",text:"— уи унагъуэм и тамгъэр хэлъхьи, архивыр нэхъ ин щIы."},{bold:"ЛъэпкъыщхьэкIэ зэпыщIа",text:"— тамгъэ къэс зезыхьэ лъэпкъ жыгхэр плъагъу."},{bold:"ЩIэныгъэ энциклопедие",text:"— дамыгъэ къэс и мыхьэнэр, и тхыдэр, и щIыпIэр зэгъэщIэ."}],internalTitle:"Щэнхабзэ зэпыщIахэр къэхут",internalLinks:[{label:"Адыгэ унэцIэхэмрэ лъэпкъхэмрэ",href:"/ady/families"},{label:"Уи лъэпкъ жыгыр гъэпс",href:"/ady/family-trees"},{label:"Адыгэ тхыдэмрэ щIэинымрэ",href:"/ady/history"},{label:"Жылагъуэ пхъэбгъу",href:"/ady/community"}],externalTitle:"НэгъуэщI щIыпIэхэр",externalLinks:[{label:"Адыгэхэр — Википедие",href:"https://ady.wikipedia.org/wiki/%D0%90%D0%B4%D1%8B%D0%B3%D1%8D%D1%85%D1%8D%D1%80"},{label:"Тамгъэ — Википедие",href:"https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D0%BC%D0%B3%D0%B0"},{label:"Адыгэ лъэпкъхэр — Википедие",href:"https://kbd.wikipedia.org/wiki/%D0%90%D0%B4%D1%8B%D0%B3%D1%8D%D1%85%D1%8D%D1%80"},{label:"Дунейпсо Адыгэ Хасэ",href:"https://intercircass.org/"}]}},g=["en","tr","ar","ru","he","ady"].includes(t)?t:"en",v=o[g]||o.en;return e.jsxs(e.Fragment,{children:[e.jsx(_t,{icon:ot,eyebrow:{en:"Tamga Service",tr:"Tamga Hizmeti",ar:"خدمة الدمغة",ru:"Сервис тамги",he:"שירות טמגה",ady:"Тамгъэ Ӏуэху"}[g]||"Tamga Service",title:v.h1,subtitle:v.slogan,decoration:"🛡️",dir:n?"rtl":"ltr"}),e.jsxs("div",{className:"w-full max-w-[1600px] mx-auto px-4 sm:px-8 pb-6",dir:n?"rtl":"ltr",children:[e.jsxs("div",{className:"space-y-3 max-w-3xl mb-6",children:[e.jsx("h2",{className:"text-xl sm:text-2xl font-semibold text-foreground/90",children:v.h2}),e.jsx("h3",{className:"text-lg font-medium text-muted-foreground",children:v.h3}),e.jsx("h4",{className:"text-base text-muted-foreground/80",children:v.h4})]}),(()=>{const d={en:{tamgas:"Tamgas Archived",families:"Family Crests",tribes:"Circassian Tribes",features:["Visual Search","AI Identification","Side-by-Side Compare","Linked Family Trees","Community Encyclopedia"]},tr:{tamgas:"Arşivlenen Tamga",families:"Aile Arması",tribes:"Çerkes Kabilesi",features:["Görsel Arama","Yapay Zekâ Tanıma","Yan Yana Karşılaştırma","Bağlı Soy Ağaçları","Topluluk Ansiklopedisi"]},ar:{tamgas:"دمغة مؤرشفة",families:"شعار عائلة",tribes:"قبيلة شركسية",features:["بحث بصري","تعرّف بالذكاء الاصطناعي","مقارنة جنبًا إلى جنب","أشجار عائلية مرتبطة","موسوعة المجتمع"]},ru:{tamgas:"тамг в архиве",families:"фамильных гербов",tribes:"черкесских племён",features:["Визуальный поиск","ИИ-распознавание","Сравнение рядом","Связанные родословные","Энциклопедия сообщества"]},he:{tamgas:"תמגות בארכיון",families:"סמלי משפחה",tribes:"שבטים צ׳רקסים",features:["חיפוש חזותי","זיהוי AI","השוואה זה לצד זה","עצי משפחה מקושרים","אנציקלופדיה קהילתית"]},ady:{tamgas:"тамгъэхэр",families:"унагъуэ дамыгъэ",tribes:"адыгэ лъэпкъ",features:["Сурэт лъыхъуэн","AI къэхутэн","Зэгъэпщэн","Унагъуэ жыг зэпхауэ","Жылагъуэ энциклопедие"]}},y=d[g]||d.en,$=m=>
6g==="ru"?m.toLocaleString("ru-RU"):m.toLocaleString("en-US"),ie=[{value:$(5684),label:y.tamgas},{value:$(1959),label:y.families},{value:"12+",label:y.tribes}];return e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"grid grid-cols-3 gap-3 sm:gap-4 mb-4",children:ie.map((m,O)=>e.jsxs("div",{className:"relative overflow-hidden rounded-2xl border border-primary/20 bg-gradient-to-br from-primary/10 via-primary/5 to-background p-4 sm:p-6 shadow-sm hover:shadow-md transition-shadow",children:[e.jsx("div",{className:"absolute -top-6 -right-6 w-20 h-20 rounded-full bg-primary/10 blur-2xl"}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"text-2xl sm:text-4xl font-serif font-bold text-primary leading-none tabular-nums",children:m.value}),e.jsx("div",{className:"mt-1.5 sm:mt-2 text-[11px] sm:text-sm text-muted-foreground font-medium uppercase tracking-wide",children:m.label})]})]},O))}),e.jsx("div",{className:"flex flex-wrap gap-2",children:y.features.map((m,O)=>e.jsxs("span",{className:"inline-flex items-center gap-1.5 px-3.5 py-1.5 rounded-full bg-gradient-to-r from-primary/10 to-primary/5 border border-primary/25 text-xs sm:text-sm text-foreground font-medium shadow-sm hover:from-primary/15 hover:to-primary/10 hover:border-primary/40 transition-colors",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary"}),m]},O))})]})})()]})]})})(),e.jsx("div",{className:"w-full max-w-[1600px] mx-auto px-4 pt-4 sm:pt-6 pb-16 sm:pb-24",children:e.jsxs(dt,{value:l,onValueChange:w,dir:n?"rtl":"ltr",children:[e.jsxs(ct,{className:"w-full grid grid-cols-5 mb-6 rounded-xl p-1.5 h-auto overflow-hidden",children:[e.jsxs(_e,{value:"gallery",className:"gap-1.5 text-xs sm:text-sm py-2.5",children:[e.jsx(re,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:s("tamga.gallery")||"Gallery"})]}),e.jsxs(_e,{value:"archive",className:"gap-1.5 text-xs sm:text-sm py-2.5",children:[e.jsx(Ct,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:s("tamga.archive")||"Archive"})]}),e.jsxs(_e,{value:"search",className:"gap-1.5 text-xs sm:text-sm py-2.5",children:[e.jsx(ya,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:s("tamga.search")||"Search"})]}),e.jsxs(_e,{value:"compare",className:"gap-1.5 text-xs sm:text-sm py-2.5",children:[e.jsx(ms,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:s("tamga.compare")||"Compare"})]}),e.jsxs(_e,{value:"submit",className:"gap-1.5 text-xs sm:text-sm py-2.5",children:[e.jsx(Dt,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:s("tamga.submitTab")||"Submit"})]})]}),e.jsx(ye,{value:"gallery",children:e.jsx(zt,{tamgas:i,treesWithTamga:T,isLoading:C})}),e.jsx(ye,{value:"archive",children:e.jsx(Wt,{initialPageIndex:I})}),e.jsx(ye,{value:"search",children:e.jsx(Rt,{tamgas:i,treesWithTamga:T,isLoading:C,onNavigateToArchivePage:S})}),e.jsx(ye,{value:"compare",children:e.jsx($t,{tamgas:i,isLoading:C})}),e.jsx(ye,{value:"posts",children:e.jsx(Ut,{tamgas:i,focusPostId:f||void 0})}),e.jsx(ye,{value:"submit",children:e.jsx(Mt,{})})]})}),(()=>{const o=["en","tr","ar","ru","he","ady"].includes(t)?t:"en",g={en:{greeting:"Discover the Tamga of Your Ancestors!",intro:"The tamga (тамгъэ) is more than a symbol — it is a visual fingerprint of your family's place in Circassian history. CircassianWeb's Tamga Hub lets you explore, identify, and preserve these ancient emblems that have defined clan identity for centuries.",bullets:[{bold:"Visual Search & Identification",text:"— upload or describe a tamga you've seen on old gravestones, jewelry, or documents to find its origin."},{bold:"Side-by-Side Comparison Tool",text:"— compare symbols from different tribes to trace family connections and migration patterns."},{bold:"Community Submissions",text:"— contribute your family's tamga to grow the archive and help others reconnect with their roots."},{bold:"Linked Family Trees",text:"— see which documented family trees carry each tamga, connecting symbols to living lineages."},{bold:"Educational Encyclopedia",text:"— learn the meaning, history, and geographic origin of each symbol with scholarly references."}],internalTitle:"Explore Related Heritage",internalLinks:[{label:"Circassian Family Names & Tribes",href:"/families"},{label:"Build Your Family Tree",href:"/family-trees"},{label:"Circassian History & Heritage",href:"/history"},{label:"Community Board — Share & Discuss",href:"/community"}],externalTitle:"External References",externalLinks:[{label:"Tamga — Wikipedia",href:"https://en.wikipedia.org/wiki/Tamga"},{label:"Circassian Tribes — Wikipedia",href:"https://en.wikipedia.org/wiki/Circassian_tribes"},{label:"Heraldry & Clan Symbols — Britannica",href:"https://www.britannica.com/topic/heraldry"},{label:"Circassians — World History Encyclopedia",href:"https://www.worldhistory.org/Circassians/"}]},ar:{greeting:"اكتشف دمغة أجدادك!",intro:"الدمغة (тамгъэ) أكثر من مجرد رمز — إنها البصمة البصرية لمكانة عائلتك في التاريخ الشركسي.",bullets:[{bold:"البحث البصري والتعرّف",text:"— ارفعوا أو صفوا دمغة رأيتموها على شواهد قبور قديمة أو مجوهرات أو وثائق لمعرفة أصلها."},{bold:"أداة المقارنة جنبًا إلى جنب",text:"— قارنوا رموزًا من قبائل مختلفة لتتبع الروابط العائلية."},{bold:"مساهمات المجتمع",text:"— أضيفوا دمغة عائلتكم لتنمية الأرشيف."},{bold:"أشجار عائلية مرتبطة",text:"— شاهدوا أي أشجار عائلية موثقة تحمل كل دمغة."},{bold:"موسوعة تعليمية",text:"— تعلموا معنى وتاريخ وأصل كل رمز جغرافيًا."}],internalTitle:"استكشفوا التراث المرتبط",internalLinks:[{label:"أسماء العائلات والقبائل الشركسية",href:"/ar/families"},{label:"أنشئ شجرة عائلتك",href:"/ar/family-trees"},{label:"التاريخ والتراث الشركسي",href:"/ar/history"},{label:"لوحة المجتمع — شارك وناقش",href:"/ar/community"}],externalTitle:"مراجع خارجية",externalLinks:[{label:"الطمغة — ويكيبيديا",href:"https://ar.wikipedia.org/wiki/%D8%B7%D9%85%D8%BA%D8%A9"},{label:"الشركس — ويكيبيديا",href:"https://ar.wikipedia.org/wiki/%D8%B4%D8%B1%D9%83%D8%B3"},{label:"شعارات النبالة — ويكيبيديا",href:"https://ar.wikipedia.org/wiki/%D8%B4%D8%B9%D8%A7%D8%B1_%D8%A7%D9%84%D9%86%D8%A8%D8%A7%D9%84%D8%A9"},{label:"الجمعية الشركسية الدولية",href:"https://intercircass.org/"}]},tr:{greeting:"Atalarınızın Tamgasını Keşfedin!",intro:"Tamga (тамгъэ) bir sembolden fazlasıdır — ailenizin Çerkes tarihindeki yerinin görsel parmak izidir.",bullets:[{bold:"Görsel Arama ve Tanımlama",text:"— eski mezar taşlarında gördüğünüz bir tamgayı yükleyin veya tanımlayın."},{bold:"Yan Yana Karşılaştırma",text:"— farklı kabilelerden sembolleri karşılaştırın."},{bold:"Topluluk Katkıları",text:"— ailenizin tamgasını ekleyerek arşivi büyütün."}
6,{bold:"Bağlantılı Soy Ağaçları",text:"— hangi soy ağaçlarının her tamgayı taşıdığını görün."},{bold:"Eğitici Ansiklopedi",text:"— her sembolün anlamını ve tarihini öğrenin."}],internalTitle:"İlgili Mirası Keşfedin",internalLinks:[{label:"Çerkes Aile İsimleri ve Kabileler",href:"/tr/families"},{label:"Soy Ağacınızı Oluşturun",href:"/tr/family-trees"},{label:"Çerkes Tarihi ve Mirası",href:"/tr/history"},{label:"Topluluk Panosu",href:"/tr/community"}],externalTitle:"Dış Referanslar",externalLinks:[{label:"Tamga — Vikipedi",href:"https://tr.wikipedia.org/wiki/Tamga"},{label:"Çerkes Kabileleri — Vikipedi",href:"https://tr.wikipedia.org/wiki/%C3%87erkes_kabileleri"},{label:"Hanedan Armaları — Vikipedi",href:"https://tr.wikipedia.org/wiki/Arma"},{label:"Kaffed — Kafkas Dernekleri Federasyonu",href:"https://www.kaffed.org/"}]},ru:{greeting:"Откройте тамгу ваших предков!",intro:"Тамга (тамгъэ) — это больше, чем символ. Это визуальный отпечаток места вашей семьи в черкесской истории.",bullets:[{bold:"Визуальный поиск",text:"— загрузите или опишите тамгу, увиденную на старых надгробиях или документах."},{bold:"Инструмент сравнения",text:"— сравнивайте символы разных племён."},{bold:"Вклад сообщества",text:"— добавьте тамгу вашей семьи."},{bold:"Связанные родословные",text:"— смотрите, какие родословные несут каждую тамгу."},{bold:"Энциклопедия",text:"— узнайте значение и историю каждого символа."}],internalTitle:"Исследуйте связанное наследие",internalLinks:[{label:"Черкесские фамилии и племена",href:"/ru/families"},{label:"Создайте родословное дерево",href:"/ru/family-trees"},{label:"Черкесская история и наследие",href:"/ru/history"},{label:"Доска сообщества",href:"/ru/community"}],externalTitle:"Внешние ссылки",externalLinks:[{label:"Тамга — Википедия",href:"https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D0%BC%D0%B3%D0%B0"},{label:"Черкесы — Википедия",href:"https://ru.wikipedia.org/wiki/%D0%A7%D0%B5%D1%80%D0%BA%D0%B5%D1%81%D1%8B"},{label:"Геральдика — Википедия",href:"https://ru.wikipedia.org/wiki/%D0%93%D0%B5%D1%80%D0%B0%D0%BB%D1%8C%D0%B4%D0%B8%D0%BA%D0%B0"},{label:"МЧА — Международная Черкесская Ассоциация",href:"https://intercircass.org/"}]},he:{greeting:"גלו את הטמגה של אבותיכם!",intro:"הטמגה (тамгъэ) היא יותר מסמל — היא טביעת האצבע החזותית של מקום משפחתכם בהיסטוריה הצ'רקסית.",bullets:[{bold:"חיפוש חזותי",text:"— העלו או תארו טמגה שראיתם על מצבות ישנות או מסמכים."},{bold:"כלי השוואה",text:"— השוו סמלים משבטים שונים."},{bold:"תרומות הקהילה",text:"— הוסיפו את הטמגה של משפחתכם."},{bold:"עצי משפחה מקושרים",text:"— ראו אילו עצי משפחה נושאים כל טמגה."},{bold:"אנציקלופדיה",text:"— למדו את המשמעות וההיסטוריה של כל סמל."}],internalTitle:"גלו מורשת קשורה",internalLinks:[{label:"שמות משפחה צ'רקסיים",href:"/he/families"},{label:"בנו את עץ המשפחה שלכם",href:"/he/family-trees"},{label:"היסטוריה ומורשת צ'רקסית",href:"/he/history"},{label:"לוח קהילתי",href:"/he/community"}],externalTitle:"קישורים חיצוניים",externalLinks:[{label:"טמגה — ויקיפדיה",href:"https://he.wikipedia.org/wiki/%D7%98%D7%9E%D7%92%D7%94"},{label:"צ'רקסים — ויקיפדיה",href:"https://he.wikipedia.org/wiki/%D7%A6%27%D7%A8%D7%9B%D7%A1%D7%99%D7%9D"},{label:"הרלדיקה — ויקיפדיה",href:"https://he.wikipedia.org/wiki/%D7%94%D7%A8%D7%9C%D7%93%D7%99%D7%A7%D7%94"},{label:"הקהילה הצ'רקסית בישראל",href:"https://he.wikipedia.org/wiki/%D7%A6%27%D7%A8%D7%9B%D7%A1%D7%99%D7%9D_%D7%91%D7%99%D7%A9%D7%A8%D7%90%D7%9C"}]}
6,ady:{greeting:"Уиадэжьхэм я дамыгъэр къэщIэ!",intro:"Тамгъэр — ар тхыпхъэм нэхърэ нэхъыбэщ, ар уи унагъуэм адыгэ тхыдэм щиIэ увыпIэм и нэпкъыжьэщ.",bullets:[{bold:"Нэрылъагъуу лъыхъуэн",text:"— тамгъэ къэгъуэтын."},{bold:"Зэгъэпщэн",text:"— лъэпкъ зэхуэмыдэхэм я тамгъэхэр зэгъэпщэн."},{bold:"Жылагъуэм и Iуэхухэр",text:"— уи унагъуэм и тамгъэр хэлъхьэн."},{bold:"ЛъэпкъщIэкухэр",text:"— лъэпкъщIэку дэтхэнэми и тамгъэр лъэгъуэн."},{bold:"Энциклопедие",text:"— тамгъэ къэс и мыхьэнэмрэ и тхыдэмрэ зэгъэщIэн."}],internalTitle:"ЩIэинхэр къэхутэн",internalLinks:[{label:"Адыгэ унэцIэхэмрэ лъэпкъхэмрэ",href:"/ady/families"},{label:"Уи лъэпкъ жыгыр гъэпс",href:"/ady/family-trees"},{label:"Адыгэ тхыдэмрэ щIэинымрэ",href:"/ady/history"},{label:"Жылагъуэ пхъэбгъу",href:"/ady/community"}],externalTitle:"НэгъуэщI щIыпIэхэр",externalLinks:[{label:"Адыгэхэр — Википедие",href:"https://ady.wikipedia.org/wiki/%D0%90%D0%B4%D1%8B%D0%B3%D1%8D%D1%85%D1%8D%D1%80"},{label:"Тамгъэ — Википедие",href:"https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D0%BC%D0%B3%D0%B0"},{label:"Адыгэ лъэпкъхэр — Википедие",href:"https://kbd.wikipedia.org/wiki/%D0%90%D0%B4%D1%8B%D0%B3%D1%8D%D1%85%D1%8D%D1%80"},{label:"Дунейпсо Адыгэ Хасэ",href:"https://intercircass.org/"}]}},v=g[o]||g.en;return e.jsx("div",{className:"w-full max-w-[1600px] mx-auto px-4 sm:px-8 pb-12",dir:n?"rtl":"ltr",children:e.jsxs("div",{className:"rounded-2xl border border-primary/15 bg-gradient-to-b from-primary/[0.03] to-card/80 backdrop-blur-sm p-8 sm:p-10 space-y-8 shadow-sm",children:[e.jsxs("div",{className:"text-center space-y-4",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-14 h-14 rounded-full bg-primary/10 mx-auto",children:e.jsx(re,{className:"w-7 h-7 text-primary"})}),e.jsx("h6",{className:"text-2xl sm:text-3xl font-serif font-bold text-primary",children:v.greeting}),e.jsx("p",{className:"text-sm sm:text-base text-muted-foreground leading-relaxed max-w-2xl mx-auto",children:v.intro})]}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 max-w-4xl mx-auto",children:v.bullets.map((d,y)=>e.jsxs("div",{className:"rounded-xl border border-border/50 bg-background/60 p-4 space-y-1.5 hover:border-primary/20 hover:shadow-sm transition-all",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"w-2 h-2 rounded-full bg-primary shrink-0"}),e.jsx("span",{className:"font-semibold text-sm text-foreground",children:d.bold})]}),e.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:d.text.replace("— ","")})]},y))}),e.jsx("div",{className:"border-t border-border/50"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h3",{className:"text-base font-semibold text-foreground flex items-center gap-2",children:[e.jsx(Tt,{className:"w-4 h-4 text-primary"}),v.internalTitle]}),e.jsx("ul",{className:"space-y-1.5",children:v.internalLinks.map((d,y)=>e.jsx("li",{children:e.jsxs("a",{href:d.href,className:"text-sm text-primary hover:text-primary/80 hover:underline transition-colors flex items-center gap-2 py-0.5",children:[e.jsx("span",{className:"w-1 h-1 rounded-full bg-primary/40 shrink-0"}),d.label]})},y))})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h3",{className:"text-base font-semibold text-foreground flex items-center gap-2",children:[e.jsx(ze,{className:"w-4 h-4 text-primary"}),v.externalTitle]}),e.jsx("ul",{className:"space-y-1.5",children:v.externalLinks.map((d,y)=>e.jsx("li",{children:e.jsxs("a",{href:d.href,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-primary hover:text-primary/80 hover:underline transition-colors flex items-center gap-2 py-0.5",children:[e.jsx(wa,{className:"w-3 h-3 text-muted-foreground shrink-0"}),d.label]})},y))})]})]})]})})})()]})};export{Lr as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.