@intellectif/lk-core 0.7.1 → 0.8.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.
Files changed (46) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +2 -0
  3. package/dist/{activity-DARHcrz_.d.cts → activity-CPtJUBek.d.cts} +65 -2
  4. package/dist/{activity-DARHcrz_.d.ts → activity-CPtJUBek.d.ts} +65 -2
  5. package/dist/{chunk-MVZKEWZN.cjs → chunk-4VH7RUX6.cjs} +8 -8
  6. package/dist/{chunk-MVZKEWZN.cjs.map → chunk-4VH7RUX6.cjs.map} +1 -1
  7. package/dist/{chunk-AFIQQADJ.cjs → chunk-64NBQCRE.cjs} +4 -4
  8. package/dist/{chunk-AFIQQADJ.cjs.map → chunk-64NBQCRE.cjs.map} +1 -1
  9. package/dist/{chunk-XL75ZZVM.js → chunk-H7L57ITR.js} +10 -6
  10. package/dist/chunk-H7L57ITR.js.map +1 -0
  11. package/dist/{chunk-NOBJYDOB.js → chunk-HTMRJ2SS.js} +2 -2
  12. package/dist/{chunk-7NIH5IL3.cjs → chunk-JFSZTWHL.cjs} +19 -15
  13. package/dist/chunk-JFSZTWHL.cjs.map +1 -0
  14. package/dist/{chunk-YCXIHFLG.js → chunk-OJXTXOUA.js} +87 -5
  15. package/dist/chunk-OJXTXOUA.js.map +1 -0
  16. package/dist/{chunk-5RE3ZRSA.cjs → chunk-RHJ5VNFB.cjs} +94 -12
  17. package/dist/chunk-RHJ5VNFB.cjs.map +1 -0
  18. package/dist/{chunk-2SQ75JTE.js → chunk-ZBCKQBAB.js} +2 -2
  19. package/dist/{index-yrUw7NzZ.d.ts → index-BxW_Ho_t.d.cts} +351 -7
  20. package/dist/{index-BfLwCMXN.d.cts → index-Kc53zVgY.d.ts} +351 -7
  21. package/dist/index.cjs +173 -26
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.cts +173 -5
  24. package/dist/index.d.ts +173 -5
  25. package/dist/index.js +153 -6
  26. package/dist/index.js.map +1 -1
  27. package/dist/schemas.cjs +9 -3
  28. package/dist/schemas.cjs.map +1 -1
  29. package/dist/schemas.d.cts +2 -2
  30. package/dist/schemas.d.ts +2 -2
  31. package/dist/schemas.js +8 -2
  32. package/dist/scoring.cjs +3 -3
  33. package/dist/scoring.d.cts +2 -2
  34. package/dist/scoring.d.ts +2 -2
  35. package/dist/scoring.js +2 -2
  36. package/dist/xapi.cjs +3 -3
  37. package/dist/xapi.d.cts +1 -1
  38. package/dist/xapi.d.ts +1 -1
  39. package/dist/xapi.js +2 -2
  40. package/package.json +2 -1
  41. package/dist/chunk-5RE3ZRSA.cjs.map +0 -1
  42. package/dist/chunk-7NIH5IL3.cjs.map +0 -1
  43. package/dist/chunk-XL75ZZVM.js.map +0 -1
  44. package/dist/chunk-YCXIHFLG.js.map +0 -1
  45. /package/dist/{chunk-NOBJYDOB.js.map → chunk-HTMRJ2SS.js.map} +0 -0
  46. /package/dist/{chunk-2SQ75JTE.js.map → chunk-ZBCKQBAB.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import { A as ActivityData, c as ActivityMedia, t as ValidationResult, e as ActivityType, a as ActivityDataMap } from './activity-DARHcrz_.cjs';
1
+ import { A as ActivityData, c as ActivityMedia, t as ValidationResult, e as ActivityType, a as ActivityDataMap } from './activity-CPtJUBek.js';
2
2
  import { z } from 'zod/v4';
3
3
 
4
4
  /** What a stimulus primarily is. Drives validation and layout, never scoring. */
@@ -243,6 +243,25 @@ declare const FillInTheBlanksDataSchema: z.ZodObject<{
243
243
  url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
244
244
  alt: z.ZodOptional<z.ZodString>;
245
245
  captionsUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodURL, z.ZodString]>>;
246
+ playback: z.ZodOptional<z.ZodObject<{
247
+ controls: z.ZodOptional<z.ZodEnum<{
248
+ native: "native";
249
+ minimal: "minimal";
250
+ }>>;
251
+ maxPlays: z.ZodOptional<z.ZodNumber>;
252
+ seek: z.ZodOptional<z.ZodEnum<{
253
+ none: "none";
254
+ allow: "allow";
255
+ }>>;
256
+ rate: z.ZodOptional<z.ZodEnum<{
257
+ allow: "allow";
258
+ fixed: "fixed";
259
+ }>>;
260
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
261
+ "hide-download": "hide-download";
262
+ "hide-rate": "hide-rate";
263
+ }>>>;
264
+ }, z.core.$strict>>;
246
265
  }, z.core.$loose>>;
247
266
  feedback: z.ZodOptional<z.ZodObject<{
248
267
  correct: z.ZodOptional<z.ZodString>;
@@ -285,6 +304,25 @@ declare const StimulusSchema: z.ZodObject<{
285
304
  url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
286
305
  alt: z.ZodOptional<z.ZodString>;
287
306
  captionsUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodURL, z.ZodString]>>;
307
+ playback: z.ZodOptional<z.ZodObject<{
308
+ controls: z.ZodOptional<z.ZodEnum<{
309
+ native: "native";
310
+ minimal: "minimal";
311
+ }>>;
312
+ maxPlays: z.ZodOptional<z.ZodNumber>;
313
+ seek: z.ZodOptional<z.ZodEnum<{
314
+ none: "none";
315
+ allow: "allow";
316
+ }>>;
317
+ rate: z.ZodOptional<z.ZodEnum<{
318
+ allow: "allow";
319
+ fixed: "fixed";
320
+ }>>;
321
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
322
+ "hide-download": "hide-download";
323
+ "hide-rate": "hide-rate";
324
+ }>>>;
325
+ }, z.core.$strict>>;
288
326
  }, z.core.$loose>>;
289
327
  transcript: z.ZodOptional<z.ZodString>;
290
328
  locale: z.ZodOptional<z.ZodString>;
@@ -324,6 +362,25 @@ declare const ItemGroupSchema: z.ZodObject<{
324
362
  url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
325
363
  alt: z.ZodOptional<z.ZodString>;
326
364
  captionsUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodURL, z.ZodString]>>;
365
+ playback: z.ZodOptional<z.ZodObject<{
366
+ controls: z.ZodOptional<z.ZodEnum<{
367
+ native: "native";
368
+ minimal: "minimal";
369
+ }>>;
370
+ maxPlays: z.ZodOptional<z.ZodNumber>;
371
+ seek: z.ZodOptional<z.ZodEnum<{
372
+ none: "none";
373
+ allow: "allow";
374
+ }>>;
375
+ rate: z.ZodOptional<z.ZodEnum<{
376
+ allow: "allow";
377
+ fixed: "fixed";
378
+ }>>;
379
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
380
+ "hide-download": "hide-download";
381
+ "hide-rate": "hide-rate";
382
+ }>>>;
383
+ }, z.core.$strict>>;
327
384
  }, z.core.$loose>>;
328
385
  transcript: z.ZodOptional<z.ZodString>;
329
386
  locale: z.ZodOptional<z.ZodString>;
@@ -364,7 +421,26 @@ declare const RedactedStimulusSchema: z.ZodObject<{
364
421
  url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
365
422
  alt: z.ZodOptional<z.ZodString>;
366
423
  captionsUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodURL, z.ZodString]>>;
367
- }, z.core.$loose>>;
424
+ playback: z.ZodOptional<z.ZodObject<{
425
+ controls: z.ZodOptional<z.ZodEnum<{
426
+ native: "native";
427
+ minimal: "minimal";
428
+ }>>;
429
+ maxPlays: z.ZodOptional<z.ZodNumber>;
430
+ seek: z.ZodOptional<z.ZodEnum<{
431
+ none: "none";
432
+ allow: "allow";
433
+ }>>;
434
+ rate: z.ZodOptional<z.ZodEnum<{
435
+ allow: "allow";
436
+ fixed: "fixed";
437
+ }>>;
438
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
439
+ "hide-download": "hide-download";
440
+ "hide-rate": "hide-rate";
441
+ }>>>;
442
+ }, z.core.$strict>>;
443
+ }, z.core.$strict>>;
368
444
  locale: z.ZodOptional<z.ZodString>;
369
445
  attribution: z.ZodOptional<z.ZodString>;
370
446
  }, z.core.$strict>;
@@ -402,7 +478,26 @@ declare const RedactedItemGroupSchema: z.ZodObject<{
402
478
  url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
403
479
  alt: z.ZodOptional<z.ZodString>;
404
480
  captionsUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodURL, z.ZodString]>>;
405
- }, z.core.$loose>>;
481
+ playback: z.ZodOptional<z.ZodObject<{
482
+ controls: z.ZodOptional<z.ZodEnum<{
483
+ native: "native";
484
+ minimal: "minimal";
485
+ }>>;
486
+ maxPlays: z.ZodOptional<z.ZodNumber>;
487
+ seek: z.ZodOptional<z.ZodEnum<{
488
+ none: "none";
489
+ allow: "allow";
490
+ }>>;
491
+ rate: z.ZodOptional<z.ZodEnum<{
492
+ allow: "allow";
493
+ fixed: "fixed";
494
+ }>>;
495
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
496
+ "hide-download": "hide-download";
497
+ "hide-rate": "hide-rate";
498
+ }>>>;
499
+ }, z.core.$strict>>;
500
+ }, z.core.$strict>>;
406
501
  locale: z.ZodOptional<z.ZodString>;
407
502
  attribution: z.ZodOptional<z.ZodString>;
408
503
  }, z.core.$strict>;
@@ -494,6 +589,70 @@ declare function jsonSchemaFor(type: string): Record<string, unknown>;
494
589
  * vector in every consuming app.
495
590
  */
496
591
  declare const MediaUrlSchema: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
592
+ /**
593
+ * Hints to the BROWSER'S OWN control bar, emitted as `controlsList` tokens.
594
+ *
595
+ * They remove a button, never a capability, and only in engines that implement
596
+ * `controlsList` at all. `hide-download` does NOT prevent a download — the URL
597
+ * is in the page and the bytes are in the network panel. If a recording must
598
+ * not be kept, issue a short-lived signed URL; that is the consuming
599
+ * application's control, not the SDK's.
600
+ *
601
+ * Meaningful only alongside the native bar: there is nothing to hint at once
602
+ * the SDK owns the transport.
603
+ */
604
+ declare const NativeControlHintSchema: z.ZodEnum<{
605
+ "hide-download": "hide-download";
606
+ "hide-rate": "hide-rate";
607
+ }>;
608
+ /**
609
+ * How an audio recording may be played.
610
+ *
611
+ * STRICT on purpose: an unknown key here is an authoring error. {@link
612
+ * MediaSchema} is loose, so without this a typo one level down (`maxPlay`,
613
+ * `seeking`) would be silently accepted and the whole policy would quietly do
614
+ * nothing on an exam that believed it was enforced.
615
+ *
616
+ * Nothing here is required together with anything else — `{ maxPlays: 2 }` is a
617
+ * complete, valid policy, because `controls` and `seek` RESOLVE to the only
618
+ * values that can keep that promise. The refinements below reject only a
619
+ * combination an author wrote **explicitly** that the renderer cannot honour.
620
+ */
621
+ declare const MediaPlaybackSchema: z.ZodObject<{
622
+ /**
623
+ * `native` (the resolved default) renders today's `<audio controls>`
624
+ * unchanged. `minimal` — resolved automatically whenever any enforcement
625
+ * field is set — replaces the browser bar with the SDK transport:
626
+ * play/pause, elapsed/total, mute, volume, optional speed, optional
627
+ * scrubber, and a live plays-remaining status.
628
+ */
629
+ controls: z.ZodOptional<z.ZodEnum<{
630
+ native: "native";
631
+ minimal: "minimal";
632
+ }>>;
633
+ /**
634
+ * How many times the recording may be STARTED. A play is consumed when
635
+ * playback begins from anywhere other than where it last stopped, so
636
+ * pausing, resuming, and paging between the questions of one listening
637
+ * group are all free. Enforced in `practice` and `exam`; never in `review`.
638
+ */
639
+ maxPlays: z.ZodOptional<z.ZodNumber>;
640
+ /** `none` renders no scrubber and reverts an out-of-band seek to the high-water mark. */
641
+ seek: z.ZodOptional<z.ZodEnum<{
642
+ none: "none";
643
+ allow: "allow";
644
+ }>>;
645
+ /** `fixed` renders no speed control and snaps `playbackRate` back to 1. */
646
+ rate: z.ZodOptional<z.ZodEnum<{
647
+ allow: "allow";
648
+ fixed: "fixed";
649
+ }>>;
650
+ /** Advisory only. See {@link NativeControlHintSchema}. */
651
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
652
+ "hide-download": "hide-download";
653
+ "hide-rate": "hide-rate";
654
+ }>>>;
655
+ }, z.core.$strict>;
497
656
  declare const MediaSchema: z.ZodObject<{
498
657
  type: z.ZodEnum<{
499
658
  image: "image";
@@ -504,7 +663,97 @@ declare const MediaSchema: z.ZodObject<{
504
663
  url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
505
664
  alt: z.ZodOptional<z.ZodString>;
506
665
  captionsUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodURL, z.ZodString]>>;
666
+ playback: z.ZodOptional<z.ZodObject<{
667
+ /**
668
+ * `native` (the resolved default) renders today's `<audio controls>`
669
+ * unchanged. `minimal` — resolved automatically whenever any enforcement
670
+ * field is set — replaces the browser bar with the SDK transport:
671
+ * play/pause, elapsed/total, mute, volume, optional speed, optional
672
+ * scrubber, and a live plays-remaining status.
673
+ */
674
+ controls: z.ZodOptional<z.ZodEnum<{
675
+ native: "native";
676
+ minimal: "minimal";
677
+ }>>;
678
+ /**
679
+ * How many times the recording may be STARTED. A play is consumed when
680
+ * playback begins from anywhere other than where it last stopped, so
681
+ * pausing, resuming, and paging between the questions of one listening
682
+ * group are all free. Enforced in `practice` and `exam`; never in `review`.
683
+ */
684
+ maxPlays: z.ZodOptional<z.ZodNumber>;
685
+ /** `none` renders no scrubber and reverts an out-of-band seek to the high-water mark. */
686
+ seek: z.ZodOptional<z.ZodEnum<{
687
+ none: "none";
688
+ allow: "allow";
689
+ }>>;
690
+ /** `fixed` renders no speed control and snaps `playbackRate` back to 1. */
691
+ rate: z.ZodOptional<z.ZodEnum<{
692
+ allow: "allow";
693
+ fixed: "fixed";
694
+ }>>;
695
+ /** Advisory only. See {@link NativeControlHintSchema}. */
696
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
697
+ "hide-download": "hide-download";
698
+ "hide-rate": "hide-rate";
699
+ }>>>;
700
+ }, z.core.$strict>>;
507
701
  }, z.core.$loose>;
702
+ /**
703
+ * The strict counterpart of {@link MediaSchema}, for the redacted shapes.
704
+ *
705
+ * `RedactedActivityDataSchema` and `RedactedStimulusSchema` are `strictObject`
706
+ * precisely so an unknown key is a validation failure rather than a
707
+ * passthrough — but they embedded the LOOSE `MediaSchema`, so the strictness
708
+ * stopped at the media boundary and `media.secretAnswerHint` passed
709
+ * `assertRedacted`. This closes it.
710
+ */
711
+ declare const RedactedMediaSchema: z.ZodObject<{
712
+ type: z.ZodEnum<{
713
+ image: "image";
714
+ audio: "audio";
715
+ video: "video";
716
+ embed: "embed";
717
+ }>;
718
+ url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
719
+ alt: z.ZodOptional<z.ZodString>;
720
+ captionsUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodURL, z.ZodString]>>;
721
+ playback: z.ZodOptional<z.ZodObject<{
722
+ /**
723
+ * `native` (the resolved default) renders today's `<audio controls>`
724
+ * unchanged. `minimal` — resolved automatically whenever any enforcement
725
+ * field is set — replaces the browser bar with the SDK transport:
726
+ * play/pause, elapsed/total, mute, volume, optional speed, optional
727
+ * scrubber, and a live plays-remaining status.
728
+ */
729
+ controls: z.ZodOptional<z.ZodEnum<{
730
+ native: "native";
731
+ minimal: "minimal";
732
+ }>>;
733
+ /**
734
+ * How many times the recording may be STARTED. A play is consumed when
735
+ * playback begins from anywhere other than where it last stopped, so
736
+ * pausing, resuming, and paging between the questions of one listening
737
+ * group are all free. Enforced in `practice` and `exam`; never in `review`.
738
+ */
739
+ maxPlays: z.ZodOptional<z.ZodNumber>;
740
+ /** `none` renders no scrubber and reverts an out-of-band seek to the high-water mark. */
741
+ seek: z.ZodOptional<z.ZodEnum<{
742
+ none: "none";
743
+ allow: "allow";
744
+ }>>;
745
+ /** `fixed` renders no speed control and snaps `playbackRate` back to 1. */
746
+ rate: z.ZodOptional<z.ZodEnum<{
747
+ allow: "allow";
748
+ fixed: "fixed";
749
+ }>>;
750
+ /** Advisory only. See {@link NativeControlHintSchema}. */
751
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
752
+ "hide-download": "hide-download";
753
+ "hide-rate": "hide-rate";
754
+ }>>>;
755
+ }, z.core.$strict>>;
756
+ }, z.core.$strict>;
508
757
 
509
758
  /**
510
759
  * Zod schema for a single Multiple Choice option. Loose: unknown keys are
@@ -562,6 +811,25 @@ declare const MultipleChoiceDataSchema: z.ZodObject<{
562
811
  url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
563
812
  alt: z.ZodOptional<z.ZodString>;
564
813
  captionsUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodURL, z.ZodString]>>;
814
+ playback: z.ZodOptional<z.ZodObject<{
815
+ controls: z.ZodOptional<z.ZodEnum<{
816
+ native: "native";
817
+ minimal: "minimal";
818
+ }>>;
819
+ maxPlays: z.ZodOptional<z.ZodNumber>;
820
+ seek: z.ZodOptional<z.ZodEnum<{
821
+ none: "none";
822
+ allow: "allow";
823
+ }>>;
824
+ rate: z.ZodOptional<z.ZodEnum<{
825
+ allow: "allow";
826
+ fixed: "fixed";
827
+ }>>;
828
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
829
+ "hide-download": "hide-download";
830
+ "hide-rate": "hide-rate";
831
+ }>>>;
832
+ }, z.core.$strict>>;
565
833
  }, z.core.$loose>>;
566
834
  feedback: z.ZodOptional<z.ZodObject<{
567
835
  correct: z.ZodOptional<z.ZodString>;
@@ -616,7 +884,26 @@ declare const RedactedMultipleChoiceDataSchema: z.ZodObject<{
616
884
  url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
617
885
  alt: z.ZodOptional<z.ZodString>;
618
886
  captionsUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodURL, z.ZodString]>>;
619
- }, z.core.$loose>>;
887
+ playback: z.ZodOptional<z.ZodObject<{
888
+ controls: z.ZodOptional<z.ZodEnum<{
889
+ native: "native";
890
+ minimal: "minimal";
891
+ }>>;
892
+ maxPlays: z.ZodOptional<z.ZodNumber>;
893
+ seek: z.ZodOptional<z.ZodEnum<{
894
+ none: "none";
895
+ allow: "allow";
896
+ }>>;
897
+ rate: z.ZodOptional<z.ZodEnum<{
898
+ allow: "allow";
899
+ fixed: "fixed";
900
+ }>>;
901
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
902
+ "hide-download": "hide-download";
903
+ "hide-rate": "hide-rate";
904
+ }>>>;
905
+ }, z.core.$strict>>;
906
+ }, z.core.$strict>>;
620
907
  passThreshold: z.ZodOptional<z.ZodNumber>;
621
908
  locale: z.ZodOptional<z.ZodString>;
622
909
  learningObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -653,7 +940,26 @@ declare const RedactedFillInTheBlanksDataSchema: z.ZodObject<{
653
940
  url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
654
941
  alt: z.ZodOptional<z.ZodString>;
655
942
  captionsUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodURL, z.ZodString]>>;
656
- }, z.core.$loose>>;
943
+ playback: z.ZodOptional<z.ZodObject<{
944
+ controls: z.ZodOptional<z.ZodEnum<{
945
+ native: "native";
946
+ minimal: "minimal";
947
+ }>>;
948
+ maxPlays: z.ZodOptional<z.ZodNumber>;
949
+ seek: z.ZodOptional<z.ZodEnum<{
950
+ none: "none";
951
+ allow: "allow";
952
+ }>>;
953
+ rate: z.ZodOptional<z.ZodEnum<{
954
+ allow: "allow";
955
+ fixed: "fixed";
956
+ }>>;
957
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
958
+ "hide-download": "hide-download";
959
+ "hide-rate": "hide-rate";
960
+ }>>>;
961
+ }, z.core.$strict>>;
962
+ }, z.core.$strict>>;
657
963
  passThreshold: z.ZodOptional<z.ZodNumber>;
658
964
  locale: z.ZodOptional<z.ZodString>;
659
965
  learningObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -696,7 +1002,26 @@ declare const RedactedWrittenResponseDataSchema: z.ZodObject<{
696
1002
  url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
697
1003
  alt: z.ZodOptional<z.ZodString>;
698
1004
  captionsUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodURL, z.ZodString]>>;
699
- }, z.core.$loose>>;
1005
+ playback: z.ZodOptional<z.ZodObject<{
1006
+ controls: z.ZodOptional<z.ZodEnum<{
1007
+ native: "native";
1008
+ minimal: "minimal";
1009
+ }>>;
1010
+ maxPlays: z.ZodOptional<z.ZodNumber>;
1011
+ seek: z.ZodOptional<z.ZodEnum<{
1012
+ none: "none";
1013
+ allow: "allow";
1014
+ }>>;
1015
+ rate: z.ZodOptional<z.ZodEnum<{
1016
+ allow: "allow";
1017
+ fixed: "fixed";
1018
+ }>>;
1019
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1020
+ "hide-download": "hide-download";
1021
+ "hide-rate": "hide-rate";
1022
+ }>>>;
1023
+ }, z.core.$strict>>;
1024
+ }, z.core.$strict>>;
700
1025
  passThreshold: z.ZodOptional<z.ZodNumber>;
701
1026
  locale: z.ZodOptional<z.ZodString>;
702
1027
  learningObjectives: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -791,6 +1116,25 @@ declare const WrittenResponseDataSchema: z.ZodObject<{
791
1116
  url: z.ZodUnion<readonly [z.ZodURL, z.ZodString]>;
792
1117
  alt: z.ZodOptional<z.ZodString>;
793
1118
  captionsUrl: z.ZodOptional<z.ZodUnion<readonly [z.ZodURL, z.ZodString]>>;
1119
+ playback: z.ZodOptional<z.ZodObject<{
1120
+ controls: z.ZodOptional<z.ZodEnum<{
1121
+ native: "native";
1122
+ minimal: "minimal";
1123
+ }>>;
1124
+ maxPlays: z.ZodOptional<z.ZodNumber>;
1125
+ seek: z.ZodOptional<z.ZodEnum<{
1126
+ none: "none";
1127
+ allow: "allow";
1128
+ }>>;
1129
+ rate: z.ZodOptional<z.ZodEnum<{
1130
+ allow: "allow";
1131
+ fixed: "fixed";
1132
+ }>>;
1133
+ nativeControlHints: z.ZodOptional<z.ZodArray<z.ZodEnum<{
1134
+ "hide-download": "hide-download";
1135
+ "hide-rate": "hide-rate";
1136
+ }>>>;
1137
+ }, z.core.$strict>>;
794
1138
  }, z.core.$loose>>;
795
1139
  feedback: z.ZodOptional<z.ZodObject<{
796
1140
  correct: z.ZodOptional<z.ZodString>;
@@ -816,4 +1160,4 @@ declare const WrittenResponseDataSchema: z.ZodObject<{
816
1160
  */
817
1161
  declare function validateActivity<T extends ActivityType>(type: T, data: unknown): ValidationResult<ActivityDataMap[T]>;
818
1162
 
819
- export { itemGroupJsonSchema as A, BlankConfigSchema as B, jsonSchemaFor as C, multipleChoiceJsonSchema as D, stimulusJsonSchema as E, FeedbackSchema as F, validateActivity as G, validateItemGroup as H, type ItemGroup as I, writtenResponseJsonSchema as J, MediaSchema as M, type RedactedActivity as R, type SequenceEntry as S, TextMatchPolicySchema as T, WrittenResponseDataSchema as W, FillInTheBlanksDataSchema as a, ItemGroupSchema as b, MediaUrlSchema as c, MultipleChoiceDataSchema as d, MultipleChoiceOptionSchema as e, type RedactedBlankConfig as f, RedactedBlankConfigSchema as g, type RedactedFillInTheBlanksData as h, RedactedFillInTheBlanksDataSchema as i, RedactedItemGroupSchema as j, type RedactedMultipleChoiceData as k, RedactedMultipleChoiceDataSchema as l, type RedactedMultipleChoiceOption as m, RedactedMultipleChoiceOptionSchema as n, type RedactedStimulus as o, RedactedStimulusSchema as p, type RedactedWrittenResponseData as q, RedactedWrittenResponseDataSchema as r, type SequenceSlot as s, type SequenceSlotGroup as t, type Stimulus as u, type StimulusKind as v, StimulusSchema as w, WrittenResponseRubricCriterionSchema as x, WrittenResponseRubricSchema as y, fillInTheBlanksJsonSchema as z };
1163
+ export { WrittenResponseRubricSchema as A, BlankConfigSchema as B, fillInTheBlanksJsonSchema as C, itemGroupJsonSchema as D, jsonSchemaFor as E, FeedbackSchema as F, multipleChoiceJsonSchema as G, stimulusJsonSchema as H, type ItemGroup as I, validateActivity as J, validateItemGroup as K, writtenResponseJsonSchema as L, MediaPlaybackSchema as M, NativeControlHintSchema as N, type RedactedActivity as R, type SequenceEntry as S, TextMatchPolicySchema as T, WrittenResponseDataSchema as W, FillInTheBlanksDataSchema as a, ItemGroupSchema as b, MediaSchema as c, MediaUrlSchema as d, MultipleChoiceDataSchema as e, MultipleChoiceOptionSchema as f, type RedactedBlankConfig as g, RedactedBlankConfigSchema as h, type RedactedFillInTheBlanksData as i, RedactedFillInTheBlanksDataSchema as j, RedactedItemGroupSchema as k, RedactedMediaSchema as l, type RedactedMultipleChoiceData as m, RedactedMultipleChoiceDataSchema as n, type RedactedMultipleChoiceOption as o, RedactedMultipleChoiceOptionSchema as p, type RedactedStimulus as q, RedactedStimulusSchema as r, type RedactedWrittenResponseData as s, RedactedWrittenResponseDataSchema as t, type SequenceSlot as u, type SequenceSlotGroup as v, type Stimulus as w, type StimulusKind as x, StimulusSchema as y, WrittenResponseRubricCriterionSchema as z };