@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,17 @@
|
|
|
1
|
+
import type { ViewStyle } from 'react-native';
|
|
2
|
+
/** A control the pointer can press. */
|
|
3
|
+
declare const HAND: ViewStyle;
|
|
4
|
+
/** Stated rather than inherited: a face inside a group of controls, or a
|
|
5
|
+
* control that is disabled, would otherwise wear the group's hand. */
|
|
6
|
+
declare const ARROW: ViewStyle;
|
|
7
|
+
export { ARROW, HAND };
|
|
8
|
+
/** How a control's colours travel between rest, hover and focus.
|
|
9
|
+
*
|
|
10
|
+
* Only the painted properties: the press scale is an `Animated` transform and
|
|
11
|
+
* the focus ring is an outline, and both should land at once rather than ease.
|
|
12
|
+
* A hover that snaps reads as a redraw; the same swap over `motion.duration.fast`
|
|
13
|
+
* reads as the control answering the pointer. Web only, since that is where a
|
|
14
|
+
* pointer is, and stated here because React Native has no transition of its own.
|
|
15
|
+
*/
|
|
16
|
+
declare const COLOUR_MOTION: ViewStyle;
|
|
17
|
+
export { COLOUR_MOTION };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The press-anywhere-out-there way out of an overlay, for the surface to place
|
|
3
|
+
* behind its panel.
|
|
4
|
+
*
|
|
5
|
+
* Web only: on a TV, Back/Menu is the platform's way out and an extra Pressable
|
|
6
|
+
* is one more thing for the D-pad to land on. Draws nothing without `onPress`.
|
|
7
|
+
*/
|
|
8
|
+
declare function DismissBackdrop({ onPress }: Readonly<{
|
|
9
|
+
onPress?: () => void;
|
|
10
|
+
}>): import("react").JSX.Element | null;
|
|
11
|
+
export { DismissBackdrop };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** The DOM document, or null on a target that has none. */
|
|
2
|
+
export declare function webDocument(): Document | null;
|
|
3
|
+
/**
|
|
4
|
+
* The DOM window, or null on a target that has none.
|
|
5
|
+
*
|
|
6
|
+
* `typeof window === 'undefined'` is the guard most reach for, and it is WRONG
|
|
7
|
+
* here: React Native defines `window` as an alias of `global`, so the check
|
|
8
|
+
* passes and `window.addEventListener` throws as "not a function" instead of
|
|
9
|
+
* being absent. This asks the question that actually separates the two
|
|
10
|
+
* worlds: does this window carry the DOM event API?
|
|
11
|
+
*/
|
|
12
|
+
export declare function webWindow(): Window | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function suppressSelection(): () => void;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stops the browser selecting text and images while a drag is in flight, and
|
|
3
|
+
* returns the undo.
|
|
4
|
+
*
|
|
5
|
+
* It has to go on the DOCUMENT, not the dragged element: a pointer held down on
|
|
6
|
+
* a scrub bar and moved leaves that element immediately, and the selection it
|
|
7
|
+
* then paints belongs to whatever it crosses. Any range already caught by the
|
|
8
|
+
* press that started the drag is cleared too.
|
|
9
|
+
*
|
|
10
|
+
* `webkitUserSelect` as well as `userSelect`: the legacy TV tier is Chromium 53,
|
|
11
|
+
* which only knows the prefixed form.
|
|
12
|
+
*/
|
|
13
|
+
export declare function suppressSelection(): () => void;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type EasingFunction } from 'react-native';
|
|
2
|
+
import { motion } from '#ui/core/tokens';
|
|
3
|
+
type Curve = keyof typeof motion.bezier;
|
|
4
|
+
/** One curve in both dialects: `css` for react-native-web's transition props,
|
|
5
|
+
* `native` for `Animated.timing({ easing })`. */
|
|
6
|
+
export interface Ease {
|
|
7
|
+
css: string;
|
|
8
|
+
native: EasingFunction;
|
|
9
|
+
}
|
|
10
|
+
/** The kit's easing curves. `out` is the settle every focus move and fade uses;
|
|
11
|
+
* `spring` overshoots, for the capsule that chases a finger. */
|
|
12
|
+
export declare const ease: Record<Curve, Ease>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function armEscapeGuard(): void;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ImageBackend } from './image-backend';
|
|
2
|
+
/** <Img>'s decoder on the Expo targets. Adds the memory + disk cache and the
|
|
3
|
+
* list recycling React Native's own <Image> lacks, so a rail does not
|
|
4
|
+
* re-download and re-decode every poster on every navigation. */
|
|
5
|
+
export declare const expoImageBackend: ImageBackend;
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import type { TextStyle } from 'react-native';
|
|
2
|
+
import { type ColorValue, type RadiusToken } from '#ui/core';
|
|
3
|
+
type ControlSize = 'sm' | 'md' | 'tv';
|
|
4
|
+
interface ControlMetrics {
|
|
5
|
+
/** The well's fill. Every control wears it: a filled segmented control
|
|
6
|
+
* beside a transparent select is the difference that reads as "these are
|
|
7
|
+
* two different kinds of thing".
|
|
8
|
+
*
|
|
9
|
+
* Translucent, so a control over artwork (the sign-in screens over their
|
|
10
|
+
* splash) takes a hint of what is behind it. Every control that wears this
|
|
11
|
+
* fill also lays a <Frost> under it, so what shows through is BLURRED: the
|
|
12
|
+
* hint is depth, not a legible picture, and a grid of keys still reads as
|
|
13
|
+
* one surface rather than one colour per key. */
|
|
14
|
+
bg: `${ControlFill}`;
|
|
15
|
+
/** Corner, by NAME: a px number baked in here at module load would not follow
|
|
16
|
+
* a theme. Use {@link controlRadius} where the number itself is needed. */
|
|
17
|
+
radius: RadiusToken;
|
|
18
|
+
px: number;
|
|
19
|
+
py: number;
|
|
20
|
+
/** The content row's height: what a control's own content measures. */
|
|
21
|
+
line: number;
|
|
22
|
+
/** The control's outer height: the number every control on a row targets,
|
|
23
|
+
* whatever it is made of (an entry's padding, a button's label, a square
|
|
24
|
+
* icon button). Derived: border + py + line + py + border. */
|
|
25
|
+
height: number;
|
|
26
|
+
fontSize: number;
|
|
27
|
+
/** Gap between a leading glyph, the content and a trailing slot. */
|
|
28
|
+
gap: number;
|
|
29
|
+
}
|
|
30
|
+
declare const CONTROL_FILL: 'surface2/72';
|
|
31
|
+
type ControlFill = typeof CONTROL_FILL;
|
|
32
|
+
/** The shape of every input, per size. Read it rather than re-deriving it:
|
|
33
|
+
* this table IS the design. */
|
|
34
|
+
export declare const CONTROL: Record<ControlSize, ControlMetrics>;
|
|
35
|
+
/** A control's corner in px, against the ACTIVE theme. Read it at render time:
|
|
36
|
+
* a value copied out at module load keeps the theme it was read under. */
|
|
37
|
+
export declare function controlRadius(metrics: ControlMetrics): number;
|
|
38
|
+
/**
|
|
39
|
+
* One slot table per size, built from {@link CONTROL} rather than transcribed.
|
|
40
|
+
* A control that changes shape with `size` writes the mapping ONCE and gets
|
|
41
|
+
* every size, so adding a size is an entry in the table above and nothing else.
|
|
42
|
+
* Before this, `sm` and `md` were hand-copied into five recipes and the
|
|
43
|
+
* fourth size would have been five more clones.
|
|
44
|
+
*/
|
|
45
|
+
export declare function bySize<T>(build: (metrics: ControlMetrics) => T): Record<ControlSize, T>;
|
|
46
|
+
/**
|
|
47
|
+
* The face every KEY wears: the keypad's and the on-screen keyboard's alike.
|
|
48
|
+
* A keyboard and a keypad are the same object at two scales, so the well, the
|
|
49
|
+
* edge, the lift, the cursor wash and the amber under focus are declared here
|
|
50
|
+
* once; a copy in each component is how the two grids drifted into a solid
|
|
51
|
+
* amber fill on one and a tint on the other. Each grid still owns its own
|
|
52
|
+
* geometry (the keypad's 88x72, the keyboard's per-size box and corner).
|
|
53
|
+
*
|
|
54
|
+
* It lives here rather than beside either component because <Keypad> is a
|
|
55
|
+
* molecule and <Key> an organism, so neither may import the other, the same
|
|
56
|
+
* reason lib/group-shape.ts exists.
|
|
57
|
+
*/
|
|
58
|
+
export declare const keyFace: {
|
|
59
|
+
readonly root: {
|
|
60
|
+
readonly center: true;
|
|
61
|
+
readonly bg: "surface2/72";
|
|
62
|
+
readonly border: 'border';
|
|
63
|
+
readonly _hover: {
|
|
64
|
+
readonly bg: 'surface3';
|
|
65
|
+
};
|
|
66
|
+
readonly _focus: {
|
|
67
|
+
readonly bg: 'accentSoft';
|
|
68
|
+
};
|
|
69
|
+
readonly _press: {
|
|
70
|
+
readonly bg: 'accentSoftHover';
|
|
71
|
+
readonly border: 'accentHover';
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
readonly label: {
|
|
75
|
+
readonly color: 'text';
|
|
76
|
+
readonly fontWeight: '700';
|
|
77
|
+
readonly _focus: {
|
|
78
|
+
readonly color: 'accentText';
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
readonly glyph: {
|
|
82
|
+
readonly color: 'text';
|
|
83
|
+
readonly thickness: 1.8;
|
|
84
|
+
readonly _focus: {
|
|
85
|
+
readonly color: 'accentText';
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
/** The field's edge, which focus does NOT recolour: the ring outside it already
|
|
90
|
+
* says where the focus is, and an amber edge under an amber ring reads as two
|
|
91
|
+
* rings around one control. Invalid still speaks, since it says something the
|
|
92
|
+
* ring does not. */
|
|
93
|
+
export declare function edgeColor(_focused: boolean, invalid: boolean): string;
|
|
94
|
+
export declare function fieldRing(): TextStyle;
|
|
95
|
+
/**
|
|
96
|
+
* What an entry paints for itself, and what it drops when the shell belongs to
|
|
97
|
+
* something else: the well of an <InputGroup>, the row of a command palette.
|
|
98
|
+
* A flattened entry that kept drawing its own fill, edge, corner and ring
|
|
99
|
+
* paints a second set of all four over the parent's, and its rounded rectangle
|
|
100
|
+
* shows through as the seam where the addons begin and end.
|
|
101
|
+
*
|
|
102
|
+
* Both <TextField> and <TextArea> read it, so the answer to "what does flat
|
|
103
|
+
* mean" is in one place rather than two that drift.
|
|
104
|
+
*/
|
|
105
|
+
export declare function fieldShell(metrics: ControlMetrics, at: Readonly<{
|
|
106
|
+
flat: boolean;
|
|
107
|
+
focused: boolean;
|
|
108
|
+
invalid: boolean;
|
|
109
|
+
}>): {
|
|
110
|
+
box: Record<string, unknown>;
|
|
111
|
+
edge: TextStyle | null;
|
|
112
|
+
};
|
|
113
|
+
/** The ink of a field that has not been filled in, as a token rather than a
|
|
114
|
+
* resolved colour: a value taken at module load keeps the ground it was read
|
|
115
|
+
* under, which on a native light theme is near-white on cream. */
|
|
116
|
+
export declare const PLACEHOLDER: ColorValue;
|
|
117
|
+
/** Shell-level defaults for the kit's inputs. Call once at startup. */
|
|
118
|
+
export declare function setEntryDefaults(defaults: Readonly<{
|
|
119
|
+
physicalKeyboard?: boolean;
|
|
120
|
+
size?: ControlSize;
|
|
121
|
+
}>): void;
|
|
122
|
+
export declare function entryDefaultPhysicalKeyboard(): boolean;
|
|
123
|
+
export declare function entryDefaultSize(): ControlSize;
|
|
124
|
+
/** The metrics for a size, defaulting to the shell's. */
|
|
125
|
+
export declare function controlMetrics(size?: ControlSize): ControlMetrics;
|
|
126
|
+
/** The smallest ink a real text entry may carry. Under it, iOS Safari zooms the
|
|
127
|
+
* page to the field the moment it takes focus. */
|
|
128
|
+
export declare const NO_ZOOM_FONT_SIZE = 16;
|
|
129
|
+
/**
|
|
130
|
+
* A field's ink size, floored at {@link NO_ZOOM_FONT_SIZE} on a handset: the
|
|
131
|
+
* `sm` shell reads at 13.5, which is under iOS Safari's zoom threshold.
|
|
132
|
+
*/
|
|
133
|
+
export declare function useEntryFontSize(fontSize: number): number;
|
|
134
|
+
/** Web only, and `none` rather than width 0: Chrome's own focus ring is
|
|
135
|
+
* `outline-style: auto`, which ignores the width - the field kept its blue
|
|
136
|
+
* browser ring inside the kit's amber one until the STYLE was cleared. React
|
|
137
|
+
* Native's types don't know `none` (native has no outline at all), hence the
|
|
138
|
+
* cast. */
|
|
139
|
+
export declare const NO_OUTLINE: TextStyle;
|
|
140
|
+
export type { ControlMetrics, ControlSize };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Something has the focus now. Called by every `<Focusable>` on focus. */
|
|
2
|
+
declare function markFocusSettled(): void;
|
|
3
|
+
/** True once this screen has a focus owner, so a late arrival must not steal it. */
|
|
4
|
+
declare function focusSettled(): boolean;
|
|
5
|
+
/** A new screen is deciding where to open. Called by `useFocusNav`. */
|
|
6
|
+
declare function resetFocusEntry(): void;
|
|
7
|
+
/**
|
|
8
|
+
* A fresh navigator scope has nothing focused yet, so its entry point wins.
|
|
9
|
+
* `<FocusScope>` calls this; every app root and every test render mounts one.
|
|
10
|
+
*
|
|
11
|
+
* Resets while the scope RENDERS, not in an effect: a child's mount effect is
|
|
12
|
+
* where an entry point asks for focus, and children's effects run before their
|
|
13
|
+
* parent's, so an effect here would arrive too late.
|
|
14
|
+
*
|
|
15
|
+
* `entryKey` is for a scope that OUTLIVES its screen - persistent chrome
|
|
16
|
+
* wrapping a swapping section, say - which must still re-decide focus on every
|
|
17
|
+
* arrival despite never remounting. Omit it and the scope behaves as before.
|
|
18
|
+
*/
|
|
19
|
+
declare function useFocusEntryScope(entryKey?: string | number): void;
|
|
20
|
+
export { focusSettled, markFocusSettled, resetFocusEntry, useFocusEntryScope };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** The focused control's screen box, in the units the platform reports. */
|
|
2
|
+
export interface FocusBox {
|
|
3
|
+
top: number;
|
|
4
|
+
left: number;
|
|
5
|
+
height: number;
|
|
6
|
+
}
|
|
7
|
+
/** Called by `<Focusable>` as it takes the focus. */
|
|
8
|
+
export declare function noteFocus(_view: unknown): void;
|
|
9
|
+
/** Bumped by every focus, so a caller can tell a move from a refusal. */
|
|
10
|
+
export declare function focusSeq(): number;
|
|
11
|
+
export declare function focusBox(): FocusBox | null;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FocusBox } from './focus-here';
|
|
2
|
+
export type { FocusBox };
|
|
3
|
+
/** Called by `<Focusable>` as it takes the focus. */
|
|
4
|
+
export declare function noteFocus(view: unknown): void;
|
|
5
|
+
/** Bumped by every focus, so a caller can tell a move from a refusal. */
|
|
6
|
+
export declare function focusSeq(): number;
|
|
7
|
+
export declare function focusBox(): FocusBox | null;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type ReactNode, type Ref } from 'react';
|
|
2
|
+
import { type StyleProp, View, type ViewStyle } from 'react-native';
|
|
3
|
+
type Report = (focused: boolean) => void;
|
|
4
|
+
/** Report focus to the enclosing <FocusLift>; <Focusable> calls this. */
|
|
5
|
+
export declare function useFocusLift(): Report | null;
|
|
6
|
+
/** One layer clear of a sibling, the same step <Focusable> and <ButtonGroup>
|
|
7
|
+
* use, so a control sitting in several of these cannot fight itself. */
|
|
8
|
+
export declare const LIFTED: ViewStyle;
|
|
9
|
+
/** The resting half of <LIFTED>, and never `null`: on Fabric a `zIndex` that
|
|
10
|
+
* appears and disappears flattens and unflattens the native view under it, and
|
|
11
|
+
* the mount operations aimed at the tag it just dropped are discarded
|
|
12
|
+
* ("Unable to find viewState for tag"), which loses the row's layout. */
|
|
13
|
+
export declare const GROUNDED: ViewStyle;
|
|
14
|
+
/**
|
|
15
|
+
* Makes its subtree's focus visible to a container, so the container can lift
|
|
16
|
+
* ITSELF above its siblings while it holds the focus.
|
|
17
|
+
*
|
|
18
|
+
* Renders no element of its own, and that is the point: putting a wrapper view
|
|
19
|
+
* inside a flex row turns N children into one and collapses the row.
|
|
20
|
+
*
|
|
21
|
+
* ```tsx
|
|
22
|
+
* <FocusLiftHost>
|
|
23
|
+
* {(held) => <View style={[style, held ? LIFTED : GROUNDED]}>{children}</View>}
|
|
24
|
+
* </FocusLiftHost>
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function FocusLiftHost({ children }: Readonly<{
|
|
28
|
+
children: (held: boolean) => ReactNode;
|
|
29
|
+
}>): import("react").JSX.Element;
|
|
30
|
+
/**
|
|
31
|
+
* A view that rises above its siblings while anything inside it holds the
|
|
32
|
+
* focus, and reports the same edge to the container around it.
|
|
33
|
+
*/
|
|
34
|
+
export declare function FocusLiftView({ style, ref, children, }: Readonly<{
|
|
35
|
+
style?: StyleProp<ViewStyle>;
|
|
36
|
+
ref?: Ref<View>;
|
|
37
|
+
children: ReactNode;
|
|
38
|
+
}>): import("react").JSX.Element;
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Which engine holds the ring: the television's own, or the navigator. */
|
|
2
|
+
type FocusOwner = 'platform' | 'app';
|
|
3
|
+
/** A direction the navigator handled with nowhere to move. */
|
|
4
|
+
type FocusDirection = 'up' | 'down' | 'left' | 'right';
|
|
5
|
+
type EdgeHandler = (direction: FocusDirection) => void;
|
|
6
|
+
interface PlatformFocusHost {
|
|
7
|
+
claim: (owner: FocusOwner | null) => void;
|
|
8
|
+
listen: (handler: EdgeHandler | null) => void;
|
|
9
|
+
}
|
|
10
|
+
/** Wrap a screen's children in this via <FocusScope>; never directly. */
|
|
11
|
+
declare const PlatformFocusProvider: import("react").Provider<PlatformFocusHost | null>;
|
|
12
|
+
/**
|
|
13
|
+
* Declared by a platform chrome drawn inside a scope. `owner` is who holds the
|
|
14
|
+
* television's focus right now, null while no chrome is up. `onEdge` hears the
|
|
15
|
+
* directions the navigator could not act on, which is how a chrome takes the
|
|
16
|
+
* focus back when the ring is already against its side of the screen.
|
|
17
|
+
*/
|
|
18
|
+
declare function usePlatformFocus(owner: FocusOwner | null, onEdge?: EdgeHandler): void;
|
|
19
|
+
interface PlatformFocusState {
|
|
20
|
+
owner: FocusOwner | null;
|
|
21
|
+
/** For <NavigatorRoot>, whose directions are wider than the four a
|
|
22
|
+
* chrome is told about. */
|
|
23
|
+
onEdge: (direction: string) => void;
|
|
24
|
+
host: PlatformFocusHost;
|
|
25
|
+
}
|
|
26
|
+
/** The <FocusScope> half: what the scope renders around, and the value it
|
|
27
|
+
* provides to whatever chrome is drawn inside it. */
|
|
28
|
+
declare function usePlatformFocusHost(): PlatformFocusState;
|
|
29
|
+
export type { FocusDirection, FocusOwner };
|
|
30
|
+
export { PlatformFocusProvider, usePlatformFocus, usePlatformFocusHost };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Wrap a screen's children in this via <FocusScope>; never directly. */
|
|
2
|
+
declare const FocusPresenceProvider: import("react").Provider<boolean>;
|
|
3
|
+
/** True when a <FocusScope> (and so a navigator root) is above this component. */
|
|
4
|
+
declare function useInsideFocusScope(): boolean;
|
|
5
|
+
export { FocusPresenceProvider, useInsideFocusScope };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { RemoteKey } from '@kroma/core';
|
|
2
|
+
import { type Direction } from '@kroma/spatial-nav';
|
|
3
|
+
import { type NativeSyntheticEvent, type TVKeyEvent } from 'react-native';
|
|
4
|
+
/** Call once at startup, before the first screen renders; a navigator mounted
|
|
5
|
+
* first never subscribes. Calling it twice is harmless. */
|
|
6
|
+
export declare function configureRemote(): void;
|
|
7
|
+
/**
|
|
8
|
+
* Posts a direction the app never heard as a press. One caller: a platform
|
|
9
|
+
* chrome that answered the press itself and is handing the focus over (see
|
|
10
|
+
* lib/focus-platform), where the navigator has to pick the ring up in the
|
|
11
|
+
* direction the viewer was already moving.
|
|
12
|
+
*/
|
|
13
|
+
export declare function postRemoteDirection(direction: Direction): void;
|
|
14
|
+
/** Mounted by <FocusScope>. `on` lets a scope nested inside another opt out:
|
|
15
|
+
* this posts to EVERY registered navigator, so two live bridges would deliver
|
|
16
|
+
* each press twice. See <FocusScope>'s `bridge` prop. */
|
|
17
|
+
export declare function useRemoteBridge(on?: boolean): void;
|
|
18
|
+
/** Empty off Android, where `useTVEventHandler` above is the whole story. */
|
|
19
|
+
export interface RemoteHostProps {
|
|
20
|
+
onKeyDown?: (event: NativeSyntheticEvent<TVKeyEvent>) => void;
|
|
21
|
+
}
|
|
22
|
+
/** Spread by <FocusRoot>. `on` takes <FocusScope>'s `bridge`: the key events
|
|
23
|
+
* BUBBLE, so a scope nested inside another must not carry a second host or one
|
|
24
|
+
* press walks the ring twice. */
|
|
25
|
+
export declare function useRemoteHostProps(on?: boolean): RemoteHostProps;
|
|
26
|
+
/**
|
|
27
|
+
* Delivers hardware-keyboard keystrokes (e.g. a Bluetooth keyboard on Android TV)
|
|
28
|
+
* to whoever is collecting text; directions are consumed above and never reach
|
|
29
|
+
* here. Deliberately not wired to the `physicalKeyboard` capability, which swaps
|
|
30
|
+
* in a native `TextInput` and would summon the platform IME over the on-screen
|
|
31
|
+
* keyboard the remote still needs.
|
|
32
|
+
*/
|
|
33
|
+
export declare function useHardwareKeys(handle: (key: string) => void): void;
|
|
34
|
+
/**
|
|
35
|
+
* Delivers d-pad presses to a chrome driving its own virtual focus (the
|
|
36
|
+
* player): the Android mirror of the `useTVEventHandler` the player reads on
|
|
37
|
+
* tvOS. Same effect-event identity trick as {@link useHardwareKeys}.
|
|
38
|
+
*/
|
|
39
|
+
export declare function useRemoteKeys(handle: (key: RemoteKey) => void): void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Direction } from '@kroma/spatial-nav';
|
|
2
|
+
export declare function configureRemote(): void;
|
|
3
|
+
/**
|
|
4
|
+
* Posts a direction the app never heard as a press. One caller: a platform
|
|
5
|
+
* chrome that answered the press itself and is handing the focus over (see
|
|
6
|
+
* lib/focus-platform), where the navigator has to pick the ring up in the
|
|
7
|
+
* direction the viewer was already moving.
|
|
8
|
+
*/
|
|
9
|
+
export declare function postRemoteDirection(direction: Direction): void;
|
|
10
|
+
/** Nothing to mount: the listener above is not tied to a screen. Kept so
|
|
11
|
+
* <FocusScope> can call it on every target. */
|
|
12
|
+
export declare function useRemoteBridge(_on?: boolean): void;
|
|
13
|
+
/** Nothing to subscribe to: a browser shell already reads its hardware keyboard
|
|
14
|
+
* from `document` (see @kroma/tv's `usePhysicalTyping`). Kept so the on-screen
|
|
15
|
+
* keyboard can call the same hook on every target. */
|
|
16
|
+
export declare function useHardwareKeys(_handle: (key: string) => void): void;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
type Report = () => void;
|
|
3
|
+
/** Called by `<Focusable>` when it takes the focus. */
|
|
4
|
+
declare function useFocusReport(): Report | null;
|
|
5
|
+
type ReporterProps = Readonly<{
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
} & ({
|
|
8
|
+
onFocus: Report;
|
|
9
|
+
index?: undefined;
|
|
10
|
+
} | {
|
|
11
|
+
onFocus: (index: number) => void;
|
|
12
|
+
index: number;
|
|
13
|
+
})>;
|
|
14
|
+
/** Wrap one row item so its focus is reported without passing an index down.
|
|
15
|
+
* With `index`, the handler is shared by every item and the reporter binds it,
|
|
16
|
+
* so the context value stays put across re-renders of the row. */
|
|
17
|
+
declare function FocusReporter(props: ReporterProps): import("react").JSX.Element;
|
|
18
|
+
export { FocusReporter, useFocusReport };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type StyleProp, type ViewStyle } from 'react-native';
|
|
3
|
+
export interface FocusRootProps {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
style?: StyleProp<ViewStyle>;
|
|
6
|
+
/** Whether this navigator answers the remote at all. False for a scope that
|
|
7
|
+
* is mounted but not in play - a parked sheet, say - whose nodes must stay
|
|
8
|
+
* registered, in the order they registered, without taking presses meant for
|
|
9
|
+
* something else. */
|
|
10
|
+
active?: boolean;
|
|
11
|
+
/** Whether to draw the key host below. False while a platform chrome owns the
|
|
12
|
+
* television's focus, which is Apple TV's search screen and nothing else
|
|
13
|
+
* (see focus-platform), and false wherever `bridge` is. */
|
|
14
|
+
keyHost?: boolean;
|
|
15
|
+
/** Whether this root carries the Android key transport. Default true; false
|
|
16
|
+
* for a scope that reuses another root's, whose second host would deliver
|
|
17
|
+
* each press again on the way up. See {@link ScreenScopeProps.bridge}. */
|
|
18
|
+
bridge?: boolean;
|
|
19
|
+
/** A direction the navigator handled with nothing to move to. */
|
|
20
|
+
onEdge?: (direction: string) => void;
|
|
21
|
+
}
|
|
22
|
+
export declare function FocusRoot({ children, style, active, keyHost, bridge, onEdge, }: Readonly<FocusRootProps>): import("react").JSX.Element;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type StyleProp, type ViewStyle } from 'react-native';
|
|
3
|
+
interface FocusScopeProps {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
/** Applied to the screen's own box; the web root renders no element (see focus-root). */
|
|
6
|
+
style?: StyleProp<ViewStyle>;
|
|
7
|
+
}
|
|
8
|
+
interface ScreenScopeProps extends FocusScopeProps {
|
|
9
|
+
/** Names the SCREEN inside a scope that outlives it (e.g. persistent nav
|
|
10
|
+
* chrome), so it re-decides where focus opens on each arrival instead of on
|
|
11
|
+
* its own mount. Omit for the usual case: one scope per screen. */
|
|
12
|
+
entryKey?: string | number;
|
|
13
|
+
/**
|
|
14
|
+
* Mount this scope's remote transports. Default true; a scope that reuses
|
|
15
|
+
* another root's passes `false`: the event bridge fans to every registered
|
|
16
|
+
* navigator, so a second one would deliver each press twice. An
|
|
17
|
+
* `<OverlayHost>` dialog reuses the screen's, a `<Modal>`-backed one is in
|
|
18
|
+
* its own view controller and needs its own. Reusing means leaving the
|
|
19
|
+
* platform focus behind as well; see {@link FocusRootProps.keyHost}.
|
|
20
|
+
*/
|
|
21
|
+
bridge?: boolean;
|
|
22
|
+
/** Whether this scope answers the remote. See {@link FocusRootProps.active}. */
|
|
23
|
+
active?: boolean;
|
|
24
|
+
}
|
|
25
|
+
interface FocusColumnProps extends FocusScopeProps {
|
|
26
|
+
grid?: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Also what a DIALOG mounts, over the screen that opened it, paired with
|
|
30
|
+
* {@link useLockFocusBehind} on the screen: that locks the screen's navigator
|
|
31
|
+
* out of the remote, leaving this root the only one listening. Its
|
|
32
|
+
* `useFocusEntryScope` runs during render (not an effect) so the dialog's
|
|
33
|
+
* `autoFocus` claims the ring before the screen underneath decides; on the
|
|
34
|
+
* browser targets it also resets device-type to remote-keys mode regardless
|
|
35
|
+
* of where the pointer was left.
|
|
36
|
+
*/
|
|
37
|
+
declare function FocusScope({ children, style, entryKey, bridge, active, }: Readonly<ScreenScopeProps>): import("react").JSX.Element;
|
|
38
|
+
/**
|
|
39
|
+
* Locks the navigator this component sits in out of the remote while `active`.
|
|
40
|
+
* Called from OUTSIDE the scope it protects, so it locks the screen rather
|
|
41
|
+
* than the dialog opened over it.
|
|
42
|
+
*/
|
|
43
|
+
declare function useLockFocusBehind(active: boolean): void;
|
|
44
|
+
/**
|
|
45
|
+
* A group of controls that belong together on one line: the nav bar, a
|
|
46
|
+
* hero's buttons, a rail. The navigator moves between groups vertically and
|
|
47
|
+
* inside a group horizontally; nothing measures anything, the shape comes
|
|
48
|
+
* from the tree.
|
|
49
|
+
*/
|
|
50
|
+
declare function FocusRegion({ children, style }: Readonly<FocusScopeProps>): import("react").JSX.Element;
|
|
51
|
+
/**
|
|
52
|
+
* A group of controls stacked one above the other: a list of servers, an
|
|
53
|
+
* on-screen keyboard. `grid` makes a stack of `<FocusRegion>` rows behave as a
|
|
54
|
+
* grid: without it, moving down lands on each row's last-focused key (Down
|
|
55
|
+
* from T lands on A); with it, the navigator keeps the column position.
|
|
56
|
+
*/
|
|
57
|
+
declare function FocusColumn({ children, style, grid }: Readonly<FocusColumnProps>): import("react").JSX.Element;
|
|
58
|
+
export type { FocusColumnProps, FocusScopeProps, ScreenScopeProps };
|
|
59
|
+
export { FocusColumn, FocusRegion, FocusScope, useLockFocusBehind };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { type ReactNode, type RefObject } from 'react';
|
|
2
|
+
import { type StyleProp, type View, type ViewStyle } from 'react-native';
|
|
3
|
+
type Anchor = RefObject<View | null>;
|
|
4
|
+
interface PageMetrics {
|
|
5
|
+
top: number;
|
|
6
|
+
offsetFromStart: number;
|
|
7
|
+
viewport: number;
|
|
8
|
+
content: number;
|
|
9
|
+
}
|
|
10
|
+
declare function pageOffset({ top, offsetFromStart, viewport, content }: PageMetrics): number;
|
|
11
|
+
interface NearestMetrics {
|
|
12
|
+
top: number;
|
|
13
|
+
size: number;
|
|
14
|
+
current: number;
|
|
15
|
+
margin: number;
|
|
16
|
+
viewport: number;
|
|
17
|
+
content: number;
|
|
18
|
+
}
|
|
19
|
+
/** The offset that shows a row whole with `margin` to spare, moving the page
|
|
20
|
+
* only when the row is not already there. */
|
|
21
|
+
declare function nearestOffset({ top, size, current, margin, viewport, content }: NearestMetrics): number;
|
|
22
|
+
type Reveal = 'start' | 'nearest';
|
|
23
|
+
interface FocusScrollProps {
|
|
24
|
+
children: ReactNode;
|
|
25
|
+
style?: StyleProp<ViewStyle>;
|
|
26
|
+
contentStyle?: StyleProp<ViewStyle>;
|
|
27
|
+
/** Under `start`, where a revealed row rests below the top edge. Under
|
|
28
|
+
* `nearest`, the room kept between the row and whichever edge it came in
|
|
29
|
+
* from. */
|
|
30
|
+
offsetFromStart?: number;
|
|
31
|
+
/** `start` (the default) is a television's page: every revealed row comes to
|
|
32
|
+
* rest at the same height. `nearest` is a list: the page moves only as far
|
|
33
|
+
* as showing the row whole takes. */
|
|
34
|
+
reveal?: Reveal;
|
|
35
|
+
}
|
|
36
|
+
declare function FocusScroll(props: Readonly<FocusScrollProps>): import("react").JSX.Element;
|
|
37
|
+
/**
|
|
38
|
+
* One rail, scrolled sideways by the focus. A rail inside a page leaves both
|
|
39
|
+
* live at once, and a control asks both (see {@link useRevealOnFocus}).
|
|
40
|
+
*/
|
|
41
|
+
declare function FocusRail(props: Readonly<FocusScrollProps>): import("react").JSX.Element;
|
|
42
|
+
/**
|
|
43
|
+
* One row of a page: a place in the navigator's order fixed at first render
|
|
44
|
+
* (rows mount out of visual order), and what the page scrolls to.
|
|
45
|
+
*/
|
|
46
|
+
declare function FocusSlot({ children, onActive, }: Readonly<{
|
|
47
|
+
children: ReactNode;
|
|
48
|
+
onActive?: () => void;
|
|
49
|
+
}>): import("react").JSX.Element;
|
|
50
|
+
/**
|
|
51
|
+
* One line of a taller row, wrapped in a line-sized scroll anchor inside the
|
|
52
|
+
* slot: no navigator node, no change to the order, finer scroll granularity.
|
|
53
|
+
*/
|
|
54
|
+
declare function FocusLine({ children, style, }: Readonly<{
|
|
55
|
+
children: ReactNode;
|
|
56
|
+
style?: StyleProp<ViewStyle>;
|
|
57
|
+
}>): import("react").JSX.Element;
|
|
58
|
+
/**
|
|
59
|
+
* What a control uses to ask to be shown when it takes the focus: the page
|
|
60
|
+
* reveals its row (or the control when it is in none), the rail the control.
|
|
61
|
+
*/
|
|
62
|
+
declare function useRevealOnFocus(self: Anchor): () => void;
|
|
63
|
+
/**
|
|
64
|
+
* The anchor of a row whose focus is a prop rather than the navigator's (a
|
|
65
|
+
* player panel's rows): the page reveals it the moment `focused` turns true.
|
|
66
|
+
*/
|
|
67
|
+
declare function useRevealWhenFocused(focused: boolean): Anchor;
|
|
68
|
+
export type { Anchor, FocusScrollProps, NearestMetrics, PageMetrics, Reveal };
|
|
69
|
+
export { FocusLine, FocusRail, FocusScroll, FocusSlot, nearestOffset, pageOffset, useRevealOnFocus, useRevealWhenFocused, };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type Direction } from '@kroma/spatial-nav';
|
|
2
|
+
import type { FocusBox } from './focus-here';
|
|
3
|
+
/** How the walk watches the focus: a counter to tell a move from a refusal, and
|
|
4
|
+
* a box to tell one line from the next. */
|
|
5
|
+
export interface FocusProbe {
|
|
6
|
+
seq: () => number;
|
|
7
|
+
box: () => FocusBox | null;
|
|
8
|
+
}
|
|
9
|
+
type Send = (direction: Direction) => void;
|
|
10
|
+
/** Move the focus one control along reading order; `back` for Shift+Tab. */
|
|
11
|
+
export declare function walkTab(send: Send, probe: FocusProbe, back?: boolean): void;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type PressScale } from '#ui/lib/press-dip';
|
|
2
|
+
/** An animated `transform: scale()` that eases to `to` while focused. */
|
|
3
|
+
export declare function useFocusScale(focused: boolean, to: number): Record<string, unknown>;
|
|
4
|
+
/**
|
|
5
|
+
* The design's press dip (`motion.pressScale`): the control shrinks under the
|
|
6
|
+
* finger, then springs back with a touch of overshoot on release. The touch
|
|
7
|
+
* half of the focus scale above - a phone PRESSES where a television FOCUSES -
|
|
8
|
+
* wired by the kit's pressable paths so every control answers the finger the
|
|
9
|
+
* same way.
|
|
10
|
+
*/
|
|
11
|
+
export declare function usePressScale(): PressScale;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface FocusNavHandlers {
|
|
2
|
+
/** Remote Back / Escape. Return `false` to say "not handled, keep the
|
|
3
|
+
* default"; returning nothing counts as handled. */
|
|
4
|
+
onBack?: () => void | boolean;
|
|
5
|
+
/** Remote Play / Pause / PlayPause. */
|
|
6
|
+
onPlayPause?: () => void;
|
|
7
|
+
/** Re-run the mount behaviour when this changes (e.g. a view switch). */
|
|
8
|
+
resetKey?: unknown;
|
|
9
|
+
}
|
|
10
|
+
/** What a control that opts out of platform focus tells the PLATFORM focus
|
|
11
|
+
* engines: skip me. react-native-tvos gates a Pressable's focusability on
|
|
12
|
+
* exactly these two (`focusable !== false && isTVSelectable !== false`);
|
|
13
|
+
* `isTVSelectable` is the tvOS spelling and not in mainline RN's types - see
|
|
14
|
+
* components/organisms/player/lib/virtual-focus.ts for the bug this prevents. */
|
|
15
|
+
export declare const UNFOCUSABLE: {
|
|
16
|
+
readonly focusable: false;
|
|
17
|
+
readonly isTVSelectable: false;
|
|
18
|
+
};
|