[{"data":1,"prerenderedAt":624},["ShallowReactive",2],{"navigation_docs":3,"-introduction-getting-started":51,"-introduction-getting-started-surround":622},[4,15,37],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":14},"Introduction","i-lucide-star","\u002Fintroduction","1.introduction",[10],{"title":11,"path":12,"stem":13},"Getting Started","\u002Fintroduction\u002Fgetting-started","1.introduction\u002F1.getting-started",false,{"title":16,"icon":17,"path":18,"stem":19,"children":20,"page":14},"Components","i-lucide-box","\u002Fcomponents","2.components",[21,25,29,33],{"title":22,"path":23,"stem":24},"ListmonkForm","\u002Fcomponents\u002Flistmonkform","2.components\u002F1.ListmonkForm",{"title":26,"path":27,"stem":28},"ListmonkInputGroup","\u002Fcomponents\u002Flistmonkinputgroup","2.components\u002F2.ListmonkInputGroup",{"title":30,"path":31,"stem":32},"ListmonkInput","\u002Fcomponents\u002Flistmonkinput","2.components\u002F3.ListmonkInput",{"title":34,"path":35,"stem":36},"ListmonkButton","\u002Fcomponents\u002Flistmonkbutton","2.components\u002F4.ListmonkButton",{"title":38,"icon":39,"path":40,"stem":41,"children":42,"page":14},"API","i-lucide-bookmark","\u002Fapi","3.api",[43,47],{"title":44,"path":45,"stem":46},"Composables","\u002Fapi\u002Fcomposables","3.api\u002F1.composables",{"title":48,"path":49,"stem":50},"Subscription hooks","\u002Fapi\u002Fsubscription-hooks","3.api\u002F2.subscription-hooks",{"id":52,"title":11,"body":53,"description":79,"extension":616,"links":617,"meta":618,"navigation":619,"path":12,"seo":620,"stem":13,"__hash__":621},"docs\u002F1.introduction\u002F1.getting-started.md",{"type":54,"value":55,"toc":611},"minimark",[56,60,65,72,104,122,187,191,196,204,215,222,232,395,402,416,423,427,434,604,607],[57,58,11],"h1",{"id":59},"getting-started",[61,62,64],"h2",{"id":63},"installation","Installation",[66,67,68],"ol",{},[69,70,71],"li",{},"Add nuxt-listmonk module to your nuxt.js project:",[73,74,80],"pre",{"className":75,"code":76,"filename":77,"language":78,"meta":79,"style":79},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx nuxi module add nuxt-listmonk\n","npx","bash","",[81,82,83],"code",{"__ignoreMap":79},[84,85,88,91,95,98,101],"span",{"class":86,"line":87},"line",1,[84,89,77],{"class":90},"sBMFI",[84,92,94],{"class":93},"sfazB"," nuxi",[84,96,97],{"class":93}," module",[84,99,100],{"class":93}," add",[84,102,103],{"class":93}," nuxt-listmonk\n",[66,105,107],{"start":106},2,[69,108,109,110,113,114,117,118,121],{},"If necessary, add ",[81,111,112],{},"nuxt-listmonk"," to the ",[81,115,116],{},"modules"," key on ",[81,119,120],{},"nuxt.config.ts"," file:",[73,123,127],{"className":124,"code":125,"language":126,"meta":79,"style":79},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['nuxt-listmonk'],\n});\n","typescript",[81,128,129,150,175],{"__ignoreMap":79},[84,130,131,135,138,142,146],{"class":86,"line":87},[84,132,134],{"class":133},"s7zQu","export",[84,136,137],{"class":133}," default",[84,139,141],{"class":140},"s2Zo4"," defineNuxtConfig",[84,143,145],{"class":144},"sTEyZ","(",[84,147,149],{"class":148},"sMK4o","{\n",[84,151,152,156,159,162,165,167,169,172],{"class":86,"line":106},[84,153,155],{"class":154},"swJcz","  modules",[84,157,158],{"class":148},":",[84,160,161],{"class":144}," [",[84,163,164],{"class":148},"'",[84,166,112],{"class":93},[84,168,164],{"class":148},[84,170,171],{"class":144},"]",[84,173,174],{"class":148},",\n",[84,176,178,181,184],{"class":86,"line":177},3,[84,179,180],{"class":148},"}",[84,182,183],{"class":144},")",[84,185,186],{"class":148},";\n",[61,188,190],{"id":189},"usage","Usage",[66,192,193],{},[69,194,195],{},"Set up your environment variables:",[73,197,202],{"className":198,"code":200,"language":201,"meta":79},[199],"language-text","NUXT_LISTMONK_HOST=\"\"\nNUXT_LISTMONK_LIST_ID=\"\"\nNUXT_LISTMONK_API_USERNAME=\"\"\nNUXT_LISTMONK_API_TOKEN=\"\"\n","text",[81,203,200],{"__ignoreMap":79},[205,206,207,210,211,214],"p",{},[81,208,209],{},"NUXT_LISTMONK_LIST_ID"," must be the positive numeric ID used by the authenticated\nListmonk API. Public list UUIDs previously submitted as the ",[81,212,213],{},"l"," form field are not\naccepted.",[205,216,217,218,221],{},"Create a dedicated Listmonk API user with permission to create and query\nsubscribers and manage subscriptions for the configured list. Keep its access\ntoken server-side; none of these values belong in ",[81,219,220],{},"runtimeConfig.public",".",[66,223,224],{"start":106},[69,225,226,227,117,230,121],{},"Add these options to the ",[81,228,229],{},"listmonk",[81,231,120],{},[73,233,235],{"className":124,"code":234,"language":126,"meta":79,"style":79},"export default defineNuxtConfig({\n  modules: ['nuxt-listmonk'],\n  listmonk: {\n    host: process.env.NUXT_LISTMONK_HOST,\n    listId: process.env.NUXT_LISTMONK_LIST_ID,\n    apiUsername: process.env.NUXT_LISTMONK_API_USERNAME,\n    apiToken: process.env.NUXT_LISTMONK_API_TOKEN,\n    existingSubscriberMode: 'preserve',\n  },\n});\n",[81,236,237,249,267,277,300,320,341,362,380,386],{"__ignoreMap":79},[84,238,239,241,243,245,247],{"class":86,"line":87},[84,240,134],{"class":133},[84,242,137],{"class":133},[84,244,141],{"class":140},[84,246,145],{"class":144},[84,248,149],{"class":148},[84,250,251,253,255,257,259,261,263,265],{"class":86,"line":106},[84,252,155],{"class":154},[84,254,158],{"class":148},[84,256,161],{"class":144},[84,258,164],{"class":148},[84,260,112],{"class":93},[84,262,164],{"class":148},[84,264,171],{"class":144},[84,266,174],{"class":148},[84,268,269,272,274],{"class":86,"line":177},[84,270,271],{"class":154},"  listmonk",[84,273,158],{"class":148},[84,275,276],{"class":148}," {\n",[84,278,280,283,285,288,290,293,295,298],{"class":86,"line":279},4,[84,281,282],{"class":154},"    host",[84,284,158],{"class":148},[84,286,287],{"class":144}," process",[84,289,221],{"class":148},[84,291,292],{"class":144},"env",[84,294,221],{"class":148},[84,296,297],{"class":144},"NUXT_LISTMONK_HOST",[84,299,174],{"class":148},[84,301,303,306,308,310,312,314,316,318],{"class":86,"line":302},5,[84,304,305],{"class":154},"    listId",[84,307,158],{"class":148},[84,309,287],{"class":144},[84,311,221],{"class":148},[84,313,292],{"class":144},[84,315,221],{"class":148},[84,317,209],{"class":144},[84,319,174],{"class":148},[84,321,323,326,328,330,332,334,336,339],{"class":86,"line":322},6,[84,324,325],{"class":154},"    apiUsername",[84,327,158],{"class":148},[84,329,287],{"class":144},[84,331,221],{"class":148},[84,333,292],{"class":144},[84,335,221],{"class":148},[84,337,338],{"class":144},"NUXT_LISTMONK_API_USERNAME",[84,340,174],{"class":148},[84,342,344,347,349,351,353,355,357,360],{"class":86,"line":343},7,[84,345,346],{"class":154},"    apiToken",[84,348,158],{"class":148},[84,350,287],{"class":144},[84,352,221],{"class":148},[84,354,292],{"class":144},[84,356,221],{"class":148},[84,358,359],{"class":144},"NUXT_LISTMONK_API_TOKEN",[84,361,174],{"class":148},[84,363,365,368,370,373,376,378],{"class":86,"line":364},8,[84,366,367],{"class":154},"    existingSubscriberMode",[84,369,158],{"class":148},[84,371,372],{"class":148}," '",[84,374,375],{"class":93},"preserve",[84,377,164],{"class":148},[84,379,174],{"class":148},[84,381,383],{"class":86,"line":382},9,[84,384,385],{"class":148},"  },\n",[84,387,389,391,393],{"class":86,"line":388},10,[84,390,180],{"class":148},[84,392,183],{"class":144},[84,394,186],{"class":148},[205,396,397,398,401],{},"Subscriptions made by the module are confirmed immediately. When the e-mail\nalready exists, ",[81,399,400],{},"existingSubscriberMode"," controls how the subscriber is handled:",[403,404,405,410],"ul",{},[69,406,407,409],{},[81,408,375],{}," (default) adds the configured list without changing the\nsubscriber's name, account status, attributes, or other list memberships.",[69,411,412,415],{},[81,413,414],{},"merge"," adds the configured list, updates a submitted name, and merges\nsubmitted attributes while preserving unrelated attributes and other list\nmemberships.",[205,417,418,419,422],{},"Merge mode uses ",[81,420,421],{},"PATCH \u002Fapi\u002Fsubscribers\u002F{id}"," and requires Listmonk 6.1 or newer.\nThe API user must have permission to query and update subscribers as well as\nmanage the configured list. If the profile update fails, the list may already\nhave been added because membership is updated first.",[61,424,426],{"id":425},"subscriber-attributes","Subscriber attributes",[205,428,429,430,433],{},"Pass custom Listmonk attributes in the optional ",[81,431,432],{},"attribs"," object:",[73,435,439],{"className":436,"code":437,"language":438,"meta":79,"style":79},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","await useSubscribe({\n  email: 'person@example.com',\n  name: 'Person',\n  attribs: {\n    locale: 'pt-BR',\n    interests: ['security', 'payments'],\n    preferences: {\n      frequency: 2,\n      enabled: true,\n      fallback: null,\n    },\n  },\n})\n","ts",[81,440,441,453,469,485,494,510,540,549,562,575,585,591,596],{"__ignoreMap":79},[84,442,443,446,449,451],{"class":86,"line":87},[84,444,445],{"class":133},"await",[84,447,448],{"class":140}," useSubscribe",[84,450,145],{"class":144},[84,452,149],{"class":148},[84,454,455,458,460,462,465,467],{"class":86,"line":106},[84,456,457],{"class":154},"  email",[84,459,158],{"class":148},[84,461,372],{"class":148},[84,463,464],{"class":93},"person@example.com",[84,466,164],{"class":148},[84,468,174],{"class":148},[84,470,471,474,476,478,481,483],{"class":86,"line":177},[84,472,473],{"class":154},"  name",[84,475,158],{"class":148},[84,477,372],{"class":148},[84,479,480],{"class":93},"Person",[84,482,164],{"class":148},[84,484,174],{"class":148},[84,486,487,490,492],{"class":86,"line":279},[84,488,489],{"class":154},"  attribs",[84,491,158],{"class":148},[84,493,276],{"class":148},[84,495,496,499,501,503,506,508],{"class":86,"line":302},[84,497,498],{"class":154},"    locale",[84,500,158],{"class":148},[84,502,372],{"class":148},[84,504,505],{"class":93},"pt-BR",[84,507,164],{"class":148},[84,509,174],{"class":148},[84,511,512,515,517,519,521,524,526,529,531,534,536,538],{"class":86,"line":322},[84,513,514],{"class":154},"    interests",[84,516,158],{"class":148},[84,518,161],{"class":144},[84,520,164],{"class":148},[84,522,523],{"class":93},"security",[84,525,164],{"class":148},[84,527,528],{"class":148},",",[84,530,372],{"class":148},[84,532,533],{"class":93},"payments",[84,535,164],{"class":148},[84,537,171],{"class":144},[84,539,174],{"class":148},[84,541,542,545,547],{"class":86,"line":343},[84,543,544],{"class":154},"    preferences",[84,546,158],{"class":148},[84,548,276],{"class":148},[84,550,551,554,556,560],{"class":86,"line":364},[84,552,553],{"class":154},"      frequency",[84,555,158],{"class":148},[84,557,559],{"class":558},"sbssI"," 2",[84,561,174],{"class":148},[84,563,564,567,569,573],{"class":86,"line":382},[84,565,566],{"class":154},"      enabled",[84,568,158],{"class":148},[84,570,572],{"class":571},"sfNiH"," true",[84,574,174],{"class":148},[84,576,577,580,582],{"class":86,"line":388},[84,578,579],{"class":154},"      fallback",[84,581,158],{"class":148},[84,583,584],{"class":148}," null,\n",[84,586,588],{"class":86,"line":587},11,[84,589,590],{"class":148},"    },\n",[84,592,594],{"class":86,"line":593},12,[84,595,385],{"class":148},[84,597,599,601],{"class":86,"line":598},13,[84,600,180],{"class":148},[84,602,603],{"class":144},")\n",[205,605,606],{},"The attributes root must be a plain object. Values can contain strings, finite\nnumbers, booleans, null, arrays, and nested plain objects. Invalid attribute\npayloads are rejected before lifecycle hooks or Listmonk are called.",[608,609,610],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":79,"searchDepth":106,"depth":106,"links":612},[613,614,615],{"id":63,"depth":106,"text":64},{"id":189,"depth":106,"text":190},{"id":425,"depth":106,"text":426},"md",null,{},true,{"title":11,"description":79},"WcLDVznwX0cCSh3JfUxtko4DbSj4VZjFJzB5ikpyOzc",[617,623],{"title":22,"path":23,"stem":24,"description":79,"children":-1},1789764531286]