mango-cms 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -0
- package/bin/mango +4 -0
- package/frontend-starter/README.md +8 -0
- package/frontend-starter/dist/_redirects +1 -0
- package/frontend-starter/dist/assets/index.00922bd5.js +99 -0
- package/frontend-starter/dist/assets/index.1781f175.css +1 -0
- package/frontend-starter/dist/favicon.png +0 -0
- package/frontend-starter/dist/index.html +53 -0
- package/frontend-starter/dist/index.js +66 -0
- package/frontend-starter/index.html +25 -0
- package/frontend-starter/index.js +197 -0
- package/frontend-starter/package-lock.json +5454 -0
- package/frontend-starter/package.json +40 -0
- package/frontend-starter/postcss.config.js +6 -0
- package/frontend-starter/public/_redirects +1 -0
- package/frontend-starter/public/favicon.png +0 -0
- package/frontend-starter/public/index.js +66 -0
- package/frontend-starter/src/App.vue +27 -0
- package/frontend-starter/src/components/layout/login.vue +212 -0
- package/frontend-starter/src/components/layout/modal.vue +113 -0
- package/frontend-starter/src/components/layout/spinner.vue +17 -0
- package/frontend-starter/src/components/pages/404.vue +28 -0
- package/frontend-starter/src/components/pages/home.vue +74 -0
- package/frontend-starter/src/components/partials/button.vue +31 -0
- package/frontend-starter/src/helpers/Mango.vue +455 -0
- package/frontend-starter/src/helpers/breakpoints.js +34 -0
- package/frontend-starter/src/helpers/darkMode.js +38 -0
- package/frontend-starter/src/helpers/email.js +32 -0
- package/frontend-starter/src/helpers/formatPhone.js +18 -0
- package/frontend-starter/src/helpers/localDB.js +315 -0
- package/frontend-starter/src/helpers/mango.js +338 -0
- package/frontend-starter/src/helpers/model.js +9 -0
- package/frontend-starter/src/helpers/multiSelect.vue +252 -0
- package/frontend-starter/src/helpers/pills.vue +75 -0
- package/frontend-starter/src/helpers/reconnecting-websocket.js +357 -0
- package/frontend-starter/src/helpers/uploadFile.vue +157 -0
- package/frontend-starter/src/helpers/uploadFiles.vue +100 -0
- package/frontend-starter/src/helpers/uploadImages.vue +89 -0
- package/frontend-starter/src/helpers/user.js +40 -0
- package/frontend-starter/src/index.css +281 -0
- package/frontend-starter/src/main.js +145 -0
- package/frontend-starter/tailwind.config.js +46 -0
- package/frontend-starter/vite.config.js +10 -0
- package/frontend-starter/yarn.lock +3380 -0
- package/mango-cms-0.0.13.tgz +0 -0
- package/package.json +24 -0
- package/src/cli.js +93 -0
- package/src/default-config/automation/index.js +37 -0
- package/src/default-config/collections/examples.js +60 -0
- package/src/default-config/config/.collections.json +1 -0
- package/src/default-config/config/globalFields.js +15 -0
- package/src/default-config/config/settings.json +23 -0
- package/src/default-config/config/statuses.js +0 -0
- package/src/default-config/config/users.js +35 -0
- package/src/default-config/endpoints/index.js +19 -0
- package/src/default-config/fields/vimeo.js +36 -0
- package/src/default-config/hooks/test.js +5 -0
- package/src/default-config/plugins/mango-stand/index.js +206 -0
- package/src/main.js +278 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=Kanit:wght@400;700&display=swap";input[data-v-132e2677]{width:100%;border-radius:.25rem;border-width:1px;padding:.5rem .75rem;outline-color:#60a5fa}.dark input[data-v-132e2677]{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity));background-color:transparent}.dark input[data-v-132e2677]::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(75 85 99 / var(--tw-placeholder-opacity))}.dark input[data-v-132e2677]:-ms-input-placeholder{--tw-placeholder-opacity: 1;color:rgb(75 85 99 / var(--tw-placeholder-opacity))}.dark input[data-v-132e2677]::placeholder{--tw-placeholder-opacity: 1;color:rgb(75 85 99 / var(--tw-placeholder-opacity))}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Kanit}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Inconsolata;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-pan-x: var(--tw-empty, );--tw-pan-y: var(--tw-empty, );--tw-pinch-zoom: var(--tw-empty, );--tw-touch-action: var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom);--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity));--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: var(--tw-empty, );--tw-brightness: var(--tw-empty, );--tw-contrast: var(--tw-empty, );--tw-grayscale: var(--tw-empty, );--tw-hue-rotate: var(--tw-empty, );--tw-invert: var(--tw-empty, );--tw-saturate: var(--tw-empty, );--tw-sepia: var(--tw-empty, );--tw-drop-shadow: var(--tw-empty, );--tw-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);--tw-backdrop-blur: var(--tw-empty, );--tw-backdrop-brightness: var(--tw-empty, );--tw-backdrop-contrast: var(--tw-empty, );--tw-backdrop-grayscale: var(--tw-empty, );--tw-backdrop-hue-rotate: var(--tw-empty, );--tw-backdrop-invert: var(--tw-empty, );--tw-backdrop-opacity: var(--tw-empty, );--tw-backdrop-saturate: var(--tw-empty, );--tw-backdrop-sepia: var(--tw-empty, );--tw-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.container{width:100%}@media (min-width: 390px){.container{max-width:390px}}@media (min-width: 425px){.container{max-width:425px}}@media (min-width: 475px){.container{max-width:475px}}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}@media (min-width: 1750px){.container{max-width:1750px}}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.inset-0{top:0px;right:0px;bottom:0px;left:0px}.top-0{top:0px}.right-0{right:0px}.-top-1{top:-.25rem}.-left-1{left:-.25rem}.-top-2{top:-.5rem}.-right-2{right:-.5rem}.bottom-0{bottom:0px}.z-\[100\]{z-index:100}.z-\[60\]{z-index:60}.z-50{z-index:50}.z-10{z-index:10}.z-20{z-index:20}.col-span-4{grid-column:span 4 / span 4}.\!m-0{margin:0!important}.m-2{margin:.5rem}.m-4{margin:1rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.mb-4{margin-bottom:1rem}.mt-6{margin-top:1.5rem}.mt-2{margin-top:.5rem}.ml-4{margin-left:1rem}.mr-4{margin-right:1rem}.mt-4{margin-top:1rem}.mt-16{margin-top:4rem}.mt-8{margin-top:2rem}.mb-8{margin-bottom:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.hidden{display:none}.\!hidden{display:none!important}.aspect-video{aspect-ratio:16 / 9}.aspect-square{aspect-ratio:1 / 1}.h-screen{height:100vh}.h-24{height:6rem}.h-full{height:100%}.h-4{height:1rem}.h-14{height:3.5rem}.h-8{height:2rem}.h-16{height:4rem}.h-6{height:1.5rem}.max-h-\[850px\]{max-height:850px}.max-h-\[75vh\]{max-height:75vh}.max-h-32{max-height:8rem}.min-h-screen{min-height:100vh}.min-h-full{min-height:100%}.w-full{width:100%}.w-4{width:1rem}.w-32{width:8rem}.w-16{width:4rem}.w-10{width:2.5rem}.w-28{width:7rem}.w-8{width:2rem}.w-6{width:1.5rem}.max-w-md{max-width:28rem}.max-w-32{max-width:8rem}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.origin-top-right{transform-origin:top right}.translate-x-full{--tw-translate-x: 100%;transform:var(--tw-transform)}.scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:var(--tw-transform)}.transform-gpu{--tw-transform: translate3d(var(--tw-translate-x), var(--tw-translate-y), 0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@-webkit-keyframes spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.touch-pan-x{--tw-pan-x: pan-x;touch-action:var(--tw-touch-action)}.touch-pan-y{--tw-pan-y: pan-y;touch-action:var(--tw-touch-action)}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2rem * var(--tw-space-x-reverse));margin-left:calc(2rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2.5rem * var(--tw-space-x-reverse));margin-left:calc(2.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.self-end{align-self:flex-end}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.overscroll-none{-ms-scroll-chaining:none;overscroll-behavior:none}.overscroll-y-none{overscroll-behavior-y:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-full{border-radius:9999px}.rounded-xl{border-radius:.75rem}.rounded-l-full{border-top-left-radius:9999px;border-bottom-left-radius:9999px}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.border{border-width:1px}.border-4{border-width:4px}.border-2{border-width:2px}.border-8{border-width:8px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-b{border-bottom-width:1px}.border-b-4{border-bottom-width:4px}.border-t{border-top-width:1px}.border-b-2{border-bottom-width:2px}.border-rdii-blue-50{--tw-border-opacity: 1;border-color:rgb(231 233 251 / var(--tw-border-opacity))}.border-rdii-blue-100{--tw-border-opacity: 1;border-color:rgb(195 199 243 / var(--tw-border-opacity))}.border-rdii-blue-200{--tw-border-opacity: 1;border-color:rgb(153 163 235 / var(--tw-border-opacity))}.border-rdii-blue-300{--tw-border-opacity: 1;border-color:rgb(108 127 228 / var(--tw-border-opacity))}.border-rdii-blue-400{--tw-border-opacity: 1;border-color:rgb(71 98 222 / var(--tw-border-opacity))}.border-rdii-blue-500{--tw-border-opacity: 1;border-color:rgb(11 69 215 / var(--tw-border-opacity))}.border-rdii-blue-600{--tw-border-opacity: 1;border-color:rgb(0 61 204 / var(--tw-border-opacity))}.border-rdii-blue-700{--tw-border-opacity: 1;border-color:rgb(0 51 192 / var(--tw-border-opacity))}.border-rdii-blue-800{--tw-border-opacity: 1;border-color:rgb(0 39 181 / var(--tw-border-opacity))}.border-rdii-blue-900{border-color:#000fa}.border-red-50{--tw-border-opacity: 1;border-color:rgb(254 242 242 / var(--tw-border-opacity))}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity))}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity))}.border-red-600{--tw-border-opacity: 1;border-color:rgb(220 38 38 / var(--tw-border-opacity))}.border-red-700{--tw-border-opacity: 1;border-color:rgb(185 28 28 / var(--tw-border-opacity))}.border-red-800{--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity))}.border-red-900{--tw-border-opacity: 1;border-color:rgb(127 29 29 / var(--tw-border-opacity))}.border-sky-50{--tw-border-opacity: 1;border-color:rgb(240 249 255 / var(--tw-border-opacity))}.border-sky-100{--tw-border-opacity: 1;border-color:rgb(224 242 254 / var(--tw-border-opacity))}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity))}.border-sky-300{--tw-border-opacity: 1;border-color:rgb(125 211 252 / var(--tw-border-opacity))}.border-sky-400{--tw-border-opacity: 1;border-color:rgb(56 189 248 / var(--tw-border-opacity))}.border-sky-500{--tw-border-opacity: 1;border-color:rgb(14 165 233 / var(--tw-border-opacity))}.border-sky-600{--tw-border-opacity: 1;border-color:rgb(2 132 199 / var(--tw-border-opacity))}.border-sky-700{--tw-border-opacity: 1;border-color:rgb(3 105 161 / var(--tw-border-opacity))}.border-sky-800{--tw-border-opacity: 1;border-color:rgb(7 89 133 / var(--tw-border-opacity))}.border-sky-900{--tw-border-opacity: 1;border-color:rgb(12 74 110 / var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.border-inherit{border-color:inherit}.border-t-family-at-church-orange{--tw-border-opacity: 1;border-top-color:rgb(211 118 41 / var(--tw-border-opacity))}.border-t-white\/50{border-top-color:#ffffff80}.bg-rdii-blue-50{--tw-bg-opacity: 1;background-color:rgb(231 233 251 / var(--tw-bg-opacity))}.bg-rdii-blue-100{--tw-bg-opacity: 1;background-color:rgb(195 199 243 / var(--tw-bg-opacity))}.bg-rdii-blue-200{--tw-bg-opacity: 1;background-color:rgb(153 163 235 / var(--tw-bg-opacity))}.bg-rdii-blue-300{--tw-bg-opacity: 1;background-color:rgb(108 127 228 / var(--tw-bg-opacity))}.bg-rdii-blue-400{--tw-bg-opacity: 1;background-color:rgb(71 98 222 / var(--tw-bg-opacity))}.bg-rdii-blue-500{--tw-bg-opacity: 1;background-color:rgb(11 69 215 / var(--tw-bg-opacity))}.bg-rdii-blue-600{--tw-bg-opacity: 1;background-color:rgb(0 61 204 / var(--tw-bg-opacity))}.bg-rdii-blue-700{--tw-bg-opacity: 1;background-color:rgb(0 51 192 / var(--tw-bg-opacity))}.bg-rdii-blue-800{--tw-bg-opacity: 1;background-color:rgb(0 39 181 / var(--tw-bg-opacity))}.bg-rdii-blue-900{background-color:#000fa}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity))}.bg-red-200{--tw-bg-opacity: 1;background-color:rgb(254 202 202 / var(--tw-bg-opacity))}.bg-red-300{--tw-bg-opacity: 1;background-color:rgb(252 165 165 / var(--tw-bg-opacity))}.bg-red-400{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.bg-red-700{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity))}.bg-red-800{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity))}.bg-red-900{--tw-bg-opacity: 1;background-color:rgb(127 29 29 / var(--tw-bg-opacity))}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity))}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity))}.bg-sky-200{--tw-bg-opacity: 1;background-color:rgb(186 230 253 / var(--tw-bg-opacity))}.bg-sky-300{--tw-bg-opacity: 1;background-color:rgb(125 211 252 / var(--tw-bg-opacity))}.bg-sky-400{--tw-bg-opacity: 1;background-color:rgb(56 189 248 / var(--tw-bg-opacity))}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity))}.bg-sky-600{--tw-bg-opacity: 1;background-color:rgb(2 132 199 / var(--tw-bg-opacity))}.bg-sky-700{--tw-bg-opacity: 1;background-color:rgb(3 105 161 / var(--tw-bg-opacity))}.bg-sky-800{--tw-bg-opacity: 1;background-color:rgb(7 89 133 / var(--tw-bg-opacity))}.bg-sky-900{--tw-bg-opacity: 1;background-color:rgb(12 74 110 / var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-black\/25{background-color:#00000040}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-black\/50{background-color:#00000080}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity))}.bg-family-at-church-orange{--tw-bg-opacity: 1;background-color:rgb(211 118 41 / var(--tw-bg-opacity))}.bg-gray-800\/50{background-color:#1f293780}.bg-transparent{background-color:transparent}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.bg-white\/90{background-color:#ffffffe6}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-red-50{--tw-gradient-from: #fef2f2;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(254 242 242 / 0))}.from-sky-50{--tw-gradient-from: #f0f9ff;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(240 249 255 / 0))}.from-rdii-blue-50{--tw-gradient-from: #e7e9fb;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(231 233 251 / 0))}.from-gray-200{--tw-gradient-from: #e5e7eb;--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(229 231 235 / 0))}.bg-cover{background-size:cover}.bg-contain{background-size:contain}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.p-4{padding:1rem}.p-8{padding:2rem}.p-2{padding:.5rem}.p-12{padding:3rem}.\!p-0{padding:0!important}.px-3{padding-left:.75rem;padding-right:.75rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pl-2{padding-left:.5rem}.pt-6{padding-top:1.5rem}.pt-16{padding-top:4rem}.pb-16{padding-bottom:4rem}.pb-12{padding-bottom:3rem}.pb-\[4px\]{padding-bottom:4px}.text-left{text-align:left}.text-center{text-align:center}.font-sans{font-family:Kanit}.font-mono{font-family:Inconsolata}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-2xs{font-size:.6rem}.text-8xl{font-size:6rem;line-height:1}.text-4xl{font-size:2.25rem;line-height:2.5rem}.font-semibold{font-weight:600}.font-bold{font-weight:700}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.tracking-widest{letter-spacing:.1em}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-gray-500\/50{color:#6b728080}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-white\/60{color:#fff9}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.underline{text-decoration:underline}.opacity-40{opacity:.4}.shadow-card{--tw-shadow: 0 8px 40px 0 rgba(0, 0, 0, .1);--tw-shadow-colored: 0 8px 40px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-blue-400{outline-color:#60a5fa}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-black{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity: .05}.filter{filter:var(--tw-filter)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-filter);backdrop-filter:var(--tw-backdrop-filter)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-filter);backdrop-filter:var(--tw-backdrop-filter)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-500{transition-duration:.5s}.article a{cursor:pointer;font-weight:600}.article a:hover{text-decoration:underline}.article p,.article div,.article ul,.article ol,.article h2,.article h3,.article h4,.article blockquote{margin-top:1rem;overflow-wrap:break-word;font-size:.875rem;line-height:1.625}.article li{margin-top:.5rem}.article h2{font-size:1rem;line-height:1.5rem;font-weight:600}.article>:first-child,.article>:first-child>:first-child,.article>:first-child>:first-child>:first-child{margin-top:0!important}.article>.ql-container>.ql-editor>:first-child,.article>.ql-container>.ql-editor>:first-child>:first-child,.article>.ql-container>.ql-editor>:first-child>:first-child>:first-child{margin-top:0!important}.article blockquote{padding-left:2rem;padding-right:2rem;font-style:italic;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}@media (min-width: 768px){.article p,.article div,.article ul,.article ol,.article h2,.article h3,.article h4,.article blockquote{margin-top:2rem}.article p,.article div,.article ul,.article ol,.article h2,.article h3,.article h4,.article blockquote{font-size:1rem;line-height:1.5rem}.article p,.article div,.article ul,.article ol,.article h2,.article h3,.article h4,.article blockquote{line-height:1.625}.article li{margin-top:1rem}.article h2{font-size:1.5rem;line-height:2rem}.article h2{font-weight:600}}.space-1{padding:1rem}@media (min-width: 768px){.space-1{padding:1.5rem}}@media (min-width: 1280px){.space-1{padding:2rem}}.book-article a{cursor:pointer;font-weight:600}.book-article a:hover{text-decoration:underline}@media (min-width: 768px){.book-article p,.book-article div,.book-article ul,.book-article ol,.book-article h2,.book-article h3,.book-article h4,.book-article blockquote{margin-top:4rem}.book-article li{margin-top:2rem}.book-article h2{font-size:3rem;line-height:1}.book-article h2{font-weight:600}}.book-article p,.book-article div,.book-article ul,.book-article ol,.book-article h2,.book-article h3,.book-article h4,.book-article blockquote{margin-top:2rem}.book-article ul{list-style-type:disc}.book-article li{margin-top:1rem}.book-article h2{font-size:1.5rem;line-height:2rem;font-weight:700}.book-article>:first-child,.book-article>:first-child>:first-child,.book-article>:first-child>:first-child>:first-child{margin-top:0!important}.book-article>.ql-container>.ql-editor>:first-child,.book-article>.ql-container>.ql-editor>:first-child>:first-child,.book-article>.ql-container>.ql-editor>:first-child>:first-child>:first-child{margin-top:0!important}.book-article blockquote{padding-left:2rem;padding-right:2rem;font-style:italic;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.ql-clipboard,.ql-tooltip{display:none!important}.ql-editor{outline:none!important}table.schedule{margin-top:1rem;margin-bottom:1rem;width:100%;table-layout:auto;border-collapse:collapse;border-top-width:1px;border-bottom-width:1px;font-size:.75rem;line-height:1rem}.dark table.schedule{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity));--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}table.schedule tr:nth-child(odd){--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.dark table.schedule tr:nth-child(odd){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}table.schedule td{margin:0;padding:.5rem}@media (min-width: 768px){table.schedule{margin-top:2rem;margin-bottom:2rem}table.schedule{font-size:.875rem;line-height:1.25rem}table.schedule td{margin:0}table.schedule td{padding:1rem}}.article-xs p,.article-xs div,.article-xs ul,.article-xs ol,.article-xs h2,.article-xs h3,.article-xs h4,.article-xs blockquote{margin-top:.5rem;font-size:.75rem;line-height:1.625}.article-xs li{margin-top:.25rem}.article-xs h2{font-size:.875rem;line-height:1.25rem}.article-sm p,.article-sm div,.article-sm ul,.article-sm ol,.article-sm h2,.article-sm h3,.article-sm h4,.article-sm blockquote{margin-top:1rem;font-size:.875rem;line-height:1.625}.article-sm li{margin-top:.5rem}.article-sm h2{font-size:1rem;line-height:1.5rem}.article-md p,.article-md div,.article-md ul,.article-md ol,.article-md h2,.article-md h3,.article-md h4,.article-md blockquote{margin-top:1rem;font-size:1rem;line-height:1.625}.article-md li{margin-top:.5rem}.article-md h2{font-size:1.5rem;line-height:2rem}.video-container,.video-container iframe{aspect-ratio:16 / 9;height:auto!important;width:100%}.placeholder\:text-gray-400::-moz-placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.placeholder\:text-gray-400:-ms-input-placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.placeholder\:text-gray-400::placeholder{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.hover\:-translate-y-2:hover{--tw-translate-y: -.5rem;transform:var(--tw-transform)}.hover\:bg-gray-400:hover{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity))}.hover\:underline:hover{text-decoration:underline}.focus\:px-3:focus{padding-left:.75rem;padding-right:.75rem}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.group:hover .group-hover\:flex{display:flex}.group:hover .group-hover\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.group:hover .group-hover\:underline{text-decoration:underline}.dark .dark\:divide-gray-700>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(55 65 81 / var(--tw-divide-opacity))}.dark .dark\:border{border-width:1px}.dark .dark\:border-b-4{border-bottom-width:4px}.dark .dark\:border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.dark .dark\:border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity))}.dark .dark\:border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.dark .dark\:border-gray-400{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity))}.dark .dark\:border-white\/70{border-color:#ffffffb3}.dark .dark\:bg-transparent{background-color:transparent}.dark .dark\:bg-gray-800\/50{background-color:#1f293780}.dark .dark\:bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark .dark\:bg-family-at-church-orange\/80{background-color:#d37629cc}.dark .dark\:bg-black\/60{background-color:#0009}.dark .dark\:bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.dark .dark\:bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark .dark\:text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.dark .dark\:text-white\/75{color:#ffffffbf}.dark .dark\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark .dark\:text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.dark .dark\:placeholder-gray-600::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(75 85 99 / var(--tw-placeholder-opacity))}.dark .dark\:placeholder-gray-600:-ms-input-placeholder{--tw-placeholder-opacity: 1;color:rgb(75 85 99 / var(--tw-placeholder-opacity))}.dark .dark\:placeholder-gray-600::placeholder{--tw-placeholder-opacity: 1;color:rgb(75 85 99 / var(--tw-placeholder-opacity))}.dark .dark\:outline-blue-500\/40{outline-color:#3b82f666}.dark .dark\:placeholder\:text-white\/30::-moz-placeholder{color:#ffffff4d}.dark .dark\:placeholder\:text-white\/30:-ms-input-placeholder{color:#ffffff4d}.dark .dark\:placeholder\:text-white\/30::placeholder{color:#ffffff4d}.dark .focus-visible\:dark\:outline-blue-500\/40:focus-visible{outline-color:#3b82f666}@media (min-width: 640px){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:max-w-sm{max-width:24rem}.sm\:items-center{align-items:center}.sm\:space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.sm\:p-4{padding:1rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-9xl{font-size:8rem;line-height:1}}@media (min-width: 768px){.md\:space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.md\:p-8{padding:2rem}.md\:px-16{padding-left:4rem;padding-right:4rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-10xl{font-size:10rem}.md\:backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-filter);backdrop-filter:var(--tw-backdrop-filter)}}@media (min-width: 1024px){.lg\:block{display:block}.lg\:hidden{display:none}.lg\:text-base{font-size:1rem;line-height:1.5rem}}.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px #00000013,0 1px 2px #00000013,1px 2px 4px #00000013,1px 3px 8px #00000013,2px 4px 16px #00000013;pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:.5em 0 0;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px #7066e080}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px #dc374180}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px #6e788180}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px #6496c880}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px #6496c880}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:0 0;box-shadow:inset 0 1px 1px #0000000f,0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px #0000000f,0 0 0 3px #6496c880}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:0 0;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:0 0;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message:before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:0 0;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-no-war{display:flex;position:fixed;z-index:1061;top:0;left:0;align-items:center;justify-content:center;width:100%;height:3.375em;background:#20232a;color:#fff;text-align:center}.swal2-no-war a{color:#61dafb;text-decoration:none}.swal2-no-war a:hover{text-decoration:underline}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotate(2deg)}33%{transform:translateY(0) rotate(-2deg)}66%{transform:translateY(.3125em) rotate(2deg)}to{transform:translateY(0) rotate(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotate(2deg)}33%{transform:translateY(0) rotate(-2deg)}66%{transform:translateY(.3125em) rotate(2deg)}to{transform:translateY(0) rotate(0)}}@-webkit-keyframes swal2-toast-hide{to{transform:rotate(1deg);opacity:0}}@keyframes swal2-toast-hide{to{transform:rotate(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}to{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}to{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}to{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}to{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}to{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}to{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}to{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}to{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}to{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}to{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}to{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}to{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}to{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}to{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}to{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}to{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}to{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}to{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}to{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}to{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotate(45deg);opacity:0}25%{transform:rotate(-25deg);opacity:.4}50%{transform:rotate(15deg);opacity:.8}75%{transform:rotate(-5deg);opacity:1}to{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotate(45deg);opacity:0}25%{transform:rotate(-25deg);opacity:.4}50%{transform:rotate(15deg);opacity:.8}75%{transform:rotate(-5deg);opacity:1}to{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px #0006}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translate(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translate(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}
|
|
Binary file
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
|
|
5
|
+
<meta charset="UTF-8" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui" />
|
|
7
|
+
|
|
8
|
+
<!-- Inject Meta -->
|
|
9
|
+
|
|
10
|
+
<title>RDII Trax</title>
|
|
11
|
+
<meta property='og:description' name="description" content="Helping you keep your eyes on the road to success.">
|
|
12
|
+
|
|
13
|
+
<link rel="apple-touch-icon" href="https://rdii.us/favicon.png">
|
|
14
|
+
<link rel="icon" href="https://rdii.us/favicon.png" />
|
|
15
|
+
<!-- <link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.15.4/css/all.css" integrity="sha384-rqn26AG5Pj86AF4SO72RK5fyefcQ/x32DNQfChxWvbXIyXFePlEktwD18fEz+kQU" crossorigin="anonymous"> -->
|
|
16
|
+
|
|
17
|
+
<noscript id="deferred-styles">
|
|
18
|
+
<link href="https://fonts.googleapis.com/css2?family=Inconsolata:wght@200;300;400;600&family=Kanit:wght@400;700&display=swap" rel="stylesheet">
|
|
19
|
+
</noscript>
|
|
20
|
+
|
|
21
|
+
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBovf2prnxFFTi83_0CpmYfJveXiFnMgcA&libraries=places"></script>
|
|
22
|
+
|
|
23
|
+
<script type="module" crossorigin src="/assets/index.00922bd5.js"></script>
|
|
24
|
+
<link rel="stylesheet" href="/assets/index.1781f175.css">
|
|
25
|
+
</head>
|
|
26
|
+
<body class="w-full overflow-x-hidden overscroll-y-none touch-pan-x touch-pan-y">
|
|
27
|
+
<div id="app" class="font-sans"><div style="opacity: 0;"><!--SSR--></div></div>
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
<!-- Main Entry Provision -->
|
|
31
|
+
<script>
|
|
32
|
+
window.mainEntry = null;
|
|
33
|
+
window.user = null;
|
|
34
|
+
window.rdii = null;
|
|
35
|
+
</script>
|
|
36
|
+
|
|
37
|
+
<!-- This guy loads all my css inside the #deferred-styles element -->
|
|
38
|
+
<script>
|
|
39
|
+
var loadDeferredStyles = function() {
|
|
40
|
+
var addStylesNode = document.getElementById("deferred-styles");
|
|
41
|
+
var replacement = document.createElement("div");
|
|
42
|
+
replacement.innerHTML = addStylesNode.textContent;
|
|
43
|
+
document.body.appendChild(replacement)
|
|
44
|
+
addStylesNode.parentElement.removeChild(addStylesNode);
|
|
45
|
+
};
|
|
46
|
+
var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame ||
|
|
47
|
+
window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
|
|
48
|
+
if (raf) raf(function() { window.setTimeout(loadDeferredStyles, 0); });
|
|
49
|
+
else window.addEventListener('load', loadDeferredStyles);
|
|
50
|
+
</script>
|
|
51
|
+
|
|
52
|
+
</body>
|
|
53
|
+
</html>
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
const express = require('express');
|
|
2
|
+
const fs = require('fs')
|
|
3
|
+
const axios = require('axios')
|
|
4
|
+
const settings = require('../../config/config/settings.json')
|
|
5
|
+
const collections = require('../../config/collections.json')
|
|
6
|
+
|
|
7
|
+
let port = 1337
|
|
8
|
+
let metaComment = '<!-- Inject Meta -->'
|
|
9
|
+
let appPlaceholder = '<!--SSR-->'
|
|
10
|
+
|
|
11
|
+
let serve = async function (req, res) {
|
|
12
|
+
|
|
13
|
+
// Cookies
|
|
14
|
+
let cookies
|
|
15
|
+
const { headers: { cookie } } = req;
|
|
16
|
+
if (cookie) {
|
|
17
|
+
const values = cookie.split(';').reduce((res, item) => {
|
|
18
|
+
const data = item.trim().split('=');
|
|
19
|
+
return { ...res, [data[0]]: data[1] };
|
|
20
|
+
}, {});
|
|
21
|
+
cookies = values;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// User Data Injection
|
|
25
|
+
let index = fs.readFileSync('./index.html', 'utf8')
|
|
26
|
+
let authorization = cookies?.Authorization
|
|
27
|
+
if (authorization) {
|
|
28
|
+
|
|
29
|
+
let user = (await axios.get(`http://localhost:${settings.port}/members?depthLimit=2&search={"password.hash": "${authorization}"}`, { headers: { 'Authorization': authorization } }))
|
|
30
|
+
user = user?.data?.response?.[0]
|
|
31
|
+
if (user) index = index.replace('window.user = null;', `window.user = ${JSON.stringify(user)};`)
|
|
32
|
+
|
|
33
|
+
let rdii = (await axios.get(`http://localhost:${settings.port}/controllers/rdiiStats`, { headers: { 'Authorization': authorization } }))?.data
|
|
34
|
+
if (rdii) index = index.replace('window.rdii = null;', `window.rdii = ${JSON.stringify(rdii)};`)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Define the collection and ID
|
|
38
|
+
let collection = req.path.split('/')[1]
|
|
39
|
+
let id = req.path.split('/')[2] ? req.path.split('/')[2] : null
|
|
40
|
+
|
|
41
|
+
console.log('collection', collection)
|
|
42
|
+
console.log('id', id)
|
|
43
|
+
|
|
44
|
+
let entry = (await axios.get(`http://localhost:${settings.port}/${collection}/${id}`))?.data?.response
|
|
45
|
+
|
|
46
|
+
console.log('entry', entry)
|
|
47
|
+
|
|
48
|
+
if (!entry) return res.send(index)
|
|
49
|
+
|
|
50
|
+
// Main Content Injection
|
|
51
|
+
try { index = index.replace('window.mainEntry = null;', `window.mainEntry = ${JSON.stringify(entry)};`) }
|
|
52
|
+
catch (e) { console.log(e) }
|
|
53
|
+
|
|
54
|
+
return res.send(index)
|
|
55
|
+
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const app = express()
|
|
59
|
+
|
|
60
|
+
app.get(["/index.html", "/"], serve);
|
|
61
|
+
app.use(express.static('./'))
|
|
62
|
+
app.get('/*', serve)
|
|
63
|
+
|
|
64
|
+
app.listen(port, () => {
|
|
65
|
+
console.log(`Example app listening at http://localhost:${port}`)
|
|
66
|
+
})
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
|
|
5
|
+
<meta charset="UTF-8" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui" />
|
|
7
|
+
|
|
8
|
+
<!-- Inject Meta -->
|
|
9
|
+
|
|
10
|
+
<title>Mango Starter</title>
|
|
11
|
+
<meta property='og:description' name="description" content="Here to make your life stinking easy.">
|
|
12
|
+
|
|
13
|
+
</head>
|
|
14
|
+
<body class="w-full overflow-x-hidden overscroll-y-none touch-pan-x touch-pan-y">
|
|
15
|
+
<div id="app" class="font-sans"><div style="opacity: 0;"><!--SSR--></div></div>
|
|
16
|
+
<script type="module" src="/src/main.js"></script>
|
|
17
|
+
|
|
18
|
+
<!-- Main Entry Provision -->
|
|
19
|
+
<script>
|
|
20
|
+
window.mainEntry = null;
|
|
21
|
+
window.user = null;
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
</body>
|
|
25
|
+
</html>
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
const express = require('express');
|
|
2
|
+
const fs = require('fs')
|
|
3
|
+
const axios = require('axios')
|
|
4
|
+
const settings = require('../../mango/config/config/settings.json')
|
|
5
|
+
|
|
6
|
+
let port = 1338
|
|
7
|
+
let metaComment = '<!-- Inject Meta -->'
|
|
8
|
+
let appPlaceholder = '<!--SSR-->'
|
|
9
|
+
|
|
10
|
+
let serve = async function (req, res) {
|
|
11
|
+
|
|
12
|
+
let index = fs.readFileSync('./index.html', 'utf8')
|
|
13
|
+
|
|
14
|
+
let collection = req.path.split('/')[1]
|
|
15
|
+
collection = ['network', 'church-network'].includes(collection) ? 'churches' : collection
|
|
16
|
+
collection = ['about'].includes(collection) ? 'aboutPages' : collection
|
|
17
|
+
let id = req.path.split('/')[2] ? req.path.split('/')[2] : null
|
|
18
|
+
|
|
19
|
+
// collection = 'events'
|
|
20
|
+
// id = '60cbbe2eb48a3a2637fa3b03'
|
|
21
|
+
|
|
22
|
+
if (collection == 'churches' && id == 'index') {
|
|
23
|
+
index = index.replace(appPlaceholder, `${appPlaceholder}<div class="text-white">${networkDescription}</div>`)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (collection == 'podcasts' && id == 'collections') {
|
|
27
|
+
collection = 'podcastCollections'
|
|
28
|
+
id = req.path.split('/')?.[3] || null
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// console.log('collection', collection)
|
|
32
|
+
// console.log('id', id)
|
|
33
|
+
|
|
34
|
+
if (collection == 'podcasts' && !id) {
|
|
35
|
+
index = index.replace('<title>Church & Family Life</title>', `<title>Church & Family Life | Podcasts</title>`)
|
|
36
|
+
index = index.replace(metaComment, metaComment + `
|
|
37
|
+
<meta property='og:image' content='https://cfl-mango.s3.amazonaws.com/uploads/podcasts/podcast.jpg' />
|
|
38
|
+
<meta property='og:image:url' content='https://cfl-mango.s3.amazonaws.com/uploads/podcasts/podcast.jpg' />
|
|
39
|
+
<meta property='og:image:width' content='1000' />
|
|
40
|
+
<meta property='og:image:height' content='597' />
|
|
41
|
+
`)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (!collection || !id) {
|
|
45
|
+
let descriptionMin = `There is only one way to fight for the prosperity of the church and family in this world. It is to reveal the truth of Jesus Christ, by proclaiming the Word of God. We have a simple agenda: to proclaim the sufficiency of Scripture for church and family life in order to restore the true worship of God in our cities. Our prayer is for the multiplication of gospel-centered, biblically-ordered churches and families. These churches and families glorify God by representing His kingdom on earth and spreading the gospel from one generation to the next.`
|
|
46
|
+
index = index.replace(metaComment, metaComment + `\n <meta property='og:description' name='description' content='${descriptionMin?.replace(/'/g, ''')}' />`)
|
|
47
|
+
index = index.replace(appPlaceholder, `${appPlaceholder}<h1>Church & Family Life</h1><p>${descriptionMin}</p>`)
|
|
48
|
+
return res.send(index)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
let entry = (await axios.get(`http://localhost:${settings.port}/${collection}/${id}`))?.data?.response
|
|
52
|
+
if (!entry) return res.send(index)
|
|
53
|
+
|
|
54
|
+
// APP MANIFEST SWAP
|
|
55
|
+
if (entry.title == 'Knowing God') index = index.replace(`<link rel="manifest" href="/app.manifest">`, `<link rel="manifest" href="/knowing-god-manifest.json">`)
|
|
56
|
+
if (entry.title == 'Holiness to the Lord') index = index.replace(`<link rel="manifest" href="/app.manifest">`, `<link rel="manifest" href="/holiness-manifest.json">`)
|
|
57
|
+
|
|
58
|
+
// SPLASHSCREENS
|
|
59
|
+
if (entry.title == 'Holiness to the Lord' || entry.title == 'Knowing God') {
|
|
60
|
+
|
|
61
|
+
index = index.replace('<!-- Splashscreens -->', `
|
|
62
|
+
<!-- Splashscreens -->
|
|
63
|
+
<meta name="apple-mobile-web-app-title" content="${entry.title}">
|
|
64
|
+
|
|
65
|
+
<link rel="apple-touch-icon" href="/uploads/events/${entry.slug}/icons/apple-icon-180.png">
|
|
66
|
+
<link rel="apple-touch-icon" sizes="180x180" href="/uploads/events/${entry.slug}/icons/apple-icon-180.png">
|
|
67
|
+
<!--
|
|
68
|
+
<link rel="apple-touch-icon" sizes="152x152" href="/uploads/events/${entry.slug}/icons/icon-76@2x.png">
|
|
69
|
+
<link rel="apple-touch-icon" sizes="167x167" href="/uploads/events/${entry.slug}/icons/icon-83.5@2x.png">
|
|
70
|
+
-->
|
|
71
|
+
|
|
72
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-2048-2732.jpg" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
|
|
73
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-2732-2048.jpg" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
|
|
74
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-1668-2388.jpg" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
|
|
75
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-2388-1668.jpg" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
|
|
76
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-1536-2048.jpg" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
|
|
77
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-2048-1536.jpg" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
|
|
78
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-1668-2224.jpg" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
|
|
79
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-2224-1668.jpg" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
|
|
80
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-1620-2160.jpg" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
|
|
81
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-2160-1620.jpg" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
|
|
82
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-1284-2778.jpg" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
|
|
83
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-2778-1284.jpg" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
|
|
84
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-1170-2532.jpg" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
|
|
85
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-2532-1170.jpg" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
|
|
86
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-1125-2436.jpg" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
|
|
87
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-2436-1125.jpg" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
|
|
88
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-1242-2688.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
|
|
89
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-2688-1242.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
|
|
90
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-828-1792.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
|
|
91
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-1792-828.jpg" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
|
|
92
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-1242-2208.jpg" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
|
|
93
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-2208-1242.jpg" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)">
|
|
94
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-750-1334.jpg" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
|
|
95
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-1334-750.jpg" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
|
|
96
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-640-1136.jpg" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
|
|
97
|
+
<link rel="apple-touch-startup-image" href="/uploads/events/${entry.slug}/splash/apple-splash-1136-640.jpg" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)">
|
|
98
|
+
`)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
let title = entry?.title?.replace(/'/g, ''')
|
|
102
|
+
|
|
103
|
+
// Add Meta
|
|
104
|
+
index = index.replace('<title>Church & Family Life</title>', `<title>${title}</title>`)
|
|
105
|
+
index = index.replace(metaComment, metaComment + `\n <meta property='og:title' content='${title}' />`)
|
|
106
|
+
|
|
107
|
+
if (entry?.image?.url) {
|
|
108
|
+
index = index.replace(metaComment, metaComment + `
|
|
109
|
+
<meta property='og:image' content='${entry?.image?.url?.replace(/'/g, ''')}' />
|
|
110
|
+
<meta property='og:image:url' content='${entry?.image?.url?.replace(/'/g, ''')}' />
|
|
111
|
+
<meta property='og:image:width' content='${entry?.image?.width}' />
|
|
112
|
+
<meta property='og:image:height' content='${entry?.image?.height}' />
|
|
113
|
+
`)
|
|
114
|
+
} else if (entry?.bannerImage?.url) {
|
|
115
|
+
index = index.replace(metaComment, metaComment + `
|
|
116
|
+
<meta property='og:image' content='${entry?.bannerImage?.url?.replace(/'/g, ''')}' />
|
|
117
|
+
<meta property='og:image:url' content='${entry?.bannerImage?.url?.replace(/'/g, ''')}' />
|
|
118
|
+
<meta property='og:image:width' content='${entry?.bannerImage?.width}' />
|
|
119
|
+
<meta property='og:image:height' content='${entry?.bannerImage?.height}' />
|
|
120
|
+
`)
|
|
121
|
+
} else if (entry?.video?.thumbnail) {
|
|
122
|
+
index = index.replace(metaComment, metaComment + `
|
|
123
|
+
<meta property='og:image' content='${entry?.video?.thumbnail?.replace(/'/g, ''')}' />
|
|
124
|
+
<meta property='og:image:url' content='${entry?.video?.thumbnail?.replace(/'/g, ''')}' />
|
|
125
|
+
<meta property='og:image:width' content='${entry?.image?.width}' />
|
|
126
|
+
<meta property='og:image:height' content='${entry?.image?.height}' />
|
|
127
|
+
`)
|
|
128
|
+
} else if (collection == 'blogs') {
|
|
129
|
+
index = index.replace(metaComment, metaComment + `
|
|
130
|
+
<meta property='og:image' content='https://churchandfamilylife.com/uploads/blog/sbo.png' />
|
|
131
|
+
<meta property='og:image:url' content='https://churchandfamilylife.com/uploads/blog/sbo.png' />
|
|
132
|
+
<meta property='og:image:width' content='1056' />
|
|
133
|
+
<meta property='og:image:height' content='594' />
|
|
134
|
+
`)
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Cannonical URL
|
|
138
|
+
if (
|
|
139
|
+
['resources', 'podcasts', 'churches', 'aboutPages', 'events'].includes(collection) &&
|
|
140
|
+
id &&
|
|
141
|
+
entry &&
|
|
142
|
+
!req.path.split('/')?.[3]
|
|
143
|
+
) {
|
|
144
|
+
index = index.replace(metaComment, metaComment + `<link rel="canonical" href="https://churchandfamilylife.com/${collection}/${id}/${entry.slug}" />`)
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
let description = entry?.description || entry?.body
|
|
149
|
+
let descriptionMin = entry?.descriptionMin || entry?.bodyMin
|
|
150
|
+
if (description) index = index.replace(appPlaceholder, `${appPlaceholder}<div class="text-white">${description}</div>`)
|
|
151
|
+
|
|
152
|
+
if (descriptionMin) index = index.replace(metaComment, metaComment + `\n <meta property='og:description' name='description' content='${descriptionMin?.replace(/'/g, ''')}' />`)
|
|
153
|
+
if (entry?.audio?.url) index = index.replace(metaComment, metaComment + `\n <meta property='og:audio' content='${entry.audio.url?.replace(/'/g, ''')}' />`)
|
|
154
|
+
if (entry?.video?.download) index = index.replace(metaComment, metaComment + `\n <meta property='og:video' content='${entry.video.download?.replace(/'/g, ''')}' />`)
|
|
155
|
+
if (entry?.resourceType) index = index.replace(metaComment, metaComment + `\n <meta property='og:type' content='${entry?.resourceType}' />`)
|
|
156
|
+
|
|
157
|
+
// Add the main entry
|
|
158
|
+
try {
|
|
159
|
+
index = index.replace('var mainEntry = null;', `var mainEntry = ${JSON.stringify(entry)};`)
|
|
160
|
+
} catch (e) {
|
|
161
|
+
console.log(e)
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return res.send(index)
|
|
165
|
+
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const app = express()
|
|
169
|
+
|
|
170
|
+
app.get(["/index.html", "/"], serve);
|
|
171
|
+
app.use(express.static('./'))
|
|
172
|
+
app.get('/*', serve)
|
|
173
|
+
|
|
174
|
+
app.listen(port, () => {
|
|
175
|
+
console.log(`Example app listening at http://localhost:${port}`)
|
|
176
|
+
})
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
let networkDescription = `
|
|
180
|
+
<p class="p1">How do you go about finding a healthy family-integrated church?</p>
|
|
181
|
+
<p class="p1">First of all, we recommend that you search our list of churches that have affirmed our confession for uniting church and family. It is a confession that establishes the supremacy of Christ and His Word. And it is an explanation of the way church and family are meant to function together in a harmonious way according to scripture. </p>
|
|
182
|
+
<p class="p1">But here’s a word of caution as you go out to try to find this church. There is a danger of using our network to find a church and concluding that it is a perfect church because it is an age-integrated church. Then, after attending for a while, getting discouraged because that church from our network had flaws or wasn’t exactly what was described in the confession for uniting church and family. While we gladly promote the existence of family-integrated churches, family integration (while it is important) is not <em>the </em>most important thing about a church. </p>
|
|
183
|
+
<p class="p1">Here’s how our network works: the churches on this network have not been evaluated by Church and Family Life. Our position towards the churches on our network is that you evaluate us, but we don’t evaluate you. We have written a confession that establishes the basics of what we stand for and, if a church genuinely embraces those things, we are happy to have them on our list of churches. However, we do not make any claims for the integrity of these churches or their leaders. </p>
|
|
184
|
+
<p class="p1">Here is a seven-question checklist to determine whether a church you are visiting is a healthy church. </p>
|
|
185
|
+
<ol>
|
|
186
|
+
<li>Does this church preach the true gospel? </li>
|
|
187
|
+
<li>Does this church place the Lord Jesus Christ at the center of everything?</li>
|
|
188
|
+
<li>Is the Bible the ultimate authority in all matters in this church? </li>
|
|
189
|
+
<li>Does the pastor attempt biblical exposition or is he simply speaking out of his own passions?</li>
|
|
190
|
+
<li>Is the church elder-led or is the senior pastor biblically qualified? (Ideally, we recommend you go to a church with multiple, biblically qualified elders.)</li>
|
|
191
|
+
<li>Does the church practice discipline?</li>
|
|
192
|
+
<li>Is the church age-integrated or substantially so? (Notice this element is much further down on the list of how to find a healthy church.) </li>
|
|
193
|
+
</ol>
|
|
194
|
+
<p class="p1">We do not believe that age integration is <em>the</em> most important matter in church life. While we do believe it is a biblical and, therefore, critical matter, it is better to be in a gospel-centered, Bible-preaching church that is not age-integrated than it is to be in an age-integrated church where the gospel is neglected, the word of God is not central, and the leaders are not biblically qualified. </p>
|
|
195
|
+
<p class="p1">I pray that you will find a wonderful, gospel-centered church that is age-integrated but don’t be disconnected from a local church. The church is the body of Christ and it is so important that you and your family make a local church a <em>huge</em> priority in your life. I pray that God blesses you with a wonderful gospel-centered, Bible preaching, evangelistic, Christ-exalting, family-integrated church. </p>
|
|
196
|
+
<p class="p1">Scott Brown </p>
|
|
197
|
+
`
|