cognikit 0.1.2 → 1.0.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/README.md +309 -237
- package/dist/client.d.ts +2 -1
- package/dist/client.js +264 -193
- package/dist/client.js.map +3 -3
- package/dist/index.d.ts +2 -1
- package/dist/index.js +250 -179
- package/dist/index.js.map +3 -3
- package/dist/interactions/shared/classification-implementation/grader.d.ts +1 -1
- package/dist/shared/config.d.ts +10 -2
- package/dist/shell/simple-shell/script.d.ts +0 -1
- package/package.json +1 -1
- package/public/app.js +331 -140
- package/public/app.js.map +2 -2
- package/public/assets/DEMONSTRATION-1.jpeg +0 -0
- package/public/index.html +62 -16
package/public/app.js
CHANGED
|
@@ -2891,31 +2891,140 @@ function isAssetType(v) {
|
|
|
2891
2891
|
}
|
|
2892
2892
|
|
|
2893
2893
|
// src/shared/config.ts
|
|
2894
|
-
var
|
|
2895
|
-
"
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2894
|
+
var cognikitThemePresets = {
|
|
2895
|
+
"default-light": {
|
|
2896
|
+
"--edu-bg": "247 249 252",
|
|
2897
|
+
"--edu-card": "255 255 255",
|
|
2898
|
+
"--edu-ink": "31 41 55",
|
|
2899
|
+
"--edu-second-ink": "71 85 105",
|
|
2900
|
+
"--edu-third-ink": "100 116 139",
|
|
2901
|
+
"--edu-inverted-ink": "248 250 252",
|
|
2902
|
+
"--edu-success": "22 163 74",
|
|
2903
|
+
"--edu-error": "220 38 38",
|
|
2904
|
+
"--edu-warning": "255 222 33",
|
|
2905
|
+
"--edu-neutral": "14 165 233",
|
|
2906
|
+
"--edu-first-accent": "49 120 198",
|
|
2907
|
+
"--edu-second-accent": "245 158 11",
|
|
2908
|
+
"--edu-third-accent": "236 72 153",
|
|
2909
|
+
"--edu-border": "229 231 235",
|
|
2910
|
+
"--edu-muted": "243 244 246",
|
|
2911
|
+
"--edu-radius": "0.375rem",
|
|
2912
|
+
"--edu-shadow-color": "0 0 0",
|
|
2913
|
+
"--edu-pad": "1rem",
|
|
2914
|
+
"--edu-mar": "0"
|
|
2915
|
+
},
|
|
2916
|
+
"default-dark": {
|
|
2917
|
+
"--edu-bg": "15 23 42",
|
|
2918
|
+
"--edu-card": "30 41 59",
|
|
2919
|
+
"--edu-ink": "241 245 249",
|
|
2920
|
+
"--edu-second-ink": "203 213 225",
|
|
2921
|
+
"--edu-third-ink": "148 163 184",
|
|
2922
|
+
"--edu-inverted-ink": "15 23 42",
|
|
2923
|
+
"--edu-success": "74 222 128",
|
|
2924
|
+
"--edu-error": "248 113 113",
|
|
2925
|
+
"--edu-warning": "250 204 21",
|
|
2926
|
+
"--edu-neutral": "56 189 248",
|
|
2927
|
+
"--edu-first-accent": "96 165 250",
|
|
2928
|
+
"--edu-second-accent": "251 191 36",
|
|
2929
|
+
"--edu-third-accent": "244 114 182",
|
|
2930
|
+
"--edu-border": "71 85 105",
|
|
2931
|
+
"--edu-muted": "51 65 85",
|
|
2932
|
+
"--edu-radius": "0.375rem",
|
|
2933
|
+
"--edu-shadow-color": "2 6 23",
|
|
2934
|
+
"--edu-pad": "1rem",
|
|
2935
|
+
"--edu-mar": "0"
|
|
2936
|
+
},
|
|
2937
|
+
"ocean-light": {
|
|
2938
|
+
"--edu-bg": "239 246 255",
|
|
2939
|
+
"--edu-card": "255 255 255",
|
|
2940
|
+
"--edu-ink": "8 47 73",
|
|
2941
|
+
"--edu-second-ink": "14 116 144",
|
|
2942
|
+
"--edu-third-ink": "8 145 178",
|
|
2943
|
+
"--edu-inverted-ink": "239 246 255",
|
|
2944
|
+
"--edu-success": "5 150 105",
|
|
2945
|
+
"--edu-error": "225 29 72",
|
|
2946
|
+
"--edu-warning": "245 158 11",
|
|
2947
|
+
"--edu-neutral": "2 132 199",
|
|
2948
|
+
"--edu-first-accent": "6 182 212",
|
|
2949
|
+
"--edu-second-accent": "59 130 246",
|
|
2950
|
+
"--edu-third-accent": "14 165 233",
|
|
2951
|
+
"--edu-border": "186 230 253",
|
|
2952
|
+
"--edu-muted": "224 242 254",
|
|
2953
|
+
"--edu-radius": "0.5rem",
|
|
2954
|
+
"--edu-shadow-color": "8 47 73",
|
|
2955
|
+
"--edu-pad": "1rem",
|
|
2956
|
+
"--edu-mar": "0"
|
|
2957
|
+
},
|
|
2958
|
+
"ocean-dark": {
|
|
2959
|
+
"--edu-bg": "8 47 73",
|
|
2960
|
+
"--edu-card": "12 74 110",
|
|
2961
|
+
"--edu-ink": "236 254 255",
|
|
2962
|
+
"--edu-second-ink": "165 243 252",
|
|
2963
|
+
"--edu-third-ink": "103 232 249",
|
|
2964
|
+
"--edu-inverted-ink": "8 47 73",
|
|
2965
|
+
"--edu-success": "52 211 153",
|
|
2966
|
+
"--edu-error": "251 113 133",
|
|
2967
|
+
"--edu-warning": "251 191 36",
|
|
2968
|
+
"--edu-neutral": "34 211 238",
|
|
2969
|
+
"--edu-first-accent": "103 232 249",
|
|
2970
|
+
"--edu-second-accent": "56 189 248",
|
|
2971
|
+
"--edu-third-accent": "45 212 191",
|
|
2972
|
+
"--edu-border": "14 116 144",
|
|
2973
|
+
"--edu-muted": "14 116 144",
|
|
2974
|
+
"--edu-radius": "0.5rem",
|
|
2975
|
+
"--edu-shadow-color": "8 47 73",
|
|
2976
|
+
"--edu-pad": "1rem",
|
|
2977
|
+
"--edu-mar": "0"
|
|
2978
|
+
},
|
|
2979
|
+
"forest-light": {
|
|
2980
|
+
"--edu-bg": "240 253 244",
|
|
2981
|
+
"--edu-card": "255 255 255",
|
|
2982
|
+
"--edu-ink": "20 83 45",
|
|
2983
|
+
"--edu-second-ink": "22 101 52",
|
|
2984
|
+
"--edu-third-ink": "74 124 89",
|
|
2985
|
+
"--edu-inverted-ink": "240 253 244",
|
|
2986
|
+
"--edu-success": "22 163 74",
|
|
2987
|
+
"--edu-error": "220 38 38",
|
|
2988
|
+
"--edu-warning": "234 179 8",
|
|
2989
|
+
"--edu-neutral": "34 197 94",
|
|
2990
|
+
"--edu-first-accent": "34 197 94",
|
|
2991
|
+
"--edu-second-accent": "132 204 22",
|
|
2992
|
+
"--edu-third-accent": "16 185 129",
|
|
2993
|
+
"--edu-border": "187 247 208",
|
|
2994
|
+
"--edu-muted": "220 252 231",
|
|
2995
|
+
"--edu-radius": "0.5rem",
|
|
2996
|
+
"--edu-shadow-color": "20 83 45",
|
|
2997
|
+
"--edu-pad": "1rem",
|
|
2998
|
+
"--edu-mar": "0"
|
|
2999
|
+
},
|
|
3000
|
+
"forest-dark": {
|
|
3001
|
+
"--edu-bg": "20 83 45",
|
|
3002
|
+
"--edu-card": "22 101 52",
|
|
3003
|
+
"--edu-ink": "240 253 244",
|
|
3004
|
+
"--edu-second-ink": "187 247 208",
|
|
3005
|
+
"--edu-third-ink": "134 239 172",
|
|
3006
|
+
"--edu-inverted-ink": "20 83 45",
|
|
3007
|
+
"--edu-success": "74 222 128",
|
|
3008
|
+
"--edu-error": "248 113 113",
|
|
3009
|
+
"--edu-warning": "250 204 21",
|
|
3010
|
+
"--edu-neutral": "74 222 128",
|
|
3011
|
+
"--edu-first-accent": "134 239 172",
|
|
3012
|
+
"--edu-second-accent": "190 242 100",
|
|
3013
|
+
"--edu-third-accent": "52 211 153",
|
|
3014
|
+
"--edu-border": "34 197 94",
|
|
3015
|
+
"--edu-muted": "21 128 61",
|
|
3016
|
+
"--edu-radius": "0.5rem",
|
|
3017
|
+
"--edu-shadow-color": "20 83 45",
|
|
3018
|
+
"--edu-pad": "1rem",
|
|
3019
|
+
"--edu-mar": "0"
|
|
3020
|
+
}
|
|
2914
3021
|
};
|
|
3022
|
+
var defaultCognikitThemeVariables = cognikitThemePresets["default-light"];
|
|
2915
3023
|
var cognikitConfig = {
|
|
2916
3024
|
audioBaseUrl: null,
|
|
2917
3025
|
soundFiles: {},
|
|
2918
3026
|
injectThemeVariables: true,
|
|
3027
|
+
theme: null,
|
|
2919
3028
|
themeVariables: {}
|
|
2920
3029
|
};
|
|
2921
3030
|
var THEME_STYLE_ID = "cognikit-theme-variables";
|
|
@@ -2932,6 +3041,12 @@ function configureCognikit(config) {
|
|
|
2932
3041
|
if (config.injectThemeVariables !== void 0) {
|
|
2933
3042
|
cognikitConfig.injectThemeVariables = config.injectThemeVariables;
|
|
2934
3043
|
}
|
|
3044
|
+
if (config.theme !== void 0) {
|
|
3045
|
+
cognikitConfig.theme = config.theme;
|
|
3046
|
+
}
|
|
3047
|
+
if (config.themeVariables === null) {
|
|
3048
|
+
cognikitConfig.themeVariables = {};
|
|
3049
|
+
}
|
|
2935
3050
|
if (config.themeVariables) {
|
|
2936
3051
|
cognikitConfig.themeVariables = {
|
|
2937
3052
|
...cognikitConfig.themeVariables,
|
|
@@ -2943,28 +3058,54 @@ function configureCognikit(config) {
|
|
|
2943
3058
|
function getCognikitConfig() {
|
|
2944
3059
|
return cognikitConfig;
|
|
2945
3060
|
}
|
|
3061
|
+
function getCognikitThemePresets() {
|
|
3062
|
+
return cognikitThemePresets;
|
|
3063
|
+
}
|
|
3064
|
+
function resolveCognikitTheme(theme = cognikitConfig.theme, themeVariables = cognikitConfig.themeVariables) {
|
|
3065
|
+
const baseTheme = theme ? cognikitThemePresets[theme] : defaultCognikitThemeVariables;
|
|
3066
|
+
return {
|
|
3067
|
+
...baseTheme,
|
|
3068
|
+
...themeVariables
|
|
3069
|
+
};
|
|
3070
|
+
}
|
|
3071
|
+
function setCognikitTheme(theme, themeVariables) {
|
|
3072
|
+
cognikitConfig.theme = theme;
|
|
3073
|
+
if (themeVariables !== void 0) {
|
|
3074
|
+
cognikitConfig.themeVariables = { ...themeVariables };
|
|
3075
|
+
}
|
|
3076
|
+
ensureCognikitTheme();
|
|
3077
|
+
}
|
|
3078
|
+
function resetCognikitTheme() {
|
|
3079
|
+
cognikitConfig.theme = null;
|
|
3080
|
+
cognikitConfig.themeVariables = {};
|
|
3081
|
+
ensureCognikitTheme();
|
|
3082
|
+
}
|
|
2946
3083
|
function ensureCognikitTheme() {
|
|
2947
|
-
if (typeof document === "undefined"
|
|
3084
|
+
if (typeof document === "undefined") {
|
|
2948
3085
|
return;
|
|
2949
3086
|
}
|
|
2950
|
-
const root = document.documentElement;
|
|
2951
|
-
const computed = window.getComputedStyle(root);
|
|
2952
|
-
const nextTheme = {
|
|
2953
|
-
...defaultCognikitThemeVariables,
|
|
2954
|
-
...cognikitConfig.themeVariables
|
|
2955
|
-
};
|
|
2956
3087
|
let style = document.getElementById(THEME_STYLE_ID);
|
|
2957
3088
|
if (!style) {
|
|
2958
3089
|
style = document.createElement("style");
|
|
2959
3090
|
style.id = THEME_STYLE_ID;
|
|
2960
3091
|
document.head.appendChild(style);
|
|
2961
3092
|
}
|
|
2962
|
-
|
|
3093
|
+
if (!cognikitConfig.injectThemeVariables) {
|
|
3094
|
+
style.textContent = "";
|
|
3095
|
+
return;
|
|
3096
|
+
}
|
|
3097
|
+
const root = document.documentElement;
|
|
3098
|
+
const computed = window.getComputedStyle(root);
|
|
3099
|
+
const nextTheme = resolveCognikitTheme();
|
|
3100
|
+
const shouldApplyExplicitTheme = cognikitConfig.theme !== null || Object.keys(cognikitConfig.themeVariables).length > 0;
|
|
3101
|
+
if (shouldApplyExplicitTheme) {
|
|
3102
|
+
style.textContent = renderThemeCss(nextTheme);
|
|
3103
|
+
return;
|
|
3104
|
+
}
|
|
3105
|
+
const missingEntries = Object.entries(defaultCognikitThemeVariables).filter(([name]) => {
|
|
2963
3106
|
return computed.getPropertyValue(name).trim() === "";
|
|
2964
3107
|
});
|
|
2965
|
-
style.textContent = missingEntries.length === 0 ? "" :
|
|
2966
|
-
${missingEntries.map(([name, value]) => ` ${name}: ${value};`).join("\n")}
|
|
2967
|
-
}`;
|
|
3108
|
+
style.textContent = missingEntries.length === 0 ? "" : renderThemeCss(Object.fromEntries(missingEntries));
|
|
2968
3109
|
}
|
|
2969
3110
|
function resolveConfiguredSoundUrl(soundName, defaultFilename) {
|
|
2970
3111
|
const configured = cognikitConfig.soundFiles[soundName];
|
|
@@ -2994,6 +3135,11 @@ function resolveBaseUrl(baseUrl) {
|
|
|
2994
3135
|
function isAbsoluteUrl(url) {
|
|
2995
3136
|
return /^https?:\/\//.test(url);
|
|
2996
3137
|
}
|
|
3138
|
+
function renderThemeCss(themeVariables) {
|
|
3139
|
+
return `:root {
|
|
3140
|
+
${Object.entries(themeVariables).map(([name, value]) => ` ${name}: ${value};`).join("\n")}
|
|
3141
|
+
}`;
|
|
3142
|
+
}
|
|
2997
3143
|
|
|
2998
3144
|
// src/interactions/registry.ts
|
|
2999
3145
|
var interactionsRegistry = /* @__PURE__ */ new Map();
|
|
@@ -3683,6 +3829,7 @@ var styles_default = `/* ==================== BASE STYLES ==================== *
|
|
|
3683
3829
|
|
|
3684
3830
|
:host {
|
|
3685
3831
|
display: inline-block;
|
|
3832
|
+
container-type: size;
|
|
3686
3833
|
--chip-color: rgb(var(--edu-first-accent));
|
|
3687
3834
|
--chip-colored-color: #d1d1d1;
|
|
3688
3835
|
}
|
|
@@ -3690,20 +3837,36 @@ var styles_default = `/* ==================== BASE STYLES ==================== *
|
|
|
3690
3837
|
:host([colored]) {
|
|
3691
3838
|
& .chip-container { position: relative; }
|
|
3692
3839
|
|
|
3840
|
+
& .content-zone {
|
|
3841
|
+
border-color: color-mix(in srgb, var(--chip-colored-color) 55%, rgb(var(--edu-border)));
|
|
3842
|
+
background:
|
|
3843
|
+
linear-gradient(
|
|
3844
|
+
180deg,
|
|
3845
|
+
color-mix(in srgb, var(--chip-colored-color) 18%, rgb(var(--edu-card))) 0%,
|
|
3846
|
+
rgb(var(--edu-card)) 44%
|
|
3847
|
+
);
|
|
3848
|
+
box-shadow:
|
|
3849
|
+
inset 0 4px 0 color-mix(in srgb, var(--chip-colored-color) 85%, white 15%),
|
|
3850
|
+
0 0 0 1px color-mix(in srgb, var(--chip-colored-color) 22%, transparent);
|
|
3851
|
+
}
|
|
3852
|
+
|
|
3693
3853
|
& .chip-container::after {
|
|
3694
3854
|
content: '';
|
|
3695
3855
|
position: absolute;
|
|
3696
|
-
top:
|
|
3697
|
-
left:
|
|
3698
|
-
right:
|
|
3699
|
-
|
|
3856
|
+
top: 0.25rem;
|
|
3857
|
+
left: 0.25rem;
|
|
3858
|
+
right: 0.25rem;
|
|
3859
|
+
height: 0.4rem;
|
|
3700
3860
|
border-radius: 10px;
|
|
3701
|
-
background: var(--chip-colored-color);
|
|
3702
|
-
opacity: 0.
|
|
3703
|
-
mix-blend-mode: multiply;
|
|
3861
|
+
background: color-mix(in srgb, var(--chip-colored-color) 90%, white 10%);
|
|
3862
|
+
opacity: 0.95;
|
|
3704
3863
|
z-index: 2;
|
|
3705
3864
|
pointer-events: none;
|
|
3706
3865
|
}
|
|
3866
|
+
|
|
3867
|
+
& .prefix {
|
|
3868
|
+
color: color-mix(in srgb, var(--chip-colored-color) 82%, rgb(var(--edu-ink)));
|
|
3869
|
+
}
|
|
3707
3870
|
}
|
|
3708
3871
|
|
|
3709
3872
|
:host([aria-disabled]) {
|
|
@@ -3716,7 +3879,8 @@ var styles_default = `/* ==================== BASE STYLES ==================== *
|
|
|
3716
3879
|
flex-direction: column;
|
|
3717
3880
|
align-items: center;
|
|
3718
3881
|
position: relative;
|
|
3719
|
-
width: 100%;
|
|
3882
|
+
width: 100%;
|
|
3883
|
+
height: 100%;
|
|
3720
3884
|
}
|
|
3721
3885
|
|
|
3722
3886
|
::slotted(img.chip-image) {
|
|
@@ -3750,8 +3914,9 @@ var styles_default = `/* ==================== BASE STYLES ==================== *
|
|
|
3750
3914
|
border: 1px solid rgb(var(--edu-border));
|
|
3751
3915
|
padding: 0.5rem 1rem;
|
|
3752
3916
|
cursor: pointer;
|
|
3753
|
-
font-size:
|
|
3917
|
+
font-size: clamp(0.95rem, min(12cqi, 24cqb), 2.35rem);
|
|
3754
3918
|
font-weight: 500;
|
|
3919
|
+
line-height: 1.2;
|
|
3755
3920
|
text-align: center;
|
|
3756
3921
|
transition: all 0.2s ease;
|
|
3757
3922
|
user-select: none;
|
|
@@ -3789,6 +3954,7 @@ var styles_default = `/* ==================== BASE STYLES ==================== *
|
|
|
3789
3954
|
align-items: center;
|
|
3790
3955
|
justify-content: center;
|
|
3791
3956
|
min-width: 0;
|
|
3957
|
+
overflow-wrap: anywhere;
|
|
3792
3958
|
}
|
|
3793
3959
|
|
|
3794
3960
|
/* ==================== MODALITY ACTION BUTTON ==================== */
|
|
@@ -3976,38 +4142,45 @@ var styles_default = `/* ==================== BASE STYLES ==================== *
|
|
|
3976
4142
|
/* ==================== VARIANT: PLAYFUL ==================== */
|
|
3977
4143
|
|
|
3978
4144
|
:host([variant="playful"]) .content-zone {
|
|
3979
|
-
background:
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
border:
|
|
3983
|
-
|
|
4145
|
+
background:
|
|
4146
|
+
linear-gradient(135deg, rgb(var(--edu-card)), rgb(var(--edu-muted) / 0.9));
|
|
4147
|
+
color: rgb(var(--edu-ink));
|
|
4148
|
+
border-radius: 14px;
|
|
4149
|
+
border: 2px solid rgb(var(--edu-border));
|
|
4150
|
+
box-shadow: 0 6px 14px rgb(var(--edu-shadow-color) / 0.12);
|
|
3984
4151
|
font-weight: 600;
|
|
3985
4152
|
}
|
|
3986
4153
|
|
|
3987
4154
|
:host([variant="playful"]) .content-zone:hover:not([aria-disabled="true"]) {
|
|
3988
|
-
|
|
4155
|
+
transform: translateY(-2px) rotate(-1deg);
|
|
4156
|
+
border-color: rgb(var(--edu-first-accent) / 0.5);
|
|
4157
|
+
box-shadow: 0 10px 22px rgb(var(--edu-shadow-color) / 0.18);
|
|
3989
4158
|
}
|
|
3990
4159
|
|
|
3991
4160
|
:host([variant="playful"]) .content-zone:active:not([aria-disabled="true"]) {
|
|
4161
|
+
transform: translateY(0) rotate(0deg);
|
|
3992
4162
|
}
|
|
3993
4163
|
|
|
3994
4164
|
:host([variant="playful"]) .prefix {
|
|
3995
|
-
color:
|
|
3996
|
-
opacity:
|
|
4165
|
+
color: var(--chip-color);
|
|
4166
|
+
opacity: 1;
|
|
3997
4167
|
}
|
|
3998
4168
|
|
|
3999
4169
|
:host([variant="playful"]) .modality-action {
|
|
4000
|
-
background:
|
|
4001
|
-
color: var(--
|
|
4170
|
+
background: var(--chip-color);
|
|
4171
|
+
color: rgb(var(--edu-inverted-ink));
|
|
4002
4172
|
}
|
|
4003
4173
|
|
|
4004
4174
|
:host([variant="playful"][selected]) .content-zone {
|
|
4005
|
-
|
|
4175
|
+
background:
|
|
4176
|
+
linear-gradient(135deg, rgb(var(--edu-card)), rgb(var(--edu-muted)));
|
|
4177
|
+
border-color: var(--chip-color);
|
|
4178
|
+
box-shadow: 0 0 0 3px rgb(var(--chip-color) / 0.22), 0 10px 22px rgb(var(--edu-shadow-color) / 0.16);
|
|
4006
4179
|
}
|
|
4007
4180
|
|
|
4008
4181
|
:host([variant="playful"]) ::slotted(img.chip-image) {
|
|
4009
|
-
border:
|
|
4010
|
-
border-radius:
|
|
4182
|
+
border: 3px solid rgb(var(--edu-border) / 0.6);
|
|
4183
|
+
border-radius: 8px;
|
|
4011
4184
|
}
|
|
4012
4185
|
|
|
4013
4186
|
|
|
@@ -4072,7 +4245,6 @@ var styles_default = `/* ==================== BASE STYLES ==================== *
|
|
|
4072
4245
|
border-radius: 2px;
|
|
4073
4246
|
background: rgb(var(--edu-card));
|
|
4074
4247
|
color: rgb(var(--edu-ink));
|
|
4075
|
-
font-size: 0.95rem;
|
|
4076
4248
|
letter-spacing: 0.5px;
|
|
4077
4249
|
}
|
|
4078
4250
|
|
|
@@ -4100,82 +4272,88 @@ var styles_default = `/* ==================== BASE STYLES ==================== *
|
|
|
4100
4272
|
/* ==================== VARIANT: MINIMAL ==================== */
|
|
4101
4273
|
|
|
4102
4274
|
:host([variant="minimal"]) .content-zone {
|
|
4103
|
-
background:
|
|
4275
|
+
background: transparent;
|
|
4104
4276
|
border: 1px solid rgb(var(--edu-border));
|
|
4105
|
-
border-radius:
|
|
4106
|
-
color: rgb(var(--edu-ink));
|
|
4107
|
-
padding: 0.
|
|
4108
|
-
font-size: 0.9rem;
|
|
4277
|
+
border-radius: 10px;
|
|
4278
|
+
color: rgb(var(--edu-second-ink));
|
|
4279
|
+
padding: 0.45rem 0.85rem;
|
|
4109
4280
|
}
|
|
4110
4281
|
|
|
4111
4282
|
:host([variant="minimal"]) .content-zone:hover:not([aria-disabled="true"]) {
|
|
4112
|
-
|
|
4113
|
-
|
|
4283
|
+
background: rgb(var(--edu-card) / 0.8);
|
|
4284
|
+
color: rgb(var(--edu-ink));
|
|
4285
|
+
border-color: rgb(var(--edu-first-accent) / 0.35);
|
|
4286
|
+
box-shadow: 0 4px 12px rgba(var(--edu-shadow-color), 0.08);
|
|
4114
4287
|
}
|
|
4115
4288
|
|
|
4116
4289
|
:host([variant="minimal"][selected]) .content-zone {
|
|
4117
4290
|
border-color: var(--chip-color);
|
|
4118
4291
|
background: rgba(var(--chip-color), 0.08);
|
|
4292
|
+
color: rgb(var(--edu-ink));
|
|
4119
4293
|
}
|
|
4120
4294
|
|
|
4121
4295
|
/* ==================== VARIANT: GLASS ==================== */
|
|
4122
4296
|
|
|
4123
4297
|
:host([variant="glass"]) .content-zone {
|
|
4124
|
-
background: rgb(var(--edu-card));
|
|
4125
|
-
|
|
4126
|
-
border
|
|
4298
|
+
background: rgb(var(--edu-card) / 0.65);
|
|
4299
|
+
backdrop-filter: blur(10px);
|
|
4300
|
+
border: 1px solid rgb(var(--edu-border) / 0.6);
|
|
4301
|
+
border-radius: 14px;
|
|
4127
4302
|
color: rgb(var(--edu-ink));
|
|
4128
|
-
padding: 0.5rem
|
|
4129
|
-
font-weight:
|
|
4130
|
-
letter-spacing:
|
|
4131
|
-
|
|
4303
|
+
padding: 0.5rem 1rem;
|
|
4304
|
+
font-weight: 600;
|
|
4305
|
+
letter-spacing: 0.03em;
|
|
4306
|
+
box-shadow: inset 0 1px 0 rgb(var(--edu-card) / 0.8), 0 8px 20px rgb(var(--edu-shadow-color) / 0.12);
|
|
4132
4307
|
}
|
|
4133
4308
|
|
|
4134
4309
|
:host([variant="glass"]) .content-zone:hover:not([aria-disabled="true"]) {
|
|
4135
|
-
background: var(--
|
|
4136
|
-
color: rgb(var(--edu-
|
|
4137
|
-
|
|
4310
|
+
background: rgb(var(--edu-card) / 0.78);
|
|
4311
|
+
border-color: rgb(var(--edu-first-accent) / 0.45);
|
|
4312
|
+
box-shadow: inset 0 1px 0 rgb(var(--edu-card) / 0.9), 0 12px 24px rgb(var(--edu-shadow-color) / 0.16);
|
|
4138
4313
|
}
|
|
4139
4314
|
|
|
4140
4315
|
:host([variant="glass"]) .content-zone:active:not([aria-disabled="true"]) {
|
|
4141
|
-
background:
|
|
4316
|
+
background: rgb(var(--edu-card) / 0.88);
|
|
4142
4317
|
}
|
|
4143
4318
|
|
|
4144
4319
|
:host([variant="glass"]) .prefix {
|
|
4145
|
-
font-weight:
|
|
4320
|
+
font-weight: 700;
|
|
4321
|
+
color: rgb(var(--edu-first-accent));
|
|
4146
4322
|
}
|
|
4147
4323
|
|
|
4148
4324
|
:host([variant="glass"][selected]) .content-zone {
|
|
4149
4325
|
background: rgba(var(--chip-color), 0.15);
|
|
4150
4326
|
border-color: var(--chip-color);
|
|
4151
|
-
box-shadow: 0 0 0 2px rgba(var(--chip-color), 0.
|
|
4327
|
+
box-shadow: 0 0 0 2px rgba(var(--chip-color), 0.24), inset 0 1px 0 rgb(var(--edu-card) / 0.85);
|
|
4152
4328
|
}
|
|
4153
4329
|
|
|
4154
4330
|
/* ==================== VARIANT: CARD ==================== */
|
|
4155
4331
|
|
|
4156
4332
|
:host([variant="card"]) .content-zone {
|
|
4157
|
-
background:
|
|
4158
|
-
border:
|
|
4159
|
-
border-radius:
|
|
4333
|
+
background: rgb(var(--edu-card));
|
|
4334
|
+
border: 1px solid rgb(var(--edu-border));
|
|
4335
|
+
border-radius: 12px;
|
|
4160
4336
|
color: rgb(var(--edu-ink));
|
|
4337
|
+
box-shadow: 0 8px 18px rgb(var(--edu-shadow-color) / 0.1);
|
|
4161
4338
|
}
|
|
4162
4339
|
|
|
4163
4340
|
:host([variant="card"]) .content-zone:hover:not([aria-disabled="true"]) {
|
|
4164
|
-
background: rgb(var(--edu-muted));
|
|
4165
|
-
border-color: var(--
|
|
4341
|
+
background: linear-gradient(180deg, rgb(var(--edu-card)), rgb(var(--edu-muted) / 0.8));
|
|
4342
|
+
border-color: rgb(var(--edu-first-accent) / 0.35);
|
|
4343
|
+
box-shadow: 0 12px 24px rgb(var(--edu-shadow-color) / 0.14);
|
|
4166
4344
|
}
|
|
4167
4345
|
|
|
4168
4346
|
:host([variant="card"]) .content-zone:active:not([aria-disabled="true"]) {
|
|
4169
|
-
|
|
4347
|
+
transform: translateY(1px);
|
|
4170
4348
|
}
|
|
4171
4349
|
|
|
4172
4350
|
:host([variant="card"]) .prefix {
|
|
4173
|
-
color: var(--
|
|
4351
|
+
color: rgb(var(--edu-third-ink));
|
|
4174
4352
|
}
|
|
4175
4353
|
|
|
4176
4354
|
:host([variant="card"][selected]) .content-zone {
|
|
4177
4355
|
border-color: var(--chip-color);
|
|
4178
|
-
box-shadow: 0 0 0 3px rgba(var(--chip-color), 0.
|
|
4356
|
+
box-shadow: 0 0 0 3px rgba(var(--chip-color), 0.18), 0 12px 24px rgb(var(--edu-shadow-color) / 0.12);
|
|
4179
4357
|
}
|
|
4180
4358
|
|
|
4181
4359
|
/* ==================== VARIANT: SIGN ==================== */
|
|
@@ -4185,9 +4363,8 @@ var styles_default = `/* ==================== BASE STYLES ==================== *
|
|
|
4185
4363
|
border-radius: 0;
|
|
4186
4364
|
color: rgb(var(--edu-ink));
|
|
4187
4365
|
padding: 0.5rem 1.2rem;
|
|
4188
|
-
font-size: 0.9rem;
|
|
4189
4366
|
font-weight: bold;
|
|
4190
|
-
transform: skewX(-
|
|
4367
|
+
transform: skewX(-3deg);
|
|
4191
4368
|
text-transform: uppercase;
|
|
4192
4369
|
letter-spacing: 0.2rem;
|
|
4193
4370
|
}
|
|
@@ -4713,16 +4890,17 @@ var HTML2 = `
|
|
|
4713
4890
|
}
|
|
4714
4891
|
|
|
4715
4892
|
.block[variant="playful"] {
|
|
4716
|
-
background: var(--
|
|
4717
|
-
border:
|
|
4718
|
-
color: rgb(var(--edu-
|
|
4893
|
+
background: linear-gradient(135deg, rgb(var(--edu-card)), rgb(var(--edu-muted) / 0.92));
|
|
4894
|
+
border: 2px solid rgb(var(--edu-border));
|
|
4895
|
+
color: rgb(var(--edu-ink));
|
|
4719
4896
|
border-radius: 16px;
|
|
4720
|
-
box-shadow:
|
|
4897
|
+
box-shadow: 0 6px 14px rgb(var(--edu-shadow-color) / 0.12);
|
|
4721
4898
|
}
|
|
4722
4899
|
|
|
4723
4900
|
.block[variant="playful"]:hover {
|
|
4724
|
-
transform: translateY(-2px) rotate(-
|
|
4725
|
-
|
|
4901
|
+
transform: translateY(-2px) rotate(-1deg);
|
|
4902
|
+
border-color: color-mix(in srgb, var(--accent-color) 38%, rgb(var(--edu-border)));
|
|
4903
|
+
box-shadow: 0 10px 22px rgb(var(--edu-shadow-color) / 0.18);
|
|
4726
4904
|
}
|
|
4727
4905
|
|
|
4728
4906
|
.block[variant="outline"] {
|
|
@@ -4753,40 +4931,45 @@ var HTML2 = `
|
|
|
4753
4931
|
}
|
|
4754
4932
|
|
|
4755
4933
|
.block[variant="minimal"] {
|
|
4756
|
-
background:
|
|
4757
|
-
color: rgb(var(--edu-ink));
|
|
4934
|
+
background: transparent;
|
|
4935
|
+
color: rgb(var(--edu-second-ink));
|
|
4758
4936
|
border: 1px solid rgb(var(--edu-border));
|
|
4759
|
-
border-radius:
|
|
4937
|
+
border-radius: 10px;
|
|
4760
4938
|
padding: 0.75rem;
|
|
4761
4939
|
}
|
|
4762
4940
|
|
|
4763
4941
|
.block[variant="minimal"]:hover {
|
|
4764
|
-
|
|
4765
|
-
|
|
4942
|
+
background: rgb(var(--edu-card) / 0.8);
|
|
4943
|
+
color: rgb(var(--edu-ink));
|
|
4944
|
+
border-color: rgb(var(--edu-first-accent) / 0.35);
|
|
4945
|
+
box-shadow: 0 4px 12px rgba(var(--edu-shadow-color), 0.08);
|
|
4766
4946
|
}
|
|
4767
4947
|
|
|
4768
4948
|
.block[variant="glass"] {
|
|
4769
4949
|
background: rgba(var(--edu-card), 0.7);
|
|
4770
4950
|
backdrop-filter: blur(10px);
|
|
4771
|
-
border:
|
|
4772
|
-
border-radius:
|
|
4951
|
+
border: 1px solid rgba(var(--edu-border), 0.45);
|
|
4952
|
+
border-radius: 14px;
|
|
4953
|
+
box-shadow: inset 0 1px 0 rgb(var(--edu-card) / 0.85), 0 8px 20px rgba(var(--edu-shadow-color), 0.12);
|
|
4773
4954
|
}
|
|
4774
4955
|
|
|
4775
4956
|
.block[variant="glass"]:hover {
|
|
4776
|
-
background: rgba(var(--edu-card), 0.
|
|
4777
|
-
border-color: rgba(var(--edu-first-accent), 0.
|
|
4957
|
+
background: rgba(var(--edu-card), 0.82);
|
|
4958
|
+
border-color: rgba(var(--edu-first-accent), 0.4);
|
|
4959
|
+
box-shadow: inset 0 1px 0 rgb(var(--edu-card) / 0.95), 0 12px 24px rgba(var(--edu-shadow-color), 0.16);
|
|
4778
4960
|
}
|
|
4779
4961
|
|
|
4780
4962
|
.block[variant="card"] {
|
|
4781
4963
|
background: rgb(var(--edu-card));
|
|
4782
|
-
border:
|
|
4783
|
-
border-radius:
|
|
4784
|
-
box-shadow: 0
|
|
4964
|
+
border: 1px solid rgb(var(--edu-border));
|
|
4965
|
+
border-radius: 12px;
|
|
4966
|
+
box-shadow: 0 8px 18px rgba(var(--edu-shadow-color), 0.1);
|
|
4785
4967
|
}
|
|
4786
4968
|
|
|
4787
4969
|
.block[variant="card"]:hover {
|
|
4788
|
-
|
|
4789
|
-
|
|
4970
|
+
background: linear-gradient(180deg, rgb(var(--edu-card)), rgb(var(--edu-muted) / 0.8));
|
|
4971
|
+
border-color: rgb(var(--edu-first-accent) / 0.35);
|
|
4972
|
+
box-shadow: 0 12px 24px rgba(var(--edu-shadow-color), 0.14);
|
|
4790
4973
|
}
|
|
4791
4974
|
|
|
4792
4975
|
.block[variant="sign"] {
|
|
@@ -4802,7 +4985,7 @@ var HTML2 = `
|
|
|
4802
4985
|
|
|
4803
4986
|
.block[variant="sign"]:hover {
|
|
4804
4987
|
border-color: var(--accent-color);
|
|
4805
|
-
background: var(
|
|
4988
|
+
background: rgb(var(--edu-muted));
|
|
4806
4989
|
}
|
|
4807
4990
|
|
|
4808
4991
|
.block[variant="empty"] {
|
|
@@ -4866,7 +5049,7 @@ var EduBlock = class extends HTMLElement {
|
|
|
4866
5049
|
if (!customElements.get("edu-block")) customElements.define("edu-block", EduBlock);
|
|
4867
5050
|
|
|
4868
5051
|
// src/interactions/shared/classification-implementation/grader.ts
|
|
4869
|
-
function classificationGrader(correctData, userData, els) {
|
|
5052
|
+
function classificationGrader(correctData, userData, els, distractors) {
|
|
4870
5053
|
let correctCount = 0;
|
|
4871
5054
|
let totalCount = 0;
|
|
4872
5055
|
correctData.forEach((category) => {
|
|
@@ -4880,6 +5063,17 @@ function classificationGrader(correctData, userData, els) {
|
|
|
4880
5063
|
} else el.chipState = "wrong";
|
|
4881
5064
|
});
|
|
4882
5065
|
});
|
|
5066
|
+
if (distractors) {
|
|
5067
|
+
distractors.forEach((distractor) => {
|
|
5068
|
+
totalCount++;
|
|
5069
|
+
const userCategory = userData.get(distractor);
|
|
5070
|
+
const el = els.querySelector(`[data-label="${distractor}"]`);
|
|
5071
|
+
if (userCategory === "Invalid") {
|
|
5072
|
+
correctCount++;
|
|
5073
|
+
el.chipState = "correct";
|
|
5074
|
+
} else el.chipState = "wrong";
|
|
5075
|
+
});
|
|
5076
|
+
}
|
|
4883
5077
|
const score = totalCount > 0 ? Math.round(correctCount / totalCount * 100) : 0;
|
|
4884
5078
|
return { score, correct: correctCount, total: totalCount };
|
|
4885
5079
|
}
|
|
@@ -4889,10 +5083,10 @@ var OpenClassification = class extends BaseInteraction {
|
|
|
4889
5083
|
constructor(data, config, assets) {
|
|
4890
5084
|
super(data, config, assets);
|
|
4891
5085
|
this.interactionMechanic = "static";
|
|
4892
|
-
this.categories = [
|
|
5086
|
+
this.categories = [];
|
|
4893
5087
|
this.allItems = [];
|
|
4894
5088
|
this.categoryColors = [
|
|
4895
|
-
"#
|
|
5089
|
+
"#6366f1",
|
|
4896
5090
|
"#3b82f6",
|
|
4897
5091
|
"#10b981",
|
|
4898
5092
|
"#f59e0b",
|
|
@@ -4901,7 +5095,7 @@ var OpenClassification = class extends BaseInteraction {
|
|
|
4901
5095
|
"#ec4899",
|
|
4902
5096
|
"#14b8a6",
|
|
4903
5097
|
"#f97316",
|
|
4904
|
-
"#
|
|
5098
|
+
"#94a3b8"
|
|
4905
5099
|
];
|
|
4906
5100
|
this.currentColor = this.categoryColors[0];
|
|
4907
5101
|
this.data.categories.forEach(({ label, items }) => {
|
|
@@ -4911,6 +5105,7 @@ var OpenClassification = class extends BaseInteraction {
|
|
|
4911
5105
|
this.currentCategory = this.categories[0];
|
|
4912
5106
|
if (this.data.distractors) {
|
|
4913
5107
|
this.allItems.push(...this.data.distractors);
|
|
5108
|
+
this.categories.push("Invalid");
|
|
4914
5109
|
}
|
|
4915
5110
|
this.allItems = shuffle(this.allItems);
|
|
4916
5111
|
this.categorized = /* @__PURE__ */ new Map();
|
|
@@ -4932,7 +5127,7 @@ var OpenClassification = class extends BaseInteraction {
|
|
|
4932
5127
|
this.innerHTML = `
|
|
4933
5128
|
<style>
|
|
4934
5129
|
open-classification {
|
|
4935
|
-
--current-color: #
|
|
5130
|
+
--current-color: #aa94b8;
|
|
4936
5131
|
display: flex;
|
|
4937
5132
|
width: 100%;
|
|
4938
5133
|
height: 100%;
|
|
@@ -4977,7 +5172,7 @@ var OpenClassification = class extends BaseInteraction {
|
|
|
4977
5172
|
.items-container {
|
|
4978
5173
|
display: grid;
|
|
4979
5174
|
grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr));
|
|
4980
|
-
grid-auto-rows: minmax(
|
|
5175
|
+
grid-auto-rows: minmax(clamp(56px, 12cqh, 88px), 1fr);
|
|
4981
5176
|
gap: clamp(0.5rem, min(1.6cqw, 1.6cqh), 1rem);
|
|
4982
5177
|
padding: clamp(0.5rem, min(1.6cqw, 1.6cqh), 1.25rem);
|
|
4983
5178
|
background: rgb(var(--edu-muted));
|
|
@@ -5178,14 +5373,13 @@ var OpenClassification = class extends BaseInteraction {
|
|
|
5178
5373
|
// ==================== GRADING ====================
|
|
5179
5374
|
submit() {
|
|
5180
5375
|
super.submit();
|
|
5181
|
-
const result = classificationGrader(this.data.categories, this.categorized, this);
|
|
5376
|
+
const result = classificationGrader(this.data.categories, this.categorized, this, this.data.distractors);
|
|
5182
5377
|
console.log(`Classification Score: ${result.score.toFixed(1)}% (${result.correct}/${result.total} correct)`);
|
|
5183
5378
|
this.dispatchEvent(new CustomEvent("interaction:graded", {
|
|
5184
5379
|
detail: { result },
|
|
5185
5380
|
bubbles: true,
|
|
5186
5381
|
composed: true
|
|
5187
5382
|
}));
|
|
5188
|
-
this.setAttribute("inert", "");
|
|
5189
5383
|
}
|
|
5190
5384
|
// ==================== RESET ====================
|
|
5191
5385
|
reset() {
|
|
@@ -5330,6 +5524,7 @@ var SequentialClassification = class extends BaseInteraction {
|
|
|
5330
5524
|
gap: clamp(0.5rem, min(1.5cqw, 1.5cqh), 1rem);
|
|
5331
5525
|
overflow-y: auto;
|
|
5332
5526
|
overflow-x: hidden;
|
|
5527
|
+
scrollbar-gutter: stable;
|
|
5333
5528
|
align-content: stretch;
|
|
5334
5529
|
padding: clamp(0.25rem, min(1cqw, 1cqh), 0.5rem);
|
|
5335
5530
|
min-height: 0;
|
|
@@ -5373,11 +5568,17 @@ var SequentialClassification = class extends BaseInteraction {
|
|
|
5373
5568
|
|
|
5374
5569
|
edu-chip {
|
|
5375
5570
|
position: absolute;
|
|
5571
|
+
width: clamp(160px, 20cqw, 280px);
|
|
5572
|
+
max-width: calc(100% - 0.5rem);
|
|
5376
5573
|
user-select: none;
|
|
5377
5574
|
touch-action: none;
|
|
5378
5575
|
transition: transform 0.2s ease;
|
|
5379
5576
|
}
|
|
5380
5577
|
|
|
5578
|
+
edu-chip::part(content-zone) {
|
|
5579
|
+
min-height: clamp(56px, 10cqh, 88px);
|
|
5580
|
+
}
|
|
5581
|
+
|
|
5381
5582
|
edu-chip:hover {
|
|
5382
5583
|
transform: scale(1.05);
|
|
5383
5584
|
}
|
|
@@ -6168,9 +6369,9 @@ var MCQ = class extends BaseInteraction {
|
|
|
6168
6369
|
this.data.data.forEach((q) => {
|
|
6169
6370
|
this.userAnswers[q.question] = [];
|
|
6170
6371
|
if (this.config.shuffle) {
|
|
6171
|
-
this.shuffledOptions.set(q.question, shuffle([...q.options]));
|
|
6372
|
+
this.shuffledOptions.set(q.question, shuffle([...q.options, ...q.correctOptions]));
|
|
6172
6373
|
} else {
|
|
6173
|
-
this.shuffledOptions.set(q.question, [...q.options]);
|
|
6374
|
+
this.shuffledOptions.set(q.question, [...q.options, ...q.correctOptions]);
|
|
6174
6375
|
}
|
|
6175
6376
|
});
|
|
6176
6377
|
this.variant = this.config.variant;
|
|
@@ -6243,17 +6444,17 @@ var MCQ = class extends BaseInteraction {
|
|
|
6243
6444
|
flex-shrink: 0;
|
|
6244
6445
|
display: flex;
|
|
6245
6446
|
flex-direction: column;
|
|
6246
|
-
min-height: clamp(
|
|
6247
|
-
max-height: clamp(
|
|
6447
|
+
min-height: clamp(88px, 16cqh, 160px);
|
|
6448
|
+
max-height: clamp(132px, 32cqh, 280px);
|
|
6248
6449
|
overflow: hidden;
|
|
6249
6450
|
}
|
|
6250
6451
|
|
|
6251
6452
|
.question-text {
|
|
6252
6453
|
padding: 0;
|
|
6253
|
-
font-size: clamp(
|
|
6454
|
+
font-size: clamp(1.05rem, 2.6cqh, 1.45rem);
|
|
6254
6455
|
font-weight: 600;
|
|
6255
6456
|
color: rgb(var(--edu-ink));
|
|
6256
|
-
line-height: 1.
|
|
6457
|
+
line-height: 1.35;
|
|
6257
6458
|
}
|
|
6258
6459
|
|
|
6259
6460
|
.divider {
|
|
@@ -6317,7 +6518,7 @@ var MCQ = class extends BaseInteraction {
|
|
|
6317
6518
|
border: none;
|
|
6318
6519
|
padding: clamp(0.5rem, min(1.6cqw, 1.6cqh), 1rem);
|
|
6319
6520
|
height: 100%;
|
|
6320
|
-
max-height: clamp(
|
|
6521
|
+
max-height: clamp(132px, 32cqh, 280px);
|
|
6321
6522
|
overflow: auto;
|
|
6322
6523
|
align-items: center;
|
|
6323
6524
|
justify-content: flex-start;
|
|
@@ -6689,7 +6890,7 @@ var SimultaneousAssociation = class extends BaseInteraction {
|
|
|
6689
6890
|
.items-list {
|
|
6690
6891
|
display: grid;
|
|
6691
6892
|
grid-template-columns: 1fr;
|
|
6692
|
-
grid-auto-rows: minmax(
|
|
6893
|
+
grid-auto-rows: minmax(clamp(56px, 12cqh, 88px), 1fr);
|
|
6693
6894
|
gap: clamp(0.35rem, min(1.2cqw, 1.2cqh), 0.75rem);
|
|
6694
6895
|
min-height: 0;
|
|
6695
6896
|
height: 100%;
|
|
@@ -6911,8 +7112,8 @@ var ListRecall = class extends BaseInteraction {
|
|
|
6911
7112
|
.chips-container {
|
|
6912
7113
|
flex: 1;
|
|
6913
7114
|
display: grid;
|
|
6914
|
-
grid-template-columns:
|
|
6915
|
-
grid-auto-rows: minmax(
|
|
7115
|
+
grid-template-columns: 1fr 1fr;
|
|
7116
|
+
grid-auto-rows: minmax(56px, auto);
|
|
6916
7117
|
gap: clamp(0.4rem, min(1.4cqw, 1.4cqh), 0.75rem);
|
|
6917
7118
|
padding: clamp(0.5rem, min(1.6cqw, 1.6cqh), 1rem);
|
|
6918
7119
|
border: 2px dashed rgb(var(--edu-border));
|
|
@@ -12363,7 +12564,7 @@ var RankOrder = class extends BaseInteraction {
|
|
|
12363
12564
|
// Scalability constants
|
|
12364
12565
|
this.MAX_ITEMS = 10;
|
|
12365
12566
|
// Cognitive Ceiling
|
|
12366
|
-
this.MIN_ITEM_HEIGHT =
|
|
12567
|
+
this.MIN_ITEM_HEIGHT = 56;
|
|
12367
12568
|
if (!this.isValid || !this.data || !this.config) return;
|
|
12368
12569
|
const items = this.data.items;
|
|
12369
12570
|
this.data.items = items;
|
|
@@ -13177,13 +13378,6 @@ var simple_shell_default = `<header part='header'>
|
|
|
13177
13378
|
<div class="radio-nav" part="radio-nav"></div>
|
|
13178
13379
|
<div class="action-buttons">
|
|
13179
13380
|
<button class="check-btn" type="button" part="check">Check</button>
|
|
13180
|
-
|
|
13181
|
-
<button class="see-answers-btn btn" title="See answers" part="see-answers">
|
|
13182
|
-
<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
13183
|
-
<path d="M2 12s3.5-6 10-6 10 6 10 6-3.5 6-10 6-10-6-10-6Z"/>
|
|
13184
|
-
<circle cx="12" cy="12" r="3"/>
|
|
13185
|
-
</svg>
|
|
13186
|
-
</button>
|
|
13187
13381
|
<button class="retry-btn btn" title="Retry" part="retry">
|
|
13188
13382
|
<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
|
|
13189
13383
|
<path d="M17 2v4h-4"/>
|
|
@@ -13205,7 +13399,7 @@ var simple_shell_default = `<header part='header'>
|
|
|
13205
13399
|
`;
|
|
13206
13400
|
|
|
13207
13401
|
// src/shell/simple-shell/styles.css
|
|
13208
|
-
var styles_default4 = ':host {\n display: flex;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n container-type: size;\n}\n\n.edu-hidden { display: none !important; }\n\n.wrap {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n color: rgb(var(--edu-ink));\n background: rgb(var(--edu-bg));\n overflow: hidden;\n box-sizing: border-box;\n}\n\nheader {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: clamp(0.2rem, 0.7cqh, 0.4rem);\n border-bottom: 1px solid rgb(var(--edu-border));\n flex-shrink: 0;\n gap: clamp(0.25rem, 1cqw, 0.5rem);\n height: clamp(38px, 7cqh, 46px);\n min-height: clamp(38px, 7cqh, 46px);\n}\n\n.prompt-container {\n display: flex;\n min-width: 0;\n gap: clamp(0.25rem, 1cqw, 0.5rem);\n align-items: center;\n flex: 1;\n}\n\n.title {\n flex: 1;\n min-width: 0;\n padding: 0;\n font-size: clamp(0.85rem, 2cqh, 1.05rem);\n font-weight: 700;\n line-height: 1.2;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.timer {\n padding: 0;\n font-size: clamp(0.75rem, 1.6cqh, 0.9rem);\n font-weight: 600;\n color: rgb(var(--edu-second-ink));\n font-variant-numeric: tabular-nums;\n cursor: pointer;\n}\n\n.timer[data-warning="true"] {\n color: rgb(var(--edu-warning));\n}\n\n.timer[data-danger="true"] {\n color: rgb(var(--edu-error));\n}\n\n.content {\n flex: 1;\n overflow: hidden;\n min-height: 0;\n padding: clamp(0.5rem, min(2cqw, 2cqh), 1rem);\n box-sizing: border-box;\n position: relative;\n display: flex;\n}\n\n.screen {\n display: flex;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n animation: fadeIn 1s ease;\n flex: 1;\n min-height: 0;\n}\n\n.screen[data-screen="interaction"] {\n justify-content: stretch;\n align-items: stretch;\n}\n\n.screen:not([data-screen="interaction"]) {\n justify-content: center;\n align-items: center;\n}\n\n.screen[data-screen="interaction"] ::slotted(*) {\n width: 100%;\n height: 100%;\n min-height: 0;\n display: block;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.error-content,\n.attempts-message,\n.score-display,\n.timer-display {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n height: 100%;\n color: rgb(var(--edu-ink));\n}\n\n.timer-display .timer {\n font-size: 10rem !important;\n color: rgb(var(--edu-ink)) !important;\n}\n\n.error-content {\n color: rgb(var(--edu-error));\n}\n\n.attempts-message {\n font-weight: 600;\n font-size: 1.25rem;\n}\n\nfooter {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n /* padding: clamp(0.3rem, 0.8cqh, 0.6rem);*/ \n gap: clamp(0.25rem, 0.8cqh, 0.5rem);\n flex-shrink: 0;\n height: clamp(20px, 9cqh, 62px);\n min-height: clamp(50px, 9cqh, 62px);\n}\n\n.progress-container {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: clamp(0.25rem, 1cqw, 0.6rem);\n width: 100%;\n}\n\n.progress-bar {\n flex: 1;\n height: clamp(8px, 1.6cqh, 12px);\n appearance: none;\n -webkit-appearance: none;\n border: none;\n}\n\n.progress-bar::-webkit-progress-bar {\n background-color: rgb(var(--edu-muted));\n border-radius: 10px;\n}\n\n.progress-bar::-webkit-progress-value {\n background: rgb(var(--edu-first-accent));\n border-radius: 10px;\n transition: width 0.3s ease, background 0.3s ease;\n}\n\n.progress-bar::-moz-progress-bar {\n background: rgb(var(--edu-first-accent));\n border-radius: 10px;\n transition: width 0.3s ease, background 0.3s ease;\n}\n\n/* Score-based progress bar coloring */\n.progress-bar.score-fail::-webkit-progress-value {\n background: rgb(var(--edu-error)) !important;\n}\n\n.progress-bar.score-fail::-moz-progress-bar {\n background: rgb(var(--edu-error)) !important;\n}\n\n.progress-bar.score-low::-webkit-progress-value {\n background: rgb(var(--edu-warning)) !important;\n}\n\n.progress-bar.score-low::-moz-progress-bar {\n background: rgb(var(--edu-warning)) !important;\n}\n\n.progress-bar.score-mid::-webkit-progress-value {\n background: rgb(139, 195, 74) !important; /* Light green */\n}\n\n.progress-bar.score-mid::-moz-progress-bar {\n background: rgb(139, 195, 74) !important;\n}\n\n.progress-bar.score-high::-webkit-progress-value {\n background: rgb(var(--edu-success)) !important;\n}\n\n.progress-bar.score-high::-moz-progress-bar {\n background: rgb(var(--edu-success)) !important;\n}\n\n.progress-icon-wrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n max-width: 24px;\n max-height: 24px;\n position: absolute;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n pointer-events: none;\n transition: left 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;\n background-color: rgb(var(--edu-first-accent));\n border-radius: 50px;\n box-shadow: 0 0 10px 5px rgb(var(--edu-first-accent));\n padding: 0;\n}\n\n/* Score-based icon coloring */\n.progress-icon-wrapper.score-fail {\n background-color: rgb(var(--edu-error));\n box-shadow: 0 0 10px 5px rgb(var(--edu-error));\n}\n\n.progress-icon-wrapper.score-low {\n background-color: rgb(var(--edu-warning));\n box-shadow: 0 0 10px 5px rgb(var(--edu-warning));\n}\n\n.progress-icon-wrapper.score-mid {\n background-color: rgba(139, 195, 74, 0.8);\n box-shadow: 0 0 10px 5px rgba(139, 195, 74, 0.8);\n}\n\n.progress-icon-wrapper.score-high {\n background-color: rgb(var(--edu-success));\n box-shadow: 0 0 10px 5px rgb(var(--edu-success));\n}\n\n.progress-icon {\n width: clamp(20px, 3.2cqh, 30px);\n height: clamp(20px, 3.2cqh, 30px);\n}\n\n.progress-counter {\n font-size: clamp(0.7rem, 1.4cqh, 0.85rem);\n font-weight: 600;\n color: rgb(var(--edu-second-ink));\n min-width: 3rem;\n text-align: right;\n flex-shrink: 0;\n}\n\n.action-buttons {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n}\n\n.check-btn {\n padding: clamp(0.35rem, 1cqh, 0.6rem) clamp(1rem, 2.6cqw, 1.6rem);\n font-size: clamp(0.8rem, 1.6cqh, 0.95rem);\n font-weight: 600;\n cursor: pointer;\n border: none;\n border-radius: var(--edu-radius);\n background: rgb(var(--edu-first-accent));\n color: rgb(var(--edu-inverted-ink));\n transition: all 0.2s ease;\n}\n\n.check-btn:hover:not(:disabled) {\n background: rgb(var(--edu-first-accent) / 0.9);\n transform: translateY(-2px) scale(1.02);\n box-shadow: 0 4px 12px rgb(var(--edu-first-accent) / 0.3);\n}\n\n.check-btn:active:not(:disabled) {\n transform: translateY(0) scale(0.98);\n box-shadow: 0 2px 4px rgb(var(--edu-first-accent) / 0.2);\n}\n\n.check-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.btn {\n padding: clamp(0.25rem, 0.8cqh, 0.4rem);\n background: transparent;\n border: 2px solid rgb(var(--edu-border));\n border-radius: var(--edu-radius);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.btn:hover { \n background: rgb(var(--edu-muted));\n border-color: rgb(var(--edu-first-accent));\n transform: translateY(-2px) scale(1.05);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n}\n\n.btn:active {\n transform: translateY(0) scale(0.95);\n box-shadow: none;\n}\n\n.radio-nav {\n display: none;\n flex-wrap: wrap;\n gap: 0.5rem;\n align-items: center;\n justify-content: center;\n}\n\n.radio-nav[data-active="true"] {\n display: flex;\n}\n\n@media (max-width: 640px) {\n .radio-nav {\n gap: 0.35rem;\n }\n\n .radio-nav label {\n padding: 0.4rem 0.75rem;\n font-size: 0.875rem;\n }\n}\n\n.radio-nav input { display: none; }\n\n.radio-nav label {\n cursor: pointer;\n transition: all 0.3s ease;\n padding: 0.5rem 1rem;\n border-radius: var(--edu-radius);\n border: 1px solid rgb(var(--edu-border));\n background: rgb(var(--edu-card));\n color: rgb(var(--edu-ink));\n font-weight: 500;\n}\n\n.radio-nav label:hover {\n border-color: rgb(var(--edu-first-accent));\n}\n\n.radio-nav input:checked + label {\n background: rgb(var(--edu-first-accent));\n color: rgb(var(--edu-inverted-ink));\n border-color: rgb(var(--edu-first-accent));\n}\n\n.actions {\n display: flex;\n gap: 0.5rem;\n}\n\n.utils-container {\n display: flex;\n justify-content: space-between;\n}\n\n:host([variant="empty"]) {\n & .wrap { background: transparent; border: none; }\n & header { border-bottom: none; }\n\n & .title {\n padding-bottom: 5px;\n max-width: fit-content;\n border-bottom: 5px solid rgb(var(--edu-ink));\n }\n\n & .timer { }\n\n & .check-btn {\n background: transparent;\n color: rgb(var(--edu-ink));\n border: 2px solid rgb(var(--edu-ink));\n border-radius: 0;\n }\n\n & .check-btn:hover:not(:disabled) {\n color: rgb(var(--edu-inverted-ink));\n background: rgb(var(--edu-ink));\n border-color: rgb(var(--edu-ink));\n }\n\n & .progress-bar::-webkit-progress-bar {background: transparent}\n & .progress-bar::-webkit-progress-value {background: rgb(var(--edu-ink))}\n\n & .radio-nav label {\n background: transparent;\n border: 2px solid rgb(var(--edu-ink));\n border-radius: 0;\n }\n\n & .radio-nav input:checked + label {\n background: rgb(var(--edu-ink));\n color: rgb(var(--edu-inverted-ink));\n }\n\n & .radio-nav label:hover { background-color: rgb(var(--edu-first-accent)) }\n}\n\n:host([variant="minimal"]) {\n & .wrap {\n border: 1px solid rgb(var(--edu-border));\n border-radius: 6px;\n }\n\n & .timer {\n font-size: 0.95rem;\n }\n\n & .check-btn {\n border-radius: 4px;\n }\n\n & footer {\n border-top: 1px solid rgb(var(--edu-border));\n }\n\n & .progress-bar {\n height: 1px;\n }\n\n & .progress-bar::-webkit-progress-bar {\n background-color: rgb(var(--edu-muted));\n }\n\n & .progress-bar::-webkit-progress-value {\n background-color: rgb(var(--edu-ink));\n }\n\n & .radio-nav label {\n border-radius: 4px;\n }\n}\n\n:host([variant="elegant"]) {\n & .wrap {\n border-radius: 10px;\n box-shadow: 0 10px 30px rgba(var(--edu-shadow-color), 0.15);\n }\n\n & .timer {\n font-family: georgia, serif;\n font-style: italic;\n font-size: 1.1rem;\n }\n\n & .check-btn {\n border-radius: 8px;\n font-size: 1rem;\n }\n\n & footer {\n border-top: 1px solid rgb(var(--edu-border) / 0.5);\n padding: 1.25rem;\n }\n\n & .progress-bar {\n height: 4px;\n }\n\n & .progress-bar::-webkit-progress-value {\n background: linear-gradient(90deg, rgb(var(--edu-first-accent)), rgb(var(--edu-first-accent) / 0.6));\n }\n\n & .radio-nav label {\n font-family: georgia, serif;\n border: none;\n border-bottom: 2px solid transparent;\n background: transparent;\n padding: 0.5rem 1rem;\n }\n\n & .radio-nav input:checked + label {\n color: rgb(var(--edu-first-accent));\n border-bottom: 2px solid rgb(var(--edu-first-accent));\n background: transparent;\n font-style: italic;\n }\n\n & label {\n font-family: georgia, serif;\n padding: 0.5rem 1rem;\n }\n}\n\n:host([variant="playful"]) {\n & .wrap {\n color: rgb(var(--edu-first-accent));\n border-radius: 14px;\n border: 2px dashed rgb(var(--edu-border));\n }\n\n & .timer {\n font-weight: 700;\n font-size: 1.2rem;\n }\n\n & .check-btn {\n border-radius: 12px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n }\n\n & .check-btn:hover:not(:disabled) {\n transform: translateY(-2px) rotate(-1deg);\n }\n\n & footer {\n border-top: 2px dashed rgb(var(--edu-border));\n }\n\n & .progress-bar {\n height: 20px;\n }\n\n & .progress-bar::-webkit-progress-bar {\n background-color: rgb(var(--edu-warning) / 0.3);\n border-radius: 20px;\n }\n\n & .progress-bar::-webkit-progress-value {\n background: rgb(var(--edu-first-accent));\n border-radius: 20px;\n border: 3px solid rgb(var(--edu-warning) / 0.3);\n }\n\n & .radio-nav label {\n background: rgb(var(--edu-muted));\n border-radius: 50px;\n font-weight: 700;\n }\n\n & .radio-nav label:hover {\n transform: scale(1.1) rotate(-2deg);\n }\n\n & .radio-nav input:checked + label {\n background: rgb(var(--edu-first-accent));\n color: rgb(var(--edu-inverted-ink));\n box-shadow: 0 5px 15px rgb(var(--edu-first-accent) / 0.4);\n }\n}\n\n:host([variant="glass"]) {\n & .wrap {\n background: rgba(var(--edu-card), 0.7);\n backdrop-filter: blur(10px);\n border: 1px solid rgba(var(--edu-border), 0.35);\n border-radius: 12px;\n }\n\n & .check-btn {\n background: rgba(var(--edu-first-accent), 0.9);\n backdrop-filter: blur(5px);\n border-radius: 10px;\n }\n\n & .check-btn:hover:not(:disabled) {\n background: rgba(var(--edu-first-accent), 1);\n }\n\n & footer {\n border-top: 1px solid rgba(var(--edu-border), 0.35);\n }\n\n & .progress-bar::-webkit-progress-bar {\n background: rgba(var(--edu-card), 0.3);\n backdrop-filter: blur(5px);\n }\n\n & .progress-bar::-webkit-progress-value {\n background: rgba(var(--edu-first-accent), 0.7);\n }\n\n & .radio-nav label {\n background: rgba(var(--edu-card), 0.5);\n backdrop-filter: blur(5px);\n border: 1px solid rgba(var(--edu-border), 0.35);\n }\n\n & .radio-nav input:checked + label {\n background: rgba(var(--edu-first-accent), 0.8);\n border-color: rgb(var(--edu-first-accent));\n }\n}\n\n:host([variant="letter"]) {\n & .wrap {\n border: 1px solid rgb(var(--edu-border));\n font-family: georgia, serif;\n box-shadow: inset 0 0 0 1px rgba(var(--edu-shadow-color), 0.1);\n border-radius: 4px;\n }\n\n & .timer {\n font-family: georgia, serif;\n letter-spacing: 0.5px;\n }\n\n & .check-btn {\n font-family: georgia, serif;\n border-radius: 2px;\n font-size: 0.95rem;\n letter-spacing: 0.5px;\n }\n\n & footer {\n border-top: 1px solid rgb(var(--edu-border));\n padding: 1rem 1.5rem;\n }\n\n & .progress-bar::-webkit-progress-bar {\n background-color: rgb(var(--edu-muted));\n box-shadow: inset 0 0 0 1px rgba(var(--edu-shadow-color), 0.05);\n }\n\n & .radio-nav label {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n background: rgb(var(--edu-third-ink));\n color: rgb(var(--edu-inverted-ink));\n font-weight: 900;\n border-radius: 4px;\n }\n\n & .radio-nav input:checked + label {\n background: rgb(var(--edu-first-accent));\n transform: translateY(-4px);\n }\n}\n\n:host([variant="sign"]) {\n & .wrap {\n border-radius: 6px;\n text-transform: uppercase;\n letter-spacing: 1px;\n border: 2px solid rgb(var(--edu-border));\n }\n\n & .timer {\n text-transform: uppercase;\n letter-spacing: 1.5px;\n font-weight: 800;\n font-size: 0.9rem;\n }\n\n & .check-btn {\n text-transform: uppercase;\n letter-spacing: 1.5px;\n font-weight: 800;\n font-size: 0.9rem;\n border-radius: 4px;\n margin: 0.85rem 2.5rem;\n }\n\n & footer {\n border-top: 2px solid rgb(var(--edu-border));\n }\n\n & .title {\n text-transform: uppercase;\n }\n\n & .progress-bar {\n height: 24px;\n }\n\n & .progress-bar::-webkit-progress-bar {\n background: rgb(var(--edu-third-ink));\n border: 2px solid rgb(var(--edu-third-ink));\n }\n\n & .progress-bar::-webkit-progress-value {\n background: rgb(var(--edu-second-accent));\n }\n\n & .radio-nav label {\n background: rgb(var(--edu-third-ink));\n color: rgb(var(--edu-second-accent));\n border-left: 4px solid rgb(var(--edu-second-accent));\n text-transform: uppercase;\n font-size: 0.8rem;\n font-weight: 700;\n }\n\n & .radio-nav input:checked + label {\n background: rgb(var(--edu-second-accent));\n color: rgb(var(--edu-third-ink));\n border-left-color: rgb(var(--edu-third-ink));\n }\n}\n\n:host([variant="outline"]) {\n & .wrap {\n color: rgb(var(--edu-inverted-ink));\n background: transparent;\n border-width: 0 1px 2px 1px;\n border-style: solid;\n border-color: rgb(var(--edu-first-accent));\n background: rgb(var(--edu-bg) / 0.1);\n }\n\n & header { background: rgb(var(--edu-first-accent)); color: rgb(var(--edu-inverted-ink)) }\n & .timer { color: rgb(var(--edu-inverted-ink)) }\n\n & footer {\n border-top: none;\n padding: 0;\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n }\n\n & .check-btn {\n font-size: 100%;\n font-weight: 700;\n border: none;\n border-radius: 0;\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n color: rgb(var(--edu-inverted-ink));\n background: rgb(var(--edu-first-accent));\n margin: 0;\n padding: 1rem;\n text-transform: uppercase;\n }\n\n & .check-btn:hover:not(:disabled) {\n background: rgb(var(--edu-first-accent) / 0.9);\n box-shadow: 0 4px 12px rgb(var(--edu-first-accent) / 0.3);\n transform: none;\n }\n\n & .radio-nav label {\n border: 2px solid rgb(var(--edu-first-accent));\n border-radius: 0;\n background: transparent;\n color: rgb(var(--edu-ink));\n }\n\n & .radio-nav label:hover {\n background: rgb(var(--edu-first-accent));\n color: rgb(var(--edu-inverted-ink));\n }\n\n & .radio-nav input:checked + label {\n background: rgb(var(--edu-first-accent));\n color: rgb(var(--edu-inverted-ink));\n }\n}\n\n:host([variant="card"]) {\n & .wrap {\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(var(--edu-shadow-color), 0.1), 0 2px 4px rgba(var(--edu-shadow-color), 0.05);\n }\n\n & .check-btn {\n border-radius: 6px;\n box-shadow: 0 2px 4px rgba(var(--edu-shadow-color), 0.1);\n }\n\n & .check-btn:hover:not(:disabled) {\n box-shadow: 0 4px 8px rgba(var(--edu-first-accent), 0.2);\n }\n\n & footer {\n border-top: 1px solid rgb(var(--edu-border));\n }\n\n & .radio-nav label {\n border-radius: 6px;\n box-shadow: 0 2px 4px rgba(var(--edu-shadow-color), 0.1);\n }\n\n & .radio-nav input:checked + label {\n box-shadow: 0 4px 8px rgba(var(--edu-first-accent), 0.2);\n }\n}\n';
|
|
13402
|
+
var styles_default4 = ':host {\n display: flex;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n container-type: size;\n}\n\n.edu-hidden { display: none !important; }\n\n.wrap {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n color: rgb(var(--edu-ink));\n background: rgb(var(--edu-bg));\n overflow: hidden;\n box-sizing: border-box;\n}\n\nheader {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: clamp(0.2rem, 0.7cqh, 0.4rem);\n border-bottom: 1px solid rgb(var(--edu-border));\n flex-shrink: 0;\n gap: clamp(0.25rem, 1cqw, 0.5rem);\n height: clamp(38px, 7cqh, 46px);\n min-height: clamp(38px, 7cqh, 46px);\n}\n\n.prompt-container {\n display: flex;\n min-width: 0;\n gap: clamp(0.25rem, 1cqw, 0.5rem);\n align-items: center;\n flex: 1;\n}\n\n.title {\n flex: 1;\n min-width: 0;\n padding: 0;\n font-size: clamp(0.85rem, 2cqh, 1.05rem);\n font-weight: 700;\n line-height: 1.2;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.timer {\n padding: 0;\n font-size: clamp(0.75rem, 1.6cqh, 0.9rem);\n font-weight: 600;\n color: rgb(var(--edu-second-ink));\n font-variant-numeric: tabular-nums;\n cursor: pointer;\n}\n\n.timer[data-warning="true"] {\n color: rgb(var(--edu-warning));\n}\n\n.timer[data-danger="true"] {\n color: rgb(var(--edu-error));\n}\n\n.content {\n flex: 1;\n overflow: hidden;\n min-height: 0;\n padding: clamp(0.5rem, min(2cqw, 2cqh), 1rem);\n box-sizing: border-box;\n position: relative;\n display: flex;\n}\n\n.screen {\n display: flex;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n animation: fadeIn 1s ease;\n flex: 1;\n min-height: 0;\n}\n\n.screen[data-screen="interaction"] {\n justify-content: stretch;\n align-items: stretch;\n}\n\n.screen:not([data-screen="interaction"]) {\n justify-content: center;\n align-items: center;\n}\n\n.screen[data-screen="interaction"] ::slotted(*) {\n width: 100%;\n height: 100%;\n min-height: 0;\n display: block;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.error-content,\n.attempts-message,\n.score-display,\n.timer-display {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n height: 100%;\n color: rgb(var(--edu-ink));\n}\n\n.timer-display .timer {\n font-size: 10rem !important;\n color: rgb(var(--edu-ink)) !important;\n}\n\n.error-content {\n color: rgb(var(--edu-error));\n}\n\n.attempts-message {\n font-weight: 600;\n font-size: 1.25rem;\n}\n\nfooter {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n padding: clamp(0.35rem, 1cqh, 0.75rem) clamp(0.5rem, 1.5cqw, 1rem);\n gap: clamp(0.25rem, 0.8cqh, 0.5rem);\n flex-shrink: 0;\n height: auto;\n min-height: clamp(76px, 12cqh, 120px);\n box-sizing: border-box;\n overflow: visible;\n}\n\n.progress-container {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: clamp(0.25rem, 1cqw, 0.6rem);\n width: 100%;\n min-width: 0;\n}\n\n.progress-bar {\n flex: 1;\n height: clamp(8px, 1.6cqh, 12px);\n appearance: none;\n -webkit-appearance: none;\n border: none;\n}\n\n.progress-bar::-webkit-progress-bar {\n background-color: rgb(var(--edu-muted));\n border-radius: 10px;\n}\n\n.progress-bar::-webkit-progress-value {\n background: rgb(var(--edu-first-accent));\n border-radius: 10px;\n transition: width 0.3s ease, background 0.3s ease;\n}\n\n.progress-bar::-moz-progress-bar {\n background: rgb(var(--edu-first-accent));\n border-radius: 10px;\n transition: width 0.3s ease, background 0.3s ease;\n}\n\n/* Score-based progress bar coloring */\n.progress-bar.score-fail::-webkit-progress-value {\n background: rgb(var(--edu-error)) !important;\n}\n\n.progress-bar.score-fail::-moz-progress-bar {\n background: rgb(var(--edu-error)) !important;\n}\n\n.progress-bar.score-low::-webkit-progress-value {\n background: rgb(var(--edu-warning)) !important;\n}\n\n.progress-bar.score-low::-moz-progress-bar {\n background: rgb(var(--edu-warning)) !important;\n}\n\n.progress-bar.score-mid::-webkit-progress-value {\n background: rgb(139, 195, 74) !important; /* Light green */\n}\n\n.progress-bar.score-mid::-moz-progress-bar {\n background: rgb(139, 195, 74) !important;\n}\n\n.progress-bar.score-high::-webkit-progress-value {\n background: rgb(var(--edu-success)) !important;\n}\n\n.progress-bar.score-high::-moz-progress-bar {\n background: rgb(var(--edu-success)) !important;\n}\n\n.progress-icon-wrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n max-width: 24px;\n max-height: 24px;\n position: absolute;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n pointer-events: none;\n transition: left 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;\n background-color: rgb(var(--edu-first-accent));\n border-radius: 50px;\n box-shadow: 0 0 10px 5px rgb(var(--edu-first-accent));\n padding: 0;\n}\n\n/* Score-based icon coloring */\n.progress-icon-wrapper.score-fail {\n background-color: rgb(var(--edu-error));\n box-shadow: 0 0 10px 5px rgb(var(--edu-error));\n}\n\n.progress-icon-wrapper.score-low {\n background-color: rgb(var(--edu-warning));\n box-shadow: 0 0 10px 5px rgb(var(--edu-warning));\n}\n\n.progress-icon-wrapper.score-mid {\n background-color: rgba(139, 195, 74, 0.8);\n box-shadow: 0 0 10px 5px rgba(139, 195, 74, 0.8);\n}\n\n.progress-icon-wrapper.score-high {\n background-color: rgb(var(--edu-success));\n box-shadow: 0 0 10px 5px rgb(var(--edu-success));\n}\n\n.progress-icon {\n width: clamp(20px, 3.2cqh, 30px);\n height: clamp(20px, 3.2cqh, 30px);\n}\n\n.progress-counter {\n font-size: clamp(0.7rem, 1.4cqh, 0.85rem);\n font-weight: 600;\n color: rgb(var(--edu-second-ink));\n min-width: 3rem;\n text-align: right;\n flex-shrink: 0;\n}\n\n.action-buttons {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n width: 100%;\n min-width: 0;\n}\n\n.prompt-btn,\n.retry-btn,\n.scores-btn {\n color: rgb(var(--edu-ink));\n}\n\n.check-btn {\n padding: clamp(0.35rem, 1cqh, 0.6rem) clamp(1rem, 2.6cqw, 1.6rem);\n font-size: clamp(0.8rem, 1.6cqh, 0.95rem);\n font-weight: 600;\n cursor: pointer;\n border: none;\n border-radius: var(--edu-radius);\n background: rgb(var(--edu-first-accent));\n color: rgb(var(--edu-inverted-ink));\n transition: all 0.2s ease;\n}\n\n.check-btn:hover:not(:disabled) {\n background: rgb(var(--edu-first-accent) / 0.9);\n transform: translateY(-2px) scale(1.02);\n box-shadow: 0 4px 12px rgb(var(--edu-first-accent) / 0.3);\n}\n\n.check-btn:active:not(:disabled) {\n transform: translateY(0) scale(0.98);\n box-shadow: 0 2px 4px rgb(var(--edu-first-accent) / 0.2);\n}\n\n.check-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.btn {\n padding: clamp(0.25rem, 0.8cqh, 0.4rem);\n background: transparent;\n border: 2px solid rgb(var(--edu-border));\n border-radius: var(--edu-radius);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s ease;\n}\n\n.btn:hover { \n background: rgb(var(--edu-muted));\n border-color: rgb(var(--edu-first-accent));\n transform: translateY(-2px) scale(1.05);\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n}\n\n.btn:active {\n transform: translateY(0) scale(0.95);\n box-shadow: none;\n}\n\n.radio-nav {\n display: none;\n flex-wrap: wrap;\n gap: 0.5rem;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 0;\n}\n\n.radio-nav[data-active="true"] {\n display: flex;\n}\n\n@media (max-width: 640px) {\n .radio-nav {\n gap: 0.35rem;\n }\n\n .radio-nav label {\n padding: 0.4rem 0.75rem;\n font-size: 0.875rem;\n }\n}\n\n.radio-nav input { display: none; }\n\n.radio-nav label {\n cursor: pointer;\n transition: all 0.3s ease;\n padding: 0.5rem 1rem;\n border-radius: var(--edu-radius);\n border: 1px solid rgb(var(--edu-border));\n background: rgb(var(--edu-card));\n color: rgb(var(--edu-ink));\n font-weight: 500;\n}\n\n.radio-nav label:hover {\n border-color: rgb(var(--edu-first-accent));\n}\n\n.radio-nav input:checked + label {\n background: rgb(var(--edu-first-accent));\n color: rgb(var(--edu-inverted-ink));\n border-color: rgb(var(--edu-first-accent));\n}\n\n.actions {\n display: flex;\n gap: 0.5rem;\n}\n\n.utils-container {\n display: flex;\n justify-content: space-between;\n}\n\n:host([variant="empty"]) {\n & .wrap { background: transparent; border: none; }\n & header { border-bottom: none; }\n\n & .title {\n padding-bottom: 5px;\n max-width: fit-content;\n border-bottom: 5px solid rgb(var(--edu-ink));\n }\n\n & .timer { }\n\n & footer {\n color: rgb(var(--edu-inverted-ink));\n }\n\n & .check-btn {\n background: transparent;\n color: rgb(var(--edu-ink));\n border: 2px solid rgb(var(--edu-ink));\n border-radius: 0;\n }\n\n & .check-btn:hover:not(:disabled) {\n color: rgb(var(--edu-inverted-ink));\n background: rgb(var(--edu-ink));\n border-color: rgb(var(--edu-ink));\n }\n\n & .progress-bar::-webkit-progress-bar {background: transparent}\n & .progress-bar::-webkit-progress-value {background: rgb(var(--edu-ink))}\n\n & .radio-nav label {\n background: transparent;\n border: 2px solid rgb(var(--edu-ink));\n border-radius: 0;\n }\n\n & .radio-nav input:checked + label {\n background: rgb(var(--edu-ink));\n color: rgb(var(--edu-inverted-ink));\n }\n\n & .radio-nav label:hover { background-color: rgb(var(--edu-first-accent)) }\n}\n\n:host([variant="minimal"]) {\n & .wrap {\n border: 1px solid rgb(var(--edu-border));\n border-radius: 10px;\n background: rgb(var(--edu-card));\n }\n\n & .timer {\n font-size: 0.95rem;\n }\n\n & .check-btn {\n border-radius: 10px;\n box-shadow: none;\n }\n\n & footer {\n color: rgb(var(--edu-inverted-ink));\n border-top: 1px solid rgb(var(--edu-border));\n }\n\n & .progress-bar {\n height: 1px;\n }\n\n & .progress-bar::-webkit-progress-bar {\n background-color: rgb(var(--edu-muted));\n }\n\n & .progress-bar::-webkit-progress-value {\n background-color: rgb(var(--edu-ink));\n }\n\n & .radio-nav label {\n border-radius: 999px;\n background: transparent;\n }\n}\n\n:host([variant="elegant"]) {\n & .wrap {\n border-radius: 10px;\n box-shadow: 0 10px 30px rgba(var(--edu-shadow-color), 0.15);\n }\n\n & .timer {\n font-family: georgia, serif;\n font-style: italic;\n font-size: 1.1rem;\n }\n\n & .check-btn {\n border-radius: 8px;\n font-size: 1rem;\n }\n\n & footer {\n color: rgb(var(--edu-inverted-ink));\n border-top: 1px solid rgb(var(--edu-border) / 0.5);\n padding: 1.25rem;\n }\n\n & .progress-bar {\n height: 4px;\n }\n\n & .progress-bar::-webkit-progress-value {\n background: linear-gradient(90deg, rgb(var(--edu-first-accent)), rgb(var(--edu-first-accent) / 0.6));\n }\n\n & .radio-nav label {\n font-family: georgia, serif;\n border: none;\n border-bottom: 2px solid transparent;\n background: transparent;\n padding: 0.5rem 1rem;\n }\n\n & .radio-nav input:checked + label {\n color: rgb(var(--edu-first-accent));\n border-bottom: 2px solid rgb(var(--edu-first-accent));\n background: transparent;\n font-style: italic;\n }\n\n & label {\n font-family: georgia, serif;\n padding: 0.5rem 1rem;\n }\n}\n\n:host([variant="playful"]) {\n & .wrap {\n color: rgb(var(--edu-ink));\n border-radius: 14px;\n border: 2px dashed rgb(var(--edu-border));\n }\n\n & .timer {\n font-weight: 700;\n font-size: 1.2rem;\n }\n\n & .check-btn {\n background: linear-gradient(135deg, rgb(var(--edu-first-accent));\n color: rgb(var(--edu-inverted-ink));\n border-radius: 12px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n box-shadow: 0 8px 18px rgb(var(--edu-shadow-color) / 0.16);\n }\n\n & .check-btn:hover:not(:disabled) {\n transform: translateY(-2px) rotate(-1deg);\n }\n\n & footer {\n color: rgb(var(--edu-inverted-ink));\n border-top: 2px dashed rgb(var(--edu-border));\n }\n\n & .progress-bar {\n height: 20px;\n }\n\n & .progress-bar::-webkit-progress-bar {\n background-color: rgb(var(--edu-warning) / 0.3);\n border-radius: 20px;\n }\n\n & .progress-bar::-webkit-progress-value {\n background: rgb(var(--edu-first-accent));\n border-radius: 20px;\n border: 3px solid rgb(var(--edu-warning) / 0.3);\n }\n\n & .radio-nav label {\n background: rgb(var(--edu-card));\n color: rgb(var(--edu-ink));\n border: 2px solid rgb(var(--edu-border));\n border-radius: 50px;\n font-weight: 700;\n }\n\n & .radio-nav label:hover {\n transform: scale(1.1) rotate(-2deg);\n }\n\n & .radio-nav input:checked + label {\n background: linear-gradient(135deg, rgb(var(--edu-first-accent));\n color: rgb(var(--edu-inverted-ink));\n border-color: transparent;\n box-shadow: 0 5px 15px rgb(var(--edu-shadow-color) / 0.18);\n }\n}\n\n:host([variant="glass"]) {\n & .wrap {\n background: rgba(var(--edu-card), 0.7);\n backdrop-filter: blur(10px);\n border: 1px solid rgba(var(--edu-border), 0.35);\n border-radius: 14px;\n box-shadow: 0 16px 32px rgba(var(--edu-shadow-color), 0.12);\n }\n\n & .check-btn {\n background: rgba(var(--edu-first-accent), 0.88);\n backdrop-filter: blur(5px);\n border-radius: 999px;\n }\n\n & .check-btn:hover:not(:disabled) {\n background: rgba(var(--edu-first-accent), 1);\n }\n\n & footer {\n border-top: 1px solid rgba(var(--edu-border), 0.35);\n }\n\n & .progress-bar::-webkit-progress-bar {\n background: rgba(var(--edu-card), 0.3);\n backdrop-filter: blur(5px);\n }\n\n & .progress-bar::-webkit-progress-value {\n background: rgba(var(--edu-first-accent), 0.7);\n }\n\n & .radio-nav label {\n background: rgba(var(--edu-card), 0.5);\n backdrop-filter: blur(5px);\n border: 1px solid rgba(var(--edu-border), 0.35);\n border-radius: 999px;\n }\n\n & .radio-nav input:checked + label {\n background: rgba(var(--edu-first-accent), 0.8);\n border-color: rgb(var(--edu-first-accent));\n }\n}\n\n:host([variant="letter"]) {\n & .wrap {\n border: 1px solid rgb(var(--edu-border));\n font-family: georgia, serif;\n box-shadow: inset 0 0 0 1px rgba(var(--edu-shadow-color), 0.1);\n border-radius: 4px;\n }\n\n & .timer {\n font-family: georgia, serif;\n letter-spacing: 0.5px;\n }\n\n & .check-btn {\n font-family: georgia, serif;\n border-radius: 2px;\n font-size: 0.95rem;\n letter-spacing: 0.5px;\n }\n\n & footer {\n color: rgb(var(--edu-inverted-ink));\n border-top: 1px solid rgb(var(--edu-border));\n padding: 1rem 1.5rem;\n }\n\n & .progress-bar::-webkit-progress-bar {\n background-color: rgb(var(--edu-muted));\n box-shadow: inset 0 0 0 1px rgba(var(--edu-shadow-color), 0.05);\n }\n\n & .radio-nav label {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n background: rgb(var(--edu-third-ink));\n color: rgb(var(--edu-inverted-ink));\n font-weight: 900;\n border-radius: 4px;\n }\n\n & .radio-nav input:checked + label {\n background: rgb(var(--edu-first-accent));\n transform: translateY(-4px);\n }\n}\n\n:host([variant="sign"]) {\n & .wrap {\n border-radius: 6px;\n text-transform: uppercase;\n letter-spacing: 1px;\n border: 2px solid rgb(var(--edu-border));\n }\n\n & .timer {\n text-transform: uppercase;\n letter-spacing: 1.5px;\n font-weight: 800;\n font-size: 0.9rem;\n }\n\n & .check-btn {\n text-transform: uppercase;\n letter-spacing: 1.5px;\n font-weight: 800;\n font-size: 0.9rem;\n border-radius: 4px;\n margin: 0.85rem 2.5rem;\n }\n\n & footer {\n color: rgb(var(--edu-inverted-ink));\n border-top: 2px solid rgb(var(--edu-border));\n }\n\n & .title {\n text-transform: uppercase;\n }\n\n & .progress-bar {\n height: 24px;\n }\n\n & .progress-bar::-webkit-progress-bar {\n background: rgb(var(--edu-third-ink));\n border: 2px solid rgb(var(--edu-third-ink));\n }\n\n & .progress-bar::-webkit-progress-value {\n background: rgb(var(--edu-second-accent));\n }\n\n & .radio-nav label {\n background: rgb(var(--edu-third-ink));\n color: rgb(var(--edu-second-accent));\n border-left: 4px solid rgb(var(--edu-second-accent));\n text-transform: uppercase;\n font-size: 0.8rem;\n font-weight: 700;\n }\n\n & .radio-nav input:checked + label {\n background: rgb(var(--edu-second-accent));\n color: rgb(var(--edu-third-ink));\n border-left-color: rgb(var(--edu-third-ink));\n }\n}\n\n:host([variant="outline"]) {\n & .wrap {\n color: rgb(var(--edu-inverted-ink));\n background: transparent;\n border-width: 0 1px 2px 1px;\n border-style: solid;\n border-color: rgb(var(--edu-first-accent));\n background: rgb(var(--edu-bg) / 0.1);\n }\n\n & header { background: rgb(var(--edu-first-accent)); color: rgb(var(--edu-inverted-ink)) }\n & .timer { color: rgb(var(--edu-inverted-ink)) }\n\n & footer {\n border-top: none;\n padding: 0;\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n }\n\n & .check-btn {\n font-size: 100%;\n font-weight: 700;\n border: none;\n border-radius: 0;\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n color: rgb(var(--edu-inverted-ink));\n background: rgb(var(--edu-first-accent));\n margin: 0;\n padding: 1rem;\n text-transform: uppercase;\n }\n\n & .check-btn:hover:not(:disabled) {\n background: rgb(var(--edu-first-accent) / 0.9);\n box-shadow: 0 4px 12px rgb(var(--edu-first-accent) / 0.3);\n transform: none;\n }\n\n & .radio-nav label {\n border: 2px solid rgb(var(--edu-first-accent));\n border-radius: 0;\n background: transparent;\n color: rgb(var(--edu-ink));\n }\n\n & .radio-nav label:hover {\n background: rgb(var(--edu-first-accent));\n color: rgb(var(--edu-inverted-ink));\n }\n\n & .radio-nav input:checked + label {\n background: rgb(var(--edu-first-accent));\n color: rgb(var(--edu-inverted-ink));\n }\n}\n\n:host([variant="card"]) {\n & .wrap {\n border-radius: 14px;\n background: rgb(var(--edu-card));\n box-shadow: 0 10px 24px rgba(var(--edu-shadow-color), 0.12), 0 2px 4px rgba(var(--edu-shadow-color), 0.05);\n }\n\n & .check-btn {\n border-radius: 999px;\n box-shadow: 0 6px 14px rgba(var(--edu-shadow-color), 0.12);\n }\n\n & .check-btn:hover:not(:disabled) {\n box-shadow: 0 4px 8px rgba(var(--edu-first-accent), 0.2);\n }\n\n & footer {\n border-top: 1px solid rgb(var(--edu-border));\n }\n\n & .radio-nav label {\n border-radius: 999px;\n box-shadow: 0 4px 10px rgba(var(--edu-shadow-color), 0.08);\n }\n\n & .radio-nav input:checked + label {\n box-shadow: 0 4px 8px rgba(var(--edu-first-accent), 0.2);\n }\n}\n';
|
|
13209
13403
|
|
|
13210
13404
|
// src/shell/simple-shell/script.ts
|
|
13211
13405
|
var InteractionsBaseShell = class extends HTMLElement {
|
|
@@ -13236,7 +13430,6 @@ var InteractionsBaseShell = class extends HTMLElement {
|
|
|
13236
13430
|
this.$timerEl = wrap.querySelector(".timer");
|
|
13237
13431
|
this.$checkBtn = wrap.querySelector(".check-btn");
|
|
13238
13432
|
this.$scoresBtn = wrap.querySelector(".scores-btn");
|
|
13239
|
-
this.$seeAnswersBtn = wrap.querySelector(".see-answers-btn");
|
|
13240
13433
|
this.$retryBtn = wrap.querySelector(".retry-btn");
|
|
13241
13434
|
this.$radioNav = wrap.querySelector(".radio-nav");
|
|
13242
13435
|
this.$progressContainer = wrap.querySelector(".progress-container");
|
|
@@ -13345,11 +13538,6 @@ var InteractionsBaseShell = class extends HTMLElement {
|
|
|
13345
13538
|
console.error("Submit failed:", error);
|
|
13346
13539
|
}
|
|
13347
13540
|
});
|
|
13348
|
-
this.$seeAnswersBtn.addEventListener("click", () => {
|
|
13349
|
-
this.soundManager.playSound("pop");
|
|
13350
|
-
if (this.currentScreen === "solution") this.switchScreen("interaction");
|
|
13351
|
-
else this.switchScreen("solution");
|
|
13352
|
-
});
|
|
13353
13541
|
this.$scoresBtn.addEventListener("click", () => {
|
|
13354
13542
|
this.soundManager.playSound("pop");
|
|
13355
13543
|
if (this.currentScreen === "score") this.switchScreen("interaction");
|
|
@@ -13438,7 +13626,6 @@ var InteractionsBaseShell = class extends HTMLElement {
|
|
|
13438
13626
|
}
|
|
13439
13627
|
handleGraded(result) {
|
|
13440
13628
|
this.$checkBtn.classList.add("edu-hidden");
|
|
13441
|
-
this.$seeAnswersBtn.classList.remove("edu-hidden");
|
|
13442
13629
|
this.$scoresBtn.classList.remove("edu-hidden");
|
|
13443
13630
|
this.$retryBtn.classList.remove("edu-hidden");
|
|
13444
13631
|
if (this.attemptLimit && this.attemptCount > this.attemptLimit) {
|
|
@@ -13471,7 +13658,6 @@ var InteractionsBaseShell = class extends HTMLElement {
|
|
|
13471
13658
|
if (!this.interaction.implementsProgress) {
|
|
13472
13659
|
this.$checkBtn.classList.remove("edu-hidden");
|
|
13473
13660
|
}
|
|
13474
|
-
this.$seeAnswersBtn.classList.add("edu-hidden");
|
|
13475
13661
|
this.$scoresBtn.classList.add("edu-hidden");
|
|
13476
13662
|
this.$retryBtn.classList.add("edu-hidden");
|
|
13477
13663
|
this.$progressIcon.classList.remove("score-fail", "score-low", "score-mid", "score-high");
|
|
@@ -13655,6 +13841,7 @@ export {
|
|
|
13655
13841
|
basicTableDataValidator,
|
|
13656
13842
|
classificationTableGrader,
|
|
13657
13843
|
clearInteractionRegistry,
|
|
13844
|
+
cognikitThemePresets,
|
|
13658
13845
|
compareValues,
|
|
13659
13846
|
configureCognikit,
|
|
13660
13847
|
createInteraction,
|
|
@@ -13668,6 +13855,7 @@ export {
|
|
|
13668
13855
|
getClassificationCellGrading,
|
|
13669
13856
|
getClassificationGradingState,
|
|
13670
13857
|
getCognikitConfig,
|
|
13858
|
+
getCognikitThemePresets,
|
|
13671
13859
|
getDNDGradingState,
|
|
13672
13860
|
getHighlightGradingState,
|
|
13673
13861
|
getInteraction,
|
|
@@ -13687,9 +13875,12 @@ export {
|
|
|
13687
13875
|
recognitionValidator,
|
|
13688
13876
|
registerBuiltInInteractions,
|
|
13689
13877
|
registerInteraction,
|
|
13878
|
+
resetCognikitTheme,
|
|
13879
|
+
resolveCognikitTheme,
|
|
13690
13880
|
seriationGrader,
|
|
13691
13881
|
seriationParser,
|
|
13692
13882
|
seriationValidator,
|
|
13883
|
+
setCognikitTheme,
|
|
13693
13884
|
textEngineBaseDataValidator,
|
|
13694
13885
|
textEngineBaseGrammarParser,
|
|
13695
13886
|
textEngineBlanksDataValidator,
|