@abraca/nuxt 2.0.0 → 2.0.3
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/module.d.mts +18 -7
- package/dist/module.json +1 -1
- package/dist/module.mjs +21 -5
- package/dist/runtime/assets/aware-tokens.css +1 -0
- package/dist/runtime/components/AAccountSwitcherModal.d.vue.ts +16 -1
- package/dist/runtime/components/AAccountSwitcherModal.vue +33 -4
- package/dist/runtime/components/AAccountSwitcherModal.vue.d.ts +16 -1
- package/dist/runtime/components/AAuthLinkLanding.d.vue.ts +3 -0
- package/dist/runtime/components/AAuthLinkLanding.vue +85 -0
- package/dist/runtime/components/AAuthLinkLanding.vue.d.ts +3 -0
- package/dist/runtime/components/AClaimAccountModal.d.vue.ts +7 -1
- package/dist/runtime/components/AClaimAccountModal.vue +28 -13
- package/dist/runtime/components/AClaimAccountModal.vue.d.ts +7 -1
- package/dist/runtime/components/AEditor.vue +5 -0
- package/dist/runtime/components/AEmailVerifyConfirmModal.d.vue.ts +30 -0
- package/dist/runtime/components/AEmailVerifyConfirmModal.vue +100 -0
- package/dist/runtime/components/AEmailVerifyConfirmModal.vue.d.ts +30 -0
- package/dist/runtime/components/AEmailVerifyRequestCard.d.vue.ts +22 -0
- package/dist/runtime/components/AEmailVerifyRequestCard.vue +65 -0
- package/dist/runtime/components/AEmailVerifyRequestCard.vue.d.ts +22 -0
- package/dist/runtime/components/AMnemonicLoginModal.d.vue.ts +1 -1
- package/dist/runtime/components/AMnemonicLoginModal.vue.d.ts +1 -1
- package/dist/runtime/components/ANodePanel.vue +2 -0
- package/dist/runtime/components/ANotificationBell.d.vue.ts +2 -2
- package/dist/runtime/components/ANotificationBell.vue.d.ts +2 -2
- package/dist/runtime/components/APasswordChangeModal.d.vue.ts +28 -0
- package/dist/runtime/components/APasswordChangeModal.vue +178 -0
- package/dist/runtime/components/APasswordChangeModal.vue.d.ts +28 -0
- package/dist/runtime/components/APasswordLoginModal.d.vue.ts +42 -0
- package/dist/runtime/components/APasswordLoginModal.vue +177 -0
- package/dist/runtime/components/APasswordLoginModal.vue.d.ts +42 -0
- package/dist/runtime/components/APasswordRegisterModal.d.vue.ts +49 -0
- package/dist/runtime/components/APasswordRegisterModal.vue +262 -0
- package/dist/runtime/components/APasswordRegisterModal.vue.d.ts +49 -0
- package/dist/runtime/components/APasswordResetConfirmModal.d.vue.ts +31 -0
- package/dist/runtime/components/APasswordResetConfirmModal.vue +154 -0
- package/dist/runtime/components/APasswordResetConfirmModal.vue.d.ts +31 -0
- package/dist/runtime/components/APasswordResetRequestModal.d.vue.ts +35 -0
- package/dist/runtime/components/APasswordResetRequestModal.vue +113 -0
- package/dist/runtime/components/APasswordResetRequestModal.vue.d.ts +35 -0
- package/dist/runtime/components/ASetPasswordCard.d.vue.ts +26 -0
- package/dist/runtime/components/ASetPasswordCard.vue +139 -0
- package/dist/runtime/components/ASetPasswordCard.vue.d.ts +26 -0
- package/dist/runtime/components/ASubPageList.d.vue.ts +66 -0
- package/dist/runtime/components/ASubPageList.vue +147 -0
- package/dist/runtime/components/ASubPageList.vue.d.ts +66 -0
- package/dist/runtime/components/aware/AAccordion.d.vue.ts +2 -0
- package/dist/runtime/components/aware/AAccordion.vue +11 -1
- package/dist/runtime/components/aware/AAccordion.vue.d.ts +2 -0
- package/dist/runtime/components/aware/AButton.vue +3 -3
- package/dist/runtime/components/aware/ACollapsible.d.vue.ts +2 -0
- package/dist/runtime/components/aware/ACollapsible.vue +9 -1
- package/dist/runtime/components/aware/ACollapsible.vue.d.ts +2 -0
- package/dist/runtime/components/aware/AGlobalFocusLayer.vue +1 -1
- package/dist/runtime/components/aware/AHoverItem.vue +28 -3
- package/dist/runtime/components/aware/AMedia.d.vue.ts +1 -1
- package/dist/runtime/components/aware/AMedia.vue.d.ts +1 -1
- package/dist/runtime/components/aware/AModal.d.vue.ts +2 -0
- package/dist/runtime/components/aware/AModal.vue +9 -1
- package/dist/runtime/components/aware/AModal.vue.d.ts +2 -0
- package/dist/runtime/components/aware/APresenceBlobs.vue +1 -1
- package/dist/runtime/components/aware/APresenceCursors.vue +1 -1
- package/dist/runtime/components/aware/AScroll.d.vue.ts +2 -0
- package/dist/runtime/components/aware/AScroll.vue +13 -3
- package/dist/runtime/components/aware/AScroll.vue.d.ts +2 -0
- package/dist/runtime/components/aware/ASlideover.d.vue.ts +2 -0
- package/dist/runtime/components/aware/ASlideover.vue +9 -1
- package/dist/runtime/components/aware/ASlideover.vue.d.ts +2 -0
- package/dist/runtime/components/aware/ASlider.vue +1 -0
- package/dist/runtime/components/aware/ATabs.d.vue.ts +2 -0
- package/dist/runtime/components/aware/ATabs.vue +9 -1
- package/dist/runtime/components/aware/ATabs.vue.d.ts +2 -0
- package/dist/runtime/components/chat/ANodeChatPanel.vue +1 -0
- package/dist/runtime/components/editor/AEditorRedoButton.d.vue.ts +2 -2
- package/dist/runtime/components/editor/AEditorRedoButton.vue.d.ts +2 -2
- package/dist/runtime/components/editor/AEditorUndoButton.d.vue.ts +2 -2
- package/dist/runtime/components/editor/AEditorUndoButton.vue.d.ts +2 -2
- package/dist/runtime/components/renderers/calendar/ACalendarToolbar.d.vue.ts +4 -4
- package/dist/runtime/components/renderers/calendar/ACalendarToolbar.vue.d.ts +4 -4
- package/dist/runtime/components/renderers/media/MediaTransportBar.d.vue.ts +2 -2
- package/dist/runtime/components/renderers/media/MediaTransportBar.vue.d.ts +2 -2
- package/dist/runtime/components/shell/AUserProfilePopover.d.vue.ts +1 -1
- package/dist/runtime/components/shell/AUserProfilePopover.vue.d.ts +1 -1
- package/dist/runtime/composables/useAAField.js +7 -4
- package/dist/runtime/composables/useAAFocus.js +10 -5
- package/dist/runtime/composables/useAAFollowAnchor.js +68 -34
- package/dist/runtime/composables/useAAFollowPeer.d.ts +7 -4
- package/dist/runtime/composables/useAAFollowPeer.js +60 -11
- package/dist/runtime/composables/useAAViewport.d.ts +1 -1
- package/dist/runtime/composables/useAbracadabraAuth.d.ts +2 -0
- package/dist/runtime/composables/useAbracadabraAuth.js +2 -0
- package/dist/runtime/composables/useEditorSuggestions.js +2 -1
- package/dist/runtime/composables/useEmailVerification.d.ts +40 -26
- package/dist/runtime/composables/useEmailVerification.js +95 -43
- package/dist/runtime/composables/usePasswordAuth.d.ts +64 -0
- package/dist/runtime/composables/usePasswordAuth.js +126 -0
- package/dist/runtime/composables/useTiptapHistory.d.ts +2 -2
- package/dist/runtime/composables/useTiptapHistory.js +5 -5
- package/dist/runtime/extensions/svg-embed.d.ts +23 -0
- package/dist/runtime/extensions/svg-embed.js +33 -0
- package/dist/runtime/extensions/views/MetaFieldView.vue +23 -6
- package/dist/runtime/extensions/views/SvgEmbedView.d.vue.ts +4 -0
- package/dist/runtime/extensions/views/SvgEmbedView.vue +120 -0
- package/dist/runtime/extensions/views/SvgEmbedView.vue.d.ts +4 -0
- package/dist/runtime/plugin-abracadabra.client.js +58 -9
- package/dist/runtime/plugin-abracadabra.server.js +2 -0
- package/dist/runtime/plugins/core.plugin.js +8 -4
- package/dist/runtime/server/plugins/abracadabra-service.js +102 -13
- package/dist/runtime/types.d.ts +11 -0
- package/dist/runtime/utils/awareRingStyle.js +1 -1
- package/dist/runtime/utils/sanitizeSvg.d.ts +19 -0
- package/dist/runtime/utils/sanitizeSvg.js +87 -0
- package/package.json +7 -8
- package/dist/runtime/components/renderers/ASpatialRenderer.d.vue.ts +0 -19
- package/dist/runtime/components/renderers/ASpatialRenderer.vue +0 -459
- package/dist/runtime/components/renderers/ASpatialRenderer.vue.d.ts +0 -19
- package/dist/runtime/components/renderers/spatial/SpatialGround.d.vue.ts +0 -20
- package/dist/runtime/components/renderers/spatial/SpatialGround.vue +0 -26
- package/dist/runtime/components/renderers/spatial/SpatialGround.vue.d.ts +0 -20
- package/dist/runtime/components/renderers/spatial/SpatialObject.d.vue.ts +0 -17
- package/dist/runtime/components/renderers/spatial/SpatialObject.vue +0 -257
- package/dist/runtime/components/renderers/spatial/SpatialObject.vue.d.ts +0 -17
- package/dist/runtime/components/renderers/spatial/SpatialSceneBridge.d.vue.ts +0 -15
- package/dist/runtime/components/renderers/spatial/SpatialSceneBridge.vue +0 -18
- package/dist/runtime/components/renderers/spatial/SpatialSceneBridge.vue.d.ts +0 -15
- package/dist/runtime/components/renderers/spatial/SpatialTransformInputs.d.vue.ts +0 -16
- package/dist/runtime/components/renderers/spatial/SpatialTransformInputs.vue +0 -66
- package/dist/runtime/components/renderers/spatial/SpatialTransformInputs.vue.d.ts +0 -16
- package/dist/runtime/components/renderers/spatial/SpatialUserAvatar.d.vue.ts +0 -8
- package/dist/runtime/components/renderers/spatial/SpatialUserAvatar.vue +0 -53
- package/dist/runtime/components/renderers/spatial/SpatialUserAvatar.vue.d.ts +0 -8
- package/dist/runtime/composables/useSpatialCamera.d.ts +0 -16
- package/dist/runtime/composables/useSpatialCamera.js +0 -175
- package/dist/runtime/composables/useSpatialDrag.d.ts +0 -14
- package/dist/runtime/composables/useSpatialDrag.js +0 -137
|
@@ -2,6 +2,7 @@ type __VLS_Props = {
|
|
|
2
2
|
fieldKey: string;
|
|
3
3
|
awareness?: boolean;
|
|
4
4
|
live?: boolean;
|
|
5
|
+
followOnly?: boolean;
|
|
5
6
|
total?: boolean;
|
|
6
7
|
};
|
|
7
8
|
declare var __VLS_9: string, __VLS_10: any, __VLS_27: string, __VLS_28: any;
|
|
@@ -13,6 +14,7 @@ type __VLS_Slots = {} & {
|
|
|
13
14
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
14
15
|
awareness: boolean;
|
|
15
16
|
live: boolean;
|
|
17
|
+
followOnly: boolean;
|
|
16
18
|
total: boolean;
|
|
17
19
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
20
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -7,7 +7,7 @@ const props = defineProps({
|
|
|
7
7
|
fieldKey: { type: String, required: true },
|
|
8
8
|
max: { type: Number, required: false, default: 3 }
|
|
9
9
|
});
|
|
10
|
-
const { hoverers, focusers, pressers, isPressed, handlers } = useAAField(() => props.fieldKey);
|
|
10
|
+
const { hoverers, focusers, pressers, isPressed, localPress, handlers } = useAAField(() => props.fieldKey);
|
|
11
11
|
const ringStyle = computed(() => awareRingStyle({
|
|
12
12
|
hover: hoverers.value[0]?.user?.color,
|
|
13
13
|
focus: focusers.value[0]?.user?.color,
|
|
@@ -31,7 +31,7 @@ const overlayPeers = computed(() => {
|
|
|
31
31
|
return out;
|
|
32
32
|
});
|
|
33
33
|
const pulseKey = ref(0);
|
|
34
|
-
watch(
|
|
34
|
+
watch(localPress, (val, prev) => {
|
|
35
35
|
if (val && !prev) pulseKey.value++;
|
|
36
36
|
});
|
|
37
37
|
const pulseColor = computed(
|
|
@@ -72,5 +72,5 @@ const pulseColor = computed(
|
|
|
72
72
|
</template>
|
|
73
73
|
|
|
74
74
|
<style scoped>
|
|
75
|
-
.aa-host{border-radius:var(--ui-radius,.375rem);position:relative;transition:filter
|
|
75
|
+
.aa-host{border-radius:var(--ui-radius,.375rem);position:relative;transition:filter var(--aa-state-fade-filter),box-shadow var(--aa-state-fade-shadow)}.aa-host--inline{display:inline-flex}.aa-host--pressed{filter:brightness(.88)}.aa-press-pulse{animation:aa-press-pulse var(--aa-pulse-duration) var(--aa-pulse-easing) forwards;border-radius:inherit;inset:0;pointer-events:none;position:absolute}@keyframes aa-press-pulse{0%{box-shadow:0 0 0 0 var(--aa-pulse-color);opacity:var(--aa-pulse-opacity-start-button)}to{box-shadow:0 0 0 var(--aa-pulse-radius-button) var(--aa-pulse-color);opacity:0}}.aa-overlay{display:flex;pointer-events:none;position:absolute;right:0;top:-.625rem;z-index:10}.aa-overlay>*+*{margin-left:-.25rem}.aa-peer-enter-active,.aa-peer-leave-active{transition:opacity var(--aa-peer-fade-duration) var(--aa-peer-fade-easing)}.aa-peer-enter-from,.aa-peer-leave-to{opacity:0}
|
|
76
76
|
</style>
|
|
@@ -2,6 +2,7 @@ type __VLS_Props = {
|
|
|
2
2
|
fieldKey: string;
|
|
3
3
|
awareness?: boolean;
|
|
4
4
|
live?: boolean;
|
|
5
|
+
followOnly?: boolean;
|
|
5
6
|
total?: boolean;
|
|
6
7
|
};
|
|
7
8
|
declare var __VLS_10: string, __VLS_11: any, __VLS_22: string, __VLS_23: any;
|
|
@@ -13,6 +14,7 @@ type __VLS_Slots = {} & {
|
|
|
13
14
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
14
15
|
awareness: boolean;
|
|
15
16
|
live: boolean;
|
|
17
|
+
followOnly: boolean;
|
|
16
18
|
total: boolean;
|
|
17
19
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
20
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { computed, ref, useAttrs, watch } from "vue";
|
|
3
3
|
import { useAAUIState } from "../../composables/useAAUIState";
|
|
4
|
+
import { useAAFollowPeer } from "../../composables/useAAFollowPeer";
|
|
4
5
|
defineOptions({ inheritAttrs: false });
|
|
5
6
|
const props = defineProps({
|
|
6
7
|
fieldKey: { type: String, required: true },
|
|
7
8
|
awareness: { type: Boolean, required: false, default: true },
|
|
8
9
|
live: { type: Boolean, required: false, default: false },
|
|
10
|
+
followOnly: { type: Boolean, required: false, default: false },
|
|
9
11
|
total: { type: Boolean, required: false, default: false }
|
|
10
12
|
});
|
|
11
|
-
const
|
|
13
|
+
const { isFollowing } = useAAFollowPeer();
|
|
14
|
+
const enableLive = computed(() => props.live || props.total || props.followOnly && isFollowing.value);
|
|
12
15
|
const attrs = useAttrs();
|
|
13
16
|
const liveOpen = useAAUIState(() => `${props.fieldKey}:open`, { defaultValue: false });
|
|
14
17
|
const hasExternalOpen = computed(() => "open" in attrs || "onUpdate:open" in attrs);
|
|
@@ -22,6 +25,11 @@ watch(local, (val) => {
|
|
|
22
25
|
if (!enableLive.value) return;
|
|
23
26
|
if (!!liveOpen.value !== val) liveOpen.value = val;
|
|
24
27
|
});
|
|
28
|
+
watch(enableLive, (now, prev) => {
|
|
29
|
+
if (!now || prev) return;
|
|
30
|
+
const incoming = !!liveOpen.value;
|
|
31
|
+
if (local.value !== incoming) local.value = incoming;
|
|
32
|
+
});
|
|
25
33
|
</script>
|
|
26
34
|
|
|
27
35
|
<template>
|
|
@@ -2,6 +2,7 @@ type __VLS_Props = {
|
|
|
2
2
|
fieldKey: string;
|
|
3
3
|
awareness?: boolean;
|
|
4
4
|
live?: boolean;
|
|
5
|
+
followOnly?: boolean;
|
|
5
6
|
total?: boolean;
|
|
6
7
|
};
|
|
7
8
|
declare var __VLS_10: string, __VLS_11: any, __VLS_22: string, __VLS_23: any;
|
|
@@ -13,6 +14,7 @@ type __VLS_Slots = {} & {
|
|
|
13
14
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
14
15
|
awareness: boolean;
|
|
15
16
|
live: boolean;
|
|
17
|
+
followOnly: boolean;
|
|
16
18
|
total: boolean;
|
|
17
19
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
20
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -8,7 +8,7 @@ const props = defineProps({
|
|
|
8
8
|
showFlag: { type: Boolean, required: false, default: true },
|
|
9
9
|
tinted: { type: Boolean, required: false, default: true }
|
|
10
10
|
});
|
|
11
|
-
const { hoverers, focusers, pressers,
|
|
11
|
+
const { hoverers, focusers, pressers, localPress, onMouseenter, onMouseleave, onMousedown, onMouseup } = useAAField(() => props.fieldKey);
|
|
12
12
|
const wrapperRef = ref(null);
|
|
13
13
|
const rowEl = ref(null);
|
|
14
14
|
const ROW_SELECTOR = [
|
|
@@ -23,6 +23,20 @@ const ROW_SELECTOR = [
|
|
|
23
23
|
".aa-row-target"
|
|
24
24
|
].join(", ");
|
|
25
25
|
let savedStyle = { background: "", boxShadow: "", position: "" };
|
|
26
|
+
let kbHighlighted = false;
|
|
27
|
+
let kbObserver = null;
|
|
28
|
+
function isKeyboardHighlighted(row) {
|
|
29
|
+
return row.hasAttribute("data-highlighted") || row.getAttribute("data-state") === "checked" || row.getAttribute("aria-selected") === "true";
|
|
30
|
+
}
|
|
31
|
+
function syncKeyboardHighlight() {
|
|
32
|
+
const row = rowEl.value;
|
|
33
|
+
if (!row) return;
|
|
34
|
+
const next = isKeyboardHighlighted(row);
|
|
35
|
+
if (next === kbHighlighted) return;
|
|
36
|
+
kbHighlighted = next;
|
|
37
|
+
if (next) onMouseenter();
|
|
38
|
+
else onMouseleave();
|
|
39
|
+
}
|
|
26
40
|
function attachToRow() {
|
|
27
41
|
const wrapper = wrapperRef.value;
|
|
28
42
|
if (!wrapper) return;
|
|
@@ -39,6 +53,13 @@ function attachToRow() {
|
|
|
39
53
|
row.addEventListener("mouseleave", onMouseleave);
|
|
40
54
|
row.addEventListener("mousedown", onMousedown);
|
|
41
55
|
row.addEventListener("mouseup", onMouseup);
|
|
56
|
+
kbObserver?.disconnect();
|
|
57
|
+
kbObserver = new MutationObserver(syncKeyboardHighlight);
|
|
58
|
+
kbObserver.observe(row, {
|
|
59
|
+
attributes: true,
|
|
60
|
+
attributeFilter: ["data-highlighted", "data-state", "aria-selected"]
|
|
61
|
+
});
|
|
62
|
+
syncKeyboardHighlight();
|
|
42
63
|
}
|
|
43
64
|
function detachFromRow() {
|
|
44
65
|
const row = rowEl.value;
|
|
@@ -49,6 +70,10 @@ function detachFromRow() {
|
|
|
49
70
|
row.removeEventListener("mouseup", onMouseup);
|
|
50
71
|
row.style.backgroundColor = savedStyle.background;
|
|
51
72
|
row.style.boxShadow = savedStyle.boxShadow;
|
|
73
|
+
if (kbHighlighted) onMouseleave();
|
|
74
|
+
kbHighlighted = false;
|
|
75
|
+
kbObserver?.disconnect();
|
|
76
|
+
kbObserver = null;
|
|
52
77
|
rowEl.value = null;
|
|
53
78
|
}
|
|
54
79
|
onMounted(attachToRow);
|
|
@@ -90,7 +115,7 @@ const flagPeer = computed(
|
|
|
90
115
|
() => pressers.value[0] ?? focusers.value[0] ?? hoverers.value[0]
|
|
91
116
|
);
|
|
92
117
|
const pulseKey = ref(0);
|
|
93
|
-
watch(
|
|
118
|
+
watch(localPress, (val, prev) => {
|
|
94
119
|
if (val && !prev) pulseKey.value++;
|
|
95
120
|
});
|
|
96
121
|
const pulseColor = computed(() => pressers.value[0]?.user?.color ?? "currentColor");
|
|
@@ -120,5 +145,5 @@ const pulseColor = computed(() => pressers.value[0]?.user?.color ?? "currentColo
|
|
|
120
145
|
</template>
|
|
121
146
|
|
|
122
147
|
<style scoped>
|
|
123
|
-
.aa-item{border-radius:inherit;display:contents;position:relative}.aa-item--inline{align-items:center;display:inline-flex}.aa-item__pulse{animation:aa-item-pulse
|
|
148
|
+
.aa-item{border-radius:inherit;display:contents;position:relative}.aa-item--inline{align-items:center;display:inline-flex}.aa-item__pulse{animation:aa-item-pulse var(--aa-pulse-duration) var(--aa-pulse-easing) forwards;border-radius:inherit;inset:0;pointer-events:none;position:absolute}@keyframes aa-item-pulse{0%{box-shadow:0 0 0 0 var(--aa-pulse-color);opacity:var(--aa-pulse-opacity-start-item)}to{box-shadow:0 0 0 var(--aa-pulse-radius-item) var(--aa-pulse-color);opacity:0}}.aa-item__flag{border-radius:.25rem .25rem .25rem 0;box-shadow:0 1px 2px rgba(0,0,0,.18);color:#fff;font-size:.55rem;font-weight:500;line-height:1;padding:.18rem .35rem;pointer-events:none;position:absolute;right:.25rem;top:-.55rem;white-space:nowrap;z-index:5}.aa-flag-enter-active,.aa-flag-leave-active{transition:opacity var(--aa-flag-fade-duration) var(--aa-flag-fade-easing),transform var(--aa-flag-fade-duration) var(--aa-flag-fade-easing)}.aa-flag-enter-from,.aa-flag-leave-to{opacity:0;transform:translateY(2px)}
|
|
124
149
|
</style>
|
|
@@ -12,8 +12,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
12
12
|
awareness: boolean;
|
|
13
13
|
tag: "video" | "audio";
|
|
14
14
|
live: boolean;
|
|
15
|
-
controls: boolean;
|
|
16
15
|
total: boolean;
|
|
16
|
+
controls: boolean;
|
|
17
17
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
18
|
declare const _default: typeof __VLS_export;
|
|
19
19
|
export default _default;
|
|
@@ -12,8 +12,8 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {
|
|
|
12
12
|
awareness: boolean;
|
|
13
13
|
tag: "video" | "audio";
|
|
14
14
|
live: boolean;
|
|
15
|
-
controls: boolean;
|
|
16
15
|
total: boolean;
|
|
16
|
+
controls: boolean;
|
|
17
17
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
18
|
declare const _default: typeof __VLS_export;
|
|
19
19
|
export default _default;
|
|
@@ -2,6 +2,7 @@ type __VLS_Props = {
|
|
|
2
2
|
fieldKey: string;
|
|
3
3
|
awareness?: boolean;
|
|
4
4
|
live?: boolean;
|
|
5
|
+
followOnly?: boolean;
|
|
5
6
|
total?: boolean;
|
|
6
7
|
};
|
|
7
8
|
declare var __VLS_8: {}, __VLS_11: {}, __VLS_14: {}, __VLS_17: {}, __VLS_20: {}, __VLS_31: string, __VLS_32: any;
|
|
@@ -21,6 +22,7 @@ type __VLS_Slots = {} & {
|
|
|
21
22
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
22
23
|
awareness: boolean;
|
|
23
24
|
live: boolean;
|
|
25
|
+
followOnly: boolean;
|
|
24
26
|
total: boolean;
|
|
25
27
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
28
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { computed, ref, useAttrs, watch } from "vue";
|
|
3
3
|
import { useAAUIState, useAAUIStateAuthor } from "../../composables/useAAUIState";
|
|
4
|
+
import { useAAFollowPeer } from "../../composables/useAAFollowPeer";
|
|
4
5
|
import { useAwareness } from "../../composables/useAwareness";
|
|
5
6
|
defineOptions({ inheritAttrs: false });
|
|
6
7
|
const props = defineProps({
|
|
7
8
|
fieldKey: { type: String, required: true },
|
|
8
9
|
awareness: { type: Boolean, required: false, default: true },
|
|
9
10
|
live: { type: Boolean, required: false, default: false },
|
|
11
|
+
followOnly: { type: Boolean, required: false, default: false },
|
|
10
12
|
total: { type: Boolean, required: false, default: false }
|
|
11
13
|
});
|
|
12
|
-
const
|
|
14
|
+
const { isFollowing } = useAAFollowPeer();
|
|
15
|
+
const enableLive = computed(() => props.live || props.total || props.followOnly && isFollowing.value);
|
|
13
16
|
const attrs = useAttrs();
|
|
14
17
|
const liveOpen = useAAUIState(() => `${props.fieldKey}:open`, { defaultValue: false });
|
|
15
18
|
const author = useAAUIStateAuthor(() => `${props.fieldKey}:open`);
|
|
@@ -25,6 +28,11 @@ watch(local, (val) => {
|
|
|
25
28
|
if (!enableLive.value) return;
|
|
26
29
|
if (!!liveOpen.value !== val) liveOpen.value = val;
|
|
27
30
|
});
|
|
31
|
+
watch(enableLive, (now, prev) => {
|
|
32
|
+
if (!now || prev) return;
|
|
33
|
+
const incoming = !!liveOpen.value;
|
|
34
|
+
if (local.value !== incoming) local.value = incoming;
|
|
35
|
+
});
|
|
28
36
|
const openedByUser = computed(() => {
|
|
29
37
|
if (!enableLive.value || !local.value || author.value == null) return null;
|
|
30
38
|
const state = states.value.get(author.value);
|
|
@@ -2,6 +2,7 @@ type __VLS_Props = {
|
|
|
2
2
|
fieldKey: string;
|
|
3
3
|
awareness?: boolean;
|
|
4
4
|
live?: boolean;
|
|
5
|
+
followOnly?: boolean;
|
|
5
6
|
total?: boolean;
|
|
6
7
|
};
|
|
7
8
|
declare var __VLS_8: {}, __VLS_11: {}, __VLS_14: {}, __VLS_17: {}, __VLS_20: {}, __VLS_31: string, __VLS_32: any;
|
|
@@ -21,6 +22,7 @@ type __VLS_Slots = {} & {
|
|
|
21
22
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
22
23
|
awareness: boolean;
|
|
23
24
|
live: boolean;
|
|
25
|
+
followOnly: boolean;
|
|
24
26
|
total: boolean;
|
|
25
27
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
28
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -65,5 +65,5 @@ onBeforeUnmount(() => {
|
|
|
65
65
|
</template>
|
|
66
66
|
|
|
67
67
|
<style scoped>
|
|
68
|
-
.aa-presence-blobs{inset:0;isolation:isolate;mix-blend-mode:screen;pointer-events:none;position:fixed;z-index:0}.aa-presence-blobs__blob{border-radius:999px;filter:blur(60px);height:360px;opacity:.35;pointer-events:none;position:fixed;transform:translate(-50%,-50%);transition:left
|
|
68
|
+
.aa-presence-blobs{inset:0;isolation:isolate;mix-blend-mode:screen;pointer-events:none;position:fixed;z-index:0}.aa-presence-blobs__blob{border-radius:999px;filter:blur(60px);height:360px;opacity:.35;pointer-events:none;position:fixed;transform:translate(-50%,-50%);transition:left var(--aa-track-blob-duration) var(--aa-track-blob-easing),top var(--aa-track-blob-duration) var(--aa-track-blob-easing);width:360px}@media (prefers-color-scheme:light){.aa-presence-blobs{mix-blend-mode:multiply}.aa-presence-blobs__blob{opacity:.22}}
|
|
69
69
|
</style>
|
|
@@ -43,5 +43,5 @@ function nameFor(p) {
|
|
|
43
43
|
</template>
|
|
44
44
|
|
|
45
45
|
<style scoped>
|
|
46
|
-
.aa-cursors-host{height:100%;position:relative;width:100%}.aa-cursors-layer{inset:0;overflow:hidden;pointer-events:none;position:absolute;z-index:50}.aa-cursor{align-items:flex-start;display:flex;gap:.15rem;position:absolute;transform:translate(-2px,-2px);transition:top
|
|
46
|
+
.aa-cursors-host{height:100%;position:relative;width:100%}.aa-cursors-layer{inset:0;overflow:hidden;pointer-events:none;position:absolute;z-index:50}.aa-cursor{align-items:flex-start;display:flex;gap:.15rem;position:absolute;transform:translate(-2px,-2px);transition:top var(--aa-track-cursor-duration) var(--aa-track-cursor-easing),left var(--aa-track-cursor-duration) var(--aa-track-cursor-easing)}.aa-cursor__label{border-radius:.25rem .25rem .25rem 0;box-shadow:0 1px 2px rgba(0,0,0,.18);color:#fff;font-size:.6875rem;font-weight:500;line-height:1;margin-left:-2px;margin-top:11px;padding:.2rem .4rem;white-space:nowrap}.aa-cursors-overflow{background:var(--ui-bg-elevated);border:1px solid var(--ui-border);border-radius:999px;bottom:.5rem;color:var(--ui-text-muted);font-size:.6875rem;padding:.15rem .45rem;position:absolute;right:.5rem}
|
|
47
47
|
</style>
|
|
@@ -2,6 +2,7 @@ type __VLS_Props = {
|
|
|
2
2
|
fieldKey: string;
|
|
3
3
|
awareness?: boolean;
|
|
4
4
|
live?: boolean;
|
|
5
|
+
followOnly?: boolean;
|
|
5
6
|
peers?: boolean;
|
|
6
7
|
total?: boolean;
|
|
7
8
|
};
|
|
@@ -13,6 +14,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
13
14
|
peers: boolean;
|
|
14
15
|
awareness: boolean;
|
|
15
16
|
live: boolean;
|
|
17
|
+
followOnly: boolean;
|
|
16
18
|
total: boolean;
|
|
17
19
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
20
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -3,17 +3,20 @@ import { computed, onBeforeUnmount, onMounted, ref, useAttrs, watch } from "vue"
|
|
|
3
3
|
import { useAAField } from "../../composables/useAAField";
|
|
4
4
|
import { useAAUIState } from "../../composables/useAAUIState";
|
|
5
5
|
import { useAAEphemeral } from "../../composables/useAAEphemeral";
|
|
6
|
+
import { useAAFollowPeer } from "../../composables/useAAFollowPeer";
|
|
6
7
|
import { awareRingStyle } from "../../utils/awareRingStyle";
|
|
7
8
|
defineOptions({ inheritAttrs: false });
|
|
8
9
|
const props = defineProps({
|
|
9
10
|
fieldKey: { type: String, required: true },
|
|
10
11
|
awareness: { type: Boolean, required: false, default: true },
|
|
11
12
|
live: { type: Boolean, required: false, default: false },
|
|
13
|
+
followOnly: { type: Boolean, required: false, default: false },
|
|
12
14
|
peers: { type: Boolean, required: false, default: false },
|
|
13
15
|
total: { type: Boolean, required: false, default: false }
|
|
14
16
|
});
|
|
17
|
+
const { isFollowing } = useAAFollowPeer();
|
|
15
18
|
const enableAwareness = computed(() => props.awareness || props.total);
|
|
16
|
-
const enableLive = computed(() => props.live || props.total);
|
|
19
|
+
const enableLive = computed(() => props.live || props.total || props.followOnly && isFollowing.value);
|
|
17
20
|
const enablePeers = computed(() => props.peers || props.total);
|
|
18
21
|
const { hoverers, focusers, pressers, isPressed, hoverHandlers } = useAAField(() => props.fieldKey);
|
|
19
22
|
const ringStyle = computed(
|
|
@@ -40,8 +43,7 @@ function flush() {
|
|
|
40
43
|
function onScroll() {
|
|
41
44
|
if (!raf) raf = requestAnimationFrame(flush);
|
|
42
45
|
}
|
|
43
|
-
|
|
44
|
-
if (!enableLive.value) return;
|
|
46
|
+
function applyLiveScroll(val) {
|
|
45
47
|
const el = elRef.value;
|
|
46
48
|
if (!el || !val) return;
|
|
47
49
|
if (Math.abs(el.scrollTop - val.y) < 2 && Math.abs(el.scrollLeft - val.x) < 2) return;
|
|
@@ -50,6 +52,14 @@ watch(liveScroll, (val) => {
|
|
|
50
52
|
queueMicrotask(() => {
|
|
51
53
|
suppress = false;
|
|
52
54
|
});
|
|
55
|
+
}
|
|
56
|
+
watch(liveScroll, (val) => {
|
|
57
|
+
if (!enableLive.value) return;
|
|
58
|
+
applyLiveScroll(val);
|
|
59
|
+
});
|
|
60
|
+
watch(enableLive, (now, prev) => {
|
|
61
|
+
if (!now || prev) return;
|
|
62
|
+
applyLiveScroll(liveScroll.value);
|
|
53
63
|
});
|
|
54
64
|
onMounted(() => {
|
|
55
65
|
elRef.value?.addEventListener("scroll", onScroll, { passive: true });
|
|
@@ -2,6 +2,7 @@ type __VLS_Props = {
|
|
|
2
2
|
fieldKey: string;
|
|
3
3
|
awareness?: boolean;
|
|
4
4
|
live?: boolean;
|
|
5
|
+
followOnly?: boolean;
|
|
5
6
|
peers?: boolean;
|
|
6
7
|
total?: boolean;
|
|
7
8
|
};
|
|
@@ -13,6 +14,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
13
14
|
peers: boolean;
|
|
14
15
|
awareness: boolean;
|
|
15
16
|
live: boolean;
|
|
17
|
+
followOnly: boolean;
|
|
16
18
|
total: boolean;
|
|
17
19
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
20
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -2,6 +2,7 @@ type __VLS_Props = {
|
|
|
2
2
|
fieldKey: string;
|
|
3
3
|
awareness?: boolean;
|
|
4
4
|
live?: boolean;
|
|
5
|
+
followOnly?: boolean;
|
|
5
6
|
total?: boolean;
|
|
6
7
|
};
|
|
7
8
|
declare var __VLS_8: {}, __VLS_11: {}, __VLS_14: {}, __VLS_17: {}, __VLS_20: {}, __VLS_31: string, __VLS_32: any;
|
|
@@ -21,6 +22,7 @@ type __VLS_Slots = {} & {
|
|
|
21
22
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
22
23
|
awareness: boolean;
|
|
23
24
|
live: boolean;
|
|
25
|
+
followOnly: boolean;
|
|
24
26
|
total: boolean;
|
|
25
27
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
28
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { computed, ref, useAttrs, watch } from "vue";
|
|
3
3
|
import { useAAUIState, useAAUIStateAuthor } from "../../composables/useAAUIState";
|
|
4
|
+
import { useAAFollowPeer } from "../../composables/useAAFollowPeer";
|
|
4
5
|
import { useAwareness } from "../../composables/useAwareness";
|
|
5
6
|
defineOptions({ inheritAttrs: false });
|
|
6
7
|
const props = defineProps({
|
|
7
8
|
fieldKey: { type: String, required: true },
|
|
8
9
|
awareness: { type: Boolean, required: false, default: true },
|
|
9
10
|
live: { type: Boolean, required: false, default: false },
|
|
11
|
+
followOnly: { type: Boolean, required: false, default: false },
|
|
10
12
|
total: { type: Boolean, required: false, default: false }
|
|
11
13
|
});
|
|
12
|
-
const
|
|
14
|
+
const { isFollowing } = useAAFollowPeer();
|
|
15
|
+
const enableLive = computed(() => props.live || props.total || props.followOnly && isFollowing.value);
|
|
13
16
|
const attrs = useAttrs();
|
|
14
17
|
const liveOpen = useAAUIState(() => `${props.fieldKey}:open`, { defaultValue: false });
|
|
15
18
|
const author = useAAUIStateAuthor(() => `${props.fieldKey}:open`);
|
|
@@ -25,6 +28,11 @@ watch(local, (val) => {
|
|
|
25
28
|
if (!enableLive.value) return;
|
|
26
29
|
if (!!liveOpen.value !== val) liveOpen.value = val;
|
|
27
30
|
});
|
|
31
|
+
watch(enableLive, (now, prev) => {
|
|
32
|
+
if (!now || prev) return;
|
|
33
|
+
const incoming = !!liveOpen.value;
|
|
34
|
+
if (local.value !== incoming) local.value = incoming;
|
|
35
|
+
});
|
|
28
36
|
const openedByUser = computed(() => {
|
|
29
37
|
if (!enableLive.value || !local.value || author.value == null) return null;
|
|
30
38
|
const state = states.value.get(author.value);
|
|
@@ -2,6 +2,7 @@ type __VLS_Props = {
|
|
|
2
2
|
fieldKey: string;
|
|
3
3
|
awareness?: boolean;
|
|
4
4
|
live?: boolean;
|
|
5
|
+
followOnly?: boolean;
|
|
5
6
|
total?: boolean;
|
|
6
7
|
};
|
|
7
8
|
declare var __VLS_8: {}, __VLS_11: {}, __VLS_14: {}, __VLS_17: {}, __VLS_20: {}, __VLS_31: string, __VLS_32: any;
|
|
@@ -21,6 +22,7 @@ type __VLS_Slots = {} & {
|
|
|
21
22
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
22
23
|
awareness: boolean;
|
|
23
24
|
live: boolean;
|
|
25
|
+
followOnly: boolean;
|
|
24
26
|
total: boolean;
|
|
25
27
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
28
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -26,6 +26,7 @@ const range = computed(() => Math.max(1e-4, props.max - props.min));
|
|
|
26
26
|
function publishThumb(val) {
|
|
27
27
|
if (!enablePeers.value || val == null) return;
|
|
28
28
|
const single = Array.isArray(val) ? val[0] : val;
|
|
29
|
+
if (single == null) return;
|
|
29
30
|
const norm = (single - props.min) / range.value;
|
|
30
31
|
setThumb(Math.max(0, Math.min(1, norm)));
|
|
31
32
|
}
|
|
@@ -2,6 +2,7 @@ type __VLS_Props = {
|
|
|
2
2
|
fieldKey: string;
|
|
3
3
|
awareness?: boolean;
|
|
4
4
|
live?: boolean;
|
|
5
|
+
followOnly?: boolean;
|
|
5
6
|
peers?: boolean;
|
|
6
7
|
total?: boolean;
|
|
7
8
|
};
|
|
@@ -15,6 +16,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
15
16
|
peers: boolean;
|
|
16
17
|
awareness: boolean;
|
|
17
18
|
live: boolean;
|
|
19
|
+
followOnly: boolean;
|
|
18
20
|
total: boolean;
|
|
19
21
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
20
22
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -3,6 +3,7 @@ import { computed, ref, useAttrs, watch } from "vue";
|
|
|
3
3
|
import { useAAField } from "../../composables/useAAField";
|
|
4
4
|
import { useAAUIState } from "../../composables/useAAUIState";
|
|
5
5
|
import { useAAEphemeral } from "../../composables/useAAEphemeral";
|
|
6
|
+
import { useAAFollowPeer } from "../../composables/useAAFollowPeer";
|
|
6
7
|
import AHoverItem from "./AHoverItem.vue";
|
|
7
8
|
function tabId(item) {
|
|
8
9
|
if (item == null) return "";
|
|
@@ -19,11 +20,13 @@ const props = defineProps({
|
|
|
19
20
|
fieldKey: { type: String, required: true },
|
|
20
21
|
awareness: { type: Boolean, required: false, default: true },
|
|
21
22
|
live: { type: Boolean, required: false, default: false },
|
|
23
|
+
followOnly: { type: Boolean, required: false, default: false },
|
|
22
24
|
peers: { type: Boolean, required: false, default: false },
|
|
23
25
|
total: { type: Boolean, required: false, default: false }
|
|
24
26
|
});
|
|
27
|
+
const { isFollowing } = useAAFollowPeer();
|
|
25
28
|
const enableAwareness = computed(() => props.awareness || props.total);
|
|
26
|
-
const enableLive = computed(() => props.live || props.total);
|
|
29
|
+
const enableLive = computed(() => props.live || props.total || props.followOnly && isFollowing.value);
|
|
27
30
|
const enablePeers = computed(() => props.peers || props.total);
|
|
28
31
|
const attrs = useAttrs();
|
|
29
32
|
const { hoverers, focusers, hoverHandlers } = useAAField(() => props.fieldKey);
|
|
@@ -42,6 +45,11 @@ watch(local, (val) => {
|
|
|
42
45
|
if (enableLive.value && (liveActive.value || "") !== val) liveActive.value = val;
|
|
43
46
|
if (enablePeers.value) setLocal(val || null);
|
|
44
47
|
});
|
|
48
|
+
watch(enableLive, (now, prev) => {
|
|
49
|
+
if (!now || prev) return;
|
|
50
|
+
const incoming = liveActive.value || "";
|
|
51
|
+
if (incoming && local.value !== incoming) local.value = incoming;
|
|
52
|
+
});
|
|
45
53
|
const ringStyle = computed(() => {
|
|
46
54
|
if (!enableAwareness.value) return void 0;
|
|
47
55
|
const focusColor = focusers.value[0]?.user?.color;
|
|
@@ -2,6 +2,7 @@ type __VLS_Props = {
|
|
|
2
2
|
fieldKey: string;
|
|
3
3
|
awareness?: boolean;
|
|
4
4
|
live?: boolean;
|
|
5
|
+
followOnly?: boolean;
|
|
5
6
|
peers?: boolean;
|
|
6
7
|
total?: boolean;
|
|
7
8
|
};
|
|
@@ -15,6 +16,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
15
16
|
peers: boolean;
|
|
16
17
|
awareness: boolean;
|
|
17
18
|
live: boolean;
|
|
19
|
+
followOnly: boolean;
|
|
18
20
|
total: boolean;
|
|
19
21
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
20
22
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import type { Editor } from '@tiptap/vue-3';
|
|
10
10
|
type __VLS_Props = {
|
|
11
11
|
editor: Editor | null | undefined;
|
|
12
|
-
size?: '
|
|
12
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
13
13
|
variant?: 'ghost' | 'soft' | 'outline' | 'solid' | 'subtle' | 'link';
|
|
14
14
|
color?: 'neutral' | 'primary' | 'secondary' | 'error' | 'warning' | 'success' | 'info';
|
|
15
15
|
icon?: string;
|
|
@@ -18,7 +18,7 @@ type __VLS_Props = {
|
|
|
18
18
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
19
19
|
color: "neutral" | "primary" | "secondary" | "error" | "warning" | "success" | "info";
|
|
20
20
|
icon: string;
|
|
21
|
-
size: "
|
|
21
|
+
size: "xs" | "sm" | "md" | "lg" | "xl";
|
|
22
22
|
variant: "ghost" | "soft" | "outline" | "solid" | "subtle" | "link";
|
|
23
23
|
tooltip: string | false;
|
|
24
24
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import type { Editor } from '@tiptap/vue-3';
|
|
10
10
|
type __VLS_Props = {
|
|
11
11
|
editor: Editor | null | undefined;
|
|
12
|
-
size?: '
|
|
12
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
13
13
|
variant?: 'ghost' | 'soft' | 'outline' | 'solid' | 'subtle' | 'link';
|
|
14
14
|
color?: 'neutral' | 'primary' | 'secondary' | 'error' | 'warning' | 'success' | 'info';
|
|
15
15
|
icon?: string;
|
|
@@ -18,7 +18,7 @@ type __VLS_Props = {
|
|
|
18
18
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
19
19
|
color: "neutral" | "primary" | "secondary" | "error" | "warning" | "success" | "info";
|
|
20
20
|
icon: string;
|
|
21
|
-
size: "
|
|
21
|
+
size: "xs" | "sm" | "md" | "lg" | "xl";
|
|
22
22
|
variant: "ghost" | "soft" | "outline" | "solid" | "subtle" | "link";
|
|
23
23
|
tooltip: string | false;
|
|
24
24
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import type { Editor } from '@tiptap/vue-3';
|
|
10
10
|
type __VLS_Props = {
|
|
11
11
|
editor: Editor | null | undefined;
|
|
12
|
-
size?: '
|
|
12
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
13
13
|
variant?: 'ghost' | 'soft' | 'outline' | 'solid' | 'subtle' | 'link';
|
|
14
14
|
color?: 'neutral' | 'primary' | 'secondary' | 'error' | 'warning' | 'success' | 'info';
|
|
15
15
|
icon?: string;
|
|
@@ -18,7 +18,7 @@ type __VLS_Props = {
|
|
|
18
18
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
19
19
|
color: "neutral" | "primary" | "secondary" | "error" | "warning" | "success" | "info";
|
|
20
20
|
icon: string;
|
|
21
|
-
size: "
|
|
21
|
+
size: "xs" | "sm" | "md" | "lg" | "xl";
|
|
22
22
|
variant: "ghost" | "soft" | "outline" | "solid" | "subtle" | "link";
|
|
23
23
|
tooltip: string | false;
|
|
24
24
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import type { Editor } from '@tiptap/vue-3';
|
|
10
10
|
type __VLS_Props = {
|
|
11
11
|
editor: Editor | null | undefined;
|
|
12
|
-
size?: '
|
|
12
|
+
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
13
13
|
variant?: 'ghost' | 'soft' | 'outline' | 'solid' | 'subtle' | 'link';
|
|
14
14
|
color?: 'neutral' | 'primary' | 'secondary' | 'error' | 'warning' | 'success' | 'info';
|
|
15
15
|
icon?: string;
|
|
@@ -18,7 +18,7 @@ type __VLS_Props = {
|
|
|
18
18
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
19
19
|
color: "neutral" | "primary" | "secondary" | "error" | "warning" | "success" | "info";
|
|
20
20
|
icon: string;
|
|
21
|
-
size: "
|
|
21
|
+
size: "xs" | "sm" | "md" | "lg" | "xl";
|
|
22
22
|
variant: "ghost" | "soft" | "outline" | "solid" | "subtle" | "link";
|
|
23
23
|
tooltip: string | false;
|
|
24
24
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -20,16 +20,16 @@ type __VLS_Props = {
|
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
22
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
23
|
-
next: () => any;
|
|
24
|
-
prev: () => any;
|
|
25
23
|
"update:viewMode": (mode: CalendarViewMode) => any;
|
|
24
|
+
prev: () => any;
|
|
25
|
+
next: () => any;
|
|
26
26
|
today: () => any;
|
|
27
27
|
"add-event": () => any;
|
|
28
28
|
"navigate-to-month": (year: number, month: number) => any;
|
|
29
29
|
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
30
|
-
onNext?: (() => any) | undefined;
|
|
31
|
-
onPrev?: (() => any) | undefined;
|
|
32
30
|
"onUpdate:viewMode"?: ((mode: CalendarViewMode) => any) | undefined;
|
|
31
|
+
onPrev?: (() => any) | undefined;
|
|
32
|
+
onNext?: (() => any) | undefined;
|
|
33
33
|
onToday?: (() => any) | undefined;
|
|
34
34
|
"onAdd-event"?: (() => any) | undefined;
|
|
35
35
|
"onNavigate-to-month"?: ((year: number, month: number) => any) | undefined;
|