@@ -213,11 +215,14 @@
class="basis-full form-input {{ $formClasses }}"
required>
-
-
+
diff --git a/src/main.lisp b/src/main.lisp
index b267b2a..1ec16d9 100644
--- a/src/main.lisp
+++ b/src/main.lisp
@@ -381,6 +381,26 @@ with the image attached"
(:th (car row))
(:td (cdr row))))))))))))
+(hunchentoot:define-easy-handler (respond :uri "/camp-api") ()
+ (uiop:println "hey")
+ (setf (hunchentoot:content-type*) "plain/text")
+ (let* ((request-type (hunchentoot:request-method hunchentoot:*request*))
+ (data (hunchentoot:post-parameters* hunchentoot:*request*)))
+ (uiop:println (assoc "registration" data :test 'string=))
+ (uiop:println (tbnl:headers-out*))
+ (if (string= (cdr (assoc "registration" data :test 'string=)) "now")
+ (progn (uiop:println "did it")
+ (setf (hunchentoot:header-out "HX-Redirect") "https://secure.myvanco.com/L-Z772/campaign/C-13JPJ")
+ (uiop:println (tbnl:headers-out*))
+ (uiop:println (hunchentoot:return-code*))
+ (with-html-string
+ (:div
+ (:p "Payment"))))
+ (progn
+ (with-html-string
+ (:div
+ (:p "Thank You")))))))
+
(defun define-post-form-handler (uri mail-function)
"Take a uri and a mailer function and define a handler in hunchentoot
for forms to POST to."
diff --git a/tailwind.config.js b/tailwind.config.js
new file mode 100644
index 0000000..9b7a572
--- /dev/null
+++ b/tailwind.config.js
@@ -0,0 +1,193 @@
+module.exports = {
+ content: [
+ "./layouts/**/*.html",
+ "./content/**/*.{html,md}",
+ "./themes/blowfish/layouts/**/*.html",
+ "./themes/blowfish/content/**/*.{html,md}",
+ "./node_modules/tw-elements/dist/js/**/*.js"
+ ],
+ darkMode: "class",
+ theme: {
+ screens: {
+ 'sm': '640px',
+ 'md': '853px',
+ 'lg': '1024px',
+ 'xl': '1280px',
+ '2xl': '1536px',
+ },
+ colors: {
+ transparent: "transparent",
+ neutral: {
+ DEFAULT: "rgba(var(--color-neutral),
)",
+ 50: "rgba(var(--color-neutral-50), )",
+ 100: "rgba(var(--color-neutral-100), )",
+ 200: "rgba(var(--color-neutral-200), )",
+ 300: "rgba(var(--color-neutral-300), )",
+ 400: "rgba(var(--color-neutral-400), )",
+ 500: "rgba(var(--color-neutral-500), )",
+ 600: "rgba(var(--color-neutral-600), )",
+ 700: "rgba(var(--color-neutral-700), )",
+ 800: "rgba(var(--color-neutral-800), )",
+ 900: "rgba(var(--color-neutral-900), )",
+ },
+ primary: {
+ 50: "rgba(var(--color-primary-50), )",
+ 100: "rgba(var(--color-primary-100), )",
+ 200: "rgba(var(--color-primary-200), )",
+ 300: "rgba(var(--color-primary-300), )",
+ 400: "rgba(var(--color-primary-400), )",
+ 500: "rgba(var(--color-primary-500), )",
+ 600: "rgba(var(--color-primary-600), )",
+ 700: "rgba(var(--color-primary-700), )",
+ 800: "rgba(var(--color-primary-800), )",
+ 900: "rgba(var(--color-primary-900), )",
+ },
+ red: {
+ 50: "rgba(var(--color-red-50), )",
+ 100: "rgba(var(--color-red-100), )",
+ 200: "rgba(var(--color-red-200), )",
+ 300: "rgba(var(--color-red-300), )",
+ 400: "rgba(var(--color-red-400), )",
+ 500: "rgba(var(--color-red-500), )",
+ 600: "rgba(var(--color-red-600), )",
+ 700: "rgba(var(--color-red-700), )",
+ 800: "rgba(var(--color-red-800), )",
+ 900: "rgba(var(--color-red-900), )",
+ },
+ secondary: {
+ 50: "rgba(var(--color-secondary-50), )",
+ 100: "rgba(var(--color-secondary-100), )",
+ 200: "rgba(var(--color-secondary-200), )",
+ 300: "rgba(var(--color-secondary-300), )",
+ 400: "rgba(var(--color-secondary-400), )",
+ 500: "rgba(var(--color-secondary-500), )",
+ 600: "rgba(var(--color-secondary-600), )",
+ 700: "rgba(var(--color-secondary-700), )",
+ 800: "rgba(var(--color-secondary-800), )",
+ 900: "rgba(var(--color-secondary-900), )",
+ },
+ },
+ extend: {
+ typography: ({ theme }) => ({
+ DEFAULT: {
+ css: {
+ "--tw-prose-body": theme("colors.neutral.700 / 1"),
+ "--tw-prose-headings": theme("colors.neutral.800 / 1"),
+ "--tw-prose-lead": theme("colors.neutral.500 / 1"),
+ "--tw-prose-links": theme("colors.primary.600 / 1"),
+ "--tw-prose-bold": theme("colors.neutral.900 / 1"),
+ "--tw-prose-counters": theme("colors.neutral.800 / 1"),
+ "--tw-prose-bullets": theme("colors.neutral.500 / 1"),
+ "--tw-prose-hr": theme("colors.neutral.200 / 1"),
+ "--tw-prose-quotes": theme("colors.neutral.700 / 1"),
+ "--tw-prose-quote-borders": theme("colors.primary.200 / 1"),
+ "--tw-prose-captions": theme("colors.neutral.500 / 1"),
+ "--tw-prose-code": theme("colors.secondary.700 / 1"),
+ "--tw-prose-pre-code": theme("colors.neutral.700 / 1"),
+ "--tw-prose-pre-bg": theme("colors.neutral.50 / 1"),
+ "--tw-prose-th-borders": theme("colors.neutral.500 / 1"),
+ "--tw-prose-td-borders": theme("colors.neutral.300 / 1"),
+ "--tw-prose-invert-body": theme("colors.neutral.300 / 1"),
+ "--tw-prose-invert-headings": theme("colors.neutral.50 / 1"),
+ "--tw-prose-invert-lead": theme("colors.neutral.500 / 1"),
+ "--tw-prose-invert-links": theme("colors.primary.400 / 1"),
+ "--tw-prose-invert-bold": theme("colors.neutral.DEFAULT / 1"),
+ "--tw-prose-invert-counters": theme("colors.neutral.400 / 1"),
+ "--tw-prose-invert-bullets": theme("colors.neutral.600 / 1"),
+ "--tw-prose-invert-hr": theme("colors.neutral.500 / 1"),
+ "--tw-prose-invert-quotes": theme("colors.neutral.200 / 1"),
+ "--tw-prose-invert-quote-borders": theme("colors.primary.900 / 1"),
+ "--tw-prose-invert-captions": theme("colors.neutral.400 / 1"),
+ "--tw-prose-invert-code": theme("colors.secondary.400 / 1"),
+ "--tw-prose-invert-pre-code": theme("colors.neutral.200 / 1"),
+ "--tw-prose-invert-pre-bg": theme("colors.neutral.700 / 1"),
+ "--tw-prose-invert-th-borders": theme("colors.neutral.500 / 1"),
+ "--tw-prose-invert-td-borders": theme("colors.neutral.700 / 1"),
+ a: {
+ textDecoration: "none",
+ textDecorationColor: theme("colors.primary.300 / 1"),
+ fontWeight: "500",
+ "&:hover": {
+ color: theme("colors.primary.600 / 1"),
+ textDecoration: "none",
+ borderRadius: "0.09rem",
+ },
+ },
+ "a code": {
+ color: "var(--tw-prose-code)",
+ },
+ kbd: {
+ backgroundColor: theme("colors.neutral.200 / 1"),
+ padding: "0.1rem 0.4rem",
+ borderRadius: "0.25rem",
+ fontSize: "0.9rem",
+ fontWeight: "600",
+ },
+ mark: {
+ color: theme("colors.neutral.800 / 1"),
+ backgroundColor: theme("colors.primary.600 / 1"),
+ padding: "0.1rem 0.2rem",
+ borderRadius: "0.25rem",
+ },
+ code:{
+ backgroundColor: theme("colors.neutral.50 / 1"),
+ paddingTop: "3px",
+ paddingBottom: "3px",
+ paddingLeft: "5px",
+ paddingRight: "5px",
+ borderRadius: "0.25rem",
+ },
+ 'code::before': {
+ display: 'none'
+ },
+ 'code::after': {
+ display: 'none'
+ },
+ 'p::before': {
+ display: 'none'
+ },
+ 'p::after': {
+ display: 'none'
+ },
+ 'a.active': {
+ "text-decoration-color": theme("colors.primary.600 / 1"),
+ },
+ 'p.active': {
+ "text-decoration-color": theme("colors.primary.600 / 1"),
+ }
+ },
+ },
+ invert: {
+ css: {
+ a: {
+ textDecorationColor: theme("colors.neutral.600 / 1"),
+ "&:hover": {
+ color: theme("colors.primary.400 / 1"),
+ },
+ },
+ kbd: {
+ color: theme("colors.neutral.200 / 1"),
+ backgroundColor: theme("colors.neutral.700 / 1"),
+ },
+ mark: {
+ backgroundColor: theme("colors.primary.400 / 1"),
+ },
+ code:{
+ backgroundColor: theme("colors.neutral.700 / 1"),
+ },
+ 'a.active': {
+ "text-decoration-color": theme("colors.primary.400 / 1")
+ },
+ 'p.active': {
+ "text-decoration-color": theme("colors.primary.400 / 1")
+ }
+ },
+ },
+ }),
+ },
+ },
+ plugins: [
+ require("@tailwindcss/typography"),
+ require('@tailwindcss/forms'),
+ ],
+};