@kromatv/sdk 0.1.40-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +80 -0
- package/dist/cli.js +2523 -0
- package/package.json +78 -0
- package/rust/Cargo.toml +3 -0
- package/rust/kroma-db/Cargo.toml +27 -0
- package/rust/kroma-db/src/accounts/access_tokens.rs +197 -0
- package/rust/kroma-db/src/accounts/credentials.rs +97 -0
- package/rust/kroma-db/src/accounts/invites.rs +136 -0
- package/rust/kroma-db/src/accounts/preferences.rs +100 -0
- package/rust/kroma-db/src/accounts/resets.rs +202 -0
- package/rust/kroma-db/src/accounts/sessions.rs +182 -0
- package/rust/kroma-db/src/accounts/test_support.rs +14 -0
- package/rust/kroma-db/src/accounts/verifications.rs +185 -0
- package/rust/kroma-db/src/accounts.rs +244 -0
- package/rust/kroma-db/src/admin/metrics.rs +201 -0
- package/rust/kroma-db/src/admin/play_history.rs +361 -0
- package/rust/kroma-db/src/admin/play_sort.rs +113 -0
- package/rust/kroma-db/src/admin/stats.rs +108 -0
- package/rust/kroma-db/src/admin/test_support.rs +83 -0
- package/rust/kroma-db/src/admin/watch_stats.rs +458 -0
- package/rust/kroma-db/src/admin.rs +226 -0
- package/rust/kroma-db/src/audio_analysis.rs +253 -0
- package/rust/kroma-db/src/backup/module_stores.rs +204 -0
- package/rust/kroma-db/src/backup/rows.rs +155 -0
- package/rust/kroma-db/src/backup/test_support.rs +61 -0
- package/rust/kroma-db/src/backup.rs +306 -0
- package/rust/kroma-db/src/catalog_query/find_titles.rs +316 -0
- package/rust/kroma-db/src/catalog_query/test_support.rs +88 -0
- package/rust/kroma-db/src/catalog_query.rs +198 -0
- package/rust/kroma-db/src/chunked.rs +36 -0
- package/rust/kroma-db/src/core_tables.rs +99 -0
- package/rust/kroma-db/src/curated.rs +192 -0
- package/rust/kroma-db/src/downloaded_subs.rs +136 -0
- package/rust/kroma-db/src/downloads.rs +219 -0
- package/rust/kroma-db/src/grant/escapes/schema.rs +120 -0
- package/rust/kroma-db/src/grant/escapes/statements.rs +170 -0
- package/rust/kroma-db/src/grant/escapes.rs +141 -0
- package/rust/kroma-db/src/grant/tests.rs +255 -0
- package/rust/kroma-db/src/grant.rs +203 -0
- package/rust/kroma-db/src/home/genre_guard.rs +249 -0
- package/rust/kroma-db/src/home/hydration.rs +126 -0
- package/rust/kroma-db/src/home/test_support.rs +60 -0
- package/rust/kroma-db/src/home.rs +244 -0
- package/rust/kroma-db/src/hydrate.rs +296 -0
- package/rust/kroma-db/src/ingest/metadata.rs +648 -0
- package/rust/kroma-db/src/ingest/probe.rs +171 -0
- package/rust/kroma-db/src/ingest/probe_result.rs +178 -0
- package/rust/kroma-db/src/ingest/scanned_files.rs +235 -0
- package/rust/kroma-db/src/ingest/sync.rs +291 -0
- package/rust/kroma-db/src/ingest/test_support.rs +114 -0
- package/rust/kroma-db/src/ingest.rs +20 -0
- package/rust/kroma-db/src/jobs.rs +269 -0
- package/rust/kroma-db/src/lib.rs +97 -0
- package/rust/kroma-db/src/library.rs +66 -0
- package/rust/kroma-db/src/localize/items.rs +303 -0
- package/rust/kroma-db/src/localize/shows.rs +192 -0
- package/rust/kroma-db/src/localize/test_support.rs +91 -0
- package/rust/kroma-db/src/localize.rs +105 -0
- package/rust/kroma-db/src/markers.rs +203 -0
- package/rust/kroma-db/src/media/person.rs +213 -0
- package/rust/kroma-db/src/media/show_detail.rs +186 -0
- package/rust/kroma-db/src/media/shows.rs +202 -0
- package/rust/kroma-db/src/media/splash.rs +199 -0
- package/rust/kroma-db/src/media/test_support.rs +31 -0
- package/rust/kroma-db/src/media.rs +296 -0
- package/rust/kroma-db/src/metadata_core.rs +348 -0
- package/rust/kroma-db/src/notifications/digest.rs +143 -0
- package/rust/kroma-db/src/notifications/preferences.rs +138 -0
- package/rust/kroma-db/src/notifications/read_state.rs +167 -0
- package/rust/kroma-db/src/notifications/test_support.rs +50 -0
- package/rust/kroma-db/src/notifications.rs +232 -0
- package/rust/kroma-db/src/passkeys.rs +163 -0
- package/rust/kroma-db/src/pipeline/ops/drain.rs +266 -0
- package/rust/kroma-db/src/pipeline/ops/reconcile.rs +274 -0
- package/rust/kroma-db/src/pipeline/ops/test_support.rs +48 -0
- package/rust/kroma-db/src/pipeline/ops.rs +49 -0
- package/rust/kroma-db/src/pipeline/query/elements.rs +200 -0
- package/rust/kroma-db/src/pipeline/query/test_support.rs +23 -0
- package/rust/kroma-db/src/pipeline/query.rs +255 -0
- package/rust/kroma-db/src/pipeline/tests.rs +319 -0
- package/rust/kroma-db/src/pipeline.rs +26 -0
- package/rust/kroma-db/src/playback/continue_watching.rs +289 -0
- package/rust/kroma-db/src/playback/on_deck.rs +53 -0
- package/rust/kroma-db/src/playback/show_progress.rs +230 -0
- package/rust/kroma-db/src/playback/test_support.rs +55 -0
- package/rust/kroma-db/src/playback/up_next.rs +208 -0
- package/rust/kroma-db/src/playback/watch_state.rs +129 -0
- package/rust/kroma-db/src/playback.rs +196 -0
- package/rust/kroma-db/src/pool.rs +117 -0
- package/rust/kroma-db/src/push_subs.rs +323 -0
- package/rust/kroma-db/src/reports.rs +231 -0
- package/rust/kroma-db/src/requests/availability.rs +211 -0
- package/rust/kroma-db/src/requests/calendar.rs +221 -0
- package/rust/kroma-db/src/requests/gaps.rs +213 -0
- package/rust/kroma-db/src/requests/search_queue.rs +352 -0
- package/rust/kroma-db/src/requests/tests.rs +289 -0
- package/rust/kroma-db/src/requests/wanted.rs +351 -0
- package/rust/kroma-db/src/requests.rs +245 -0
- package/rust/kroma-db/src/rows.rs +190 -0
- package/rust/kroma-db/src/schema/ddl.rs +678 -0
- package/rust/kroma-db/src/schema/migrations.rs +261 -0
- package/rust/kroma-db/src/schema.rs +273 -0
- package/rust/kroma-db/src/suggest.rs +129 -0
- package/rust/kroma-db/src/taste.rs +77 -0
- package/rust/kroma-db/src/testing.rs +63 -0
- package/rust/kroma-db/src/tmdb_pin.rs +133 -0
- package/rust/kroma-db/src/translations.rs +569 -0
- package/rust/kroma-db/src/vectors/recommendations.rs +164 -0
- package/rust/kroma-db/src/vectors/search.rs +213 -0
- package/rust/kroma-db/src/vectors/test_support.rs +31 -0
- package/rust/kroma-db/src/vectors.rs +161 -0
- package/rust/kroma-domain/Cargo.toml +17 -0
- package/rust/kroma-domain/src/accounts.rs +181 -0
- package/rust/kroma-domain/src/admin.rs +197 -0
- package/rust/kroma-domain/src/cast.rs +178 -0
- package/rust/kroma-domain/src/crash.rs +48 -0
- package/rust/kroma-domain/src/jobs.rs +119 -0
- package/rust/kroma-domain/src/lib.rs +44 -0
- package/rust/kroma-domain/src/library.rs +21 -0
- package/rust/kroma-domain/src/matching/mod.rs +293 -0
- package/rust/kroma-domain/src/matching/normalize.rs +193 -0
- package/rust/kroma-domain/src/media.rs +297 -0
- package/rust/kroma-domain/src/metadata.rs +389 -0
- package/rust/kroma-domain/src/naming/marker.rs +215 -0
- package/rust/kroma-domain/src/naming/mod.rs +283 -0
- package/rust/kroma-domain/src/naming/title.rs +349 -0
- package/rust/kroma-domain/src/notifications/action.rs +50 -0
- package/rust/kroma-domain/src/notifications/event.rs +225 -0
- package/rust/kroma-domain/src/notifications/mod.rs +18 -0
- package/rust/kroma-domain/src/notifications/param.rs +90 -0
- package/rust/kroma-domain/src/notifications/spec.rs +178 -0
- package/rust/kroma-domain/src/notifications/view.rs +55 -0
- package/rust/kroma-domain/src/people.rs +286 -0
- package/rust/kroma-domain/src/pipeline.rs +114 -0
- package/rust/kroma-domain/src/playback.rs +39 -0
- package/rust/kroma-domain/src/push.rs +163 -0
- package/rust/kroma-domain/src/reports.rs +213 -0
- package/rust/kroma-domain/src/requests/discover.rs +102 -0
- package/rust/kroma-domain/src/requests/ledger.rs +129 -0
- package/rust/kroma-domain/src/requests/mod.rs +238 -0
- package/rust/kroma-domain/src/section.rs +44 -0
- package/rust/kroma-domain/src/slug.rs +165 -0
- package/rust/kroma-http/Cargo.toml +20 -0
- package/rust/kroma-http/examples/seam-bench.rs +73 -0
- package/rust/kroma-http/src/builder.rs +35 -0
- package/rust/kroma-http/src/config.rs +50 -0
- package/rust/kroma-http/src/curl.rs +131 -0
- package/rust/kroma-http/src/fetch.rs +226 -0
- package/rust/kroma-http/src/lib.rs +25 -0
- package/rust/kroma-http/src/loopback/mod.rs +220 -0
- package/rust/kroma-http/src/loopback/tcp.rs +182 -0
- package/rust/kroma-http/src/loopback/transport.rs +42 -0
- package/rust/kroma-http/src/response.rs +130 -0
- package/rust/kroma-module-host/Cargo.toml +36 -0
- package/rust/kroma-module-host/src/auth.rs +221 -0
- package/rust/kroma-module-host/src/host_ctx.rs +382 -0
- package/rust/kroma-module-host/src/host_token.rs +147 -0
- package/rust/kroma-module-host/src/lib.rs +141 -0
- package/rust/kroma-module-host/src/module.rs +115 -0
- package/rust/kroma-module-host/src/port.rs +163 -0
- package/rust/kroma-module-host/src/storage.rs +97 -0
- package/rust/kroma-module-host/src/test_serve.rs +33 -0
- package/rust/kroma-module-host/src/testing/log.rs +145 -0
- package/rust/kroma-module-host/src/testing/mod.rs +72 -0
- package/rust/kroma-module-host/src/testing/recording.rs +209 -0
- package/rust/kroma-module-host/src/testing/stub.rs +592 -0
- package/rust/kroma-module-macros/Cargo.toml +12 -0
- package/rust/kroma-module-macros/src/lib.rs +148 -0
- package/rust/kroma-module-manifest/Cargo.toml +15 -0
- package/rust/kroma-module-manifest/src/compat.rs +157 -0
- package/rust/kroma-module-manifest/src/embedded.rs +160 -0
- package/rust/kroma-module-manifest/src/event.rs +74 -0
- package/rust/kroma-module-manifest/src/lib.rs +57 -0
- package/rust/kroma-module-manifest/src/manifest.rs +548 -0
- package/rust/kroma-module-manifest/src/registry.rs +626 -0
- package/rust/kroma-module-runtime/Cargo.toml +33 -0
- package/rust/kroma-module-runtime/src/lib.rs +743 -0
- package/rust/kroma-module-sdk/Cargo.toml +49 -0
- package/rust/kroma-module-sdk/src/lib.rs +70 -0
- package/rust/kroma-primitives/Cargo.toml +12 -0
- package/rust/kroma-primitives/src/lib.rs +101 -0
- package/rust/kroma-testing/Cargo.toml +10 -0
- package/rust/kroma-testing/src/lib.rs +72 -0
- package/templates/base/README.md +14 -0
- package/templates/base/_gitignore +4 -0
- package/templates/base/icon.svg +1 -0
- package/templates/base/locales/en.json +7 -0
- package/templates/base/locales/fr.json +7 -0
- package/templates/server/.cargo/config.toml +2 -0
- package/templates/server/rust-toolchain.toml +3 -0
- package/templates/server/server/Cargo.toml +37 -0
- package/templates/server/server/src/bin/module.rs +6 -0
- package/templates/server/server/src/lib.rs +43 -0
- package/templates/ui/ui/src/__PAGE__.tsx +22 -0
- package/templates/ui/ui/src/module.tsx +17 -0
- package/templates/ui/ui/src/schemas.ts +6 -0
- package/tsconfig.module.json +110 -0
- package/types/client/src/api/accounts/client.d.ts +291 -0
- package/types/client/src/api/accounts/ids.d.ts +13 -0
- package/types/client/src/api/accounts/index.d.ts +6 -0
- package/types/client/src/api/accounts/passkeys.d.ts +79 -0
- package/types/client/src/api/accounts/quick-connect.d.ts +23 -0
- package/types/client/src/api/accounts/remembered.d.ts +66 -0
- package/types/client/src/api/accounts/rules.d.ts +9 -0
- package/types/client/src/api/accounts/schemas.d.ts +214 -0
- package/types/client/src/api/admin/backup.d.ts +22 -0
- package/types/client/src/api/admin/client.d.ts +407 -0
- package/types/client/src/api/admin/index.d.ts +7 -0
- package/types/client/src/api/admin/logs.d.ts +24 -0
- package/types/client/src/api/admin/metrics.d.ts +231 -0
- package/types/client/src/api/admin/notifications.d.ts +47 -0
- package/types/client/src/api/admin/settings.d.ts +50 -0
- package/types/client/src/api/admin/stats.d.ts +257 -0
- package/types/client/src/api/admin/users.d.ts +98 -0
- package/types/client/src/api/cast/client.d.ts +209 -0
- package/types/client/src/api/cast/ids.d.ts +4 -0
- package/types/client/src/api/cast/index.d.ts +3 -0
- package/types/client/src/api/cast/schemas.d.ts +565 -0
- package/types/client/src/api/diagnostics/client.d.ts +13 -0
- package/types/client/src/api/diagnostics/index.d.ts +2 -0
- package/types/client/src/api/diagnostics/schemas.d.ts +29 -0
- package/types/client/src/api/discover.d.ts +5 -0
- package/types/client/src/api/discover.web.d.ts +5 -0
- package/types/client/src/api/discovery/client.d.ts +115 -0
- package/types/client/src/api/discovery/index.d.ts +2 -0
- package/types/client/src/api/discovery/schemas.d.ts +175 -0
- package/types/client/src/api/events/index.d.ts +2 -0
- package/types/client/src/api/events/schemas.d.ts +371 -0
- package/types/client/src/api/events/socket.d.ts +42 -0
- package/types/client/src/api/handoff/client.d.ts +68 -0
- package/types/client/src/api/handoff/ids.d.ts +4 -0
- package/types/client/src/api/handoff/index.d.ts +3 -0
- package/types/client/src/api/handoff/schemas.d.ts +93 -0
- package/types/client/src/api/jobs/client.d.ts +96 -0
- package/types/client/src/api/jobs/ids.d.ts +5 -0
- package/types/client/src/api/jobs/index.d.ts +3 -0
- package/types/client/src/api/jobs/schemas.d.ts +168 -0
- package/types/client/src/api/library/client.d.ts +45 -0
- package/types/client/src/api/library/index.d.ts +2 -0
- package/types/client/src/api/library/schemas.d.ts +28 -0
- package/types/client/src/api/llm/client.d.ts +37 -0
- package/types/client/src/api/llm/ids.d.ts +3 -0
- package/types/client/src/api/llm/index.d.ts +3 -0
- package/types/client/src/api/llm/schemas.d.ts +74 -0
- package/types/client/src/api/media/artwork-scale.d.ts +18 -0
- package/types/client/src/api/media/artwork.d.ts +31 -0
- package/types/client/src/api/media/client.d.ts +2160 -0
- package/types/client/src/api/media/credits.d.ts +46 -0
- package/types/client/src/api/media/ids.d.ts +12 -0
- package/types/client/src/api/media/index.d.ts +7 -0
- package/types/client/src/api/media/rematch.d.ts +31 -0
- package/types/client/src/api/media/schemas.d.ts +1607 -0
- package/types/client/src/api/media/search.d.ts +1044 -0
- package/types/client/src/api/media/tracks.d.ts +152 -0
- package/types/client/src/api/modules/client.d.ts +38 -0
- package/types/client/src/api/modules/ids.d.ts +3 -0
- package/types/client/src/api/modules/index.d.ts +5 -0
- package/types/client/src/api/modules/module-api.d.ts +23 -0
- package/types/client/src/api/modules/schemas.d.ts +74 -0
- package/types/client/src/api/modules/store.d.ts +226 -0
- package/types/client/src/api/notifications/capability.d.ts +36 -0
- package/types/client/src/api/notifications/client.d.ts +79 -0
- package/types/client/src/api/notifications/ids.d.ts +3 -0
- package/types/client/src/api/notifications/index.d.ts +4 -0
- package/types/client/src/api/notifications/push.d.ts +18 -0
- package/types/client/src/api/notifications/schemas.d.ts +235 -0
- package/types/client/src/api/pipeline/client.d.ts +126 -0
- package/types/client/src/api/pipeline/index.d.ts +2 -0
- package/types/client/src/api/pipeline/schemas.d.ts +139 -0
- package/types/client/src/api/playback/client.d.ts +681 -0
- package/types/client/src/api/playback/ids.d.ts +3 -0
- package/types/client/src/api/playback/index.d.ts +3 -0
- package/types/client/src/api/playback/schemas.d.ts +38 -0
- package/types/client/src/api/reports/client.d.ts +117 -0
- package/types/client/src/api/reports/ids.d.ts +3 -0
- package/types/client/src/api/reports/index.d.ts +3 -0
- package/types/client/src/api/reports/schemas.d.ts +144 -0
- package/types/client/src/api/requests/acquisition.d.ts +240 -0
- package/types/client/src/api/requests/client.d.ts +301 -0
- package/types/client/src/api/requests/ids.d.ts +7 -0
- package/types/client/src/api/requests/index.d.ts +4 -0
- package/types/client/src/api/requests/schemas.d.ts +162 -0
- package/types/client/src/api/subtitles/client.d.ts +48 -0
- package/types/client/src/api/subtitles/ids.d.ts +5 -0
- package/types/client/src/api/subtitles/index.d.ts +3 -0
- package/types/client/src/api/subtitles/schemas.d.ts +78 -0
- package/types/client/src/core/client.d.ts +17 -0
- package/types/client/src/core/http/api-error.d.ts +36 -0
- package/types/client/src/core/http/body.d.ts +1 -0
- package/types/client/src/core/http/concurrency.d.ts +8 -0
- package/types/client/src/core/http/index.d.ts +6 -0
- package/types/client/src/core/http/path.d.ts +10 -0
- package/types/client/src/core/http/preconnect.d.ts +2 -0
- package/types/client/src/core/http/query.d.ts +9 -0
- package/types/client/src/core/http/request-context.d.ts +94 -0
- package/types/client/src/core/http/user-agent.d.ts +7 -0
- package/types/client/src/core/ids/ids.d.ts +13 -0
- package/types/client/src/core/ids/index.d.ts +1 -0
- package/types/client/src/core/index.d.ts +4 -0
- package/types/client/src/core/session/index.d.ts +3 -0
- package/types/client/src/core/session/locale.d.ts +6 -0
- package/types/client/src/core/session/storage.d.ts +32 -0
- package/types/client/src/core/session/token.d.ts +19 -0
- package/types/client/src/index.d.ts +3 -0
- package/types/client/src/kroma-client.d.ts +49 -0
- package/types/client/src/query/index.d.ts +35 -0
- package/types/core/src/airdate.d.ts +21 -0
- package/types/core/src/browse.d.ts +45 -0
- package/types/core/src/compat.d.ts +9 -0
- package/types/core/src/discover.d.ts +31 -0
- package/types/core/src/format.d.ts +63 -0
- package/types/core/src/genre-art.d.ts +21 -0
- package/types/core/src/genre-table.d.ts +117 -0
- package/types/core/src/genre.d.ts +42 -0
- package/types/core/src/handoff/beacon.d.ts +39 -0
- package/types/core/src/handoff/grant.d.ts +20 -0
- package/types/core/src/handoff/index.d.ts +8 -0
- package/types/core/src/handoff/nearby.d.ts +17 -0
- package/types/core/src/handoff/sources.d.ts +110 -0
- package/types/core/src/health-probe.d.ts +19 -0
- package/types/core/src/hevc/audio-support.d.ts +47 -0
- package/types/core/src/hevc/capabilities.d.ts +63 -0
- package/types/core/src/hevc/directplay.d.ts +70 -0
- package/types/core/src/hevc/engine.d.ts +29 -0
- package/types/core/src/hevc.d.ts +4 -0
- package/types/core/src/i18n.d.ts +2381 -0
- package/types/core/src/index.d.ts +25 -0
- package/types/core/src/intl.d.ts +28 -0
- package/types/core/src/lang-table.d.ts +11 -0
- package/types/core/src/lang.d.ts +59 -0
- package/types/core/src/local-ip.d.ts +2 -0
- package/types/core/src/locales/catalogs.d.ts +2 -0
- package/types/core/src/locales/catalogs.web.d.ts +3 -0
- package/types/core/src/locales/default-locale.d.ts +3 -0
- package/types/core/src/match.d.ts +14 -0
- package/types/core/src/notification-labels.d.ts +47 -0
- package/types/core/src/people.d.ts +33 -0
- package/types/core/src/permissions.d.ts +10 -0
- package/types/core/src/person-facts.d.ts +23 -0
- package/types/core/src/platform.d.ts +7 -0
- package/types/core/src/playback-buffer.d.ts +64 -0
- package/types/core/src/playback-stall.d.ts +86 -0
- package/types/core/src/player.d.ts +22 -0
- package/types/core/src/push-labels.d.ts +6 -0
- package/types/core/src/react/handoff-picker.d.ts +52 -0
- package/types/core/src/react/index.d.ts +6 -0
- package/types/core/src/react/lang-prefs.d.ts +35 -0
- package/types/core/src/react/nearby-tvs.d.ts +31 -0
- package/types/core/src/remote.d.ts +26 -0
- package/types/core/src/server-origin.d.ts +12 -0
- package/types/core/src/slug.d.ts +4 -0
- package/types/core/src/subtitles.d.ts +20 -0
- package/types/i18n/src/announce.d.ts +15 -0
- package/types/i18n/src/catalog-types.d.ts +7 -0
- package/types/i18n/src/chain.d.ts +22 -0
- package/types/i18n/src/define.d.ts +39 -0
- package/types/i18n/src/dev-overrides.d.ts +39 -0
- package/types/i18n/src/i18n.d.ts +61 -0
- package/types/i18n/src/index.d.ts +11 -0
- package/types/i18n/src/interpolate.d.ts +14 -0
- package/types/i18n/src/layout.d.ts +18 -0
- package/types/i18n/src/locales.d.ts +12 -0
- package/types/i18n/src/namespaces.d.ts +37 -0
- package/types/i18n/src/nest.d.ts +17 -0
- package/types/i18n/src/plural.d.ts +20 -0
- package/types/i18n/src/react/context.d.ts +37 -0
- package/types/i18n/src/react/index.d.ts +2 -0
- package/types/i18n/src/react/provider.d.ts +14 -0
- package/types/i18n/src/registry.d.ts +36 -0
- package/types/i18n/src/store.d.ts +46 -0
- package/types/i18n/src/types.d.ts +30 -0
- package/types/module-sdk/src/admin/context.d.ts +20 -0
- package/types/module-sdk/src/admin/denied.d.ts +1 -0
- package/types/module-sdk/src/admin/engines.d.ts +35 -0
- package/types/module-sdk/src/admin/hooks.d.ts +39 -0
- package/types/module-sdk/src/admin/page-states.d.ts +27 -0
- package/types/module-sdk/src/admin/settings.d.ts +9 -0
- package/types/module-sdk/src/bus.d.ts +8 -0
- package/types/module-sdk/src/contracts.d.ts +6 -0
- package/types/module-sdk/src/define.d.ts +38 -0
- package/types/module-sdk/src/events.d.ts +11 -0
- package/types/module-sdk/src/host.d.ts +32 -0
- package/types/module-sdk/src/icon.d.ts +1 -0
- package/types/module-sdk/src/index.d.ts +35 -0
- package/types/module-sdk/src/module.d.ts +83 -0
- package/types/module-sdk/src/registry.d.ts +63 -0
- package/types/module-sdk/src/scope.d.ts +23 -0
- package/types/module-sdk/src/shared.d.ts +21 -0
- package/types/module-sdk/src/slot.d.ts +34 -0
- package/types/module-sdk/src/types.d.ts +39 -0
- package/types/module-sdk/src/ui/table.d.ts +88 -0
- package/types/module-sdk/src/use-sorted-table.d.ts +56 -0
- package/types/registry/src/build.d.ts +16 -0
- package/types/registry/src/client.d.ts +23 -0
- package/types/registry/src/documents/index.d.ts +6 -0
- package/types/registry/src/documents/v1.d.ts +197 -0
- package/types/registry/src/index.d.ts +7 -0
- package/types/registry/src/manifest/index.d.ts +9 -0
- package/types/registry/src/manifest/v2.d.ts +182 -0
- package/types/registry/src/semver.d.ts +24 -0
- package/types/registry/src/sort.d.ts +2 -0
- package/types/registry/src/spec.d.ts +19 -0
- package/types/registry/src/text.d.ts +6 -0
- package/types/spatial-nav/src/descent.d.ts +9 -0
- package/types/spatial-nav/src/directions.d.ts +16 -0
- package/types/spatial-nav/src/fallback-focus.d.ts +5 -0
- package/types/spatial-nav/src/focus-owner.d.ts +16 -0
- package/types/spatial-nav/src/focus-tree.d.ts +63 -0
- package/types/spatial-nav/src/index.d.ts +4 -0
- package/types/spatial-nav/src/navigator.bench.d.ts +1 -0
- package/types/spatial-nav/src/react/configure-remote.d.ts +16 -0
- package/types/spatial-nav/src/react/default-focus.d.ts +15 -0
- package/types/spatial-nav/src/react/focus-queue.d.ts +16 -0
- package/types/spatial-nav/src/react/navigator-context.d.ts +19 -0
- package/types/spatial-nav/src/react/navigator-item.d.ts +28 -0
- package/types/spatial-nav/src/react/navigator-node.d.ts +27 -0
- package/types/spatial-nav/src/react/navigator-root.d.ts +19 -0
- package/types/spatial-nav/src/react/navigator-view.d.ts +18 -0
- package/types/spatial-nav/src/react/pointer-device.d.ts +14 -0
- package/types/spatial-nav/src/react/spatial-node.d.ts +27 -0
- package/types/spatial-nav/src/react/use-lock-navigator.d.ts +11 -0
- package/types/spatial-nav/src/react.d.ts +17 -0
- package/types/spatial-nav/src/resolve-move.d.ts +6 -0
- package/types/spatial-nav/src/spatial-navigator.d.ts +23 -0
- package/types/ui/src/assets/fonts.d.ts +4 -0
- package/types/ui/src/components/atoms/art-scrim/art-scrim.d.ts +21 -0
- package/types/ui/src/components/atoms/art-scrim/index.d.ts +1 -0
- package/types/ui/src/components/atoms/avatar/avatar.d.ts +43 -0
- package/types/ui/src/components/atoms/avatar/index.d.ts +1 -0
- package/types/ui/src/components/atoms/badge/badge.d.ts +116 -0
- package/types/ui/src/components/atoms/badge/index.d.ts +1 -0
- package/types/ui/src/components/atoms/box/box.d.ts +29 -0
- package/types/ui/src/components/atoms/box/index.d.ts +1 -0
- package/types/ui/src/components/atoms/button/button-variants.d.ts +216 -0
- package/types/ui/src/components/atoms/button/button.d.ts +37 -0
- package/types/ui/src/components/atoms/button/index.d.ts +1 -0
- package/types/ui/src/components/atoms/checkbox/checkbox.d.ts +62 -0
- package/types/ui/src/components/atoms/checkbox/index.d.ts +1 -0
- package/types/ui/src/components/atoms/chip/chip.d.ts +172 -0
- package/types/ui/src/components/atoms/chip/index.d.ts +1 -0
- package/types/ui/src/components/atoms/divider/divider.d.ts +13 -0
- package/types/ui/src/components/atoms/divider/index.d.ts +1 -0
- package/types/ui/src/components/atoms/expandable-text/expandable-text.d.ts +20 -0
- package/types/ui/src/components/atoms/expandable-text/index.d.ts +1 -0
- package/types/ui/src/components/atoms/focusable/focusable-a11y.d.ts +12 -0
- package/types/ui/src/components/atoms/focusable/focusable-delegate.d.ts +21 -0
- package/types/ui/src/components/atoms/focusable/focusable-forms.d.ts +62 -0
- package/types/ui/src/components/atoms/focusable/focusable-link.d.ts +7 -0
- package/types/ui/src/components/atoms/focusable/focusable-paint.d.ts +47 -0
- package/types/ui/src/components/atoms/focusable/focusable-types.d.ts +167 -0
- package/types/ui/src/components/atoms/focusable/focusable.d.ts +7 -0
- package/types/ui/src/components/atoms/focusable/index.d.ts +1 -0
- package/types/ui/src/components/atoms/focusable/touch-pressable.d.ts +35 -0
- package/types/ui/src/components/atoms/focusable/use-entry-focus.d.ts +9 -0
- package/types/ui/src/components/atoms/focusable/use-web-keys.d.ts +7 -0
- package/types/ui/src/components/atoms/frost/frost.d.ts +62 -0
- package/types/ui/src/components/atoms/frost/index.d.ts +1 -0
- package/types/ui/src/components/atoms/grid/grid.d.ts +28 -0
- package/types/ui/src/components/atoms/grid/index.d.ts +1 -0
- package/types/ui/src/components/atoms/ground/ground.d.ts +19 -0
- package/types/ui/src/components/atoms/ground/index.d.ts +1 -0
- package/types/ui/src/components/atoms/icon/icon.d.ts +4 -0
- package/types/ui/src/components/atoms/icon/index.d.ts +1 -0
- package/types/ui/src/components/atoms/icon-button/icon-button.d.ts +165 -0
- package/types/ui/src/components/atoms/icon-button/index.d.ts +1 -0
- package/types/ui/src/components/atoms/icon-well/icon-well.d.ts +46 -0
- package/types/ui/src/components/atoms/icon-well/index.d.ts +1 -0
- package/types/ui/src/components/atoms/img/img.d.ts +45 -0
- package/types/ui/src/components/atoms/img/index.d.ts +1 -0
- package/types/ui/src/components/atoms/img/native-layers.d.ts +28 -0
- package/types/ui/src/components/atoms/img/use-cross-fade.d.ts +9 -0
- package/types/ui/src/components/atoms/img/web-layers.d.ts +19 -0
- package/types/ui/src/components/atoms/index.d.ts +64 -0
- package/types/ui/src/components/atoms/kbd/index.d.ts +2 -0
- package/types/ui/src/components/atoms/kbd/kbd.d.ts +18 -0
- package/types/ui/src/components/atoms/logo/index.d.ts +1 -0
- package/types/ui/src/components/atoms/logo/logo.d.ts +11 -0
- package/types/ui/src/components/atoms/number-field/index.d.ts +1 -0
- package/types/ui/src/components/atoms/number-field/number-field.d.ts +11 -0
- package/types/ui/src/components/atoms/progress/index.d.ts +1 -0
- package/types/ui/src/components/atoms/progress/progress.d.ts +28 -0
- package/types/ui/src/components/atoms/progress-ring/index.d.ts +1 -0
- package/types/ui/src/components/atoms/progress-ring/progress-ring.d.ts +7 -0
- package/types/ui/src/components/atoms/radio/index.d.ts +1 -0
- package/types/ui/src/components/atoms/radio/radio.d.ts +76 -0
- package/types/ui/src/components/atoms/skeleton/card-skeleton.d.ts +6 -0
- package/types/ui/src/components/atoms/skeleton/index.d.ts +4 -0
- package/types/ui/src/components/atoms/skeleton/poster-skeleton.d.ts +7 -0
- package/types/ui/src/components/atoms/skeleton/skeleton.d.ts +20 -0
- package/types/ui/src/components/atoms/skeleton/table-skeleton.d.ts +6 -0
- package/types/ui/src/components/atoms/spinner/index.d.ts +1 -0
- package/types/ui/src/components/atoms/spinner/spinner.d.ts +14 -0
- package/types/ui/src/components/atoms/status-dot/index.d.ts +1 -0
- package/types/ui/src/components/atoms/status-dot/status-dot.d.ts +9 -0
- package/types/ui/src/components/atoms/surface/index.d.ts +1 -0
- package/types/ui/src/components/atoms/surface/surface.d.ts +56 -0
- package/types/ui/src/components/atoms/switch/index.d.ts +1 -0
- package/types/ui/src/components/atoms/switch/switch.d.ts +64 -0
- package/types/ui/src/components/atoms/text/index.d.ts +1 -0
- package/types/ui/src/components/atoms/text/text.d.ts +21 -0
- package/types/ui/src/components/atoms/text-area/index.d.ts +1 -0
- package/types/ui/src/components/atoms/text-area/text-area.d.ts +31 -0
- package/types/ui/src/components/atoms/text-field/index.d.ts +1 -0
- package/types/ui/src/components/atoms/text-field/text-field.d.ts +50 -0
- package/types/ui/src/components/atoms/watched-badge/index.d.ts +1 -0
- package/types/ui/src/components/atoms/watched-badge/watched-badge.d.ts +19 -0
- package/types/ui/src/components/atoms/wheel/index.d.ts +1 -0
- package/types/ui/src/components/atoms/wheel/wheel.d.ts +9 -0
- package/types/ui/src/components/common/if/if.d.ts +9 -0
- package/types/ui/src/components/common/if/index.d.ts +1 -0
- package/types/ui/src/components/common/index.d.ts +2 -0
- package/types/ui/src/components/molecules/add-tile/add-tile.d.ts +65 -0
- package/types/ui/src/components/molecules/add-tile/index.d.ts +2 -0
- package/types/ui/src/components/molecules/alphabet-rail/alphabet-rail-context.d.ts +20 -0
- package/types/ui/src/components/molecules/alphabet-rail/alphabet-rail-item.d.ts +13 -0
- package/types/ui/src/components/molecules/alphabet-rail/alphabet-rail-lens.d.ts +17 -0
- package/types/ui/src/components/molecules/alphabet-rail/alphabet-rail.d.ts +46 -0
- package/types/ui/src/components/molecules/alphabet-rail/index.d.ts +2 -0
- package/types/ui/src/components/molecules/alphabet-rail/use-letter-scrub.d.ts +17 -0
- package/types/ui/src/components/molecules/back-button/back-button.d.ts +10 -0
- package/types/ui/src/components/molecules/back-button/index.d.ts +1 -0
- package/types/ui/src/components/molecules/button-group/button-group.d.ts +37 -0
- package/types/ui/src/components/molecules/button-group/index.d.ts +3 -0
- package/types/ui/src/components/molecules/callout/callout.d.ts +63 -0
- package/types/ui/src/components/molecules/callout/index.d.ts +1 -0
- package/types/ui/src/components/molecules/category-tile/category-tile.d.ts +65 -0
- package/types/ui/src/components/molecules/category-tile/index.d.ts +1 -0
- package/types/ui/src/components/molecules/choice-list/choice-list.d.ts +53 -0
- package/types/ui/src/components/molecules/choice-list/index.d.ts +1 -0
- package/types/ui/src/components/molecules/copy-button/copy-button.d.ts +19 -0
- package/types/ui/src/components/molecules/copy-button/index.d.ts +1 -0
- package/types/ui/src/components/molecules/data-field/data-field.d.ts +44 -0
- package/types/ui/src/components/molecules/data-field/index.d.ts +1 -0
- package/types/ui/src/components/molecules/disclosure/disclosure.d.ts +55 -0
- package/types/ui/src/components/molecules/disclosure/index.d.ts +1 -0
- package/types/ui/src/components/molecules/dropzone/dropzone-parts.d.ts +46 -0
- package/types/ui/src/components/molecules/dropzone/dropzone-sift.d.ts +6 -0
- package/types/ui/src/components/molecules/dropzone/dropzone.d.ts +21 -0
- package/types/ui/src/components/molecules/dropzone/dropzone.web.d.ts +11 -0
- package/types/ui/src/components/molecules/dropzone/index.d.ts +1 -0
- package/types/ui/src/components/molecules/empty-state/empty-state.d.ts +60 -0
- package/types/ui/src/components/molecules/empty-state/index.d.ts +1 -0
- package/types/ui/src/components/molecules/field/field.d.ts +56 -0
- package/types/ui/src/components/molecules/field/index.d.ts +1 -0
- package/types/ui/src/components/molecules/hint/hint.d.ts +23 -0
- package/types/ui/src/components/molecules/hint/index.d.ts +1 -0
- package/types/ui/src/components/molecules/index.d.ts +70 -0
- package/types/ui/src/components/molecules/input-group/index.d.ts +3 -0
- package/types/ui/src/components/molecules/input-group/input-group-context.d.ts +34 -0
- package/types/ui/src/components/molecules/input-group/input-group-parts.d.ts +31 -0
- package/types/ui/src/components/molecules/input-group/input-group.d.ts +38 -0
- package/types/ui/src/components/molecules/keypad/index.d.ts +1 -0
- package/types/ui/src/components/molecules/keypad/keypad.d.ts +44 -0
- package/types/ui/src/components/molecules/legend/index.d.ts +1 -0
- package/types/ui/src/components/molecules/legend/legend.d.ts +32 -0
- package/types/ui/src/components/molecules/list/index.d.ts +1 -0
- package/types/ui/src/components/molecules/list/list.d.ts +41 -0
- package/types/ui/src/components/molecules/list-row/index.d.ts +3 -0
- package/types/ui/src/components/molecules/list-row/list-group.d.ts +23 -0
- package/types/ui/src/components/molecules/list-row/list-row-context.d.ts +10 -0
- package/types/ui/src/components/molecules/list-row/list-row-parts.d.ts +28 -0
- package/types/ui/src/components/molecules/list-row/list-row-variants.d.ts +90 -0
- package/types/ui/src/components/molecules/list-row/list-row.d.ts +51 -0
- package/types/ui/src/components/molecules/media-card/index.d.ts +1 -0
- package/types/ui/src/components/molecules/media-card/media-card.d.ts +22 -0
- package/types/ui/src/components/molecules/nav-pill/index.d.ts +1 -0
- package/types/ui/src/components/molecules/nav-pill/nav-pill-context.d.ts +28 -0
- package/types/ui/src/components/molecules/nav-pill/nav-pill-item.d.ts +101 -0
- package/types/ui/src/components/molecules/nav-pill/nav-pill-lens.d.ts +8 -0
- package/types/ui/src/components/molecules/nav-pill/nav-pill.d.ts +55 -0
- package/types/ui/src/components/molecules/otp-field/index.d.ts +1 -0
- package/types/ui/src/components/molecules/otp-field/otp-field-context.d.ts +32 -0
- package/types/ui/src/components/molecules/otp-field/otp-field-parts.d.ts +18 -0
- package/types/ui/src/components/molecules/otp-field/otp-field-variants.d.ts +68 -0
- package/types/ui/src/components/molecules/otp-field/otp-field.d.ts +57 -0
- package/types/ui/src/components/molecules/page-header/index.d.ts +1 -0
- package/types/ui/src/components/molecules/page-header/page-header.d.ts +69 -0
- package/types/ui/src/components/molecules/pagination/index.d.ts +3 -0
- package/types/ui/src/components/molecules/pagination/pagination.d.ts +102 -0
- package/types/ui/src/components/molecules/pagination/paging.d.ts +24 -0
- package/types/ui/src/components/molecules/person-card/index.d.ts +1 -0
- package/types/ui/src/components/molecules/person-card/person-card.d.ts +58 -0
- package/types/ui/src/components/molecules/pin-field/index.d.ts +1 -0
- package/types/ui/src/components/molecules/pin-field/pin-field.d.ts +26 -0
- package/types/ui/src/components/molecules/poster-card/index.d.ts +1 -0
- package/types/ui/src/components/molecules/poster-card/poster-card.d.ts +22 -0
- package/types/ui/src/components/molecules/section/index.d.ts +1 -0
- package/types/ui/src/components/molecules/section/section.d.ts +54 -0
- package/types/ui/src/components/molecules/segment-group/index.d.ts +2 -0
- package/types/ui/src/components/molecules/segment-group/segment-group-context.d.ts +17 -0
- package/types/ui/src/components/molecules/segment-group/segment-group-item.d.ts +58 -0
- package/types/ui/src/components/molecules/segment-group/segment-group.d.ts +29 -0
- package/types/ui/src/components/molecules/select/index.d.ts +1 -0
- package/types/ui/src/components/molecules/select/select-context.d.ts +54 -0
- package/types/ui/src/components/molecules/select/select-item.d.ts +39 -0
- package/types/ui/src/components/molecules/select/select-options-dialog.d.ts +3 -0
- package/types/ui/src/components/molecules/select/select-options.d.ts +3 -0
- package/types/ui/src/components/molecules/select/select-selection.d.ts +24 -0
- package/types/ui/src/components/molecules/select/select-surface.d.ts +17 -0
- package/types/ui/src/components/molecules/select/select.d.ts +112 -0
- package/types/ui/src/components/molecules/stat-card/index.d.ts +1 -0
- package/types/ui/src/components/molecules/stat-card/stat-card.d.ts +46 -0
- package/types/ui/src/components/molecules/stepper/index.d.ts +1 -0
- package/types/ui/src/components/molecules/stepper/stepper-context.d.ts +44 -0
- package/types/ui/src/components/molecules/stepper/stepper-item.d.ts +110 -0
- package/types/ui/src/components/molecules/stepper/stepper-list.d.ts +12 -0
- package/types/ui/src/components/molecules/stepper/stepper.d.ts +97 -0
- package/types/ui/src/components/molecules/stepper/use-steps.d.ts +40 -0
- package/types/ui/src/components/molecules/theme-switch/index.d.ts +1 -0
- package/types/ui/src/components/molecules/theme-switch/theme-switch.d.ts +19 -0
- package/types/ui/src/components/molecules/timeline/index.d.ts +1 -0
- package/types/ui/src/components/molecules/timeline/timeline.d.ts +55 -0
- package/types/ui/src/components/molecules/tooltip/index.d.ts +1 -0
- package/types/ui/src/components/molecules/tooltip/tooltip.d.ts +9 -0
- package/types/ui/src/components/molecules/tooltip/tooltip.web.d.ts +4 -0
- package/types/ui/src/components/organisms/chart/chart-context.d.ts +38 -0
- package/types/ui/src/components/organisms/chart/chart-marks.d.ts +32 -0
- package/types/ui/src/components/organisms/chart/chart-parts.d.ts +41 -0
- package/types/ui/src/components/organisms/chart/chart-path.d.ts +28 -0
- package/types/ui/src/components/organisms/chart/chart-scale.d.ts +82 -0
- package/types/ui/src/components/organisms/chart/chart.d.ts +63 -0
- package/types/ui/src/components/organisms/chart/index.d.ts +5 -0
- package/types/ui/src/components/organisms/code-block/code-block.d.ts +23 -0
- package/types/ui/src/components/organisms/code-block/code-tokens.d.ts +15 -0
- package/types/ui/src/components/organisms/code-block/index.d.ts +1 -0
- package/types/ui/src/components/organisms/command/command-context.d.ts +31 -0
- package/types/ui/src/components/organisms/command/command-keys-types.d.ts +11 -0
- package/types/ui/src/components/organisms/command/command-keys.d.ts +3 -0
- package/types/ui/src/components/organisms/command/command-keys.web.d.ts +3 -0
- package/types/ui/src/components/organisms/command/command-list.d.ts +46 -0
- package/types/ui/src/components/organisms/command/command-parts.d.ts +24 -0
- package/types/ui/src/components/organisms/command/command-row.d.ts +15 -0
- package/types/ui/src/components/organisms/command/command.d.ts +45 -0
- package/types/ui/src/components/organisms/command/index.d.ts +7 -0
- package/types/ui/src/components/organisms/dialog/confirm-dialog/confirm-dialog.d.ts +12 -0
- package/types/ui/src/components/organisms/dialog/confirm-dialog/confirm.d.ts +16 -0
- package/types/ui/src/components/organisms/dialog/confirm-dialog/index.d.ts +2 -0
- package/types/ui/src/components/organisms/dialog/dialog-actions.d.ts +29 -0
- package/types/ui/src/components/organisms/dialog/dialog-parts.d.ts +20 -0
- package/types/ui/src/components/organisms/dialog/dialog.d.ts +55 -0
- package/types/ui/src/components/organisms/dialog/index.d.ts +3 -0
- package/types/ui/src/components/organisms/drawer/drawer-parts.d.ts +29 -0
- package/types/ui/src/components/organisms/drawer/drawer-slide.d.ts +20 -0
- package/types/ui/src/components/organisms/drawer/drawer.d.ts +64 -0
- package/types/ui/src/components/organisms/drawer/index.d.ts +2 -0
- package/types/ui/src/components/organisms/index.d.ts +31 -0
- package/types/ui/src/components/organisms/keyboard/index.d.ts +8 -0
- package/types/ui/src/components/organisms/keyboard/key.d.ts +57 -0
- package/types/ui/src/components/organisms/keyboard/keyboard-layouts.d.ts +27 -0
- package/types/ui/src/components/organisms/keyboard/search-keyboard/index.d.ts +1 -0
- package/types/ui/src/components/organisms/keyboard/search-keyboard/search-keyboard.d.ts +19 -0
- package/types/ui/src/components/organisms/keyboard/url-keyboard/index.d.ts +1 -0
- package/types/ui/src/components/organisms/keyboard/url-keyboard/url-keyboard.d.ts +20 -0
- package/types/ui/src/components/organisms/keyboard/use-physical-typing.d.ts +2 -0
- package/types/ui/src/components/organisms/kroma-intro/animations.d.ts +2 -0
- package/types/ui/src/components/organisms/kroma-intro/constants.d.ts +14 -0
- package/types/ui/src/components/organisms/kroma-intro/css-intro.d.ts +12 -0
- package/types/ui/src/components/organisms/kroma-intro/index.d.ts +3 -0
- package/types/ui/src/components/organisms/kroma-intro/intro-scene.d.ts +21 -0
- package/types/ui/src/components/organisms/kroma-intro/intro-shell.d.ts +10 -0
- package/types/ui/src/components/organisms/kroma-intro/kroma-intro.d.ts +3 -0
- package/types/ui/src/components/organisms/kroma-intro/kroma-intro.web.d.ts +33 -0
- package/types/ui/src/components/organisms/kroma-intro/use-intro-exit.d.ts +21 -0
- package/types/ui/src/components/organisms/kroma-intro/use-intro-keys.d.ts +19 -0
- package/types/ui/src/components/organisms/menu/index.d.ts +1 -0
- package/types/ui/src/components/organisms/menu/menu-context.d.ts +32 -0
- package/types/ui/src/components/organisms/menu/menu-item.d.ts +57 -0
- package/types/ui/src/components/organisms/menu/menu-surface-dialog.d.ts +25 -0
- package/types/ui/src/components/organisms/menu/menu-surface.d.ts +3 -0
- package/types/ui/src/components/organisms/menu/menu.d.ts +49 -0
- package/types/ui/src/components/organisms/nearby-tv-list/index.d.ts +2 -0
- package/types/ui/src/components/organisms/nearby-tv-list/nearby-tv-list.d.ts +12 -0
- package/types/ui/src/components/organisms/perf-hud/index.d.ts +1 -0
- package/types/ui/src/components/organisms/perf-hud/perf-chart.d.ts +5 -0
- package/types/ui/src/components/organisms/perf-hud/perf-hud.d.ts +4 -0
- package/types/ui/src/components/organisms/player/hooks/use-drag-track.d.ts +22 -0
- package/types/ui/src/components/organisms/player/hooks/use-grid-focus.d.ts +19 -0
- package/types/ui/src/components/organisms/player/hooks/use-idle-cursor.d.ts +7 -0
- package/types/ui/src/components/organisms/player/hooks/use-list-focus.d.ts +40 -0
- package/types/ui/src/components/organisms/player/hooks/use-player-credits.d.ts +22 -0
- package/types/ui/src/components/organisms/player/hooks/use-player-ending.d.ts +37 -0
- package/types/ui/src/components/organisms/player/hooks/use-player-keys.d.ts +8 -0
- package/types/ui/src/components/organisms/player/hooks/use-player-keys.web.d.ts +5 -0
- package/types/ui/src/components/organisms/player/hooks/use-player-nav.d.ts +58 -0
- package/types/ui/src/components/organisms/player/hooks/use-player-outro.d.ts +14 -0
- package/types/ui/src/components/organisms/player/hooks/use-seek-nudge.d.ts +8 -0
- package/types/ui/src/components/organisms/player/index.d.ts +22 -0
- package/types/ui/src/components/organisms/player/lib/audio-filter.d.ts +15 -0
- package/types/ui/src/components/organisms/player/lib/chapters.d.ts +16 -0
- package/types/ui/src/components/organisms/player/lib/chart-geometry.d.ts +46 -0
- package/types/ui/src/components/organisms/player/lib/fmt.d.ts +19 -0
- package/types/ui/src/components/organisms/player/lib/lean-stats.d.ts +34 -0
- package/types/ui/src/components/organisms/player/lib/metrics.d.ts +40 -0
- package/types/ui/src/components/organisms/player/lib/nav-keys.d.ts +19 -0
- package/types/ui/src/components/organisms/player/lib/nav.d.ts +38 -0
- package/types/ui/src/components/organisms/player/lib/panel-header.d.ts +12 -0
- package/types/ui/src/components/organisms/player/lib/panel-slide.d.ts +16 -0
- package/types/ui/src/components/organisms/player/lib/player-keys.d.ts +44 -0
- package/types/ui/src/components/organisms/player/lib/seek-track.d.ts +19 -0
- package/types/ui/src/components/organisms/player/lib/stage-card.d.ts +31 -0
- package/types/ui/src/components/organisms/player/lib/stage-ratio.d.ts +4 -0
- package/types/ui/src/components/organisms/player/lib/stage-ratio.web.d.ts +2 -0
- package/types/ui/src/components/organisms/player/lib/style.d.ts +40 -0
- package/types/ui/src/components/organisms/player/lib/styles.d.ts +3 -0
- package/types/ui/src/components/organisms/player/lib/subtitle-appearance.d.ts +53 -0
- package/types/ui/src/components/organisms/player/lib/subtitle-edge.d.ts +3 -0
- package/types/ui/src/components/organisms/player/lib/subtitle-edge.web.d.ts +3 -0
- package/types/ui/src/components/organisms/player/lib/surface-shrink.d.ts +17 -0
- package/types/ui/src/components/organisms/player/lib/virtual-focus.d.ts +2 -0
- package/types/ui/src/components/organisms/player/lib/virtual-focus.web.d.ts +3 -0
- package/types/ui/src/components/organisms/player/parts/control-cluster/control-cluster.d.ts +32 -0
- package/types/ui/src/components/organisms/player/parts/control-cluster/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/credits-card/credits-card.d.ts +25 -0
- package/types/ui/src/components/organisms/player/parts/credits-card/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/icons.d.ts +39 -0
- package/types/ui/src/components/organisms/player/parts/post-play/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/post-play/post-play.d.ts +41 -0
- package/types/ui/src/components/organisms/player/parts/post-play/rise.d.ts +12 -0
- package/types/ui/src/components/organisms/player/parts/post-play/rise.web.d.ts +10 -0
- package/types/ui/src/components/organisms/player/parts/seek-bar/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/seek-bar/seek-bar.d.ts +22 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/audio-filter-panel.d.ts +11 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/audio-panel.d.ts +11 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/entries.d.ts +35 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/gen.d.ts +24 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/generate-wizard.d.ts +18 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/menu-list.d.ts +9 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/menu-row.d.ts +15 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/panel-style.d.ts +99 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/quality-panel.d.ts +16 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/report-panel.d.ts +8 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/select-row.d.ts +21 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/speed-panel.d.ts +10 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/sub-view.d.ts +16 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/subtitle-appearance-panel.d.ts +14 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/subtitle-appearance-parts.d.ts +27 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/subtitles-panel.d.ts +18 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/title-bar.d.ts +9 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings/wizard-parts.d.ts +8 -0
- package/types/ui/src/components/organisms/player/parts/settings-panel/settings-panel.d.ts +40 -0
- package/types/ui/src/components/organisms/player/parts/skip-intro-button/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/skip-intro-button/skip-intro-button.d.ts +22 -0
- package/types/ui/src/components/organisms/player/parts/stage/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/stage/stage-overlay.d.ts +13 -0
- package/types/ui/src/components/organisms/player/parts/stage/stage.d.ts +30 -0
- package/types/ui/src/components/organisms/player/parts/stats-panel/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/stats-panel/stats-chart.d.ts +16 -0
- package/types/ui/src/components/organisms/player/parts/stats-panel/stats-panel.d.ts +14 -0
- package/types/ui/src/components/organisms/player/parts/storyboard-thumb/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/storyboard-thumb/storyboard-thumb.d.ts +4 -0
- package/types/ui/src/components/organisms/player/parts/subtitle-renderer/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/subtitle-renderer/subtitle-renderer.d.ts +32 -0
- package/types/ui/src/components/organisms/player/parts/surface-radius.d.ts +9 -0
- package/types/ui/src/components/organisms/player/parts/top-bar/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/top-bar/top-bar.d.ts +24 -0
- package/types/ui/src/components/organisms/player/parts/transport/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/transport/transport.d.ts +19 -0
- package/types/ui/src/components/organisms/player/parts/up-next-card/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/up-next-card/up-next-card.d.ts +37 -0
- package/types/ui/src/components/organisms/player/parts/up-next-sheet/index.d.ts +1 -0
- package/types/ui/src/components/organisms/player/parts/up-next-sheet/slide.d.ts +5 -0
- package/types/ui/src/components/organisms/player/parts/up-next-sheet/slide.web.d.ts +5 -0
- package/types/ui/src/components/organisms/player/parts/up-next-sheet/up-next-sheet.d.ts +17 -0
- package/types/ui/src/components/organisms/player/player-chrome-state.d.ts +11 -0
- package/types/ui/src/components/organisms/player/player-input.d.ts +16 -0
- package/types/ui/src/components/organisms/player/player-parts.d.ts +34 -0
- package/types/ui/src/components/organisms/player/player.d.ts +63 -0
- package/types/ui/src/components/organisms/player/types.d.ts +226 -0
- package/types/ui/src/components/organisms/rail/index.d.ts +1 -0
- package/types/ui/src/components/organisms/rail/rail-context.d.ts +7 -0
- package/types/ui/src/components/organisms/rail/rail-row.d.ts +22 -0
- package/types/ui/src/components/organisms/rail/rail.d.ts +63 -0
- package/types/ui/src/components/organisms/resizable/index.d.ts +8 -0
- package/types/ui/src/components/organisms/resizable/resizable-context.d.ts +39 -0
- package/types/ui/src/components/organisms/resizable/resizable-cursor.d.ts +3 -0
- package/types/ui/src/components/organisms/resizable/resizable-cursor.web.d.ts +4 -0
- package/types/ui/src/components/organisms/resizable/resizable-handle.d.ts +30 -0
- package/types/ui/src/components/organisms/resizable/resizable-keys-types.d.ts +11 -0
- package/types/ui/src/components/organisms/resizable/resizable-keys.d.ts +3 -0
- package/types/ui/src/components/organisms/resizable/resizable-keys.web.d.ts +3 -0
- package/types/ui/src/components/organisms/resizable/resizable-layout.d.ts +55 -0
- package/types/ui/src/components/organisms/resizable/resizable-panel.d.ts +55 -0
- package/types/ui/src/components/organisms/resizable/resizable-store.d.ts +18 -0
- package/types/ui/src/components/organisms/resizable/resizable.d.ts +59 -0
- package/types/ui/src/components/organisms/splash-backdrop/index.d.ts +2 -0
- package/types/ui/src/components/organisms/splash-backdrop/splash-backdrop.d.ts +22 -0
- package/types/ui/src/components/organisms/table/index.d.ts +1 -0
- package/types/ui/src/components/organisms/table/table-cell.d.ts +9 -0
- package/types/ui/src/components/organisms/table/table-columns.d.ts +32 -0
- package/types/ui/src/components/organisms/table/table-context.d.ts +17 -0
- package/types/ui/src/components/organisms/table/table-frame.d.ts +9 -0
- package/types/ui/src/components/organisms/table/table-place.d.ts +8 -0
- package/types/ui/src/components/organisms/table/table-row.d.ts +12 -0
- package/types/ui/src/components/organisms/table/table-sort-cell.d.ts +14 -0
- package/types/ui/src/components/organisms/table/table-sort.d.ts +38 -0
- package/types/ui/src/components/organisms/table/table.d.ts +65 -0
- package/types/ui/src/components/organisms/toast/index.d.ts +1 -0
- package/types/ui/src/components/organisms/toast/toast-card.d.ts +8 -0
- package/types/ui/src/components/organisms/toast/toast.d.ts +54 -0
- package/types/ui/src/components/organisms/virtual/clip.d.ts +25 -0
- package/types/ui/src/components/organisms/virtual/index.d.ts +2 -0
- package/types/ui/src/components/organisms/virtual/moving-strip.d.ts +16 -0
- package/types/ui/src/components/organisms/virtual/strip-motion.d.ts +4 -0
- package/types/ui/src/components/organisms/virtual/virtual-grid/grid-row.d.ts +25 -0
- package/types/ui/src/components/organisms/virtual/virtual-grid/grid-rows.d.ts +57 -0
- package/types/ui/src/components/organisms/virtual/virtual-grid/index.d.ts +1 -0
- package/types/ui/src/components/organisms/virtual/virtual-grid/use-wheel-rows.d.ts +8 -0
- package/types/ui/src/components/organisms/virtual/virtual-grid/virtual-grid.d.ts +54 -0
- package/types/ui/src/components/organisms/virtual/virtual-rail/edge-scroll.d.ts +38 -0
- package/types/ui/src/components/organisms/virtual/virtual-rail/index.d.ts +1 -0
- package/types/ui/src/components/organisms/virtual/virtual-rail/rail-edge.d.ts +11 -0
- package/types/ui/src/components/organisms/virtual/virtual-rail/use-key-grace.d.ts +6 -0
- package/types/ui/src/components/organisms/virtual/virtual-rail/virtual-rail.d.ts +19 -0
- package/types/ui/src/components/templates/index.d.ts +2 -0
- package/types/ui/src/components/templates/tv-stage/index.d.ts +1 -0
- package/types/ui/src/components/templates/tv-stage/tv-stage.d.ts +7 -0
- package/types/ui/src/core/atomic/index.d.ts +5 -0
- package/types/ui/src/core/atomic/inject.d.ts +3 -0
- package/types/ui/src/core/atomic/register.d.ts +13 -0
- package/types/ui/src/core/atomic/static-style.d.ts +8 -0
- package/types/ui/src/core/breakpoint-cascade.d.ts +45 -0
- package/types/ui/src/core/breakpoint.d.ts +21 -0
- package/types/ui/src/core/color.d.ts +21 -0
- package/types/ui/src/core/index.d.ts +20 -0
- package/types/ui/src/core/normalize.d.ts +21 -0
- package/types/ui/src/core/recipe.d.ts +21 -0
- package/types/ui/src/core/shorthand-resolve.d.ts +54 -0
- package/types/ui/src/core/shorthands.d.ts +187 -0
- package/types/ui/src/core/stabilise.d.ts +14 -0
- package/types/ui/src/core/states.d.ts +16 -0
- package/types/ui/src/core/styles.d.ts +59 -0
- package/types/ui/src/core/theme-create.d.ts +64 -0
- package/types/ui/src/core/theme-mode.d.ts +15 -0
- package/types/ui/src/core/theme.d.ts +72 -0
- package/types/ui/src/core/tokens/colors.d.ts +109 -0
- package/types/ui/src/core/tokens/css-palette.d.ts +19 -0
- package/types/ui/src/core/tokens/css-var.d.ts +8 -0
- package/types/ui/src/core/tokens/effects.d.ts +103 -0
- package/types/ui/src/core/tokens/index.d.ts +10 -0
- package/types/ui/src/core/tokens/layout.d.ts +94 -0
- package/types/ui/src/core/tokens/mobile.d.ts +91 -0
- package/types/ui/src/core/tokens/registry.d.ts +4 -0
- package/types/ui/src/core/tokens/typography.d.ts +232 -0
- package/types/ui/src/core/types.d.ts +122 -0
- package/types/ui/src/core/use-breakpoint.d.ts +16 -0
- package/types/ui/src/core/use-theme.d.ts +30 -0
- package/types/ui/src/core/web-style.d.ts +91 -0
- package/types/ui/src/index.d.ts +20 -0
- package/types/ui/src/kit.d.ts +74 -0
- package/types/ui/src/lib/a11y-props.d.ts +26 -0
- package/types/ui/src/lib/a11y.d.ts +8 -0
- package/types/ui/src/lib/anchor.d.ts +32 -0
- package/types/ui/src/lib/anchored-keys.d.ts +41 -0
- package/types/ui/src/lib/anchored-panel.d.ts +42 -0
- package/types/ui/src/lib/anchored-popup.d.ts +17 -0
- package/types/ui/src/lib/box-layers.d.ts +10 -0
- package/types/ui/src/lib/box-style.d.ts +16 -0
- package/types/ui/src/lib/caret.d.ts +8 -0
- package/types/ui/src/lib/classed.d.ts +3 -0
- package/types/ui/src/lib/cover-rect.d.ts +26 -0
- package/types/ui/src/lib/css.d.ts +19 -0
- package/types/ui/src/lib/css.web.d.ts +25 -0
- package/types/ui/src/lib/cursor.d.ts +17 -0
- package/types/ui/src/lib/dismiss-backdrop.d.ts +11 -0
- package/types/ui/src/lib/dom.d.ts +12 -0
- package/types/ui/src/lib/drag-select.d.ts +1 -0
- package/types/ui/src/lib/drag-select.web.d.ts +13 -0
- package/types/ui/src/lib/ease.d.ts +13 -0
- package/types/ui/src/lib/escape-guard.d.ts +1 -0
- package/types/ui/src/lib/expo-image-backend.d.ts +5 -0
- package/types/ui/src/lib/field-shell.d.ts +140 -0
- package/types/ui/src/lib/focus-entry.d.ts +20 -0
- package/types/ui/src/lib/focus-here.d.ts +11 -0
- package/types/ui/src/lib/focus-here.web.d.ts +7 -0
- package/types/ui/src/lib/focus-lift.d.ts +39 -0
- package/types/ui/src/lib/focus-nav.d.ts +3 -0
- package/types/ui/src/lib/focus-nav.web.d.ts +2 -0
- package/types/ui/src/lib/focus-platform.d.ts +30 -0
- package/types/ui/src/lib/focus-presence.d.ts +5 -0
- package/types/ui/src/lib/focus-remote.d.ts +39 -0
- package/types/ui/src/lib/focus-remote.web.d.ts +16 -0
- package/types/ui/src/lib/focus-report.d.ts +18 -0
- package/types/ui/src/lib/focus-root.d.ts +22 -0
- package/types/ui/src/lib/focus-root.web.d.ts +3 -0
- package/types/ui/src/lib/focus-scope.d.ts +59 -0
- package/types/ui/src/lib/focus-scroll.d.ts +69 -0
- package/types/ui/src/lib/focus-tab.d.ts +12 -0
- package/types/ui/src/lib/focus-transition.d.ts +11 -0
- package/types/ui/src/lib/focus-transition.web.d.ts +3 -0
- package/types/ui/src/lib/focus-types.d.ts +18 -0
- package/types/ui/src/lib/focus-visible.d.ts +21 -0
- package/types/ui/src/lib/form/index.d.ts +4 -0
- package/types/ui/src/lib/form/message.d.ts +10 -0
- package/types/ui/src/lib/form/standard-schema.d.ts +27 -0
- package/types/ui/src/lib/form/use-form.d.ts +59 -0
- package/types/ui/src/lib/fuzzy-search.d.ts +20 -0
- package/types/ui/src/lib/genre-icon.d.ts +4 -0
- package/types/ui/src/lib/glyph.d.ts +24 -0
- package/types/ui/src/lib/group-shape.d.ts +44 -0
- package/types/ui/src/lib/hover-passthrough.d.ts +9 -0
- package/types/ui/src/lib/icon-catalog.d.ts +19 -0
- package/types/ui/src/lib/icon-search.d.ts +18 -0
- package/types/ui/src/lib/icons/every-glyph.d.ts +4 -0
- package/types/ui/src/lib/icons/every-glyph.web.d.ts +4 -0
- package/types/ui/src/lib/icons/glyph-source.d.ts +3 -0
- package/types/ui/src/lib/icons/glyphs.d.ts +34 -0
- package/types/ui/src/lib/icons/library.d.ts +19 -0
- package/types/ui/src/lib/icons/stroke-prop.d.ts +2 -0
- package/types/ui/src/lib/icons/stroke-prop.web.d.ts +2 -0
- package/types/ui/src/lib/image-backend.d.ts +26 -0
- package/types/ui/src/lib/input-gate.d.ts +11 -0
- package/types/ui/src/lib/input-source.d.ts +3 -0
- package/types/ui/src/lib/landmark.d.ts +4 -0
- package/types/ui/src/lib/landmark.web.d.ts +4 -0
- package/types/ui/src/lib/lockup-paths.d.ts +10 -0
- package/types/ui/src/lib/loop.d.ts +15 -0
- package/types/ui/src/lib/loop.web.d.ts +5 -0
- package/types/ui/src/lib/modal-portal.d.ts +3 -0
- package/types/ui/src/lib/modal-portal.web.d.ts +8 -0
- package/types/ui/src/lib/name-of.d.ts +9 -0
- package/types/ui/src/lib/nav-style.d.ts +5 -0
- package/types/ui/src/lib/overlay-host.d.ts +23 -0
- package/types/ui/src/lib/part-context.d.ts +8 -0
- package/types/ui/src/lib/perf-memory.d.ts +12 -0
- package/types/ui/src/lib/perf-memory.web.d.ts +4 -0
- package/types/ui/src/lib/perf.d.ts +35 -0
- package/types/ui/src/lib/platform.d.ts +3 -0
- package/types/ui/src/lib/platform.web.d.ts +2 -0
- package/types/ui/src/lib/portal.d.ts +10 -0
- package/types/ui/src/lib/portal.web.d.ts +17 -0
- package/types/ui/src/lib/press-dip.d.ts +26 -0
- package/types/ui/src/lib/press-guard.d.ts +8 -0
- package/types/ui/src/lib/progress-motion.d.ts +11 -0
- package/types/ui/src/lib/progress-motion.web.d.ts +11 -0
- package/types/ui/src/lib/reduced-motion.d.ts +7 -0
- package/types/ui/src/lib/report-categories.d.ts +10 -0
- package/types/ui/src/lib/ring-room.d.ts +27 -0
- package/types/ui/src/lib/ring-scope.d.ts +6 -0
- package/types/ui/src/lib/ring.d.ts +27 -0
- package/types/ui/src/lib/sample-art.d.ts +9 -0
- package/types/ui/src/lib/scroll-lock.d.ts +1 -0
- package/types/ui/src/lib/scroll-lock.web.d.ts +6 -0
- package/types/ui/src/lib/shake.d.ts +8 -0
- package/types/ui/src/lib/shake.web.d.ts +4 -0
- package/types/ui/src/lib/slot.d.ts +36 -0
- package/types/ui/src/lib/sort-icon.d.ts +5 -0
- package/types/ui/src/lib/splash-motion.d.ts +25 -0
- package/types/ui/src/lib/splash-motion.web.d.ts +15 -0
- package/types/ui/src/lib/stable-callback.d.ts +9 -0
- package/types/ui/src/lib/surface-bands.d.ts +26 -0
- package/types/ui/src/lib/surface-presentation.d.ts +17 -0
- package/types/ui/src/lib/surface-shell.d.ts +21 -0
- package/types/ui/src/lib/svg.d.ts +1 -0
- package/types/ui/src/lib/svg.web.d.ts +17 -0
- package/types/ui/src/lib/theme-audio.d.ts +7 -0
- package/types/ui/src/lib/tv-remote.d.ts +11 -0
- package/types/ui/src/lib/use-complete-once.d.ts +12 -0
- package/types/ui/src/lib/use-controllable.d.ts +1 -0
- package/types/ui/src/lib/use-copy.d.ts +20 -0
- package/types/ui/src/lib/use-growing-count.d.ts +12 -0
- package/types/ui/src/lib/use-settled-value.d.ts +5 -0
- package/types/ui/src/lib/wheel-pan.d.ts +7 -0
- package/types/ui/src/lib/wheel-pan.web.d.ts +11 -0
- package/types/ui/src/lib/wheel-paths.d.ts +5 -0
- package/types/ui/src/services/aiSuggest.d.ts +15 -0
- package/types/ui/src/services/auth.d.ts +41 -0
- package/types/ui/src/services/cast-context.d.ts +33 -0
- package/types/ui/src/services/cast-events.d.ts +23 -0
- package/types/ui/src/services/cast-lan.d.ts +21 -0
- package/types/ui/src/services/cast-position.d.ts +14 -0
- package/types/ui/src/services/cast.d.ts +20 -0
- package/types/ui/src/services/format.d.ts +25 -0
- package/types/ui/src/services/i18n.d.ts +18 -0
- package/types/ui/src/services/locale.d.ts +18 -0
- package/types/ui/src/services/playback.d.ts +49 -0
- package/types/ui/src/services/storyboard.d.ts +33 -0
- package/types/ui/src/services/subtitleGenerations.d.ts +13 -0
- package/types/ui/src/services/themeAudio.d.ts +19 -0
- package/types/ui/src/services/themeAudio.native.d.ts +8 -0
- package/types/ui/src/ssr.d.ts +20 -0
- package/types/ui/src/styles/motion.d.ts +2 -0
- package/types/ui/src/styles/page.d.ts +2 -0
- package/types/ui/src/styles/reset.d.ts +2 -0
- package/types/ui/src/styles/sheet.d.ts +18 -0
- package/types/ui/src/testing.d.ts +27 -0
- package/types/ui/src/workbench-config.d.ts +9 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface ResolvedOrigin {
|
|
2
|
+
url: string;
|
|
3
|
+
secure: boolean;
|
|
4
|
+
}
|
|
5
|
+
/** Resolves which scheme a typed address actually speaks: an address without
|
|
6
|
+
* one is probed https first; an explicit scheme is honoured as typed. Null
|
|
7
|
+
* means nothing answered, which is not the same as insecure. */
|
|
8
|
+
export declare function resolveServerOrigin(address: string, opts?: {
|
|
9
|
+
fetch?: typeof globalThis.fetch;
|
|
10
|
+
timeoutMs?: number;
|
|
11
|
+
port?: number;
|
|
12
|
+
}): Promise<ResolvedOrigin | null>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** The URL segment a display name folds to: lowercased, accents dropped, every
|
|
2
|
+
* run of anything else turned into one `-`, with no leading or trailing one.
|
|
3
|
+
* Idempotent: a slug read back off a URL folds to itself. */
|
|
4
|
+
export declare function slugify(raw: string): string;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare function isTextSubtitle(codec: string): boolean;
|
|
2
|
+
export interface Cue {
|
|
3
|
+
start: number;
|
|
4
|
+
end: number;
|
|
5
|
+
text: string;
|
|
6
|
+
}
|
|
7
|
+
/** Parses WebVTT into cues sorted by start time. */
|
|
8
|
+
export declare function parseVtt(raw: string): Cue[];
|
|
9
|
+
type CueHit = {
|
|
10
|
+
text: string;
|
|
11
|
+
index: number;
|
|
12
|
+
};
|
|
13
|
+
/** `hint` is the index this returned last time; passing it back keeps normal
|
|
14
|
+
* playback O(1) amortised, and a seek re-syncs with a binary search. */
|
|
15
|
+
export declare function activeCueText(cues: Cue[], t: number, hint: number): CueHit;
|
|
16
|
+
import type { MessageKey } from './i18n';
|
|
17
|
+
/** `stage` values come from the server's GenRegistry. */
|
|
18
|
+
export declare function subtitleStageKey(stage: string): MessageKey;
|
|
19
|
+
export declare function subtitleEtaTime(sec: number): string;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Catalog } from './types';
|
|
2
|
+
/** One locale's catalog, or a loader that fetches it when the locale is wanted. */
|
|
3
|
+
export type CatalogOrLoader = Catalog | (() => Promise<Catalog>);
|
|
4
|
+
/** A namespace's catalogs by locale, as the module that carries them hands
|
|
5
|
+
* them over. */
|
|
6
|
+
export type NamespaceCatalogs = Readonly<Record<string, CatalogOrLoader>>;
|
|
7
|
+
export interface Announced {
|
|
8
|
+
readonly namespace: string;
|
|
9
|
+
readonly catalogs: NamespaceCatalogs;
|
|
10
|
+
}
|
|
11
|
+
/** Hand a namespace to whichever engine drains the queue, now or later. Called
|
|
12
|
+
* by the module `@kroma/i18n/vite` generates per namespace. */
|
|
13
|
+
export declare function announceCatalogs(namespace: string, catalogs: NamespaceCatalogs): void;
|
|
14
|
+
/** Take every announcement made so far, and every one to come. */
|
|
15
|
+
export declare function drainAnnouncements(next: (announced: Announced) => void): void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CatalogPath } from './layout';
|
|
2
|
+
export interface CatalogTypesSource {
|
|
3
|
+
readonly files: readonly CatalogPath[];
|
|
4
|
+
/** The locale whose files type the keys: the complete one. */
|
|
5
|
+
readonly defaultLocale: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function renderCatalogTypes({ files, defaultLocale }: CatalogTypesSource): string;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Catalog, PluralRule, TVars } from './types';
|
|
2
|
+
/** The catalogs a lookup walks, most specific first. A scoped translator puts
|
|
3
|
+
* the scope's own catalogs ahead of the base ones, and each locale is followed
|
|
4
|
+
* by the default locale it falls back to. */
|
|
5
|
+
export type Chain = readonly Catalog[];
|
|
6
|
+
/** Render `key` against `chain`, or `undefined` when no catalog in it knows the
|
|
7
|
+
* key. Plural variants are resolved inside the first catalog that answers, so
|
|
8
|
+
* a locale can never take a variant from a language whose template it will not
|
|
9
|
+
* also use. */
|
|
10
|
+
export declare function translateChain(chain: Chain, locale: string, key: string, vars?: TVars, plural?: PluralRule): string | undefined;
|
|
11
|
+
/** What a lookup found: the index in the chain that answered, `-1` when
|
|
12
|
+
* nothing did, and the message it rendered. */
|
|
13
|
+
export interface Resolved {
|
|
14
|
+
readonly at: number;
|
|
15
|
+
readonly text: string | undefined;
|
|
16
|
+
}
|
|
17
|
+
/** Render `key` and say which catalog it came from, in one walk. Pairs with
|
|
18
|
+
* `CatalogStore.sources` to name the catalog that spoke, which is what the key
|
|
19
|
+
* inspector reports. Kept apart from {@link translateChain} rather than
|
|
20
|
+
* wrapping it: the plain path runs for every string the app draws and does not
|
|
21
|
+
* allocate. */
|
|
22
|
+
export declare function resolveInChain(chain: Chain, locale: string, key: string, vars?: TVars, plural?: PluralRule): Resolved;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type I18n, type I18nConfig } from './i18n';
|
|
2
|
+
import type { Locale, Messages } from './registry';
|
|
3
|
+
import type { Catalog, LocaleSet } from './types';
|
|
4
|
+
export interface DefineI18nConfig extends Pick<I18nConfig<Record<string, Catalog>>, 'plural' | 'lazy'> {
|
|
5
|
+
/** One catalog per locale, keyed by code, holding what ships up front. The
|
|
6
|
+
* default locale's names every language under `lang.<code>`, which is what
|
|
7
|
+
* the locale set reads before any other message is needed. */
|
|
8
|
+
catalogs: Readonly<Record<string, Catalog>>;
|
|
9
|
+
defaultLocale: Locale;
|
|
10
|
+
}
|
|
11
|
+
type AppI18n = I18n<Locale, Messages>;
|
|
12
|
+
export interface DefinedI18n extends LocaleSet<Locale> {
|
|
13
|
+
readonly i18n: AppI18n;
|
|
14
|
+
readonly translate: AppI18n['translate'];
|
|
15
|
+
readonly translator: AppI18n['translator'];
|
|
16
|
+
readonly addCatalogs: AppI18n['add'];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The app's one instance, typed by the registry rather than by what is passed
|
|
20
|
+
* in: with catalogs discovered from a folder, the values say `string` and the
|
|
21
|
+
* `@kroma/i18n/vite` plugin's declaration says which locales and keys exist.
|
|
22
|
+
*
|
|
23
|
+
* ```ts
|
|
24
|
+
* export const { i18n, translate, LOCALES, DEFAULT_LOCALE } = defineI18n({
|
|
25
|
+
* catalogs, lazy, defaultLocale: 'fr',
|
|
26
|
+
* });
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* The instance also takes every namespace a chunk announces on import (see
|
|
30
|
+
* `announceCatalogs`), so a screen's messages are on their way before it
|
|
31
|
+
* renders and `useT` can wait for them.
|
|
32
|
+
*
|
|
33
|
+
* There is no separate table of language names: a catalog names its own
|
|
34
|
+
* language under `lang.<code>` (`"lang.fr": "Français"` in `fr/lang.json`),
|
|
35
|
+
* which is the entry the picker renders anyway, so writing it twice is how the
|
|
36
|
+
* two drift apart.
|
|
37
|
+
*/
|
|
38
|
+
export declare function defineI18n(config: DefineI18nConfig): DefinedI18n;
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { CatalogSource, TVars } from './types';
|
|
2
|
+
/** One message, as the engine resolved it. `from` is the catalog that
|
|
3
|
+
* answered, or `undefined` when none did, and `text` is what would have
|
|
4
|
+
* rendered: the chain has already been walked, so an inspector only formats,
|
|
5
|
+
* and one that merely watches hands `text` straight back. */
|
|
6
|
+
export interface Rendered {
|
|
7
|
+
readonly key: string;
|
|
8
|
+
readonly from: CatalogSource | undefined;
|
|
9
|
+
readonly locale: string;
|
|
10
|
+
readonly text: string;
|
|
11
|
+
readonly vars: TVars | undefined;
|
|
12
|
+
}
|
|
13
|
+
/** Renders a message as something other than its text: the key it came from,
|
|
14
|
+
* a mark an overlay reads, or the text itself for an inspector that only
|
|
15
|
+
* watches. */
|
|
16
|
+
export type KeyInspector = (rendered: Rendered) => string;
|
|
17
|
+
/** What the app renders in: every locale it can answer, and the one it
|
|
18
|
+
* resolved for itself before any override. */
|
|
19
|
+
export interface AppLocales {
|
|
20
|
+
readonly codes: readonly string[];
|
|
21
|
+
readonly resolved: string;
|
|
22
|
+
}
|
|
23
|
+
export declare function activeKeyInspector(): KeyInspector | null;
|
|
24
|
+
/** Route every message every instance renders through `next`, or `null` to
|
|
25
|
+
* stop. Page-wide on purpose, through a record on `globalThis`: the dev tools
|
|
26
|
+
* are one switch, and they reach an engine they were never handed - a module's
|
|
27
|
+
* front end bundles its own. */
|
|
28
|
+
export declare function installKeyInspector(next: KeyInspector | null): void;
|
|
29
|
+
/** Say what the app renders in, so the tools can offer its locales without
|
|
30
|
+
* being handed the app's own table. `null` when the last provider unmounts. */
|
|
31
|
+
export declare function installAppLocales(next: AppLocales | null): void;
|
|
32
|
+
export declare function activeAppLocales(): AppLocales | null;
|
|
33
|
+
export declare function activeLocaleOverride(): string | null;
|
|
34
|
+
/** Render every provider in `next` instead of the locale the app resolved, or
|
|
35
|
+
* `null` to give it back. Nothing is persisted and no account preference
|
|
36
|
+
* moves: this lasts as long as the page does. */
|
|
37
|
+
export declare function installLocaleOverride(next: string | null): void;
|
|
38
|
+
export declare function overridesRevision(): number;
|
|
39
|
+
export declare function onOverridesChange(listener: () => void): () => void;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { NamespaceCatalogs } from './announce';
|
|
2
|
+
import { type SCHEMA_KEY } from './store';
|
|
3
|
+
import type { Catalog, Catalogs, PluralRule, TVars } from './types';
|
|
4
|
+
/** A catalog's messages: everything but the `$schema` pointer. Distinct from
|
|
5
|
+
* `Messages` in ./registry, which is the augmented map for the whole app. */
|
|
6
|
+
export type CatalogMessages<C> = Omit<C, typeof SCHEMA_KEY>;
|
|
7
|
+
/** Namespaces offered for fetching: by name, then by locale. */
|
|
8
|
+
export type LazyCatalogs = Readonly<Record<string, NamespaceCatalogs>>;
|
|
9
|
+
/** A translator bound to one scope: the scope's own keys are not knowable from
|
|
10
|
+
* here, so any string is accepted while the base keys still autocomplete. */
|
|
11
|
+
export type ScopedTranslate<K extends string> = (key: K | (string & {}), vars?: TVars) => string;
|
|
12
|
+
export interface I18n<L extends string, M extends Catalog> {
|
|
13
|
+
readonly defaultLocale: L;
|
|
14
|
+
/** Every locale the base catalogs answer in, the default one first. */
|
|
15
|
+
locales(): readonly L[];
|
|
16
|
+
/** Render one message. Unknown keys render as the key itself, which is a
|
|
17
|
+
* visible placeholder rather than an empty hole. */
|
|
18
|
+
translate(locale: L, key: keyof M & string, vars?: TVars): string;
|
|
19
|
+
/** A translator bound to a locale. Pass a scope to put that scope's added
|
|
20
|
+
* catalogs ahead of the base ones. */
|
|
21
|
+
translator(locale: L): (key: keyof M & string, vars?: TVars) => string;
|
|
22
|
+
translator(locale: L, scope: string): ScopedTranslate<keyof M & string>;
|
|
23
|
+
/** Add a scope's catalogs at runtime, as a module being loaded would.
|
|
24
|
+
* Returns a disposer; adding the same scope again replaces it. */
|
|
25
|
+
add(scope: string, catalogs: Catalogs<string>): () => void;
|
|
26
|
+
/** A namespace the running code needs, as the chunk carrying it says on
|
|
27
|
+
* evaluation: a catalog given outright lands now, a loader is fetched for
|
|
28
|
+
* every warmed locale. */
|
|
29
|
+
register(namespace: string, catalogs: NamespaceCatalogs): void;
|
|
30
|
+
/** Fetch every needed namespace in `locale`, now and as more are registered.
|
|
31
|
+
* The provider calls it for the locale it renders. */
|
|
32
|
+
warm(locale: L): void;
|
|
33
|
+
/** What is still being fetched for `locale`, to suspend on; `null` when
|
|
34
|
+
* everything needed has landed. */
|
|
35
|
+
pending(locale: L): Promise<void> | null;
|
|
36
|
+
/** A snapshot that changes whenever a scope is added or removed, or a
|
|
37
|
+
* locale's fetches have all landed. */
|
|
38
|
+
version(): number;
|
|
39
|
+
subscribe(listener: () => void): () => void;
|
|
40
|
+
}
|
|
41
|
+
export interface I18nConfig<C extends Record<string, Record<string, string>>> {
|
|
42
|
+
catalogs: C;
|
|
43
|
+
defaultLocale: keyof C & string;
|
|
44
|
+
/** Override plural category selection. Only needed where `Intl.PluralRules`
|
|
45
|
+
* is absent or disagrees with a peer implementation you have to match. */
|
|
46
|
+
plural?: PluralRule;
|
|
47
|
+
/** Namespaces not shipped in `catalogs`, fetched per locale when a key of
|
|
48
|
+
* theirs misses. */
|
|
49
|
+
lazy?: LazyCatalogs;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Build a translator from JSON catalogs.
|
|
53
|
+
*
|
|
54
|
+
* `$t(key)` references inside the catalogs are expanded here, once, so
|
|
55
|
+
* translating stays a single interpolation pass. The message-key type comes
|
|
56
|
+
* from the default locale's catalog, which is therefore the one that has to be
|
|
57
|
+
* complete: every other locale falls back to it.
|
|
58
|
+
*/
|
|
59
|
+
export declare function createI18n<const C extends Record<string, Record<string, string>>, const D extends keyof C & string>(config: I18nConfig<C> & {
|
|
60
|
+
defaultLocale: D;
|
|
61
|
+
}): I18n<keyof C & string, CatalogMessages<C[D]>>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { type DefinedI18n, type DefineI18nConfig, defineI18n } from './define';
|
|
2
|
+
export { type AppLocales, activeAppLocales, installAppLocales, installKeyInspector, installLocaleOverride, type KeyInspector, onOverridesChange, type Rendered, } from './dev-overrides';
|
|
3
|
+
export { createI18n, type I18n, type I18nConfig, type ScopedTranslate } from './i18n';
|
|
4
|
+
export { hasToken, interpolate, tokensIn } from './interpolate';
|
|
5
|
+
export { catalogsByLocale, namespaceOf, sourcesByNamespace } from './layout';
|
|
6
|
+
export { createLocales, LABEL_NAMESPACE } from './locales';
|
|
7
|
+
export { expandRefs, hasUnresolvedRef } from './nest';
|
|
8
|
+
export { resolvePluralKey, selectCategory } from './plural';
|
|
9
|
+
export type { Locale, MessageKey, Messages, Register, Translate } from './registry';
|
|
10
|
+
export { SCHEMA_KEY } from './store';
|
|
11
|
+
export type { Catalog, CatalogSource, Catalogs, LocaleSet, PluralCategory, PluralRule, TVars, } from './types';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { TVars } from './types';
|
|
2
|
+
/** Substitute `{name}` tokens from `vars`. Unknown tokens are kept verbatim.
|
|
3
|
+
*
|
|
4
|
+
* One pass, deliberately: a substituted value that itself looks like a token
|
|
5
|
+
* is never rescanned, so a variable carrying user text cannot reach back into
|
|
6
|
+
* the catalog. The `kroma-i18n` crate pins the same guarantee. Reuse between
|
|
7
|
+
* messages is a catalog concern, handled once at build by {@link expandRefs}. */
|
|
8
|
+
export declare function interpolate(template: string, vars?: TVars): string;
|
|
9
|
+
/** Whether `text` still names a `{token}`. After {@link interpolate} that means
|
|
10
|
+
* a variable the caller never passed, since an unknown token is kept
|
|
11
|
+
* verbatim. */
|
|
12
|
+
export declare function hasToken(text: string): boolean;
|
|
13
|
+
/** The `{token}` names `text` still carries. */
|
|
14
|
+
export declare function tokensIn(text: string): string[];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Catalog } from './types';
|
|
2
|
+
/** Where a catalog file sits in a folder-per-locale layout:
|
|
3
|
+
* `./<locale>/<namespace>.json`. */
|
|
4
|
+
export interface CatalogPath {
|
|
5
|
+
readonly locale: string;
|
|
6
|
+
readonly namespace: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function parseCatalogPath(path: string): CatalogPath | null;
|
|
9
|
+
/** Merge the files of a glob into one catalog per locale, as `defineI18n`
|
|
10
|
+
* takes them. Keys are the glob's paths, values the parsed files. */
|
|
11
|
+
export declare function catalogsByLocale(files: Readonly<Record<string, Catalog>>): Record<string, Catalog>;
|
|
12
|
+
type Loader = () => Promise<Catalog>;
|
|
13
|
+
/** The loaders of a glob regrouped by namespace, then by locale, as
|
|
14
|
+
* `defineI18n` takes its `lazy` namespaces: each locale is fetched on its own. */
|
|
15
|
+
export declare function sourcesByNamespace(loaders: Readonly<Record<string, Loader>>): Record<string, Record<string, Loader>>;
|
|
16
|
+
/** The namespace a key belongs to: everything before its first dot. */
|
|
17
|
+
export declare function namespaceOf(key: string): string;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { LocaleSet } from './types';
|
|
2
|
+
/** The namespace holding each locale's name for itself, the one catalog an app
|
|
3
|
+
* needs before anything renders. */
|
|
4
|
+
export declare const LABEL_NAMESPACE = "lang";
|
|
5
|
+
/** Where a locale's name for itself lives in its own catalog. One spelling,
|
|
6
|
+
* because both the locale set and `defineI18n` read it. */
|
|
7
|
+
export declare function labelKey<L extends string>(code: L): `lang.${L}`;
|
|
8
|
+
/** The locales a product ships, knowable without loading a single message:
|
|
9
|
+
* `createLocales({ fr: 'Français', en: 'English' }, 'fr')`. The value of each
|
|
10
|
+
* entry is the endonym `normalizeLocale` accepts next to a BCP 47 tag, because
|
|
11
|
+
* that is how the server stores an account's language. */
|
|
12
|
+
export declare function createLocales<const N extends Record<string, string>, const D extends keyof N & string>(names: N, defaultLocale: D): LocaleSet<keyof N & string, D>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { NamespaceCatalogs } from './announce';
|
|
2
|
+
import type { Catalog } from './types';
|
|
3
|
+
/** Where a landed catalog goes, and how a view hears that a locale is whole. */
|
|
4
|
+
export interface CatalogSink {
|
|
5
|
+
extend(locale: string, catalog: Catalog): void;
|
|
6
|
+
changed(): void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Which namespaces exist, where each locale's catalog comes from, and which of
|
|
10
|
+
* them have landed. A namespace a chunk announced is `needed`: its catalog for
|
|
11
|
+
* every warmed locale is fetched at once. One only the folder glob offered is
|
|
12
|
+
* fetched when a key of it misses. A view is told once per locale, when the
|
|
13
|
+
* last fetch in flight for it lands, rather than once per namespace.
|
|
14
|
+
*/
|
|
15
|
+
export declare class Namespaces {
|
|
16
|
+
private readonly sink;
|
|
17
|
+
private readonly entries;
|
|
18
|
+
private readonly warmed;
|
|
19
|
+
private readonly inFlight;
|
|
20
|
+
private readonly pendingByLocale;
|
|
21
|
+
constructor(sink: CatalogSink, shipped: Readonly<Record<string, Catalog>>);
|
|
22
|
+
announce(namespace: string, catalogs: NamespaceCatalogs, needed: boolean): void;
|
|
23
|
+
/** From now on, fetch every needed namespace's catalog for `locale`. */
|
|
24
|
+
warm(locale: string): void;
|
|
25
|
+
/** Everything in flight for `locale`, as one promise a component can suspend
|
|
26
|
+
* on, or `null` when nothing is. The same promise is handed back until it
|
|
27
|
+
* settles, which is what `use()` needs to resume. */
|
|
28
|
+
pending(locale: string): Promise<void> | null;
|
|
29
|
+
/** A key nothing answered in `locale`: fetch its namespace for that locale,
|
|
30
|
+
* unless a fetch already failed. */
|
|
31
|
+
missed(key: string, locale: string): void;
|
|
32
|
+
private ensure;
|
|
33
|
+
private landed;
|
|
34
|
+
private flying;
|
|
35
|
+
private settle;
|
|
36
|
+
private entry;
|
|
37
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Catalog } from './types';
|
|
2
|
+
/** Whether a template still names a key, i.e. {@link expandRefs} could not
|
|
3
|
+
* resolve it. A catalog that ships one of these has a typo or a cycle. */
|
|
4
|
+
export declare function hasUnresolvedRef(template: string): boolean;
|
|
5
|
+
/** Expand `$t(other.key)` references inside catalog values, once, so a term
|
|
6
|
+
* written in one place reads the same everywhere it is quoted.
|
|
7
|
+
*
|
|
8
|
+
* A reference resolves against its own locale first, then the default locale,
|
|
9
|
+
* then the same two in `against`: the catalogs already built, for a part that
|
|
10
|
+
* arrives later. One that names a missing key, or that closes a cycle, is left
|
|
11
|
+
* standing as `$t(...)` rather than throwing: a catalog is data, and a bad
|
|
12
|
+
* entry must not take the app down at import. Guard the shipped catalogs with
|
|
13
|
+
* {@link hasUnresolvedRef} in a test instead.
|
|
14
|
+
*
|
|
15
|
+
* Runs at construction, never per translation, which is what lets
|
|
16
|
+
* interpolation stay a single pass. */
|
|
17
|
+
export declare function expandRefs<C extends Record<string, Record<string, string>>>(catalogs: C, defaultLocale: keyof C & string, against?: Readonly<Record<string, Catalog | undefined>>): C;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Catalog, PluralCategory, PluralRule, TVars } from './types';
|
|
2
|
+
/** The CLDR plural category `count` falls in for `locale`. Falls back to a
|
|
3
|
+
* one/other split where `Intl.PluralRules` is missing, which is the older
|
|
4
|
+
* television engines. Note that French puts 0 in `one` and English does not,
|
|
5
|
+
* so a server rendering the same catalog has to agree with this. */
|
|
6
|
+
export declare function selectCategory(locale: string, count: number, rule?: PluralRule): PluralCategory;
|
|
7
|
+
/** The key `catalog` should be read at once the message's numeric variables
|
|
8
|
+
* have chosen a plural variant, or `key` itself when it declares none.
|
|
9
|
+
*
|
|
10
|
+
* Resolution is per catalog rather than across a fallback chain, so a locale
|
|
11
|
+
* can never borrow another language's singular purely because that language
|
|
12
|
+
* happens to declare one; the caller moves on to the next catalog only when
|
|
13
|
+
* this one has no template at all.
|
|
14
|
+
*
|
|
15
|
+
* `count` selects `key_one` / `key_other` / `key_zero`. Any other numeric
|
|
16
|
+
* variable selects `key_<name>_one` and so on, which is how a message whose
|
|
17
|
+
* quantity is not called "count" pluralises. Only one variable can select,
|
|
18
|
+
* since one key names one template: `count` is tried first, then the rest in
|
|
19
|
+
* declaration order. */
|
|
20
|
+
export declare function resolvePluralKey(catalog: Catalog, locale: string, key: string, vars: TVars, rule?: PluralRule): string;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { I18n, ScopedTranslate } from '../i18n';
|
|
2
|
+
import type { Locale, MessageKey, Translate } from '../registry';
|
|
3
|
+
import type { Catalog } from '../types';
|
|
4
|
+
/** What a provider hands down. `version` changes when a scope is added or a
|
|
5
|
+
* dev switch moves; it is carried rather than derived because it is what
|
|
6
|
+
* rebuilds `translator` beside it, and a memoiser that cannot see a value
|
|
7
|
+
* being read will prune the dependency and serve a stale translator. The
|
|
8
|
+
* provider watches the store once, on behalf of every consumer, rather than
|
|
9
|
+
* each of them opening its own subscription. */
|
|
10
|
+
export interface I18nValue {
|
|
11
|
+
i18n: I18n<string, Catalog>;
|
|
12
|
+
locale: Locale;
|
|
13
|
+
version: number;
|
|
14
|
+
translator: (scope?: string) => ScopedTranslate<MessageKey>;
|
|
15
|
+
setLocale: (locale: Locale) => void;
|
|
16
|
+
}
|
|
17
|
+
export declare const I18nContext: import("react").Context<I18nValue | null>;
|
|
18
|
+
/**
|
|
19
|
+
* A translator for the active locale. Waits, behind the nearest Suspense
|
|
20
|
+
* boundary, for the catalogs the screen's chunk announced to land in that
|
|
21
|
+
* locale, so no key is painted.
|
|
22
|
+
*
|
|
23
|
+
* Pass a scope to read a runtime-added catalog first, which is how a module
|
|
24
|
+
* reads its own messages while still falling back to the app's. A catalog that
|
|
25
|
+
* arrives after first paint re-renders through the provider, so it does not
|
|
26
|
+
* leave its keys showing.
|
|
27
|
+
*/
|
|
28
|
+
export declare function useT(scope: string): ScopedTranslate<MessageKey>;
|
|
29
|
+
export declare function useT(): Translate;
|
|
30
|
+
/** A factory for scoped translators, for a view that renders rows belonging to
|
|
31
|
+
* several scopes at once and so cannot call {@link useT} once per row. */
|
|
32
|
+
export declare function useScopedT(): (scope: string) => ScopedTranslate<MessageKey>;
|
|
33
|
+
export declare function useLocale(): Locale;
|
|
34
|
+
/** A no-op unless the provider was given an `onLocaleChange`. */
|
|
35
|
+
export declare function useSetLocale(): (locale: Locale) => void;
|
|
36
|
+
/** The instance itself, for the caller that needs `add` when a module loads. */
|
|
37
|
+
export declare function useI18n(): I18n<string, Catalog>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { I18n } from '../i18n';
|
|
3
|
+
import type { Locale } from '../registry';
|
|
4
|
+
import type { Catalog } from '../types';
|
|
5
|
+
export interface I18nProviderProps {
|
|
6
|
+
/** The instance built by `createI18n`. */
|
|
7
|
+
i18n: I18n<string, Catalog>;
|
|
8
|
+
/** Controlled: the app owns the resolved locale and `useSetLocale` asks for a
|
|
9
|
+
* change through `onLocaleChange` rather than setting it here. */
|
|
10
|
+
locale: Locale;
|
|
11
|
+
onLocaleChange?: (locale: Locale) => void;
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
}
|
|
14
|
+
export declare function I18nProvider({ i18n, locale, onLocaleChange, children, }: Readonly<I18nProviderProps>): import("react").JSX.Element;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { TVars } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* The seam that makes this package typed without a generic at every call site.
|
|
4
|
+
*
|
|
5
|
+
* The `@kroma/i18n/vite` plugin augments it from the catalog folder, with the
|
|
6
|
+
* locales it found and every namespace's messages folded into one map:
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* declare module '@kroma/i18n' {
|
|
10
|
+
* interface Register {
|
|
11
|
+
* locale: 'en' | 'fr';
|
|
12
|
+
* messages: typeof navMessages & typeof playerMessages;
|
|
13
|
+
* }
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* From then on {@link Locale}, {@link MessageKey} and {@link Translate} are the
|
|
18
|
+
* app's own everywhere they are imported. Left alone it stays empty and the
|
|
19
|
+
* types widen to `string`, so the package is usable before it is configured
|
|
20
|
+
* and a consumer that never augments it still compiles.
|
|
21
|
+
*/
|
|
22
|
+
export interface Register {
|
|
23
|
+
}
|
|
24
|
+
/** The locales the project registered, or `string` before it registers any. */
|
|
25
|
+
export type Locale = Register extends {
|
|
26
|
+
locale: infer L extends string;
|
|
27
|
+
} ? L : string;
|
|
28
|
+
/** The message map the project registered, keyed by message key. */
|
|
29
|
+
export type Messages = Register extends {
|
|
30
|
+
messages: infer M extends Record<string, string>;
|
|
31
|
+
} ? M : Record<string, string>;
|
|
32
|
+
/** Every key the default catalog declares, which is the catalog that has to be
|
|
33
|
+
* complete because it is the one every other locale falls back to. */
|
|
34
|
+
export type MessageKey = keyof Messages & string;
|
|
35
|
+
/** A translation function bound to one locale. */
|
|
36
|
+
export type Translate = (key: MessageKey, vars?: TVars) => string;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { Chain } from './chain';
|
|
2
|
+
import type { CatalogSource, Catalogs } from './types';
|
|
3
|
+
/** `$schema` points an editor at the catalog schema; it is not a message. */
|
|
4
|
+
export declare const SCHEMA_KEY: '$schema';
|
|
5
|
+
/** The catalogs an instance can currently reach: the ones it was built with,
|
|
6
|
+
* plus whatever has been added since.
|
|
7
|
+
*
|
|
8
|
+
* Added catalogs are scoped and layered rather than merged, because a module
|
|
9
|
+
* loaded at runtime cannot be trusted not to reuse a key the app already
|
|
10
|
+
* spells differently. A scope's own messages win for that scope and are
|
|
11
|
+
* invisible everywhere else. */
|
|
12
|
+
export declare class CatalogStore<L extends string> {
|
|
13
|
+
readonly defaultLocale: L;
|
|
14
|
+
private readonly base;
|
|
15
|
+
private readonly scopes;
|
|
16
|
+
private readonly chains;
|
|
17
|
+
private readonly origins;
|
|
18
|
+
private readonly listeners;
|
|
19
|
+
private revision;
|
|
20
|
+
constructor(catalogs: Catalogs<L>, defaultLocale: L);
|
|
21
|
+
/** The catalogs a lookup walks, most specific first.
|
|
22
|
+
*
|
|
23
|
+
* Cached, because this is asked once per rendered string: the answer only
|
|
24
|
+
* changes when a scope is added or removed, and building a fresh array per
|
|
25
|
+
* translation is a measurable share of the cheapest path. */
|
|
26
|
+
chain(locale: string, scope?: string): Chain;
|
|
27
|
+
/** Where each catalog of {@link chain} came from, at the same indices. Kept
|
|
28
|
+
* beside the chain rather than in it so that rendering a message never
|
|
29
|
+
* walks provenance it does not read. */
|
|
30
|
+
sources(locale: string, scope?: string): readonly CatalogSource[];
|
|
31
|
+
private build;
|
|
32
|
+
/** Add a scope's catalogs, returning a disposer that removes them again.
|
|
33
|
+
* Adding the same scope twice replaces it, so a module that reloads does not
|
|
34
|
+
* leave its previous messages behind. */
|
|
35
|
+
add(scope: string, catalogs: Catalogs<string>): () => void;
|
|
36
|
+
/** Merge catalogs into the base ones, as a namespace loaded on demand does:
|
|
37
|
+
* visible to every translator, scoped or not, and never removed. Quiet on
|
|
38
|
+
* purpose: the caller says when a view should re-read, so a locale whose
|
|
39
|
+
* namespaces land one by one is announced once. */
|
|
40
|
+
extend(catalogs: Catalogs<string>): void;
|
|
41
|
+
/** Bumped whenever a scope is added or removed or a locale's fetches have
|
|
42
|
+
* all landed, so a UI can hold it as a snapshot and re-render then. */
|
|
43
|
+
version(): number;
|
|
44
|
+
subscribe(listener: () => void): () => void;
|
|
45
|
+
changed(): void;
|
|
46
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** The variables a message interpolates. A numeric one can also select a
|
|
2
|
+
* plural variant; see {@link PluralCategory}. */
|
|
3
|
+
export type TVars = Record<string, string | number>;
|
|
4
|
+
/** One locale's messages, key to template. */
|
|
5
|
+
export type Catalog = Readonly<Record<string, string>>;
|
|
6
|
+
/** Every locale's messages. A locale may be absent, in which case lookups for
|
|
7
|
+
* it fall through to the default locale. */
|
|
8
|
+
export type Catalogs<L extends string = string> = Readonly<Partial<Record<L, Catalog>>>;
|
|
9
|
+
/** Where a catalog in a lookup came from: the scope that added it, or `null` for
|
|
10
|
+
* the base catalogs the app was built with, and the locale it speaks. */
|
|
11
|
+
export interface CatalogSource {
|
|
12
|
+
readonly scope: string | null;
|
|
13
|
+
readonly locale: string;
|
|
14
|
+
}
|
|
15
|
+
/** A CLDR plural category. Catalogs carry it as a key suffix (`key_one`). */
|
|
16
|
+
export type PluralCategory = Intl.LDMLPluralRule;
|
|
17
|
+
/** Picks the category a count falls in. Supply one only where
|
|
18
|
+
* `Intl.PluralRules` is absent or wrong for a language you ship. */
|
|
19
|
+
export type PluralRule = (locale: string, count: number) => PluralCategory;
|
|
20
|
+
export interface LocaleSet<L extends string, D extends L = L> {
|
|
21
|
+
readonly detectLocale: (preferred?: string | null) => L;
|
|
22
|
+
readonly isLocale: (value: unknown) => value is L;
|
|
23
|
+
readonly normalizeLocale: (tag?: string | null) => L | null;
|
|
24
|
+
readonly DEFAULT_LOCALE: D;
|
|
25
|
+
readonly SUPPORTED_LOCALES: ReadonlySet<L>;
|
|
26
|
+
readonly LOCALES: ReadonlyArray<{
|
|
27
|
+
readonly code: L;
|
|
28
|
+
readonly labelKey: `lang.${L}`;
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { KromaClient } from '@kroma/client';
|
|
2
|
+
import type { User } from '@kroma/client/accounts';
|
|
3
|
+
import { type ReactNode } from 'react';
|
|
4
|
+
export interface AdminHostValue {
|
|
5
|
+
client: KromaClient;
|
|
6
|
+
user: User | null;
|
|
7
|
+
apiBase: string;
|
|
8
|
+
/** Open the host's "media details" dialog for a catalog item. A service the
|
|
9
|
+
* shell owns and a module borrows: the dialog reads the core catalog, which
|
|
10
|
+
* is not a module's to know, but a module page listing files has every
|
|
11
|
+
* reason to offer it. Absent on a shell that has no such dialog. */
|
|
12
|
+
openMediaInfo?: (itemId: string, title: string) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function AdminHostProvider({ value, children, }: Readonly<{
|
|
15
|
+
value: AdminHostValue;
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
}>): import("react").JSX.Element;
|
|
18
|
+
/** The host-provided client / user / apiBase. Throws if used outside the
|
|
19
|
+
* provider (which the admin shell always mounts). */
|
|
20
|
+
export declare function useAdminHost(): AdminHostValue;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function Denied(): import("react").JSX.Element;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { EngineContribution, EngineField } from '@kroma/client/modules';
|
|
2
|
+
/** A contribution the add-picker can offer: it names the instance an added row
|
|
3
|
+
* stores, and it has either a field form or a custom flow. */
|
|
4
|
+
export type EngineChoice = EngineContribution & {
|
|
5
|
+
id: string;
|
|
6
|
+
};
|
|
7
|
+
/** The enabled contributors to `point` that expose an add-flow. A disabled
|
|
8
|
+
* module contributes nothing, so its add-flow disappears from the page. */
|
|
9
|
+
export declare function useEnabledEngines(point: string): EngineChoice[];
|
|
10
|
+
/** Whether each module is enabled, as a predicate. For a caller checking a
|
|
11
|
+
* VARIABLE number of modules, where one `useModuleEnabled` per id would be a
|
|
12
|
+
* hook in a loop. Unknown ids answer true, matching {@link useModuleEnabled}. */
|
|
13
|
+
export declare function useModuleEnabledCheck(): (id: string) => boolean;
|
|
14
|
+
/** Whether module `id` is enabled. Defaults to true while loading / when unknown,
|
|
15
|
+
* so nothing flickers off before the module list resolves. */
|
|
16
|
+
export declare function useModuleEnabled(id: string): boolean;
|
|
17
|
+
/** A controlled form over an engine's declared fields. Every label resolves
|
|
18
|
+
* through `t()`, so a field key like `field.url` localizes while a proper-noun
|
|
19
|
+
* engine label (`Transmission`) passes through unchanged. */
|
|
20
|
+
export declare function FieldForm({ fields, values, onChange, }: Readonly<{
|
|
21
|
+
fields: EngineField[];
|
|
22
|
+
values: Record<string, string>;
|
|
23
|
+
onChange: (key: string, value: string) => void;
|
|
24
|
+
}>): import("react").JSX.Element;
|
|
25
|
+
export interface AddEngineOptions {
|
|
26
|
+
engines: EngineChoice[];
|
|
27
|
+
title: string;
|
|
28
|
+
onSubmit: (engineId: string, values: Record<string, string>) => Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
/** Open the generic "add an engine" dialog: pick an engine, name it, fill its
|
|
31
|
+
* declared fields, submit. Resolves `true` on submit, `false` on dismiss - and
|
|
32
|
+
* immediately `false` when no <AddEngineHost/> is mounted. */
|
|
33
|
+
export declare function addEngine(options: Readonly<AddEngineOptions>): Promise<boolean>;
|
|
34
|
+
/** Mount once, near the admin root. Draws whatever `addEngine()` asks. */
|
|
35
|
+
export declare function AddEngineHost(): import("react").JSX.Element | null;
|