* feat(oauth): add Pocket-ID OAuth provider component - Implements PocketIdSetting.svelte following Keycloak pattern - Configures OIDC endpoints for Pocket-ID (/authorize, /api/oidc/*) - Supports standard OIDC scopes (openid, profile, email) - Uses passkey-only authentication via Pocket-ID Refs #5678 * feat(oauth): register Pocket-ID in SSO provider list - Import PocketIdSetting component - Add Pocket-ID to provider list in SSO tab - Update exclusion filter to prevent duplicate custom entries Refs #5678 * fix(oauth): add missing PocketID icon and fix component integration - Create PocketIdIcon.svelte component with user profile icon - Register pocket-id in APP_TO_ICON_COMPONENT mapping - Fix PocketIdSetting to use IconedResourceType pattern matching other OAuth providers This resolves the issue where PocketID toggle was not appearing in SSO settings. Refs #5678 * refactor: migrate PocketIdSetting to Svelte 5 runes syntax - Use $props() with $bindable() for reactive prop binding - Use $state() for local reactive state - Use $derived() for computed values - Use $effect() for reactive side effects - Replace on:change with onchange event handler - Pre-populate base URL from existing config when editing - Clean up bracket notation to dot notation for value properties Addresses reviewer feedback * fix: rename pocket-id to pocketid for naming convention compliance Change identifier from 'pocket-id' to 'pocketid' to match Windmill's naming convention. No OAuth provider uses hyphens - all custom SSO providers (keycloak, authentik, authelia, kanidm, zitadel) use no separator. Changes: - AuthSettings.svelte: oauths['pocket-id'] → oauths['pocketid'] (2 locations) - PocketIdSetting.svelte: name={'pocket-id'} → name={'pocketid'} - icons/index.ts: 'pocket-id': PocketIdIcon → pocketid: PocketIdIcon Note: PocketID does not need oauth_connect.json entry as it's a custom SSO provider with user-configured endpoints, similar to Keycloak/Authentik. Addresses reviewer feedback * fix: use TextInput component for consistency --------- Co-authored-by: hugocasa <hugo@casademont.ch>
Windmill frontend
The Windmill frontend written in Svelte 5 + Tailwind CSS
The frontend is under AGPL, see the LICENSE file at the root of this repo