cognikit 0.1.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 (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +316 -0
  3. package/dist/core/BaseInteraction.d.ts +78 -0
  4. package/dist/core/index.d.ts +1 -0
  5. package/dist/core/utilities/ProgressTracker.d.ts +58 -0
  6. package/dist/core/utilities/ScoringTracker.d.ts +0 -0
  7. package/dist/core/utilities/index.d.ts +1 -0
  8. package/dist/engines/index.d.ts +2 -0
  9. package/dist/engines/tables/implementation/graders.d.ts +23 -0
  10. package/dist/engines/tables/implementation/index.d.ts +4 -0
  11. package/dist/engines/tables/implementation/parsers.d.ts +36 -0
  12. package/dist/engines/tables/implementation/utils.d.ts +18 -0
  13. package/dist/engines/tables/implementation/validators.d.ts +9 -0
  14. package/dist/engines/tables/index.d.ts +2 -0
  15. package/dist/engines/tables/script.d.ts +37 -0
  16. package/dist/engines/text/implementation/graders.d.ts +69 -0
  17. package/dist/engines/text/implementation/index.d.ts +3 -0
  18. package/dist/engines/text/implementation/parsers.d.ts +9 -0
  19. package/dist/engines/text/implementation/validators.d.ts +41 -0
  20. package/dist/engines/text/index.d.ts +2 -0
  21. package/dist/engines/text/script.d.ts +56 -0
  22. package/dist/index.d.ts +6 -0
  23. package/dist/index.js +4518 -0
  24. package/dist/index.js.map +7 -0
  25. package/dist/interactions/adjacency-table/index.d.ts +26 -0
  26. package/dist/interactions/categorize-the-words/index.d.ts +2 -0
  27. package/dist/interactions/categorize-the-words/sequential.d.ts +33 -0
  28. package/dist/interactions/categorize-the-words/static.d.ts +22 -0
  29. package/dist/interactions/classification-matrix/index.d.ts +31 -0
  30. package/dist/interactions/fill-blanks/index.d.ts +2 -0
  31. package/dist/interactions/fill-blanks/sequential.d.ts +32 -0
  32. package/dist/interactions/fill-blanks/static.d.ts +23 -0
  33. package/dist/interactions/index.d.ts +17 -0
  34. package/dist/interactions/list-recall/implementation/grader.d.ts +0 -0
  35. package/dist/interactions/list-recall/implementation/index.d.ts +0 -0
  36. package/dist/interactions/list-recall/implementation/parser.d.ts +0 -0
  37. package/dist/interactions/list-recall/implementation/validator.d.ts +0 -0
  38. package/dist/interactions/list-recall/index.d.ts +1 -0
  39. package/dist/interactions/list-recall/script.d.ts +25 -0
  40. package/dist/interactions/lookup-table/index.d.ts +26 -0
  41. package/dist/interactions/mark-the-words/index.d.ts +2 -0
  42. package/dist/interactions/mark-the-words/sequential.d.ts +34 -0
  43. package/dist/interactions/mark-the-words/static.d.ts +40 -0
  44. package/dist/interactions/mcq-mrq/implementation/grader.d.ts +20 -0
  45. package/dist/interactions/mcq-mrq/implementation/index.d.ts +3 -0
  46. package/dist/interactions/mcq-mrq/implementation/parser.d.ts +21 -0
  47. package/dist/interactions/mcq-mrq/implementation/validator.d.ts +17 -0
  48. package/dist/interactions/mcq-mrq/index.d.ts +2 -0
  49. package/dist/interactions/mcq-mrq/script.d.ts +37 -0
  50. package/dist/interactions/nary-choice-table/index.d.ts +28 -0
  51. package/dist/interactions/open-classification/index.d.ts +32 -0
  52. package/dist/interactions/rank-order/implementation/grader.d.ts +15 -0
  53. package/dist/interactions/rank-order/implementation/index.d.ts +3 -0
  54. package/dist/interactions/rank-order/implementation/parser.d.ts +25 -0
  55. package/dist/interactions/rank-order/implementation/validator.d.ts +3 -0
  56. package/dist/interactions/rank-order/index.d.ts +2 -0
  57. package/dist/interactions/rank-order/script.d.ts +39 -0
  58. package/dist/interactions/register-builtins.d.ts +1 -0
  59. package/dist/interactions/registry.d.ts +30 -0
  60. package/dist/interactions/sequential-classification/index.d.ts +49 -0
  61. package/dist/interactions/shared/association-implementation/grader.d.ts +3 -0
  62. package/dist/interactions/shared/association-implementation/index.d.ts +1 -0
  63. package/dist/interactions/shared/association-implementation/parser.d.ts +0 -0
  64. package/dist/interactions/shared/association-implementation/validator.d.ts +0 -0
  65. package/dist/interactions/shared/classification-implementation/grader.d.ts +3 -0
  66. package/dist/interactions/shared/classification-implementation/index.d.ts +1 -0
  67. package/dist/interactions/shared/classification-implementation/parser.d.ts +11 -0
  68. package/dist/interactions/shared/classification-implementation/validator.d.ts +3 -0
  69. package/dist/interactions/simultaneous-association/index.d.ts +34 -0
  70. package/dist/interactions/text-transformation/index.d.ts +2 -0
  71. package/dist/interactions/text-transformation/sequential.d.ts +37 -0
  72. package/dist/interactions/text-transformation/static.d.ts +47 -0
  73. package/dist/shared/assets.d.ts +6 -0
  74. package/dist/shared/dsl.d.ts +9 -0
  75. package/dist/shared/index.d.ts +4 -0
  76. package/dist/shared/managers/AnimationsManager.d.ts +55 -0
  77. package/dist/shared/managers/SoundManager.d.ts +78 -0
  78. package/dist/shared/managers/index.d.ts +3 -0
  79. package/dist/shared/types.d.ts +25 -0
  80. package/dist/shared/utils.d.ts +13 -0
  81. package/dist/shell/index.d.ts +1 -0
  82. package/dist/shell/simple-shell/index.d.ts +1 -0
  83. package/dist/shell/simple-shell/script.d.ts +61 -0
  84. package/dist/types/Assets.d.ts +40 -0
  85. package/dist/types/Data.d.ts +32 -0
  86. package/dist/types/Global.d.ts +24 -0
  87. package/dist/types/Grading.d.ts +8 -0
  88. package/dist/types/Input.d.ts +35 -0
  89. package/dist/types/Interactions.d.ts +28 -0
  90. package/dist/types/Tables.d.ts +40 -0
  91. package/dist/types/Text.d.ts +125 -0
  92. package/dist/types/index.d.ts +3 -0
  93. package/dist/ui/index.d.ts +2 -0
  94. package/dist/ui/input/color/color-picker.d.ts +37 -0
  95. package/dist/ui/input/color/index.d.ts +0 -0
  96. package/dist/ui/input/index.d.ts +1 -0
  97. package/dist/ui/input/input/index.d.ts +1 -0
  98. package/dist/ui/input/input/input.d.ts +22 -0
  99. package/dist/ui/input/letter/index.d.ts +0 -0
  100. package/dist/ui/input/letter/letter-picker.d.ts +27 -0
  101. package/dist/ui/misc/block.d.ts +14 -0
  102. package/dist/ui/misc/chip/chip.d.ts +46 -0
  103. package/dist/ui/misc/chip/index.d.ts +1 -0
  104. package/dist/ui/misc/dialog.d.ts +24 -0
  105. package/dist/ui/misc/index.d.ts +4 -0
  106. package/dist/ui/misc/media.d.ts +54 -0
  107. package/package.json +59 -0
@@ -0,0 +1,40 @@
1
+ import { Variant } from "../shared";
2
+ import { GradingState } from "./Grading";
3
+ export type BaseTableData = {
4
+ rows: string[];
5
+ cols: string[];
6
+ answerKey: Map<string, string[]>;
7
+ };
8
+ export type ValueTableData = {
9
+ rows: string[];
10
+ cols: string[];
11
+ answerKey: TableState;
12
+ };
13
+ export type CellValue = string | number | boolean | null;
14
+ export type CellKind = 'text' | 'number' | 'select' | 'radio' | 'checkbox';
15
+ export type TableState = Record<string, Record<string, CellValue>>;
16
+ export type CellGradingState = Record<string, Record<string, GradingState>>;
17
+ export interface TableConfiguration {
18
+ cols: string[];
19
+ rows: string[];
20
+ answerKey: Map<string, string[]> | TableState;
21
+ cellKind?: CellKind;
22
+ disabled?: (r: string, c: string) => boolean;
23
+ allowed?: (r: string, c: string) => CellValue[] | null;
24
+ preset?: 'lookup' | 'n-ary' | 'classification' | 'adjacency';
25
+ variant?: Variant;
26
+ shuffle?: boolean;
27
+ gradingState?: CellGradingState;
28
+ }
29
+ export type RowValues = {
30
+ selectedCols: string[];
31
+ values: Record<string, CellValue>;
32
+ };
33
+ export type TableCompletion = Record<string, RowValues>;
34
+ export type EduTableChangeDetail = {
35
+ row: string;
36
+ col: string;
37
+ value: CellValue;
38
+ state: TableState;
39
+ selection: TableCompletion;
40
+ };
@@ -0,0 +1,125 @@
1
+ import { InputElementData } from "./Input";
2
+ import { Variant } from "../shared/types";
3
+ import { GradingState } from "./Grading";
4
+ export type TextEngineRenderMode = 'highlight' | 'dnd' | 'blanks' | 'transformation' | 'classification';
5
+ export type TextEngineModality = 'base' | 'blanks' | 'classification';
6
+ export type TextEngineDataUnion = TextEngineBaseData | TextEngineBlanksData | TextEngineClassificationData;
7
+ export type TextEngineBaseDataTarget = {
8
+ words: string[];
9
+ startPos: number;
10
+ endPos: number;
11
+ };
12
+ export type TextEngineBlanksDataTarget = {
13
+ id: string;
14
+ expectedValue: InputElementData;
15
+ };
16
+ export type TextEngineClassificationDataTarget = {
17
+ category: string;
18
+ targets: TextEngineBaseDataTarget[];
19
+ };
20
+ interface TextEngineData {
21
+ type: TextEngineModality;
22
+ parts: string[];
23
+ targets: TextEngineBaseDataTarget[] | TextEngineBlanksDataTarget[] | TextEngineClassificationDataTarget[];
24
+ }
25
+ /**
26
+ * Words for HIGHLIGHT, DND Blanks and Transformation
27
+ *
28
+ * Example:
29
+ *
30
+ * The family will always [think] there's someone [destroying] their plans.
31
+ *
32
+ * { words: ["think"], startPos: 4, endPos: 4 },
33
+ * { words: ["destroying"], startPost: 7, endPos: 7 }
34
+ *
35
+ * if distractors, they are defined like "= [... | ...];"
36
+ *
37
+ */
38
+ export interface TextEngineBaseData extends TextEngineData {
39
+ type: 'base';
40
+ targets: TextEngineBaseDataTarget[];
41
+ distractors?: string[];
42
+ }
43
+ /**
44
+ * Fill Blanks Only - variations with [text, number, data, time, select, ..., mixed] input elements
45
+ *
46
+ * Example:
47
+ *
48
+ * I @tx(am) someone who doesn't like people who @tx(is) arrogant. I have told you that @nm(3) times already.
49
+ *
50
+ * { id: "generatedIdInParser', expectedValue: { value: ["am"] } },
51
+ * { id: "...". expectedValue: { value: ["is"] } },
52
+ * ...
53
+ *
54
+ * The elements will be a generated string. That is, the parser would take '@tx(...)', and create '<edu-input as="text" id="...'>...'.
55
+ * Then it would add the id (possibly using the hash helper function) and store the expectedValue object which would be the result of
56
+ * the parseText(code: string) helper function, passing the content taken from '@tx(...)' as a parameter.
57
+ *
58
+ */
59
+ export interface TextEngineBlanksData extends TextEngineData {
60
+ type: 'blanks';
61
+ targets: TextEngineBlanksDataTarget[];
62
+ }
63
+ /**
64
+ * Classification Only -- extension of base highlight variation
65
+ * Example:
66
+ *
67
+ * I am @cat(adjectives, tired) of @cat(verbs, seeing) everybody @cat(verbs, dance) @cat(adverbs, happily) while
68
+ * we are here all @cat(adjectives, sad)!
69
+ *
70
+ * { category: adjectives; targets: [ { words: ["tired"], startPos: 2, endPos: 2 }, { words: ["sad"], startPos: 13, endPos: 13 }] },
71
+ * ...
72
+ *
73
+ */
74
+ export interface TextEngineClassificationData extends TextEngineData {
75
+ type: 'classification';
76
+ targets: TextEngineClassificationDataTarget[];
77
+ }
78
+ export type TextEngineSequentialInteractionData = TextEngineDataUnion[];
79
+ /**
80
+ * Rendering mode for text engine
81
+ * - highlight: Click words to select/highlight
82
+ * - dnd: Drag and drop words/chips
83
+ * - blanks: Fill in input elements
84
+ * - transformation: Edit text in contenteditable areas
85
+ * - classification: Assign words to categories
86
+ */
87
+ /**
88
+ * Grading state for parts (word indices) or inputs (IDs)
89
+ */
90
+ export type TextEngineGradingState = Record<number | string, GradingState>;
91
+ /**
92
+ * Configuration for the EduText custom element
93
+ */
94
+ export interface TextEngineConfiguration {
95
+ data: TextEngineDataUnion;
96
+ mode: TextEngineRenderMode;
97
+ variant?: Variant;
98
+ gradingState?: TextEngineGradingState;
99
+ categories?: string[];
100
+ }
101
+ /**
102
+ * Change event detail for EduText element
103
+ */
104
+ export interface EduTextChangeDetail {
105
+ /** Current user data state */
106
+ userState: any;
107
+ /** Type of data (base/blanks/classification) */
108
+ dataType: TextEngineModality;
109
+ }
110
+ /**
111
+ * State tracking for EduText element
112
+ */
113
+ export interface TextEngineState {
114
+ /** For highlight: selected word indices */
115
+ selectedIndices?: Set<number>;
116
+ /** For DND: target index -> placed word */
117
+ dndPlacements?: Record<number, string>;
118
+ /** For blanks: input values by ID */
119
+ inputValues?: Record<string, any>;
120
+ /** For classification: word index -> category name */
121
+ wordCategories?: Record<number, string>;
122
+ /** For transformation: target index -> transformed words */
123
+ transformations?: Record<number, string[]>;
124
+ }
125
+ export {};
@@ -0,0 +1,3 @@
1
+ export * from "./Tables";
2
+ export * from "./Data";
3
+ export * from "./Grading";
@@ -0,0 +1,2 @@
1
+ export * from "./misc";
2
+ export * from "./input";
@@ -0,0 +1,37 @@
1
+ type ColorItem = {
2
+ name: string;
3
+ hex: string;
4
+ };
5
+ type PaletteMap = Record<string, ColorItem[]>;
6
+ export declare class ColorPicker extends HTMLElement {
7
+ static get observedAttributes(): string[];
8
+ private _palettes;
9
+ private _activePaletteKey;
10
+ private _value;
11
+ private $wrap;
12
+ private $swatch;
13
+ private $tooltip;
14
+ private $name;
15
+ private $chip;
16
+ private $grid;
17
+ private $tabs;
18
+ constructor();
19
+ get palettes(): PaletteMap;
20
+ set palettes(obj: PaletteMap);
21
+ get activePaletteKey(): string;
22
+ set activePaletteKey(k: string);
23
+ get value(): ColorItem;
24
+ set value(v: ColorItem);
25
+ attributeChangedCallback(name: string, _old: string | null, val: string | null): void;
26
+ connectedCallback(): void;
27
+ private render;
28
+ private renderTabs;
29
+ private renderGrid;
30
+ private updateHeader;
31
+ private updateSwatch;
32
+ private markSelected;
33
+ private toggle;
34
+ private close;
35
+ private dispatch;
36
+ }
37
+ export {};
File without changes
@@ -0,0 +1 @@
1
+ export * from "./input";
@@ -0,0 +1 @@
1
+ export { EduInput } from "./input";
@@ -0,0 +1,22 @@
1
+ import { Variant } from "../../../shared/types";
2
+ export declare class EduInput extends HTMLElement {
3
+ static get observedAttributes(): string[];
4
+ private $slot;
5
+ private controlEl;
6
+ private currentTag;
7
+ constructor();
8
+ connectedCallback(): void;
9
+ disconnectedCallback(): void;
10
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
11
+ private handleSlotChange;
12
+ private getTag;
13
+ private render;
14
+ private applyAttr;
15
+ private applyBoolAttr;
16
+ private syncAttributes;
17
+ private syncContent;
18
+ get variant(): Variant;
19
+ set variant(v: Variant);
20
+ get value(): string;
21
+ set value(v: string);
22
+ }
File without changes
@@ -0,0 +1,27 @@
1
+ type Mode = "simple" | "grid";
2
+ export declare class LetterPicker extends HTMLElement {
3
+ static get observedAttributes(): readonly ["value", "mode", "placeholder", "disabled"];
4
+ private _open;
5
+ private _display;
6
+ private _picker;
7
+ private _onDocClick;
8
+ private _onDocKey;
9
+ constructor();
10
+ get placeholder(): string | null;
11
+ set placeholder(v: string | null);
12
+ get mode(): Mode;
13
+ set mode(v: Mode);
14
+ get value(): string;
15
+ set value(v: string);
16
+ get disabled(): boolean;
17
+ set disabled(v: boolean);
18
+ connectedCallback(): void;
19
+ disconnectedCallback(): void;
20
+ attributeChangedCallback(name: string): void;
21
+ open(): void;
22
+ close(): void;
23
+ toggle(): void;
24
+ private _syncDisplay;
25
+ private _upgradeProperty;
26
+ }
27
+ export {};
@@ -0,0 +1,14 @@
1
+ import { Variant } from "../../shared";
2
+ export declare class EduBlock extends HTMLElement {
3
+ static get observedAttributes(): string[];
4
+ private $blockEl;
5
+ constructor();
6
+ connectedCallback(): void;
7
+ attributeChangedCallback(): void;
8
+ private sync;
9
+ getBlock(): HTMLDivElement;
10
+ get variant(): Variant;
11
+ set variant(v: Variant);
12
+ setAccentColor(newAccent: string): void;
13
+ removeSelf(): void;
14
+ }
@@ -0,0 +1,46 @@
1
+ import { Variant } from "../../../shared";
2
+ import { AssetType } from "../../../types/Assets";
3
+ import { NormalizedAssets } from "../../../types/Assets";
4
+ import { GradingState } from "../../../types/Grading";
5
+ /**
6
+ * The key is expected to be something like "@:name", where string[2:] is expected to be a reference to
7
+ * a key in assets.
8
+ */
9
+ export declare function setUpChipData(key: string, chip: EduChip, assets?: NormalizedAssets["assetsById"]): void;
10
+ export declare class EduChip extends HTMLElement {
11
+ static get observedAttributes(): string[];
12
+ private $chip;
13
+ private $prefix;
14
+ private $dragHandler;
15
+ private $dialog;
16
+ constructor();
17
+ connectedCallback(): void;
18
+ attributeChangedCallback(): void;
19
+ getButton(): HTMLButtonElement;
20
+ getPrefix(): HTMLSpanElement;
21
+ getDragHandler(): HTMLSpanElement;
22
+ private sync;
23
+ private updateContent;
24
+ get variant(): Variant;
25
+ set variant(v: Variant);
26
+ get prefix(): string;
27
+ set prefix(v: string);
28
+ get chipState(): GradingState;
29
+ set chipState(v: GradingState);
30
+ get draggable(): boolean;
31
+ set draggable(v: boolean);
32
+ get color(): string;
33
+ set color(v: string);
34
+ get colored(): boolean;
35
+ set colored(v: boolean);
36
+ set data(v: string);
37
+ set modality(v: AssetType);
38
+ get disabled(): boolean;
39
+ set disabled(v: boolean);
40
+ get selected(): boolean;
41
+ set selected(v: boolean);
42
+ get value(): string;
43
+ set value(v: string);
44
+ toggle(force?: boolean): boolean;
45
+ removeSelf(): void;
46
+ }
@@ -0,0 +1 @@
1
+ export * from "./chip";
@@ -0,0 +1,24 @@
1
+ /**
2
+ * EduDialog - Reusable modal dialog component
3
+ * Used for displaying rich content from chips and other interactive elements
4
+ */
5
+ export declare class EduDialog extends HTMLElement {
6
+ private $backdrop;
7
+ private $dialog;
8
+ private $title;
9
+ private $content;
10
+ private $footer;
11
+ private $closeBtn;
12
+ static get observedAttributes(): string[];
13
+ constructor();
14
+ connectedCallback(): void;
15
+ disconnectedCallback(): void;
16
+ attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
17
+ private handleEscape;
18
+ open(): void;
19
+ close(): void;
20
+ setContent(html: string): void;
21
+ get isOpen(): boolean;
22
+ get title(): string;
23
+ set title(value: string);
24
+ }
@@ -0,0 +1,4 @@
1
+ export * from "./block";
2
+ export * from "./chip";
3
+ export * from "./dialog";
4
+ export * from "./media";
@@ -0,0 +1,54 @@
1
+ import { NormalizedAssets } from "../../types/Assets";
2
+ /**
3
+ * setUpQuestionData - Configure content rendering with asset support
4
+ *
5
+ * Handles asset references (@:assetId) and renders content accordingly:
6
+ * - If dialog=true: Render button that opens content in dialog
7
+ * - If dialog=false/undefined: Render content inline with expand button
8
+ *
9
+ * @param questionString - Question text or asset reference (@:assetId)
10
+ * @param container - Container element to render into
11
+ * @param assets - Assets registry from interaction
12
+ */
13
+ export declare function setUpQuestionData(questionString: string, container: HTMLElement, assets?: NormalizedAssets["assetsById"]): void;
14
+ /**
15
+ * EduMedia - Universal media renderer component
16
+ *
17
+ * Renders different media types based on the 'type' attribute.
18
+ * Works with Asset interfaces from src/shared/assets.ts
19
+ *
20
+ * Attributes:
21
+ * - type: "image" | "video" | "audio" | "html" | "tts"
22
+ * - data: URL string for image/video/audio, or HTML content string
23
+ * - spec: Optional specifications (JSON string)
24
+ * - For image: { size?: "small" | "medium" | "large" }
25
+ * - For video: { span?: { from: string, to: string } }
26
+ * - For audio: { volume?: number, loop?: boolean }
27
+ *
28
+ * Usage:
29
+ * <edu-media type="image" data="https://example.com/photo.jpg" spec='{"size":"large"}'></edu-media>
30
+ * <edu-media type="video" data="/assets/video.mp4"></edu-media>
31
+ * <edu-media type="audio" data="/assets/sound.mp3" spec='{"volume":0.8,"loop":true}'></edu-media>
32
+ * <edu-media type="html" data="<p>Rich <strong>HTML</strong> content</p>"></edu-media>
33
+ */
34
+ export declare class EduMedia extends HTMLElement {
35
+ private mediaType;
36
+ private mediaData;
37
+ private mediaSpec;
38
+ private audioPlaying;
39
+ private currentAudioUrl;
40
+ static get observedAttributes(): string[];
41
+ constructor();
42
+ connectedCallback(): void;
43
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
44
+ disconnectedCallback(): void;
45
+ private render;
46
+ private renderImage;
47
+ private renderVideo;
48
+ private renderAudio;
49
+ private renderHtml;
50
+ /**
51
+ * Parse time string (mm:ss or hh:mm:ss) to seconds
52
+ */
53
+ private parseTime;
54
+ }
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "cognikit",
3
+ "version": "0.1.0",
4
+ "author": "Yahir Adolfo de los Santos Beras",
5
+ "license": "MIT",
6
+ "repository": "https://github.com/YerCodeWorld/cognikit.git",
7
+ "keywords": [
8
+ "psychometrics",
9
+ "quizzes",
10
+ "education",
11
+ "practice",
12
+ "tests",
13
+ "learning",
14
+ "psycology",
15
+ "cognitive"
16
+ ],
17
+ "homepage": "https://github.com/YerCodeWorld/cognikit.git#readme",
18
+ "bugs": "https://github.com/YerCodeWorld/cognikit.git/issues",
19
+ "type": "module",
20
+ "private": false,
21
+ "main": "./dist/index.js",
22
+ "module": "./dist/index.js",
23
+ "types": "./dist/index.d.ts",
24
+ "exports": {
25
+ ".": {
26
+ "import": "./dist/index.js",
27
+ "types": "./dist/index.d.ts"
28
+ }
29
+ },
30
+ "files": [
31
+ "dist",
32
+ "README.md",
33
+ "LICENSE"
34
+ ],
35
+ "scripts": {
36
+ "clean": "rimraf dist public-dist",
37
+ "types": "tsc -p tsconfig.json",
38
+ "build:lib": "esbuild src/index.ts --bundle --format=esm --platform=browser --outdir=dist --sourcemap --minify --external:react --external:react-dom --loader:.html=text --loader:.css=text",
39
+ "build:demo": "esbuild src/index.ts --bundle --format=esm --platform=browser --outfile=public/app.js --sourcemap --loader:.html=text --loader:.css=text",
40
+ "build": "pnpm clean && pnpm build:lib && pnpm types && pnpm build:demo",
41
+ "prepublishOnly": "pnpm build",
42
+ "dev:build": "esbuild src/index.ts --bundle --format=esm --platform=browser --outfile=public/app.js --sourcemap --watch=forever --loader:.html=text --loader:.css=text",
43
+ "dev:serve": "browser-sync start --server public --port 3008 --files 'public/**/*' --no-open --no-notify",
44
+ "dev": "npm-run-all --parallel dev:build dev:serve",
45
+ "dev:watch": "esbuild src/index.ts --bundle --format=esm --platform=browser --outfile=public/app.js --sourcemap --watch=forever --loader:.html=text --loader:.css=text & while inotifywait -r -e modify,create,delete,move src; do pnpm build:lib; done",
46
+ "serve": "serve public -l 3008"
47
+ },
48
+ "devDependencies": {
49
+ "browser-sync": "^3.0.4",
50
+ "esbuild": "^0.23.0",
51
+ "npm-run-all": "^4.1.5",
52
+ "rimraf": "^6.0.0",
53
+ "serve": "^14.2.3",
54
+ "typescript": "^5.6.3"
55
+ },
56
+ "dependencies": {
57
+ "js-yaml": "^4.1.1"
58
+ }
59
+ }