@vue-skuilder/common-ui 0.1.32-e → 0.1.32-f
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/dist/MarkdownRenderer-DoVbFpA6.mjs +4960 -0
- package/dist/MarkdownRenderer-DoVbFpA6.mjs.map +1 -0
- package/dist/assets/MarkdownRenderer.css +1 -0
- package/dist/assets/index.css +1 -1
- package/dist/common-ui.es.js +5049 -2
- package/dist/common-ui.es.js.map +1 -1
- package/dist/common-ui.umd.js +77 -2
- package/dist/common-ui.umd.js.map +1 -1
- package/dist/components/StudySession.vue.d.ts.map +1 -1
- package/dist/utils/SkldrMouseTrap.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/components/StudySession.vue +45 -36
- package/src/utils/SkldrMouseTrap.ts +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StudySession.vue.d.ts","sourceRoot":"","sources":["../../src/components/StudySession.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StudySession.vue.d.ts","sourceRoot":"","sources":["../../src/components/StudySession.vue"],"names":[],"mappings":"AAiFA;AAAA,OAkyBO,EAAE,eAAe,EAAW,QAAQ,EAAE,MAAM,KAAK,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAM/C,OAAO,UAAU,MAAM,gCAAgC,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAuB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EACL,WAAW,EACX,UAAU,EAEV,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EAEjB,YAAY,EAEZ,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEpG,UAAU,SAAS;IACjB,aAAa,EAAE,cAAc,CAAC;IAC9B,UAAU,EAAE,YAAY,CAAC,OAAO,UAAU,CAAC,CAAC;CAC7C;AAED,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,GAAG;IACxD,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;;;;;;;cAqBmB,QAAQ,CAAC,eAAe,EAAE,CAAC;;;;cAI1B,QAAQ,CAAC,eAAe,CAAC;;;;cAIzB,QAAQ,CAAC,iBAAiB,CAAC;;;;cAI3B,QAAQ,CAAC,kBAAkB,CAAC;;;;;;cAI1B,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,CAAC;;;;;;;;;;;;cAY7C,QAAQ,CAAC,oBAAoB,GAAG,MAAM,CAAC;;;;cAIvC,QAAQ,CAAC,kBAAkB,CAAC;;;;;UAoB9B,aAAa,GAAG,IAAI;UACtB,QAAQ,EAAE;;;iBAGH;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;;uBAEtB,iBAAiB,CAAC,aAAa,CAAC,GAAG,IAAI;;;mBAG7C,kBAAkB,EAAE;;;;sBAIf,qBAAqB,GAAG,IAAI;2BACzB,kBAAkB,EAAE;;;mBAG1B,aAAa,GAAG,IAAI;4BACX,MAAM,GAAG,IAAI;qBACpB,MAAM,CAAC,OAAO,GAAG,IAAI;;;;mBAOjC,kBAAkB;;IA4CjC;;;OAGG;;IAYH;;;;;;;;;;;;;OAaG;kCAC2B,aAAa;uBAUxB,MAAM,GAAG,SAAS;kCASxB,OAAO;;;;8BAyIM,MAAM,WAAW,MAAM,GAAG,MAAM;0BAI9B,aAAa,KAAK,UAAU;6BAiF/B,cAAc;;qBAsDhB,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;mBAO/C,YAAY,GAAG,IAAI;;;;;;;cArcvB,QAAQ,CAAC,eAAe,EAAE,CAAC;;;;cAI1B,QAAQ,CAAC,eAAe,CAAC;;;;cAIzB,QAAQ,CAAC,iBAAiB,CAAC;;;;cAI3B,QAAQ,CAAC,kBAAkB,CAAC;;;;;;cAI1B,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,aAAa,CAAC;;;;;;;;;;;;cAY7C,QAAQ,CAAC,oBAAoB,GAAG,MAAM,CAAC;;;;cAIvC,QAAQ,CAAC,kBAAkB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAnDlD,wBAmgBG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkldrMouseTrap.d.ts","sourceRoot":"","sources":["../../src/utils/SkldrMouseTrap.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"SkldrMouseTrap.d.ts","sourceRoot":"","sources":["../../src/utils/SkldrMouseTrap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAqB,MAAM,WAAW,CAAC;AAErE,MAAM,WAAW,MAAO,SAAQ,cAAc;IAC5C,QAAQ,EAAE,CAAC,CAAC,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7D;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B;AA0BD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAiB;IAEzC,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,OAAO,CAAW;IAE1B,OAAO;IAQP,WAAkB,QAAQ,IAAI,cAAc,EAAE,CAO7C;IAED;;;OAGG;WACW,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE;IAsB9C;;;OAGG;WACW,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IA+BrD;;;OAGG;WACW,KAAK;IASnB,OAAO,CAAC,MAAM,CAAC,QAAQ;CAQxB"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.1.32-
|
|
6
|
+
"version": "0.1.32-f",
|
|
7
7
|
"main": "./dist/common-ui.umd.js",
|
|
8
8
|
"module": "./dist/common-ui.es.js",
|
|
9
9
|
"types": "./dist/index.d.ts",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"@highlightjs/vue-plugin": "^2.1.2",
|
|
34
34
|
"@mdi/font": "^7.3.67",
|
|
35
35
|
"@vojtechlanka/vue-tags-input": "^3",
|
|
36
|
-
"@vue-skuilder/common": "0.1.32-
|
|
37
|
-
"@vue-skuilder/db": "0.1.32-
|
|
36
|
+
"@vue-skuilder/common": "0.1.32-f",
|
|
37
|
+
"@vue-skuilder/db": "0.1.32-f",
|
|
38
38
|
"highlight.js": "^11.0.1",
|
|
39
39
|
"marked": "^15.0.6",
|
|
40
40
|
"moment": "^2.29.4",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"@types/pouchdb": "^6.4.2",
|
|
56
56
|
"@typescript-eslint/eslint-plugin": "^8.48.1",
|
|
57
57
|
"@typescript-eslint/parser": "^8.48.1",
|
|
58
|
-
"@vitejs/plugin-vue": "^6.0.
|
|
58
|
+
"@vitejs/plugin-vue": "^6.0.5",
|
|
59
59
|
"@vue/eslint-config-typescript": "^14.4.0",
|
|
60
60
|
"@vue/test-utils": "^2.4.6",
|
|
61
61
|
"cypress": "^15.6.0",
|
|
@@ -66,9 +66,9 @@
|
|
|
66
66
|
"jsdom": "^25.0.1",
|
|
67
67
|
"sass": "^1.83.0",
|
|
68
68
|
"typescript": "~5.9.3",
|
|
69
|
-
"vite": "^
|
|
69
|
+
"vite": "^8.0.0",
|
|
70
70
|
"vite-plugin-dts": "^4.5.3",
|
|
71
|
-
"vitest": "^4.0
|
|
71
|
+
"vitest": "^4.1.0"
|
|
72
72
|
},
|
|
73
73
|
"stableVersion": "0.1.31"
|
|
74
74
|
}
|
|
@@ -26,8 +26,9 @@
|
|
|
26
26
|
</div>
|
|
27
27
|
|
|
28
28
|
<div v-else ref="shadowWrapper" class="card-transition-container">
|
|
29
|
-
<transition :name="transitionName"
|
|
29
|
+
<transition :name="transitionName">
|
|
30
30
|
<card-viewer
|
|
31
|
+
v-if="view"
|
|
31
32
|
ref="cardViewer"
|
|
32
33
|
:key="cardID"
|
|
33
34
|
:class="loading ? 'muted' : ''"
|
|
@@ -621,6 +622,7 @@ export default defineComponent({
|
|
|
621
622
|
course_id: card.item.courseID,
|
|
622
623
|
card_id: card.item.cardID,
|
|
623
624
|
card_elo: this.card_elo,
|
|
625
|
+
tags: card.tags ?? [],
|
|
624
626
|
},
|
|
625
627
|
item: card.item,
|
|
626
628
|
records: [],
|
|
@@ -683,6 +685,48 @@ a {
|
|
|
683
685
|
justify-content: center;
|
|
684
686
|
}
|
|
685
687
|
|
|
688
|
+
@keyframes varFade {
|
|
689
|
+
0% {
|
|
690
|
+
box-shadow:
|
|
691
|
+
rgba(var(--r), var(--g), 0, 0.25) 0px 7px 8px -4px,
|
|
692
|
+
rgba(var(--r), var(--g), 0, 0.25) 0px 12px 17px 2px,
|
|
693
|
+
rgba(var(--r), var(--g), 0, 0.25) 0px 5px 22px 4px;
|
|
694
|
+
}
|
|
695
|
+
100% {
|
|
696
|
+
box-shadow: rgba(0, 150, 0, 0) 0px 0px;
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
@keyframes greenFade {
|
|
701
|
+
0% {
|
|
702
|
+
box-shadow:
|
|
703
|
+
rgba(0, 150, 0, 0.25) 0px 7px 8px -4px,
|
|
704
|
+
rgba(0, 150, 0, 0.25) 0px 12px 17px 2px,
|
|
705
|
+
rgba(0, 150, 0, 0.25) 0px 5px 22px 4px;
|
|
706
|
+
}
|
|
707
|
+
100% {
|
|
708
|
+
box-shadow: rgba(0, 150, 0, 0) 0px 0px;
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
@keyframes purpleFade {
|
|
712
|
+
0% {
|
|
713
|
+
box-shadow:
|
|
714
|
+
rgba(115, 0, 75, 0.25) 0px 7px 8px -4px,
|
|
715
|
+
rgba(115, 0, 75, 0.25) 0px 12px 17px 2px,
|
|
716
|
+
rgba(115, 0, 75, 0.25) 0px 5px 22px 4px;
|
|
717
|
+
}
|
|
718
|
+
100% {
|
|
719
|
+
box-shadow: rgba(115, 0, 75, 0) 0px 0px;
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
</style>
|
|
723
|
+
|
|
724
|
+
<style>
|
|
725
|
+
/* Transition presets — unscoped so classes reach child component root elements.
|
|
726
|
+
Vue's <Transition> adds these classes to the child's root DOM node, which
|
|
727
|
+
may be a Vuetify component (v-card). Scoped selectors can fail to match
|
|
728
|
+
when the scope attribute doesn't propagate through component boundaries. */
|
|
729
|
+
|
|
686
730
|
/* Preset: component-fade (default) — simple opacity crossfade, use with mode="out-in" */
|
|
687
731
|
.component-fade-enter-active,
|
|
688
732
|
.component-fade-leave-active {
|
|
@@ -753,39 +797,4 @@ a {
|
|
|
753
797
|
transform: scale(1.03);
|
|
754
798
|
opacity: 0;
|
|
755
799
|
}
|
|
756
|
-
|
|
757
|
-
@keyframes varFade {
|
|
758
|
-
0% {
|
|
759
|
-
box-shadow:
|
|
760
|
-
rgba(var(--r), var(--g), 0, 0.25) 0px 7px 8px -4px,
|
|
761
|
-
rgba(var(--r), var(--g), 0, 0.25) 0px 12px 17px 2px,
|
|
762
|
-
rgba(var(--r), var(--g), 0, 0.25) 0px 5px 22px 4px;
|
|
763
|
-
}
|
|
764
|
-
100% {
|
|
765
|
-
box-shadow: rgba(0, 150, 0, 0) 0px 0px;
|
|
766
|
-
}
|
|
767
|
-
}
|
|
768
|
-
|
|
769
|
-
@keyframes greenFade {
|
|
770
|
-
0% {
|
|
771
|
-
box-shadow:
|
|
772
|
-
rgba(0, 150, 0, 0.25) 0px 7px 8px -4px,
|
|
773
|
-
rgba(0, 150, 0, 0.25) 0px 12px 17px 2px,
|
|
774
|
-
rgba(0, 150, 0, 0.25) 0px 5px 22px 4px;
|
|
775
|
-
}
|
|
776
|
-
100% {
|
|
777
|
-
box-shadow: rgba(0, 150, 0, 0) 0px 0px;
|
|
778
|
-
}
|
|
779
|
-
}
|
|
780
|
-
@keyframes purpleFade {
|
|
781
|
-
0% {
|
|
782
|
-
box-shadow:
|
|
783
|
-
rgba(115, 0, 75, 0.25) 0px 7px 8px -4px,
|
|
784
|
-
rgba(115, 0, 75, 0.25) 0px 12px 17px 2px,
|
|
785
|
-
rgba(115, 0, 75, 0.25) 0px 5px 22px 4px;
|
|
786
|
-
}
|
|
787
|
-
100% {
|
|
788
|
-
box-shadow: rgba(115, 0, 75, 0) 0px 0px;
|
|
789
|
-
}
|
|
790
|
-
}
|
|
791
800
|
</style>
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import Mousetrap from 'mousetrap';
|
|
2
|
-
import 'mousetrap/plugins/global-bind/mousetrap-global-bind.js';
|
|
3
2
|
import { ExtendedKeyboardEvent, MousetrapInstance } from 'mousetrap';
|
|
4
3
|
|
|
5
4
|
export interface HotKey extends HotKeyMetaData {
|
|
@@ -43,6 +42,9 @@ export class SkldrMouseTrap {
|
|
|
43
42
|
|
|
44
43
|
private constructor() {
|
|
45
44
|
this.mouseTrap = new Mousetrap();
|
|
45
|
+
// Allow hotkeys to fire even when input elements are focused — the
|
|
46
|
+
// inputElementIsFocused() guard in addBinding handles selective suppression.
|
|
47
|
+
this.mouseTrap.stopCallback = () => false;
|
|
46
48
|
this.hotkeys = [];
|
|
47
49
|
}
|
|
48
50
|
|
|
@@ -68,7 +70,7 @@ export class SkldrMouseTrap {
|
|
|
68
70
|
|
|
69
71
|
// Bind each hotkey
|
|
70
72
|
hotkeys.forEach((k) => {
|
|
71
|
-
|
|
73
|
+
instance.mouseTrap.bind(k.hotkey, (a, b) => {
|
|
72
74
|
// Skip execution if focus is on input elements
|
|
73
75
|
if (inputElementIsFocused()) {
|
|
74
76
|
console.log(`Ignoring hotkey ${k.hotkey} while input element is focused`);
|
|
@@ -101,7 +103,7 @@ export class SkldrMouseTrap {
|
|
|
101
103
|
});
|
|
102
104
|
|
|
103
105
|
// Unbind from Mousetrap
|
|
104
|
-
|
|
106
|
+
instance.mouseTrap.unbind(key);
|
|
105
107
|
});
|
|
106
108
|
} else {
|
|
107
109
|
// Single hotkey removal (original implementation)
|
|
@@ -112,7 +114,7 @@ export class SkldrMouseTrap {
|
|
|
112
114
|
});
|
|
113
115
|
|
|
114
116
|
// Unbind from Mousetrap
|
|
115
|
-
|
|
117
|
+
instance.mouseTrap.unbind(hotkey);
|
|
116
118
|
}
|
|
117
119
|
}
|
|
118
120
|
|
|
@@ -125,7 +127,6 @@ export class SkldrMouseTrap {
|
|
|
125
127
|
'SkldrMouseTrap.reset() may affect hotkeys registered by other components. ' +
|
|
126
128
|
'Consider using removeBinding() with specific hotkeys for better component isolation.'
|
|
127
129
|
);
|
|
128
|
-
Mousetrap.reset();
|
|
129
130
|
SkldrMouseTrap.instance().mouseTrap.reset();
|
|
130
131
|
SkldrMouseTrap.instance().hotkeys = [];
|
|
131
132
|
}
|