@joewinke/jatui 0.62.0 → 0.63.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/CLAUDE.md +1 -1
- package/dist/ambience/README.md +46 -2
- package/dist/ambience/engine.js +4 -1
- package/dist/ambience/groups.d.ts +4 -8
- package/dist/ambience/groups.js +4 -11
- package/dist/ambience/index.d.ts +2 -1
- package/dist/ambience/index.js +7 -2
- package/dist/ambience/scapes/playlist.d.ts +30 -2
- package/dist/ambience/scapes/playlist.js +170 -15
- package/dist/ambience/scapes/radio.d.ts +113 -0
- package/dist/ambience/scapes/radio.js +297 -0
- package/dist/ambience/shared.d.ts +10 -2
- package/dist/ambience/shared.js +26 -2
- package/dist/ambience/types.d.ts +7 -0
- package/dist/components/AmbienceToggle.svelte +160 -11
- package/dist/components/AmbienceToggle.svelte.d.ts +18 -6
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -25,12 +25,18 @@
|
|
|
25
25
|
* - A playing (or paused) scape shows a now-playing block above the
|
|
26
26
|
* volume row (jatui-153tz): for a playlist — the track title, its
|
|
27
27
|
* composer · license attribution, an elapsed/total progress bar and a
|
|
28
|
-
* prev / play-pause / next transport (
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
28
|
+
* shuffle / prev / play-pause / next transport (shuffle is an
|
|
29
|
+
* aria-pressed IconButton, persisted per station and fresh-shuffled
|
|
30
|
+
* per session with no-repeat — jatui-plbzq; prev restarts the track
|
|
31
|
+
* when more than 3 s are in, else goes back one; play-pause freezes
|
|
32
|
+
* the station without closing the menu; next skips). Generative
|
|
33
|
+
* scapes (noise / focus) get the play/pause control only. A radio
|
|
34
|
+
* station registered with a public `streamUrl` (jatui-plbzq) gets the
|
|
35
|
+
* station name, a `Open station site` attribution link and
|
|
36
|
+
* play/pause — the stream is fetched by the browser from the station
|
|
37
|
+
* itself, never relayed. The transport joins the menu's roving order;
|
|
38
|
+
* a paused row stays visible (its play button is the resume) and a
|
|
39
|
+
* stopped one hides.
|
|
34
40
|
* - Playlists whose licence permits redistribution (jatui-0vxcu: CC0,
|
|
35
41
|
* public domain, CC-BY, CC-BY-SA — never NC/ND unless the manifest
|
|
36
42
|
* marks the track `downloadable: true`) also get a Download button
|
|
@@ -78,6 +84,11 @@ export type AmbienceScapeGroup = AmbienceSection;
|
|
|
78
84
|
export declare function groupScapes(items: AmbienceItem[], groups?: ReadonlyArray<ScapeGroup | AmbienceGroupDef>): AmbienceScapeGroup[];
|
|
79
85
|
/** "Gymnopédie No. 1 — Erik Satie · Public domain": a playing track's line. */
|
|
80
86
|
export declare function nowPlayingLine(track: PlaylistTrack | null | undefined): string;
|
|
87
|
+
/** The radio row's attribution href (jatui-plbzq): the scape's site url
|
|
88
|
+
* re-validated with `safeAmbienceHref` — the registry could be hostile
|
|
89
|
+
* on a remote tab too, and the leader is another tab, not a source of
|
|
90
|
+
* trust. Null hides the 'Open station site' link. */
|
|
91
|
+
export declare function radioSite(scape: RadioStreamScape | null | undefined): string | null;
|
|
81
92
|
/** "3:07" — m:ss for the now-playing row's elapsed/total (jatui-153tz). */
|
|
82
93
|
export declare function formatTrackTime(seconds: number | null | undefined): string;
|
|
83
94
|
/** The now-playing progress fill, 0–100, clamped; 0 without a duration. */
|
|
@@ -151,6 +162,7 @@ export declare function wheelVolumeSteps(acc: {
|
|
|
151
162
|
* slider itself would produce for the same value.
|
|
152
163
|
*/
|
|
153
164
|
export declare function volumeAfterSteps(volume: number, steps: number, stepPct?: number): number;
|
|
165
|
+
import { type RadioStreamScape } from '../ambience/scapes/radio';
|
|
154
166
|
import type { SharedAmbience } from '../ambience/shared';
|
|
155
167
|
import type { Ambience } from '../ambience/types';
|
|
156
168
|
type $$ComponentProps = {
|
package/dist/index.d.ts
CHANGED
|
@@ -417,8 +417,8 @@ export { default as ImageReveal } from './components/ImageReveal.svelte';
|
|
|
417
417
|
export { imageRevealPhase, imageRevealBusy, imageRevealInitials, imageRevealSize, imageRevealTone, IMAGE_REVEAL_SIZES, IMAGE_REVEAL_RADIUS } from './components/imageReveal';
|
|
418
418
|
export type { ImageRevealPhase, ImageRevealShape, ImageRevealSizeName, ImageRevealToneName, ImageRevealState } from './components/imageReveal';
|
|
419
419
|
export { default as AmbienceToggle, AMBIENCE_GROUP_ORDER } from './components/AmbienceToggle.svelte';
|
|
420
|
-
export { createAmbience, createAmbienceLocal, createSharedAmbience, AMBIENCE_CHANNEL, AMBIENCE_LOCK, createDefaultAmbience, DEFAULT_SCAPES, BreathClock, BREATHS_PER_MINUTE, MASTER, ScapeRegistry, hibiscusScape, focusScape, noiseScapes, brownNoiseScape, pinkNoiseScape, whiteNoiseScape, rain, waves, AMBIENCE_DEFAULT_GROUP_ORDER, AMBIENCE_DEFAULT_GROUP_LABELS, groupAmbienceItems, ambienceGroupLabel, isAmbienceLink, normalizeAmbienceGroups, radioStation, safeAmbienceHref } from './ambience';
|
|
421
|
-
export type { DefaultAmbienceOptions, AmbienceSection } from './ambience';
|
|
420
|
+
export { createAmbience, createAmbienceLocal, createSharedAmbience, AMBIENCE_CHANNEL, AMBIENCE_LOCK, createDefaultAmbience, DEFAULT_SCAPES, BreathClock, BREATHS_PER_MINUTE, MASTER, ScapeRegistry, hibiscusScape, focusScape, noiseScapes, brownNoiseScape, pinkNoiseScape, whiteNoiseScape, rain, waves, AMBIENCE_DEFAULT_GROUP_ORDER, AMBIENCE_DEFAULT_GROUP_LABELS, groupAmbienceItems, ambienceGroupLabel, isAmbienceLink, normalizeAmbienceGroups, radioStation, createRadioStreamScape, isRadioScape, safeAmbienceHref } from './ambience';
|
|
421
|
+
export type { DefaultAmbienceOptions, AmbienceSection, RadioStreamScape, RadioStreamState, RadioStreamScapeOptions, RadioStreamStatus } from './ambience';
|
|
422
422
|
export type { SharedAmbience, SharedAmbienceState, SharedAmbienceOptions } from './ambience';
|
|
423
423
|
export type { Ambience, AmbienceGroupDef, AmbienceItem, AmbienceLink, AmbienceOptions, AmbienceState, BreathState, Scape, ScapeContext, ScapeGroup, ScapeInstance } from './ambience';
|
|
424
424
|
export { createPlaylistScape } from './ambience';
|
package/dist/index.js
CHANGED
|
@@ -464,7 +464,7 @@ export { imageRevealPhase, imageRevealBusy, imageRevealInitials, imageRevealSize
|
|
|
464
464
|
// navigation; createDefaultAmbience() pre-registers every shipped scape
|
|
465
465
|
// (hibiscus, focus, brown/pink/white noise, rain, waves).
|
|
466
466
|
export { default as AmbienceToggle, AMBIENCE_GROUP_ORDER } from './components/AmbienceToggle.svelte';
|
|
467
|
-
export { createAmbience, createAmbienceLocal, createSharedAmbience, AMBIENCE_CHANNEL, AMBIENCE_LOCK, createDefaultAmbience, DEFAULT_SCAPES, BreathClock, BREATHS_PER_MINUTE, MASTER, ScapeRegistry, hibiscusScape, focusScape, noiseScapes, brownNoiseScape, pinkNoiseScape, whiteNoiseScape, rain, waves, AMBIENCE_DEFAULT_GROUP_ORDER, AMBIENCE_DEFAULT_GROUP_LABELS, groupAmbienceItems, ambienceGroupLabel, isAmbienceLink, normalizeAmbienceGroups, radioStation, safeAmbienceHref } from './ambience';
|
|
467
|
+
export { createAmbience, createAmbienceLocal, createSharedAmbience, AMBIENCE_CHANNEL, AMBIENCE_LOCK, createDefaultAmbience, DEFAULT_SCAPES, BreathClock, BREATHS_PER_MINUTE, MASTER, ScapeRegistry, hibiscusScape, focusScape, noiseScapes, brownNoiseScape, pinkNoiseScape, whiteNoiseScape, rain, waves, AMBIENCE_DEFAULT_GROUP_ORDER, AMBIENCE_DEFAULT_GROUP_LABELS, groupAmbienceItems, ambienceGroupLabel, isAmbienceLink, normalizeAmbienceGroups, radioStation, createRadioStreamScape, isRadioScape, safeAmbienceHref } from './ambience';
|
|
468
468
|
// Playlist scape (phase 2) — per-host, never in DEFAULT_SCAPES: build with
|
|
469
469
|
// createPlaylistScape() and register on the engine yourself.
|
|
470
470
|
export { createPlaylistScape } from './ambience';
|