@slidev/client 52.14.1 → 52.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/builtin/BlueSky.vue +167 -0
  2. package/builtin/CodeBlockWrapper.vue +1 -1
  3. package/builtin/Link.vue +2 -2
  4. package/builtin/Monaco.vue +1 -2
  5. package/builtin/Tweet.vue +1 -1
  6. package/builtin/VClick.ts +8 -0
  7. package/builtin/VClicks.ts +24 -4
  8. package/builtin/VDrag.vue +1 -0
  9. package/composables/useDragElements.ts +5 -2
  10. package/composables/useDrawings.ts +6 -6
  11. package/composables/useMousePosInSlide.ts +21 -0
  12. package/composables/usePreloadImages.ts +2 -1
  13. package/composables/useSlideInfo.ts +1 -2
  14. package/constants.ts +2 -1
  15. package/internals/DrawingControls.vue +2 -2
  16. package/internals/Goto.vue +1 -1
  17. package/internals/IconButton.vue +3 -1
  18. package/internals/LaserPointer.vue +66 -0
  19. package/internals/MenuButton.vue +1 -1
  20. package/internals/NavControls.vue +28 -18
  21. package/internals/PresenterMouse.vue +1 -1
  22. package/internals/Settings.vue +10 -1
  23. package/internals/ShikiEditor.vue +2 -4
  24. package/internals/SideEditor.vue +3 -1
  25. package/internals/SlideContainer.vue +18 -1
  26. package/logic/recording.ts +16 -8
  27. package/logic/slides.ts +23 -11
  28. package/modules/v-click.ts +42 -8
  29. package/package.json +23 -22
  30. package/pages/404.vue +3 -1
  31. package/pages/export.vue +5 -1
  32. package/pages/notes-edit.vue +3 -1
  33. package/pages/play.vue +2 -0
  34. package/pages/presenter.vue +18 -23
  35. package/setup/main.ts +1 -2
  36. package/setup/monaco.ts +4 -4
  37. package/setup/root.ts +1 -1
  38. package/shim-vue.d.ts +3 -1
  39. package/state/shared.ts +1 -0
  40. package/state/storage.ts +7 -0
  41. package/styles/index.css +8 -22
  42. package/styles/index.ts +23 -0
  43. package/styles/layouts-base.css +1 -1
  44. package/styles/vclick.css +54 -0
package/state/storage.ts CHANGED
@@ -55,6 +55,13 @@ export const skipExportPdfTip = useLocalStorage('slidev-skip-export-pdf-tip', fa
55
55
  export const captureDelay = useLocalStorage('slidev-export-capture-delay', 400, { listenToStorageChanges: false })
56
56
 
57
57
  export const showPresenterCursor = useLocalStorage('slidev-presenter-cursor', true, { listenToStorageChanges: false })
58
+
59
+ export const cursorStyle = useLocalStorage<'cursor' | 'laser'>('slidev-cursor-style', 'cursor', { listenToStorageChanges: false })
60
+
61
+ export function togglePresenterCursor() {
62
+ showPresenterCursor.value = !showPresenterCursor.value
63
+ }
64
+
58
65
  export const showEditor = useLocalStorage('slidev-show-editor', false, { listenToStorageChanges: false })
59
66
  export const isEditorVertical = useLocalStorage('slidev-editor-vertical', false, { listenToStorageChanges: false })
60
67
  export const editorWidth = useLocalStorage('slidev-editor-width', isClient ? window.innerWidth * 0.4 : 318, { listenToStorageChanges: false })
package/styles/index.css CHANGED
@@ -45,24 +45,6 @@ html {
45
45
  @apply border-none hover:border-none hover:text-white;
46
46
  }
47
47
 
48
- .slidev-vclick-target {
49
- @apply transition-opacity duration-100;
50
- }
51
-
52
- .slidev-vclick-hidden {
53
- opacity: 0 !important;
54
- pointer-events: none !important;
55
- user-select: none !important;
56
- }
57
-
58
- .slidev-vclick-display-none {
59
- display: none !important;
60
- }
61
-
62
- .slidev-vclick-fade {
63
- opacity: 0.5;
64
- }
65
-
66
48
  .slidev-icon {
67
49
  display: inline-block;
68
50
  vertical-align: sub;
@@ -142,11 +124,15 @@ html {
142
124
 
143
125
  #twoslash-container {
144
126
  position: fixed;
145
- }
146
127
 
147
- #twoslash-container .v-popper__wrapper:not(.no-slide-scale > *) {
148
- transform: scale(calc(1 * var(--slidev-slide-scale)));
149
- transform-origin: 30px top;
128
+ .v-popper__wrapper:not(.no-slide-scale > *) {
129
+ zoom: var(--slidev-slide-scale);
130
+ }
131
+
132
+ .v-popper__popper:not(.no-slide-scale > *) {
133
+ translate: calc(10px * (1 - var(--slidev-slide-scale))) 0;
134
+ width: max-content;
135
+ }
150
136
  }
151
137
 
152
138
  .slidev-note ul {
@@ -0,0 +1,23 @@
1
+ import '@unocss/reset/tailwind.css'
2
+
3
+ import 'uno:preflights.css'
4
+ import 'uno:typography.css'
5
+ import 'uno:shortcuts.css'
6
+
7
+ import '@shikijs/vitepress-twoslash/style.css'
8
+ import 'shiki-magic-move/style.css'
9
+ import 'markdown-it-github-alerts/styles/github-colors-light.css'
10
+ import 'markdown-it-github-alerts/styles/github-colors-dark-media.css'
11
+ import 'markdown-it-github-alerts/styles/github-base.css'
12
+
13
+ import './vars.css'
14
+ import './index.css'
15
+ import './code.css'
16
+ import './katex.css'
17
+ import './transitions.css'
18
+ import './shiki-twoslash.css'
19
+ import './vclick.css'
20
+
21
+ import '#slidev/conditional-styles'
22
+
23
+ import 'uno.css'
@@ -34,7 +34,7 @@
34
34
  @apply text-sm pt-1 uppercase tracking-widest font-500;
35
35
  }
36
36
 
37
- h6:not(.opacity-100) {
37
+ :where(&) h6 {
38
38
  @apply opacity-40;
39
39
  }
40
40
 
@@ -0,0 +1,54 @@
1
+ .slidev-vclick-target {
2
+ transition: all 0.1s ease;
3
+
4
+ &.slidev-vclick-anim-none {
5
+ transition: none;
6
+ }
7
+
8
+ &.slidev-vclick-anim-fade-in {
9
+ transition: all 0.3s ease;
10
+ }
11
+ }
12
+
13
+ .slidev-vclick-hidden {
14
+ opacity: 0 !important;
15
+ pointer-events: none !important;
16
+ user-select: none !important;
17
+
18
+ &.slidev-vclick-anim-fade {
19
+ opacity: 0.5 !important;
20
+ }
21
+
22
+ &.slidev-vclick-anim-fade-in {
23
+ opacity: 0 !important;
24
+ }
25
+
26
+ &.slidev-vclick-anim-up {
27
+ translate: 0 20px;
28
+ }
29
+
30
+ &.slidev-vclick-anim-down {
31
+ translate: 0 -20px;
32
+ }
33
+
34
+ &.slidev-vclick-anim-left {
35
+ translate: 20px 0;
36
+ }
37
+
38
+ &.slidev-vclick-anim-right {
39
+ translate: -20px 0;
40
+ }
41
+
42
+ &.slidev-vclick-anim-scale {
43
+ scale: 0.9;
44
+ }
45
+ }
46
+
47
+ .slidev-vclick-display-none {
48
+ display: none !important;
49
+ }
50
+
51
+ /* No longer used, but kept for backward compatibility */
52
+ .slidev-vclick-fade {
53
+ opacity: 0.5;
54
+ }