1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2273],{32273:(e,a,t)=>{t.r(a),t.d(a,{CANONICAL_SANKALP_COLLECTIONS:()=>C,CANONICAL_SANKALP_REGISTRY:()=>M,DurablePracticeEventLedger:()=>eQ,GANESH_UTSAV_2026_DEFINITIONS:()=>f,GANESH_UTSAV_CAMPAIGNS:()=>b,GANESH_UTSAV_COLLECTION:()=>w,GANESH_UTSAV_FEATURED_IDS:()=>v,GANESH_UTSAV_HUB_PATH:()=>m,GANESH_UTSAV_JOURNEY_GROUP:()=>h,GANESH_UTSAV_SEASON:()=>p,GANESH_UTSAV_STAGES:()=>y,InMemoryPracticeEventLedger:()=>eU,OfflineOutboxEngine:()=>e4,PRACTICE_COORDINATOR_EVENTS:()=>eY,PRACTICE_PROGRESS_EVENT:()=>e$,REGISTRY_VERSION:()=>I,SANKALP_CAUSES:()=>r,SANKALP_DURATIONS:()=>s,SANKALP_EVENTS:()=>G,SETTLEMENT_CONTRACT_VERSION:()=>i,SETTLEMENT_RETRY_POLICY:()=>eM,SUGGESTED_SANKALP_COUNT:()=>u,SUGGESTED_SANKALP_DEFINITIONS:()=>c,abandonSankalp:()=>Q,acquirePracticeCoordinatorRuntime:()=>e2,applyForkOverrides:()=>eL,clearAllSankalps:()=>ek,compareVisibility:()=>eE,completeOpenEndedSankalp:()=>Z,completeSankalpDay:()=>$,createPracticeCoordinator:()=>eW,createReflection:()=>eK,createSankalp:()=>U,createSettlementIntent:()=>eC,definitionMatchesCause:()=>l,definitionsForCause:()=>d,deleteSankalp:()=>eb,emitSankalpEvent:()=>B,ensureProjectedForCampaign:()=>eN,evaluateSankalpStatus:()=>X,filterReflections:()=>ex,findDefinitionByEntityId:()=>ez,findDefinitionById:()=>R,findDefinitionBySlug:()=>A,findDefinitionSourceMatches:()=>eH,getCause:()=>o,getEffectiveTargetDays:()=>_,getGaneshUtsavByStage:()=>T,getGaneshUtsavDefinitions:()=>k,getGaneshUtsavFeatured:()=>S,getPrerequisites:()=>x,getRecommended:()=>j,getRelated:()=>q,getSankalpDetailHref:()=>
1E,getSankalpPracticeHref:()=>K,getSankalpProgress:()=>ee,isEligibleForSettlement:()=>eD,isEligibleForStateObject:()=>eI,isGaneshUtsavSeason:()=>D,isOpenEndedSankalp:()=>z,listCauses:()=>n,loadActiveSankalps:()=>ef,loadAllSankalps:()=>eh,loadAllSankalpsAsync:()=>em,loadSankalp:()=>ep,loadSankalpsByEntity:()=>eg,loadSankalpsByModule:()=>ey,matchDefinitionSource:()=>eB,onSankalpEvent:()=>H,pauseSankalp:()=>Y,projectToSmriti:()=>eG,publishPracticeProgress:()=>eZ,queryRegistry:()=>O,reconcile:()=>e3,recordDayProgress:()=>W,repairSettlement:()=>e8,resolveDefinition:()=>P,resolveEntityId:()=>e_,resolveSyncConflict:()=>ea,resumeSankalp:()=>J,sankalpEvents:()=>F,saveSankalp:()=>ev,saveSankalpsAsync:()=>ew,startPracticeCoordinatorRuntime:()=>eX,validateCampaignCreationPermission:()=>eV,validateForkOverrides:()=>eq,validateReflectionDeletion:()=>ej,validateSettlementContract:()=>eR,validateSettlementIntent:()=>eO,validateSettlementReadiness:()=>eA});let i="1.0",s={PANCHAK:5,DASAMI:10,EKADASHI:11,NAVRATRI:9,EKAVIMSHATI:21,CHATUR_DASHA:40,MANDAL:48},r=[{slug:"nature",label:"Nature",blurb:"Forests, soil, biodiversity, and everyday care for the living world.",icon:"nature",sortOrder:1},{slug:"water",label:"Water",blurb:"Rivers, lakes, rainwater, and local water stewardship.",icon:"water",sortOrder:2},{slug:"education",label:"Education",blurb:"Learning, mentoring, libraries, and knowledge shared openly.",icon:"education",sortOrder:3},{slug:"hunger",label:"Hunger",blurb:"Food, community kitchens, and dignity in nourishment.",icon:"hunger",sortOrder:4},{slug:"heritage",label:"Heritage",blurb:"Temples, manuscripts, languages, and cultural continuity.",icon:"heritage",sortOrder:5},{slug:"wellness",label:"Wellness",blurb:"Body, mind, and steady habits that support daily life.",icon:"wellness",sortOrder:6},{slug:"spiritual",label:"Spiritual Practice",blurb:"Mantra, study, silence, and personal sadhana.",icon:"spiritual",sortOrder:7},{slug:"artisans",label:"Artisans",blurb:"Craft, handloom, and livelihoods rooted in skill.",icon:"artisans",sortOrder:8},{slug:"community",label:"Community",blurb:"Neighborhood seva, festivals, and shared responsibility.",icon:"community",sortOrder:9},{slug:"women",label:"Women",blurb:"Health, skills, and dignity for women and girls.",icon:"women",sortOrder:10},{slug:"children",label:"Children",blurb:"Care, learning, and protection for the young.",icon:"children",sortOrder:11},{slug:"elders",label:"Elders",blurb:"Companionship, care, and respect for older people.",icon:"elders",sortOrder:12}
1,{slug:"animals",label:"Animals",blurb:"Compassion for cattle, birds, strays, and wildlife.",icon:"animals",sortOrder:13},{slug:"farmers",label:"Farmers",blurb:"Soil, seed, and support for those who grow food.",icon:"farmers",sortOrder:14},{slug:"livelihood",label:"Livelihood",blurb:"Local enterprise, skills, and dignified work.",icon:"livelihood",sortOrder:15}];function n(){return[...r].sort((e,a)=>e.sortOrder-a.sortOrder)}function o(e){let a=e.trim().toLowerCase();return r.find(e=>e.slug===a)}function l(e,a){let t=a.trim().toLowerCase(),i=o(t);if(!i)return!1;let s=e.tags.map(e=>e.toLowerCase());return!!(s.includes(t)||s.includes(`cause:${t}`))||e.category.toLowerCase()===i.label.toLowerCase()}function d(e,a){return e.filter(e=>l(e,a)).sort((e,a)=>(e.sortOrder??99)-(a.sortOrder??99))}let c=[{slug:"plant-native-trees",cause:"nature",title:"Plant Native Trees",description:"Plant or care for native trees in your local area, one deliberate action at a time.",whyItMatters:"Native trees restore shade, soil, and habitat where people actually live.",instructions:["Choose a native species suited to your climate.","Plant or water/care for at least one tree each logged day.","Note the place so you can return and tend it."],featured:!0,sortOrder:1,estimatedTimeMinutes:30,searchKeywords:["trees","plantation","vriksharopan","forest"]},{slug:"restore-biodiversity",cause:"nature",title:"Restore Local Biodiversity",description:"Protect a patch of green â remove invasive weeds, plant native shrubs, or leave leaf litter.",whyItMatters:"Small habitat patches add up when neighbors keep them alive.",instructions:["Pick one nearby green patch you can visit.","Do one restorative action per day.","Avoid chemical shortcuts; prefer manual care."],sortOrder:2,searchKeywords:["biodiversity","habitat","native"]},{slug:"urban-gardening",cause:"nature",title:"Urban Gardening",description:"Grow food or native plants in pots, balconies, or shared plots.",whyItMatters:"Home gardens reconnect daily life with soil and season.",instructions:["Water or tend your plants once daily.","Track what you plant and what survives."],sortOrder:3,estimatedTimeMinutes:10,searchKeywords:["garden","balcony","plants"]},{slug:"seed-ball-campaign",cause:"nature",title:"Seed Ball Campaign",description:"Make and place seed balls in suitable open land with local permission.",whyItMatters:"Low-cost regeneration works when done carefully and legally.",instructions:["Prepare seed balls with native seeds.","Place them only where you have permission.","Log each batch placed."],audiences:["individual","community"],sortOrder:4,searchKeywords:["seed ball","monsoon","regreen"]},{slug:"waste-segregation",cause:"nature",title:"Waste Segregation at Home",description:"Separate wet, dry, and hazardous waste every day.",whyItMatters:"Segregation is the foundation of cleaner neighborhoods.",instructions:["Keep separate bins for wet and dry waste.","Segregate before disposal each day."],featured:!0,sortOrder:5,estimatedTimeMinutes:5,searchKeywords:["waste","segregation","recycle"]},{slug:"compost-at-home",cause:"nature",title:"Compost at Home",description:"Turn kitchen scraps into compost instead of mixed trash.",whyItMatters:"Compost reduces landfill load and returns nutrients to soil.",instructions:["Add dayâs wet waste to your compost setup.","Keep the pile aerated and moist as needed."],sortOrder:6,searchKeywords:["compost","kitchen waste"]},{slug:"plastic-free-week",cause:"nature",title:"Plastic-Free Days",description:"Avoid single-use plastic for the dayâs errands and meals.",whyItMatters:"Habits change when practice is daily and visible to yourself.",instructions:["Carry a bag and bottle.","Refuse single-use plastic where alternatives exist.","Log the day only if you kept the intention."],featured:!0,sortOrder:7,searchKeywords:["plastic","single-use","refuse"]},{slug:"carbon-aware-commute",cause:"nature",title:"Lower-Impact Commute",description:"Walk, cycle, carpool, or take transit for at least one trip today.",whyItMatters:"Transport choices are one of the clearest personal climate levers.",instructions:["Replace one motorized solo trip with a lower-impact option.","Log only completed trips."],sortOrder:8,searchKeywords:["commute","cycle","transit","carbon"]},{slug:"save-water-daily",cause:"water",title:"Save Water Daily",description:"Cut unnecessary w
1ater use at home with one concrete practice each day.",whyItMatters:"Household water discipline scales when many homes keep it.",instructions:["Fix a leak, shorten a shower, or reuse rinse water.","Log the specific action you took today."],featured:!0,sortOrder:10,estimatedTimeMinutes:10,searchKeywords:["water","conservation","leak"]},{slug:"rainwater-harvesting-care",cause:"water",title:"Rainwater Harvesting Care",description:"Maintain or prepare a rainwater system â clean filters, gutters, or storage.",whyItMatters:"Harvesting systems fail without ordinary maintenance.",instructions:["Inspect or clean one part of the system.","Note rainfall readiness before monsoon or showers."],audiences:["individual","community","institution"],sortOrder:11,searchKeywords:["rainwater","harvesting","gutter"]},{slug:"clean-local-water-body",cause:"water",title:"Care for a Local Water Body",description:"Support a lake, pond, or stretch of river through cleanup or awareness.",whyItMatters:"Local water bodies need regular human attention, not only annual drives.",instructions:["Visit or support one water body.","Remove litter safely or join a local cleanup.","Never enter unsafe water alone."],audiences:["individual","community"],sortOrder:12,estimatedTimeMinutes:45,searchKeywords:["lake","pond","river","cleanup"]},{slug:"water-positive-habits",cause:"water",title:"Water-Positive Habit Week",description:"Track and reduce daily household water waste for a fixed stretch.",whyItMatters:"Measurement makes reduction real.",instructions:["Note approximate liters saved or taps closed.","Share only if you choose â default is private."],sortOrder:13,searchKeywords:["water positive","household"]},{slug:"teach-one-child",cause:"education",title:"Teach One Child",description:"Spend focused time helping one child with reading, maths, or a skill.",whyItMatters:"One steady teacher changes a childâs trajectory more than occasional charity.",instructions:["Schedule a short teaching session.","Keep it consistent; log only sessions held."],featured:!0,sortOrder:20,estimatedTimeMinutes:30,audiences:["individual","creator"],searchKeywords:["teach","tutor","child","mentor"]},{slug:"sponsor-a-student",cause:"education",title:"Support a Studentâs Learning",description:"Fund fees, books, or transport for a student â or arrange the support.",whyItMatters:"Material barriers still stop capable students mid-way.",instructions:["Complete one concrete support action today.","Keep records private unless the family wants publicity."],audiences:["individual","institution"],sortOrder:21,searchKeywords:["sponsor","scholarship","fees"]},{slug:"donate-books",cause:"education",title:"Donate or Circulate Books",description:"Pass usable books to a library, school, or reading circle.",whyItMatters:"Books unused on shelves can still teach elsewhere.",instructions:["Select books in usable condition.","Deliver or schedule pickup."],sortOrder:22,searchKeywords:["books","library","donate"]},{slug:"digital-literacy-session",cause:"education",title:"Digital Literacy Session",description:"Help someone learn a practical digital skill: payments, email, or safety.",whyItMatters:"Access without literacy leaves people dependent and exposed.",instructions:["Teach one practical skill in a calm session.","Confirm they can repeat it without you."],audiences:["individual","creator","community"],sortOrder:23,searchKeywords:["digital","literacy","computer"]},{slug:"sanskrit-word-daily",cause:"education",title:"Learn One Sanskrit Word Daily",description:"Learn, write, and use one Sanskrit word each day.",whyItMatters:"Language continuity begins with small daily contact.",instructions:["Choose one word and its meaning.","Write it once and use it in a sentence."],featured:!0,sortOrder:24,estimatedTimeMinutes:5,searchKeywords:["sanskrit","language","word"]},{slug:"mentor-youth",cause:"education",title:"Mentor Youth",description:"Offer career, study, or life guidance to a younger person.",whyItMatters:"Mentorship multiplies opportunity without waiting for institutions.",instructions:["Hold one mentoring conversation or follow-up.","Listen more than you prescribe."],audiences:["individual","creator"],sortOrder:25,searchKeywords:["mentor","youth","career"]},{slug:"feed-the-hungry",cause:"hunger",title:"Feed the Hungry",description:"Provide a meal to someone in need, directly or through a trusted kitchen.",whyItMatters:"Hunger is immediate; food given today matters today.",instructions:["Prepare, buy, or fund one meal serving.","Prefer dignified distribution over spectacle."],featured:!0,sortOrder:30,audiences:["individual","community"],searchKeywords:["food","anna","meal","hunger"]},{slug:"community-kitchen-support",cause:"hunger",title:"Support a Community Kitchen",description:"Volunteer, cook, or contribute to a langar / community kitchen.",whyItMatters:"Kitchens need hands and continuity, not only festival donations.",instructions:["Complete one shift task or contribution.","Follow the kitchenâs hygiene rules."],audiences:["individual","community","institution"],sortOrder:31,searchKeywords:["langar","kitchen","seva"]},{slug:"pack-meal-kits",cause:"hunger",title:"Pack Meal Kits",description:"Assemble dry ration or meal kits for distribution.",whyItMatters:"Prepared kits move faster when crises or need appear.",instructions:["Pack kits with labelled contents.","Coordinate delivery with a trusted group."],audiences:["community","individual"],sortOrder:32,searchKeywords:["ration","kit","food pack"]},{slug:"temple-documentation",cause:"heritage",title:"Document a Temple or Sacred Site",description:"Photograph, note history, or map details of a local sacred or heritage place.",whyItMatters:"What is not recorded disappears quietly.",instructions:["Visit with respect and permission where needed.","Capture accurate notes: name, location, condition."],sortOrder:40,audiences:["individual","creator"],searchKeywords:["temple","documentation","heritage"]},{slug:"heritage-walk",cause:"heritage",title:"Heritage Walk",description:"Walk a local heritage route and share what you learn with one other person.",whyItMatters:"Heritage lives when people walk it and talk about it.",instructions:["Complete one heritage walk segment.","Note one fact worth passing on."],sortOrder:41,searchKeywords:["heritage walk","history","local"]},{slug:"manuscript-care",cause:"heritage",title:"Support Manuscript Preservation",description:"Help digitize, fund, or carefully handle traditional manuscripts through a proper archive.",whyItMatters:"Manuscripts are fragile; careless handling destroys more than it saves.",instructions:["Work only with qualified custodians.","Log one preservation-supporting action."],audiences:["individual","institution"],sortOrder:42,searchKeywords:["manuscript","archive","digitize"]},{slug:"local-language-use",cause:"heritage",title:"Use Your Local Language Daily",description:"Speak, write, or teach in a regional language for a dedicated daily stretch.",whyItMatters:"Languages survive through ordinary use, not museums alone.",instructions:["Spend at least ten minutes in the language.","Prefer conversation over performance."],featured:!0,sortOrder:43,estimatedTimeMinutes:10,searchKeywords:["language","mother tongue","regi
1onal"]},{slug:"folk-art-support",cause:"heritage",title:"Support Folk Art",description:"Attend, learn, document, or purchase from a folk or traditional artist.",whyItMatters:"Artists need audiences and income, not only applause at festivals.",instructions:["Complete one supportive action for a folk art form.","Credit the artist when you share."],audiences:["individual","creator"],sortOrder:44,searchKeywords:["folk","art","tradition"]},{slug:"daily-walking",cause:"wellness",title:"Walk for Ten Minutes",description:"Take a continuous ten-minute walk outdoors or indoors.",whyItMatters:"Simple movement is a commitment anyone can begin today.",instructions:["Walk for at least ten uninterrupted minutes.","Log only if you completed the walk."],featured:!0,sortOrder:50,estimatedTimeMinutes:10,measurementType:"duration",targetValue:10,unit:"minutes",searchKeywords:["walk","movement","health"]},{slug:"yoga-for-community",cause:"wellness",title:"Yoga Practice",description:"Complete a short personal yoga session, alone or with others.",whyItMatters:"Steady practice matters more than perfect form on day one.",instructions:["Practice for your chosen duration.","Stop if pain appears; modify as needed."],audiences:["individual","creator"],sortOrder:51,estimatedTimeMinutes:20,searchKeywords:["yoga","asana","stretch"]},{slug:"blood-donation-prep",cause:"wellness",title:"Blood Donation Commitment",description:"Register, prepare, or complete an eligible blood donation.",whyItMatters:"Blood banks need regular donors, not only crisis volunteers.",instructions:["Confirm eligibility and schedule or donate.","Rest afterwards; follow medical guidance."],sortOrder:52,estimatedTimeMinutes:60,difficulty:"intermediate",searchKeywords:["blood","donation","donor"]},{slug:"mental-wellness-checkin",cause:"wellness",title:"Mental Wellness Check-in",description:"Pause for a private check-in: breath, journal, or a supportive conversation.",whyItMatters:"Noticing your state early is part of caring for yourself and others.",instructions:["Spend ten quiet minutes checking in.","Seek qualified help if you feel unsafe."],sortOrder:53,estimatedTimeMinutes:10,searchKeywords:["mental","journal","breath","wellbeing"]},{slug:"no-phone-first-30",cause:"wellness",title:"No Phone for the First 30 Minutes",description:"Keep your phone away for the first thirty minutes after waking.",whyItMatters:"Attention at the start of the day sets the tone for everything else.",instructions:["Charge the phone outside armâs reach overnight if possible.","Log the day only if you held the boundary."],featured:!0,sortOrder:54,estimatedTimeMinutes:30,measurementType:"duration",targetValue:30,unit:"minutes",searchKeywords:["phone","digital detox","morning"]},{slug:"daily-mantra-japa",cause:"spiritual",title:"Daily Mantra Japa",description:"Complete a chosen count of mantra japa with attention.",whyItMatters:"Repetition with awareness is a classic path of steadying the mind.",instructions:["Choose one mantra and a realistic count.","Sit quietly and complete the count."],featured:!0,sortOrder:60,estimatedTimeMinutes:15,targetValue:108,unit:"chants",searchKeywords:["mantra","japa","chant"]},{slug:"morning-silence",cause:"spiritual",title:"Three Minutes of Morning Silence",description:"Sit in silence for three minutes after waking.",whyItMatters:"Silence needs no equipment and meets you where you are.",instructions:["Sit upright for three minutes.","If the mind wanders, return gently to breath."],featured:!0,sortOrder:61,estimatedTimeMinutes:3,measurementType:"duration",targetValue:3,unit:"minutes",searchKeywords:["silence","morning","stillness"]},{slug:"gita-reading",cause:"spiritual",title:"Bhagavad Gita Reading",description:"Read and reflect on a short passage from the Bhagavad Gita.",whyItMatters:"Study becomes living when it is daily and reflective.",instructions:["Read one short passage.","Write one sentence on what it asks of you today."],sortOrder:62,searchKeywords:["gita","bhagavad","study"]},{slug:"meditation-practice",cause:"spiritual",title:"Meditation Practice",description:"Sit for a short meditation with a simple focus.",whyItMatters:"Consistency beats intensity for beginners.",instructions:["Sit for your chosen duration.","Use breath or a mantra as anchor."],sortOrder:63,estimatedTimeMinutes:10,measurementType:"duration",targetValue:10,unit:"minutes",searchKeywords:["meditation","dhyana","sit"]},{slug:"daily-gratitude",cause:"spiritual",title:"One Gratitude Daily",description:"Write or speak one specific gratitude each day.",whyItMatters:"Gratitude trains attention toward what is already sustaining you.",instructions:["Name one concrete person, place, or event.","Keep it private unless you choose to share."],featured:!0,sortOrder:64,estimatedTimeMinutes:5,searchKeywords:["gratitude","thanks","journal"]},{slug:"festival-seva",cause:"spiritual",title:"Festival Seva",description:"Offer seva during a festival â cleaning, hospital
1ity, or quiet help.",whyItMatters:"Festivals become meaningful when service sits beside celebration.",instructions:["Complete one seva task without seeking credit.","Leave the space cleaner than you found it."],audiences:["individual","community"],sortOrder:65,searchKeywords:["festival","seva","utsav"]},{slug:"buy-local-craft",cause:"artisans",title:"Buy Local Craft",description:"Purchase from a local artisan or handloom maker instead of a mass substitute.",whyItMatters:"Craft economies survive through customers, not only grants.",instructions:["Buy one craft item directly or via a fair channel.","Learn the makerâs name if possible."],sortOrder:70,audiences:["individual"],searchKeywords:["craft","handloom","artisan","buy local"]},{slug:"handloom-promotion",cause:"artisans",title:"Promote Handloom",description:"Wear, gift, or thoughtfully share handloom work.",whyItMatters:"Visibility without exploitation helps weavers find markets.",instructions:["Choose one handloom action today.","Credit the weaving tradition when you share."],audiences:["individual","creator"],sortOrder:71,searchKeywords:["handloom","khadi","weave"]},{slug:"artisan-skill-share",cause:"artisans",title:"Learn or Share a Craft Skill",description:"Spend time learning from or teaching a craft technique.",whyItMatters:"Skills disappear when nobody practices them with living teachers.",instructions:["Complete one learning or teaching session.","Respect the teacherâs time and lineage."],audiences:["individual","creator"],sortOrder:72,searchKeywords:["skill","craft","apprentice"]},{slug:"neighborhood-volunteering",cause:"community",title:"Neighborhood Volunteering",description:"Help with a local need: cleanup, errands for a neighbor, or community notice work.",whyItMatters:"Community is built in ordinary nearby acts.",instructions:["Do one helpful act in your neighborhood.","Ask before assuming what people need."],sortOrder:80,searchKeywords:["neighbor","volunteer","local"]},{slug:"community-cleanliness",cause:"community",title:"Community Cleanliness",description:"Clean a shared space â street stretch, park corner, or building common area.",whyItMatters:"Shared spaces stay livable only if someone claims them.",instructions:["Clean safely with gloves where needed.","Dispose waste in the right stream."],featured:!0,sortOrder:81,audiences:["individual","community"],searchKeywords:["cleanliness","shramdaan","park"]},{slug:"festival-cleanup",cause:"community",title:"Festival Cleanup Pledge",description:"Commit to cleanup during or after a festival event.",whyItMatters:"Celebration without cleanup shifts the cost onto the commons.",instructions:["Join or organize a cleanup window.","Focus on plastic and flower waste first."],audiences:["community","individual"],sortOrder:82,searchKeywords:["gane
1sh","diwali","cleanup","festival"]},{slug:"family-meal-together",cause:"community",title:"Family Meal Together",description:"Share one screen-light meal with family or household members.",whyItMatters:"Household bonds are practiced at the table.",instructions:["Eat together without phones if possible.","Keep conversation simple and present."],sortOrder:83,estimatedTimeMinutes:30,searchKeywords:["family","meal","together"]},{slug:"screen-free-evening",cause:"community",title:"Screen-Free Evening Hour",description:"Keep one evening hour free of screens for household presence.",whyItMatters:"Attention is the currency of relationship.",instructions:["Choose a fixed hour.","Replace screens with talk, reading, or rest."],sortOrder:84,estimatedTimeMinutes:60,measurementType:"duration",targetValue:60,unit:"minutes",searchKeywords:["screen free","evening","family"]},{slug:"womens-health-awareness",cause:"women",title:"Womenâs Health Awareness",description:"Share accurate health information or support access to care for women and girls.",whyItMatters:"Information gaps still cost health and dignity.",instructions:["Share verified information or help someone reach care.","Avoid medical advice beyond your training."],audiences:["individual","community","creator"],sortOrder:90,searchKeywords:["women","health","awareness"]},{slug:"women-skill-support",cause:"women",title:"Support Womenâs Skills",description:"Help a woman learn, practice, or market a livelihood skill.",whyItMatters:"Skills with market access change household options.",instructions:["Offer one concrete skill or market-support action.","Center her goals, not your narrative."],audiences:["individual","institution","creator"],sortOrder:91,searchKeywords:["skills","SHG","women","livelihood"]},{slug:"safety-allyship",cause:"women",title:"Everyday Safety Allyship",description:"Practice bystander awareness and respectful public presence.",whyItMatters:"Safety improves when ordinary people refuse to look away.",instructions:["Learn one safe bystander response.","Act only when it is safe to do so."],sortOrder:92,searchKeywords:["safety","ally","bystander"]},{slug:"child-reading-hour",cause:"children",title:"Child Reading Hour",description:"Read aloud or listen to a child read for a dedicated session.",whyItMatters:"Reading time is one of the highest-leverage gifts for children.",instructions:["Read together for at least fifteen minutes.","Let the child choose the book when possible."],sortOrder:100,estimatedTimeMinutes:15,searchKeywords:["reading","child","story"]},{slug:"play-without-screens",cause:"children",title:"Play Without Screens",description:"Give a child undistracted playtime without devices.",whyItMatters:"Play builds bodies and bonds that screens cannot replace.",instructions:["Play outdoors or with simple toys.","Keep your own phone away during the session."],sortOrder:101,estimatedTimeMinutes:30,searchKeywords:["play","child","outdoors"]},{slug:"school-support-kit",cause:"children",title:"School Support Kit",description:"Provide stationery, uniforms, or transport help for a school-going child.",whyItMatters:"Small material gaps still keep children from attending regularly.",instructions:["Assemble or fund one support kit.","Coordinate with parent, school, or trusted NGO."],audiences:["individual","institution"],sortOrder:102,searchKeywords:["school","kit","stationery"]},{slug:"parent-care-visit",cause:"elders",title:"Parent or Elder Care Time",description:"Spend undistracted time with a parent or elder â call, visit, or help with tasks.",whyItMatters:"Care is measured in time given, not intentions announced.",instructions:["Give at least twenty focused minutes.","Ask what would help most today."],sortOrder:110,estimatedTimeMinutes:20,searchKeywords:["parents","elder","care"]},{slug:"old-age-home-seva",cause:"elders",title:"Serve at an Elder Care Home",description:"Volunteer time, skills, or supplies at an old-age home with permission.",whyItMatters:"Institutions for elders need consistent human presence.",instructions:["Coordinate with staff before visiting.","Offer company as much as goods."],audiences:["individual","community"],sortOrder:111,searchKeywords:["old age","seva","elder home"]},{slug:"elder-tech-help",cause:"elders",title:"Help an Elder with Technology",description:"Teach one practical tech skill: video call, payments, or scam awareness.",whyItMatters:"Digital life is mandatory; elders should not face it alone.",instructions:["Teach slowly and write steps down.","Warn about common fraud patterns."],sortOrder:112,searchKeywords:["tech","elder","scam","phone"]},{slug:"feed-stray-animals",cause:"animals",title:"Feed Stray Animals Responsibly",description:"Provide clean water or suitable food to street animals without creating conflict.",whyItMatters:"Compassion needs consistency and neighborhood awareness.",instructions:["Feed in a clean, non-obstructive spot.","Prefer community consensus where tensions exist."],sortOrder:120,searchKeywords:["stray","dogs","cats","feed"]},{slug:"gau-seva",cause:"animals",title:"Gau Seva",description:"Feed or care for cows at a trusted gaushala or permitted place.",whyItMatters:"Care for cattle is a living seva tradition when done hygienically and kindly.",instructions:["Offer appropriate feed only.","Follow the caretakerâs guidance."],sortOrder:121,searchKeywords:["gau","cow","gaushala"]},{slug:"bird-feeding",cause:"animals",title:"Bird Feeding and Water",description:"Keep clean water or grain available for birds, especially in heat.",whyItMatters:"Small daily care reduces suffering in harsh seasons.",instructions:["Refresh water daily in a clean bowl.","Place feed where it will not attract pests indoors."],sortOrder:122,estimatedTimeMinutes:5,searchKeywords:["birds","water","feed"]},{slug:"animal-rescue-support",cause:"animals",title:"Support Animal Rescue",description:"Help a rescue â transport, funds, foster coordination, or reporting.",whyItMatters:"Rescues need logistics more than viral videos.",instructions:["Act through a known rescue channel.","Do not endanger yourself or the animal."],audiences:["individual","community"],sortOrder:123,searchKeywords:["rescue","animal","vet"]},{slug:"buy-from-farmers",cause:"farmers",title:"Buy Direct from Farmers",description:"Purchase produce from a farmerâs market, CSA, or direct channel.",whyItMatters:"Fair purchase is the simplest support most people can give.",instructions:["Buy at least one item direct or near-direct.","Prefer seasonal produce."],sortOrder:130,searchKeywords:["farmer","market","produce"]},{slug:"sustainable-farming-learn",cause:"farmers",title:"Learn Sustainable Farming Basics",de
1scription:"Study one sustainable practice â soil, seed, water, or compost â and apply or share it.",whyItMatters:"Knowledge transfer keeps regenerative methods alive beyond one farm.",instructions:["Learn one practice from a trusted source.","Apply it in a garden or share with a grower."],audiences:["individual","creator"],sortOrder:131,searchKeywords:["organic","soil","sustainable","farm"]},{slug:"farmer-relief-support",cause:"farmers",title:"Farmer Relief Support",description:"Contribute time or funds to verified farmer relief or seed support.",whyItMatters:"Distress seasons need timely, verified help.",instructions:["Use a verified channel.","Log the contribution privately."],audiences:["individual","institution"],sortOrder:132,searchKeywords:["relief","farmer","drought"]},{slug:"support-local-business",cause:"livelihood",title:"Support a Local Business",description:"Spend at a neighborhood business instead of a distant default.",whyItMatters:"Local cash flow keeps streets alive.",instructions:["Complete one intentional local purchase.","Prefer independently owned shops when possible."],sortOrder:140,searchKeywords:["local","business","shop"]},{slug:"financial-literacy-share",cause:"livelihood",title:"Share Financial Literacy",description:"Teach budgeting, banking basics, or scam avoidance to someone who asked for help.",whyItMatters:"Money skills reduce vulnerability more than one-time gifts.",instructions:["Teach one practical money skill.","Avoid selling products during the lesson."],audiences:["individual","creator"],sortOrder:141,searchKeywords:["finance","budget","literacy"]},{slug:"skill-certification-help",cause:"livelihood",title:"Help Someone Gain a Skill Credential",description:"Support a course fee, exam registration, or study plan for a practical skill.",whyItMatters:"Credentials open doors when paired with real practice.",instructions:["Identify one credential step and complete support for it.","Follow up on progress."],audiences:["individual","institution"],sortOrder:142,searchKeywords:["skill","certificate","course"]},{slug:"rural-enterprise-boost",cause:"livelihood",title:"Boost a Rural Enterprise",description:"Buy from, mentor, or amplify a rural micro-enterprise.",whyItMatters:"Rural enterprises need markets and mentorship as much as microcredit.",instructions:["Take one concrete supportive action.","Measure success by their continuity, not your content."],audiences:["individual","creator","institution"],sortOrder:143,searchKeywords:["rural","enterprise","SHG","micro"]},{slug:"winter-blanket-drive",cause:"community",title:"Winter Warmth Drive",description:"Donate or distribute blankets and warm clothes in cold season.",whyItMatters:"Seasonal need is predictable; preparation beats last-minute panic.",instructions:["Collect clean warm clothing or blankets.","Distribute through a trusted local channel."],audiences:["individual","community"],sortOrder:150,searchKeywords:["winter","blanket","warmth"]},{slug:"disaster-relief-ready",cause:"community",title:"Disaster Relief Readiness",description:"Prepare a small relief kit or join a local response groupâs readiness task.",whyItMatters:"Communities that prepare respond faster when crisis arrives.",instructions:["Assemble or refresh a kit, or complete one readiness task.","Store emergency contacts where the household can find them."],audiences:["individual","community","institution"],sortOrder:151,searchKeywords:["disaster","relief","ready"]},{slug:"city-cycling-day",cause:"nature",title:"City Cycling Day",description:"Use a bicycle for a purposeful trip instead of a short motor ride.",whyItMatters:"Cycling normalizes cleaner streets one trip at a time.",instructions:["Complete one purposeful cycling trip.","Wear a helmet where available."],sortOrder:152,searchKeywords:["cycle","bike","city"]},{slug:"protect-wildlife-awareness",cause:"animals",title:"Wildlife Awareness Action",description:"Learn and share one verified wildlife-protection practice relevant to your region.",whyItMatters:"Local awareness prevents harm more than distant outrage.",instructions:["Learn from a credible conservation source.","Share without spreading unverified claims."],audiences:["individual","creator"],sortOrder:153,searchKeywords:["wildlife","conservation","awareness"]},{slug:"village-development-hour",cause:"livelihood",title:"Village Development Hour",description:"Give an hour to a village project â education, water, livelihoods, or documentation.",whyItMatters:"Sustained hours beat one-time visits.",instructions:["Coordinate with local hosts.","Do work they request, not work that photographs well."],audiences:["individual","institution","community"],sortOrder:154,estimatedTimeMinutes:60,measurementType:"duration",targetValue:60,unit:"minutes",searchKeywords:["village","development","gram"]},{slug:"creator-awareness-campaign",cause:"community",title:"Creator Awareness Series",description:"Publish or host one truthful awareness piece that invites action on a cause.",whyItMatters:"Creators move people when the call to action is concrete.",instructions:["Publish one piece with a clear next step.","Link to a real Sankalp or local group."],audiences:["creator"],sortOrder:155,searchKeywords:["creator","campaign","awareness"]},{slug:"institution-zero-waste-day",cause:"nature",title:"Institution Zero-Waste Day",description:"Run one zero-waste or plastic-light day at a school, office, or campus.",whyItMatters:"Institutions set norms that individuals then copy.",instructions:["Plan bins, messaging, and alternatives.","Measure what was diverted if possible."],audiences:["institution","community"],sortOrder:156,searchKeywords:["zero waste","campus","office"]},{slug:"scholarship-drive-hour",cause:"education",title:"Scholarship Drive Hour",description:"Spend an hour fundraising, verifying, or matching students to scholarships.",whyItMatters:"Money and matching both matter; either alone is incomplete.",instructions:["Complete one hour of drive work.","Keep student data private."],audiences:["individual","institution","creator"],sortOrder:157,estimatedTimeMinutes:60,measurementType:"duration",targetValue:60,unit:"minutes",searchKeywords:["scholarship","fundraise","student"]}].map(function(e){let a=o(e.cause);if(!a)throw Error(`Unknown cause slug: ${e.cause}`);let t=e.audiences??["individual"],i=e.targetValue??1,s=e.unit??"actions",r=e.measurementType??"count";return{id:`sankalp:cause:${e.slug}`,slug:e.slug,category:a.label,subcategory:"Suggested",measurementType:r,measurementConfig:{targetValue:i,unit:s},completionStrategy:"threshold",visibilityDefaults:"private",accessType:"public",origin:"brahma",difficulty:e.difficulty??"beginner",estimatedTimeMinutes:e.estimatedTimeMinutes??15,estimatedDailyMinutes:e.estimatedTimeMinutes??15,targetDays:e.targetDays??7,prerequisites:[],nextRecommended:[],tags:[a.slug,`cause:${a.slug}`,"suggested",...t],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,linkedModule:"sankalp",searchKeywords:[e.title.toLowerCase(),a.slug,a.label.toLowerCase(),...e.searchKeywords??[]],featured:!!e.featured,sortOrder:e.sortOrder,presets:[{label:"3 Days",targetDays:3},{label:"7 Days",targetDays:7},{label:"21 Days",targetDays:21}
1],localizedTexts:[{language:"en",title:e.title,description:e.description,whyItMatters:e.whyItMatters,benefits:["Builds a clear daily commitment","Creates a private record you can continue or share later","Connects personal action to a shared public cause"],instructions:e.instructions,faq:[{question:"How do I mark progress?",answer:"Open this Sankalp and log todayâs practice when you complete the daily action. Be honest â private by default."}]}]}}),u=c.length,h="ganesh-utsav-2026",m="/sankalp/utsav/ganesh-2026",p={startsAt:"2026-07-15T00:00:00+05:30",chaturthiAt:"2026-09-14T00:00:00+05:30",visarjanAt:"2026-09-25T23:59:59+05:30",endsAt:"2026-09-30T23:59:59+05:30",festivalDays:12},y=[{id:"prepare",stage:1,label:"Prepare",blurb:"Bring Bappa home with intention â idol, puja readiness, and a plastic-light home."},{id:"worship",stage:2,label:"Worship",blurb:"Daily devotion through mantra, path, aarti, and quiet presence."},{id:"learn",stage:3,label:"Learn",blurb:"Stories, meaning, and shlokas that deepen understanding for the whole family."},{id:"seva",stage:4,label:"Seva",blurb:"Offer care outward â animals, food, trees, and neighborhood cleanliness."},{id:"sustain",stage:5,label:"Sustain",blurb:"Clay, compost, and conscious visarjan so devotion leaves the earth lighter."},{id:"together",stage:6,label:"Together",blurb:"Family aarti, temple visit, and shared invitation into the festival."},{id:"transform",stage:7,label:"Transform",blurb:"Inner vows that outlast the festival â habit, silence, gratitude."}];function g(e){var a;a=e.stage,y.find(e=>e.id===a);let t=e.targetValue??1,i=e.unit??"actions",s=e.measurementType??"count",r=e.targetDays??p.festivalDays;return{id:`sankalp:ganesh-utsav:${e.slug}`,slug:e.slug,category:"Ganesh Utsav",subcategory:e.practiceType,measurementType:s,measurementConfig:{targetValue:t,unit:i},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:e.difficulty??"beginner",estimatedTimeMinutes:e.estimatedTimeMinutes??15,estimatedDailyMinutes:e.estimatedTimeMinutes??15,targetDays:r,prerequisites:[],nextRecommended:[],tags:["ganesh","ganesha","ganesh-utsav","ganesh-utsav-2026","festival","seasonal",e.stage,`practice:${e.practiceType.toLowerCase()}`,e.practiceType.toLowerCase(),...e.featured?["featured","recommended-pack"]:[]],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,linkedModule:e.sourceBindings?.[0]?.module??"sankalp",searchKeywords:[e.title.toLowerCase(),"ganesh","ganesha","utsav","chaturthi",...e.searchKeywords??[]],featured:!!e.featured,sortOrder:e.sortOrder,journeyGroup:h,journeyStage:e.journeyStage,seasonal:{type:"festival",trigger:"ganesh-chaturthi-2026"},presets:e.presets??[{label:"5 Days",targetDays:5},{label:"Festival (12 Days)",targetDays:12},{label:"21 Days",targetDays:21}],sourceBindings:e.sourceBindings,sourceEntityIds:e.sourceEntityIds,localizedTexts:[{language:"en",title:e.title,description:e.description,whyItMatters:e.whyItMatters,benefits:["Clear daily commitment through Ganesh Utsav","Measurable progress you can complete and share","Connects personal practice to a shared festival journey"],instructions:e.instructions,faq:[{question:"How do I mark progress?",answer:e.sourceBindings?.length?"Practice in the linked module when available, or open this Sankalp and log todayâs completion.":"Open this Sankalp and log todayâs practice when you complete the action. Be honest â private by default until you share."}]}]}}let f=[g({slug:"eco-clay-ganesh-idol",title:"Eco / Clay Ganesh Idol",description:"Choose a clay or eco-friendly Ganesh murti for home sthapana this year.",whyItMatters:"The form we invite home shapes how we farewell â clay returns to earth with less harm.",instructions:["Choose a clay or certified eco-friendly murti (avoid plaster of Paris where possible).","Note the artisan or maker if known â supporting craft is part of the vow.","Log completion when the murti is home and ready for sthapana."],practiceType:"Sustainability",stage:"prepare",journeyStage:1,sortOrder:10,featured:!0,measurementType:"checklist",targetValue:1,unit:"idol",estimatedTimeMinutes:30,targetDays:1,presets:[{label:"Once",targetDays:1}],searchKeywords:["clay","eco","idol","murti","sthapana"]}),g({slug:"ganesh-puja-sthapana",title:"Ganesh Puja & Sthapana",description:"Learn the basic vidhi and complete home sthapana with care.",whyItMatters:"A clear sequence turns preparation into presence â not rush.",instructions:["Review a simple Ganesh puja sequence (avahan, offerings, aarti).","Prepare kalash, flowers, durva, and prasad before the muhurta.","Complete sthapana and log the day."],practiceType:"Puja",stage:"prepare",journeyStage:1,sortOrder:11,measurementType:"checklist",targetValue:1,unit:"sthapana",estimatedTimeMinutes:45,targetDays:1,presets:[{label:"Once",targetDays:1}],searchKeywords:["puja","vidhi","sthapana"]}
1),g({slug:"homemade-prasad",title:"Prepare Homemade Prasad",description:"Make a simple homemade offering â modak, laddoo, or seasonal sweet â for the festival.",whyItMatters:"Hands-on prasad turns celebration into shared care.",instructions:["Choose one homemade prasad you can prepare safely.","Offer a portion in puja; share the rest with family or neighbors.","Log the day you prepare and offer."],practiceType:"Puja",stage:"prepare",journeyStage:1,sortOrder:12,measurementType:"checklist",targetValue:1,unit:"batches",estimatedTimeMinutes:60,targetDays:1,presets:[{label:"Once",targetDays:1}],searchKeywords:["prasad","modak","homemade"]}),g({slug:"plastic-free-celebration",title:"Plastic-Free Celebration",description:"Keep the festival free of single-use plastic â d\xe9cor, plates, and visarjan materials.",whyItMatters:"Devotion should not leave a trail of waste in rivers and streets.",instructions:["Replace single-use plastic plates, cups, and d\xe9cor with reusable or natural options.","Each festival day, confirm the home stayed plastic-light.","Log daily until visarjan."],practiceType:"Sustainability",stage:"prepare",journeyStage:1,sortOrder:13,featured:!0,measurementType:"count",targetValue:1,unit:"plastic-free days",estimatedTimeMinutes:10,searchKeywords:["plastic-free","zero waste","eco"]}),g({slug:"ganesh-mantra-108",title:"Chant 108 Ganesh Mantras",description:"Chant Om Gan Ganapataye Namah (or Ganesh bija) 108 times daily through the Utsav.",whyItMatters:"Steady japa softens obstacles and anchors the festival in daily attention.",instructions:["Sit facing a quiet direction; take three steady breaths.","Chant Om Gan Ganapataye Namah or your lineage Ganesh mantra.","Complete 108 counts with mala or screen counter."],practiceType:"Mantra",stage:"worship",journeyStage:2,sortOrder:20,featured:!0,measurementType:"count",targetValue:108,unit:"chants",estimatedTimeMinutes:15,presets:[{label:"108 / day \xb7 12 days",targetDays:12,measurementOverride:{targetValue:108,unit:"chants"}},{label:"1008 / day \xb7 5 days",targetDays:5,measurementOverride:{targetValue:1008,unit:"chants"}},{label:"108 / day \xb7 21 days",targetDays:21,measurementOverride:{targetValue:108,unit:"chants"}}],sourceBindings:[{module:"mantra",canonicalId:"mantra:ganesh-bija",slug:"ganesh-bija-mantra",aliases:["ganesh-bija","om-gan-ganapataye-namah"],relation:"practices",progressRole:"primary"}],sourceEntityIds:{mantra:"ganesh-bija-mantra"},searchKeywords:["japa","108","om gan","bija"]}),g({slug:"atharvashirsha-daily",title:"Ganapati Atharvashirsha Daily",description:"Recite or listen to Ganapati Atharvashirsha once each festival day.",whyItMatters:"Atharvashirsha is a classical doorway into Ganapati tattva â form, name, and meaning.",instructions:["Set aside a quiet slot morning or evening.","Recite or follow along with a trusted path recording.","Log one complete path each day."],practiceType:"Path",stage:"worship",journeyStage:2,sortOrder:21,featured:!0,measurementType:"count",targetValue:1,unit:"paths",estimatedTimeMinutes:20,difficulty:"intermediate",searchKeywords:["atharvashirsha","upanishad","path"]}),g({slug:"sankata-nashana-stotram",title:"Sankata Nashana Ganesha Stotram",description:"Recite Sankata Nashana Stotram daily for courage through obstacles.",whyItMatters:"Named remembrance of obstacle-removal keeps the festival psychologically grounded.",instructions:["Open the stotram text or audio.","Recite once with attention.","Log completion for the day."],practiceType:"Path",stage:"worship",journeyStage:2,sortOrder:22,measurementType:"count",targetValue:1,unit:"recitations",estimatedTimeMinutes:10,searchKeywords:["sankata","stotram","nashana"]}),g({slug:"daily-ganesh-aarti",title:"Daily Ganesh Aarti",description:"Perform or recite Ganesh aarti once daily â morning or evening.",whyItMatters:"Aarti is the householdâs shared flame â short, repeatable, memorable.",instructions:["Light a diya if safe to do so.","Recite a Ganesh aarti with family or alone.","Log one aarti session per day."],practiceType:"Puja",stage:"worship",journeyStage:2,sortOrder:23,featured:!0,measurementType:"count",targetValue:1,unit:"aartis",estimatedTimeMinutes:10,sourceBindings:[{module:"aarti",canonicalId:"jai-ho-jai-jai-he-gauri-nandan",slug:"jai-ho-jai-jai-he-gauri-nandan",aliases:["ganesh-aarti","shree-ganesh-aarti","jay-ganesh-aarti"],relation:"practices",progressRole:"primary"}],sourceEntityIds:{aarti:"jai-ho-jai-jai-he-gauri-nandan"},searchKeywords:["aarti","diya","evening"]}),g({slug:"ganesh-dhyana",title:"Daily Ganesh Meditation",description:"Sit in quiet remembrance of Ganapati for 5â30 minutes.",whyItMatters:"Silence after sound â dhyana lets japa settle into the body.",instructions:["Choose a duration preset you can keep.","Sit with soft gaze or closed eyes; return to breath and name.","Log the session when complete."],practiceType:"Dhyana",stage:"worship",journeyStage:2,sortOrder:24,measurementType:"duration",targetValue:15,unit:"minutes",estimatedTimeMinutes:15,presets:[{label:"5 min \xb7 12 days",targetDays:12,measurementOverride:{targetValue:5,unit:"minutes"}},{label:"15 min \xb7 12 days",targetDays:12,measurementOverride:{targetValue:15,unit:"minutes"}},{label:"30 min \xb7 12 days",targetDays:12,measurementOverride:{targetValue:30,unit:"minutes"}}],searchKeywords:["meditation","dhyana","silence"]}
1),g({slug:"ganesh-story-daily",title:"Read One Ganesh Story Daily",description:"Read or listen to one story of Lord Ganesha each day of the Utsav.",whyItMatters:"Stories carry ethics and affection across generations.",instructions:["Pick one short story, Purana episode, or childrenâs tale.","Read or listen with attention (alone or with family).","Log one story per day."],practiceType:"Adhyayan",stage:"learn",journeyStage:3,sortOrder:30,featured:!0,measurementType:"count",targetValue:1,unit:"stories",estimatedTimeMinutes:15,searchKeywords:["story","purana","katha"]}),g({slug:"teach-child-ganesh-story",title:"Teach a Child One Ganesh Story",description:"Share one Ganesh story with a child â your own or a neighborâs â during the festival.",whyItMatters:"Transmission is seva; the next generation inherits what we narrate.",instructions:["Choose one story you can tell without notes.","Tell it to a child; invite one question afterward.","Log when shared."],practiceType:"Adhyayan",stage:"learn",journeyStage:3,sortOrder:31,measurementType:"checklist",targetValue:1,unit:"teachings",estimatedTimeMinutes:20,targetDays:1,presets:[{label:"Once",targetDays:1}],searchKeywords:["children","teach","story"]}),g({slug:"atharvashirsha-meaning",title:"Learn Atharvashirsha Meaning",description:"Study the meaning of key Atharvashirsha verses â at least one session this Utsav.",whyItMatters:"Sound without sense is incomplete; meaning turns path into understanding.",instructions:["Read a trusted commentary or meaning for a short section.","Note one insight in your own words.","Log the study session."],practiceType:"Adhyayan",stage:"learn",journeyStage:3,sortOrder:32,measurementType:"checklist",targetValue:1,unit:"study sessions",estimatedTimeMinutes:25,difficulty:"intermediate",targetDays:3,presets:[{label:"1 session",targetDays:1},{label:"3 sessions",targetDays:3}],searchKeywords:["meaning","commentary","adhyayan"]}),g({slug:"sanskrit-shloka-daily",title:"One Sanskrit Shloka Each Day",description:"Learn or revise one short Sanskrit shloka related to Ganesh or general mangala each day.",whyItMatters:"A living language habit keeps the festival intellectually alive.",instructions:["Choose one short shloka.","Recite it slowly three times; note meaning briefly.","Log daily."],practiceType:"Adhyayan",stage:"learn",journeyStage:3,sortOrder:33,measurementType:"count",targetValue:1,unit:"shlokas",estimatedTimeMinutes:10,searchKeywords:["sanskrit","shloka","learning"]}),g({slug:"feed-animals-ganesh",title:"Feed Animals in Ganeshâs Name",description:"Offer food or water to birds, cows, or street animals during the Utsav.",whyItMatters:"Compassion to the voiceless is a direct expression of Ganapatiâs grace.",instructions:["Choose a safe, appropriate offering for animals nearby.","Feed once per committed day.","Log without photographing animals in distress."],practiceType:"Seva",stage:"seva",journeyStage:4,sortOrder:40,featured:!0,measurementType:"count",targetValue:1,unit:"feedings",estimatedTimeMinutes:15,searchKeywords:["animals","feed","seva"]}),g({slug:"annadan-need",title:"Donate Food to Someone in Need",description:"Offer a meal, groceries, or support a community kitchen during Ganesh Utsav.",whyItMatters:"Annadan is among the oldest festival sevas â dignity through nourishment.",instructions:["Choose a person, family, or kitchen you can support safely.","Complete one meaningful food donation.","Log when done; keep recipient privacy."],practiceType:"Daan",stage:"seva",journeyStage:4,sortOrder:41,featured:!0,measurementType:"checklist",targetValue:1,unit:"donations",estimatedTimeMinutes:30,targetDays:1,presets:[{label:"Once",targetDays:1}],searchKeywords:["annadan","food","donate","hunger"]}),g({slug:"plant-tree-utsav",title:"Plant a Tree During Utsav",description:"Plant one native sapling or support a verified planting during Ganesh festival.",whyItMatters:"What we plant outlives the visarjan â a living memorial of the vow.",instructions:["Plant a native species or sponsor a verified planting.","Water and note the location.","Log the planting day."],practiceType:"Seva",stage:"seva",journeyStage:4,sortOrder:42,featured:!0,measurementType:"checklist",targetValue:1,unit:"trees",estimatedTimeMinutes:45,targetDays:1,presets:[{label:"Once",targetDays:1}],searchKeywords:["tree","plant","vriksha"]}),g({slug:"pandal-neighborhood-cleanup",title:"Pandal / Neighborhood Cleanup",description:"Help clean a public pandal area or neighborhood stretch after celebrations.",whyItMatters:"Public joy needs public care â cleanliness is seva.",instructions:["Join a cleanup or do a small stretch near your home/p
1andal.","Dispose waste responsibly; segregate when possible.","Log the seva day."],practiceType:"Seva",stage:"seva",journeyStage:4,sortOrder:43,measurementType:"checklist",targetValue:1,unit:"cleanups",estimatedTimeMinutes:60,targetDays:1,presets:[{label:"Once",targetDays:1}],searchKeywords:["cleanup","pandal","neighborhood"]}),g({slug:"conscious-visarjan",title:"Conscious Visarjan",description:"Plan eco visarjan â compost flowers, prefer artificial tank or home immersion where appropriate.",whyItMatters:"Farewell can be tender to rivers and soil as well as to the murti.",instructions:["Decide immersion method that minimizes water pollution.","Compost or responsibly dispose of flowers and natural d\xe9cor.","Log when visarjan and cleanup are complete."],practiceType:"Sustainability",stage:"sustain",journeyStage:5,sortOrder:50,measurementType:"checklist",targetValue:1,unit:"visarjans",estimatedTimeMinutes:90,targetDays:1,presets:[{label:"Once",targetDays:1}],searchKeywords:["visarjan","compost","immersion","eco"]}),g({slug:"family-aarti-festival",title:"Family Aarti for Festival Days",description:"Gather household for shared Ganesh aarti across the festival window.",whyItMatters:"The festivalâs true venue is often the living room â shared flame, shared memory.",instructions:["Set a daily or near-daily family aarti time.","Invite everyone present; keep phones aside during aarti.","Log each shared aarti day."],practiceType:"Community",stage:"together",journeyStage:6,sortOrder:60,featured:!0,measurementType:"count",targetValue:1,unit:"family aartis",estimatedTimeMinutes:15,targetDays:10,presets:[{label:"10 Days",targetDays:10},{label:"12 Days",targetDays:12}],searchKeywords:["family","aarti","household"]}),g({slug:"visit-ganesh-temple",title:"Visit a Ganesh Temple",description:"Offer darshan at one Ganesh temple during the Utsav.",whyItMatters:"Temple visit stitches personal vow into living public tradition.",instructions:["Choose a temple you can visit respectfully.","Offer simple darshan; avoid crowding risk if advisories exist.","Log the visit day."],practiceType:"Yatra",stage:"together",journeyStage:6,sortOrder:61,featured:!0,measurementType:"checklist",targetValue:1,unit:"visits",estimatedTimeMinutes:60,targetDays:1,presets:[{label:"Once",targetDays:1}],searchKeywords:["temple","darshan","yatra"]}),g({slug:"invite-family-puja",title:"Invite Family for Collective Puja",description:"Invite family or close friends to one collective Ganesh puja or aarti.",whyItMatters:"Invitation is the festivalâs growth loop â relationship, not spectacle.",instructions:["Send a clear invite with time and place (home or temple).","Host one shared puja or aarti session.","Log when the gathering happens."],practiceType:"Community",stage:"together",journeyStage:6,sortOrder:62,measurementType:"checklist",targetValue:1,unit:"gatherings",estimatedTimeMinutes:90,targetDays:1,presets:[{label:"Once",targetDays:1}],searchKeywords:["invite","family","nimantran","puja"]}),g({slug:"remove-one-bad-habit",title:"Remove One Bad Habit",description:"Name one habit to release during Ganesh Utsav and check in daily.",whyItMatters:"Ganapati removes obstacles â including the ones we feed ourselves.",instructions:["Name one specific habit (e.g. late-night scrolling, harsh speech).","Each day, mark whether you held the boundary.","Reflect briefly at visarjan on what stayed."],practiceType:"Transformation",stage:"transform",journeyStage:7,sortOrder:70,featured:!0,measurementType:"count",targetValue:1,unit:"clean days",estimatedTimeMinutes:5,searchKeywords:["habit","discipline","transformation"]}),g({slug:"silence-or-aarti-detox",title:"Daily Silence or Aarti Digital Detox",description:"Fifteen minutes of silence daily, or keep phones away during aarti.",whyItMatters:"Attention is the first offering; silence protects it.",instructions:["Choose: 15 minutes silence, or phone-free aarti.","Hold the boundary each committed day.","Log completion honestly."],practiceType:"Transformation",stage:"transform",journeyStage:7,sortOrder:71,measurementType:"duration",targetValue:15,unit:"minutes",estimatedTimeMinutes:15,searchKeywords:["silence","detox","digital","mauna"]}),g({slug:"gratitude-journal-utsav",title:"Daily Gratitude Journal",description:"Write three gratitudes each day through the festival window.",whyItMatters:"Gratitude turns festival abundance into lasting orientation.",instructions:["Each evening, write three specific gratitudes.","Keep the journal private unless you choose to share.","Log the writing day."],practiceType:"Transformation",stage:"transform",journeyStage:7,sortOrder:72,measurementType:"count",targetValue:1,unit:"journal days",estimatedTimeMinutes:10,searchKeywords:["gratitude","journal","anubhav"]})],v=["sankalp:ganesh-utsav:ganesh-mantra-108","sankalp:ganesh-utsav:atharvashirsha-daily","sankalp:ganesh-utsav:daily-ganesh-aarti","sankalp:ganesh-utsav:eco-clay-ganesh-idol","sankalp:ganesh-utsav:plastic-free-celebration","sankalp:ganesh-utsav:visit-ganesh-temple","sankalp:ganesh-utsav:family-aarti-festival","sankalp:ganesh-utsav:feed-animals-ganesh","sankalp:ganesh-utsav:plant-tree-utsav","sankalp:ganesh-utsav:annadan-need","
1sankalp:ganesh-utsav:ganesh-story-daily","sankalp:ganesh-utsav:remove-one-bad-habit"],w={id:"col-ganesh-utsav-2026",slug:"ganesh-utsav-2026",title:"Ganesh Utsav 2026",description:"Complete festival journey â prepare, worship, learn, seva, sustain, gather, and transform. Tick what fits; join what you can keep.",definitionIds:f.map(e=>e.id),icon:"ganesh",sortOrder:0},b=[{id:"ganesh-plastic-free-2026",definitionId:"sankalp:ganesh-utsav:plastic-free-celebration",publisher:{entityId:"brahma:ganesh-utsav-2026",name:"Brahma \xb7 Ganesh Utsav",entityType:"community",isVerified:!0},title:"Plastic-Free Ganesh",description:"Pledge a plastic-light celebration and log clean festival days with the collective.",status:"active",startDate:"2026-07-15",endDate:"2026-09-30",isGeoRequired:!1,geoLabel:"Bharat",campaignTemplate:"festival",forkOverrides:{targetDays:12},participationMetrics:{participantsCount:0,activeCount:0,completionsCount:0,completionRate:0},impactMetrics:{plastic_free_days:0},metricDefinitions:[{key:"plastic_free_days",label:"Plastic-free days logged",unit:"days",aggregation:"sum",sourceField:"achieved"}],featuredUntil:"2026-09-30",createdAt:"2026-07-15T00:00:00+05:30"},{id:"ganesh-clay-movement-2026",definitionId:"sankalp:ganesh-utsav:eco-clay-ganesh-idol",publisher:{entityId:"brahma:ganesh-utsav-2026",name:"Brahma \xb7 Ganesh Utsav",entityType:"community",isVerified:!0},title:"Clay Ganesh Movement",description:"Join households choosing clay or eco murtis â craft-respecting, earth-returning.",status:"active",startDate:"2026-07-15",endDate:"2026-09-30",isGeoRequired:!1,geoLabel:"Bharat",campaignTemplate:"festival",forkOverrides:{targetDays:1},participationMetrics:{participantsCount:0,activeCount:0,completionsCount:0,completionRate:0},impactMetrics:{clay_idols:0},metricDefinitions:[{key:"clay_idols",label:"Clay / eco idols pledged",unit:"idols",aggregation:"sum",sourceField:"achieved"}],featuredUntil:"2026-09-30",createdAt:"2026-07-15T00:00:00+05:30"},{id:"ganesh-annadan-2026",definitionId:"sankalp:ganesh-utsav:annadan-need",publisher:{entityId:"brahma:ganesh-utsav-2026",name:"Brahma \xb7 Ganesh Utsav",entityType:"community",isVerified:!0},title:"Community Annadan",description:"Collective food seva â one meaningful donation or meal offered in Ganeshâs name.",status:"active",startDate:"2026-07-15",endDate:"2026-09-30",isGeoRequired:!1,geoLabel:"Bharat",campaignTemplate:"festival",forkOverrides:{targetDays:1},participationMetrics:{participantsCount:0,activeCount:0,completionsCount:0,completionRate:0},impactMetrics:{meals_offered:0},metricDefinitions:[{key:"meals_offered",label:"Food offerings logged",unit:"offerings",aggregation:"sum",sourceField:"achieved"}],featuredUntil:"2026-09-30",createdAt:"2026-07-15T00:00:00+05:30"},{id:"ganesh-conscious-visarjan-2026",definitionId:"sankalp:ganesh-utsav:conscious-visarjan",publisher:{entityId:"brahma:ganesh-utsav-2026",name:"Brahma \xb7 Ganesh Utsav",entityType:"community",isVerified:!0},title:"Conscious Visarjan",description:"Pledge eco immersion â compost flowers, prefer tank/home immersion, clean after.",status:"active",startDate:"2026-09-01",endDate:"2026-09-30",isGeoRequired:!1,geoLabel:"Bharat",campaignTemplate:"festival",forkOverrides:{targetDays:1},participationMetrics:{participantsCount:0,activeCount:0,completionsCount:0,completionRate:0},impactMetrics:{conscious_visarjans:0},metricDefinitions:[{key:"conscious_visarjans",label:"Conscious visarjans logged",unit:"visarjans",aggregation:"sum",sourceField:"achieved"}],featuredUntil:"2026-09-30",createdAt:"2026-07-15T00:00:00+05:30"}];function k(){return[...f].sort((e,a)=>(e.sortOrder??99)-(a.sortOrder??99))}function S(){let e=new Map(f.map(e=>[e.id,e]));return v.map(a=>e.get(a)).filter(e=>!!e)}function T(){return y.map(e=>({stage:e,definitions:f.filter(a=>a.journeyStage===e.stage).sort((e,a)=>(e.sortOrder??99)-(a.sortOrder??99))})).filter(e=>e.definitions.length>0)}function D(e=new Date){let a=new Date(p.startsAt),t=new Date(p.endsAt);return e>=a&&e<=t}let I="1.2.0-ganesh-utsav",C=[w,{id:"col-brahma-essentials",slug:"brahma-essentials",title:"Brahma Essentials",description:"Core habits and daily sadhanas that serve as the foundation of your spiritual morning routine.",definitionIds:["sankalp:jeevan:brahma-muhurta","sankalp:mantra:gayatri-108","sankalp:prana:kapalabhati"],icon:"\uD83E\uDE94",sortOrder:1},{id:"col-student-collection",slug:"student-collection",title:"Student Sadhana",description:"Designed for young seekers to improve mental focus, sleep quality, and scripture study.",definitionIds:["sankalp:jeevan:digital-detox","sankalp:granth:gita-daily"],icon:"\uD83D\uDCD6",sortOrder:2},{id:"col-shiva-sadhana",slug:"shiva-sadhana",title:"Shiva Devotion",description:"Commit to Shiva consciousness through daily japa and spatial pilgrimage.",definitionIds:["sankalp:mantra:mahamrityunjaya-108","sankalp:mantra:om-namah-shivaya-108","sankalp:yatra:12-jyotirlinga"],icon:"\uD83D\uDD31",sortOrder:3},{id:"col-hanuman-seva",slug:"hanuman-seva",title:"Hanuman Seva & Devotion",description:"Cultivate selfless service, courage, and daily devotional reciting.",definitionIds:["sankalp:mantra:
1hanuman-chalisa-40","sankalp:seva:feed-cows"],icon:"\uD83D\uDC35",sortOrder:4},{id:"col-bharat-sankalp",slug:"bharat-sankalp",title:"Bharat Civilizational",description:"Vows that connect you to native cultural preservation and civilizational service.",definitionIds:["sankalp:bharat:heritage-site","sankalp:bharat:sanskrit-word"],icon:"\uD83C\uDDEE\uD83C\uDDF3",sortOrder:5},{id:"col-begin-here",slug:"begin-here",title:"Begin Here",description:"Simple daily commitments anyone can start today.",definitionIds:["sankalp:cause:morning-silence","sankalp:cause:no-phone-first-30","sankalp:cause:daily-walking","sankalp:cause:daily-gratitude"],icon:"begin",sortOrder:6},{id:"col-nature-action",slug:"nature-action",title:"Nature Action",description:"Trees, waste, plastic, and everyday care for the living world.",definitionIds:["sankalp:cause:plant-native-trees","sankalp:cause:waste-segregation","sankalp:cause:plastic-free-week","sankalp:cause:compost-at-home"],icon:"nature",sortOrder:7},{id:"col-seva-everyday",slug:"seva-everyday",title:"Everyday Seva",description:"Food, cleanliness, and neighborhood care.",definitionIds:["sankalp:cause:feed-the-hungry","sankalp:cause:community-cleanliness","sankalp:cause:teach-one-child","sankalp:cause:save-water-daily"],icon:"seva",sortOrder:8},{id:"col-spiritual-practice",slug:"spiritual-practice",title:"Spiritual Practice",description:"Silence, mantra, gratitude, and study.",definitionIds:["sankalp:cause:morning-silence","sankalp:cause:daily-mantra-japa","sankalp:cause:daily-gratitude","sankalp:chalisa:hanuman-chalisa-7"],icon:"spiritual",sortOrder:9}],M=[{id:"sankalp:mantra:gayatri-108",slug:"gayatri-mantra-108",sourceEntityIds:{mantra:"gayatri-mantra"},category:"Sadhana",subcategory:"Mantra",measurementType:"count",measurementConfig:{targetValue:108,unit:"chants"},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:"beginner",estimatedTimeMinutes:15,targetDays:21,prerequisites:[],nextRecommended:["sankalp:mantra:gayatri-1008"],tags:["devotion","spiritual","sacred","mantra"],relatedPractices:["sankalp:prana:kapalabhati","sankalp:jeevan:brahma-muhurta"],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["gayatri","japa","mantra","sun","vedic","savitri"],featured:!0,sortOrder:1,journeyGroup:"gayatri-path",journeyStage:1,presets:[{label:"7 Days (Panchak)",targetDays:7},{label:"21 Days (Ekavimshati)",targetDays:21},{label:"40 Days (Anushthana)",targetDays:40}],localizedTexts:[{language:"en",title:"Gayatri Mantra 108 Chants",description:"Chant the Gayatri Mantra 108 times daily to invoke solar intelligence and cognitive clarity.",story:"The Gayatri is the mother of Vedas, representing the supreme light of conscious awareness that purifies intellect.",whyItMatters:"Daily Gayatri japa builds an intellectual focus filter that stabilizes the mind's internal waves.",benefits:["Sharpens concentration","Stabilizes emotional swings","Harmonizes brain states"],instructions:["Sit comfortably facing East (morning) or West (evening).","Close your eyes and take 3 deep breaths.","Chant the mantra silently or aloud: 'Om Bhur Bhuvah Svah...'","Use a mala or the screen tap counter to complete 108 counts."],faq:[{question:"What is the best time for Gayatri japa?",answer:"Sandhya times: sunrise, noon, and sunset are traditionally recommended."}]}]},{id:"sankalp:mantra:gayatri-1008",slug:"gayatri-mantra-1008",sourceEntityIds:{mantra:"gayatri-mantra"},category:"Sadhana",subcategory:"Mantra",measurementType:"count",measurementConfig:{targetValue:1008,unit:"chants"},completionStrategy:"threshold",visibilityDefaults:"private",accessType:"public",origin:"brahma",difficulty:"advanced",estimatedTimeMinutes:120,targetDays:40,prerequisites:["sankalp:mantra:gayatri-108"],nextRecommended:[],tags:["discipline","spiritual","sacred","japa"],relatedPractices:["sankalp:mantra:gayatri-108"],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!1,searchKeywords:["gayatri","japa","mantra","intense","anushthana"],featured:!1,sortOrder:2,journeyGroup:"gayatri-path",journeyStage:2,presets:[{label:"40 Days Intensive",targetDays:40},{label:"108 Days Mahasadhana",targetDays:108}],localizedTexts:[{language:"en",title:"Gayatri Japa 1008 Chants",description:"Deep meditative practice of chanting 1008 rounds of Gayatri mantra for internal purification.",story:"Chanting 1008 times is a traditional purification process equivalent to a full mini-anushthana, dissolving deeper layers of mental impressions.",whyItMatters:"Sustaining a 1008-japa practice over 40 days alters neurological baselines and deepens self-witnessing.",benefits:["Develops deep patience","Dissolves mental blockages","Unlocks strong internal resilience"],instructions:["Ensure a dedicated sacred space where you won't be interrupted.","Keep posture steady; do not change seat posture frequently.","Use a rudraksha or tulsi mala (10 rounds of 108, keeping index finger off)."],faq:[{question:"Can I split the 1008 chants?",answer:"It is best done in one seated session, but if necessary can be split into sunrise and sunset halves."}]}]},{id:"sankalp:mantra:mahamrityunjaya-108",slug:"mahamrityunjaya-108",sourceEntityIds:{mantra:"mahamrityunjaya-mantra"},category:"Sadhana",subcategory:"Mantra",measurementType:"count",measurementConfig:{targetValue:108,unit:"chants"},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:"intermediate",estimatedTimeMinutes:20,targetDays:21,prerequisites:[],nextRecommended:[],tags:["shiva","healing","sacred","mantra"],relatedPractices:["sankalp:mantra:gayatri-108"],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["shiva","mrityunjaya","healing","health","japa"],featured:!0,sortOrder:3,journeyGroup:"shiva-path",journeyStage:2,presets:[{label:"21 Days Healing",targetDays:21},{label:"40 Days Vow",targetDays:40}],localizedTexts:[{language:"en",title:"Maha Mrityunjaya 108 Chants",description:"Chant the great death-conquering Shiva mantra to invoke wellness, life-energy, and rejuvenation.",story:"Sage Markandeya conquered physical death through the grace of Mahamrityunjaya Shiva, symbolizing inner immortality.",whyItMatters:"The resonant frequencies of the Mrityunjaya mantra calm the nervous system and promote systemic healing.",benefits:["Relieves anxiety","Strengthens immune field","Promotes peaceful sleep"],instructions:["Sit facing North or East.","Chant the mantra slowly with awareness of sound vibrations: 'Om Tryambakam Yajamahe...'","Complete 1 mala (108 repetitions)."],faq:[{question:"Do I need special initiation?",answer:"No, this healing mantra is universally accessible for health and longevity."}]}]},{id:"sankalp:mantra:om-namah-shivaya-108",slug:"om-namah-shivaya-108",sourceEntityIds:{mantra:"om-namah-shivaya"},category:"Sadhana",subcategory:"Mantra",measurementType:"count",measurementConfig:{targetValue:108,unit:"chants"},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:"beginner",estimatedTimeMinutes:10,targetDays:21,prerequisites:[],nextRecommended:["sankalp:mantra:mahamrityunjaya-108"],tags:["shiva","devotion","mantra"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["shiva","panchakshara","mantra","japa","devotion"],featured:!0,sortOrder:4,journeyGroup:"shiva-path",journeyStage:1,presets:[{label:"21 Days Sadhana",targetDays:21},{label:"40 Days Sadhana",targetDays:40}],localizedTexts:[{language:"en",title:"Om Namah Shivaya 108 Chants",description:"Chant the five-syllable Panchakshara mantra daily to align with cosmic energy.",story:"The five syllables Na-Mah-Shi-Va-Ya represent the five elements: earth, water, fire, air, and space, harmonizing internal elements.",whyItMatters:"Simple daily Shiva japa builds a peaceful emotional state and mental stability.",benefits:["Quiets the mind","Connects to elements","Cultivates peaceful devotion"],instructions:["Sit in padmasana or cross-legged.","Chant silently: 'Om Namah Shivaya'.","Complete 1 mala."],faq:[{question:"Should I count on fingers?",answer:"A rudraksha mala is preferred, but finger counters work well."}]}]}
1,{id:"sankalp:mantra:hare-krishna-108",slug:"hare-krishna-108",sourceEntityIds:{mantra:"hare-krishna-maha-mantra"},category:"Sadhana",subcategory:"Mantra",measurementType:"count",measurementConfig:{targetValue:108,unit:"chants"},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:"beginner",estimatedTimeMinutes:10,targetDays:21,prerequisites:[],nextRecommended:[],tags:["krishna","bhakti","mantra"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["krishna","maha-mantra","japa","devotion","bhakti"],featured:!1,sortOrder:5,presets:[{label:"21 Days Bhakti",targetDays:21},{label:"108 Days Devotion",targetDays:108}],localizedTexts:[{language:"en",title:"Hare Krishna Maha Mantra",description:"Chant the Maha Mantra daily to cultivate pure devotional love and spiritual awakening.",story:"The Kali Santarana Upanishad declares this mantra as the ultimate way to dissolve the negative influences of the current age.",whyItMatters:"Chanting names of the divine dissolves cognitive ego structures and opens the emotional heart.",benefits:["Enhances inner peace","Builds spiritual connection","Harmonizes emotional energy"],instructions:["Chant the full mantra: 'Hare Krishna Hare Krishna...'","Complete 108 repetitions of the full mantra cycle."],faq:[{question:"Can I sing it?",answer:"Yes, it can be chanted quietly as Japa or sung aloud as Kirtan."}]}]},{id:"sankalp:mantra:hanuman-chalisa-40",slug:"hanuman-chalisa-40-day",sourceEntityIds:{mantra:"hanuman-chalisa"},category:"Sadhana",subcategory:"Mantra",measurementType:"count",measurementConfig:{targetValue:1,unit:"recitation"},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:"beginner",estimatedTimeMinutes:10,targetDays:40,prerequisites:[],nextRecommended:[],tags:["hanuman","devotion","strength"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["hanuman","chalisa","courage","strength","protection"],featured:!0,sortOrder:6,presets:[{label:"40 Days Discipline",targetDays:40},{label:"108 Days Dedication",targetDays:108}],localizedTexts:[{language:"en",title:"Hanuman Chalisa 40-Day Vow",description:"Recite the Hanuman Chalisa daily for forty days to dissolve fear and cultivate inner strength.",story:"Tulsidas composed the Hanuman Chalisa while imprisoned, invoking the infinite energy and devotion of Hanuman to break physical and mental shackles.",whyItMatters:"Regular recitation builds courage, removes internal and external obstacles, and inspires selfless action.",benefits:["Removes negative habits","Overcomes deep fears","Builds strong mental willpower"],instructions:["Cleanse yourself and sit before an image or altar of Hanuman/Rama.","Recite the 40 verses of the Chalisa with focused attention.","Conclude with a silent moment of devotion."],faq:[{question:"What if I miss a day?",answer:"Under standard 40-day vows, missing a day resets the count to Day 1. Maintain consistency."}]}]},{id:"sankalp:chalisa:hanuman-chalisa-7",slug:"hanuman-chalisa-7-day",category:"Sadhana",subcategory:"Chalisa",measurementType:"count",measurementConfig:{targetValue:1,unit:"recitation"},completionStrategy:"threshold",visibilityDefaults:"private",accessType:"public",origin:"brahma",difficulty:"beginner",estimatedTimeMinutes:10,targetDays:7,prerequisites:[],nextRecommended:[],tags:["hanuman","devotion","chalisa"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!1,supportsForks:!1,searchKeywords:["hanuman","chalisa","courage","strength"],sourceBindings:[{module:"chalisa",canonicalId:"hanuman-chalisa",slug:"hanuman-chalisa",aliases:["hanuman-chalisa-40-day"],relation:"practices",progressRole:"primary"}],localizedTexts:[{language:"en",title:"Hanuman Chalisa 7-Day Vow",description:"Recite the Hanuman Chalisa once daily for 7 days to cultivate inner strength and focus.",story:"Tulsidas composed the Hanuman Chalisa while imprisoned, invoking the infinite energy and devotion of Hanuman to break physical and mental shackles.",whyItMatters:"Regular recitation builds courage, removes internal and external obstacles, and inspires selfless action.",benefits:["Overcomes deep fears","Builds strong mental willpower"],instructions:["Cleanse yourself and sit before an image or altar of Hanuman/Rama.","Recite the 40 verses of the Chalisa with focused attention."],faq:[]}]},{id:"sankalp:yatra:local-temple",slug:"local-temple-monthly",category:"Yatra",subcategory:"Pilgrimage",measurementType:"count",measurementConfig:{targetValue:1,unit:"visit"},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"user",difficulty:"beginner",estimatedTimeMinutes:45,targetDays:30,prerequisites:[],nextRecommended:[],tags:["temple","darshan","local"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!1,supportsForks:!1,searchKeywords:["temple","darshan","local","devotion","monthly"],featured:!0,sortOrder:7,presets:[{label:"Monthly Vow (1 Visit)",targetDays:30},{label:"Weekly Vow (4 Visits)",targetDays:28}],localizedTexts:[{language:"en",title:"Monthly Local Temple Visit",description:"Commit to visiting a local temple at least once a month for peaceful darshan and community connect.",story:"Visiting holy spaces changes the spatial field we operate in, allowing deep quiet and realignment.",whyItMatters:"A regular temple visit builds community connections (Sangha) and breaks up automated habits.",benefits:["Quiets sensory patterns","Fosters community connect","Cultivates devotion"],instructions:["Visit a temple of your choice.","Spend at least 15 minutes in silent c
1ontemplation.","Log with a photo or GPS check-in."],faq:[{question:"Do I need to visit on specific days?",answer:"Any day is fine, though festival days offer richer community experiences."}]}]},{id:"sankalp:yatra:12-jyotirlinga",slug:"12-jyotirlinga-yatra",category:"Yatra",subcategory:"Pilgrimage",measurementType:"location",measurementConfig:{requiredLocations:[{name:"Somnath",h3Index:"8820cf22bbfffff"},{name:"Mallikarjuna",h3Index:"8860127599fffff"},{name:"Mahakaleshwar",h3Index:"8821950d29fffff"},{name:"Omkareshwar",h3Index:"882193582bfffff"},{name:"Kedarnath",h3Index:"88204642adfffff"},{name:"Bhimashankar",h3Index:"882d92bb45fffff"},{name:"Kashi Vishwanath",h3Index:"883060d4b5fffff"},{name:"Trimbakeshwar",h3Index:"882da082cbfffff"},{name:"Vaidyanath",h3Index:"8830303b6dfffff"},{name:"Nageshwar",h3Index:"8820cbb763fffff"},{name:"Rameshwaram",h3Index:"88618e76a9fffff"},{name:"Grishneshwar",h3Index:"882d8c3667fffff"}]},completionStrategy:"all-required",visibilityDefaults:"public",accessType:"public",origin:"temple",difficulty:"advanced",estimatedTimeMinutes:20160,targetDays:48,prerequisites:[],nextRecommended:[],tags:["pilgrimage","yatra","shiva","spatial"],relatedPractices:["sankalp:mantra:mahamrityunjaya-108"],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["shiva","yatra","jyotirlinga","pilgrimage","india","spatial","bhoomi"],featured:!0,sortOrder:8,journeyGroup:"shiva-path",journeyStage:3,presets:[{label:"48 Days Pilgrimage Journey",targetDays:48},{label:"108 Days Sacred Cycle",targetDays:108}],localizedTexts:[{language:"en",title:"12 Jyotirlinga Mahayatra",description:"Visit all 12 holy Jyotirlinga shrines across India. Verification happens via Bhoomi GPS check-in or Temple QR code.",story:"The Jyotirlingas are radiant pillars of infinite cosmic light, consecrated portals where Shiva manifested to settle arguments of ego.",whyItMatters:"Spatial pilgrimage (Yatra) breaks geographic patterns and resets internal alignments through sacred travel.",benefits:["Clears deep karmic blockages","Broadens cultural understanding","Tests physical endurance"],instructions:["Plan visits to Somnath, Mallikarjuna, Mahakaleshwar, Omkareshwar, Kedarnath, Bhimashankar, Kashi Vishwanath, Trimbakeshwar, Vaidyanath, Nageshwar, Rameshwaram, and Grishneshwar.","Upon arrival at each temple, scan the official Temple QR or activate GPS check-in in the Bhoomi module.","Ensure each destination entry is verified."],faq:[{question:"Is there a specific sequence to visit?",answer:"Traditionally, yatris start with Somnath or Rameshwaram, but any sequence is valid."}]}]},{id:"sankalp:yatra:char-dham",slug:"char-dham-yatra",category:"Yatra",subcategory:"Pilgrimage",measurementType:"location",measurementConfig:{requiredLocations:[{name:"Yamunotri",h3Index:"88204616bbfffff"},{name:"Gangotri",h3Index:"88204668b5fffff"},{name:"Kedarnath",h3Index:"88204642adfffff"},{name:"Badrinath",h3Index:"8820464a4dfffff"}]},completionStrategy:"all-required",visibilityDefaults:"public",accessType:"public",origin:"temple",difficulty:"advanced",estimatedTimeMinutes:10080,targetDays:21,prerequisites:[],nextRecommended:[],tags:["pilgrimage","yatra","himalayas","chardham"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["dham","pilgrimage","himalayas","char-dham","badrinath","kedarnath"],featured:!1,sortOrder:9,presets:[{label:"21 Days Himalayan Journey",targetDays:21}],localizedTexts:[{language:"en",title:"Char Dham Himalayan Pilgrimage",description:"Visit the four sacred Himalayan temples: Yamunotri, Gangotri, Kedarnath, and Badrinath.",story:"Adi Shankara unified the spiritual fabric of Bharat by establishing/promoting holy pilgrimages across these extreme heights.",whyItMatters:"Journeying through high altitudes forces a deep mental reset and physical cleansing.",benefits:["Builds high physical endurance","Cultivates deep devotion","Aligns with Himalayan currents"],instructions:["Visit all 4 holy shrines.","Verify check-in at each site using GPS check-in."],faq:[{question:"When are the temples open?",answer:"Typically from late April/May to October/November, depending on snow."}]}]},{id:"sankalp:yatra:panch-kedar",slug:"panch-kedar-pilgrimage",category:"Yatra",subcategory:"Pilgrimage",measurementType:"location",measurementConfig:{requiredLocations:[{name:"Kedarnath"},{name:"Madhyamaheshwar"},{name:"Tungnath"},{name:"Rudranath"},{name:"Kalpeshwar"}]},completionStrategy:"all-required",visibilityDefaults:"public",accessType:"public",origin:"temple",difficulty:"advanced",estimatedTimeMinutes:14400,targetDays:30,prerequisites:[],nextRecommended:[],tags:["pilgrimage","yatra","shiva","himalayas"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["kedar","panch-kedar","shiva","himalayas","trekking"],featured:!1,sortOrder:10,presets:[{label:"30 Days Himalayan Trek",targetDays:30}],localizedTexts:[{language:"en",title:"Panch Kedar Pilgrimage",description:"Visit the five sacred Shiva temples of Garhwal Himalayas: Kedarnath, Madhyamaheshwar, Tungnath, Rudranath, and Kalpeshwar.",story:"The Pandavas sought Shiva to absolve their sins of war. Shiva took form of a bull, and his body parts manifested at these five locations.",whyItMatters:"Trekking to remote high-altitude Shiva temples breaks all automated mental conditioning.",benefits:["Extreme physical detoxification","Quietness of mind","Deep integration with nature"],instructions:["Trek and check in at all 5 temples.","Log progress via Temple QR or photo uploads."],faq:[{question:"Which is the highest?",answer:"Tungnath is the highest Shiva temple in the world (3,680 m)."}]}]},{id:"sankalp:yatra:ashtavinayak",slug:"ashtavinayak-circuit",category:"Yatra",subcategory:"Pilgrimage",measurementType:"location",measurementConfig:{requiredLocations:[{name:"Morgaon"},{name:"Siddhatek"},{name:"Pali"},{name:"Mahad"},{name:"Theur"},{name:"Lenyadri"},{name:"Ozar"},{name:"Ranjangaon"}]},completionStrategy:"all-required",visibilityDefaults:"friends",accessType:"public",origin:"temple",difficulty:"intermediate",estimatedTimeMinutes:4320,targetDays:14,prerequisites:[],nextRecommended:[],tags:["pilgrimage","yatra","ganesha"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["gane
1sha","ashtavinayak","pilgrimage","yatra","maharashtra"],featured:!1,sortOrder:11,presets:[{label:"14 Days Ashtavinayak Circuit",targetDays:14}],localizedTexts:[{language:"en",title:"Ashtavinayak Pilgrimage Circuit",description:"Visit the eight canonical self-manifested (Swayambhu) temples of Ganesha in Maharashtra.",story:"The Ashtavinayak pilgrimage is traditionally completed by visiting all 8 temples in a specific order starting and ending at Morgaon.",whyItMatters:"Visiting Ganesha shrines invokes wisdom, cognitive order, and removes life obstacles.",benefits:["Clears mental clutter","Renews resolution energy","Connects to Ganesha shrines"],instructions:["Visit all 8 temples in the circuit.","Log verification checks at each temple."],faq:[{question:"Is the sequence strict?",answer:"Morgaon is traditionally the starting and ending temple, but completing all eight is the core target."}]}]},{id:"sankalp:seva:feed-cows",slug:"gau-seva-cow-care",category:"Seva",subcategory:"Animal Care",measurementType:"checklist",measurementConfig:{checklistItems:["Acquire green grass or fresh fodder","Feed cow at a gaushala or safe space","Submit witness confirmation photo"]},completionStrategy:"all-required",visibilityDefaults:"community",accessType:"public",origin:"community",difficulty:"beginner",estimatedTimeMinutes:30,targetDays:11,prerequisites:[],nextRecommended:[],tags:["seva","animals","punya","compassion"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["seva","cows","gau","service","compassion","gaushala"],featured:!0,sortOrder:12,presets:[{label:"11 Days Vow",targetDays:11}],localizedTexts:[{language:"en",title:"Gau Seva (Feed Cows)",description:"Serve local gaushalas by providing fresh green fodder to cows to cultivate compassion.",story:"The cow represents Kamadhenu, the wish-fulfilling matrix of life. Seva here connects us to the nurturing forces of nature.",whyItMatters:"Selfless service to animals softens our competitive nature and expands our empathy framework.",benefits:["Develops kindness","Generates positive karma","Supports local gaushala farms"],instructions:["Visit a gaushala or locate a free-roaming cow.","Purchase or gather clean fodder (grass, carrots, or bananas).","Feed gently and record progress by uploading photo proof."],faq:[{question:"Can I feed cows wheat flatbreads?",answer:"Yes, fresh wheat rotis with jaggery are good, but green fodder is most nutritious."}]}]},{id:"sankalp:seva:feed-needy",slug:"anna-daan-feeding",category:"Seva",subcategory:"Community Service",measurementType:"count",measurementConfig:{targetValue:5,unit:"meals"},completionStrategy:"threshold",visibilityDefaults:"community",accessType:"public",origin:"community",difficulty:"beginner",estimatedTimeMinutes:60,targetDays:10,prerequisites:[],nextRecommended:[],tags:["seva","service","food","charity"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["food","feed","annadaan","seva","service","needy"],featured:!0,sortOrder:13,presets:[{label:"10 Days Feeding Vow (5 meals daily)",targetDays:10}],localizedTexts:[{language:"en",title:"Anna Daan (Feed the Needy)",description:"Distribute nutritious meals to the needy in your local neighborhood.",story:"Sharing food (Anna Daan) is recognized as one of the highest direct forms of charity, satisfying hunger immediately.",whyItMatters:"Direct service to humans develops humility and connects us to the reality of the social fabric.",benefits:["Builds social connection","Reduces self-centeredness","Inspires gratitude"],instructions:["Prepare or purchase fresh, hygienic meals.","Distribute to hungry individuals.","Upload photo confirmation."],faq:[{question:"Can I donate to a food bank instead?",answer:"Direct hands-on distribution is encouraged for this vow to build connection, but structured gaushala/food bank donations are also valid."}]}]},{id:"sankalp:seva:plant-trees",slug:"vriksharopan-planting",category:"Seva",subcategory:"Environment",measurementType:"count",measurementConfig:{targetValue:1,unit:"sapling"},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"user",difficulty:"beginner",estimatedTimeMinutes:30,targetDays:7,prerequisites:[],nextRecommended:[],tags:["seva","nature","trees","ecology"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["trees","environment","nature","vriksharopan","planting"],featured:!0,sortOrder:14,presets:[{label:"7 Days Green Vow (1 Tree daily)",targetDays:7}],localizedTexts:[{language:"en",title:"Vriksharopan (Plant Trees)",description:"Plant native tree saplings and commit to watering them daily.",story:"Trees are living witnesses of ecosystems. Planting a tree is a service to future generations and native wildlife.",whyItMatters:"Active ecological connection is a primary dharmic duty (*Prakriti Seva*).",benefits:["Reduces carbon footprint","Supports local biodiversity","Calms the nervous system"],instructions:["Acquire native saplings (Neem, Banyan, Peepal, or fruit trees).","Plant in a safe public or private zone.","Water and secure with tree-guards."],faq:[{question:"Which trees are best?",answer:"Always prefer native shade-giving or fruit trees over decorative varieties."}]}]},{id:"sankalp:seva:clean-public-space",slug:"shramdaan-cleanliness",category:"Seva",
1subcategory:"Environment",measurementType:"count",measurementConfig:{targetValue:1,unit:"session"},completionStrategy:"threshold",visibilityDefaults:"community",accessType:"public",origin:"community",difficulty:"beginner",estimatedTimeMinutes:60,targetDays:7,prerequisites:[],nextRecommended:[],tags:["seva","shramdaan","clean","swachh"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["clean","shramdaan","public","swachh","cleanliness"],featured:!1,sortOrder:15,presets:[{label:"7 Days Cleanliness Vow (1 session daily)",targetDays:7}],localizedTexts:[{language:"en",title:"Shramdaan (Clean Public Space)",description:"Spend time cleaning a local park, street, or temple public space.",story:"Cleanliness is closer to clarity. Shramdaan (voluntary labor) keeps public spaces clean while building social ownership.",whyItMatters:"Cleaning the physical environment directly cleanses the internal subconscious mind (Chitta-Shuddhi).",benefits:["Clears local environment","Inspires community hygiene","Fosters civic pride"],instructions:["Choose a local public area needing attention.","Spend 1 hour gathering plastic/waste.","Log before/after evidence photos."],faq:[{question:"Can I do this in a group?",answer:"Yes, group cleaning is highly encouraged and builds strong Sangha bonds."}]}]},{id:"sankalp:granth:gita-daily",slug:"gita-chapter-daily",category:"Study",subcategory:"Scripture",measurementType:"count",measurementConfig:{targetValue:1,unit:"chapter"},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:"beginner",estimatedTimeMinutes:15,targetDays:18,prerequisites:[],nextRecommended:[],tags:["gita","krishna","wisdom","study"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["gita","bhagavad","krishna","study","wisdom","swadhyaya"],featured:!0,sortOrder:16,presets:[{label:"18 Chapters (One per day)",targetDays:18}],localizedTexts:[{language:"en",title:"Bhagavad Gita Chapter Daily",description:"Read and reflect on one chapter of the Bhagavad Gita daily for 18 days to master life action.",story:"Lord Krishna spoke the Gita to Arjuna on the battlefield of Kurukshetra, providing timeless guidelines for resolving inner crises.",whyItMatters:"Swadhyaya (self-study of scripture) offers a mirror to examine our thoughts, intentions, and reactions.",benefits:["Unlocks practical wisdom","Clarifies correct duty (Dharma)","Reduces decision stress"],instructions:["Pick a translation with commentary that resonates with you.","Read one complete chapter (or 15-20 verses if a chapter is long).","Journal one reflection event in the App's reflection panel."],faq:[{question:"Do I need to read Sanskrit?",answer:"No, reading the translation and meaning is sufficient to absorb the wisdom."}]}]},{id:"sankalp:granth:yoga-sutras",slug:"yoga-sutras-study",category:"Study",subcategory:"Scripture",measurementType:"count",measurementConfig:{targetValue:5,unit:"sutras"},completionStrategy:"threshold",visibilityDefaults:"private",accessType:"public",origin:"brahma",difficulty:"intermediate",estimatedTimeMinutes:20,targetDays:40,prerequisites:[],nextRecommended:[],tags:["yoga","sutras","patanjali","mind"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!1,supportsForks:!1,searchKeywords:["yoga","sutras","patanjali","study","mind","meditation"],featured:!1,sortOrder:17,presets:[{label:"40 Days Study Vow",targetDays:40}],localizedTexts:[{language:"en",title:"Patanjali Yoga Sutras Daily Study",description:"Contemplate five sutras of Patanjali daily to understand the pathways of consciousness.",story:"Patanjali organized the system of Ashtanga Yoga to quiet the mind: 'Yogash Chitta Vritti Nirodhah'.",whyItMatters:"Yoga Sutras offer a highly scientific mental roadmap that dismantles psychological illusions.",benefits:["Unlocks mental self-study","Calms anxiety patterns","Improves clarity of thinking"],instructions:["Read 5 sutras daily with translation.","Spend 5 minutes meditating on their direct meaning."],faq:[{question:"Is this yoga postures?",answer:"No, this is the psychology/philosophy of yoga, not physical asana sequences."}]}]},{id:"sankalp:granth:upanishad-study",slug:"upanishad-study",category:"Study",subcategory:"Scripture",measurementType:"count",measurementConfig:{targetValue:1,unit:"verse"},completionStrategy:"threshold",visibilityDefaults:"private",accessType:"public",origin:"brahma",difficulty:"advanced",estimatedTimeMinutes:20,targetDays:30,prerequisites:[],nextRecommended:[],tags:["upanishad","philosophy","wisdom"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!1,supportsForks:!1,searchKeywords:["upanishad","wisdom","study","philosophy","vedanta"],featured:!1,sortOrder:18,presets:[{label:"30 Days Swadhyaya",targetDays:30}],localizedTexts:[{language:"en",title:"Upanishad Daily Swadhyaya",description:"Contemplate one verse of a major Upanishad daily to realize ultimate unity.",story:"Upanishads contain the core Vedanta revelations (Jnana Kanda) exploring Atman and Brahman.",whyItMatters:"Reading non-dual wisdom exposes us to higher perspective baselines that dissolve ego limitations.",benefits:["Develops self-reflection","Reduces existential stress","Unlocks higher states of unity"],instructions:["Read one verse with traditional commentary (e.g. Shankara).","Meditate in silence on its meaning."],faq:[{question:"Which Upanishad should I start with?",answer:"Isha or Katha Upanishad are excellent starting points."}]}]},{id:"sankalp:prana:nadi-shodhana",slug:"nadi-shodhana-pranayama",category:"Sadhana",subcategory:"Pranayama",measurementType:"duration",measurementConfig:{targetDurationMinutes:15},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:"beginner",estimatedTimeMinutes:15,targetDays:21,prerequisites:[],nextRecommended:[],tags:["prana","breathing","calm"],relatedPractices:["sankalp:jeevan:brahma-muhurta"],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["prana","nadi","shodhana","breathing","calm","pranayama"],featured:!0,sortOrder:19,presets:[{label:"21 Days Sadhana",targetDays:21},{label:"40 Days Mastery",targetDays:40}],localizedTexts:[{language:"en",title:"Nadi Shodhana Pranayama",de
1scription:"Practice 15 minutes of alternate nostril breathing daily to balance your energy channels.",story:"Nadi Shodhana purifies the ida (lunar) and pingala (solar) energy streams, establishing absolute balance.",whyItMatters:"Breathing cycles directly dictate nervous state responses; alternate breathing induces deep calm.",benefits:["Harmonizes brain hemispheres","Lowers elevated heart rates","Reduces mental static"],instructions:["Sit in padmasana.","Use your right thumb to close your right nostril, inhale through left.","Close left, exhale through right. Reverse and repeat."],faq:[{question:"Should I hold my breath?",answer:"Beginners should practice without breath retention (Kumbhaka) first."}]}]},{id:"sankalp:prana:kapalabhati",slug:"kapalabhati-pranayama",category:"Sadhana",subcategory:"Pranayama",measurementType:"duration",measurementConfig:{targetDurationMinutes:10},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:"beginner",estimatedTimeMinutes:10,targetDays:21,prerequisites:[],nextRecommended:[],tags:["prana","breath","energy"],relatedPractices:["sankalp:jeevan:brahma-muhurta"],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["prana","breathing","kapalabhati","focus","energy","cleansing"],featured:!0,sortOrder:20,presets:[{label:"21 Days Cleansing",targetDays:21},{label:"40 Days Mastery",targetDays:40}],localizedTexts:[{language:"en",title:"Kapalabhati Skull-Shining Kriya",description:"Practice 10 minutes of active Kapalabhati pranayama daily to oxygenate your blood and vitalize your forehead.",story:"Kapalabhati ('skull-shining') is one of the shat-kriyas (cleansing actions), known for clearing sensory networks and bringing pranic glow.",whyItMatters:"Rapid exhalation flushes carbon dioxide, expands lung elasticity, and focuses cognitive channels.",benefits:["Boosts metabolism","Clears sinus cavities","Awakens frontal brain regions"],instructions:["Sit straight-backed in Sukhasana or Vajrasana.","Exhale forcefully through both nostrils while contracting the abdomen.","Let inhalation happen passively.","Practice in 3 rounds of 60 strokes, taking resting breaths in between."],faq:[{question:"Should I practice on an empty stomach?",answer:"Yes, this must be practiced at least 3 hours after food."}]}]},{id:"sankalp:prana:bhastrika",slug:"bhastrika-pranayama",category:"Sadhana",subcategory:"Pranayama",measurementType:"duration",measurementConfig:{targetDurationMinutes:5},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:"intermediate",estimatedTimeMinutes:5,targetDays:21,prerequisites:[],nextRecommended:[],tags:["prana","breath","energy"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["prana","bhastrika","breathing","energy","vitality"],featured:!1,sortOrder:21,presets:[{label:"21 Days Energy Vow",targetDays:21}],localizedTexts:[{language:"en",title:"Bhastrika Bellows Breath",description:"Practice 5 minutes of Bhastrika (bellows breathing) daily to generate internal heat and vitality.",story:"Bhastrika acts like blacksmith bellows, generating pranic fire (Agni) that burns away physical toxins.",whyItMatters:"Powerful breathing cycles vitalize blood oxygenation, clearing letharg
1y (Tamas) quickly.",benefits:["Awakens sluggish states","Generates systemic heat","Strengthens abdominal muscles"],instructions:["Sit tall. Inhale and exhale rapidly and forcefully with equal emphasis.","Keep shoulders relaxed; focus force at the diaphragm."],faq:[{question:"Can I practice this when hot?",answer:"It is best avoided during peak heat or if suffering from high blood pressure."}]}]},{id:"sankalp:prana:prana-kriya",slug:"prana-kriya-sadhana",category:"Sadhana",subcategory:"Pranayama",measurementType:"duration",measurementConfig:{targetDurationMinutes:20},completionStrategy:"threshold",visibilityDefaults:"private",accessType:"public",origin:"brahma",difficulty:"advanced",estimatedTimeMinutes:20,targetDays:40,prerequisites:["sankalp:prana:nadi-shodhana"],nextRecommended:[],tags:["prana","kriya","breath"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!1,supportsForks:!1,searchKeywords:["prana","kriya","breathing","deep","meditation"],featured:!1,sortOrder:22,presets:[{label:"40 Days Prana Kriya Vow",targetDays:40}],localizedTexts:[{language:"en",title:"Unified Prana Kriya Sadhana",description:"Practice the 20-minute unified Prana Kriya breathing sequence daily to master pranic flow.",story:"Prana Kriya is a traditional combination of breath control, locks (Bandhas), and awareness to elevate energy.",whyItMatters:"A sustained 40-day Kriya sadhana stabilizes nervous states and prepares the mind for deep meditation.",benefits:["Balances somatic energy","Deepens meditative focus","Builds spiritual discipline"],instructions:["Complete Nadi Shodhana.","Integrate abdominal locks (Uddiyana) and throat locks (Jalandhara)."],faq:[{question:"Should I learn this from a teacher?",answer:"Yes, advanced locks are best learned under guide verification."}]}]},{id:"sankalp:jeevan:brahma-muhurta",slug:"brahma-muhurta-wakeup",category:"Daily Jeevan",subcategory:"Morning",measurementType:"duration",measurementConfig:{targetDurationMinutes:20},completionStrategy:"continuous",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:"intermediate",estimatedTimeMinutes:20,targetDays:21,prerequisites:[],nextRecommended:[],tags:["morning","habits","discipline"],relatedPractices:["sankalp:mantra:gayatri-108"],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["morning","wake","brahma","muhurta","habits","early"],featured:!0,sortOrder:23,presets:[{label:"21 Days Awakening",targetDays:21},{label:"40 Days Mastery",targetDays:40}],localizedTexts:[{language:"en",title:"Brahma Muhurta Awakening",description:"Wake up and sit in quiet mindfulness for 20 minutes between 04:00 AM and 06:00 AM.",story:"Brahma Muhurta (the creator's hour) is the time when the atmosphere is charged with pure sattva, making it optimal for meditation.",whyItMatters:"Waking up early aligns your biological rhythms with solar patterns, boosting hormone production and energy levels.",benefits:["Improves mental clarity","Regulates circadian rhythm","Provides quiet me-time"],instructions:["Set an alarm for 4:30 AM.","Wake up, wash your face, and drink a glass of warm water.","Sit silently for 20 minutes without screens or chores.","Focus on breath or silent mantra."],faq:[{question:"What if I can't wake up?",answer:"Start gradually. Adjust sleep timing the night before to ensure 7 hours of rest."}]}]},{id:"sankalp:jeevan:digital-detox",slug:"digital-detox-mindfulness",category:"Daily Jeevan",subcategory:"Mindfulness",measurementType:"checklist",measurementConfig:{checklistItems:["First 30 minutes of the morning screen-free","Last 60 minutes of the evening screen-free","Silent phone during dining"]},completionStrategy:"percentage",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:"beginner",estimatedTimeMinutes:90,targetDays:14,prerequisites:[],nextRecommended:[],tags:["detox","screens","sleep","mind"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["digital","screens","sleep","detox","focus","phone"],featured:!0,sortOrder:24,presets:[{label:"14 Days Challenge (80% target)",targetDays:14,measurementOverride:{targetPercentage:80}},{label:"30 Days Mastery (90% target)",targetDays:30,measurementOverride:{targetPercentage:90}}],localizedTexts:[{language:"en",title:"Digital Detox & Sleep Care",description:"Disconnect from devices during critical morning and evening boundary windows to reclaim attention.",story:"In an era of hyper-stimulation, holding attention is a primary spiritual act. Reclaiming quiet boundaries restores our sensory filters.",whyItMatters:"Constant blue-light exposure inhibits melatonin and fragments short-term memory capacity.",benefits:["Deeper sleep states","Reduced comparison fatigue","Increased focus span"],instructions:["Do n
1ot check phone notifications for 30 minutes after waking up.","Put phone on silent in another room 1 hour before bed.","Log your checklist items nightly before sleeping."],faq:[{question:"Can I use screens for work?",answer:"Yes, this detox focuses on recreational social media and boundary windows, not critical work tasks."}]}]},{id:"sankalp:jeevan:mauna-vrata",slug:"mauna-vrata-silence",category:"Daily Jeevan",subcategory:"Mindfulness",measurementType:"duration",measurementConfig:{targetDurationMinutes:60},completionStrategy:"continuous",visibilityDefaults:"private",accessType:"public",origin:"user",difficulty:"intermediate",estimatedTimeMinutes:60,targetDays:7,prerequisites:[],nextRecommended:[],tags:["mauna","silence","mind"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!1,searchKeywords:["mauna","silence","mind","speech","vow"],featured:!1,sortOrder:25,presets:[{label:"7 Days Silence Vow (1 hour daily)",targetDays:7}],localizedTexts:[{language:"en",title:"Mauna Vrata (Silent Vow)",description:"Commit to one hour of complete silence daily to quieten the vocal mechanism and sensory inputs.",story:"Mauna (silence) is the primary way to preserve speech energy (Vak-Shakti). Noise creates internal waves; silence dissolves them.",whyItMatters:"Suppressing speech calms the throat chakra and directly stops active thought generation.",benefits:["Preserves vital energy","Slows racing thoughts","Improves active listening"],instructions:["Pick a specific hour daily.","Do not speak, read, or text during this hour.","Keep attention focused inwards."],faq:[{question:"Can I use sign language?",answer:"Avoid communication entirely if possible. The goal is to rest the expression engine."}]}]},{id:"sankalp:jeevan:gratitude-journal",slug:"gratitude-journal-mindfulness",category:"Daily Jeevan",subcategory:"Mindfulness",measurementType:"count",measurementConfig:{targetValue:3,unit:"entries"},completionStrategy:"threshold",visibilityDefaults:"private",accessType:"public",origin:"user",difficulty:"beginner",estimatedTimeMinutes:10,targetDays:21,prerequisites:[],nextRecommended:[],tags:["gratitude","journal","mind"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!1,supportsForks:!1,searchKeywords:["gratitude","journal","diary","mind","focus"],featured:!1,sortOrder:26,presets:[{label:"21 Days Gratitude Vow",targetDays:21}],localizedTexts:[{language:"en",title:"Gratitude Journaling",description:"Write down three specific things you are grateful for daily to rewire your focus filter.",story:"Gratitude (Prasada-Buddhi) accepts life situations with grace, ending the internal friction of complaint.",whyItMatters:"Focusing on positive events changes neural pathways, reducing default mode network reactivity.",benefits:["Reduces comparison fatigue","Boosts positive outlooks","Promotes emotional peace"],instructions:["Keep a daily log.","Write three distinct, detailed items daily.","Reflect on them for 2 minutes."],faq:[{question:"Can they be small things?",answer:"Yes, small specific things are often more effective than abstract general ones."}]}]},{id:"sankalp:festival:navratri",slug:"navratri-fasting-vow",category:"Festival & Vrat",subcategory:"Seasonal",measurementType:"checklist",measurementConfig:{checklistItems:["Fast during daylight","Chant Devi Mahatmya chapter","Evening lamp offering"]},completionStrategy:"continuous",visibilityDefaults:"public",accessType:"public",origin:"temple",difficulty:"intermediate",estimatedTimeMinutes:90,targetDays:9,prerequisites:[],nextRecommended:[],tags:["seasonal","navratri","fasting","devi"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["navratri","durga","seasonal","fasting","vow","devi"],featured:!0,sortOrder:27,seasonal:{type:"festival",trigger:"navratri"},presets:[{label:"9 Days Navratri Vow",targetDays:9}],localizedTexts:[{language:"en",title:"Navratri Sadhana Vow",description:"Observe strict dietary discipline, evening lamp offerings, and daily scriptural study over the nine sacred nights of Devi.",story:"Navratri commemorates the victory of Durga over Mahishasura, symbolizing the victory of cosmic order over internal
1chaotic desires.",whyItMatters:"Aligning with seasonal celestial nodes optimizes physical purification and focused devotion.",benefits:["Clears systemic toxins","Renews willpower fields","Aligns with seasonal rhythms"],instructions:["Eat pure vegetarian or satvik food during daylight.","Light an oil lamp at sunset.","Complete daily mantra rounds."],faq:[{question:"Can I drink water during fasting?",answer:"Water and fruits are fully allowed during standard Navratri fasting."}]}]},{id:"sankalp:festival:ekadashi",slug:"ekadashi-vrat-fast",category:"Festival & Vrat",subcategory:"Seasonal",measurementType:"count",measurementConfig:{targetValue:1,unit:"fast"},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"temple",difficulty:"beginner",estimatedTimeMinutes:1440,targetDays:1,prerequisites:[],nextRecommended:[],tags:["ekadashi","fasting","vrat","tithi"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["ekadashi","fasting","vow","tithi","vishnu","vrat"],featured:!1,sortOrder:28,seasonal:{type:"tithi",trigger:"ekadashi"},presets:[{label:"1 Day Ekadashi Fast",targetDays:1}],localizedTexts:[{language:"en",title:"Ekadashi Vrat (Fasting Vow)",description:"Observe a grains-free fast on the 11th lunar day (Ekadashi) of the moon cycle.",story:"Ekadashi is dedicated to Vishnu. Fasting on this day cleanses the body and balances the internal water content relative to gravity.",whyItMatters:"Bi-monthly fasting acts as a natural physiological reset that improves cell autophagy.",benefits:["Improves digestion states","Promotes cell regeneration","Strengthens willpower"],instructions:["Avoid grains and beans entirely.","Eat only fruits or simple milk products.","Break fast the following morning (Dwadashi)."],faq:[{question:"Can I fast without water?",answer:"Yes, that is called Nirjala Ekadashi and is an advanced practice. Standard fast allows water."}]}]},{id:"sankalp:bharat:heritage-site",slug:"heritage-site-visit",category:"Bharat",subcategory:"Civilizational",measurementType:"location",measurementConfig:{targetValue:1,unit:"visit"},completionStrategy:"threshold",visibilityDefaults:"public",accessType:"public",origin:"creator",difficulty:"beginner",estimatedTimeMinutes:120,targetDays:30,prerequisites:[],nextRecommended:[],tags:["heritage","visit","india","history"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["heritage","visit","india","history","temple","monument"],featured:!0,sortOrder:29,presets:[{label:"Monthly Vow (1 Heritage Visit)",targetDays:30}],localizedTexts:[{language:"en",title:"Bharat Heritage Site Visit",description:"Commit to visiting at least one historical, archaeological, or civilizational heritage site in India.",story:"Connecting to the physical monuments and ruins of ancient India restores civilizational memory and deepens belonging.",whyItMatters:"Cultural preservation requires active attention; physical visits support heritage maintenance and local communities.",benefits:["Restores historical memory","Supports local artisans","Broadens cultural insight"],instructions:["Visit a recognized heritage site (temple, fort, cave, or museum).","Verify check-in on the site using GPS check-in."],faq:[{question:"Are museums valid?",answer:"Yes, heritage museums focusing on ancient artifacts are fully valid."}]}]},{id:"sankalp:bharat:sanskrit-word",slug:"sanskrit-word-daily",category:"Bharat",subcategory:"Civilizational",measurementType:"count",measurementConfig:{targetValue:1,unit:"word"},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"creator",difficulty:"beginner",estimatedTimeMinutes:5,targetDays:21,prerequisites:[],nextRecommended:[],tags:["sanskrit","learn","word","language"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["sanskrit","learn","word","language","culture","roots"],featured:!0,sortOrder:30,presets:[{label:"21 Days Language Vow",targetDays:21}],localizedTexts:[{language:"en",title:"Daily Sanskrit Word Learner",description:"Learn and write down the etymology of one Sanskrit word daily to reconnect with linguistic roots.",story:"Sanskrit is structured on root sounds (Dhatus) that directly match mathematical vibration nodes.",whyItMatters:"Learning root etymologies reconnects us to the precise concepts of Indic philosophy and culture.",benefits:["Improves vocabulary depth","Sharpens pronunciation clarity","Deepens philosophical insights"],instructions:["Learn one Sanskrit word daily with root meaning.","Write it down and speak it aloud 5 times."],faq:[{question:"Do I need to learn the script?",answer:"No, learning transliterated words is fine, but Devanagari script is recommended."}]}]},{id:"sankalp:sangha:family-prayer",slug:"family-prayer-sangha",category:"Sangha",subcategory:"Community",measurementType:"duration",measurementConfig:{targetDurationMinutes:15},completionStrategy:"threshold",visibilityDefaults:"community",accessType:"public",origin:"community",difficulty:"beginner",estimatedTimeMinutes:15,targetDays:7,prerequisites:[],nextRecommended:[],tags:["family","prayer","sangha","community"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["family","prayer","sangha","community","worship","home"],featured:!1,sortOrder:31,presets:[{label:"7 Days Family Worship",targetDays:7}],localizedTexts:[{language:"en",title:"Family Prayer Vow",description:"Commit to 15 minutes of unified daily prayer or chanting with family members at home.",story:"A family that prays together builds unified energy fields, resolving domestic disputes and harmonizing environments.",whyItMatters:"Collective home worship establishes values of respect and mutual support among family members.",benefits:["Harmonizes home environment","Resolves domestic stresses","Inspires cooperative values"],instructions:["Sit together with family members at home at a fixed time.","Chant or pray collectively for 15 minutes.","Log a photo or record progress."],faq:[{question:"What if members are travelling?",answer:"Connecting via audio call to pray collectively is valid for the vow."}]}]},{id:"sankalp:stotram:hanuman-chalisa-daily",slug:"hanuman-chalisa-daily",sourceEntityIds:{mantra:"hanuman-chalisa"},category:"Bhakti",subcategory:"Stotram",linkedModule:"stotram",measurementType:"count",measurementConfig:{targetValue:1,unit:"recitation"},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:"beginner",estimatedTimeMinutes:8,targetDays:40,prerequisites:[],nextRecommended:["sankalp:stotram:shiva-tandava-daily"],tags:["hanuman","devotion","stotram","recitation"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["hanuman","chalisa","stotram","recitation","courage","strength"],featured:!0,sortOrder:32,presets:[{label:"40 Days Discipline",targetDays:40},{label:"108 Days Dedication",targetDays:108}],localizedTexts:[{language:"en",title:"Hanuman Chalisa Daily Recitation",description:"Recite the Hanuman Chalisa daily for 40 days to build courage, dissolve fears, and cultivate unwavering devotion.",story:"Tulsidas composed the Hanuman Chalisa while imprisoned, invoking the infinite energy and devotion of Hanuman to break physical and mental shackles.",whyItMatters:"Regular recitation builds courage, removes internal and external obstacles, and inspires selfless action.",benefits:["Removes fear and anxiety","Builds mental resilience","Deepens devotional practice"],instructions:["Cleanse hands and feet before beginning.","Sit before an image or altar of Hanuman or Rama.","Recite the 40 verses of the Chalisa with focused attention.","Conclude with a silent moment of devotion."],faq:[{question:"Can I recite in Hindi or only Awadhi?",answer:"Recite in whichever language you connect with most deeply. The meaning matters more than the language."},{question:"What if I miss a day?",answer:"Under standard 40-day vows, missing a day resets the count to Day 1."}]}]},{id:"sankalp:stotram:shiva-tandava-daily",slug:"shiva-tandava-daily",sourceEntityIds:{mantra:"shiva-tandava-stotram"}
1,category:"Bhakti",subcategory:"Stotram",linkedModule:"stotram",measurementType:"count",measurementConfig:{targetValue:1,unit:"recitation"},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:"intermediate",estimatedTimeMinutes:12,targetDays:21,prerequisites:[],nextRecommended:["sankalp:stotram:hanuman-chalisa-daily"],tags:["shiva","tandava","stotram","energy","transformation"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!0,searchKeywords:["shiva","tandava","stotram","ravana","energy","dance"],featured:!0,sortOrder:33,presets:[{label:"21 Days Shakti Sadhana",targetDays:21},{label:"40 Days Transformation",targetDays:40}],localizedTexts:[{language:"en",title:"Shiva Tandava Stotram Daily Recitation",description:"Recite the Shiva Tandava Stotram daily to channel transformative energy and dissolve egoic patterns.",story:"Composed by Ravana, the ten-headed king of Lanka, this stotram describes the cosmic dance of Shiva in breathtaking poetic meter. It is said Ravana sang this hymn to lift Mount Kailash and atone for his arrogance.",whyItMatters:"The Tandava Stotram's rhythmic energy aligns the practitioner with Shiva's destructive-creative cycle, helping release stagnation and catalyze personal transformation.",benefits:["Releases emotional stagnation","Energizes the subtle body","Connects to cosmic rhythm"],instructions:["Sit in a quiet space facing North or East.","Recite the 16 verses in a steady, rhythmic pace.","Focus on the imagery of Shiva's cosmic dance."],faq:[{question:"Is this stotram suitable for beginners?",answer:"The dense poetic meter can be challenging. Start by listening to audio recitations to internalize the rhythm."}]}]},{id:"sankalp:stotram:vishnu-sahasranama-daily",slug:"vishnu-sahasranama-daily",sourceEntityIds:{mantra:"vishnu-sahasranama"},category:"Bhakti",subcategory:"Stotram",linkedModule:"stotram",measurementType:"count",measurementConfig:{targetValue:1,unit:"recitation"},completionStrategy:"threshold",visibilityDefaults:"private",accessType:"public",origin:"brahma",difficulty:"intermediate",estimatedTimeMinutes:25,targetDays:40,prerequisites:[],nextRecommended:[],tags:["vishnu","sahasranama","nama","devotion","recitation"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!0,supportsForks:!1,searchKeywords:["vishnu","sahasranama","nama","devotion","bheeshma"],featured:!1,sortOrder:34,presets:[{label:"40 Days Anushthana",targetDays:40},{label:"108 Days Mahasadhana",targetDays:108}],localizedTexts:[{language:"en",title:"Vishnu Sahasranama Daily Recitation",description:"Recite the thousand names of Vishnu daily for 40 days to cultivate universal love and expand awareness.",story:"Taught by Bheeshma on his bed of arrows to Yudhishthira in the Mahabharata, the Sahasranama is one of the most revered stotrams in the Vaishnava tradition.",whyItMatters:"Chanting the thousand names purifies the mental field and opens the heart to universal compassion.",benefits:["Expands mental horizons","Cultivates universal love","Connects to ancient tradition"],instructions:["Purify hands and face. Sit comfortably.","Begin with 'Shuklambharadharam Vishnum' dhyana shloka.","Recite the Sahasranama with awareness of each name's meaning.","Conclude with the phala shruti."],faq:[{question:"Can I recite in segments through the day?",answer:"Ideally complete in one sitting, but splitting into morning/evening sessions is acceptable."}]}]},{id:"sankalp:stotram:aditya-hridayam-daily",slug:"aditya-hridayam-daily",sourceEntityIds:{mantra:"aditya-hridayam"},category:"Bhakti",subcategory:"Stotram",linkedModule:"stotram",measurementType:"count",measurementConfig:{targetValue:1,unit:"recitation"},completionStrategy:"threshold",visibilityDefaults:"friends",accessType:"public",origin:"brahma",difficulty:"beginner",estimatedTimeMinutes:10,targetDays:21,prerequisites:[],nextRecommended:[],tags:["surya","aditya","sun","health","stotram"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!1,supportsForks:!0,searchKeywords:["surya","aditya","hridayam","sun","health","vitality"],featured:!0,sortOrder:35,presets:[{label:"21 Days Morning Practice",targetDays:21},{label:"40 Days Solar Sadhana",targetDays:40}],localizedTexts:[{language:"en",title:"Aditya Hridayam Daily Recitation",description:"Chant the Aditya Hridayam at sunrise for 21 days to invoke solar vitality and dispel inner darkness.",story:"Sage Agastya taught this hymn to Lord Rama on the battlefield of Lanka before his final confrontation with Ravana. After reciting it, Rama was revitalized and victorious.",whyItMatters:"Aditya Hridayam is a powerful invocation of the Sun as the source of all life, energy, and clarity.",benefits:["Boosts physical vitality","Dispels mental fog","Aligns with solar cycles"],instructions:["Recite at sunrise facing East.","Begin with the dhyana: 'Aadityah paramam jyotih...'","Chant the 31 verses with reverence.","Offer water to the Sun (arghya) if possible."],faq:[{question:"Can I recite if it's cloudy?",answer:"Yes, the Sun is present even behind clouds. The practice transcends physical visibility."}]}]},{id:"sankalp:stotram:kanakadhara-daily",slug:"kanakadhara-stotram-daily",sourceEntityIds:{mantra:"kanakadhara-stotram"}
1,category:"Bhakti",subcategory:"Stotram",linkedModule:"stotram",measurementType:"count",measurementConfig:{targetValue:1,unit:"recitation"},completionStrategy:"threshold",visibilityDefaults:"private",accessType:"public",origin:"brahma",difficulty:"beginner",estimatedTimeMinutes:10,targetDays:40,prerequisites:[],nextRecommended:[],tags:["lakshmi","kanakadhara","abundance","prosperity","stotram"],relatedPractices:[],supportsReflection:!0,supportsCampaigns:!1,supportsForks:!0,searchKeywords:["lakshmi","kanakadhara","abundance","prosperity","adi-shankara"],featured:!1,sortOrder:36,presets:[{label:"40 Days Prosperity Sadhana",targetDays:40}],localizedTexts:[{language:"en",title:"Kanakadhara Stotram Daily Recitation",description:"Recite Adi Shankara's Kanakadhara Stotram daily to invite material and spiritual abundance into your life.",story:"As a young boy, Adi Shankara visited a poor Brahmin woman's house for bhiksha. She had only a single dried amla fruit to offer. Touched by her poverty and generosity, Shankara composed the Kanakadhara Stotram, invoking Goddess Lakshmi. A shower of golden amlas fell upon her home.",whyItMatters:"This stotram addresses the root of scarcity consciousness, reminding us that true abundance flows from grace.",benefits:["Alleviates scarcity mindset","Attracts positive opportunities","Deepens sense of divine support"],instructions:["Light a lamp before the deity or an image of Lakshmi.","Recite the 21 verses with clear pronunciation.","Conclude by offering a flower or akshata (rice) with gratitude."],faq:[{question:"Can material prosperity be a spiritual goal?",answer:"The stotram aligns desire with dharma. True prosperity is the removal of lack-consciousness, not mere accumulation."}]}]},...c,...f];function O(e){let a=[...M];if(!e)return a;
1if(e.category){let t=e.category.toLowerCase();a=a.filter(e=>e.category.toLowerCase()===t||e.subcategory.toLowerCase()===t)}if(e.tag){let t=e.tag.toLowerCase();a=a.filter(e=>e.tags.some(e=>e.toLowerCase()===t))}return e.cause&&(a=a.filter(a=>l(a,e.cause))),e.difficulty&&(a=a.filter(a=>a.difficulty===e.difficulty)),void 0!==e.featured&&(a=a.filter(a=>!!a.featured===e.featured)),e.journeyGroup&&(a=a.filter(a=>a.journeyGroup===e.journeyGroup)),e.seasonalType&&(a=a.filter(a=>a.seasonal?.type===e.seasonalType)),a.sort((e,a)=>(e.sortOrder||99)-(a.sortOrder||99))}function R(e){let a=decodeURIComponent(e);return M.find(t=>t.id===a||t.id===e)}function A(e){let a=e.trim().toLowerCase();return M.find(e=>e.slug.toLowerCase()===a)}function P(e){let a=decodeURIComponent(e).trim(),t=A(a)??R(a);return t||M.find(e=>e.id.endsWith(`:${a}`)||e.id.toLowerCase()===a.toLowerCase()||e.slug.toLowerCase()===a.toLowerCase())}function E(e){if(e.slug)return`/sankalp/${e.slug}`;if(e.id){let a=e.id.replace(/^sankalp:[^:]+:/,"").replace(/^sankalp:/,"");return`/sankalp/${a}`}return"/sankalp"}function K(e){let a=e.sourceBindings?.find(e=>"primary"===e.progressRole)??e.sourceBindings?.[0];if(a?.module&&a.slug){let e="granth"===a.module?"granth":"shlok"===a.module?"shlok":"chalisa"===a.module?"chalisa":"stotram"===a.module?"stotram":"aarti"===a.module?"aarti":"mantra"===a.module?"mantra":null;if(e)return`/${e}/${a.slug}`}if(e.sourceEntityIds?.mantra)return`/mantra/${e.sourceEntityIds.mantra}`;if(e.sourceEntityIds?.chalisa)return`/chalisa/${e.sourceEntityIds.chalisa}`;if(e.sourceEntityIds?.aarti)return`/aarti/${e.sourceEntityIds.aarti}`;if(e.sourceEntityIds?.stotram)return`/stotram/${e.sourceEntityIds.stotram}`;if(e.sourceEntityIds?.shlok)return`/shlok/${e.sourceEntityIds.shlok}`;if(e.sourceEntityIds?.granth)return`/granth/${e.sourceEntityIds.granth}`;let t=e.subcategory.toLowerCase(),i=e.category.toLowerCase();if("mantra"===t||"mantra"===i){let a=e.id.startsWith("sankalp:mantra:")?e.id.split(":")[2]:void 0;return`/mantra/${e.sourceEntityIds?.mantra??a??e.slug}`}if("chalisa"===t||"chalisa"===i){let a=e.id.startsWith("sankalp:chalisa:")?e.id.split(":")[2]?.replace(/-(3|7|21|40)$/,""):void 0;return`/chalisa/${e.sourceEntityIds?.chalisa??a??e.slug}`}return null}function x(e){let a=R(e);return a&&a.prerequisites?M.filter(e=>a.prerequisites.includes(e.id)):[]}function j(e){let a=R(e);return a&&a.nextRecommended?M.filter(e=>a.nextRecommended.includes(e.id)):[]}function q(e){let a=R(e);return a&&a.relatedPractices?M.filter(e=>a.relatedPractices.includes(e.id)):[]}var L=t(65433),V=t(75455);let G={CREATED:"sankalp.created",STARTED:"sankalp.started",PROGRESS:"sankalp.progress",PAUSED:"sankalp.paused",RESUMED:"sankalp.resumed",MISSED:"sankalp.missed",RECOVERED:"sankalp.recovered",COMPLETED:"sankalp.completed",ABANDONED:"sankalp.abandoned",SETTLEMENT_PENDING:"sankalp.settlement.pending",SETTLEMENT_COMPLETED:"sankalp.settlement.completed",CAMPAIGN_CREATED:"sankalp.campaign.created",CAMPAIGN_PUBLISHED:"sankalp.campaign.published",CAMPAIGN_JOINED:"sankalp.campaign.joined",CAMPAIGN_COMPLETED:"sankalp.campaign.completed",CAMPAIGN_ARCHIVED:"sankalp.campaign.archived",REFLECTION_CREATED:"sankalp.reflection.created",PROPOSAL_SUBMITTED:"sankalp.proposal.submitted",PROPOSAL_APPROVED:"sankalp.proposal.approved"};class N{on(e,a){return H(e,a)}emit(e,a){B(e,a)}}let F=new N;function B(e,a){(0,L.getKriyaBus)().emit(e,{...a,timestamp:(0,V.vg)().toISOString()},{source:"sankalp"})}function H(e,a){let t=(0,L.getKriyaBus)().on(e,e=>a(e.payload));return()=>t.unsubscribe()}function _(e){return e.targetDaysOverride&&e.targetDaysOverride>0?e.targetDaysOverride:"advanced"===e.definition.difficulty?e.definition.targetDays:e.definition.targetDays||21}function z(e){return"open_ended"===e.durationPolicy}function U(e,a){let t=(0,V.vg)().toISOString();return{id:`sankalp_${(0,V.vg)().now().getTime()}_${Math.random().toString(36).slice(2,8)}`,ownerId:a?.ownerId||e.ownerId,definitionId:e.id,definition:e,startDate:t.split("T")[0],status:"active",dayEntries:[],daysCompleted:0,daysMissed:0,currentStreak:0,longestStreak:0,createdAt:t,visibility:a?.visibility||e.visibilityDefaults,reminderTiming:a?.reminderTiming,durationPolicy:a?.durationPolicy??"fixed",targetDaysOverride:a?.targetDays}}function W(e,a,t,i){if("completed"===e.status||"abandoned"===e.status||"settled"===e.status)return e;let s=t||(0,V.vg)().today(),r=e.dayEntries.findIndex(e=>e.date===s),n=1,o=e.definition.measurementConfig;"count"===e.definition.measurementType?n=Number(o.targetValue)||1:"duration"===e.definition.measurementType?n=Number(o.targetDurationMinutes)||1:"distance"===e.definition.measurementType?n=Number(o.targetDistanceKm)||1:"checklist"===e.definition.measurementType?n=(Array.isArray(o.checklistItems)?o.checklistItems:[]).length||1:"location"===e.definition.measurementType&&(n=(Array.isArray(o.requiredLocations)?o.requiredLocations:[]).length||1);
1let l=Math.min(Math.max(a/n,0),1),d=l>=1,c={date:s,achieved:a,progressRatio:l,evidence:i,completed:d,updatedAt:(0,V.vg)().toISOString()},u=[];if(r>=0){let t=e.dayEntries[r],s=Math.max(t.achieved,a),n=Math.max(t.progressRatio,l),o=t.completed||d,c=t.evidence;if(i)if(t.evidence){let e={none:0,low:1,medium:2,high:3},a=e[t.evidence.verificationLevel]??0;(e[i.verificationLevel]??0)>=a&&(c=i)}else c=i;(u=[...e.dayEntries])[r]={...t,achieved:s,progressRatio:n,completed:o,evidence:c,updatedAt:(0,V.vg)().toISOString()}}else u=[...e.dayEntries,c].sort((e,a)=>e.date.localeCompare(a.date));return et({...e,dayEntries:u})}function $(e,a){let t=e.definition.measurementConfig,i=1;return"count"===e.definition.measurementType?i=Number(t.targetValue)||1:"duration"===e.definition.measurementType?i=Number(t.targetDurationMinutes)||1:"distance"===e.definition.measurementType?i=Number(t.targetDistanceKm)||1:"checklist"===e.definition.measurementType?i=(Array.isArray(t.checklistItems)?t.checklistItems:[]).length||1:"location"===e.definition.measurementType&&(i=(Array.isArray(t.requiredLocations)?t.requiredLocations:[]).length||1),W(e,i,a)}function Y(e){return"active"!==e.status&&"started"!==e.status?e:{...e,status:"paused"}}function J(e){return"paused"!==e.status?e:{...e,status:"active"}}
1function Q(e){return"completed"===e.status||"abandoned"===e.status||"settled"===e.status?e:{...e,status:"abandoned",resolvedAt:(0,V.vg)().toISOString()}}function Z(e){return z(e)&&"completed"!==e.status&&"abandoned"!==e.status&&"settled"!==e.status?{...e,status:"completed",resolvedAt:(0,V.vg)().toISOString()}:e}function X(e){return et(e)}function ee(e){let a=_(e),t=e.daysCompleted,i=ei(e.startDate),s=z(e);return{daysCompleted:t,daysRemaining:s?0:Math.max(0,a-t),daysMissed:e.daysMissed,percentComplete:s?0:Math.min(t/a*100,100),currentStreak:e.currentStreak,longestStreak:e.longestStreak,isFulfilled:!s&&t>=a,isActive:"active"===e.status||"recovery"===e.status,daysSinceStart:i,todayProgressRatio:e.dayEntries.find(e=>e.date===(0,V.vg)().today())?.progressRatio??0,durationPolicy:s?"open_ended":"fixed",isOpenEnded:s}}function ea(e,a){if(e.id!==a.id)return e;let t=new Map,i=e=>{let a=t.get(e.date);if(a){let i=Math.max(a.achieved,e.achieved),s=Math.max(a.progressRatio,e.progressRatio),r=a.completed||e.completed,n=a.evidence;if(e.evidence)if(a.evidence){let t={none:0,low:1,medium:2,high:3},i=t[a.evidence.verificationLevel]??0;(t[e.evidence.verificationLevel]??0)>=i&&(n=e.evidence)}else n=e.evidence;let o=e.updatedAt.localeCompare(a.updatedAt)>0?e.updatedAt:a.updatedAt;t.set(e.date,{date:e.date,achieved:i,progressRatio:s,completed:r,evidence:n,updatedAt:o})}else t.set(e.date,{...e})};e.dayEntries.forEach(i),a.dayEntries.forEach(i);let s=Array.from(t.values()).sort((e,a)=>e.date.localeCompare(a.date)),r=e.dayEntries.reduce((e,a)=>a.updatedAt.localeCompare(e)>0?a.updatedAt:e,e.createdAt),n=a.dayEntries.reduce((e,a)=>a.updatedAt.localeCompare(e)>0?a.updatedAt:e,a.createdAt).localeCompare(r)>0;return et({id:e.id,ownerId:e.ownerId||a.ownerId,definitionId:e.definitionId,definition:e.definition,startDate:0>e.startDate.localeCompare(a.startDate)?e.startDate:a.startDate,status:n?a.status:e.status,dayEntries:s,daysCompleted:0,daysMissed:0,currentStreak:0,longestStreak:0,createdAt:0>e.createdAt.localeCompare(a.createdAt)?e.createdAt:a.createdAt,resolvedAt:n?a.resolvedAt||e.resolvedAt:e.resolvedAt||a.resolvedAt,visibility:n?a.visibility:e.visibility,reminderTiming:n?a.reminderTiming||e.reminderTiming:e.reminderTiming||a.reminderTiming,durationPolicy:n?a.durationPolicy||e.durationPolicy:e.durationPolicy||a.durationPolicy})}function et(e){let a=e.dayEntries.filter(e=>e.completed),t=a.length,i=a.map(e=>e.date).sort().reverse(),s=0,r=0,n=0;for(let e=0;e<i.length;e++)if(0===e){n=1;let e=(0,V.vg)().today(),a=new Date((0,V.vg)().now().getTime()-864e5).toISOString().split("T")[0];(i[0]===e||i[0]===a)&&(s=1)}else{let a=new Date(i[e-1]),t=new Date(i[e]);1===Math.round((a.getTime()-t.getTime())/864e5)?(n++,e<i.length&&s>0&&(s=n)):(r=Math.max(r,n),n=1)}r=Math.max(r,n),"continuous"===e.definition.completionStrategy&&(t=s);let o=ei(e.startDate),l=z(e),d=l?0:Math.max(0,o-t),c=e.status,u=_(e);if(l)("started"===c||"missed"===c||"recovery"===c)&&(c="active");else if("percentage"===e.definition.completionStrategy){let a=e.definition.measurementConfig.targetPercentage||80;(t+Math.max(0,u-o))/u*100<a?"completed"!==c&&"abandoned"!==c&&"settled"!==c&&(c="missed"):"missed"===c&&(c="active"),o>=u&&(t/u*100>=a?c="completed":"abandoned"!==c&&"settled"!==c&&(c="missed"))}else"continuous"===e.definition.completionStrategy?s+Math.max(0,u-o)<u?"completed"!==c&&"abandoned"!==c&&"settled"!==c&&(c="missed"):("missed"===c&&(c="active"),t>=u?c="completed":("active"===c||"recovery"===c||"started"===c)&&(c=d>5?"missed":d>2?"recovery":"active")):t>=u?c="completed":"completed"!==c&&"abandoned"!==c&&"settled"!==c&&(c=d>5?"missed":d>2?"recovery":"active");return{...e,daysCompleted:t,daysMissed:d,currentStreak:s,longestStreak:r,status:c,resolvedAt:"completed"===c?(0,V.vg)().toISOString():e.resolvedAt}}function ei(e){let a=new Date(e);return Math.max(0,Math.floor(((0,V.vg)().now().getTime()-a.getTime())/864e5)+1)}var es=t(22403);let er="records",en=(0,es.$4)("meta"),eo=(0,es.gp)("brahma:sankalp"),el=null;function ed(e){return Math.max(0,...[e.resolvedAt,e.createdAt,...e.dayEntries.map(e=>
1e.updatedAt)].filter(Boolean).map(e=>Date.parse(e)).filter(Number.isFinite))}async function ec(){let e=el,a=null,t=null;try{let e=await en.get(er);e&&(a=e)}catch{}try{let e=await eo.get(er);e&&(t=e)}catch{}return(el=function(...e){let a=new Map;for(let t of e)for(let e of t??[]){let t=a.get(e.id);(!t||ed(e)>=ed(t))&&a.set(e.id,e)}return Array.from(a.values())}(a,t,e,el)).length>0&&(en.set(er,el).catch(()=>{}),eo.set(er,el).catch(()=>{})),el}function eu(e){el=e,en.set(er,e).catch(()=>{}),eo.set(er,e).catch(()=>{})}function eh(){return el??[]}async function em(){return ec()}function ep(e){return eh().find(a=>a.id===e)??null}function ey(e){return eh().filter(a=>a.definition.id.split(":")[1]===e)}function eg(e,a){return eh().filter(t=>{let i=t.definition.id.split(":");return i[1]===e&&i[2]===a})}function ef(){return eh().filter(e=>"active"===e.status||"recovery"===e.status)}function ev(e){let a=[...eh()],t=a.findIndex(a=>a.id===e.id);t>=0?a[t]=e:a.push(e),eu(a)}async function ew(e){let a=[...await em()];for(let t of e){let e=a.findIndex(e=>e.id===t.id);e>=0?a[e]=t:a.push(t)}el=a;try{await en.set(er,a)}catch{await eo.set(er,a)}}function eb(e){eu(eh().filter(a=>a.id!==e))}function ek(){el=[],en.remove(er).catch(()=>{}),eo.remove(er).catch(()=>{})}var eS=t(77829);(0,eS.h)({source:"trust:engine"}),(0,eS.h)({source:"trust:verification"});let eT={id:"default",name:"Default Trust Policy",weights:{selfAttestation:.1,streak:.4,witness:.4,randomVerification:.1}};function eD(e){let a=_(e);return!("completed"!==e.status||e.daysCompleted<Math.min(7,a))&&e.dayEntries.some(e=>e.evidence&&("medium"===e.evidence.verificationLevel||"high"===e.evidence.verificationLevel)&&e.completed)}function eI(e){if(!eD(e)||e.daysCompleted<21)return!1;let a=e.dayEntries.filter(e=>e.completed);return a.filter(e=>e.evidence&&("medium"===e.evidence.verificationLevel||"high"===e.evidence.verificationLevel)).length>=.7*a.length}function eC(e,a="brahma.sankalp"){if(!eD(e))return null;let t=e.dayEntries.filter(e=>e.completed),s=t.filter(e=>!e.evidence||"samvaad-whatsapp"===e.evidence.source||"module-native"===e.evidence.source).length,r=e.longestStreak,n=function(e,a=eT){let t=Math.min(100*e.selfAttestCount,1e4),i=Math.min(200*e.streakDays,1e4),s=Math.min(1e3*e.witnessConfirmations,1e4),r=Math.min(2500*e.randomVerificationCount,1e4),n=a.weights;return Math.floor(Math.min(Math.max(t*n.selfAttestation+i*n.streak+s*n.witness+r*n.randomVerification,0),1e4))}({selfAttestCount:s,streakDays:r,witnessConfirmations:t.filter(e=>e.evidence&&"witness-confirmation"===e.evidence.source).length,randomVerificationCount:t.filter(e=>e.evidence&&"gps-checkin"===e.evidence.source).length},eT),o=_(e),l=e.definition.id.split(":")[1]||"general",d=`${a}.${l}.completed.v1`,c=eI(e);return{sankalpId:e.id,namespace:a,attestationType:d,confidenceIntent:n,retentionIntent:o>=40?"PERMANENT":o>=21?"COMPOSABLE":"EPHEMERAL",claimEligible:c,stateObjectType:c?`${a}.state.${l}.${o}day.v1`:void 0,ruleVersion:i,candidacyTimestamp:(0,V.vg)().toISOString()}}let eM={maxRetries:5,backoffMs:[3e4,12e4,48e4,18e5,72e5],idempotencyKey:(e,a)=>`${e}:settlement:${a}`};function eO(e){let a=[];return e.sankalpId||a.push("Missing sankalpId"),e.namespace||a.push("Missing namespace"),/^brahma(\.[a-z0-9_]+)+$/.test(e.namespace)||a.push(`Invalid namespace format: ${e.namespace}`),e.attestationType||a.push("Missing attestationType"),("number"!=typeof e.confidenceIntent||e.confidenceIntent<0)&&a.push("confidenceIntent must be a non-negative number"),e.retentionIntent||a.push("Missing retentionIntent"),"boolean"!=typeof e.claimEligible&&a.push("claimEligible must be boolean"),a}function eR(e){return e.map(e=>{let a=eD(e),t=eC(e);if(!a)return{recordId:e.id,eligible:a,intent:null,errors:[]};let i=t?eO(t):["createSettlementIntent returned null"];return{recordId:e.id,eligible:a,intent:t,errors:i}})}function eA(e){if("completed"!==e.status)return{ready:!1,reason:"Not completed"};let a="advanced"===e.definition.difficulty?e.definition.targetDays:e.definition.targetDays||21;return e.daysCompleted<Math.min(7,a)?{ready:!1,reason:`Minimum required completed days not met, got ${e.daysCompleted}`}:{ready:!0}}let eP={private:0,friends:1,community:2,public:3};function eE(e,a){return eP[e]-eP[a]}function eK(e,a,t,i,s,r,n,o,l){if(eE(o,t.visibility)>0)throw Error(`Reflection visibility '${o}' cannot exceed SankalpRecord visibility '${t.visibility}'`);if(t.ownerId&&t.ownerId!==a)throw Error(`User '${a}' cannot create a reflection on record owned by '${t.ownerId}'`);return{id:e,userId:a,sankalpRecordId:t.id,campaignId:i,text:s,audioUri:r,mediaUri:n,visibility:o,timestamp:l}}function ex(e,a){return e.filter(e=>{if(a.campaignId&&e.campaignId!==a.campaignId||a.userId&&e.userId!==a.userId||a.sankalpRecordId&&e.sankalpRecordId!==a.sankalpRecordId||a.visibility&&e.visibility!==a.visibility)return!1;if(a.viewerId){if(e.userId===a.viewerId)return!0;
1if("private"===e.visibility)return!1;if("friends"===e.visibility)return a.viewerFriends?.includes(e.userId)||!1;if("community"===e.visibility&&!a.viewerCommunityIds?.some(a=>a===e.campaignId))return!1}else if("public"!==e.visibility)return!1;return!0})}function ej(e,a){return e===a}function eq(e,a){if(void 0!==a.measurementType&&a.measurementType!==e.measurementType)throw Error("Cannot override structurally immutable field: measurementType");if(void 0!==a.completionStrategy&&a.completionStrategy!==e.completionStrategy)throw Error("Cannot override structurally immutable field: completionStrategy");if(void 0!==a.targetDays&&("number"!=typeof a.targetDays||a.targetDays<=0||!Number.isInteger(a.targetDays)))throw Error("Override targetDays must be a positive integer")}function eL(e,a){eq(e,a);let t={...e,targetDays:void 0!==a.targetDays?a.targetDays:e.targetDays};return a.localizedTexts&&a.localizedTexts.length>0&&(t.localizedTexts=a.localizedTexts),t}function eV(e,a){if(!a)throw Error(`Entity '${e}' does not have a publisher profile`);if(a.entityId!==e)throw Error(`Publisher profile does not match entity ID '${e}'`);if(!a.isVerified)throw Error(`Publisher profile for entity '${e}' is not verified`)}async function eG(e,a){let t=await a.getCanonicalId(e.id);if(t)return{success:!0,canonicalId:t};try{let t=await a.project(e);return{success:!0,canonicalId:t.canonicalId}}catch(a){let e=a instanceof Error?a.message:"";if(a instanceof TypeError||/failed to fetch|network|offline|server unavailable/i.test(e))return{success:!1,deferred:!0,error:"Projection deferred â offline or server unavailable"};return{success:!1,error:e||"Projection failed"}}}async function eN(e,a){return eG(e,a)}function eF(e){return e.trim().toLocaleLowerCase("en-US")}function eB(e,a,t){let i=eF(t),s=e.sourceBindings?.filter(e=>e.module===a)??[];for(let a of s)if(eF(a.canonicalId)===i)return{definition:e,binding:a,matchedBy:"canonical-id"};for(let a of s)if(eF(a.slug)===i)return{definition:e,binding:a,matchedBy:"slug"};for(let a of s)if(a.aliases?.some(e=>eF(e)===i))return{definition:e,binding:a,matchedBy:"alias"};let r=e.sourceEntityIds?.[a];if(r&&eF(r)===i)return{definition:e,binding:null,matchedBy:"legacy-source-entity-id"};let n=e.id.split(":");return n[1]===a&&n[2]&&eF(n.slice(2).join(":"))===i?{definition:e,binding:null,matchedBy:"legacy-definition-id"}:null}function eH(e,a,t){return t.flatMap(t=>{let i=eB(t,e,a);return i?[i]:[]})}function e_(e,a){let t=e.sourceBindings?.find(e=>e.module===a);return t?.canonicalId??e.sourceEntityIds?.[a]??null}function ez(e,a,t){return eH(e,a,t)[0]?.definition??null}class eU{processed=new Set;pending=new Map;async runOnce(e,a){if(this.processed.has(e)||this.pending.has(e))return{duplicate:!0};let t=a();this.pending.set(e,t);try{let a=await t;return this.processed.add(e),{duplicate:!1,value:a}}finally{this.pending.delete(e)}}}function eW(e){return async a=>{if(1!==a.version)throw Error("Unsupported practice progress event version");if(!a.eventId.trim()||!a.sessionId.trim())throw Error("eventId and sessionId are required");if(!Number.isFinite(a.unitsCompleted)||a.unitsCompleted<0)throw Error("unitsCompleted must be non-negative");if(!Number.isFinite(a.totalUnits)||a.totalUnits<=0)throw Error("totalUnits must be positive");if(Number.isNaN(Date.parse(a.occurredAt)))throw Error("occurredAt must be an ISO-compatible timestamp");let t=await e.ledger.runOnce(a.eventId,async()=>{let t=(await e.store.loadActive()).filter(e=>(function(e,a){for(let t of[a.canonicalEntityId,a.entitySlug,...a.aliases??[]]){let i=eB(e.definition,a.module,t);if(i&&i.binding?.progressRole!=="context")return i}return null})(e,a));if(0===t.length)return e.observer?.unresolved(a),{status:"unresolved",updatedRecordIds:[]};let i=t.filter(e=>!e.processedPracticeEventIds?.includes(a.eventId));if(0===i.length)return{status:"duplicate",updatedRecordIds:[]};let s=i.map(e=>({...W(e,function(e,a){let t=a.occurredAt.slice(0,10),i=e.dayEntries.find(e=>e.date===t)?.achieved??0,s=a.unitsCompleted;if("duration"===e.definition.measurementType)s=(a.durationSeconds??0)/60;else if("checklist"===e.definition.measurementType&&a.completedFully&&"cumulative"===a.unitsMode){let a=e.definition.measurementConfig.checklistItems;s=Array.isArray(a)?a.length:1}return"incremental"===a.unitsMode?i+s:s}(e,a),a.occurredAt.slice(0,10),{id:`practice:${a.eventId}`,verificationLevel:"verified-external"===a.source?"high":"medium",s
1ource:"module-native",sourceModule:a.module,nonce:a.eventId,timestamp:a.occurredAt,payload:{sessionId:a.sessionId,mode:a.mode,source:a.source}}),processedPracticeEventIds:[...e.processedPracticeEventIds??[],a.eventId].slice(-500)}));return await e.store.save(s),{status:"applied",updatedRecordIds:s.map(e=>e.id)}});return t.duplicate?{status:"duplicate",updatedRecordIds:[]}:t.value}}let e$="practice.progressed.v1",eY={APPLIED:"sankalp.practice.applied",DUPLICATE:"sankalp.practice.duplicate",UNRESOLVED:"sankalp.practice.unresolved",FAILED:"sankalp.practice.failed",PROJECTION_FAILED:"sankalp.practice.projection_failed"},eJ=new Map;class eQ{storage;key;maxEntries;constructor(e,a="practice-event-ledger-v1",t=5e3){this.storage=e,this.key=a,this.maxEntries=t}async runOnce(e,a){let t=async()=>{let t=await this.storage.get(this.key)??[];if(t.some(a=>a.eventId===e))return{duplicate:!0};let i=await a(),s=[...t,{eventId:e,processedAt:new Date().toISOString()}].slice(-this.maxEntries);return await this.storage.set(this.key,s),{duplicate:!1,value:i}},i="u">typeof navigator?navigator.locks:void 0;if(i)return await i.request(`brahma:sankalp:${this.key}`,t);let s=(eJ.get(this.key)??Promise.resolve()).then(t,t),r=s.then(()=>void 0,()=>void 0);return eJ.set(this.key,r),r.finally(()=>{eJ.get(this.key)===r&&eJ.delete(this.key)}),await s}}function eZ(e){(0,L.getKriyaBus)().emit("practice.progressed.v1",e,{source:e.module,correlationId:e.sessionId})}function eX(e){let a=(0,L.getKriyaBus)(),t=eW({ledger:new eQ(e?.ledgerStorage??(0,es.$4)("meta"),"practice-event-ledger-v1",e?.maxLedgerEntries),store:{loadActive:async()=>(await em()).filter(e=>"active"===e.status||"recovery"===e.status),save:async t=>{if(await ew(t),e?.projectionAdapter)for(let{record:i,result:s}of(await Promise.all(t.map(async a=>({record:a,result:await eG(a,e.projectionAdapter)})))))s.success||s.deferred||a.emit(eY.PROJECTION_FAILED,{recordId:i.id,error:s.error},{source:"sankalp"})}},observer:{unresolved:e=>a.emit(eY.UNRESOLVED,{eventId:e.eventId,module:e.module,canonicalEntityId:e.canonicalEntityId,entitySlug:e.entitySlug},{source:"sankalp",correlationId:e.sessionId})}}),i=a.on(e$,async e=>{let i=e.payload,s=Date.now();try{let e=await t(i),r={eventId:i.eventId,updatedRecordIds:e.updatedRecordIds,processingMs:Date.now()-s};"applied"===e.status?a.emit("sankalp.practice.applied",r,{source:"sankalp",correlationId:i.sessionId}):"duplicate"===e.status&&a.emit("sankalp.practice.duplicate",r,{source:"sankalp",correlationId:i.sessionId})}catch(e){a.emit(eY.FAILED,{eventId:i.eventId,message:e instanceof Error?e.message:"Unknown coordinator failure"},{source:"sankalp",correlationId:i.sessionId})}});return()=>i.unsubscribe()}let e0=null,e1=0;function e2(e){e1+=1,e0||(e0=eX(e));let a=!1;return()=>{!a&&(a=!0,0===(e1=Math.max(0,e1-1))&&e0&&(e0(),e0=null))}}function e3(e,a){let t=new Map(e.map(e=>[e.id,e])),i=new Map(a.map(e=>[e.id,e])),s=new Map;for(let[e,a]of t.entries()){let t=i.get(e);t?s.set(e,ea(a,t)):s.set(e,a)}for(let[e,a]of i.entries())s.has(e)||s.set(e,a);return Array.from(s.values())}class e4{storage;constructor(e){this.storage=e.storage}async recordOfflineCheckin(e,a=1,t){let i=new Date().toISOString(),s=t||i.split("T")[0],r=`mut_${Date.now()}_${Math.random().toString(36).slice(2,7)}`,n=W(e,a,s);await this.storage.set(`sankalp:${e.id}`,n);let o={id:r,sankalpId:e.id,achieved:a,date:s,timestamp:i,synced:!1,retries:0},l=await this.storage.get("sankalp_outbox_index")||[];return l.push(r),await this.storage.set(`sankalp_mutation:${r}`,o),await this.storage.set("sankalp_outbox_index",l),{updatedRecord:n,mutationId:r}}async getPendingMutations(){let e=await this.storage.get("sankalp_outbox_index")||[],a=[];for(let t of e){let e=await this.storage.get(`sankalp_mutation:${t}`);e&&!e.synced&&a.push(e)}return a}async drainOutbox(e){let a=await this.getPendingMutations(),t=0,i=0;for(let s of a)try{await e(s)?(s.synced=!0,await this.storage.set(`sankalp_mutation:${s.id}`,s),t++):(s.retries+=1,await this.storage.set(`sankalp_mutation:${s.id}`,s),i++)}catch{s.retries+=1,await this.storage.set(`sankalp_mutation:${s.id}`,s),i++}let s=(await this.getPendingMutations()).map(e=>e.id);return await this.storage.set("sankalp_outbox_index",s),{syncedCount:t,failedCount:i}}}async function e8(e,a,t){let i=await t.checkSmritiProjection(e.id),s=!1;if(a){let e=await t.checkChainTx(a);e&&e.success&&(s=!0)}return s&&!i?(await t.reproject(e)).success?{status:"repaired_projection",message:"Successfully re-projected completed Sankalp to Smriti."}:(await t.markForManualReview(e.id,"Chain success, but projection failed to retry."),{status:"manual_review",message:"Projection retry failed. Queued for manual review."}):i&&!s?(await t.reSubmitChain(e)).success?{status:"repaired_chain",message:"Successfully re-submitted settlement transaction to the chain."}:(await t.markForManualReview(e.id,"Projected in Smriti, but chain submission failed to retry."),{status:"manual_review",message:"Chain resubmission failed. Queued for manual review."}):i||s?{status:"no_action",message:"Settlement state is consistent. No repair action required."}:(await t.markForManualReview(e.id,"Both chain transaction and projection are missing or failed."),{status:"manual_review",message:"Orphaned state: neither chain nor projection succeeded. Queued for manual review."})}},75455:(e,a,t)=>{t.d(a,{vg:()=>o,DH:()=>r});var i=t(39394),s=t(77829);function r(){var e;let a=(0,i.OJ)(),t=(e=a)>=4&&e<5?"brahma-muhurta":e>=5&&e<7||e>=17&&e<19?"sandhya":e>=7&&e<17?"dinakar":e>=0&&e<4?"yamaghanta":"naksha",s=(0,i.cd)(),r=(0,i.$T)();return{hour:a,period:t,energyFactor:s,isQuietHour:r,shouldDim:r||"yamaghanta"===t}}(0,s.h)({source:"temporal:context"}),(0,s.h)({source:"temporal:streaks"});let n={now:()=>new Date,today:()=>new Date().toISOString().split("T")[0],toISOString:()=>new Date().toISOString()};function o(){return n}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.