@kieransimkin/dancemoves 3.0.2

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.
Files changed (50) hide show
  1. package/LICENSE +338 -0
  2. package/README.md +893 -0
  3. package/RUDIMENTS-API.md +394 -0
  4. package/docs/README.md +73 -0
  5. package/docs/api/adapters.md +400 -0
  6. package/docs/api/downloads.md +158 -0
  7. package/docs/api/effects.md +463 -0
  8. package/docs/api/javascript.md +500 -0
  9. package/docs/api/paper-planes.md +167 -0
  10. package/docs/api/styling.md +292 -0
  11. package/docs/api/surface.json +446 -0
  12. package/docs/api/wordpress.md +365 -0
  13. package/docs/clay-transform-validation.md +84 -0
  14. package/docs/development.md +254 -0
  15. package/docs/guide.md +288 -0
  16. package/docs/javascript-api.md +292 -0
  17. package/docs/javascript-server.md +150 -0
  18. package/docs/react-next.md +185 -0
  19. package/docs/releasing-shared.md +162 -0
  20. package/docs/rudiments-source-integrity.md +80 -0
  21. package/docs/shared-feature-coverage.md +34 -0
  22. package/docs/shared-runtime-migration.md +111 -0
  23. package/docs/source-audit.md +120 -0
  24. package/docs/validation-setup.md +102 -0
  25. package/docs/wordpress-examples.md +206 -0
  26. package/docs/wordpress-shared-runtime.md +133 -0
  27. package/lib/admin.min.js +1 -0
  28. package/lib/assets/DanceRudiments-LICENSE +21 -0
  29. package/lib/assets/DanceRudiments-build-manifest.json +21 -0
  30. package/lib/assets/paper-dreams-plane-atlas.png +0 -0
  31. package/lib/build-manifest.json +117 -0
  32. package/lib/dancemoves.css +9 -0
  33. package/lib/dancemoves.min.js +5 -0
  34. package/lib/index.cjs +4802 -0
  35. package/lib/index.d.ts +71 -0
  36. package/lib/index.mjs +4780 -0
  37. package/lib/react.cjs +154 -0
  38. package/lib/react.d.ts +12 -0
  39. package/lib/react.mjs +135 -0
  40. package/lib/rudiments.d.ts +124 -0
  41. package/lib/server.cjs +411 -0
  42. package/lib/server.d.ts +11 -0
  43. package/lib/server.mjs +367 -0
  44. package/lib/styles/clay-stars-effects.css +1 -0
  45. package/lib/styles/clay-stars-rudiments.css +1 -0
  46. package/lib/styles/dance-moves-core.css +1 -0
  47. package/lib/styles/ks-epk-device-orientation.css +1 -0
  48. package/lib/styles/paper-dreams-flight.css +1 -0
  49. package/lib/wordpress.js +5 -0
  50. package/package.json +101 -0
package/lib/index.d.ts ADDED
@@ -0,0 +1,71 @@
1
+ export * from './rudiments';
2
+ export type Remove = () => void;
3
+ export type Offset = Readonly<{x:number;y:number;z?:number}>;
4
+ export type Metadata = string | {id?:string;handlerId?:string};
5
+ export interface PageConfig {
6
+ pageId?:number;bpm?:number|null;bpmSource?:'explicit'|'fallback';lyricTimingUrl?:string;cueTimingUrl?:string;
7
+ lyricPopupsEnabled?:boolean;masterDurationMilliseconds?:number;sharedControlTicks?:number;lyricDisclosureTicks?:number;
8
+ effect?:''|'paper-planes';diagnostics?:boolean;
9
+ }
10
+ export interface Options extends PageConfig {
11
+ root:HTMLElement;clayPerformance?:Record<string,number|boolean>;catalogue?:boolean;clay?:boolean;legacyGlobals?:boolean;nonce?:string;onError?:(error:Error)=>void;
12
+ orientation?:{adapter?:OrientationAdapter;transitionTargetTicks?:number;harness?:boolean};
13
+ paperPlanes?:{atlasUrl:string;planeCount?:number;compactPlaneCount?:number};
14
+ }
15
+ export type OrientationAdapter = 'light-will-win'|'dying-for-a-diagnosis'|'presents-and-chocolate'|'fully-nocturnal'|'amnesty-honestly'|'walk-with-me'|'dmitri-my-talisman'|'clay-stars'|'california-screamin';
16
+ export interface Cue {time:number;type:string;name:string;label?:string;normalisedType?:string;normalisedName?:string;normalisedLabel?:string;audio?:HTMLAudioElement|null}
17
+ export interface Lyric {time:number;text:string;normalisedText?:string;audio?:HTMLAudioElement|null;nextTime?:number|null;nextText?:string;nextVisibleTime?:number|null;nextVisibleText?:string;[field:string]:unknown}
18
+ export interface Clock {clock?:'page'|'audio';audio?:HTMLAudioElement;bpm?:number;strictlyFuture?:boolean;handlerId?:string}
19
+ export interface IntervalDetail {intervalTicks:number;boundaryTick:number;audio:HTMLAudioElement|null;clock:'page'|'audio'}
20
+ export interface Controller {id?:string;teardown():void;snapshot():Record<string,unknown>}
21
+ export interface PointerController extends Controller {set(x:number,y:number,reason?:string):void;reset(reason?:string):void}
22
+ export interface QualityController extends Controller {setTier(index:number,reason?:string):void}
23
+ export interface CueTimelineController extends Controller {restore(reason?:string):void;start(reason?:string):void;stop(reason?:string):void}
24
+ export interface Effects {
25
+ version:string;
26
+ pointer(options:EffectOptions & {target?:Element|string;bounds?:Element|string;render?:(point:{x:number;y:number;reason?:string})=>void}):PointerController;
27
+ playbackPulse(options:EffectOptions & {audio?:HTMLAudioElement|string;ticks?:number;className?:string;propertyPrefix?:string;render?:(state:Record<string,unknown> & {audio:HTMLAudioElement})=>void}):Controller & {sync():void};
28
+ cueClass(options:EffectOptions & {cue?:string;className?:string;durationTicks?:number;render?:(state:Record<string,unknown>)=>void}):Controller & {fire(cue?:Cue):void;clear(reason?:string):void};
29
+ cueTimeline(options:EffectOptions & {audio?:HTMLAudioElement|string;cues:Array<{id?:string;time:number;end?:number;[key:string]:unknown}>;onCue?:(event:Record<string,unknown>)=>void;render?:(state:Record<string,unknown>)=>void}):CueTimelineController;
30
+ quality(options:EffectOptions & {tiers?:string[];render?:(state:{tier:string;index:number;reason:string;sample?:{fps:number}})=>void;[key:string]:unknown}):QualityController;
31
+ get(id:string):Controller|null;snapshot():Record<string,unknown>[];teardown(id:string):void;teardownAll():void;
32
+ }
33
+ export interface EffectOptions {id?:string;root?:Element|string;[key:string]:unknown}
34
+ export interface OrientationController {enable():Promise<boolean>;disable():void;reset():void;destroy():void;snapshot():Record<string,unknown>}
35
+ export interface Recorder {start():Promise<MotionCapture>;stop(reason?:string):MotionCapture;snapshot():Record<string,unknown>;upload(endpoint:string,options?:{headers?:Record<string,string>;signal?:AbortSignal}):Promise<Record<string,unknown>>}
36
+ export interface MotionCapture {schema:'ks-epk-motion-recording/v1';samples:Array<{milliseconds:number;beta:number;gamma:number;alpha?:number|null;[key:string]:unknown}>;[key:string]:unknown}
37
+ export interface DanceMoves {
38
+ readonly version:string;readonly bpm:number;readonly bpmSource:string;readonly ticksPerBeat:16;readonly root:HTMLElement;readonly config:Readonly<PageConfig>;
39
+ readonly destroyed:boolean;ready:Promise<DanceMoves>;
40
+ quantizeTicks(value:number):number;durationMilliseconds(ticks:number,bpmOverride?:number):number;currentTick(options?:Clock):number;
41
+ nextIntervalTick(interval:number,fromTick:number,strictlyFuture?:boolean):number;
42
+ scheduleAtInterval(interval:number,callback:(detail:IntervalDetail)=>void,options?:Clock):Remove;
43
+ deferStart(target:HTMLElement,interval:number,options?:Clock & {start?:(detail:IntervalDetail)=>void}):Remove;
44
+ onNextInterval(callback:(detail:IntervalDetail)=>void,interval:number,metadata?:Metadata):Remove;
45
+ onEveryInterval(callback:(detail:IntervalDetail)=>void,interval:number,metadata?:Metadata):Remove;
46
+ onNextBeat(callback:(detail:IntervalDetail)=>void,metadata?:Metadata):Remove;
47
+ onEveryBeat(callback:(detail:IntervalDetail)=>void,metadata?:Metadata):Remove;
48
+ onNextBar(callback:(detail:IntervalDetail)=>void,metadata?:Metadata):Remove;
49
+ onEveryBar(callback:(detail:IntervalDetail)=>void,metadata?:Metadata):Remove;
50
+ parseTimingFile(text:string):Cue[];parseLyricTimingFile(text:string):Lyric[];normaliseCueName(name:string):string;
51
+ onCue(name:string,callback:(cue:Cue)=>void,metadata?:Metadata):Remove;onLyric(callback:(lyric:Lyric)=>void,metadata?:Metadata):Remove;
52
+ fireCue(cue:Partial<Cue> & {name:string}):Cue;registerAnimationScope(root:HTMLElement,selectors:string[]):Remove;
53
+ resetRunningAnimations(audio?:HTMLAudioElement):number;discoverAudio():void;
54
+ setDiagnosticsSink(callback:((record:Record<string,unknown>)=>void)|null):boolean;diagnosticsEnabled():boolean;
55
+ applyCatalogueTiming?():Record<string,unknown>;catalogueTimingSnapshot?():Record<string,unknown>;removeCatalogueAnimationScope?():void;
56
+ effects:Effects;rudiments:import('./rudiments').RudimentApi;
57
+ orientationCore:Record<string,(...args:any[])=>any>;
58
+ getOrientation():(Controller & {reset():void})|null;getClay():(Controller & Record<string,any>)|null;getClayRudiment():Controller|null;getPaperPlanes():Controller|null;
59
+ createOrientation(options:{render:(point:Offset & Record<string,unknown>)=>void;windowMilliseconds?:number;minimumSpanDegrees?:number;smoothingTimeConstantMilliseconds?:number}):OrientationController;
60
+ createRecorder(options?:{durationMilliseconds?:number;maxSamples?:number}):Recorder;
61
+ on(type:string,callback:EventListener):Remove;resources():{id:string;disposed:boolean;listeners:number;timers:number;frames:number;observers:number;created:number};destroy():void;
62
+ }
63
+ export const VERSION:string;
64
+ export const ORIENTATION_ADAPTERS:readonly OrientationAdapter[];
65
+ export const PAGE_META_KEYS:Readonly<{bpm:string;lyric:string;cue:string;popups:string;duration:string;effect:string}>;
66
+ export function createDanceMoves(options:Options):DanceMoves;
67
+ export function validatePageConfig(input?:PageConfig):Readonly<PageConfig>;
68
+ export function fromWordPressMeta(meta:Record<string,unknown>,resolveAttachment?:(id:number)=>string|Promise<string>):Promise<Readonly<PageConfig>>;
69
+ export interface Revision {revision:number;config:PageConfig;savedAt:string}
70
+ export interface PageStore {read(id:string):Revision|null;revisions(id:string):Revision[];save(id:string,input:PageConfig,options?:{expectedRevision?:number}):Revision;restore(id:string,revision:number,options?:{expectedRevision?:number}):Revision;delete(id:string):boolean}
71
+ export function createMemoryPageStore(options?:{maxPages?:number;maxRevisions?:number}):PageStore;