diff --git a/repub/components.py b/repub/components.py index af9e631..035b74c 100644 --- a/repub/components.py +++ b/repub/components.py @@ -391,14 +391,13 @@ def toggle_field( "data-class:bg-amber-500": f"${signal_name}", "data-class:bg-slate-200": f"!${signal_name}", }, - class_="group relative inline-flex w-11 shrink-0 rounded-full bg-slate-200 p-0.5 outline-offset-2 outline-amber-500 transition", + class_="group relative inline-flex w-11 shrink-0 rounded-full p-0.5 outline-offset-2 outline-amber-500 transition", )[ h.span( { "data-class:translate-x-5": f"${signal_name}", - "data-class:translate-x-0": f"!${signal_name}", }, - class_="size-5 translate-x-0 rounded-full bg-white shadow-xs ring-1 ring-slate-900/5 transition-transform", + class_="size-5 rounded-full bg-white shadow-xs ring-1 ring-slate-900/5 transition-transform", ), h.input( {"data-bind": signal_name}, diff --git a/repub/config.py b/repub/config.py index e14e0d2..e9e86b3 100644 --- a/repub/config.py +++ b/repub/config.py @@ -212,6 +212,7 @@ def build_feed_settings( "format": "rss", "postprocessing": [], "feed_name": feed_slug, + "overwrite": True, } }, "ITEM_PIPELINES": item_pipelines, diff --git a/repub/pages/settings.py b/repub/pages/settings.py index aa9bdbc..d2730c0 100644 --- a/repub/pages/settings.py +++ b/repub/pages/settings.py @@ -40,7 +40,7 @@ def settings_page( ), "data-on:submit": f"@post('{action_path}')", }, - class_="space-y-6 rounded-[1.5rem] bg-white p-6 shadow-sm ring-1 ring-slate-200", + class_="space-y-6", )[ h.div[ h.p( @@ -60,16 +60,16 @@ def settings_page( }, class_="rounded-2xl bg-rose-50 px-4 py-3 text-sm font-medium text-rose-800", ), - input_field( - label="Max concurrent jobs", - field_id="max-concurrent-jobs", - value=_value(settings, "max_concurrent_jobs", "1"), - help_text="Must be an integer greater than or equal to 1.", - signal_name="maxConcurrentJobs", - ), - h.div( - class_="flex flex-wrap justify-end gap-3 border-t border-slate-200 pt-6" - )[ + h.div(class_="rounded-[1.5rem] bg-stone-50 p-5")[ + input_field( + label="Max concurrent jobs", + field_id="max-concurrent-jobs", + value=_value(settings, "max_concurrent_jobs", "1"), + help_text="Must be an integer greater than or equal to 1.", + signal_name="maxConcurrentJobs", + ), + ], + h.div(class_="flex flex-wrap justify-end gap-3 pt-2")[ muted_action_link(href="/", label="Back to dashboard"), h.button( type="submit", diff --git a/repub/static/app.css b/repub/static/app.css index 0a0f270..9bb5f7e 100644 --- a/repub/static/app.css +++ b/repub/static/app.css @@ -1,8 +1,4 @@ /*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */ -@view-transition { - navigation: auto; -} - @layer properties; @layer theme, base, components, utilities; @layer theme { @@ -13,7 +9,6 @@ monospace; --color-orange-100: oklch(95.4% 0.038 75.164); --color-amber-50: oklch(98.7% 0.022 95.277); - --color-amber-100: oklch(96.2% 0.059 95.617); --color-amber-200: oklch(92.4% 0.12 95.746); --color-amber-300: oklch(87.9% 0.169 91.605); --color-amber-400: oklch(82.8% 0.189 84.429); @@ -48,7 +43,6 @@ --color-white: #fff; --spacing: 0.25rem; --container-sm: 24rem; - --container-2xl: 42rem; --container-3xl: 48rem; --container-7xl: 80rem; --text-xs: 0.75rem; @@ -63,6 +57,7 @@ --text-xl--line-height: calc(1.75 / 1.25); --text-3xl: 1.875rem; --text-3xl--line-height: calc(2.25 / 1.875); + --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-black: 900; @@ -70,6 +65,7 @@ --radius-xl: 0.75rem; --radius-2xl: 1rem; --radius-3xl: 1.5rem; + --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; --default-transition-duration: 150ms; --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --default-font-family: var(--font-sans); @@ -225,9 +221,6 @@ } } @layer utilities { - .visible { - visibility: visible; - } .sr-only { position: absolute; width: 1px; @@ -296,9 +289,6 @@ .mt-5 { margin-top: calc(var(--spacing) * 5); } - .mt-6 { - margin-top: calc(var(--spacing) * 6); - } .mt-10 { margin-top: calc(var(--spacing) * 10); } @@ -320,9 +310,6 @@ .hidden { display: none; } - .inline { - display: inline; - } .inline-flex { display: inline-flex; } @@ -337,6 +324,12 @@ width: calc(var(--spacing) * 11); height: calc(var(--spacing) * 11); } + .h-5 { + height: calc(var(--spacing) * 5); + } + .h-12 { + height: calc(var(--spacing) * 12); + } .h-40 { height: calc(var(--spacing) * 40); } @@ -349,12 +342,12 @@ .w-11 { width: calc(var(--spacing) * 11); } + .w-40 { + width: calc(var(--spacing) * 40); + } .w-full { width: 100%; } - .max-w-2xl { - max-width: var(--container-2xl); - } .max-w-3xl { max-width: var(--container-3xl); } @@ -376,6 +369,9 @@ .min-w-56 { min-width: calc(var(--spacing) * 56); } + .min-w-64 { + min-width: calc(var(--spacing) * 64); + } .min-w-\[70rem\] { min-width: 70rem; } @@ -388,14 +384,13 @@ .table-auto { table-layout: auto; } - .translate-x-0 { - --tw-translate-x: calc(var(--spacing) * 0); - translate: var(--tw-translate-x) var(--tw-translate-y); - } .translate-x-5 { --tw-translate-x: calc(var(--spacing) * 5); translate: var(--tw-translate-x) var(--tw-translate-y); } + .animate-pulse { + animation: var(--animate-pulse); + } .cursor-not-allowed { cursor: not-allowed; } @@ -524,21 +519,12 @@ .border-slate-200 { border-color: var(--color-slate-200); } - .border-white\/10 { - border-color: color-mix(in srgb, #fff 10%, transparent); - @supports (color: color-mix(in lab, red, red)) { - border-color: color-mix(in oklab, var(--color-white) 10%, transparent); - } - } .border-white\/15 { border-color: color-mix(in srgb, #fff 15%, transparent); @supports (color: color-mix(in lab, red, red)) { border-color: color-mix(in oklab, var(--color-white) 15%, transparent); } } - .bg-amber-100 { - background-color: var(--color-amber-100); - } .bg-amber-200 { background-color: var(--color-amber-200); } @@ -645,6 +631,9 @@ .p-5 { padding: calc(var(--spacing) * 5); } + .p-6 { + padding: calc(var(--spacing) * 6); + } .px-2 { padding-inline: calc(var(--spacing) * 2); } @@ -687,6 +676,9 @@ .py-8 { padding-block: calc(var(--spacing) * 8); } + .pt-2 { + padding-top: calc(var(--spacing) * 2); + } .pt-6 { padding-top: calc(var(--spacing) * 6); } @@ -696,6 +688,9 @@ .pl-4 { padding-left: calc(var(--spacing) * 4); } + .text-center { + text-align: center; + } .text-left { text-align: left; } @@ -744,6 +739,10 @@ --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); } + .font-normal { + --tw-font-weight: var(--font-weight-normal); + font-weight: var(--font-weight-normal); + } .font-semibold { --tw-font-weight: var(--font-weight-semibold); font-weight: var(--font-weight-semibold); @@ -779,9 +778,6 @@ .text-amber-700 { color: var(--color-amber-700); } - .text-amber-800 { - color: var(--color-amber-800); - } .text-amber-950 { color: var(--color-amber-950); } @@ -999,12 +995,6 @@ } } } - .data-class\:translate-x-0 { - &[data-class] { - --tw-translate-x: calc(var(--spacing) * 0); - translate: var(--tw-translate-x) var(--tw-translate-y); - } - } .data-class\:translate-x-5 { &[data-class] { --tw-translate-x: calc(var(--spacing) * 5); @@ -1051,6 +1041,11 @@ padding-inline: calc(var(--spacing) * 5); } } + .sm\:px-6 { + @media (width >= 40rem) { + padding-inline: calc(var(--spacing) * 6); + } + } .sm\:pl-4 { @media (width >= 40rem) { padding-left: calc(var(--spacing) * 4); @@ -1362,6 +1357,11 @@ syntax: "*"; inherits: false; } +@keyframes pulse { + 50% { + opacity: 0.5; + } +} @layer properties { @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { *, ::before, ::after, ::backdrop { diff --git a/tests/test_config.py b/tests/test_config.py index f7430ba..cc59799 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -158,6 +158,7 @@ def test_build_feed_settings_derives_output_paths_from_feed_slug( "format": "rss", "postprocessing": [], "feed_name": "info-marti", + "overwrite": True, } }