\x3Cpath d=\"M19.5 12.572l-7.5 7.428l-7.5 -7.428a5 5 0 1 1 7.5 -6.566a5 5 0 1 1 7.5 6.572\" />\x3Cpath d=\"M12 6l-3.293 3.293a1 1 0 0 0 0 1.414l.543 .543c.69 .69 1.81 .69 2.5 0l1 -1a3.182 3.182 0 0 1 4.5 0l2.25 2.25\" />\x3Cpath d=\"M12.5 15.5l2 2\" />\x3Cpath d=\"M15 13l2 2\" />\x3C/svg>"}},onlyIconOnMobile:$R[876]={override:!0,value:$R[877]={content:!0}},title:$R[878]={value:$R[879]={content:"Donate"},override:!0},size:$R[880]={value:$R[881]={selected:"sm"},override:!0}},position:-1,presetId:null,slots:$R[882]={}},kl2nxn11z67tu7eoce05j8qw:$R[883]={id:"kl2nxn11z67tu7eoce05j8qw",historyId:"zlwag29yfo69u89ss15ivcx9",parentSlotId:"pk83dwehl70xipr7rkisob88",pageId:"vkycq8vfc41bog1dxkpj4krp",blueprintId:"m2vqbubuu61s8cu8l9z3cllu",layoutId:null,data:$R[884]={link:$R[885]={override:!0,value:$R[886]={content:"/contact"}},content:$R[887]={override:!0,value:$R[888]={content:"\x3Cspan class=\"block\">Contact\x3C/span>"}},iconSvg:$R[889]={override:!0,value:$R[890]={content:"\x3Csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"icon icon-tabler icons-tabler-outline icon-tabler-message\">\x3Cpath stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\x3Cpath d=\"M8 9h8\" />\x3Cpath d=\"M8 13h6\" />\x3Cpath d=\"M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12z\" />\x3C/svg>"}}},position:0,presetId:"nvk2smr5lvmoemdxnhc48v60",slots:$R[891]={}},b4bj4swmhqfsjwh25bgkqtxg:$R[892]={id:"b4bj4swmhqfsjwh25bgkqtxg",historyId:"spndqeshn1b4za5yx0dfac3t",parentSlotId:"slcbirwij9o9nhgpstmsayjc",pageId:"vkycq8vfc41bog1dxkpj4krp",blueprintId:"h69o4bgskdoac4pzmhxv5rdp",layoutId:null,data:$R[893]={buttonColor:$R[894]={override:!0,value:$R[895]={id:"l4wvkzcz4hzqd6soscv7r80y",invert:!0,rgb:$R[896]={r:219,g:59,b:247},css:"219, 59, 247"}},buttonColorHovered:$R[897]={override:!0,value:$R[898]={id:"l4wvkzcz4hzqd6soscv7r80y",rgb:$R[899]={r:219,g:59,b:247},css:"219, 59, 247"}},errorColor:$R[900]={override:!0,value:$R[901]={css:"255, 99, 126",rgb:$R[902]={r:255,g:99,b:126}}},accentFadedColor:$R[903]={value:$R[904]={id:"l4wvkzcz4hzqd6soscv7r80y",rgb:$R[905]={r:219,g:59,b:247},css:"219, 59, 247",alpha:0.5,invert:!0},override:!0},neutralFadedColor:$R[906]={value:$R[907]={id:"um4i61jwfapkvtrsvwif481w",rgb:$R[908]={r:145,g:71,b:237},css:"145, 71, 237",alpha:0.5},override:!0}},position:-1,presetId:null,slots:$R[909]={default:"tddfxjxcxrbsrm94iv9i294z"}},sxku6yqrny56gbnc63ab1ow9:$R[910]={id:"sxku6yqrny56gbnc63ab1ow9",historyId:"c1vfnrem9gx86m68e8t1m0mr",parentSlotId:"tddfxjxcxrbsrm94iv9i294z",pageId:"vkycq8vfc41bog1dxkpj4krp",blueprintId:"ba0jpedvc304eoz55l5mkgpu",layoutId:null,data:$R[911]={},position:-1,presetId:null,slots:$R[912]={default:"csv2brw9vs2jf1sekna25p6z"}},w43kcgaiq9wtw0utxckl251h:$R[913]={id:"w43kcgaiq9wtw0utxckl251h",historyId:"q7tuwy4ue6djnmegyh2i7awo",parentSlotId:"csv2brw9vs2jf1sekna25p6z",pageId:"vkycq8vfc41bog1dxkpj4krp",blueprintId:"zk7vp8rahquyz034aec4h2on",layoutId:null,data:$R[914]={content:$R[915]={override:!0,value:$R[916]={content:"\x3Cspan class=\"block ql-align-center\">Join the newsletter\x3C/span>"}},size:$R[917]={override:!0,value:$R[918]={selected:"md"}},textColor:$R[919]={override:!0,value:$R[920]={id:"q7p73q09u3nncb2i9i661zyl",rgb:$R[921]={r:255,g:255,b:255},css:"255, 255, 255"}},font:$R[922]={override:!0,value:$R[923]={id:"39f8d54d-d067-4b7b-be84-16eb3d10dc2d",letterSpacing:0.1,publicId:"dh5sftajtxwktaafqm751ahd"}}},position:-1,presetId:null,slots:$R[924]={}},bbxpq45eaije4cud7f83tt8f:$R[925]={id:"bbxpq45eaije4cud7f83tt8f",historyId:"a3rkk98uxt8uhw89mibindap",parentSlotId:"csv2brw9vs2jf1sekna25p6z",pageId:"vkycq8vfc41bog1dxkpj4krp",blueprintId:"thhqaia97ziizqdxfakwj95e",layoutId:null,data:$R[926]={id:$R[927]={value:$R[928]={content:"newsletter"},override:!0}},position:0,presetId:null,slots:$R[929]={}},vb327oloujagm1i3b1f1jx3u:$R[930]={id:"vb327oloujagm1i3b1f1jx3u",historyId:"e1fd2bfdf2lg13tv3o9d8t43",parentSlotId:"c39nc5lud5j63anf895gdipf",pageId:"vkycq8vfc41bog1dxkpj4krp",blueprintId:"m2vqbubuu61s8cu8l9z3cllu",layoutId:null,data:$R[931]={content:$R[932]={override:!0,value:$R[933]={content:"\x3Cspan class=\"block\">Discord\x3C/span>"}},iconSvg:$R[934]={override:!0,value:$R[935]={content:"\x3Csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"icon icon-tabler icons-tabler-outline icon-tabler-brand-discord\">\x3Cpath stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\x3Cpath d=\"M8 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0\" />\x3Cpath d=\"M14 12a1 1 0 1 0 2 0a1 1 0 0 0 -2 0\" />\x3Cpath d=\"M15.5 17c0 1 1.5 3 2 3c1.5 0 2.833 -1.667 3.5 -3c.667 -1.667 .5 -5.833 -1.5 -11.5c-1.457 -1.015 -3 -1.34 -4.5 -1.5l-.972 1.923a11.913 11.913 0 0 0 -4.053 0l-.975 -1.923c-1.5 .16 -3.043 .485 -4.5 1.5c-2 5.667 -2.167 9.833 -1.5 11.5c.667 1.333 2 3 3.5 3c.5 0 2 -2 2 -3\" />\x3Cpath d=\"M7 16.5c3.5 1 6.5 1 10 0\" />\x3C/svg>"}},link:$R[936]={value:$R[937]={content:"https://discord.gg/zQg4DjSHRd"},override:!0},title:$R[938]={value:$R[939]={content:"Discord"},override:!0}},position:-1,presetId:"wu1tt6xncwoakwsmzqagqavp",slots:$R[940]={}},wo0ufsqeifxgxzk4dn52di48:$R[941]={id:"wo0ufsqeifxgxzk4dn52di48",historyId:"dxubtcowqd92gves0op281x5",parentSlotId:"c39nc5lud5j63anf895gdipf",pageId:"vkycq8vfc41bog1dxkpj4krp",blueprintId:"m2vqbubuu61s8cu8l9z3cllu",layoutId:null,data:$R[942]={content:$R[943]={override:!0,value:$R[944]={content:"\x3Cspan class=\"block\">Nostr\x3C/span>"}},link:$R[945]={value:$R[946]={content:"https://iris.to/katywings"},override:!0},iconSvg:$R[947]={value:$R[948]={content:"\x3C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\x3Csvg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 875 875\">\n \x3Cdefs>\n \x3Cstyle>\n .cls-1 {\n fill: currentColor;\n stroke: currentColor;\n stroke-miterlimit: 10;\n stroke-width: 6px;\n }\n \x3C/style>\n \x3C/defs>\n \x3Cpath class=\"cls-1\" d=\"m684.72,485.57c.22,12.59-11.93,51.47-38.67,81.3-26.74,29.83-56.02,20.85-58.42,20.16s-3.09-4.46-7.89-3.77-9.6,6.17-18.86,7.2-17.49,1.71-26.06-1.37c-4.46.69-5.14.71-7.2,2.24s-17.83,10.79-21.6,11.47c0,7.2-1.37,44.57,0,55.89s3.77,25.71,7.54,36c3.77,10.29,2.74,10.63,7.54,9.94s13.37.34,15.77,4.11c2.4,3.77,1.37,6.51,5.49,8.23s60.69,17.14,99.43,19.2c26.74.69,42.86,2.74,52.12,19.54,1.37,7.89,7.54,13.03,11.31,14.06s8.23,2.06,12,5.83,1.03,8.23,5.49,11.66c4.46,3.43,14.74,8.57,25.37,13.71,10.63,5.14,15.09,13.37,15.77,16.11s1.71,10.97,1.71,10.97c0,0-8.91,0-10.97-2.06s-2.74-5.83-2.74-5.83c0,0-6.17,1.03-7.54,3.43s.69,2.74-7.89.69-11.66-3.77-18.17-8.57c-6.51-4.8-16.46-17.14-25.03-16.8,4.11,8.23,5.83,8.23,10.63,10.97s8.23,5.83,8.23,5.83l-7.2,4.46s-4.46,2.06-14.74-.69-11.66-4.46-12.69-10.63,0-9.26-2.74-14.4-4.11-15.77-22.29-21.26c-18.17-5.49-66.52-21.26-100.12-24.69s-22.63-2.74-28.11-1.37-15.77,4.46-26.4-1.37c-10.63-5.83-16.8-13.71-17.49-20.23s-1.71-10.97,0-19.2,3.43-19.89,1.71-26.74-14.06-55.89-19.89-64.12c-13.03,1.03-50.74-.69-50.74-.69,0,0-2.4-.69-17.49,5.83s-36.48,13.76-46.77,19.93-14.4,9.7-16.12,13.13c.12,3-1.23,7.72-2.79,9.06s-12.48,2.42-12.48,2.42c0,0-5.85,5.86-8.25,9.97-6.86,9.6-55.2,125.14-66.52,149.83-13.54,32.57-9.77,27.43-37.71,27.43s-8.06.3-8.06.3c0,0-12.34,5.88-16.8,5.88s-18.86-2.4-26.4,0-16.46,9.26-23.31,10.29-4.95-1.34-8.38-3.74c-4-.21-14.27-.12-14.27-.12,0,0,1.74-6.51,7.91-10.88,8.23-5.83,25.37-16.11,34.63-21.26s17.49-7.89,23.31-9.26,18.51-6.17,30.51-9.94,19.54-8.23,29.83-31.54c10.29-23.31,50.4-111.43,51.43-116.23.63-2.96,3.73-6.48,4.8-15.09.66-5.35-2.49-13.04,1.71-22.63,10.97-25.03,21.6-20.23,26.4-20.23s17.14.34,26.4-1.37,15.43-2.74,24.69-7.89,11.31-8.91,11.31-8.91l-19.89-3.43s-18.51.69-25.03-4.46-15.43-15.77-15.43-15.77l-7.54-7.2,1.03,8.57s-5.14-8.91-6.51-10.29-8.57-6.51-11.31-11.31-7.54-25.03-7.54-25.03l-6.17,13.03-1.71-18.86-5.14,7.2-2.74-16.11-4.8,8.23-3.43-14.4-5.83,4.46-2.4-10.29-5.83-3.43s-14.06-9.26-16.46-9.6-4.46,3.43-4.46,3.43l1.37,12-12.2-6.27-7-11.9s2.36,4.01-9.62,7.53c-20.55,0-21.89-2.28-24.93-3.94-1.31-6.56-5.57-10.11-5.57-10.11h-20.57l-.34-6.86-7.89,3.09.69-10.29h-14.06l1.03-11.31h-8.91s3.09-9.26,25.71-22.97,25.03-16.46,46.29-17.14c21.26-.69,32.91,2.74,46.29,8.23s38.74,13.71,43.89,17.49c11.31-9.94,28.46-19.89,34.29-19.89,1.03-2.4,6.19-12.33,17.96-17.6,35.31-15.81,108.13-34,131.53-35.54,31.2-2.06,7.89-1.37,39.09,2.06,31.2,3.43,54.17,7.54,69.6,12.69,12.58,4.19,25.03,9.6,34.29,2.06,4.33-1.81,11.81-1.34,17.83-5.14,30.69-25.09,34.72-32.35,43.63-41.95s20.14-24.91,22.54-45.14,4.46-58.29-10.63-88.12-28.8-45.26-34.63-69.26c-5.83-24-8.23-61.03-6.17-73.03,2.06-12,5.14-22.29,6.86-30.51s9.94-14.74,19.89-16.46c9.94-1.71,17.83,1.37,22.29,4.8,4.46,3.43,11.65,6.28,13.37,10.29.34,1.71-1.37,6.51,8.23,8.23,9.6,1.71,16.05,4.16,16.05,4.16,0,0,15.64,4.29,3.11,7.73-12.69,2.06-20.52-.71-24.29,1.69s-7.21,10.08-9.61,11.1-7.2.34-12,4.11-9.6,6.86-12.69,14.4-5.49,15.77-3.43,26.74,8.57,31.54,14.4,43.2c5.83,11.66,20.23,40.8,24.34,47.66s15.77,29.49,16.8,53.83,1.03,44.23,0,54.86-10.84,51.65-35.53,85.94c-8.16,14.14-23.21,31.9-24.67,35.03-1.45,3.13-3.02,4.88-1.61,7.65,4.62,9.05,12.87,22.13,14.71,29.22,2.29,6.64,6.99,16.13,7.22,28.72Z\"/>\n\x3C/svg>"},override:!0},title:$R[949]={value:$R[950]={content:"Nostr"},override:!0}},position:0,presetId:"wu1tt6xncwoakwsmzqagqavp",slots:$R[951]={}},veuwxavywkbqtoz6ylea36m2:$R[952]={id:"veuwxavywkbqtoz6ylea36m2",historyId:"elkcrmpemuvo1p8ta9424le8",parentSlotId:"c39nc5lud5j63anf895gdipf",pageId:"vkycq8vfc41bog1dxkpj4krp",blueprintId:"m2vqbubuu61s8cu8l9z3cllu",layoutId:null,data:$R[953]={content:$R[954]={override:!0,value:$R[955]={content:"\x3Cspan class=\"block\">Bluesky\x3C/span>"}},link:$R[956]={value:$R[957]={content:"https://bsky.app/profile/nitropage.bsky.social"},override:!0},iconSvg:$R[958]={value:$R[959]={content:"\x3Csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"icon icon-tabler icons-tabler-outline icon-tabler-brand-bluesky\">\x3Cpath stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\x3Cpath d=\"M6.335 5.144c-1.654 -1.199 -4.335 -2.127 -4.335 .826c0 .59 .35 4.953 .556 5.661c.713 2.463 3.13 2.75 5.444 2.369c-4.045 .665 -4.889 3.208 -2.667 5.41c1.03 1.018 1.913 1.59 2.667 1.59c2 0 3.134 -2.769 3.5 -3.5c.333 -.667 .5 -1.167 .5 -1.5c0 .333 .167 .833 .5 1.5c.366 .731 1.5 3.5 3.5 3.5c.754 0 1.637 -.571 2.667 -1.59c2.222 -2.203 1.378 -4.746 -2.667 -5.41c2.314 .38 4.73 .094 5.444 -2.369c.206 -.708 .556 -5.072 .556 -5.661c0 -2.953 -2.68 -2.025 -4.335 -.826c-2.293 1.662 -4.76 5.048 -5.665 6.856c-.905 -1.808 -3.372 -5.194 -5.665 -6.856z\" />\x3C/svg>"},override:!0},title:$R[960]={value:$R[961]={content:"Bluesky"},override:!0}},position:1,presetId:"wu1tt6xncwoakwsmzqagqavp",slots:$R[962]={}},ijubtmjp5ks54w8f955bgcce:$R[963]={id:"ijubtmjp5ks54w8f955bgcce",historyId:"c2dd7k2tigxcomsbqat03j98",parentSlotId:"c39nc5lud5j63anf895gdipf",pageId:"vkycq8vfc41bog1dxkpj4krp",blueprintId:"m2vqbubuu61s8cu8l9z3cllu",layoutId:null,data:$R[964]={content:$R[965]={override:!0,value:$R[966]={content:"\x3Cspan class=\"block\">Twitter\x3C/span>"}},title:$R[967]={override:!0,value:$R[968]={content:"Twitter"}},iconSvg:$R[969]={override:!0,value:$R[970]={content:"\x3Csvg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"icon icon-tabler icons-tabler-outline icon-tabler-brand-twitter\">\x3Cpath stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\x3Cpath d=\"M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c0 -.249 1.51 -2.772 1.818 -4.013z\" />\x3C/svg>"}},link:$R[971]={value:$R[972]={content:"https://twitter.com/nitropage"},override:!0}},position:2,presetId:"wu1tt6xncwoakwsmzqagqavp",slots:$R[973]={}},root:$R[974]={id:"root",blueprintId:"root",data:$R[975]={},slots:$R[976]={default:"n7o6f93ssqe70560n5p95jl0"}}},rootSlots:$R[977]=[$R[978]={id:"n7o6f93ssqe70560n5p95jl0",key:"default",parentElementId:null,parentPageRevisionId:"vkycq8vfc41bog1dxkpj4krp",parentLayoutSlotId:null,layoutSlotId:null,elements:$R[979]=[$R[980]={id:"ds2dqi67kf4s7npodvgce4y2"},$R[981]={id:"n8vxjydm9fjkitg1hwlo8psb"},$R[982]={id:"rlrdwfnfjdysqbh95tsmllf2"}]}],blueprintIds:$R[983]=["h69o4bgskdoac4pzmhxv5rdp","b0ailno63q17afjl6wr83xz1","mx4wh6v3qw2zgswspprbs1ik","pynj0gs5qlwztg60j596bkgm","cd3pv0e6xywtebw50ph4mc1s","m2vqbubuu61s8cu8l9z3cllu","ba0jpedvc304eoz55l5mkgpu","zk7vp8rahquyz034aec4h2on","thhqaia97ziizqdxfakwj95e"],blueprintFiles:$R[984]=["../blueprints/theme.np.tsx","../blueprints/page/footer.np.tsx","../blueprints/utilities/html.np.tsx","../blueprints/page/header.np.tsx","../blueprints/utilities/flex.np.tsx","../blueprints/button/button.np.tsx","../blueprints/utilities/narrow.np.tsx","../blueprints/prose/heading.np.tsx","../blueprints/forms/newsletterForm.np.tsx"],slots:$R[985]={q3iss14ass37mw5cmelsg7nf:$R[986]={id:"q3iss14ass37mw5cmelsg7nf",key:"default",parentElementId:"ds2dqi67kf4s7npodvgce4y2",parentPageRevisionId:null,parentLayoutSlotId:null,layoutSlotId:null,elements:$R[987]=["g9ov4s3jh8sye9aitoe2bqu4","vh29tqnp7umwscxdxfkq8pu6"]},slcbirwij9o9nhgpstmsayjc:$R[988]={id:"slcbirwij9o9nhgpstmsayjc",key:"header",parentElementId:"n8vxjydm9fjkitg1hwlo8psb",parentPageRevisionId:null,parentLayoutSlotId:null,layoutSlotId:null,elements:$R[989]=["b4bj4swmhqfsjwh25bgkqtxg"]},c39nc5lud5j63anf895gdipf:$R[990]={id:"c39nc5lud5j63anf895gdipf",key:"social",parentElementId:"n8vxjydm9fjkitg1hwlo8psb",parentPageRevisionId:null,parentLayoutSlotId:null,layoutSlotId:null,elements:$R[991]=["vb327oloujagm1i3b1f1jx3u","wo0ufsqeifxgxzk4dn52di48","veuwxavywkbqtoz6ylea36m2","ijubtmjp5ks54w8f955bgcce"]},pk83dwehl70xipr7rkisob88:$R[992]={id:"pk83dwehl70xipr7rkisob88",key:"cta",parentElementId:"g9ov4s3jh8sye9aitoe2bqu4",parentPageRevisionId:null,parentLayoutSlotId:null,layoutSlotId:null,elements:$R[993]=["rp4v2x6b212pe70daxtex1sn","kl2nxn11z67tu7eoce05j8qw"]},u68zp12ya159ukztiexjyc3x:$R[994]={id:"u68zp12ya159ukztiexjyc3x",key:"default",parentElementId:"vh29tqnp7umwscxdxfkq8pu6",parentPageRevisionId:null,parentLayoutSlotId:null,layoutSlotId:"bwekkw1fvofaxh5zkj4jqkao",elements:$R[995]=[]},tddfxjxcxrbsrm94iv9i294z:$R[996]={id:"tddfxjxcxrbsrm94iv9i294z",key:"default",parentElementId:"b4bj4swmhqfsjwh25bgkqtxg",parentPageRevisionId:null,parentLayoutSlotId:null,layoutSlotId:null,elements:$R[997]=["sxku6yqrny56gbnc63ab1ow9"]},csv2brw9vs2jf1sekna25p6z:$R[998]={id:"csv2brw9vs2jf1sekna25p6z",key:"default",parentElementId:"sxku6yqrny56gbnc63ab1ow9",parentPageRevisionId:null,parentLayoutSlotId:null,layoutSlotId:null,elements:$R[999]=["w43kcgaiq9wtw0utxckl251h","bbxpq45eaije4cud7f83tt8f"]},n7o6f93ssqe70560n5p95jl0:$R[1000]={id:"n7o6f93ssqe70560n5p95jl0",key:"default",parentElementId:"root",parentPageRevisionId:"vkycq8vfc41bog1dxkpj4krp",parentLayoutSlotId:null,layoutSlotId:null,elements:$R[1001]=["ds2dqi67kf4s7npodvgce4y2","n8vxjydm9fjkitg1hwlo8psb","rlrdwfnfjdysqbh95tsmllf2"]}}}});_$HY.r["np-blueprintPath[\"h69o4bgskdoac4pzmhxv5rdp\"]"]=$R[1002]=$R[2]($R[1003]={p:0,s:0,f:0});_$HY.r["np-blueprintDefaults[\"h69o4bgskdoac4pzmhxv5rdp\"]"]=$R[1004]=$R[2]($R[1005]={p:0,s:0,f:0});_$HY.r["np-blueprintPath[\"b0ailno63q17afjl6wr83xz1\"]"]=$R[1006]=$R[2]($R[1007]={p:0,s:0,f:0});_$HY.r["np-blueprintDefaults[\"b0ailno63q17afjl6wr83xz1\"]"]=$R[1008]=$R[2]($R[1009]={p:0,s:0,f:0});_$HY.r["np-blueprintPath[\"mx4wh6v3qw2zgswspprbs1ik\"]"]=$R[1010]=$R[2]($R[1011]={p:0,s:0,f:0});_$HY.r["np-blueprintDefaults[\"mx4wh6v3qw2zgswspprbs1ik\"]"]=$R[1012]=$R[2]($R[1013]={p:0,s:0,f:0});_$HY.r["np-blueprintPath[\"pynj0gs5qlwztg60j596bkgm\"]"]=$R[1014]=$R[2]($R[1015]={p:0,s:0,f:0});_$HY.r["np-blueprintDefaults[\"pynj0gs5qlwztg60j596bkgm\"]"]=$R[1016]=$R[2]($R[1017]={p:0,s:0,f:0});_$HY.r["np-blueprintPath[\"cd3pv0e6xywtebw50ph4mc1s\"]"]=$R[1018]=$R[2]($R[1019]={p:0,s:0,f:0});_$HY.r["np-blueprintDefaults[\"cd3pv0e6xywtebw50ph4mc1s\"]"]=$R[1020]=$R[2]($R[1021]={p:0,s:0,f:0});_$HY.r["np-blueprintPath[\"m2vqbubuu61s8cu8l9z3cllu\"]"]=$R[1022]=$R[2]($R[1023]={p:0,s:0,f:0});_$HY.r["np-blueprintDefaults[\"m2vqbubuu61s8cu8l9z3cllu\"]"]=$R[1024]=$R[2]($R[1025]={p:0,s:0,f:0});_$HY.r["np-blueprintPath[\"zk7vp8rahquyz034aec4h2on\"]"]=$R[1026]=$R[2]($R[1027]={p:0,s:0,f:0});_$HY.r["np-blueprintDefaults[\"zk7vp8rahquyz034aec4h2on\"]"]=$R[1028]=$R[2]($R[1029]={p:0,s:0,f:0});_$HY.r["np-blueprintPath[\"thhqaia97ziizqdxfakwj95e\"]"]=$R[1030]=$R[2]($R[1031]={p:0,s:0,f:0});_$HY.r["np-blueprintDefaults[\"thhqaia97ziizqdxfakwj95e\"]"]=$R[1032]=$R[2]($R[1033]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000000"]=$R[799];$R[10]($R[1003],"../blueprints/theme.np.tsx");$R[10]($R[1007],"../blueprints/page/footer.np.tsx");$R[10]($R[1011],"../blueprints/utilities/html.np.tsx");$R[10]($R[1015],"../blueprints/page/header.np.tsx");$R[10]($R[1019],"../blueprints/utilities/flex.np.tsx");$R[10]($R[1023],"../blueprints/button/button.np.tsx");$R[10]($R[1027],"../blueprints/prose/heading.np.tsx");$R[10]($R[1031],"../blueprints/forms/newsletterForm.np.tsx");_$HY.r["00000000100000000101000000010001000010030020001000100010200000100"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020"]=$R[1034]=$R[2]($R[1035]={p:0,s:0,f:0});_$HY.r["00000000100000000101000000010001000010030020001000100010200000101"]=void 0;$R[10]($R[792],!0);_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000000"]="../blueprints/theme.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000001000"]="../blueprints/page/footer.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000002000"]="../blueprints/utilities/html.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000001001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000002001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000020010010000"]=void 0;$R[10]($R[1005],$R[1036]={accentColor:$R[1037]={value:$R[1038]={id:"l4wvkzcz4hzqd6soscv7r80y",invert:!0,rgb:$R[1039]={r:219,g:59,b:247},css:"219, 59, 247"}},accentFadedColor:$R[1040]={},neutralColor:$R[1041]={},neutralFadedColor:$R[1042]={},successColor:$R[1043]={},successFadedColor:$R[1044]={},errorColor:$R[1045]={},errorFadedColor:$R[1046]={},inputColor:$R[1047]={},inputTextColor:$R[1048]={},buttonColor:$R[1049]={},buttonColorHovered:$R[1050]={},buttonTextColor:$R[1051]={},buttonTextColorHovered:$R[1052]={},textColor:$R[1053]={},textFadedColor:$R[1054]={},alertRadius:$R[1055]={value:$R[1056]={}},buttonRadius:$R[1057]={value:$R[1058]={}},inputRadius:$R[1059]={value:$R[1060]={content:0}},id:$R[1061]={value:$R[1062]={content:""}},linkColor:$R[1063]={}});$R[10]($R[1009],$R[1064]={title:$R[1065]={value:$R[1066]={content:"\x3Cspan class=\"block\">Nitropage\x3C/span>"}},titleColor:$R[1067]={value:$R[1068]={css:"255, 255, 255",rgb:$R[1069]={r:255,g:255,b:255}}},titleFont:$R[1070]={value:$R[1071]={id:"39f8d54d-d067-4b7b-be84-16eb3d10dc2d",italic:!0,publicId:"dh5sftajtxwktaafqm751ahd"}},columns:$R[1072]={value:$R[1073]={byId:$R[1074]={x1m2aui2ybzb14jbfp1bf2go:$R[1075]={title:$R[1076]={content:"\x3Cspan class=\"block\">Resources\x3C/span>"},links:$R[1077]={byId:$R[1078]={dou0vh2hzkjpvi9c6e9xmaqq:$R[1079]={url:$R[1080]={content:"/docs"},text:$R[1081]={content:"\x3Cspan class=\"block\">Docs\x3C/span>"}},zznk0z6k9ekwnxl1kphxqrr1:$R[1082]={url:$R[1083]={content:"/guide"},text:$R[1084]={content:"\x3Cspan class=\"block\">User Guide\x3C/span>"}},im5yxk44o9bfzlef0fcuvpoz:$R[1085]={url:$R[1086]={content:"/blog"},text:$R[1087]={content:"\x3Cspan class=\"block\">Blog\x3C/span>"}},xljlm99tim63u4dqbimxwt8j:$R[1088]={url:$R[1089]={content:"https://codeberg.org/nitropage/nitropage/issues"},text:$R[1090]={content:"\x3Cspan class=\"block\">Issues\x3C/span>"}}},ids:$R[1091]=["zznk0z6k9ekwnxl1kphxqrr1","dou0vh2hzkjpvi9c6e9xmaqq","im5yxk44o9bfzlef0fcuvpoz","xljlm99tim63u4dqbimxwt8j"]}},i4nti845dme801c4khx9xj2p:$R[1092]={title:$R[1093]={content:"\x3Cspan class=\"block\">Organisation\x3C/span>"},links:$R[1094]={byId:$R[1095]={fk8nsu2uefr3om8e50qg2zah:$R[1096]={url:$R[1097]={content:"https://lufrai.org/about/"},text:$R[1098]={content:"\x3Cspan class=\"block\">About\x3C/span>"}},vrqeuvkkb07pk0fjcqwziihl:$R[1099]={url:$R[1100]={content:"/donate"},text:$R[1101]={content:"\x3Cspan class=\"block\">Donate\x3C/span>"}},axs9m5x9m9112pnbrcyajzog:$R[1102]={url:$R[1103]={content:"/contact"},text:$R[1104]={content:"\x3Cspan class=\"block\">Contact\x3C/span>"}},ti527d5y5fptya98gvo4tfmt:$R[1105]={url:$R[1106]={content:"https://community.lufrai.org/"},text:$R[1107]={content:"\x3Cspan class=\"block\">Forum\x3C/span>"}}},ids:$R[1108]=["axs9m5x9m9112pnbrcyajzog","vrqeuvkkb07pk0fjcqwziihl","fk8nsu2uefr3om8e50qg2zah","ti527d5y5fptya98gvo4tfmt"]}},o14xaj3x94hl3rl0swp5bbaq:$R[1109]={title:$R[1110]={content:"\x3Cspan class=\"block\">Project\x3C/span>"},links:$R[1111]={byId:$R[1112]={so2rfqew3rkoezb8et0mztbs:$R[1113]={url:$R[1114]={content:"/#features"},text:$R[1115]={content:"\x3Cspan class=\"block\">Features\x3C/span>"}},ohacpmqed60srxpp4mitaqnz:$R[1116]={url:$R[1117]={content:"/#faq"},text:$R[1118]={content:"\x3Cspan class=\"block\">FAQ\x3C/span>"}},msgm82rez6gutigtdjv1ecgm:$R[1119]={url:$R[1120]={content:"https://codeberg.org/nitropage/nitropage"},text:$R[1121]={content:"\x3Cspan class=\"block\">Source Code\x3C/span>"}},cmpdotvd81ydwsmkf3gtdq31:$R[1122]={url:$R[1123]={content:"/playground"},text:$R[1124]={content:"\x3Cspan class=\"block\">Playground\x3C/span>"}}},ids:$R[1125]=["so2rfqew3rkoezb8et0mztbs","cmpdotvd81ydwsmkf3gtdq31","msgm82rez6gutigtdjv1ecgm","ohacpmqed60srxpp4mitaqnz"]}}},ids:$R[1126]=["o14xaj3x94hl3rl0swp5bbaq","x1m2aui2ybzb14jbfp1bf2go","i4nti845dme801c4khx9xj2p"]},override:!0},copyrightPrefix:$R[1127]={value:$R[1128]={content:"\x3Cspan class=\"block\">\x3Ca href=\"https://lufrai.org\" rel=\"noopener noreferrer\" target=\"_blank\" class=\"ql-color-g8\">Lufrai\x3C/a>\x3C/span>"}},copyrightSuffix:$R[1129]={value:$R[1130]={content:"\x3Cspan class=\"block\">- Made with Nitropage\x3C/span>"}},bgColor:$R[1131]={value:$R[1132]={id:"eadhiqj1bihuiuaprcvffzja",rgb:$R[1133]={r:89,g:25,b:154},css:"89, 25, 154"}},lineColor:$R[1134]={value:$R[1135]={id:"um4i61jwfapkvtrsvwif481w",rgb:$R[1136]={r:145,g:71,b:237},css:"145, 71, 237",alpha:0.5}},id:$R[1137]={value:$R[1138]={content:""}},textColor:$R[1139]={value:$R[1140]={id:"q7p73q09u3nncb2i9i661zyl",rgb:$R[1141]={r:255,g:255,b:255},css:"255, 255, 255",alpha:0.7}},hoverColor:$R[1142]={value:$R[1143]={id:"q7p73q09u3nncb2i9i661zyl",rgb:$R[1144]={r:255,g:255,b:255},css:"255, 255, 255"}},description:$R[1145]={value:$R[1146]={content:"\x3Cspan class=\"block\">The free visual website editor, that is powered with your own \x3Ca href=\"https://www.solidjs.com/\" rel=\"noopener noreferrer\" target=\"_blank\" class=\"ql-color-g8\">SolidJS\x3C/a> components. Open Source and without a premium plan.\x3C/span>"}},fullWidth:$R[1147]={value:$R[1148]={}},htmlTag:$R[1149]={value:$R[1150]={content:"footer"}}});$R[10]($R[1013],$R[1151]={html:$R[1152]={value:$R[1153]={content:""}},inlineStyle:$R[1154]={value:$R[1155]={content:""}},richtextStyles:$R[1156]={value:$R[1157]={}},id:$R[1158]={value:$R[1159]={content:""}}});$R[10]($R[1017],$R[1160]={titleFont:$R[1161]={value:$R[1162]={id:"39f8d54d-d067-4b7b-be84-16eb3d10dc2d",publicId:"dh5sftajtxwktaafqm751ahd"}},logo:$R[1163]={value:$R[1164]={mediaIds:$R[1165]=[]}},logoSvg:$R[1166]={value:$R[1167]={content:"\x3Csvg width=\"289\" height=\"64\" fill=\"currentColor\" version=\"1.1\" viewBox=\"0 0 76.465 16.933\" xmlns=\"http://www.w3.org/2000/svg\">\n \x3Cpath transform=\"matrix(1 0 -.16885 .98564 0 0)\" d=\"m2.6884 1.2562 2.3e-4 14.668h14.457l-2.3e-4 -14.668h-14.457zm0.54338 3.2212 4.6687 3.7691 0.016168-3.4147h2.1906l0.006014 7.8707-4.679-3.7691-0.0053158 3.4147h-2.1911l-0.0060149-7.8707zm7.6113 0.35442h2.7724c1.8663 0.021475 2.9626 0.93407 3.0918 2.5769 0.13285 1.6643-1.0398 2.5554-2.9518 2.5769h-0.62425l0.007185 2.3625h-2.2965l0.001118-7.5162zm2.2942 1.8686-0.005973 1.4062h0.49764c0.508 0 0.88965-0.24661 0.89636-0.70832 0.001564-0.4295-0.30666-0.6871-0.7953-0.69783h-0.59273z\" style=\"paint-order:stroke fill markers\"/>\n \x3Cg style=\"paint-order:stroke fill markers;stroke-width:4.2333\">\n \x3Cpath d=\"m26.609 4.4429-0.8636 5.0165-5.0292-5.4356-1.5875 9.3091h2.032l0.8763-5.0165 5.0165 5.4356 1.6002-9.3091z\"/>\n \x3Cpath d=\"m29.842 5.3065c0 0.6096 0.4953 1.0287 1.1176 1.0287s1.1176-0.4191 1.1176-1.0287-0.4953-1.0414-1.1176-1.0414-1.1176 0.4318-1.1176 1.0414zm-0.1905 2.1844-0.9906 5.842h1.8415l1.0033-5.842z\"/>\n \x3Cpath d=\"m32.211 7.4909-0.2794 1.5875h0.9906l-0.7239 4.2545h1.8161l0.7366-4.2545h1.0033l0.2794-1.5875h-1.0033l0.3429-2.032h-1.8288l-0.3429 2.032z\"/>\n \x3Cpath d=\"m39.877 9.4721 1.0541-1.6129c-0.2413-0.2921-0.5715-0.508-0.9906-0.508-0.5715 0-1.143 0.381-1.5621 0.9398l0.1397-0.8001h-1.8669l-1.0033 5.842h1.8542l0.5334-3.0353c0.1397-0.6223 0.5969-1.1684 1.1811-1.1557 0.2921 0.0127 0.4826 0.1524 0.6604 0.3302z\"/>\n \x3Cpath d=\"m40.672 10.412c-0.2286 1.7526 1.0287 3.048 2.8448 3.048 1.8542 0 3.429-1.2573 3.6703-3.048 0.2286-1.7526-1.0287-3.048-2.8448-3.048-1.8542 0-3.429 1.2573-3.6703 3.048zm1.9431 0c0.1143-0.8001 0.8001-1.4859 1.5875-1.4605 0.762 0.0127 1.1557 0.6985 1.0414 1.4605-0.1143 0.8001-0.8128 1.4732-1.5875 1.4605-0.762-0.0127-1.1557-0.6985-1.0414-1.4605z\"/>\n \x3Cpath d=\"m48.972 16.127 0.6477-3.8481c0.2667 0.7366 0.8255 1.2573 1.7653 1.2573 1.5748 0.0127 2.9464-1.3335 3.1877-3.1242 0.2159-1.7145-0.6604-3.1242-2.2352-3.1242-0.8636 0.0127-1.5494 0.4191-2.0447 1.0541l0.1397-0.8509h-1.8923l-1.4859 8.636zm3.6195-5.7277c-0.127 0.8128-0.8636 1.4605-1.6383 1.4351-0.7112-0.0254-1.1176-0.635-1.016-1.4097 0.127-0.8255 0.8763-1.4478 1.5875-1.4351 0.7747 0.0254 1.1938 0.635 1.0668 1.4097z\"/>\n \x3Cpath d=\"m55.19 10.412c-0.2159 1.6764 0.6985 3.048 2.2479 3.0353 0.8255 0 1.5367-0.381 2.0574-0.9906l-0.1524 0.8763h1.8669l1.016-5.842h-1.8923l-0.1778 1.0668c-0.3048-0.7112-0.889-1.1938-1.7907-1.1938-1.5621 0-2.9464 1.3081-3.175 3.048zm1.9685 0c0.1397-0.8128 0.8636-1.524 1.6637-1.4986 0.7112 0.0254 1.1049 0.7239 0.9906 1.4986-0.127 0.8255-0.8636 1.5113-1.6002 1.4986-0.7747-0.0127-1.1684-0.7239-1.0541-1.4986z\"/>\n \x3Cpath d=\"m62.182 13.752c-0.0127 1.5875 0.9271 2.6162 2.8575 2.6162 1.8796-0.0127 3.2766-1.143 3.5941-3.1623l0.9779-5.715h-1.8288l-0.1778 0.9906c-0.3048-0.6731-0.9017-1.1176-1.778-1.1176-1.5494 0-2.9337 1.2192-3.1623 2.9591-0.2159 1.6891 0.7239 2.9845 2.2606 2.9718 0.8001 0 1.4986-0.3429 2.0066-0.9017l-0.1397 0.8128c-0.1397 0.9398-0.8509 1.6256-1.7272 1.6129-0.7112 0-1.0541-0.3937-1.0668-1.0541zm2.4511-3.4163c0.127-0.8001 0.8255-1.4351 1.651-1.4224 0.6731 0.0127 1.0795 0.5715 1.0287 1.3081l-0.0508 0.2794c-0.2032 0.7366-0.889 1.27-1.5621 1.2446-0.762-0.0127-1.1811-0.6223-1.0668-1.4097z\"/>\n \x3Cpath d=\"m72.997 13.46c1.4859 0 2.5654-0.6096 3.1877-1.7272l-1.6637-0.4191c-0.3175 0.4699-0.8001 0.762-1.4351 0.762-0.7366 0-1.143-0.4953-1.1303-1.2573h4.3688c0.0889-0.2413 0.1397-0.5842 0.1397-0.8636 0-1.6129-0.9525-2.5908-2.7178-2.5908-2.1717 0-3.683 1.4986-3.683 3.429 0 1.6637 1.1557 2.667 2.9337 2.667zm0.5715-4.8133c0.6477 0 0.9398 0.4064 0.9652 1.1049h-2.3749c0.254-0.6985 0.7112-1.1049 1.4097-1.1049z\"/>\n \x3C/g>\n\x3C/svg>"}},title:$R[1168]={value:$R[1169]={content:"\x3Cspan class=\"block\">Nitropage\x3C/span>"}},links:$R[1170]={value:$R[1171]={byId:$R[1172]={i744284358:$R[1173]={url:$R[1174]={content:"/docs"},text:$R[1175]={content:"\x3Cspan class=\"block\">Docs\x3C/span>"}},i905987100:$R[1176]={url:$R[1177]={content:"https://codeberg.org/nitropage/nitropage"},text:$R[1178]={content:"\x3Cspan class=\"block\">Source Code\x3C/span>"}},j992pjr5jjqj7g11c6dibr1x:$R[1179]={url:$R[1180]={content:"/guide"},text:$R[1181]={content:"\x3Cspan class=\"block\">User Guide\x3C/span>"}},heqm8da10e2meb4qgrh7aukk:$R[1182]={url:$R[1183]={content:"/"},text:$R[1184]={content:"\x3Cspan class=\"block\">Home\x3C/span>"}},mvt6t49fezs65qcodgq1w20x:$R[1185]={url:$R[1186]={content:"/blog"},text:$R[1187]={content:"\x3Cspan class=\"block\">Blog\x3C/span>"}}},ids:$R[1188]=["heqm8da10e2meb4qgrh7aukk","j992pjr5jjqj7g11c6dibr1x","i744284358","mvt6t49fezs65qcodgq1w20x","i905987100"]},override:!0},position:$R[1189]={value:$R[1190]={selected:"fixed"}},titleColor:$R[1191]={value:$R[1192]={id:"md4usoascirtn8zs9i57d9yd",rgb:$R[1193]={r:203,g:181,b:252},css:"203, 181, 252",invert:!0}},titleColorSticky:$R[1194]={value:$R[1195]={id:"md4usoascirtn8zs9i57d9yd",rgb:$R[1196]={r:203,g:181,b:252},css:"203, 181, 252",invert:!0}},linkColor:$R[1197]={value:$R[1198]={id:"uvkn6t296civjpn7bf3f00no",rgb:$R[1199]={r:247,g:245,b:255},css:"247, 245, 255",invert:!0}},linkColorHover:$R[1200]={value:$R[1201]={id:"jn3m6ro6udqzqrewlud7xlp7",rgb:$R[1202]={r:192,g:38,b:211},css:"192, 38, 211"},override:!1},linkColorSticky:$R[1203]={value:$R[1204]={id:"sxezrof73fntir73m0gxia7g",rgb:$R[1205]={r:232,g:225,b:254},css:"232, 225, 254",invert:!0}},backgroundColor:$R[1206]={},backgroundColorSticky:$R[1207]={value:$R[1208]={id:"kylc81do0kriy37t71qymiwa",rgb:$R[1209]={r:249,g:249,b:251},css:"249, 249, 251",alpha:0.9},override:!1},overlayColor:$R[1210]={value:$R[1211]={id:"eadhiqj1bihuiuaprcvffzja",rgb:$R[1212]={r:89,g:25,b:154},css:"255, 255, 255"}},overlayLinkColor:$R[1213]={value:$R[1214]={css:"255, 255, 255",rgb:$R[1215]={r:255,g:255,b:255}}},glassyOverlay:$R[1216]={value:$R[1217]={content:!0}},id:$R[1218]={value:$R[1219]={content:""}},backgroundOpacity:$R[1220]={value:$R[1221]={content:0.7}},fullWidth:$R[1222]={value:$R[1223]={}},htmlTag:$R[1224]={value:$R[1225]={content:"header"}}});$R[10]($R[1021],$R[1226]={verticalAlign:$R[1227]={value:$R[1228]={selected:""}},spacing:$R[1229]={value:$R[1230]={}},id:$R[1231]={value:$R[1232]={content:""}},direction:$R[1233]={value:$R[1234]={selected:""}},justifyContent:$R[1235]={value:$R[1236]={selected:""}},alignItems:$R[1237]={value:$R[1238]={selected:""}},collapseOnMobile:$R[1239]={value:$R[1240]={selected:""}},grow:$R[1241]={value:$R[1242]={}},wrapItems:$R[1243]={value:$R[1244]={}},spacingMax:$R[1245]={value:$R[1246]={}},spacingY:$R[1247]={value:$R[1248]={}},spacingYMax:$R[1249]={value:$R[1250]={}},style:$R[1251]={value:$R[1252]={content:""}},htmlTag:$R[1253]={value:$R[1254]={content:""}}});$R[10]($R[1025],$R[1255]={link:$R[1256]={value:$R[1257]={content:""}},content:$R[1258]={value:$R[1259]={content:"\x3Cspan class=\"block\">Lorem Ipsum\x3C/span>"}},iconSvg:$R[1260]={value:$R[1261]={content:""}},align:$R[1262]={value:$R[1263]={selected:""}},size:$R[1264]={value:$R[1265]={selected:""}},textColor:$R[1266]={value:$R[1267]={id:"yin5c1buw05v1bg80nev8zoq",rgb:$R[1268]={r:227,g:225,b:236},css:"227, 225, 236",invert:!0}},textColorHover:$R[1269]={value:$R[1270]={id:"snxdf8kj5xxd6t8wqm2i6so7",invert:!0,rgb:$R[1271]={r:241,g:240,b:245},css:"241, 240, 245"}},bgColor:$R[1272]={value:$R[1273]={css:"241, 240, 245",rgb:$R[1274]={r:241,g:240,b:245},id:"snxdf8kj5xxd6t8wqm2i6so7"}},bgColorHover:$R[1275]={value:$R[1276]={css:"227, 225, 236",rgb:$R[1277]={r:227,g:225,b:236},id:"yin5c1buw05v1bg80nev8zoq"}},id:$R[1278]={value:$R[1279]={content:""}},title:$R[1280]={value:$R[1281]={content:""}},onlyIconOnMobile:$R[1282]={value:$R[1283]={}},borderRadius:$R[1284]={value:$R[1285]={}},style:$R[1286]={value:$R[1287]={content:""}}});$R[10]($R[1029],$R[1288]={content:$R[1289]={value:$R[1290]={content:"\x3Cspan class=\"block\">Lorem Ipsum\x3C/span>"}},subtitle:$R[1291]={value:$R[1292]={content:""}},level:$R[1293]={value:$R[1294]={content:2}},size:$R[1295]={value:$R[1296]={selected:""}},textColor:$R[1297]={value:$R[1298]={id:"md4usoascirtn8zs9i57d9yd",rgb:$R[1299]={r:203,g:181,b:252},css:"203, 181, 252",invert:!0}},subtitleColor:$R[1300]={},fullWidth:$R[1301]={value:$R[1302]={content:!0}},font:$R[1303]={value:$R[1304]={id:"39f8d54d-d067-4b7b-be84-16eb3d10dc2d",letterSpacing:-0.025,publicId:"dh5sftajtxwktaafqm751ahd"}},subtitleFont:$R[1305]={value:$R[1306]={weight:400}},subtitleGap:$R[1307]={value:$R[1308]={}},prependSubtitle:$R[1309]={value:$R[1310]={content:!1}},id:$R[1311]={value:$R[1312]={content:""}},hyphen:$R[1313]={value:$R[1314]={content:!0}},marginTop:$R[1315]={value:$R[1316]={content:1.25}},marginTopMax:$R[1317]={value:$R[1318]={}},marginBottom:$R[1319]={value:$R[1320]={}},marginBottomMax:$R[1321]={value:$R[1322]={}},autoCollapseMargins:$R[1323]={value:$R[1324]={content:!0}},balancedWrap:$R[1325]={value:$R[1326]={content:!0}}});$R[10]($R[1033],$R[1327]={successMessage:$R[1328]={value:$R[1329]={content:"\x3Cspan class=\"block\">Successfully subscribed! You will receive a confirmation mail shortly.\x3C/span>"}},buttonText:$R[1330]={value:$R[1331]={content:"\x3Cspan class=\"block\">Subscribe\x3C/span>"}},lists:$R[1332]={value:$R[1333]={byId:$R[1334]={eee1bb05tgmg3lfzlfwkyrtq:$R[1335]={id:$R[1336]={content:"3407653d-4a1b-4cc4-950c-439d7fe1ac43"}}},ids:$R[1337]=["eee1bb05tgmg3lfzlfwkyrtq"]},override:!0},id:$R[1338]={value:$R[1339]={content:""}}});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020"]=$R[1340]=$R[2]($R[1341]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000100100100020"]=$R[1342]=$R[2]($R[1343]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010001"]=$R[1036];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010001"]=$R[1064];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000020010010001"]=$R[1151];$R[10]($R[1035],!0);_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100010000"]="../blueprints/page/header.np.tsx";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011000"]="../blueprints/utilities/flex.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001200010000"]="../blueprints/theme.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a1000010000"]="../blueprints/button/button.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a1000011000"]="../blueprints/button/button.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a1000012000"]="../blueprints/button/button.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a1000013000"]="../blueprints/button/button.np.tsx";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100010001000"]=!0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001200010001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a1000010001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a1000011001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a1000012001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a1000013001000"]=!0;_$HY.r["np-preset[\"wu1tt6xncwoakwsmzqagqavp\"]"]=$R[1344]=$R[2]($R[1345]={p:0,s:0,f:0});_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000100010010000"]=void 0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000100100100020000012000100010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001000100100020"]=$R[1346]=$R[2]($R[1347]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020"]=$R[1348]=$R[2]($R[1349]={p:0,s:0,f:0});_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000100010010001"]=$R[1160];_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010001"]=$R[1226];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000100100100020000012000100010010001"]=$R[1036];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a10000100010010001"]=$R[1255];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a10000110010010001"]=$R[1255];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a10000120010010001"]=$R[1255];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a10000130010010001"]=$R[1255];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100010001001000200000"]=$R[1350]=[];$R[10]($R[1341],!0);_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000100010010002000012400010000"]="../blueprints/button/button.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000100010010002000012400011000"]="../blueprints/button/button.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000100010010002000012500010000"]="../blueprints/button/button.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000100010010002000012500011000"]="../blueprints/button/button.np.tsx";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010000"]="../blueprints/page/section.np.tsx";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011000"]="../blueprints/page/section.np.tsx";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100012000"]="../blueprints/page/section.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000100010010002000012400010001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000100010010002000012400011001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000100010010002000012500010001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000100010010002000012500011001000"]=!0;_$HY.r["np-preset[\"nvk2smr5lvmoemdxnhc48v60\"]"]=$R[1351]=$R[2]($R[1352]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001000"]=!0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001000"]=!0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100012001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001000100100020000124000100010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001000100100020000125000100010010000"]=void 0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000100010010000"]=void 0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010000"]=void 0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000120010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020"]=$R[1353]=$R[2]($R[1354]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020"]=$R[1355]=$R[2]($R[1356]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001200100100020"]=$R[1357]=$R[2]($R[1358]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001000100100020000124000100010010001"]=$R[1255];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001000100100020000124000110010010001"]=$R[1255];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001000100100020000125000100010010001"]=$R[1255];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001000100100020000125000110010010001"]=$R[1255];_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000100010010001"]=$R[547];_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010001"]=$R[547];_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000120010010001"]=$R[547];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001001000200000"]=$R[1359]=[];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200000"]=$R[1360]=[];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100012001001000200000"]=$R[1361]=[];$R[10]($R[1349],!0);_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010000"]="../blueprints/utilities/style.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010000"]="../blueprints/utilities/container.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001200100100020000400010000"]="../blueprints/utilities/container.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001000"]=!0;_$HY.r["np-preset[\"eh8ty5fr63ygyv885x6j35jm\"]"]=$R[1362]=$R[2]($R[1363]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001200100100020000400010001000"]=!0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100012001001000200004000100010010000"]=void 0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020"]=$R[1364]=$R[2]($R[1365]={p:0,s:0,f:0});_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000120010010002000040001000100100020"]=$R[1366]=$R[2]($R[1367]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001001000200004000100010010001"]=$R[582];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010001"]=$R[648];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100012001001000200004000100010010001"]=$R[648];$R[10]($R[1356],!0);$R[10]($R[1358],!0);_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010000"]="../blueprints/utilities/narrow.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001200100100020000400010001001000200001100010000"]="../blueprints/prose/heading.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001200100100020000400010001001000200001100011000"]="../blueprints/blog/postTeaser.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001200100100020000400010001001000200001100010001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001200100100020000400010001001000200001100011001000"]=!0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100012001001000200004000100010010002000011000100010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100012001001000200004000100010010002000011000110010010000"]=void 0;_$HY.r["np-blueprintPath[\"zcvngz3018ov60rtf8kdgqgs\"]"]=$R[1368]=$R[2]($R[1369]={p:0,s:0,f:0});_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020"]=$R[1370]=$R[2]($R[1371]={p:0,s:0,f:0});_$HY.r["np-publicMedia[{\"ids\":[\"f451880d-06e1-481f-903a-842a8d43f260\"]}]"]=$R[1372]=$R[2]($R[1373]={p:0,s:0,f:0});_$HY.r["np-publicMedia[{\"ids\":[\"v10uyx0ghzxiylkluq99ztud\"]}]"]=$R[1374]=$R[2]($R[1375]={p:0,s:0,f:0});_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000120010010002000040001000100100020000110001100100100020"]=$R[1376]=$R[2]($R[1377]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010001"]=$R[575];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100012001001000200004000100010010002000011000100010010001"]=$R[1288];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100012001001000200004000100010010002000011000110010010001"]=$R[742];$R[10]($R[1365],!0);$R[10]($R[1367],!0);$R[10]($R[1369],"../blueprints/prose/markdown.np.tsx");_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100010000"]="../blueprints/prose/markdown.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100011000"]="../blueprints/prose/markdown.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100012000"]="../blueprints/media/video.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100013000"]="../blueprints/prose/markdown.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100014000"]="../blueprints/media/video.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100015000"]="../blueprints/prose/markdown.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100016000"]="../blueprints/media/video.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100017000"]="../blueprints/prose/markdown.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100018000"]="../blueprints/prose/markdown.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100019000"]="../blueprints/media/video.np.tsx";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a10000"]="../blueprints/prose/markdown.np.tsx";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a11000"]="../blueprints/media/image.np.tsx";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a12000"]="../blueprints/prose/markdown.np.tsx";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a13000"]="../blueprints/media/video.np.tsx";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a14000"]="../blueprints/prose/markdown.np.tsx";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a15000"]="../blueprints/prose/markdown.np.tsx";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a16000"]="../blueprints/integrations/nostrComments.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100010001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100011001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100012001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100013001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100014001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100015001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100016001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100017001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100018001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100019001000"]=!0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a10001000"]=!0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a11001000"]=!0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a12001000"]=!0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a13001000"]=!0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a14001000"]=!0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a15001000"]=!0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a16001000"]=!0;_$HY.r["np-blueprintDefaults[\"zcvngz3018ov60rtf8kdgqgs\"]"]=$R[1378]=$R[2]($R[1379]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000100010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000110010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000120010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000130010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000140010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000150010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000160010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000170010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000180010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000190010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a100010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a110010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a120010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a130010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a140010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a150010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a160010010000"]=void 0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000120010010001"]=$R[677];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000140010010001"]=$R[677];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000160010010001"]=$R[677];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000190010010001"]=$R[677];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a110010010001"]=$R[629];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a130010010001"]=$R[677];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a160010010001"]=$R[705];$R[10]($R[1379],$R[1380]={content:$R[1381]={value:$R[1382]={content:""}},fullWidth:$R[1383]={value:$R[1384]={}},headingFont:$R[1385]={value:$R[1386]={id:"39f8d54d-d067-4b7b-be84-16eb3d10dc2d",publicId:"dh5sftajtxwktaafqm751ahd"}},textColor:$R[1387]={value:$R[1388]={id:"kylc81do0kriy37t71qymiwa",rgb:$R[1389]={r:249,g:249,b:251},css:"249, 249, 251",invert:!0}},headingColor:$R[1390]={value:$R[1391]={id:"md4usoascirtn8zs9i57d9yd",rgb:$R[1392]={r:203,g:181,b:252},css:"203, 181, 252",invert:!0}},highlightColor:$R[1393]={value:$R[1394]={id:"l4wvkzcz4hzqd6soscv7r80y",rgb:$R[1395]={r:219,g:59,b:247},css:"219, 59, 247",invert:!0}},borderColor:$R[1396]={value:$R[1397]={id:"htqjbj7m2y6tasc92tewp9ju",rgb:$R[1398]={r:201,g:198,b:215},css:"201, 198, 215"}},id:$R[1399]={value:$R[1400]={content:""}},font:$R[1401]={value:$R[1402]={}}});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001000100100020"]=$R[1403]=$R[2]($R[1404]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001100100100020"]=$R[1405]=$R[2]($R[1406]={p:0,s:0,f:0});_$HY.r["np-publicMedia[{\"ids\":[\"pzdv4zfpd25z55cbjdp3mmpf\"]}]"]=$R[1407]=$R[2]($R[1408]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001200100100020"]=$R[1409]=$R[2]($R[1410]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001300100100020"]=$R[1411]=$R[2]($R[1412]={p:0,s:0,f:0});_$HY.r["np-publicMedia[{\"ids\":[\"b8rpb29i4zazfd4x5i641uw2\"]}]"]=$R[1413]=$R[2]($R[1414]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001400100100020"]=$R[1415]=$R[2]($R[1416]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001500100100020"]=$R[1417]=$R[2]($R[1418]={p:0,s:0,f:0});_$HY.r["np-publicMedia[{\"ids\":[\"dj5d512sy969hlpu475ilxaa\"]}]"]=$R[1419]=$R[2]($R[1420]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001600100100020"]=$R[1421]=$R[2]($R[1422]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001700100100020"]=$R[1423]=$R[2]($R[1424]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001800100100020"]=$R[1425]=$R[2]($R[1426]={p:0,s:0,f:0});_$HY.r["np-publicMedia[{\"ids\":[\"ggq30dg6fk8iq18364gzzus8\"]}]"]=$R[1427]=$R[2]($R[1428]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001900100100020"]=$R[1429]=$R[2]($R[1430]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a1000100100020"]=$R[1431]=$R[2]($R[1432]={p:0,s:0,f:0});_$HY.r["np-publicMedia[{\"ids\":[\"lnqvi7n5fb4xacauqp1e0n27\"],\"includeDataUrl\":true}]"]=$R[1433]=$R[2]($R[1434]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a1100100100020"]=$R[1435]=$R[2]($R[1436]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a1200100100020"]=$R[1437]=$R[2]($R[1438]={p:0,s:0,f:0});_$HY.r["np-publicMedia[{\"ids\":[\"ptpffx64hn1tcv2ys4irjbim\"]}]"]=$R[1439]=$R[2]($R[1440]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a1300100100020"]=$R[1441]=$R[2]($R[1442]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a1400100100020"]=$R[1443]=$R[2]($R[1444]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a1500100100020"]=$R[1445]=$R[2]($R[1446]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000100010010001"]=$R[1380];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000110010010001"]=$R[1380];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000130010010001"]=$R[1380];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000150010010001"]=$R[1380];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000170010010001"]=$R[1380];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001100100100020000400010001001000200001100010001001000200001000180010010001"]=$R[1380];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a100010010001"]=$R[1380];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a120010010001"]=$R[1380];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a140010010001"]=$R[1380];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a150010010001"]=$R[1380];_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100012001001000200001"]=$R[1447]=[];_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100014001001000200001"]=$R[1448]=[];_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100016001001000200001"]=$R[1449]=[];_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100019001001000200001"]=$R[1450]=[];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a13001001000200001"]=$R[1451]=[];$R[10]($R[1371],!0);_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100010001001000200000"]="\x3Cp>I'm very excited to announce the release of v0.68! It has been quite some time since the last blog post, atleast for me, unfortunately not a great time... My incurable disease (phantosmia) or lets call it what it is, my disability, has become even worse this year and constantly forces me to stay in my bed, for hours or whole days. Nitropage has been one of my few motivations in these burdensome times and helped me stand up again and again, after hefty phantosmia seizures. If you are suffering from something that takes away your purpose in life, there is nothing better than working on something that gives it back!\x3C/p>\n\x3Cp>But you are probably here to find out more about v0.68, so lets take a step back from philosophy and instead talk about the release! With a whooping 62 entries in the \x3Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://codeberg.org/nitropage/nitropage/src/branch/next/packages/nitropage/CHANGELOG.md#0-68-0\">Changelog\x3C/a>, this is definitely a big one. My focus has been to improve existing functionality and smooth out rough edges. But who would've guessed it, while working on it, I somehow kept finding more 😅. Further below you can find an overview of the most noteworthy highlights.\x3C/p>\n\x3Cp>In parallel, over the past months, I searched for new installation options, for users without terminal experience and discovered \x3Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://coolify.io/\">Coolify\x3C/a> and \x3Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://railway.com/\">Railway\x3C/a>. I am very happy to finally share these two options with you and am looking forward to see more Nitropage installations in the wild! You can learn more about Coolify and Railway in the \x3Ca href=\"/docs/getting-started\">Getting started\x3C/a> guide.\x3C/p>\n\x3Cp>Nitropage would not exist without the support, donations and great feedback from my family, friends and the community. Thank you wholeheartedly, to everyone who makes this project possible!\x3C/p>\n\x3Cp>I'd like to invite you to share your experience with the new version or installation methods, over the freshly created \x3Ca href=\"/contact/feedback\">feedback form\x3C/a>. Stay updated by joining the \x3Ca href=\"#newsletter\">newsletter\x3C/a> or following on \x3Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://iris.to/katywings\">Nostr\x3C/a>, \x3Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://bsky.app/profile/nitropage.bsky.social\">Bluesky\x3C/a> or \x3Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://twitter.com/nitropage\">Twitter\x3C/a>.\x3C/p>\n\x3Cp>Highlights of this release:\x3C/p>\n\x3Cul>\n\x3Cli>\x3Ca href=\"#keyboard-shortcuts--cancellable-drag-and-drop\">Keyboard shortcuts & Cancellable drag and drop\x3C/a>\x3C/li>\n\x3Cli>\x3Ca href=\"#overhauled-toolbar-save-indicator--warnings\">Overhauled toolbar, save indicator & warnings\x3C/a>\x3C/li>\n\x3Cli>\x3Ca href=\"#blueprint-categories\">Blueprint categories\x3C/a>\x3C/li>\n\x3Cli>\x3Ca href=\"#fine-grained-saving\">Fine-grained saving\x3C/a>\x3C/li>\n\x3Cli>\x3Ca href=\"#revisions-clean-up-tool\">Revisions clean up tool\x3C/a>\x3C/li>\n\x3Cli>\x3Ca href=\"#updated-dashboard-design--count-badges\">Updated dashboard design & count badges\x3C/a>\x3C/li>\n\x3Cli>\x3Ca href=\"#reworked-editor-state-synchronization\">Reworked editor state synchronization\x3C/a>\x3C/li>\n\x3C/ul>\n\x3Chr>\n";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100011001001000200000"]="\x3Ch2 id=\"keyboard-shortcuts--cancellable-drag-and-drop\">Keyboard shortcuts & Cancellable drag and drop\x3C/h2>\n\x3Cp>If anything, the existing keyboard shortcuts for saving and publishing have shown that there is an urgent need for further shortcuts. Lot's of common actions can now be triggered with handy shortcuts!\x3C/p>\n\x3Cp>One action I'd like to mention here in particular: Dragging an element on the page and in the sidebar can be cancelled by pressing the \x3Ccode>ESC\x3C/code> key. Started dragging the wrong element? Finally you can get out of that nasty situation 🥳.\x3C/p>\n";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100013001001000200000"]="\x3Ch2 id=\"overhauled-toolbar-save-indicator--warnings\">Overhauled toolbar, save indicator & warnings\x3C/h2>\n\x3Cp>The tools in the toolbar have been rearranged to the right side. This puts them closer to the sidebar and reduces how far you have to move your cursor between the two.\x3C/p>\n\x3Cp>Having no active tool is now indicated with the new \x3Ccode>Preview\x3C/code> button. It shows the page as closely like the final result, as possible. This preview functionality already existed in previous versions, but was not communicated to the user well. The new button should make it more obvious.\x3C/p>\n\x3Cp>If you have unsaved modifications or if the current revision isn't published yet, the \x3Ccode>Save\x3C/code> and \x3Ccode>Publish\x3C/code> buttons in the sidebar will show appropriate indicators, in v0.68. Furthermore if you try to leave the editor while having unsaved modifications, the editor now presents you with a dialog to save or discard your work.\x3C/p>\n\x3Cp>Lastly the design of the buttons in the sidebar header has been updated to follow the shape of the Nitropage logo.\x3C/p>\n";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100015001001000200000"]="\x3Ch2 id=\"blueprint-categories\">Blueprint categories\x3C/h2>\n\x3Cp>Finding the right blueprint during the creation of a new element has started to become difficult with the growing list of blueprints to choose from. v0.68 introduces filterable categories, helping you to find that blueprint you were looking for.\x3C/p>\n";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100017001001000200000"]="\x3Ch2 id=\"fine-grained-saving\">Fine-grained saving\x3C/h2>\n\x3Cp>The page saving/publishing story has been a though one in the past. Previously when you pressed on those save and publish buttons, it always overwrote everything, even the settings you didn't touch. While this might be acceptable for small websites maintained by single users, it meant that you could not work on multiple pages in parallel via browser tabs, as the work from one tab did overwrite your work from another one. It also meant that saving felt relatively slow in some situations.\x3C/p>\n\x3Cp>v0.68 introduces a completely reworked saving and publishing experience as it only overwrites settings and configurations that you actually modified. This specifically applies to:\x3C/p>\n\x3Cul>\n\x3Cli>Colors\x3C/li>\n\x3Cli>Fonts\x3C/li>\n\x3Cli>Presets\x3C/li>\n\x3Cli>Project blueprint defaults\x3C/li>\n\x3Cli>Project settings\x3C/li>\n\x3C/ul>\n\x3Cp>Changes directly made on the page elements themselves now always result in the creation of a new page revision. Keep in mind: If two users work on the same page, at the same time, their work will not be merged, instead the editor creates separate revisions for each user.\x3C/p>\n\x3Cp>The creation of new page revisions has also received some optimizations and tests on a page with ~100 elements have shown speed improvements of 4-6x!\x3C/p>\n";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100018001001000200000"]="\x3Ch2 id=\"revisions-clean-up-tool\">Revisions clean up tool\x3C/h2>\n\x3Cp>Now that saving the page always creates new revisions, this quickly can result in countless redundant revisions over time. To help you clean up unnecessary revisions, the editor received a cleanup dialog, that can easily delete revisions in bulk.\x3C/p>\n";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a10001001000200000"]="\x3Ch2 id=\"updated-dashboard-design--count-badges\">Updated dashboard design & count badges\x3C/h2>\n\x3Cp>The dashboard has stayed mostly untouched over the past versions and I wanted to change that with this release. So the header area now has a silky gradient with a soft touch of color. Plus the tabs are sticky, staying in view when you scroll down a large list of pages.\x3C/p>\n\x3Cp>With the introduction of the \x3Ccode>Published\x3C/code> column in the Pages and Layouts tabs, I finally saw the need to also show column titles. \x3C/p>\n\x3Cp>Throughout the dashboard and also in the editor, you can now find badges showing the count of the respective items (e.g. pages, layouts, elements, etc.).\x3C/p>\n";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a12001001000200000"]="\x3Ch2 id=\"reworked-editor-state-synchronization\">Reworked editor state synchronization\x3C/h2>\n\x3Cp>Keeping the viewport and the sidebar in sync, is harder than you might imagine. Both are two separate applications, running in parallel, with relatively independent lifecycles. Without any form of synchronization, if you were to change the text of some element in the viewport, this change would not be reflected in the sidebar. Understandably a smooth synchronization of the two is a crucial aspect of the whole editing experience.\x3C/p>\n\x3Cp>In v0.68 this synchronization has been completely reworked. The new approach reduces overall lag and results in the editing experience remaining smooth as the page is growing with more and more elements. The viewport now also is able to skip rerendering elements in many cases, e.g. after creating new revisions. Plus, all used layouts will be reloaded after you save your changes. This really deserves a quick demonstration: \x3C/p>\n";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a14001001000200000"]="\x3Cp>If you do not have a technical background you can stop reading here without worry, but I'd like to use the last part of this article to explain how the new synchronization actually works, on a deeper level.\x3C/p>\n\x3Cp>The editor viewport is rendered in an iframe, reason being because content in the iframe is shown responsively according to the size of the iframe, allowing you to preview how a page will e.g. look on mobile, without having to resize your whole browser window. But this iframe comes at a huge cost:\x3C/p>\n\x3Cp>It has a completely separate \x3Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://weizmangal.com/page-what-is-a-realm-in-js/\">realm\x3C/a> and is running an own \x3Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.solidjs.com/\">Solid\x3C/a> instance. Objects created in and out of the iframe are not the same, thus \x3Ccode>instanceof\x3C/code>-like operations do not work properly, if you transfer objects between the realms. In previous Nitropage versions, the application state has been kept in sync between the viewport and sidebar, by serializing the whole state of the page, sending it back and forth and \x3Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://docs.solidjs.com/reference/store-utilities/reconcile\">reconciling\x3C/a> it vice versa. That has been a very expensive operation, slowing down more and more relative to the size of the state (page). This circumstance largely negated the advantage of Solid's fine grained update architecture, so I have been searching for a better approach since quite some time.\x3C/p>\n";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a15001001000200000"]="\x3Ch3 id=\"rethinking-synchronization\">Rethinking synchronization\x3C/h3>\n\x3Cp>When I heard about Ryan Carniato's plan to get rid of cross-realm incompatible checks in Solid v2, I knew that my time has come to make Nitropage as smooth as it really should be as a Solid app.\x3C/p>\n\x3Cp>The first step was to backport the deletion of the cross-realm incompatible checks with a relatively straightforward Vite \x3Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://codeberg.org/nitropage/nitropage/src/commit/42cd908de5956b292ab5adde82db9e992f324f7b/packages/nitropage/src/build/solidRealmsPatch.ts#L29\">plugin\x3C/a>. With that settled, the door was finally opened to rethink the way the state is synchronized between the realms.\x3C/p>\n\x3Cp>My idea: \x3Cstrong>What if state operations could just run twice\x3C/strong>, once in the sidebar and another time in the viewport, no serialization or reconcile of the whole state necessary?! With this approach, the performance of the synchronization is no longer tied to the size of the state, but to the implementation of the mutation. As long as the mutation is relatively simple and touches just a few signals in the state, this is a huge win. If you need to replace the whole state, e.g. in Nitropage when the user restores an old page revision, then the old appoach via serialization and \x3Ccode>reconcile\x3C/code> is still perfectly sensible.\x3C/p>\n\x3Cp>Like everything in the life of an IT nerd person, the new approach does come with a tradeoff, a tradeoff in my opinion worth taking, but nonetheless a serious tradeoff:\x3C/p>\n\x3Cp>Can you tell me the result of the following code, assuming the new approach?\x3C/p>\n\x3Cpre>\x3Ccode>setState(produce((draft) => {\n draft.id = Math.random();\n}));\n\x3C/code>\x3C/pre>\n\x3Cp>As the mutation runs twice, \x3Ccode>Math.random()\x3C/code> also will run twice and you'll end up with different numbers in the sidebar and the viewport. Thus with the new approach, all state mutating code must be "pure":\x3C/p>\n\x3Cpre>\x3Ccode>const nextId = Math.random();\nsetState(produce((draft) => {\n draft.id = nextId;\n}));\n\x3C/code>\x3C/pre>\n\x3Cp>It also means that you have to use \x3Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://developer.mozilla.org/en-US/docs/Web/API/Window/structuredClone\">structuredClone\x3C/a> (or an equivalent), when assigning objects from outside the mutation:\x3C/p>\n\x3Cpre>\x3Ccode>const nextProduct = { name: "Lincoln Six Echo" }\nsetState(produce((draft) => {\n draft.warehouse[0] = structuredClone(nextProduct);\n}));\n\x3C/code>\x3C/pre>\n\x3Cp>Not cloning the object would result in broken reactivity, as the object can only be reactive in one store. Basically you do not want, to let your objects run loose in realms they do not belong 😉. Or to quote one of my favorite action movies about clones:\x3C/p>\n\x3Cblockquote>\n\x3Cp>"Yeah, I was wondering if you could get someone who can explain to me why my insurance policy is sitting downstairs on my fucking sofa!"\x3C/p>\n\x3C/blockquote>\n\x3Ch3 id=\"reconciliation-and-the-pain-of-changing-ids\">Reconciliation and the pain of changing ids\x3C/h3>\n\x3Cp>As mentioned earlier, some operations still are synchronized using the old approach using serialization and \x3Ccode>reconcile\x3C/code>. Putting it simply, reconcile merges the new state into the old one, and tries to identify related objects by key or by field (usually \x3Ccode>id\x3C/code>). Well... what if I tell you that in Nitropage element database id's are unique per page revision, so when you change the selected page revision in the editor, all elements will have different id's. Under normal circumstances this would lead to a rerender of the complete page, and in previous versions it indeed did.\x3C/p>\n\x3Cp>Over the lifetime of Nitropage I experimented with many ways to solve this issue, but I think I have finally found one that does not introduce a lot of complex back-and-forth id-mapping and is good enough for the time being. The trick: Helping Solid's \x3Ccode>reconcile\x3C/code> to identify the related elements in an extra iteration, before reconcile. Consider these states:\x3C/p>\n\x3Cpre>\x3Ccode>// Current state:\n{\n 1: { id: 1, name: "Chuck Norris" }\n}\n\n// Next state:\n{\n 2: { id: 2, name: "Still Chuck Norris", oldId: 1 }\n}\n\x3C/code>\x3C/pre>\n\x3Cp>Solid's \x3Ccode>reconcile\x3C/code> has no way to know that both records are related, but you can help it out, by doing something like this:\x3C/p>\n\x3Cpre>\x3Ccode>setState(produce(draft => {\n for(const item of Object.values(nextState)) {\n draft[item.id] = draft[item.oldId];\n }\n}))\nreconcile(...)\n\x3C/code>\x3C/pre>\n\x3Cp>Simpler than having to map id's back and forth all over the app, isn't it? If you want to see how this is actually implemented in Nitropage, you can find it here: \x3Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://codeberg.org/nitropage/nitropage/src/commit/42cd908de5956b292ab5adde82db9e992f324f7b/packages/nitropage/src/features/editor/lib/reconcile.ts#L4\">Source code\x3C/a>\x3C/p>\n\x3Chr>\n";$R[10]($R[1404],!0);$R[10]($R[1406],!0);$R[10]($R[1412],!0);$R[10]($R[1418],!0);$R[10]($R[1424],!0);$R[10]($R[1426],!0);$R[10]($R[1432],!0);$R[10]($R[1438],!0);$R[10]($R[1444],!0);$R[10]($R[1446],!0);$R[10]($R[1373],$R[1452]=[$R[1453]={id:"f451880d-06e1-481f-903a-842a8d43f260",updatedAt:$R[1454]=new Date("2024-08-05T13:11:33.525Z"),publicId:"l13n3yttfenncokml7y2rey7",driver:"local",file:"l13n3yttfenncokml7y2rey7.png",mime:"image/png",width:1920,height:1920,blurhash:"U3C44q-HIpwA$qj]ayf89YRj%3t7#_a#j[oM",focalPointX:null,focalPointY:null,color:"104, 8, 200",description:null,timestamp:1722863493,url:"/image/l13n3yttfenncokml7y2rey7.webp?ts=1722863493",rawUrl:"/uploads/media/l13n3yttfenncokml7y2rey7.png?ts=1722863493"}]);_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001200100100020000400010001001000200001100011001001000200000"]=$R[1452];$R[10]($R[1375],$R[1455]=[$R[1456]={id:"v10uyx0ghzxiylkluq99ztud",updatedAt:$R[1457]=new Date("2025-07-19T12:21:05.120Z"),publicId:"snnl4k7ve56xmr55duff6j9a",driver:"local",file:"snnl4k7ve56xmr55duff6j9a.JPG",mime:"image/jpeg",width:1260,height:1260,blurhash:"URH_Y=4n_NR*?a%Lt7%MShWCs:s.x[fkxaof",focalPointX:55,focalPointY:32,color:"200, 200, 184",description:"",timestamp:1752927665,url:"/image/snnl4k7ve56xmr55duff6j9a.webp?ts=1752927665",rawUrl:"/uploads/media/snnl4k7ve56xmr55duff6j9a.JPG?ts=1752927665"}]);_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001200100100020000400010001001000200001100011001001000200001"]=$R[1455];$R[10]($R[1377],!0);$R[10]($R[1408],$R[1458]=[$R[1459]={id:"pzdv4zfpd25z55cbjdp3mmpf",updatedAt:$R[1460]=new Date("2025-07-20T16:54:45.398Z"),publicId:"k3i14vsr8xulfh4p2pqef7so",driver:"local",file:"k3i14vsr8xulfh4p2pqef7so.mp4",mime:"video/mp4",width:null,height:null,blurhash:null,focalPointX:null,focalPointY:null,color:null,description:null,timestamp:1753030485,url:"/uploads/media/k3i14vsr8xulfh4p2pqef7so.mp4?ts=1753030485",rawUrl:"/uploads/media/k3i14vsr8xulfh4p2pqef7so.mp4?ts=1753030485"}]);_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100012001001000200000"]=$R[1458];$R[10]($R[1410],!0);$R[10]($R[1420],$R[1461]=[$R[1462]={id:"dj5d512sy969hlpu475ilxaa",updatedAt:$R[1463]=new Date("2025-07-20T15:33:31.599Z"),publicId:"mr573ouzvimesid9c3c6rt18",driver:"local",file:"mr573ouzvimesid9c3c6rt18.mp4",mime:"video/mp4",width:null,height:null,blurhash:null,focalPointX:null,focalPointY:null,color:null,description:null,timestamp:1753025611,url:"/uploads/media/mr573ouzvimesid9c3c6rt18.mp4?ts=1753025611",rawUrl:"/uploads/media/mr573ouzvimesid9c3c6rt18.mp4?ts=1753025611"}]);_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100016001001000200000"]=$R[1461];$R[10]($R[1422],!0);$R[10]($R[1428],$R[1464]=[$R[1465]={id:"ggq30dg6fk8iq18364gzzus8",updatedAt:$R[1466]=new Date("2025-07-20T15:42:19.630Z"),publicId:"qrtph67s565me2qntm0y6pnt",driver:"local",file:"qrtph67s565me2qntm0y6pnt.mp4",mime:"video/mp4",width:null,height:null,blurhash:null,focalPointX:null,focalPointY:null,color:null,description:null,timestamp:1753026139,url:"/uploads/media/qrtph67s565me2qntm0y6pnt.mp4?ts=1753026139",rawUrl:"/uploads/media/qrtph67s565me2qntm0y6pnt.mp4?ts=1753026139"}]);_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100019001001000200000"]=$R[1464];$R[10]($R[1430],!0);$R[10]($R[1440],$R[1467]=[$R[1468]={id:"ptpffx64hn1tcv2ys4irjbim",updatedAt:$R[1469]=new Date("2025-07-20T16:15:47.369Z"),publicId:"nrdm0y2rzk2745sgglz29ffe",driver:"local",file:"nrdm0y2rzk2745sgglz29ffe.mp4",mime:"video/mp4",width:null,height:null,blurhash:null,focalPointX:null,focalPointY:null,color:null,description:null,timestamp:1753028147,url:"/uploads/media/nrdm0y2rzk2745sgglz29ffe.mp4?ts=1753028147",rawUrl:"/uploads/media/nrdm0y2rzk2745sgglz29ffe.mp4?ts=1753028147"}]);_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a13001001000200000"]=$R[1467];$R[10]($R[1442],!0);$R[10]($R[1414],$R[1470]=[$R[1471]={id:"b8rpb29i4zazfd4x5i641uw2",updatedAt:$R[1472]=new Date("2025-07-20T15:19:25.924Z"),publicId:"y5z7ikyidm48jw0nosu5vm2m",driver:"local",file:"y5z7ikyidm48jw0nosu5vm2m.mp4",mime:"video/mp4",width:null,height:null,blurhash:null,focalPointX:null,focalPointY:null,color:null,description:null,timestamp:1753024765,url:"/uploads/media/y5z7ikyidm48jw0nosu5vm2m.mp4?ts=1753024765",rawUrl:"/uploads/media/y5z7ikyidm48jw0nosu5vm2m.mp4?ts=1753024765"}]);_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000110010010002000040001000100100020000110001000100100020000100014001001000200000"]=$R[1470];$R[10]($R[1416],!0);$R[10]($R[1434],$R[1473]=[$R[1474]={id:"lnqvi7n5fb4xacauqp1e0n27",updatedAt:$R[1475]=new Date("2025-07-15T09:04:57.412Z"),publicId:"yvb6mtu3gzsa60hlm80e7ebh",driver:"local",dataUrl:"data:image/jpeg;base64,/9j/2wBDACAWGBwYFCAcGhwkIiAmMFA0MCwsMGJGSjpQdGZ6eHJmcG6AkLicgIiuim5woNqirr7EztDOfJri8uDI8LjKzsb/2wBDASIkJDAqMF40NF7GhHCExsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsb/wAARCAAKAAoDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAgX/xAAZEAACAwEAAAAAAAAAAAAAAAAAAQIRISL/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AtSXQAt6CwP/Z",file:"yvb6mtu3gzsa60hlm80e7ebh.png",mime:"image/png",width:5760,height:5760,blurhash:"U9Ps#F~Xt8?u_3bEWBj]00IURjRj?baPofox",focalPointX:50,focalPointY:50,color:"248, 248, 248",description:"Dashboard listing pages of a project.",timestamp:1752570297,url:"/image/yvb6mtu3gzsa60hlm80e7ebh.webp?ts=1752570297",rawUrl:"/uploads/media/yvb6mtu3gzsa60hlm80e7ebh.png?ts=1752570297"}]);_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100011001001000200004000100010010002000011000100010010002000010001a11001001000200000"]=$R[1473];$R[10]($R[1436],!0);$R[10]($R[1345],$R[1476]={id:"wu1tt6xncwoakwsmzqagqavp",name:"Social Icon",blueprint:"m2vqbubuu61s8cu8l9z3cllu",data:$R[1477]={content:$R[1478]={override:!0,value:$R[1479]={content:"\x3Cspan class=\"block\">Lorem Ipsum\x3C/span>"}},onlyIconOnMobile:$R[1480]={override:!0,value:$R[1481]={content:!0}},size:$R[1482]={override:!0,value:$R[1483]={selected:"sm"}},textColor:$R[1484]={override:!0,value:$R[1485]={id:"eadhiqj1bihuiuaprcvffzja",rgb:$R[1486]={r:89,g:25,b:154},css:"89, 25, 154"}},bgColor:$R[1487]={override:!0,value:$R[1488]={css:"255, 255, 255",rgb:$R[1489]={r:255,g:255,b:255},id:"q7p73q09u3nncb2i9i661zyl",alpha:0.9}},bgColorHover:$R[1490]={override:!0,value:$R[1491]={css:"145, 71, 237",rgb:$R[1492]={r:145,g:71,b:237},id:"um4i61jwfapkvtrsvwif481w"}},borderRadius:$R[1493]={override:!0,value:$R[1494]={content:24}},style:$R[1495]={override:!0,value:$R[1496]={content:"padding: 0.6rem;"}},textColorHover:$R[1497]={value:$R[1498]={id:"q7p73q09u3nncb2i9i661zyl",rgb:$R[1499]={r:255,g:255,b:255},css:"255, 255, 255"},override:!0}}});$R[10]($R[1352],$R[1500]={id:"nvk2smr5lvmoemdxnhc48v60",name:"Header",blueprint:"m2vqbubuu61s8cu8l9z3cllu",data:$R[1501]={size:$R[1502]={override:!0,value:$R[1503]={selected:"sm"}},bgColor:$R[1504]={override:!0,value:$R[1505]={css:"145, 71, 237",rgb:$R[1506]={r:145,g:71,b:237},id:"um4i61jwfapkvtrsvwif481w"}},bgColorHover:$R[1507]={override:!0,value:$R[1508]={css:"162, 108, 244",rgb:$R[1509]={r:162,g:108,b:244},id:"iazu1ul5z0lq55rhon00je5w",invert:!0}},textColor:$R[1510]={value:$R[1511]={id:"q7p73q09u3nncb2i9i661zyl",rgb:$R[1512]={r:255,g:255,b:255},css:"255, 255, 255"},override:!0},textColorHover:$R[1513]={value:$R[1514]={id:"q7p73q09u3nncb2i9i661zyl",rgb:$R[1515]={r:255,g:255,b:255},css:"255, 255, 255"},override:!0}}});$R[10]($R[1363],$R[1516]={id:"eh8ty5fr63ygyv885x6j35jm",name:"WavesCirclesPattern",blueprint:"vigkf7auegf887geschdgb7w",data:$R[1517]={css:$R[1518]={override:!0,value:$R[1519]={content:"#element {\n --s: var(--v1);\n \n --_g: var(--s) var(--s) \n radial-gradient(var(--c1) 17%,var(--c2) 18% 35%,#0000 36.5%);\n background: \n calc(var(--s)/-4) calc(var(--s)/-4)/var(--_g),\n calc(var(--s)/ 4) calc(var(--s)/ 4)/var(--_g),\n radial-gradient(var(--c2) 34%,var(--c1) 36% 68%,#0000 70%) \n 0 0/calc(var(--s)/2) calc(var(--s)/2),\n repeating-linear-gradient(45deg,var(--c1) -12.5% 12.5%,var(--c2) 0 37.5%)\n 0 0/var(--s) var(--s);\n}"}}}});_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000001001001000200000120001000100100020"]=$R[1520]=$R[2]($R[1521]={p:0,s:0,f:0});_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000100010010002000040001000100100020"]=$R[1522]=$R[2]($R[1523]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a10000100010010000"]=$R[1476];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a10000110010010000"]=$R[1476];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a10000120010010000"]=$R[1476];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001a10000130010010000"]=$R[1476];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001000100100020000124000110010010000"]=$R[1500];_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001000100100020000125000110010010000"]=$R[1500];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001001000200004000100010010000"]=$R[1516];$R[10]($R[1343],!0);$R[10]($R[1347],!0);$R[10]($R[1354],!0);_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000001001001000200000120001000100100020000100010000"]="../blueprints/utilities/narrow.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001001000200000200010000"]="../blueprints/utilities/style.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000001001001000200000120001000100100020000100010001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001001000200000200010001000"]=!0;_$HY.r["np-preset[\"hpg8c77v4y34r26m7hzqlc1x\"]"]=$R[1524]=$R[2]($R[1525]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001200010001001000200001000100010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000100100100020000012000100010010002000010001000100100020"]=$R[1526]=$R[2]($R[1527]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000010010010002000001200010001001000200001000100010010001"]=$R[575];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001001000200004000100010010002000002000100010010001"]=$R[582];$R[10]($R[1521],!0);_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000100100100020000012000100010010002000010001000100100020000100010000"]="../blueprints/prose/heading.np.tsx";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000100100100020000012000100010010002000010001000100100020000100011000"]="../blueprints/forms/newsletterForm.np.tsx";_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000100100100020000012000100010010002000010001000100100020000100010001000"]=!0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000100100100020000012000100010010002000010001000100100020000100011001000"]=!0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000001001001000200000120001000100100020000100010001001000200001000100010010000"]=void 0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000001001001000200000120001000100100020000100010001001000200001000110010010000"]=void 0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000001001001000200000120001000100100020000100010001001000200001000100010010001"]=$R[1288];_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000001001001000200000120001000100100020000100010001001000200001000110010010001"]=$R[1327];$R[10]($R[1527],!0);$R[10]($R[1525],$R[1528]={id:"hpg8c77v4y34r26m7hzqlc1x",name:"HeaderContrast",blueprint:"vigkf7auegf887geschdgb7w",data:$R[1529]={style:$R[1530]={override:!0,value:$R[1531]={content:"box-shadow: inset 0 6.5rem 3rem -3rem var(--c1);"}},color1:$R[1532]={override:!0,value:$R[1533]={id:"uvkn6t296civjpn7bf3f00no",rgb:$R[1534]={r:247,g:245,b:255},css:"247, 245, 255"}}}});_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000100010010002000040001000100100020000020001000100100020"]=$R[1535]=$R[2]($R[1536]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001001000200004000100010010002000002000100010010000"]=$R[1528];$R[10]($R[1523],!0);_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001001000200000200010001001000200000200010000"]="../blueprints/utilities/container.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001001000200000200010001001000200000200010001000"]=!0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001001000200004000100010010002000002000100010010002000002000100010010000"]=void 0;_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000100010010002000040001000100100020000020001000100100020000020001000100100020"]=$R[1537]=$R[2]($R[1538]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001001000200004000100010010002000002000100010010002000002000100010010001"]=$R[648];$R[10]($R[1536],!0);_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001001000200000200010001001000200000200010001001000200001100010000"]="../blueprints/prose/heading.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001001000200000200010001001000200000200010001001000200001100011000"]="../blueprints/utilities/narrow.np.tsx";_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001001000200000200010001001000200000200010001001000200001100010001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001001000200000200010001001000200000200010001001000200001100011001000"]=!0;_$HY.r["np-preset[\"9019c128-a78a-45cc-9c7f-2cde07d3f3e8\"]"]=$R[1539]=$R[2]($R[1540]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001001000200004000100010010002000002000100010010002000002000100010010002000011000110010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001001000200004000100010010002000002000100010010002000002000100010010002000011000100010010001"]=$R[1288];_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001001000200004000100010010002000002000100010010002000002000100010010002000011000110010010001"]=$R[575];$R[10]($R[1540],$R[1541]={id:"9019c128-a78a-45cc-9c7f-2cde07d3f3e8",name:"PageTitle",blueprint:"zk7vp8rahquyz034aec4h2on",data:$R[1542]={level:$R[1543]={override:!0,value:$R[1544]={content:1}},size:$R[1545]={override:!0,value:$R[1546]={selected:"xl"}},textColor:$R[1547]={override:!0,value:$R[1548]={id:"un9vmcvyjwobci6rf8q5chj1",rgb:$R[1549]={r:59,g:7,b:100},css:"59, 7, 100"}},content:$R[1550]={value:$R[1551]={content:"\x3Cspan class=\"block\">Contact\x3C/span>"},override:!0}}});_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000100010010002000040001000100100020000020001000100100020000020001000100100020000110001100100100020"]=$R[1552]=$R[2]($R[1553]={p:0,s:0,f:0});_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001001000200004000100010010002000002000100010010002000002000100010010002000011000100010010000"]=$R[1541];$R[10]($R[1538],!0);_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000100010010002000040001000100100020000020001000100100020000020001000100100020000110001100100100020000100010000"]="../blueprints/utilities/style.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000100010010002000040001000100100020000020001000100100020000020001000100100020000110001100100100020000100010001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001001000200000200010001001000200000200010001001000200001100011001001000200001000100010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001001000200004000100010010002000002000100010010002000002000100010010002000011000110010010002000010001000100100020"]=$R[1554]=$R[2]($R[1555]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001001000200000200010001001000200000200010001001000200001100011001001000200001000100010010001"]=$R[582];$R[10]($R[1553],!0);_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000100010010002000040001000100100020000020001000100100020000020001000100100020000110001100100100020000100010001001000200000200010000"]="../blueprints/utilities/card.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000100010010002000040001000100100020000020001000100100020000020001000100100020000110001100100100020000100010001001000200000200010001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001001000200000200010001001000200000200010001001000200001100011001001000200001000100010010002000002000100010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001001000200004000100010010002000002000100010010002000002000100010010002000011000110010010002000010001000100100020000020001000100100020"]=$R[1556]=$R[2]($R[1557]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001001000200000200010001001000200000200010001001000200001100011001001000200001000100010010002000002000100010010001"]=$R[604];$R[10]($R[1555],!0);_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000100010010002000040001000100100020000020001000100100020000020001000100100020000110001100100100020000100010001001000200000200010001001000200000100010000"]="../blueprints/blog/postIntro.np.tsx";_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000100010010002000040001000100100020000020001000100100020000020001000100100020000110001100100100020000100010001001000200000200010001001000200000100010001000"]=!0;_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001001000200000200010001001000200000200010001001000200001100011001001000200001000100010010002000002000100010010002000001000100010010000"]=void 0;_$HY.r["0000000010000000010100000001000100001003002000100010001020000010200000000000100100020000100011001001000200000100010001001000200004000100010010002000002000100010010002000002000100010010002000011000110010010002000010001000100100020000020001000100100020000010001000100100020"]=$R[1558]=$R[2]($R[1559]={p:0,s:0,f:0});_$HY.r["000000001000000001010000000100010000100300200010001000102000001020000000000010010002000010001100100100020000010001000100100020000400010001001000200000200010001001000200000200010001001000200001100011001001000200001000100010010002000002000100010010002000001000100010010001"]=$R[660];$R[10]($R[1557],!0);_$HY.r["00000000100000000101000000010001000010030020001000100010200000102000000000001001000200001000110010010002000001000100010010002000040001000100100020000020001000100100020000020001000100100020000110001100100100020000100010001001000200000200010001001000200000100010001001000200000"]=$R[1455];$R[10]($R[1559],!0);
I'm very excited to announce the release of v0.68! It has been quite some time since the last blog post, atleast for me, unfortunately not a great time... My incurable disease (phantosmia) or lets call it what it is, my disability, has become even worse this year and constantly forces me to stay in my bed, for hours or whole days. Nitropage has been one of my few motivations in these burdensome times and helped me stand up again and again, after hefty phantosmia seizures. If you are suffering from something that takes away your purpose in life, there is nothing better than working on something that gives it back!
But you are probably here to find out more about v0.68, so lets take a step back from philosophy and instead talk about the release! With a whooping 62 entries in the Changelog, this is definitely a big one. My focus has been to improve existing functionality and smooth out rough edges. But who would've guessed it, while working on it, I somehow kept finding more 😅. Further below you can find an overview of the most noteworthy highlights.
In parallel, over the past months, I searched for new installation options, for users without terminal experience and discovered Coolify and Railway. I am very happy to finally share these two options with you and am looking forward to see more Nitropage installations in the wild! You can learn more about Coolify and Railway in the Getting started guide.
Nitropage would not exist without the support, donations and great feedback from my family, friends and the community. Thank you wholeheartedly, to everyone who makes this project possible!
I'd like to invite you to share your experience with the new version or installation methods, over the freshly created feedback form. Stay updated by joining the newsletter or following on Nostr, Bluesky or Twitter.
If anything, the existing keyboard shortcuts for saving and publishing have shown that there is an urgent need for further shortcuts. Lot's of common actions can now be triggered with handy shortcuts!
One action I'd like to mention here in particular: Dragging an element on the page and in the sidebar can be cancelled by pressing the ESC key. Started dragging the wrong element? Finally you can get out of that nasty situation 🥳.
Overhauled toolbar, save indicator & warnings
The tools in the toolbar have been rearranged to the right side. This puts them closer to the sidebar and reduces how far you have to move your cursor between the two.
Having no active tool is now indicated with the new Preview button. It shows the page as closely like the final result, as possible. This preview functionality already existed in previous versions, but was not communicated to the user well. The new button should make it more obvious.
If you have unsaved modifications or if the current revision isn't published yet, the Save and Publish buttons in the sidebar will show appropriate indicators, in v0.68. Furthermore if you try to leave the editor while having unsaved modifications, the editor now presents you with a dialog to save or discard your work.
Lastly the design of the buttons in the sidebar header has been updated to follow the shape of the Nitropage logo.
Blueprint categories
Finding the right blueprint during the creation of a new element has started to become difficult with the growing list of blueprints to choose from. v0.68 introduces filterable categories, helping you to find that blueprint you were looking for.
Fine-grained saving
The page saving/publishing story has been a though one in the past. Previously when you pressed on those save and publish buttons, it always overwrote everything, even the settings you didn't touch. While this might be acceptable for small websites maintained by single users, it meant that you could not work on multiple pages in parallel via browser tabs, as the work from one tab did overwrite your work from another one. It also meant that saving felt relatively slow in some situations.
v0.68 introduces a completely reworked saving and publishing experience as it only overwrites settings and configurations that you actually modified. This specifically applies to:
Colors
Fonts
Presets
Project blueprint defaults
Project settings
Changes directly made on the page elements themselves now always result in the creation of a new page revision. Keep in mind: If two users work on the same page, at the same time, their work will not be merged, instead the editor creates separate revisions for each user.
The creation of new page revisions has also received some optimizations and tests on a page with ~100 elements have shown speed improvements of 4-6x!
Revisions clean up tool
Now that saving the page always creates new revisions, this quickly can result in countless redundant revisions over time. To help you clean up unnecessary revisions, the editor received a cleanup dialog, that can easily delete revisions in bulk.
Updated dashboard design & count badges
The dashboard has stayed mostly untouched over the past versions and I wanted to change that with this release. So the header area now has a silky gradient with a soft touch of color. Plus the tabs are sticky, staying in view when you scroll down a large list of pages.
With the introduction of the Published column in the Pages and Layouts tabs, I finally saw the need to also show column titles.
Throughout the dashboard and also in the editor, you can now find badges showing the count of the respective items (e.g. pages, layouts, elements, etc.).
Pretty clean, isn't it 😎?
Reworked editor state synchronization
Keeping the viewport and the sidebar in sync, is harder than you might imagine. Both are two separate applications, running in parallel, with relatively independent lifecycles. Without any form of synchronization, if you were to change the text of some element in the viewport, this change would not be reflected in the sidebar. Understandably a smooth synchronization of the two is a crucial aspect of the whole editing experience.
In v0.68 this synchronization has been completely reworked. The new approach reduces overall lag and results in the editing experience remaining smooth as the page is growing with more and more elements. The viewport now also is able to skip rerendering elements in many cases, e.g. after creating new revisions. Plus, all used layouts will be reloaded after you save your changes. This really deserves a quick demonstration:
If you do not have a technical background you can stop reading here without worry, but I'd like to use the last part of this article to explain how the new synchronization actually works, on a deeper level.
The editor viewport is rendered in an iframe, reason being because content in the iframe is shown responsively according to the size of the iframe, allowing you to preview how a page will e.g. look on mobile, without having to resize your whole browser window. But this iframe comes at a huge cost:
It has a completely separate realm and is running an own Solid instance. Objects created in and out of the iframe are not the same, thus instanceof-like operations do not work properly, if you transfer objects between the realms. In previous Nitropage versions, the application state has been kept in sync between the viewport and sidebar, by serializing the whole state of the page, sending it back and forth and reconciling it vice versa. That has been a very expensive operation, slowing down more and more relative to the size of the state (page). This circumstance largely negated the advantage of Solid's fine grained update architecture, so I have been searching for a better approach since quite some time.
Rethinking synchronization
When I heard about Ryan Carniato's plan to get rid of cross-realm incompatible checks in Solid v2, I knew that my time has come to make Nitropage as smooth as it really should be as a Solid app.
The first step was to backport the deletion of the cross-realm incompatible checks with a relatively straightforward Vite plugin. With that settled, the door was finally opened to rethink the way the state is synchronized between the realms.
My idea: What if state operations could just run twice, once in the sidebar and another time in the viewport, no serialization or reconcile of the whole state necessary?! With this approach, the performance of the synchronization is no longer tied to the size of the state, but to the implementation of the mutation. As long as the mutation is relatively simple and touches just a few signals in the state, this is a huge win. If you need to replace the whole state, e.g. in Nitropage when the user restores an old page revision, then the old appoach via serialization and reconcile is still perfectly sensible.
Like everything in the life of an IT nerd person, the new approach does come with a tradeoff, a tradeoff in my opinion worth taking, but nonetheless a serious tradeoff:
Can you tell me the result of the following code, assuming the new approach?
As the mutation runs twice, Math.random() also will run twice and you'll end up with different numbers in the sidebar and the viewport. Thus with the new approach, all state mutating code must be "pure":
Not cloning the object would result in broken reactivity, as the object can only be reactive in one store. Basically you do not want, to let your objects run loose in realms they do not belong 😉. Or to quote one of my favorite action movies about clones:
"Yeah, I was wondering if you could get someone who can explain to me why my insurance policy is sitting downstairs on my fucking sofa!"
Reconciliation and the pain of changing ids
As mentioned earlier, some operations still are synchronized using the old approach using serialization and reconcile. Putting it simply, reconcile merges the new state into the old one, and tries to identify related objects by key or by field (usually id). Well... what if I tell you that in Nitropage element database id's are unique per page revision, so when you change the selected page revision in the editor, all elements will have different id's. Under normal circumstances this would lead to a rerender of the complete page, and in previous versions it indeed did.
Over the lifetime of Nitropage I experimented with many ways to solve this issue, but I think I have finally found one that does not introduce a lot of complex back-and-forth id-mapping and is good enough for the time being. The trick: Helping Solid's reconcile to identify the related elements in an extra iteration, before reconcile. Consider these states:
Simpler than having to map id's back and forth all over the app, isn't it? If you want to see how this is actually implemented in Nitropage, you can find it here: Source code
One small step for semver, one giant leap for website editing. Introducing SolidStart v1, S3 file storage, Markdown support, focal point image cropping, editor zoom, page load optimizations and a lot more.