@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,39 @@
|
|
|
1
|
+
import { type Permission, type User } from '@kroma/client/accounts';
|
|
2
|
+
import { type QueryKey } from '@tanstack/react-query';
|
|
3
|
+
/** Polls `fn` every `intervalMs` through TanStack Query. Prefix `key` with `'admin'`
|
|
4
|
+
* so `invalidateQueries(['admin'])` refreshes it, and put varying inputs in `key`.
|
|
5
|
+
*
|
|
6
|
+
* `loading` is true only until the FIRST answer; a later poll that fails leaves
|
|
7
|
+
* the last good `data` in place and raises `failed`. `error` is that failure's
|
|
8
|
+
* cause, for a page that says WHY rather than only that it failed. */
|
|
9
|
+
export declare function usePoll<T>(key: QueryKey, fn: () => Promise<T>, intervalMs: number): {
|
|
10
|
+
data: T | null;
|
|
11
|
+
loading: boolean;
|
|
12
|
+
failed: boolean;
|
|
13
|
+
error: unknown;
|
|
14
|
+
reload: () => Promise<void>;
|
|
15
|
+
};
|
|
16
|
+
/** Fetches `fn` once through TanStack Query and keeps the answer, for data that
|
|
17
|
+
* does not move: a torrent's file list, a season's episode names. Same shape as
|
|
18
|
+
* {@link usePoll}, so the two are interchangeable at a call site.
|
|
19
|
+
*
|
|
20
|
+
* A `null` key holds the request back until the inputs it needs exist, and
|
|
21
|
+
* reports `loading: false` while it waits, because nothing is in flight. */
|
|
22
|
+
export declare function useFetch<T>(key: QueryKey | null, fn: () => Promise<T>): {
|
|
23
|
+
data: T | null;
|
|
24
|
+
loading: boolean;
|
|
25
|
+
failed: boolean;
|
|
26
|
+
error: unknown;
|
|
27
|
+
reload: () => Promise<void>;
|
|
28
|
+
};
|
|
29
|
+
/** `run(fn, onError?)` flips `busy` while `fn` runs and, on failure, sets `error` to `onError(e)`. */
|
|
30
|
+
export declare function useAsyncAction(): {
|
|
31
|
+
busy: boolean;
|
|
32
|
+
error: string | null;
|
|
33
|
+
run: (fn: () => Promise<void>, onError?: (e: unknown) => string) => Promise<void>;
|
|
34
|
+
};
|
|
35
|
+
/** True if the user holds any management capability, which unlocks the console.
|
|
36
|
+
* `requests.manage` counts: a moderator needs the shell for the requests queue. */
|
|
37
|
+
export declare function isAnyAdmin(user: Pick<User, 'permissions'> | null | undefined): boolean;
|
|
38
|
+
/** Whether the current user satisfies `cap` (or is any admin when `cap` is null). */
|
|
39
|
+
export declare function useCap(cap?: Permission | null): boolean;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shape of a console page, pulsing: a title, a subtitle, and the panels
|
|
3
|
+
* under them. Deliberately the page's OWN silhouette rather than a spinner -
|
|
4
|
+
* it says what is coming and holds the layout, so nothing jumps when the real
|
|
5
|
+
* page lands.
|
|
6
|
+
*/
|
|
7
|
+
export declare function ModuleLoading({ panels }: Readonly<{
|
|
8
|
+
panels?: number;
|
|
9
|
+
}>): import("react").JSX.Element;
|
|
10
|
+
/** A module that is not installed, or has been turned off: its pages vanish
|
|
11
|
+
* with its nav, and this says so rather than 404-ing. */
|
|
12
|
+
export declare function ModuleUnavailable(): import("react").JSX.Element;
|
|
13
|
+
interface ModuleFailedProps {
|
|
14
|
+
/** Offered as a Retry button; a page that cannot ask again omits it. */
|
|
15
|
+
retry?: () => void;
|
|
16
|
+
/** The thrown cause, which chooses the explanation: a request that never
|
|
17
|
+
* reached a server reads as the server being down, an HTTP answer as the
|
|
18
|
+
* module's. Without one the state falls back to the generic wording. */
|
|
19
|
+
error?: unknown;
|
|
20
|
+
/** The raw text under that explanation. Defaults to what `error` carries. */
|
|
21
|
+
detail?: string;
|
|
22
|
+
}
|
|
23
|
+
/** A module page whose own data could not be fetched. Distinct from
|
|
24
|
+
* {@link ModuleUnavailable}: the module IS there, the request failed. Pass
|
|
25
|
+
* `retry` where the page can ask again, and the state offers the button. */
|
|
26
|
+
export declare function ModuleFailed({ retry, error, detail }: Readonly<ModuleFailedProps>): import("react").JSX.Element;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MessageKey } from '@kroma/core';
|
|
2
|
+
interface SettingsViewProps {
|
|
3
|
+
view: string;
|
|
4
|
+
titleKey: MessageKey;
|
|
5
|
+
subtitleKey: MessageKey;
|
|
6
|
+
embedded?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function SettingsView(props: Readonly<SettingsViewProps>): import("react").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { KromaEvents } from './contracts';
|
|
2
|
+
export type EventKey = Extract<keyof KromaEvents, string>;
|
|
3
|
+
export interface EventBus {
|
|
4
|
+
emit<K extends EventKey>(key: K, payload: KromaEvents[K]): void;
|
|
5
|
+
on<K extends EventKey>(key: K, handler: (payload: KromaEvents[K]) => void): () => void;
|
|
6
|
+
}
|
|
7
|
+
/** Dispatch is synchronous: `emit` returns once every handler has run. */
|
|
8
|
+
export declare function createEventBus(): EventBus;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ComponentType } from 'react';
|
|
2
|
+
import type { KromaHost } from './host';
|
|
3
|
+
import type { AnySlotContribution, KromaModule, ModuleComponentProps, NavItem, SettingsPanel } from './module';
|
|
4
|
+
import type { Dependencies } from './types';
|
|
5
|
+
/** The absolute URL a module page lives at: admin sections under `/admin/<path>`,
|
|
6
|
+
* everything else under `/<path>`. The single source of truth, so the route and
|
|
7
|
+
* the nav link cannot drift. */
|
|
8
|
+
export declare function pageHref(section: string, path: string): string;
|
|
9
|
+
/** One page a module contributes: a route, plus nav metadata when it should show
|
|
10
|
+
* in a sidebar. Omit `nav` for deep links and detail pages. */
|
|
11
|
+
export interface ModulePage {
|
|
12
|
+
path: string;
|
|
13
|
+
component: ComponentType<ModuleComponentProps>;
|
|
14
|
+
nav?: Omit<NavItem, 'to'> & {
|
|
15
|
+
section: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export interface ModuleManifestInput {
|
|
19
|
+
id: string;
|
|
20
|
+
version: string;
|
|
21
|
+
dependencies?: Dependencies;
|
|
22
|
+
optionalDependencies?: Dependencies;
|
|
23
|
+
}
|
|
24
|
+
export interface DefineModuleOptions<Exports = unknown> {
|
|
25
|
+
manifest?: ModuleManifestInput;
|
|
26
|
+
locales?: Record<string, Record<string, string>>;
|
|
27
|
+
pages?: ModulePage[];
|
|
28
|
+
settingsPanels?: SettingsPanel[];
|
|
29
|
+
slots?: AnySlotContribution[];
|
|
30
|
+
exports?: (host: KromaHost) => Exports;
|
|
31
|
+
setup?: (host: KromaHost) => void | Promise<void>;
|
|
32
|
+
dependencies?: Dependencies;
|
|
33
|
+
optionalDependencies?: Dependencies;
|
|
34
|
+
}
|
|
35
|
+
/** Build a `KromaModule` from its manifest + pages. `defineModule({ pages })` has
|
|
36
|
+
* the manifest and locales injected by the `@kroma/module-sdk/vite` plugin;
|
|
37
|
+
* `defineModule(manifest, { pages })` is the explicit form for when it is off. */
|
|
38
|
+
export declare function defineModule<Exports = unknown>(manifestOrOptions: ModuleManifestInput | DefineModuleOptions<Exports>, maybeOptions?: DefineModuleOptions<Exports>): KromaModule<Exports>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ServerEvent } from '@kroma/client/events';
|
|
2
|
+
/** Subscribe to the server's event socket. A module widens the frame union
|
|
3
|
+
* with its own event types, declared in its package, not in core:
|
|
4
|
+
*
|
|
5
|
+
* ```ts
|
|
6
|
+
* useServerEvents<DownloadProgressEvent | VpnStatusEvent>((e) => { ... });
|
|
7
|
+
* ```
|
|
8
|
+
*/
|
|
9
|
+
export declare function useServerEvents<M extends {
|
|
10
|
+
type: string;
|
|
11
|
+
} = never>(onEvent: (e: ServerEvent | M) => void): void;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { EventBus } from './bus';
|
|
2
|
+
import type { ModuleApiRegistry } from './contracts';
|
|
3
|
+
import type { ModuleManifest } from './types';
|
|
4
|
+
/** The slice of the server API the host grants modules. The web host adapts its
|
|
5
|
+
* concrete `KromaClient` to this; a module never depends on the client package. */
|
|
6
|
+
export interface HostApi {
|
|
7
|
+
get<T>(path: string): Promise<T>;
|
|
8
|
+
listModules(): Promise<ModuleManifest[]>;
|
|
9
|
+
}
|
|
10
|
+
export interface HostAuth {
|
|
11
|
+
readonly userId: string | null;
|
|
12
|
+
can(capability: string): boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface HostI18n {
|
|
15
|
+
t(key: string, vars?: Record<string, unknown>): string;
|
|
16
|
+
readonly locale: string;
|
|
17
|
+
}
|
|
18
|
+
export interface HostNav {
|
|
19
|
+
navigate(to: string): void;
|
|
20
|
+
}
|
|
21
|
+
/** Everything a module receives at setup. */
|
|
22
|
+
export interface KromaHost {
|
|
23
|
+
api: HostApi;
|
|
24
|
+
auth: HostAuth;
|
|
25
|
+
i18n: HostI18n;
|
|
26
|
+
nav: HostNav;
|
|
27
|
+
bus: EventBus;
|
|
28
|
+
getModuleApi<K extends keyof ModuleApiRegistry>(id: K): ModuleApiRegistry[K] | undefined;
|
|
29
|
+
}
|
|
30
|
+
/** What the host provides to the registry; `getModuleApi` is wired by the
|
|
31
|
+
* registry itself, so the caller supplies everything except that. */
|
|
32
|
+
export type HostBase = Omit<KromaHost, 'getModuleApi'>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function moduleIconUrl(id: string, baseUrl?: string): string;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export { apiErrorText, brandedId, type KromaClient } from '@kroma/client';
|
|
2
|
+
export { KromaEvents as KromaEventStream, type ServerEvent } from '@kroma/client/events';
|
|
3
|
+
export { ItemId } from '@kroma/client/media';
|
|
4
|
+
export { type EngineContribution, type ModuleApi, ModuleId } from '@kroma/client/modules';
|
|
5
|
+
export { IndexerId, RequestId } from '@kroma/client/requests';
|
|
6
|
+
export type { MessageKey } from '@kroma/core';
|
|
7
|
+
export { useFormat, useLocale } from '@kroma/ui';
|
|
8
|
+
export type { AdminHostValue } from './admin/context';
|
|
9
|
+
export { AdminHostProvider, useAdminHost } from './admin/context';
|
|
10
|
+
export { Denied } from './admin/denied';
|
|
11
|
+
export type { AddEngineOptions, EngineChoice } from './admin/engines';
|
|
12
|
+
export { AddEngineHost, addEngine, FieldForm, useEnabledEngines, useModuleEnabled, useModuleEnabledCheck, } from './admin/engines';
|
|
13
|
+
export { isAnyAdmin, useAsyncAction, useCap, useFetch, usePoll } from './admin/hooks';
|
|
14
|
+
export { ModuleFailed, ModuleLoading, ModuleUnavailable } from './admin/page-states';
|
|
15
|
+
export { SettingsView } from './admin/settings';
|
|
16
|
+
export type { EventBus, EventKey } from './bus';
|
|
17
|
+
export { createEventBus } from './bus';
|
|
18
|
+
export type { KromaEvents, ModuleApiRegistry } from './contracts';
|
|
19
|
+
export type { DefineModuleOptions, ModuleManifestInput, ModulePage } from './define';
|
|
20
|
+
export { defineModule, pageHref } from './define';
|
|
21
|
+
export { useServerEvents } from './events';
|
|
22
|
+
export type { HostApi, HostAuth, HostBase, HostI18n, HostNav, KromaHost } from './host';
|
|
23
|
+
export { moduleIconUrl } from './icon';
|
|
24
|
+
export type { KromaModule, ModuleComponentProps, NavItem, RouteDef, SettingsPanel, SlotContribution, SlotName, SlotProps, } from './module';
|
|
25
|
+
export type { ModuleNav, ModulePanel, ModuleRoute, ModuleSlotEntry, ModuleStatus, } from './registry';
|
|
26
|
+
export { depEntries, ModuleRegistry } from './registry';
|
|
27
|
+
export { ModuleScope, moduleApiHook, useModuleApi, useT } from './scope';
|
|
28
|
+
export type { SharedModule } from './shared';
|
|
29
|
+
export { PUBLIC_NAME, REMOTE_ENTRY, REMOTE_STYLES, remoteEntryUrl, SHARED_GLOBAL, SHARED_MODULES, sharedKey, } from './shared';
|
|
30
|
+
export { ModuleSlot, ModuleSlotProvider, useSlotEntries } from './slot';
|
|
31
|
+
export type { ConfigField, Contribution, Dependencies, FeRemote, ModuleManifest, PointReq, } from './types';
|
|
32
|
+
export type { SortColumn, TableActionProps, TableCellProps, TableColumn, TableColumnProps, TableRootProps, TableRowProps, } from './ui/table';
|
|
33
|
+
export { TABULAR, Table } from './ui/table';
|
|
34
|
+
export type { PlainColumn, SortableColumn, SortDirection, SortedColumn, SortedTable, SortedTableOptions, TableHeading, TableOrder, TablePage, TableQuery, } from './use-sorted-table';
|
|
35
|
+
export { useSortedTable } from './use-sorted-table';
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { RequestId } from '@kroma/client/requests';
|
|
2
|
+
import type { ComponentType } from 'react';
|
|
3
|
+
import type { KromaHost } from './host';
|
|
4
|
+
import type { Dependencies } from './types';
|
|
5
|
+
export interface NavItem {
|
|
6
|
+
to: string;
|
|
7
|
+
label: string;
|
|
8
|
+
icon?: string;
|
|
9
|
+
section?: string;
|
|
10
|
+
requires?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ModuleComponentProps {
|
|
13
|
+
host: KromaHost;
|
|
14
|
+
}
|
|
15
|
+
/** A route registered under the host's module mount point. */
|
|
16
|
+
export interface RouteDef {
|
|
17
|
+
path: string;
|
|
18
|
+
component: ComponentType<ModuleComponentProps>;
|
|
19
|
+
}
|
|
20
|
+
export interface SettingsPanel {
|
|
21
|
+
id: string;
|
|
22
|
+
label: string;
|
|
23
|
+
component: ComponentType<ModuleComponentProps>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A place a CORE page opens for modules to fill.
|
|
27
|
+
*
|
|
28
|
+
* The core cannot import a module -- it does not know which are installed, and
|
|
29
|
+
* a page that named one would break the moment it was disabled. So the page
|
|
30
|
+
* renders a named slot and passes it props; a module answers the name. The name
|
|
31
|
+
* is the contract between them, and its props are declared in {@link SlotProps}.
|
|
32
|
+
*/
|
|
33
|
+
export interface SlotContribution<Name extends SlotName = SlotName> {
|
|
34
|
+
slot: Name;
|
|
35
|
+
component: ComponentType<SlotProps[Name]>;
|
|
36
|
+
/** Lower renders first when several modules fill one slot. Defaults to 0. */
|
|
37
|
+
order?: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Every slot a core page opens, and what it hands whoever fills it.
|
|
41
|
+
*
|
|
42
|
+
* Declared here so both sides typecheck against one definition: a core page
|
|
43
|
+
* cannot pass props no module expects, and a module cannot claim a slot that
|
|
44
|
+
* does not exist. Adding a slot is a change to this map first.
|
|
45
|
+
*/
|
|
46
|
+
export interface SlotProps {
|
|
47
|
+
/** The acquisition half of the admin request page: search for releases of
|
|
48
|
+
* this request and grab one. Everything about indexers, releases and
|
|
49
|
+
* downloads lives behind it. */
|
|
50
|
+
'requests.detail': {
|
|
51
|
+
requestId: RequestId;
|
|
52
|
+
kind: 'movie' | 'show';
|
|
53
|
+
title: string;
|
|
54
|
+
canGrab: boolean;
|
|
55
|
+
};
|
|
56
|
+
/** Beside one episode row of the request page's catalogue: how far along the
|
|
57
|
+
* download of that episode is, if anything is downloading it. */
|
|
58
|
+
'requests.episode.progress': {
|
|
59
|
+
requestId: RequestId;
|
|
60
|
+
season: number;
|
|
61
|
+
episode: number;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export type SlotName = keyof SlotProps;
|
|
65
|
+
/** A contribution to SOME slot, each element matched to its own slot's props.
|
|
66
|
+
* `SlotContribution` alone would default to the union of every slot's props and
|
|
67
|
+
* demand a component that accepts all of them at once. */
|
|
68
|
+
export type AnySlotContribution = {
|
|
69
|
+
[Name in SlotName]: SlotContribution<Name>;
|
|
70
|
+
}[SlotName];
|
|
71
|
+
export interface KromaModule<Exports = unknown> {
|
|
72
|
+
id: string;
|
|
73
|
+
version: string;
|
|
74
|
+
dependencies?: Dependencies;
|
|
75
|
+
optionalDependencies?: Dependencies;
|
|
76
|
+
routes?: RouteDef[];
|
|
77
|
+
navItems?: NavItem[];
|
|
78
|
+
settingsPanels?: SettingsPanel[];
|
|
79
|
+
slots?: AnySlotContribution[];
|
|
80
|
+
locales?: Record<string, Record<string, string>>;
|
|
81
|
+
exports?: (host: KromaHost) => Exports;
|
|
82
|
+
setup?: (host: KromaHost) => void | Promise<void>;
|
|
83
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { HostBase, KromaHost } from './host';
|
|
2
|
+
import type { AnySlotContribution, KromaModule, NavItem, RouteDef, SettingsPanel, SlotName } from './module';
|
|
3
|
+
import type { Dependencies, ModuleManifest } from './types';
|
|
4
|
+
/** A `{ id: range }` dependency map as a flat list; `"*"` means no constraint. */
|
|
5
|
+
export declare function depEntries(deps?: Dependencies | null): {
|
|
6
|
+
id: string;
|
|
7
|
+
version?: string;
|
|
8
|
+
}[];
|
|
9
|
+
export type ModuleRoute = RouteDef & {
|
|
10
|
+
moduleId: string;
|
|
11
|
+
};
|
|
12
|
+
export type ModuleNav = NavItem & {
|
|
13
|
+
moduleId: string;
|
|
14
|
+
};
|
|
15
|
+
export type ModulePanel = SettingsPanel & {
|
|
16
|
+
moduleId: string;
|
|
17
|
+
};
|
|
18
|
+
export type ModuleSlotEntry = AnySlotContribution & {
|
|
19
|
+
moduleId: string;
|
|
20
|
+
};
|
|
21
|
+
export interface ModuleStatus {
|
|
22
|
+
id: string;
|
|
23
|
+
frontend: true;
|
|
24
|
+
backend: boolean;
|
|
25
|
+
manifest?: ModuleManifest;
|
|
26
|
+
}
|
|
27
|
+
/** Where a module's own message catalogs go when it registers. The host passes
|
|
28
|
+
* its i18n instance's `addCatalogs`; a registry built without one, as a test
|
|
29
|
+
* or a story does, simply keeps the messages to itself. */
|
|
30
|
+
export type CatalogSink = (scope: string, catalogs: Record<string, Record<string, string>>) => () => void;
|
|
31
|
+
export declare class ModuleRegistry {
|
|
32
|
+
private readonly catalogs;
|
|
33
|
+
private readonly modules;
|
|
34
|
+
private readonly setupDone;
|
|
35
|
+
private readonly disposers;
|
|
36
|
+
/** @param catalogs where a registering module's messages are published. The
|
|
37
|
+
* default drops them, so a registry is inert until a host wires one in and
|
|
38
|
+
* two registries in one process cannot tread on each other. */
|
|
39
|
+
constructor(catalogs?: CatalogSink);
|
|
40
|
+
register(module: KromaModule): this;
|
|
41
|
+
/** Remove a module, e.g. to roll back a runtime remote whose deps don't
|
|
42
|
+
* resolve before it breaks `order()` for everyone else. */
|
|
43
|
+
unregister(id: string): void;
|
|
44
|
+
has(id: string): boolean;
|
|
45
|
+
ids(): string[];
|
|
46
|
+
/** Modules in initialization order (dependencies first). Throws on a missing
|
|
47
|
+
* hard dependency or a cycle; version ranges are the backend's business. */
|
|
48
|
+
order(): KromaModule[];
|
|
49
|
+
/** Resolve the graph, compute each module's exports and run its setup in
|
|
50
|
+
* dependency order, then return the wired host. Ids in `skipSetup` are not
|
|
51
|
+
* set up, and a module's setup runs at most once across calls. */
|
|
52
|
+
start(base: HostBase, skipSetup?: ReadonlySet<string>): Promise<KromaHost>;
|
|
53
|
+
navItems(): ModuleNav[];
|
|
54
|
+
routes(): ModuleRoute[];
|
|
55
|
+
/** Everything registered for one slot, in `order` then dependency order. The
|
|
56
|
+
* caller decides whether a module is ENABLED: this registry only knows what
|
|
57
|
+
* was registered. */
|
|
58
|
+
slotsFor(slot: SlotName): ModuleSlotEntry[];
|
|
59
|
+
settingsPanels(): ModulePanel[];
|
|
60
|
+
/** Cross-check registered frontend modules against the backend manifest: an
|
|
61
|
+
* id absent from `/api/modules` comes back `backend: false`. */
|
|
62
|
+
reconcile(manifest: ModuleManifest[]): ModuleStatus[];
|
|
63
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type ModuleApi } from '@kroma/client/modules';
|
|
2
|
+
import { useScopedT } from '@kroma/ui';
|
|
3
|
+
import { type ReactNode } from 'react';
|
|
4
|
+
/** Mounted by the host around a module's page, carrying that module's id. */
|
|
5
|
+
export declare function ModuleScope({ id, children }: Readonly<{
|
|
6
|
+
id: string;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
}>): import("react").JSX.Element;
|
|
9
|
+
/** Translate against THIS module's catalog first, then the app's. Outside a
|
|
10
|
+
* module page it is the app's translator unchanged. */
|
|
11
|
+
export declare function useT(): ReturnType<ReturnType<typeof useScopedT>>;
|
|
12
|
+
/** This module's own admin API, bound to `/api/admin/m/<its id>`. Paths are
|
|
13
|
+
* relative to that mount, so `get('/vpn')` reads the module's own `/vpn`. */
|
|
14
|
+
export declare function useModuleApi(): ModuleApi;
|
|
15
|
+
/** Build a module's typed API hook from a factory over its `ModuleApi`.
|
|
16
|
+
*
|
|
17
|
+
* `moduleApiHook(factory)` binds to whichever module the host is rendering
|
|
18
|
+
* (via `ModuleScope`), so the module never names itself. The `(id, factory)`
|
|
19
|
+
* form binds an explicit id instead: that is the shape for an API other
|
|
20
|
+
* packages call: the id others reach the module at, published once, next to
|
|
21
|
+
* the methods it addresses. */
|
|
22
|
+
export declare function moduleApiHook<T>(factory: (api: ModuleApi) => T): () => T;
|
|
23
|
+
export declare function moduleApiHook<T>(id: string, factory: (api: ModuleApi) => T): () => T;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Every import specifier a module bundle takes from the host, by exact name. */
|
|
2
|
+
export declare const SHARED_MODULES: readonly ['react', 'react/jsx-runtime', 'react/jsx-dev-runtime', 'react-dom', 'react-native', '@kroma/module-sdk', '@kroma/ui', '@kroma/ui/kit', '@kroma/ui/tokens', '@kroma/core', '@kroma/core/react', '@kroma/client', '@kroma/client/query', '@kroma/i18n', '@kroma/i18n/react', '@tanstack/react-query', '@tanstack/react-router', 'react-call'];
|
|
3
|
+
export type SharedModule = (typeof SHARED_MODULES)[number];
|
|
4
|
+
/**
|
|
5
|
+
* What the host provides for an import specifier: the specifier itself when it
|
|
6
|
+
* is shared, `@kroma/ui/kit` for a deep kit import (the barrel exports every
|
|
7
|
+
* component, and the host holds one copy of it), and `null` for a package the
|
|
8
|
+
* bundle carries itself.
|
|
9
|
+
*/
|
|
10
|
+
export declare function sharedKey(specifier: string): string | null;
|
|
11
|
+
/** The published package's name, and the specifier a module written against it
|
|
12
|
+
* imports the SDK by. The host provides it as `@kroma/module-sdk`. */
|
|
13
|
+
export declare const PUBLIC_NAME = "@kromatv/sdk";
|
|
14
|
+
/** The global the host fills with `{ [specifier]: module namespace }` before it
|
|
15
|
+
* imports a module's remote entry. */
|
|
16
|
+
export declare const SHARED_GLOBAL = "__KROMA_SHARED__";
|
|
17
|
+
/** The bundle's entry file under `fe/`, and the stylesheet beside it. */
|
|
18
|
+
export declare const REMOTE_ENTRY = "remoteEntry.js";
|
|
19
|
+
export declare const REMOTE_STYLES = "style.css";
|
|
20
|
+
/** Where the server serves a module's `fe/` from. */
|
|
21
|
+
export declare function remoteEntryUrl(baseUrl: string, id: string): string;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { SlotName, SlotProps } from './module';
|
|
3
|
+
import type { ModuleRegistry, ModuleSlotEntry } from './registry';
|
|
4
|
+
/** Hands the shell's registry to every `<ModuleSlot>` below it. Mounted once,
|
|
5
|
+
* beside `<AdminHostProvider>`. Without it a slot renders its fallback, which
|
|
6
|
+
* is what a shell that contributes no modules should show anyway. */
|
|
7
|
+
export declare function ModuleSlotProvider({ registry, children, }: Readonly<{
|
|
8
|
+
registry: ModuleRegistry;
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
}>): import("react").JSX.Element;
|
|
11
|
+
/** What is registered for `slot`, before the enabled check. */
|
|
12
|
+
export declare function useSlotEntries(slot: SlotName): ModuleSlotEntry[];
|
|
13
|
+
type ModuleSlotProps<Name extends SlotName> = {
|
|
14
|
+
name: Name;
|
|
15
|
+
/** Shown when no enabled module fills the slot: the module is absent, or off.
|
|
16
|
+
* Absent fallback renders nothing, for a slot that is a decoration. */
|
|
17
|
+
fallback?: ReactNode;
|
|
18
|
+
} & SlotProps[Name];
|
|
19
|
+
/**
|
|
20
|
+
* Render whatever enabled modules contribute to `name`, in their declared order.
|
|
21
|
+
*
|
|
22
|
+
* ```tsx
|
|
23
|
+
* <ModuleSlot
|
|
24
|
+
* name="requests.detail"
|
|
25
|
+
* requestId={req.id}
|
|
26
|
+
* kind={req.kind}
|
|
27
|
+
* title={req.title}
|
|
28
|
+
* canGrab={canModerate}
|
|
29
|
+
* fallback={<NoAcquisitionModule />}
|
|
30
|
+
* />
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function ModuleSlot<Name extends SlotName>({ name, fallback, ...props }: Readonly<ModuleSlotProps<Name>>): import("react").JSX.Element;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ConfigField, Manifest } from '@kroma/registry';
|
|
2
|
+
export type { ConfigField } from '@kroma/registry';
|
|
3
|
+
/** One thing a backend module contributes: the `point` it answers, and the `id`
|
|
4
|
+
* of this instance when the point takes several. A contribution the admin can
|
|
5
|
+
* add an instance of also carries UI metadata, so the add-picker is
|
|
6
|
+
* data-driven. */
|
|
7
|
+
export interface Contribution {
|
|
8
|
+
point: string;
|
|
9
|
+
id?: string;
|
|
10
|
+
label?: string;
|
|
11
|
+
fields?: ConfigField[];
|
|
12
|
+
flow?: string;
|
|
13
|
+
}
|
|
14
|
+
/** A map of module id to semver range; a bare `"*"` means any version. Ranges
|
|
15
|
+
* are enforced on the backend, so the frontend registry reads only the id, for
|
|
16
|
+
* setup ordering. */
|
|
17
|
+
export type Dependencies = Record<string, string>;
|
|
18
|
+
/** A point a module calls: answered by any module whose `contributes` matches. */
|
|
19
|
+
export interface PointReq {
|
|
20
|
+
point: string;
|
|
21
|
+
id?: string;
|
|
22
|
+
}
|
|
23
|
+
/** The frontend remote a runtime-loaded module ships (Module Federation). The
|
|
24
|
+
* entry URL is derived by the host as `/modules/<id>/remoteEntry.js`. */
|
|
25
|
+
export interface FeRemote {
|
|
26
|
+
module: string;
|
|
27
|
+
}
|
|
28
|
+
/** A backend module's self-description: the manifest contract, plus whether the
|
|
29
|
+
* server currently has it enabled. */
|
|
30
|
+
export type ModuleManifest = Manifest & {
|
|
31
|
+
feRemote?: FeRemote;
|
|
32
|
+
/** Whether the server currently has it enabled; runtime state, not manifest. */
|
|
33
|
+
enabled?: boolean;
|
|
34
|
+
/** Points this module `consumes` that no enabled module answers, as `point` or
|
|
35
|
+
* `point#id`. Absent when there are none. A module with entries here is
|
|
36
|
+
* installed and INERT: it runs and answers nothing useful, which is otherwise
|
|
37
|
+
* silent. */
|
|
38
|
+
unmet?: string[];
|
|
39
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { type BoxProps, type ColorToken, type IconName, type SortColumn, type TableColumn } from '@kroma/ui/kit';
|
|
2
|
+
import { type ReactNode } from 'react';
|
|
3
|
+
/** Numerals that line up from row to row, for a date or a count column. */
|
|
4
|
+
export declare const TABULAR: import("#ui/core/types").AnyStyle;
|
|
5
|
+
interface TableRootProps {
|
|
6
|
+
/** One entry per column, in the order the cells are written. A column with
|
|
7
|
+
* `from: 'md'` is drawn from that breakpoint up and absent below it, in the
|
|
8
|
+
* header and in every row. */
|
|
9
|
+
columns: readonly TableColumn[];
|
|
10
|
+
/** Names the table to assistive tech. Draws nothing. */
|
|
11
|
+
label?: string;
|
|
12
|
+
/** The columns the rows are ordered by, and the press that changes it: given
|
|
13
|
+
* both, every heading whose column has a name becomes the sort control. */
|
|
14
|
+
sort?: readonly SortColumn[];
|
|
15
|
+
onSortChange?: (next: readonly SortColumn[], details: {
|
|
16
|
+
column: string;
|
|
17
|
+
}) => void;
|
|
18
|
+
/** A <Table.Header>, then the rows. */
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
}
|
|
21
|
+
declare function Root({ columns, label, sort, onSortChange, children }: Readonly<TableRootProps>): import("react").JSX.Element;
|
|
22
|
+
/** The heading band above the rows: one <Table.Column> per column. */
|
|
23
|
+
declare function Header({ children }: Readonly<{
|
|
24
|
+
children: ReactNode;
|
|
25
|
+
}>): import("react").JSX.Element;
|
|
26
|
+
interface TableRowProps {
|
|
27
|
+
/** Makes the whole row the control, so it is one pointer target and one tab
|
|
28
|
+
* stop rather than a row of them. The controls a cell carries stay their own
|
|
29
|
+
* buttons beside it. */
|
|
30
|
+
onPress?: () => void;
|
|
31
|
+
children: ReactNode;
|
|
32
|
+
}
|
|
33
|
+
/** One record. */
|
|
34
|
+
declare function Row({ onPress, children }: Readonly<TableRowProps>): import("react").JSX.Element;
|
|
35
|
+
interface TableCellProps extends Omit<BoxProps, 'children'> {
|
|
36
|
+
children?: ReactNode;
|
|
37
|
+
}
|
|
38
|
+
/** One column of one row. The box props lay its content out; the column's own
|
|
39
|
+
* width and place come from the Root's `columns`. */
|
|
40
|
+
declare function Cell({ children, ...box }: Readonly<TableCellProps>): import("react").JSX.Element;
|
|
41
|
+
interface TableColumnProps {
|
|
42
|
+
children?: ReactNode;
|
|
43
|
+
}
|
|
44
|
+
/** A column's name, in the header band. */
|
|
45
|
+
declare function Column({ children }: Readonly<TableColumnProps>): import("react").JSX.Element;
|
|
46
|
+
interface TableActionProps {
|
|
47
|
+
/** The hue the whole control is built from: its glyph, its edge and its two
|
|
48
|
+
* fills. */
|
|
49
|
+
tone: ColorToken;
|
|
50
|
+
icon: IconName;
|
|
51
|
+
label: string;
|
|
52
|
+
onPress: () => void;
|
|
53
|
+
disabled?: boolean;
|
|
54
|
+
}
|
|
55
|
+
/** A shortcut sitting in a row, next to whatever the row's own press does.
|
|
56
|
+
*
|
|
57
|
+
* The kit's ghost icon button, with only the GLYPH tinted: the surface, the
|
|
58
|
+
* hover wash, the press and the focus ring all come from the one control every
|
|
59
|
+
* other button in the console is built from.
|
|
60
|
+
*
|
|
61
|
+
* `label` names it to assistive tech and is not drawn: a row of squares that
|
|
62
|
+
* each raise a tip as the cursor crosses them is a row that flickers. */
|
|
63
|
+
declare function Action({ tone, icon, label, onPress, disabled }: Readonly<TableActionProps>): import("react").JSX.Element;
|
|
64
|
+
/**
|
|
65
|
+
* An aligned admin table.
|
|
66
|
+
*
|
|
67
|
+
* ```tsx
|
|
68
|
+
* <Table.Root columns={[{}, { width: 190, from: 'md' }, { width: 76 }]}>
|
|
69
|
+
* <Table.Header>
|
|
70
|
+
* <Table.Column>Titre</Table.Column>
|
|
71
|
+
* <Table.Column>Demandeur</Table.Column>
|
|
72
|
+
* <Table.Cell />
|
|
73
|
+
* </Table.Header>
|
|
74
|
+
* <Table.Row onPress={open}>…</Table.Row>
|
|
75
|
+
* </Table.Root>
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
declare const Table: {
|
|
79
|
+
Root: typeof Root;
|
|
80
|
+
Header: typeof Header;
|
|
81
|
+
Row: typeof Row;
|
|
82
|
+
Cell: typeof Cell;
|
|
83
|
+
Column: typeof Column;
|
|
84
|
+
Action: typeof Action;
|
|
85
|
+
};
|
|
86
|
+
export type { SortColumn, TableColumn } from '@kroma/ui/kit';
|
|
87
|
+
export type { TableActionProps, TableCellProps, TableColumnProps, TableRootProps, TableRowProps };
|
|
88
|
+
export { Table };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { type Table as TableInstance } from '@tanstack/react-table';
|
|
2
|
+
export type SortDirection = 'asc' | 'desc';
|
|
3
|
+
export interface TableOrder<Key extends string = string> {
|
|
4
|
+
sort: Key;
|
|
5
|
+
dir: SortDirection;
|
|
6
|
+
}
|
|
7
|
+
export interface TableQuery<Key extends string = string> {
|
|
8
|
+
page?: number;
|
|
9
|
+
sort?: Key;
|
|
10
|
+
dir?: SortDirection;
|
|
11
|
+
}
|
|
12
|
+
export interface TablePage {
|
|
13
|
+
page: number;
|
|
14
|
+
perPage: number;
|
|
15
|
+
total: number;
|
|
16
|
+
}
|
|
17
|
+
export interface SortableColumn<Row, Key extends string = string> {
|
|
18
|
+
sortKey: Key;
|
|
19
|
+
labelKey?: string;
|
|
20
|
+
valueField: keyof Row & string;
|
|
21
|
+
ascendingFirst?: boolean;
|
|
22
|
+
wide?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface PlainColumn {
|
|
25
|
+
id: string;
|
|
26
|
+
labelKey?: string;
|
|
27
|
+
valueField?: undefined;
|
|
28
|
+
wide?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export type SortedColumn<Row, Key extends string = string> = SortableColumn<Row, Key> | PlainColumn;
|
|
31
|
+
export interface TableHeading {
|
|
32
|
+
id: string;
|
|
33
|
+
labelKey?: string;
|
|
34
|
+
wide?: boolean;
|
|
35
|
+
sorted: SortDirection | false;
|
|
36
|
+
onSortPress?: () => void;
|
|
37
|
+
}
|
|
38
|
+
export interface SortedTableOptions<Row, Key extends string, Query extends TableQuery<Key>> {
|
|
39
|
+
columns: readonly SortedColumn<Row, Key>[];
|
|
40
|
+
rows?: Row[];
|
|
41
|
+
page?: TablePage;
|
|
42
|
+
query: Query;
|
|
43
|
+
onQueryChange: (next: Query) => void;
|
|
44
|
+
defaultOrder: TableOrder<Key>;
|
|
45
|
+
rowId?: (row: Row) => string;
|
|
46
|
+
}
|
|
47
|
+
export interface SortedTable<Row> {
|
|
48
|
+
table: TableInstance<Row>;
|
|
49
|
+
headings: TableHeading[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* A table ordered and paged by the server. The query stays authoritative, and a
|
|
53
|
+
* new order asks for page 1 because page 4 of a different order is a different
|
|
54
|
+
* list.
|
|
55
|
+
*/
|
|
56
|
+
export declare function useSortedTable<Row, Key extends string, Query extends TableQuery<Key>>({ columns, rows, page, query, onQueryChange, defaultOrder, rowId, }: Readonly<SortedTableOptions<Row, Key, Query>>): SortedTable<Row>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ModuleRecord, type RegistryDescriptor, type RegistryEntry } from './documents/index.ts';
|
|
2
|
+
import { type DescribedModule } from './manifest/index.ts';
|
|
3
|
+
/** A hex sha256 (what the packer records) as a Subresource-Integrity string, or
|
|
4
|
+
* `null` when the input is not one - an artifact nothing vouches for is dropped
|
|
5
|
+
* rather than described with an integrity a client cannot check. */
|
|
6
|
+
export declare function sriFromHex(hexSha256: string | null | undefined): string | null;
|
|
7
|
+
/** The versions a registry already serves for a module, folded under the one
|
|
8
|
+
* being published. */
|
|
9
|
+
export type KnownVersions = Partial<Pick<ModuleRecord, 'versions' | 'distTags'>>;
|
|
10
|
+
/** One module's full record. `known` folds this version into the versions a
|
|
11
|
+
* registry already publishes, so republishing does not drop history. */
|
|
12
|
+
export declare function buildModuleRecord(entry: DescribedModule, known?: KnownVersions): ModuleRecord;
|
|
13
|
+
/** `GET /index.json`, sorted by id so the same module set produces the same bytes. */
|
|
14
|
+
export declare function buildIndex(entries: DescribedModule[]): RegistryEntry[];
|
|
15
|
+
/** `GET /registry.json`. `url` is the registry's own root, not the bundle host. */
|
|
16
|
+
export declare function buildDescriptor(name: string, url: string, entries: DescribedModule[]): RegistryDescriptor;
|