इस प्रोजेक्ट के बारे में

Marigold, Marigold Design System का एक React कार्यान्वयन है, जिसे सुलभ व्यवहार (accessible behaviour) के लिए react-aria और स्टाइलिंग के लिए Tailwind CSS के ऊपर बनाया गया है। यह रिपॉजिटरी एक monorepo है जिसमें कंपोनेंट लाइब्रेरी, थीमिंग, डॉक्यूमेंटेशन और टेस्टिंग एक ही स्थान पर शामिल हैं। रिपॉजिटरी में क्या शामिल है - कंपोनेंट और सिस्टम सोर्स फोल्डर, जिन्हें पैकेज के रूप में बनाया गया है; CLI कमांड्स "components and theme packages" को बिल्ड टारगेट के रूप में संदर्भित करते हैं, और प्रकाशित npm पैकेज `@marigold/components` है। - थीम पैकेज, जिन्हें एक समर्पित `pnpm build:themes` टास्क के माध्यम से बनाया गया है, ताकि एक ही कंपोनेंट सेट को अलग-अलग थीम आउटपुट के साथ जोड़ा जा सके। - Next.js के साथ बनाया गया एक डॉक्यूमेंटेशन ऐप, जिसे `pnpm dev` (localhost:3000) के साथ देव मोड में और `pnpm start` के साथ प्रोडक्शन मोड में चलाया जाता है। इसमें `pnpm build:component-props` और एक "registry" टास्क के माध्यम से जनरेट की गई कंपोनेंट प्रॉप टेबल शामिल हैं। - एक Storybook वर्कस्पेस जिसे localhost:6006 पर `pnpm sb` के साथ शुरू किया जाता है, साथ ही Storybook-आधारित कंपोनेंट टेस्ट (`pnpm test:sb`) और एक Storybook बिल्ड टास्क। टूलिंग और क्वालिटी चेक पूरे प्रोजेक्ट में TypeScript का उपयोग किया गया है, जिसमें `pnpm typecheck` पहले डॉक्स बनाता है और फिर बिना एमिट के टाइप चेकिंग चलाता है। टेस्ट Vitest पर चलते हैं, जिसमें कवरेज और एक CI-ओरिएंटेड वेरिएंट शामिल है। लिंटिंग को कोड के लिए ESLint और डॉक्यूमेंटेशन गद्य (prose) के लिए Vale के बीच विभाजित किया गया है, और फॉर्मेटिंग Prettier द्वारा अलग-अलग चेक और फिक्स कमांड के साथ संभाली जाती है। एक `clean` कमांड बिल्ड आर्टिफैक्ट्स, डिपेंडेंसी और dist, .next, .turbo, coverage और storybook-static जैसे कैश को हटा देता है। रिलीज़ रिलीज़ स्थानीय रूप से नहीं किए जाते हैं: एक GitHub Actions वर्कफ़्लो main में हर पुश पर Changesets एक्शन चलाता है। यह या तो एक "release: version packages" पुल रिक्वेस्ट खोलता है जो लंबित changesets का उपयोग करता है, या मर्ज होने के बाद, अपडेट किए गए पैकेजों को npm पर प्रकाशित करता है। योगदानकर्ता `pnpm changeset` के साथ एक changeset जोड़ते हैं जब किसी बदलाव के कारण वर्जन बम्प (version bump) होना चाहिए। प्री-रिलीज़ `.changeset/pre.json` में रिकॉर्ड किए गए Changesets pre मोड का उपयोग करते हैं; npm dist-tag इसके टैग फ़ील्ड से प्राप्त होता है, इसलिए `pnpm changeset pre enter rc` latest के बजाय "rc" टैग पर प्रकाशित करता है। README दो चेतावनियों का उल्लेख करता है: प्री-रिलीज़ काउंटर टैग के बजाय package.json में वर्जन का पालन करता है, और चैनल बदलने से पिछला dist-tag अपने अंतिम वर्जन पर पिन रह जाता है, इसलिए इसे प्रति पैकेज पुन: पॉइंट या हटाया जाना चाहिए। स्थानीय रूप से शुरुआत करना रिपॉजिटरी को क्लोन करें, pnpm के साथ डिपेंडेंसी इंस्टॉल करें, और डेवलपमेंट, बिल्डिंग, टेस्टिंग, लिंटिंग, फॉर्मेटिंग और टाइप चेकिंग के लिए डॉक्यूमेंटेड कमांड टेबल का उपयोग करें। README नए उपयोगकर्ताओं को इंस्टॉलेशन निर्देशों के लिए Marigold डॉक्यूमेंटेशन साइट और नवीनतम परिवर्तनों के लिए रिलीज़ नोट्स पेज पर निर्देशित करता है। यह प्रोजेक्ट MIT लाइसेंस के तहत प्रकाशित है। README कंपोनेंट काउंट, परफॉरमेंस या एडॉप्शन के बारे में कोई दावा नहीं करता है; उन विवरणों को डॉक्यूमेंटेशन साइट और पैकेज रजिस्ट्री के विरुद्ध जांचना होगा।