diff --git a/app/routes/app.proxy.tsx b/app/routes/app.proxy.tsx new file mode 100644 index 0000000..ab9682e --- /dev/null +++ b/app/routes/app.proxy.tsx @@ -0,0 +1,9 @@ +import { LoaderFunctionArgs } from "@remix-run/node"; + +export async function loader({ request }: LoaderFunctionArgs) { + return new Response("Hello World", { + headers: { + "Content-Type": "text/plain", + }, + }); +} \ No newline at end of file diff --git a/extensions/new-theme/blocks/announcement_bar.liquid b/extensions/new-theme/blocks/announcement_bar.liquid new file mode 100644 index 0000000..4e9bbef --- /dev/null +++ b/extensions/new-theme/blocks/announcement_bar.liquid @@ -0,0 +1,397 @@ +{% assign bid = 'ann-bar-' | append: block.id %} + +
+
+ {% if block.settings.show_icon %} + + {% endif %} + +

{{ block.settings.message }}

+ + {% if block.settings.show_countdown %} +
+ {{ block.settings.countdown_label }} +
+
+ 00 + HRS +
+ : +
+ 00 + MIN +
+ : +
+ 00 + SEC +
+
+
+ {% endif %} + + {% if block.settings.show_cta %} + + {{- block.settings.cta_text -}} + + {% endif %} + + {% if block.settings.show_close %} + + {% endif %} +
+
+ + + + + + {% schema %} + { + "name": "Announcement Bar", + "target": "body", + "settings": [ + { + "type": "header", + "content": "Content" + }, + { + "type": "text", + "id": "message", + "label": "Announcement message", + "default": "🔥 Flash Sale — Limited time only!" + }, + { + "type": "checkbox", + "id": "show_icon", + "label": "Show icon / emoji", + "default": true + }, + { + "type": "text", + "id": "icon_emoji", + "label": "Icon or emoji", + "default": "⚡" + }, + { + "type": "header", + "content": "Countdown Timer" + }, + { + "type": "checkbox", + "id": "show_countdown", + "label": "Show countdown timer", + "default": true + }, + { + "type": "text", + "id": "countdown_label", + "label": "Countdown label", + "default": "Ends in:" + }, + { + "type": "range", + "id": "countdown_hours", + "label": "Countdown duration (hours)", + "min": 1, + "max": 96, + "step": 1, + "default": 24, + "info": "Ignored if a specific end date is set below." + }, + { + "type": "text", + "id": "sale_end_datetime", + "label": "Sale end date & time (optional)", + "info": "ISO format e.g. 2026-03-05T23:59:59 — overrides duration above." + }, + { + "type": "checkbox", + "id": "reset_daily", + "label": "Reset at midnight each day", + "default": false + }, + { + "type": "checkbox", + "id": "hide_on_end", + "label": "Hide bar when countdown reaches zero", + "default": false + }, + { + "type": "header", + "content": "Button" + }, + { + "type": "checkbox", + "id": "show_cta", + "label": "Show button", + "default": true + }, + { + "type": "text", + "id": "cta_text", + "label": "Button text", + "default": "Shop Now" + }, + { + "type": "url", + "id": "cta_url", + "label": "Button URL" + }, + { + "type": "checkbox", + "id": "cta_new_tab", + "label": "Open in new tab", + "default": false + }, + { + "type": "color", + "id": "cta_text_color", + "label": "Button text & border color", + "default": "#ffffff" + }, + { + "type": "color", + "id": "cta_bg_color", + "label": "Button background", + "default": "#00000033" + }, + { + "type": "header", + "content": "Appearance" + }, + { + "type": "color", + "id": "background_color", + "label": "Background", + "default": "#c0392b" + }, + { + "type": "color", + "id": "text_color", + "label": "Text color", + "default": "#ffffff" + }, + { + "type": "select", + "id": "font_family", + "label": "Font", + "default": "inherit", + "options": [ + { "value": "inherit", "label": "Theme default" }, + { "value": "sans-serif", "label": "Sans-serif" }, + { "value": "serif", "label": "Serif" }, + { "value": "monospace", "label": "Monospace" } + ] + }, + { + "type": "header", + "content": "Dismiss" + }, + { + "type": "checkbox", + "id": "show_close", + "label": "Show close (X) button", + "default": true + } + ] + } + {% endschema %}