rimelight-components 2.0.60 → 2.0.63
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.json +1 -1
- package/dist/module.mjs +1 -2
- package/dist/runtime/app.config.d.ts +4 -0
- package/dist/runtime/app.config.js +4 -0
- package/dist/runtime/components/blocks/BlockEditRenderer.d.vue.ts +1 -1
- package/dist/runtime/components/blocks/BlockEditRenderer.vue.d.ts +1 -1
- package/dist/runtime/components/blocks/BlockEditor.d.vue.ts +1 -1
- package/dist/runtime/components/blocks/BlockEditor.vue +1 -1
- package/dist/runtime/components/blocks/BlockEditor.vue.d.ts +1 -1
- package/dist/runtime/components/blocks/BlockViewRenderer.d.vue.ts +1 -1
- package/dist/runtime/components/blocks/BlockViewRenderer.vue.d.ts +1 -1
- package/dist/runtime/components/blocks/TOC.d.vue.ts +2 -2
- package/dist/runtime/components/blocks/TOC.vue.d.ts +2 -2
- package/dist/runtime/components/blocks/TextRenderer.d.vue.ts +1 -1
- package/dist/runtime/components/blocks/TextRenderer.vue.d.ts +1 -1
- package/dist/runtime/components/blocks/editor/ParagraphBlockEditor.d.vue.ts +1 -1
- package/dist/runtime/components/blocks/editor/ParagraphBlockEditor.vue.d.ts +1 -1
- package/dist/runtime/components/blocks/editor/SectionBlockEditor.d.vue.ts +1 -1
- package/dist/runtime/components/blocks/editor/SectionBlockEditor.vue.d.ts +1 -1
- package/dist/runtime/components/blocks/editor/TestBlockEditor.d.vue.ts +1 -1
- package/dist/runtime/components/blocks/editor/TestBlockEditor.vue.d.ts +1 -1
- package/dist/runtime/components/content/Section.vue +1 -1
- package/dist/runtime/components/page/PageEditor.d.vue.ts +17 -5
- package/dist/runtime/components/page/PageEditor.vue +1 -1
- package/dist/runtime/components/page/PageEditor.vue.d.ts +17 -5
- package/dist/runtime/components/page/PagePropertiesEditor.d.vue.ts +9 -3
- package/dist/runtime/components/page/PagePropertiesEditor.vue +16 -12
- package/dist/runtime/components/page/PagePropertiesEditor.vue.d.ts +9 -3
- package/dist/runtime/components/page/PagePropertiesRenderer.d.vue.ts +1 -1
- package/dist/runtime/components/page/PagePropertiesRenderer.vue +25 -17
- package/dist/runtime/components/page/PagePropertiesRenderer.vue.d.ts +1 -1
- package/dist/runtime/components/swatches/ColorSwatch.vue +1 -1
- package/dist/runtime/composables/index.d.ts +3 -0
- package/dist/runtime/composables/index.js +3 -0
- package/dist/runtime/composables/useBlockEditor.d.ts +131 -131
- package/dist/runtime/composables/usePageEditor.d.ts +1 -1
- package/dist/runtime/types/app.config.d.ts +10 -2
- package/dist/runtime/types/index.d.ts +3 -4
- package/dist/runtime/types/index.js +0 -1
- package/dist/runtime/types/pages.d.ts +31 -109
- package/dist/runtime/types/pages.js +3 -58
- package/dist/runtime/types/schemas.d.ts +0 -6
- package/dist/runtime/types/schemas.js +0 -10
- package/dist/runtime/utils/blockMapper.d.ts +1 -1
- package/dist/runtime/utils/database.d.ts +6 -0
- package/dist/runtime/utils/database.js +10 -0
- package/dist/runtime/utils/index.d.ts +4 -3
- package/dist/runtime/utils/index.js +1 -0
- package/dist/runtime/utils/page.d.ts +7 -4
- package/dist/runtime/utils/page.js +64 -13
- package/dist/runtime/utils/richTextHelpers.d.ts +1 -1
- package/package.json +30 -23
- package/dist/runtime/types/pageTemplates.d.ts +0 -3
- package/dist/runtime/types/pageTemplates.js +0 -173
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -2,10 +2,9 @@ import { addTemplate, defineNuxtModule, createResolver, addComponentsDir, addImp
|
|
|
2
2
|
import { defu } from 'defu';
|
|
3
3
|
import { readdirSync } from 'node:fs';
|
|
4
4
|
import { basename } from 'node:path';
|
|
5
|
-
export * from '../dist/runtime/types/index.js';
|
|
6
5
|
|
|
7
6
|
const name = "rimelight-components";
|
|
8
|
-
const version = "2.0.
|
|
7
|
+
const version = "2.0.63";
|
|
9
8
|
const homepage = "https://rimelight.com/tools/rimelight-components";
|
|
10
9
|
|
|
11
10
|
const defaultOptions = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Block } from "../../types/blocks
|
|
2
|
-
import type { HeadingLevel } from "../../types/blocks
|
|
1
|
+
import type { Block } from "../../types/blocks";
|
|
2
|
+
import type { HeadingLevel } from "../../types/blocks";
|
|
3
3
|
export interface TOCItem {
|
|
4
4
|
id: string;
|
|
5
5
|
title: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Block } from "../../types/blocks
|
|
2
|
-
import type { HeadingLevel } from "../../types/blocks
|
|
1
|
+
import type { Block } from "../../types/blocks";
|
|
2
|
+
import type { HeadingLevel } from "../../types/blocks";
|
|
3
3
|
export interface TOCItem {
|
|
4
4
|
id: string;
|
|
5
5
|
title: string;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { useRoute } from "#imports";
|
|
3
3
|
import { computed } from "vue";
|
|
4
4
|
import { useClipboard } from "@vueuse/core";
|
|
5
|
-
import { useToast } from "
|
|
5
|
+
import { useToast } from "@nuxt/ui/composables";
|
|
6
6
|
import { tv } from "tailwind-variants";
|
|
7
7
|
import { slugify } from "../../utils";
|
|
8
8
|
const { copy } = useClipboard();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Page } from "../../types/pages
|
|
1
|
+
import type { Page } from "../../types/pages";
|
|
2
2
|
interface Props {
|
|
3
3
|
isSaving: boolean;
|
|
4
4
|
}
|
|
@@ -13,12 +13,24 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
|
13
13
|
canUndo: import("vue").ComputedRef<boolean>;
|
|
14
14
|
canRedo: import("vue").ComputedRef<boolean>;
|
|
15
15
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
16
|
-
"update:modelValue": (value:
|
|
16
|
+
"update:modelValue": (value: {
|
|
17
|
+
type: "Default";
|
|
18
|
+
properties: import("../../types").BasePageProperties;
|
|
19
|
+
} & import("../../types").BasePage) => any;
|
|
17
20
|
} & {
|
|
18
|
-
save: (value:
|
|
21
|
+
save: (value: {
|
|
22
|
+
type: "Default";
|
|
23
|
+
properties: import("../../types").BasePageProperties;
|
|
24
|
+
} & import("../../types").BasePage) => any;
|
|
19
25
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
20
|
-
onSave?: ((value:
|
|
21
|
-
|
|
26
|
+
onSave?: ((value: {
|
|
27
|
+
type: "Default";
|
|
28
|
+
properties: import("../../types").BasePageProperties;
|
|
29
|
+
} & import("../../types").BasePage) => any) | undefined;
|
|
30
|
+
"onUpdate:modelValue"?: ((value: {
|
|
31
|
+
type: "Default";
|
|
32
|
+
properties: import("../../types").BasePageProperties;
|
|
33
|
+
} & import("../../types").BasePage) => any) | undefined;
|
|
22
34
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
23
35
|
declare const _default: typeof __VLS_export;
|
|
24
36
|
export default _default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { ref, computed, useTemplateRef } from "vue";
|
|
3
3
|
import { usePageEditor } from "../../composables/usePageEditor";
|
|
4
|
-
const page = defineModel({ type:
|
|
4
|
+
const page = defineModel({ type: null, ...{ required: true } });
|
|
5
5
|
const { undo, redo, canUndo, canRedo, captureSnapshot } = usePageEditor(page);
|
|
6
6
|
const emit = defineEmits(["save"]);
|
|
7
7
|
const handleSave = () => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Page } from "../../types/pages
|
|
1
|
+
import type { Page } from "../../types/pages";
|
|
2
2
|
interface Props {
|
|
3
3
|
isSaving: boolean;
|
|
4
4
|
}
|
|
@@ -13,12 +13,24 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {
|
|
|
13
13
|
canUndo: import("vue").ComputedRef<boolean>;
|
|
14
14
|
canRedo: import("vue").ComputedRef<boolean>;
|
|
15
15
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
16
|
-
"update:modelValue": (value:
|
|
16
|
+
"update:modelValue": (value: {
|
|
17
|
+
type: "Default";
|
|
18
|
+
properties: import("../../types").BasePageProperties;
|
|
19
|
+
} & import("../../types").BasePage) => any;
|
|
17
20
|
} & {
|
|
18
|
-
save: (value:
|
|
21
|
+
save: (value: {
|
|
22
|
+
type: "Default";
|
|
23
|
+
properties: import("../../types").BasePageProperties;
|
|
24
|
+
} & import("../../types").BasePage) => any;
|
|
19
25
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
20
|
-
onSave?: ((value:
|
|
21
|
-
|
|
26
|
+
onSave?: ((value: {
|
|
27
|
+
type: "Default";
|
|
28
|
+
properties: import("../../types").BasePageProperties;
|
|
29
|
+
} & import("../../types").BasePage) => any) | undefined;
|
|
30
|
+
"onUpdate:modelValue"?: ((value: {
|
|
31
|
+
type: "Default";
|
|
32
|
+
properties: import("../../types").BasePageProperties;
|
|
33
|
+
} & import("../../types").BasePage) => any) | undefined;
|
|
22
34
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
23
35
|
declare const _default: typeof __VLS_export;
|
|
24
36
|
export default _default;
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import { type Page } from '../../types/pages
|
|
1
|
+
import { type Page } from '../../types/pages';
|
|
2
2
|
type __VLS_ModelProps = {
|
|
3
3
|
modelValue: Page;
|
|
4
4
|
};
|
|
5
5
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
-
"update:modelValue": (value:
|
|
6
|
+
"update:modelValue": (value: {
|
|
7
|
+
type: "Default";
|
|
8
|
+
properties: import("../../types").BasePageProperties;
|
|
9
|
+
} & import("../../types").BasePage) => any;
|
|
7
10
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
8
|
-
"onUpdate:modelValue"?: ((value:
|
|
11
|
+
"onUpdate:modelValue"?: ((value: {
|
|
12
|
+
type: "Default";
|
|
13
|
+
properties: import("../../types").BasePageProperties;
|
|
14
|
+
} & import("../../types").BasePage) => any) | undefined;
|
|
9
15
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
16
|
declare const _default: typeof __VLS_export;
|
|
11
17
|
export default _default;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { computed } from "vue";
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import { useAppConfig } from "#imports";
|
|
4
|
+
import { useI18n } from "vue-i18n";
|
|
5
|
+
import {} from "../../types/pages";
|
|
6
|
+
const page = defineModel({ type: null, ...{ required: true } });
|
|
7
|
+
const appConfig = useAppConfig();
|
|
8
|
+
const locale = useI18n().locale;
|
|
5
9
|
const properties = computed(() => page.value.properties);
|
|
6
10
|
const groups = computed(() => {
|
|
7
|
-
return
|
|
11
|
+
return page.value.properties;
|
|
8
12
|
});
|
|
9
13
|
const isFieldVisible = (fieldSchema) => {
|
|
10
14
|
if (!fieldSchema.visibleIf) return true;
|
|
@@ -26,46 +30,46 @@ const getSortedFields = (fields) => {
|
|
|
26
30
|
</UBadge>
|
|
27
31
|
</div>
|
|
28
32
|
|
|
29
|
-
<div v-for="group in groups" :key="
|
|
33
|
+
<div v-for="(group, groupId) in groups" :key="groupId" class="space-y-4">
|
|
30
34
|
<div class="flex items-center gap-3">
|
|
31
35
|
<span class="text-[10px] font-bold uppercase tracking-widest text-primary">
|
|
32
|
-
{{ group.label }}
|
|
36
|
+
{{ group.label[locale] }}
|
|
33
37
|
</span>
|
|
34
38
|
<div class="h-px flex-1 bg-border/50"></div>
|
|
35
39
|
</div>
|
|
36
40
|
|
|
37
41
|
<div class="grid gap-y-4 px-1">
|
|
38
|
-
<template v-for="[
|
|
42
|
+
<template v-for="[fieldKey, schema] in getSortedFields(group.fields)" :key="fieldKey">
|
|
39
43
|
|
|
40
44
|
<UFormField
|
|
41
45
|
v-if="isFieldVisible(schema)"
|
|
42
46
|
:label="schema.label"
|
|
43
|
-
:name="
|
|
47
|
+
:name="fieldKey"
|
|
44
48
|
>
|
|
45
49
|
<UInput
|
|
46
50
|
v-if="schema.type === 'text'"
|
|
47
|
-
v-model="properties[
|
|
51
|
+
v-model="properties[groupId].fields[fieldKey].value[locale]"
|
|
48
52
|
variant="subtle"
|
|
49
53
|
placeholder="..."
|
|
50
54
|
/>
|
|
51
55
|
|
|
52
56
|
<UInput
|
|
53
57
|
v-else-if="schema.type === 'number'"
|
|
54
|
-
v-model.number="properties[
|
|
58
|
+
v-model.number="properties[groupId].fields[fieldKey].value"
|
|
55
59
|
type="number"
|
|
56
60
|
variant="subtle"
|
|
57
61
|
/>
|
|
58
62
|
|
|
59
63
|
<USelect
|
|
60
64
|
v-else-if="schema.type === 'enum'"
|
|
61
|
-
v-model="properties[
|
|
65
|
+
v-model="properties[groupId].fields[fieldKey].value"
|
|
62
66
|
:items="schema.options || []"
|
|
63
67
|
variant="subtle"
|
|
64
68
|
/>
|
|
65
69
|
|
|
66
70
|
<UInputMenu
|
|
67
71
|
v-else-if="schema.type === 'text-array'"
|
|
68
|
-
v-model="properties[
|
|
72
|
+
v-model="properties[groupId].fields[fieldKey].value[locale]"
|
|
69
73
|
multiple
|
|
70
74
|
creatable
|
|
71
75
|
variant="subtle"
|
|
@@ -74,7 +78,7 @@ const getSortedFields = (fields) => {
|
|
|
74
78
|
|
|
75
79
|
<UInput
|
|
76
80
|
v-else-if="schema.type === 'page'"
|
|
77
|
-
v-model="properties[
|
|
81
|
+
v-model="properties[groupId].fields[fieldKey].value"
|
|
78
82
|
icon="lucide:link-2"
|
|
79
83
|
variant="subtle"
|
|
80
84
|
:placeholder="`Select ${schema.allowedPageTypes?.join('/')}`"
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import { type Page } from '../../types/pages
|
|
1
|
+
import { type Page } from '../../types/pages';
|
|
2
2
|
type __VLS_ModelProps = {
|
|
3
3
|
modelValue: Page;
|
|
4
4
|
};
|
|
5
5
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
-
"update:modelValue": (value:
|
|
6
|
+
"update:modelValue": (value: {
|
|
7
|
+
type: "Default";
|
|
8
|
+
properties: import("../../types").BasePageProperties;
|
|
9
|
+
} & import("../../types").BasePage) => any;
|
|
7
10
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
8
|
-
"onUpdate:modelValue"?: ((value:
|
|
11
|
+
"onUpdate:modelValue"?: ((value: {
|
|
12
|
+
type: "Default";
|
|
13
|
+
properties: import("../../types").BasePageProperties;
|
|
14
|
+
} & import("../../types").BasePage) => any) | undefined;
|
|
9
15
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
16
|
declare const _default: typeof __VLS_export;
|
|
11
17
|
export default _default;
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { computed } from "vue";
|
|
3
|
+
import { useAppConfig } from "#imports";
|
|
4
|
+
import { useI18n } from "vue-i18n";
|
|
3
5
|
import {
|
|
4
|
-
PAGE_SCHEMAS
|
|
5
6
|
} from "../../types/pages";
|
|
6
7
|
const props = defineProps({
|
|
7
|
-
modelValue: { type:
|
|
8
|
+
modelValue: { type: null, required: true }
|
|
8
9
|
});
|
|
10
|
+
const appConfig = useAppConfig();
|
|
11
|
+
const locale = useI18n().locale;
|
|
9
12
|
const properties = computed(() => props.modelValue.properties);
|
|
10
13
|
const displayGroups = computed(() => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const value = properties.value[key];
|
|
14
|
+
return Object.entries(properties.value || {}).map(([groupId, group]) => {
|
|
15
|
+
const visibleFields = Object.entries(group.fields || {}).filter(([fieldKey, schema]) => {
|
|
16
|
+
const value = schema.type === "text" || schema.type === "text-array" ? schema.value?.[locale.value] : schema.value;
|
|
15
17
|
const isVisible = !schema.visibleIf || schema.visibleIf(props.modelValue.properties);
|
|
16
18
|
if (!isVisible) return false;
|
|
17
19
|
if (Array.isArray(value)) return value.length > 0;
|
|
@@ -19,6 +21,7 @@ const displayGroups = computed(() => {
|
|
|
19
21
|
}).sort(([, a], [, b]) => (a.order ?? 0) - (b.order ?? 0));
|
|
20
22
|
return {
|
|
21
23
|
...group,
|
|
24
|
+
groupId,
|
|
22
25
|
visibleFields
|
|
23
26
|
};
|
|
24
27
|
}).filter((group) => group.visibleFields.length > 0);
|
|
@@ -32,19 +35,19 @@ const displayGroups = computed(() => {
|
|
|
32
35
|
{{ props.modelValue.type }}
|
|
33
36
|
</div>
|
|
34
37
|
<h2 class="text-xl font-serif font-bold italic text-foreground">
|
|
35
|
-
{{ properties.name || props.modelValue.slug }}
|
|
38
|
+
{{ properties.name?.value?.[locale] || props.modelValue.slug }}
|
|
36
39
|
</h2>
|
|
37
40
|
</div>
|
|
38
41
|
|
|
39
|
-
<div v-for="group in displayGroups" :key="group.
|
|
42
|
+
<div v-for="group in displayGroups" :key="group.groupId" class="border-b last:border-b-0 border-border/40">
|
|
40
43
|
<div class="bg-muted/30 px-3 py-1.5 text-[10px] font-black text-primary uppercase tracking-tighter border-b border-border/10">
|
|
41
|
-
{{ group.label }}
|
|
44
|
+
{{ group.label[locale] }}
|
|
42
45
|
</div>
|
|
43
46
|
|
|
44
47
|
<dl class="p-3 space-y-2.5">
|
|
45
48
|
<div
|
|
46
|
-
v-for="[
|
|
47
|
-
:key="
|
|
49
|
+
v-for="[fieldKey, schema] in group.visibleFields"
|
|
50
|
+
:key="fieldKey"
|
|
48
51
|
class="grid grid-cols-3 gap-x-3 items-baseline"
|
|
49
52
|
>
|
|
50
53
|
<dt class="text-[11px] font-semibold text-muted-foreground leading-tight">
|
|
@@ -53,18 +56,22 @@ const displayGroups = computed(() => {
|
|
|
53
56
|
|
|
54
57
|
<dd class="text-xs col-span-2 text-foreground leading-snug">
|
|
55
58
|
<div v-if="schema.type === 'text-array'" class="flex flex-wrap gap-1">
|
|
56
|
-
<template v-for="(item, index) in properties[
|
|
59
|
+
<template v-for="(item, index) in properties[group.groupId].fields[fieldKey].value[locale]" :key="index">
|
|
57
60
|
<span class="font-medium">{{ item }}</span>
|
|
58
|
-
<span v-if="index < properties[
|
|
61
|
+
<span v-if="index < properties[group.groupId].fields[fieldKey].value[locale].length - 1" class="text-muted-foreground/50">, </span>
|
|
59
62
|
</template>
|
|
60
63
|
</div>
|
|
61
64
|
|
|
62
65
|
<span v-else-if="schema.type === 'page'" class="text-primary font-bold hover:underline cursor-pointer">
|
|
63
|
-
{{ properties[
|
|
66
|
+
{{ properties[group.groupId].fields[fieldKey].value }}
|
|
67
|
+
</span>
|
|
68
|
+
|
|
69
|
+
<span v-else-if="schema.type === 'text'" class="font-medium">
|
|
70
|
+
{{ properties[group.groupId].fields[fieldKey].value[locale] }}
|
|
64
71
|
</span>
|
|
65
72
|
|
|
66
73
|
<span v-else class="font-medium">
|
|
67
|
-
{{ properties[
|
|
74
|
+
{{ properties[group.groupId].fields[fieldKey].value }}
|
|
68
75
|
</span>
|
|
69
76
|
</dd>
|
|
70
77
|
</div>
|
|
@@ -75,16 +82,17 @@ const displayGroups = computed(() => {
|
|
|
75
82
|
<div class="flex flex-wrap gap-1.5">
|
|
76
83
|
<UBadge
|
|
77
84
|
v-for="tag in props.modelValue.tags"
|
|
78
|
-
:key="tag"
|
|
85
|
+
:key="String(tag[locale])"
|
|
79
86
|
variant="subtle"
|
|
80
87
|
size="sm"
|
|
81
88
|
color="neutral"
|
|
82
89
|
class="text-[9px] font-bold uppercase tracking-tight"
|
|
83
90
|
>
|
|
84
|
-
#{{ tag }}
|
|
91
|
+
#{{ tag[locale] }}
|
|
85
92
|
</UBadge>
|
|
86
93
|
</div>
|
|
87
94
|
</div>
|
|
95
|
+
|
|
88
96
|
</div>
|
|
89
97
|
</template>
|
|
90
98
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { computed } from "vue";
|
|
3
3
|
import { useClipboard } from "@vueuse/core";
|
|
4
|
-
import { useToast } from "
|
|
4
|
+
import { useToast } from "@nuxt/ui/composables";
|
|
5
5
|
const { copy } = useClipboard();
|
|
6
6
|
const toast = useToast();
|
|
7
7
|
const { name, hex, rgb, hsl, oklch, cmyk } = defineProps({
|