Skip to content

feat: Use @openshock/svelte-core shared JS library#222

Open
hhvrc wants to merge 3 commits into
developfrom
feat/use-svelte-core
Open

feat: Use @openshock/svelte-core shared JS library#222
hhvrc wants to merge 3 commits into
developfrom
feat/use-svelte-core

Conversation

@hhvrc

@hhvrc hhvrc commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Migrate the frontend onto the shared @openshock/svelte-core library:

  • shadcn-svelte ui/ now imported via the $hadcn alias; local ui/ tree removed
  • shared components (Code, Keyboard, metadata, svg, datetime-picker, dialog-manager, input fields, etc.) and modules (cn, pure utils, type guards, validators, shared types, is-mobile, pwned-passwords) now from $core; local copies deleted
  • LightSwitch and PasswordInput rewired to the library's decoupled APIs (injected color-scheme; forgotHref/onPwnedCheckError)
  • design-system theme via @import '@openshock/svelte-core/theme.css'
  • add $core and $hadcn aliases pointing at the package's dist

App-coupled code (ControlModules, shares, Turnstile, errorGuards, usernameValidator, etc.) stays local.


Open in Stage

…heme

Migrate the frontend onto the shared @openshock/svelte-core library:
- shadcn-svelte ui/ now imported via the $hadcn alias; local ui/ tree removed
- shared components (Code, Keyboard, metadata, svg, datetime-picker,
  dialog-manager, input fields, etc.) and modules (cn, pure utils, type guards,
  validators, shared types, is-mobile, pwned-passwords) now from $core; local
  copies deleted
- LightSwitch and PasswordInput rewired to the library's decoupled APIs
  (injected color-scheme; forgotHref/onPwnedCheckError)
- design-system theme via @import '@openshock/svelte-core/theme.css'
- add $core and $hadcn aliases pointing at the package's dist

App-coupled code (ControlModules, shares, Turnstile, errorGuards,
usernameValidator, etc.) stays local.
@hhvrc hhvrc self-assigned this Jun 25, 2026
@stage-review

stage-review Bot commented Jun 25, 2026

Copy link
Copy Markdown

Ready to review this PR? Stage has broken it down into 7 individual chapters for you:

Title
1 Add core library dependency and workspace config
2 Remove local shadcn and utility implementations
3 Migrate global styles and client hooks
4 Update API and state layer imports
5 Update shared component and utility imports
6 Update route-level component and utility imports
7 Other changes
Open in Stage

Chapters generated by Stage for commit e88a25b on Jun 26, 2026 1:39pm UTC.

hhvrc added 2 commits June 26, 2026 14:09
…tate

- Bump @openshock/svelte-core to ^0.2.1
- Re-point colorScheme and PersistedState imports to $core/state
- Delete the now-duplicated local color-scheme-state and PersistedState
  (incl. its test); state/classes/ is gone
- Header uses the self-contained <LightSwitch /> again (no prop wiring),
  matching the original implementation now living in the library

Tailwind picks up the library's component classes via the
`@source './components'` that svelte-core's theme.css self-registers as of
0.2.1, so no app-side @source is needed.
Bump @openshock/svelte-core to ^0.2.2 and switch every import from the
$core/$hadcn filesystem aliases to package-name subpaths, going through
the library's JS barrels (ui/*, components, components/input,
components/svg, components/datetime-picker, components/dialog-manager)
instead of raw .svelte file paths.

Importing a library's raw .svelte files (via alias or deep subpath) made
Vite's dep optimizer crawl/pre-bundle them, which broke the dev
dependency scan and caused a hydration crash. Barrel (JS) entries let
vite-plugin-svelte treat the package as a Svelte library. The $core/$hadcn
aliases are removed from svelte.config.js.
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