منصوبے کے بارے میں

زاگ UI اجزاء بنانے کے لیے محدود حالتی مشینوں کی ایک جاوا اسکرپٹ لائبریری ہے۔ اس کا مقصد ٹیبز، مینوز، موڈلز، ٹول ٹپس اور دیگر عام جزو پیٹرنز کو ہر فریم ورک میں الگ الگ دوبارہ نافذ کرنے سے بچنا ہے۔ بنیادی خیالات: - ایک بار لکھیں، ہر جگہ استعمال کریں: جزو کی تعامل کو کسی فریم ورک سے آزاد طور پر ماڈل کیا جاتا ہے، ری ایکٹ، سولڈ، سولیٹ اور ویو کے لیے ایڈاپٹر فراہم کیے گئے ہیں۔ - قابل رسائی پر توجہ: کی بورڈ تعامل، فوکس مینجمنٹ، اور ARIA کردار و صفات کا خیال رکھا جاتا ہے۔ - ہیڈلیس: مشین APIs مکمل طور پر غیر مستقل ہیں، اسٹائلنگ کا انتخاب ڈویلپر پر چھوڑا گیا ہے۔ - حالتی مشینیں: عمل状态چارٹس کے خیالات پر مبنی ہے، حالانکہ README بتاتی ہے کہ یہ SCXML معیار کی پیروی نہیں کرتی۔ استعمال کا طریقہ: مشینیں جزو کے لحاظ سے الگ پیکیجز میں شائع ہوتی ہیں، مثال کے طور پر @zag-js/dialog اور @zag-js/tooltip۔ فریم ورک ریپرز جیسے @zag-js/react، @zag-js/vue، @zag-js/solid اور @zag-js/svelte ایپلیکیشن کے اندر مشین استعمال کرنے کی اجازت دیتے ہیں۔ React مثال useMachine اور connect(service, normalizeProps) دکھاتی ہے۔ راهنم اصول: مشینیں WAI-ARIA آؤتھرنگ پریکٹس کے مطابق ماڈل کی جاتی ہیں؛ ہر جزو کے لیے end-to-end tests لکھے جاتے ہیں تاکہ رویہ تمام فریم ورکس میں مستقل رہے؛ مشینیں ہلکی پھلکی اور سادہ رہتی ہیں۔ ذخیرہ اور کام کا جائزہ: - دستاویزات اور changelog README سے منسلک ہیں (zagjs.com اور CHANGELOG.md)۔ - تعمیر esbuild اور turborepo استعمال کرتی ہے، CJS، ESM اور DTS output پیدا کرتی ہے۔ - React (Next.js TypeScript)، Vue 3، Solid اور Svelte کے لیے starter examples موجود ہیں۔ - end-to-end tests Playwright استعمال کرتی ہیں۔ - نئی مشین یا utility package scaffold کرنے کے لیے generator commands فراہم ہیں۔ - دیگر commands tests، linting، build اور website چلانے کے لیے ہیں۔ README میں Chakra UI کے React اور Vue implementions، pure UI patterns، Material Components Web، Radix UI، XState، Vue.js، Lit اور Sonner سے متاثر ہو کر بنایا گیا ہے۔ project MIT لائسنس کے تحت Chakra Systems Inc. کے تحت برقرار ہے۔