@vue-skuilder/common-ui 0.1.27 → 0.1.29

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.
@@ -4,4 +4,10 @@
4
4
  export type StudySessionConfig = {
5
5
  likesConfetti: boolean;
6
6
  };
7
+ /**
8
+ * Built-in card transition presets provided by StudySession.
9
+ * Consumers can also pass any custom string to use their own CSS transition classes.
10
+ */
11
+ export type CardTransitionPreset = 'component-fade' | 'card-slide' | 'card-scale';
12
+ export type CardTransitionMode = 'out-in' | 'in-out' | 'default';
7
13
  //# sourceMappingURL=StudySession.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StudySession.types.d.ts","sourceRoot":"","sources":["../../src/components/StudySession.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"StudySession.types.d.ts","sourceRoot":"","sources":["../../src/components/StudySession.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,YAAY,GAAG,YAAY,CAAC;AAElF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC"}
@@ -3,7 +3,7 @@ import { ViewComponent } from '../composables';
3
3
  import { default as CardViewer } from './cardRendering/CardViewer.vue';
4
4
  import { CourseElo, ViewData } from '../../../common/dist/index.mjs';
5
5
  import { CardHistory, CardRecord, ContentSourceID, CourseRegistrationDoc, DataLayerProvider, HydratedCard, ResponseResult, SessionController, StudyContentSource, StudySessionRecord, UserDBInterface } from '../../../db/dist/index.mjs';
6
- import { StudySessionConfig } from './StudySession.types';
6
+ import { StudySessionConfig, CardTransitionPreset, CardTransitionMode } from './StudySession.types';
7
7
  interface StudyRefs {
8
8
  shadowWrapper: HTMLDivElement;
9
9
  cardViewer: InstanceType<typeof CardViewer>;
@@ -46,6 +46,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
46
46
  type: BooleanConstructor;
47
47
  default: boolean;
48
48
  };
49
+ transitionName: {
50
+ type: PropType<CardTransitionPreset | string>;
51
+ default: string;
52
+ };
53
+ transitionMode: {
54
+ type: PropType<CardTransitionMode>;
55
+ default: string;
56
+ };
49
57
  }>, {}, {
50
58
  cardID: string;
51
59
  view: ViewComponent | null;
@@ -118,6 +126,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
118
126
  type: BooleanConstructor;
119
127
  default: boolean;
120
128
  };
129
+ transitionName: {
130
+ type: PropType<CardTransitionPreset | string>;
131
+ default: string;
132
+ };
133
+ transitionMode: {
134
+ type: PropType<CardTransitionMode>;
135
+ default: string;
136
+ };
121
137
  }>> & Readonly<{
122
138
  "onSession-finished"?: ((...args: any[]) => any) | undefined;
123
139
  "onSession-started"?: ((...args: any[]) => any) | undefined;
@@ -130,6 +146,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
130
146
  frameless: boolean;
131
147
  sessionConfig: StudySessionConfig;
132
148
  hideFooter: boolean;
149
+ transitionName: string;
150
+ transitionMode: CardTransitionMode;
133
151
  }, {}, {
134
152
  CardViewer: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
135
153
  sessionOrder: {
@@ -1 +1 @@
1
- {"version":3,"file":"StudySession.vue.d.ts","sourceRoot":"","sources":["../../src/components/StudySession.vue"],"names":[],"mappings":"AAwEA;AAAA,OA2mBO,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,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,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;;;;;;;;;;;;;UA2B/C,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;;qBAExB,MAAM,CAAC,OAAO,GAAG,IAAI;;;;mBAOjC,kBAAkB;;uBA4Cd,MAAM,GAAG,SAAS;kCASxB,OAAO;;;;8BA2HM,MAAM,WAAW,MAAM,GAAG,MAAM;0BAI9B,aAAa,KAAK,UAAU;6BAkE/B,cAAc;;qBAgDhB,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;mBAO/C,YAAY,GAAG,IAAI;;;;;;;cA/WvB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAnCnE,wBA4aG"}
1
+ {"version":3,"file":"StudySession.vue.d.ts","sourceRoot":"","sources":["../../src/components/StudySession.vue"],"names":[],"mappings":"AAwEA;AAAA,OAmqBO,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,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;;;;;UAmB9B,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;;qBAExB,MAAM,CAAC,OAAO,GAAG,IAAI;;;;mBAOjC,kBAAkB;;uBA4Cd,MAAM,GAAG,SAAS;kCASxB,OAAO;;;;8BA2HM,MAAM,WAAW,MAAM,GAAG,MAAM;0BAI9B,aAAa,KAAK,UAAU;6BAkE/B,cAAc;;qBAsDhB,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;mBAO/C,YAAY,GAAG,IAAI;;;;;;;cA7XvB,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,wBA0bG"}
package/dist/index.d.ts CHANGED
@@ -19,7 +19,7 @@ export * from './composables/useEntitlements';
19
19
  export { default as StudySession } from './components/StudySession.vue';
20
20
  export { default as StudySessionTimer } from './components/StudySessionTimer.vue';
21
21
  export { default as SessionControllerDebug } from './components/SessionControllerDebug.vue';
22
- export type { StudySessionConfig } from './components/StudySession.types';
22
+ export type { StudySessionConfig, CardTransitionPreset, CardTransitionMode } from './components/StudySession.types';
23
23
  export * from './components/studentInputs/BaseUserInput';
24
24
  export { default as RadioMultipleChoice } from './components/studentInputs/RadioMultipleChoice.vue';
25
25
  export { default as MultipleChoiceOption } from './components/studentInputs/MultipleChoiceOption.vue';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.1.27",
6
+ "version": "0.1.29",
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.27",
37
- "@vue-skuilder/db": "0.1.27",
36
+ "@vue-skuilder/common": "0.1.29",
37
+ "@vue-skuilder/db": "0.1.29",
38
38
  "highlight.js": "^11.0.1",
39
39
  "marked": "^15.0.6",
40
40
  "moment": "^2.29.4",
@@ -70,5 +70,5 @@
70
70
  "vite-plugin-dts": "^4.5.3",
71
71
  "vitest": "^4.0.15"
72
72
  },
73
- "stableVersion": "0.1.27"
73
+ "stableVersion": "0.1.29"
74
74
  }
@@ -4,3 +4,11 @@
4
4
  export type StudySessionConfig = {
5
5
  likesConfetti: boolean;
6
6
  };
7
+
8
+ /**
9
+ * Built-in card transition presets provided by StudySession.
10
+ * Consumers can also pass any custom string to use their own CSS transition classes.
11
+ */
12
+ export type CardTransitionPreset = 'component-fade' | 'card-slide' | 'card-scale';
13
+
14
+ export type CardTransitionMode = 'out-in' | 'in-out' | 'default';
@@ -21,8 +21,8 @@
21
21
  <heat-map :activity-records-getter="() => user.getActivityRecords()" />
22
22
  </div>
23
23
 
24
- <div v-else ref="shadowWrapper">
25
- <transition name="component-fade" mode="out-in">
24
+ <div v-else ref="shadowWrapper" class="card-transition-container">
25
+ <transition :name="transitionName" :mode="transitionMode">
26
26
  <card-viewer
27
27
  ref="cardViewer"
28
28
  :key="cardID"
@@ -101,7 +101,7 @@ import {
101
101
  } from '@vue-skuilder/db';
102
102
  import confetti from 'canvas-confetti';
103
103
 
104
- import { StudySessionConfig } from './StudySession.types';
104
+ import { StudySessionConfig, CardTransitionPreset, CardTransitionMode } from './StudySession.types';
105
105
 
106
106
  interface StudyRefs {
107
107
  shadowWrapper: HTMLDivElement;
@@ -158,6 +158,14 @@ export default defineComponent({
158
158
  type: Boolean,
159
159
  default: false,
160
160
  },
161
+ transitionName: {
162
+ type: String as PropType<CardTransitionPreset | string>,
163
+ default: 'component-fade',
164
+ },
165
+ transitionMode: {
166
+ type: String as PropType<CardTransitionMode>,
167
+ default: 'out-in',
168
+ },
161
169
  },
162
170
 
163
171
  emits: [
@@ -446,13 +454,15 @@ export default defineComponent({
446
454
  handleUIFeedback(result: ResponseResult) {
447
455
  if (result.isCorrect) {
448
456
  // Handle correct response UI
449
- try {
450
- if (this.$refs.shadowWrapper && result.performanceScore !== undefined) {
451
- this.$refs.shadowWrapper.setAttribute('style', `--r: ${255 * (1 - result.performanceScore)}; --g:${255}`);
452
- this.$refs.shadowWrapper.classList.add('correct');
457
+ if (!this.frameless) {
458
+ try {
459
+ if (this.$refs.shadowWrapper && result.performanceScore !== undefined) {
460
+ this.$refs.shadowWrapper.setAttribute('style', `--r: ${255 * (1 - result.performanceScore)}; --g:${255}`);
461
+ this.$refs.shadowWrapper.classList.add('correct');
462
+ }
463
+ } catch (e) {
464
+ console.warn(`[StudySession] Error setting shadowWrapper style: ${e}`);
453
465
  }
454
- } catch (e) {
455
- console.warn(`[StudySession] Error setting shadowWrapper style: ${e}`);
456
466
  }
457
467
 
458
468
  // Show confetti for correct responses
@@ -468,17 +478,21 @@ export default defineComponent({
468
478
  }
469
479
  } else {
470
480
  // Handle incorrect response UI
471
- try {
472
- if (this.$refs.shadowWrapper) {
473
- this.$refs.shadowWrapper.classList.add('incorrect');
481
+ if (!this.frameless) {
482
+ try {
483
+ if (this.$refs.shadowWrapper) {
484
+ this.$refs.shadowWrapper.classList.add('incorrect');
485
+ }
486
+ } catch (e) {
487
+ console.warn(`[StudySession] Error setting shadowWrapper style: ${e}`);
474
488
  }
475
- } catch (e) {
476
- console.warn(`[StudySession] Error setting shadowWrapper style: ${e}`);
477
489
  }
478
490
  }
479
491
  },
480
492
 
481
493
  clearFeedbackShadow() {
494
+ if (this.frameless) return;
495
+
482
496
  setTimeout(() => {
483
497
  try {
484
498
  if (this.$refs.shadowWrapper) {
@@ -571,6 +585,12 @@ a {
571
585
  text-decoration: underline;
572
586
  }
573
587
 
588
+ .card-transition-container {
589
+ position: relative;
590
+ overflow: hidden;
591
+ }
592
+
593
+ /* Preset: component-fade (default) — simple opacity crossfade, use with mode="out-in" */
574
594
  .component-fade-enter-active,
575
595
  .component-fade-leave-active {
576
596
  transition: opacity 0.2s ease;
@@ -580,6 +600,42 @@ a {
580
600
  opacity: 0;
581
601
  }
582
602
 
603
+ /* Preset: card-slide — simultaneous slide left-out / right-in, use with mode="default" */
604
+ .card-slide-leave-active {
605
+ transition: transform 200ms ease-in, opacity 200ms ease-in;
606
+ position: absolute;
607
+ width: 100%;
608
+ top: 0;
609
+ left: 0;
610
+ }
611
+ .card-slide-enter-active {
612
+ transition: transform 200ms ease-out, opacity 150ms ease-out;
613
+ }
614
+ .card-slide-leave-to {
615
+ transform: translateX(-100%);
616
+ opacity: 0.2;
617
+ }
618
+ .card-slide-enter-from {
619
+ transform: translateX(100%);
620
+ opacity: 0.6;
621
+ }
622
+
623
+ /* Preset: card-scale — scale-down exit / gentle overshoot enter, use with mode="out-in" */
624
+ .card-scale-leave-active {
625
+ transition: transform 150ms ease-in, opacity 150ms ease-in;
626
+ }
627
+ .card-scale-enter-active {
628
+ transition: transform 200ms cubic-bezier(0.34, 1.4, 0.64, 1), opacity 150ms ease-out;
629
+ }
630
+ .card-scale-leave-to {
631
+ transform: scale(0.92);
632
+ opacity: 0;
633
+ }
634
+ .card-scale-enter-from {
635
+ transform: scale(1.03);
636
+ opacity: 0;
637
+ }
638
+
583
639
  @keyframes varFade {
584
640
  0% {
585
641
  box-shadow:
package/src/index.ts CHANGED
@@ -36,7 +36,7 @@ export * from './composables/useEntitlements';
36
36
  export { default as StudySession } from './components/StudySession.vue';
37
37
  export { default as StudySessionTimer } from './components/StudySessionTimer.vue';
38
38
  export { default as SessionControllerDebug } from './components/SessionControllerDebug.vue';
39
- export type { StudySessionConfig } from './components/StudySession.types';
39
+ export type { StudySessionConfig, CardTransitionPreset, CardTransitionMode } from './components/StudySession.types';
40
40
 
41
41
  /*
42
42
  studentInputs