2026-02-12 08:35:22 +00:00
|
|
|
<.header>
|
|
|
|
|
Providers
|
|
|
|
|
<:actions>
|
2026-02-17 23:05:01 +00:00
|
|
|
<div class="admin-dropdown">
|
|
|
|
|
<div tabindex="0" role="button" class="admin-btn admin-btn-primary">
|
refactor admin CSS: replace utility classes with semantic styles
Replace Tailwind utility soup across admin templates with semantic
CSS classes. Add layout primitives (stack, row, cluster, grid),
extract JS transition helpers into transitions.css, and refactor
core_components, layouts, settings, newsletter, order_show, providers,
and theme editor templates.
Utility occurrences reduced from 290+ to 127 across admin files.
All 1679 tests pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 17:15:25 +00:00
|
|
|
<.icon name="hero-plus" class="size-4" /> Connect provider
|
2026-02-15 10:53:15 +00:00
|
|
|
</div>
|
2026-02-17 23:05:01 +00:00
|
|
|
<ul tabindex="0" class="admin-dropdown-content">
|
add setup onboarding page, dashboard launch checklist, provider registry
- new /setup page with three-section onboarding (account, provider, payments)
- dashboard launch checklist with progress bar, go-live, dismiss
- provider registry on Provider module (single source of truth for metadata)
- payments registry for Stripe
- setup context made provider-agnostic (provider_connected, theme_customised, etc.)
- admin provider pages now fully registry-driven (no hardcoded provider names)
- auth flow: fresh installs redirect to /setup, signed_in_path respects setup state
- removed old /admin/setup wizard
- 840 tests, 0 failures
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 00:34:06 +00:00
|
|
|
<li :for={provider <- @available_providers}>
|
|
|
|
|
<.link navigate={~p"/admin/providers/new?type=#{provider.type}"}>{provider.name}</.link>
|
2026-02-15 10:53:15 +00:00
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
2026-02-12 08:35:22 +00:00
|
|
|
</:actions>
|
|
|
|
|
</.header>
|
2026-01-31 22:08:34 +00:00
|
|
|
|
complete admin CSS refactor: delete utilities.css, add layout primitives
- Delete utilities.css (701 lines / 24 KB of Tailwind utility clones)
- Add layout.css with admin-stack, admin-row, admin-cluster, admin-grid
primitives and gap variants (sm, md, lg, xl)
- Add transitions.css import and layout.css import to admin.css entry point
- Replace all Tailwind utility classes across 26 admin templates with
semantic admin-*/theme-*/page-specific CSS classes
- Replace all non-dynamic inline styles with semantic classes
- Add ~100 new semantic classes to components.css (analytics, dashboard,
order detail, settings, theme editor, generic utilities)
- Fix stray text-error → admin-text-error in media.ex
- Add missing .truncate definition to admin CSS
- Only remaining inline styles are dynamic data values (progress bars,
chart dimensions) and one JS.toggle target
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 21:40:21 +00:00
|
|
|
<div id="connections" phx-update="stream" class="admin-stack admin-card-spaced">
|
refactor admin CSS: replace utility classes with semantic styles
Replace Tailwind utility soup across admin templates with semantic
CSS classes. Add layout primitives (stack, row, cluster, grid),
extract JS transition helpers into transitions.css, and refactor
core_components, layouts, settings, newsletter, order_show, providers,
and theme editor templates.
Utility occurrences reduced from 290+ to 127 across admin files.
All 1679 tests pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 17:15:25 +00:00
|
|
|
<div id="connections-empty" class="hidden only:block">
|
|
|
|
|
<div class="admin-empty-state">
|
|
|
|
|
<.icon name="hero-cube" class="admin-empty-state-icon" />
|
|
|
|
|
<h2 class="admin-empty-state-title">Connect a print-on-demand provider</h2>
|
|
|
|
|
<p class="admin-empty-state-text">
|
|
|
|
|
Connect your account to import products and start selling.
|
|
|
|
|
</p>
|
|
|
|
|
<div class="admin-empty-state-actions">
|
|
|
|
|
<.button
|
|
|
|
|
:for={provider <- @available_providers}
|
|
|
|
|
navigate={~p"/admin/providers/new?type=#{provider.type}"}
|
|
|
|
|
>
|
|
|
|
|
Connect {provider.name}
|
|
|
|
|
</.button>
|
|
|
|
|
</div>
|
2026-02-15 10:53:15 +00:00
|
|
|
</div>
|
2026-02-12 08:35:22 +00:00
|
|
|
</div>
|
2026-01-31 22:08:34 +00:00
|
|
|
|
2026-02-12 08:35:22 +00:00
|
|
|
<div
|
|
|
|
|
:for={{dom_id, connection} <- @streams.connections}
|
|
|
|
|
id={dom_id}
|
2026-02-17 23:05:01 +00:00
|
|
|
class="admin-card"
|
2026-02-12 08:35:22 +00:00
|
|
|
>
|
2026-02-17 23:05:01 +00:00
|
|
|
<div class="admin-card-body">
|
refactor admin CSS: replace utility classes with semantic styles
Replace Tailwind utility soup across admin templates with semantic
CSS classes. Add layout primitives (stack, row, cluster, grid),
extract JS transition helpers into transitions.css, and refactor
core_components, layouts, settings, newsletter, order_show, providers,
and theme editor templates.
Utility occurrences reduced from 290+ to 127 across admin files.
All 1679 tests pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 17:15:25 +00:00
|
|
|
<div class="admin-card-row">
|
|
|
|
|
<div class="admin-card-content">
|
complete admin CSS refactor: delete utilities.css, add layout primitives
- Delete utilities.css (701 lines / 24 KB of Tailwind utility clones)
- Add layout.css with admin-stack, admin-row, admin-cluster, admin-grid
primitives and gap variants (sm, md, lg, xl)
- Add transitions.css import and layout.css import to admin.css entry point
- Replace all Tailwind utility classes across 26 admin templates with
semantic admin-*/theme-*/page-specific CSS classes
- Replace all non-dynamic inline styles with semantic classes
- Add ~100 new semantic classes to components.css (analytics, dashboard,
order detail, settings, theme editor, generic utilities)
- Fix stray text-error → admin-text-error in media.ex
- Add missing .truncate definition to admin CSS
- Only remaining inline styles are dynamic data values (progress bars,
chart dimensions) and one JS.toggle target
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 21:40:21 +00:00
|
|
|
<div class="admin-row">
|
2026-02-12 08:35:22 +00:00
|
|
|
<.status_indicator status={connection.sync_status} enabled={connection.enabled} />
|
complete admin CSS refactor: delete utilities.css, add layout primitives
- Delete utilities.css (701 lines / 24 KB of Tailwind utility clones)
- Add layout.css with admin-stack, admin-row, admin-cluster, admin-grid
primitives and gap variants (sm, md, lg, xl)
- Add transitions.css import and layout.css import to admin.css entry point
- Replace all Tailwind utility classes across 26 admin templates with
semantic admin-*/theme-*/page-specific CSS classes
- Replace all non-dynamic inline styles with semantic classes
- Add ~100 new semantic classes to components.css (analytics, dashboard,
order detail, settings, theme editor, generic utilities)
- Fix stray text-error → admin-text-error in media.ex
- Add missing .truncate definition to admin CSS
- Only remaining inline styles are dynamic data values (progress bars,
chart dimensions) and one JS.toggle target
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 21:40:21 +00:00
|
|
|
<h3 class="admin-card-title admin-section-heading admin-section-desc-flush">
|
add setup onboarding page, dashboard launch checklist, provider registry
- new /setup page with three-section onboarding (account, provider, payments)
- dashboard launch checklist with progress bar, go-live, dismiss
- provider registry on Provider module (single source of truth for metadata)
- payments registry for Stripe
- setup context made provider-agnostic (provider_connected, theme_customised, etc.)
- admin provider pages now fully registry-driven (no hardcoded provider names)
- auth flow: fresh installs redirect to /setup, signed_in_path respects setup state
- removed old /admin/setup wizard
- 840 tests, 0 failures
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 00:34:06 +00:00
|
|
|
{provider_name(connection.provider_type)}
|
2026-02-12 08:35:22 +00:00
|
|
|
</h3>
|
|
|
|
|
</div>
|
refactor admin CSS: replace utility classes with semantic styles
Replace Tailwind utility soup across admin templates with semantic
CSS classes. Add layout primitives (stack, row, cluster, grid),
extract JS transition helpers into transitions.css, and refactor
core_components, layouts, settings, newsletter, order_show, providers,
and theme editor templates.
Utility occurrences reduced from 290+ to 127 across admin files.
All 1679 tests pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 17:15:25 +00:00
|
|
|
<p class="admin-card-subtitle">{connection.name}</p>
|
|
|
|
|
<div class="admin-card-meta">
|
2026-02-12 08:35:22 +00:00
|
|
|
<.connection_info connection={connection} />
|
2026-01-31 22:08:34 +00:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
refactor admin CSS: replace utility classes with semantic styles
Replace Tailwind utility soup across admin templates with semantic
CSS classes. Add layout primitives (stack, row, cluster, grid),
extract JS transition helpers into transitions.css, and refactor
core_components, layouts, settings, newsletter, order_show, providers,
and theme editor templates.
Utility occurrences reduced from 290+ to 127 across admin files.
All 1679 tests pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 17:15:25 +00:00
|
|
|
<div class="admin-card-toolbar">
|
2026-02-12 08:35:22 +00:00
|
|
|
<.link
|
|
|
|
|
navigate={~p"/admin/providers/#{connection.id}/edit"}
|
2026-02-17 23:05:01 +00:00
|
|
|
class="admin-btn admin-btn-ghost admin-btn-sm"
|
2026-02-12 08:35:22 +00:00
|
|
|
>
|
|
|
|
|
Settings
|
|
|
|
|
</.link>
|
2026-01-31 22:08:34 +00:00
|
|
|
<button
|
2026-02-12 08:35:22 +00:00
|
|
|
phx-click="delete"
|
2026-01-31 22:08:34 +00:00
|
|
|
phx-value-id={connection.id}
|
add setup onboarding page, dashboard launch checklist, provider registry
- new /setup page with three-section onboarding (account, provider, payments)
- dashboard launch checklist with progress bar, go-live, dismiss
- provider registry on Provider module (single source of truth for metadata)
- payments registry for Stripe
- setup context made provider-agnostic (provider_connected, theme_customised, etc.)
- admin provider pages now fully registry-driven (no hardcoded provider names)
- auth flow: fresh installs redirect to /setup, signed_in_path respects setup state
- removed old /admin/setup wizard
- 840 tests, 0 failures
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 00:34:06 +00:00
|
|
|
data-confirm={"Disconnect from #{provider_name(connection.provider_type)}? Your synced products will remain in your shop."}
|
complete admin CSS refactor: delete utilities.css, add layout primitives
- Delete utilities.css (701 lines / 24 KB of Tailwind utility clones)
- Add layout.css with admin-stack, admin-row, admin-cluster, admin-grid
primitives and gap variants (sm, md, lg, xl)
- Add transitions.css import and layout.css import to admin.css entry point
- Replace all Tailwind utility classes across 26 admin templates with
semantic admin-*/theme-*/page-specific CSS classes
- Replace all non-dynamic inline styles with semantic classes
- Add ~100 new semantic classes to components.css (analytics, dashboard,
order detail, settings, theme editor, generic utilities)
- Fix stray text-error → admin-text-error in media.ex
- Add missing .truncate definition to admin CSS
- Only remaining inline styles are dynamic data values (progress bars,
chart dimensions) and one JS.toggle target
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 21:40:21 +00:00
|
|
|
class="admin-btn admin-btn-ghost admin-btn-sm admin-text-error"
|
2026-01-31 22:08:34 +00:00
|
|
|
>
|
2026-02-12 08:35:22 +00:00
|
|
|
Disconnect
|
2026-01-31 22:08:34 +00:00
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2026-02-12 08:35:22 +00:00
|
|
|
|
2026-02-17 23:05:01 +00:00
|
|
|
<div class="admin-card-actions">
|
2026-02-12 08:35:22 +00:00
|
|
|
<button
|
|
|
|
|
phx-click="sync"
|
|
|
|
|
phx-value-id={connection.id}
|
|
|
|
|
disabled={connection.sync_status == "syncing"}
|
2026-02-17 23:05:01 +00:00
|
|
|
class="admin-btn admin-btn-outline admin-btn-sm"
|
2026-02-12 08:35:22 +00:00
|
|
|
>
|
|
|
|
|
<.icon
|
|
|
|
|
name="hero-arrow-path"
|
|
|
|
|
class={
|
|
|
|
|
if connection.sync_status == "syncing", do: "size-4 animate-spin", else: "size-4"
|
|
|
|
|
}
|
|
|
|
|
/>
|
|
|
|
|
{if connection.sync_status == "syncing", do: "Syncing...", else: "Sync products"}
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
2026-01-31 22:08:34 +00:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2026-02-12 08:35:22 +00:00
|
|
|
</div>
|