``),Y(0))}async function we(){if(!q.value)return;W.value=``,U.value={};let e=B.value?se():null;if(B.value&&!e){W.value=`برای ارسال مجدد کد، نام و نام خانوادگی لازم است. لطفاً دوباره ثبتنام را شروع کنید.`;return}let t=await R.requestOtp(z.value,{isRegister:B.value,firstName:e?.firstName,lastName:e?.lastName});t.success?(V.value=Array.from({length:F},()=>``),X(),Y(0)):W.value=t.message??`خطا در ارسال مجدد کد.`}function Te(){L.replace({name:B.value?`register`:`login`})}return ee(()=>{if(!z.value){L.replace({name:`login`});return}X(),Y(0)}),(ee,c)=>(i(),s(`div`,pe,[e(`img`,{class:`otp-page__bg`,src:h(x),alt:``},null,8,me),e(`div`,he,[e(`div`,S,[e(`header`,C,[e(`button`,{type:`button`,class:`otp-top__back`,"aria-label":`بازگشت`,onClick:c[0]||=e=>h(L).push(B.value?`/register`:`/login`)},[a(ue,{size:20})])]),e(`div`,w,[a(ce,{size:72}),c[1]||=e(`h1`,{class:`otp-brand__fa`},`نادمی تکس`,-1),c[2]||=e(`p`,{class:`otp-brand__en`},`NADEMITEX`,-1)]),e(`form`,{class:`otp-card`,onSubmit:n($,[`prevent`])},[c[7]||=e(`h2`,{class:`otp-card__title`},`تأیید موبایل`,-1),e(`p`,T,[c[3]||=r(` کد ارسالشده به `,-1),e(`span`,E,u(h(_)(z.value)),1),c[4]||=r(` را وارد کنید. `,-1)]),a(de,{message:W.value},null,8,[`message`]),e(`div`,D,[(i(!0),s(t,null,ne(V.value,(e,t)=>(i(),s(`input`,{id:`otp-${t}`,key:t,ref_for:!0,ref:e=>ye(e,t),class:l([`otp-box`,{"otp-box--error":U.value.code}]),type:`text`,inputmode:`numeric`,autocomplete:`one-time-code`,maxlength:`1`,value:Ce(e),"aria-label":`رقم ${h(_)(String(t+1))}`,onInput:e=>be(t,e),onKeydown:e=>xe(t,e),onPaste:e=>Se(t,e)},null,42,O))),128))]),U.value.code?(i(),s(`p`,k,u(U.value.code),1)):o(``,!0),e(`button`,{class:`otp-submit`,type:`submit`,disabled:h(R).loading},[h(R).loading?(i(),s(`span`,j)):o(``,!0),e(`span`,M,[a(le,{size:18,color:`#F4EDE4`})]),c[5]||=e(`span`,null,`تأیید و ورود`,-1)],8,A),e(`button`,{class:`otp-resend`,type:`button`,disabled:!q.value,onClick:we},[q.value?(i(),s(t,{key:0},[r(`ارسال مجدد کد`)],64)):(i(),s(t,{key:1},[r(`ارسال مجدد کد (`+u(ge.value)+`)`,1)],64))],8,N),e(`button`,{type:`button`,class:`otp-edit`,onClick:Te},[e(`span`,P,u(h(_)(z.value)),1),c[6]||=e(`span`,null,`ویرایش شماره`,-1),a(fe,{size:16,"stroke-width":1.5})])],32),c[8]||=e(`div`,{class:`otp-spacer`,"aria-hidden":`true`},null,-1),c[9]||=e(`p`,{class:`otp-watermark`},[r(`MORE`),e(`br`),r(`THAN`),e(`br`),r(`FABRIC`)],-1)])])]))}}),[[`__scopeId`,`data-v-ca2f5cfe`]]);export{L as default};
\ No newline at end of file
diff --git a/dist/assets/OtpView-GOSd36OA.js b/dist/assets/OtpView-GOSd36OA.js
new file mode 100644
index 0000000..ddf62d0
--- /dev/null
+++ b/dist/assets/OtpView-GOSd36OA.js
@@ -0,0 +1 @@
+import{A as e,Ct as t,D as n,Et as r,G as i,L as a,N as o,O as s,P as c,R as l,St as u,Y as d,Z as f,_ as ee,g as te,j as p,mt as m,n as h,q as g,z as _}from"./BasicIcon-C6boaehV.js";import{l as ne}from"./dist-CUUvbY4x.js";import{c as re,t as v,u as y}from"./format-BHJptHdF.js";import{_ as ie,c as ae,h as oe,o as se}from"./index-spodxsRN.js";import{t as ce}from"./IconChevronBack-DORV2H0q.js";import{t as le}from"./FormErrorBanner-CjdBfIQT.js";import{n as ue,r as b,t as de}from"./formErrors-DglFjYkZ.js";import{t as x}from"./login-fabric-CzrIXTnD.js";import{t as fe}from"./IconEditPen-DLV3_yq2.js";var pe={class:`page otp-page`},me=[`src`],he={class:`otp-page__scroll`},ge={class:`otp-page__stage`},S={class:`otp-top`},C={class:`otp-brand`},w={class:`otp-card__lead`},T={dir:`ltr`},E={class:`otp-row`,dir:`ltr`,role:`group`,"aria-label":`کد تأیید`},D=[`id`,`value`,`aria-label`,`onInput`,`onKeydown`,`onPaste`],O={key:0,class:`otp-card__error`},k=[`disabled`],A={key:0,class:`otp-submit__spinner`,"aria-hidden":`true`},j={class:`otp-submit__chevron`,"aria-hidden":`true`},M=[`disabled`],N={dir:`ltr`},P=4,F=60,I=h(_({__name:`OtpView`,setup(h){let _=te(),I=ee(),L=ae(),R=e(()=>{let e=_.query.phone,t=Array.isArray(e)?e[0]:e;return re(typeof t==`string`?t:``)}),z=e(()=>_.query.mode===`register`),B=m(Array.from({length:P},()=>``)),V=m([]),H=m({}),U=m(``),W=m(F),G=e(()=>B.value.join(``)),K=e(()=>W.value<=0&&!L.loading),_e=e(()=>{let e=Math.floor(W.value/60),t=W.value%60,n=`${String(e).padStart(2,`0`)}:${String(t).padStart(2,`0`)}`;return y(n)}),{pause:ve,resume:ye}=ne(()=>{if(W.value<=1){W.value=0,ve();return}--W.value},1e3,{immediate:!1});function q(){H.value=ue(H.value,`code`),b(H.value)||(U.value=``)}function be(e,t){V.value[t]=e}function J(e){let t=Math.max(0,Math.min(3,e));i(()=>V.value[t]?.focus())}function Y(){W.value=F,ye()}function X(e,t=0){let n=v(e).slice(0,P-t);if(!n)return t;let r=[...B.value],i=t;for(let e of n){if(i>=P)break;r[i]=e,i+=1}return B.value=r,q(),Math.min(i,3)}function Z(){G.value.length===P&&!L.loading&&$()}function Q(e,t){let n=t.target,r=v(n.value);if(r.length>1){let t=X(r,e);n.value=B.value[e]??``,J(t),Z();return}let i=r.slice(-1);B.value[e]=i,n.value=i,q(),i&&e<3?J(e+1):i&&Z()}function xe(e,t){if(t.key===`Backspace`){if(B.value[e]){B.value[e]=``,q();return}e>0&&(B.value[e-1]=``,q(),J(e-1));return}if(t.key===`ArrowLeft`){t.preventDefault(),J(e-1);return}t.key===`ArrowRight`&&(t.preventDefault(),J(e+1))}function Se(e,t){t.preventDefault(),J(X(t.clipboardData?.getData(`text`)??``,e)),Z()}function Ce(e){return e?y(e):``}async function $(){if(L.loading)return;H.value={},U.value=``;let e={};if(G.value.length``),J(0))}async function we(){if(!K.value)return;U.value=``,H.value={};let e=z.value?oe():null;if(z.value&&!e){U.value=`برای ارسال مجدد کد، نام و نام خانوادگی لازم است. لطفاً دوباره ثبتنام را شروع کنید.`;return}let t=await L.requestOtp(R.value,{isRegister:z.value,firstName:e?.firstName,lastName:e?.lastName});t.success?(B.value=Array.from({length:P},()=>``),Y(),J(0)):U.value=t.message??`خطا در ارسال مجدد کد.`}function Te(){I.replace({name:z.value?`register`:`login`})}return g(()=>{if(!R.value){I.replace({name:`login`});return}Y(),J(0)}),(e,i)=>(d(),c(`div`,pe,[p(`img`,{class:`otp-page__bg`,src:u(x),alt:``},null,8,me),p(`div`,he,[p(`div`,ge,[p(`header`,S,[p(`button`,{type:`button`,class:`otp-top__back`,"aria-label":`بازگشت`,onClick:i[0]||=e=>u(I).push(z.value?`/register`:`/login`)},[l(ce,{size:20})])]),p(`div`,C,[l(ie,{size:72}),i[1]||=p(`h1`,{class:`otp-brand__fa`},`نادمی تکس`,-1),i[2]||=p(`p`,{class:`otp-brand__en`},`NADEMITEX`,-1)]),p(`form`,{class:`otp-card`,onSubmit:n($,[`prevent`])},[i[7]||=p(`h2`,{class:`otp-card__title`},`تأیید موبایل`,-1),p(`p`,w,[i[3]||=a(` کد ارسالشده به `,-1),p(`span`,T,r(u(y)(R.value)),1),i[4]||=a(` را وارد کنید. `,-1)]),l(le,{message:U.value},null,8,[`message`]),p(`div`,E,[(d(!0),c(s,null,f(B.value,(e,n)=>(d(),c(`input`,{id:`otp-${n}`,key:n,ref_for:!0,ref:e=>be(e,n),class:t([`otp-box`,{"otp-box--error":H.value.code}]),type:`text`,inputmode:`numeric`,autocomplete:`one-time-code`,maxlength:`1`,value:Ce(e),"aria-label":`رقم ${u(y)(String(n+1))}`,onInput:e=>Q(n,e),onKeydown:e=>xe(n,e),onPaste:e=>Se(n,e)},null,42,D))),128))]),H.value.code?(d(),c(`p`,O,r(H.value.code),1)):o(``,!0),p(`button`,{class:`otp-submit`,type:`submit`,disabled:u(L).loading},[u(L).loading?(d(),c(`span`,A)):o(``,!0),p(`span`,j,[l(se,{size:18,color:`#F4EDE4`})]),i[5]||=p(`span`,null,`تأیید و ورود`,-1)],8,k),p(`button`,{class:`otp-resend`,type:`button`,disabled:!K.value,onClick:we},[K.value?(d(),c(s,{key:0},[a(`ارسال مجدد کد`)],64)):(d(),c(s,{key:1},[a(`ارسال مجدد کد (`+r(_e.value)+`)`,1)],64))],8,M),p(`button`,{type:`button`,class:`otp-edit`,onClick:Te},[p(`span`,N,r(u(y)(R.value)),1),i[6]||=p(`span`,null,`ویرایش شماره`,-1),l(fe,{size:16,"stroke-width":1.5})])],32),i[8]||=p(`div`,{class:`otp-spacer`,"aria-hidden":`true`},null,-1),i[9]||=p(`p`,{class:`otp-watermark`},[a(`MORE`),p(`br`),a(`THAN`),p(`br`),a(`FABRIC`)],-1)])])]))}}),[[`__scopeId`,`data-v-ca2f5cfe`]]);export{I as default};
\ No newline at end of file
diff --git a/dist/assets/PageHeader-BaJqBjIW.js b/dist/assets/PageHeader-BaJqBjIW.js
new file mode 100644
index 0000000..73f796a
--- /dev/null
+++ b/dist/assets/PageHeader-BaJqBjIW.js
@@ -0,0 +1 @@
+import{Et as e,N as t,O as n,P as r,Q as i,R as a,Y as o,j as s,n as c,z as l}from"./BasicIcon-C6boaehV.js";import{i as u}from"./index-spodxsRN.js";import{t as d}from"./IconChevronBack-DORV2H0q.js";var f={class:`page-nav`},p={key:1,class:`nav-btn`},m={class:`page-nav__title`},h={class:`page-nav__trailing`},g={key:0,class:`page-nav__subtitle`},_={key:1,class:`page-header`},v={class:`header-text`},y={class:`page-title`},b={key:0,class:`page-subtitle`},x={class:`page-header__trailing`},S=c(l({__name:`PageHeader`,props:{title:{},subtitle:{},showBack:{type:Boolean},centered:{type:Boolean}},emits:[`back`],setup(c){return(l,S)=>c.centered?(o(),r(n,{key:0},[s(`header`,f,[c.showBack?(o(),r(`button`,{key:0,type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:S[0]||=e=>l.$emit(`back`)},[a(d,{size:20})])):(o(),r(`span`,p)),s(`h1`,m,e(c.title),1),s(`div`,h,[i(l.$slots,`trailing`,{},void 0,!0),a(u,{variant:`inline`,class:`mobile-only`})])]),c.subtitle?(o(),r(`p`,g,e(c.subtitle),1)):t(``,!0)],64)):(o(),r(`header`,_,[c.showBack?(o(),r(`button`,{key:0,type:`button`,class:`back-btn`,"aria-label":`بازگشت`,onClick:S[1]||=e=>l.$emit(`back`)},[a(d,{size:20})])):t(``,!0),s(`div`,v,[s(`h1`,y,e(c.title),1),c.subtitle?(o(),r(`p`,b,e(c.subtitle),1)):t(``,!0)]),s(`div`,x,[i(l.$slots,`trailing`,{},void 0,!0),a(u,{variant:`inline`,class:`mobile-only`})])]))}}),[[`__scopeId`,`data-v-dd86426f`]]);export{S as t};
\ No newline at end of file
diff --git a/dist/assets/PageHeader-DXkA75qK.js b/dist/assets/PageHeader-DXkA75qK.js
deleted file mode 100644
index 20d9729..0000000
--- a/dist/assets/PageHeader-DXkA75qK.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,D as t,J as n,L as r,M as i,N as a,R as o,Tt as s,Z as c,n as l}from"./BasicIcon-B6lR-mG3.js";import{i as u}from"./index-B20WsQhf.js";import{t as d}from"./IconChevronBack-BXRfc2bX.js";var f={class:`page-nav`},p={key:1,class:`nav-btn`},m={class:`page-nav__title`},h={class:`page-nav__trailing`},g={key:0,class:`page-nav__subtitle`},_={key:1,class:`page-header`},v={class:`header-text`},y={class:`page-title`},b={key:0,class:`page-subtitle`},x={class:`page-header__trailing`},S=l(o({__name:`PageHeader`,props:{title:{},subtitle:{},showBack:{type:Boolean},centered:{type:Boolean}},emits:[`back`],setup(o){return(l,S)=>o.centered?(n(),a(t,{key:0},[e(`header`,f,[o.showBack?(n(),a(`button`,{key:0,type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:S[0]||=e=>l.$emit(`back`)},[r(d,{size:20})])):(n(),a(`span`,p)),e(`h1`,m,s(o.title),1),e(`div`,h,[c(l.$slots,`trailing`,{},void 0,!0),r(u,{variant:`inline`,class:`mobile-only`})])]),o.subtitle?(n(),a(`p`,g,s(o.subtitle),1)):i(``,!0)],64)):(n(),a(`header`,_,[o.showBack?(n(),a(`button`,{key:0,type:`button`,class:`back-btn`,"aria-label":`بازگشت`,onClick:S[1]||=e=>l.$emit(`back`)},[r(d,{size:20})])):i(``,!0),e(`div`,v,[e(`h1`,y,s(o.title),1),o.subtitle?(n(),a(`p`,b,s(o.subtitle),1)):i(``,!0)]),e(`div`,x,[c(l.$slots,`trailing`,{},void 0,!0),r(u,{variant:`inline`,class:`mobile-only`})])]))}}),[[`__scopeId`,`data-v-dd86426f`]]);export{S as t};
\ No newline at end of file
diff --git a/dist/assets/PageSkeleton-BImjuI6S.js b/dist/assets/PageSkeleton-BImjuI6S.js
deleted file mode 100644
index 85dd64f..0000000
--- a/dist/assets/PageSkeleton-BImjuI6S.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,D as t,J as n,L as r,N as i,R as a,St as o,X as s,n as c,wt as l}from"./BasicIcon-B6lR-mG3.js";var u=c(a({__name:`SkeletonBlock`,props:{width:{default:`100%`},height:{default:`14px`},radius:{default:`8px`},circle:{type:Boolean,default:!1}},setup(e){return(t,r)=>(n(),i(`span`,{class:o([`sk`,{"sk--circle":e.circle}]),style:l({width:e.width,height:e.height,borderRadius:e.circle?`50%`:e.radius}),"aria-hidden":`true`},null,6))}}),[[`__scopeId`,`data-v-eee3758f`]]),d={class:`page-skeleton`,role:`status`,"aria-live":`polite`,"aria-busy":`true`,"aria-label":`در حال بارگذاری`},f={class:`page-skeleton__banner`},p={class:`page-skeleton__quick`},m={class:`page-skeleton__grid`},h={class:`page-skeleton__profile-hero`},g={class:`page-skeleton__panel`},_={class:`page-skeleton__list`},v={class:`page-skeleton__row-text`},y={class:`page-skeleton__detail-body`},b={class:`page-skeleton__chips`},x={class:`page-skeleton__grid`},S={key:4,class:`page-skeleton__form`},C={key:5,class:`page-skeleton__list`},w={class:`page-skeleton__row-text`},T=c(a({__name:`PageSkeleton`,props:{variant:{default:`list`},rows:{default:4}},setup(a){return(o,c)=>(n(),i(`div`,d,[a.variant===`home`?(n(),i(t,{key:0},[e(`div`,f,[r(u,{height:`148px`,radius:`16px`})]),e(`div`,p,[(n(),i(t,null,s(4,t=>e(`div`,{key:`q-${t}`,class:`page-skeleton__quick-item`},[r(u,{circle:``,width:`48px`,height:`48px`}),r(u,{width:`64%`,height:`10px`})])),64))]),r(u,{width:`40%`,height:`16px`}),e(`div`,m,[(n(),i(t,null,s(4,t=>e(`div`,{key:`g-${t}`,class:`page-skeleton__card`},[r(u,{height:`110px`,radius:`12px`}),r(u,{width:`80%`,height:`12px`}),r(u,{width:`50%`,height:`10px`})])),64))])],64)):a.variant===`profile`?(n(),i(t,{key:1},[e(`div`,h,[r(u,{circle:``,width:`72px`,height:`72px`}),r(u,{width:`45%`,height:`18px`}),r(u,{width:`30%`,height:`12px`})]),e(`div`,g,[(n(),i(t,null,s(4,t=>e(`div`,{key:`s-${t}`,class:`page-skeleton__stat`},[r(u,{width:`50%`,height:`10px`}),r(u,{width:`70%`,height:`18px`})])),64))]),e(`div`,_,[(n(),i(t,null,s(5,t=>e(`div`,{key:`m-${t}`,class:`page-skeleton__row`},[r(u,{circle:``,width:`36px`,height:`36px`}),e(`div`,v,[r(u,{width:`55%`,height:`12px`}),r(u,{width:`35%`,height:`10px`})])])),64))])],64)):a.variant===`detail`?(n(),i(t,{key:2},[r(u,{height:`220px`,radius:`0`}),e(`div`,y,[r(u,{width:`70%`,height:`20px`}),r(u,{width:`40%`,height:`12px`}),r(u,{height:`72px`,radius:`12px`}),r(u,{width:`100%`,height:`12px`}),r(u,{width:`92%`,height:`12px`}),r(u,{width:`85%`,height:`12px`}),r(u,{height:`48px`,radius:`12px`})])],64)):a.variant===`grid`||a.variant===`cards`?(n(),i(t,{key:3},[r(u,{width:`55%`,height:`16px`}),e(`div`,b,[(n(),i(t,null,s(4,e=>r(u,{key:`c-${e}`,width:`72px`,height:`32px`,radius:`999px`})),64))]),e(`div`,x,[(n(!0),i(t,null,s(a.rows,e=>(n(),i(`div`,{key:`card-${e}`,class:`page-skeleton__card`},[r(u,{height:`120px`,radius:`12px`}),r(u,{width:`85%`,height:`12px`}),r(u,{width:`55%`,height:`10px`})]))),128))])],64)):a.variant===`form`?(n(),i(`div`,S,[(n(!0),i(t,null,s(a.rows,e=>(n(),i(`div`,{key:`f-${e}`,class:`page-skeleton__field`},[r(u,{width:`30%`,height:`10px`}),r(u,{height:`44px`,radius:`10px`})]))),128)),r(u,{height:`48px`,radius:`12px`})])):(n(),i(`div`,C,[(n(!0),i(t,null,s(a.rows,t=>(n(),i(`div`,{key:`r-${t}`,class:`page-skeleton__row page-skeleton__row--card`},[r(u,{circle:``,width:`40px`,height:`40px`}),e(`div`,w,[r(u,{width:`62%`,height:`13px`}),r(u,{width:`42%`,height:`10px`}),r(u,{width:`28%`,height:`10px`})])]))),128))]))]))}}),[[`__scopeId`,`data-v-d4bc3a38`]]);export{T as t};
\ No newline at end of file
diff --git a/dist/assets/PageSkeleton-uO-jhbNm.js b/dist/assets/PageSkeleton-uO-jhbNm.js
new file mode 100644
index 0000000..bd8ac03
--- /dev/null
+++ b/dist/assets/PageSkeleton-uO-jhbNm.js
@@ -0,0 +1 @@
+import{Ct as e,O as t,P as n,R as r,Tt as i,Y as a,Z as o,j as s,n as c,z as l}from"./BasicIcon-C6boaehV.js";var u=c(l({__name:`SkeletonBlock`,props:{width:{default:`100%`},height:{default:`14px`},radius:{default:`8px`},circle:{type:Boolean,default:!1}},setup(t){return(r,o)=>(a(),n(`span`,{class:e([`sk`,{"sk--circle":t.circle}]),style:i({width:t.width,height:t.height,borderRadius:t.circle?`50%`:t.radius}),"aria-hidden":`true`},null,6))}}),[[`__scopeId`,`data-v-eee3758f`]]),d={class:`page-skeleton`,role:`status`,"aria-live":`polite`,"aria-busy":`true`,"aria-label":`در حال بارگذاری`},f={class:`page-skeleton__banner`},p={class:`page-skeleton__quick`},m={class:`page-skeleton__grid`},h={class:`page-skeleton__profile-hero`},g={class:`page-skeleton__panel`},_={class:`page-skeleton__list`},v={class:`page-skeleton__row-text`},y={class:`page-skeleton__detail-body`},b={class:`page-skeleton__chips`},x={class:`page-skeleton__grid`},S={key:4,class:`page-skeleton__form`},C={key:5,class:`page-skeleton__list`},w={class:`page-skeleton__row-text`},T=c(l({__name:`PageSkeleton`,props:{variant:{default:`list`},rows:{default:4}},setup(e){return(i,c)=>(a(),n(`div`,d,[e.variant===`home`?(a(),n(t,{key:0},[s(`div`,f,[r(u,{height:`148px`,radius:`16px`})]),s(`div`,p,[(a(),n(t,null,o(4,e=>s(`div`,{key:`q-${e}`,class:`page-skeleton__quick-item`},[r(u,{circle:``,width:`48px`,height:`48px`}),r(u,{width:`64%`,height:`10px`})])),64))]),r(u,{width:`40%`,height:`16px`}),s(`div`,m,[(a(),n(t,null,o(4,e=>s(`div`,{key:`g-${e}`,class:`page-skeleton__card`},[r(u,{height:`110px`,radius:`12px`}),r(u,{width:`80%`,height:`12px`}),r(u,{width:`50%`,height:`10px`})])),64))])],64)):e.variant===`profile`?(a(),n(t,{key:1},[s(`div`,h,[r(u,{circle:``,width:`72px`,height:`72px`}),r(u,{width:`45%`,height:`18px`}),r(u,{width:`30%`,height:`12px`})]),s(`div`,g,[(a(),n(t,null,o(4,e=>s(`div`,{key:`s-${e}`,class:`page-skeleton__stat`},[r(u,{width:`50%`,height:`10px`}),r(u,{width:`70%`,height:`18px`})])),64))]),s(`div`,_,[(a(),n(t,null,o(5,e=>s(`div`,{key:`m-${e}`,class:`page-skeleton__row`},[r(u,{circle:``,width:`36px`,height:`36px`}),s(`div`,v,[r(u,{width:`55%`,height:`12px`}),r(u,{width:`35%`,height:`10px`})])])),64))])],64)):e.variant===`detail`?(a(),n(t,{key:2},[r(u,{height:`220px`,radius:`0`}),s(`div`,y,[r(u,{width:`70%`,height:`20px`}),r(u,{width:`40%`,height:`12px`}),r(u,{height:`72px`,radius:`12px`}),r(u,{width:`100%`,height:`12px`}),r(u,{width:`92%`,height:`12px`}),r(u,{width:`85%`,height:`12px`}),r(u,{height:`48px`,radius:`12px`})])],64)):e.variant===`grid`||e.variant===`cards`?(a(),n(t,{key:3},[r(u,{width:`55%`,height:`16px`}),s(`div`,b,[(a(),n(t,null,o(4,e=>r(u,{key:`c-${e}`,width:`72px`,height:`32px`,radius:`999px`})),64))]),s(`div`,x,[(a(!0),n(t,null,o(e.rows,e=>(a(),n(`div`,{key:`card-${e}`,class:`page-skeleton__card`},[r(u,{height:`120px`,radius:`12px`}),r(u,{width:`85%`,height:`12px`}),r(u,{width:`55%`,height:`10px`})]))),128))])],64)):e.variant===`form`?(a(),n(`div`,S,[(a(!0),n(t,null,o(e.rows,e=>(a(),n(`div`,{key:`f-${e}`,class:`page-skeleton__field`},[r(u,{width:`30%`,height:`10px`}),r(u,{height:`44px`,radius:`10px`})]))),128)),r(u,{height:`48px`,radius:`12px`})])):(a(),n(`div`,C,[(a(!0),n(t,null,o(e.rows,e=>(a(),n(`div`,{key:`r-${e}`,class:`page-skeleton__row page-skeleton__row--card`},[r(u,{circle:``,width:`40px`,height:`40px`}),s(`div`,w,[r(u,{width:`62%`,height:`13px`}),r(u,{width:`42%`,height:`10px`}),r(u,{width:`28%`,height:`10px`})])]))),128))]))]))}}),[[`__scopeId`,`data-v-d4bc3a38`]]);export{T as t};
\ No newline at end of file
diff --git a/dist/assets/PersianDateInput-5iA_raeL.js b/dist/assets/PersianDateInput-5iA_raeL.js
new file mode 100644
index 0000000..a81e0b1
--- /dev/null
+++ b/dist/assets/PersianDateInput-5iA_raeL.js
@@ -0,0 +1 @@
+import{A as e,Ct as t,D as n,Et as r,K as i,N as a,O as o,P as s,St as c,Y as l,Z as u,j as d,mt as f,n as p,q as m,tt as h,z as g}from"./BasicIcon-C6boaehV.js";import{d as _,f as v,g as y,h as b,m as x,o as S,p as C,t as w,u as T,y as E}from"./format-BHJptHdF.js";var D={class:`form-group`},O={key:0,class:`form-label`},k=[`value`,`placeholder`,`disabled`],A={key:1,class:`input-error-text`},j={key:2,class:`form-hint`},M=p(g({__name:`CurrencyInput`,props:{modelValue:{},label:{},placeholder:{},hint:{},error:{},disabled:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:n}){let i=e,o=n,c=f(``);h(()=>i.modelValue,e=>{let t=w(e??``);c.value=t?S(Number(t)):``},{immediate:!0});function u(e){let t=e.target,n=w(t.value);c.value=n?S(Number(n)):``,o(`update:modelValue`,n)}return(n,i)=>(l(),s(`div`,D,[e.label?(l(),s(`label`,O,r(e.label),1)):a(``,!0),d(`input`,{class:t([`input`,{"input-error":e.error}]),type:`text`,inputmode:`numeric`,dir:`ltr`,value:c.value,placeholder:e.placeholder,disabled:e.disabled,onInput:u},null,42,k),e.error?(l(),s(`p`,A,r(e.error),1)):e.hint?(l(),s(`p`,j,r(e.hint),1)):a(``,!0)]))}}),[[`__scopeId`,`data-v-4691da38`]]),N={key:0,class:`form-label`},P=[`disabled`],F={class:`persian-date-input__header`},I={class:`persian-date-input__month`},L={class:`persian-date-input__weekdays`},R={class:`persian-date-input__grid`},z={key:0,class:`persian-date-input__cell persian-date-input__cell--empty`},B=[`onClick`],V={key:2,class:`input-error-text`},H={key:3,class:`form-hint`},U=p(g({__name:`PersianDateInput`,props:{modelValue:{},label:{},placeholder:{},hint:{},error:{},disabled:{type:Boolean}},emits:[`update:modelValue`],setup(p,{emit:g}){let S=p,w=g,D=f(null),O=f(!1),k=f(E().jy),A=f(E().jm),j=e(()=>b(S.modelValue??``)),M=e(()=>{if(!j.value)return``;let{jy:e,jm:t,jd:n}=j.value;return x(e,t,n)}),U=e(()=>C(k.value,A.value)),W=e(()=>`${_[A.value-1]} ${T(String(k.value))}`);h(()=>S.modelValue,e=>{let t=b(e??``);t&&(k.value=t.jy,A.value=t.jm)},{immediate:!0});function G(){S.disabled||(O.value=!O.value)}function K(){O.value=!1}function q(e){w(`update:modelValue`,y(k.value,A.value,e)),K()}function J(e){let t=A.value+e,n=k.value;t>12?(t=1,n+=1):t<1&&(t=12,--n),A.value=t,k.value=n}function Y(){let e=E();k.value=e.jy,A.value=e.jm,w(`update:modelValue`,y(e.jy,e.jm,e.jd)),K()}function X(e){if(!j.value)return!1;let{jy:t,jm:n,jd:r}=j.value;return t===k.value&&n===A.value&&r===e}function Z(e){let t=E();return t.jy===k.value&&t.jm===A.value&&t.jd===e}function Q(e){D.value?.contains(e.target)||K()}return m(()=>{document.addEventListener(`click`,Q)}),i(()=>{document.removeEventListener(`click`,Q)}),(e,i)=>(l(),s(`div`,{ref_key:`rootRef`,ref:D,class:`form-group persian-date-input`},[p.label?(l(),s(`label`,N,r(p.label),1)):a(``,!0),d(`button`,{type:`button`,class:t([`input persian-date-input__trigger`,{"input-error":p.error,"is-open":O.value}]),disabled:p.disabled,onClick:n(G,[`stop`])},[d(`span`,{class:t({"persian-date-input__placeholder":!M.value})},r(M.value||p.placeholder||`انتخاب تاریخ`),3),i[3]||=d(`span`,{class:`persian-date-input__icon`,"aria-hidden":`true`},[d(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`},[d(`rect`,{x:`3`,y:`5`,width:`18`,height:`16`,rx:`2`,stroke:`currentColor`,"stroke-width":`1.5`}),d(`path`,{d:`M8 3v4M16 3v4M3 10h18`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`})])],-1)],10,P),O.value?(l(),s(`div`,{key:1,class:`persian-date-input__panel`,onClick:i[2]||=n(()=>{},[`stop`])},[d(`div`,F,[d(`button`,{type:`button`,class:`persian-date-input__nav`,onClick:i[0]||=e=>J(-1)},`‹`),d(`strong`,I,r(W.value),1),d(`button`,{type:`button`,class:`persian-date-input__nav`,onClick:i[1]||=e=>J(1)},`›`)]),d(`div`,L,[(l(!0),s(o,null,u(c(v),e=>(l(),s(`span`,{key:e},r(e),1))),128))]),d(`div`,R,[(l(!0),s(o,null,u(U.value,(e,n)=>(l(),s(o,{key:n},[e===null?(l(),s(`span`,z)):(l(),s(`button`,{key:1,type:`button`,class:t([`persian-date-input__cell`,{"persian-date-input__cell--selected":X(e),"persian-date-input__cell--today":Z(e)}]),onClick:t=>q(e)},r(c(T)(String(e))),11,B))],64))),128))]),d(`button`,{type:`button`,class:`persian-date-input__today`,onClick:Y},`امروز`)])):a(``,!0),p.error?(l(),s(`p`,V,r(p.error),1)):p.hint?(l(),s(`p`,H,r(p.hint),1)):a(``,!0)],512))}}),[[`__scopeId`,`data-v-69b2c009`]]);export{M as n,U as t};
\ No newline at end of file
diff --git a/dist/assets/PersianDateInput-BkC8ZzrV.js b/dist/assets/PersianDateInput-BkC8ZzrV.js
deleted file mode 100644
index 7d338df..0000000
--- a/dist/assets/PersianDateInput-BkC8ZzrV.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,D as t,E as n,G as r,J as i,K as a,M as o,N as s,R as c,St as l,Tt as u,X as d,et as f,k as p,n as m,pt as h,xt as g}from"./BasicIcon-B6lR-mG3.js";import{d as _,f as v,g as y,h as b,m as x,o as S,p as C,t as w,u as T,y as E}from"./format-BHJptHdF.js";var D={class:`form-group`},O={key:0,class:`form-label`},k=[`value`,`placeholder`,`disabled`],A={key:1,class:`input-error-text`},j={key:2,class:`form-hint`},M=m(c({__name:`CurrencyInput`,props:{modelValue:{},label:{},placeholder:{},hint:{},error:{},disabled:{type:Boolean}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=t,a=n,c=h(``);f(()=>r.modelValue,e=>{let t=w(e??``);c.value=t?S(Number(t)):``},{immediate:!0});function d(e){let t=e.target,n=w(t.value);c.value=n?S(Number(n)):``,a(`update:modelValue`,n)}return(n,r)=>(i(),s(`div`,D,[t.label?(i(),s(`label`,O,u(t.label),1)):o(``,!0),e(`input`,{class:l([`input`,{"input-error":t.error}]),type:`text`,inputmode:`numeric`,dir:`ltr`,value:c.value,placeholder:t.placeholder,disabled:t.disabled,onInput:d},null,42,k),t.error?(i(),s(`p`,A,u(t.error),1)):t.hint?(i(),s(`p`,j,u(t.hint),1)):o(``,!0)]))}}),[[`__scopeId`,`data-v-4691da38`]]),N={key:0,class:`form-label`},P=[`disabled`],F={class:`persian-date-input__header`},I={class:`persian-date-input__month`},L={class:`persian-date-input__weekdays`},R={class:`persian-date-input__grid`},z={key:0,class:`persian-date-input__cell persian-date-input__cell--empty`},B=[`onClick`],V={key:2,class:`input-error-text`},H={key:3,class:`form-hint`},U=m(c({__name:`PersianDateInput`,props:{modelValue:{},label:{},placeholder:{},hint:{},error:{},disabled:{type:Boolean}},emits:[`update:modelValue`],setup(c,{emit:m}){let S=c,w=m,D=h(null),O=h(!1),k=h(E().jy),A=h(E().jm),j=p(()=>b(S.modelValue??``)),M=p(()=>{if(!j.value)return``;let{jy:e,jm:t,jd:n}=j.value;return x(e,t,n)}),U=p(()=>C(k.value,A.value)),W=p(()=>`${_[A.value-1]} ${T(String(k.value))}`);f(()=>S.modelValue,e=>{let t=b(e??``);t&&(k.value=t.jy,A.value=t.jm)},{immediate:!0});function G(){S.disabled||(O.value=!O.value)}function K(){O.value=!1}function q(e){w(`update:modelValue`,y(k.value,A.value,e)),K()}function J(e){let t=A.value+e,n=k.value;t>12?(t=1,n+=1):t<1&&(t=12,--n),A.value=t,k.value=n}function Y(){let e=E();k.value=e.jy,A.value=e.jm,w(`update:modelValue`,y(e.jy,e.jm,e.jd)),K()}function X(e){if(!j.value)return!1;let{jy:t,jm:n,jd:r}=j.value;return t===k.value&&n===A.value&&r===e}function Z(e){let t=E();return t.jy===k.value&&t.jm===A.value&&t.jd===e}function Q(e){D.value?.contains(e.target)||K()}return a(()=>{document.addEventListener(`click`,Q)}),r(()=>{document.removeEventListener(`click`,Q)}),(r,a)=>(i(),s(`div`,{ref_key:`rootRef`,ref:D,class:`form-group persian-date-input`},[c.label?(i(),s(`label`,N,u(c.label),1)):o(``,!0),e(`button`,{type:`button`,class:l([`input persian-date-input__trigger`,{"input-error":c.error,"is-open":O.value}]),disabled:c.disabled,onClick:n(G,[`stop`])},[e(`span`,{class:l({"persian-date-input__placeholder":!M.value})},u(M.value||c.placeholder||`انتخاب تاریخ`),3),a[3]||=e(`span`,{class:`persian-date-input__icon`,"aria-hidden":`true`},[e(`svg`,{width:`18`,height:`18`,viewBox:`0 0 24 24`,fill:`none`},[e(`rect`,{x:`3`,y:`5`,width:`18`,height:`16`,rx:`2`,stroke:`currentColor`,"stroke-width":`1.5`}),e(`path`,{d:`M8 3v4M16 3v4M3 10h18`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`})])],-1)],10,P),O.value?(i(),s(`div`,{key:1,class:`persian-date-input__panel`,onClick:a[2]||=n(()=>{},[`stop`])},[e(`div`,F,[e(`button`,{type:`button`,class:`persian-date-input__nav`,onClick:a[0]||=e=>J(-1)},`‹`),e(`strong`,I,u(W.value),1),e(`button`,{type:`button`,class:`persian-date-input__nav`,onClick:a[1]||=e=>J(1)},`›`)]),e(`div`,L,[(i(!0),s(t,null,d(g(v),e=>(i(),s(`span`,{key:e},u(e),1))),128))]),e(`div`,R,[(i(!0),s(t,null,d(U.value,(e,n)=>(i(),s(t,{key:n},[e===null?(i(),s(`span`,z)):(i(),s(`button`,{key:1,type:`button`,class:l([`persian-date-input__cell`,{"persian-date-input__cell--selected":X(e),"persian-date-input__cell--today":Z(e)}]),onClick:t=>q(e)},u(g(T)(String(e))),11,B))],64))),128))]),e(`button`,{type:`button`,class:`persian-date-input__today`,onClick:Y},`امروز`)])):o(``,!0),c.error?(i(),s(`p`,V,u(c.error),1)):c.hint?(i(),s(`p`,H,u(c.hint),1)):o(``,!0)],512))}}),[[`__scopeId`,`data-v-69b2c009`]]);export{M as n,U as t};
\ No newline at end of file
diff --git a/dist/assets/ProductDetailView-CtgUNpy9.css b/dist/assets/ProductDetailView-CtgUNpy9.css
deleted file mode 100644
index d0136fe..0000000
--- a/dist/assets/ProductDetailView-CtgUNpy9.css
+++ /dev/null
@@ -1 +0,0 @@
-.product-detail[data-v-1eb99089]{--pd-card-border:1px solid #eeeef1;--pd-card-shadow:0 1px 2px #1018280a, 0 6px 16px #1018280d;--pd-card-radius:16px;background:#fff;flex-direction:column;min-height:100%;display:flex}.pd-header[data-v-1eb99089]{padding:8px var(--page-padding);background:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.pd-header__actions[data-v-1eb99089]{gap:4px;display:flex}.icon-btn[data-v-1eb99089]{cursor:pointer;background:0 0;border:none;place-items:center;width:40px;height:40px;display:grid}.pd-scroll[data-v-1eb99089]{flex:1;padding-bottom:120px}.gallery__main[data-v-1eb99089]{background:linear-gradient(160deg,#a8b5a0,#6f8570);height:260px;position:relative}.gallery__count[data-v-1eb99089]{bottom:12px;color:#fff;background:#0000008c;border-radius:999px;padding:4px 10px;font-size:.75rem;position:absolute;inset-inline-start:12px}.gallery__thumbs[data-v-1eb99089]{margin:12px var(--page-padding) 0;border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);background:#fff;gap:10px;padding:10px;display:flex;overflow-x:auto}.thumb[data-v-1eb99089]{appearance:none;border:var(--pd-card-border);width:52px;height:52px;box-shadow:var(--pd-card-shadow);cursor:pointer;box-sizing:border-box;background:#fff;border-radius:14px;flex-shrink:0;padding:0}.thumb__swatch[data-v-1eb99089]{border-radius:12px;width:100%;height:100%;display:block}.thumb--active[data-v-1eb99089]{border:2px solid #0a353c;padding:3px}.thumb--active .thumb__swatch[data-v-1eb99089]{border-radius:9px}.pd-body[data-v-1eb99089]{padding:16px var(--page-padding) 20px;background:#fff;flex-direction:column;gap:18px;display:flex}.title-row[data-v-1eb99089]{justify-content:flex-start;align-items:center;gap:8px;display:flex}.title-row h1[data-v-1eb99089]{margin:0;font-size:1.2rem;font-weight:700}.new-badge[data-v-1eb99089]{color:#fff;background:#96b49c;border:none;border-radius:10px;justify-content:center;align-items:center;height:26px;padding:0 16px;font-size:.8125rem;font-weight:500;line-height:1;display:inline-flex}.code[data-v-1eb99089]{color:var(--color-text-muted);margin:-10px 0 0;font-size:.82rem}.specs[data-v-1eb99089]{border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);background:#fff;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:14px 8px;display:grid}.spec-cell[data-v-1eb99089]{text-align:center;flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.spec-icon[data-v-1eb99089]{color:#98a2ad;place-items:center;width:22px;height:22px;display:grid}.spec-icon svg[data-v-1eb99089]{width:22px;height:22px}.spec-cell strong[data-v-1eb99089]{color:var(--color-text);text-overflow:ellipsis;max-width:100%;font-size:.7rem;font-weight:600;line-height:1.4;overflow:hidden}.spec-cell span[data-v-1eb99089]{color:#98a2ad;font-size:.7rem}.specs-more[data-v-1eb99089]{color:#8b939c;cursor:pointer;background:0 0;border:none;align-self:center;align-items:center;gap:4px;padding:0;font-size:.8rem;font-weight:500;display:inline-flex}.specs-more__chevron[data-v-1eb99089]{width:12px;height:12px}.specs-more__chevron.is-open[data-v-1eb99089]{transform:rotate(180deg)}.specs-extra[data-v-1eb99089]{color:var(--color-text-muted);background:#f6f7f8;border-radius:12px;padding:12px 14px;font-size:.82rem}.specs-extra p[data-v-1eb99089]{margin:0 0 6px}.specs-extra p[data-v-1eb99089]:last-child{margin:0}.pd-section[data-v-1eb99089]{flex-direction:column;gap:10px;display:flex}.pd-section--boxed[data-v-1eb99089]{border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);background:#fff;padding:12px 14px}.section-head[data-v-1eb99089]{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.section-head h2[data-v-1eb99089],.section-title[data-v-1eb99089]{margin:0;font-size:.95rem;font-weight:700}.section-head span[data-v-1eb99089]{color:#8b939c;font-size:.78rem}.colors[data-v-1eb99089]{padding:4px 2px;flex-wrap:nowrap;gap:14px;padding-inline-start:20px;display:flex;overflow-x:auto}.color-dot[data-v-1eb99089]{appearance:none;width:22px;height:22px;box-shadow:none;cursor:pointer;box-sizing:border-box;border:1px solid #00000014;border-radius:999px;flex-shrink:0;padding:0}.color-dot--active[data-v-1eb99089]{border-color:#0000;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #0a353c}.tags[data-v-1eb99089]{flex-wrap:wrap;justify-content:flex-start;gap:8px;display:flex}.tag[data-v-1eb99089],button.tag[data-v-1eb99089]{appearance:none;border:var(--pd-card-border);border-radius:var(--pd-card-radius);color:#6b7280;letter-spacing:0;white-space:nowrap;height:32px;min-height:32px;box-shadow:var(--pd-card-shadow);background:#fff;outline:none;justify-content:center;align-items:center;padding:0 16px;font-size:.8125rem;font-weight:400;line-height:1;display:inline-flex}button.tag[data-v-1eb99089]{cursor:default;font-family:inherit}button.tag--link[data-v-1eb99089]{cursor:pointer}button.tag--link[data-v-1eb99089]:hover{background:#fff}.roll-field[data-v-1eb99089]{color:#6b7280;background:#fff;border:1px solid #eeeef1;border-radius:16px;align-items:center;width:fit-content;max-width:100%;padding:14px 16px;font-size:.9rem;display:inline-flex;box-shadow:0 1px 2px #1018280a,0 6px 16px #1018280d}.pd-footer[data-v-1eb99089]{padding:12px var(--page-padding) calc(12px + env(safe-area-inset-bottom,0));background:var(--color-surface);border-top:1px solid var(--color-border);grid-template-columns:1.2fr 1fr;align-items:start;gap:8px;display:grid;position:sticky;bottom:0}.pd-footer__primary[data-v-1eb99089]{flex-direction:column;display:flex}.btn-secondary[data-v-1eb99089],.btn-primary[data-v-1eb99089]{cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;width:100%;height:48px;min-height:48px;font-weight:700;display:inline-flex}.btn-secondary[data-v-1eb99089]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary)}.btn-primary[data-v-1eb99089]{background:var(--color-accent-navy);color:#fff;border:none}.btn-primary[data-v-1eb99089]:disabled{opacity:.7;cursor:wait}.min-note[data-v-1eb99089]{text-align:center;color:var(--color-text-muted);margin:6px 0 0;font-size:.7rem}.empty[data-v-1eb99089]{padding:40px var(--page-padding);text-align:center}
diff --git a/dist/assets/ProductDetailView-D1OzQiiN.js b/dist/assets/ProductDetailView-D1OzQiiN.js
new file mode 100644
index 0000000..627180f
--- /dev/null
+++ b/dist/assets/ProductDetailView-D1OzQiiN.js
@@ -0,0 +1 @@
+import{A as e,Ct as t,Et as n,L as r,N as i,O as a,P as o,R as s,St as c,Tt as l,Y as u,Z as d,_ as f,g as ee,j as p,mt as m,n as te,q as ne,tt as re,z as h}from"./BasicIcon-C6boaehV.js";import{o as g}from"./format-BHJptHdF.js";import{t as ie}from"./catalog-s7nVUdlj.js";import{C as ae,T as oe,b as se,l as ce}from"./index-spodxsRN.js";import{t as le}from"./IconChevronBack-DORV2H0q.js";import{t as ue}from"./PageSkeleton-uO-jhbNm.js";import{t as de}from"./IconShare-1kao-fAR.js";import{a as fe,i as pe,t as me}from"./crm-CtglbPsN.js";import{t as he}from"./useGoBack-CgNp0uP9.js";import{n as _,t as ge}from"./colorSwatch-BgOH1LE5.js";import{t as _e}from"./IconShoppingBag-Bq21_Txe.js";import{t as ve}from"./IconHeart-CZMe29Nz.js";var v={key:0,class:`page product-detail`},y={class:`pd-header`},b={class:`pd-header__actions`},x=[`aria-label`,`aria-pressed`],S={class:`page__scroll pd-scroll`},C={class:`gallery`},w={class:`gallery__count`},T={class:`gallery__thumbs`},E=[`onClick`],D={class:`pd-body`},O={class:`title-row`},k={key:0,class:`new-badge`},A={class:`code`},j={class:`specs`},M={class:`spec-cell`},N={class:`spec-cell`},P={class:`spec-cell`},F={class:`spec-icon`,"aria-hidden":`true`},ye={class:`spec-cell`},be={key:0,class:`specs-extra`},xe={class:`pd-section pd-section--boxed`},Se={class:`section-head`},Ce={class:`colors`},we=[`onClick`],Te={class:`pd-section`},Ee={class:`tags`,role:`list`},De=[`onClick`],Oe={class:`pd-section`},I={class:`roll-field`},ke={class:`pd-footer`},Ae={class:`pd-footer__primary`},je=[`disabled`],Me={class:`min-note`},Ne={key:1,class:`page empty`},Pe={key:2,class:`page empty`},L=te(h({__name:`ProductDetailView`,setup(te){let h={suit:`پارچه کتشلواری`,trousers:`پارچه شلواری`,shirt:`پارچه پیراهنی`},L={summer:`پارچه تابستانه`,winter:`پارچه زمستانه`,all_season:`پارچه چهارفصل`},Fe=ee(),R=f(),{goBack:z}=he(`/products`),Ie=me(),B=ce(),Le=oe(),Re=ie(),V=e(()=>String(Fe.query.id??``)),H=m(null),U=m(!0),W=m(null),G=m(0),K=m(1),q=m(!1),J=m(!1),Y=e(()=>H.value?.rollMeters??50),X=e(()=>{let e=H.value;return e?ge(e.colors,e.colorImages,e.imageUrls,G.value,e.imageUrl):``}),ze=e(()=>H.value?.colors[G.value]??``),Z=e(()=>K.value*Y.value),Be=e(()=>{let e=H.value?.minMeterage;return e&&e>0?e:Y.value}),Q=e(()=>Math.max(1,Math.ceil(Be.value/Y.value))),Ve=e(()=>h[H.value?.categoryId??``]||`—`),He=e(()=>L[H.value?.season??``]||`—`),Ue=e(()=>{let e=H.value;if(!e)return[];let t=[],n=fe.some(t=>t.id===e.categoryId)?e.categoryId:``,r=n?h[n]:``;r&&t.push({key:`usage-${n}`,label:r,to:{path:`/products`,query:{categoryId:n}}});let i=pe.some(t=>t.id===e.season)?e.season:``,a=i?L[i]:``;a&&t.push({key:`season-${i}`,label:a,to:{path:`/products`,query:{season:i}}});let o=new Set(t.flatMap(e=>[e.label,e.label.replace(/^پارچه\s*/,``)]));for(let n of e.tags){let e=n.replace(/^پارچه?های?\s*/,``).trim();if(!e||o.has(e)||t.some(t=>t.label.includes(e)))continue;let r=n.startsWith(`پارچه`)?n:`پارچه ${e}`;o.add(e),t.push({key:`tag-${n}`,label:r})}return t});async function $(){if(!V.value){H.value=null,U.value=!1;return}U.value=!0,W.value=null;try{await Promise.all([B.hydrate(),Re.loadCompanies()]),H.value=await Ie.loadProductById(V.value),G.value=0,K.value=Q.value}catch(e){H.value=null,W.value=e instanceof Error?e.message:`محصول یافت نشد.`}finally{U.value=!1}}ne($),re(V,$);function We(e){let t=e.rollMeters||50,n=e.orderMultiplier&&e.orderMultiplier>0?e.orderMultiplier:t,r=e.minMeterage&&e.minMeterage>0?e.minMeterage:t;return{id:e.id,companyId:e.companyId||``,catalogId:e.catalogId||``,name:e.name,code:e.code,color:e.color||e.colors[G.value]||`—`,minMeterage:r,orderMultiplier:n,basePrice:e.basePrice,isActive:!0}}function Ge(e,t,n){let r=t>0?t:1,i=Math.ceil(e/r)*r,a=Math.ceil(n/r)*r;return Math.max(i,a)}async function Ke(){if(!H.value)return;let e=We(H.value);q.value=!0;try{let t=Ge(Z.value,e.orderMultiplier,e.minMeterage);await Le.addItem(e,H.value.catalogCode||H.value.code,t)}finally{q.value=!1}}function qe(){H.value&&B.toggle(H.value.id)}function Je(){let e=window.location.href;if(navigator.share){navigator.share({title:H.value?.name,url:e}).catch(()=>void 0);return}navigator.clipboard?.writeText(e)}return(e,f)=>H.value?(u(),o(`div`,v,[p(`header`,y,[p(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:f[0]||=(...e)=>c(z)&&c(z)(...e)},[s(le,{size:20})]),p(`div`,b,[p(`button`,{type:`button`,class:`icon-btn`,"aria-label":c(B).isFavorite(H.value.id)?`حذف از علاقهمندیها`:`افزودن به علاقهمندیها`,"aria-pressed":c(B).isFavorite(H.value.id),onClick:qe},[s(ve,{size:20,filled:c(B).isFavorite(H.value.id),color:c(B).isFavorite(H.value.id)?`#0a353c`:void 0},null,8,[`filled`,`color`])],8,x),p(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اشتراکگذاری`,onClick:Je},[s(de,{size:20})])])]),p(`div`,S,[p(`div`,C,[p(`div`,{class:`gallery__main`,style:l(X.value?{backgroundImage:`url(${X.value})`,backgroundSize:`cover`,backgroundPosition:`center`}:c(_)(ze.value))},[p(`span`,w,n(c(g)(G.value+1))+`/`+n(c(g)(Math.max(H.value.colors.length,1))),1)],4),p(`div`,T,[(u(!0),o(a,null,d(H.value.colors,(e,n)=>(u(),o(`button`,{key:n,type:`button`,class:t([`thumb`,{"thumb--active":G.value===n}]),onClick:e=>G.value=n},[p(`span`,{class:`thumb__swatch`,style:l(c(_)(e,H.value.colorImages?.[n]||H.value.imageUrls?.[n]))},null,4)],10,E))),128))])]),p(`div`,D,[p(`div`,O,[p(`h1`,null,n(H.value.name),1),H.value.isNew?(u(),o(`span`,k,`جدید`)):i(``,!0)]),p(`p`,A,`کد محصول: `+n(H.value.code),1),p(`div`,j,[p(`div`,M,[f[4]||=p(`span`,{class:`spec-icon`,"aria-hidden":`true`},[p(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`},[p(`rect`,{x:`4`,y:`8`,width:`16`,height:`8`,rx:`2`})])],-1),f[5]||=p(`span`,null,`عرض`,-1),p(`strong`,null,n(c(g)(H.value.widthCm))+` سانتیمتر`,1)]),p(`div`,N,[f[6]||=p(`span`,{class:`spec-icon`,"aria-hidden":`true`},[p(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`},[p(`path`,{d:`M12 3.5 20 8v8l-8 4.5L4 16V8l8-4.5Z`})])],-1),f[7]||=p(`span`,null,`جنس`,-1),p(`strong`,null,n(H.value.composition||`—`),1)]),p(`div`,P,[p(`span`,F,[s(_e,{size:22,color:`#98a2ad`})]),f[8]||=p(`span`,null,`وزن`,-1),p(`strong`,null,n(H.value.weightGrams?`${c(g)(H.value.weightGrams)} گرم`:`—`),1)]),p(`div`,ye,[f[9]||=p(`span`,{class:`spec-icon`,"aria-hidden":`true`},[p(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`},[p(`circle`,{cx:`12`,cy:`12`,r:`8`}),p(`path`,{d:`M12 8a6 6 0 0 1 0 8`})])],-1),f[10]||=p(`span`,null,`نوع بافت`,-1),p(`strong`,null,n(H.value.weaveType||`—`),1)])]),p(`button`,{type:`button`,class:`specs-more`,onClick:f[1]||=e=>J.value=!J.value},[r(n(J.value?`بستن مشخصات`:`مشاهده همه مشخصات`)+` `,1),(u(),o(`svg`,{class:t([`specs-more__chevron`,{"is-open":J.value}]),viewBox:`0 0 12 12`,"aria-hidden":`true`},[...f[11]||=[p(`path`,{d:`M3 4.5 6 8l3-3.5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`},null,-1)]],2))]),J.value?(u(),o(`div`,be,[p(`p`,null,`فصل: `+n(He.value),1),p(`p`,null,`دسته: `+n(Ve.value),1),p(`p`,null,`جمع سفارش: `+n(c(g)(Z.value))+` متر`,1)])):i(``,!0),p(`section`,xe,[p(`div`,Se,[f[12]||=p(`h2`,null,`رنگبندی`,-1),p(`span`,null,`(`+n(c(g)(H.value.colors.length))+` رنگ موجود)`,1)]),p(`div`,Ce,[(u(!0),o(a,null,d(H.value.colors,(e,n)=>(u(),o(`button`,{key:n,type:`button`,class:t([`color-dot`,{"color-dot--active":G.value===n}]),style:l(c(_)(e,H.value.colorImages?.[n]||H.value.imageUrls?.[n])),onClick:e=>G.value=n},null,14,we))),128))])]),p(`section`,Te,[f[13]||=p(`h2`,{class:`section-title`},`دستهبندی`,-1),p(`div`,Ee,[(u(!0),o(a,null,d(Ue.value,e=>(u(),o(`button`,{key:e.key,type:`button`,class:t([`tag`,{"tag--link":!!e.to}]),role:`listitem`,onClick:t=>e.to&&c(R).push(e.to)},n(e.label),11,De))),128))])]),p(`section`,Oe,[f[14]||=p(`h2`,{class:`section-title`},`متراژ هر ساقه (طاقه)`,-1),p(`div`,I,n(c(g)(H.value.rollMeters))+` متر`,1)])])]),p(`footer`,ke,[p(`div`,Ae,[p(`button`,{type:`button`,class:`btn-primary`,disabled:q.value,onClick:Ke},[s(ae,{size:18,color:`#ffffff`}),r(` `+n(q.value?`در حال افزودن...`:`افزودن به سفارش`),1)],8,je),p(`p`,Me,`حداقل سفارش: `+n(c(g)(Q.value))+` طاقه`,1)]),p(`button`,{type:`button`,class:`btn-secondary`,onClick:f[2]||=e=>c(R).push({path:`/catalog-request`,query:{productId:H.value.id}})},[s(se,{size:18}),f[15]||=r(` درخواست کالیته `,-1)])])])):U.value?(u(),o(`div`,Ne,[s(ue,{variant:`detail`})])):(u(),o(`div`,Pe,[p(`p`,null,n(W.value||`محصول یافت نشد.`),1),p(`button`,{type:`button`,onClick:f[3]||=e=>c(R).push(`/products`)},`بازگشت به لیست`)]))}}),[[`__scopeId`,`data-v-f892ab0d`]]);export{L as default};
\ No newline at end of file
diff --git a/dist/assets/ProductDetailView-VjRdY1Zl.js b/dist/assets/ProductDetailView-VjRdY1Zl.js
deleted file mode 100644
index 337e698..0000000
--- a/dist/assets/ProductDetailView-VjRdY1Zl.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,D as t,I as n,J as r,K as i,L as a,M as o,N as s,R as c,St as l,Tt as u,X as d,_ as ee,et as te,g as ne,k as f,n as p,pt as m,wt as h,xt as g}from"./BasicIcon-B6lR-mG3.js";import{o as _}from"./format-BHJptHdF.js";import{t as re}from"./catalog-DNpqlweh.js";import{E as ie,l as ae,w as oe,x as se}from"./index-B20WsQhf.js";import{t as ce}from"./IconChevronBack-BXRfc2bX.js";import{t as le}from"./PageSkeleton-BImjuI6S.js";import{t as ue}from"./IconShare-CoOzZmBa.js";import{a as de,i as fe,t as pe}from"./crm-DbcoqKAF.js";import{t as me}from"./useGoBack-yePcdjuj.js";import{t as he}from"./IconShoppingBag-DW_Of8if.js";import{t as ge}from"./IconHeart-DjMqqdO0.js";var _e={key:0,class:`page product-detail`},v={class:`pd-header`},y={class:`pd-header__actions`},b=[`aria-label`,`aria-pressed`],x={class:`page__scroll pd-scroll`},S={class:`gallery`},C={class:`gallery__count`},w={class:`gallery__thumbs`},T=[`onClick`],E={class:`pd-body`},D={class:`title-row`},O={key:0,class:`new-badge`},k={class:`code`},A={class:`specs`},j={class:`spec-cell`},M={class:`spec-cell`},N={class:`spec-cell`},P={class:`spec-icon`,"aria-hidden":`true`},F={class:`spec-cell`},I={key:0,class:`specs-extra`},ve={class:`pd-section pd-section--boxed`},ye={class:`section-head`},be={class:`colors`},xe=[`onClick`],Se={class:`pd-section`},Ce={class:`tags`,role:`list`},we=[`onClick`],Te={class:`pd-section`},Ee={class:`roll-field`},De={class:`pd-footer`},Oe={class:`pd-footer__primary`},ke=[`disabled`],Ae={class:`min-note`},je={key:1,class:`page empty`},Me={key:2,class:`page empty`},L=p(c({__name:`ProductDetailView`,setup(c){let p={suit:`پارچه کتشلواری`,trousers:`پارچه شلواری`,shirt:`پارچه پیراهنی`},L={summer:`پارچه تابستانه`,winter:`پارچه زمستانه`,all_season:`پارچه چهارفصل`},Ne=ne(),R=ee(),{goBack:z}=me(`/products`),Pe=pe(),B=ae(),Fe=ie(),Ie=re(),V=f(()=>String(Ne.query.id??``)),H=m(null),U=m(!0),W=m(null),G=m(0),K=m(1),q=m(!1),J=m(!1),Y=f(()=>H.value?.rollMeters??50),X=f(()=>K.value*Y.value),Le=f(()=>{let e=H.value?.minMeterage;return e&&e>0?e:Y.value}),Z=f(()=>Math.max(1,Math.ceil(Le.value/Y.value))),Re=f(()=>p[H.value?.categoryId??``]||`—`),Q=f(()=>L[H.value?.season??``]||`—`),ze=f(()=>{let e=H.value;if(!e)return[];let t=[],n=de.some(t=>t.id===e.categoryId)?e.categoryId:``,r=n?p[n]:``;r&&t.push({key:`usage-${n}`,label:r,to:{path:`/products`,query:{categoryId:n}}});let i=fe.some(t=>t.id===e.season)?e.season:``,a=i?L[i]:``;a&&t.push({key:`season-${i}`,label:a,to:{path:`/products`,query:{season:i}}});let o=new Set(t.flatMap(e=>[e.label,e.label.replace(/^پارچه\s*/,``)]));for(let n of e.tags){let e=n.replace(/^پارچه?های?\s*/,``).trim();if(!e||o.has(e)||t.some(t=>t.label.includes(e)))continue;let r=n.startsWith(`پارچه`)?n:`پارچه ${e}`;o.add(e),t.push({key:`tag-${n}`,label:r})}return t});async function $(){if(!V.value){H.value=null,U.value=!1;return}U.value=!0,W.value=null;try{await Promise.all([B.hydrate(),Ie.loadCompanies()]),H.value=await Pe.loadProductById(V.value),G.value=0,K.value=Z.value}catch(e){H.value=null,W.value=e instanceof Error?e.message:`محصول یافت نشد.`}finally{U.value=!1}}i($),te(V,$);function Be(e){let t=e.rollMeters||50,n=e.orderMultiplier&&e.orderMultiplier>0?e.orderMultiplier:t,r=e.minMeterage&&e.minMeterage>0?e.minMeterage:t;return{id:e.id,companyId:e.companyId||``,catalogId:e.catalogId||``,name:e.name,code:e.code,color:e.color||e.colors[G.value]||`—`,minMeterage:r,orderMultiplier:n,basePrice:e.basePrice,isActive:!0}}function Ve(e,t,n){let r=t>0?t:1,i=Math.ceil(e/r)*r,a=Math.ceil(n/r)*r;return Math.max(i,a)}async function He(){if(!H.value)return;let e=Be(H.value);q.value=!0;try{let t=Ve(X.value,e.orderMultiplier,e.minMeterage);await Fe.addItem(e,H.value.catalogCode||H.value.code,t)}finally{q.value=!1}}function Ue(){H.value&&B.toggle(H.value.id)}function We(){let e=window.location.href;if(navigator.share){navigator.share({title:H.value?.name,url:e}).catch(()=>void 0);return}navigator.clipboard?.writeText(e)}return(i,c)=>H.value?(r(),s(`div`,_e,[e(`header`,v,[e(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:c[0]||=(...e)=>g(z)&&g(z)(...e)},[a(ce,{size:20})]),e(`div`,y,[e(`button`,{type:`button`,class:`icon-btn`,"aria-label":g(B).isFavorite(H.value.id)?`حذف از علاقهمندیها`:`افزودن به علاقهمندیها`,"aria-pressed":g(B).isFavorite(H.value.id),onClick:Ue},[a(ge,{size:20,filled:g(B).isFavorite(H.value.id),color:g(B).isFavorite(H.value.id)?`#0a353c`:void 0},null,8,[`filled`,`color`])],8,b),e(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اشتراکگذاری`,onClick:We},[a(ue,{size:20})])])]),e(`div`,x,[e(`div`,S,[e(`div`,{class:`gallery__main`,style:h(H.value.imageUrl?{backgroundImage:`url(${H.value.imageUrl})`,backgroundSize:`cover`,backgroundPosition:`center`}:{background:H.value.colors[G.value]||`#6b7280`})},[e(`span`,C,u(g(_)(G.value+1))+`/`+u(g(_)(Math.max(H.value.colors.length,1))),1)],4),e(`div`,w,[(r(!0),s(t,null,d(H.value.colors,(t,n)=>(r(),s(`button`,{key:n,type:`button`,class:l([`thumb`,{"thumb--active":G.value===n}]),onClick:e=>G.value=n},[e(`span`,{class:`thumb__swatch`,style:h({background:t})},null,4)],10,T))),128))])]),e(`div`,E,[e(`div`,D,[e(`h1`,null,u(H.value.name),1),H.value.isNew?(r(),s(`span`,O,`جدید`)):o(``,!0)]),e(`p`,k,`کد محصول: `+u(H.value.code),1),e(`div`,A,[e(`div`,j,[c[4]||=e(`span`,{class:`spec-icon`,"aria-hidden":`true`},[e(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`},[e(`rect`,{x:`4`,y:`8`,width:`16`,height:`8`,rx:`2`})])],-1),c[5]||=e(`span`,null,`عرض`,-1),e(`strong`,null,u(g(_)(H.value.widthCm))+` سانتیمتر`,1)]),e(`div`,M,[c[6]||=e(`span`,{class:`spec-icon`,"aria-hidden":`true`},[e(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`},[e(`path`,{d:`M12 3.5 20 8v8l-8 4.5L4 16V8l8-4.5Z`})])],-1),c[7]||=e(`span`,null,`جنس`,-1),e(`strong`,null,u(H.value.composition||`—`),1)]),e(`div`,N,[e(`span`,P,[a(he,{size:22,color:`#98a2ad`})]),c[8]||=e(`span`,null,`وزن`,-1),e(`strong`,null,u(H.value.weightGrams?`${g(_)(H.value.weightGrams)} گرم`:`—`),1)]),e(`div`,F,[c[9]||=e(`span`,{class:`spec-icon`,"aria-hidden":`true`},[e(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.6`},[e(`circle`,{cx:`12`,cy:`12`,r:`8`}),e(`path`,{d:`M12 8a6 6 0 0 1 0 8`})])],-1),c[10]||=e(`span`,null,`نوع بافت`,-1),e(`strong`,null,u(H.value.weaveType||`—`),1)])]),e(`button`,{type:`button`,class:`specs-more`,onClick:c[1]||=e=>J.value=!J.value},[n(u(J.value?`بستن مشخصات`:`مشاهده همه مشخصات`)+` `,1),(r(),s(`svg`,{class:l([`specs-more__chevron`,{"is-open":J.value}]),viewBox:`0 0 12 12`,"aria-hidden":`true`},[...c[11]||=[e(`path`,{d:`M3 4.5 6 8l3-3.5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`},null,-1)]],2))]),J.value?(r(),s(`div`,I,[e(`p`,null,`فصل: `+u(Q.value),1),e(`p`,null,`دسته: `+u(Re.value),1),e(`p`,null,`جمع سفارش: `+u(g(_)(X.value))+` متر`,1)])):o(``,!0),e(`section`,ve,[e(`div`,ye,[c[12]||=e(`h2`,null,`رنگبندی`,-1),e(`span`,null,`(`+u(g(_)(H.value.colors.length))+` رنگ موجود)`,1)]),e(`div`,be,[(r(!0),s(t,null,d(H.value.colors,(e,t)=>(r(),s(`button`,{key:t,type:`button`,class:l([`color-dot`,{"color-dot--active":G.value===t}]),style:h({background:e}),onClick:e=>G.value=t},null,14,xe))),128))])]),e(`section`,Se,[c[13]||=e(`h2`,{class:`section-title`},`دستهبندی`,-1),e(`div`,Ce,[(r(!0),s(t,null,d(ze.value,e=>(r(),s(`button`,{key:e.key,type:`button`,class:l([`tag`,{"tag--link":!!e.to}]),role:`listitem`,onClick:t=>e.to&&g(R).push(e.to)},u(e.label),11,we))),128))])]),e(`section`,Te,[c[14]||=e(`h2`,{class:`section-title`},`متراژ هر ساقه (طاقه)`,-1),e(`div`,Ee,u(g(_)(H.value.rollMeters))+` متر`,1)])])]),e(`footer`,De,[e(`div`,Oe,[e(`button`,{type:`button`,class:`btn-primary`,disabled:q.value,onClick:He},[a(oe,{size:18,color:`#ffffff`}),n(` `+u(q.value?`در حال افزودن...`:`افزودن به سفارش`),1)],8,ke),e(`p`,Ae,`حداقل سفارش: `+u(g(_)(Z.value))+` طاقه`,1)]),e(`button`,{type:`button`,class:`btn-secondary`,onClick:c[2]||=e=>g(R).push({path:`/catalog-request`,query:{productId:H.value.id}})},[a(se,{size:18}),c[15]||=n(` درخواست کالیته `,-1)])])])):U.value?(r(),s(`div`,je,[a(le,{variant:`detail`})])):(r(),s(`div`,Me,[e(`p`,null,u(W.value||`محصول یافت نشد.`),1),e(`button`,{type:`button`,onClick:c[3]||=e=>g(R).push(`/products`)},`بازگشت به لیست`)]))}}),[[`__scopeId`,`data-v-1eb99089`]]);export{L as default};
\ No newline at end of file
diff --git a/dist/assets/ProductDetailView-xdAl3zfq.css b/dist/assets/ProductDetailView-xdAl3zfq.css
new file mode 100644
index 0000000..58f2946
--- /dev/null
+++ b/dist/assets/ProductDetailView-xdAl3zfq.css
@@ -0,0 +1 @@
+.product-detail[data-v-f892ab0d]{--pd-card-border:1px solid #eeeef1;--pd-card-shadow:0 1px 2px #1018280a, 0 6px 16px #1018280d;--pd-card-radius:16px;background:#fff;flex-direction:column;min-height:100%;display:flex}.pd-header[data-v-f892ab0d]{padding:8px var(--page-padding);background:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.pd-header__actions[data-v-f892ab0d]{gap:4px;display:flex}.icon-btn[data-v-f892ab0d]{cursor:pointer;background:0 0;border:none;place-items:center;width:40px;height:40px;display:grid}.pd-scroll[data-v-f892ab0d]{flex:1;padding-bottom:120px}.gallery__main[data-v-f892ab0d]{background:linear-gradient(160deg,#a8b5a0,#6f8570);height:260px;position:relative}.gallery__count[data-v-f892ab0d]{bottom:12px;color:#fff;background:#0000008c;border-radius:999px;padding:4px 10px;font-size:.75rem;position:absolute;inset-inline-start:12px}.gallery__thumbs[data-v-f892ab0d]{margin:12px var(--page-padding) 0;border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);background:#fff;gap:10px;padding:10px;display:flex;overflow-x:auto}.thumb[data-v-f892ab0d]{appearance:none;border:var(--pd-card-border);width:52px;height:52px;box-shadow:var(--pd-card-shadow);cursor:pointer;box-sizing:border-box;background:#fff;border-radius:14px;flex-shrink:0;padding:0}.thumb__swatch[data-v-f892ab0d]{border-radius:12px;width:100%;height:100%;display:block}.thumb--active[data-v-f892ab0d]{border:2px solid #0a353c;padding:3px}.thumb--active .thumb__swatch[data-v-f892ab0d]{border-radius:9px}.pd-body[data-v-f892ab0d]{padding:16px var(--page-padding) 20px;background:#fff;flex-direction:column;gap:18px;display:flex}.title-row[data-v-f892ab0d]{justify-content:flex-start;align-items:center;gap:8px;display:flex}.title-row h1[data-v-f892ab0d]{margin:0;font-size:1.2rem;font-weight:700}.new-badge[data-v-f892ab0d]{color:#fff;background:#96b49c;border:none;border-radius:10px;justify-content:center;align-items:center;height:26px;padding:0 16px;font-size:.8125rem;font-weight:500;line-height:1;display:inline-flex}.code[data-v-f892ab0d]{color:var(--color-text-muted);margin:-10px 0 0;font-size:.82rem}.specs[data-v-f892ab0d]{border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);background:#fff;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:14px 8px;display:grid}.spec-cell[data-v-f892ab0d]{text-align:center;flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.spec-icon[data-v-f892ab0d]{color:#98a2ad;place-items:center;width:22px;height:22px;display:grid}.spec-icon svg[data-v-f892ab0d]{width:22px;height:22px}.spec-cell strong[data-v-f892ab0d]{color:var(--color-text);text-overflow:ellipsis;max-width:100%;font-size:.7rem;font-weight:600;line-height:1.4;overflow:hidden}.spec-cell span[data-v-f892ab0d]{color:#98a2ad;font-size:.7rem}.specs-more[data-v-f892ab0d]{color:#8b939c;cursor:pointer;background:0 0;border:none;align-self:center;align-items:center;gap:4px;padding:0;font-size:.8rem;font-weight:500;display:inline-flex}.specs-more__chevron[data-v-f892ab0d]{width:12px;height:12px}.specs-more__chevron.is-open[data-v-f892ab0d]{transform:rotate(180deg)}.specs-extra[data-v-f892ab0d]{color:var(--color-text-muted);background:#f6f7f8;border-radius:12px;padding:12px 14px;font-size:.82rem}.specs-extra p[data-v-f892ab0d]{margin:0 0 6px}.specs-extra p[data-v-f892ab0d]:last-child{margin:0}.pd-section[data-v-f892ab0d]{flex-direction:column;gap:10px;display:flex}.pd-section--boxed[data-v-f892ab0d]{border:var(--pd-card-border);border-radius:var(--pd-card-radius);box-shadow:var(--pd-card-shadow);background:#fff;padding:12px 14px}.section-head[data-v-f892ab0d]{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.section-head h2[data-v-f892ab0d],.section-title[data-v-f892ab0d]{margin:0;font-size:.95rem;font-weight:700}.section-head span[data-v-f892ab0d]{color:#8b939c;font-size:.78rem}.colors[data-v-f892ab0d]{padding:4px 2px;flex-wrap:nowrap;gap:14px;padding-inline-start:20px;display:flex;overflow-x:auto}.color-dot[data-v-f892ab0d]{appearance:none;width:22px;height:22px;box-shadow:none;cursor:pointer;box-sizing:border-box;background-position:50%;background-size:cover;border:1px solid #00000014;border-radius:999px;flex-shrink:0;padding:0}.color-dot--active[data-v-f892ab0d]{border-color:#0000;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #0a353c}.tags[data-v-f892ab0d]{flex-wrap:wrap;justify-content:flex-start;gap:8px;display:flex}.tag[data-v-f892ab0d],button.tag[data-v-f892ab0d]{appearance:none;border:var(--pd-card-border);border-radius:var(--pd-card-radius);color:#6b7280;letter-spacing:0;white-space:nowrap;height:32px;min-height:32px;box-shadow:var(--pd-card-shadow);background:#fff;outline:none;justify-content:center;align-items:center;padding:0 16px;font-size:.8125rem;font-weight:400;line-height:1;display:inline-flex}button.tag[data-v-f892ab0d]{cursor:default;font-family:inherit}button.tag--link[data-v-f892ab0d]{cursor:pointer}button.tag--link[data-v-f892ab0d]:hover{background:#fff}.roll-field[data-v-f892ab0d]{color:#6b7280;background:#fff;border:1px solid #eeeef1;border-radius:16px;align-items:center;width:fit-content;max-width:100%;padding:14px 16px;font-size:.9rem;display:inline-flex;box-shadow:0 1px 2px #1018280a,0 6px 16px #1018280d}.pd-footer[data-v-f892ab0d]{padding:12px var(--page-padding) calc(12px + env(safe-area-inset-bottom,0));background:var(--color-surface);border-top:1px solid var(--color-border);grid-template-columns:1.2fr 1fr;align-items:start;gap:8px;display:grid;position:sticky;bottom:0}.pd-footer__primary[data-v-f892ab0d]{flex-direction:column;display:flex}.btn-secondary[data-v-f892ab0d],.btn-primary[data-v-f892ab0d]{cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;width:100%;height:48px;min-height:48px;font-weight:700;display:inline-flex}.btn-secondary[data-v-f892ab0d]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary)}.btn-primary[data-v-f892ab0d]{background:var(--color-accent-navy);color:#fff;border:none}.btn-primary[data-v-f892ab0d]:disabled{opacity:.7;cursor:wait}.min-note[data-v-f892ab0d]{text-align:center;color:var(--color-text-muted);margin:6px 0 0;font-size:.7rem}.empty[data-v-f892ab0d]{padding:40px var(--page-padding);text-align:center}
diff --git a/dist/assets/ProductsView-B4EcZOo9.js b/dist/assets/ProductsView-B4EcZOo9.js
new file mode 100644
index 0000000..83cf5ad
--- /dev/null
+++ b/dist/assets/ProductsView-B4EcZOo9.js
@@ -0,0 +1 @@
+import{A as e,Ct as t,D as n,Et as r,L as i,M as a,N as o,O as s,P as c,R as l,St as u,Tt as d,Y as f,Z as p,_ as m,g as h,j as g,mt as _,n as v,q as ee,rt as te,tt as y,z as b}from"./BasicIcon-C6boaehV.js";import{l as ne,o as re}from"./index-spodxsRN.js";import{t as ie}from"./IconFilter-D9NdLZ7w.js";import{t as ae}from"./PageSkeleton-uO-jhbNm.js";import{t as oe}from"./crm-CtglbPsN.js";import{n as x}from"./colorSwatch-BgOH1LE5.js";import{t as S}from"./PageHeader-BaJqBjIW.js";import{t as C}from"./SearchField-Dx2PcshV.js";import{t as se}from"./IconHeart-CZMe29Nz.js";var ce={class:`page products-page`},le={class:`page__scroll page__scroll--with-nav products-scroll`},ue={key:1},de={class:`cat-banner`},fe={class:`chips`,role:`tablist`,"aria-label":`فصل`},pe=[`onClick`],me={class:`list-meta`},he=[`onClick`],w={class:`product-item__body`},T={class:`product-item__head`},E={class:`product-item__title`},D={key:0,class:`new-tag`},O=[`aria-label`,`aria-pressed`,`onClick`],k={class:`product-item__specs`},A={class:`swatches`},j=[`onClick`],M={key:0,class:`empty-list`},N=v(b({__name:`ProductsView`,setup(v){let b=h(),N=m(),P=oe(),F=ne(),I=e(()=>String(b.query.categoryId??``)),L=e(()=>String(b.query.catalogId??``)),R=e(()=>String(b.query.companyId??``)),z=e(()=>String(b.query.season??``)),B=e(()=>String(b.query.q??``)),V=_(String(b.query.q??``)),H=_([]),U=_([]),W=_(``),G=_(!0),K=_(null),q=_(`newest`),J=e(()=>L.value&&W.value?W.value:I.value?P.usageCategories.find(e=>e.id===I.value)?.title??`محصولات`:z.value?U.value.find(e=>e.id===z.value)?.title??`محصولات`:B.value?`جستجو: ${B.value}`:`همه محصولات`),ge=e(()=>L.value?`انتخاب محصول از کالیته`:I.value===`suit`?`شیک، بادوام و رسمی`:I.value===`trousers`?`مناسب شلوار و مصارف روزانه`:I.value===`shirt`?`سبک و مناسب پیراهن`:z.value?`فیلتر شده بر اساس فصل`:`مشاهده و ثبت سفارش`),_e=e(()=>!I.value&&!L.value),Y=e(()=>{let e=B.value.trim().toLowerCase(),t=[...H.value];return e&&(t=t.filter(t=>t.name.toLowerCase().includes(e)||t.code.toLowerCase().includes(e)||(t.composition||``).toLowerCase().includes(e))),q.value===`name`?t.sort((e,t)=>e.name.localeCompare(t.name,`fa`)):t.sort((e,t)=>Number(t.isNew)-Number(e.isNew)||e.name.localeCompare(t.name,`fa`))});function X(){q.value=q.value===`newest`?`name`:`newest`}function ve(e){V.value=e,N.replace({path:`/products`,query:{...I.value?{categoryId:I.value}:{},...L.value?{catalogId:L.value}:{},...R.value?{companyId:R.value}:{},...z.value?{season:z.value}:{},...e.trim()?{q:e.trim()}:{}}})}async function Z(){G.value=!0,K.value=null;try{if(!P.usageCategories.length||!U.value.length){let e=await P.loadCategories();U.value=e.seasons}H.value=await P.loadBrowseProducts({categoryId:I.value||void 0,season:z.value||void 0,catalogId:L.value||void 0,companyId:R.value||void 0});let e=H.value[0];W.value=e?.catalogName||e?.catalogCode||``}catch(e){K.value=e instanceof Error?e.message:`بارگذاری محصولات ناموفق بود.`,H.value=[]}finally{G.value=!1}}ee(async()=>{await F.hydrate(),await Z()}),y([I,z,L,R],Z),y(B,e=>{V.value=e});function Q(e){N.replace({path:`/products`,query:{...I.value?{categoryId:I.value}:{},...L.value?{catalogId:L.value}:{},...R.value?{companyId:R.value}:{},...e?{season:e}:{},...B.value?{q:B.value}:{}}})}function $(e){N.push({path:`/product`,query:{id:e}})}function ye(e){return U.value.find(t=>t.id===e)?.title??e}function be(e){F.toggle(e)}return(e,m)=>(f(),c(`div`,ce,[l(S,{title:J.value,"show-back":``,centered:``,onBack:m[1]||=e=>u(N).back()},{trailing:te(()=>[g(`button`,{type:`button`,class:`nav-filter`,"aria-label":`فیلتر`,onClick:m[0]||=e=>u(N).push(`/categories`)},[l(ie,{size:18})])]),_:1},8,[`title`]),g(`div`,le,[_e.value?(f(),a(C,{key:0,"model-value":V.value,placeholder:`جستجو نام یا کد محصول...`,"onUpdate:modelValue":ve},null,8,[`model-value`])):o(``,!0),K.value?(f(),c(`p`,ue,r(K.value),1)):G.value?(f(),a(ae,{key:2,variant:`grid`})):(f(),c(s,{key:3},[g(`section`,de,[m[3]||=g(`div`,{class:`cat-banner__icon`,"aria-hidden":`true`},null,-1),g(`div`,null,[g(`h2`,null,r(J.value),1),g(`p`,null,r(ge.value),1)])]),g(`div`,fe,[g(`button`,{type:`button`,class:t([`chip`,{"chip--active":!z.value}]),onClick:m[2]||=e=>Q(``)},` همه `,2),(f(!0),c(s,null,p(U.value,e=>(f(),c(`button`,{key:e.id,type:`button`,class:t([`chip`,{"chip--active":z.value===e.id}]),onClick:t=>Q(e.id)},r(e.title),11,pe))),128))]),g(`div`,me,[g(`span`,null,`تعداد محصولات: `+r(Y.value.length.toLocaleString(`fa-IR`)),1),g(`button`,{type:`button`,class:`list-meta__sort`,onClick:X},` مرتبسازی: `+r(q.value===`newest`?`جدیدترین`:`نام`),1)]),(f(!0),c(s,null,p(Y.value,e=>(f(),c(`article`,{key:e.id,class:`product-item`,onClick:t=>$(e.id)},[g(`div`,{class:`product-item__image`,style:d(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,4),g(`div`,w,[g(`div`,T,[g(`div`,E,[g(`strong`,null,r(e.name),1),e.isNew?(f(),c(`span`,D,`جدید`)):o(``,!0)]),g(`button`,{type:`button`,class:`bookmark`,"aria-label":u(F).isFavorite(e.id)?`حذف از علاقهمندیها`:`افزودن به علاقهمندیها`,"aria-pressed":u(F).isFavorite(e.id),onClick:n(t=>be(e.id),[`stop`])},[l(se,{size:18,filled:u(F).isFavorite(e.id),color:u(F).isFavorite(e.id)?`#0a353c`:`#9ca3af`},null,8,[`filled`,`color`])],8,O)]),g(`ul`,k,[g(`li`,null,`عرض: `+r(e.widthCm.toLocaleString(`fa-IR`))+` سانتیمتر`,1),g(`li`,null,`ترکیب: `+r(e.composition||`—`),1),g(`li`,null,`مناسب: `+r(ye(e.season)),1)]),g(`div`,A,[(f(!0),c(s,null,p(e.colors.slice(0,6),(t,n)=>(f(),c(`span`,{key:n,class:`swatch`,style:d(u(x)(t,e.colorImages?.[n]||e.imageUrls?.[n]))},null,4))),128))]),g(`button`,{type:`button`,class:`details-link`,onClick:n(t=>$(e.id),[`stop`])},[m[4]||=i(` مشاهده جزئیات `,-1),l(re,{size:14})],8,j)])],8,he))),128)),Y.value.length?o(``,!0):(f(),c(`p`,M,`محصولی در این دسته یافت نشد.`))],64))])]))}}),[[`__scopeId`,`data-v-ea9e9c36`]]);export{N as default};
\ No newline at end of file
diff --git a/dist/assets/ProductsView-BPje9bIW.js b/dist/assets/ProductsView-BPje9bIW.js
deleted file mode 100644
index f36898a..0000000
--- a/dist/assets/ProductsView-BPje9bIW.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,D as t,E as n,I as r,J as i,K as a,L as o,M as s,N as c,R as l,St as u,Tt as d,X as f,_ as ee,et as p,g as m,j as h,k as g,n as _,nt as v,pt as y,wt as b,xt as x}from"./BasicIcon-B6lR-mG3.js";import{l as te,o as ne}from"./index-B20WsQhf.js";import{t as re}from"./IconFilter-DJjJ9EAy.js";import{t as ie}from"./PageSkeleton-BImjuI6S.js";import{t as ae}from"./crm-DbcoqKAF.js";import{t as oe}from"./PageHeader-DXkA75qK.js";import{t as se}from"./SearchField-txVsGGXT.js";import{t as S}from"./IconHeart-DjMqqdO0.js";var ce={class:`page products-page`},le={class:`page__scroll page__scroll--with-nav products-scroll`},C={key:1},w={class:`cat-banner`},T={class:`chips`,role:`tablist`,"aria-label":`فصل`},E=[`onClick`],ue={class:`list-meta`},de=[`onClick`],fe={class:`product-item__body`},pe={class:`product-item__head`},D={class:`product-item__title`},O={key:0,class:`new-tag`},k=[`aria-label`,`aria-pressed`,`onClick`],A={class:`product-item__specs`},j={class:`swatches`},M=[`onClick`],N={key:0,class:`empty-list`},P=_(l({__name:`ProductsView`,setup(l){let _=m(),P=ee(),F=ae(),I=te(),L=g(()=>String(_.query.categoryId??``)),R=g(()=>String(_.query.catalogId??``)),z=g(()=>String(_.query.companyId??``)),B=g(()=>String(_.query.season??``)),V=g(()=>String(_.query.q??``)),H=y(String(_.query.q??``)),U=y([]),W=y([]),G=y(``),K=y(!0),q=y(null),J=y(`newest`),Y=g(()=>R.value&&G.value?G.value:L.value?F.usageCategories.find(e=>e.id===L.value)?.title??`محصولات`:B.value?W.value.find(e=>e.id===B.value)?.title??`محصولات`:V.value?`جستجو: ${V.value}`:`همه محصولات`),me=g(()=>R.value?`انتخاب محصول از کالیته`:L.value===`suit`?`شیک، بادوام و رسمی`:L.value===`trousers`?`مناسب شلوار و مصارف روزانه`:L.value===`shirt`?`سبک و مناسب پیراهن`:B.value?`فیلتر شده بر اساس فصل`:`مشاهده و ثبت سفارش`),he=g(()=>!L.value&&!R.value),X=g(()=>{let e=V.value.trim().toLowerCase(),t=[...U.value];return e&&(t=t.filter(t=>t.name.toLowerCase().includes(e)||t.code.toLowerCase().includes(e)||(t.composition||``).toLowerCase().includes(e))),J.value===`name`?t.sort((e,t)=>e.name.localeCompare(t.name,`fa`)):t.sort((e,t)=>Number(t.isNew)-Number(e.isNew)||e.name.localeCompare(t.name,`fa`))});function ge(){J.value=J.value===`newest`?`name`:`newest`}function _e(e){H.value=e,P.replace({path:`/products`,query:{...L.value?{categoryId:L.value}:{},...R.value?{catalogId:R.value}:{},...z.value?{companyId:z.value}:{},...B.value?{season:B.value}:{},...e.trim()?{q:e.trim()}:{}}})}async function Z(){K.value=!0,q.value=null;try{if(!F.usageCategories.length||!W.value.length){let e=await F.loadCategories();W.value=e.seasons}U.value=await F.loadBrowseProducts({categoryId:L.value||void 0,season:B.value||void 0,catalogId:R.value||void 0,companyId:z.value||void 0});let e=U.value[0];G.value=e?.catalogName||e?.catalogCode||``}catch(e){q.value=e instanceof Error?e.message:`بارگذاری محصولات ناموفق بود.`,U.value=[]}finally{K.value=!1}}a(async()=>{await I.hydrate(),await Z()}),p([L,B,R,z],Z),p(V,e=>{H.value=e});function Q(e){P.replace({path:`/products`,query:{...L.value?{categoryId:L.value}:{},...R.value?{catalogId:R.value}:{},...z.value?{companyId:z.value}:{},...e?{season:e}:{},...V.value?{q:V.value}:{}}})}function $(e){P.push({path:`/product`,query:{id:e}})}function ve(e){return W.value.find(t=>t.id===e)?.title??e}function ye(e){I.toggle(e)}return(a,l)=>(i(),c(`div`,ce,[o(oe,{title:Y.value,"show-back":``,centered:``,onBack:l[1]||=e=>x(P).back()},{trailing:v(()=>[e(`button`,{type:`button`,class:`nav-filter`,"aria-label":`فیلتر`,onClick:l[0]||=e=>x(P).push(`/categories`)},[o(re,{size:18})])]),_:1},8,[`title`]),e(`div`,le,[he.value?(i(),h(se,{key:0,"model-value":H.value,placeholder:`جستجو نام یا کد محصول...`,"onUpdate:modelValue":_e},null,8,[`model-value`])):s(``,!0),q.value?(i(),c(`p`,C,d(q.value),1)):K.value?(i(),h(ie,{key:2,variant:`grid`})):(i(),c(t,{key:3},[e(`section`,w,[l[3]||=e(`div`,{class:`cat-banner__icon`,"aria-hidden":`true`},null,-1),e(`div`,null,[e(`h2`,null,d(Y.value),1),e(`p`,null,d(me.value),1)])]),e(`div`,T,[e(`button`,{type:`button`,class:u([`chip`,{"chip--active":!B.value}]),onClick:l[2]||=e=>Q(``)},` همه `,2),(i(!0),c(t,null,f(W.value,e=>(i(),c(`button`,{key:e.id,type:`button`,class:u([`chip`,{"chip--active":B.value===e.id}]),onClick:t=>Q(e.id)},d(e.title),11,E))),128))]),e(`div`,ue,[e(`span`,null,`تعداد محصولات: `+d(X.value.length.toLocaleString(`fa-IR`)),1),e(`button`,{type:`button`,class:`list-meta__sort`,onClick:ge},` مرتبسازی: `+d(J.value===`newest`?`جدیدترین`:`نام`),1)]),(i(!0),c(t,null,f(X.value,a=>(i(),c(`article`,{key:a.id,class:`product-item`,onClick:e=>$(a.id)},[e(`div`,{class:`product-item__image`,style:b(a.imageUrl?{backgroundImage:`url(${a.imageUrl})`}:void 0)},null,4),e(`div`,fe,[e(`div`,pe,[e(`div`,D,[e(`strong`,null,d(a.name),1),a.isNew?(i(),c(`span`,O,`جدید`)):s(``,!0)]),e(`button`,{type:`button`,class:`bookmark`,"aria-label":x(I).isFavorite(a.id)?`حذف از علاقهمندیها`:`افزودن به علاقهمندیها`,"aria-pressed":x(I).isFavorite(a.id),onClick:n(e=>ye(a.id),[`stop`])},[o(S,{size:18,filled:x(I).isFavorite(a.id),color:x(I).isFavorite(a.id)?`#0a353c`:`#9ca3af`},null,8,[`filled`,`color`])],8,k)]),e(`ul`,A,[e(`li`,null,`عرض: `+d(a.widthCm.toLocaleString(`fa-IR`))+` سانتیمتر`,1),e(`li`,null,`ترکیب: `+d(a.composition||`—`),1),e(`li`,null,`مناسب: `+d(ve(a.season)),1)]),e(`div`,j,[(i(!0),c(t,null,f(a.colors.slice(0,6),(e,t)=>(i(),c(`span`,{key:t,class:`swatch`,style:b({background:e})},null,4))),128))]),e(`button`,{type:`button`,class:`details-link`,onClick:n(e=>$(a.id),[`stop`])},[l[4]||=r(` مشاهده جزئیات `,-1),o(ne,{size:14})],8,M)])],8,de))),128)),X.value.length?s(``,!0):(i(),c(`p`,N,`محصولی در این دسته یافت نشد.`))],64))])]))}}),[[`__scopeId`,`data-v-9e3c60d6`]]);export{P as default};
\ No newline at end of file
diff --git a/dist/assets/ProductsView-CHENfFEp.css b/dist/assets/ProductsView-CHENfFEp.css
deleted file mode 100644
index 12cf0ec..0000000
--- a/dist/assets/ProductsView-CHENfFEp.css
+++ /dev/null
@@ -1 +0,0 @@
-.products-page[data-v-9e3c60d6]{background:var(--color-bg);position:relative}.nav-filter[data-v-9e3c60d6]{cursor:pointer;width:40px;height:40px;color:var(--color-text);background:0 0;border:none;place-items:center;display:grid}.products-scroll[data-v-9e3c60d6]{padding:8px var(--page-padding) 24px;flex-direction:column;gap:12px;display:flex}.cat-banner[data-v-9e3c60d6]{border-radius:var(--radius-lg);background:linear-gradient(100deg, rgba(var(--color-primary-rgb), .75), rgba(var(--color-primary-rgb), .35)), #2f3430;color:#fff;align-items:center;gap:12px;min-height:96px;padding:16px;display:flex}.cat-banner__icon[data-v-9e3c60d6]{background:#fff3;border-radius:999px;flex-shrink:0;width:48px;height:48px}.cat-banner h2[data-v-9e3c60d6]{margin:0 0 4px;font-size:1rem}.cat-banner p[data-v-9e3c60d6]{opacity:.9;margin:0;font-size:.8rem}.chips[data-v-9e3c60d6]{gap:8px;display:flex;overflow-x:auto}.chip[data-v-9e3c60d6]{color:var(--color-text);white-space:nowrap;cursor:pointer;background:#ecefee;border:none;border-radius:999px;padding:8px 14px;font-size:.8rem}.chip--active[data-v-9e3c60d6]{background:var(--color-primary);color:#fff}.list-meta[data-v-9e3c60d6]{color:var(--color-text-muted);justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.list-meta__sort[data-v-9e3c60d6]{color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.product-item[data-v-9e3c60d6]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;grid-template-columns:112px 1fr;align-items:stretch;gap:12px;padding:12px;display:grid}.product-item__image[data-v-9e3c60d6]{background:linear-gradient(145deg,#2a3544,#111827) 50%/cover;border-radius:12px;min-height:112px}.product-item__body[data-v-9e3c60d6]{flex-direction:column;gap:6px;min-width:0;display:flex}.product-item__head[data-v-9e3c60d6]{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.product-item__title[data-v-9e3c60d6]{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.product-item__title strong[data-v-9e3c60d6]{color:var(--color-text);font-size:.9375rem;font-weight:700;line-height:1.4}.new-tag[data-v-9e3c60d6]{background:var(--color-primary);color:#fff;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.65rem;font-weight:700}.bookmark[data-v-9e3c60d6]{cursor:pointer;background:0 0;border:none;flex-shrink:0;place-items:center;width:28px;height:28px;margin-inline-start:auto;padding:0;display:grid}.product-item__specs[data-v-9e3c60d6]{color:var(--color-text-muted);text-align:start;flex-direction:column;gap:2px;margin:0;padding:0;font-size:.75rem;line-height:1.55;list-style:none;display:flex}.swatches[data-v-9e3c60d6]{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.swatch[data-v-9e3c60d6]{border:1px solid #00000014;border-radius:999px;width:14px;height:14px}.details-link[data-v-9e3c60d6]{color:var(--color-info);cursor:pointer;background:0 0;border:none;align-self:flex-end;align-items:center;gap:2px;margin-top:auto;padding:0;font-size:.75rem;display:inline-flex}.empty-list[data-v-9e3c60d6]{text-align:center;color:var(--color-text-muted);margin:12px 0 0}
diff --git a/dist/assets/ProductsView-MAdd0_sK.css b/dist/assets/ProductsView-MAdd0_sK.css
new file mode 100644
index 0000000..36bb3e7
--- /dev/null
+++ b/dist/assets/ProductsView-MAdd0_sK.css
@@ -0,0 +1 @@
+.products-page[data-v-ea9e9c36]{background:var(--color-bg);position:relative}.nav-filter[data-v-ea9e9c36]{cursor:pointer;width:40px;height:40px;color:var(--color-text);background:0 0;border:none;place-items:center;display:grid}.products-scroll[data-v-ea9e9c36]{padding:8px var(--page-padding) 24px;flex-direction:column;gap:12px;display:flex}.cat-banner[data-v-ea9e9c36]{border-radius:var(--radius-lg);background:linear-gradient(100deg, rgba(var(--color-primary-rgb), .75), rgba(var(--color-primary-rgb), .35)), #2f3430;color:#fff;align-items:center;gap:12px;min-height:96px;padding:16px;display:flex}.cat-banner__icon[data-v-ea9e9c36]{background:#fff3;border-radius:999px;flex-shrink:0;width:48px;height:48px}.cat-banner h2[data-v-ea9e9c36]{margin:0 0 4px;font-size:1rem}.cat-banner p[data-v-ea9e9c36]{opacity:.9;margin:0;font-size:.8rem}.chips[data-v-ea9e9c36]{gap:8px;display:flex;overflow-x:auto}.chip[data-v-ea9e9c36]{color:var(--color-text);white-space:nowrap;cursor:pointer;background:#ecefee;border:none;border-radius:999px;padding:8px 14px;font-size:.8rem}.chip--active[data-v-ea9e9c36]{background:var(--color-primary);color:#fff}.list-meta[data-v-ea9e9c36]{color:var(--color-text-muted);justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.list-meta__sort[data-v-ea9e9c36]{color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.product-item[data-v-ea9e9c36]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;grid-template-columns:112px 1fr;align-items:stretch;gap:12px;padding:12px;display:grid}.product-item__image[data-v-ea9e9c36]{background:linear-gradient(145deg,#2a3544,#111827) 50%/cover;border-radius:12px;min-height:112px}.product-item__body[data-v-ea9e9c36]{flex-direction:column;gap:6px;min-width:0;display:flex}.product-item__head[data-v-ea9e9c36]{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.product-item__title[data-v-ea9e9c36]{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.product-item__title strong[data-v-ea9e9c36]{color:var(--color-text);font-size:.9375rem;font-weight:700;line-height:1.4}.new-tag[data-v-ea9e9c36]{background:var(--color-primary);color:#fff;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.65rem;font-weight:700}.bookmark[data-v-ea9e9c36]{cursor:pointer;background:0 0;border:none;flex-shrink:0;place-items:center;width:28px;height:28px;margin-inline-start:auto;padding:0;display:grid}.product-item__specs[data-v-ea9e9c36]{color:var(--color-text-muted);text-align:start;flex-direction:column;gap:2px;margin:0;padding:0;font-size:.75rem;line-height:1.55;list-style:none;display:flex}.swatches[data-v-ea9e9c36]{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.swatch[data-v-ea9e9c36]{background-position:50%;background-size:cover;border:1px solid #00000014;border-radius:999px;width:14px;height:14px}.details-link[data-v-ea9e9c36]{color:var(--color-info);cursor:pointer;background:0 0;border:none;align-self:flex-end;align-items:center;gap:2px;margin-top:auto;padding:0;font-size:.75rem;display:inline-flex}.empty-list[data-v-ea9e9c36]{text-align:center;color:var(--color-text-muted);margin:12px 0 0}
diff --git a/dist/assets/ProfileChecksView-Cx3LI6JZ.js b/dist/assets/ProfileChecksView-Cx3LI6JZ.js
deleted file mode 100644
index cfb63d0..0000000
--- a/dist/assets/ProfileChecksView-Cx3LI6JZ.js
+++ /dev/null
@@ -1 +0,0 @@
-import{t as e}from"./CheckListView-D8SjoAtS.js";import{J as t,R as n,j as r}from"./BasicIcon-B6lR-mG3.js";var i=n({__name:`ProfileChecksView`,setup(n){return(n,i)=>(t(),r(e))}});export{i as default};
\ No newline at end of file
diff --git a/dist/assets/ProfileChecksView-wOLfVfr3.js b/dist/assets/ProfileChecksView-wOLfVfr3.js
new file mode 100644
index 0000000..b56124a
--- /dev/null
+++ b/dist/assets/ProfileChecksView-wOLfVfr3.js
@@ -0,0 +1 @@
+import{t as e}from"./CheckListView-DkR4Ltru.js";import{M as t,Y as n,z as r}from"./BasicIcon-C6boaehV.js";var i=r({__name:`ProfileChecksView`,setup(r){return(r,i)=>(n(),t(e))}});export{i as default};
\ No newline at end of file
diff --git a/dist/assets/ProfileDisplayView-BRRdMHnK.css b/dist/assets/ProfileDisplayView-BRRdMHnK.css
deleted file mode 100644
index bd359b3..0000000
--- a/dist/assets/ProfileDisplayView-BRRdMHnK.css
+++ /dev/null
@@ -1 +0,0 @@
-.settings-page[data-v-3187a788]{flex-direction:column;gap:20px;display:flex}.settings-links[data-v-3187a788]{flex-direction:column;gap:8px;display:flex}.settings-link[data-v-3187a788]{border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-height:52px;color:var(--color-text);font:inherit;text-align:right;cursor:pointer;border-radius:14px;grid-template-columns:40px 1fr 16px;align-items:center;gap:10px;padding:10px 12px;display:grid}.settings-link__icon[data-v-3187a788]{background:var(--color-primary-soft);width:40px;height:40px;color:var(--color-primary);border-radius:12px;place-items:center;display:grid}.settings-link__label[data-v-3187a788]{font-size:.9375rem;font-weight:600}.settings-link__label em[data-v-3187a788]{color:var(--color-text-muted);font-style:normal;font-weight:500}.settings-link__chevron[data-v-3187a788]{color:var(--color-text-muted)}.display-fieldset[data-v-3187a788]{border:none;margin:0;padding:0}.display-fieldset__legend[data-v-3187a788]{color:var(--color-text);margin:0 0 12px;padding:0;font-size:.875rem;font-weight:700}.display-grid[data-v-3187a788]{flex-direction:column;gap:10px;display:flex}.theme-card[data-v-3187a788]{border:1px solid var(--color-border);background:var(--color-elevated);width:100%;color:var(--color-text);text-align:right;cursor:pointer;border-radius:16px;grid-template-columns:48px 1fr 24px;align-items:center;gap:12px;padding:14px 16px;display:grid}.theme-card--active[data-v-3187a788]{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:0 0 0 1px var(--color-primary)}.theme-card__icon[data-v-3187a788]{background:var(--color-surface);width:48px;height:48px;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:14px;justify-content:center;align-items:center;display:flex}.theme-card--active .theme-card__icon[data-v-3187a788]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.theme-card__body[data-v-3187a788]{flex-direction:column;gap:2px;min-width:0;display:flex}.theme-card__label[data-v-3187a788]{font-size:.9375rem;font-weight:700}.theme-card__desc[data-v-3187a788]{color:var(--color-text-muted);font-size:.75rem;line-height:1.4}.theme-card--active .theme-card__label[data-v-3187a788]{color:var(--color-primary)}.theme-card__check[data-v-3187a788]{color:var(--color-primary);justify-content:center;align-items:center;min-height:20px;display:flex}.display-saved[data-v-3187a788]{text-align:center;color:var(--color-success);margin:0;font-size:.875rem}.settings-logout[data-v-3187a788]{border:1px solid var(--color-danger-light);background:var(--color-surface);width:100%;min-height:48px;color:var(--color-danger);font:inherit;cursor:pointer;border-radius:14px;font-weight:600}
diff --git a/dist/assets/ProfileDisplayView-CDaE5E6F.css b/dist/assets/ProfileDisplayView-CDaE5E6F.css
new file mode 100644
index 0000000..e8e45ac
--- /dev/null
+++ b/dist/assets/ProfileDisplayView-CDaE5E6F.css
@@ -0,0 +1 @@
+.settings-page[data-v-f16dc950]{flex-direction:column;gap:20px;display:flex}.settings-links[data-v-f16dc950]{flex-direction:column;gap:8px;display:flex}.settings-link[data-v-f16dc950]{border:1px solid var(--color-border);background:var(--color-surface);width:100%;min-height:52px;color:var(--color-text);font:inherit;text-align:right;cursor:pointer;border-radius:14px;grid-template-columns:40px 1fr 16px;align-items:center;gap:10px;padding:10px 12px;display:grid}.settings-link__icon[data-v-f16dc950]{background:var(--color-primary-soft);width:40px;height:40px;color:var(--color-primary);border-radius:12px;place-items:center;display:grid}.settings-link__label[data-v-f16dc950]{font-size:.9375rem;font-weight:600}.settings-link__label em[data-v-f16dc950]{color:var(--color-text-muted);font-style:normal;font-weight:500}.settings-link__chevron[data-v-f16dc950]{color:var(--color-text-muted)}.display-fieldset[data-v-f16dc950]{border:none;margin:0;padding:0}.display-fieldset__legend[data-v-f16dc950]{color:var(--color-text);margin:0 0 12px;padding:0;font-size:.875rem;font-weight:700}.display-grid[data-v-f16dc950]{flex-direction:column;gap:10px;display:flex}.theme-card[data-v-f16dc950]{border:1px solid var(--color-border);background:var(--color-elevated);width:100%;color:var(--color-text);text-align:right;cursor:pointer;border-radius:16px;grid-template-columns:48px 1fr 24px;align-items:center;gap:12px;padding:14px 16px;display:grid}.theme-card--active[data-v-f16dc950]{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:0 0 0 1px var(--color-primary)}.theme-card__icon[data-v-f16dc950]{background:var(--color-surface);width:48px;height:48px;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:14px;justify-content:center;align-items:center;display:flex}.theme-card--active .theme-card__icon[data-v-f16dc950]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.theme-card__body[data-v-f16dc950]{flex-direction:column;gap:2px;min-width:0;display:flex}.theme-card__label[data-v-f16dc950]{font-size:.9375rem;font-weight:700}.theme-card__desc[data-v-f16dc950]{color:var(--color-text-muted);font-size:.75rem;line-height:1.4}.theme-card--active .theme-card__label[data-v-f16dc950]{color:var(--color-primary)}.theme-card__check[data-v-f16dc950]{color:var(--color-primary);justify-content:center;align-items:center;min-height:20px;display:flex}.display-saved[data-v-f16dc950]{text-align:center;color:var(--color-success);margin:0;font-size:.875rem}.settings-logout[data-v-f16dc950]{border:1px solid var(--color-danger-light);background:var(--color-surface);width:100%;min-height:48px;color:var(--color-danger);font:inherit;cursor:pointer;border-radius:14px;font-weight:600}
diff --git a/dist/assets/ProfileDisplayView-Co6ARz_e.js b/dist/assets/ProfileDisplayView-Co6ARz_e.js
deleted file mode 100644
index 0ca64c7..0000000
--- a/dist/assets/ProfileDisplayView-Co6ARz_e.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,D as t,I as n,J as r,L as i,M as a,N as o,R as s,St as c,Tt as l,X as u,_ as d,j as f,k as p,n as m,nt as h,pt as g,t as _,xt as v}from"./BasicIcon-B6lR-mG3.js";import{u as y}from"./dist-BcgVHqJQ.js";import{a as b,c as x,g as S,n as C}from"./index-B20WsQhf.js";import{t as w}from"./ProfileSubpageLayout-CHfCB62H.js";var T={class:`settings-page`},E={class:`settings-links`,"aria-label":`حساب کاربری`},D={class:`settings-link__icon`,"aria-hidden":`true`},O={class:`settings-link__icon`,"aria-hidden":`true`},k={class:`settings-link__label`},A={key:0},j={class:`display-fieldset`},M={class:`display-grid`,role:`radiogroup`,"aria-label":`حالت نمایش`},N=[`aria-checked`,`onClick`],P={class:`theme-card__icon`,"aria-hidden":`true`},F={class:`theme-card__body`},I={class:`theme-card__label`},L={class:`theme-card__desc`},R={class:`theme-card__check`,"aria-hidden":`true`},z={key:0,class:`display-saved`},B=m(s({__name:`ProfileDisplayView`,setup(s){let m=d(),B=x(),V=S(),H=b(),U=g(!1),{start:W}=y(()=>{U.value=!1},2e3),G=[{value:`light`,label:`روشن`,description:`پسزمینه روشن و کنتراست بالا`,icon:`vuesax-linear:sun-1`},{value:`dark`,label:`تاریک`,description:`مناسب استفاده در شب`,icon:`vuesax-linear:moon`},{value:`system`,label:`سیستم`,description:`همتراز با تنظیمات دستگاه`,icon:`vuesax-linear:mobile`}],K=p(()=>V.draftChecks.length);function q(){U.value=!0,W()}function J(){B.logout(),m.replace(`/login`)}return(s,d)=>(r(),f(w,{title:`تنظیمات`,subtitle:`نمایش، حساب کاربری و خروج`},{default:h(()=>[e(`div`,T,[e(`nav`,E,[e(`button`,{type:`button`,class:`settings-link`,onClick:d[0]||=e=>v(m).push(`/profile/edit`)},[e(`span`,D,[i(_,{icon:`vuesax-linear:profile-circle`,size:20,"stroke-width":1.5})]),d[2]||=e(`span`,{class:`settings-link__label`},`اطلاعات کاربری`,-1),i(_,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})]),e(`button`,{type:`button`,class:`settings-link`,onClick:d[1]||=e=>v(m).push(`/profile/checks`)},[e(`span`,O,[i(_,{icon:`vuesax-linear:card`,size:20,"stroke-width":1.5})]),e(`span`,k,[d[3]||=n(` لیست چکها `,-1),K.value?(r(),o(`em`,A,`(`+l(K.value)+`)`,1)):a(``,!0)]),i(_,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})])]),e(`fieldset`,j,[d[4]||=e(`legend`,{class:`display-fieldset__legend`},`حالت نمایش`,-1),e(`div`,M,[(r(),o(t,null,u(G,t=>e(`button`,{key:t.value,type:`button`,class:c([`theme-card`,{"theme-card--active":v(H).preference===t.value}]),role:`radio`,"aria-checked":v(H).preference===t.value,onClick:e=>v(H).preference=t.value},[e(`span`,P,[i(_,{icon:t.icon,size:26,"stroke-width":1.5},null,8,[`icon`])]),e(`span`,F,[e(`strong`,I,l(t.label),1),e(`span`,L,l(t.description),1)]),e(`span`,R,[v(H).preference===t.value?(r(),f(_,{key:0,icon:`vuesax-linear:tick-circle`,size:20,"stroke-width":1.75})):a(``,!0)])],10,N)),64))])]),i(C,{block:``,onClick:q},{default:h(()=>[...d[5]||=[n(`ذخیره تنظیمات`,-1)]]),_:1}),U.value?(r(),o(`p`,z,`تنظیمات نمایش ذخیره شد ✓`)):a(``,!0),e(`button`,{type:`button`,class:`settings-logout`,onClick:J},`خروج`)])]),_:1}))}}),[[`__scopeId`,`data-v-3187a788`]]);export{B as default};
\ No newline at end of file
diff --git a/dist/assets/ProfileDisplayView-ufvTk2u8.js b/dist/assets/ProfileDisplayView-ufvTk2u8.js
new file mode 100644
index 0000000..3957077
--- /dev/null
+++ b/dist/assets/ProfileDisplayView-ufvTk2u8.js
@@ -0,0 +1 @@
+import{A as e,Ct as t,Et as n,L as r,M as i,N as a,O as o,P as s,R as c,St as l,Y as u,Z as d,_ as f,j as p,mt as m,n as h,rt as g,t as _,z as v}from"./BasicIcon-C6boaehV.js";import{u as y}from"./dist-CUUvbY4x.js";import{a as b,c as x,d as S,n as C}from"./index-spodxsRN.js";import{t as w}from"./ProfileSubpageLayout-PN2YWH-s.js";var T={class:`settings-page`},E={class:`settings-links`,"aria-label":`حساب کاربری`},D={class:`settings-link__icon`,"aria-hidden":`true`},O={class:`settings-link__icon`,"aria-hidden":`true`},k={class:`settings-link__label`},A={key:0},j={class:`display-fieldset`},M={class:`display-grid`,role:`radiogroup`,"aria-label":`حالت نمایش`},N=[`aria-checked`,`onClick`],P={class:`theme-card__icon`,"aria-hidden":`true`},F={class:`theme-card__body`},I={class:`theme-card__label`},L={class:`theme-card__desc`},R={class:`theme-card__check`,"aria-hidden":`true`},z={key:0,class:`display-saved`},B=h(v({__name:`ProfileDisplayView`,setup(h){let v=f(),B=x(),V=S(),H=b(),U=m(!1),{start:W}=y(()=>{U.value=!1},2e3),G=[{value:`light`,label:`روشن`,description:`پسزمینه روشن و کنتراست بالا`,icon:`vuesax-linear:sun-1`},{value:`dark`,label:`تاریک`,description:`مناسب استفاده در شب`,icon:`vuesax-linear:moon`},{value:`system`,label:`سیستم`,description:`همتراز با تنظیمات دستگاه`,icon:`vuesax-linear:mobile`}],K=e(()=>V.draftChecks.length);function q(){U.value=!0,W()}function J(){B.logout(),v.replace(`/welcome`)}return(e,f)=>(u(),i(w,{title:`تنظیمات`,subtitle:`نمایش، حساب کاربری و خروج`},{default:g(()=>[p(`div`,T,[p(`nav`,E,[p(`button`,{type:`button`,class:`settings-link`,onClick:f[0]||=e=>l(v).push(`/profile/edit`)},[p(`span`,D,[c(_,{icon:`vuesax-linear:profile-circle`,size:20,"stroke-width":1.5})]),f[2]||=p(`span`,{class:`settings-link__label`},`اطلاعات کاربری`,-1),c(_,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})]),p(`button`,{type:`button`,class:`settings-link`,onClick:f[1]||=e=>l(v).push(`/profile/checks`)},[p(`span`,O,[c(_,{icon:`vuesax-linear:card`,size:20,"stroke-width":1.5})]),p(`span`,k,[f[3]||=r(` لیست چکها `,-1),K.value?(u(),s(`em`,A,`(`+n(K.value)+`)`,1)):a(``,!0)]),c(_,{class:`settings-link__chevron`,icon:`vuesax-linear:arrow-left-1`,size:16,"stroke-width":1.5})])]),p(`fieldset`,j,[f[4]||=p(`legend`,{class:`display-fieldset__legend`},`حالت نمایش`,-1),p(`div`,M,[(u(),s(o,null,d(G,e=>p(`button`,{key:e.value,type:`button`,class:t([`theme-card`,{"theme-card--active":l(H).preference===e.value}]),role:`radio`,"aria-checked":l(H).preference===e.value,onClick:t=>l(H).preference=e.value},[p(`span`,P,[c(_,{icon:e.icon,size:26,"stroke-width":1.5},null,8,[`icon`])]),p(`span`,F,[p(`strong`,I,n(e.label),1),p(`span`,L,n(e.description),1)]),p(`span`,R,[l(H).preference===e.value?(u(),i(_,{key:0,icon:`vuesax-linear:tick-circle`,size:20,"stroke-width":1.75})):a(``,!0)])],10,N)),64))])]),c(C,{block:``,onClick:q},{default:g(()=>[...f[5]||=[r(`ذخیره تنظیمات`,-1)]]),_:1}),U.value?(u(),s(`p`,z,`تنظیمات نمایش ذخیره شد ✓`)):a(``,!0),p(`button`,{type:`button`,class:`settings-logout`,onClick:J},`خروج`)])]),_:1}))}}),[[`__scopeId`,`data-v-f16dc950`]]);export{B as default};
\ No newline at end of file
diff --git a/dist/assets/ProfileEditView-BXfhdkP1.js b/dist/assets/ProfileEditView-dnVuGX6w.js
similarity index 60%
rename from dist/assets/ProfileEditView-BXfhdkP1.js
rename to dist/assets/ProfileEditView-dnVuGX6w.js
index 93d44fa..b6a44d9 100644
--- a/dist/assets/ProfileEditView-BXfhdkP1.js
+++ b/dist/assets/ProfileEditView-dnVuGX6w.js
@@ -1 +1 @@
-import{A as e,I as t,J as n,L as r,M as i,N as a,R as o,Tt as s,j as c,k as l,n as u,nt as d,pt as f,t as p}from"./BasicIcon-B6lR-mG3.js";import{c as m,n as h,r as g}from"./index-B20WsQhf.js";import{t as _}from"./FormErrorBanner-8PcsTbdO.js";import{n as v,r as y,t as b}from"./formErrors-DglFjYkZ.js";import{t as x}from"./BaseInput-9HB-GJGt.js";import{t as S}from"./ProfileSubpageLayout-CHfCB62H.js";var C=512,w=.82;async function T(e){if(!e.type.startsWith(`image/`))throw Error(`فقط فایل تصویری مجاز است.`);if(e.size>8388608)throw Error(`حجم تصویر نباید بیشتر از ۸ مگابایت باشد.`);return D(await E(e))}function E(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(Error(`خواندن تصویر ناموفق بود.`)),r.readAsDataURL(e)})}function D(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{let e=Math.min(1,C/Math.max(r.width,r.height)),i=Math.max(1,Math.round(r.width*e)),a=Math.max(1,Math.round(r.height*e)),o=document.createElement(`canvas`);o.width=i,o.height=a;let s=o.getContext(`2d`);if(!s){n(Error(`پردازش تصویر ناموفق بود.`));return}s.drawImage(r,0,0,i,a),t(o.toDataURL(`image/jpeg`,w))},r.onerror=()=>n(Error(`تصویر نامعتبر است.`)),r.src=e})}var O={class:`profile-edit`},k={class:`avatar-editor`},A={class:`avatar-editor__actions`},j={class:`avatar-editor__btns`},M=[`disabled`],N=[`disabled`],P={class:`profile-edit__intro`},F={class:`profile-edit__intro-icon`,"aria-hidden":`true`},I={class:`profile-edit__grid`},L={class:`profile-edit__actions`},R={key:0,class:`profile-edit__saved`},z=u(o({__name:`ProfileEditView`,setup(o){let u=m(),C=f(u.user?.firstName??``),w=f(u.user?.lastName??``),E=f(u.user?.nationalId??``),D=f(u.user?.avatarUrl??null),z=f(null),B=f({}),V=f(``),H=f(!1),U=f(!1),W=l(()=>`${C.value.trim().charAt(0)}${w.value.trim().charAt(0)}`||`؟`);function G(e){B.value=v(B.value,e),y(B.value)||(V.value=``)}function K(){z.value?.click()}async function q(e){U.value=!0,V.value=``;try{let t=await u.updateProfile({avatarUrl:e??``});t?D.value=t.avatarUrl??null:D.value=e}catch(e){V.value=e instanceof Error?e.message:`ذخیره تصویر ناموفق بود.`}finally{U.value=!1}}async function J(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){U.value=!0,V.value=``;try{let e=await T(n);D.value=e,await q(e)}catch(e){V.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`,U.value=!1}}}async function Y(){D.value=null,await q(null)}async function X(){B.value={},V.value=``,H.value=!1;let e={};if(C.value.trim()||(e.firstName=`نام الزامی است.`),w.value.trim()||(e.lastName=`نام خانوادگی الزامی است.`),E.value&&E.value.length!==10&&(e.nationalId=`کد ملی باید ۱۰ رقم باشد.`),y(e)){B.value=e,V.value=b;return}if(!await u.updateProfile({firstName:C.value.trim(),lastName:w.value.trim(),nationalId:E.value||void 0,avatarUrl:D.value??``})){V.value=`ذخیره پروفایل ناموفق بود.`;return}H.value=!0,setTimeout(()=>{H.value=!1},2e3)}return(o,l)=>(n(),c(S,{title:`اطلاعات کاربری`,subtitle:`ویرایش تصویر، نام و کد ملی حساب کاربری`},{default:d(()=>[r(_,{message:V.value},null,8,[`message`]),e(`div`,O,[e(`div`,k,[r(g,{src:D.value,initials:W.value,size:96,class:`avatar-editor__photo`},null,8,[`src`,`initials`]),e(`div`,A,[l[6]||=e(`p`,{class:`avatar-editor__title`},`تصویر پروفایل`,-1),l[7]||=e(`p`,{class:`avatar-editor__hint`},`افزودن، تغییر یا حذف عکس نمایشدادهشده در پروفایل`,-1),e(`div`,j,[e(`button`,{type:`button`,class:`avatar-btn`,disabled:U.value,onClick:K},s(D.value?`تغییر تصویر`:`افزودن تصویر`),9,M),D.value?(n(),a(`button`,{key:0,type:`button`,class:`avatar-btn avatar-btn--danger`,disabled:U.value,onClick:Y},` حذف تصویر `,8,N)):i(``,!0)])]),e(`input`,{ref_key:`fileInput`,ref:z,type:`file`,accept:`image/*`,class:`avatar-editor__file`,onChange:J},null,544)]),e(`div`,P,[e(`span`,F,[r(p,{icon:`vuesax-linear:profile-circle`,size:22,"stroke-width":1.5})]),l[8]||=e(`div`,{class:`profile-edit__intro-text`},[e(`strong`,null,`مشخصات فردی`),e(`p`,null,`این اطلاعات روی سفارشها و چکهای ثبتشده نمایش داده میشود.`)],-1)]),e(`div`,I,[r(x,{modelValue:C.value,"onUpdate:modelValue":[l[0]||=e=>C.value=e,l[1]||=e=>G(`firstName`)],label:`نام`,error:B.value.firstName},null,8,[`modelValue`,`error`]),r(x,{modelValue:w.value,"onUpdate:modelValue":[l[2]||=e=>w.value=e,l[3]||=e=>G(`lastName`)],label:`نام خانوادگی`,error:B.value.lastName},null,8,[`modelValue`,`error`]),r(x,{modelValue:E.value,"onUpdate:modelValue":[l[4]||=e=>E.value=e,l[5]||=e=>G(`nationalId`)],class:`profile-edit__full`,label:`کد ملی`,maxlength:`10`,inputmode:`numeric`,dir:`ltr`,hint:`برای ثبت چک الزامی است`,error:B.value.nationalId},null,8,[`modelValue`,`error`])]),e(`div`,L,[r(h,{class:`profile-edit__save`,onClick:X},{default:d(()=>[...l[9]||=[t(`ذخیره تغییرات`,-1)]]),_:1}),H.value?(n(),a(`p`,R,`ذخیره شد ✓`)):i(``,!0)])])]),_:1}))}}),[[`__scopeId`,`data-v-bd0a4276`]]);export{z as default};
\ No newline at end of file
+import{A as e,Et as t,L as n,M as r,N as i,P as a,R as o,Y as s,j as c,mt as l,n as u,rt as d,t as f,z as p}from"./BasicIcon-C6boaehV.js";import{c as m,n as h,r as g}from"./index-spodxsRN.js";import{t as _}from"./FormErrorBanner-CjdBfIQT.js";import{n as v,r as y,t as b}from"./formErrors-DglFjYkZ.js";import{t as x}from"./BaseInput-qoEXOHCQ.js";import{t as S}from"./ProfileSubpageLayout-PN2YWH-s.js";var C=512,w=.82;async function T(e){if(!e.type.startsWith(`image/`))throw Error(`فقط فایل تصویری مجاز است.`);if(e.size>8388608)throw Error(`حجم تصویر نباید بیشتر از ۸ مگابایت باشد.`);return D(await E(e))}function E(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(Error(`خواندن تصویر ناموفق بود.`)),r.readAsDataURL(e)})}function D(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{let e=Math.min(1,C/Math.max(r.width,r.height)),i=Math.max(1,Math.round(r.width*e)),a=Math.max(1,Math.round(r.height*e)),o=document.createElement(`canvas`);o.width=i,o.height=a;let s=o.getContext(`2d`);if(!s){n(Error(`پردازش تصویر ناموفق بود.`));return}s.drawImage(r,0,0,i,a),t(o.toDataURL(`image/jpeg`,w))},r.onerror=()=>n(Error(`تصویر نامعتبر است.`)),r.src=e})}var O={class:`profile-edit`},k={class:`avatar-editor`},A={class:`avatar-editor__actions`},j={class:`avatar-editor__btns`},M=[`disabled`],N=[`disabled`],P={class:`profile-edit__intro`},F={class:`profile-edit__intro-icon`,"aria-hidden":`true`},I={class:`profile-edit__grid`},L={class:`profile-edit__actions`},R={key:0,class:`profile-edit__saved`},z=u(p({__name:`ProfileEditView`,setup(u){let p=m(),C=l(p.user?.firstName??``),w=l(p.user?.lastName??``),E=l(p.user?.nationalId??``),D=l(p.user?.avatarUrl??null),z=l(null),B=l({}),V=l(``),H=l(!1),U=l(!1),W=e(()=>`${C.value.trim().charAt(0)}${w.value.trim().charAt(0)}`||`؟`);function G(e){B.value=v(B.value,e),y(B.value)||(V.value=``)}function K(){z.value?.click()}async function q(e){U.value=!0,V.value=``;try{let t=await p.updateProfile({avatarUrl:e??``});t?D.value=t.avatarUrl??null:D.value=e}catch(e){V.value=e instanceof Error?e.message:`ذخیره تصویر ناموفق بود.`}finally{U.value=!1}}async function J(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){U.value=!0,V.value=``;try{let e=await T(n);D.value=e,await q(e)}catch(e){V.value=e instanceof Error?e.message:`بارگذاری تصویر ناموفق بود.`,U.value=!1}}}async function Y(){D.value=null,await q(null)}async function X(){B.value={},V.value=``,H.value=!1;let e={};if(C.value.trim()||(e.firstName=`نام الزامی است.`),w.value.trim()||(e.lastName=`نام خانوادگی الزامی است.`),E.value&&E.value.length!==10&&(e.nationalId=`کد ملی باید ۱۰ رقم باشد.`),y(e)){B.value=e,V.value=b;return}if(!await p.updateProfile({firstName:C.value.trim(),lastName:w.value.trim(),nationalId:E.value||void 0,avatarUrl:D.value??``})){V.value=`ذخیره پروفایل ناموفق بود.`;return}H.value=!0,setTimeout(()=>{H.value=!1},2e3)}return(e,l)=>(s(),r(S,{title:`اطلاعات کاربری`,subtitle:`ویرایش تصویر، نام و کد ملی حساب کاربری`},{default:d(()=>[o(_,{message:V.value},null,8,[`message`]),c(`div`,O,[c(`div`,k,[o(g,{src:D.value,initials:W.value,size:96,class:`avatar-editor__photo`},null,8,[`src`,`initials`]),c(`div`,A,[l[6]||=c(`p`,{class:`avatar-editor__title`},`تصویر پروفایل`,-1),l[7]||=c(`p`,{class:`avatar-editor__hint`},`افزودن، تغییر یا حذف عکس نمایشدادهشده در پروفایل`,-1),c(`div`,j,[c(`button`,{type:`button`,class:`avatar-btn`,disabled:U.value,onClick:K},t(D.value?`تغییر تصویر`:`افزودن تصویر`),9,M),D.value?(s(),a(`button`,{key:0,type:`button`,class:`avatar-btn avatar-btn--danger`,disabled:U.value,onClick:Y},` حذف تصویر `,8,N)):i(``,!0)])]),c(`input`,{ref_key:`fileInput`,ref:z,type:`file`,accept:`image/*`,class:`avatar-editor__file`,onChange:J},null,544)]),c(`div`,P,[c(`span`,F,[o(f,{icon:`vuesax-linear:profile-circle`,size:22,"stroke-width":1.5})]),l[8]||=c(`div`,{class:`profile-edit__intro-text`},[c(`strong`,null,`مشخصات فردی`),c(`p`,null,`این اطلاعات روی سفارشها و چکهای ثبتشده نمایش داده میشود.`)],-1)]),c(`div`,I,[o(x,{modelValue:C.value,"onUpdate:modelValue":[l[0]||=e=>C.value=e,l[1]||=e=>G(`firstName`)],label:`نام`,error:B.value.firstName},null,8,[`modelValue`,`error`]),o(x,{modelValue:w.value,"onUpdate:modelValue":[l[2]||=e=>w.value=e,l[3]||=e=>G(`lastName`)],label:`نام خانوادگی`,error:B.value.lastName},null,8,[`modelValue`,`error`]),o(x,{modelValue:E.value,"onUpdate:modelValue":[l[4]||=e=>E.value=e,l[5]||=e=>G(`nationalId`)],class:`profile-edit__full`,label:`کد ملی`,maxlength:`10`,inputmode:`numeric`,dir:`ltr`,hint:`برای ثبت چک الزامی است`,error:B.value.nationalId},null,8,[`modelValue`,`error`])]),c(`div`,L,[o(h,{class:`profile-edit__save`,onClick:X},{default:d(()=>[...l[9]||=[n(`ذخیره تغییرات`,-1)]]),_:1}),H.value?(s(),a(`p`,R,`ذخیره شد ✓`)):i(``,!0)])])]),_:1}))}}),[[`__scopeId`,`data-v-bd0a4276`]]);export{z as default};
\ No newline at end of file
diff --git a/dist/assets/ProfileNotificationsView-BDtqUYZj.js b/dist/assets/ProfileNotificationsView-BDtqUYZj.js
new file mode 100644
index 0000000..4828f27
--- /dev/null
+++ b/dist/assets/ProfileNotificationsView-BDtqUYZj.js
@@ -0,0 +1 @@
+import{A as e,Ct as t,Et as n,L as r,M as i,N as a,O as o,P as s,R as c,St as l,Y as u,Z as d,_ as f,j as p,n as m,q as h,rt as g,t as _,z as v}from"./BasicIcon-C6boaehV.js";import{i as y}from"./format-BHJptHdF.js";import{n as b,u as x}from"./index-spodxsRN.js";import{t as S}from"./EmptyState-C_QQeA_h.js";import{t as C}from"./ProfileSubpageLayout-PN2YWH-s.js";var w={key:0,class:`notif-box`},T={class:`notif-box__head`},E={class:`notif-box__count`},D=[`onClick`],O={class:`notif-row__icon`,"aria-hidden":`true`},k={class:`notif-row__body`},A={class:`notif-row__title-row`},j={class:`notif-row__title`},M={key:0,class:`notif-row__dot`,"aria-label":`خواندهنشده`},N={class:`notif-row__text`},P={class:`notif-row__time`},F=m(v({__name:`ProfileNotificationsView`,setup(m){let v=f(),F=x(),I=e(()=>F.items),L=e(()=>F.hasUnread),R={info:`vuesax-linear:information`,success:`vuesax-linear:tick-circle`,warning:`vuesax-linear:timer`,danger:`vuesax-linear:close-circle`};h(()=>{F.hydrate()});async function z(e){await F.markRead(e.id),e.link&&v.push(e.link)}return(e,f)=>(u(),i(C,{title:`اعلانها`,subtitle:`آخرین خبرهای سفارشهای شما`},{default:g(()=>[I.value.length?(u(),s(`div`,w,[p(`div`,T,[p(`span`,E,n(L.value?`${l(F).unreadCount} اعلان خواندهنشده`:`همه خوانده شده`),1),L.value?(u(),i(b,{key:0,variant:`outline`,class:`notif-box__mark`,onClick:f[0]||=e=>l(F).markAllRead()},{default:g(()=>[...f[2]||=[r(` خواندن همه `,-1)]]),_:1})):a(``,!0)]),(u(!0),s(o,null,d(I.value,e=>(u(),s(`button`,{key:e.id,type:`button`,class:t([`notif-row`,[`notif-row--${e.tone}`,{"notif-row--unread":!e.isRead}]]),onClick:t=>z(e)},[p(`span`,O,[c(_,{icon:R[e.tone],size:22,"stroke-width":1.5},null,8,[`icon`])]),p(`span`,k,[p(`span`,A,[p(`strong`,j,n(e.title),1),e.isRead?a(``,!0):(u(),s(`span`,M))]),p(`span`,N,n(e.body),1),p(`span`,P,n(l(y)(e.sentAt)),1)])],10,D))),128))])):(u(),i(S,{key:1,icon:`vuesax-linear:notification-bing`,title:`اعلانی ندارید`,message:`وقتی فاکتور سفارشتان صادر شود یا وضعیت چک و پرداخت تغییر کند، همینجا خبردار میشوید.`},{default:g(()=>[c(b,{variant:`outline`,onClick:f[1]||=e=>l(v).push(`/orders`)},{default:g(()=>[...f[3]||=[r(`سفارشهای من`,-1)]]),_:1})]),_:1}))]),_:1}))}}),[[`__scopeId`,`data-v-57190756`]]);export{F as default};
\ No newline at end of file
diff --git a/dist/assets/ProfileNotificationsView-BkDZ6lIH.js b/dist/assets/ProfileNotificationsView-BkDZ6lIH.js
deleted file mode 100644
index ad30946..0000000
--- a/dist/assets/ProfileNotificationsView-BkDZ6lIH.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,D as t,I as n,J as r,K as i,L as a,M as o,N as s,R as c,St as l,Tt as u,X as d,_ as f,j as p,k as m,n as h,nt as g,t as _,xt as v}from"./BasicIcon-B6lR-mG3.js";import{i as y}from"./format-BHJptHdF.js";import{n as b,u as x}from"./index-B20WsQhf.js";import{t as S}from"./EmptyState-C6UAJ5_3.js";import{t as C}from"./ProfileSubpageLayout-CHfCB62H.js";var w={key:0,class:`notif-box`},T={class:`notif-box__head`},E={class:`notif-box__count`},D=[`onClick`],O={class:`notif-row__icon`,"aria-hidden":`true`},k={class:`notif-row__body`},A={class:`notif-row__title-row`},j={class:`notif-row__title`},M={key:0,class:`notif-row__dot`,"aria-label":`خواندهنشده`},N={class:`notif-row__text`},P={class:`notif-row__time`},F=h(c({__name:`ProfileNotificationsView`,setup(c){let h=f(),F=x(),I=m(()=>F.items),L=m(()=>F.hasUnread),R={info:`vuesax-linear:information`,success:`vuesax-linear:tick-circle`,warning:`vuesax-linear:timer`,danger:`vuesax-linear:close-circle`};i(()=>{F.hydrate()});async function z(e){await F.markRead(e.id),e.link&&h.push(e.link)}return(i,c)=>(r(),p(C,{title:`اعلانها`,subtitle:`آخرین خبرهای سفارشهای شما`},{default:g(()=>[I.value.length?(r(),s(`div`,w,[e(`div`,T,[e(`span`,E,u(L.value?`${v(F).unreadCount} اعلان خواندهنشده`:`همه خوانده شده`),1),L.value?(r(),p(b,{key:0,variant:`outline`,class:`notif-box__mark`,onClick:c[0]||=e=>v(F).markAllRead()},{default:g(()=>[...c[2]||=[n(` خواندن همه `,-1)]]),_:1})):o(``,!0)]),(r(!0),s(t,null,d(I.value,t=>(r(),s(`button`,{key:t.id,type:`button`,class:l([`notif-row`,[`notif-row--${t.tone}`,{"notif-row--unread":!t.isRead}]]),onClick:e=>z(t)},[e(`span`,O,[a(_,{icon:R[t.tone],size:22,"stroke-width":1.5},null,8,[`icon`])]),e(`span`,k,[e(`span`,A,[e(`strong`,j,u(t.title),1),t.isRead?o(``,!0):(r(),s(`span`,M))]),e(`span`,N,u(t.body),1),e(`span`,P,u(v(y)(t.sentAt)),1)])],10,D))),128))])):(r(),p(S,{key:1,icon:`vuesax-linear:notification-bing`,title:`اعلانی ندارید`,message:`وقتی فاکتور سفارشتان صادر شود یا وضعیت چک و پرداخت تغییر کند، همینجا خبردار میشوید.`},{default:g(()=>[a(b,{variant:`outline`,onClick:c[1]||=e=>v(h).push(`/orders`)},{default:g(()=>[...c[3]||=[n(`سفارشهای من`,-1)]]),_:1})]),_:1}))]),_:1}))}}),[[`__scopeId`,`data-v-57190756`]]);export{F as default};
\ No newline at end of file
diff --git a/dist/assets/ProfileSecurityView-BtqgdXRj.js b/dist/assets/ProfileSecurityView-BtqgdXRj.js
deleted file mode 100644
index 2615925..0000000
--- a/dist/assets/ProfileSecurityView-BtqgdXRj.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,I as t,J as n,L as r,M as i,N as a,R as o,j as s,n as c,nt as l,pt as u}from"./BasicIcon-B6lR-mG3.js";import{n as d}from"./index-B20WsQhf.js";import{t as f}from"./FormErrorBanner-8PcsTbdO.js";import{n as p,r as m,t as h}from"./formErrors-DglFjYkZ.js";import{t as g}from"./BaseInput-9HB-GJGt.js";import{t as _}from"./ProfileSubpageLayout-CHfCB62H.js";var v={class:`settings-form`},y={key:0,class:`settings-form__saved`},b=c(o({__name:`ProfileSecurityView`,setup(o){let c=u(``),b=u(``),x=u(``),S=u({}),C=u(``),w=u(!1);function T(e){S.value=p(S.value,e),m(S.value)||(C.value=``)}function E(){S.value={},C.value=``,w.value=!1;let e={};if(c.value||(e.currentPassword=`رمز فعلی الزامی است.`),b.value.length<6&&(e.newPassword=`رمز جدید باید حداقل ۶ کاراکتر باشد.`),x.value!==b.value&&(e.confirmPassword=`تکرار رمز با رمز جدید یکسان نیست.`),m(e)){S.value=e,C.value=h;return}c.value=``,b.value=``,x.value=``,w.value=!0,setTimeout(()=>{w.value=!1},2e3)}return(o,u)=>(n(),s(_,{title:`امنیت حساب`,subtitle:`تغییر رمز عبور و تنظیمات ورود`},{default:l(()=>[r(f,{message:C.value},null,8,[`message`]),e(`div`,v,[r(g,{modelValue:c.value,"onUpdate:modelValue":[u[0]||=e=>c.value=e,u[1]||=e=>T(`currentPassword`)],type:`password`,label:`رمز عبور فعلی`,error:S.value.currentPassword},null,8,[`modelValue`,`error`]),r(g,{modelValue:b.value,"onUpdate:modelValue":[u[2]||=e=>b.value=e,u[3]||=e=>T(`newPassword`)],type:`password`,label:`رمز عبور جدید`,error:S.value.newPassword},null,8,[`modelValue`,`error`]),r(g,{modelValue:x.value,"onUpdate:modelValue":[u[4]||=e=>x.value=e,u[5]||=e=>T(`confirmPassword`)],type:`password`,label:`تکرار رمز عبور جدید`,error:S.value.confirmPassword},null,8,[`modelValue`,`error`]),r(d,{block:``,onClick:E},{default:l(()=>[...u[6]||=[t(`ذخیره رمز جدید`,-1)]]),_:1}),w.value?(n(),a(`p`,y,`رمز عبور با موفقیت تغییر کرد ✓`)):i(``,!0)])]),_:1}))}}),[[`__scopeId`,`data-v-074827a2`]]);export{b as default};
\ No newline at end of file
diff --git a/dist/assets/ProfileSecurityView-KJcwzopX.js b/dist/assets/ProfileSecurityView-KJcwzopX.js
new file mode 100644
index 0000000..ba16a4e
--- /dev/null
+++ b/dist/assets/ProfileSecurityView-KJcwzopX.js
@@ -0,0 +1 @@
+import{L as e,M as t,N as n,P as r,R as i,Y as a,j as o,mt as s,n as c,rt as l,z as u}from"./BasicIcon-C6boaehV.js";import{n as d}from"./index-spodxsRN.js";import{t as f}from"./FormErrorBanner-CjdBfIQT.js";import{n as p,r as m,t as h}from"./formErrors-DglFjYkZ.js";import{t as g}from"./BaseInput-qoEXOHCQ.js";import{t as _}from"./ProfileSubpageLayout-PN2YWH-s.js";var v={class:`settings-form`},y={key:0,class:`settings-form__saved`},b=c(u({__name:`ProfileSecurityView`,setup(c){let u=s(``),b=s(``),x=s(``),S=s({}),C=s(``),w=s(!1);function T(e){S.value=p(S.value,e),m(S.value)||(C.value=``)}function E(){S.value={},C.value=``,w.value=!1;let e={};if(u.value||(e.currentPassword=`رمز فعلی الزامی است.`),b.value.length<6&&(e.newPassword=`رمز جدید باید حداقل ۶ کاراکتر باشد.`),x.value!==b.value&&(e.confirmPassword=`تکرار رمز با رمز جدید یکسان نیست.`),m(e)){S.value=e,C.value=h;return}u.value=``,b.value=``,x.value=``,w.value=!0,setTimeout(()=>{w.value=!1},2e3)}return(s,c)=>(a(),t(_,{title:`امنیت حساب`,subtitle:`تغییر رمز عبور و تنظیمات ورود`},{default:l(()=>[i(f,{message:C.value},null,8,[`message`]),o(`div`,v,[i(g,{modelValue:u.value,"onUpdate:modelValue":[c[0]||=e=>u.value=e,c[1]||=e=>T(`currentPassword`)],type:`password`,label:`رمز عبور فعلی`,error:S.value.currentPassword},null,8,[`modelValue`,`error`]),i(g,{modelValue:b.value,"onUpdate:modelValue":[c[2]||=e=>b.value=e,c[3]||=e=>T(`newPassword`)],type:`password`,label:`رمز عبور جدید`,error:S.value.newPassword},null,8,[`modelValue`,`error`]),i(g,{modelValue:x.value,"onUpdate:modelValue":[c[4]||=e=>x.value=e,c[5]||=e=>T(`confirmPassword`)],type:`password`,label:`تکرار رمز عبور جدید`,error:S.value.confirmPassword},null,8,[`modelValue`,`error`]),i(d,{block:``,onClick:E},{default:l(()=>[...c[6]||=[e(`ذخیره رمز جدید`,-1)]]),_:1}),w.value?(a(),r(`p`,y,`رمز عبور با موفقیت تغییر کرد ✓`)):n(``,!0)])]),_:1}))}}),[[`__scopeId`,`data-v-074827a2`]]);export{b as default};
\ No newline at end of file
diff --git a/dist/assets/ProfileSubpageLayout-CHfCB62H.js b/dist/assets/ProfileSubpageLayout-CHfCB62H.js
deleted file mode 100644
index 30d2b94..0000000
--- a/dist/assets/ProfileSubpageLayout-CHfCB62H.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,D as t,I as n,J as r,L as i,M as a,N as o,R as s,Tt as c,Z as l,_ as u,n as d}from"./BasicIcon-B6lR-mG3.js";import{t as f}from"./IconChevronBack-BXRfc2bX.js";var p={class:`page profile-subpage mobile-only`},m={class:`page__scroll page__scroll--with-nav`},h={class:`profile-subpage__card card`},g={class:`profile-subpage__nav`},_={class:`profile-subpage__title`},v={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},y={class:`desktop-page profile-subpage-desktop desktop-only`},b={class:`desktop-page__head profile-subpage-desktop__head`},x={class:`desktop-page__title`},S={key:0,class:`desktop-page__subtitle`},C={class:`profile-subpage-desktop__panel card`},w=d(s({__name:`ProfileSubpageLayout`,props:{title:{},subtitle:{}},setup(s){let d=u();function w(){d.push(`/profile`)}return(u,d)=>(r(),o(t,null,[e(`div`,p,[e(`div`,m,[e(`div`,h,[e(`header`,g,[e(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:w},[i(f,{size:20})]),e(`h1`,_,c(s.title),1),e(`button`,v,[i(f,{size:18,class:`nav-btn__flip`})])]),l(u.$slots,`default`,{},void 0,!0)])])]),e(`div`,y,[e(`header`,b,[e(`button`,{type:`button`,class:`profile-subpage-desktop__back`,onClick:w},[i(f,{size:18}),d[0]||=n(` بازگشت به پروفایل `,-1)]),e(`h1`,x,c(s.title),1),s.subtitle?(r(),o(`p`,S,c(s.subtitle),1)):a(``,!0)]),e(`section`,C,[l(u.$slots,`default`,{},void 0,!0)])])],64))}}),[[`__scopeId`,`data-v-8d824229`]]);export{w as t};
\ No newline at end of file
diff --git a/dist/assets/ProfileSubpageLayout-PN2YWH-s.js b/dist/assets/ProfileSubpageLayout-PN2YWH-s.js
new file mode 100644
index 0000000..1214973
--- /dev/null
+++ b/dist/assets/ProfileSubpageLayout-PN2YWH-s.js
@@ -0,0 +1 @@
+import{Et as e,L as t,N as n,O as r,P as i,Q as a,R as o,Y as s,_ as c,j as l,n as u,z as d}from"./BasicIcon-C6boaehV.js";import{t as f}from"./IconChevronBack-DORV2H0q.js";var p={class:`page profile-subpage mobile-only`},m={class:`page__scroll page__scroll--with-nav`},h={class:`profile-subpage__card card`},g={class:`profile-subpage__nav`},_={class:`profile-subpage__title`},v={type:`button`,class:`nav-btn nav-btn--ghost`,"aria-hidden":`true`,tabindex:`-1`},y={class:`desktop-page profile-subpage-desktop desktop-only`},b={class:`desktop-page__head profile-subpage-desktop__head`},x={class:`desktop-page__title`},S={key:0,class:`desktop-page__subtitle`},C={class:`profile-subpage-desktop__panel card`},w=u(d({__name:`ProfileSubpageLayout`,props:{title:{},subtitle:{}},setup(u){let d=c();function w(){d.push(`/profile`)}return(c,d)=>(s(),i(r,null,[l(`div`,p,[l(`div`,m,[l(`div`,h,[l(`header`,g,[l(`button`,{type:`button`,class:`nav-btn`,"aria-label":`بازگشت`,onClick:w},[o(f,{size:20})]),l(`h1`,_,e(u.title),1),l(`button`,v,[o(f,{size:18,class:`nav-btn__flip`})])]),a(c.$slots,`default`,{},void 0,!0)])])]),l(`div`,y,[l(`header`,b,[l(`button`,{type:`button`,class:`profile-subpage-desktop__back`,onClick:w},[o(f,{size:18}),d[0]||=t(` بازگشت به پروفایل `,-1)]),l(`h1`,x,e(u.title),1),u.subtitle?(s(),i(`p`,S,e(u.subtitle),1)):n(``,!0)]),l(`section`,C,[a(c.$slots,`default`,{},void 0,!0)])])],64))}}),[[`__scopeId`,`data-v-8d824229`]]);export{w as t};
\ No newline at end of file
diff --git a/dist/assets/ProfileView-CGJWbbk9.css b/dist/assets/ProfileView-CGJWbbk9.css
deleted file mode 100644
index 2bc81aa..0000000
--- a/dist/assets/ProfileView-CGJWbbk9.css
+++ /dev/null
@@ -1 +0,0 @@
-.profile-page[data-v-947f93d3]{background:var(--color-primary)}.hero[data-v-947f93d3]{color:#fff;text-align:center;background:linear-gradient(145deg, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 78%, #0a1f18) 100%);padding:0 0 28px}.hero__pin[data-v-947f93d3]{z-index:3;padding:12px var(--page-padding) 10px;background:linear-gradient(145deg, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 78%, #0a1f18) 100%);position:sticky;top:0}.hero__top[data-v-947f93d3]{grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:12px;display:grid}.hero__top h1[data-v-947f93d3]{margin:0;font-size:1rem;font-weight:700}.icon-btn[data-v-947f93d3]{cursor:pointer;color:#fff;background:0 0;border:none;place-items:center;width:40px;height:40px;display:grid;position:relative}.icon-btn__badge[data-v-947f93d3]{top:4px;color:#fff;text-align:center;background:#f59e0b;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-size:.625rem;font-weight:700;line-height:16px;position:absolute;inset-inline-start:4px}.hero__avatar[data-v-947f93d3]{color:#fff;border:3px solid #ffffff59;margin:0 auto}.hero__meta[data-v-947f93d3]{padding:10px var(--page-padding) 0}.hero h2[data-v-947f93d3]{margin:0;font-size:1.2rem;font-weight:700}.hero p[data-v-947f93d3]{opacity:.88;margin:6px 0 12px;font-size:.85rem}.level-pill[data-v-947f93d3]{border:1px solid var(--color-level-gold);background:color-mix(in srgb, var(--color-level-gold) 16%, transparent);color:#fff;border-radius:999px;align-items:center;gap:6px;padding:5px 14px;font-size:.8125rem;display:inline-flex}.level-pill__crown[data-v-947f93d3]{width:14px;height:14px;color:var(--color-level-gold)}.profile-scroll[data-v-947f93d3]{background:0 0;flex:1;min-height:0;padding:0}.profile-sheet[data-v-947f93d3]{z-index:1;padding:20px var(--page-padding) 24px;background:var(--color-bg);border-radius:24px 24px 0 0;flex-direction:column;gap:18px;margin-top:-20px;display:flex;position:relative;box-shadow:0 -4px 16px #0000000f}.profile-sheet[data-v-947f93d3]>*{flex-shrink:0}.panel__head[data-v-947f93d3],.section-head[data-v-947f93d3]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel__head h3[data-v-947f93d3],.section-head h3[data-v-947f93d3],.section-title[data-v-947f93d3]{color:var(--color-text);margin:0;font-size:.95rem;font-weight:700}.section-title[data-v-947f93d3]{margin-bottom:12px}.panel__period[data-v-947f93d3]{color:var(--color-text-muted);align-items:center;gap:2px;font-size:.8rem;display:inline-flex}.link[data-v-947f93d3]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.8rem;font-weight:600}.stats[data-v-947f93d3]{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat-card[data-v-947f93d3]{background:var(--color-surface);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);border-radius:14px;flex-direction:row;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.stat-card__text[data-v-947f93d3]{text-align:start;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.stat-card__icon[data-v-947f93d3]{border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.stat-card__icon--orders[data-v-947f93d3],.stat-card__icon--customers[data-v-947f93d3]{background:color-mix(in srgb, var(--color-success) 14%, transparent);color:var(--color-success)}.stat-card__icon--profit[data-v-947f93d3]{background:color-mix(in srgb, var(--color-info) 14%, transparent);color:var(--color-info)}.stat-card__icon--sales[data-v-947f93d3]{background:color-mix(in srgb, var(--color-level-gold) 22%, transparent);color:#b8860b}.stat-card__label[data-v-947f93d3]{color:var(--color-text-muted);font-size:.75rem}.stat-card__value[data-v-947f93d3]{color:var(--color-text);font-size:1.05rem;font-weight:700;line-height:1.3}.stat-card__hint[data-v-947f93d3]{color:var(--color-text-muted);font-size:.7rem;font-style:normal}.loyalty[data-v-947f93d3]{background:var(--color-primary-soft);border-radius:14px;padding:14px}.loyalty__row[data-v-947f93d3]{align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.loyalty__crown[data-v-947f93d3]{flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.loyalty__text[data-v-947f93d3]{color:var(--color-text);text-align:start;margin:0;font-size:.8125rem;line-height:1.75}.loyalty__bar[data-v-947f93d3]{background:rgba(var(--color-primary-rgb), .15);border-radius:999px;height:8px;overflow:hidden}.loyalty__bar span[data-v-947f93d3]{background:var(--color-primary);border-radius:inherit;height:100%;display:block}.quick-grid[data-v-947f93d3]{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.quick-item[data-v-947f93d3]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:8px;min-height:88px;padding:14px 8px 12px;font-family:inherit;font-size:.72rem;line-height:1.4;display:flex}.quick-item__icon[data-v-947f93d3]{width:40px;height:40px;color:var(--color-primary);place-items:center;display:grid}.orders-box[data-v-947f93d3]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;flex-shrink:0;padding:4px 0 0;overflow:hidden}.orders-box .section-head[data-v-947f93d3]{margin:0;padding:12px 14px 10px}.order-row[data-v-947f93d3]{border:none;border-top:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:0;grid-template-columns:1fr auto 16px;align-items:center;gap:8px;margin:0;padding:12px 14px;display:grid}.orders-all[data-v-947f93d3]{border:none;border-top:1px solid var(--color-border);width:100%;color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border-radius:0;margin:0;padding:12px 14px;font-size:.875rem;font-weight:600}.order-row__meta[data-v-947f93d3]{text-align:start;min-width:0}.order-row__date[data-v-947f93d3]{color:var(--color-text-muted);margin-bottom:2px;font-size:.75rem;display:block}.order-row__title[data-v-947f93d3]{font-size:.875rem;display:block}.order-row__customer[data-v-947f93d3]{color:var(--color-text-muted);margin:2px 0 0;font-size:.75rem}.order-row__chevron[data-v-947f93d3]{color:var(--color-text-muted)}.tone[data-v-947f93d3]{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:.7rem}.tone--warning[data-v-947f93d3]{background:var(--color-warning-light);color:#b45309}.tone--success[data-v-947f93d3]{background:var(--color-success-light);color:var(--color-success)}.tone--info[data-v-947f93d3]{background:var(--color-info-light);color:var(--color-info)}.tone--danger[data-v-947f93d3]{background:var(--color-danger-light);color:var(--color-danger)}.price-section[data-v-947f93d3]{flex-shrink:0}.price-section .section-title[data-v-947f93d3]{margin-bottom:10px}.price-card[data-v-947f93d3]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;overflow:hidden}.price-card__body[data-v-947f93d3]{grid-template-columns:1fr 88px;align-items:start;gap:12px;padding:12px;display:grid}.price-card__image[data-v-947f93d3]{background:linear-gradient(145deg, var(--color-primary), var(--color-primary-dark));background-position:50%;background-size:cover;border-radius:12px;min-height:88px}.price-card__info[data-v-947f93d3]{text-align:start}.price-card__info strong[data-v-947f93d3]{margin-bottom:4px;font-size:.9rem;display:block}.price-card__info p[data-v-947f93d3]{color:var(--color-text-muted);margin:2px 0 0;font-size:.75rem}.price-card footer[data-v-947f93d3]{border-top:1px solid var(--color-border);background:var(--color-elevated);text-align:start;padding:10px 12px;font-size:.8rem;font-weight:600}.desktop-profile[data-v-0481e66d]{width:100%;padding-bottom:32px}.desktop-profile__head[data-v-0481e66d]{margin-bottom:20px}.desktop-profile__title[data-v-0481e66d]{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.desktop-profile__subtitle[data-v-0481e66d]{color:var(--color-text-muted);margin:0;font-size:.875rem}.profile-overview[data-v-0481e66d]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);direction:rtl;align-items:stretch;gap:0;margin-bottom:16px;padding:22px 24px;display:flex}.profile-overview__identity[data-v-0481e66d]{border-inline-end:1px solid var(--color-border);flex:1.1;align-items:flex-start;gap:18px;padding-inline-end:24px;display:flex}.profile-overview__aside[data-v-0481e66d]{flex-direction:column;flex-shrink:0;align-items:center;gap:12px;display:flex}.profile-overview__avatar[data-v-0481e66d]{background:var(--color-primary);color:var(--color-surface)}.profile-overview__edit[data-v-0481e66d]{border:1px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-surface);min-width:132px;color:var(--color-primary);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-family:inherit;font-size:.8125rem;font-weight:600;transition:background .15s;display:inline-flex}.profile-overview__edit[data-v-0481e66d]:hover{background:var(--color-primary-soft)}.profile-overview__details[data-v-0481e66d]{flex:1;min-width:0;padding-top:6px}.profile-overview__name-row[data-v-0481e66d]{align-items:center;gap:8px;margin-bottom:12px;display:flex}.profile-overview__name[data-v-0481e66d]{color:var(--color-text);margin:0;font-size:1.0625rem;font-weight:700}.profile-overview__verified[data-v-0481e66d]{color:var(--color-success);flex-shrink:0;display:flex}.profile-overview__meta[data-v-0481e66d]{color:var(--color-text-muted);align-items:center;gap:8px;margin:0 0 8px;font-size:.8125rem;display:flex}.profile-overview__meta-icon[data-v-0481e66d]{color:var(--color-text-muted);flex-shrink:0}.profile-overview__meta-label[data-v-0481e66d]{color:var(--color-text);font-weight:600}.profile-overview__stats[data-v-0481e66d]{direction:ltr;flex:1;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;display:grid}.profile-stat[data-v-0481e66d]{text-align:center;border-inline-start:1px solid var(--color-border);direction:rtl;flex-direction:column;justify-content:center;align-items:center;padding:12px 14px;display:flex}.profile-stat[data-v-0481e66d]:first-child{border-inline-start:none}.profile-stat__icon[data-v-0481e66d]{border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;margin-bottom:10px;display:flex}.profile-stat__icon--blue[data-v-0481e66d]{background:var(--color-primary-soft);color:var(--color-primary)}.profile-stat__icon--green[data-v-0481e66d]{background:var(--color-success-soft);color:var(--color-success)}.profile-stat__icon--amber[data-v-0481e66d]{background:var(--color-warning-light);color:var(--color-warning)}.profile-stat__value[data-v-0481e66d]{color:var(--color-text);font-variant-numeric:tabular-nums;margin-bottom:4px;font-size:1.375rem;font-weight:700;line-height:1.2}.profile-stat__value--sm[data-v-0481e66d]{font-size:.875rem;line-height:1.45}.profile-stat__label[data-v-0481e66d]{color:var(--color-text-muted);margin-bottom:8px;font-size:.75rem}.profile-stat__link[data-v-0481e66d]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:.75rem;font-weight:600}.profile-stat__link[data-v-0481e66d]:hover{text-underline-offset:2px;text-decoration:underline}.desktop-profile__grid[data-v-0481e66d]{direction:ltr;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:16px;display:grid}.profile-panel[data-v-0481e66d]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);direction:rtl;padding:18px 18px 16px}.profile-panel__title[data-v-0481e66d]{border-bottom:1px solid var(--color-border);color:var(--color-text);align-items:center;gap:8px;margin:0 0 14px;padding-bottom:12px;font-size:.9375rem;font-weight:700;display:flex}.profile-panel__title svg[data-v-0481e66d]{color:var(--color-primary);flex-shrink:0}.profile-info-list[data-v-0481e66d]{margin:0}.profile-info-list__row[data-v-0481e66d]{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:11px 0;font-size:.8125rem;display:flex}.profile-info-list__row[data-v-0481e66d]:last-child{border-bottom:none}.profile-info-list__row dt[data-v-0481e66d]{color:var(--color-text-muted);font-weight:500}.profile-info-list__row dd[data-v-0481e66d]{color:var(--color-text);text-align:left;margin:0;font-weight:600}.profile-badge[data-v-0481e66d]{background:var(--color-success-soft);color:var(--color-success);border-radius:999px;padding:4px 12px;font-size:.75rem;font-weight:600;display:inline-block}.profile-quick-grid[data-v-0481e66d]{direction:ltr;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.profile-quick-grid__item[data-v-0481e66d]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-elevated);cursor:pointer;direction:rtl;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:108px;padding:16px 10px;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.profile-quick-grid__item[data-v-0481e66d]:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.profile-quick-grid__icon[data-v-0481e66d]{background:var(--color-surface);width:42px;height:42px;color:var(--color-primary);box-shadow:var(--shadow-sm);border-radius:12px;justify-content:center;align-items:center;display:flex}.profile-quick-grid__label[data-v-0481e66d]{color:var(--color-text);text-align:center;font-size:.75rem;font-weight:600;line-height:1.35}.profile-settings[data-v-0481e66d]{flex-direction:column;gap:0;display:flex}.profile-settings__item[data-v-0481e66d]{border:none;border-bottom:1px solid var(--color-border);cursor:pointer;text-align:right;background:0 0;border-radius:0;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;padding:14px 4px;font-family:inherit;transition:background .15s;display:grid}.profile-settings__item[data-v-0481e66d]:last-child{border-bottom:none}.profile-settings__item[data-v-0481e66d]:hover{background:var(--color-elevated)}.profile-settings__icon[data-v-0481e66d]{background:var(--color-primary-soft);width:38px;height:38px;color:var(--color-primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.profile-settings__body[data-v-0481e66d]{flex-direction:column;gap:3px;min-width:0;display:flex}.profile-settings__label[data-v-0481e66d]{color:var(--color-text);font-size:.8125rem;font-weight:700}.profile-settings__desc[data-v-0481e66d]{color:var(--color-text-muted);font-size:.6875rem;line-height:1.45}.profile-settings__chevron[data-v-0481e66d]{color:#cbd5e1;flex-shrink:0}@media (width<=900px){.profile-overview[data-v-0481e66d]{flex-direction:column}.profile-overview__identity[data-v-0481e66d]{padding-inline-end:0;border-inline-end:none;border-bottom:1px solid var(--color-border);padding-bottom:16px}.profile-overview__stats[data-v-0481e66d]{padding-top:8px}.profile-stat[data-v-0481e66d]:first-child{border-inline-start:none}.desktop-profile__grid[data-v-0481e66d]{grid-template-columns:1fr}}
diff --git a/dist/assets/ProfileView-D8tUQfUl.css b/dist/assets/ProfileView-D8tUQfUl.css
new file mode 100644
index 0000000..07c8a4a
--- /dev/null
+++ b/dist/assets/ProfileView-D8tUQfUl.css
@@ -0,0 +1 @@
+.profile-page[data-v-7cfe559f]{background:var(--color-primary)}.hero[data-v-7cfe559f]{color:#fff;text-align:center;background:linear-gradient(145deg, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 78%, #0a1f18) 100%);padding:0 0 28px}.hero__pin[data-v-7cfe559f]{z-index:3;padding:12px var(--page-padding) 10px;background:linear-gradient(145deg, var(--color-primary) 0%, color-mix(in srgb, var(--color-primary) 78%, #0a1f18) 100%);position:sticky;top:0}.hero__top[data-v-7cfe559f]{grid-template-columns:40px 1fr 40px;align-items:center;margin-bottom:12px;display:grid}.hero__top h1[data-v-7cfe559f]{margin:0;font-size:1rem;font-weight:700}.icon-btn[data-v-7cfe559f]{cursor:pointer;color:#fff;background:0 0;border:none;place-items:center;width:40px;height:40px;display:grid;position:relative}.icon-btn__badge[data-v-7cfe559f]{top:4px;color:#fff;text-align:center;background:#f59e0b;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-size:.625rem;font-weight:700;line-height:16px;position:absolute;inset-inline-start:4px}.hero__avatar[data-v-7cfe559f]{color:#fff;border:3px solid #ffffff59;margin:0 auto}.hero__meta[data-v-7cfe559f]{padding:10px var(--page-padding) 0}.hero h2[data-v-7cfe559f]{margin:0;font-size:1.2rem;font-weight:700}.hero p[data-v-7cfe559f]{opacity:.88;margin:6px 0 12px;font-size:.85rem}.level-pill[data-v-7cfe559f]{border:1px solid var(--color-level-gold);background:color-mix(in srgb, var(--color-level-gold) 16%, transparent);color:#fff;border-radius:999px;align-items:center;gap:6px;padding:5px 14px;font-size:.8125rem;display:inline-flex}.level-pill__crown[data-v-7cfe559f]{width:14px;height:14px;color:var(--color-level-gold)}.profile-scroll[data-v-7cfe559f]{background:0 0;flex:1;min-height:0;padding:0}.profile-sheet[data-v-7cfe559f]{z-index:1;padding:20px var(--page-padding) 24px;background:var(--color-bg);border-radius:24px 24px 0 0;flex-direction:column;gap:18px;margin-top:-20px;display:flex;position:relative;box-shadow:0 -4px 16px #0000000f}.profile-sheet[data-v-7cfe559f]>*{flex-shrink:0}.panel__head[data-v-7cfe559f],.section-head[data-v-7cfe559f]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.panel__head h3[data-v-7cfe559f],.section-head h3[data-v-7cfe559f],.section-title[data-v-7cfe559f]{color:var(--color-text);margin:0;font-size:.95rem;font-weight:700}.section-title[data-v-7cfe559f]{margin-bottom:12px}.panel__period[data-v-7cfe559f]{color:var(--color-text-muted);align-items:center;gap:2px;font-size:.8rem;display:inline-flex}.link[data-v-7cfe559f]{color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.8rem;font-weight:600}.stats[data-v-7cfe559f]{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat-card[data-v-7cfe559f]{background:var(--color-surface);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);border-radius:14px;flex-direction:row;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.stat-card__text[data-v-7cfe559f]{text-align:start;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.stat-card__icon[data-v-7cfe559f]{border-radius:10px;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.stat-card__icon--orders[data-v-7cfe559f],.stat-card__icon--customers[data-v-7cfe559f]{background:color-mix(in srgb, var(--color-success) 14%, transparent);color:var(--color-success)}.stat-card__icon--profit[data-v-7cfe559f]{background:color-mix(in srgb, var(--color-info) 14%, transparent);color:var(--color-info)}.stat-card__icon--sales[data-v-7cfe559f]{background:color-mix(in srgb, var(--color-level-gold) 22%, transparent);color:#b8860b}.stat-card__label[data-v-7cfe559f]{color:var(--color-text-muted);font-size:.75rem}.stat-card__value[data-v-7cfe559f]{color:var(--color-text);font-size:1.05rem;font-weight:700;line-height:1.3}.stat-card__hint[data-v-7cfe559f]{color:var(--color-text-muted);font-size:.7rem;font-style:normal}.loyalty[data-v-7cfe559f]{background:var(--color-primary-soft);border-radius:14px;padding:14px}.loyalty__row[data-v-7cfe559f]{align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.loyalty__crown[data-v-7cfe559f]{flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.loyalty__text[data-v-7cfe559f]{color:var(--color-text);text-align:start;margin:0;font-size:.8125rem;line-height:1.75}.loyalty__bar[data-v-7cfe559f]{background:rgba(var(--color-primary-rgb), .15);border-radius:999px;height:8px;overflow:hidden}.loyalty__bar span[data-v-7cfe559f]{background:var(--color-primary);border-radius:inherit;height:100%;display:block}.quick-grid[data-v-7cfe559f]{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.quick-item[data-v-7cfe559f]{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:8px;min-height:88px;padding:14px 8px 12px;font-family:inherit;font-size:.72rem;line-height:1.4;display:flex}.quick-item__icon[data-v-7cfe559f]{width:40px;height:40px;color:var(--color-primary);place-items:center;display:grid}.orders-box[data-v-7cfe559f]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;flex-shrink:0;padding:4px 0 0;overflow:hidden}.orders-box .section-head[data-v-7cfe559f]{margin:0;padding:12px 14px 10px}.order-row[data-v-7cfe559f]{border:none;border-top:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:0;grid-template-columns:1fr auto 16px;align-items:center;gap:8px;margin:0;padding:12px 14px;display:grid}.orders-all[data-v-7cfe559f]{border:none;border-top:1px solid var(--color-border);width:100%;color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border-radius:0;margin:0;padding:12px 14px;font-size:.875rem;font-weight:600}.order-row__meta[data-v-7cfe559f]{text-align:start;min-width:0}.order-row__date[data-v-7cfe559f]{color:var(--color-text-muted);margin-bottom:2px;font-size:.75rem;display:block}.order-row__title[data-v-7cfe559f]{font-size:.875rem;display:block}.order-row__customer[data-v-7cfe559f]{color:var(--color-text-muted);margin:2px 0 0;font-size:.75rem}.order-row__chevron[data-v-7cfe559f]{color:var(--color-text-muted)}.tone[data-v-7cfe559f]{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:.7rem}.tone--warning[data-v-7cfe559f]{background:var(--color-warning-light);color:#b45309}.tone--success[data-v-7cfe559f]{background:var(--color-success-light);color:var(--color-success)}.tone--info[data-v-7cfe559f]{background:var(--color-info-light);color:var(--color-info)}.tone--danger[data-v-7cfe559f]{background:var(--color-danger-light);color:var(--color-danger)}.price-section[data-v-7cfe559f]{flex-shrink:0}.price-section .section-title[data-v-7cfe559f]{margin-bottom:10px}.price-card[data-v-7cfe559f]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;overflow:hidden}.price-card__body[data-v-7cfe559f]{grid-template-columns:1fr 88px;align-items:start;gap:12px;padding:12px;display:grid}.price-card__image[data-v-7cfe559f]{background:linear-gradient(145deg, var(--color-primary), var(--color-primary-dark));background-position:50%;background-size:cover;border-radius:12px;min-height:88px}.price-card__info[data-v-7cfe559f]{text-align:start}.price-card__info strong[data-v-7cfe559f]{margin-bottom:4px;font-size:.9rem;display:block}.price-card__info p[data-v-7cfe559f]{color:var(--color-text-muted);margin:2px 0 0;font-size:.75rem}.price-card footer[data-v-7cfe559f]{border-top:1px solid var(--color-border);background:var(--color-elevated);text-align:start;padding:10px 12px;font-size:.8rem;font-weight:600}.hero__desk-actions[data-v-7cfe559f]{display:none}@media (width>=768px){.profile-page[data-v-7cfe559f]{max-width:var(--content-max-width);background:0 0;margin-inline:auto;padding:8px 0 28px}.profile-scroll[data-v-7cfe559f]{flex-direction:column;gap:0;display:flex;overflow:visible}.hero[data-v-7cfe559f]{text-align:start;border-radius:20px;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:24px 28px;display:grid;overflow:hidden}.hero__pin[data-v-7cfe559f]{background:0 0;padding:0;display:block;position:static}.hero__avatar[data-v-7cfe559f]{margin:0;width:88px!important;height:88px!important}.hero__meta[data-v-7cfe559f]{padding:0}.hero h2[data-v-7cfe559f]{font-size:1.5rem}.hero__desk-btn[data-v-7cfe559f]{color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff59;border-radius:999px;padding:8px 14px;font-family:inherit;font-size:.8125rem;font-weight:600}.hero__desk-btn[data-v-7cfe559f]:hover{background:#fff3}.hero__desk-actions[data-v-7cfe559f]{flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:280px}.profile-sheet[data-v-7cfe559f]{box-shadow:var(--shadow-sm);border:1px solid var(--color-border);border-radius:20px;gap:22px;margin-top:18px;padding:22px 24px 28px}.stats[data-v-7cfe559f]{grid-template-columns:repeat(4,minmax(0,1fr))}.quick-grid[data-v-7cfe559f]{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-item[data-v-7cfe559f]{min-height:88px}}@media (width>=1100px){.profile-sheet[data-v-7cfe559f]{grid-template-columns:1.2fr .8fr;grid-template-areas:"panel panel""loyalty loyalty""quick quick""orders price";align-items:start;display:grid}.profile-sheet>.panel[data-v-7cfe559f]{grid-area:panel}.profile-sheet>.loyalty[data-v-7cfe559f]{grid-area:loyalty}.profile-sheet>.quick-section[data-v-7cfe559f]{grid-area:quick}.profile-sheet>.orders-box[data-v-7cfe559f]{grid-area:orders}.profile-sheet>.price-section[data-v-7cfe559f]{grid-area:price}.quick-grid[data-v-7cfe559f]{grid-template-columns:repeat(6,minmax(0,1fr))}}
diff --git a/dist/assets/ProfileView-DAXufKBC.js b/dist/assets/ProfileView-DAXufKBC.js
new file mode 100644
index 0000000..fdfeebe
--- /dev/null
+++ b/dist/assets/ProfileView-DAXufKBC.js
@@ -0,0 +1 @@
+import{A as e,Ct as t,E as n,Et as r,I as ee,L as i,M as a,N as o,O as s,P as c,R as l,St as u,Tt as d,Y as f,Z as p,_ as m,j as h,mt as g,n as te,q as ne,t as _,z as v}from"./BasicIcon-C6boaehV.js";import{o as y,r as re}from"./format-BHJptHdF.js";import{C as ie,c as ae,d as oe,o as se,r as ce,s as le,u as ue}from"./index-spodxsRN.js";import{r as b,t as x}from"./constants-DXXK14Zz.js";import{t as S}from"./PageSkeleton-uO-jhbNm.js";import{n as C,t as w}from"./crm-CtglbPsN.js";var T=v({__name:`IconSettings`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(f(),a(_,{icon:`vuesax-linear:setting-2`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),E={class:`page profile-page`},D={class:`page__scroll page__scroll--with-nav profile-scroll`},O={class:`hero`},k={class:`hero__pin`},A={class:`hero__top mobile-only`},j=[`aria-label`],M={class:`hero__meta`},N={class:`level-pill`},P={class:`hero__desk-actions desktop-only-flex`},F={class:`profile-sheet`},I={class:`panel`},L={class:`panel__head`},R={class:`panel__period`},z={class:`stats`},B={class:`stat-card`},V={class:`stat-card__text`},H={class:`stat-card__value`},U={class:`stat-card__icon stat-card__icon--orders`},de={class:`stat-card`},fe={class:`stat-card__text`},pe={class:`stat-card__value`},me={class:`stat-card__icon stat-card__icon--customers`},he={class:`stat-card`},ge={class:`stat-card__text`},_e={class:`stat-card__value`},ve={class:`stat-card__icon stat-card__icon--profit`},ye={class:`stat-card`},be={class:`stat-card__text`},xe={class:`stat-card__value`},Se={class:`stat-card__icon stat-card__icon--sales`},Ce={class:`loyalty`},W={class:`loyalty__row`},we={class:`loyalty__text`},Te={class:`loyalty__bar`},Ee={class:`quick-section`},De={class:`quick-grid`},Oe=[`onClick`],ke={class:`quick-item__icon`},Ae={class:`orders-box`},je={class:`section-head`},Me=[`onClick`,`onKeydown`],Ne={class:`order-row__meta`},Pe={class:`order-row__date`},Fe={class:`order-row__title`},Ie={key:0,class:`order-row__customer`},Le={class:`price-section`},Re={class:`price-card`},ze={class:`price-card__body`},Be={class:`price-card__info`},G=te(v({__name:`MobileProfilePage`,setup(te){let v={id:`sample-base-price`,name:`پارچه فاستونی ایتالیایی`,code:`DF-1204`,categoryId:``,season:`all_season`,widthCm:160,composition:``,colors:[`1`,`2`,`3`,`4`,`5`,`6`],tags:[],isNew:!1,rollMeters:0,basePrice:38e4},G=m(),K=ae(),q=oe(),Ve=w(),J=ue(),Y=g(null),X=g(v),Z=g(!1),He=[{label:`ثبت مشتری جدید`,to:`/customers`,icon:`vuesax-linear:add`},{label:`سفارشها`,to:`/orders`,icon:`vuesax-linear:document-text`},{label:`مشتریان من`,to:`/customers`,icon:`vuesax-linear:people`},{label:`گزارشها`,to:`/reminders`,icon:`vuesax-linear:chart-2`},{label:`درخواست کالیته`,to:`/catalog-request`,icon:`vuesax-linear:category`},{label:`قیمتگذاری`,to:`/categories`,icon:`vuesax-linear:money-4`}],Ue=e(()=>[...q.orders].sort((e,t)=>String(t.createdAt).localeCompare(String(e.createdAt))).slice(0,3).map(e=>{let t=b[e.status]??`info`,n=t===`danger`||t===`neutral`?`danger`:t===`success`?`success`:t===`warning`?`warning`:`info`;return{id:e.id,title:`سفارش #${e.orderNumber}`,date:e.createdAt?re(e.createdAt):``,customer:e.companyName||``,statusLabel:x[e.status]||e.status,statusTone:n}})),Q=e(()=>K.fullName||`کاربر`),We=e(()=>Y.value?.code||K.user?.agentCode||`—`),$=e(()=>Y.value?.levelLabel||K.user?.levelLabel||`برنزی`),Ge=e(()=>Y.value?.nextLevelLabel||K.user?.nextLevelLabel||`نقرهای`),Ke=e(()=>Y.value?.pointsToNext??K.user?.pointsToNext??0),qe=e(()=>Y.value?.periodLabel||`۳۰ روز اخیر`),Je=e(()=>Y.value?.customersCount??0),Ye=e(()=>Y.value?.ordersCount??q.orders.length),Xe=e(()=>Y.value?.salesVolumeToman??0),Ze=e(()=>Y.value?.profitToman??0),Qe=e(()=>Y.value?.levelProgress??K.user?.levelProgress??72),$e=e(()=>J.unreadCount>9?`9+`:String(J.unreadCount)),et=e(()=>X.value.basePrice??v.basePrice??0);return ne(async()=>{Z.value=!0;try{J.hydrate();try{Y.value=await C()}catch{Y.value=null}try{let e=(await Ve.loadBrowseProducts())[0];X.value=e?{...v,...e,basePrice:e.basePrice??v.basePrice}:v}catch{X.value=v}q.orders.length||await q.hydrate()}finally{Z.value=!1}}),(e,m)=>(f(),c(`div`,E,[h(`div`,D,[h(`header`,O,[h(`div`,k,[h(`div`,A,[h(`button`,{type:`button`,class:`icon-btn`,"aria-label":`تنظیمات`,onClick:m[0]||=e=>u(G).push(`/profile/display`)},[l(T,{size:20,color:`#ffffff`})]),m[7]||=h(`h1`,null,`پروفایل من`,-1),h(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلانها`,onClick:m[1]||=e=>u(G).push(`/profile/notifications`)},[l(le,{size:20,color:`#ffffff`}),u(J).hasUnread?(f(),c(`span`,{key:0,class:`icon-btn__badge`,"aria-label":`${u(J).unreadCount} اعلان خواندهنشده`},r($e.value),9,j)):o(``,!0)])]),l(ce,{class:`hero__avatar`,src:u(K).user?.avatarUrl,initials:Q.value.charAt(0),size:84},null,8,[`src`,`initials`])]),h(`div`,M,[h(`h2`,null,r(Q.value),1),h(`p`,null,`کد واسطه: `+r(We.value),1),h(`span`,N,[m[8]||=h(`svg`,{class:`level-pill__crown`,viewBox:`0 0 24 24`,"aria-hidden":`true`},[h(`path`,{fill:`currentColor`,d:`M3.5 17.5h17l-1.2-8.2a1 1 0 0 0-1.5-.7L14 11l-2.5-5.2a1 1 0 0 0-1.8 0L7.2 11 4.2 8.6a1 1 0 0 0-1.5.7L3.5 17.5Zm1.7 1.5h13.6v1.2H5.2V19Z`})],-1),i(` سطح: `+r($.value),1)])]),h(`div`,P,[h(`button`,{type:`button`,class:`hero__desk-btn`,onClick:m[2]||=e=>u(G).push(`/profile/edit`)},` ویرایش اطلاعات `),h(`button`,{type:`button`,class:`hero__desk-btn`,onClick:m[3]||=e=>u(G).push(`/profile/checks`)},` لیست چکها `),h(`button`,{type:`button`,class:`hero__desk-btn`,onClick:m[4]||=e=>u(G).push(`/profile/display`)},` تنظیمات `)])]),h(`div`,F,[Z.value?(f(),a(S,{key:0,variant:`profile`})):(f(),c(s,{key:1},[h(`section`,I,[h(`div`,L,[m[9]||=h(`h3`,null,`خلاصه عملکرد`,-1),h(`span`,R,[i(r(qe.value)+` `,1),l(_,{icon:`vuesax-linear:arrow-down`,size:14,"stroke-width":1.5})])]),h(`div`,z,[h(`div`,B,[h(`div`,V,[m[10]||=h(`span`,{class:`stat-card__label`},`سفارشها`,-1),h(`strong`,H,r(u(y)(Ye.value)),1),m[11]||=h(`em`,{class:`stat-card__hint`},`سفارش`,-1)]),h(`span`,U,[l(ie,{size:18})])]),h(`div`,de,[h(`div`,fe,[m[12]||=h(`span`,{class:`stat-card__label`},`مشتریان من`,-1),h(`strong`,pe,r(u(y)(Je.value)),1),m[13]||=h(`em`,{class:`stat-card__hint`},`مشتری فعال`,-1)]),h(`span`,me,[l(_,{icon:`vuesax-linear:people`,size:18,"stroke-width":1.5})])]),h(`div`,he,[h(`div`,ge,[m[14]||=h(`span`,{class:`stat-card__label`},`سود شما (ریال)`,-1),h(`strong`,_e,r(u(y)(Ze.value)),1),m[15]||=h(`em`,{class:`stat-card__hint`},`تومان`,-1)]),h(`span`,ve,[l(_,{icon:`vuesax-linear:chart-2`,size:18,"stroke-width":1.5})])]),h(`div`,ye,[h(`div`,be,[m[16]||=h(`span`,{class:`stat-card__label`},`حجم فروش (ریال)`,-1),h(`strong`,xe,r(u(y)(Xe.value)),1),m[17]||=h(`em`,{class:`stat-card__hint`},`تومان`,-1)]),h(`span`,Se,[l(_,{icon:`vuesax-linear:wallet`,size:18,"stroke-width":1.5})])])])]),h(`section`,Ce,[h(`div`,W,[m[18]||=ee(`
`,1),h(`p`,we,` شما در سطح `+r($.value)+` قرار دارید. تا سطح `+r(Ge.value)+` فقط `+r(u(y)(Ke.value))+` تومان فروش دیگر نیاز دارید. `,1)]),h(`div`,Te,[h(`span`,{style:d({width:`${Math.min(100,Math.max(0,Qe.value))}%`})},null,4)])]),h(`section`,Ee,[m[19]||=h(`h3`,{class:`section-title`},`دسترسی سریع`,-1),h(`div`,De,[(f(),c(s,null,p(He,e=>h(`button`,{key:e.label,type:`button`,class:`quick-item`,onClick:t=>u(G).push(e.to)},[h(`span`,ke,[l(_,{icon:e.icon,size:22,"stroke-width":1.5},null,8,[`icon`])]),i(` `+r(e.label),1)],8,Oe)),64))])]),h(`section`,Ae,[h(`div`,je,[m[20]||=h(`h3`,null,`آخرین سفارشها`,-1),h(`button`,{type:`button`,class:`link`,onClick:m[5]||=e=>u(G).push(`/orders`)},`مشاهده همه`)]),(f(!0),c(s,null,p(Ue.value,e=>(f(),c(`article`,{key:e.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:t=>u(G).push({path:`/order`,query:{id:e.id}}),onKeydown:n(t=>u(G).push({path:`/order`,query:{id:e.id}}),[`enter`])},[h(`div`,Ne,[h(`span`,Pe,r(e.date),1),h(`strong`,Fe,r(e.title),1),e.customer?(f(),c(`p`,Ie,`مشتری: `+r(e.customer),1)):o(``,!0)]),h(`span`,{class:t([`tone`,`tone--${e.statusTone}`])},r(e.statusLabel),3),l(se,{size:16,class:`order-row__chevron`})],40,Me))),128)),h(`button`,{type:`button`,class:`orders-all`,onClick:m[6]||=e=>u(G).push(`/orders`)},` مشاهده همه سفارشها `)]),h(`section`,Le,[m[21]||=h(`h3`,{class:`section-title`},`قیمتهای پایه (نمونه)`,-1),h(`div`,Re,[h(`div`,ze,[h(`div`,Be,[h(`strong`,null,r(X.value.name),1),h(`p`,null,`کد: `+r(X.value.code),1),h(`p`,null,`عرض: `+r(u(y)(X.value.widthCm))+` سانتیمتر`,1),h(`p`,null,`رنگها: `+r(u(y)(X.value.colors.length))+` رنگ`,1)]),h(`div`,{class:`price-card__image`,style:d(X.value.imageUrl?{backgroundImage:`url(${X.value.imageUrl})`}:void 0)},null,4)]),h(`footer`,null,`قیمت پایه به شما: `+r(u(y)(et.value))+` تومان / متر`,1)])])],64))])])]))}}),[[`__scopeId`,`data-v-7cfe559f`]]),K=v({__name:`ProfileView`,setup(e){return(e,t)=>(f(),a(G))}});export{K as default};
\ No newline at end of file
diff --git a/dist/assets/ProfileView-zsVIG08O.js b/dist/assets/ProfileView-zsVIG08O.js
deleted file mode 100644
index 2f84329..0000000
--- a/dist/assets/ProfileView-zsVIG08O.js
+++ /dev/null
@@ -1 +0,0 @@
-import{$ as e,A as t,D as n,F as r,I as i,J as a,K as o,L as s,M as c,N as l,R as u,St as d,T as ee,Tt as f,X as p,_ as m,j as h,k as g,n as _,pt as v,t as y,wt as b,xt as x}from"./BasicIcon-B6lR-mG3.js";import{n as S,o as C,r as w,u as T}from"./format-BHJptHdF.js";import{C as E,S as D,b as O,c as k,g as A,h as j,o as te,r as ne,s as M,u as N,w as P}from"./index-B20WsQhf.js";import{r as F,t as I}from"./constants-DXXK14Zz.js";import{t as L}from"./IconPhone-Glpo76KE.js";import{t as R}from"./IconEditPen-CppsBLM9.js";import{t as z}from"./IconVerified-BSlZDcZt.js";import{t as B}from"./IconBuilding-oclvcvlP.js";import{t as V}from"./IconLayoutGrid-DgOvzvMf.js";import{t as H}from"./PageSkeleton-BImjuI6S.js";import{n as U,t as W}from"./crm-DbcoqKAF.js";import{n as G,t as K}from"./IconBolt-BuLG6uFR.js";import{t as q}from"./IconCash-Bxyfv_aw.js";import{t as J}from"./IconCashSettlement-DizzShjh.js";import{t as Y}from"./IconMail-BWRmFd4j.js";var X=u({__name:`IconSettings`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),h(y,{icon:`vuesax-linear:setting-2`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Z={class:`page profile-page`},Q={class:`page__scroll page__scroll--with-nav profile-scroll`},re={class:`hero`},ie={class:`hero__pin`},ae={class:`hero__top`},oe=[`aria-label`],se={class:`hero__meta`},ce={class:`level-pill`},le={class:`profile-sheet`},ue={class:`panel`},de={class:`panel__head`},fe={class:`panel__period`},pe={class:`stats`},me={class:`stat-card`},he={class:`stat-card__text`},ge={class:`stat-card__value`},_e={class:`stat-card__icon stat-card__icon--orders`},ve={class:`stat-card`},ye={class:`stat-card__text`},be={class:`stat-card__value`},xe={class:`stat-card__icon stat-card__icon--customers`},Se={class:`stat-card`},Ce={class:`stat-card__text`},we={class:`stat-card__value`},Te={class:`stat-card__icon stat-card__icon--profit`},Ee={class:`stat-card`},De={class:`stat-card__text`},Oe={class:`stat-card__value`},ke={class:`stat-card__icon stat-card__icon--sales`},Ae={class:`loyalty`},je={class:`loyalty__row`},Me={class:`loyalty__text`},Ne={class:`loyalty__bar`},Pe={class:`quick-grid`},Fe=[`onClick`],Ie={class:`quick-item__icon`},Le={class:`orders-box`},Re={class:`section-head`},ze=[`onClick`,`onKeydown`],Be={class:`order-row__meta`},Ve={class:`order-row__date`},He={class:`order-row__title`},Ue={key:0,class:`order-row__customer`},We={class:`price-section`},Ge={class:`price-card`},Ke={class:`price-card__body`},qe={class:`price-card__info`},Je=_(u({__name:`MobileProfilePage`,setup(e){let u={id:`sample-base-price`,name:`پارچه فاستونی ایتالیایی`,code:`DF-1204`,categoryId:``,season:`all_season`,widthCm:160,composition:``,colors:[`1`,`2`,`3`,`4`,`5`,`6`],tags:[],isNew:!1,rollMeters:0,basePrice:38e4},_=m(),S=k(),T=A(),E=W(),D=N(),O=v(null),j=v(u),L=v(!1),R=[{label:`ثبت مشتری جدید`,to:`/customers`,icon:`vuesax-linear:add`},{label:`سفارشها`,to:`/orders`,icon:`vuesax-linear:document-text`},{label:`مشتریان من`,to:`/customers`,icon:`vuesax-linear:people`},{label:`گزارشها`,to:`/reminders`,icon:`vuesax-linear:chart-2`},{label:`درخواست کالیته`,to:`/catalog-request`,icon:`vuesax-linear:category`},{label:`قیمتگذاری`,to:`/categories`,icon:`vuesax-linear:money-4`}],z=g(()=>[...T.orders].sort((e,t)=>String(t.createdAt).localeCompare(String(e.createdAt))).slice(0,3).map(e=>{let t=F[e.status]??`info`,n=t===`danger`||t===`neutral`?`danger`:t===`success`?`success`:t===`warning`?`warning`:`info`;return{id:e.id,title:`سفارش #${e.orderNumber}`,date:e.createdAt?w(e.createdAt):``,customer:e.companyName||``,statusLabel:I[e.status]||e.status,statusTone:n}})),B=g(()=>S.fullName||`کاربر`),V=g(()=>O.value?.code||S.user?.agentCode||`—`),G=g(()=>O.value?.levelLabel||S.user?.levelLabel||`برنزی`),K=g(()=>O.value?.nextLevelLabel||S.user?.nextLevelLabel||`نقرهای`),q=g(()=>O.value?.pointsToNext??S.user?.pointsToNext??0),J=g(()=>O.value?.periodLabel||`۳۰ روز اخیر`),Y=g(()=>O.value?.customersCount??0),Je=g(()=>O.value?.ordersCount??T.orders.length),Ye=g(()=>O.value?.salesVolumeToman??0),$=g(()=>O.value?.profitToman??0),Xe=g(()=>O.value?.levelProgress??S.user?.levelProgress??72),Ze=g(()=>D.unreadCount>9?`9+`:String(D.unreadCount)),Qe=g(()=>j.value.basePrice??u.basePrice??0);return o(async()=>{L.value=!0;try{D.hydrate();try{O.value=await U()}catch{O.value=null}try{let e=(await E.loadBrowseProducts())[0];j.value=e?{...u,...e,basePrice:e.basePrice??u.basePrice}:u}catch{j.value=u}T.orders.length||await T.hydrate()}finally{L.value=!1}}),(e,o)=>(a(),l(`div`,Z,[t(`div`,Q,[t(`header`,re,[t(`div`,ie,[t(`div`,ae,[t(`button`,{type:`button`,class:`icon-btn`,"aria-label":`تنظیمات`,onClick:o[0]||=e=>x(_).push(`/profile/display`)},[s(X,{size:20,color:`#ffffff`})]),o[4]||=t(`h1`,null,`پروفایل من`,-1),t(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلانها`,onClick:o[1]||=e=>x(_).push(`/profile/notifications`)},[s(M,{size:20,color:`#ffffff`}),x(D).hasUnread?(a(),l(`span`,{key:0,class:`icon-btn__badge`,"aria-label":`${x(D).unreadCount} اعلان خواندهنشده`},f(Ze.value),9,oe)):c(``,!0)])]),s(ne,{class:`hero__avatar`,src:x(S).user?.avatarUrl,initials:B.value.charAt(0),size:84},null,8,[`src`,`initials`])]),t(`div`,se,[t(`h2`,null,f(B.value),1),t(`p`,null,`کد واسطه: `+f(V.value),1),t(`span`,ce,[o[5]||=t(`svg`,{class:`level-pill__crown`,viewBox:`0 0 24 24`,"aria-hidden":`true`},[t(`path`,{fill:`currentColor`,d:`M3.5 17.5h17l-1.2-8.2a1 1 0 0 0-1.5-.7L14 11l-2.5-5.2a1 1 0 0 0-1.8 0L7.2 11 4.2 8.6a1 1 0 0 0-1.5.7L3.5 17.5Zm1.7 1.5h13.6v1.2H5.2V19Z`})],-1),i(` سطح: `+f(G.value),1)])])]),t(`div`,le,[L.value?(a(),h(H,{key:0,variant:`profile`})):(a(),l(n,{key:1},[t(`section`,ue,[t(`div`,de,[o[6]||=t(`h3`,null,`خلاصه عملکرد`,-1),t(`span`,fe,[i(f(J.value)+` `,1),s(y,{icon:`vuesax-linear:arrow-down`,size:14,"stroke-width":1.5})])]),t(`div`,pe,[t(`div`,me,[t(`div`,he,[o[7]||=t(`span`,{class:`stat-card__label`},`سفارشها`,-1),t(`strong`,ge,f(x(C)(Je.value)),1),o[8]||=t(`em`,{class:`stat-card__hint`},`سفارش`,-1)]),t(`span`,_e,[s(P,{size:18})])]),t(`div`,ve,[t(`div`,ye,[o[9]||=t(`span`,{class:`stat-card__label`},`مشتریان من`,-1),t(`strong`,be,f(x(C)(Y.value)),1),o[10]||=t(`em`,{class:`stat-card__hint`},`مشتری فعال`,-1)]),t(`span`,xe,[s(y,{icon:`vuesax-linear:people`,size:18,"stroke-width":1.5})])]),t(`div`,Se,[t(`div`,Ce,[o[11]||=t(`span`,{class:`stat-card__label`},`سود شما (ریال)`,-1),t(`strong`,we,f(x(C)($.value)),1),o[12]||=t(`em`,{class:`stat-card__hint`},`تومان`,-1)]),t(`span`,Te,[s(y,{icon:`vuesax-linear:chart-2`,size:18,"stroke-width":1.5})])]),t(`div`,Ee,[t(`div`,De,[o[13]||=t(`span`,{class:`stat-card__label`},`حجم فروش (ریال)`,-1),t(`strong`,Oe,f(x(C)(Ye.value)),1),o[14]||=t(`em`,{class:`stat-card__hint`},`تومان`,-1)]),t(`span`,ke,[s(y,{icon:`vuesax-linear:wallet`,size:18,"stroke-width":1.5})])])])]),t(`section`,Ae,[t(`div`,je,[o[15]||=r(``,1),t(`p`,Me,` شما در سطح `+f(G.value)+` قرار دارید. تا سطح `+f(K.value)+` فقط `+f(x(C)(q.value))+` تومان فروش دیگر نیاز دارید. `,1)]),t(`div`,Ne,[t(`span`,{style:b({width:`${Math.min(100,Math.max(0,Xe.value))}%`})},null,4)])]),t(`section`,null,[o[16]||=t(`h3`,{class:`section-title`},`دسترسی سریع`,-1),t(`div`,Pe,[(a(),l(n,null,p(R,e=>t(`button`,{key:e.label,type:`button`,class:`quick-item`,onClick:t=>x(_).push(e.to)},[t(`span`,Ie,[s(y,{icon:e.icon,size:22,"stroke-width":1.5},null,8,[`icon`])]),i(` `+f(e.label),1)],8,Fe)),64))])]),t(`section`,Le,[t(`div`,Re,[o[17]||=t(`h3`,null,`آخرین سفارشها`,-1),t(`button`,{type:`button`,class:`link`,onClick:o[2]||=e=>x(_).push(`/orders`)},`مشاهده همه`)]),(a(!0),l(n,null,p(z.value,e=>(a(),l(`article`,{key:e.id,class:`order-row`,role:`button`,tabindex:`0`,onClick:t=>x(_).push({path:`/order`,query:{id:e.id}}),onKeydown:ee(t=>x(_).push({path:`/order`,query:{id:e.id}}),[`enter`])},[t(`div`,Be,[t(`span`,Ve,f(e.date),1),t(`strong`,He,f(e.title),1),e.customer?(a(),l(`p`,Ue,`مشتری: `+f(e.customer),1)):c(``,!0)]),t(`span`,{class:d([`tone`,`tone--${e.statusTone}`])},f(e.statusLabel),3),s(te,{size:16,class:`order-row__chevron`})],40,ze))),128)),t(`button`,{type:`button`,class:`orders-all`,onClick:o[3]||=e=>x(_).push(`/orders`)},` مشاهده همه سفارشها `)]),t(`section`,We,[o[18]||=t(`h3`,{class:`section-title`},`قیمتهای پایه (نمونه)`,-1),t(`div`,Ge,[t(`div`,Ke,[t(`div`,qe,[t(`strong`,null,f(j.value.name),1),t(`p`,null,`کد: `+f(j.value.code),1),t(`p`,null,`عرض: `+f(x(C)(j.value.widthCm))+` سانتیمتر`,1),t(`p`,null,`رنگها: `+f(x(C)(j.value.colors.length))+` رنگ`,1)]),t(`div`,{class:`price-card__image`,style:b(j.value.imageUrl?{backgroundImage:`url(${j.value.imageUrl})`}:void 0)},null,4)]),t(`footer`,null,`قیمت پایه به شما: `+f(x(C)(Qe.value))+` تومان / متر`,1)])])],64))])])]))}}),[[`__scopeId`,`data-v-947f93d3`]]),Ye=u({__name:`IconMapPin`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),h(y,{icon:`vuesax-linear:location`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),$=u({__name:`IconLock`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),h(y,{icon:`vuesax-linear:lock`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Xe={class:`desktop-page desktop-profile`},Ze={class:`profile-overview`},Qe={class:`profile-overview__identity`},$e={class:`profile-overview__aside`},et={class:`profile-overview__details`},tt={class:`profile-overview__name-row`},nt={class:`profile-overview__name`},rt={class:`profile-overview__verified`,title:`حساب تأیید شده`},it={class:`profile-overview__meta`},at={class:`profile-overview__meta-label`},ot={class:`profile-overview__meta`},st={dir:`ltr`},ct={class:`profile-overview__meta`},lt={dir:`ltr`},ut={class:`profile-overview__stats`},dt={class:`profile-stat`},ft={class:`profile-stat__icon profile-stat__icon--amber`},pt={class:`profile-stat__value profile-stat__value--sm`},mt={class:`profile-stat`},ht={class:`profile-stat__icon profile-stat__icon--green`},gt={class:`profile-stat__value`},_t={class:`profile-stat`},vt={class:`profile-stat__icon profile-stat__icon--blue`},yt={class:`profile-stat__value`},bt={class:`desktop-profile__grid`},xt={class:`profile-panel profile-panel--settings`},St={class:`profile-panel__title`},Ct={class:`profile-settings`,"aria-label":`تنظیمات حساب`},wt=[`onClick`],Tt={class:`profile-settings__icon`},Et={class:`profile-settings__body`},Dt={class:`profile-settings__label`},Ot={class:`profile-settings__desc`},kt={class:`profile-panel profile-panel--quick`},At={class:`profile-panel__title`},jt={class:`profile-quick-grid`},Mt=[`onClick`],Nt={class:`profile-quick-grid__icon`},Pt={class:`profile-quick-grid__label`},Ft={class:`profile-panel profile-panel--company`},It={class:`profile-panel__title`},Lt={class:`profile-info-list`},Rt={key:0,class:`profile-badge`},zt=_(u({__name:`DesktopProfilePage`,emits:[`logout`],setup(r,{emit:o}){let c=m(),u=k(),d=A(),ee=o,_=g(()=>`${u.user?.firstName?.[0]??``}${u.user?.lastName?.[0]??``}`||`؟`),v=g(()=>u.user?.id?d.userOrders(u.user.id).length:0),y=g(()=>u.user?.id?d.userOrders(u.user.id).reduce((e,t)=>e+(t.checks?.length??0),0)+d.draftChecks.length:0),b=g(()=>{let e=u.user;return e?u.isAgent&&e.agentCode?T(e.agentCode):e.nationalId?T(e.nationalId.slice(-6).padStart(6,`0`)):T(e.id?.slice(-6)??`—`):T(`—`)}),N=g(()=>u.isAgent?`کد واسطه:`:`کد مشتری:`),P=g(()=>{let e=u.user?.phone??``;return e?`user${e.slice(-4)}@parsbaft.ir`:`—`}),F=g(()=>u.user?.createdAt?w(u.user.createdAt):`—`),I=g(()=>0),H=g(()=>[{label:`نام شرکت`,value:u.fullName||`—`},{label:`شناسه ملی`,value:u.user?.nationalId?T(u.user.nationalId):`—`},{label:`کد اقتصادی`,value:u.user?.nationalId?T(`4${u.user.nationalId.slice(0,10)}`):`—`},{label:`تاریخ عضویت`,value:F.value},{label:`نوع مشتری`,value:u.isAgent?`واسطه`:`مشتری عمده`,badge:!0},{label:`وضعیت حساب`,value:`فعال`,badge:!0}]),U=[{label:`حسابهای بانکی`,icon:J},{label:`آدرسها`,icon:Ye},{label:`حمایت و پشتیبانی`,icon:j,href:`tel:02112345678`},{label:`فاکتورهای من`,icon:E,path:`/orders`}],W=[{id:`profile`,label:`اطلاعات کاربری`,description:`ویرایش نام، موبایل و ایمیل`,icon:D,path:`/profile/edit`},{id:`security`,label:`امنیت حساب`,description:`تغییر رمز عبور و تنظیمات ورود`,icon:$,path:`/profile/security`},{id:`notifications`,label:`اعلانها`,description:`خبرهای فاکتور، چک و ارسال سفارش`,icon:M,path:`/profile/notifications`},{id:`display`,label:`تنظیمات`,description:`نمایش، اطلاعات کاربری و خروج`,icon:V,path:`/profile/display`},{id:`logout`,label:`خروج از حساب`,description:`پایان نشست و ورود مجدد`,icon:$,action:`logout`}];function Z(e){e.path?c.push(e.path):e.href&&(window.location.href=e.href)}function Q(e){if(e.action===`logout`){ee(`logout`);return}e.path&&c.push(e.path)}return(r,o)=>(a(),l(`div`,Xe,[o[11]||=t(`header`,{class:`desktop-profile__head`},[t(`h1`,{class:`desktop-profile__title`},`پروفایل`),t(`p`,{class:`desktop-profile__subtitle`},`مدیریت اطلاعات حساب کاربری و تنظیمات`)],-1),t(`section`,Ze,[t(`div`,Qe,[t(`div`,$e,[s(ne,{class:`profile-overview__avatar`,src:x(u).user?.avatarUrl,initials:_.value,size:92},null,8,[`src`,`initials`]),t(`button`,{type:`button`,class:`profile-overview__edit`,onClick:o[0]||=e=>x(c).push(`/profile/edit`)},[s(R,{size:16}),o[3]||=i(` ویرایش اطلاعات `,-1)])]),t(`div`,et,[t(`div`,tt,[t(`h2`,nt,f(x(u).fullName),1),t(`span`,rt,[s(z,{size:18})])]),t(`p`,it,[s(G,{size:15,class:`profile-overview__meta-icon`}),t(`span`,at,f(N.value),1),t(`span`,null,f(b.value),1)]),t(`p`,ot,[s(L,{size:15,class:`profile-overview__meta-icon`}),t(`span`,st,f(x(u).user?.phone),1)]),t(`p`,ct,[s(Y,{size:15,class:`profile-overview__meta-icon`}),t(`span`,lt,f(P.value),1)])])]),t(`div`,ut,[t(`article`,dt,[t(`span`,ft,[s(q,{size:20})]),t(`strong`,pt,f(x(S)(I.value)),1),o[4]||=t(`span`,{class:`profile-stat__label`},`موجودی اعتبار`,-1),o[5]||=t(`button`,{type:`button`,class:`profile-stat__link`},`مشاهده جزئیات`,-1)]),t(`article`,mt,[t(`span`,ht,[s(O,{size:20})]),t(`strong`,gt,f(x(C)(y.value)),1),o[6]||=t(`span`,{class:`profile-stat__label`},`چک فعال`,-1),t(`button`,{type:`button`,class:`profile-stat__link`,onClick:o[1]||=e=>x(c).push(`/profile/checks`)},` مشاهده همه `)]),t(`article`,_t,[t(`span`,vt,[s(E,{size:20})]),t(`strong`,yt,f(x(C)(v.value)),1),o[7]||=t(`span`,{class:`profile-stat__label`},`سفارش ثبتشده`,-1),t(`button`,{type:`button`,class:`profile-stat__link`,onClick:o[2]||=e=>x(c).push(`/orders`)},` مشاهده همه `)])])]),t(`div`,bt,[t(`section`,xt,[t(`h3`,St,[s(X,{size:18}),o[8]||=i(` تنظیمات حساب `,-1)]),t(`nav`,Ct,[(a(),l(n,null,p(W,n=>t(`button`,{key:n.id,type:`button`,class:`profile-settings__item`,onClick:e=>Q(n)},[t(`span`,Tt,[(a(),h(e(n.icon),{size:20}))]),t(`span`,Et,[t(`strong`,Dt,f(n.label),1),t(`span`,Ot,f(n.description),1)]),s(te,{size:16,class:`profile-settings__chevron`,"aria-hidden":`true`})],8,wt)),64))])]),t(`section`,kt,[t(`h3`,At,[s(K,{size:18}),o[9]||=i(` دسترسی سریع `,-1)]),t(`div`,jt,[(a(),l(n,null,p(U,n=>t(`button`,{key:n.label,type:`button`,class:`profile-quick-grid__item`,onClick:e=>Z(n)},[t(`span`,Nt,[(a(),h(e(n.icon),{size:22}))]),t(`span`,Pt,f(n.label),1)],8,Mt)),64))])]),t(`section`,Ft,[t(`h3`,It,[s(B,{size:18}),o[10]||=i(` اطلاعات شرکت `,-1)]),t(`dl`,Lt,[(a(!0),l(n,null,p(H.value,e=>(a(),l(`div`,{key:e.label,class:`profile-info-list__row`},[t(`dt`,null,f(e.label),1),t(`dd`,null,[e.badge?(a(),l(`span`,Rt,f(e.value),1)):(a(),l(n,{key:1},[i(f(e.value),1)],64))])]))),128))])])])]))}}),[[`__scopeId`,`data-v-0481e66d`]]),Bt=u({__name:`ProfileView`,setup(e){let t=m(),r=k();function i(){r.logout(),t.replace(`/login`)}return(e,t)=>(a(),l(n,null,[s(Je,{class:`mobile-only`}),s(zt,{class:`desktop-only`,onLogout:i})],64))}});export{Bt as default};
\ No newline at end of file
diff --git a/dist/assets/RegisterView-Cjx6Gvgv.js b/dist/assets/RegisterView-Cjx6Gvgv.js
new file mode 100644
index 0000000..fff154c
--- /dev/null
+++ b/dist/assets/RegisterView-Cjx6Gvgv.js
@@ -0,0 +1 @@
+import{A as e,Ct as t,D as n,Et as r,I as ee,L as i,M as a,N as o,O as te,P as s,R as c,S as ne,St as l,Y as u,Z as re,_ as d,it as f,j as p,mt as m,n as h,t as g,w as _,z as v}from"./BasicIcon-C6boaehV.js";import{t as ie}from"./dist-B7sUlTMM.js";import{c as y,u as ae}from"./format-BHJptHdF.js";import{a as b}from"./validation-BD7oi-2I.js";import{c as oe,g as se,m as x,o as S,x as C}from"./index-spodxsRN.js";import{t as ce}from"./FormErrorBanner-CjdBfIQT.js";import{t as le}from"./IconPhone-C0bnM4fV.js";import{n as ue,r as w,t as T}from"./formErrors-DglFjYkZ.js";import{t as E}from"./IconDiamond-Bgv1zgqc.js";var D=v({__name:`IconVerified`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(u(),a(g,{icon:`vuesax-linear:verify`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),O=`/assets/register-card-D_GOfNUU.jpg`,k={class:`page register-page`},A={class:`register-page__scroll`},j={class:`register-page__stage`},M={class:`register-top`},N={key:0,class:`reg-field__error`},P={key:1,class:`reg-field__error`},F={class:`reg-field__phone`,dir:`ltr`},I=[`value`],L={key:2,class:`reg-field__error`},R=[`aria-expanded`],z={class:`reg-field__meta`},B={key:0,class:`job-menu`,role:`listbox`},V=[`aria-selected`,`onClick`],H={key:1,class:`reg-field__error`},de=[`disabled`],fe={key:0,class:`register-submit__spinner`,"aria-hidden":`true`},pe={class:`register-submit__chevron`,"aria-hidden":`true`},me={class:`register-terms`},he={key:0,viewBox:`0 0 12 12`,fill:`none`},ge={key:3,class:`reg-field__error`},_e={class:`register-perks`,"aria-label":`مزایا`},ve={class:`register-perk`},ye={class:`register-perk`},be={class:`register-perk`},xe={class:`register-foot`},Se=[`src`],U=h(v({__name:`RegisterView`,setup(a){let h=d(),v=oe(),U=m(``),W=m(``),G=m(``),K=m(``),q=m(!0),J=m(!1),Y=m(null),X=m({}),Z=m(``),Ce=e(()=>G.value?ae(G.value):``),we=e(()=>x.find(e=>e.id===K.value)?.label??`دستهبندی شغلی`);ie(Y,()=>{J.value=!1});function Q(e){K.value=e,J.value=!1,$(`jobCategory`)}function $(e){X.value=ue(X.value,e),w(X.value)||(Z.value=``)}function Te(e){G.value=y(e),$(`phone`)}async function Ee(){X.value={},Z.value=``;let e=y(G.value),t={};if(U.value.trim()||(t.firstName=`نام الزامی است.`),W.value.trim()||(t.lastName=`نام خانوادگی الزامی است.`),b(e)||(t.phone=`شماره موبایل معتبر نیست.`),K.value||(t.jobCategory=`دستهبندی شغلی الزامی است.`),q.value||(t.terms=`پذیرش قوانین برای ثبتنام لازم است.`),w(t)){X.value=t,Z.value=T;return}let n={firstName:U.value.trim(),lastName:W.value.trim(),jobCategory:K.value};se(n);let r=await v.requestOtp(e,{isRegister:!0,firstName:n.firstName,lastName:n.lastName});r.success?h.push({name:`otp`,query:{phone:e,mode:`register`}}):Z.value=r.message??`خطا در ارسال کد تأیید.`}return(e,a)=>(u(),s(`div`,k,[p(`div`,A,[p(`div`,j,[p(`header`,M,[a[8]||=p(`p`,{class:`register-top__welcome`},`همراه ما باشید`,-1),p(`button`,{type:`button`,class:`register-top__back`,"aria-label":`بازگشت`,onClick:a[0]||=e=>l(h).push(`/login`)},[c(S,{size:20,color:`#2A2622`})])]),a[18]||=p(`h1`,{class:`register-title`},`ثبتنام در نادمی تکس`,-1),a[19]||=p(`p`,{class:`register-lead`},`با چند مرحله ساده، عضوی از خانواده ما شوید.`,-1),p(`form`,{class:`register-form`,onSubmit:n(Ee,[`prevent`])},[c(ce,{message:Z.value},null,8,[`message`]),p(`label`,{class:t([`reg-field`,{"is-invalid":!!X.value.firstName}])},[c(C,{size:18,color:`#8A847C`}),f(p(`input`,{"onUpdate:modelValue":a[1]||=e=>U.value=e,class:`reg-field__input`,type:`text`,autocomplete:`given-name`,onInput:a[2]||=e=>$(`firstName`),placeholder:`نام`},null,544),[[_,U.value]])],2),X.value.firstName?(u(),s(`p`,N,r(X.value.firstName),1)):o(``,!0),p(`label`,{class:t([`reg-field`,{"is-invalid":!!X.value.lastName}])},[c(C,{size:18,color:`#8A847C`}),f(p(`input`,{"onUpdate:modelValue":a[3]||=e=>W.value=e,class:`reg-field__input`,type:`text`,dir:`rtl`,autocomplete:`family-name`,onInput:a[4]||=e=>$(`lastName`),placeholder:`نام خانوادگی`},null,544),[[_,W.value]])],2),X.value.lastName?(u(),s(`p`,P,r(X.value.lastName),1)):o(``,!0),p(`label`,{class:t([`reg-field`,{"is-invalid":!!X.value.phone}])},[c(le,{size:18,color:`#8A847C`}),p(`span`,F,[a[9]||=ee(``,1),p(`input`,{class:`reg-field__input reg-field__input--phone`,value:Ce.value,type:`tel`,inputmode:`numeric`,autocomplete:`tel`,dir:`rtl`,maxlength:`11`,placeholder:`شماره موبایل`,onInput:a[5]||=e=>Te(e.target.value)},null,40,I)])],2),X.value.phone?(u(),s(`p`,L,r(X.value.phone),1)):o(``,!0),p(`div`,{ref_key:`jobRoot`,ref:Y,class:`job-wrap`},[p(`button`,{type:`button`,class:t([`reg-field job-trigger`,{"is-open":J.value,"is-invalid":!!X.value.jobCategory}]),"aria-haspopup":`listbox`,"aria-expanded":J.value,onClick:a[6]||=e=>J.value=!J.value},[p(`span`,z,[c(g,{icon:`vuesax-linear:category`,size:18,color:`#8A847C`}),p(`span`,{class:t({"is-placeholder":!K.value})},r(we.value),3)]),a[10]||=p(`svg`,{class:`job-chevron`,viewBox:`0 0 12 12`,"aria-hidden":`true`},[p(`path`,{d:`M2.5 4.5 6 8l3.5-3.5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`})],-1)],10,R),J.value?(u(),s(`ul`,B,[(u(!0),s(te,null,re(l(x),e=>(u(),s(`li`,{key:e.id},[p(`button`,{type:`button`,role:`option`,class:t([`job-option`,{"is-active":K.value===e.id}]),"aria-selected":K.value===e.id,onClick:t=>Q(e.id)},r(e.label),11,V)]))),128))])):o(``,!0),X.value.jobCategory?(u(),s(`p`,H,r(X.value.jobCategory),1)):o(``,!0)],512),p(`button`,{class:`register-submit`,type:`submit`,disabled:l(v).loading},[l(v).loading?(u(),s(`span`,fe)):o(``,!0),p(`span`,pe,[c(S,{size:18,color:`#F4EDE4`})]),a[11]||=p(`span`,null,`دریافت کد تأیید`,-1)],8,de),p(`label`,me,[f(p(`input`,{"onUpdate:modelValue":a[7]||=e=>q.value=e,class:`register-terms__native`,type:`checkbox`},null,512),[[ne,q.value]]),p(`span`,{class:t([`register-terms__box`,{"is-on":q.value}]),"aria-hidden":`true`},[q.value?(u(),s(`svg`,he,[...a[12]||=[p(`path`,{d:`M2.2 6.2 4.7 8.7 9.8 3.4`,stroke:`#fff`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)]])):o(``,!0)],2),a[13]||=p(`span`,null,[i(` با ثبتنام، `),p(`strong`,null,`قوانین و شرایط`),i(` استفاده از سرویس را میپذیرم. `)],-1)]),X.value.terms?(u(),s(`p`,ge,r(X.value.terms),1)):o(``,!0)],32),p(`section`,_e,[p(`article`,ve,[c(D,{size:22,color:`#6F6B66`}),a[14]||=p(`strong`,null,`اطمینان از اصالت محصولات`,-1)]),p(`article`,ye,[c(g,{icon:`vuesax-linear:truck-time`,size:22,color:`#6F6B66`}),a[15]||=p(`strong`,null,`دسترسی سریع به کالیتههای جدید`,-1)]),p(`article`,be,[c(E,{size:22,color:`#6F6B66`}),a[16]||=p(`strong`,null,`تجربه خرید ویژه مشتریان`,-1)])]),p(`div`,xe,[p(`img`,{class:`register-foot__bg`,src:l(O),alt:``},null,8,Se),a[17]||=p(`p`,{class:`register-foot__copy`},[i(`همراه حرفهای`),p(`br`),i(`کسبوکار شما`)],-1)])])])]))}}),[[`__scopeId`,`data-v-2a0cf12d`]]);export{U as default};
\ No newline at end of file
diff --git a/dist/assets/RegisterView-CylManm7.js b/dist/assets/RegisterView-CylManm7.js
deleted file mode 100644
index b09ee76..0000000
--- a/dist/assets/RegisterView-CylManm7.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,C as t,D as n,E as r,F as ee,I as i,J as a,L as o,M as s,N as c,R as te,St as l,Tt as u,X as d,_ as f,k as p,n as m,pt as h,rt as g,t as _,x as ne,xt as v}from"./BasicIcon-B6lR-mG3.js";import{t as re}from"./dist-DwqEDRqq.js";import{c as y,u as ie}from"./format-BHJptHdF.js";import{a as ae}from"./validation-BD7oi-2I.js";import{S as b,c as oe,d as x,o as S,p as se}from"./index-B20WsQhf.js";import{t as ce}from"./FormErrorBanner-8PcsTbdO.js";import{t as le}from"./IconPhone-Glpo76KE.js";import{n as ue,r as C,t as de}from"./formErrors-DglFjYkZ.js";import{t as w}from"./IconDiamond-7-J5Q2Ma.js";import{t as T}from"./IconVerified-BSlZDcZt.js";var E=`/assets/register-card-D_GOfNUU.jpg`,D={class:`page register-page`},O={class:`register-page__scroll`},k={class:`register-page__stage`},A={class:`register-top`},j={key:0,class:`reg-field__error`},M={key:1,class:`reg-field__error`},N={class:`reg-field__phone`,dir:`ltr`},P=[`value`],F={key:2,class:`reg-field__error`},I=[`aria-expanded`],L={class:`reg-field__meta`},R={key:0,class:`job-menu`,role:`listbox`},z=[`aria-selected`,`onClick`],B={key:1,class:`reg-field__error`},V=[`disabled`],H={key:0,class:`register-submit__spinner`,"aria-hidden":`true`},fe={class:`register-submit__chevron`,"aria-hidden":`true`},pe={class:`register-terms`},me={key:0,viewBox:`0 0 12 12`,fill:`none`},he={key:3,class:`reg-field__error`},ge={class:`register-perks`,"aria-label":`مزایا`},_e={class:`register-perk`},ve={class:`register-perk`},ye={class:`register-perk`},be={class:`register-foot`},xe=[`src`],U=m(te({__name:`RegisterView`,setup(te){let m=f(),U=oe(),W=h(``),G=h(``),K=h(``),q=h(``),J=h(!0),Y=h(!1),X=h(null),Z=h({}),Q=h(``),Se=p(()=>K.value?ie(K.value):``),Ce=p(()=>x.find(e=>e.id===q.value)?.label??`دستهبندی شغلی`);re(X,()=>{Y.value=!1});function we(e){q.value=e,Y.value=!1,$(`jobCategory`)}function $(e){Z.value=ue(Z.value,e),C(Z.value)||(Q.value=``)}function Te(e){K.value=y(e),$(`phone`)}async function Ee(){Z.value={},Q.value=``;let e=y(K.value),t={};if(W.value.trim()||(t.firstName=`نام الزامی است.`),G.value.trim()||(t.lastName=`نام خانوادگی الزامی است.`),ae(e)||(t.phone=`شماره موبایل معتبر نیست.`),q.value||(t.jobCategory=`دستهبندی شغلی الزامی است.`),J.value||(t.terms=`پذیرش قوانین برای ثبتنام لازم است.`),C(t)){Z.value=t,Q.value=de;return}let n={firstName:W.value.trim(),lastName:G.value.trim(),jobCategory:q.value};se(n);let r=await U.requestOtp(e,{isRegister:!0,firstName:n.firstName,lastName:n.lastName});r.success?m.push({name:`otp`,query:{phone:e,mode:`register`}}):Q.value=r.message??`خطا در ارسال کد تأیید.`}return(te,f)=>(a(),c(`div`,D,[e(`div`,O,[e(`div`,k,[e(`header`,A,[f[8]||=e(`p`,{class:`register-top__welcome`},`همراه ما باشید`,-1),e(`button`,{type:`button`,class:`register-top__back`,"aria-label":`بازگشت`,onClick:f[0]||=e=>v(m).push(`/login`)},[o(S,{size:20,color:`#2A2622`})])]),f[18]||=e(`h1`,{class:`register-title`},`ثبتنام در نادمی تکس`,-1),f[19]||=e(`p`,{class:`register-lead`},`با چند مرحله ساده، عضوی از خانواده ما شوید.`,-1),e(`form`,{class:`register-form`,onSubmit:r(Ee,[`prevent`])},[o(ce,{message:Q.value},null,8,[`message`]),e(`label`,{class:l([`reg-field`,{"is-invalid":!!Z.value.firstName}])},[o(b,{size:18,color:`#8A847C`}),g(e(`input`,{"onUpdate:modelValue":f[1]||=e=>W.value=e,class:`reg-field__input`,type:`text`,autocomplete:`given-name`,onInput:f[2]||=e=>$(`firstName`),placeholder:`نام`},null,544),[[t,W.value]])],2),Z.value.firstName?(a(),c(`p`,j,u(Z.value.firstName),1)):s(``,!0),e(`label`,{class:l([`reg-field`,{"is-invalid":!!Z.value.lastName}])},[o(b,{size:18,color:`#8A847C`}),g(e(`input`,{"onUpdate:modelValue":f[3]||=e=>G.value=e,class:`reg-field__input`,type:`text`,dir:`rtl`,autocomplete:`family-name`,onInput:f[4]||=e=>$(`lastName`),placeholder:`نام خانوادگی`},null,544),[[t,G.value]])],2),Z.value.lastName?(a(),c(`p`,M,u(Z.value.lastName),1)):s(``,!0),e(`label`,{class:l([`reg-field`,{"is-invalid":!!Z.value.phone}])},[o(le,{size:18,color:`#8A847C`}),e(`span`,N,[f[9]||=ee(``,1),e(`input`,{class:`reg-field__input reg-field__input--phone`,value:Se.value,type:`tel`,inputmode:`numeric`,autocomplete:`tel`,dir:`rtl`,maxlength:`11`,placeholder:`شماره موبایل`,onInput:f[5]||=e=>Te(e.target.value)},null,40,P)])],2),Z.value.phone?(a(),c(`p`,F,u(Z.value.phone),1)):s(``,!0),e(`div`,{ref_key:`jobRoot`,ref:X,class:`job-wrap`},[e(`button`,{type:`button`,class:l([`reg-field job-trigger`,{"is-open":Y.value,"is-invalid":!!Z.value.jobCategory}]),"aria-haspopup":`listbox`,"aria-expanded":Y.value,onClick:f[6]||=e=>Y.value=!Y.value},[e(`span`,L,[o(_,{icon:`vuesax-linear:category`,size:18,color:`#8A847C`}),e(`span`,{class:l({"is-placeholder":!q.value})},u(Ce.value),3)]),f[10]||=e(`svg`,{class:`job-chevron`,viewBox:`0 0 12 12`,"aria-hidden":`true`},[e(`path`,{d:`M2.5 4.5 6 8l3.5-3.5`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.4`,"stroke-linecap":`round`})],-1)],10,I),Y.value?(a(),c(`ul`,R,[(a(!0),c(n,null,d(v(x),t=>(a(),c(`li`,{key:t.id},[e(`button`,{type:`button`,role:`option`,class:l([`job-option`,{"is-active":q.value===t.id}]),"aria-selected":q.value===t.id,onClick:e=>we(t.id)},u(t.label),11,z)]))),128))])):s(``,!0),Z.value.jobCategory?(a(),c(`p`,B,u(Z.value.jobCategory),1)):s(``,!0)],512),e(`button`,{class:`register-submit`,type:`submit`,disabled:v(U).loading},[v(U).loading?(a(),c(`span`,H)):s(``,!0),e(`span`,fe,[o(S,{size:18,color:`#F4EDE4`})]),f[11]||=e(`span`,null,`دریافت کد تأیید`,-1)],8,V),e(`label`,pe,[g(e(`input`,{"onUpdate:modelValue":f[7]||=e=>J.value=e,class:`register-terms__native`,type:`checkbox`},null,512),[[ne,J.value]]),e(`span`,{class:l([`register-terms__box`,{"is-on":J.value}]),"aria-hidden":`true`},[J.value?(a(),c(`svg`,me,[...f[12]||=[e(`path`,{d:`M2.2 6.2 4.7 8.7 9.8 3.4`,stroke:`#fff`,"stroke-width":`1.6`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)]])):s(``,!0)],2),f[13]||=e(`span`,null,[i(` با ثبتنام، `),e(`strong`,null,`قوانین و شرایط`),i(` استفاده از سرویس را میپذیرم. `)],-1)]),Z.value.terms?(a(),c(`p`,he,u(Z.value.terms),1)):s(``,!0)],32),e(`section`,ge,[e(`article`,_e,[o(T,{size:22,color:`#6F6B66`}),f[14]||=e(`strong`,null,`اطمینان از اصالت محصولات`,-1)]),e(`article`,ve,[o(_,{icon:`vuesax-linear:truck-time`,size:22,color:`#6F6B66`}),f[15]||=e(`strong`,null,`دسترسی سریع به کالیتههای جدید`,-1)]),e(`article`,ye,[o(w,{size:22,color:`#6F6B66`}),f[16]||=e(`strong`,null,`تجربه خرید ویژه مشتریان`,-1)])]),e(`div`,be,[e(`img`,{class:`register-foot__bg`,src:v(E),alt:``},null,8,xe),f[17]||=e(`p`,{class:`register-foot__copy`},[i(`همراه حرفهای`),e(`br`),i(`کسبوکار شما`)],-1)])])])]))}}),[[`__scopeId`,`data-v-2a0cf12d`]]);export{U as default};
\ No newline at end of file
diff --git a/dist/assets/ReminderDetailView-5GG_ljLb.js b/dist/assets/ReminderDetailView-5GG_ljLb.js
deleted file mode 100644
index f2178dc..0000000
--- a/dist/assets/ReminderDetailView-5GG_ljLb.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,D as t,J as n,K as r,L as i,M as a,N as o,R as s,Tt as c,X as l,_ as u,et as d,g as f,k as p,n as m,pt as h,wt as g,xt as _}from"./BasicIcon-B6lR-mG3.js";import{c as v}from"./index-B20WsQhf.js";import{t as ee}from"./PageSkeleton-BImjuI6S.js";import{t as y}from"./crm-DbcoqKAF.js";import{t as b}from"./PageHeader-DXkA75qK.js";var x={key:0,class:`page reminder-detail`},S={class:`page__scroll detail-scroll`},C={key:0,class:`form-error`},w={class:`layout`},T={class:`panel`},E={class:`field`},D={class:`field`},O={class:`customer-line`},k={class:`field`},A={class:`field`},j={class:`field`},M={class:`actions`},N=[`disabled`],P={class:`panel`},F={class:`panel chart-panel`},I={class:`bars`},L={class:`stats-grid`},R={key:1,class:`page empty`},z={key:2,class:`page empty`},B=m(s({__name:`ReminderDetailView`,setup(s){let m=f(),B=u(),V=y(),H=v(),U=p(()=>String(m.query.id??``)),W=h(null),G=h(null),K=h([]),q=h(!0),J=h(!1),Y=h(null);async function X(){if(!U.value){W.value=null,q.value=!1;return}q.value=!0,Y.value=null;try{let e=await V.loadReminderDetail(U.value);W.value=e.reminder,G.value=e.customer,K.value=e.history}catch(e){W.value=null,Y.value=e instanceof Error?e.message:`یادآور یافت نشد.`}finally{q.value=!1}}r(X),d(U,X);function Z(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس تلفنی`:e===`message`?`پیام`:`یادداشت`}async function Q(){if(!(!W.value||W.value.completed)){J.value=!0,Y.value=null;try{await V.markReminderComplete(W.value.id),W.value={...W.value,completed:!0},B.push(`/reminders?filter=today`)}catch(e){Y.value=e instanceof Error?e.message:`تکمیل یادآور ناموفق بود.`}finally{J.value=!1}}}let te=p(()=>H.fullName||`واسطه`),$=p(()=>{let e=K.value;return{total:e.length,inPerson:e.filter(e=>e.type===`in_person`).length,call:e.filter(e=>e.type===`call`).length,other:e.filter(e=>e.type===`message`||e.type===`note`).length}}),ne=p(()=>{let e=Array.from({length:6},()=>({a:0,b:0,c:0}));K.value.forEach((t,n)=>{let r=e[n%6];r&&(t.type===`in_person`?r.a+=1:t.type===`call`?r.b+=1:r.c+=1)});let t=Math.max(1,...e.map(e=>e.a+e.b+e.c));return e.map(e=>({a:`${e.a/t*100}%`,b:`${e.b/t*100}%`,c:`${e.c/t*100}%`}))});return(r,s)=>W.value&&G.value?(n(),o(`div`,x,[i(b,{title:`جزئیات یادآور`,"show-back":``,centered:``,onBack:s[0]||=e=>_(B).back()}),e(`div`,S,[Y.value?(n(),o(`p`,C,c(Y.value),1)):a(``,!0),e(`div`,w,[e(`section`,T,[s[8]||=e(`h2`,null,`جزئیات یادآور`,-1),e(`div`,E,[s[3]||=e(`span`,null,`عنوان`,-1),e(`strong`,null,c(W.value.title)+` — `+c(W.value.description),1)]),e(`div`,D,[s[4]||=e(`span`,null,`مشتری`,-1),e(`div`,O,[e(`div`,{class:`avatar`,style:g({background:G.value.avatarColor})},c(G.value.avatarLetter),5),e(`div`,null,[e(`strong`,null,c(G.value.name),1),e(`p`,null,c(G.value.contactName),1)])])]),e(`div`,k,[s[5]||=e(`span`,null,`فروشنده حامل حضوری`,-1),e(`strong`,null,c(te.value),1)]),e(`div`,A,[s[6]||=e(`span`,null,`تاریخ و زمان`,-1),e(`strong`,null,c(W.value.date)+` — `+c(W.value.time),1)]),e(`div`,j,[s[7]||=e(`span`,null,`یادداشت`,-1),e(`strong`,null,c(W.value.note||`—`),1)]),e(`div`,M,[e(`button`,{type:`button`,class:`btn-outline`,onClick:s[1]||=e=>_(B).back()},`ویرایش`),e(`button`,{type:`button`,class:`btn-primary`,disabled:J.value||W.value.completed,onClick:Q},c(W.value.completed?`تکمیلشده`:J.value?`...`:`تکمیل شد`),9,N)])]),e(`section`,P,[s[9]||=e(`h2`,null,`تاریخچه تعاملات`,-1),(n(!0),o(t,null,l(K.value,t=>(n(),o(`article`,{key:t.id,class:`history-row`},[e(`div`,null,[e(`strong`,null,c(Z(t.type)),1),e(`p`,null,c(t.description),1)]),e(`span`,null,c(t.date),1)]))),128)),e(`button`,{type:`button`,class:`see-all`,onClick:s[2]||=e=>_(B).push({path:`/customer`,query:{id:G.value.id,tab:`reports`}})},` مشاهده همه `)]),e(`section`,F,[s[14]||=e(`div`,{class:`chart-panel__head`},[e(`h2`,null,`نمودار فعالیت`),e(`span`,null,`تعاملات ثبتشده`)],-1),e(`div`,I,[(n(!0),o(t,null,l(ne.value,(e,t)=>(n(),o(`div`,{key:t,class:`bar`},[e.c===`0%`?a(``,!0):(n(),o(`span`,{key:0,class:`seg seg--c`,style:g({height:e.c})},null,4)),e.b===`0%`?a(``,!0):(n(),o(`span`,{key:1,class:`seg seg--b`,style:g({height:e.b})},null,4)),e.a===`0%`?a(``,!0):(n(),o(`span`,{key:2,class:`seg seg--a`,style:g({height:e.a})},null,4))]))),128))]),e(`div`,L,[e(`div`,null,[s[10]||=e(`span`,null,`کل تعاملات`,-1),e(`strong`,null,c($.value.total.toLocaleString(`fa-IR`))+` مورد`,1)]),e(`div`,null,[s[11]||=e(`span`,null,`ملاقات حضوری`,-1),e(`strong`,null,c($.value.inPerson.toLocaleString(`fa-IR`))+` مورد`,1)]),e(`div`,null,[s[12]||=e(`span`,null,`تماس تلفنی`,-1),e(`strong`,null,c($.value.call.toLocaleString(`fa-IR`))+` مورد`,1)]),e(`div`,null,[s[13]||=e(`span`,null,`یادداشت و پیام`,-1),e(`strong`,null,c($.value.other.toLocaleString(`fa-IR`))+` مورد`,1)])])])])])])):q.value?(n(),o(`div`,R,[i(ee,{variant:`detail`})])):(n(),o(`div`,z,[e(`p`,null,c(Y.value||`یادآور یافت نشد.`),1)]))}}),[[`__scopeId`,`data-v-9fc8e0f1`]]);export{B as default};
\ No newline at end of file
diff --git a/dist/assets/ReminderDetailView-CQX6_0TU.js b/dist/assets/ReminderDetailView-CQX6_0TU.js
new file mode 100644
index 0000000..8f8b375
--- /dev/null
+++ b/dist/assets/ReminderDetailView-CQX6_0TU.js
@@ -0,0 +1 @@
+import{A as e,Et as t,N as n,O as r,P as i,R as a,St as o,Tt as s,Y as c,Z as l,_ as u,g as d,j as f,mt as p,n as m,q as h,tt as g,z as _}from"./BasicIcon-C6boaehV.js";import{c as v}from"./index-spodxsRN.js";import{t as y}from"./PageSkeleton-uO-jhbNm.js";import{t as b}from"./crm-CtglbPsN.js";import{t as x}from"./PageHeader-BaJqBjIW.js";var S={key:0,class:`page reminder-detail`},C={class:`page__scroll detail-scroll`},w={key:0,class:`form-error`},T={class:`layout`},ee={class:`panel`},E={class:`field`},D={class:`field`},O={class:`customer-line`},k={class:`field`},A={class:`field`},j={class:`field`},M={class:`actions`},N=[`disabled`],P={class:`panel`},F={class:`panel chart-panel`},I={class:`bars`},L={class:`stats-grid`},R={key:1,class:`page empty`},z={key:2,class:`page empty`},B=m(_({__name:`ReminderDetailView`,setup(m){let _=d(),B=u(),V=b(),H=v(),U=e(()=>String(_.query.id??``)),W=p(null),G=p(null),K=p([]),q=p(!0),J=p(!1),Y=p(null);async function X(){if(!U.value){W.value=null,q.value=!1;return}q.value=!0,Y.value=null;try{let e=await V.loadReminderDetail(U.value);W.value=e.reminder,G.value=e.customer,K.value=e.history}catch(e){W.value=null,Y.value=e instanceof Error?e.message:`یادآور یافت نشد.`}finally{q.value=!1}}h(X),g(U,X);function Z(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس تلفنی`:e===`message`?`پیام`:`یادداشت`}async function Q(){if(!(!W.value||W.value.completed)){J.value=!0,Y.value=null;try{await V.markReminderComplete(W.value.id),W.value={...W.value,completed:!0},B.push(`/reminders?filter=today`)}catch(e){Y.value=e instanceof Error?e.message:`تکمیل یادآور ناموفق بود.`}finally{J.value=!1}}}let te=e(()=>H.fullName||`واسطه`),$=e(()=>{let e=K.value;return{total:e.length,inPerson:e.filter(e=>e.type===`in_person`).length,call:e.filter(e=>e.type===`call`).length,other:e.filter(e=>e.type===`message`||e.type===`note`).length}}),ne=e(()=>{let e=Array.from({length:6},()=>({a:0,b:0,c:0}));K.value.forEach((t,n)=>{let r=e[n%6];r&&(t.type===`in_person`?r.a+=1:t.type===`call`?r.b+=1:r.c+=1)});let t=Math.max(1,...e.map(e=>e.a+e.b+e.c));return e.map(e=>({a:`${e.a/t*100}%`,b:`${e.b/t*100}%`,c:`${e.c/t*100}%`}))});return(e,u)=>W.value&&G.value?(c(),i(`div`,S,[a(x,{title:`جزئیات یادآور`,"show-back":``,centered:``,onBack:u[0]||=e=>o(B).back()}),f(`div`,C,[Y.value?(c(),i(`p`,w,t(Y.value),1)):n(``,!0),f(`div`,T,[f(`section`,ee,[u[8]||=f(`h2`,null,`جزئیات یادآور`,-1),f(`div`,E,[u[3]||=f(`span`,null,`عنوان`,-1),f(`strong`,null,t(W.value.title)+` — `+t(W.value.description),1)]),f(`div`,D,[u[4]||=f(`span`,null,`مشتری`,-1),f(`div`,O,[f(`div`,{class:`avatar`,style:s({background:G.value.avatarColor})},t(G.value.avatarLetter),5),f(`div`,null,[f(`strong`,null,t(G.value.name),1),f(`p`,null,t(G.value.contactName),1)])])]),f(`div`,k,[u[5]||=f(`span`,null,`فروشنده حامل حضوری`,-1),f(`strong`,null,t(te.value),1)]),f(`div`,A,[u[6]||=f(`span`,null,`تاریخ و زمان`,-1),f(`strong`,null,t(W.value.date)+` — `+t(W.value.time),1)]),f(`div`,j,[u[7]||=f(`span`,null,`یادداشت`,-1),f(`strong`,null,t(W.value.note||`—`),1)]),f(`div`,M,[f(`button`,{type:`button`,class:`btn-outline`,onClick:u[1]||=e=>o(B).back()},`ویرایش`),f(`button`,{type:`button`,class:`btn-primary`,disabled:J.value||W.value.completed,onClick:Q},t(W.value.completed?`تکمیلشده`:J.value?`...`:`تکمیل شد`),9,N)])]),f(`section`,P,[u[9]||=f(`h2`,null,`تاریخچه تعاملات`,-1),(c(!0),i(r,null,l(K.value,e=>(c(),i(`article`,{key:e.id,class:`history-row`},[f(`div`,null,[f(`strong`,null,t(Z(e.type)),1),f(`p`,null,t(e.description),1)]),f(`span`,null,t(e.date),1)]))),128)),f(`button`,{type:`button`,class:`see-all`,onClick:u[2]||=e=>o(B).push({path:`/customer`,query:{id:G.value.id,tab:`reports`}})},` مشاهده همه `)]),f(`section`,F,[u[14]||=f(`div`,{class:`chart-panel__head`},[f(`h2`,null,`نمودار فعالیت`),f(`span`,null,`تعاملات ثبتشده`)],-1),f(`div`,I,[(c(!0),i(r,null,l(ne.value,(e,t)=>(c(),i(`div`,{key:t,class:`bar`},[e.c===`0%`?n(``,!0):(c(),i(`span`,{key:0,class:`seg seg--c`,style:s({height:e.c})},null,4)),e.b===`0%`?n(``,!0):(c(),i(`span`,{key:1,class:`seg seg--b`,style:s({height:e.b})},null,4)),e.a===`0%`?n(``,!0):(c(),i(`span`,{key:2,class:`seg seg--a`,style:s({height:e.a})},null,4))]))),128))]),f(`div`,L,[f(`div`,null,[u[10]||=f(`span`,null,`کل تعاملات`,-1),f(`strong`,null,t($.value.total.toLocaleString(`fa-IR`))+` مورد`,1)]),f(`div`,null,[u[11]||=f(`span`,null,`ملاقات حضوری`,-1),f(`strong`,null,t($.value.inPerson.toLocaleString(`fa-IR`))+` مورد`,1)]),f(`div`,null,[u[12]||=f(`span`,null,`تماس تلفنی`,-1),f(`strong`,null,t($.value.call.toLocaleString(`fa-IR`))+` مورد`,1)]),f(`div`,null,[u[13]||=f(`span`,null,`یادداشت و پیام`,-1),f(`strong`,null,t($.value.other.toLocaleString(`fa-IR`))+` مورد`,1)])])])])])])):q.value?(c(),i(`div`,R,[a(y,{variant:`detail`})])):(c(),i(`div`,z,[f(`p`,null,t(Y.value||`یادآور یافت نشد.`),1)]))}}),[[`__scopeId`,`data-v-9fc8e0f1`]]);export{B as default};
\ No newline at end of file
diff --git a/dist/assets/RemindersView-DIKKpasp.js b/dist/assets/RemindersView-DIKKpasp.js
new file mode 100644
index 0000000..e86d7c1
--- /dev/null
+++ b/dist/assets/RemindersView-DIKKpasp.js
@@ -0,0 +1 @@
+import{A as e,C as ee,Ct as t,D as te,Et as n,L as r,M as ne,N as i,O as a,P as o,R as s,St as c,Tt as re,Y as l,Z as u,_ as d,g as ie,it as f,j as p,mt as m,n as ae,q as oe,tt as se,w as h,z as g}from"./BasicIcon-C6boaehV.js";import{o as _}from"./format-BHJptHdF.js";import{i as ce,s as le,y as ue}from"./index-spodxsRN.js";import{t as de}from"./IconChevronBack-DORV2H0q.js";import{t as fe}from"./IconMoreVertical-BPkOm_2U.js";import{t as pe}from"./PageSkeleton-uO-jhbNm.js";import{t as me}from"./crm-CtglbPsN.js";import{t as he}from"./useGoBack-CgNp0uP9.js";var ge={class:`page reminders-page`},_e={class:`top`},v={class:`top__actions`},y={class:`page__scroll page__scroll--with-nav reminders-scroll`},b={class:`filters`},x=[`onClick`],S={key:0,class:`count-badge`},C={key:1},w={key:2,class:`create-panel`},T={key:0,class:`create-error`},E=[`value`],D={class:`create-row`},O={class:`create-actions`},k=[`disabled`],A={key:3,class:`summary`},j={class:`summary__head`},M={class:`summary__label`},N={class:`summary__count`},P=[`onClick`],F={class:`time`},I=[`onClick`],L={class:`reminder-card__body`},ve={class:`reminder-card__top`},ye={class:`customer`},be={class:`contact`},xe={class:`desc`},R=ae(g({__name:`RemindersView`,setup(ae){let g=ie(),R=d(),{goBack:z}=he(`/`),B=me(),V=e(()=>String(g.query.filter??`today`)),H=m([]),U=m([]),W=m(!0),G=m(null),K=m(!1),q=m(!1),J=m({customerId:``,title:``,date:``,time:`10:00`,note:``}),Se=[{id:`all`,label:`همه`},{id:`today`,label:`امروز`},{id:`week`,label:`هفته آینده`},{id:`past`,label:`گذشته`}],Y=e(()=>H.value.filter(e=>!e.completed)),X=e(()=>H.value.filter(e=>e.completed)),Ce=e(()=>Y.value.length),Z=e(()=>X.value.length);async function Q(){W.value=!0,G.value=null;try{H.value=await B.loadReminders(V.value)}catch(e){G.value=e instanceof Error?e.message:`بارگذاری یادآورها ناموفق بود.`,H.value=[]}finally{W.value=!1}}oe(Q),se(V,Q);function $(e){R.replace({path:`/reminders`,query:{filter:e}})}async function we(e){try{await B.markReminderComplete(e),await Q()}catch(e){G.value=e instanceof Error?e.message:`تکمیل یادآور ناموفق بود.`}}function Te(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس تلفنی`:e===`message`?`پیام`:`یادداشت`}function Ee(e){return e===`in_person`?`tag--green`:e===`call`?`tag--blue`:`tag--purple`}let De=e(()=>V.value===`today`?`پیگیریهای امروز`:V.value===`week`?`پیگیریهای هفته آینده`:V.value===`past`?`پیگیریهای گذشته`:`پیگیریهای باز`);async function Oe(){K.value=!0,G.value=null;try{if(U.value=await B.loadCustomers(),!J.value.customerId&&U.value[0]&&(J.value.customerId=U.value[0].id),!J.value.date){let e=new Date;J.value.date=`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}}catch(e){G.value=e instanceof Error?e.message:`بارگذاری مشتریان ناموفق بود.`}}async function ke(){if(!J.value.customerId||!J.value.title.trim()||!J.value.date||!J.value.time){G.value=`مشتری، عنوان، تاریخ و ساعت الزامی است.`;return}q.value=!0,G.value=null;try{await B.createReminder({customerId:J.value.customerId,title:J.value.title.trim(),date:J.value.date,time:J.value.time,note:J.value.note.trim()||void 0,description:J.value.note.trim()||void 0}),K.value=!1,J.value.title=``,J.value.note=``,await Q()}catch(e){G.value=e instanceof Error?e.message:`ثبت یادآور ناموفق بود.`}finally{q.value=!1}}return(e,d)=>(l(),o(`div`,ge,[p(`header`,_e,[p(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:d[0]||=(...e)=>c(z)&&c(z)(...e)},[s(de,{size:20})]),d[9]||=p(`h1`,null,`یادآورها`,-1),p(`div`,v,[s(ce,{variant:`inline`}),p(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلانها`,onClick:d[1]||=e=>c(R).push(`/profile/notifications`)},[s(le,{size:18})])])]),p(`div`,y,[p(`div`,b,[(l(),o(a,null,u(Se,e=>p(`button`,{key:e.id,type:`button`,class:t([`filter`,{"filter--active":V.value===e.id}]),onClick:ee=>$(e.id)},[r(n(e.label)+` `,1),e.id===`past`&&Z.value?(l(),o(`span`,S,n(Z.value.toLocaleString(`fa-IR`)),1)):i(``,!0)],10,x)),64))]),W.value?(l(),ne(pe,{key:0,variant:`list`})):G.value&&!K.value?(l(),o(`p`,C,n(G.value),1)):i(``,!0),K.value?(l(),o(`section`,w,[d[16]||=p(`h3`,null,`یادآور جدید`,-1),G.value?(l(),o(`p`,T,n(G.value),1)):i(``,!0),p(`label`,null,[d[11]||=r(` مشتری `,-1),f(p(`select`,{"onUpdate:modelValue":d[2]||=e=>J.value.customerId=e},[d[10]||=p(`option`,{disabled:``,value:``},`انتخاب مشتری`,-1),(l(!0),o(a,null,u(U.value,e=>(l(),o(`option`,{key:e.id,value:e.id},n(e.name||e.contactName),9,E))),128))],512),[[ee,J.value.customerId]])]),p(`label`,null,[d[12]||=r(` عنوان `,-1),f(p(`input`,{"onUpdate:modelValue":d[3]||=e=>J.value.title=e,type:`text`,placeholder:`مثلاً پیگیری نمونه`},null,512),[[h,J.value.title]])]),p(`div`,D,[p(`label`,null,[d[13]||=r(` تاریخ `,-1),f(p(`input`,{"onUpdate:modelValue":d[4]||=e=>J.value.date=e,type:`date`},null,512),[[h,J.value.date]])]),p(`label`,null,[d[14]||=r(` ساعت `,-1),f(p(`input`,{"onUpdate:modelValue":d[5]||=e=>J.value.time=e,type:`time`},null,512),[[h,J.value.time]])])]),p(`label`,null,[d[15]||=r(` یادداشت `,-1),f(p(`textarea`,{"onUpdate:modelValue":d[6]||=e=>J.value.note=e,rows:`2`,placeholder:`اختیاری`},null,512),[[h,J.value.note]])]),p(`div`,O,[p(`button`,{type:`button`,class:`btn-cancel`,onClick:d[7]||=e=>K.value=!1},`انصراف`),p(`button`,{type:`button`,class:`btn-save`,disabled:q.value,onClick:ke},n(q.value?`در حال ثبت...`:`ثبت یادآور`),9,k)])])):!W.value&&!G.value?(l(),o(`section`,A,[p(`div`,j,[p(`span`,M,n(De.value),1)]),p(`div`,N,[p(`strong`,null,n(c(_)(Ce.value)),1),d[17]||=p(`span`,null,`مورد`,-1)]),d[18]||=p(`p`,{class:`summary__sub`},`یادآورهای شما برای پیگیری مشتریان`,-1)])):i(``,!0),(l(!0),o(a,null,u(Y.value,e=>(l(),o(`article`,{key:e.id,class:`reminder-card`,onClick:ee=>c(R).push({path:`/reminder`,query:{id:e.id}})},[p(`span`,F,n(e.time),1),p(`button`,{type:`button`,class:`check`,"aria-label":`تکمیل`,onClick:te(ee=>we(e.id),[`stop`])},null,8,I),p(`div`,L,[p(`div`,ve,[p(`strong`,null,n(e.title),1),s(fe,{size:16})]),p(`span`,{class:t([`tag`,Ee(e.interactionType)])},n(Te(e.interactionType)),3),p(`p`,ye,n(e.customerName),1),p(`p`,be,n(e.contactName),1),p(`p`,xe,n(e.description),1)]),p(`div`,{class:`avatar`,style:re({background:e.avatarColor})},n(e.avatarLetter),5)],8,P))),128)),p(`button`,{type:`button`,class:`completed-bar`,onClick:d[8]||=e=>$(`past`)},[d[19]||=r(` یادآورهای تکمیلشده `,-1),p(`span`,null,n(c(_)(X.value.length)),1)]),p(`button`,{type:`button`,class:`new-btn`,onClick:Oe},[s(ue,{size:20,color:`#fff`}),d[20]||=r(` یادآور جدید `,-1)])])]))}}),[[`__scopeId`,`data-v-89857cb4`]]);export{R as default};
\ No newline at end of file
diff --git a/dist/assets/RemindersView-IMJcGYf7.js b/dist/assets/RemindersView-IMJcGYf7.js
deleted file mode 100644
index 5d3d2e9..0000000
--- a/dist/assets/RemindersView-IMJcGYf7.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,C as t,D as n,E as ee,I as r,J as i,K as te,L as a,M as o,N as s,R as c,S as ne,St as l,Tt as u,X as d,_ as re,et as ie,g as ae,j as oe,k as f,n as p,pt as m,rt as h,wt as se,xt as g}from"./BasicIcon-B6lR-mG3.js";import{o as _}from"./format-BHJptHdF.js";import{i as ce,s as le,y as ue}from"./index-B20WsQhf.js";import{t as de}from"./IconChevronBack-BXRfc2bX.js";import{t as fe}from"./IconMoreVertical-Dw3RBXp5.js";import{t as pe}from"./PageSkeleton-BImjuI6S.js";import{t as me}from"./crm-DbcoqKAF.js";import{t as he}from"./useGoBack-yePcdjuj.js";var ge={class:`page reminders-page`},_e={class:`top`},v={class:`top__actions`},y={class:`page__scroll page__scroll--with-nav reminders-scroll`},b={class:`filters`},x=[`onClick`],S={key:0,class:`count-badge`},C={key:1},w={key:2,class:`create-panel`},T={key:0,class:`create-error`},E=[`value`],D={class:`create-row`},O={class:`create-actions`},k=[`disabled`],A={key:3,class:`summary`},j={class:`summary__head`},M={class:`summary__label`},N={class:`summary__count`},P=[`onClick`],F={class:`time`},I=[`onClick`],L={class:`reminder-card__body`},ve={class:`reminder-card__top`},ye={class:`customer`},be={class:`contact`},xe={class:`desc`},R=p(c({__name:`RemindersView`,setup(c){let p=ae(),R=re(),{goBack:z}=he(`/`),B=me(),V=f(()=>String(p.query.filter??`today`)),H=m([]),U=m([]),W=m(!0),G=m(null),K=m(!1),q=m(!1),J=m({customerId:``,title:``,date:``,time:`10:00`,note:``}),Se=[{id:`all`,label:`همه`},{id:`today`,label:`امروز`},{id:`week`,label:`هفته آینده`},{id:`past`,label:`گذشته`}],Y=f(()=>H.value.filter(e=>!e.completed)),X=f(()=>H.value.filter(e=>e.completed)),Ce=f(()=>Y.value.length),Z=f(()=>X.value.length);async function Q(){W.value=!0,G.value=null;try{H.value=await B.loadReminders(V.value)}catch(e){G.value=e instanceof Error?e.message:`بارگذاری یادآورها ناموفق بود.`,H.value=[]}finally{W.value=!1}}te(Q),ie(V,Q);function $(e){R.replace({path:`/reminders`,query:{filter:e}})}async function we(e){try{await B.markReminderComplete(e),await Q()}catch(e){G.value=e instanceof Error?e.message:`تکمیل یادآور ناموفق بود.`}}function Te(e){return e===`in_person`?`ملاقات حضوری`:e===`call`?`تماس تلفنی`:e===`message`?`پیام`:`یادداشت`}function Ee(e){return e===`in_person`?`tag--green`:e===`call`?`tag--blue`:`tag--purple`}let De=f(()=>V.value===`today`?`پیگیریهای امروز`:V.value===`week`?`پیگیریهای هفته آینده`:V.value===`past`?`پیگیریهای گذشته`:`پیگیریهای باز`);async function Oe(){K.value=!0,G.value=null;try{if(U.value=await B.loadCustomers(),!J.value.customerId&&U.value[0]&&(J.value.customerId=U.value[0].id),!J.value.date){let e=new Date;J.value.date=`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}}catch(e){G.value=e instanceof Error?e.message:`بارگذاری مشتریان ناموفق بود.`}}async function ke(){if(!J.value.customerId||!J.value.title.trim()||!J.value.date||!J.value.time){G.value=`مشتری، عنوان، تاریخ و ساعت الزامی است.`;return}q.value=!0,G.value=null;try{await B.createReminder({customerId:J.value.customerId,title:J.value.title.trim(),date:J.value.date,time:J.value.time,note:J.value.note.trim()||void 0,description:J.value.note.trim()||void 0}),K.value=!1,J.value.title=``,J.value.note=``,await Q()}catch(e){G.value=e instanceof Error?e.message:`ثبت یادآور ناموفق بود.`}finally{q.value=!1}}return(te,c)=>(i(),s(`div`,ge,[e(`header`,_e,[e(`button`,{type:`button`,class:`icon-btn`,"aria-label":`بازگشت`,onClick:c[0]||=(...e)=>g(z)&&g(z)(...e)},[a(de,{size:20})]),c[9]||=e(`h1`,null,`یادآورها`,-1),e(`div`,v,[a(ce,{variant:`inline`}),e(`button`,{type:`button`,class:`icon-btn`,"aria-label":`اعلانها`,onClick:c[1]||=e=>g(R).push(`/profile/notifications`)},[a(le,{size:18})])])]),e(`div`,y,[e(`div`,b,[(i(),s(n,null,d(Se,t=>e(`button`,{key:t.id,type:`button`,class:l([`filter`,{"filter--active":V.value===t.id}]),onClick:e=>$(t.id)},[r(u(t.label)+` `,1),t.id===`past`&&Z.value?(i(),s(`span`,S,u(Z.value.toLocaleString(`fa-IR`)),1)):o(``,!0)],10,x)),64))]),W.value?(i(),oe(pe,{key:0,variant:`list`})):G.value&&!K.value?(i(),s(`p`,C,u(G.value),1)):o(``,!0),K.value?(i(),s(`section`,w,[c[16]||=e(`h3`,null,`یادآور جدید`,-1),G.value?(i(),s(`p`,T,u(G.value),1)):o(``,!0),e(`label`,null,[c[11]||=r(` مشتری `,-1),h(e(`select`,{"onUpdate:modelValue":c[2]||=e=>J.value.customerId=e},[c[10]||=e(`option`,{disabled:``,value:``},`انتخاب مشتری`,-1),(i(!0),s(n,null,d(U.value,e=>(i(),s(`option`,{key:e.id,value:e.id},u(e.name||e.contactName),9,E))),128))],512),[[ne,J.value.customerId]])]),e(`label`,null,[c[12]||=r(` عنوان `,-1),h(e(`input`,{"onUpdate:modelValue":c[3]||=e=>J.value.title=e,type:`text`,placeholder:`مثلاً پیگیری نمونه`},null,512),[[t,J.value.title]])]),e(`div`,D,[e(`label`,null,[c[13]||=r(` تاریخ `,-1),h(e(`input`,{"onUpdate:modelValue":c[4]||=e=>J.value.date=e,type:`date`},null,512),[[t,J.value.date]])]),e(`label`,null,[c[14]||=r(` ساعت `,-1),h(e(`input`,{"onUpdate:modelValue":c[5]||=e=>J.value.time=e,type:`time`},null,512),[[t,J.value.time]])])]),e(`label`,null,[c[15]||=r(` یادداشت `,-1),h(e(`textarea`,{"onUpdate:modelValue":c[6]||=e=>J.value.note=e,rows:`2`,placeholder:`اختیاری`},null,512),[[t,J.value.note]])]),e(`div`,O,[e(`button`,{type:`button`,class:`btn-cancel`,onClick:c[7]||=e=>K.value=!1},`انصراف`),e(`button`,{type:`button`,class:`btn-save`,disabled:q.value,onClick:ke},u(q.value?`در حال ثبت...`:`ثبت یادآور`),9,k)])])):!W.value&&!G.value?(i(),s(`section`,A,[e(`div`,j,[e(`span`,M,u(De.value),1)]),e(`div`,N,[e(`strong`,null,u(g(_)(Ce.value)),1),c[17]||=e(`span`,null,`مورد`,-1)]),c[18]||=e(`p`,{class:`summary__sub`},`یادآورهای شما برای پیگیری مشتریان`,-1)])):o(``,!0),(i(!0),s(n,null,d(Y.value,t=>(i(),s(`article`,{key:t.id,class:`reminder-card`,onClick:e=>g(R).push({path:`/reminder`,query:{id:t.id}})},[e(`span`,F,u(t.time),1),e(`button`,{type:`button`,class:`check`,"aria-label":`تکمیل`,onClick:ee(e=>we(t.id),[`stop`])},null,8,I),e(`div`,L,[e(`div`,ve,[e(`strong`,null,u(t.title),1),a(fe,{size:16})]),e(`span`,{class:l([`tag`,Ee(t.interactionType)])},u(Te(t.interactionType)),3),e(`p`,ye,u(t.customerName),1),e(`p`,be,u(t.contactName),1),e(`p`,xe,u(t.description),1)]),e(`div`,{class:`avatar`,style:se({background:t.avatarColor})},u(t.avatarLetter),5)],8,P))),128)),e(`button`,{type:`button`,class:`completed-bar`,onClick:c[8]||=e=>$(`past`)},[c[19]||=r(` یادآورهای تکمیلشده `,-1),e(`span`,null,u(g(_)(X.value.length)),1)]),e(`button`,{type:`button`,class:`new-btn`,onClick:Oe},[a(ue,{size:20,color:`#fff`}),c[20]||=r(` یادآور جدید `,-1)])])]))}}),[[`__scopeId`,`data-v-89857cb4`]]);export{R as default};
\ No newline at end of file
diff --git a/dist/assets/SearchField-Dx2PcshV.js b/dist/assets/SearchField-Dx2PcshV.js
new file mode 100644
index 0000000..9a4dde9
--- /dev/null
+++ b/dist/assets/SearchField-Dx2PcshV.js
@@ -0,0 +1 @@
+import{P as e,Y as t,j as n,n as r,z as i}from"./BasicIcon-C6boaehV.js";var a={class:`search-field`},o=[`value`,`placeholder`],s=r(i({__name:`SearchField`,props:{modelValue:{},placeholder:{}},emits:[`update:modelValue`],setup(r){return(i,s)=>(t(),e(`div`,a,[n(`input`,{class:`search-field__input`,type:`search`,value:r.modelValue,placeholder:r.placeholder,onInput:s[0]||=e=>i.$emit(`update:modelValue`,e.target.value)},null,40,o)]))}}),[[`__scopeId`,`data-v-70152960`]]);export{s as t};
\ No newline at end of file
diff --git a/dist/assets/SearchField-txVsGGXT.js b/dist/assets/SearchField-txVsGGXT.js
deleted file mode 100644
index bb1aac4..0000000
--- a/dist/assets/SearchField-txVsGGXT.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,J as t,N as n,R as r,n as i}from"./BasicIcon-B6lR-mG3.js";var a={class:`search-field`},o=[`value`,`placeholder`],s=i(r({__name:`SearchField`,props:{modelValue:{},placeholder:{}},emits:[`update:modelValue`],setup(r){return(i,s)=>(t(),n(`div`,a,[e(`input`,{class:`search-field__input`,type:`search`,value:r.modelValue,placeholder:r.placeholder,onInput:s[0]||=e=>i.$emit(`update:modelValue`,e.target.value)},null,40,o)]))}}),[[`__scopeId`,`data-v-70152960`]]);export{s as t};
\ No newline at end of file
diff --git a/dist/assets/SettlementTypeView-CFV1ZfaS.js b/dist/assets/SettlementTypeView-CFV1ZfaS.js
deleted file mode 100644
index 8e3f8bb..0000000
--- a/dist/assets/SettlementTypeView-CFV1ZfaS.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,D as t,I as n,J as r,L as i,M as a,N as o,R as s,Tt as c,_ as l,et as u,k as d,n as f,nt as p,pt as m,xt as h}from"./BasicIcon-B6lR-mG3.js";import{n as g}from"./format-BHJptHdF.js";import{b as _,g as v,n as y}from"./index-B20WsQhf.js";import{t as b}from"./FormErrorBanner-8PcsTbdO.js";import{t as x}from"./CheckoutStepper-DCcu9ZNK.js";import{t as S}from"./PageHeader-DXkA75qK.js";import{n as C}from"./orderInvoice-B0L1Aeuk.js";import{t as w}from"./useRequirePricedOrder-BVRY4vCB.js";import{t as T}from"./IconCashSettlement-DizzShjh.js";var E={class:`page settlement-mobile-page mobile-only`},D={class:`page__scroll`},O={key:0,class:`settlement-waiting`},k={class:`settlement-invoice`},A={class:`settlement-invoice__value`},j={key:0,class:`settlement-invoice__meta`},M={class:`settlement-mobile-options`},N=[`disabled`],P={class:`settlement-card__icon settlement-card__icon--cash`},F=[`disabled`],I={class:`settlement-card__icon settlement-card__icon--check`},L={class:`desktop-checkout-shell desktop-only`},R={class:`desktop-page__head`},z={class:`desktop-page__subtitle`},B={key:0,class:`settlement-waiting settlement-waiting--desktop`},V={key:1,class:`desktop-settlement-grid`},H=[`disabled`],U={class:`settlement-card__icon settlement-card__icon--cash`},W=[`disabled`],G={class:`settlement-card__icon settlement-card__icon--check`},K=f(s({__name:`SettlementTypeView`,setup(s){let f=l(),K=v(),{orderId:q,order:J,invoiceReady:Y}=w(),X=m(!1),Z=m(``);u(q,async e=>{e&&!K.getOrderById(e)&&await K.fetchOrder(e)},{immediate:!0});let Q=d(()=>J.value?.finalAmount?g(J.value.finalAmount):`—`);async function $(e){if(X.value||!C(J.value)){Z.value=`تا قبل از قیمتگذاری مدیریت، امکان انتخاب روش تسویه وجود ندارد.`;return}X.value=!0,Z.value=``;try{await K.chooseSettlement(q.value,e),e===`cash`?f.replace(`/orders/${q.value}/cash`):(K.startCheckDraft(q.value),f.replace(`/orders/${q.value}/check-mode`))}catch(e){Z.value=e instanceof Error?e.message:`ثبت روش تسویه ناموفق بود.`}finally{X.value=!1}}return(s,l)=>(r(),o(t,null,[e(`div`,E,[i(S,{title:`انتخاب نوع تسویه`,subtitle:`پس از صدور فاکتور، نوع تسویه را انتخاب کنید`,"show-back":``,centered:``,onBack:l[0]||=e=>h(f).push(`/orders/${h(q)}`)}),e(`div`,D,[i(b,{message:Z.value},null,8,[`message`]),h(Y)?(r(),o(t,{key:1},[e(`div`,k,[l[10]||=e(`span`,{class:`settlement-invoice__label`},`مبلغ فاکتور`,-1),e(`strong`,A,c(Q.value),1),h(J)?(r(),o(`span`,j,`سفارش `+c(h(J).orderNumber),1)):a(``,!0)]),e(`div`,M,[e(`button`,{type:`button`,class:`settlement-card`,disabled:X.value,onClick:l[2]||=e=>$(`cash`)},[e(`span`,P,[i(T,{size:36})]),l[11]||=e(`h3`,null,`تسویه نقدی`,-1),l[12]||=e(`p`,null,`پرداخت از طریق واریز به حساب شرکت`,-1)],8,N),e(`button`,{type:`button`,class:`settlement-card`,disabled:X.value,onClick:l[3]||=e=>$(`check`)},[e(`span`,I,[i(_,{size:36})]),l[13]||=e(`h3`,null,`تسویه چکی`,-1),l[14]||=e(`p`,null,`پرداخت بر اساس مبلغ فاکتور با ثبت چک`,-1)],8,F)])],64)):(r(),o(`div`,O,[l[8]||=e(`h3`,{class:`settlement-waiting__title`},`در انتظار قیمتگذاری`,-1),l[9]||=e(`p`,{class:`settlement-waiting__text`},` پیشسفارش ثبت شده است. پس از تعیین قیمت توسط مدیریت و صدور فاکتور، از این صفحه روش تسویه (نقد یا چک) را انتخاب کنید. `,-1),i(y,{block:``,variant:`outline`,onClick:l[1]||=e=>h(f).push(`/orders/${h(q)}`)},{default:p(()=>[...l[7]||=[n(` بازگشت به جزئیات سفارش `,-1)]]),_:1})]))])]),e(`div`,L,[i(x,{"current-step":4}),e(`header`,R,[l[15]||=e(`h1`,{class:`desktop-page__title`},`انتخاب نوع تسویه`,-1),e(`p`,z,[h(Y)?(r(),o(t,{key:0},[n(` مبلغ فاکتور `+c(Q.value)+c(h(J)?` · سفارش ${h(J).orderNumber}`:``),1)],64)):(r(),o(t,{key:1},[n(`پس از قیمتگذاری مدیریت فعال میشود`)],64))])]),i(b,{message:Z.value},null,8,[`message`]),h(Y)?(r(),o(`div`,V,[e(`button`,{type:`button`,class:`settlement-card settlement-card--desktop`,disabled:X.value,onClick:l[5]||=e=>$(`cash`)},[e(`span`,U,[i(T,{size:40})]),l[19]||=e(`h3`,null,`تسویه نقدی`,-1),l[20]||=e(`p`,null,`پرداخت از طریق واریز به حساب شرکت`,-1)],8,H),e(`button`,{type:`button`,class:`settlement-card settlement-card--desktop`,disabled:X.value,onClick:l[6]||=e=>$(`check`)},[e(`span`,G,[i(_,{size:40})]),l[21]||=e(`h3`,null,`تسویه چکی`,-1),l[22]||=e(`p`,null,`پرداخت بر اساس مبلغ فاکتور با ثبت چک`,-1)],8,W)])):(r(),o(`div`,B,[l[17]||=e(`h3`,{class:`settlement-waiting__title`},`در انتظار قیمتگذاری`,-1),l[18]||=e(`p`,{class:`settlement-waiting__text`},` پیشسفارش ثبت شده است. پس از صدور فاکتور میتوانید روش تسویه را انتخاب کنید. `,-1),i(y,{variant:`outline`,onClick:l[4]||=e=>h(f).push(`/orders/${h(q)}`)},{default:p(()=>[...l[16]||=[n(` بازگشت به جزئیات سفارش `,-1)]]),_:1})]))])],64))}}),[[`__scopeId`,`data-v-6b697aeb`]]);export{K as default};
\ No newline at end of file
diff --git a/dist/assets/SettlementTypeView-CNPLLs4b.js b/dist/assets/SettlementTypeView-CNPLLs4b.js
new file mode 100644
index 0000000..2103fb5
--- /dev/null
+++ b/dist/assets/SettlementTypeView-CNPLLs4b.js
@@ -0,0 +1 @@
+import{A as e,Et as t,L as n,M as r,N as i,O as a,P as o,R as s,St as c,Y as l,_ as u,j as d,mt as f,n as p,rt as m,t as h,tt as g,z as _}from"./BasicIcon-C6boaehV.js";import{n as v}from"./format-BHJptHdF.js";import{d as y,n as b}from"./index-spodxsRN.js";import{t as x}from"./FormErrorBanner-CjdBfIQT.js";import{t as S}from"./CheckoutStepper-CqUviuW7.js";import{t as C}from"./PageHeader-BaJqBjIW.js";import{n as w}from"./orderInvoice-B0L1Aeuk.js";import{t as T}from"./useRequirePricedOrder-BBPnO4DF.js";import{t as E}from"./IconCheckBook-DwIUojJc.js";var D=_({__name:`IconCashSettlement`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(l(),r(h,{icon:`vuesax-linear:card`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),O={class:`page settlement-mobile-page mobile-only`},k={class:`page__scroll`},A={key:0,class:`settlement-waiting`},j={class:`settlement-invoice`},M={class:`settlement-invoice__value`},N={key:0,class:`settlement-invoice__meta`},P={class:`settlement-mobile-options`},F=[`disabled`],I={class:`settlement-card__icon settlement-card__icon--cash`},L=[`disabled`],R={class:`settlement-card__icon settlement-card__icon--check`},z={class:`desktop-checkout-shell desktop-only`},B={class:`desktop-page__head`},V={class:`desktop-page__subtitle`},H={key:0,class:`settlement-waiting settlement-waiting--desktop`},U={key:1,class:`desktop-settlement-grid`},W=[`disabled`],G={class:`settlement-card__icon settlement-card__icon--cash`},K=[`disabled`],q={class:`settlement-card__icon settlement-card__icon--check`},J=p(_({__name:`SettlementTypeView`,setup(r){let p=u(),h=y(),{orderId:_,order:J,invoiceReady:Y}=T(),X=f(!1),Z=f(``);g(_,async e=>{e&&!h.getOrderById(e)&&await h.fetchOrder(e)},{immediate:!0});let Q=e(()=>J.value?.finalAmount?v(J.value.finalAmount):`—`);async function $(e){if(X.value||!w(J.value)){Z.value=`تا قبل از قیمتگذاری مدیریت، امکان انتخاب روش تسویه وجود ندارد.`;return}X.value=!0,Z.value=``;try{await h.chooseSettlement(_.value,e),e===`cash`?p.replace(`/orders/${_.value}/cash`):(h.startCheckDraft(_.value),p.replace(`/orders/${_.value}/check-mode`))}catch(e){Z.value=e instanceof Error?e.message:`ثبت روش تسویه ناموفق بود.`}finally{X.value=!1}}return(e,r)=>(l(),o(a,null,[d(`div`,O,[s(C,{title:`انتخاب نوع تسویه`,subtitle:`پس از صدور فاکتور، نوع تسویه را انتخاب کنید`,"show-back":``,centered:``,onBack:r[0]||=e=>c(p).push(`/orders/${c(_)}`)}),d(`div`,k,[s(x,{message:Z.value},null,8,[`message`]),c(Y)?(l(),o(a,{key:1},[d(`div`,j,[r[10]||=d(`span`,{class:`settlement-invoice__label`},`مبلغ فاکتور`,-1),d(`strong`,M,t(Q.value),1),c(J)?(l(),o(`span`,N,`سفارش `+t(c(J).orderNumber),1)):i(``,!0)]),d(`div`,P,[d(`button`,{type:`button`,class:`settlement-card`,disabled:X.value,onClick:r[2]||=e=>$(`cash`)},[d(`span`,I,[s(D,{size:36})]),r[11]||=d(`h3`,null,`تسویه نقدی`,-1),r[12]||=d(`p`,null,`پرداخت از طریق واریز به حساب شرکت`,-1)],8,F),d(`button`,{type:`button`,class:`settlement-card`,disabled:X.value,onClick:r[3]||=e=>$(`check`)},[d(`span`,R,[s(E,{size:36})]),r[13]||=d(`h3`,null,`تسویه چکی`,-1),r[14]||=d(`p`,null,`پرداخت بر اساس مبلغ فاکتور با ثبت چک`,-1)],8,L)])],64)):(l(),o(`div`,A,[r[8]||=d(`h3`,{class:`settlement-waiting__title`},`در انتظار قیمتگذاری`,-1),r[9]||=d(`p`,{class:`settlement-waiting__text`},` پیشسفارش ثبت شده است. پس از تعیین قیمت توسط مدیریت و صدور فاکتور، از این صفحه روش تسویه (نقد یا چک) را انتخاب کنید. `,-1),s(b,{block:``,variant:`outline`,onClick:r[1]||=e=>c(p).push(`/orders/${c(_)}`)},{default:m(()=>[...r[7]||=[n(` بازگشت به جزئیات سفارش `,-1)]]),_:1})]))])]),d(`div`,z,[s(S,{"current-step":4}),d(`header`,B,[r[15]||=d(`h1`,{class:`desktop-page__title`},`انتخاب نوع تسویه`,-1),d(`p`,V,[c(Y)?(l(),o(a,{key:0},[n(` مبلغ فاکتور `+t(Q.value)+t(c(J)?` · سفارش ${c(J).orderNumber}`:``),1)],64)):(l(),o(a,{key:1},[n(`پس از قیمتگذاری مدیریت فعال میشود`)],64))])]),s(x,{message:Z.value},null,8,[`message`]),c(Y)?(l(),o(`div`,U,[d(`button`,{type:`button`,class:`settlement-card settlement-card--desktop`,disabled:X.value,onClick:r[5]||=e=>$(`cash`)},[d(`span`,G,[s(D,{size:40})]),r[19]||=d(`h3`,null,`تسویه نقدی`,-1),r[20]||=d(`p`,null,`پرداخت از طریق واریز به حساب شرکت`,-1)],8,W),d(`button`,{type:`button`,class:`settlement-card settlement-card--desktop`,disabled:X.value,onClick:r[6]||=e=>$(`check`)},[d(`span`,q,[s(E,{size:40})]),r[21]||=d(`h3`,null,`تسویه چکی`,-1),r[22]||=d(`p`,null,`پرداخت بر اساس مبلغ فاکتور با ثبت چک`,-1)],8,K)])):(l(),o(`div`,H,[r[17]||=d(`h3`,{class:`settlement-waiting__title`},`در انتظار قیمتگذاری`,-1),r[18]||=d(`p`,{class:`settlement-waiting__text`},` پیشسفارش ثبت شده است. پس از صدور فاکتور میتوانید روش تسویه را انتخاب کنید. `,-1),s(b,{variant:`outline`,onClick:r[4]||=e=>c(p).push(`/orders/${c(_)}`)},{default:m(()=>[...r[16]||=[n(` بازگشت به جزئیات سفارش `,-1)]]),_:1})]))])],64))}}),[[`__scopeId`,`data-v-6b697aeb`]]);export{J as default};
\ No newline at end of file
diff --git a/dist/assets/WelcomeView-CIX4mZos.js b/dist/assets/WelcomeView-CIX4mZos.js
new file mode 100644
index 0000000..ab02bff
--- /dev/null
+++ b/dist/assets/WelcomeView-CIX4mZos.js
@@ -0,0 +1 @@
+import{Et as e,M as t,O as n,P as r,R as i,St as a,Y as o,Z as s,_ as c,j as l,n as u,t as d,z as f}from"./BasicIcon-C6boaehV.js";import{_ as p,o as m}from"./index-spodxsRN.js";import{t as h}from"./login-fabric-CzrIXTnD.js";var g={class:`page welcome-page`},_=[`src`],v={class:`welcome-page__scroll`},y={class:`welcome-page__stage`},b={class:`welcome-brand`},x={class:`welcome-features`},S={class:`welcome-feature__icon`,"aria-hidden":`true`},C={key:0,class:`welcome-feature__star`,viewBox:`0 0 24 24`,fill:`none`},w={class:`welcome-cta__chevron`,"aria-hidden":`true`},T=u(f({__name:`WelcomeView`,setup(u){let f=c(),T=[{icon:`star`,title:`همراه همیشگی کسبوکارتان`,subtitle:`با خدمات ویژه مشتریان`},{icon:`vuesax-linear:truck-time`,title:`سفارش عمده`,subtitle:`مستقیم از تولیدکننده`},{icon:`vuesax-linear:element-3`,title:`تنوع بینظیر محصولات`,subtitle:`از کلاسیک تا مدرن`}];function E(){let e=typeof f.currentRoute.value.query.redirect==`string`?f.currentRoute.value.query.redirect:void 0;f.push({name:`login`,query:e?{redirect:e}:void 0})}return(c,u)=>(o(),r(`div`,g,[l(`img`,{class:`welcome-page__bg`,src:a(h),alt:``},null,8,_),u[7]||=l(`div`,{class:`welcome-page__veil`,"aria-hidden":`true`},null,-1),l(`div`,v,[l(`div`,y,[l(`header`,{class:`welcome-top`},[l(`button`,{type:`button`,class:`welcome-skip`,onClick:E},`رد شدن`)]),l(`div`,b,[i(p,{size:88}),u[0]||=l(`h1`,{class:`welcome-brand__fa`},`نادمی تکس`,-1),u[1]||=l(`p`,{class:`welcome-brand__tag`},`انتخاب حرفهای، شروع یک همکاری ماندگار`,-1),u[2]||=l(`span`,{class:`welcome-brand__rule`,"aria-hidden":`true`},null,-1)]),l(`ul`,x,[(o(),r(n,null,s(T,n=>l(`li`,{key:n.title,class:`welcome-feature`},[l(`span`,S,[n.icon===`star`?(o(),r(`svg`,C,[...u[3]||=[l(`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,stroke:`#fff`,"stroke-width":`1.5`,"stroke-linejoin":`round`},null,-1)]])):(o(),t(d,{key:1,icon:n.icon,size:22,color:`#ffffff`},null,8,[`icon`]))]),l(`strong`,null,e(n.title),1),l(`span`,null,e(n.subtitle),1)])),64))]),u[5]||=l(`div`,{class:`welcome-spacer`,"aria-hidden":`true`},null,-1),u[6]||=l(`div`,{class:`welcome-dots`,"aria-hidden":`true`},[l(`i`,{class:`is-on`}),l(`i`),l(`i`),l(`i`)],-1),l(`button`,{type:`button`,class:`welcome-cta`,onClick:E},[u[4]||=l(`span`,null,`ورود / ثبتنام`,-1),l(`span`,w,[i(m,{size:18,color:`#ffffff`})])])])])]))}}),[[`__scopeId`,`data-v-66f13882`]]);export{T as default};
\ No newline at end of file
diff --git a/dist/assets/WelcomeView-Dm_Gj4-t.js b/dist/assets/WelcomeView-Dm_Gj4-t.js
deleted file mode 100644
index a70c89c..0000000
--- a/dist/assets/WelcomeView-Dm_Gj4-t.js
+++ /dev/null
@@ -1 +0,0 @@
-import{A as e,D as t,J as n,L as r,N as i,R as a,Tt as o,X as s,_ as c,j as l,n as u,t as d,xt as f}from"./BasicIcon-B6lR-mG3.js";import{m as p,o as m}from"./index-B20WsQhf.js";import{t as h}from"./login-fabric-CzrIXTnD.js";var g={class:`page welcome-page`},_=[`src`],v={class:`welcome-page__scroll`},y={class:`welcome-page__stage`},b={class:`welcome-brand`},x={class:`welcome-features`},S={class:`welcome-feature__icon`,"aria-hidden":`true`},C={key:0,class:`welcome-feature__star`,viewBox:`0 0 24 24`,fill:`none`},w={class:`welcome-cta__chevron`,"aria-hidden":`true`},T=u(a({__name:`WelcomeView`,setup(a){let u=c(),T=[{icon:`star`,title:`همراه همیشگی کسبوکارتان`,subtitle:`با خدمات ویژه مشتریان`},{icon:`vuesax-linear:truck-time`,title:`سفارش عمده`,subtitle:`مستقیم از تولیدکننده`},{icon:`vuesax-linear:element-3`,title:`تنوع بینظیر محصولات`,subtitle:`از کلاسیک تا مدرن`}];function E(){let e=typeof u.currentRoute.value.query.redirect==`string`?u.currentRoute.value.query.redirect:void 0;u.push({name:`login`,query:e?{redirect:e}:void 0})}return(a,c)=>(n(),i(`div`,g,[e(`img`,{class:`welcome-page__bg`,src:f(h),alt:``},null,8,_),c[7]||=e(`div`,{class:`welcome-page__veil`,"aria-hidden":`true`},null,-1),e(`div`,v,[e(`div`,y,[e(`header`,{class:`welcome-top`},[e(`button`,{type:`button`,class:`welcome-skip`,onClick:E},`رد شدن`)]),e(`div`,b,[r(p,{size:88}),c[0]||=e(`h1`,{class:`welcome-brand__fa`},`نادمی تکس`,-1),c[1]||=e(`p`,{class:`welcome-brand__tag`},`انتخاب حرفهای، شروع یک همکاری ماندگار`,-1),c[2]||=e(`span`,{class:`welcome-brand__rule`,"aria-hidden":`true`},null,-1)]),e(`ul`,x,[(n(),i(t,null,s(T,t=>e(`li`,{key:t.title,class:`welcome-feature`},[e(`span`,S,[t.icon===`star`?(n(),i(`svg`,C,[...c[3]||=[e(`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,stroke:`#fff`,"stroke-width":`1.5`,"stroke-linejoin":`round`},null,-1)]])):(n(),l(d,{key:1,icon:t.icon,size:22,color:`#ffffff`},null,8,[`icon`]))]),e(`strong`,null,o(t.title),1),e(`span`,null,o(t.subtitle),1)])),64))]),c[5]||=e(`div`,{class:`welcome-spacer`,"aria-hidden":`true`},null,-1),c[6]||=e(`div`,{class:`welcome-dots`,"aria-hidden":`true`},[e(`i`,{class:`is-on`}),e(`i`),e(`i`),e(`i`)],-1),e(`button`,{type:`button`,class:`welcome-cta`,onClick:E},[c[4]||=e(`span`,null,`ورود / ثبتنام`,-1),e(`span`,w,[r(m,{size:18,color:`#ffffff`})])])])])]))}}),[[`__scopeId`,`data-v-66f13882`]]);export{T as default};
\ No newline at end of file
diff --git a/dist/assets/catalog-DNpqlweh.js b/dist/assets/catalog-s7nVUdlj.js
similarity index 93%
rename from dist/assets/catalog-DNpqlweh.js
rename to dist/assets/catalog-s7nVUdlj.js
index 71d25b9..2c95efc 100644
--- a/dist/assets/catalog-DNpqlweh.js
+++ b/dist/assets/catalog-s7nVUdlj.js
@@ -1 +1 @@
-import{pt as e}from"./BasicIcon-B6lR-mG3.js";import{n as t,o as n}from"./http-CHgEV7QF.js";var r=n(`catalog`,()=>{let n=e([]),r=e([]),i=e([]),a=e([]),o=e(``),s=e(!1),c=e(!1);async function l(e=!1){if(c.value&&!e)return n.value;s.value=!0;try{let e=await t(`/companies`,{query:{activeOnly:!0}});n.value=e.filter(e=>e.isActive).sort((e,t)=>e.displayOrder-t.displayOrder),c.value=!0}finally{s.value=!1}return n.value}function u(){return[...n.value].sort((e,t)=>e.displayOrder-t.displayOrder)}function d(e){return n.value.find(t=>t.id===e)}async function f(e){let n=await t(`/catalogs`,{query:{companyId:e,activeOnly:!0}});return r.value=[...r.value.filter(t=>t.companyId!==e),...n],n}async function p(e,n){let r=await t(`/products`,{query:{catalogId:e,color:n&&n!==`all`?n:void 0,activeOnly:!0}}),a=i.value.filter(t=>t.catalogId!==e);return i.value=[...a,...r],r}async function m(e){let n=await t(`/companies/${e}/bank-accounts`);return a.value=[...a.value.filter(t=>t.companyId!==e),...n.filter(e=>e.isActive)],a.value.filter(t=>t.companyId===e)}function h(e,t=``){let n=r.value.filter(t=>t.companyId===e&&t.isActive);if(t.trim()){let e=t.trim();n=n.filter(t=>t.code.includes(e)||t.name.includes(e))}return[...n].sort((e,t)=>e.displayOrder-t.displayOrder)}function g(e,t){let n=i.value.filter(t=>t.catalogId===e&&t.isActive);return t&&t!==`all`&&(n=n.filter(e=>e.color.includes(t))),n}function _(e){return r.value.find(t=>t.id===e)}function v(e){return i.value.find(t=>t.id===e)}function y(e){return[...new Set(g(e).map(e=>e.color))]}function b(e){return a.value.filter(t=>t.companyId===e&&t.isActive).sort((e,t)=>e.displayOrder-t.displayOrder)}return{companies:n,catalogs:r,products:i,bankAccounts:a,searchQuery:o,loading:s,loaded:c,loadCompanies:l,loadCatalogs:f,loadProducts:p,loadBankAccounts:m,getActiveCompanies:u,getCompany:d,fetchCatalogs:h,fetchProducts:g,getCatalog:_,getProduct:v,getUniqueColors:y,getBankAccountsByCompany:b}});export{r as t};
\ No newline at end of file
+import{mt as e}from"./BasicIcon-C6boaehV.js";import{n as t,o as n}from"./http-BC1hNfZ4.js";var r=n(`catalog`,()=>{let n=e([]),r=e([]),i=e([]),a=e([]),o=e(``),s=e(!1),c=e(!1);async function l(e=!1){if(c.value&&!e)return n.value;s.value=!0;try{let e=await t(`/companies`,{query:{activeOnly:!0}});n.value=e.filter(e=>e.isActive).sort((e,t)=>e.displayOrder-t.displayOrder),c.value=!0}finally{s.value=!1}return n.value}function u(){return[...n.value].sort((e,t)=>e.displayOrder-t.displayOrder)}function d(e){return n.value.find(t=>t.id===e)}async function f(e){let n=await t(`/catalogs`,{query:{companyId:e,activeOnly:!0}});return r.value=[...r.value.filter(t=>t.companyId!==e),...n],n}async function p(e,n){let r=await t(`/products`,{query:{catalogId:e,color:n&&n!==`all`?n:void 0,activeOnly:!0}}),a=i.value.filter(t=>t.catalogId!==e);return i.value=[...a,...r],r}async function m(e){let n=await t(`/companies/${e}/bank-accounts`);return a.value=[...a.value.filter(t=>t.companyId!==e),...n.filter(e=>e.isActive)],a.value.filter(t=>t.companyId===e)}function h(e,t=``){let n=r.value.filter(t=>t.companyId===e&&t.isActive);if(t.trim()){let e=t.trim();n=n.filter(t=>t.code.includes(e)||t.name.includes(e))}return[...n].sort((e,t)=>e.displayOrder-t.displayOrder)}function g(e,t){let n=i.value.filter(t=>t.catalogId===e&&t.isActive);return t&&t!==`all`&&(n=n.filter(e=>e.color.includes(t))),n}function _(e){return r.value.find(t=>t.id===e)}function v(e){return i.value.find(t=>t.id===e)}function y(e){return[...new Set(g(e).map(e=>e.color))]}function b(e){return a.value.filter(t=>t.companyId===e&&t.isActive).sort((e,t)=>e.displayOrder-t.displayOrder)}return{companies:n,catalogs:r,products:i,bankAccounts:a,searchQuery:o,loading:s,loaded:c,loadCompanies:l,loadCatalogs:f,loadProducts:p,loadBankAccounts:m,getActiveCompanies:u,getCompany:d,fetchCatalogs:h,fetchProducts:g,getCatalog:_,getProduct:v,getUniqueColors:y,getBankAccountsByCompany:b}});export{r as t};
\ No newline at end of file
diff --git a/dist/assets/catalogGallery-DMNB35I1.js b/dist/assets/catalogGallery-DMNB35I1.js
new file mode 100644
index 0000000..1308e4c
--- /dev/null
+++ b/dist/assets/catalogGallery-DMNB35I1.js
@@ -0,0 +1 @@
+var e={suit:`پارچههای کتوشلواری`,trousers:`پارچههای شلواری`,shirt:`پارچههای پیراهنی`},t={summer:`تابستانه`,winter:`زمستانه`,all_season:`چهار فصل`};function n(e){let t=e.trim();return t.includes(`کالیته`)?t:`کالیته ${t}`}function r(e){return e.description?.match(/[A-Za-z][A-Za-z0-9 .&-]{1,28}/)?.[0]?.trim()||(/^[A-Za-z]/.test(e.code)?e.code:``)}function i(e,t){if(!e.length)return t;let n=new Map;for(let t of e)n.set(t,(n.get(t)??0)+1);return[...n.entries()].sort((e,t)=>t[1]-e[1])[0]?.[0]??t}function a(e){let t=`${e.weaveType??``} ${e.tags.join(` `)} ${e.name}`;return/ملانژ|melange|mélange|heather/i.test(t)?`melange`:/طرح?دار|striped?|check|print|jacquard|pattern/i.test(t)?`patterned`:/ساده|plain|solid/i.test(t)?`plain`:`other`}function o(e){let t=new Map;for(let n of e){let e=n.name.trim()||n.code,r=t.get(e)??[];r.push(n),t.set(e,r)}return[...t.entries()].map(([,e])=>{let t=[...new Set(e.flatMap(e=>e.colors.length?e.colors:e.color?[e.color]:[]))],n=t.map(t=>{for(let n of e){let e=n.colors.indexOf(t);if(e>=0&&n.colorImages?.[e])return n.colorImages[e]??void 0}});return{id:e[0].id,name:e[0].name,imageUrl:n.find(Boolean)||e.find(e=>e.imageUrl)?.imageUrl,colorCount:Math.max(t.length,e.length),colors:t.slice(0,5),colorImages:n.slice(0,5),kind:a(e[0]),items:e}})}function s(t,a){let s=new Map;for(let e of a){if(!e.catalogId)continue;let t=s.get(e.catalogId)??[];t.push(e),s.set(e.catalogId,t)}let c=t.map(e=>s.get(e.id)?.length??e.productCount??0),l=Math.max(4,[...c].sort((e,t)=>t-e)[Math.floor(t.length/3)]??4);return t.map(t=>{let a=s.get(t.id)??[],c=o(a).length||a.length||t.productCount||0,u=i(a.map(e=>e.categoryId),`suit`),d=i(a.map(e=>e.season),`all_season`),f=a.some(e=>e.isNew),p=c>=l;return{id:t.id,companyId:t.companyId,name:t.name,title:n(t.name),latinName:r(t),subtitle:t.description?.trim()||e[u]||`پارچههای منتخب`,imageUrl:t.imageUrl||a.find(e=>e.imageUrl)?.imageUrl,patternCount:c,badge:f?`new`:p?`popular`:void 0,season:d,isNew:f,isPopular:p}})}function c(e,t,n){let r=n.trim().toLowerCase(),i=e.filter(e=>!r||[e.title,e.name,e.latinName,e.subtitle].join(` `).toLowerCase().includes(r));if(t===`newest`)return i.sort((e,t)=>Number(t.isNew)-Number(e.isNew)||t.patternCount-e.patternCount);if(t===`popular`)return i.sort((e,t)=>Number(t.isPopular)-Number(e.isPopular)||t.patternCount-e.patternCount);if(t===`season`){let e=[`summer`,`winter`,`all_season`];return i.sort((t,n)=>e.indexOf(t.season)-e.indexOf(n.season)||t.title.localeCompare(n.title,`fa`))}return i}export{c as a,r as i,s as n,o,n as r,t};
\ No newline at end of file
diff --git a/dist/assets/catalogGallery-sguYVy7M.js b/dist/assets/catalogGallery-sguYVy7M.js
deleted file mode 100644
index 7671253..0000000
--- a/dist/assets/catalogGallery-sguYVy7M.js
+++ /dev/null
@@ -1 +0,0 @@
-var e={suit:`پارچههای کتوشلواری`,trousers:`پارچههای شلواری`,shirt:`پارچههای پیراهنی`},t={summer:`تابستانه`,winter:`زمستانه`,all_season:`چهار فصل`};function n(e){let t=e.trim();return t.includes(`کالیته`)?t:`کالیته ${t}`}function r(e){return e.description?.match(/[A-Za-z][A-Za-z0-9 .&-]{1,28}/)?.[0]?.trim()||(/^[A-Za-z]/.test(e.code)?e.code:``)}function i(e,t){if(!e.length)return t;let n=new Map;for(let t of e)n.set(t,(n.get(t)??0)+1);return[...n.entries()].sort((e,t)=>t[1]-e[1])[0]?.[0]??t}function a(e){let t=`${e.weaveType??``} ${e.tags.join(` `)} ${e.name}`;return/ملانژ|melange|mélange|heather/i.test(t)?`melange`:/طرح?دار|striped?|check|print|jacquard|pattern/i.test(t)?`patterned`:/ساده|plain|solid/i.test(t)?`plain`:`other`}function o(e){let t=new Map;for(let n of e){let e=n.name.trim()||n.code,r=t.get(e)??[];r.push(n),t.set(e,r)}return[...t.entries()].map(([,e])=>{let t=[...new Set(e.flatMap(e=>e.colors.length?e.colors:e.color?[e.color]:[]))];return{id:e[0].id,name:e[0].name,imageUrl:e.find(e=>e.imageUrl)?.imageUrl,colorCount:Math.max(t.length,e.length),colors:t.slice(0,5),kind:a(e[0]),items:e}})}function s(t,a){let s=new Map;for(let e of a){if(!e.catalogId)continue;let t=s.get(e.catalogId)??[];t.push(e),s.set(e.catalogId,t)}let c=t.map(e=>s.get(e.id)?.length??e.productCount??0),l=Math.max(4,[...c].sort((e,t)=>t-e)[Math.floor(t.length/3)]??4);return t.map(t=>{let a=s.get(t.id)??[],c=o(a).length||a.length||t.productCount||0,u=i(a.map(e=>e.categoryId),`suit`),d=i(a.map(e=>e.season),`all_season`),f=a.some(e=>e.isNew),p=c>=l;return{id:t.id,companyId:t.companyId,name:t.name,title:n(t.name),latinName:r(t),subtitle:t.description?.trim()||e[u]||`پارچههای منتخب`,imageUrl:t.imageUrl||a.find(e=>e.imageUrl)?.imageUrl,patternCount:c,badge:f?`new`:p?`popular`:void 0,season:d,isNew:f,isPopular:p}})}function c(e,t,n){let r=n.trim().toLowerCase(),i=e.filter(e=>!r||[e.title,e.name,e.latinName,e.subtitle].join(` `).toLowerCase().includes(r));if(t===`newest`)return i.sort((e,t)=>Number(t.isNew)-Number(e.isNew)||t.patternCount-e.patternCount);if(t===`popular`)return i.sort((e,t)=>Number(t.isPopular)-Number(e.isPopular)||t.patternCount-e.patternCount);if(t===`season`){let e=[`summer`,`winter`,`all_season`];return i.sort((t,n)=>e.indexOf(t.season)-e.indexOf(n.season)||t.title.localeCompare(n.title,`fa`))}return i}export{c as a,r as i,s as n,o,n as r,t};
\ No newline at end of file
diff --git a/dist/assets/catalogRequests-4v_wDAbs.js b/dist/assets/catalogRequests-D1kBtGqL.js
similarity index 93%
rename from dist/assets/catalogRequests-4v_wDAbs.js
rename to dist/assets/catalogRequests-D1kBtGqL.js
index 9d4694a..c802dfe 100644
--- a/dist/assets/catalogRequests-4v_wDAbs.js
+++ b/dist/assets/catalogRequests-D1kBtGqL.js
@@ -1 +1 @@
-import{k as e,pt as t}from"./BasicIcon-B6lR-mG3.js";import{n,o as r}from"./http-CHgEV7QF.js";var i=`ft_catalog_requests`,a={new:`submitted`,approved:`reviewing`,ready_to_ship:`preparing`,delivered:`delivered`,returned:`delivered`,cancelled:`submitted`};function o(){try{let e=localStorage.getItem(i);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function s(e){localStorage.setItem(i,JSON.stringify(e))}var c={submitted:`ثبتشده`,reviewing:`در حال بررسی`,preparing:`آمادهسازی`,shipped:`ارسالشده`,delivered:`تحویلشده`,new:`درخواست جدید`,approved:`تأیید شده`,ready_to_ship:`آماده ارسال`,returned:`بازگردانده شده`,cancelled:`لغو شده`};function l(e){return{id:e.id,createdAt:e.createdAt,status:a[e.status]??e.status,note:e.note,items:e.items.map(e=>({productId:e.productId,productName:e.productName,productCode:e.productCode,quantity:e.quantity}))}}var u=r(`catalogRequests`,()=>{let r=t(o()),i=t(!0),a=e(()=>[...r.value].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)));function u(e){return c[e]??e}async function d(){if(!i.value){r.value=o();return}try{let e=await n(`/catalog-requests`);r.value=e.map(l),s(r.value)}catch{i.value=!1,r.value=o()}}async function f(e){let t=e.items.filter(e=>e.productId&&e.quantity>0).map(e=>({...e,quantity:Math.max(1,Math.floor(e.quantity))}));if(!t.length)return{success:!1,message:`حداقل یک قلم با تعداد معتبر لازم است.`};if(i.value)try{let i=l(await n(`/catalog-requests`,{method:`POST`,body:{note:e.note?.trim()||void 0,items:t.map(e=>({productId:e.productId,quantity:e.quantity}))}}));return r.value=[i,...r.value.filter(e=>e.id!==i.id)],s(r.value),{success:!0,request:i}}catch{i.value=!1}let a={id:`cr-${Date.now()}`,createdAt:new Date().toISOString(),status:`submitted`,note:e.note?.trim()||void 0,items:t};return r.value=[a,...r.value],s(r.value),{success:!0,request:a}}function p(e){return r.value.find(t=>t.id===e)??null}return{requests:r,sorted:a,statusLabel:u,create:f,getById:p,hydrate:d}});export{u as t};
\ No newline at end of file
+import{A as e,mt as t}from"./BasicIcon-C6boaehV.js";import{n,o as r}from"./http-BC1hNfZ4.js";var i=`ft_catalog_requests`,a={new:`submitted`,approved:`reviewing`,ready_to_ship:`preparing`,delivered:`delivered`,returned:`delivered`,cancelled:`submitted`};function o(){try{let e=localStorage.getItem(i);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function s(e){localStorage.setItem(i,JSON.stringify(e))}var c={submitted:`ثبتشده`,reviewing:`در حال بررسی`,preparing:`آمادهسازی`,shipped:`ارسالشده`,delivered:`تحویلشده`,new:`درخواست جدید`,approved:`تأیید شده`,ready_to_ship:`آماده ارسال`,returned:`بازگردانده شده`,cancelled:`لغو شده`};function l(e){return{id:e.id,createdAt:e.createdAt,status:a[e.status]??e.status,note:e.note,items:e.items.map(e=>({productId:e.productId,productName:e.productName,productCode:e.productCode,quantity:e.quantity}))}}var u=r(`catalogRequests`,()=>{let r=t(o()),i=t(!0),a=e(()=>[...r.value].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)));function u(e){return c[e]??e}async function d(){if(!i.value){r.value=o();return}try{let e=await n(`/catalog-requests`);r.value=e.map(l),s(r.value)}catch{i.value=!1,r.value=o()}}async function f(e){let t=e.items.filter(e=>e.productId&&e.quantity>0).map(e=>({...e,quantity:Math.max(1,Math.floor(e.quantity))}));if(!t.length)return{success:!1,message:`حداقل یک قلم با تعداد معتبر لازم است.`};if(i.value)try{let i=l(await n(`/catalog-requests`,{method:`POST`,body:{note:e.note?.trim()||void 0,items:t.map(e=>({productId:e.productId,quantity:e.quantity}))}}));return r.value=[i,...r.value.filter(e=>e.id!==i.id)],s(r.value),{success:!0,request:i}}catch{i.value=!1}let a={id:`cr-${Date.now()}`,createdAt:new Date().toISOString(),status:`submitted`,note:e.note?.trim()||void 0,items:t};return r.value=[a,...r.value],s(r.value),{success:!0,request:a}}function p(e){return r.value.find(t=>t.id===e)??null}return{requests:r,sorted:a,statusLabel:u,create:f,getById:p,hydrate:d}});export{u as t};
\ No newline at end of file
diff --git a/dist/assets/colorSwatch-BgOH1LE5.js b/dist/assets/colorSwatch-BgOH1LE5.js
new file mode 100644
index 0000000..ccd457b
--- /dev/null
+++ b/dist/assets/colorSwatch-BgOH1LE5.js
@@ -0,0 +1 @@
+function e(e){let t=e.trim();return!t||/[\u0600-\u06FF]/.test(t)?!1:t.startsWith(`#`)||/^(rgb|hsl)a?\(/i.test(t)||/^(transparent|currentcolor|black|white|navy|beige|gray|grey|red|blue|green|brown|gold|silver|ivory|khaki|olive|teal|maroon|purple|orange|pink|cyan|magenta|lime|aqua|fuchsia|indigo|violet|tan|wheat|snow)$/i.test(t)}function t(t,n){return n?{backgroundImage:`url(${n})`,backgroundSize:`cover`,backgroundPosition:`center`,backgroundRepeat:`no-repeat`}:e(t)?{background:t}:{background:`#c5cdc9`}}function n(e,t,n,r,i){return t?.[r]||n?.[r]||i||``}export{t as n,n as t};
\ No newline at end of file
diff --git a/dist/assets/crm-DbcoqKAF.js b/dist/assets/crm-CtglbPsN.js
similarity index 55%
rename from dist/assets/crm-DbcoqKAF.js
rename to dist/assets/crm-CtglbPsN.js
index ed87dfc..ad43797 100644
--- a/dist/assets/crm-DbcoqKAF.js
+++ b/dist/assets/crm-CtglbPsN.js
@@ -1 +1 @@
-import{pt as e}from"./BasicIcon-B6lR-mG3.js";import{n as t,o as n,t as r}from"./http-CHgEV7QF.js";var i=[{id:`trousers`,title:`پارچههای شلواری`,subtitle:`مشاهده محصولات`},{id:`suit`,title:`پارچههای کتشلواری`,subtitle:`مشاهده محصولات`},{id:`shirt`,title:`پارچههای پیراهنی`,subtitle:`مشاهده محصولات`}],a=[{id:`summer`,title:`تابستانه`,description:`سبک، خنک و مناسب فصل گرم`},{id:`winter`,title:`زمستانه`,description:`گرم و مناسب فصل سرد`},{id:`all_season`,title:`چهارفصل`,description:`مناسب استفاده در بیشتر فصلهای سال`}];function o(){return{usage:i,seasons:a}}var s=`سرویس واسطه روی سرور فعال نیست. پس از migrate و deploy سرور دوباره تلاش کنید.`;async function c(e,n){try{return await t(e,n)}catch(e){throw e instanceof r&&(e.status===404||e.status===501)?new r(e.status,s):e}}async function l(){try{return await t(`/catalog/categories`)}catch{try{return await t(`/products/meta/categories`)}catch{return o()}}}async function u(e){return t(`/products`,{query:{activeOnly:!0,categoryId:e?.categoryId,season:e?.season,catalogId:e?.catalogId,companyId:e?.companyId}})}async function d(e){return t(`/banners`,{query:{slot:e}})}async function f(){return c(`/agent/profile`)}async function p(e){return c(`/agent/customers`,{query:e})}async function m(e){return c(`/agent/customers`,{method:`POST`,body:e})}async function h(e){return c(`/agent/customers/${e}`)}async function g(e){return c(`/agent/meetings`,{method:`POST`,body:e})}async function _(e){return c(`/agent/reminders`,{query:{filter:e}})}async function v(e){return c(`/agent/reminders/${e}`)}async function y(e,t=!0){return c(`/agent/reminders/${e}/complete`,{method:`PATCH`,body:{completed:t}})}async function b(e){return c(`/agent/reminders`,{method:`POST`,body:e})}function x(e){return{id:e.id,name:e.name,code:e.code,categoryId:e.categoryId||e.usageCategory||`other`,season:e.season||`all_season`,widthCm:e.widthCm??150,composition:e.composition??``,weightGrams:e.weightGrams,weaveType:e.weaveType,colors:e.colors?.length?e.colors:[`#6b7280`],tags:e.tags??[],isNew:!!e.isNew,imageUrl:e.imageUrl||e.imageUrls?.[0],subtitle:e.subtitle,rollMeters:e.rollMeters??50,companyId:e.companyId,catalogId:e.catalogId,catalogCode:e.catalogCode,catalogName:e.catalogName,color:e.color,minMeterage:e.minMeterage??30,orderMultiplier:e.orderMultiplier??10,basePrice:e.basePrice??void 0}}var S=n(`crm`,()=>{let n=e(!1),r=e(null),i=e(null),a=e([]),o=e([]),s=e([]),c=e([]),d=e([]);async function S(){let e=await l();return s.value=e.usage,c.value=e.seasons,e}async function C(e){let t=await u(e);return d.value=t.map(x),d.value}async function w(e){return x(await t(`/products/${e}`))}async function T(){return i.value=await f(),i.value}async function E(e){return a.value=await p(e),a.value}async function D(e){return await h(e)}async function O(e){return g(e)}async function k(e){return m(e)}async function A(e){return o.value=await _(e),o.value}async function j(e){return v(e)}async function M(e){return y(e,!0)}async function N(e){return b(e)}return{loading:n,error:r,agentProfile:i,customers:a,reminders:o,usageCategories:s,seasonCategories:c,browseProducts:d,loadCategories:S,loadBrowseProducts:C,loadProductById:w,loadAgentProfile:T,loadCustomers:E,loadCustomerDetail:D,submitMeeting:O,registerCustomer:k,loadReminders:A,loadReminderDetail:j,markReminderComplete:M,createReminder:N}});export{i as a,a as i,f as n,d as r,S as t};
\ No newline at end of file
+import{mt as e}from"./BasicIcon-C6boaehV.js";import{n as t,o as n,t as r}from"./http-BC1hNfZ4.js";var i=[{id:`trousers`,title:`پارچههای شلواری`,subtitle:`مشاهده محصولات`},{id:`suit`,title:`پارچههای کتشلواری`,subtitle:`مشاهده محصولات`},{id:`shirt`,title:`پارچههای پیراهنی`,subtitle:`مشاهده محصولات`}],a=[{id:`summer`,title:`تابستانه`,description:`سبک، خنک و مناسب فصل گرم`},{id:`winter`,title:`زمستانه`,description:`گرم و مناسب فصل سرد`},{id:`all_season`,title:`چهارفصل`,description:`مناسب استفاده در بیشتر فصلهای سال`}];function o(){return{usage:i,seasons:a}}var s=`سرویس واسطه روی سرور فعال نیست. پس از migrate و deploy سرور دوباره تلاش کنید.`;async function c(e,n){try{return await t(e,n)}catch(e){throw e instanceof r&&(e.status===404||e.status===501)?new r(e.status,s):e}}async function l(){try{return await t(`/catalog/categories`)}catch{try{return await t(`/products/meta/categories`)}catch{return o()}}}async function u(e){return t(`/products`,{query:{activeOnly:!0,categoryId:e?.categoryId,season:e?.season,catalogId:e?.catalogId,companyId:e?.companyId}})}async function d(e){return t(`/banners`,{query:{slot:e}})}async function f(){return c(`/agent/profile`)}async function p(e){return c(`/agent/customers`,{query:e})}async function m(e){return c(`/agent/customers`,{method:`POST`,body:e})}async function h(e){return c(`/agent/customers/${e}`)}async function g(e){return c(`/agent/meetings`,{method:`POST`,body:e})}async function _(e){return c(`/agent/reminders`,{query:{filter:e}})}async function v(e){return c(`/agent/reminders/${e}`)}async function y(e,t=!0){return c(`/agent/reminders/${e}/complete`,{method:`PATCH`,body:{completed:t}})}async function b(e){return c(`/agent/reminders`,{method:`POST`,body:e})}function x(e){return{id:e.id,name:e.name,code:e.code,categoryId:e.categoryId||e.usageCategory||`other`,season:e.season||`all_season`,widthCm:e.widthCm??150,composition:e.composition??``,weightGrams:e.weightGrams,weaveType:e.weaveType,colors:e.colors?.length?e.colors:[`#6b7280`],colorImages:e.colorImages,tags:e.tags??[],isNew:!!e.isNew,imageUrl:e.imageUrl||e.colorImages?.find(Boolean)||e.imageUrls?.[0],imageUrls:e.imageUrls,subtitle:e.subtitle,rollMeters:e.rollMeters??50,companyId:e.companyId,catalogId:e.catalogId,catalogCode:e.catalogCode,catalogName:e.catalogName,color:e.color,minMeterage:e.minMeterage??30,orderMultiplier:e.orderMultiplier??10,basePrice:e.basePrice??void 0}}var S=n(`crm`,()=>{let n=e(!1),r=e(null),i=e(null),a=e([]),o=e([]),s=e([]),c=e([]),d=e([]);async function S(){let e=await l();return s.value=e.usage,c.value=e.seasons,e}async function C(e){let t=await u(e);return d.value=t.map(x),d.value}async function w(e){return x(await t(`/products/${e}`))}async function T(){return i.value=await f(),i.value}async function E(e){return a.value=await p(e),a.value}async function D(e){return await h(e)}async function O(e){return g(e)}async function k(e){return m(e)}async function A(e){return o.value=await _(e),o.value}async function j(e){return v(e)}async function M(e){return y(e,!0)}async function N(e){return b(e)}return{loading:n,error:r,agentProfile:i,customers:a,reminders:o,usageCategories:s,seasonCategories:c,browseProducts:d,loadCategories:S,loadBrowseProducts:C,loadProductById:w,loadAgentProfile:T,loadCustomers:E,loadCustomerDetail:D,submitMeeting:O,registerCustomer:k,loadReminders:A,loadReminderDetail:j,markReminderComplete:M,createReminder:N}});export{i as a,a as i,f as n,d as r,S as t};
\ No newline at end of file
diff --git a/dist/assets/dist-B7sUlTMM.js b/dist/assets/dist-B7sUlTMM.js
new file mode 100644
index 0000000..c0eaaf2
--- /dev/null
+++ b/dist/assets/dist-B7sUlTMM.js
@@ -0,0 +1 @@
+import{A as e,B as t,G as n,St as r,U as i,_t as a,mt as o,nt as s,q as c,tt as l,xt as u}from"./BasicIcon-C6boaehV.js";import{a as d,c as f,d as p,f as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./dist-CUUvbY4x.js";var x=g?window:void 0;g&&window.document,g&&window.navigator,g&&window.location;function S(e){let t=u(e);return t?.$el??t}function C(...t){let n=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),i=e(()=>{let e=y(u(t[0])).filter(e=>e!=null);return e.every(e=>typeof e!=`string`)?e:void 0});return p(()=>[i.value?.map(e=>S(e))??[x].filter(e=>e!=null),y(u(i.value?t[1]:t[0])),y(r(i.value?t[2]:t[1])),u(i.value?t[3]:t[2])],([e,t,r,i],a,o)=>{if(!e?.length||!t?.length||!r?.length)return;let s=h(i)?{...i}:i,c=e.flatMap(e=>t.flatMap(t=>r.map(r=>n(e,t,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}var w=!1;function T(e,t,n={}){let{window:r=x,ignore:i=[],capture:a=!0,detectIframe:o=!1,controls:s=!1}=n;if(!r)return s?{stop:d,cancel:d,trigger:d}:d;if(v&&!w){w=!0;let e={passive:!0};Array.from(r.document.body.children).forEach(t=>t.addEventListener(`click`,d,e)),r.document.documentElement.addEventListener(`click`,d,e)}let c=!0,l=e=>u(i).some(t=>{if(typeof t==`string`)return Array.from(r.document.querySelectorAll(t)).some(t=>t===e.target||e.composedPath().includes(t));{let n=S(t);return n&&(e.target===n||e.composedPath().includes(n))}});function f(e){let t=u(e);return t&&t.$.subTree.shapeFlag===16}function p(e,t){let n=u(e),r=n.$.subTree&&n.$.subTree.children;return r==null||!Array.isArray(r)?!1:r.some(e=>e.el===t.target||t.composedPath().includes(e.el))}let m=n=>{let r=S(e);if(n.target!=null&&!(!(r instanceof Element)&&f(e)&&p(e,n))&&!(!r||r===n.target||n.composedPath().includes(r))){if(`detail`in n&&n.detail===0&&(c=!l(n)),!c){c=!0;return}t(n)}},h=!1,g=[C(r,`click`,e=>{h||(h=!0,setTimeout(()=>{h=!1},0),m(e))},{passive:!0,capture:a}),C(r,`pointerdown`,t=>{let n=S(e);c=!l(t)&&!!(n&&!t.composedPath().includes(n))},{passive:!0}),o&&C(r,`blur`,n=>{setTimeout(()=>{let i=S(e),a=r.document.activeElement;for(;a?.shadowRoot;)a=a.shadowRoot.activeElement;a?.tagName===`IFRAME`&&!i?.contains(r.document.activeElement)&&t(n)},0)},{passive:!0})].filter(Boolean),_=()=>g.forEach(e=>e());return s?{stop:_,cancel:()=>{c=!1},trigger:e=>{c=!0,m(e),c=!1}}:_}function E(){let e=a(!1),n=t();return n&&c(()=>{e.value=!0},n),e}function D(t){let n=E();return e(()=>(n.value,!!t()))}var O=Symbol(`vueuse-ssr-width`);function k(){let e=i()?b(O,null):null;return typeof e==`number`?e:void 0}function A(t,n={}){let{window:r=x,ssrWidth:i=k()}=n,o=D(()=>r&&`matchMedia`in r&&typeof r.matchMedia==`function`),c=a(typeof i==`number`),l=a(),d=a(!1);return s(()=>{if(c.value){c.value=!o.value;let e=u(t).split(`,`);d.value=e.some(e=>{let t=e.includes(`not all`),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),r=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),a=!!(n||r);return n&&a&&(a=i>=_(n[1])),r&&a&&(a=i<=_(r[1])),t?!a:a});return}o.value&&(l.value=r.matchMedia(u(t)),d.value=l.value.matches)}),C(l,`change`,e=>{d.value=e.matches},{passive:!0}),e(()=>d.value)}var j=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},M=`__vueuse_ssr_handlers__`,N=P();function P(){return M in j||(j[M]=j[M]||{}),j[M]}function F(e,t){return N[e]||t}function I(e){return A(`(prefers-color-scheme: dark)`,e)}function L(e){return e==null?`any`:e instanceof Set?`set`:e instanceof Map?`map`:e instanceof Date?`date`:typeof e==`boolean`?`boolean`:typeof e==`string`?`string`:typeof e==`object`?`object`:Number.isNaN(e)?`any`:`number`}var R={boolean:{read:e=>e===`true`,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},z=`vueuse-storage`;function B(t,r,i,s={}){let{flush:c=`pre`,deep:d=!0,listenToStorageChanges:p=!0,writeDefaults:h=!0,mergeDefaults:g=!1,shallow:_,window:v=x,eventFilter:y,onError:b=e=>{console.error(e)},initOnMounted:S}=s,w=(_?a:o)(typeof r==`function`?r():r),T=e(()=>u(t));if(!i)try{i=F(`getDefaultStorage`,()=>x?.localStorage)()}catch(e){b(e)}if(!i)return w;let E=u(r),D=L(E),O=s.serializer??R[D],{pause:k,resume:A}=m(w,e=>N(e),{flush:c,deep:d,eventFilter:y});l(T,()=>I(),{flush:c});let j=!1;v&&p&&(i instanceof Storage?C(v,`storage`,e=>{S&&!j||I(e)},{passive:!0}):C(v,z,e=>{S&&!j||B(e)})),S?f(()=>{j=!0,I()}):I();function M(e,t){if(v){let n={key:T.value,oldValue:e,newValue:t,storageArea:i};v.dispatchEvent(i instanceof Storage?new StorageEvent(`storage`,n):new CustomEvent(z,{detail:n}))}}function N(e){try{let t=i.getItem(T.value);if(e==null)M(t,null),i.removeItem(T.value);else{let n=O.write(e);t!==n&&(i.setItem(T.value,n),M(t,n))}}catch(e){b(e)}}function P(e){let t=e?e.newValue:i.getItem(T.value);if(t==null)return h&&E!=null&&i.setItem(T.value,O.write(E)),E;if(!e&&g){let e=O.read(t);return typeof g==`function`?g(e,E):D===`object`&&!Array.isArray(e)?{...E,...e}:e}return typeof t==`string`?O.read(t):t}function I(e){if(!(e&&e.storageArea!==i)){if(e&&e.key==null){w.value=E;return}if(!(e&&e.key!==T.value)){k();try{let t=O.write(w.value);(e===void 0||e?.newValue!==t)&&(w.value=P(e))}catch(e){b(e)}finally{e?n(A):A()}}}}function B(e){I(e.detail)}return w}export{B as i,A as n,I as r,T as t};
\ No newline at end of file
diff --git a/dist/assets/dist-BcgVHqJQ.js b/dist/assets/dist-BcgVHqJQ.js
deleted file mode 100644
index 0cf09ea..0000000
--- a/dist/assets/dist-BcgVHqJQ.js
+++ /dev/null
@@ -1 +0,0 @@
-import{H as e,K as t,U as n,W as r,bt as i,ct as a,et as o,ft as s,gt as c,ht as l,it as u,ot as d,pt as f,ut as p,vt as m,z as h}from"./BasicIcon-B6lR-mG3.js";function g(e,t){return d()?(p(e,t),!0):!1}var _=new WeakMap,v=(...t)=>{let r=t[0],i=h()?.proxy??d();if(i==null&&!e())throw Error(`injectLocal must be called in setup`);return i&&_.has(i)&&r in _.get(i)?_.get(i)[r]:n(...t)},y=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var b=Object.prototype.toString,x=e=>b.call(e)===`[object Object]`,S=()=>{},C=w();function w(){var e,t;return y&&!!((e=window)!=null&&(e=e.navigator)!=null&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)==null||(t=t.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}function T(...e){if(e.length!==1)return m(...e);let t=e[0];return typeof t==`function`?s(u(()=>({get:t,set:S}))):f(t)}function E(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return`cancel`in e&&Object.assign(n,{cancel:e.cancel,flush:e.flush,isPending:e.isPending}),n}var D=e=>e();function O(e=D,t={}){let{initialState:n=`active`}=t,r=T(n===`active`);function i(){r.value=!1}function a(){r.value=!0}return{isActive:l(r),pause:i,resume:a,eventFilter:(...t)=>{r.value&&e(...t)}}}function k(e){return e.endsWith(`rem`)?Number.parseFloat(e)*16:Number.parseFloat(e)}function A(e){return Array.isArray(e)?e:[e]}function j(e){return e||h()}function M(e,t,n={}){let{eventFilter:r=D,...i}=n;return o(e,E(r,t),i)}function N(e,t,n={}){let{eventFilter:r,initialState:i=`active`,...a}=n,{eventFilter:o,pause:s,resume:c,isActive:l}=O(r,{initialState:i});return{stop:M(e,t,{...a,eventFilter:o}),pause:s,resume:c,isActive:l}}function P(e,n=!0,i){j(i)?t(e,i):n?e():r(e)}function F(e,t=1e3,n={}){let{immediate:r=!0,immediateCallback:s=!1}=n,u=null,d=c(!1);function f(){u&&=(clearInterval(u),null)}function p(){d.value=!1,f()}function m(){let n=i(t);n<=0||(d.value=!0,s&&e(),f(),d.value&&(u=setInterval(e,n)))}return r&&y&&m(),(a(t)||typeof t==`function`)&&g(o(t,()=>{d.value&&y&&m()})),g(p),{isActive:l(d),pause:p,resume:m}}function I(e,t,n={}){let{immediate:r=!0,immediateCallback:a=!1}=n,o=c(!1),s;function u(){s&&=(clearTimeout(s),void 0)}function d(){o.value=!1,u()}function f(...n){a&&e(),u(),o.value=!0,s=setTimeout(()=>{o.value=!1,s=void 0,e(...n)},i(t))}return r&&(o.value=!0,y&&f()),g(d),{isPending:l(o),start:f,stop:d}}function L(e,t,n){return o(e,t,{...n,immediate:!0})}export{S as a,P as c,L as d,N as f,x as i,F as l,y as n,k as o,C as r,A as s,v as t,I as u};
\ No newline at end of file
diff --git a/dist/assets/dist-CUUvbY4x.js b/dist/assets/dist-CUUvbY4x.js
new file mode 100644
index 0000000..2540903
--- /dev/null
+++ b/dist/assets/dist-CUUvbY4x.js
@@ -0,0 +1 @@
+import{B as e,G as t,U as n,W as r,_t as i,at as a,dt as o,gt as s,lt as c,mt as l,pt as u,q as d,st as f,tt as p,xt as m,yt as h}from"./BasicIcon-C6boaehV.js";function g(e,t){return f()?(o(e,t),!0):!1}var _=new WeakMap,v=(...t)=>{let i=t[0],a=e()?.proxy??f();if(a==null&&!n())throw Error(`injectLocal must be called in setup`);return a&&_.has(a)&&i in _.get(a)?_.get(a)[i]:r(...t)},y=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var b=Object.prototype.toString,x=e=>b.call(e)===`[object Object]`,S=()=>{},C=w();function w(){var e,t;return y&&!!((e=window)!=null&&(e=e.navigator)!=null&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)==null||(t=t.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}function T(...e){if(e.length!==1)return h(...e);let t=e[0];return typeof t==`function`?u(a(()=>({get:t,set:S}))):l(t)}function E(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return`cancel`in e&&Object.assign(n,{cancel:e.cancel,flush:e.flush,isPending:e.isPending}),n}var D=e=>e();function O(e=D,t={}){let{initialState:n=`active`}=t,r=T(n===`active`);function i(){r.value=!1}function a(){r.value=!0}return{isActive:s(r),pause:i,resume:a,eventFilter:(...t)=>{r.value&&e(...t)}}}function k(e){return e.endsWith(`rem`)?Number.parseFloat(e)*16:Number.parseFloat(e)}function A(e){return Array.isArray(e)?e:[e]}function j(t){return t||e()}function M(e,t,n={}){let{eventFilter:r=D,...i}=n;return p(e,E(r,t),i)}function N(e,t,n={}){let{eventFilter:r,initialState:i=`active`,...a}=n,{eventFilter:o,pause:s,resume:c,isActive:l}=O(r,{initialState:i});return{stop:M(e,t,{...a,eventFilter:o}),pause:s,resume:c,isActive:l}}function P(e,n=!0,r){j(r)?d(e,r):n?e():t(e)}function F(e,t=1e3,n={}){let{immediate:r=!0,immediateCallback:a=!1}=n,o=null,l=i(!1);function u(){o&&=(clearInterval(o),null)}function d(){l.value=!1,u()}function f(){let n=m(t);n<=0||(l.value=!0,a&&e(),u(),l.value&&(o=setInterval(e,n)))}return r&&y&&f(),(c(t)||typeof t==`function`)&&g(p(t,()=>{l.value&&y&&f()})),g(d),{isActive:s(l),pause:d,resume:f}}function I(e,t,n={}){let{immediate:r=!0,immediateCallback:a=!1}=n,o=i(!1),c;function l(){c&&=(clearTimeout(c),void 0)}function u(){o.value=!1,l()}function d(...n){a&&e(),l(),o.value=!0,c=setTimeout(()=>{o.value=!1,c=void 0,e(...n)},m(t))}return r&&(o.value=!0,y&&d()),g(u),{isPending:s(o),start:d,stop:u}}function L(e,t,n){return p(e,t,{...n,immediate:!0})}export{S as a,P as c,L as d,N as f,x as i,F as l,y as n,k as o,C as r,A as s,v as t,I as u};
\ No newline at end of file
diff --git a/dist/assets/dist-DwqEDRqq.js b/dist/assets/dist-DwqEDRqq.js
deleted file mode 100644
index 094c1a2..0000000
--- a/dist/assets/dist-DwqEDRqq.js
+++ /dev/null
@@ -1 +0,0 @@
-import{H as e,K as t,W as n,bt as r,et as i,gt as a,k as o,pt as s,tt as c,xt as l,z as u}from"./BasicIcon-B6lR-mG3.js";import{a as d,c as f,d as p,f as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./dist-BcgVHqJQ.js";var x=g?window:void 0;g&&window.document,g&&window.navigator,g&&window.location;function S(e){let t=r(e);return t?.$el??t}function C(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=o(()=>{let t=y(r(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return p(()=>[n.value?.map(e=>S(e))??[x].filter(e=>e!=null),y(r(n.value?e[1]:e[0])),y(l(n.value?e[2]:e[1])),r(n.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=h(i)?{...i}:i,c=e.flatMap(e=>n.flatMap(n=>r.map(r=>t(e,n,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}var w=!1;function T(e,t,n={}){let{window:i=x,ignore:a=[],capture:o=!0,detectIframe:s=!1,controls:c=!1}=n;if(!i)return c?{stop:d,cancel:d,trigger:d}:d;if(v&&!w){w=!0;let e={passive:!0};Array.from(i.document.body.children).forEach(t=>t.addEventListener(`click`,d,e)),i.document.documentElement.addEventListener(`click`,d,e)}let l=!0,u=e=>r(a).some(t=>{if(typeof t==`string`)return Array.from(i.document.querySelectorAll(t)).some(t=>t===e.target||e.composedPath().includes(t));{let n=S(t);return n&&(e.target===n||e.composedPath().includes(n))}});function f(e){let t=r(e);return t&&t.$.subTree.shapeFlag===16}function p(e,t){let n=r(e),i=n.$.subTree&&n.$.subTree.children;return i==null||!Array.isArray(i)?!1:i.some(e=>e.el===t.target||t.composedPath().includes(e.el))}let m=n=>{let r=S(e);if(n.target!=null&&!(!(r instanceof Element)&&f(e)&&p(e,n))&&!(!r||r===n.target||n.composedPath().includes(r))){if(`detail`in n&&n.detail===0&&(l=!u(n)),!l){l=!0;return}t(n)}},h=!1,g=[C(i,`click`,e=>{h||(h=!0,setTimeout(()=>{h=!1},0),m(e))},{passive:!0,capture:o}),C(i,`pointerdown`,t=>{let n=S(e);l=!u(t)&&!!(n&&!t.composedPath().includes(n))},{passive:!0}),s&&C(i,`blur`,n=>{setTimeout(()=>{let r=S(e),a=i.document.activeElement;for(;a?.shadowRoot;)a=a.shadowRoot.activeElement;a?.tagName===`IFRAME`&&!r?.contains(i.document.activeElement)&&t(n)},0)},{passive:!0})].filter(Boolean),_=()=>g.forEach(e=>e());return c?{stop:_,cancel:()=>{l=!1},trigger:e=>{l=!0,m(e),l=!1}}:_}function E(){let e=a(!1),n=u();return n&&t(()=>{e.value=!0},n),e}function D(e){let t=E();return o(()=>(t.value,!!e()))}var O=Symbol(`vueuse-ssr-width`);function k(){let t=e()?b(O,null):null;return typeof t==`number`?t:void 0}function A(e,t={}){let{window:n=x,ssrWidth:i=k()}=t,s=D(()=>n&&`matchMedia`in n&&typeof n.matchMedia==`function`),l=a(typeof i==`number`),u=a(),d=a(!1);return c(()=>{if(l.value){l.value=!s.value;let t=r(e).split(`,`);d.value=t.some(e=>{let t=e.includes(`not all`),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),r=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),a=!!(n||r);return n&&a&&(a=i>=_(n[1])),r&&a&&(a=i<=_(r[1])),t?!a:a});return}s.value&&(u.value=n.matchMedia(r(e)),d.value=u.value.matches)}),C(u,`change`,e=>{d.value=e.matches},{passive:!0}),o(()=>d.value)}var j=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},M=`__vueuse_ssr_handlers__`,N=P();function P(){return M in j||(j[M]=j[M]||{}),j[M]}function F(e,t){return N[e]||t}function I(e){return A(`(prefers-color-scheme: dark)`,e)}function L(e){return e==null?`any`:e instanceof Set?`set`:e instanceof Map?`map`:e instanceof Date?`date`:typeof e==`boolean`?`boolean`:typeof e==`string`?`string`:typeof e==`object`?`object`:Number.isNaN(e)?`any`:`number`}var R={boolean:{read:e=>e===`true`,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},z=`vueuse-storage`;function B(e,t,c,l={}){let{flush:u=`pre`,deep:d=!0,listenToStorageChanges:p=!0,writeDefaults:h=!0,mergeDefaults:g=!1,shallow:_,window:v=x,eventFilter:y,onError:b=e=>{console.error(e)},initOnMounted:S}=l,w=(_?a:s)(typeof t==`function`?t():t),T=o(()=>r(e));if(!c)try{c=F(`getDefaultStorage`,()=>x?.localStorage)()}catch(e){b(e)}if(!c)return w;let E=r(t),D=L(E),O=l.serializer??R[D],{pause:k,resume:A}=m(w,e=>N(e),{flush:u,deep:d,eventFilter:y});i(T,()=>I(),{flush:u});let j=!1;v&&p&&(c instanceof Storage?C(v,`storage`,e=>{S&&!j||I(e)},{passive:!0}):C(v,z,e=>{S&&!j||B(e)})),S?f(()=>{j=!0,I()}):I();function M(e,t){if(v){let n={key:T.value,oldValue:e,newValue:t,storageArea:c};v.dispatchEvent(c instanceof Storage?new StorageEvent(`storage`,n):new CustomEvent(z,{detail:n}))}}function N(e){try{let t=c.getItem(T.value);if(e==null)M(t,null),c.removeItem(T.value);else{let n=O.write(e);t!==n&&(c.setItem(T.value,n),M(t,n))}}catch(e){b(e)}}function P(e){let t=e?e.newValue:c.getItem(T.value);if(t==null)return h&&E!=null&&c.setItem(T.value,O.write(E)),E;if(!e&&g){let e=O.read(t);return typeof g==`function`?g(e,E):D===`object`&&!Array.isArray(e)?{...E,...e}:e}return typeof t==`string`?O.read(t):t}function I(e){if(!(e&&e.storageArea!==c)){if(e&&e.key==null){w.value=E;return}if(!(e&&e.key!==T.value)){k();try{let t=O.write(w.value);(e===void 0||e?.newValue!==t)&&(w.value=P(e))}catch(e){b(e)}finally{e?n(A):A()}}}}function B(e){I(e.detail)}return w}export{B as i,A as n,I as r,T as t};
\ No newline at end of file
diff --git a/dist/assets/http-CHgEV7QF.js b/dist/assets/http-BC1hNfZ4.js
similarity index 66%
rename from dist/assets/http-CHgEV7QF.js
rename to dist/assets/http-BC1hNfZ4.js
index 05684a8..0170a47 100644
--- a/dist/assets/http-CHgEV7QF.js
+++ b/dist/assets/http-BC1hNfZ4.js
@@ -1 +1 @@
-import{H as e,U as t,W as n,_t as r,at as i,ct as a,dt as o,et as s,k as c,lt as l,ot as u,pt as d,st as f,ut as p,vt as m,yt as h}from"./BasicIcon-B6lR-mG3.js";var g=typeof window<`u`,_,v=e=>_=e,y=Symbol();function b(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var x=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function S(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function C(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){O(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function w(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function T(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var E=typeof navigator==`object`?navigator:{userAgent:``},D=/Macintosh/.test(E.userAgent)&&/AppleWebKit/.test(E.userAgent)&&!/Safari/.test(E.userAgent),O=g?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!D?k:`msSaveOrOpenBlob`in E?A:j:()=>{};function k(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?T(r):w(r.href)?C(e,t,n):(r.target=`_blank`,T(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){T(r)},0))}function A(e,t=`download`,n){if(typeof e==`string`)if(w(e))C(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){T(t)})}else navigator.msSaveOrOpenBlob(S(e,n),t)}function j(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return C(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(x.HTMLElement))||`safari`in x,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||D)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:ee}=Object;function M(){let e=i(!0),t=e.run(()=>d({})),n=[],r=[],a=l({install(e){v(a),a._a=e,e.provide(y,a),e.config.globalProperties.$pinia=a,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return a}var N=()=>{};function P(e,t,n,r=N){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&u()&&p(i),i}function F(e,...t){e.forEach(e=>{e(...t)})}var I=e=>e(),L=Symbol(),R=Symbol();function z(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];e[n]=b(i)&&b(r)&&Object.hasOwn(e,n)&&!a(r)&&!f(r)?z(i,r):r}return e}var B=Symbol();function V(e){return!e||typeof e!=`object`||!Object.hasOwn(e,B)}var{assign:H}=Object;function U(e){return!!(a(e)&&e.effect)}function W(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],u;function d(){return s||(n.state.value[e]=i?i():{}),H(h(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=l(c(()=>{v(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return u=G(e,d,t,n,r,!0),u}function G(e,t,c={},l,u,d){let p,m=H({actions:{}},c),h={deep:!0},g,_,y=new Set,b=new Set,x,S=l.state.value[e];!d&&!S&&(l.state.value[e]={});let C;function w(t){let r;g=_=!1,typeof t==`function`?(t(l.state.value[e]),r={type:`patch function`,storeId:e,events:x}):(z(l.state.value[e],t),r={type:`patch object`,payload:t,storeId:e,events:x});let i=C=Symbol();n().then(()=>{C===i&&(g=!0)}),_=!0,F(y,r,l.state.value[e])}let T=d?function(){let{state:e}=c,t=e?e():{};this.$patch(e=>{H(e,t)})}:N;function E(){p.stop(),y.clear(),b.clear(),l._s.delete(e)}let D=(t,n=``)=>{if(L in t)return t[R]=n,t;let r=function(){v(l);let n=Array.from(arguments),i=new Set,a=new Set;function o(e){i.add(e)}function s(e){a.add(e)}F(b,{args:n,name:r[R],store:k,after:o,onError:s});let c;try{c=t.apply(this&&this.$id===e?this:k,n)}catch(e){throw F(a,e),e}return c instanceof Promise?c.then(e=>(F(i,e),e)).catch(e=>(F(a,e),Promise.reject(e))):(F(i,c),c)};return r[L]=!0,r[R]=n,r},O={_p:l,$id:e,$onAction:P.bind(null,b),$patch:w,$reset:T,$subscribe(t,n={}){if(y.has(t))return N;let r=P(y,t,n.detached,()=>i()),i=p.run(()=>s(()=>l.state.value[e],r=>{(n.flush===`sync`?_:g)&&t({storeId:e,type:`direct`,events:x},r)},H({},h,n)));return r},$dispose:E},k=o(O);l._s.set(e,k);let A=(l._a&&l._a.runWithContext||I)(()=>l._e.run(()=>(p=i()).run(()=>t({action:D}))));for(let t in A){let n=A[t];a(n)&&!U(n)||f(n)?d||(S&&V(n)&&(a(n)?n.value=S[t]:z(n,S[t])),l.state.value[e][t]=n):typeof n==`function`&&(A[t]=D(n,t),m.actions[t]=n)}return H(k,A),H(r(k),A),Object.defineProperty(k,"$state",{get:()=>l.state.value[e],set:e=>{w(t=>{H(t,e)})}}),l._p.forEach(e=>{let t=p.run(()=>e({store:k,app:l._a,pinia:l,options:m}));H(k,t)}),S&&d&&c.hydrate&&c.hydrate(k.$state,S),g=!0,_=!0,k}function K(n,r,i){let a,o=typeof r==`function`;a=o?i:r;function s(i,s){let c=e();return i||=c?t(y,null):null,i&&v(i),i=_,i._s.has(n)||(o?G(n,r,a,i):W(n,a,i)),i._s.get(n)}return s.$id=n,s}function q(e){let t=r(e),n={};for(let r in t){let i=t[r];i?.effect?n[r]=c({get:()=>e[r],set(t){e[r]=t}}):(a(i)||f(i))&&(n[r]=m(e,r))}return n}var J=`ft_access_token`;function Y(){return`https://nademitex.montest.ir/server/api`.replace(/\/$/,``)||`https://nademitex.montest.ir/server/api`}function X(){return localStorage.getItem(J)}function Z(e){e?localStorage.setItem(J,e):localStorage.removeItem(J)}var Q=class extends Error{status;constructor(e,t){super(t),this.status=e}};function $(e,t){let n=Y(),r=e.startsWith(`http`)?e:`${n.replace(/\/$/,``)}/${e.replace(/^\//,``)}`,i=r.startsWith(`http`)?new URL(r):new URL(r,typeof window<`u`?window.location.origin:`http://127.0.0.1`);if(t)for(let[e,n]of Object.entries(t))n!=null&&n!==``&&i.searchParams.set(e,String(n));return i.toString()}function te(e,t){if(typeof e==`object`&&e){if(`message`in e){let t=e.message;if(Array.isArray(t))return t.join(`، `);if(t!=null&&String(t).trim())return String(t)}if(`error`in e){let n=e.error;if(typeof n==`string`&&n.trim())return`${n} (${t})`}}if(typeof e==`string`){if(/upstream error/i.test(e))return`سرور API در دسترس نیست. کمی بعد دوباره تلاش کنید.`;if(e.trim()&&!e.trimStart().startsWith(`<`))return e.trim().slice(0,200)}return t===400?`درخواست نامعتبر است. اطلاعات سفارش را بررسی کنید.`:t===401?`نشست شما منقضی شده است. دوباره وارد شوید.`:`خطای سرور (${t})`}async function ne(e,t={}){let n={Accept:`application/json`};if(t.body!==void 0&&(n[`Content-Type`]=`application/json`),t.auth!==!1){let e=X();e&&(n.Authorization=`Bearer ${e}`)}let r;try{r=await fetch($(e,t.query),{method:t.method??(t.body===void 0?`GET`:`POST`),headers:n,body:t.body===void 0?void 0:JSON.stringify(t.body),signal:AbortSignal.timeout(2e4)})}catch(e){throw new Q(0,e instanceof DOMException&&e.name===`TimeoutError`||e instanceof Error&&e.name===`TimeoutError`?`پاسخ سرور طول کشید. دوباره تلاش کنید.`:`اتصال به سرور برقرار نشد. اینترنت یا آدرس API را بررسی کنید.`)}let i=await r.text(),a=null;if(i)try{a=JSON.parse(i)}catch{a=i}if(!r.ok){if(r.status===401&&t.auth!==!1){Z(null);try{localStorage.removeItem(`ft_user`)}catch{}if(typeof window<`u`&&!window.location.pathname.startsWith(`/login`)){let e=encodeURIComponent(`${window.location.pathname}${window.location.search}`);window.location.assign(`/login?redirect=${e}`)}}throw new Q(r.status,te(a,r.status))}return a}export{M as a,Z as i,ne as n,K as o,X as r,q as s,Q as t};
\ No newline at end of file
+import{A as e,G as t,U as n,W as r,bt as i,ct as a,dt as o,ft as s,lt as c,mt as l,ot as u,st as d,tt as f,ut as p,vt as m,yt as h}from"./BasicIcon-C6boaehV.js";var g=typeof window<`u`,_,v=e=>_=e,y=Symbol();function b(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var x=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:typeof global==`object`&&global.global===global?global:typeof globalThis==`object`?globalThis:{HTMLElement:null};function S(e,{autoBom:t=!1}={}){return t&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function C(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){O(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function w(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function T(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=new MouseEvent(`click`,{bubbles:!0,cancelable:!0,view:window,detail:0,screenX:80,screenY:20,clientX:80,clientY:20,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,button:0,relatedTarget:null});e.dispatchEvent(t)}}var E=typeof navigator==`object`?navigator:{userAgent:``},D=/Macintosh/.test(E.userAgent)&&/AppleWebKit/.test(E.userAgent)&&!/Safari/.test(E.userAgent),O=g?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!D?k:`msSaveOrOpenBlob`in E?A:j:()=>{};function k(e,t=`download`,n){let r=document.createElement(`a`);r.download=t,r.rel=`noopener`,typeof e==`string`?(r.href=e,r.origin===location.origin?T(r):w(r.href)?C(e,t,n):(r.target=`_blank`,T(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){T(r)},0))}function A(e,t=`download`,n){if(typeof e==`string`)if(w(e))C(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){T(t)})}else navigator.msSaveOrOpenBlob(S(e,n),t)}function j(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return C(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(x.HTMLElement))||`safari`in x,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||D)&&typeof FileReader<`u`){let t=new FileReader;t.onloadend=function(){let e=t.result;if(typeof e!=`string`)throw r=null,Error(`Wrong reader.result type`);e=o?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),r?r.location.href=e:location.assign(e),r=null},t.readAsDataURL(e)}else{let t=URL.createObjectURL(e);r?r.location.assign(t):location.href=t,r=null,setTimeout(function(){URL.revokeObjectURL(t)},4e4)}}var{assign:ee}=Object;function M(){let e=u(!0),t=e.run(()=>l({})),n=[],r=[],i=p({install(e){v(i),i._a=e,e.provide(y,i),e.config.globalProperties.$pinia=i,r.forEach(e=>n.push(e)),r=[]},use(e){return this._a?n.push(e):r.push(e),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return i}var N=()=>{};function P(e,t,n,r=N){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&d()&&o(i),i}function F(e,...t){e.forEach(e=>{e(...t)})}var I=e=>e(),L=Symbol(),R=Symbol();function z(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!Object.hasOwn(t,n))continue;let r=t[n],i=e[n];e[n]=b(i)&&b(r)&&Object.hasOwn(e,n)&&!c(r)&&!a(r)?z(i,r):r}return e}var B=Symbol();function V(e){return!e||typeof e!=`object`||!Object.hasOwn(e,B)}var{assign:H}=Object;function U(e){return!!(c(e)&&e.effect)}function W(t,n,r,a){let{state:o,actions:s,getters:c}=n,l=r.state.value[t],u;function d(){return l||(r.state.value[t]=o?o():{}),H(i(r.state.value[t]),s,Object.keys(c||{}).reduce((n,i)=>(n[i]=p(e(()=>{v(r);let e=r._s.get(t);return c[i].call(e,e)})),n),{}))}return u=G(t,d,n,r,a,!0),u}function G(e,n,r={},i,o,l){let d,p=H({actions:{}},r),h={deep:!0},g,_,y=new Set,b=new Set,x,S=i.state.value[e];!l&&!S&&(i.state.value[e]={});let C;function w(n){let r;g=_=!1,typeof n==`function`?(n(i.state.value[e]),r={type:`patch function`,storeId:e,events:x}):(z(i.state.value[e],n),r={type:`patch object`,payload:n,storeId:e,events:x});let a=C=Symbol();t().then(()=>{C===a&&(g=!0)}),_=!0,F(y,r,i.state.value[e])}let T=l?function(){let{state:e}=r,t=e?e():{};this.$patch(e=>{H(e,t)})}:N;function E(){d.stop(),y.clear(),b.clear(),i._s.delete(e)}let D=(t,n=``)=>{if(L in t)return t[R]=n,t;let r=function(){v(i);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}F(b,{args:n,name:r[R],store:k,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:k,n)}catch(e){throw F(o,e),e}return l instanceof Promise?l.then(e=>(F(a,e),e)).catch(e=>(F(o,e),Promise.reject(e))):(F(a,l),l)};return r[L]=!0,r[R]=n,r},O={_p:i,$id:e,$onAction:P.bind(null,b),$patch:w,$reset:T,$subscribe(t,n={}){if(y.has(t))return N;let r=P(y,t,n.detached,()=>a()),a=d.run(()=>f(()=>i.state.value[e],r=>{(n.flush===`sync`?_:g)&&t({storeId:e,type:`direct`,events:x},r)},H({},h,n)));return r},$dispose:E},k=s(O);i._s.set(e,k);let A=(i._a&&i._a.runWithContext||I)(()=>i._e.run(()=>(d=u()).run(()=>n({action:D}))));for(let t in A){let n=A[t];c(n)&&!U(n)||a(n)?l||(S&&V(n)&&(c(n)?n.value=S[t]:z(n,S[t])),i.state.value[e][t]=n):typeof n==`function`&&(A[t]=D(n,t),p.actions[t]=n)}return H(k,A),H(m(k),A),Object.defineProperty(k,"$state",{get:()=>i.state.value[e],set:e=>{w(t=>{H(t,e)})}}),i._p.forEach(e=>{let t=d.run(()=>e({store:k,app:i._a,pinia:i,options:p}));H(k,t)}),S&&l&&r.hydrate&&r.hydrate(k.$state,S),g=!0,_=!0,k}function K(e,t,i){let a,o=typeof t==`function`;a=o?i:t;function s(i,s){let c=n();return i||=c?r(y,null):null,i&&v(i),i=_,i._s.has(e)||(o?G(e,t,a,i):W(e,a,i)),i._s.get(e)}return s.$id=e,s}function q(t){let n=m(t),r={};for(let i in n){let o=n[i];o?.effect?r[i]=e({get:()=>t[i],set(e){t[i]=e}}):(c(o)||a(o))&&(r[i]=h(t,i))}return r}var J=`ft_access_token`;function Y(){return`https://nademitex.montest.ir/server/api`.replace(/\/$/,``)||`https://nademitex.montest.ir/server/api`}function X(){return localStorage.getItem(J)}function Z(e){e?localStorage.setItem(J,e):localStorage.removeItem(J)}var Q=class extends Error{status;constructor(e,t){super(t),this.status=e}};function $(e,t){let n=Y(),r=e.startsWith(`http`)?e:`${n.replace(/\/$/,``)}/${e.replace(/^\//,``)}`,i=r.startsWith(`http`)?new URL(r):new URL(r,typeof window<`u`?window.location.origin:`http://127.0.0.1`);if(t)for(let[e,n]of Object.entries(t))n!=null&&n!==``&&i.searchParams.set(e,String(n));return i.toString()}function te(e,t){if(typeof e==`object`&&e){if(`message`in e){let t=e.message;if(Array.isArray(t))return t.join(`، `);if(t!=null&&String(t).trim())return String(t)}if(`error`in e){let n=e.error;if(typeof n==`string`&&n.trim())return`${n} (${t})`}}if(typeof e==`string`){if(/upstream error/i.test(e))return`سرور API در دسترس نیست. کمی بعد دوباره تلاش کنید.`;if(e.trim()&&!e.trimStart().startsWith(`<`))return e.trim().slice(0,200)}return t===400?`درخواست نامعتبر است. اطلاعات سفارش را بررسی کنید.`:t===401?`نشست شما منقضی شده است. دوباره وارد شوید.`:`خطای سرور (${t})`}async function ne(e,t={}){let n={Accept:`application/json`};if(t.body!==void 0&&(n[`Content-Type`]=`application/json`),t.auth!==!1){let e=X();e&&(n.Authorization=`Bearer ${e}`)}let r;try{r=await fetch($(e,t.query),{method:t.method??(t.body===void 0?`GET`:`POST`),headers:n,body:t.body===void 0?void 0:JSON.stringify(t.body),signal:AbortSignal.timeout(2e4)})}catch(e){throw new Q(0,e instanceof DOMException&&e.name===`TimeoutError`||e instanceof Error&&e.name===`TimeoutError`?`پاسخ سرور طول کشید. دوباره تلاش کنید.`:`اتصال به سرور برقرار نشد. اینترنت یا آدرس API را بررسی کنید.`)}let i=await r.text(),a=null;if(i)try{a=JSON.parse(i)}catch{a=i}if(!r.ok){if(r.status===401&&t.auth!==!1){Z(null);try{localStorage.removeItem(`ft_user`)}catch{}if(typeof window<`u`&&!window.location.pathname.startsWith(`/login`)){let e=encodeURIComponent(`${window.location.pathname}${window.location.search}`);window.location.assign(`/login?redirect=${e}`)}}throw new Q(r.status,te(a,r.status))}return a}export{M as a,Z as i,ne as n,K as o,X as r,q as s,Q as t};
\ No newline at end of file
diff --git a/dist/assets/index-B20WsQhf.js b/dist/assets/index-B20WsQhf.js
deleted file mode 100644
index 7187bff..0000000
--- a/dist/assets/index-B20WsQhf.js
+++ /dev/null
@@ -1,2 +0,0 @@
-const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/WelcomeView-Dm_Gj4-t.js","assets/BasicIcon-B6lR-mG3.js","assets/BasicIcon-QF_b9Svq.css","assets/login-fabric-CzrIXTnD.js","assets/WelcomeView-Bue6hk9x.css","assets/LoginView-BQ3xuGSX.js","assets/http-CHgEV7QF.js","assets/format-BHJptHdF.js","assets/validation-BD7oi-2I.js","assets/FormErrorBanner-8PcsTbdO.js","assets/FormErrorBanner-Hje8L-00.css","assets/IconPhone-Glpo76KE.js","assets/formErrors-DglFjYkZ.js","assets/LoginView-a5WOmvO4.css","assets/RegisterView-CylManm7.js","assets/dist-DwqEDRqq.js","assets/dist-BcgVHqJQ.js","assets/IconDiamond-7-J5Q2Ma.js","assets/IconVerified-BSlZDcZt.js","assets/RegisterView-CTzyNknX.css","assets/OtpView-CqTNOZUE.js","assets/IconChevronBack-BXRfc2bX.js","assets/IconEditPen-CppsBLM9.js","assets/OtpView-D50bP3mT.css","assets/HomeView-DUEE32an.js","assets/IconLayoutGrid-DgOvzvMf.js","assets/PageSkeleton-BImjuI6S.js","assets/PageSkeleton-BAjL8n2H.css","assets/crm-DbcoqKAF.js","assets/useGoBack-yePcdjuj.js","assets/IconHeart-DjMqqdO0.js","assets/HomeView-B1qHsdTP.css","assets/CompanySelectView-2uDtaz53.js","assets/catalog-DNpqlweh.js","assets/IconFamBaftLogo-CHx7e3Le.js","assets/IconFamBaftLogo-BaDEschB.css","assets/IconBuilding-oclvcvlP.js","assets/IconShoppingBag-DW_Of8if.js","assets/CompanySelectView-D61_rpsC.css","assets/CategoriesView-Dxbr04Tk.js","assets/IconSearch-CQT-DmXF.js","assets/IconBolt-BuLG6uFR.js","assets/CategoriesView-BPyEMB_L.css","assets/ProductsView-BPje9bIW.js","assets/IconFilter-DJjJ9EAy.js","assets/PageHeader-DXkA75qK.js","assets/PageHeader-CDhs0XKF.css","assets/SearchField-txVsGGXT.js","assets/SearchField-BGmIHecn.css","assets/ProductsView-CHENfFEp.css","assets/ProductDetailView-VjRdY1Zl.js","assets/IconShare-CoOzZmBa.js","assets/ProductDetailView-CtgUNpy9.css","assets/CatalogsHubView-Du4_08O7.js","assets/catalogGallery-sguYVy7M.js","assets/CatalogsHubView-Cnl22g6I.css","assets/CatalogDetailView-BlAXKBtt.js","assets/CatalogDetailView-DewbVSm4.css","assets/CatalogRequestView-C5BboW9x.js","assets/catalogRequests-4v_wDAbs.js","assets/CatalogRequestView-BZ3G_4yn.css","assets/CatalogRequestsView-BTSUD4xT.js","assets/CatalogRequestsView-DUzaL-Pf.css","assets/FavoritesView-C9nplFH5.js","assets/FavoritesView-C_rd5Wxy.css","assets/CustomersView-f-iLJhx1.js","assets/CustomersView--6m_fbKL.css","assets/CustomerCreateView-CSSpyhNm.js","assets/BaseInput-9HB-GJGt.js","assets/BaseInput-Dxl7Obd8.css","assets/CustomerCreateView-xAy0nFXT.css","assets/CustomerDetailView-G9m9g3PH.js","assets/constants-DXXK14Zz.js","assets/IconClipboardEmpty-D2QGqogo.js","assets/IconMail-BWRmFd4j.js","assets/CustomerDetailView-Baj8nbYX.css","assets/MeetingReportView-DQIFxjMR.js","assets/IconCheckCircleOutline-t6E4YUKp.js","assets/MeetingReportView-clcxg22r.css","assets/RemindersView-IMJcGYf7.js","assets/IconMoreVertical-Dw3RBXp5.js","assets/RemindersView-DX3323vn.css","assets/ReminderDetailView-5GG_ljLb.js","assets/ReminderDetailView-CRDCge09.css","assets/CatalogListView-B7h2JJn8.js","assets/EmptyState-C6UAJ5_3.js","assets/EmptyState-D6A5GmrP.css","assets/CatalogListView-B_2l4Z3B.css","assets/CartView-BCTihttt.js","assets/CheckoutStepper-DCcu9ZNK.js","assets/CheckoutStepper-hqk-kVCz.css","assets/CartView-CiGb3xZt.css","assets/OrdersView-CThJEk8R.js","assets/OrdersView-CDVkfDcz.css","assets/OrderDetailView-Cak53OtA.js","assets/orderInvoice-B0L1Aeuk.js","assets/PersianDateInput-BkC8ZzrV.js","assets/PersianDateInput-MG7uK7zm.css","assets/OrderDetailView-DfQWMJF8.css","assets/OrderSuccessView-BknP059e.js","assets/OrderSuccessView-D_odiYNR.css","assets/SettlementTypeView-CFV1ZfaS.js","assets/useRequirePricedOrder-BVRY4vCB.js","assets/IconCashSettlement-DizzShjh.js","assets/SettlementTypeView-C3wqclvS.css","assets/CashSettlementView-vG0R5VWI.js","assets/CashSettlementView-C8IRazOR.css","assets/CheckModeSelectView-CganQy3H.js","assets/CheckModeSelectView-BZlKzxFL.css","assets/CheckFormView-DjRrTrgm.js","assets/IconCash-Bxyfv_aw.js","assets/CheckFormView-Cgp6kUZ2.css","assets/CheckListView-D8SjoAtS.js","assets/CheckListView-B_ogsKeK.css","assets/ProfileView-zsVIG08O.js","assets/ProfileView-CGJWbbk9.css","assets/ProfileEditView-BXfhdkP1.js","assets/ProfileSubpageLayout-CHfCB62H.js","assets/ProfileSubpageLayout-W3vfIprY.css","assets/ProfileEditView-Cqvr3yiG.css","assets/ProfileSecurityView-BtqgdXRj.js","assets/ProfileSecurityView-BjbybMSz.css","assets/ProfileNotificationsView-BkDZ6lIH.js","assets/ProfileNotificationsView-CTp2kqLW.css","assets/ProfileDisplayView-Co6ARz_e.js","assets/ProfileDisplayView-BRRdMHnK.css","assets/ProfileChecksView-Cx3LI6JZ.js"])))=>i.map(i=>d[i]);
-import{$ as e,A as t,D as n,E as r,I as i,J as a,K as o,L as s,M as c,N as l,R as u,St as d,Tt as f,U as p,V as m,W as h,X as g,Y as _,Z as v,_ as y,a as b,b as x,c as S,d as C,dt as w,et as T,f as E,g as D,gt as ee,h as te,i as O,j as k,k as A,l as ne,m as re,mt as ie,n as j,nt as M,o as N,p as ae,pt as P,r as oe,s as se,t as F,tt as ce,u as I,v as L,wt as le,xt as R,y as ue}from"./BasicIcon-B6lR-mG3.js";import{a as de,i as fe,n as z,o as B,r as V,s as H,t as U}from"./http-CHgEV7QF.js";import{l as pe}from"./dist-BcgVHqJQ.js";import{i as me,r as he}from"./dist-DwqEDRqq.js";import{_ as ge,c as _e,s as ve,t as ye,u as be,v as xe}from"./format-BHJptHdF.js";import{r as Se}from"./validation-BD7oi-2I.js";import{t as W}from"./catalog-DNpqlweh.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var G=typeof document<`u`,Ce=/#/g,we=/&/g,Te=/\//g,Ee=/=/g,De=/\?/g,Oe=/\+/g,ke=/%5B/g,Ae=/%5D/g,je=/%5E/g,Me=/%60/g,Ne=/%7B/g,Pe=/%7C/g,Fe=/%7D/g,Ie=/%20/g;function Le(e){return e==null?``:encodeURI(``+e).replace(Pe,`|`).replace(ke,`[`).replace(Ae,`]`)}function Re(e){return Le(e).replace(Ne,`{`).replace(Fe,`}`).replace(je,`^`)}function ze(e){return Le(e).replace(Oe,`%2B`).replace(Ie,`+`).replace(Ce,`%23`).replace(we,`%26`).replace(Me,"`").replace(Ne,`{`).replace(Fe,`}`).replace(je,`^`)}function Be(e){return ze(e).replace(Ee,`%3D`)}function Ve(e){return Le(e).replace(Ce,`%23`).replace(De,`%3F`)}function He(e){return Ve(e).replace(Te,`%2F`)}function Ue(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var We=/\/$/,Ge=e=>e.replace(We,``);function Ke(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=$e(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:Ue(o)}}function qe(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function Je(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function Ye(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&K(t.matched[r],n.matched[i])&&Xe(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function K(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Xe(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Ze(e[n],t[n]))return!1;return!0}function Ze(e,t){return N(e)?Qe(e,t):N(t)?Qe(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function Qe(e,t){return N(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function $e(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var q={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function et(e){if(!e)if(G){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),Ge(e)}var tt=/^[^#]+#/;function nt(e,t){return e.replace(tt,`#`)+t}function rt(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var it=()=>({left:window.scrollX,top:window.scrollY});function at(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=rt(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function ot(e,t){return(history.state?history.state.position-t:-1)+e}var st=new Map;function ct(e,t){st.set(e,t)}function lt(e){let t=st.get(e);return st.delete(e),t}function ut(e){return typeof e==`string`||e&&typeof e==`object`}function dt(e){return typeof e==`string`||typeof e==`symbol`}function ft(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&ze(e)):[r&&ze(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function mt(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=N(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function J(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Y(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(b(4,{from:n,to:t})):e instanceof Error?c(e):ut(e)?c(b(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function ht(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(ne(s)){let c=(s.__vccOpts||s)[t];c&&a.push(Y(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=se(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&Y(c,n,r,o,e,i)()}))}}return a}function gt(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oK(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>K(e,s))||i.push(s))}return[n,r,i]}var _t=()=>location.protocol+`//`+location.host;function vt(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),Je(n,``)}return Je(n,e)+r+i}function yt(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=vt(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(O({},e.state,{scroll:it()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function bt(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?it():null}}function xt(e){let{history:t,location:n}=window,r={value:vt(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:_t()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,O({},t.state,bt(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=O({},i.value,t.state,{forward:e,scroll:it()});a(o.current,o,!0),a(e,O({},bt(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function St(e){e=et(e);let t=xt(e),n=yt(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=O({location:``,base:e,go:r,createHref:nt.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var Ct={type:0,value:``},wt=/[a-zA-Z0-9_]/;function Tt(e){if(!e)return[[]];if(e===`/`)return[[Ct]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===80?1:-1:0}function jt(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var Nt={strict:!1,end:!0,sensitive:!1};function Pt(e,t,n){let r=kt(Tt(e.path),n),i=O(r,{record:e,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function Ft(e,t){let n=[],r=new Map;t=C(Nt,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Lt(e);s.aliasOf=r&&r.record;let l=C(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Lt(O({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=Pt(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!zt(d)&&o(e.name)),Ut(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:E}function o(e){if(dt(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Vt(e,n);n.splice(t,0,e),e.record.name&&!zt(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw b(1,{location:e});s=i.record.name,a=O(It(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&It(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw b(1,{location:e,currentLocation:t});s=i.record.name,a=O({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Bt(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function It(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Lt(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Rt(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Rt(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function zt(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Bt(e){return e.reduce((e,t)=>O(e,t.meta),{})}function Vt(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;jt(e,t[i])<0?r=i:n=i+1}let i=Ht(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Ht(e){let t=e;for(;t=t.parent;)if(Ut(t)&&jt(e,t)===0)return t}function Ut({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Wt(e){let t=p(re),n=p(ae),r=A(()=>{let n=R(e.to);return t.resolve(n)}),i=A(()=>{let{matched:e}=r.value,{length:t}=e,i=e[t-1],a=n.matched;if(!i||!a.length)return-1;let o=a.findIndex(K.bind(null,i));if(o>-1)return o;let s=Yt(e[t-2]);return t>1&&Yt(i)===s&&a[a.length-1].path!==s?a.findIndex(K.bind(null,e[t-2])):o}),a=A(()=>i.value>-1&&Jt(n.params,r.value.params)),o=A(()=>i.value>-1&&i.value===n.matched.length-1&&Xe(n.params,r.value.params));function s(n={}){if(qt(n)){let n=t[R(e.replace)?`replace`:`push`](R(e.to)).catch(E);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:A(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function Gt(e){return e.length===1?e[0]:e}var Kt=u({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:Wt,setup(e,{slots:t}){let n=w(Wt(e)),{options:r}=p(re),i=A(()=>({[Xt(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[Xt(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&Gt(t.default(n));return e.custom?r:m(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function qt(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Jt(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!N(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Yt(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Xt=(e,t,n)=>e??t??n,Zt=u({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=p(te),i=A(()=>e.route||r.value),a=p(L,0),o=A(()=>{let e=R(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=A(()=>i.value.matched[o.value]);_(L,A(()=>o.value+1)),_(I,s),_(te,i);let c=P();return T(()=>[c.value,s.value,e.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!K(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let r=i.value,a=e.name,o=s.value,l=o&&o.components[a];if(!l)return Qt(n.default,{Component:l,route:r});let u=o.props[a],d=u?u===!0?r.params:typeof u==`function`?u(r):u:null,f=m(l,O({},d,t,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(o.instances[a]=null)},ref:c}));return Qt(n.default,{Component:f,route:r})||f}}});function Qt(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var $t=Zt;function en(e){let t=Ft(e.routes,e),n=e.parseQuery||ft,r=e.stringifyQuery||pt,i=e.history,a=J(),o=J(),s=J(),c=ee(q),l=q;G&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=oe.bind(null,e=>``+e),d=oe.bind(null,He),f=oe.bind(null,Ue);function p(e,n){let r,i;return dt(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function m(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function g(){return t.getRoutes().map(e=>e.record)}function _(e){return!!t.getRecordMatcher(e)}function v(e,a){if(a=O({},a||c.value),typeof e==`string`){let r=Ke(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return O(r,o,{params:f(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=O({},e,{path:Ke(n,e.path,a.path).path});else{let t=O({},e.params);for(let e in t)t[e]??delete t[e];o=O({},e,{params:d(t)}),a.params=d(a.params)}let s=t.resolve(o,a),l=e.hash||``;s.params=u(f(s.params));let p=qe(r,O({},e,{hash:Re(l),path:s.path})),m=i.createHref(p);return O({fullPath:p,hash:l,query:r===pt?mt(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function y(e){return typeof e==`string`?Ke(n,e,c.value.path):O({},e)}function x(e,t){if(l!==e)return b(8,{from:t,to:e})}function C(e){return D(e)}function w(e){return C(O(y(e),{replace:!0}))}function T(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=y(i):{path:i},i.params={}),O({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function D(e,t){let n=l=v(e),i=c.value,a=e.state,o=e.force,s=e.replace===!0,u=T(n,i);if(u)return D(O(y(u),{state:typeof u==`object`?O({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&Ye(r,i,n)&&(f=b(16,{to:d,from:i}),de(i,i,!0,!1)),(f?Promise.resolve(f):ne(d,i)).catch(e=>S(e)?S(e,2)?e:ue(e):L(e,d,i)).then(e=>{if(e){if(S(e,2))return D(O({replace:s},y(e.to),{state:typeof e.to==`object`?O({},a,e.to.state):a,force:o}),t||d)}else e=M(d,i,!0,s,a);return j(d,i,e),e})}function k(e,t){let n=x(e,t);return n?Promise.reject(n):Promise.resolve()}function A(e){let t=B.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function ne(e,t){let n,[r,i,s]=gt(e,t);n=ht(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(Y(r,e,t))});let c=k.bind(null,e,t);return n.push(c),H(n).then(()=>{n=[];for(let r of a.list())n.push(Y(r,e,t));return n.push(c),H(n)}).then(()=>{n=ht(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(Y(r,e,t))});return n.push(c),H(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(N(r.beforeEnter))for(let i of r.beforeEnter)n.push(Y(i,e,t));else n.push(Y(r.beforeEnter,e,t));return n.push(c),H(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=ht(s,`beforeRouteEnter`,e,t,A),n.push(c),H(n))).then(()=>{n=[];for(let r of o.list())n.push(Y(r,e,t));return n.push(c),H(n)}).catch(e=>S(e,8)?e:Promise.reject(e))}function j(e,t,n){s.list().forEach(r=>A(()=>r(e,t,n)))}function M(e,t,n,r,a){let o=x(e,t);if(o)return o;let s=t===q,l=G?history.state:{};n&&(r||s?i.replace(e.fullPath,O({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,de(e,t,n,s),ue()}let P;function se(){P||=i.listen((e,t,n)=>{if(!V.listening)return;let r=v(e),a=T(r,V.currentRoute.value);if(a){D(O(a,{replace:!0,force:!0}),r).catch(E);return}l=r;let o=c.value;G&&ct(ot(o.fullPath,n.delta),it()),ne(r,o).catch(e=>S(e,12)?e:S(e,2)?(D(O(y(e.to),{force:!0}),r).then(e=>{S(e,20)&&!n.delta&&n.type===`pop`&&i.go(-1,!1)}).catch(E),Promise.reject()):(n.delta&&i.go(-n.delta,!1),L(e,r,o))).then(e=>{e||=M(r,o,!1),e&&(n.delta&&!S(e,8)?i.go(-n.delta,!1):n.type===`pop`&&S(e,20)&&i.go(-1,!1)),j(r,o,e)}).catch(E)})}let F=J(),ce=J(),I;function L(e,t,n){ue(e);let r=ce.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function le(){return I&&c.value!==q?Promise.resolve():new Promise((e,t)=>{F.add([e,t])})}function ue(e){return I||(I=!e,se(),F.list().forEach(([t,n])=>e?n(e):t()),F.reset()),e}function de(t,n,r,i){let{scrollBehavior:a}=e;if(!G||!a)return Promise.resolve();let o=!r&<(ot(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return h().then(()=>a(t,n,o)).then(e=>t===c.value&&e&&at(e)).catch(e=>t===c.value&&L(e,t,n))}let fe=e=>i.go(e),z,B=new Set,V={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:_,getRoutes:g,resolve:v,options:e,push:C,replace:w,go:fe,back:()=>fe(-1),forward:()=>fe(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ce.add,isReady:le,install(e){e.component(`RouterLink`,Kt),e.component(`RouterView`,$t),e.config.globalProperties.$router=V,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>R(c)}),G&&!z&&c.value===q&&(z=!0,C(i.location).catch(e=>{}));let t={};for(let e in q)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(re,V),e.provide(ae,ie(t)),e.provide(te,c);let n=e.unmount;B.add(e),e.unmount=function(){B.delete(e),B.size<1&&(l=q,P&&P(),P=null,c.value=q,z=!1,I=!1),n()}}};function H(e){return e.reduce((e,t)=>e.then(()=>A(t)),Promise.resolve())}return V}var tn=typeof global==`object`&&global&&global.Object===Object&&global,nn=typeof self==`object`&&self&&self.Object===Object&&self,rn=(tn||nn||Function(`return this`)()).Symbol,an=Object.prototype,on=an.hasOwnProperty,sn=an.toString,cn=rn?rn.toStringTag:void 0;function ln(e){var t=on.call(e,cn),n=e[cn];try{e[cn]=void 0;var r=!0}catch{}var i=sn.call(e);return r&&(t?e[cn]=n:delete e[cn]),i}var un=Object.prototype.toString;function dn(e){return un.call(e)}var fn=`[object Null]`,pn=`[object Undefined]`,mn=rn?rn.toStringTag:void 0;function hn(e){return e==null?e===void 0?pn:fn:mn&&mn in Object(e)?ln(e):dn(e)}function gn(e){return typeof e==`object`&&!!e}var _n=`[object Symbol]`;function vn(e){return typeof e==`symbol`||gn(e)&&hn(e)==_n}var yn=/\s/;function bn(e){for(var t=e.length;t--&&yn.test(e.charAt(t)););return t}var xn=/^\s+/;function Sn(e){return e&&e.slice(0,bn(e)+1).replace(xn,``)}function Cn(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}var wn=NaN,Tn=/^[-+]0x[0-9a-f]+$/i,En=/^0b[01]+$/i,Dn=/^0o[0-7]+$/i,On=parseInt;function kn(e){if(typeof e==`number`)return e;if(vn(e))return wn;if(Cn(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=Cn(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=Sn(e);var n=En.test(e);return n||Dn.test(e)?On(e.slice(2),n?2:8):Tn.test(e)?wn:+e}function An(e,t,n){return e===e&&(n!==void 0&&(e=e<=n?e:n),t!==void 0&&(e=e>=t?e:t)),e}function jn(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=kn(n),n=n===n?n:0),t!==void 0&&(t=kn(t),t=t===t?t:0),An(kn(e),t,n)}var Mn=5e3;function Nn(){return{id:`local`,companyId:``,companyName:``,items:[]}}function X(){return!1}function Pn(e){return[...new Set(e.map(e=>e.companyName).filter(Boolean))].join(`، `)}function Fn(e,t){return e.items.filter(e=>e.companyId===t).reduce((e,t)=>e+t.meterage,0)}var Z=B(`cart`,()=>{let e=P([Nn()]),t=P(`local`),n=P(null),r=P(!1),i=A(()=>e.value.find(e=>e.id===t.value)??e.value[0]??null),a=A(()=>i.value?.items.reduce((e,t)=>e+t.meterage,0)??0),o=A(()=>i.value?.items.length??0),s=W(),c=A(()=>i.value?.items.length?Pn(i.value.items):``),l=A(()=>{let e=i.value;if(!e?.items.length)return[];let t=new Map;for(let n of e.items){let e=t.get(n.companyId);e?e.meterage+=n.meterage:t.set(n.companyId,{companyName:n.companyName||`شرکت`,meterage:n.meterage})}return[...t.entries()].map(([e,t])=>{let n=s.getCompany(e)?.maxMeteragePerInvoice??Mn;return{companyId:e,companyName:t.companyName,meterage:t.meterage,maxMeterage:n,remaining:Math.max(0,n-t.meterage)}})}),u=A(()=>l.value.length?l.value.reduce((e,t)=>e+t.maxMeterage,0):(n.value?s.getCompany(n.value):null)?.maxMeteragePerInvoice??Mn),d=A(()=>l.value.length?l.value.reduce((e,t)=>e+t.remaining,0):Math.max(0,u.value-a.value)),f=A(()=>l.value.some(e=>e.meterage>=e.maxMeterage));function p(r){let i={id:r.id,companyId:r.companyId||``,companyName:r.companyName||Pn(r.items),items:r.items??[],notes:r.notes};e.value=[i],t.value=i.id,i.companyId&&(n.value=i.companyId)}function m(n){e.value=[{...n,items:n.items.map(e=>({...e}))}],t.value=e.value[0].id}async function h(){if(!V()){g();return}if(X()){r.value=!1;return}r.value=!0;try{p(await z(`/carts`))}catch{g()}finally{r.value=!1}}function g(){e.value=[Nn()],t.value=e.value[0].id,n.value=null}function _(e){n.value=e.id,i.value&&!i.value.items.length&&(i.value.companyId=e.id,i.value.companyName=e.name)}function v(e){return _(e),i.value??Nn()}function y(e){return e&&_(e),i.value??Nn()}async function b(){if(X())return g(),i.value;try{return p(await z(`/carts`,{method:`DELETE`})),i.value}catch(e){return console.error(e),null}}function x(e,t,r,i){let a=y(i),o=a.items.find(t=>t.productId===e.id),s=[...a.items];if(o){let e=s.findIndex(e=>e.id===o.id);s[e]={...o,meterage:r}}else{let n={id:`local-item-${e.id}-${Date.now()}`,productId:e.id,catalogCode:t,productName:e.name,productCode:e.code,color:e.color,meterage:r,companyId:i.id,companyName:i.name};s.push(n)}return m({id:a.id||`local`,companyId:s[0]?.companyId||i.id,companyName:Pn(s)||i.name,items:s,notes:a.notes}),n.value=i.id,{success:!0}}async function S(e,t,r){s.companies.length||await s.loadCompanies();let a=s.getCompany(e.companyId),o=i.value??Nn(),c=a?.maxMeteragePerInvoice??Mn,l=e.companyId?Fn(o,e.companyId):0,u=o.items.find(t=>t.productId===e.id),d=u?.meterage??0,f=Se(r,e,l,c,d);if(!f.valid)return{success:!1,message:f.message};if(X())return a?x(e,t,r,a):{success:!1,message:`شرکت محصول یافت نشد.`};try{let t;return t=u?await z(`/carts/items/${u.id}`,{method:`PATCH`,body:{meterage:r}}):await z(`/carts/items`,{method:`POST`,body:{productId:e.id,meterage:r}}),p(t),n.value=a?.id||e.companyId||n.value,{success:!0}}catch(e){return{success:!1,message:e instanceof U?e.message:`افزودن به سبد ناموفق بود.`}}}async function C(e,t,n){if(!i.value)return{success:!1,message:`سبد خرید یافت نشد.`};let r=i.value.items.find(t=>t.id===e);if(!r)return{success:!1,message:`آیتم یافت نشد.`};let a=s.getCompany(r.companyId||n.companyId)?.maxMeteragePerInvoice??Mn,o=Fn(i.value,r.companyId),c=Se(t,n,o,a,r.meterage);if(!c.valid)return{success:!1,message:c.message};if(X()){let n=i.value.items.map(n=>n.id===e?{...n,meterage:t}:n);return m({...i.value,items:n}),{success:!0}}try{return p(await z(`/carts/items/${e}`,{method:`PATCH`,body:{meterage:t}})),{success:!0}}catch(e){return{success:!1,message:e instanceof U?e.message:`بهروزرسانی متراژ ناموفق بود.`}}}async function w(e){if(X()){if(!i.value)return;let t=i.value.items.filter(t=>t.id!==e);m({...i.value,items:t});return}try{p(await z(`/carts/items/${e}`,{method:`DELETE`}))}catch(e){console.error(e)}}async function T(e){if(X()){if(!i.value)return;m({...i.value,notes:e});return}try{p(await z(`/carts/notes`,{method:`PATCH`,body:{notes:e}}))}catch(e){console.error(e)}}async function E(){if(X()){g();return}try{p(await z(`/carts`,{method:`DELETE`}))}catch{g()}}function D(){}return{carts:e,activeCartId:t,selectedCompanyId:n,syncing:r,activeCart:i,totalMeterage:a,itemCount:o,companyNamesLabel:c,companySummaries:l,maxMeterage:u,remainingCapacity:d,isFull:f,initCartForCompany:v,selectCompany:_,createNewCartForSameCompany:b,addItem:S,updateItemMeterage:C,removeItem:w,setNotes:T,clearActiveCart:E,ensureActiveCartForCartPage:D,hydrate:h,resetLocal:g}}),In=u({__name:`IconHome`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),k(F,{icon:`vuesax-linear:home`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Ln=u({__name:`IconCart`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),k(F,{icon:`vuesax-linear:bag-2`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Rn=u({__name:`IconOrders`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),k(F,{icon:`vuesax-linear:document-text`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),zn=u({__name:`IconProfile`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),k(F,{icon:`vuesax-linear:profile-circle`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Bn=u({__name:`IconCatalog`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),k(F,{icon:`vuesax-linear:category`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Vn=u({__name:`IconCheckBook`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),k(F,{icon:`vuesax-linear:card-receive`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Hn=u({__name:`IconPlus`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),k(F,{icon:`vuesax-linear:add`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Un=[{name:`home`,path:`/`,label:`خانه`,icon:In},{name:`catalogs`,path:`/catalogs`,label:`کالیتهها`,icon:Bn},{name:`order-fab`,path:`/cart`,label:`ثبت سفارش`,icon:Hn},{name:`orders`,path:`/orders`,label:`سفارشها`,icon:Rn},{name:`profile`,path:`/profile`,label:`پروفایل`,icon:zn}],Wn=[{name:`home`,path:`/`,label:`خانه`,icon:In},{name:`ordering`,path:`/`,label:`سفارشگذاری`,icon:Bn,dynamicPath:!0},{name:`cart`,path:`/cart`,label:`سبد خرید`,icon:Ln},{name:`orders`,path:`/orders`,label:`سفارشها`,icon:Rn},{name:`checks`,path:`/profile/checks`,label:`لیست چکها`,icon:Vn},{name:`profile`,path:`/profile`,label:`پروفایل`,icon:zn}],Gn=`/categories`;function Kn(e){return Gn}var qn=[`/catalogs`,`/catalog-request`,`/catalog-requests`,`/categories`,`/products`,`/product`,`/favorites`];function Jn(e,t,n){return e===`ordering`?n.startsWith(`/categories`)||n.startsWith(`/products`)||n.startsWith(`/product`)||n.startsWith(`/catalogs`):e===`home`?n===`/`:e===`catalogs`?qn.some(e=>n===e||n.startsWith(`${e}/`)):e===`order-fab`?n===`/cart`||n.startsWith(`/cart/`):e===`checks`?n.startsWith(`/profile/checks`):e===`profile`||t===`/profile`?n===`/profile`:t===`/`?n===`/`:n.startsWith(t)}function Yn(e,t){return e.name===`ordering`?Kn(t):e.path}var Xn={class:`bottom-nav`,"aria-label":`ناوبری اصلی`},Zn=[`aria-current`,`aria-label`,`onClick`],Qn={key:0,class:`nav-badge`},$n={key:0,class:`nav-label`},er={key:1,class:`nav-label nav-label--fab`},tr=j(u({__name:`BottomNav`,setup(r){let i=D(),o=y(),s=Z(),u=A(()=>s.itemCount);function p(e,t){let n=t.currentTarget;if(n instanceof HTMLElement&&n.blur(),e===`/cart`&&s.itemCount===0){o.push(`/categories`);return}o.push(e)}return(r,o)=>(a(),l(`nav`,Xn,[(a(!0),l(n,null,g(R(Un),n=>(a(),l(`button`,{key:n.name,type:`button`,class:d([`nav-item`,{active:R(Jn)(n.name,n.path,R(i).path),"nav-item--fab":n.name===`order-fab`}]),"aria-current":R(Jn)(n.name,n.path,R(i).path)?`page`:void 0,"aria-label":n.label,onClick:e=>p(n.path,e)},[t(`span`,{class:d([`nav-icon`,{"nav-icon--fab":n.name===`order-fab`}])},[(a(),k(e(n.icon),{size:n.name===`order-fab`?26:22,"stroke-width":n.name===`order-fab`?1.8:1.5,color:n.name===`order-fab`?`#ffffff`:void 0},null,8,[`size`,`stroke-width`,`color`])),n.name===`order-fab`&&u.value>0?(a(),l(`span`,Qn,f(u.value),1)):c(``,!0)],2),n.name===`order-fab`?(a(),l(`span`,er,f(n.label),1)):(a(),l(`span`,$n,f(n.label),1))],10,Zn))),128))]))}}),[[`__scopeId`,`data-v-18a88055`]]);function nr(){return{checkCount:0,totalAmount:0,nearestDueDate:null,farthestDueDate:null,rassDays:0,rassDate:null}}function rr(e,t=new Date){if(e.length===0)return nr();let n=new Date(t);n.setHours(0,0,0,0);let r=0,i=0,a=[];for(let t of e){if(!t.dueDate){r+=t.amount;continue}let e=ge(t.dueDate);if(Number.isNaN(e.getTime())){r+=t.amount;continue}e.setHours(0,0,0,0),a.push(e);let o=e.getTime()-n.getTime(),s=Math.max(0,Math.round(o/864e5));r+=t.amount,i+=t.amount*s}let o=r>0?Math.round(i/r):0,s=new Date(n);return s.setDate(s.getDate()+o),a.sort((e,t)=>e.getTime()-t.getTime()),{checkCount:e.length,totalAmount:r,nearestDueDate:a[0]?xe(a[0]):null,farthestDueDate:a.length?xe(a[a.length-1]):null,rassDays:o,rassDate:xe(s)}}function ir(e){let t=new Date;t.setHours(0,0,0,0);let n=ge(e);return Number.isNaN(n.getTime())?0:(n.setHours(0,0,0,0),Math.max(0,Math.round((n.getTime()-t.getTime())/864e5)))}var ar=B(`order`,()=>{let e=P([]),t=P([]),n=P(null),r=P(null),i=P(null),a=P(!1),o=A(()=>t=>[...e.value].sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime()));function s(t){return e.value.find(e=>e.id===t)}function c(e,a){i.value=e,n.value=`check`,t.value=[],r.value=a??null}function l(e){i.value=e.id,n.value=`check`,r.value=e.checkMode??`full`,t.value=(e.checks??[]).map(e=>({...e}))}function u(){i.value=null,t.value=[],r.value=null,n.value=null}function d(e){r.value=e}function f(e){t.value.push({...e,id:ve()})}function p(e,n){let r=t.value.findIndex(t=>t.id===e);r>=0&&(t.value[r]={...t.value[r],...n})}function m(e){t.value=t.value.filter(t=>t.id!==e)}function h(e){return rr(t.value,e??new Date)}async function g(){if(!V()){e.value=[];return}a.value=!0;try{e.value=await z(`/orders`)}catch{e.value=[]}finally{a.value=!1}}function _(){e.value=[],u()}function v(t){let n=e.value.findIndex(e=>e.id===t.id);n>=0?e.value[n]=t:e.value.unshift(t)}async function y(e){try{let t=await z(`/orders/${e}`);return v(t),t}catch{return null}}async function b(t){if(!t.items.length)throw Error(`سبد خرید خالی است.`);if(t.id===`local`||t.items.some(e=>e.id.startsWith(`local-item-`)))throw Error(`سبد خرید با سرور همگام نیست. لطفاً دوباره محصولات را به سبد اضافه کنید.`);let n=[...new Set(t.items.map(e=>e.companyId).filter(Boolean))];if(!n.length)throw Error(`شرکت سبد مشخص نیست. سبد را خالی کنید و دوباره اضافه کنید.`);try{let r=await z(`/orders`,{method:`POST`,body:{companyId:n[0],notes:t.notes,items:t.items.map(e=>({productId:e.productId,meterage:Number(e.meterage),notes:e.notes}))}});return e.value.unshift(r),u(),r}catch(e){throw Error(e instanceof U?e.message:`ثبت سفارش ناموفق بود.`)}}async function x(e,t,n){try{let r=await z(`/orders/${e}/settlement`,{method:`POST`,body:{settlementType:t,checkMode:t===`check`?n??`full`:void 0}});return v(r),r}catch(e){throw Error(e instanceof U?e.message:`ثبت روش تسویه ناموفق بود.`)}}async function S(e,t){try{await z(`/orders/${e}/cash-receipt`,{method:`POST`,body:{amount:t.amount,transferDate:t.transferDate,transferTime:t.transferTime,trackingNumber:t.trackingNumber,destinationAccountId:t.destinationAccountId,receiptImage:t.receiptImage,notes:t.notes}});let n=await y(e);if(!n)throw Error(`رسید ثبت شد ولی دریافت سفارش ناموفق بود.`);return n}catch(e){throw Error(e instanceof U?e.message:`ثبت رسید ناموفق بود.`)}}async function C(e,t,n){try{let r=await z(`/orders/${e}/checks`,{method:`PATCH`,body:{checkMode:n,checks:t.map(e=>({amount:e.amount,dueDate:e.dueDate,sayadId:e.sayadId,checkNumber:e.checkNumber,ownerNationalId:e.ownerNationalId,ownerFirstName:e.ownerFirstName,ownerLastName:e.ownerLastName,bankName:e.bankName,branchName:e.branchName,frontImage:e.frontImage,backImage:e.backImage,notes:e.notes,mode:e.mode}))}});return v(r),u(),r}catch(e){throw Error(e instanceof U?e.message:`ثبت چکها ناموفق بود.`)}}async function w(e){let t=[...new Set([e.companyId,...e.items.map(e=>e.companyId).filter(Boolean)].filter(Boolean))],n=W(),r=await Promise.all(t.map(e=>n.loadBankAccounts(e))),i=new Map;for(let e of r)for(let t of e)i.set(t.id,t);return[...i.values()]}async function T(e){return W().loadBankAccounts(e)}return{orders:e,draftChecks:t,draftSettlementType:n,draftCheckMode:r,draftOrderId:i,loading:a,userOrders:o,getOrderById:s,startCheckDraft:c,loadChecksIntoDraft:l,clearCheckDraft:u,setCheckMode:d,addDraftCheck:f,updateDraftCheck:p,removeDraftCheck:m,getDraftRass:h,submitOrder:b,chooseSettlement:x,submitCashReceipt:S,updateOrderChecks:C,hydrate:g,resetLocal:_,fetchOrder:y,getBankAccountsForOrder:w,getBankAccountsForCompany:T}}),or=u({__name:`IconHeadset`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),k(F,{icon:`vuesax-linear:headphone`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),sr=`/assets/nademitex-logo-BJLexNm4.png`,cr=[`src`],lr=j(u({__name:`IconQemashMark`,props:{size:{default:72}},setup(e){return(t,n)=>(a(),l(`img`,{class:`brand-logo`,src:R(sr),alt:``,style:le({height:`${e.size}px`}),draggable:`false`},null,12,cr))}}),[[`__scopeId`,`data-v-b211450b`]]),ur={class:`desktop-sidebar`,"aria-label":`ناوبری اصلی`},dr={class:`desktop-sidebar__brand`},fr={class:`desktop-sidebar__nav`},pr=[`aria-current`,`aria-label`,`title`,`onClick`],mr={class:`desktop-sidebar__icon`},hr={class:`desktop-sidebar__label`},gr={key:0,class:`desktop-sidebar__badge`},_r={key:1,class:`desktop-sidebar__badge`},vr={class:`desktop-sidebar__support`},yr={class:`desktop-sidebar__support-icon`,"aria-hidden":`true`},br=j(u({__name:`DesktopSidebar`,setup(r){let i=D(),o=y(),u=Z(),p=ar(),m=A(()=>u.itemCount),h=A(()=>p.draftChecks.length),_=A(()=>u.selectedCompanyId||u.activeCart?.companyId||null);function v(e){o.push(Yn(e,_.value))}return(r,o)=>(a(),l(`aside`,ur,[t(`div`,dr,[s(lr,{size:36}),o[0]||=t(`strong`,{class:`desktop-sidebar__title`},`نادمی تکس`,-1)]),t(`nav`,fr,[(a(!0),l(n,null,g(R(Wn),n=>(a(),l(`button`,{key:n.name,type:`button`,class:d([`desktop-sidebar__item`,{active:R(Jn)(n.name,n.path,R(i).path)}]),"aria-current":R(Jn)(n.name,n.path,R(i).path)?`page`:void 0,"aria-label":n.label,title:n.label,onClick:e=>v(n)},[t(`span`,mr,[(a(),k(e(n.icon),{size:20}))]),t(`span`,hr,f(n.label),1),n.name===`cart`&&m.value>0?(a(),l(`span`,gr,f(m.value),1)):c(``,!0),n.name===`checks`&&h.value>0?(a(),l(`span`,_r,f(h.value),1)):c(``,!0)],10,pr))),128))]),t(`div`,vr,[t(`span`,yr,[s(or,{size:22})]),o[1]||=t(`strong`,{class:`desktop-sidebar__support-title`},`پشتیبانی و راهنما`,-1),o[2]||=t(`p`,{class:`desktop-sidebar__support-text`},` در صورت نیاز به راهنمایی یا گزارش مشکل با تیم پشتیبانی تماس بگیرید. `,-1),o[3]||=t(`a`,{href:`tel:02112345678`,class:`desktop-sidebar__support-btn`},`تماس با پشتیبانی`,-1)])]))}}),[[`__scopeId`,`data-v-a03a8196`]]),xr=`ft_user`,Sr=`ft_pending_otp`;function Q(e){e?localStorage.setItem(xr,JSON.stringify(e)):localStorage.removeItem(xr)}function Cr(){try{let e=localStorage.getItem(xr);return e?JSON.parse(e):null}catch{return null}}function wr(){return V()?Cr():null}function Tr(){return!!V()}function Er(e){try{e?sessionStorage.setItem(Sr,JSON.stringify(e)):sessionStorage.removeItem(Sr)}catch{}}async function Dr(e,t){let n=_e(e);if(!/^09\d{9}$/.test(n))return{success:!1,message:`شماره موبایل معتبر نیست.`};if(t.isRegister&&(!t.firstName?.trim()||!t.lastName?.trim()))return{success:!1,message:`نام و نام خانوادگی الزامی است.`};try{Er({phone:n,isRegister:t.isRegister,firstName:t.firstName,lastName:t.lastName});let e=await z(`/auth/otp/request`,{method:`POST`,auth:!1,body:{phone:n,firstName:t.firstName,lastName:t.lastName,isRegister:t.isRegister}}),r=e.debugCode?` (کد: ${e.debugCode})`:``;return{success:!0,message:`${e.message}${r}`}}catch(e){return{success:!1,message:e instanceof U?e.message:`ارسال کد ناموفق بود.`}}}async function Or(e,t){let n=_e(e);try{let e=await z(`/auth/otp/verify`,{method:`POST`,auth:!1,body:{phone:n,code:ye(t)}});return fe(e.accessToken),Q(e.user),Er(null),{success:!0,message:`ورود موفق.`,user:e.user}}catch(e){return{success:!1,message:e instanceof U?e.message:`تأیید کد ناموفق بود.`}}}function kr(){fe(null),Q(null),Er(null)}async function Ar(){if(!V())return Q(null),null;try{let e=await z(`/auth/me`);return Q(e),e}catch{return Cr()}}async function jr(e){try{let t=await z(`/auth/profile`,{method:`PATCH`,body:e});return Q(t),t}catch(t){let n=e.avatarUrl!==void 0&&e.firstName===void 0&&e.lastName===void 0&&e.nationalId===void 0,r=Cr();if(!n||!r)throw t;let i={...r};return e.avatarUrl?i.avatarUrl=e.avatarUrl:delete i.avatarUrl,Q(i),i}}var Mr=`ft_pending_register`,Nr=[{id:`garment_producer`,label:`تولیدکننده پوشاک عمده`},{id:`atelier`,label:`مزون`},{id:`fabric_wholesaler`,label:`عمدهفروش پارچه`}];function Pr(){try{let e=sessionStorage.getItem(Mr);if(!e)return null;let t=JSON.parse(e);return!t?.firstName?.trim()||!t?.lastName?.trim()?null:{firstName:t.firstName.trim(),lastName:t.lastName.trim(),jobCategory:t.jobCategory}}catch{return null}}function Fr(e){if(e?.firstName?.trim()&&e?.lastName?.trim()){sessionStorage.setItem(Mr,JSON.stringify({firstName:e.firstName.trim(),lastName:e.lastName.trim(),jobCategory:e.jobCategory}));return}sessionStorage.removeItem(Mr)}var Ir=B(`notification`,()=>{let e=P([]),t=P(0),n=P(!1),r=A(()=>t.value>0);async function i(){if(!V()){e.value=[],t.value=0;return}n.value=!0;try{e.value=await z(`/notifications`),t.value=e.value.filter(e=>!e.isRead).length}catch{e.value=[],t.value=0}finally{n.value=!1}}async function a(){if(!V()){t.value=0;return}try{let e=await z(`/notifications/unread-count`);t.value=e.count}catch{}}async function o(n){let r=e.value.find(e=>e.id===n);if(!(!r||r.isRead)){r.isRead=!0,t.value=Math.max(0,t.value-1);try{await z(`/notifications/${n}/read`,{method:`PATCH`})}catch{await i()}}}async function s(){if(t.value){e.value=e.value.map(e=>({...e,isRead:!0})),t.value=0;try{await z(`/notifications/read-all`,{method:`PATCH`})}catch{await i()}}}function c(){e.value=[],t.value=0}return{items:e,unreadCount:t,loading:n,hasUnread:r,hydrate:i,refreshUnreadCount:a,markRead:o,markAllRead:s,resetLocal:c}}),Lr=`ft_favorites`;function Rr(){try{let e=localStorage.getItem(Lr);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}catch{return[]}}function zr(e){localStorage.setItem(Lr,JSON.stringify(e))}var Br=B(`favorites`,()=>{let e=P(Rr()),t=P(!1),n=P({}),r=A(()=>new Set(e.value));function i(e){return r.value.has(e)}async function a(){try{let t=await z(`/products/favorites/ids`);e.value=t,zr(t)}catch{e.value=Rr()}finally{t.value=!0}}async function o(t){if(!t||n.value[t])return;n.value={...n.value,[t]:!0};let r=i(t);e.value=r?e.value.filter(e=>e!==t):[...e.value,t],zr(e.value);try{let n=await z(`/products/${t}/favorite`,{method:`POST`});e.value=n.favorited?[...new Set([...e.value.filter(e=>e!==t),t])]:e.value.filter(e=>e!==t),zr(e.value)}catch(n){if(!(n instanceof U&&n.status===404))throw e.value=r?[...new Set([...e.value,t])]:e.value.filter(e=>e!==t),zr(e.value),n}finally{let e={...n.value};delete e[t],n.value=e}}function s(){e.value=[],zr([]),t.value=!1}return{ids:e,loaded:t,pending:n,isFavorite:i,hydrate:a,toggle:o,resetLocal:s}}),Vr=B(`auth`,()=>{let e=P(wr()),t=P(!1),n=P(null),r=P(Pr()),i=A(()=>!!e.value),a=A(()=>e.value?`${e.value.firstName} ${e.value.lastName}`:``),o=A(()=>e.value?.appRole===`agent`),s=A(()=>!!e.value&&e.value.appRole!==`agent`);function c(){n.value=null}function l(){r.value=null,Fr(null)}async function u(e,i){t.value=!0,n.value=null;try{let t=Pr();r.value=t;let a=i.firstName?.trim()||t?.firstName,o=i.lastName?.trim()||t?.lastName;i.isRegister&&a&&o&&(r.value={firstName:a,lastName:o},Fr(r.value));let s=await Dr(e,{isRegister:i.isRegister,firstName:a,lastName:o});return s.success||(n.value=s.message),s}finally{t.value=!1}}async function d(r,i){t.value=!0,n.value=null;let a=await Or(r,i);return t.value=!1,a.success&&a.user?(e.value=a.user,l(),await Promise.all([W().loadCompanies(),Z().hydrate(),ar().hydrate(),Ir().hydrate(),Br().hydrate()])):n.value=a.message,a}function f(){kr(),e.value=null,l(),Z().resetLocal(),ar().resetLocal(),Ir().resetLocal(),Br().resetLocal()}async function p(t){if(!e.value)return null;let n=await jr(t);return n&&(e.value=n),n}async function m(){if(e.value=wr(),!e.value)return;let t=await Ar();e.value=t}return{user:e,loading:t,error:n,isAuthenticated:i,fullName:a,isAgent:o,isCustomerOnly:s,clearError:c,requestOtp:u,confirmOtp:d,logout:f,updateProfile:p,hydrate:m}}),Hr=u({__name:`IconBell`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),k(F,{icon:`vuesax-linear:notification`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Ur=u({__name:`IconChevronLeft`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(a(),k(F,{icon:`vuesax-linear:arrow-left-1`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Wr=B(`theme`,()=>{let e=me(`ft_theme`,`system`),t=he(),n=A(()=>e.value===`system`?t.value?`dark`:`light`:e.value),r=A(()=>n.value===`dark`);ce(()=>{let e=document.documentElement;e.classList.toggle(`dark`,r.value),e.style.colorScheme=n.value});function i(t){e.value=t}function a(){let t=[`light`,`dark`,`system`],n=t.indexOf(e.value);e.value=t[(n+1)%t.length]}function o(){e.value=r.value?`light`:`dark`}return{preference:e,resolved:n,isDark:r,setPreference:i,cyclePreference:a,toggleLightDark:o}}),Gr=[`aria-label`,`title`],Kr=j(u({__name:`AuthThemeToggle`,props:{variant:{default:`floating`}},setup(e){let t=Wr(),{isDark:n}=H(t),r=A(()=>n.value?`vuesax-linear:sun-1`:`vuesax-linear:moon`),i=A(()=>n.value?`تغییر به تم روشن`:`تغییر به تم تاریک`);return(n,o)=>(a(),l(`button`,{type:`button`,class:d([`auth-theme-toggle`,e.variant===`inline`?`auth-theme-toggle--inline`:`auth-theme-toggle--floating`]),"aria-label":i.value,title:i.value,onClick:o[0]||=e=>R(t).toggleLightDark()},[s(F,{icon:r.value,size:18,"stroke-width":1.5},null,8,[`icon`])],10,Gr))}}),[[`__scopeId`,`data-v-3a58cb84`]]),qr=[`src`],Jr={key:1},Yr=j(u({__name:`UserAvatar`,props:{src:{},initials:{},size:{default:72}},setup(e){return(t,n)=>(a(),l(`span`,{class:`user-avatar`,style:le({width:`${e.size}px`,height:`${e.size}px`,fontSize:`${Math.round(e.size*.38)}px`})},[e.src?(a(),l(`img`,{key:0,class:`user-avatar__img`,src:e.src,alt:``},null,8,qr)):(a(),l(`span`,Jr,f(e.initials),1))],4))}}),[[`__scopeId`,`data-v-5c562bf0`]]),Xr={class:`desktop-header`},Zr={class:`desktop-header__actions`},Qr={key:0,class:`desktop-header__company`},$r=[`aria-label`],ei={class:`desktop-header__user-wrap`},ti=[`aria-expanded`],ni={class:`desktop-header__user-name`},ri={key:0,class:`desktop-header__menu`},ii=j(u({__name:`DesktopHeader`,setup(e){let n=y(),r=Vr(),i=Z(),o=Ir(),u=P(!1),d=A(()=>be(o.unreadCount>9?`9+`:String(o.unreadCount))),p=A(()=>`${r.user?.firstName?.[0]??``}${r.user?.lastName?.[0]??``}`||`؟`),m=A(()=>i.companyNamesLabel||i.activeCart?.companyName||``);function h(){u.value=!u.value}function g(){u.value=!1,n.push(`/profile`)}function _(){u.value=!1,r.logout(),n.replace(`/login`)}return(e,i)=>(a(),l(`header`,Xr,[i[1]||=t(`div`,{class:`desktop-header__spacer`,"aria-hidden":`true`},null,-1),t(`div`,Zr,[m.value?(a(),l(`span`,Qr,f(m.value),1)):c(``,!0),s(Kr,{variant:`inline`}),t(`button`,{type:`button`,class:`desktop-header__icon-btn`,"aria-label":`اعلانها`,onClick:i[0]||=e=>R(n).push(`/profile/notifications`)},[s(Hr,{size:20}),R(o).hasUnread?(a(),l(`span`,{key:0,class:`desktop-header__notif-badge`,"aria-label":`${R(o).unreadCount} اعلان خواندهنشده`},f(d.value),9,$r)):c(``,!0)]),t(`div`,ei,[t(`button`,{type:`button`,class:`desktop-header__user`,"aria-expanded":u.value,onClick:h},[s(Yr,{class:`desktop-header__avatar`,src:R(r).user?.avatarUrl,initials:p.value,size:32},null,8,[`src`,`initials`]),t(`span`,ni,f(R(r).fullName),1),s(Ur,{size:16,class:`desktop-header__chevron`})],8,ti),u.value?(a(),l(`div`,ri,[t(`button`,{type:`button`,onClick:g},`پروفایل`),t(`button`,{type:`button`,class:`desktop-header__menu-logout`,onClick:_},`خروج`)])):c(``,!0)])])]))}}),[[`__scopeId`,`data-v-d90aac23`]]),ai={class:`app-layout`},oi={class:`app-frame`},si={class:`app-main`},ci={class:`app-main__content`},li={class:`app-content`},ui=u({__name:`DefaultLayout`,setup(e){let n=D(),r=A(()=>![`welcome`,`login`,`register`,`otp`,`settlement`,`check-mode`,`check-form`,`check-list`,`cash-settlement`,`order-success`].includes(n.name)&&!n.meta.hideNav),i=A(()=>[`settlement`,`check-mode`,`check-form`,`check-list`,`cash-settlement`].includes(n.name)),o=A(()=>n.name===`welcome`||n.name===`login`||n.name===`register`||n.name===`otp`);return(e,n)=>(a(),l(`div`,{class:d([`app-shell`,{"app-shell--no-nav":!r.value,"app-shell--wide":i.value,"app-shell--with-nav":r.value,"app-shell--immersive":o.value}])},[t(`div`,ai,[r.value?(a(),k(br,{key:0})):c(``,!0),t(`div`,oi,[r.value?(a(),k(ii,{key:0})):c(``,!0),t(`main`,si,[t(`div`,ci,[t(`div`,li,[v(e.$slots,`default`)])])]),r.value?(a(),k(tr,{key:1})):c(``,!0)])])],2))}}),di=[`type`,`disabled`],fi={key:0,class:`btn-spinner`},pi=j(u({__name:`BaseButton`,props:{variant:{},size:{},block:{type:Boolean},disabled:{type:Boolean},loading:{type:Boolean},type:{}},setup(e){return(t,n)=>(a(),l(`button`,{type:e.type??`button`,class:d([`btn`,[`btn-${e.variant??`primary`}`,`btn-${e.size??`md`}`,{"btn-block":e.block}]]),disabled:e.disabled||e.loading},[e.loading?(a(),l(`span`,fi)):c(``,!0),v(t.$slots,`default`,{},void 0,!0)],10,di))}}),[[`__scopeId`,`data-v-3628a8bb`]]),mi=w({open:!1,title:``,message:``,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`,resolve:null});function hi(){return mi}function gi(e){return new Promise(t=>{Object.assign(mi,{open:!0,title:e.title,message:e.message,confirmLabel:e.confirmLabel??`حذف`,cancelLabel:e.cancelLabel??`انصراف`,tone:e.tone??`danger`,resolve:t})})}function _i(e){mi.resolve?.(e),mi.open=!1,mi.resolve=null}var vi={class:`dialog card confirm-dialog`},yi={id:`confirm-dialog-title`,class:`confirm-dialog__title`},bi={class:`confirm-dialog__message`},xi={class:`dialog-actions confirm-dialog__actions`},Si=j(u({__name:`ConfirmDialog`,setup(e){let n=hi();function o(){_i(!1)}function u(){_i(!0)}return(e,d)=>R(n).open?(a(),l(`div`,{key:0,class:`dialog-overlay confirm-dialog-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`confirm-dialog-title`,onClick:r(o,[`self`])},[t(`div`,vi,[t(`h3`,yi,f(R(n).title),1),t(`p`,bi,f(R(n).message),1),t(`div`,xi,[s(pi,{variant:`outline`,onClick:o},{default:M(()=>[i(f(R(n).cancelLabel),1)]),_:1}),s(pi,{variant:R(n).tone===`danger`?`danger`:`primary`,onClick:u},{default:M(()=>[i(f(R(n).confirmLabel),1)]),_:1},8,[`variant`])])])])):c(``,!0)}}),[[`__scopeId`,`data-v-2e50e2a7`]]),Ci=u({__name:`App`,setup(t){let r=Vr(),i=Z(),c=ar(),u=W(),d=Ir(),f=y(),p=P(`page-fade`);function m(e){return e.split(`/`).filter(Boolean).length}return f.beforeEach((e,t)=>{if(!t.name){p.value=`page-fade`;return}let n=jn(m(e.path)-m(t.path),-1,1);n>0?p.value=`page-forward`:n<0?p.value=`page-back`:p.value=`page-fade`}),o(async()=>{await r.hydrate(),r.isAuthenticated&&await Promise.all([u.loadCompanies(),i.hydrate(),c.hydrate(),d.hydrate()])}),pe(()=>{r.isAuthenticated&&d.refreshUnreadCount()},6e4,{immediate:!1}),(t,r)=>(a(),l(n,null,[s(ui,null,{default:M(()=>[s(R($t),null,{default:M(({Component:t,route:n})=>[s(ue,{name:p.value,mode:`out-in`},{default:M(()=>[(a(),l(`div`,{key:n.path,class:`page-transition page-shell`},[(a(),k(e(t)))]))]),_:2},1032,[`name`])]),_:1})]),_:1}),s(Si)],64))}}),wi=`modulepreload`,Ti=function(e){return`/`+e},Ei={},$=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Ti(t,n),t=s(t),t in Ei)return;Ei[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:wi,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Di=en({history:St(`/`),routes:[{path:`/welcome`,name:`welcome`,component:()=>$(()=>import(`./WelcomeView-Dm_Gj4-t.js`),__vite__mapDeps([0,1,2,3,4])),meta:{guest:!0,hideNav:!0}},{path:`/login`,name:`login`,component:()=>$(()=>import(`./LoginView-BQ3xuGSX.js`),__vite__mapDeps([5,1,2,6,7,8,9,10,11,12,3,13])),meta:{guest:!0,hideNav:!0}},{path:`/register`,name:`register`,component:()=>$(()=>import(`./RegisterView-CylManm7.js`),__vite__mapDeps([14,1,2,15,16,7,8,9,10,11,12,17,18,19])),meta:{guest:!0,hideNav:!0}},{path:`/otp`,name:`otp`,component:()=>$(()=>import(`./OtpView-CqTNOZUE.js`),__vite__mapDeps([20,1,2,16,7,21,9,10,12,3,22,23])),meta:{guest:!0,hideNav:!0}},{path:`/`,name:`home`,component:()=>$(()=>import(`./HomeView-DUEE32an.js`),__vite__mapDeps([24,1,2,7,21,17,25,26,27,28,6,29,30,31])),meta:{requiresAuth:!0}},{path:`/companies`,name:`companies`,component:()=>$(()=>import(`./CompanySelectView-2uDtaz53.js`),__vite__mapDeps([32,1,2,33,6,21,34,35,36,25,26,27,29,37,38])),meta:{requiresAuth:!0}},{path:`/categories`,name:`categories`,component:()=>$(()=>import(`./CategoriesView-Dxbr04Tk.js`),__vite__mapDeps([39,1,2,21,17,25,26,27,28,6,29,40,37,41,42])),meta:{requiresAuth:!0}},{path:`/products`,name:`products`,component:()=>$(()=>import(`./ProductsView-BPje9bIW.js`),__vite__mapDeps([43,1,2,44,26,27,28,6,45,21,46,47,48,30,49])),meta:{requiresAuth:!0}},{path:`/product`,name:`product`,component:()=>$(()=>import(`./ProductDetailView-VjRdY1Zl.js`),__vite__mapDeps([50,1,2,7,33,6,21,26,27,51,28,29,37,30,52])),meta:{requiresAuth:!0}},{path:`/catalogs`,name:`catalogs`,component:()=>$(()=>import(`./CatalogsHubView-Du4_08O7.js`),__vite__mapDeps([53,1,2,7,33,6,21,26,27,28,29,54,47,48,40,55])),meta:{requiresAuth:!0}},{path:`/catalogs/:catalogId`,name:`catalog-detail`,component:()=>$(()=>import(`./CatalogDetailView-BlAXKBtt.js`),__vite__mapDeps([56,1,2,7,33,6,21,26,27,51,28,29,54,57])),meta:{requiresAuth:!0}},{path:`/catalog-request`,name:`catalog-request`,component:()=>$(()=>import(`./CatalogRequestView-C5BboW9x.js`),__vite__mapDeps([58,1,2,7,26,27,28,6,45,21,46,59,60])),meta:{requiresAuth:!0}},{path:`/catalog-requests`,name:`catalog-requests`,component:()=>$(()=>import(`./CatalogRequestsView-BTSUD4xT.js`),__vite__mapDeps([61,1,2,7,45,21,46,59,6,62])),meta:{requiresAuth:!0}},{path:`/favorites`,name:`favorites`,component:()=>$(()=>import(`./FavoritesView-C9nplFH5.js`),__vite__mapDeps([63,1,2,26,27,28,6,45,21,46,30,64])),meta:{requiresAuth:!0}},{path:`/customers`,name:`customers`,component:()=>$(()=>import(`./CustomersView-f-iLJhx1.js`),__vite__mapDeps([65,1,2,7,44,26,27,28,6,45,21,46,47,48,66])),meta:{requiresAuth:!0}},{path:`/customers/new`,name:`customer-new`,component:()=>$(()=>import(`./CustomerCreateView-CSSpyhNm.js`),__vite__mapDeps([67,1,2,6,7,8,9,10,12,28,29,45,21,46,68,69,70])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/customer`,name:`customer`,component:()=>$(()=>import(`./CustomerDetailView-G9m9g3PH.js`),__vite__mapDeps([71,1,2,7,72,11,22,73,26,27,28,6,45,21,46,74,75])),meta:{requiresAuth:!0}},{path:`/meeting-report`,name:`meeting-report`,component:()=>$(()=>import(`./MeetingReportView-DQIFxjMR.js`),__vite__mapDeps([76,1,2,77,11,22,73,26,27,28,6,45,21,46,74,78])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/reminders`,name:`reminders`,component:()=>$(()=>import(`./RemindersView-IMJcGYf7.js`),__vite__mapDeps([79,1,2,7,21,80,26,27,28,6,29,81])),meta:{requiresAuth:!0}},{path:`/reminder`,name:`reminder`,component:()=>$(()=>import(`./ReminderDetailView-5GG_ljLb.js`),__vite__mapDeps([82,1,2,26,27,28,6,45,21,46,83])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/companies/:companyId/catalogs`,name:`company-catalogs`,component:()=>$(()=>import(`./CatalogListView-B7h2JJn8.js`),__vite__mapDeps([84,1,2,33,6,85,86,26,27,45,21,46,47,48,87])),meta:{requiresAuth:!0}},{path:`/companies/:companyId/catalogs/:catalogId/products`,name:`company-products`,redirect:e=>({path:`/products`,query:{catalogId:String(e.params.catalogId??``),companyId:String(e.params.companyId??``)}})},{path:`/cart`,name:`cart`,component:()=>$(()=>import(`./CartView-BCTihttt.js`),__vite__mapDeps([88,1,2,7,85,86,21,9,10,17,89,90,36,73,25,91])),meta:{requiresAuth:!0}},{path:`/orders`,name:`orders`,component:()=>$(()=>import(`./OrdersView-CThJEk8R.js`),__vite__mapDeps([92,1,2,7,33,6,85,86,72,21,34,35,77,44,80,93])),meta:{requiresAuth:!0}},{path:`/order`,name:`order-query`,redirect:e=>{let t=String(e.query.id??``);return t?{path:`/orders/${t}`}:{name:`orders`}}},{path:`/orders/:id`,name:`order-detail`,component:()=>$(()=>import(`./OrderDetailView-Cak53OtA.js`),__vite__mapDeps([94,1,2,15,16,7,8,72,21,9,10,12,95,68,69,96,97,98])),meta:{requiresAuth:!0}},{path:`/orders/:id/success`,name:`order-success`,component:()=>$(()=>import(`./OrderSuccessView-BknP059e.js`),__vite__mapDeps([99,1,2,7,29,45,21,46,100])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/settlement`,name:`settlement`,component:()=>$(()=>import(`./SettlementTypeView-CFV1ZfaS.js`),__vite__mapDeps([101,1,2,7,9,10,89,90,45,21,46,95,102,103,104])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/cash`,name:`cash-settlement`,component:()=>$(()=>import(`./CashSettlementView-vG0R5VWI.js`),__vite__mapDeps([105,1,2,7,33,6,45,21,46,102,95,106])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/check-mode`,name:`check-mode`,component:()=>$(()=>import(`./CheckModeSelectView-CganQy3H.js`),__vite__mapDeps([107,1,2,7,22,45,21,46,102,95,108])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/check-form`,name:`check-form`,component:()=>$(()=>import(`./CheckFormView-DjRrTrgm.js`),__vite__mapDeps([109,1,2,7,8,9,10,12,45,21,46,102,95,68,69,96,97,110,111])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/check-list`,name:`check-list`,component:()=>$(()=>import(`./CheckListView-D8SjoAtS.js`).then(e=>e.n),__vite__mapDeps([112,1,2,7,85,86,21,9,10,102,95,113])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/profile`,name:`profile`,component:()=>$(()=>import(`./ProfileView-zsVIG08O.js`),__vite__mapDeps([114,1,2,7,72,11,22,18,36,25,26,27,28,6,41,110,103,74,115])),meta:{requiresAuth:!0}},{path:`/profile/edit`,name:`profile-edit`,component:()=>$(()=>import(`./ProfileEditView-BXfhdkP1.js`),__vite__mapDeps([116,1,2,9,10,12,68,69,117,21,118,119])),meta:{requiresAuth:!0}},{path:`/profile/security`,name:`profile-security`,component:()=>$(()=>import(`./ProfileSecurityView-BtqgdXRj.js`),__vite__mapDeps([120,1,2,9,10,12,68,69,117,21,118,121])),meta:{requiresAuth:!0}},{path:`/profile/notifications`,name:`profile-notifications`,component:()=>$(()=>import(`./ProfileNotificationsView-BkDZ6lIH.js`),__vite__mapDeps([122,1,2,7,85,86,117,21,118,123])),meta:{requiresAuth:!0}},{path:`/profile/display`,name:`profile-display`,component:()=>$(()=>import(`./ProfileDisplayView-Co6ARz_e.js`),__vite__mapDeps([124,1,2,16,117,21,118,125])),meta:{requiresAuth:!0}},{path:`/profile/checks`,name:`profile-checks`,component:()=>$(()=>import(`./ProfileChecksView-Cx3LI6JZ.js`),__vite__mapDeps([126,112,1,2,7,85,86,21,9,10,102,95,113])),meta:{requiresAuth:!0}}],scrollBehavior(){return{top:0}}});Di.beforeEach(e=>{let t=Tr();return e.meta.requiresAuth&&!t?{name:`login`,query:{redirect:e.fullPath}}:e.meta.guest&&t||e.meta.agentOnly&&Cr()?.appRole!==`agent`?{name:`home`}:!0});var Oi=x(Ci),ki=de();Oi.use(ki),Oi.use(Di),Wr(ki),Oi.mount(`#app`);export{Rn as C,Z as E,zn as S,In as T,rr as _,Wr as a,Vn as b,Vr as c,Nr as d,Pr as f,ar as g,or as h,Kr as i,Br as l,lr as m,pi as n,Ur as o,Fr as p,Yr as r,Hr as s,gi as t,Ir as u,ir as v,Ln as w,Bn as x,Hn as y};
\ No newline at end of file
diff --git a/dist/assets/index-CVG_qU1h.css b/dist/assets/index-CVG_qU1h.css
new file mode 100644
index 0000000..15de92d
--- /dev/null
+++ b/dist/assets/index-CVG_qU1h.css
@@ -0,0 +1 @@
+.bottom-nav[data-v-3b391510]{min-height:var(--nav-height);background:var(--color-surface);border-top:1px solid var(--color-border);z-index:100;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0));flex-shrink:0;justify-content:space-around;align-items:flex-end;display:flex}@media (width>=768px){.bottom-nav[data-v-3b391510]{display:none}}.nav-item[data-v-3b391510]{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:10px;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:0;margin:0;padding:4px 2px 2px;transition:color .15s;display:flex;position:relative}.nav-item[data-v-3b391510]:focus,.nav-item[data-v-3b391510]:focus-visible{outline:none}.nav-item.active[data-v-3b391510]{color:var(--color-primary);background:0 0}.nav-item.active .nav-label[data-v-3b391510]{font-weight:700}.nav-item--fab[data-v-3b391510]{color:var(--color-text-muted);justify-content:flex-end}.nav-item--fab.active[data-v-3b391510]{color:var(--color-primary)}.nav-icon[data-v-3b391510]{flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:relative;overflow:visible}.nav-icon--fab[data-v-3b391510]{background:var(--color-primary);color:#fff;width:52px;height:52px;box-shadow:0 6px 16px rgba(var(--color-primary-rgb), .35);border-radius:999px;margin-top:-28px}.nav-label[data-v-3b391510]{white-space:nowrap;font-size:.6875rem;font-weight:500;line-height:1.2}.nav-label--fab[data-v-3b391510]{font-size:.625rem}.nav-badge[data-v-3b391510]{top:-2px;background:var(--color-danger);color:#fff;pointer-events:none;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.625rem;font-weight:700;line-height:1;display:flex;position:absolute;inset-inline-end:-2px}.brand-logo[data-v-b211450b]{object-fit:contain;-webkit-user-select:none;user-select:none;flex-shrink:0;width:auto;display:block}.desktop-sidebar[data-v-16152195]{width:var(--sidebar-width);background:var(--color-surface);border-inline-start:1px solid var(--color-border);flex-direction:column;flex-shrink:0;height:100%;padding:0;display:none;overflow-y:auto}@media (width>=768px){.desktop-sidebar[data-v-16152195]{display:flex}}.desktop-sidebar__brand[data-v-16152195]{height:var(--header-height);min-height:var(--header-height);max-height:var(--header-height);box-sizing:border-box;border-bottom:none;flex-shrink:0;justify-content:flex-start;align-items:center;gap:10px;padding:0 20px;display:flex}@media (width>=1200px){.desktop-sidebar__brand[data-v-16152195]{padding:0 28px}}.desktop-sidebar__logo-mark[data-v-16152195]{flex-shrink:0}.desktop-sidebar__title[data-v-16152195]{color:var(--color-primary);font-size:1rem;font-weight:700;display:block}.desktop-sidebar__nav[data-v-16152195]{flex-direction:column;flex:1;gap:4px;padding:12px 12px 0;display:flex}@media (width>=1200px){.desktop-sidebar__nav[data-v-16152195]{padding:16px 16px 0}}.desktop-sidebar__item[data-v-16152195]{border-radius:var(--radius-md);cursor:pointer;width:100%;color:var(--color-text-secondary);text-align:start;background:0 0;border:none;justify-content:flex-start;align-items:center;gap:12px;padding:11px 12px;transition:background .15s,color .15s;display:flex;position:relative}@media (width>=1200px){.desktop-sidebar__item[data-v-16152195]{padding:11px 14px}}.desktop-sidebar__item[data-v-16152195]:hover{background:var(--color-elevated);color:var(--color-text)}.desktop-sidebar__item[data-v-16152195]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.desktop-sidebar__item.active[data-v-16152195]{background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}.desktop-sidebar__item.active .desktop-sidebar__icon[data-v-16152195]{color:var(--color-primary)}.desktop-sidebar__icon[data-v-16152195]{width:22px;height:22px;color:inherit;flex-shrink:0;justify-content:center;align-items:center;display:flex}.desktop-sidebar__label[data-v-16152195]{font-size:.875rem;font-weight:inherit;white-space:nowrap;display:block}.desktop-sidebar__badge[data-v-16152195]{background:var(--color-danger);color:var(--color-surface);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;margin-inline-start:auto;padding:0 4px;font-size:.6875rem;font-weight:700;display:flex}.desktop-sidebar__support[data-v-16152195]{background:var(--color-primary-soft);border-radius:var(--radius-lg);flex-direction:column;gap:8px;margin:auto 12px 20px;padding:14px;display:flex}@media (width>=1200px){.desktop-sidebar__support[data-v-16152195]{margin:auto 16px 24px;padding:16px}}.desktop-sidebar__support-icon[data-v-16152195]{background:var(--color-primary);width:36px;height:36px;color:var(--color-surface);border-radius:50%;justify-content:center;align-items:center;display:flex}.desktop-sidebar__support-title[data-v-16152195]{color:var(--color-text);font-size:.875rem;font-weight:700}.desktop-sidebar__support-text[data-v-16152195]{color:var(--color-text-muted);margin:0;font-size:.6875rem;line-height:1.5}.desktop-sidebar__support-btn[data-v-16152195]{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary);text-align:center;margin-top:4px;padding:10px 12px;font-size:.8125rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:block}.desktop-sidebar__support-btn[data-v-16152195]:hover{opacity:.9}.auth-theme-toggle[data-v-3a58cb84]{color:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .15s;display:inline-flex}.auth-theme-toggle--floating[data-v-3a58cb84]{top:calc(12px + env(safe-area-inset-top,0px));z-index:100;width:40px;height:40px;color:var(--color-text);box-shadow:none;background:0 0;position:fixed;inset-inline-end:16px}.auth-theme-toggle--inline[data-v-3a58cb84]{width:40px;height:40px;color:inherit;flex-shrink:0;position:relative}.auth-theme-toggle[data-v-3a58cb84]:hover{color:var(--color-primary)}.user-avatar[data-v-5c562bf0]{color:inherit;background:#ffffff2e;border-radius:999px;flex-shrink:0;place-items:center;font-weight:700;display:grid;overflow:hidden}.user-avatar__img[data-v-5c562bf0]{object-fit:cover;width:100%;height:100%;display:block}.desktop-header[data-v-5f322d95]{height:var(--header-height);min-height:var(--header-height);max-height:var(--header-height);box-sizing:border-box;background:var(--color-surface);border-bottom:none;flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;padding:0 28px;display:none}@media (width>=768px){.desktop-header[data-v-5f322d95]{padding:0 var(--page-padding);gap:16px;display:flex}}@media (width>=1200px){.desktop-header[data-v-5f322d95]{padding:0 var(--page-padding);gap:24px}}.desktop-header__spacer[data-v-5f322d95]{flex:1;min-width:0}.desktop-header__actions[data-v-5f322d95]{flex-shrink:0;align-items:center;gap:16px;margin-inline-start:auto;display:flex}.desktop-header__company[data-v-5f322d95]{color:var(--color-text-muted);border-inline-end:1px solid var(--color-border);padding-inline-end:8px;font-size:.8125rem;font-weight:600;display:none}@media (width>=992px){.desktop-header__company[data-v-5f322d95]{display:block}}.desktop-header__icon-btn[data-v-5f322d95]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:40px;height:40px;color:var(--color-text-muted);cursor:pointer;justify-content:center;align-items:center;display:flex;position:relative}.desktop-header__notif-badge[data-v-5f322d95]{top:4px;background:var(--color-danger);min-width:18px;height:18px;color:var(--color-on-primary,#fff);border:2px solid var(--color-surface);border-radius:9px;justify-content:center;align-items:center;padding:0 4px;font-size:.625rem;font-weight:700;display:flex;position:absolute;inset-inline-end:4px}.desktop-header__user-wrap[data-v-5f322d95]{position:relative}.desktop-header__user[data-v-5f322d95]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;align-items:center;gap:10px;padding:6px 12px 6px 8px;font-family:inherit;display:flex}.desktop-header__avatar[data-v-5f322d95]{background:var(--color-primary);color:var(--color-surface)}.desktop-header__user-name[data-v-5f322d95]{color:var(--color-text);font-size:.875rem;font-weight:600;display:none}@media (width>=1200px){.desktop-header__user-name[data-v-5f322d95]{display:block}}.desktop-header__chevron[data-v-5f322d95]{color:var(--color-text-muted);transform:rotate(-90deg)}.desktop-header__menu[data-v-5f322d95]{top:calc(100% + 6px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:160px;box-shadow:var(--shadow-md);z-index:100;padding:6px;position:absolute;inset-inline-end:0}.desktop-header__menu button[data-v-5f322d95]{text-align:start;cursor:pointer;border-radius:var(--radius-sm);width:100%;color:var(--color-text);background:0 0;border:none;padding:10px 12px;font-family:inherit;font-size:.875rem}.desktop-header__menu button[data-v-5f322d95]:hover{background:var(--color-elevated)}.desktop-header__menu-logout[data-v-5f322d95]{color:var(--color-danger)!important}.btn[data-v-3628a8bb]{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.btn[data-v-3628a8bb]:disabled{opacity:.55;cursor:not-allowed}.btn-block[data-v-3628a8bb]{width:100%}.btn-sm[data-v-3628a8bb]{min-height:36px;padding:0 14px;font-size:.8125rem}.btn-md[data-v-3628a8bb]{min-height:var(--btn-height);padding:0 24px;font-size:.9375rem}.btn-lg[data-v-3628a8bb]{min-height:52px;padding:0 28px;font-size:1rem}.btn-primary[data-v-3628a8bb]{background:var(--color-primary);color:var(--color-surface)}.btn-primary[data-v-3628a8bb]:not(:disabled):hover{background:var(--color-primary-dark)}.btn-secondary[data-v-3628a8bb]{background:var(--color-primary-light);color:var(--color-primary)}.btn-outline[data-v-3628a8bb]{color:var(--color-primary);border:1.5px solid var(--color-primary);background:0 0}.btn-danger[data-v-3628a8bb]{background:var(--color-danger);color:var(--color-surface)}.btn-ghost[data-v-3628a8bb]{color:var(--color-text-muted);background:0 0}.btn-spinner[data-v-3628a8bb]{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin-3628a8bb}@keyframes spin-3628a8bb{to{transform:rotate(360deg)}}.confirm-dialog[data-v-2e50e2a7]{padding:20px}.confirm-dialog__title[data-v-2e50e2a7]{margin:0 0 8px;font-size:1.0625rem;font-weight:700}.confirm-dialog__message[data-v-2e50e2a7]{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.7}.confirm-dialog__actions[data-v-2e50e2a7]{margin-top:20px}@media (width>=768px){.confirm-dialog__actions[data-v-2e50e2a7]{flex-direction:row;justify-content:flex-end}}*,:before,:after,::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.btn-block{width:100%}.page-shell{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.static{position:static}.isolate{isolation:isolate}.grid{display:grid}.inline-grid{display:inline-grid}.m-0{margin:0}.mb-3{margin-bottom:.75rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.inline,.empty-inline:empty{display:inline}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.h-10{height:2.5rem}.h1{height:.25rem}.h2{height:.5rem}.h3{height:.75rem}.min-w-0{min-width:0}.w-10{width:2.5rem}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.table{display:table}.border-collapse{border-collapse:collapse}.transform{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.resize{resize:both}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.b,.border{border-width:1px}.border-t{border-top-width:1px}.border-\[var\(--color-border\)\]{border-color:var(--color-border)}.rounded-\[var\(--radius-md\)\]{border-radius:var(--radius-md)}.rounded-full{border-radius:9999px}.bg-\[var\(--color-primary-soft\)\]{background-color:var(--color-primary-soft)}.bg-\[var\(--color-surface\)\]{background-color:var(--color-surface)}.p-4{padding:1rem}.px{padding-left:1rem;padding-right:1rem}.pt-3{padding-top:.75rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-\[var\(--color-danger\)\]{color:var(--color-danger)}.text-\[var\(--color-primary\)\]{color:var(--color-primary)}.text-\[var\(--color-success\)\]{color:var(--color-success)}.text-\[var\(--color-text-muted\)\],.text-muted{color:var(--color-text-muted)}.text-\[var\(--color-text\)\]{color:var(--color-text)}.text-white{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-relaxed{line-height:1.625}.italic{font-style:italic}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.underline{text-decoration-line:underline}.tab{tab-size:4}.text-shadow{--un-text-shadow:0 0 1px var(--un-text-shadow-color,#0003),0 0 1px var(--un-text-shadow-color,#0100051a);text-shadow:var(--un-text-shadow)}.outline{outline-style:solid}.blur{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.filter{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease,.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)-BLA2CtIC.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Light-B637MNLG.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_UltraLight-hW-WDKY9.woff2)format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Medium-C2CKjrKB.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Medium-C2CKjrKB.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Bold-C8urhp07.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Black-BFAfOkt4.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}:root{--color-primary:#0a353c;--color-primary-hover:#072a2f;--color-primary-soft:#e8f4f1;--color-primary-dark:#062428;--color-primary-light:#e8f4f1;--color-primary-rgb:10, 53, 60;--color-accent-navy:#0a353c;--color-accent-navy-rgb:10, 53, 60;--color-success:#1b8a5a;--color-success-light:#eaf8f1;--color-success-soft:#eaf8f1;--color-warning:#e8a317;--color-warning-light:#fff6e5;--color-danger:#dc3545;--color-danger-light:#fee2e2;--color-purple:#7c3aed;--color-purple-light:#ede9fe;--color-info:#3b6fa0;--color-info-light:#eef3f7;--color-bg:#f6f8f7;--color-page-background:#f6f8f7;--color-shell-bg:#eef1f0;--color-surface:#fff;--color-border:#e5e9e8;--color-text:#121212;--color-text-primary:#121212;--color-text-muted:#6b7280;--color-text-secondary:#6b7280;--color-tab-inactive-bg:#f1f5f9;--color-tab-inactive-text:#64748b;--color-summary-bg:#f1f5f9;--color-elevated:#fff;--color-brand-warm:#f3ece3;--color-brand-warm-text:#1a202c;--color-brand-warm-muted:#718096;--color-level-gold:#c9a227;--color-level-gold-soft:#f7efd6;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 1px 2px #1018280a;--shadow-md:0 4px 16px #1018280f;--shadow-card:0 1px 2px #1018280a, 0 4px 16px #1018280a;--shadow-frame:0 8px 32px #0f172a1a;--nav-height:64px;--page-padding:16px;--page-padding-tablet:20px;--page-padding-desktop:28px;--page-gap:12px;--content-max-width:1360px;--form-max-width:520px;--auth-form-max-width:440px;--summary-panel-width:320px;--sidebar-width:240px;--sidebar-width-compact:72px;--header-height:70px;--app-shell-breakpoint:768px;--font-family:"IRANSans", "Tahoma", sans-serif;--btn-height:48px;--desktop-breakpoint:1200px}html.dark{--color-primary:#5eb8ad;--color-primary-hover:#7ad0c5;--color-primary-soft:#14353a;--color-primary-dark:#7ad0c5;--color-primary-light:#14353a;--color-primary-rgb:94, 184, 173;--color-accent-navy:#5eb8ad;--color-accent-navy-rgb:94, 184, 173;--color-success:#3dd68c;--color-success-light:#123528;--color-success-soft:#123528;--color-warning:#f5c14a;--color-warning-light:#3a2f14;--color-danger:#f47979;--color-danger-light:#3f1d22;--color-purple:#b39afa;--color-purple-light:#2a2144;--color-info:#7b9cff;--color-info-light:#1b2740;--color-bg:#0b0f14;--color-page-background:#0b0f14;--color-shell-bg:#080b10;--color-surface:#121821;--color-elevated:#1a2230;--color-border:#2a3444;--color-text:#eef2f8;--color-text-primary:#eef2f8;--color-text-muted:#9aa8bc;--color-text-secondary:#9aa8bc;--color-tab-inactive-bg:#1a2230;--color-tab-inactive-text:#9aa8bc;--color-summary-bg:#1a2230;--color-brand-warm:#2a241c;--color-brand-warm-text:#f3ebe0;--color-brand-warm-muted:#b9a88d;--color-level-gold:#e0c35a;--color-level-gold-soft:#3a3420;--shadow-sm:0 1px 2px #00000073;--shadow-md:0 8px 24px #00000073;--shadow-card:0 1px 2px #00000059, 0 8px 24px #00000059;--shadow-frame:0 12px 40px #00000080}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;height:100%;font-size:16px;overflow:hidden}body{font-family:var(--font-family);background:var(--color-shell-bg);color:var(--color-text);direction:rtl;height:100%;margin:0;line-height:1.5;overflow:hidden}#app{height:100dvh;overflow:hidden}*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{width:0;height:0;display:none}a{color:var(--color-primary);text-decoration:none}button,input,select,textarea{font-family:inherit}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;text-align:right}.page{background:var(--color-bg);min-height:0;color:var(--color-text);flex-direction:column;flex:1;padding:0;display:flex;overflow:hidden}.page__scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.page__scroll--with-nav{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.page-title{color:var(--color-text);margin:0 0 4px;font-size:1.25rem;font-weight:700;line-height:1.35}.page-subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.5}.card{background:var(--color-elevated);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);color:var(--color-text);padding:16px}.auth-page{background:0 0}.auth-top{padding:8px var(--page-padding);background:var(--color-surface);grid-template-columns:40px 1fr 40px;align-items:center;gap:4px;display:grid}.auth-top__title{text-align:center;color:var(--color-text);margin:0;font-size:1rem;font-weight:700}.auth-top .icon-btn{cursor:pointer;width:40px;height:40px;color:var(--color-text);background:0 0;border:none;border-radius:12px;place-items:center;padding:0;display:grid}.auth-body{padding:20px var(--page-padding) 32px;background:0 0;flex-direction:column;gap:16px;display:flex}.auth-lead{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.6}.auth-page .card{width:100%;max-width:var(--auth-form-max-width);box-shadow:none;background:0 0;border:none;margin-inline:auto;padding:0}.auth-switch{width:100%;max-width:var(--auth-form-max-width);text-align:center;color:var(--color-text-muted);margin:0 auto;font-size:.875rem}.auth-switch a{color:var(--color-primary);font-weight:700}.auth-page .input,.auth-page .job-select,.auth-page .otp-box{background:var(--color-surface);border:1px solid #eeeef1;border-radius:12px}.auth-page .btn{border-radius:12px}.card+.card{margin-top:var(--page-gap)}.alert{border-radius:var(--radius-sm);padding:12px 14px;font-size:.875rem;line-height:1.5}.alert-info{background:var(--color-primary-light);color:var(--color-primary);border:1px solid #cbd5e1}.alert-warning{background:var(--color-warning-light);color:#9a3412;border:1px solid #fed7aa}.alert-success{background:var(--color-success-light);color:#155724;border:1px solid #c3e6cb}.alert-danger{background:var(--color-danger-light);color:#991b1b;border:1px solid #fecaca}.form-group{margin-bottom:16px}.form-label{color:var(--color-text);margin-bottom:6px;font-size:.875rem;font-weight:600;display:block}.form-hint{color:var(--color-text-muted);margin-top:4px;font-size:.75rem}.divider{background:var(--color-border);height:1px;margin:16px 0}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:.875rem}.text-center{text-align:center}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.flex-between{justify-content:space-between;align-items:center;gap:8px;display:flex}.sticky-footer{bottom:calc(var(--nav-height) + 12px);z-index:50;width:100%;max-width:100%;padding-inline:var(--page-padding);box-sizing:border-box;position:fixed;inset-inline:0}.sticky-footer-inner{max-width:100%}.no-nav .page{padding-bottom:0}.no-nav .sticky-footer{bottom:0}.dialog-overlay{z-index:200;background:#0f172a66;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog-overlay .dialog{width:100%;max-width:400px}.dialog-actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.desktop-only,.desktop-only-flex,.desktop-only-grid{display:none!important}.mobile-hidden{display:block}.desktop-hidden{display:none!important}@media (width>=768px){.mobile-only,.mobile-block{display:none!important}.desktop-only{display:block!important}.mobile-hidden{display:none!important}.desktop-hidden{display:block!important}.desktop-only-flex{display:flex!important}.desktop-only-grid{display:grid!important}.page{background:0 0;padding:0}.page__scroll--with-nav{padding-bottom:0}}.page-fade-enter-active,.page-fade-leave-active,.page-forward-enter-active,.page-forward-leave-active,.page-back-enter-active,.page-back-leave-active{transition:opacity .22s,transform .22s}.page-fade-enter-from,.page-fade-leave-to{opacity:0}.page-forward-enter-from{opacity:0;transform:translate(-18px)}.page-forward-leave-to{opacity:0;transform:translate(12px)}.page-back-enter-from{opacity:0;transform:translate(18px)}.page-back-leave-to{opacity:0;transform:translate(-12px)}@media (prefers-reduced-motion:reduce){.page-fade-enter-active,.page-fade-leave-active,.page-forward-enter-active,.page-forward-leave-active,.page-back-enter-active,.page-back-leave-active{transition:none}}.app-shell{background:var(--color-shell-bg);width:100%;height:100dvh;display:flex;overflow:hidden}.app-layout{flex-direction:row;width:100%;height:100%;min-height:0;display:flex}.app-frame{background:var(--color-bg);width:100%;height:100%;color:var(--color-text);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.app-main,.app-main__content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.app-content{width:100%;min-height:0;max-width:var(--content-max-width);flex-direction:column;flex:1;margin-inline:auto;padding-inline:0;display:flex;position:relative}.page-transition{flex-direction:column;flex:1;width:100%;min-height:0;display:flex;overflow:hidden}.app-shell--with-nav{justify-content:stretch}.app-shell--with-nav .app-frame{max-width:100%;box-shadow:none;border-radius:0;margin:0}@media (width>=768px){.app-shell--with-nav,.app-shell--with-nav .app-frame{background:var(--color-page-background)}.app-shell--with-nav .app-layout{position:relative}.app-shell--with-nav .app-layout:after{content:"";top:var(--header-height);background:var(--color-border);z-index:30;pointer-events:none;height:1px;position:absolute;inset-inline:0}.app-shell--with-nav .app-main__content{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow:hidden auto}.app-shell--with-nav .app-content,.app-shell--with-nav .page-transition{flex:1 0 auto;min-height:min-content;overflow:visible}.app-shell--with-nav .page-transition>*{flex:1 0 auto;height:auto;min-height:min-content;max-height:none;overflow:visible}}.app-shell--no-nav{background:var(--color-page-background);justify-content:center;align-items:center;padding:16px}.app-shell--no-nav .app-layout{max-width:var(--form-max-width);width:100%;height:auto;min-height:0;max-height:calc(100dvh - 32px);overflow:hidden}.app-shell--no-nav .app-frame{max-width:var(--form-max-width);border-radius:var(--radius-lg);width:100%;height:auto;min-height:0;max-height:calc(100dvh - 32px);box-shadow:var(--shadow-frame);background:var(--color-surface);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow:hidden auto}.app-shell--no-nav .app-main,.app-shell--no-nav .app-main__content,.app-shell--no-nav .app-content,.app-shell--no-nav .page-transition{flex:1 0 auto;height:auto;min-height:min-content;overflow:visible}.app-shell--no-nav .app-content{padding-inline:var(--page-padding)}.app-shell--no-nav .page{background:0 0;min-height:auto;overflow:visible}.app-shell--no-nav.app-shell--wide .app-layout,.app-shell--no-nav.app-shell--wide .app-frame{max-width:min(var(--content-max-width), calc(100vw - 32px))}.app-shell--no-nav.app-shell--wide .app-frame{background:var(--color-bg)}.app-shell--immersive{background:#efe8df;justify-content:stretch;align-items:stretch;padding:0}.app-shell--immersive .app-layout,.app-shell--immersive .app-frame{width:100%;max-width:none;height:100%;max-height:none;box-shadow:none;background:0 0;border-radius:0;overflow:hidden}.app-shell--immersive .app-main,.app-shell--immersive .app-main__content,.app-shell--immersive .app-content,.app-shell--immersive .page-transition{flex:1;height:100%;min-height:0;overflow:hidden}.app-shell--immersive .page-transition{flex-direction:column;display:flex}.app-shell--immersive .page-transition>*{flex:1;height:100%;min-height:0}.app-shell--immersive .app-content{max-width:none;padding-inline:0}.app-shell--immersive .page{background:0 0;height:100%;min-height:0;overflow:hidden}@media (width>=768px){.app-shell--immersive .page{flex:1;max-width:none;height:100%;min-height:0;margin:0;padding:0;overflow:hidden}.app-shell--no-nav{padding:24px}.app-shell--no-nav.app-shell--immersive{background:#141210;justify-content:center;align-items:center;padding:0}.app-shell--no-nav.app-shell--immersive .app-layout,.app-shell--no-nav.app-shell--immersive .app-frame{width:min(100%,430px);max-width:430px;height:100%;max-height:100dvh;box-shadow:none;border-radius:0;margin-inline:auto}.app-shell--no-nav .app-layout,.app-shell--no-nav .app-frame{max-height:calc(100dvh - 48px)}.app-shell--no-nav.app-shell--wide .app-layout,.app-shell--no-nav.app-shell--wide .app-frame{max-width:min(var(--content-max-width), calc(100vw - 48px))}:root{--page-padding:var(--page-padding-tablet);--nav-height:0px}html,body{height:auto;overflow:auto}#app{height:100dvh;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}::-webkit-scrollbar{width:6px;height:6px;display:block}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.sticky-footer{max-width:min(var(--content-max-width), calc(100% - 2 * var(--page-padding)));bottom:0}.no-nav .sticky-footer{bottom:0}.auth-body{align-items:center;padding-block:32px 48px}.auth-lead,.auth-page .card,.auth-switch{width:100%;max-width:var(--auth-form-max-width)}.company-select-page__list{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:20px;display:grid}.company-brand-card{min-height:220px}.catalog-list{gap:var(--page-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.product-list{gap:var(--page-gap);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.product-page__scroll{padding-bottom:88px}.settlement-options,.mode-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:720px;margin-inline:auto;display:grid}.company-select-page{max-width:var(--content-max-width);width:100%;padding-inline:var(--page-padding);margin-inline:auto}.company-select-page__header{max-width:560px;margin-inline:auto}.catalog-page .page__scroll,.orders-page__scroll,.product-page .product-page__scroll{max-width:var(--content-max-width);width:100%;margin-inline:auto}.cart-page{max-width:var(--content-max-width);width:100%;padding-inline:var(--page-padding);margin-inline:auto}.cart-page__body{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) minmax(260px,300px);align-items:start;gap:16px 20px;display:grid}.cart-page__company{grid-column:1/-1;margin-bottom:0;font-size:.9375rem}.cart-page__scroll{grid-column:1;max-height:none;overflow:visible}.cart-page__footer{box-shadow:var(--shadow-md);border-radius:var(--radius-md);border-top:none;border:1px solid var(--color-border);grid-area:1/2/-1;margin:0;padding:16px;position:sticky;top:16px}.cart-table__head{position:static}.check-list-page{max-width:var(--content-max-width);width:100%;padding-inline:var(--page-padding);margin-inline:auto}.check-list-page__scroll{max-width:var(--content-max-width);width:100%;margin-inline:auto}.summary-cards{gap:16px}.checks-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.rass-panel{max-width:480px;margin-inline:auto}.profile-page__scroll{max-width:var(--content-max-width);width:100%;margin-inline:auto}.profile-menu{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.profile-menu__item{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}.order-detail-page__body{-webkit-overflow-scrolling:touch;width:100%;max-width:none;margin-inline:0;overflow-y:auto}.order-detail-page__footer{width:100%;max-width:none;margin-inline:0}.checkout-page__scroll,.cash-page__scroll,.settlement-page__scroll,.check-mode-page__scroll{max-width:var(--form-max-width);width:100%;margin-inline:auto}.cash-page{max-width:var(--content-max-width);width:100%;margin-inline:auto}.cash-page__footer{max-width:var(--form-max-width);width:100%;box-shadow:none;border-top:none;grid-template-columns:1fr 1fr;gap:12px;margin-inline:auto;padding-top:16px;display:grid}.accounts-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.bank-card+.bank-card,.cash-page__submit{margin-top:0}.order-info-card{max-width:520px;margin-inline:auto}.profile-edit-page .page__scroll{max-width:var(--form-max-width);width:100%;margin-inline:auto}.success-page__scroll{max-width:var(--form-max-width);flex-direction:column;align-items:center;width:100%;margin-inline:auto;display:flex}.dialog-overlay .dialog,.dialog-overlay .card.dialog{width:100%;max-width:480px}.dialog-actions{flex-direction:row;justify-content:flex-end}}@media (width>=1200px){:root{--page-padding:var(--page-padding-desktop)}.catalog-list{grid-template-columns:repeat(3,minmax(0,1fr))}.checks-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1440px){.product-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1920px){:root{--content-max-width:1120px}}@media (width>=768px){:root{--page-padding:var(--page-padding-tablet);--nav-height:0px}.page{padding:20px var(--page-padding-tablet) 28px;max-width:var(--content-max-width);background:0 0;flex:1 0 auto;width:100%;min-height:auto;margin-inline:auto;overflow:visible}.page__scroll{flex:none;min-height:auto;overflow:visible}.page__scroll--with-nav{padding-bottom:0}.page-head{margin-bottom:20px}.page-head__title{color:var(--color-text);margin:0 0 4px;font-size:1.25rem;font-weight:700}.page-head__subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem}.orders-page__desktop-head{margin-bottom:20px}.orders-page__desktop-title{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.orders-page__desktop-subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem}.orders-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px;display:grid}.orders-stat-card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);flex-direction:column;align-items:stretch;gap:0;min-height:0;padding:16px 18px 14px;display:flex}.orders-stat-card__head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.orders-stat-card__label{font-size:.8125rem;font-weight:600;line-height:1.4}.orders-stat-card__label--total,.orders-stat-card__label--review{color:var(--color-text)}.orders-stat-card__label--active{color:#ea580c}.orders-stat-card__label--done{color:var(--color-success)}.orders-stat-card__value{color:var(--color-text);font-variant-numeric:tabular-nums;margin:0 0 12px;font-size:1.75rem;font-weight:700;line-height:1.15}.orders-stat-card__link{color:var(--color-primary);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-self:flex-start;margin-top:auto;padding:0;font-family:inherit;font-size:.8125rem;font-weight:600;text-decoration:underline}.orders-stat-card__link:hover{color:var(--color-primary-hover)}.orders-stat-card__icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.orders-stat-card__icon--total,.orders-stat-card__icon--review{background:var(--color-primary-soft);color:var(--color-primary)}.orders-stat-card__icon--active{background:var(--color-warning-light);color:#ea580c}.orders-stat-card__icon--done{background:var(--color-success-soft);color:var(--color-success)}.orders-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.orders-toolbar__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.orders-toolbar__filter-btn{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:8px;height:40px;padding:0 18px;font-family:inherit;font-size:.875rem;font-weight:600;display:inline-flex}.orders-toolbar__filter-btn:hover{background:var(--color-primary-hover)}.orders-toolbar__pills{flex-wrap:wrap;flex:1;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.orders-filter-pill{border:1px solid var(--color-border);background:var(--color-surface);height:36px;color:var(--color-text-muted);cursor:pointer;white-space:nowrap;border-radius:999px;padding:0 16px;font-family:inherit;font-size:.8125rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.orders-filter-pill:hover{color:var(--color-text);border-color:#cbd5e1}.orders-filter-pill--active{background:var(--color-primary-soft);color:var(--color-primary);border-color:#c7d7ff;font-weight:600}.orders-table-wrap{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-card);overflow:hidden}.orders-table-scroll{overflow-x:auto}.orders-table{border-collapse:collapse;width:100%;min-width:720px;font-size:.875rem}.orders-table th{text-align:start;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:14px 16px;font-size:.8125rem;font-weight:600}.orders-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;background:var(--color-surface);padding:16px}.orders-table tr:last-child td{border-bottom:none}.orders-table tbody tr:hover td{background:var(--color-elevated)}.orders-table__number{color:var(--color-text);white-space:nowrap;font-weight:700}.orders-table__amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.orders-table__date{color:var(--color-text-muted);white-space:nowrap;font-size:.8125rem}.orders-table__actions{align-items:center;gap:8px;display:flex}.orders-table__action{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-primary);cursor:pointer;white-space:nowrap;padding:7px 16px;font-family:inherit;font-size:.8125rem;font-weight:600}.orders-table__action:hover{background:var(--color-primary-soft);border-color:#c7d7ff}.orders-table__menu{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.orders-table__menu:hover{background:var(--color-elevated);color:var(--color-text)}.orders-pagination{border-top:1px solid var(--color-border);color:var(--color-text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;font-size:.8125rem;display:flex}.orders-pagination__summary{white-space:nowrap}.orders-pagination__controls{align-items:center;gap:4px;display:flex}.orders-pagination__arrow{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;width:32px;height:32px;color:var(--color-text);justify-content:center;align-items:center;padding:0;display:flex}.orders-pagination__arrow:disabled{opacity:.4;cursor:not-allowed}.orders-pagination__arrow:not(:disabled):hover{border-color:var(--color-primary);color:var(--color-primary)}.orders-pagination__arrow-icon--prev{transform:scaleX(-1)}.orders-pagination__arrow-icon--next{transform:none}.orders-pagination__ellipsis{text-align:center;min-width:24px;color:var(--color-text-muted)}.orders-pagination__page{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;min-width:32px;height:32px;color:var(--color-text);padding:0 6px;font-family:inherit;font-size:.8125rem}.orders-pagination__page:hover:not(.orders-pagination__page--active){border-color:var(--color-primary);color:var(--color-primary)}.orders-pagination__page--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.product-page__layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}.product-page__main{min-width:0}.product-page__sidebar{position:sticky;top:16px}.cart-summary-panel{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-card);padding:20px}.cart-summary-panel__title{color:var(--color-text);border-bottom:1px solid var(--color-border);margin:0 0 16px;padding-bottom:12px;font-size:.9375rem;font-weight:700}.cart-summary-panel__row{justify-content:space-between;align-items:center;padding:8px 0;font-size:.875rem;display:flex}.cart-summary-panel__row span:first-child{color:var(--color-text-muted)}.cart-summary-panel__row strong{color:var(--color-text)}.cart-summary-panel__btn{margin-top:16px}.product-page__scroll{padding-bottom:0}.product-page .sticky-footer{display:none}.product-list{grid-template-columns:repeat(2,minmax(0,1fr))}.cart-page{max-width:var(--content-max-width);padding:20px var(--page-padding-tablet) 28px;background:0 0;margin-inline:auto}.cart-page__desktop-title{margin:0 0 16px;font-size:1.25rem;font-weight:700}.cart-page__body{grid-template-columns:minmax(0,1fr) minmax(280px,320px);align-items:start;gap:20px 24px;display:grid}.cart-page__company{grid-column:1/-1}.order-detail-page{max-width:none;padding:24px var(--page-padding) 32px;background:0 0;height:100%;margin-inline:0;overflow:hidden}.order-detail-back{color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:12px;padding:0;font-family:inherit;font-size:.875rem;font-weight:600;display:inline-flex}.company-select-page{max-width:var(--content-max-width);padding:24px var(--page-padding-desktop);background:0 0;margin-inline:auto}.catalog-page{background:0 0}.page.calite-detail,.page.calite-hub{background:#f4f0ed;max-width:none;padding:0;overflow:visible}.catalog-list{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-page{background:0 0}.profile-hero{border-radius:var(--radius-md);margin-inline:0}}@media (width>=1200px){:root{--page-padding:var(--page-padding-desktop)}.page{padding:24px var(--page-padding-desktop) 32px}.page.calite-detail,.page.calite-hub{padding:0}.orders-stats{gap:16px;margin-bottom:24px}.orders-page__desktop-head{margin-bottom:24px}.orders-toolbar{margin-bottom:20px}.catalog-list{grid-template-columns:repeat(3,minmax(0,1fr))}.product-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=768px){.desktop-page{width:100%;min-height:auto;max-width:var(--content-max-width);padding:20px var(--page-padding) 28px;box-sizing:border-box;background:0 0;flex-direction:column;flex:1 0 auto;margin-inline:auto;display:flex}.desktop-page__head{margin-bottom:20px}.desktop-page__title{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.desktop-page__subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem}.desktop-two-col{grid-template-columns:minmax(0,1fr);align-items:start;gap:24px;display:grid}.desktop-two-col__main{min-width:0}.desktop-summary-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:20px;position:sticky;top:16px}.desktop-summary-panel__title{border-bottom:1px solid var(--color-border);margin:0 0 16px;padding-bottom:12px;font-size:.9375rem;font-weight:700}.desktop-summary-panel__row{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:.875rem;display:flex}.desktop-summary-panel__row span:first-child{color:var(--color-text-muted)}.desktop-summary-panel__row strong{color:var(--color-text);font-variant-numeric:tabular-nums}.desktop-summary-panel__action{margin-top:16px}.desktop-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);width:100%;min-width:0;overflow:hidden}.desktop-table-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overflow-x:auto}.desktop-table{border-collapse:collapse;width:100%;min-width:560px;font-size:.875rem}.desktop-table th{text-align:start;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:12px 16px;font-size:.8125rem;font-weight:600}.desktop-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;background:var(--color-surface);padding:14px 16px}.desktop-table tbody tr:last-child td{border-bottom:none}.desktop-table tbody tr:hover td{background:var(--color-elevated)}.desktop-grid-2{grid-template-columns:repeat(2,minmax(280px,1fr));gap:16px;display:grid}.desktop-grid-3{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.desktop-grid-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.desktop-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.desktop-toolbar__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.desktop-btn-compact{min-width:120px;width:auto!important;padding-inline:20px!important}.desktop-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.desktop-form-grid__full{grid-column:1/-1}.desktop-checkout-shell{width:100%;max-width:var(--content-max-width);padding:20px var(--page-padding) 28px;box-sizing:border-box;margin-inline:auto}.desktop-settlement-grid{grid-template-columns:repeat(2,minmax(280px,380px));justify-content:center;gap:20px;max-width:820px;margin-inline:auto;display:grid}.desktop-company-grid{grid-template-columns:repeat(2,minmax(280px,400px));justify-content:center;gap:20px;width:100%;max-width:900px;margin-inline:auto;display:grid}}@media (width>=1200px){.desktop-page,.desktop-checkout-shell{padding:24px var(--page-padding) 32px}.desktop-page__head{margin-bottom:24px}.desktop-two-col:has(>.desktop-summary-panel){grid-template-columns:minmax(0, 1fr) var(--summary-panel-width,320px)}.desktop-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.desktop-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}@media (width>=1440px){.desktop-grid-3{grid-template-columns:repeat(4,minmax(0,1fr))}}
diff --git a/dist/assets/index-MldTA0ML.css b/dist/assets/index-MldTA0ML.css
deleted file mode 100644
index 95d5f9f..0000000
--- a/dist/assets/index-MldTA0ML.css
+++ /dev/null
@@ -1 +0,0 @@
-.bottom-nav[data-v-18a88055]{min-height:var(--nav-height);background:var(--color-surface);border-top:1px solid var(--color-border);z-index:100;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0));flex-shrink:0;justify-content:space-around;align-items:flex-end;display:flex}@media (width>=768px){.bottom-nav[data-v-18a88055]{display:none}}.nav-item[data-v-18a88055]{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-radius:10px;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:0;margin:0;padding:4px 2px 2px;transition:color .15s;display:flex;position:relative}.nav-item[data-v-18a88055]:focus,.nav-item[data-v-18a88055]:focus-visible{outline:none}.nav-item.active[data-v-18a88055]{color:var(--color-primary);background:0 0}.nav-item.active .nav-label[data-v-18a88055]{font-weight:700}.nav-item--fab[data-v-18a88055]{color:var(--color-text-muted);justify-content:flex-end}.nav-item--fab.active[data-v-18a88055]{color:var(--color-primary)}.nav-icon[data-v-18a88055]{flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:relative;overflow:visible}.nav-icon--fab[data-v-18a88055]{background:var(--color-primary);color:#fff;width:52px;height:52px;box-shadow:0 6px 16px rgba(var(--color-primary-rgb), .35);border-radius:999px;margin-top:-28px}.nav-label[data-v-18a88055]{white-space:nowrap;font-size:.6875rem;font-weight:500;line-height:1.2}.nav-label--fab[data-v-18a88055]{font-size:.625rem}.nav-badge[data-v-18a88055]{top:-2px;background:var(--color-danger);color:#fff;pointer-events:none;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.625rem;font-weight:700;line-height:1;display:flex;position:absolute;inset-inline-end:-2px}.brand-logo[data-v-b211450b]{object-fit:contain;-webkit-user-select:none;user-select:none;flex-shrink:0;width:auto;display:block}.desktop-sidebar[data-v-a03a8196]{width:var(--sidebar-width);background:var(--color-surface);border-inline-start:1px solid var(--color-border);flex-direction:column;flex-shrink:0;height:100%;padding:0;display:none;overflow-y:auto}@media (width>=768px){.desktop-sidebar[data-v-a03a8196]{display:flex}}.desktop-sidebar__brand[data-v-a03a8196]{height:var(--header-height);min-height:var(--header-height);max-height:var(--header-height);box-sizing:border-box;border-bottom:none;flex-shrink:0;justify-content:flex-start;align-items:center;gap:10px;padding:0 20px;display:flex}@media (width>=1200px){.desktop-sidebar__brand[data-v-a03a8196]{padding:0 28px}}.desktop-sidebar__logo-mark[data-v-a03a8196]{flex-shrink:0}.desktop-sidebar__title[data-v-a03a8196]{color:var(--color-primary);font-size:1rem;font-weight:700;display:block}.desktop-sidebar__nav[data-v-a03a8196]{flex-direction:column;flex:1;gap:4px;padding:12px 12px 0;display:flex}@media (width>=1200px){.desktop-sidebar__nav[data-v-a03a8196]{padding:16px 16px 0}}.desktop-sidebar__item[data-v-a03a8196]{border-radius:var(--radius-md);cursor:pointer;width:100%;color:var(--color-text-secondary);text-align:start;background:0 0;border:none;justify-content:flex-start;align-items:center;gap:12px;padding:11px 12px;transition:background .15s,color .15s;display:flex;position:relative}@media (width>=1200px){.desktop-sidebar__item[data-v-a03a8196]{padding:11px 14px}}.desktop-sidebar__item[data-v-a03a8196]:hover{background:var(--color-elevated);color:var(--color-text)}.desktop-sidebar__item[data-v-a03a8196]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.desktop-sidebar__item.active[data-v-a03a8196]{background:var(--color-primary-soft);color:var(--color-primary);font-weight:600}.desktop-sidebar__item.active .desktop-sidebar__icon[data-v-a03a8196]{color:var(--color-primary)}.desktop-sidebar__icon[data-v-a03a8196]{width:22px;height:22px;color:inherit;flex-shrink:0;justify-content:center;align-items:center;display:flex}.desktop-sidebar__label[data-v-a03a8196]{font-size:.875rem;font-weight:inherit;white-space:nowrap;display:block}.desktop-sidebar__badge[data-v-a03a8196]{background:var(--color-danger);color:var(--color-surface);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;margin-inline-start:auto;padding:0 4px;font-size:.6875rem;font-weight:700;display:flex}.desktop-sidebar__support[data-v-a03a8196]{background:var(--color-primary-soft);border-radius:var(--radius-lg);flex-direction:column;gap:8px;margin:auto 12px 20px;padding:14px;display:flex}@media (width>=1200px){.desktop-sidebar__support[data-v-a03a8196]{margin:auto 16px 24px;padding:16px}}.desktop-sidebar__support-icon[data-v-a03a8196]{background:var(--color-primary);width:36px;height:36px;color:var(--color-surface);border-radius:50%;justify-content:center;align-items:center;display:flex}.desktop-sidebar__support-title[data-v-a03a8196]{color:var(--color-text);font-size:.875rem;font-weight:700}.desktop-sidebar__support-text[data-v-a03a8196]{color:var(--color-text-muted);margin:0;font-size:.6875rem;line-height:1.5}.desktop-sidebar__support-btn[data-v-a03a8196]{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary);text-align:center;margin-top:4px;padding:10px 12px;font-size:.8125rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:block}.desktop-sidebar__support-btn[data-v-a03a8196]:hover{opacity:.9}.auth-theme-toggle[data-v-3a58cb84]{color:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:color .15s;display:inline-flex}.auth-theme-toggle--floating[data-v-3a58cb84]{top:calc(12px + env(safe-area-inset-top,0px));z-index:100;width:40px;height:40px;color:var(--color-text);box-shadow:none;background:0 0;position:fixed;inset-inline-end:16px}.auth-theme-toggle--inline[data-v-3a58cb84]{width:40px;height:40px;color:inherit;flex-shrink:0;position:relative}.auth-theme-toggle[data-v-3a58cb84]:hover{color:var(--color-primary)}.user-avatar[data-v-5c562bf0]{color:inherit;background:#ffffff2e;border-radius:999px;flex-shrink:0;place-items:center;font-weight:700;display:grid;overflow:hidden}.user-avatar__img[data-v-5c562bf0]{object-fit:cover;width:100%;height:100%;display:block}.desktop-header[data-v-d90aac23]{height:var(--header-height);min-height:var(--header-height);max-height:var(--header-height);box-sizing:border-box;background:var(--color-surface);border-bottom:none;flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;padding:0 28px;display:none}@media (width>=768px){.desktop-header[data-v-d90aac23]{padding:0 var(--page-padding);gap:16px;display:flex}}@media (width>=1200px){.desktop-header[data-v-d90aac23]{padding:0 var(--page-padding);gap:24px}}.desktop-header__spacer[data-v-d90aac23]{flex:1;min-width:0}.desktop-header__actions[data-v-d90aac23]{flex-shrink:0;align-items:center;gap:16px;margin-inline-start:auto;display:flex}.desktop-header__company[data-v-d90aac23]{color:var(--color-text-muted);border-inline-end:1px solid var(--color-border);padding-inline-end:8px;font-size:.8125rem;font-weight:600;display:none}@media (width>=992px){.desktop-header__company[data-v-d90aac23]{display:block}}.desktop-header__icon-btn[data-v-d90aac23]{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:40px;height:40px;color:var(--color-text-muted);cursor:pointer;justify-content:center;align-items:center;display:flex;position:relative}.desktop-header__notif-badge[data-v-d90aac23]{top:4px;background:var(--color-danger);min-width:18px;height:18px;color:var(--color-on-primary,#fff);border:2px solid var(--color-surface);border-radius:9px;justify-content:center;align-items:center;padding:0 4px;font-size:.625rem;font-weight:700;display:flex;position:absolute;inset-inline-end:4px}.desktop-header__user-wrap[data-v-d90aac23]{position:relative}.desktop-header__user[data-v-d90aac23]{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;align-items:center;gap:10px;padding:6px 12px 6px 8px;font-family:inherit;display:flex}.desktop-header__avatar[data-v-d90aac23]{background:var(--color-primary);color:var(--color-surface)}.desktop-header__user-name[data-v-d90aac23]{color:var(--color-text);font-size:.875rem;font-weight:600;display:none}@media (width>=1200px){.desktop-header__user-name[data-v-d90aac23]{display:block}}.desktop-header__chevron[data-v-d90aac23]{color:var(--color-text-muted);transform:rotate(-90deg)}.desktop-header__menu[data-v-d90aac23]{top:calc(100% + 6px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:160px;box-shadow:var(--shadow-md);z-index:100;padding:6px;position:absolute;inset-inline-end:0}.desktop-header__menu button[data-v-d90aac23]{text-align:start;cursor:pointer;border-radius:var(--radius-sm);width:100%;color:var(--color-text);background:0 0;border:none;padding:10px 12px;font-family:inherit;font-size:.875rem}.desktop-header__menu button[data-v-d90aac23]:hover{background:var(--color-elevated)}.desktop-header__menu-logout[data-v-d90aac23]{color:var(--color-danger)!important}.btn[data-v-3628a8bb]{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.btn[data-v-3628a8bb]:disabled{opacity:.55;cursor:not-allowed}.btn-block[data-v-3628a8bb]{width:100%}.btn-sm[data-v-3628a8bb]{min-height:36px;padding:0 14px;font-size:.8125rem}.btn-md[data-v-3628a8bb]{min-height:var(--btn-height);padding:0 24px;font-size:.9375rem}.btn-lg[data-v-3628a8bb]{min-height:52px;padding:0 28px;font-size:1rem}.btn-primary[data-v-3628a8bb]{background:var(--color-primary);color:var(--color-surface)}.btn-primary[data-v-3628a8bb]:not(:disabled):hover{background:var(--color-primary-dark)}.btn-secondary[data-v-3628a8bb]{background:var(--color-primary-light);color:var(--color-primary)}.btn-outline[data-v-3628a8bb]{color:var(--color-primary);border:1.5px solid var(--color-primary);background:0 0}.btn-danger[data-v-3628a8bb]{background:var(--color-danger);color:var(--color-surface)}.btn-ghost[data-v-3628a8bb]{color:var(--color-text-muted);background:0 0}.btn-spinner[data-v-3628a8bb]{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.6s linear infinite spin-3628a8bb}@keyframes spin-3628a8bb{to{transform:rotate(360deg)}}.confirm-dialog[data-v-2e50e2a7]{padding:20px}.confirm-dialog__title[data-v-2e50e2a7]{margin:0 0 8px;font-size:1.0625rem;font-weight:700}.confirm-dialog__message[data-v-2e50e2a7]{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.7}.confirm-dialog__actions[data-v-2e50e2a7]{margin-top:20px}@media (width>=768px){.confirm-dialog__actions[data-v-2e50e2a7]{flex-direction:row;justify-content:flex-end}}*,:before,:after,::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.btn-block{width:100%}.page-shell{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.static{position:static}.isolate{isolation:isolate}.grid{display:grid}.inline-grid{display:inline-grid}.m-0{margin:0}.mb-3{margin-bottom:.75rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.inline,.empty-inline:empty{display:inline}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.h-10{height:2.5rem}.h1{height:.25rem}.h2{height:.5rem}.h3{height:.75rem}.min-w-0{min-width:0}.w-10{width:2.5rem}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.table{display:table}.border-collapse{border-collapse:collapse}.transform{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.resize{resize:both}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.b,.border{border-width:1px}.border-t{border-top-width:1px}.border-\[var\(--color-border\)\]{border-color:var(--color-border)}.rounded-\[var\(--radius-md\)\]{border-radius:var(--radius-md)}.rounded-full{border-radius:9999px}.bg-\[var\(--color-primary-soft\)\]{background-color:var(--color-primary-soft)}.bg-\[var\(--color-surface\)\]{background-color:var(--color-surface)}.p-4{padding:1rem}.px{padding-left:1rem;padding-right:1rem}.pt-3{padding-top:.75rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-\[var\(--color-danger\)\]{color:var(--color-danger)}.text-\[var\(--color-primary\)\]{color:var(--color-primary)}.text-\[var\(--color-success\)\]{color:var(--color-success)}.text-\[var\(--color-text-muted\)\],.text-muted{color:var(--color-text-muted)}.text-\[var\(--color-text\)\]{color:var(--color-text)}.text-white{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-relaxed{line-height:1.625}.italic{font-style:italic}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.underline{text-decoration-line:underline}.tab{tab-size:4}.text-shadow{--un-text-shadow:0 0 1px var(--un-text-shadow-color,#0003),0 0 1px var(--un-text-shadow-color,#0100051a);text-shadow:var(--un-text-shadow)}.outline{outline-style:solid}.blur{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.filter{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease,.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)-BLA2CtIC.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Light-B637MNLG.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_UltraLight-hW-WDKY9.woff2)format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Medium-C2CKjrKB.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Medium-C2CKjrKB.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Bold-C8urhp07.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IRANSans;src:url(/assets/IRANSansWeb\(FaNum\)_Black-BFAfOkt4.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}:root{--color-primary:#0a353c;--color-primary-hover:#072a2f;--color-primary-soft:#e8f4f1;--color-primary-dark:#062428;--color-primary-light:#e8f4f1;--color-primary-rgb:10, 53, 60;--color-accent-navy:#0a353c;--color-accent-navy-rgb:10, 53, 60;--color-success:#1b8a5a;--color-success-light:#eaf8f1;--color-success-soft:#eaf8f1;--color-warning:#e8a317;--color-warning-light:#fff6e5;--color-danger:#dc3545;--color-danger-light:#fee2e2;--color-purple:#7c3aed;--color-purple-light:#ede9fe;--color-info:#3b6fa0;--color-info-light:#eef3f7;--color-bg:#f6f8f7;--color-page-background:#f6f8f7;--color-shell-bg:#eef1f0;--color-surface:#fff;--color-border:#e5e9e8;--color-text:#121212;--color-text-primary:#121212;--color-text-muted:#6b7280;--color-text-secondary:#6b7280;--color-tab-inactive-bg:#f1f5f9;--color-tab-inactive-text:#64748b;--color-summary-bg:#f1f5f9;--color-elevated:#fff;--color-brand-warm:#f3ece3;--color-brand-warm-text:#1a202c;--color-brand-warm-muted:#718096;--color-level-gold:#c9a227;--color-level-gold-soft:#f7efd6;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 1px 2px #1018280a;--shadow-md:0 4px 16px #1018280f;--shadow-card:0 1px 2px #1018280a, 0 4px 16px #1018280a;--shadow-frame:0 8px 32px #0f172a1a;--nav-height:64px;--page-padding:16px;--page-padding-tablet:20px;--page-padding-desktop:28px;--page-gap:12px;--content-max-width:1360px;--form-max-width:520px;--auth-form-max-width:440px;--summary-panel-width:320px;--sidebar-width:240px;--sidebar-width-compact:72px;--header-height:70px;--app-shell-breakpoint:768px;--font-family:"IRANSans", "Tahoma", sans-serif;--btn-height:48px;--desktop-breakpoint:1200px}html.dark{--color-primary:#5eb8ad;--color-primary-hover:#7ad0c5;--color-primary-soft:#14353a;--color-primary-dark:#7ad0c5;--color-primary-light:#14353a;--color-primary-rgb:94, 184, 173;--color-accent-navy:#5eb8ad;--color-accent-navy-rgb:94, 184, 173;--color-success:#3dd68c;--color-success-light:#123528;--color-success-soft:#123528;--color-warning:#f5c14a;--color-warning-light:#3a2f14;--color-danger:#f47979;--color-danger-light:#3f1d22;--color-purple:#b39afa;--color-purple-light:#2a2144;--color-info:#7b9cff;--color-info-light:#1b2740;--color-bg:#0b0f14;--color-page-background:#0b0f14;--color-shell-bg:#080b10;--color-surface:#121821;--color-elevated:#1a2230;--color-border:#2a3444;--color-text:#eef2f8;--color-text-primary:#eef2f8;--color-text-muted:#9aa8bc;--color-text-secondary:#9aa8bc;--color-tab-inactive-bg:#1a2230;--color-tab-inactive-text:#9aa8bc;--color-summary-bg:#1a2230;--color-brand-warm:#2a241c;--color-brand-warm-text:#f3ebe0;--color-brand-warm-muted:#b9a88d;--color-level-gold:#e0c35a;--color-level-gold-soft:#3a3420;--shadow-sm:0 1px 2px #00000073;--shadow-md:0 8px 24px #00000073;--shadow-card:0 1px 2px #00000059, 0 8px 24px #00000059;--shadow-frame:0 12px 40px #00000080}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;height:100%;font-size:16px;overflow:hidden}body{font-family:var(--font-family);background:var(--color-shell-bg);color:var(--color-text);direction:rtl;height:100%;margin:0;line-height:1.5;overflow:hidden}#app{height:100dvh;overflow:hidden}*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{width:0;height:0;display:none}a{color:var(--color-primary);text-decoration:none}button,input,select,textarea{font-family:inherit}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;text-align:right}.page{background:var(--color-bg);min-height:0;color:var(--color-text);flex-direction:column;flex:1;padding:0;display:flex;overflow:hidden}.page__scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.page__scroll--with-nav{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.page-title{color:var(--color-text);margin:0 0 4px;font-size:1.25rem;font-weight:700;line-height:1.35}.page-subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.5}.card{background:var(--color-elevated);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);color:var(--color-text);padding:16px}.auth-page{background:0 0}.auth-top{padding:8px var(--page-padding);background:var(--color-surface);grid-template-columns:40px 1fr 40px;align-items:center;gap:4px;display:grid}.auth-top__title{text-align:center;color:var(--color-text);margin:0;font-size:1rem;font-weight:700}.auth-top .icon-btn{cursor:pointer;width:40px;height:40px;color:var(--color-text);background:0 0;border:none;border-radius:12px;place-items:center;padding:0;display:grid}.auth-body{padding:20px var(--page-padding) 32px;background:0 0;flex-direction:column;gap:16px;display:flex}.auth-lead{color:var(--color-text-muted);margin:0;font-size:.875rem;line-height:1.6}.auth-page .card{width:100%;max-width:var(--auth-form-max-width);box-shadow:none;background:0 0;border:none;margin-inline:auto;padding:0}.auth-switch{width:100%;max-width:var(--auth-form-max-width);text-align:center;color:var(--color-text-muted);margin:0 auto;font-size:.875rem}.auth-switch a{color:var(--color-primary);font-weight:700}.auth-page .input,.auth-page .job-select,.auth-page .otp-box{background:var(--color-surface);border:1px solid #eeeef1;border-radius:12px}.auth-page .btn{border-radius:12px}.card+.card{margin-top:var(--page-gap)}.alert{border-radius:var(--radius-sm);padding:12px 14px;font-size:.875rem;line-height:1.5}.alert-info{background:var(--color-primary-light);color:var(--color-primary);border:1px solid #cbd5e1}.alert-warning{background:var(--color-warning-light);color:#9a3412;border:1px solid #fed7aa}.alert-success{background:var(--color-success-light);color:#155724;border:1px solid #c3e6cb}.alert-danger{background:var(--color-danger-light);color:#991b1b;border:1px solid #fecaca}.form-group{margin-bottom:16px}.form-label{color:var(--color-text);margin-bottom:6px;font-size:.875rem;font-weight:600;display:block}.form-hint{color:var(--color-text-muted);margin-top:4px;font-size:.75rem}.divider{background:var(--color-border);height:1px;margin:16px 0}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:.875rem}.text-center{text-align:center}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.flex-between{justify-content:space-between;align-items:center;gap:8px;display:flex}.sticky-footer{bottom:calc(var(--nav-height) + 12px);z-index:50;width:100%;max-width:100%;padding-inline:var(--page-padding);box-sizing:border-box;position:fixed;inset-inline:0}.sticky-footer-inner{max-width:100%}.no-nav .page{padding-bottom:0}.no-nav .sticky-footer{bottom:0}.dialog-overlay{z-index:200;background:#0f172a66;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog-overlay .dialog{width:100%;max-width:400px}.dialog-actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.desktop-only{display:none!important}.mobile-hidden{display:block}.desktop-hidden{display:none!important}@media (width>=768px){.mobile-only,.mobile-block{display:none!important}.desktop-only{display:block!important}.mobile-hidden{display:none!important}.desktop-hidden{display:block!important}.desktop-only-flex{display:flex!important}.desktop-only-grid{display:grid!important}.page{background:0 0;padding:0}.page__scroll--with-nav{padding-bottom:0}}.page-fade-enter-active,.page-fade-leave-active,.page-forward-enter-active,.page-forward-leave-active,.page-back-enter-active,.page-back-leave-active{transition:opacity .22s,transform .22s}.page-fade-enter-from,.page-fade-leave-to{opacity:0}.page-forward-enter-from{opacity:0;transform:translate(-18px)}.page-forward-leave-to{opacity:0;transform:translate(12px)}.page-back-enter-from{opacity:0;transform:translate(18px)}.page-back-leave-to{opacity:0;transform:translate(-12px)}@media (prefers-reduced-motion:reduce){.page-fade-enter-active,.page-fade-leave-active,.page-forward-enter-active,.page-forward-leave-active,.page-back-enter-active,.page-back-leave-active{transition:none}}.app-shell{background:var(--color-shell-bg);width:100%;height:100dvh;display:flex;overflow:hidden}.app-layout{flex-direction:row;width:100%;height:100%;min-height:0;display:flex}.app-frame{background:var(--color-bg);width:100%;height:100%;color:var(--color-text);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.app-main,.app-main__content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.app-content{width:100%;min-height:0;max-width:var(--content-max-width);flex-direction:column;flex:1;margin-inline:auto;padding-inline:0;display:flex;position:relative}.page-transition{flex-direction:column;flex:1;width:100%;min-height:0;display:flex;overflow:hidden}.app-shell--with-nav{justify-content:stretch}.app-shell--with-nav .app-frame{max-width:100%;box-shadow:none;border-radius:0;margin:0}@media (width>=768px){.app-shell--with-nav,.app-shell--with-nav .app-frame{background:var(--color-page-background)}.app-shell--with-nav .app-layout{position:relative}.app-shell--with-nav .app-layout:after{content:"";top:var(--header-height);background:var(--color-border);z-index:30;pointer-events:none;height:1px;position:absolute;inset-inline:0}.app-shell--with-nav .app-main__content{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow:hidden auto}.app-shell--with-nav .app-content,.app-shell--with-nav .page-transition{flex:1 0 auto;min-height:min-content;overflow:visible}.app-shell--with-nav .page-transition>*{flex:1 0 auto;height:auto;min-height:min-content;max-height:none;overflow:visible}}.app-shell--no-nav{background:var(--color-page-background);justify-content:center;align-items:center;padding:16px}.app-shell--no-nav .app-layout{max-width:var(--form-max-width);width:100%;height:auto;min-height:0;max-height:calc(100dvh - 32px);overflow:hidden}.app-shell--no-nav .app-frame{max-width:var(--form-max-width);border-radius:var(--radius-lg);width:100%;height:auto;min-height:0;max-height:calc(100dvh - 32px);box-shadow:var(--shadow-frame);background:var(--color-surface);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;overflow:hidden auto}.app-shell--no-nav .app-main,.app-shell--no-nav .app-main__content,.app-shell--no-nav .app-content,.app-shell--no-nav .page-transition{flex:1 0 auto;height:auto;min-height:min-content;overflow:visible}.app-shell--no-nav .app-content{padding-inline:var(--page-padding)}.app-shell--no-nav .page{background:0 0;min-height:auto;overflow:visible}.app-shell--no-nav.app-shell--wide .app-layout,.app-shell--no-nav.app-shell--wide .app-frame{max-width:min(var(--content-max-width), calc(100vw - 32px))}.app-shell--no-nav.app-shell--wide .app-frame{background:var(--color-bg)}.app-shell--immersive{background:#efe8df;justify-content:stretch;align-items:stretch;padding:0}.app-shell--immersive .app-layout,.app-shell--immersive .app-frame{width:100%;max-width:none;height:100%;max-height:none;box-shadow:none;background:0 0;border-radius:0;overflow:hidden}.app-shell--immersive .app-main,.app-shell--immersive .app-main__content,.app-shell--immersive .app-content,.app-shell--immersive .page-transition{flex:1;height:100%;min-height:0;overflow:hidden}.app-shell--immersive .page-transition{flex-direction:column;display:flex}.app-shell--immersive .page-transition>*{flex:1;height:100%;min-height:0}.app-shell--immersive .app-content{max-width:none;padding-inline:0}.app-shell--immersive .page{background:0 0;height:100%;min-height:0;overflow:hidden}@media (width>=768px){.app-shell--immersive .page{flex:1;max-width:none;height:100%;min-height:0;margin:0;padding:0;overflow:hidden}.app-shell--no-nav{padding:24px}.app-shell--no-nav.app-shell--immersive{background:#141210;justify-content:center;align-items:center;padding:0}.app-shell--no-nav.app-shell--immersive .app-layout,.app-shell--no-nav.app-shell--immersive .app-frame{width:min(100%,430px);max-width:430px;height:100%;max-height:100dvh;box-shadow:none;border-radius:0;margin-inline:auto}.app-shell--no-nav .app-layout,.app-shell--no-nav .app-frame{max-height:calc(100dvh - 48px)}.app-shell--no-nav.app-shell--wide .app-layout,.app-shell--no-nav.app-shell--wide .app-frame{max-width:min(var(--content-max-width), calc(100vw - 48px))}:root{--page-padding:var(--page-padding-tablet);--nav-height:0px}html,body{height:auto;overflow:auto}#app{height:100dvh;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}::-webkit-scrollbar{width:6px;height:6px;display:block}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.sticky-footer{max-width:min(var(--content-max-width), calc(100% - 2 * var(--page-padding)));bottom:0}.no-nav .sticky-footer{bottom:0}.auth-body{align-items:center;padding-block:32px 48px}.auth-lead,.auth-page .card,.auth-switch{width:100%;max-width:var(--auth-form-max-width)}.company-select-page__list{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:20px;display:grid}.company-brand-card{min-height:220px}.catalog-list{gap:var(--page-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.product-list{gap:var(--page-gap);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.product-page__scroll{padding-bottom:88px}.settlement-options,.mode-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:720px;margin-inline:auto;display:grid}.company-select-page{max-width:var(--content-max-width);width:100%;padding-inline:var(--page-padding);margin-inline:auto}.company-select-page__header{max-width:560px;margin-inline:auto}.catalog-page .page__scroll,.orders-page__scroll,.product-page .product-page__scroll{max-width:var(--content-max-width);width:100%;margin-inline:auto}.cart-page{max-width:var(--content-max-width);width:100%;padding-inline:var(--page-padding);margin-inline:auto}.cart-page__body{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) minmax(260px,300px);align-items:start;gap:16px 20px;display:grid}.cart-page__company{grid-column:1/-1;margin-bottom:0;font-size:.9375rem}.cart-page__scroll{grid-column:1;max-height:none;overflow:visible}.cart-page__footer{box-shadow:var(--shadow-md);border-radius:var(--radius-md);border-top:none;border:1px solid var(--color-border);grid-area:1/2/-1;margin:0;padding:16px;position:sticky;top:16px}.cart-table__head{position:static}.check-list-page{max-width:var(--content-max-width);width:100%;padding-inline:var(--page-padding);margin-inline:auto}.check-list-page__scroll{max-width:var(--content-max-width);width:100%;margin-inline:auto}.summary-cards{gap:16px}.checks-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.rass-panel{max-width:480px;margin-inline:auto}.profile-page__scroll{max-width:var(--content-max-width);width:100%;margin-inline:auto}.profile-menu{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.profile-menu__item{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}.order-detail-page__body{-webkit-overflow-scrolling:touch;width:100%;max-width:none;margin-inline:0;overflow-y:auto}.order-detail-page__footer{width:100%;max-width:none;margin-inline:0}.checkout-page__scroll,.cash-page__scroll,.settlement-page__scroll,.check-mode-page__scroll{max-width:var(--form-max-width);width:100%;margin-inline:auto}.cash-page{max-width:var(--content-max-width);width:100%;margin-inline:auto}.cash-page__footer{max-width:var(--form-max-width);width:100%;box-shadow:none;border-top:none;grid-template-columns:1fr 1fr;gap:12px;margin-inline:auto;padding-top:16px;display:grid}.accounts-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.bank-card+.bank-card,.cash-page__submit{margin-top:0}.order-info-card{max-width:520px;margin-inline:auto}.profile-edit-page .page__scroll{max-width:var(--form-max-width);width:100%;margin-inline:auto}.success-page__scroll{max-width:var(--form-max-width);flex-direction:column;align-items:center;width:100%;margin-inline:auto;display:flex}.dialog-overlay .dialog,.dialog-overlay .card.dialog{width:100%;max-width:480px}.dialog-actions{flex-direction:row;justify-content:flex-end}}@media (width>=1200px){:root{--page-padding:var(--page-padding-desktop)}.catalog-list{grid-template-columns:repeat(3,minmax(0,1fr))}.checks-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1440px){.product-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1920px){:root{--content-max-width:1120px}}@media (width>=768px){:root{--page-padding:var(--page-padding-tablet);--nav-height:0px}.page{padding:20px var(--page-padding-tablet) 28px;max-width:var(--content-max-width);background:0 0;flex:1 0 auto;width:100%;min-height:auto;margin-inline:auto;overflow:visible}.page__scroll{flex:none;min-height:auto;overflow:visible}.page__scroll--with-nav{padding-bottom:0}.page-head{margin-bottom:20px}.page-head__title{color:var(--color-text);margin:0 0 4px;font-size:1.25rem;font-weight:700}.page-head__subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem}.orders-page__desktop-head{margin-bottom:20px}.orders-page__desktop-title{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.orders-page__desktop-subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem}.orders-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px;display:grid}.orders-stat-card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);flex-direction:column;align-items:stretch;gap:0;min-height:0;padding:16px 18px 14px;display:flex}.orders-stat-card__head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.orders-stat-card__label{font-size:.8125rem;font-weight:600;line-height:1.4}.orders-stat-card__label--total,.orders-stat-card__label--review{color:var(--color-text)}.orders-stat-card__label--active{color:#ea580c}.orders-stat-card__label--done{color:var(--color-success)}.orders-stat-card__value{color:var(--color-text);font-variant-numeric:tabular-nums;margin:0 0 12px;font-size:1.75rem;font-weight:700;line-height:1.15}.orders-stat-card__link{color:var(--color-primary);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-self:flex-start;margin-top:auto;padding:0;font-family:inherit;font-size:.8125rem;font-weight:600;text-decoration:underline}.orders-stat-card__link:hover{color:var(--color-primary-hover)}.orders-stat-card__icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.orders-stat-card__icon--total,.orders-stat-card__icon--review{background:var(--color-primary-soft);color:var(--color-primary)}.orders-stat-card__icon--active{background:var(--color-warning-light);color:#ea580c}.orders-stat-card__icon--done{background:var(--color-success-soft);color:var(--color-success)}.orders-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.orders-toolbar__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.orders-toolbar__filter-btn{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:8px;height:40px;padding:0 18px;font-family:inherit;font-size:.875rem;font-weight:600;display:inline-flex}.orders-toolbar__filter-btn:hover{background:var(--color-primary-hover)}.orders-toolbar__pills{flex-wrap:wrap;flex:1;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.orders-filter-pill{border:1px solid var(--color-border);background:var(--color-surface);height:36px;color:var(--color-text-muted);cursor:pointer;white-space:nowrap;border-radius:999px;padding:0 16px;font-family:inherit;font-size:.8125rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.orders-filter-pill:hover{color:var(--color-text);border-color:#cbd5e1}.orders-filter-pill--active{background:var(--color-primary-soft);color:var(--color-primary);border-color:#c7d7ff;font-weight:600}.orders-table-wrap{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-card);overflow:hidden}.orders-table-scroll{overflow-x:auto}.orders-table{border-collapse:collapse;width:100%;min-width:720px;font-size:.875rem}.orders-table th{text-align:start;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:14px 16px;font-size:.8125rem;font-weight:600}.orders-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;background:var(--color-surface);padding:16px}.orders-table tr:last-child td{border-bottom:none}.orders-table tbody tr:hover td{background:var(--color-elevated)}.orders-table__number{color:var(--color-text);white-space:nowrap;font-weight:700}.orders-table__amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.orders-table__date{color:var(--color-text-muted);white-space:nowrap;font-size:.8125rem}.orders-table__actions{align-items:center;gap:8px;display:flex}.orders-table__action{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-primary);cursor:pointer;white-space:nowrap;padding:7px 16px;font-family:inherit;font-size:.8125rem;font-weight:600}.orders-table__action:hover{background:var(--color-primary-soft);border-color:#c7d7ff}.orders-table__menu{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.orders-table__menu:hover{background:var(--color-elevated);color:var(--color-text)}.orders-pagination{border-top:1px solid var(--color-border);color:var(--color-text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;font-size:.8125rem;display:flex}.orders-pagination__summary{white-space:nowrap}.orders-pagination__controls{align-items:center;gap:4px;display:flex}.orders-pagination__arrow{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;width:32px;height:32px;color:var(--color-text);justify-content:center;align-items:center;padding:0;display:flex}.orders-pagination__arrow:disabled{opacity:.4;cursor:not-allowed}.orders-pagination__arrow:not(:disabled):hover{border-color:var(--color-primary);color:var(--color-primary)}.orders-pagination__arrow-icon--prev{transform:scaleX(-1)}.orders-pagination__arrow-icon--next{transform:none}.orders-pagination__ellipsis{text-align:center;min-width:24px;color:var(--color-text-muted)}.orders-pagination__page{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;min-width:32px;height:32px;color:var(--color-text);padding:0 6px;font-family:inherit;font-size:.8125rem}.orders-pagination__page:hover:not(.orders-pagination__page--active){border-color:var(--color-primary);color:var(--color-primary)}.orders-pagination__page--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.product-page__layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}.product-page__main{min-width:0}.product-page__sidebar{position:sticky;top:16px}.cart-summary-panel{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-card);padding:20px}.cart-summary-panel__title{color:var(--color-text);border-bottom:1px solid var(--color-border);margin:0 0 16px;padding-bottom:12px;font-size:.9375rem;font-weight:700}.cart-summary-panel__row{justify-content:space-between;align-items:center;padding:8px 0;font-size:.875rem;display:flex}.cart-summary-panel__row span:first-child{color:var(--color-text-muted)}.cart-summary-panel__row strong{color:var(--color-text)}.cart-summary-panel__btn{margin-top:16px}.product-page__scroll{padding-bottom:0}.product-page .sticky-footer{display:none}.product-list{grid-template-columns:repeat(2,minmax(0,1fr))}.cart-page{max-width:var(--content-max-width);padding:20px var(--page-padding-tablet) 28px;background:0 0;margin-inline:auto}.cart-page__desktop-title{margin:0 0 16px;font-size:1.25rem;font-weight:700}.cart-page__body{grid-template-columns:minmax(0,1fr) minmax(280px,320px);align-items:start;gap:20px 24px;display:grid}.cart-page__company{grid-column:1/-1}.order-detail-page{max-width:none;padding:24px var(--page-padding) 32px;background:0 0;height:100%;margin-inline:0;overflow:hidden}.order-detail-back{color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:12px;padding:0;font-family:inherit;font-size:.875rem;font-weight:600;display:inline-flex}.company-select-page{max-width:var(--content-max-width);padding:24px var(--page-padding-desktop);background:0 0;margin-inline:auto}.catalog-page{background:0 0}.page.calite-detail,.page.calite-hub{background:#f4f0ed;max-width:none;padding:0;overflow:visible}.catalog-list{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-page{background:0 0}.profile-hero{border-radius:var(--radius-md);margin-inline:0}}@media (width>=1200px){:root{--page-padding:var(--page-padding-desktop)}.page{padding:24px var(--page-padding-desktop) 32px}.page.calite-detail,.page.calite-hub{padding:0}.orders-stats{gap:16px;margin-bottom:24px}.orders-page__desktop-head{margin-bottom:24px}.orders-toolbar{margin-bottom:20px}.catalog-list{grid-template-columns:repeat(3,minmax(0,1fr))}.product-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=768px){.desktop-page{width:100%;min-height:auto;max-width:var(--content-max-width);padding:20px var(--page-padding) 28px;box-sizing:border-box;background:0 0;flex-direction:column;flex:1 0 auto;margin-inline:auto;display:flex}.desktop-page__head{margin-bottom:20px}.desktop-page__title{color:var(--color-text);margin:0 0 6px;font-size:1.375rem;font-weight:700}.desktop-page__subtitle{color:var(--color-text-muted);margin:0;font-size:.875rem}.desktop-two-col{grid-template-columns:minmax(0,1fr);align-items:start;gap:24px;display:grid}.desktop-two-col__main{min-width:0}.desktop-summary-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:20px;position:sticky;top:16px}.desktop-summary-panel__title{border-bottom:1px solid var(--color-border);margin:0 0 16px;padding-bottom:12px;font-size:.9375rem;font-weight:700}.desktop-summary-panel__row{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:.875rem;display:flex}.desktop-summary-panel__row span:first-child{color:var(--color-text-muted)}.desktop-summary-panel__row strong{color:var(--color-text);font-variant-numeric:tabular-nums}.desktop-summary-panel__action{margin-top:16px}.desktop-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);width:100%;min-width:0;overflow:hidden}.desktop-table-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overflow-x:auto}.desktop-table{border-collapse:collapse;width:100%;min-width:560px;font-size:.875rem}.desktop-table th{text-align:start;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:12px 16px;font-size:.8125rem;font-weight:600}.desktop-table td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;background:var(--color-surface);padding:14px 16px}.desktop-table tbody tr:last-child td{border-bottom:none}.desktop-table tbody tr:hover td{background:var(--color-elevated)}.desktop-grid-2{grid-template-columns:repeat(2,minmax(280px,1fr));gap:16px;display:grid}.desktop-grid-3{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.desktop-grid-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.desktop-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.desktop-toolbar__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.desktop-btn-compact{min-width:120px;width:auto!important;padding-inline:20px!important}.desktop-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.desktop-form-grid__full{grid-column:1/-1}.desktop-checkout-shell{width:100%;max-width:var(--content-max-width);padding:20px var(--page-padding) 28px;box-sizing:border-box;margin-inline:auto}.desktop-settlement-grid{grid-template-columns:repeat(2,minmax(280px,380px));justify-content:center;gap:20px;max-width:820px;margin-inline:auto;display:grid}.desktop-company-grid{grid-template-columns:repeat(2,minmax(280px,400px));justify-content:center;gap:20px;width:100%;max-width:900px;margin-inline:auto;display:grid}}@media (width>=1200px){.desktop-page,.desktop-checkout-shell{padding:24px var(--page-padding) 32px}.desktop-page__head{margin-bottom:24px}.desktop-two-col:has(>.desktop-summary-panel){grid-template-columns:minmax(0, 1fr) var(--summary-panel-width,320px)}.desktop-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.desktop-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}@media (width>=1440px){.desktop-grid-3{grid-template-columns:repeat(4,minmax(0,1fr))}}
diff --git a/dist/assets/index-spodxsRN.js b/dist/assets/index-spodxsRN.js
new file mode 100644
index 0000000..52c7273
--- /dev/null
+++ b/dist/assets/index-spodxsRN.js
@@ -0,0 +1,2 @@
+const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/WelcomeView-CIX4mZos.js","assets/BasicIcon-C6boaehV.js","assets/BasicIcon-QF_b9Svq.css","assets/login-fabric-CzrIXTnD.js","assets/WelcomeView-Bue6hk9x.css","assets/LoginView-D2VsOVrb.js","assets/http-BC1hNfZ4.js","assets/format-BHJptHdF.js","assets/validation-BD7oi-2I.js","assets/FormErrorBanner-CjdBfIQT.js","assets/FormErrorBanner-Hje8L-00.css","assets/IconPhone-C0bnM4fV.js","assets/formErrors-DglFjYkZ.js","assets/LoginView-a5WOmvO4.css","assets/RegisterView-Cjx6Gvgv.js","assets/dist-B7sUlTMM.js","assets/dist-CUUvbY4x.js","assets/IconDiamond-Bgv1zgqc.js","assets/RegisterView-CTzyNknX.css","assets/OtpView-GOSd36OA.js","assets/IconChevronBack-DORV2H0q.js","assets/IconEditPen-DLV3_yq2.js","assets/OtpView-D50bP3mT.css","assets/HomeView-DKOvriis.js","assets/PageSkeleton-uO-jhbNm.js","assets/PageSkeleton-BAjL8n2H.css","assets/crm-CtglbPsN.js","assets/useGoBack-CgNp0uP9.js","assets/IconHeart-CZMe29Nz.js","assets/HomeView-EA-z_Eo2.css","assets/CompanySelectView-BTxwZIWf.js","assets/catalog-s7nVUdlj.js","assets/IconFamBaftLogo-BaP40Dff.js","assets/IconFamBaftLogo-BaDEschB.css","assets/CompanySelectView-wH7uHLvB.css","assets/CategoriesView-CmgGNUmK.js","assets/IconLayoutGrid-E-Q8Z5rF.js","assets/IconSearch-DOnq8ybc.js","assets/IconShoppingBag-Bq21_Txe.js","assets/CategoriesView-DsmvNfMp.css","assets/ProductsView-B4EcZOo9.js","assets/IconFilter-D9NdLZ7w.js","assets/colorSwatch-BgOH1LE5.js","assets/PageHeader-BaJqBjIW.js","assets/PageHeader-CDhs0XKF.css","assets/SearchField-Dx2PcshV.js","assets/SearchField-BGmIHecn.css","assets/ProductsView-MAdd0_sK.css","assets/ProductDetailView-D1OzQiiN.js","assets/IconShare-1kao-fAR.js","assets/ProductDetailView-xdAl3zfq.css","assets/CatalogsHubView-CNo_eP3-.js","assets/catalogGallery-DMNB35I1.js","assets/CatalogsHubView-Cnl22g6I.css","assets/CatalogDetailView-BL7FIVct.js","assets/CatalogDetailView-jzLLMDJe.css","assets/CatalogRequestView-DJSH6bVf.js","assets/catalogRequests-D1kBtGqL.js","assets/CatalogRequestView-BZ3G_4yn.css","assets/CatalogRequestsView-DKI4qAxI.js","assets/CatalogRequestsView-DUzaL-Pf.css","assets/FavoritesView-BMYycFs8.js","assets/FavoritesView-C_rd5Wxy.css","assets/CustomersView-C8PSBTXL.js","assets/CustomersView-CmCf2GQT.css","assets/CustomerCreateView-jg0OBdWH.js","assets/BaseInput-qoEXOHCQ.js","assets/BaseInput-Dxl7Obd8.css","assets/CustomerCreateView-xAy0nFXT.css","assets/CustomerDetailView-Br6csGlE.js","assets/constants-DXXK14Zz.js","assets/IconClipboardEmpty-5Av_Gh0W.js","assets/IconMail-wulYTzHn.js","assets/CustomerDetailView-Baj8nbYX.css","assets/MeetingReportView-WBp3aKwI.js","assets/IconCheckCircleOutline-Bx3NxSDX.js","assets/MeetingReportView-clcxg22r.css","assets/RemindersView-DIKKpasp.js","assets/IconMoreVertical-BPkOm_2U.js","assets/RemindersView-DX3323vn.css","assets/ReminderDetailView-CQX6_0TU.js","assets/ReminderDetailView-CRDCge09.css","assets/CatalogListView-C_xOF3_z.js","assets/EmptyState-C_QQeA_h.js","assets/EmptyState-D6A5GmrP.css","assets/CatalogListView-ClQNdMb8.css","assets/CartView-C0jwRPr9.js","assets/CheckoutStepper-CqUviuW7.js","assets/CheckoutStepper-hqk-kVCz.css","assets/CartView-7hxFuJin.css","assets/OrdersView-DAbh5y-5.js","assets/OrdersView-Te_tCICZ.css","assets/OrderDetailView-BG1gJZnJ.js","assets/orderInvoice-B0L1Aeuk.js","assets/PersianDateInput-5iA_raeL.js","assets/PersianDateInput-MG7uK7zm.css","assets/OrderDetailView-DfQWMJF8.css","assets/OrderSuccessView-DAGntLe0.js","assets/OrderSuccessView-D_odiYNR.css","assets/SettlementTypeView-CNPLLs4b.js","assets/useRequirePricedOrder-BBPnO4DF.js","assets/IconCheckBook-DwIUojJc.js","assets/SettlementTypeView-C3wqclvS.css","assets/CashSettlementView-Clk-HI89.js","assets/CashSettlementView-C8IRazOR.css","assets/CheckModeSelectView-C8EtFh3p.js","assets/CheckModeSelectView-BZlKzxFL.css","assets/CheckFormView-CVv1VLYW.js","assets/CheckFormView-Cgp6kUZ2.css","assets/CheckListView-DkR4Ltru.js","assets/CheckListView-B_ogsKeK.css","assets/ProfileView-DAXufKBC.js","assets/ProfileView-D8tUQfUl.css","assets/ProfileEditView-dnVuGX6w.js","assets/ProfileSubpageLayout-PN2YWH-s.js","assets/ProfileSubpageLayout-W3vfIprY.css","assets/ProfileEditView-Cqvr3yiG.css","assets/ProfileSecurityView-KJcwzopX.js","assets/ProfileSecurityView-BjbybMSz.css","assets/ProfileNotificationsView-BDtqUYZj.js","assets/ProfileNotificationsView-CTp2kqLW.css","assets/ProfileDisplayView-ufvTk2u8.js","assets/ProfileDisplayView-CDaE5E6F.css","assets/ProfileChecksView-wOLfVfr3.js"])))=>i.map(i=>d[i]);
+import{A as e,Ct as t,D as n,Et as r,G as i,H as a,L as o,M as s,N as c,O as l,P as u,Q as d,R as f,St as p,Tt as m,W as h,X as g,Y as _,Z as v,_ as y,_t as ee,a as b,c as x,d as S,et as C,f as w,ft as T,g as te,h as ne,ht as re,i as E,j as D,l as O,m as ie,mt as k,n as A,nt as ae,o as j,p as oe,q as se,r as ce,rt as M,s as N,t as P,tt as le,u as ue,v as F,x as de,y as fe,z as I}from"./BasicIcon-C6boaehV.js";import{a as pe,i as L,n as R,o as z,r as B,s as V,t as H}from"./http-BC1hNfZ4.js";import{l as me}from"./dist-CUUvbY4x.js";import{i as he,r as ge}from"./dist-B7sUlTMM.js";import{_ as _e,c as ve,s as ye,t as be,u as xe,v as Se}from"./format-BHJptHdF.js";import{r as Ce}from"./validation-BD7oi-2I.js";import{t as U}from"./catalog-s7nVUdlj.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var W=typeof document<`u`,we=/#/g,Te=/&/g,Ee=/\//g,De=/=/g,Oe=/\?/g,ke=/\+/g,Ae=/%5B/g,je=/%5D/g,Me=/%5E/g,Ne=/%60/g,Pe=/%7B/g,Fe=/%7C/g,Ie=/%7D/g,Le=/%20/g;function Re(e){return e==null?``:encodeURI(``+e).replace(Fe,`|`).replace(Ae,`[`).replace(je,`]`)}function ze(e){return Re(e).replace(Pe,`{`).replace(Ie,`}`).replace(Me,`^`)}function Be(e){return Re(e).replace(ke,`%2B`).replace(Le,`+`).replace(we,`%23`).replace(Te,`%26`).replace(Ne,"`").replace(Pe,`{`).replace(Ie,`}`).replace(Me,`^`)}function Ve(e){return Be(e).replace(De,`%3D`)}function He(e){return Re(e).replace(we,`%23`).replace(Oe,`%3F`)}function Ue(e){return He(e).replace(Ee,`%2F`)}function We(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Ge=/\/$/,Ke=e=>e.replace(Ge,``);function qe(e,t,n=`/`){let r,i={},a=``,o=``,s=t.indexOf(`#`),c=t.indexOf(`?`);return c=s>=0&&c>s?-1:c,c>=0&&(r=t.slice(0,c),a=t.slice(c,s>0?s:t.length),i=e(a.slice(1))),s>=0&&(r||=t.slice(0,s),o=t.slice(s,t.length)),r=et(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:We(o)}}function Je(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function Ye(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function Xe(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&G(t.matched[r],n.matched[i])&&Ze(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function G(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Ze(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Qe(e[n],t[n]))return!1;return!0}function Qe(e,t){return j(e)?$e(e,t):j(t)?$e(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function $e(e,t){return j(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function et(e,t){if(e.startsWith(`/`))return e;if(!e)return t;let n=t.split(`/`),r=e.split(`/`),i=r[r.length-1];(i===`..`||i===`.`)&&r.push(``);let a=n.length-1,o,s;for(o=0;o1&&a--;else break;return n.slice(0,a).join(`/`)+`/`+r.slice(o).join(`/`)}var K={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function tt(e){if(!e)if(W){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),Ke(e)}var nt=/^[^#]+#/;function rt(e,t){return e.replace(nt,`#`)+t}function it(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var at=()=>({left:window.scrollX,top:window.scrollY});function ot(e){let t;if(`el`in e){let n=e.el,r=typeof n==`string`&&n.startsWith(`#`),i=typeof n==`string`?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=it(i,e)}else t=e;`scrollBehavior`in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left==null?window.scrollX:t.left,t.top==null?window.scrollY:t.top)}function st(e,t){return(history.state?history.state.position-t:-1)+e}var ct=new Map;function lt(e,t){ct.set(e,t)}function ut(e){let t=ct.get(e);return ct.delete(e),t}function dt(e){return typeof e==`string`||e&&typeof e==`object`}function ft(e){return typeof e==`string`||typeof e==`symbol`}function pt(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Be(e)):[r&&Be(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function ht(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=j(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function q(){let e=[];function t(t){return e.push(t),()=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function J(e,t,n,r,i,a=e=>e()){let o=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((s,c)=>{let l=e=>{e===!1?c(b(4,{from:n,to:t})):e instanceof Error?c(e):dt(e)?c(b(2,{from:t,to:e})):(o&&r.enterCallbacks[i]===o&&typeof e==`function`&&o.push(e),s())},u=a(()=>e.call(r&&r.instances[i],t,n,l)),d=Promise.resolve(u);e.length<3&&(d=d.then(l)),d.catch(e=>c(e))})}function gt(e,t,n,r,i=e=>e()){let a=[];for(let o of e)for(let e in o.components){let s=o.components[e];if(!(t!==`beforeRouteEnter`&&!o.instances[e]))if(O(s)){let c=(s.__vccOpts||s)[t];c&&a.push(J(c,n,r,o,e,i))}else{let c=s();a.push(()=>c.then(a=>{if(!a)throw Error(`Couldn't resolve component "${e}" at "${o.path}"`);let s=N(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&J(c,n,r,o,e,i)()}))}}return a}function _t(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oG(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>G(e,s))||i.push(s))}return[n,r,i]}var vt=()=>location.protocol+`//`+location.host;function yt(e,t){let{pathname:n,search:r,hash:i}=t,a=e.indexOf(`#`);if(a>-1){let t=i.includes(e.slice(a))?e.slice(a).length:1,n=i.slice(t);return n[0]!==`/`&&(n=`/`+n),Ye(n,``)}return Ye(n,e)+r+i}function bt(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=yt(e,location),c=n.value,l=t.value,u=0;if(a){if(n.value=s,t.value=a,o&&o===c){o=null;return}u=l?a.position-l.position:0}else r(s);i.forEach(e=>{e(n.value,c,{delta:u,type:`pop`,direction:u?u>0?`forward`:`back`:``})})};function c(){o=n.value}function l(e){i.push(e);let t=()=>{let t=i.indexOf(e);t>-1&&i.splice(t,1)};return a.push(t),t}function u(){if(document.visibilityState===`hidden`){let{history:e}=window;if(!e.state)return;e.replaceState(E({},e.state,{scroll:at()}),``)}}function d(){for(let e of a)e();a=[],window.removeEventListener(`popstate`,s),window.removeEventListener(`pagehide`,u),document.removeEventListener(`visibilitychange`,u)}return window.addEventListener(`popstate`,s),window.addEventListener(`pagehide`,u),document.addEventListener(`visibilitychange`,u),{pauseListeners:c,listen:l,destroy:d}}function xt(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?at():null}}function St(e){let{history:t,location:n}=window,r={value:yt(e,n)},i={value:t.state};i.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(r,a,o){let s=e.indexOf(`#`),c=s>-1?(n.host&&document.querySelector(`base`)?e:e.slice(s))+r:vt()+e+r;try{t[o?`replaceState`:`pushState`](a,``,c),i.value=a}catch(e){console.error(e),n[o?`replace`:`assign`](c)}}function o(e,n){a(e,E({},t.state,xt(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=E({},i.value,t.state,{forward:e,scroll:at()});a(o.current,o,!0),a(e,E({},xt(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Ct(e){e=tt(e);let t=St(e),n=bt(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=E({location:``,base:e,go:r,createHref:rt.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}var wt={type:0,value:``},Tt=/[a-zA-Z0-9_]/;function Et(e){if(!e)return[[]];if(e===`/`)return[[wt]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=0,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===0?a.push({type:0,value:l}):n===1||n===2||n===3?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:l,regexp:u,repeatable:c===`*`||c===`+`,optional:c===`*`||c===`?`})):t(`Invalid state to consume buffer`),``)}function f(){l+=c}for(;st.length?t.length===1&&t[0]===80?1:-1:0}function Mt(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var Pt={strict:!1,end:!0,sensitive:!1};function Ft(e,t,n){let r=At(Et(e.path),n),i=E(r,{record:e,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function It(e,t){let n=[],r=new Map;t=S(Pt,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=Rt(e);s.aliasOf=r&&r.record;let l=S(t,e),u=[s];if(`alias`in e){let t=typeof e.alias==`string`?[e.alias]:e.alias;for(let e of t)u.push(Rt(E({},s,{components:r?r.record.components:s.components,path:e,aliasOf:r?r.record:s})))}let d,f;for(let t of u){let{path:u}=t;if(n&&u[0]!==`/`){let e=n.record.path,r=e[e.length-1]===`/`?``:`/`;t.path=n.record.path+(u&&r+u)}if(d=Ft(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!Bt(d)&&o(e.name)),Wt(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:w}function o(e){if(ft(e)){let t=r.get(e);t&&(r.delete(e),n.splice(n.indexOf(t),1),t.children.forEach(o),t.alias.forEach(o))}else{let t=n.indexOf(e);t>-1&&(n.splice(t,1),e.record.name&&r.delete(e.record.name),e.children.forEach(o),e.alias.forEach(o))}}function s(){return n}function c(e){let t=Ht(e,n);n.splice(t,0,e),e.record.name&&!Bt(e)&&r.set(e.record.name,e)}function l(e,t){let i,a={},o,s;if(`name`in e&&e.name){if(i=r.get(e.name),!i)throw b(1,{location:e});s=i.record.name,a=E(Lt(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&Lt(e.params,i.keys.map(e=>e.name))),o=i.stringify(a)}else if(e.path!=null)o=e.path,i=n.find(e=>e.re.test(o)),i&&(a=i.parse(o),s=i.record.name,i.keys.forEach(e=>{e.optional&&!a[e.name]&&delete a[e.name]}));else{if(i=t.name?r.get(t.name):n.find(e=>e.re.test(t.path)),!i)throw b(1,{location:e,currentLocation:t});s=i.record.name,a=E({},t.params,e.params),o=i.stringify(a)}let c=[],l=i;for(;l;)c.unshift(l.record),l=l.parent;return{name:s,path:o,params:a,matched:c,meta:Vt(c)}}e.forEach(e=>a(e));function u(){n.length=0,r.clear()}return{addRoute:a,resolve:l,removeRoute:o,clearRoutes:u,getRoutes:s,getRecordMatcher:i}}function Lt(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Rt(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:zt(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:`components`in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function zt(e){let t={},n=e.props||!1;if(`component`in e)t.default=n;else for(let r in e.components)t[r]=typeof n==`object`?n[r]:n;return t}function Bt(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Vt(e){return e.reduce((e,t)=>E(e,t.meta),{})}function Ht(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;Mt(e,t[i])<0?r=i:n=i+1}let i=Ut(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function Ut(e){let t=e;for(;t=t.parent;)if(Wt(t)&&Mt(e,t)===0)return t}function Wt({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Gt(t){let n=h(ie),r=h(oe),i=e(()=>{let e=p(t.to);return n.resolve(e)}),a=e(()=>{let{matched:e}=i.value,{length:t}=e,n=e[t-1],a=r.matched;if(!n||!a.length)return-1;let o=a.findIndex(G.bind(null,n));if(o>-1)return o;let s=Xt(e[t-2]);return t>1&&Xt(n)===s&&a[a.length-1].path!==s?a.findIndex(G.bind(null,e[t-2])):o}),o=e(()=>a.value>-1&&Yt(r.params,i.value.params)),s=e(()=>a.value>-1&&a.value===r.matched.length-1&&Ze(r.params,i.value.params));function c(e={}){if(Jt(e)){let e=n[p(t.replace)?`replace`:`push`](p(t.to)).catch(w);return t.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>e),e}return Promise.resolve()}return{route:i,href:e(()=>i.value.href),isActive:o,isExactActive:s,navigate:c}}function Kt(e){return e.length===1?e[0]:e}var qt=I({name:`RouterLink`,compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:`page`},viewTransition:Boolean},useLink:Gt,setup(t,{slots:n}){let r=T(Gt(t)),{options:i}=h(ie),o=e(()=>({[Zt(t.activeClass,i.linkActiveClass,`router-link-active`)]:r.isActive,[Zt(t.exactActiveClass,i.linkExactActiveClass,`router-link-exact-active`)]:r.isExactActive}));return()=>{let e=n.default&&Kt(n.default(r));return t.custom?e:a(`a`,{"aria-current":r.isExactActive?t.ariaCurrentValue:null,href:r.href,onClick:r.navigate,class:o.value},e)}}});function Jt(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&(e.button===void 0||e.button===0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute(`target`);if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Yt(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!j(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function Xt(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var Zt=(e,t,n)=>e??t??n,Qt=I({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(t,{attrs:n,slots:r}){let i=h(ne),o=e(()=>t.route||i.value),s=h(F,0),c=e(()=>{let e=p(s),{matched:t}=o.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),l=e(()=>o.value.matched[c.value]);g(F,e(()=>c.value+1)),g(ue,l),g(ne,o);let u=k();return le(()=>[u.value,l.value,t.name],([e,t,n],[r,i,a])=>{t&&(t.instances[n]=e,i&&i!==t&&e&&e===r&&(t.leaveGuards.size||(t.leaveGuards=i.leaveGuards),t.updateGuards.size||(t.updateGuards=i.updateGuards))),e&&t&&(!i||!G(t,i)||!r)&&(t.enterCallbacks[n]||[]).forEach(t=>t(e))},{flush:`post`}),()=>{let e=o.value,i=t.name,s=l.value,c=s&&s.components[i];if(!c)return $t(r.default,{Component:c,route:e});let d=s.props[i],f=d?d===!0?e.params:typeof d==`function`?d(e):d:null,p=a(c,E({},f,n,{onVnodeUnmounted:e=>{e.component.isUnmounted&&(s.instances[i]=null)},ref:u}));return $t(r.default,{Component:p,route:e})||p}}});function $t(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var en=Qt;function tn(e){let t=It(e.routes,e),n=e.parseQuery||pt,r=e.stringifyQuery||mt,a=e.history,o=q(),s=q(),c=q(),l=ee(K),u=K;W&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let d=ce.bind(null,e=>``+e),f=ce.bind(null,Ue),m=ce.bind(null,We);function h(e,n){let r,i;return ft(e)?(r=t.getRecordMatcher(e),i=n):i=e,t.addRoute(i,r)}function g(e){let n=t.getRecordMatcher(e);n&&t.removeRoute(n)}function _(){return t.getRoutes().map(e=>e.record)}function v(e){return!!t.getRecordMatcher(e)}function y(e,i){if(i=E({},i||l.value),typeof e==`string`){let r=qe(n,e,i.path),o=t.resolve({path:r.path},i),s=a.createHref(r.fullPath);return E(r,o,{params:m(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=E({},e,{path:qe(n,e.path,i.path).path});else{let t=E({},e.params);for(let e in t)t[e]??delete t[e];o=E({},e,{params:f(t)}),i.params=f(i.params)}let s=t.resolve(o,i),c=e.hash||``;s.params=d(m(s.params));let u=Je(r,E({},e,{hash:ze(c),path:s.path})),p=a.createHref(u);return E({fullPath:u,hash:c,query:r===mt?ht(e.query):e.query||{}},s,{redirectedFrom:void 0,href:p})}function S(e){return typeof e==`string`?qe(n,e,l.value.path):E({},e)}function C(e,t){if(u!==e)return b(8,{from:t,to:e})}function T(e){return O(e)}function te(e){return T(E(S(e),{replace:!0}))}function D(e,t){let n=e.matched[e.matched.length-1];if(n&&n.redirect){let{redirect:r}=n,i=typeof r==`function`?r(e,t):r;return typeof i==`string`&&(i=i.includes(`?`)||i.includes(`#`)?i=S(i):{path:i},i.params={}),E({query:e.query,hash:e.hash,params:i.path==null?e.params:{}},i)}}function O(e,t){let n=u=y(e),i=l.value,a=e.state,o=e.force,s=e.replace===!0,c=D(n,i);if(c)return O(E(S(c),{state:typeof c==`object`?E({},a,c.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&Xe(r,i,n)&&(f=b(16,{to:d,from:i}),pe(i,i,!0,!1)),(f?Promise.resolve(f):ae(d,i)).catch(e=>x(e)?x(e,2)?e:I(e):de(e,d,i)).then(e=>{if(e){if(x(e,2))return O(E({replace:s},S(e.to),{state:typeof e.to==`object`?E({},a,e.to.state):a,force:o}),t||d)}else e=M(d,i,!0,s,a);return se(d,i,e),e})}function k(e,t){let n=C(e,t);return n?Promise.reject(n):Promise.resolve()}function A(e){let t=z.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function ae(e,t){let n,[r,i,a]=_t(e,t);n=gt(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(J(r,e,t))});let c=k.bind(null,e,t);return n.push(c),V(n).then(()=>{n=[];for(let r of o.list())n.push(J(r,e,t));return n.push(c),V(n)}).then(()=>{n=gt(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(J(r,e,t))});return n.push(c),V(n)}).then(()=>{n=[];for(let r of a)if(r.beforeEnter)if(j(r.beforeEnter))for(let i of r.beforeEnter)n.push(J(i,e,t));else n.push(J(r.beforeEnter,e,t));return n.push(c),V(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=gt(a,`beforeRouteEnter`,e,t,A),n.push(c),V(n))).then(()=>{n=[];for(let r of s.list())n.push(J(r,e,t));return n.push(c),V(n)}).catch(e=>x(e,8)?e:Promise.reject(e))}function se(e,t,n){c.list().forEach(r=>A(()=>r(e,t,n)))}function M(e,t,n,r,i){let o=C(e,t);if(o)return o;let s=t===K,c=W?history.state:{};n&&(r||s?a.replace(e.fullPath,E({scroll:s&&c&&c.scroll},i)):a.push(e.fullPath,i)),l.value=e,pe(e,t,n,s),I()}let N;function P(){N||=a.listen((e,t,n)=>{if(!B.listening)return;let r=y(e),i=D(r,B.currentRoute.value);if(i){O(E(i,{replace:!0,force:!0}),r).catch(w);return}u=r;let o=l.value;W&<(st(o.fullPath,n.delta),at()),ae(r,o).catch(e=>x(e,12)?e:x(e,2)?(O(E(S(e.to),{force:!0}),r).then(e=>{x(e,20)&&!n.delta&&n.type===`pop`&&a.go(-1,!1)}).catch(w),Promise.reject()):(n.delta&&a.go(-n.delta,!1),de(e,r,o))).then(e=>{e||=M(r,o,!1),e&&(n.delta&&!x(e,8)?a.go(-n.delta,!1):n.type===`pop`&&x(e,20)&&a.go(-1,!1)),se(r,o,e)}).catch(w)})}let le=q(),ue=q(),F;function de(e,t,n){I(e);let r=ue.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function fe(){return F&&l.value!==K?Promise.resolve():new Promise((e,t)=>{le.add([e,t])})}function I(e){return F||(F=!e,P(),le.list().forEach(([t,n])=>e?n(e):t()),le.reset()),e}function pe(t,n,r,a){let{scrollBehavior:o}=e;if(!W||!o)return Promise.resolve();let s=!r&&ut(st(t.fullPath,0))||(a||!r)&&history.state&&history.state.scroll||null;return i().then(()=>o(t,n,s)).then(e=>t===l.value&&e&&ot(e)).catch(e=>t===l.value&&de(e,t,n))}let L=e=>a.go(e),R,z=new Set,B={currentRoute:l,listening:!0,addRoute:h,removeRoute:g,clearRoutes:t.clearRoutes,hasRoute:v,getRoutes:_,resolve:y,options:e,push:T,replace:te,go:L,back:()=>L(-1),forward:()=>L(1),beforeEach:o.add,beforeResolve:s.add,afterEach:c.add,onError:ue.add,isReady:fe,install(e){e.component(`RouterLink`,qt),e.component(`RouterView`,en),e.config.globalProperties.$router=B,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>p(l)}),W&&!R&&l.value===K&&(R=!0,T(a.location).catch(e=>{}));let t={};for(let e in K)Object.defineProperty(t,e,{get:()=>l.value[e],enumerable:!0});e.provide(ie,B),e.provide(oe,re(t)),e.provide(ne,l);let n=e.unmount;z.add(e),e.unmount=function(){z.delete(e),z.size<1&&(u=K,N&&N(),N=null,l.value=K,R=!1,F=!1),n()}}};function V(e){return e.reduce((e,t)=>e.then(()=>A(t)),Promise.resolve())}return B}var nn=typeof global==`object`&&global&&global.Object===Object&&global,rn=typeof self==`object`&&self&&self.Object===Object&&self,an=(nn||rn||Function(`return this`)()).Symbol,on=Object.prototype,sn=on.hasOwnProperty,cn=on.toString,Y=an?an.toStringTag:void 0;function ln(e){var t=sn.call(e,Y),n=e[Y];try{e[Y]=void 0;var r=!0}catch{}var i=cn.call(e);return r&&(t?e[Y]=n:delete e[Y]),i}var un=Object.prototype.toString;function dn(e){return un.call(e)}var fn=`[object Null]`,pn=`[object Undefined]`,mn=an?an.toStringTag:void 0;function hn(e){return e==null?e===void 0?pn:fn:mn&&mn in Object(e)?ln(e):dn(e)}function gn(e){return typeof e==`object`&&!!e}var _n=`[object Symbol]`;function vn(e){return typeof e==`symbol`||gn(e)&&hn(e)==_n}var yn=/\s/;function bn(e){for(var t=e.length;t--&&yn.test(e.charAt(t)););return t}var xn=/^\s+/;function Sn(e){return e&&e.slice(0,bn(e)+1).replace(xn,``)}function Cn(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}var wn=NaN,Tn=/^[-+]0x[0-9a-f]+$/i,En=/^0b[01]+$/i,Dn=/^0o[0-7]+$/i,On=parseInt;function kn(e){if(typeof e==`number`)return e;if(vn(e))return wn;if(Cn(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=Cn(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=Sn(e);var n=En.test(e);return n||Dn.test(e)?On(e.slice(2),n?2:8):Tn.test(e)?wn:+e}function An(e,t,n){return e===e&&(n!==void 0&&(e=e<=n?e:n),t!==void 0&&(e=e>=t?e:t)),e}function jn(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=kn(n),n=n===n?n:0),t!==void 0&&(t=kn(t),t=t===t?t:0),An(kn(e),t,n)}var Mn=5e3;function Nn(){return{id:`local`,companyId:``,companyName:``,items:[]}}function X(){return!1}function Pn(e){return[...new Set(e.map(e=>e.companyName).filter(Boolean))].join(`، `)}function Fn(e,t){return e.items.filter(e=>e.companyId===t).reduce((e,t)=>e+t.meterage,0)}var Z=z(`cart`,()=>{let t=k([Nn()]),n=k(`local`),r=k(null),i=k(!1),a=e(()=>t.value.find(e=>e.id===n.value)??t.value[0]??null),o=e(()=>a.value?.items.reduce((e,t)=>e+t.meterage,0)??0),s=e(()=>a.value?.items.length??0),c=U(),l=e(()=>a.value?.items.length?Pn(a.value.items):``),u=e(()=>{let e=a.value;if(!e?.items.length)return[];let t=new Map;for(let n of e.items){let e=t.get(n.companyId);e?e.meterage+=n.meterage:t.set(n.companyId,{companyName:n.companyName||`شرکت`,meterage:n.meterage})}return[...t.entries()].map(([e,t])=>{let n=c.getCompany(e)?.maxMeteragePerInvoice??Mn;return{companyId:e,companyName:t.companyName,meterage:t.meterage,maxMeterage:n,remaining:Math.max(0,n-t.meterage)}})}),d=e(()=>u.value.length?u.value.reduce((e,t)=>e+t.maxMeterage,0):(r.value?c.getCompany(r.value):null)?.maxMeteragePerInvoice??Mn),f=e(()=>u.value.length?u.value.reduce((e,t)=>e+t.remaining,0):Math.max(0,d.value-o.value)),p=e(()=>u.value.some(e=>e.meterage>=e.maxMeterage));function m(e){let i={id:e.id,companyId:e.companyId||``,companyName:e.companyName||Pn(e.items),items:e.items??[],notes:e.notes};t.value=[i],n.value=i.id,i.companyId&&(r.value=i.companyId)}function h(e){t.value=[{...e,items:e.items.map(e=>({...e}))}],n.value=t.value[0].id}async function g(){if(!B()){_();return}if(X()){i.value=!1;return}i.value=!0;try{m(await R(`/carts`))}catch{_()}finally{i.value=!1}}function _(){t.value=[Nn()],n.value=t.value[0].id,r.value=null}function v(e){r.value=e.id,a.value&&!a.value.items.length&&(a.value.companyId=e.id,a.value.companyName=e.name)}function y(e){return v(e),a.value??Nn()}function ee(e){return e&&v(e),a.value??Nn()}async function b(){if(X())return _(),a.value;try{return m(await R(`/carts`,{method:`DELETE`})),a.value}catch(e){return console.error(e),null}}function x(e,t,n,i){let a=ee(i),o=a.items.find(t=>t.productId===e.id),s=[...a.items];if(o){let e=s.findIndex(e=>e.id===o.id);s[e]={...o,meterage:n}}else{let r={id:`local-item-${e.id}-${Date.now()}`,productId:e.id,catalogCode:t,productName:e.name,productCode:e.code,color:e.color,meterage:n,companyId:i.id,companyName:i.name};s.push(r)}return h({id:a.id||`local`,companyId:s[0]?.companyId||i.id,companyName:Pn(s)||i.name,items:s,notes:a.notes}),r.value=i.id,{success:!0}}async function S(e,t,n){c.companies.length||await c.loadCompanies();let i=c.getCompany(e.companyId),o=a.value??Nn(),s=i?.maxMeteragePerInvoice??Mn,l=e.companyId?Fn(o,e.companyId):0,u=o.items.find(t=>t.productId===e.id),d=u?.meterage??0,f=Ce(n,e,l,s,d);if(!f.valid)return{success:!1,message:f.message};if(X())return i?x(e,t,n,i):{success:!1,message:`شرکت محصول یافت نشد.`};try{let t;return t=u?await R(`/carts/items/${u.id}`,{method:`PATCH`,body:{meterage:n}}):await R(`/carts/items`,{method:`POST`,body:{productId:e.id,meterage:n}}),m(t),r.value=i?.id||e.companyId||r.value,{success:!0}}catch(e){return{success:!1,message:e instanceof H?e.message:`افزودن به سبد ناموفق بود.`}}}async function C(e,t,n){if(!a.value)return{success:!1,message:`سبد خرید یافت نشد.`};let r=a.value.items.find(t=>t.id===e);if(!r)return{success:!1,message:`آیتم یافت نشد.`};let i=c.getCompany(r.companyId||n.companyId)?.maxMeteragePerInvoice??Mn,o=Fn(a.value,r.companyId),s=Ce(t,n,o,i,r.meterage);if(!s.valid)return{success:!1,message:s.message};if(X()){let n=a.value.items.map(n=>n.id===e?{...n,meterage:t}:n);return h({...a.value,items:n}),{success:!0}}try{return m(await R(`/carts/items/${e}`,{method:`PATCH`,body:{meterage:t}})),{success:!0}}catch(e){return{success:!1,message:e instanceof H?e.message:`بهروزرسانی متراژ ناموفق بود.`}}}async function w(e){if(X()){if(!a.value)return;let t=a.value.items.filter(t=>t.id!==e);h({...a.value,items:t});return}try{m(await R(`/carts/items/${e}`,{method:`DELETE`}))}catch(e){console.error(e)}}async function T(e){if(X()){if(!a.value)return;h({...a.value,notes:e});return}try{m(await R(`/carts/notes`,{method:`PATCH`,body:{notes:e}}))}catch(e){console.error(e)}}async function te(){if(X()){_();return}try{m(await R(`/carts`,{method:`DELETE`}))}catch{_()}}function ne(){}return{carts:t,activeCartId:n,selectedCompanyId:r,syncing:i,activeCart:a,totalMeterage:o,itemCount:s,companyNamesLabel:l,companySummaries:u,maxMeterage:d,remainingCapacity:f,isFull:p,initCartForCompany:y,selectCompany:v,createNewCartForSameCompany:b,addItem:S,updateItemMeterage:C,removeItem:w,setNotes:T,clearActiveCart:te,ensureActiveCartForCartPage:ne,hydrate:g,resetLocal:_}}),In=I({__name:`IconHome`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(_(),s(P,{icon:`vuesax-linear:home`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Ln=I({__name:`IconCart`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(_(),s(P,{icon:`vuesax-linear:bag-2`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Rn=I({__name:`IconOrders`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(_(),s(P,{icon:`vuesax-linear:document-text`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),zn=I({__name:`IconProfile`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(_(),s(P,{icon:`vuesax-linear:profile-circle`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Bn=I({__name:`IconCatalog`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(_(),s(P,{icon:`vuesax-linear:category`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Vn=I({__name:`IconPlus`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(_(),s(P,{icon:`vuesax-linear:add`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Hn=[{name:`home`,path:`/`,label:`خانه`,icon:In},{name:`catalogs`,path:`/catalogs`,label:`کالیتهها`,icon:Bn},{name:`order-fab`,path:`/cart`,label:`ثبت سفارش`,icon:Vn},{name:`orders`,path:`/orders`,label:`سفارشها`,icon:Rn},{name:`profile`,path:`/profile`,label:`پروفایل`,icon:zn}],Un=[{name:`home`,path:`/`,label:`خانه`,icon:In},{name:`catalogs`,path:`/catalogs`,label:`کالیتهها`,icon:Bn},{name:`cart`,path:`/cart`,label:`ثبت سفارش`,icon:Ln},{name:`orders`,path:`/orders`,label:`سفارشها`,icon:Rn},{name:`profile`,path:`/profile`,label:`پروفایل`,icon:zn}],Wn=[`/catalogs`,`/catalog-request`,`/catalog-requests`,`/categories`,`/products`,`/product`,`/favorites`];function Gn(e,t,n){return e===`home`?n===`/`:e===`catalogs`?Wn.some(e=>n===e||n.startsWith(`${e}/`)):e===`order-fab`||e===`cart`?n===`/cart`||n.startsWith(`/cart/`):e===`profile`?n===`/profile`||n.startsWith(`/profile/`):t===`/`?n===`/`:n.startsWith(t)}function Kn(e,t){return e.path}function qn(e){return e===0?`/catalogs`:`/cart`}var Jn={class:`bottom-nav`,"aria-label":`ناوبری اصلی`},Yn=[`aria-current`,`aria-label`,`onClick`],Xn={key:0,class:`nav-badge`},Zn={key:0,class:`nav-label`},Qn={key:1,class:`nav-label nav-label--fab`},$n=A(I({__name:`BottomNav`,setup(n){let i=te(),a=y(),o=Z(),d=e(()=>o.itemCount);function f(e,t){let n=t.currentTarget;if(n instanceof HTMLElement&&n.blur(),e===`/cart`){a.push(qn(o.itemCount));return}a.push(e)}return(e,n)=>(_(),u(`nav`,Jn,[(_(!0),u(l,null,v(p(Hn),e=>(_(),u(`button`,{key:e.name,type:`button`,class:t([`nav-item`,{active:p(Gn)(e.name,e.path,p(i).path),"nav-item--fab":e.name===`order-fab`}]),"aria-current":p(Gn)(e.name,e.path,p(i).path)?`page`:void 0,"aria-label":e.label,onClick:t=>f(e.path,t)},[D(`span`,{class:t([`nav-icon`,{"nav-icon--fab":e.name===`order-fab`}])},[(_(),s(C(e.icon),{size:e.name===`order-fab`?26:22,"stroke-width":e.name===`order-fab`?1.8:1.5,color:e.name===`order-fab`?`#ffffff`:void 0},null,8,[`size`,`stroke-width`,`color`])),e.name===`order-fab`&&d.value>0?(_(),u(`span`,Xn,r(d.value),1)):c(``,!0)],2),e.name===`order-fab`?(_(),u(`span`,Qn,r(e.label),1)):(_(),u(`span`,Zn,r(e.label),1))],10,Yn))),128))]))}}),[[`__scopeId`,`data-v-3b391510`]]),er=I({__name:`IconHeadset`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(_(),s(P,{icon:`vuesax-linear:headphone`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),tr=`/assets/nademitex-logo-BJLexNm4.png`,nr=[`src`],rr=A(I({__name:`IconQemashMark`,props:{size:{default:72}},setup(e){return(t,n)=>(_(),u(`img`,{class:`brand-logo`,src:p(tr),alt:``,style:m({height:`${e.size}px`}),draggable:`false`},null,12,nr))}}),[[`__scopeId`,`data-v-b211450b`]]),ir={class:`desktop-sidebar`,"aria-label":`ناوبری اصلی`},ar={class:`desktop-sidebar__brand`},or={class:`desktop-sidebar__nav`},sr=[`aria-current`,`aria-label`,`title`,`onClick`],cr={class:`desktop-sidebar__icon`},lr={class:`desktop-sidebar__label`},ur={key:0,class:`desktop-sidebar__badge`},dr={class:`desktop-sidebar__support`},fr={class:`desktop-sidebar__support-icon`,"aria-hidden":`true`},pr=A(I({__name:`DesktopSidebar`,setup(n){let i=te(),a=y(),o=Z(),d=e(()=>o.itemCount),m=e(()=>o.selectedCompanyId||o.activeCart?.companyId||null);function h(e){if(e.name===`cart`){a.push(qn(o.itemCount));return}a.push(Kn(e,m.value))}return(e,n)=>(_(),u(`aside`,ir,[D(`div`,ar,[f(rr,{size:36}),n[0]||=D(`strong`,{class:`desktop-sidebar__title`},`نادمی تکس`,-1)]),D(`nav`,or,[(_(!0),u(l,null,v(p(Un),e=>(_(),u(`button`,{key:e.name,type:`button`,class:t([`desktop-sidebar__item`,{active:p(Gn)(e.name,e.path,p(i).path)}]),"aria-current":p(Gn)(e.name,e.path,p(i).path)?`page`:void 0,"aria-label":e.label,title:e.label,onClick:t=>h(e)},[D(`span`,cr,[(_(),s(C(e.icon),{size:20}))]),D(`span`,lr,r(e.label),1),e.name===`cart`&&d.value>0?(_(),u(`span`,ur,r(d.value),1)):c(``,!0)],10,sr))),128))]),D(`div`,dr,[D(`span`,fr,[f(er,{size:22})]),n[1]||=D(`strong`,{class:`desktop-sidebar__support-title`},`پشتیبانی و راهنما`,-1),n[2]||=D(`p`,{class:`desktop-sidebar__support-text`},` در صورت نیاز به راهنمایی یا گزارش مشکل با تیم پشتیبانی تماس بگیرید. `,-1),n[3]||=D(`a`,{href:`tel:02112345678`,class:`desktop-sidebar__support-btn`},`تماس با پشتیبانی`,-1)])]))}}),[[`__scopeId`,`data-v-16152195`]]),mr=`ft_user`,hr=`ft_pending_otp`;function Q(e){e?localStorage.setItem(mr,JSON.stringify(e)):localStorage.removeItem(mr)}function gr(){try{let e=localStorage.getItem(mr);return e?JSON.parse(e):null}catch{return null}}function _r(){return B()?gr():null}function vr(){return!!B()}function yr(e){try{e?sessionStorage.setItem(hr,JSON.stringify(e)):sessionStorage.removeItem(hr)}catch{}}async function br(e,t){let n=ve(e);if(!/^09\d{9}$/.test(n))return{success:!1,message:`شماره موبایل معتبر نیست.`};if(t.isRegister&&(!t.firstName?.trim()||!t.lastName?.trim()))return{success:!1,message:`نام و نام خانوادگی الزامی است.`};try{yr({phone:n,isRegister:t.isRegister,firstName:t.firstName,lastName:t.lastName});let e=await R(`/auth/otp/request`,{method:`POST`,auth:!1,body:{phone:n,firstName:t.firstName,lastName:t.lastName,isRegister:t.isRegister}}),r=e.debugCode?` (کد: ${e.debugCode})`:``;return{success:!0,message:`${e.message}${r}`}}catch(e){return{success:!1,message:e instanceof H?e.message:`ارسال کد ناموفق بود.`}}}async function xr(e,t){let n=ve(e);try{let e=await R(`/auth/otp/verify`,{method:`POST`,auth:!1,body:{phone:n,code:be(t)}});return L(e.accessToken),Q(e.user),yr(null),{success:!0,message:`ورود موفق.`,user:e.user}}catch(e){return{success:!1,message:e instanceof H?e.message:`تأیید کد ناموفق بود.`}}}function Sr(){L(null),Q(null),yr(null)}async function Cr(){if(!B())return Q(null),null;try{let e=await R(`/auth/me`);return Q(e),e}catch{return gr()}}async function wr(e){try{let t=await R(`/auth/profile`,{method:`PATCH`,body:e});return Q(t),t}catch(t){let n=e.avatarUrl!==void 0&&e.firstName===void 0&&e.lastName===void 0&&e.nationalId===void 0,r=gr();if(!n||!r)throw t;let i={...r};return e.avatarUrl?i.avatarUrl=e.avatarUrl:delete i.avatarUrl,Q(i),i}}var Tr=`ft_pending_register`,Er=[{id:`garment_producer`,label:`تولیدکننده پوشاک عمده`},{id:`atelier`,label:`مزون`},{id:`fabric_wholesaler`,label:`عمدهفروش پارچه`}];function Dr(){try{let e=sessionStorage.getItem(Tr);if(!e)return null;let t=JSON.parse(e);return!t?.firstName?.trim()||!t?.lastName?.trim()?null:{firstName:t.firstName.trim(),lastName:t.lastName.trim(),jobCategory:t.jobCategory}}catch{return null}}function Or(e){if(e?.firstName?.trim()&&e?.lastName?.trim()){sessionStorage.setItem(Tr,JSON.stringify({firstName:e.firstName.trim(),lastName:e.lastName.trim(),jobCategory:e.jobCategory}));return}sessionStorage.removeItem(Tr)}function kr(){return{checkCount:0,totalAmount:0,nearestDueDate:null,farthestDueDate:null,rassDays:0,rassDate:null}}function Ar(e,t=new Date){if(e.length===0)return kr();let n=new Date(t);n.setHours(0,0,0,0);let r=0,i=0,a=[];for(let t of e){if(!t.dueDate){r+=t.amount;continue}let e=_e(t.dueDate);if(Number.isNaN(e.getTime())){r+=t.amount;continue}e.setHours(0,0,0,0),a.push(e);let o=e.getTime()-n.getTime(),s=Math.max(0,Math.round(o/864e5));r+=t.amount,i+=t.amount*s}let o=r>0?Math.round(i/r):0,s=new Date(n);return s.setDate(s.getDate()+o),a.sort((e,t)=>e.getTime()-t.getTime()),{checkCount:e.length,totalAmount:r,nearestDueDate:a[0]?Se(a[0]):null,farthestDueDate:a.length?Se(a[a.length-1]):null,rassDays:o,rassDate:Se(s)}}function jr(e){let t=new Date;t.setHours(0,0,0,0);let n=_e(e);return Number.isNaN(n.getTime())?0:(n.setHours(0,0,0,0),Math.max(0,Math.round((n.getTime()-t.getTime())/864e5)))}var Mr=z(`order`,()=>{let t=k([]),n=k([]),r=k(null),i=k(null),a=k(null),o=k(!1),s=e(()=>e=>[...t.value].sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime()));function c(e){return t.value.find(t=>t.id===e)}function l(e,t){a.value=e,r.value=`check`,n.value=[],i.value=t??null}function u(e){a.value=e.id,r.value=`check`,i.value=e.checkMode??`full`,n.value=(e.checks??[]).map(e=>({...e}))}function d(){a.value=null,n.value=[],i.value=null,r.value=null}function f(e){i.value=e}function p(e){n.value.push({...e,id:ye()})}function m(e,t){let r=n.value.findIndex(t=>t.id===e);r>=0&&(n.value[r]={...n.value[r],...t})}function h(e){n.value=n.value.filter(t=>t.id!==e)}function g(e){return Ar(n.value,e??new Date)}async function _(){if(!B()){t.value=[];return}o.value=!0;try{t.value=await R(`/orders`)}catch{t.value=[]}finally{o.value=!1}}function v(){t.value=[],d()}function y(e){let n=t.value.findIndex(t=>t.id===e.id);n>=0?t.value[n]=e:t.value.unshift(e)}async function ee(e){try{let t=await R(`/orders/${e}`);return y(t),t}catch{return null}}async function b(e){if(!e.items.length)throw Error(`سبد خرید خالی است.`);if(e.id===`local`||e.items.some(e=>e.id.startsWith(`local-item-`)))throw Error(`سبد خرید با سرور همگام نیست. لطفاً دوباره محصولات را به سبد اضافه کنید.`);let n=[...new Set(e.items.map(e=>e.companyId).filter(Boolean))];if(!n.length)throw Error(`شرکت سبد مشخص نیست. سبد را خالی کنید و دوباره اضافه کنید.`);try{let r=await R(`/orders`,{method:`POST`,body:{companyId:n[0],notes:e.notes,items:e.items.map(e=>({productId:e.productId,meterage:Number(e.meterage),notes:e.notes}))}});return t.value.unshift(r),d(),r}catch(e){throw Error(e instanceof H?e.message:`ثبت سفارش ناموفق بود.`)}}async function x(e,t,n){try{let r=await R(`/orders/${e}/settlement`,{method:`POST`,body:{settlementType:t,checkMode:t===`check`?n??`full`:void 0}});return y(r),r}catch(e){throw Error(e instanceof H?e.message:`ثبت روش تسویه ناموفق بود.`)}}async function S(e,t){try{await R(`/orders/${e}/cash-receipt`,{method:`POST`,body:{amount:t.amount,transferDate:t.transferDate,transferTime:t.transferTime,trackingNumber:t.trackingNumber,destinationAccountId:t.destinationAccountId,receiptImage:t.receiptImage,notes:t.notes}});let n=await ee(e);if(!n)throw Error(`رسید ثبت شد ولی دریافت سفارش ناموفق بود.`);return n}catch(e){throw Error(e instanceof H?e.message:`ثبت رسید ناموفق بود.`)}}async function C(e,t,n){try{let r=await R(`/orders/${e}/checks`,{method:`PATCH`,body:{checkMode:n,checks:t.map(e=>({amount:e.amount,dueDate:e.dueDate,sayadId:e.sayadId,checkNumber:e.checkNumber,ownerNationalId:e.ownerNationalId,ownerFirstName:e.ownerFirstName,ownerLastName:e.ownerLastName,bankName:e.bankName,branchName:e.branchName,frontImage:e.frontImage,backImage:e.backImage,notes:e.notes,mode:e.mode}))}});return y(r),d(),r}catch(e){throw Error(e instanceof H?e.message:`ثبت چکها ناموفق بود.`)}}async function w(e){let t=[...new Set([e.companyId,...e.items.map(e=>e.companyId).filter(Boolean)].filter(Boolean))],n=U(),r=await Promise.all(t.map(e=>n.loadBankAccounts(e))),i=new Map;for(let e of r)for(let t of e)i.set(t.id,t);return[...i.values()]}async function T(e){return U().loadBankAccounts(e)}return{orders:t,draftChecks:n,draftSettlementType:r,draftCheckMode:i,draftOrderId:a,loading:o,userOrders:s,getOrderById:c,startCheckDraft:l,loadChecksIntoDraft:u,clearCheckDraft:d,setCheckMode:f,addDraftCheck:p,updateDraftCheck:m,removeDraftCheck:h,getDraftRass:g,submitOrder:b,chooseSettlement:x,submitCashReceipt:S,updateOrderChecks:C,hydrate:_,resetLocal:v,fetchOrder:ee,getBankAccountsForOrder:w,getBankAccountsForCompany:T}}),Nr=z(`notification`,()=>{let t=k([]),n=k(0),r=k(!1),i=e(()=>n.value>0);async function a(){if(!B()){t.value=[],n.value=0;return}r.value=!0;try{t.value=await R(`/notifications`),n.value=t.value.filter(e=>!e.isRead).length}catch{t.value=[],n.value=0}finally{r.value=!1}}async function o(){if(!B()){n.value=0;return}try{let e=await R(`/notifications/unread-count`);n.value=e.count}catch{}}async function s(e){let r=t.value.find(t=>t.id===e);if(!(!r||r.isRead)){r.isRead=!0,n.value=Math.max(0,n.value-1);try{await R(`/notifications/${e}/read`,{method:`PATCH`})}catch{await a()}}}async function c(){if(n.value){t.value=t.value.map(e=>({...e,isRead:!0})),n.value=0;try{await R(`/notifications/read-all`,{method:`PATCH`})}catch{await a()}}}function l(){t.value=[],n.value=0}return{items:t,unreadCount:n,loading:r,hasUnread:i,hydrate:a,refreshUnreadCount:o,markRead:s,markAllRead:c,resetLocal:l}}),Pr=`ft_favorites`;function Fr(){try{let e=localStorage.getItem(Pr);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}catch{return[]}}function Ir(e){localStorage.setItem(Pr,JSON.stringify(e))}var Lr=z(`favorites`,()=>{let t=k(Fr()),n=k(!1),r=k({}),i=e(()=>new Set(t.value));function a(e){return i.value.has(e)}async function o(){try{let e=await R(`/products/favorites/ids`);t.value=e,Ir(e)}catch{t.value=Fr()}finally{n.value=!0}}async function s(e){if(!e||r.value[e])return;r.value={...r.value,[e]:!0};let n=a(e);t.value=n?t.value.filter(t=>t!==e):[...t.value,e],Ir(t.value);try{let n=await R(`/products/${e}/favorite`,{method:`POST`});t.value=n.favorited?[...new Set([...t.value.filter(t=>t!==e),e])]:t.value.filter(t=>t!==e),Ir(t.value)}catch(r){if(!(r instanceof H&&r.status===404))throw t.value=n?[...new Set([...t.value,e])]:t.value.filter(t=>t!==e),Ir(t.value),r}finally{let t={...r.value};delete t[e],r.value=t}}function c(){t.value=[],Ir([]),n.value=!1}return{ids:t,loaded:n,pending:r,isFavorite:a,hydrate:o,toggle:s,resetLocal:c}}),Rr=z(`auth`,()=>{let t=k(_r()),n=k(!1),r=k(null),i=k(Dr()),a=e(()=>!!t.value),o=e(()=>t.value?`${t.value.firstName} ${t.value.lastName}`:``),s=e(()=>t.value?.appRole===`agent`),c=e(()=>!!t.value&&t.value.appRole!==`agent`);function l(){r.value=null}function u(){i.value=null,Or(null)}async function d(e,t){n.value=!0,r.value=null;try{let n=Dr();i.value=n;let a=t.firstName?.trim()||n?.firstName,o=t.lastName?.trim()||n?.lastName;t.isRegister&&a&&o&&(i.value={firstName:a,lastName:o},Or(i.value));let s=await br(e,{isRegister:t.isRegister,firstName:a,lastName:o});return s.success||(r.value=s.message),s}finally{n.value=!1}}async function f(e,i){n.value=!0,r.value=null;let a=await xr(e,i);return n.value=!1,a.success&&a.user?(t.value=a.user,u(),await Promise.all([U().loadCompanies(),Z().hydrate(),Mr().hydrate(),Nr().hydrate(),Lr().hydrate()])):r.value=a.message,a}function p(){Sr(),t.value=null,u(),Z().resetLocal(),Mr().resetLocal(),Nr().resetLocal(),Lr().resetLocal()}async function m(e){if(!t.value)return null;let n=await wr(e);return n&&(t.value=n),n}async function h(){if(t.value=_r(),!t.value)return;let e=await Cr();t.value=e}return{user:t,loading:n,error:r,isAuthenticated:a,fullName:o,isAgent:s,isCustomerOnly:c,clearError:l,requestOtp:d,confirmOtp:f,logout:p,updateProfile:m,hydrate:h}}),zr=I({__name:`IconBell`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(_(),s(P,{icon:`vuesax-linear:notification`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Br=I({__name:`IconChevronLeft`,props:{size:{default:24},strokeWidth:{default:1.5},color:{default:null}},setup(e){return(t,n)=>(_(),s(P,{icon:`vuesax-linear:arrow-left-1`,size:e.size,"stroke-width":e.strokeWidth,color:e.color},null,8,[`size`,`stroke-width`,`color`]))}}),Vr=z(`theme`,()=>{let t=he(`ft_theme`,`system`),n=ge(),r=e(()=>t.value===`system`?n.value?`dark`:`light`:t.value),i=e(()=>r.value===`dark`);ae(()=>{let e=document.documentElement;e.classList.toggle(`dark`,i.value),e.style.colorScheme=r.value});function a(e){t.value=e}function o(){let e=[`light`,`dark`,`system`],n=e.indexOf(t.value);t.value=e[(n+1)%e.length]}function s(){t.value=i.value?`light`:`dark`}return{preference:t,resolved:r,isDark:i,setPreference:a,cyclePreference:o,toggleLightDark:s}}),Hr=[`aria-label`,`title`],Ur=A(I({__name:`AuthThemeToggle`,props:{variant:{default:`floating`}},setup(n){let r=Vr(),{isDark:i}=V(r),a=e(()=>i.value?`vuesax-linear:sun-1`:`vuesax-linear:moon`),o=e(()=>i.value?`تغییر به تم روشن`:`تغییر به تم تاریک`);return(e,i)=>(_(),u(`button`,{type:`button`,class:t([`auth-theme-toggle`,n.variant===`inline`?`auth-theme-toggle--inline`:`auth-theme-toggle--floating`]),"aria-label":o.value,title:o.value,onClick:i[0]||=e=>p(r).toggleLightDark()},[f(P,{icon:a.value,size:18,"stroke-width":1.5},null,8,[`icon`])],10,Hr))}}),[[`__scopeId`,`data-v-3a58cb84`]]),Wr=[`src`],Gr={key:1},Kr=A(I({__name:`UserAvatar`,props:{src:{},initials:{},size:{default:72}},setup(e){return(t,n)=>(_(),u(`span`,{class:`user-avatar`,style:m({width:`${e.size}px`,height:`${e.size}px`,fontSize:`${Math.round(e.size*.38)}px`})},[e.src?(_(),u(`img`,{key:0,class:`user-avatar__img`,src:e.src,alt:``},null,8,Wr)):(_(),u(`span`,Gr,r(e.initials),1))],4))}}),[[`__scopeId`,`data-v-5c562bf0`]]),qr={class:`desktop-header`},Jr={class:`desktop-header__actions`},Yr={key:0,class:`desktop-header__company`},Xr=[`aria-label`],Zr={class:`desktop-header__user-wrap`},Qr=[`aria-expanded`],$r={class:`desktop-header__user-name`},ei={key:0,class:`desktop-header__menu`},ti=A(I({__name:`DesktopHeader`,setup(t){let n=y(),i=Rr(),a=Z(),o=Nr(),s=k(!1),l=e(()=>xe(o.unreadCount>9?`9+`:String(o.unreadCount))),d=e(()=>`${i.user?.firstName?.[0]??``}${i.user?.lastName?.[0]??``}`||`؟`),m=e(()=>a.companyNamesLabel||a.activeCart?.companyName||``);function h(){s.value=!s.value}function g(){s.value=!1,n.push(`/profile`)}function v(){s.value=!1,i.logout(),n.replace(`/welcome`)}return(e,t)=>(_(),u(`header`,qr,[t[1]||=D(`div`,{class:`desktop-header__spacer`,"aria-hidden":`true`},null,-1),D(`div`,Jr,[m.value?(_(),u(`span`,Yr,r(m.value),1)):c(``,!0),f(Ur,{variant:`inline`}),D(`button`,{type:`button`,class:`desktop-header__icon-btn`,"aria-label":`اعلانها`,onClick:t[0]||=e=>p(n).push(`/profile/notifications`)},[f(zr,{size:20}),p(o).hasUnread?(_(),u(`span`,{key:0,class:`desktop-header__notif-badge`,"aria-label":`${p(o).unreadCount} اعلان خواندهنشده`},r(l.value),9,Xr)):c(``,!0)]),D(`div`,Zr,[D(`button`,{type:`button`,class:`desktop-header__user`,"aria-expanded":s.value,onClick:h},[f(Kr,{class:`desktop-header__avatar`,src:p(i).user?.avatarUrl,initials:d.value,size:32},null,8,[`src`,`initials`]),D(`span`,$r,r(p(i).fullName),1),f(Br,{size:16,class:`desktop-header__chevron`})],8,Qr),s.value?(_(),u(`div`,ei,[D(`button`,{type:`button`,onClick:g},`پروفایل`),D(`button`,{type:`button`,class:`desktop-header__menu-logout`,onClick:v},`خروج`)])):c(``,!0)])])]))}}),[[`__scopeId`,`data-v-5f322d95`]]),ni={class:`app-layout`},ri={class:`app-frame`},ii={class:`app-main`},ai={class:`app-main__content`},oi={class:`app-content`},si=I({__name:`DefaultLayout`,setup(n){let r=te(),i=e(()=>![`welcome`,`login`,`register`,`otp`,`settlement`,`check-mode`,`check-form`,`check-list`,`cash-settlement`,`order-success`].includes(r.name)&&!r.meta.hideNav),a=e(()=>[`settlement`,`check-mode`,`check-form`,`check-list`,`cash-settlement`].includes(r.name)),o=e(()=>r.name===`welcome`||r.name===`login`||r.name===`register`||r.name===`otp`);return(e,n)=>(_(),u(`div`,{class:t([`app-shell`,{"app-shell--no-nav":!i.value,"app-shell--wide":a.value,"app-shell--with-nav":i.value,"app-shell--immersive":o.value}])},[D(`div`,ni,[i.value?(_(),s(pr,{key:0})):c(``,!0),D(`div`,ri,[i.value?(_(),s(ti,{key:0})):c(``,!0),D(`main`,ii,[D(`div`,ai,[D(`div`,oi,[d(e.$slots,`default`)])])]),i.value?(_(),s($n,{key:1})):c(``,!0)])])],2))}}),ci=[`type`,`disabled`],li={key:0,class:`btn-spinner`},ui=A(I({__name:`BaseButton`,props:{variant:{},size:{},block:{type:Boolean},disabled:{type:Boolean},loading:{type:Boolean},type:{}},setup(e){return(n,r)=>(_(),u(`button`,{type:e.type??`button`,class:t([`btn`,[`btn-${e.variant??`primary`}`,`btn-${e.size??`md`}`,{"btn-block":e.block}]]),disabled:e.disabled||e.loading},[e.loading?(_(),u(`span`,li)):c(``,!0),d(n.$slots,`default`,{},void 0,!0)],10,ci))}}),[[`__scopeId`,`data-v-3628a8bb`]]),di=T({open:!1,title:``,message:``,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`,resolve:null});function fi(){return di}function pi(e){return new Promise(t=>{Object.assign(di,{open:!0,title:e.title,message:e.message,confirmLabel:e.confirmLabel??`حذف`,cancelLabel:e.cancelLabel??`انصراف`,tone:e.tone??`danger`,resolve:t})})}function mi(e){di.resolve?.(e),di.open=!1,di.resolve=null}var hi={class:`dialog card confirm-dialog`},gi={id:`confirm-dialog-title`,class:`confirm-dialog__title`},_i={class:`confirm-dialog__message`},vi={class:`dialog-actions confirm-dialog__actions`},yi=A(I({__name:`ConfirmDialog`,setup(e){let t=fi();function i(){mi(!1)}function a(){mi(!0)}return(e,s)=>p(t).open?(_(),u(`div`,{key:0,class:`dialog-overlay confirm-dialog-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`confirm-dialog-title`,onClick:n(i,[`self`])},[D(`div`,hi,[D(`h3`,gi,r(p(t).title),1),D(`p`,_i,r(p(t).message),1),D(`div`,vi,[f(ui,{variant:`outline`,onClick:i},{default:M(()=>[o(r(p(t).cancelLabel),1)]),_:1}),f(ui,{variant:p(t).tone===`danger`?`danger`:`primary`,onClick:a},{default:M(()=>[o(r(p(t).confirmLabel),1)]),_:1},8,[`variant`])])])])):c(``,!0)}}),[[`__scopeId`,`data-v-2e50e2a7`]]),bi=I({__name:`App`,setup(e){let t=Rr(),n=Z(),r=Mr(),i=U(),a=Nr(),o=y(),c=k(`page-fade`);function d(e){return e.split(`/`).filter(Boolean).length}return o.beforeEach((e,t)=>{if(!t.name){c.value=`page-fade`;return}let n=jn(d(e.path)-d(t.path),-1,1);n>0?c.value=`page-forward`:n<0?c.value=`page-back`:c.value=`page-fade`}),se(async()=>{await t.hydrate(),t.isAuthenticated&&await Promise.all([i.loadCompanies(),n.hydrate(),r.hydrate(),a.hydrate()])}),me(()=>{t.isAuthenticated&&a.refreshUnreadCount()},6e4,{immediate:!1}),(e,t)=>(_(),u(l,null,[f(si,null,{default:M(()=>[f(p(en),null,{default:M(({Component:e,route:t})=>[f(fe,{name:c.value,mode:`out-in`},{default:M(()=>[(_(),u(`div`,{key:t.path,class:`page-transition page-shell`},[(_(),s(C(e)))]))]),_:2},1032,[`name`])]),_:1})]),_:1}),f(yi)],64))}}),xi=`modulepreload`,Si=function(e){return`/`+e},Ci={},$=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=Si(t,n),t=s(t),t in Ci)return;Ci[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:xi,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},wi=tn({history:Ct(`/`),routes:[{path:`/welcome`,name:`welcome`,component:()=>$(()=>import(`./WelcomeView-CIX4mZos.js`),__vite__mapDeps([0,1,2,3,4])),meta:{guest:!0,hideNav:!0}},{path:`/login`,name:`login`,component:()=>$(()=>import(`./LoginView-D2VsOVrb.js`),__vite__mapDeps([5,1,2,6,7,8,9,10,11,12,3,13])),meta:{guest:!0,hideNav:!0}},{path:`/register`,name:`register`,component:()=>$(()=>import(`./RegisterView-Cjx6Gvgv.js`),__vite__mapDeps([14,1,2,15,16,7,8,9,10,11,12,17,18])),meta:{guest:!0,hideNav:!0}},{path:`/otp`,name:`otp`,component:()=>$(()=>import(`./OtpView-GOSd36OA.js`),__vite__mapDeps([19,1,2,16,7,20,9,10,12,3,21,22])),meta:{guest:!0,hideNav:!0}},{path:`/`,name:`home`,component:()=>$(()=>import(`./HomeView-DKOvriis.js`),__vite__mapDeps([23,1,2,7,20,24,25,26,6,27,28,29])),meta:{requiresAuth:!0}},{path:`/companies`,name:`companies`,component:()=>$(()=>import(`./CompanySelectView-BTxwZIWf.js`),__vite__mapDeps([30,1,2,31,6,20,32,33,24,25,27,34])),meta:{requiresAuth:!0}},{path:`/categories`,name:`categories`,component:()=>$(()=>import(`./CategoriesView-CmgGNUmK.js`),__vite__mapDeps([35,1,2,20,17,36,24,25,26,6,27,37,38,39])),meta:{requiresAuth:!0}},{path:`/products`,name:`products`,component:()=>$(()=>import(`./ProductsView-B4EcZOo9.js`),__vite__mapDeps([40,1,2,41,24,25,26,6,42,43,20,44,45,46,28,47])),meta:{requiresAuth:!0}},{path:`/product`,name:`product`,component:()=>$(()=>import(`./ProductDetailView-D1OzQiiN.js`),__vite__mapDeps([48,1,2,7,31,6,20,24,25,49,26,27,42,38,28,50])),meta:{requiresAuth:!0}},{path:`/catalogs`,name:`catalogs`,component:()=>$(()=>import(`./CatalogsHubView-CNo_eP3-.js`),__vite__mapDeps([51,1,2,7,31,6,20,24,25,26,27,52,45,46,37,53])),meta:{requiresAuth:!0}},{path:`/catalogs/:catalogId`,name:`catalog-detail`,component:()=>$(()=>import(`./CatalogDetailView-BL7FIVct.js`),__vite__mapDeps([54,1,2,7,31,6,20,24,25,49,26,27,52,42,55])),meta:{requiresAuth:!0}},{path:`/catalog-request`,name:`catalog-request`,component:()=>$(()=>import(`./CatalogRequestView-DJSH6bVf.js`),__vite__mapDeps([56,1,2,7,24,25,26,6,43,20,44,57,58])),meta:{requiresAuth:!0}},{path:`/catalog-requests`,name:`catalog-requests`,component:()=>$(()=>import(`./CatalogRequestsView-DKI4qAxI.js`),__vite__mapDeps([59,1,2,7,43,20,44,57,6,60])),meta:{requiresAuth:!0}},{path:`/favorites`,name:`favorites`,component:()=>$(()=>import(`./FavoritesView-BMYycFs8.js`),__vite__mapDeps([61,1,2,24,25,26,6,43,20,44,28,62])),meta:{requiresAuth:!0}},{path:`/customers`,name:`customers`,component:()=>$(()=>import(`./CustomersView-C8PSBTXL.js`),__vite__mapDeps([63,1,2,7,41,24,25,26,6,43,20,44,45,46,64])),meta:{requiresAuth:!0}},{path:`/customers/new`,name:`customer-new`,component:()=>$(()=>import(`./CustomerCreateView-jg0OBdWH.js`),__vite__mapDeps([65,1,2,6,7,8,9,10,12,26,27,43,20,44,66,67,68])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/customer`,name:`customer`,component:()=>$(()=>import(`./CustomerDetailView-Br6csGlE.js`),__vite__mapDeps([69,1,2,7,70,11,21,71,24,25,26,6,43,20,44,72,73])),meta:{requiresAuth:!0}},{path:`/meeting-report`,name:`meeting-report`,component:()=>$(()=>import(`./MeetingReportView-WBp3aKwI.js`),__vite__mapDeps([74,1,2,75,11,21,71,24,25,26,6,43,20,44,72,76])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/reminders`,name:`reminders`,component:()=>$(()=>import(`./RemindersView-DIKKpasp.js`),__vite__mapDeps([77,1,2,7,20,78,24,25,26,6,27,79])),meta:{requiresAuth:!0}},{path:`/reminder`,name:`reminder`,component:()=>$(()=>import(`./ReminderDetailView-CQX6_0TU.js`),__vite__mapDeps([80,1,2,24,25,26,6,43,20,44,81])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/companies/:companyId/catalogs`,name:`company-catalogs`,component:()=>$(()=>import(`./CatalogListView-C_xOF3_z.js`),__vite__mapDeps([82,1,2,31,6,83,84,24,25,43,20,44,45,46,85])),meta:{requiresAuth:!0}},{path:`/companies/:companyId/catalogs/:catalogId/products`,name:`company-products`,redirect:e=>({path:`/products`,query:{catalogId:String(e.params.catalogId??``),companyId:String(e.params.companyId??``)}})},{path:`/cart`,name:`cart`,component:()=>$(()=>import(`./CartView-C0jwRPr9.js`),__vite__mapDeps([86,1,2,7,83,84,20,9,10,17,87,88,71,36,89])),meta:{requiresAuth:!0}},{path:`/orders`,name:`orders`,component:()=>$(()=>import(`./OrdersView-DAbh5y-5.js`),__vite__mapDeps([90,1,2,7,31,6,83,84,70,20,32,33,75,41,78,91])),meta:{requiresAuth:!0}},{path:`/order`,name:`order-query`,redirect:e=>{let t=String(e.query.id??``);return t?{path:`/orders/${t}`}:{name:`orders`}}},{path:`/orders/:id`,name:`order-detail`,component:()=>$(()=>import(`./OrderDetailView-BG1gJZnJ.js`),__vite__mapDeps([92,1,2,15,16,7,8,70,20,9,10,12,93,66,67,94,95,96])),meta:{requiresAuth:!0}},{path:`/orders/:id/success`,name:`order-success`,component:()=>$(()=>import(`./OrderSuccessView-DAGntLe0.js`),__vite__mapDeps([97,1,2,7,27,43,20,44,98])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/settlement`,name:`settlement`,component:()=>$(()=>import(`./SettlementTypeView-CNPLLs4b.js`),__vite__mapDeps([99,1,2,7,9,10,87,88,43,20,44,93,100,101,102])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/cash`,name:`cash-settlement`,component:()=>$(()=>import(`./CashSettlementView-Clk-HI89.js`),__vite__mapDeps([103,1,2,7,31,6,43,20,44,100,93,104])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/check-mode`,name:`check-mode`,component:()=>$(()=>import(`./CheckModeSelectView-C8EtFh3p.js`),__vite__mapDeps([105,1,2,7,21,43,20,44,100,93,101,106])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/check-form`,name:`check-form`,component:()=>$(()=>import(`./CheckFormView-CVv1VLYW.js`),__vite__mapDeps([107,1,2,7,8,9,10,12,43,20,44,100,93,66,67,94,95,101,108])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/orders/:id/check-list`,name:`check-list`,component:()=>$(()=>import(`./CheckListView-DkR4Ltru.js`).then(e=>e.n),__vite__mapDeps([109,1,2,7,83,84,20,9,10,100,93,110])),meta:{requiresAuth:!0,hideNav:!0}},{path:`/profile`,name:`profile`,component:()=>$(()=>import(`./ProfileView-DAXufKBC.js`),__vite__mapDeps([111,1,2,7,70,24,25,26,6,112])),meta:{requiresAuth:!0}},{path:`/profile/edit`,name:`profile-edit`,component:()=>$(()=>import(`./ProfileEditView-dnVuGX6w.js`),__vite__mapDeps([113,1,2,9,10,12,66,67,114,20,115,116])),meta:{requiresAuth:!0}},{path:`/profile/security`,name:`profile-security`,component:()=>$(()=>import(`./ProfileSecurityView-KJcwzopX.js`),__vite__mapDeps([117,1,2,9,10,12,66,67,114,20,115,118])),meta:{requiresAuth:!0}},{path:`/profile/notifications`,name:`profile-notifications`,component:()=>$(()=>import(`./ProfileNotificationsView-BDtqUYZj.js`),__vite__mapDeps([119,1,2,7,83,84,114,20,115,120])),meta:{requiresAuth:!0}},{path:`/profile/display`,name:`profile-display`,component:()=>$(()=>import(`./ProfileDisplayView-ufvTk2u8.js`),__vite__mapDeps([121,1,2,16,114,20,115,122])),meta:{requiresAuth:!0}},{path:`/profile/checks`,name:`profile-checks`,component:()=>$(()=>import(`./ProfileChecksView-wOLfVfr3.js`),__vite__mapDeps([123,109,1,2,7,83,84,20,9,10,100,93,110])),meta:{requiresAuth:!0}}],scrollBehavior(){return{top:0}}});wi.beforeEach(e=>{let t=vr();return e.meta.requiresAuth&&!t?e.name===`home`||e.path===`/`?{name:`welcome`}:{name:`welcome`,query:{redirect:e.fullPath}}:e.meta.guest&&t||e.meta.agentOnly&&gr()?.appRole!==`agent`?{name:`home`}:!0});var Ti=de(bi),Ei=pe();Ti.use(Ei),Ti.use(wi),Vr(Ei),Ti.mount(`#app`);export{Ln as C,Rn as S,Z as T,rr as _,Vr as a,Bn as b,Rr as c,Mr as d,Ar as f,Or as g,Dr as h,Ur as i,Lr as l,Er as m,ui as n,Br as o,jr as p,Kr as r,zr as s,pi as t,Nr as u,er as v,In as w,zn as x,Vn as y};
\ No newline at end of file
diff --git a/dist/assets/level-medal-yo6AWjPx.webp b/dist/assets/level-medal-yo6AWjPx.webp
new file mode 100644
index 0000000..dbdf3ad
Binary files /dev/null and b/dist/assets/level-medal-yo6AWjPx.webp differ
diff --git a/dist/assets/quick-catalog-request-DBOA8vbZ.webp b/dist/assets/quick-catalog-request-DBOA8vbZ.webp
new file mode 100644
index 0000000..7671938
Binary files /dev/null and b/dist/assets/quick-catalog-request-DBOA8vbZ.webp differ
diff --git a/dist/assets/quick-categories-grid-BcZY1Wu0.webp b/dist/assets/quick-categories-grid-BcZY1Wu0.webp
new file mode 100644
index 0000000..6275de2
Binary files /dev/null and b/dist/assets/quick-categories-grid-BcZY1Wu0.webp differ
diff --git a/dist/assets/quick-club-crown-C-NrSU3x.webp b/dist/assets/quick-club-crown-C-NrSU3x.webp
new file mode 100644
index 0000000..808f9e8
Binary files /dev/null and b/dist/assets/quick-club-crown-C-NrSU3x.webp differ
diff --git a/dist/assets/quick-new-products-DBGxsuVa.webp b/dist/assets/quick-new-products-DBGxsuVa.webp
new file mode 100644
index 0000000..cda383a
Binary files /dev/null and b/dist/assets/quick-new-products-DBGxsuVa.webp differ
diff --git a/dist/assets/useGoBack-yePcdjuj.js b/dist/assets/useGoBack-CgNp0uP9.js
similarity index 61%
rename from dist/assets/useGoBack-yePcdjuj.js
rename to dist/assets/useGoBack-CgNp0uP9.js
index 289f8b5..2a28c5f 100644
--- a/dist/assets/useGoBack-yePcdjuj.js
+++ b/dist/assets/useGoBack-CgNp0uP9.js
@@ -1 +1 @@
-import{_ as e}from"./BasicIcon-B6lR-mG3.js";function t(t=`/`){let n=e();function r(){if(window.history.length>1){n.back();return}n.push(t)}return{goBack:r}}export{t};
\ No newline at end of file
+import{_ as e}from"./BasicIcon-C6boaehV.js";function t(t=`/`){let n=e();function r(){if(window.history.length>1){n.back();return}n.push(t)}return{goBack:r}}export{t};
\ No newline at end of file
diff --git a/dist/assets/useRequirePricedOrder-BBPnO4DF.js b/dist/assets/useRequirePricedOrder-BBPnO4DF.js
new file mode 100644
index 0000000..c324855
--- /dev/null
+++ b/dist/assets/useRequirePricedOrder-BBPnO4DF.js
@@ -0,0 +1 @@
+import{A as e,_ as t,g as n,tt as r}from"./BasicIcon-C6boaehV.js";import{d as i}from"./index-spodxsRN.js";import{n as a}from"./orderInvoice-B0L1Aeuk.js";function o(){let o=n(),s=t(),c=i(),l=e(()=>o.params.id),u=e(()=>c.getOrderById(l.value)),d=e(()=>a(u.value));function f(e){e&&(a(e)||s.replace(`/orders/${e.id}`))}return r(l,async e=>{e&&f(c.getOrderById(e)??await c.fetchOrder(e))},{immediate:!0}),r(u,e=>{f(e)}),{orderId:l,order:u,invoiceReady:d}}export{o as t};
\ No newline at end of file
diff --git a/dist/assets/useRequirePricedOrder-BVRY4vCB.js b/dist/assets/useRequirePricedOrder-BVRY4vCB.js
deleted file mode 100644
index 88d2466..0000000
--- a/dist/assets/useRequirePricedOrder-BVRY4vCB.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as e,et as t,g as n,k as r}from"./BasicIcon-B6lR-mG3.js";import{g as i}from"./index-B20WsQhf.js";import{n as a}from"./orderInvoice-B0L1Aeuk.js";function o(){let o=n(),s=e(),c=i(),l=r(()=>o.params.id),u=r(()=>c.getOrderById(l.value)),d=r(()=>a(u.value));function f(e){e&&(a(e)||s.replace(`/orders/${e.id}`))}return t(l,async e=>{e&&f(c.getOrderById(e)??await c.fetchOrder(e))},{immediate:!0}),t(u,e=>{f(e)}),{orderId:l,order:u,invoiceReady:d}}export{o as t};
\ No newline at end of file
diff --git a/dist/index.html b/dist/index.html
index 8129738..528d3ba 100644
--- a/dist/index.html
+++ b/dist/index.html
@@ -6,16 +6,16 @@
سامانه سفارش عمده پارچه
-
-
-
-
-
+
+
+
+
+
-
+
-
+
diff --git a/src/assets/images/level-medal.webp b/src/assets/images/level-medal.webp
new file mode 100644
index 0000000..dbdf3ad
Binary files /dev/null and b/src/assets/images/level-medal.webp differ
diff --git a/src/assets/images/quick-catalog-request.webp b/src/assets/images/quick-catalog-request.webp
new file mode 100644
index 0000000..7671938
Binary files /dev/null and b/src/assets/images/quick-catalog-request.webp differ
diff --git a/src/assets/images/quick-categories-grid.webp b/src/assets/images/quick-categories-grid.webp
new file mode 100644
index 0000000..6275de2
Binary files /dev/null and b/src/assets/images/quick-categories-grid.webp differ
diff --git a/src/assets/images/quick-club-crown.webp b/src/assets/images/quick-club-crown.webp
new file mode 100644
index 0000000..808f9e8
Binary files /dev/null and b/src/assets/images/quick-club-crown.webp differ
diff --git a/src/assets/images/quick-new-products.webp b/src/assets/images/quick-new-products.webp
new file mode 100644
index 0000000..cda383a
Binary files /dev/null and b/src/assets/images/quick-new-products.webp differ
diff --git a/src/assets/styles/main.css b/src/assets/styles/main.css
index 9374512..56317c5 100644
--- a/src/assets/styles/main.css
+++ b/src/assets/styles/main.css
@@ -442,6 +442,11 @@ input[type='number'] {
display: none !important;
}
+.desktop-only-flex,
+.desktop-only-grid {
+ display: none !important;
+}
+
.mobile-hidden {
display: block;
}
diff --git a/src/components/layout/BottomNav.vue b/src/components/layout/BottomNav.vue
index 32e9430..c973376 100644
--- a/src/components/layout/BottomNav.vue
+++ b/src/components/layout/BottomNav.vue
@@ -2,7 +2,7 @@
import { computed } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { useCartStore } from '@/stores/cart'
-import { MAIN_NAV_ITEMS, isNavItemActive } from '@/utils/navigation'
+import { MAIN_NAV_ITEMS, isNavItemActive, resolveCartNavPath } from '@/utils/navigation'
const route = useRoute()
const router = useRouter()
@@ -14,9 +14,9 @@ function navigate(path: string, event: Event) {
const target = event.currentTarget
if (target instanceof HTMLElement) target.blur()
- // «ثبت سفارش»: سبد خالی → دستهبندیها؛ در غیر این صورت سبد خرید
- if (path === '/cart' && cartStore.itemCount === 0) {
- router.push('/categories')
+ // «ثبت سفارش»: سبد خالی → کالیتهها؛ در غیر این صورت سبد خرید
+ if (path === '/cart') {
+ router.push(resolveCartNavPath(cartStore.itemCount))
return
}
router.push(path)
diff --git a/src/components/layout/DesktopHeader.vue b/src/components/layout/DesktopHeader.vue
index db27fe6..120132f 100644
--- a/src/components/layout/DesktopHeader.vue
+++ b/src/components/layout/DesktopHeader.vue
@@ -45,7 +45,7 @@ function goProfile() {
function logout() {
showUserMenu.value = false
authStore.logout()
- router.replace('/login')
+ router.replace('/welcome')
}
diff --git a/src/components/layout/DesktopSidebar.vue b/src/components/layout/DesktopSidebar.vue
index 028c1f5..63e6ed2 100644
--- a/src/components/layout/DesktopSidebar.vue
+++ b/src/components/layout/DesktopSidebar.vue
@@ -2,10 +2,10 @@
import { computed } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { useCartStore } from '@/stores/cart'
-import { useOrderStore } from '@/stores/order'
import {
DESKTOP_NAV_ITEMS,
isNavItemActive,
+ resolveCartNavPath,
resolveNavPath,
} from '@/utils/navigation'
import IconHeadset from '@/components/icons/IconHeadset.vue'
@@ -14,15 +14,17 @@ import IconQemashMark from '@/components/icons/IconQemashMark.vue'
const route = useRoute()
const router = useRouter()
const cartStore = useCartStore()
-const orderStore = useOrderStore()
const cartCount = computed(() => cartStore.itemCount)
-const draftCheckCount = computed(() => orderStore.draftChecks.length)
const activeCompanyId = computed(
() => cartStore.selectedCompanyId || cartStore.activeCart?.companyId || null,
)
function navigate(item: (typeof DESKTOP_NAV_ITEMS)[number]) {
+ if (item.name === 'cart') {
+ router.push(resolveCartNavPath(cartStore.itemCount))
+ return
+ }
router.push(resolveNavPath(item, activeCompanyId.value))
}
@@ -53,9 +55,6 @@ function navigate(item: (typeof DESKTOP_NAV_ITEMS)[number]) {
-
diff --git a/src/router/index.ts b/src/router/index.ts
index a294d87..03801ba 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -250,7 +250,10 @@ router.beforeEach((to) => {
const authed = isAuthenticated()
if (to.meta.requiresAuth && !authed) {
- return { name: 'login', query: { redirect: to.fullPath } }
+ if (to.name === 'home' || to.path === '/') {
+ return { name: 'welcome' }
+ }
+ return { name: 'welcome', query: { redirect: to.fullPath } }
}
if (to.meta.guest && authed) {
diff --git a/src/services/agentApi.ts b/src/services/agentApi.ts
index 88e615e..ab3362a 100644
--- a/src/services/agentApi.ts
+++ b/src/services/agentApi.ts
@@ -38,6 +38,7 @@ export type BrowseProductDto = {
weightGrams?: number
weaveType?: string
colors?: string[]
+ colorImages?: Array
tags?: string[]
isNew?: boolean
subtitle?: string
@@ -63,14 +64,42 @@ async function agentRequest(path: string, options?: Parameters
- seasons: Array<{ id: string; title: string; description: string; imageUrl?: string }>
+ usage: Array<{
+ id: string
+ title: string
+ subtitle: string
+ imageUrl?: string
+ showTitle?: boolean
+ showSubtitle?: boolean
+ }>
+ seasons: Array<{
+ id: string
+ title: string
+ description: string
+ imageUrl?: string
+ showTitle?: boolean
+ showDescription?: boolean
+ }>
}>('/catalog/categories')
} catch {
try {
return await apiRequest<{
- usage: Array<{ id: string; title: string; subtitle: string; imageUrl?: string }>
- seasons: Array<{ id: string; title: string; description: string; imageUrl?: string }>
+ usage: Array<{
+ id: string
+ title: string
+ subtitle: string
+ imageUrl?: string
+ showTitle?: boolean
+ showSubtitle?: boolean
+ }>
+ seasons: Array<{
+ id: string
+ title: string
+ description: string
+ imageUrl?: string
+ showTitle?: boolean
+ showDescription?: boolean
+ }>
}>('/products/meta/categories')
} catch {
return getCatalogCategories()
@@ -103,6 +132,9 @@ export type AppBannerDto = {
ctaLabel: string
ctaLink: string
imageUrl: string
+ showTitle?: boolean
+ showSubtitle?: boolean
+ showCta?: boolean
}
export async function fetchBanners(slot?: string) {
diff --git a/src/stores/crm.ts b/src/stores/crm.ts
index 9b3e634..1fbd1f4 100644
--- a/src/stores/crm.ts
+++ b/src/stores/crm.ts
@@ -38,6 +38,7 @@ function mapProduct(p: {
weightGrams?: number
weaveType?: string
colors?: string[]
+ colorImages?: Array
tags?: string[]
isNew?: boolean
subtitle?: string
@@ -56,9 +57,11 @@ function mapProduct(p: {
weightGrams: p.weightGrams,
weaveType: p.weaveType,
colors: p.colors?.length ? p.colors : ['#6b7280'],
+ colorImages: p.colorImages,
tags: p.tags ?? [],
isNew: !!p.isNew,
- imageUrl: p.imageUrl || p.imageUrls?.[0],
+ imageUrl: p.imageUrl || p.colorImages?.find(Boolean) || p.imageUrls?.[0],
+ imageUrls: p.imageUrls,
subtitle: p.subtitle,
rollMeters: p.rollMeters ?? 50,
companyId: p.companyId,
@@ -121,6 +124,7 @@ export const useCrmStore = defineStore('crm', () => {
weightGrams?: number
weaveType?: string
colors?: string[]
+ colorImages?: Array
tags?: string[]
isNew?: boolean
subtitle?: string
diff --git a/src/types/crm.ts b/src/types/crm.ts
index cedb2c7..532ca61 100644
--- a/src/types/crm.ts
+++ b/src/types/crm.ts
@@ -63,6 +63,10 @@ export interface ProductCategory {
title: string
subtitle: string
imageUrl?: string
+ icon?: string
+ showTitle?: boolean
+ showSubtitle?: boolean
+ showIcon?: boolean
}
export interface SeasonCategory {
@@ -70,6 +74,12 @@ export interface SeasonCategory {
title: string
description: string
imageUrl?: string
+ ctaLabel?: string
+ icon?: string
+ showTitle?: boolean
+ showDescription?: boolean
+ showCta?: boolean
+ showIcon?: boolean
}
export interface CatalogProductCard {
@@ -83,6 +93,8 @@ export interface CatalogProductCard {
weightGrams?: number
weaveType?: string
colors: string[]
+ colorImages?: Array
+ imageUrls?: string[]
tags: string[]
isNew: boolean
imageUrl?: string
diff --git a/src/utils/catalogGallery.ts b/src/utils/catalogGallery.ts
index 5e54a9f..78286f7 100644
--- a/src/utils/catalogGallery.ts
+++ b/src/utils/catalogGallery.ts
@@ -25,6 +25,7 @@ export interface CatalogPatternCard {
imageUrl?: string
colorCount: number
colors: string[]
+ colorImages: Array
kind: PatternKind | 'other'
items: CatalogProductCard[]
}
@@ -87,12 +88,20 @@ export function groupCatalogPatterns(products: CatalogProductCard[]): CatalogPat
),
),
]
+ const colorImages = colors.map((name) => {
+ for (const item of items) {
+ const idx = item.colors.indexOf(name)
+ if (idx >= 0 && item.colorImages?.[idx]) return item.colorImages[idx] ?? undefined
+ }
+ return undefined
+ })
return {
id: items[0].id,
name: items[0].name,
- imageUrl: items.find((item) => item.imageUrl)?.imageUrl,
+ imageUrl: colorImages.find(Boolean) || items.find((item) => item.imageUrl)?.imageUrl,
colorCount: Math.max(colors.length, items.length),
colors: colors.slice(0, 5),
+ colorImages: colorImages.slice(0, 5),
kind: patternKindOf(items[0]),
items,
}
diff --git a/src/utils/categoryIcons.ts b/src/utils/categoryIcons.ts
new file mode 100644
index 0000000..96e3071
--- /dev/null
+++ b/src/utils/categoryIcons.ts
@@ -0,0 +1,26 @@
+import type { Component } from 'vue'
+import IconBolt from '@/components/icons/IconBolt.vue'
+import IconFeather from '@/components/icons/IconFeather.vue'
+import IconDiamond from '@/components/icons/IconDiamond.vue'
+import IconLayoutGrid from '@/components/icons/IconLayoutGrid.vue'
+import IconShoppingBag from '@/components/icons/IconShoppingBag.vue'
+import IconIdCard from '@/components/icons/IconIdCard.vue'
+import IconCatalog from '@/components/icons/IconCatalog.vue'
+import IconHeadset from '@/components/icons/IconHeadset.vue'
+import IconHome from '@/components/icons/IconHome.vue'
+
+export const CATEGORY_ICON_MAP: Record = {
+ bolt: IconBolt,
+ feather: IconFeather,
+ diamond: IconDiamond,
+ grid: IconLayoutGrid,
+ bag: IconShoppingBag,
+ 'id-card': IconIdCard,
+ catalog: IconCatalog,
+ headset: IconHeadset,
+ home: IconHome,
+}
+
+export function categoryIconOf(icon?: string, fallback: Component = IconDiamond) {
+ return (icon && CATEGORY_ICON_MAP[icon]) || fallback
+}
diff --git a/src/utils/colorSwatch.ts b/src/utils/colorSwatch.ts
new file mode 100644
index 0000000..08e9da7
--- /dev/null
+++ b/src/utils/colorSwatch.ts
@@ -0,0 +1,34 @@
+export function isCssColorToken(value: string) {
+ const token = value.trim()
+ if (!token || /[\u0600-\u06FF]/.test(token)) return false
+ return (
+ token.startsWith('#') ||
+ /^(rgb|hsl)a?\(/i.test(token) ||
+ /^(transparent|currentcolor|black|white|navy|beige|gray|grey|red|blue|green|brown|gold|silver|ivory|khaki|olive|teal|maroon|purple|orange|pink|cyan|magenta|lime|aqua|fuchsia|indigo|violet|tan|wheat|snow)$/i.test(
+ token,
+ )
+ )
+}
+
+export function colorSwatchStyle(color: string, imageUrl?: string | null) {
+ if (imageUrl) {
+ return {
+ backgroundImage: `url(${imageUrl})`,
+ backgroundSize: 'cover',
+ backgroundPosition: 'center',
+ backgroundRepeat: 'no-repeat',
+ }
+ }
+ if (isCssColorToken(color)) return { background: color }
+ return { background: '#c5cdc9' }
+}
+
+export function colorImageAt(
+ colors: string[],
+ colorImages: Array | undefined,
+ imageUrls: string[] | undefined,
+ index: number,
+ fallback?: string,
+) {
+ return colorImages?.[index] || imageUrls?.[index] || fallback || ''
+}
diff --git a/src/utils/navigation.ts b/src/utils/navigation.ts
index bb72fc0..940c90c 100644
--- a/src/utils/navigation.ts
+++ b/src/utils/navigation.ts
@@ -4,7 +4,6 @@ import IconCart from '@/components/icons/IconCart.vue'
import IconOrders from '@/components/icons/IconOrders.vue'
import IconProfile from '@/components/icons/IconProfile.vue'
import IconCatalog from '@/components/icons/IconCatalog.vue'
-import IconCheckBook from '@/components/icons/IconCheckBook.vue'
import IconPlus from '@/components/icons/IconPlus.vue'
export interface NavItem {
@@ -15,7 +14,7 @@ export interface NavItem {
dynamicPath?: boolean
}
-/** Mobile bottom navigation — mockup shell with center FAB */
+/** Mobile bottom navigation — center FAB for سفارش */
export const MAIN_NAV_ITEMS: NavItem[] = [
{ name: 'home', path: '/', label: 'خانه', icon: IconHome },
{ name: 'catalogs', path: '/catalogs', label: 'کالیتهها', icon: IconCatalog },
@@ -24,13 +23,15 @@ export const MAIN_NAV_ITEMS: NavItem[] = [
{ name: 'profile', path: '/profile', label: 'پروفایل', icon: IconProfile },
]
-/** Desktop sidebar — matches mockup */
+/**
+ * Desktop sidebar — same destinations as mobile.
+ * FAB becomes a normal «سبد / ثبت سفارش» item (better for mouse UI).
+ */
export const DESKTOP_NAV_ITEMS: NavItem[] = [
{ name: 'home', path: '/', label: 'خانه', icon: IconHome },
- { name: 'ordering', path: '/', label: 'سفارشگذاری', icon: IconCatalog, dynamicPath: true },
- { name: 'cart', path: '/cart', label: 'سبد خرید', icon: IconCart },
+ { name: 'catalogs', path: '/catalogs', label: 'کالیتهها', icon: IconCatalog },
+ { name: 'cart', path: '/cart', label: 'ثبت سفارش', icon: IconCart },
{ name: 'orders', path: '/orders', label: 'سفارشها', icon: IconOrders },
- { name: 'checks', path: '/profile/checks', label: 'لیست چکها', icon: IconCheckBook },
{ name: 'profile', path: '/profile', label: 'پروفایل', icon: IconProfile },
]
@@ -51,14 +52,6 @@ const CATALOG_PATHS = [
]
export function isNavItemActive(name: string, path: string, currentPath: string): boolean {
- if (name === 'ordering') {
- return (
- currentPath.startsWith('/categories') ||
- currentPath.startsWith('/products') ||
- currentPath.startsWith('/product') ||
- currentPath.startsWith('/catalogs')
- )
- }
if (name === 'home') {
return currentPath === '/'
}
@@ -67,24 +60,25 @@ export function isNavItemActive(name: string, path: string, currentPath: string)
(p) => currentPath === p || currentPath.startsWith(`${p}/`),
)
}
- if (name === 'order-fab') {
+ if (name === 'order-fab' || name === 'cart') {
return currentPath === '/cart' || currentPath.startsWith('/cart/')
}
- if (name === 'checks') {
- return currentPath.startsWith('/profile/checks')
- }
if (name === 'profile') {
- return currentPath === '/profile'
+ return currentPath === '/profile' || currentPath.startsWith('/profile/')
}
- if (path === '/profile') return currentPath === '/profile'
if (path === '/') return currentPath === '/'
return currentPath.startsWith(path)
}
export function resolveNavPath(
item: NavItem,
- activeCompanyId: string | null | undefined,
+ _activeCompanyId: string | null | undefined,
): string {
- if (item.name === 'ordering') return getOrderingPath(activeCompanyId)
return item.path
}
+
+/** Empty cart: mirror mobile FAB → browse catalogs */
+export function resolveCartNavPath(cartItemCount: number): string {
+ if (cartItemCount === 0) return '/catalogs'
+ return '/cart'
+}
diff --git a/src/views/OrdersView.vue b/src/views/OrdersView.vue
index 12e0198..aafa8f8 100644
--- a/src/views/OrdersView.vue
+++ b/src/views/OrdersView.vue
@@ -88,7 +88,7 @@ const desktopFilterTabs: { id: DesktopOrderFilterId; label: string }[] = [
@set-desktop-filter="setDesktopFilter"
@select="goToOrder"
@set-page="setPage"
- @new-order="router.push('/categories')"
+ @new-order="router.push('/catalogs')"
/>
diff --git a/src/views/cart/CartView.vue b/src/views/cart/CartView.vue
index 35e2b3d..0aeb669 100644
--- a/src/views/cart/CartView.vue
+++ b/src/views/cart/CartView.vue
@@ -24,7 +24,7 @@ const {
} = useCartPage()
function goToOrdering() {
- router.push('/categories')
+ router.push('/catalogs')
}
diff --git a/src/views/cart/components/DesktopCartPage.vue b/src/views/cart/components/DesktopCartPage.vue
index 6093e63..52262cb 100644
--- a/src/views/cart/components/DesktopCartPage.vue
+++ b/src/views/cart/components/DesktopCartPage.vue
@@ -3,7 +3,6 @@ import { useRouter } from 'vue-router'
import CheckoutStepper from '@/components/layout/CheckoutStepper.vue'
import IconCart from '@/components/icons/IconCart.vue'
import IconTrash from '@/components/icons/IconTrash.vue'
-import IconBuilding from '@/components/icons/IconBuilding.vue'
import IconChevronLeft from '@/components/icons/IconChevronLeft.vue'
import IconOrders from '@/components/icons/IconOrders.vue'
import IconClipboardEmpty from '@/components/icons/IconClipboardEmpty.vue'
@@ -41,18 +40,18 @@ const router = useRouter()
const quickLinks = [
{
- title: 'انتخاب شرکت',
- desc: 'شروع سفارش از انتخاب شرکت',
- icon: IconBuilding,
+ title: 'کالیتهها',
+ desc: 'مرور کالیته و طرحها',
+ icon: IconLayoutGrid,
tone: 'blue',
- action: () => emit('selectCompany'),
+ action: () => router.push('/catalogs'),
},
{
- title: 'سفارشگذاری',
- desc: 'مشاهده کاتالوگ و افزودن کالا',
- icon: IconCart,
+ title: 'دستهبندی',
+ desc: 'مشاهده محصولات بر اساس کاربرد',
+ icon: IconDiamond,
tone: 'green',
- action: () => emit('back'),
+ action: () => router.push('/categories'),
},
{
title: 'سفارشهای من',
@@ -92,12 +91,12 @@ const quickLinks = [