mirror of
https://github.com/modrinth/code.git
synced 2026-08-30 19:46:33 +00:00
begin project disclosures
This commit is contained in:
@@ -80,6 +80,7 @@ import _ChevronUpIcon from './icons/chevron-up.svg?component'
|
||||
import _CircleAlertIcon from './icons/circle-alert.svg?component'
|
||||
import _CircleArrowRightIcon from './icons/circle-arrow-right.svg?component'
|
||||
import _CircleDashedIcon from './icons/circle-dashed.svg?component'
|
||||
import _CircleDollarSignIcon from './icons/circle-dollar-sign.svg?component'
|
||||
import _CircleUserIcon from './icons/circle-user.svg?component'
|
||||
import _ClearIcon from './icons/clear.svg?component'
|
||||
import _ClientIcon from './icons/client.svg?component'
|
||||
@@ -135,6 +136,7 @@ import _GapIcon from './icons/gap.svg?component'
|
||||
import _GaugeIcon from './icons/gauge.svg?component'
|
||||
import _GenericListIcon from './icons/generic-list.svg?component'
|
||||
import _GiftIcon from './icons/gift.svg?component'
|
||||
import _GitForkIcon from './icons/git-fork.svg?component'
|
||||
import _GitGraphIcon from './icons/git-graph.svg?component'
|
||||
import _GlassesIcon from './icons/glasses.svg?component'
|
||||
import _GlobeIcon from './icons/globe.svg?component'
|
||||
@@ -183,6 +185,7 @@ import _LogOutIcon from './icons/log-out.svg?component'
|
||||
import _MailIcon from './icons/mail.svg?component'
|
||||
import _ManageIcon from './icons/manage.svg?component'
|
||||
import _MaximizeIcon from './icons/maximize.svg?component'
|
||||
import _MegaphoneIcon from './icons/megaphone.svg?component'
|
||||
import _MemoryStickIcon from './icons/memory-stick.svg?component'
|
||||
import _MessageIcon from './icons/message.svg?component'
|
||||
import _MessagesSquareIcon from './icons/messages-square.svg?component'
|
||||
@@ -218,6 +221,7 @@ import _PowerIcon from './icons/power.svg?component'
|
||||
import _PowerOffIcon from './icons/power-off.svg?component'
|
||||
import _RadioButtonIcon from './icons/radio-button.svg?component'
|
||||
import _RadioButtonCheckedIcon from './icons/radio-button-checked.svg?component'
|
||||
import _RadioTowerIcon from './icons/radio-tower.svg?component'
|
||||
import _ReceiptTextIcon from './icons/receipt-text.svg?component'
|
||||
import _RedoIcon from './icons/redo.svg?component'
|
||||
import _RefreshCwIcon from './icons/refresh-cw.svg?component'
|
||||
@@ -512,6 +516,7 @@ export const ChevronUpIcon = _ChevronUpIcon
|
||||
export const CircleAlertIcon = _CircleAlertIcon
|
||||
export const CircleArrowRightIcon = _CircleArrowRightIcon
|
||||
export const CircleDashedIcon = _CircleDashedIcon
|
||||
export const CircleDollarSignIcon = _CircleDollarSignIcon
|
||||
export const CircleUserIcon = _CircleUserIcon
|
||||
export const ClearIcon = _ClearIcon
|
||||
export const ClientIcon = _ClientIcon
|
||||
@@ -567,6 +572,7 @@ export const GapIcon = _GapIcon
|
||||
export const GaugeIcon = _GaugeIcon
|
||||
export const GenericListIcon = _GenericListIcon
|
||||
export const GiftIcon = _GiftIcon
|
||||
export const GitForkIcon = _GitForkIcon
|
||||
export const GitGraphIcon = _GitGraphIcon
|
||||
export const GlassesIcon = _GlassesIcon
|
||||
export const GlobeIcon = _GlobeIcon
|
||||
@@ -615,6 +621,7 @@ export const LogOutIcon = _LogOutIcon
|
||||
export const MailIcon = _MailIcon
|
||||
export const ManageIcon = _ManageIcon
|
||||
export const MaximizeIcon = _MaximizeIcon
|
||||
export const MegaphoneIcon = _MegaphoneIcon
|
||||
export const MemoryStickIcon = _MemoryStickIcon
|
||||
export const MessageIcon = _MessageIcon
|
||||
export const MessagesSquareIcon = _MessagesSquareIcon
|
||||
@@ -650,6 +657,7 @@ export const PowerIcon = _PowerIcon
|
||||
export const PowerOffIcon = _PowerOffIcon
|
||||
export const RadioButtonIcon = _RadioButtonIcon
|
||||
export const RadioButtonCheckedIcon = _RadioButtonCheckedIcon
|
||||
export const RadioTowerIcon = _RadioTowerIcon
|
||||
export const ReceiptTextIcon = _ReceiptTextIcon
|
||||
export const RedoIcon = _RedoIcon
|
||||
export const RefreshCwIcon = _RefreshCwIcon
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
<!-- @license lucide-static v0.562.0 - ISC -->
|
||||
<svg
|
||||
class="lucide lucide-circle-dollar-sign"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
<path d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8" />
|
||||
<path d="M12 18V6" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 414 B |
@@ -0,0 +1,19 @@
|
||||
<!-- @license lucide-static v0.562.0 - ISC -->
|
||||
<svg
|
||||
class="lucide lucide-git-fork"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<circle cx="12" cy="18" r="3" />
|
||||
<circle cx="6" cy="6" r="3" />
|
||||
<circle cx="18" cy="6" r="3" />
|
||||
<path d="M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9" />
|
||||
<path d="M12 12v3" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 470 B |
@@ -0,0 +1,17 @@
|
||||
<!-- @license lucide-static v0.562.0 - ISC -->
|
||||
<svg
|
||||
class="lucide lucide-megaphone"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z" />
|
||||
<path d="M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14" />
|
||||
<path d="M8 6v8" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 512 B |
@@ -0,0 +1,21 @@
|
||||
<!-- @license lucide-static v0.562.0 - ISC -->
|
||||
<svg
|
||||
class="lucide lucide-radio-tower"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M4.9 16.1C1 12.2 1 5.8 4.9 1.9" />
|
||||
<path d="M7.8 4.7a6.14 6.14 0 0 0-.8 7.5" />
|
||||
<circle cx="12" cy="9" r="2" />
|
||||
<path d="M16.2 4.8c2 2 2.26 5.11.8 7.47" />
|
||||
<path d="M19.1 1.9a9.96 9.96 0 0 1 0 14.1" />
|
||||
<path d="M9.5 18h5" />
|
||||
<path d="m8 22 4-11 4 11" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 568 B |
@@ -13,7 +13,52 @@
|
||||
<div class="markdown-body" v-html="licenseHtml" />
|
||||
</NewModal>
|
||||
<h2 class="text-lg m-0">{{ formatMessage(commonMessages.detailsLabel) }}</h2>
|
||||
<div class="flex flex-col gap-3 [&>div]:flex [&>div]:gap-2 [&>div]:items-center">
|
||||
<div
|
||||
class="flex flex-col gap-3 [&>div>svg]:shrink-0 [&>div>svg]:mt-[1px] [&>div]:flex [&>div]:gap-2 [&>div]:items-start"
|
||||
>
|
||||
<div>
|
||||
<SparklesIcon aria-hidden="true" />
|
||||
<div class="flex flex-col gap-1">
|
||||
<span>
|
||||
{{ capitalizeString(formatMessage(messages.aiGeneratedContent, { type: 'code' })) }}
|
||||
</span>
|
||||
<span class="text-sm text-secondary">
|
||||
The Chinese and Arabic translations are AI-generated
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<MegaphoneIcon aria-hidden="true" />
|
||||
<div class="flex flex-col gap-1">
|
||||
<span>
|
||||
{{ capitalizeString(formatMessage(messages.advertisingTitle)) }}
|
||||
</span>
|
||||
<span class="text-sm text-secondary"> Title screen has Essential promotion </span>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<CircleDollarSignIcon aria-hidden="true" />
|
||||
<div class="flex flex-col gap-1">
|
||||
<span>
|
||||
{{ capitalizeString(formatMessage(messages.paidFeatures)) }}
|
||||
</span>
|
||||
<span class="text-sm text-secondary"> Cosmetics available as Patreon reward </span>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<RadioTowerIcon aria-hidden="true" />
|
||||
<div class="flex flex-col gap-1">
|
||||
<span>
|
||||
{{ capitalizeString(formatMessage(messages.telemetryTitle, { consent: 'opt_out' })) }}
|
||||
</span>
|
||||
<span class="text-sm text-secondary">
|
||||
Update checker provides anonymous launch analytics to Modrinth
|
||||
</span>
|
||||
<span class="text-sm text-blue flex items-center gap-1">
|
||||
View privacy policy <ExternalIcon />
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="!hideLicense">
|
||||
<BookTextIcon aria-hidden="true" />
|
||||
<div>
|
||||
@@ -41,6 +86,20 @@
|
||||
</IntlFormatted>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<GitForkIcon aria-hidden="true" />
|
||||
<div class="flex flex-col gap-2">
|
||||
<span>
|
||||
{{ capitalizeString(formatMessage(messages.derivativeWork)) }}
|
||||
</span>
|
||||
<div class="flex flex-col gap-1">
|
||||
<span class="text-blue text-sm flex items-center gap-1">
|
||||
Modification Menu <ExternalIcon />
|
||||
</span>
|
||||
<span class="text-sm text-secondary"> Forked to add Fun Mode </span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="showFollowers">
|
||||
<HeartIcon aria-hidden="true" />
|
||||
<div>
|
||||
@@ -94,7 +153,19 @@
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import type { Labrinth } from '@modrinth/api-client'
|
||||
import { BookTextIcon, CalendarIcon, HeartIcon, ScaleIcon, VersionIcon } from '@modrinth/assets'
|
||||
import {
|
||||
BookTextIcon,
|
||||
CalendarIcon,
|
||||
CircleDollarSignIcon,
|
||||
ExternalIcon,
|
||||
GitForkIcon,
|
||||
HeartIcon,
|
||||
MegaphoneIcon,
|
||||
RadioTowerIcon,
|
||||
ScaleIcon,
|
||||
SparklesIcon,
|
||||
VersionIcon,
|
||||
} from '@modrinth/assets'
|
||||
import { capitalizeString, renderString } from '@modrinth/utils'
|
||||
import { useQuery } from '@tanstack/vue-query'
|
||||
import { computed, ref, useTemplateRef } from 'vue'
|
||||
@@ -143,6 +214,28 @@ const messages = defineMessages({
|
||||
id: 'project.license.loading',
|
||||
defaultMessage: 'Loading license text...',
|
||||
},
|
||||
advertisingTitle: {
|
||||
id: 'project.disclosure.advertising.title',
|
||||
defaultMessage: 'Contains advertising',
|
||||
},
|
||||
paidFeatures: {
|
||||
id: 'project.disclosure.paid-features.title',
|
||||
defaultMessage: 'Contains paid features',
|
||||
},
|
||||
aiGeneratedContent: {
|
||||
id: 'project.disclosure.ai-generated-content.title',
|
||||
defaultMessage:
|
||||
'Contains AI-generated {type, select, code {code} assets {assets} code_assets {code and assets} text {text} other {content}}',
|
||||
},
|
||||
derivativeWork: {
|
||||
id: 'project.disclosure.derivative-work.title',
|
||||
defaultMessage: 'This is a derivative work of:',
|
||||
},
|
||||
telemetryTitle: {
|
||||
id: 'project.disclosure.telemetry.title',
|
||||
defaultMessage:
|
||||
'Contains {consent, select, opt_in {opt-in telemetry} opt_out {opt-out telemetry} other {telemetry}}',
|
||||
},
|
||||
})
|
||||
|
||||
const createdDate = computed(() =>
|
||||
|
||||
@@ -3242,6 +3242,21 @@
|
||||
"project.about.tags.title": {
|
||||
"defaultMessage": "Tags"
|
||||
},
|
||||
"project.disclosure.advertising.title": {
|
||||
"defaultMessage": "Contains advertising"
|
||||
},
|
||||
"project.disclosure.ai-generated-content.title": {
|
||||
"defaultMessage": "Contains AI-generated {type, select, code {code} assets {assets} code_assets {code and assets} text {text} other {content}}"
|
||||
},
|
||||
"project.disclosure.derivative-work.title": {
|
||||
"defaultMessage": "This is a derivative work of:"
|
||||
},
|
||||
"project.disclosure.paid-features.title": {
|
||||
"defaultMessage": "Contains paid features"
|
||||
},
|
||||
"project.disclosure.telemetry.title": {
|
||||
"defaultMessage": "Contains {consent, select, opt_in {opt-in telemetry} opt_out {opt-out telemetry} other {telemetry}}"
|
||||
},
|
||||
"project.download-count-tooltip": {
|
||||
"defaultMessage": "{count, number} {count, plural, one {download} other {downloads}}"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user