@pie-element/mc-populated-blank 0.2.10 → 0.2.12

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 (55) hide show
  1. package/README.md +0 -2
  2. package/dist/author/index.js +186 -152
  3. package/dist/author/index.js.map +1 -1
  4. package/dist/controller/defaults.d.ts +41 -73
  5. package/dist/controller/defaults.d.ts.map +1 -1
  6. package/dist/controller/index.d.ts +154 -10
  7. package/dist/controller/index.d.ts.map +1 -1
  8. package/dist/controller/index.js +29 -30
  9. package/dist/controller/index.js.map +1 -1
  10. package/dist/delivery/computeAudioMode.d.ts +7 -0
  11. package/dist/delivery/computeAudioMode.d.ts.map +1 -0
  12. package/dist/delivery/computeChoiceCorrectness.d.ts +18 -0
  13. package/dist/delivery/computeChoiceCorrectness.d.ts.map +1 -0
  14. package/dist/delivery/computeDisplayState.d.ts +47 -0
  15. package/dist/delivery/computeDisplayState.d.ts.map +1 -0
  16. package/dist/delivery/computeLayoutProfile.d.ts +18 -0
  17. package/dist/delivery/computeLayoutProfile.d.ts.map +1 -0
  18. package/dist/delivery/computeLayoutStyle.d.ts +27 -0
  19. package/dist/delivery/computeLayoutStyle.d.ts.map +1 -0
  20. package/dist/delivery/index.d.ts.map +1 -1
  21. package/dist/delivery/index.js +1591 -927
  22. package/dist/delivery/index.js.map +1 -1
  23. package/dist/delivery/variant-css-map.d.ts.map +1 -1
  24. package/dist/index.iife.d.ts +151 -10
  25. package/dist/index.iife.d.ts.map +1 -1
  26. package/dist/index.iife.js +233 -114
  27. package/dist/index.js +1591 -927
  28. package/dist/index.js.map +1 -1
  29. package/dist/print/index.js +194 -166
  30. package/dist/print/index.js.map +1 -1
  31. package/dist/shared/layoutLimits.d.ts +40 -0
  32. package/dist/shared/layoutLimits.d.ts.map +1 -0
  33. package/dist/shared/types.d.ts +82 -0
  34. package/dist/shared/types.d.ts.map +1 -0
  35. package/package.json +5 -14
  36. package/src/author/Author.svelte +0 -41
  37. package/src/author/index.ts +0 -28
  38. package/src/controller/defaults.ts +0 -91
  39. package/src/controller/index.ts +0 -359
  40. package/src/delivery/McPopulatedBlank.svelte +0 -1246
  41. package/src/delivery/cqt-css/sel-r1-g-stem.css +0 -29
  42. package/src/delivery/cqt-css/sel-r1-gg-plus.css +0 -29
  43. package/src/delivery/cqt-css/sel-r1-ggplus.css +0 -34
  44. package/src/delivery/cqt-css/sel-r1-gplusggg.css +0 -20
  45. package/src/delivery/cqt-css/sel-r1-plusggg.css +0 -20
  46. package/src/delivery/cqt-css/sel-r1-s3.css +0 -91
  47. package/src/delivery/cqt-css/sel-vic.css +0 -38
  48. package/src/delivery/cqt-css/sr-vic.css +0 -14
  49. package/src/delivery/index.ts +0 -103
  50. package/src/delivery/variant-css-map.ts +0 -110
  51. package/src/index.iife.ts +0 -13
  52. package/src/index.ts +0 -1
  53. package/src/print/Print.svelte +0 -95
  54. package/src/print/index.ts +0 -18
  55. package/src/types/css-raw.d.ts +0 -4
@@ -0,0 +1,40 @@
1
+ export type LayoutLimits = {
2
+ blankStandaloneWidthRem: number;
3
+ blankWideWidthRem: number;
4
+ blankUnderlineWidthPx: number;
5
+ blankUnderlineWideWidthPx: number;
6
+ horizontalChoiceWidthPx: number;
7
+ horizontalChoiceWidthVw: number;
8
+ horizontalChoiceTileMinHeightRem: number;
9
+ horizontalChoiceContentMinHeightRem: number;
10
+ selectedImageMaxHeightRem: number;
11
+ choiceImageMaxHeightRem: number;
12
+ listenButtonSizePx: number;
13
+ stimulusMinColumnPx: number;
14
+ textMinColumnPx: number;
15
+ legendMaxChars: number;
16
+ choiceGroupGapRem: number;
17
+ choiceRowGapRem: number;
18
+ toggleButtonGapRem: number;
19
+ horizontalChoiceRadioTopMarginRem: number;
20
+ audioBlankTemplateMarginTopRem: number;
21
+ audioBlankTemplateMarginBottomRem: number;
22
+ audioInstructionsMaxWidthPx: number;
23
+ narrowHorizontalChoiceMaxWidthPx: number;
24
+ stimulusGridColumnGapRem: number;
25
+ stimulusGridRowGapRem: number;
26
+ stimulusSentenceMarginTopRem: number;
27
+ stimulusChoicesMarginTopRem: number;
28
+ tokenGridColumnGapRem: number;
29
+ tokenGridRowGapRem: number;
30
+ tokenTemplateMarginTopRem: number;
31
+ tokenInlineTokenGapRem: number;
32
+ tokenChoicesMarginTopRem: number;
33
+ inlineGridColumnGapRem: number;
34
+ inlineGridRowGapRem: number;
35
+ inlineTemplateMarginTopRem: number;
36
+ inlineChoicesMarginTopRem: number;
37
+ };
38
+ /** Baseline values tuned to match historical CQT visuals; override via model.layoutLimits. */
39
+ export declare const DEFAULT_LAYOUT_LIMITS: LayoutLimits;
40
+ //# sourceMappingURL=layoutLimits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layoutLimits.d.ts","sourceRoot":"","sources":["../../src/shared/layoutLimits.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,yBAAyB,EAAE,MAAM,CAAC;IAClC,uBAAuB,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,gCAAgC,EAAE,MAAM,CAAC;IACzC,mCAAmC,EAAE,MAAM,CAAC;IAC5C,yBAAyB,EAAE,MAAM,CAAC;IAClC,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iCAAiC,EAAE,MAAM,CAAC;IAC1C,8BAA8B,EAAE,MAAM,CAAC;IACvC,iCAAiC,EAAE,MAAM,CAAC;IAC1C,2BAA2B,EAAE,MAAM,CAAC;IACpC,gCAAgC,EAAE,MAAM,CAAC;IACzC,wBAAwB,EAAE,MAAM,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,4BAA4B,EAAE,MAAM,CAAC;IACrC,2BAA2B,EAAE,MAAM,CAAC;IACpC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yBAAyB,EAAE,MAAM,CAAC;IAClC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,wBAAwB,EAAE,MAAM,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,0BAA0B,EAAE,MAAM,CAAC;IACnC,yBAAyB,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,qBAAqB,EAAE,YAoCnC,CAAC"}
@@ -0,0 +1,82 @@
1
+ import type { LayoutLimits } from './layoutLimits';
2
+ export type McpbChoiceMode = 'text' | 'image';
3
+ export type McpbInteractionMode = 'populate_blank' | 'audio_mc_only';
4
+ export type McpbDeliveryMode = 'gather' | 'view' | 'evaluate' | 'authoring' | 'print';
5
+ export type McpbRole = 'student' | 'instructor';
6
+ export type McpbCorrectness = 'correct' | 'incorrect' | 'unanswered';
7
+ export interface McpbChoice {
8
+ id: string;
9
+ labelHtml?: string;
10
+ imageUrl?: string;
11
+ imageAlt?: string;
12
+ }
13
+ export interface McpbAudioButtonSkin {
14
+ silentUrl: string;
15
+ playingUrl: string;
16
+ }
17
+ export interface McpbUiText {
18
+ answerChoices?: string;
19
+ selectedAnswerInSentence?: string;
20
+ showCorrectAnswer?: string;
21
+ hideCorrectAnswer?: string;
22
+ clickToEnableAutoplay?: string;
23
+ audioResourceUnavailable?: string;
24
+ transcriptLabel?: string;
25
+ listenLabelEn?: string;
26
+ listenLabelEs?: string;
27
+ listenSilentAlt?: string;
28
+ listenPlayingAlt?: string;
29
+ listenSilentAltEs?: string;
30
+ listenPlayingAltEs?: string;
31
+ }
32
+ export interface McpbQuestion {
33
+ id?: string;
34
+ element?: string;
35
+ prompt?: string;
36
+ promptEnabled?: boolean;
37
+ interactionMode?: McpbInteractionMode;
38
+ layoutProfile?: string;
39
+ choiceLayout?: string;
40
+ layoutProfilePresets?: Record<string, Partial<LayoutLimits>>;
41
+ layoutLimits?: Partial<LayoutLimits>;
42
+ audioButtonSkin?: McpbAudioButtonSkin | null;
43
+ audioButtonSkinsByLocale?: Record<string, McpbAudioButtonSkin>;
44
+ uiText?: McpbUiText;
45
+ sentenceHtml?: string;
46
+ template?: string;
47
+ choiceMode?: McpbChoiceMode;
48
+ choices?: McpbChoice[];
49
+ correctChoiceId?: string;
50
+ hasAudio?: boolean;
51
+ autoplayAudioEnabled?: boolean;
52
+ completeAudioEnabled?: boolean;
53
+ audioUrl?: string;
54
+ audioTranscript?: string;
55
+ showVisibleTranscript?: boolean;
56
+ useFeatureButtonAudio?: boolean;
57
+ locale?: string;
58
+ shuffle?: boolean;
59
+ lockChoiceOrder?: boolean;
60
+ teacherInstructions?: string;
61
+ teacherInstructionsEnabled?: boolean;
62
+ customType?: string;
63
+ }
64
+ export interface McpbSession {
65
+ id?: string;
66
+ element?: string;
67
+ choiceId?: string;
68
+ audioStartTime?: number;
69
+ audioEndTime?: number;
70
+ shuffledValues?: string[];
71
+ data?: {
72
+ shuffledValues?: string[];
73
+ };
74
+ }
75
+ export interface McpbEnv {
76
+ mode?: McpbDeliveryMode;
77
+ role?: McpbRole;
78
+ '@pie-element'?: {
79
+ lockChoiceOrder?: boolean;
80
+ };
81
+ }
82
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/mc-populated-blank",
3
- "version": "0.2.10",
3
+ "version": "0.2.12",
4
4
  "description": "Multiple-choice option populates an inline blank in a sentence template (Svelte 5 PIE element)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -10,34 +10,28 @@
10
10
  },
11
11
  "exports": {
12
12
  ".": {
13
- "development": "./src/index.ts",
14
13
  "types": "./dist/index.d.ts",
15
14
  "default": "./dist/index.js"
16
15
  },
17
16
  "./delivery": {
18
- "development": "./src/delivery/index.ts",
19
17
  "types": "./dist/delivery/index.d.ts",
20
18
  "default": "./dist/delivery/index.js"
21
19
  },
22
20
  "./controller": {
23
- "development": "./src/controller/index.ts",
24
21
  "types": "./dist/controller/index.d.ts",
25
22
  "default": "./dist/controller/index.js"
26
23
  },
27
24
  "./author": {
28
- "development": "./src/author/index.ts",
29
25
  "types": "./dist/author/index.d.ts",
30
26
  "default": "./dist/author/index.js"
31
27
  },
32
28
  "./print": {
33
- "development": "./src/print/index.ts",
34
29
  "types": "./dist/print/index.d.ts",
35
30
  "default": "./dist/print/index.js"
36
31
  }
37
32
  },
38
33
  "files": [
39
34
  "dist",
40
- "src",
41
35
  "controller.js"
42
36
  ],
43
37
  "sideEffects": false,
@@ -46,16 +40,13 @@
46
40
  "dev": "vite",
47
41
  "clean": "rm -rf dist tsconfig.tsbuildinfo"
48
42
  },
49
- "dependencies": {
50
- "@pie-lib/styling-svelte": "0.1.2"
51
- },
52
- "peerDependencies": {
53
- "svelte": "^5.0.0"
54
- },
55
43
  "devDependencies": {
44
+ "@pie-lib/delivery-events-svelte": "0.1.0",
45
+ "@pie-lib/styling-svelte": "0.1.2",
56
46
  "@sveltejs/vite-plugin-svelte": "^7.0.0",
57
47
  "svelte": "^5.54.0",
58
48
  "typescript": "^5.9.3",
59
- "vite": "^8.0.1"
49
+ "vite": "^8.0.1",
50
+ "vitest": "^4.1.0"
60
51
  }
61
52
  }
@@ -1,41 +0,0 @@
1
- <svelte:options
2
- customElement={{
3
- shadow: 'none',
4
- props: {
5
- model: { type: 'Object' },
6
- },
7
- }}
8
- />
9
-
10
- <script lang="ts">
11
- // Keep the same prop shape expected by the wrapper.
12
- let { model = $bindable(), onChange }: { model?: any; onChange?: (model: any) => void } = $props();
13
- </script>
14
-
15
- <div class="mc-populated-blank-author-placeholder" role="status" aria-live="polite">
16
- <p class="title">Author view placeholder</p>
17
- <p class="body">This authoring interface is a placeholder and will be implemented later.</p>
18
- </div>
19
-
20
- <style>
21
- .mc-populated-blank-author-placeholder {
22
- max-width: 56rem;
23
- margin: 24px auto;
24
- padding: 20px;
25
- border: 1px dashed #cbd5e1;
26
- border-radius: 8px;
27
- background: #f8fafc;
28
- color: #334155;
29
- }
30
-
31
- .title {
32
- margin: 0 0 8px;
33
- font-size: 1rem;
34
- font-weight: 600;
35
- }
36
-
37
- .body {
38
- margin: 0;
39
- font-size: 0.9rem;
40
- }
41
- </style>
@@ -1,28 +0,0 @@
1
- import AuthorComponent from './Author.svelte';
2
-
3
- const SvelteElementClass = (AuthorComponent as any).element;
4
-
5
- class McPopulatedBlankAuthor extends SvelteElementClass {
6
- private _model: any = null;
7
- private _onChange: ((model: any) => void) | null = null;
8
-
9
- set model(m: any) {
10
- this._model = m;
11
- super.model = m;
12
- }
13
-
14
- get model() {
15
- return this._model;
16
- }
17
-
18
- set onChange(fn: (model: any) => void) {
19
- this._onChange = fn;
20
- (this as any).onChange = fn;
21
- }
22
-
23
- get onChange() {
24
- return this._onChange || (() => {});
25
- }
26
- }
27
-
28
- export default McPopulatedBlankAuthor;
@@ -1,91 +0,0 @@
1
- /** Token authors must include exactly once in `template` (HTML). */
2
- export const BLANK_TOKEN = '{{blank}}';
3
- /** Baseline values tuned to match historical CQT visuals; override via model.layoutLimits. */
4
- export const DEFAULT_LAYOUT_LIMITS = {
5
- blankStandaloneWidthRem: 7,
6
- blankWideWidthRem: 10,
7
- blankUnderlineWidthPx: 2,
8
- blankUnderlineWideWidthPx: 4,
9
- horizontalChoiceWidthPx: 170,
10
- horizontalChoiceWidthVw: 30,
11
- horizontalChoiceTileMinHeightRem: 11,
12
- horizontalChoiceContentMinHeightRem: 7.5,
13
- selectedImageMaxHeightRem: 4,
14
- choiceImageMaxHeightRem: 5,
15
- listenButtonSizePx: 128,
16
- stimulusMinColumnPx: 210,
17
- textMinColumnPx: 260,
18
- legendMaxChars: 120,
19
- choiceGroupGapRem: 0.5,
20
- choiceRowGapRem: 0.5,
21
- toggleButtonGapRem: 0.5,
22
- horizontalChoiceRadioTopMarginRem: 0.5,
23
- audioBlankTemplateMarginTopRem: 0.8,
24
- audioBlankTemplateMarginBottomRem: 1.8,
25
- audioInstructionsMaxWidthPx: 875,
26
- narrowHorizontalChoiceMaxWidthPx: 230,
27
- stimulusGridColumnGapRem: 2,
28
- stimulusGridRowGapRem: 0.7,
29
- stimulusSentenceMarginTopRem: 0.2,
30
- stimulusChoicesMarginTopRem: 0.9,
31
- tokenGridColumnGapRem: 1.5,
32
- tokenGridRowGapRem: 0.8,
33
- tokenTemplateMarginTopRem: 0.6,
34
- tokenInlineTokenGapRem: 0.35,
35
- tokenChoicesMarginTopRem: 0.2,
36
- inlineGridColumnGapRem: 1.5,
37
- inlineGridRowGapRem: 0.65,
38
- inlineTemplateMarginTopRem: 0.45,
39
- inlineChoicesMarginTopRem: 0.25,
40
- } as const;
41
-
42
- export default {
43
- model: {
44
- id: '1',
45
- element: 'mc-populated-blank',
46
- prompt: '<p><strong>Demo prompt</strong></p>',
47
- promptEnabled: true,
48
- interactionMode: 'populate_blank' as const,
49
- layoutProfile: '',
50
- choiceLayout: '',
51
- layoutProfilePresets: {},
52
- layoutLimits: { ...DEFAULT_LAYOUT_LIMITS },
53
- audioButtonSkin: null,
54
- audioButtonSkinsByLocale: {},
55
- uiText: {
56
- answerChoices: 'Answer choices',
57
- selectedAnswerInSentence: 'Selected answer in sentence',
58
- showCorrectAnswer: 'Show correct answer',
59
- hideCorrectAnswer: 'Hide correct answer',
60
- clickToEnableAutoplay: 'Click to enable audio autoplay',
61
- audioResourceUnavailable: 'Audio is enabled but no playable audio URL is configured.',
62
- transcriptLabel: 'Transcript',
63
- listenLabelEn: 'Listen',
64
- listenLabelEs: 'Escuchar',
65
- },
66
- sentenceHtml: '',
67
- template: `<p>The answer is ${BLANK_TOKEN}.</p>`,
68
- choiceMode: 'text' as const,
69
- choices: [
70
- { id: 'c1', labelHtml: '<p>Option A</p>' },
71
- { id: 'c2', labelHtml: '<p>Option B</p>' },
72
- { id: 'c3', labelHtml: '<p>Option C</p>' },
73
- ],
74
- correctChoiceId: 'c2',
75
- hasAudio: false,
76
- autoplayAudioEnabled: false,
77
- completeAudioEnabled: false,
78
- audioUrl: '',
79
- audioTranscript: '',
80
- showVisibleTranscript: false,
81
- locale: '',
82
- teacherInstructions: '',
83
- teacherInstructionsEnabled: false,
84
- },
85
- configuration: {
86
- prompt: {
87
- label: 'Prompt',
88
- settings: true,
89
- },
90
- },
91
- };