Skip to content

refactor(web): adopt shadcn form controls in schedules, accounts, comments - #260

Merged
ajianaz merged 1 commit into
developfrom
refactor/web-adopt-shadcn-form-controls
Sep 10, 2026
Merged

ajianaz merged 1 commit into
developfrom
refactor/web-adopt-shadcn-form-controls

Conversation

@ajianaz

@ajianaz ajianaz commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Context

Continues the shadcn/ui adoption line from #230 (Settings rebuild) and #231 (DataTable/StatusBadge consistency). After those landed, a static scan showed the remaining raw form controls (<input>/<select>/<textarea> with legacy form-input classes) were concentrated in three admin pages. This PR finishes the form-control adoption so all admin pages build forms from the same design system.

Changes

Schedules

  • Filter bar: search + from/to date inputs → Input
  • Create modal: scheduled-at datetime, image URL, carousel URL rows → Input
  • Create modal: bundle-item media type <select> → Select.Root, caption <textarea> → Textarea, bundle image URL → Input
  • Edit modal: scheduled-at datetime → Input
  • Dropped legacy class="form-input" from the already-adopted Textarea usages (caption, edit caption, reject reason)

Accounts

  • Add Account form (user ID, username, access token, expiry, app ID, app secret) → Input

Comments

  • Search field → Input

CSS cleanup (Schedules)

  • Removed .form-group:has(> input[type='date']) mobile grid rule — it only set the default grid-column: span 1, and the :has(> input) child no longer survives Svelte scoping now that Input is a component
  • .carousel-url-row .form-input → .carousel-url-row :global(input) so the flex: 1 rule keeps applying to the component-rendered input

Intentionally untouched: custom non-form interactive elements (thumbnail lightbox buttons, calendar cal-item buttons, sidebar hamburger/backdrop/logout, OAuth connect button, hidden file input inside the Media upload button).

Verification

  • vite build passes (exit 0)
  • svelte-check: 1 error / 36 warnings — identical to the pre-change baseline (the single error is the pre-existing process typing issue in hooks.server.ts, unrelated)
  • Raw form controls in admin routes: 0 (grep-verified)

…ments

Following #230/#231, replace the remaining raw form controls in admin
pages with shadcn/ui components:

- Schedules: filter search + date-range inputs, create/edit modal
  datetime inputs, image/carousel URL inputs, and the bundle-item
  select + textarea now use shadcn Input/Select/Textarea; drop the
  legacy form-input classes still attached to already-adopted
  Textareas
- Accounts: Add Account form fields (user ID, username, access token,
  expiry, app ID/secret) now use shadcn Input
- Comments: search field now uses shadcn Input

- remove CSS orphaned by the swap: the mobile
  .form-group:has(> input[type='date']) grid rule (redundant default
  span) and .carousel-url-row .form-input, the latter replaced with
  :global(input) so the flex layout still applies to the component
- custom non-form elements (thumbnail lightbox buttons, calendar cell
  buttons, sidebar hamburger, OAuth connect button) intentionally stay
  as-is

Raw form controls in admin routes are now zero. svelte-check matches
the pre-existing baseline (1 known process typing error, 36 warnings);
vite build passes.
@github-actions

Copy link
Copy Markdown

🔍 Cora AI Code Review

✅ No issues found. Code looks good!


Review powered by cora-code · BYOK · MIT

@ajianaz
ajianaz merged commit cbb68e6 into develop Sep 10, 2026
12 checks passed
@ajianaz
ajianaz deleted the refactor/web-adopt-shadcn-form-controls branch September 10, 2026 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant