@vue-skuilder/common-ui 0.1.28 → 0.1.30

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,OAinBO,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;;qBAsDhB,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;mBAO/C,YAAY,GAAG,IAAI;;;;;;;cArXvB,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,wBAkbG"}
1
+ {"version":3,"file":"StudySession.vue.d.ts","sourceRoot":"","sources":["../../src/components/StudySession.vue"],"names":[],"mappings":"AA0EA;AAAA,OA0sBO,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.28",
6
+ "version": "0.1.30",
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.28",
37
- "@vue-skuilder/db": "0.1.28",
36
+ "@vue-skuilder/common": "0.1.30",
37
+ "@vue-skuilder/db": "0.1.30",
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.28"
73
+ "stableVersion": "0.1.30"
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';
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div v-if="sessionPrepared" class="StudySession">
3
- <v-row align="center">
3
+ <v-row v-if="!frameless" align="center">
4
4
  <!-- <h1 class="text-h3" v-if="courseNames[courseID]">{{ courseNames[courseID] }}:</h1> -->
5
5
  <v-spacer></v-spacer>
6
6
  <v-progress-circular v-if="loading" color="primary" indeterminate size="32" width="4" />
@@ -9,7 +9,7 @@
9
9
  <!-- Debug Panel (only visible if window.debugMode is true) -->
10
10
  <session-controller-debug v-if="debugMode" :session-controller="sessionController" />
11
11
 
12
- <br />
12
+ <br v-if="!frameless" />
13
13
 
14
14
  <div v-if="sessionFinished" class="text-h4">
15
15
  <p>Study session finished! Great job!</p>
@@ -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"
@@ -40,10 +40,12 @@
40
40
  </transition>
41
41
  </div>
42
42
 
43
- <br />
44
- <div v-if="sessionController">
45
- <span v-for="i in sessionController.failedCount" :key="i" class="text-h5">•</span>
46
- </div>
43
+ <template v-if="!frameless">
44
+ <br />
45
+ <div v-if="sessionController">
46
+ <span v-for="i in sessionController.failedCount" :key="i" class="text-h5">•</span>
47
+ </div>
48
+ </template>
47
49
 
48
50
  <!--
49
51
  todo: reinstate tag editing at session-time ?
@@ -101,7 +103,7 @@ import {
101
103
  } from '@vue-skuilder/db';
102
104
  import confetti from 'canvas-confetti';
103
105
 
104
- import { StudySessionConfig } from './StudySession.types';
106
+ import { StudySessionConfig, CardTransitionPreset, CardTransitionMode } from './StudySession.types';
105
107
 
106
108
  interface StudyRefs {
107
109
  shadowWrapper: HTMLDivElement;
@@ -158,6 +160,14 @@ export default defineComponent({
158
160
  type: Boolean,
159
161
  default: false,
160
162
  },
163
+ transitionName: {
164
+ type: String as PropType<CardTransitionPreset | string>,
165
+ default: 'component-fade',
166
+ },
167
+ transitionMode: {
168
+ type: String as PropType<CardTransitionMode>,
169
+ default: 'out-in',
170
+ },
161
171
  },
162
172
 
163
173
  emits: [
@@ -577,6 +587,24 @@ a {
577
587
  text-decoration: underline;
578
588
  }
579
589
 
590
+ .StudySession {
591
+ flex: 1;
592
+ display: flex;
593
+ flex-direction: column;
594
+ min-height: 0;
595
+ }
596
+
597
+ .card-transition-container {
598
+ position: relative;
599
+ overflow: hidden;
600
+ flex: 1;
601
+ min-height: 0;
602
+ display: flex;
603
+ flex-direction: column;
604
+ justify-content: center;
605
+ }
606
+
607
+ /* Preset: component-fade (default) — simple opacity crossfade, use with mode="out-in" */
580
608
  .component-fade-enter-active,
581
609
  .component-fade-leave-active {
582
610
  transition: opacity 0.2s ease;
@@ -586,6 +614,67 @@ a {
586
614
  opacity: 0;
587
615
  }
588
616
 
617
+ /* Preset: card-slide — backOutLeft exit / slide-in-right enter, use with mode="default" */
618
+ .card-slide-leave-active {
619
+ animation: cardBackOutLeft 400ms cubic-bezier(0.4, 0, 0.7, 0.2) both;
620
+ position: absolute;
621
+ top: 50%;
622
+ left: 0;
623
+ right: 0;
624
+ will-change: transform, opacity;
625
+ pointer-events: none;
626
+ }
627
+ .card-slide-leave-active * {
628
+ animation-play-state: paused !important;
629
+ transition: none !important;
630
+ }
631
+ .card-slide-enter-active {
632
+ animation: cardSlideInRight 250ms ease-out 100ms both;
633
+ will-change: transform, opacity;
634
+ }
635
+
636
+ @keyframes cardBackOutLeft {
637
+ 0% {
638
+ transform: translateX(0) translateY(-50%) scale(1);
639
+ opacity: 1;
640
+ }
641
+ 40% {
642
+ transform: translateX(0) translateY(-50%) scale(0.88);
643
+ opacity: 0.8;
644
+ }
645
+ 100% {
646
+ transform: translateX(-100%) translateY(-50%) scale(0.88);
647
+ opacity: 0;
648
+ }
649
+ }
650
+
651
+ @keyframes cardSlideInRight {
652
+ 0% {
653
+ transform: translateX(60%);
654
+ opacity: 0;
655
+ }
656
+ 100% {
657
+ transform: translateX(0);
658
+ opacity: 1;
659
+ }
660
+ }
661
+
662
+ /* Preset: card-scale — scale-down exit / gentle overshoot enter, use with mode="out-in" */
663
+ .card-scale-leave-active {
664
+ transition: transform 150ms ease-in, opacity 150ms ease-in;
665
+ }
666
+ .card-scale-enter-active {
667
+ transition: transform 200ms cubic-bezier(0.34, 1.4, 0.64, 1), opacity 150ms ease-out;
668
+ }
669
+ .card-scale-leave-to {
670
+ transform: scale(0.92);
671
+ opacity: 0;
672
+ }
673
+ .card-scale-enter-from {
674
+ transform: scale(1.03);
675
+ opacity: 0;
676
+ }
677
+
589
678
  @keyframes varFade {
590
679
  0% {
591
680
  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