1 line
51 KiB
Plaintext
1 line
51 KiB
Plaintext
{"version":3,"file":"main-DMHgl3ZP.chunk.mjs","sources":["../src/components/pages/IntroAnimation.vue","../src/components/SlideShow.vue","../src/components/InfoCard.vue","../src/components/WizardPage.vue","../src/components/pages/AboutNextcloud.vue","../src/components/AppStoreBadge.vue","../src/components/pages/DeviceIntegration.vue","../src/hub-release.ts","../src/components/pages/HubRelease.vue","../src/components/pages/KeyNotes.vue","../img/bluesky.svg?raw","../img/facebook.svg?raw","../img/linkedin.svg?raw","../img/mastodon.svg?raw","../img/x.svg?raw","../src/components/pages/SharePage.vue","../src/components/pages/WhatsNew.vue","../src/pages.ts","../src/views/App.vue","../src/main.ts"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div :class=\"$style.wrapper\">\n\t\t<video\n\t\t\tref=\"video\"\n\t\t\t:class=\"$style.video\"\n\t\t\tplaysinline\n\t\t\tautoplay\n\t\t\tmuted\n\t\t\t@ended=\"handleEnded\">\n\t\t\t<source :src=\"videoWebm\" type=\"video/webm\">\n\t\t\t<source :src=\"videoMp4\" type=\"video/mp4\">\n\t\t\t{{ videoFallbackText }}\n\t\t</video>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { translate as t } from '@nextcloud/l10n'\nimport { imagePath } from '@nextcloud/router'\nimport { onMounted, useTemplateRef } from 'vue'\n\nconst emit = defineEmits<{\n\t(e: 'next'): void\n}>()\n\nconst videoMp4 = imagePath('firstrunwizard', 'Nextcloud.mp4')\nconst videoWebm = imagePath('firstrunwizard', 'Nextcloud.webm')\nconst videoFallbackImage = imagePath('firstrunwizard', 'Nextcloud.webp')\nconst videoFallbackText = t('firstrunwizard', 'Welcome to {cloudName}!', { cloudName: window.OC.theme.name })\n\nconst videoElement = useTemplateRef('video')\n\nonMounted(() => {\n\t// check if the browser allows auto play - otherwise we need to skip this\n\tif (navigator.getAutoplayPolicy && navigator.getAutoplayPolicy(videoElement.value) === 'disallowed') {\n\t\tvideoElement.value!.poster = videoFallbackImage\n\t\twindow.setTimeout(handleEnded, 2500)\n\t}\n})\n\n/**\n * Handle video has ended\n */\nfunction handleEnded() {\n\temit('next')\n}\n</script>\n\n<style module>\n.video {\n\twidth: 100%;\n\theight: 100%;\n\tobject-fit: cover;\n}\n\n.wrapper {\n\tbackground-color: var(--color-primary-element);\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div :class=\"$style.wrapper\">\n\t\t<!-- The \"wave\" background for the logo on the first page-->\n\t\t<Transition\n\t\t\t:enter-class=\"waveTransitionClasses.enter\"\n\t\t\t:enter-active-class=\"waveTransitionClasses.active\"\n\t\t\t:leave-active-class=\"waveTransitionClasses.active\"\n\t\t\t:leave-to-class=\"waveTransitionClasses.leave\">\n\t\t\t<div v-if=\"isFirstPage\" :class=\"$style.background_circle\" />\n\t\t</Transition>\n\n\t\t<!-- Bar on the modal top -->\n\t\t<div :class=\"$style.background_bar\" />\n\n\t\t<!-- Back button on mobile if not first page -->\n\t\t<NcButton\n\t\t\tv-if=\"!isFirstPage\"\n\t\t\t:aria-label=\"t('firstrunwizard', 'Go to previous page')\"\n\t\t\t:class=\"$style.button_back\"\n\t\t\tvariant=\"tertiary-no-background\"\n\t\t\t@click=\"$emit('update:current-index', currentIndex - 1)\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :path=\"mdiArrowLeft\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<!-- Custom close button to fix color contrast on first page -->\n\t\t<NcButton\n\t\t\t:aria-label=\"t('firstrunwizard', 'Close')\"\n\t\t\t:class=\"$style.button_close\"\n\t\t\t:variant=\"isFirstPage ? 'tertiary-on-primary' : 'tertiary-no-background'\"\n\t\t\t@click=\"$emit('update:current-index', -1)\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :path=\"mdiClose\" />\n\t\t\t</template>\n\t\t</NcButton>\n\n\t\t<!-- The first page has the logo within a \"wave\" style background -->\n\t\t<div v-if=\"isFirstPage\" :class=\"$style.logo\" />\n\n\t\t<!-- The page that is currently show wrapped in a slide transition -->\n\t\t<Transition\n\t\t\tmode=\"out-in\"\n\t\t\t:enter-class=\"transitionClasses.enter\"\n\t\t\t:enter-active-class=\"transitionClasses.active\"\n\t\t\t:leave-active-class=\"transitionClasses.active\"\n\t\t\t:leave-to-class=\"transitionClasses.leave\">\n\t\t\t<component :is=\"currentPage.component\" :scroller-classes=\"isFirstPage ? $style.first_page_scroller : ''\" />\n\t\t</Transition>\n\n\t\t<!-- Next button(s) -->\n\t\t<div :class=\"$style.button_wrapper\">\n\t\t\t<NcButton\n\t\t\t\tv-for=\"button, index of currentPage.buttons\"\n\t\t\t\t:key=\"button.to\"\n\t\t\t\talignment=\"center-reverse\"\n\t\t\t\t:variant=\"index === currentPage.buttons.length - 1 ? 'primary' : 'secondary'\"\n\t\t\t\t:wide=\"index === currentPage.buttons.length - 1\"\n\t\t\t\t@click=\"goToPage(button.to)\">\n\t\t\t\t<template v-if=\"!isLastPage\" #icon>\n\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiArrowRight\" />\n\t\t\t\t</template>\n\t\t\t\t{{ button.label }}\n\t\t\t</NcButton>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport type { IPage } from '../pages.ts'\n\nimport { mdiArrowLeft, mdiArrowRight, mdiClose } from '@mdi/js'\nimport { translate as t } from '@nextcloud/l10n'\nimport { imagePath } from '@nextcloud/router'\nimport { computed, ref, useCssModule, watch } from 'vue'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\n\nconst props = defineProps<{\n\tpages: IPage[]\n\tcurrentIndex: number\n}>()\n\nconst emit = defineEmits<{\n\t(e: 'update:current-index', index: number): void\n}>()\n\n/**\n * True if the transition effect should be reversed (e.g. going back)\n */\nconst reverseTransition = ref(false)\n\nconst currentPage = computed(() => props.pages[props.currentIndex])\nconst isFirstPage = computed(() => props.currentIndex === 0)\nconst isLastPage = computed(() => props.currentIndex === (props.pages.length - 1))\n\nconst cssLogoUrl = `url('${imagePath('firstrunwizard', 'nextcloudLogo.svg')}')`\n\nconst transitions = useCssModule('transitions')\n\n/**\n * The transition effect to use for the page change\n */\nconst transitionClasses = computed(() => {\n\tconst direction = reverseTransition.value ? 'right' : 'left'\n\n\treturn {\n\t\tactive: transitions['slide-active'],\n\t\tenter: transitions[`slide-${direction}-enter`],\n\t\tleave: transitions[`slide-${direction}-leave-to`],\n\t}\n})\n\n/**\n * The transition effect for the wave on the first page\n */\nconst waveTransitionClasses = computed(() => {\n\tconst direction = reverseTransition.value ? 'down' : 'up'\n\treturn {\n\t\tactive: transitions['slide-active'],\n\t\tenter: transitions[`slide-${direction}-enter`],\n\t\tleave: transitions[`slide-${direction}-leave-to`],\n\t}\n})\n\n/**\n * When we show a previous page we want to reverse the transition\n */\nwatch(() => props.currentIndex, (newPage, oldPage) => {\n\tif (newPage < oldPage) {\n\t\treverseTransition.value = true\n\t} else {\n\t\treverseTransition.value = false\n\t}\n})\n\n/**\n * Move to page with given ID\n *\n * @param pageId ID of the page to got to\n */\nfunction goToPage(pageId: string) {\n\tconst id = props.pages.findIndex((page) => page.id === pageId)\n\temit('update:current-index', id)\n}\n</script>\n\n<style module lang=\"scss\">\n.wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tpadding: calc(var(--default-grid-baseline) * 5);\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\twidth: 100%;\n\tmin-height: min(590px, calc(100dvh - 2 * var(--header-height)));\n}\n\n.background_circle {\n\theight: 6000px;\n\twidth: 6000px;\n\tborder-radius: 3000px;\n\tbackground-color: var(--color-primary-element);\n\tposition: absolute;\n\ttop: -5900px;\n\tleft: calc( -3000px + 50%);\n}\n\n.background_bar {\n\tposition:absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 10px;\n\tbackground-color: var(--color-primary-element);\n}\n\n.button_back {\n\tposition: absolute!important;\n\ttop: var(--default-grid-baseline);\n\tleft: var(--default-grid-baseline);\n}\n\n.button_close {\n\tposition: absolute!important;\n\ttop: var(--default-grid-baseline);\n\tright: var(--default-grid-baseline);\n}\n\n.button_wrapper {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 22px;\n\twidth: 100%;\n\n\t// Do not change width of buttons\n\t> * {\n\t\tflex: 0 0 fit-content;\n\t}\n\n\t// stretch the last one\n\t> *:last-of-type {\n\t\tflex: 1 0 fit-content;\n\t}\n}\n\n.logo {\n\theight: 70px;\n\tbackground-image: var(--image-logoheader, var(--image-logo, v-bind(cssLogoUrl)));\n\tbackground-repeat: no-repeat;\n\tbackground-position: center;\n\tbackground-size: 100px;\n\tmargin: auto;\n\tposition: absolute;\n\tleft: 0;\n\twidth: 100%;\n\tpointer-events: none;\n}\n\n// Compensate logo height on first page\n.first_page_scroller {\n\tmargin-top: calc(var(--default-grid-baseline) * 8 + 70px) !important;\n}\n</style>\n\n<style module=\"transitions\">\n/**\n * The transition classes\n */\n.slide-active {\n\ttransition: all .2s;\n}\n\n.slide-left-enter {\n\topacity: 0;\n\ttransform: translateX(30%);\n}\n\n.slide-left-leave-to {\n\topacity: 0;\n\ttransform: translateX(-30%);\n}\n\n.slide-right-enter {\n\topacity: 0;\n\ttransform: translateX(-30%);\n}\n\n.slide-right-leave-to {\n\topacity: 0;\n\ttransform: translateX(30%);\n}\n\n.slide-up-enter {\n\ttop: calc(-5900px);\n}\n\n.slide-up-leave-to {\n\ttop: calc(-5900px - 80px);\n}\n\n.slide-down-enter {\n\ttop: calc(-5900px - 80px);\n}\n\n.slide-down-leave-to {\n\ttop: calc(-5900px);\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<component\n\t\t:is=\"isLink ? 'a' : 'div'\"\n\t\t:href=\"href || undefined\"\n\t\t:class=\"[$style.card, { [$style.link]: isLink }]\"\n\t\t:target=\"!isLink ? undefined : '_blank'\"\n\t\t:rel=\"!isLink ? undefined : 'noreferrer'\">\n\t\t<div :class=\"$style.icon\">\n\t\t\t<slot />\n\t\t</div>\n\t\t<div :class=\"$style.text\">\n\t\t\t<h3 :class=\"$style.heading\">\n\t\t\t\t{{ title }}\n\t\t\t</h3>\n\t\t\t<p v-if=\"subtitle !== undefined\" v-text=\"subtitle\" />\n\t\t</div>\n\t</component>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nconst props = defineProps<{\n\ttitle: string\n\tsubtitle?: string\n\thref?: string\n}>()\n\nconst isLink = computed(() => !!props.href)\n</script>\n\n<style module lang=\"scss\">\n.card {\n\tdisplay: flex;\n\tgap: var(--default-grid-baseline);\n\tmax-width: 250px;\n\tbox-sizing: border-box;\n\theight: auto;\n}\n\n.icon {\n\tdisplay: flex;\n\tflex: 0 0 var(--default-clickable-area);\n\talign-items: start;\n\n\t&:empty {\n\t\tdisplay: none;\n\t}\n}\n\n.heading {\n\t// While this is semantically a heading, visually it should be bold text\n\tfont-size: var(--default-font-size);\n\tfont-weight: bold;\n\tmargin: 0;\n}\n\n.link {\n\tbox-shadow: 0px 0px 10px 0px var(--color-box-shadow);\n\tborder-radius: var(--border-radius-large);\n\tpadding: calc(var(--default-grid-baseline) * 4);\n\t&:focus-visible {\n\t\toutline: 2px solid var(--color-main-text);\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background);\n\t}\n}\n\n.text {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div :class=\"$style.wrapper\">\n\t\t<div :class=\"[$style.scroller, scrollerClasses]\">\n\t\t\t<h2 :class=\"$style.heading\">\n\t\t\t\t{{ title }}\n\t\t\t</h2>\n\t\t\t<p v-if=\"subtitle\" :class=\"$style.subtitle\">\n\t\t\t\t{{ subtitle }}\n\t\t\t</p>\n\t\t\t<div :class=\"$style.content\">\n\t\t\t\t<slot />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\ndefineProps<{\n\ttitle: string\n\tsubtitle?: string\n\tscrollerClasses?: string | string[] | Record<string, boolean>\n}>()\n</script>\n\n<style module>\n.wrapper {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\tmin-height: min(520px, 50dvh);\n}\n\n.scroller {\n\toverflow-y: scroll;\n\tmargin-top: calc(4 * var(--default-grid-baseline));\n}\n\n.heading {\n\tfont-size: 20px;\n\tmargin-block: 0;\n\ttext-align: center;\n}\n\n.subtitle{\n\tmax-width: 450px;\n\tmargin: auto;\n\ttext-align: center;\n}\n\n.content {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: calc(6 * var(--default-grid-baseline));\n\tjustify-content: center;\n\tmargin: calc(8 * var(--default-grid-baseline)) 0;\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<WizardPage :title=\"t('firstrunwizard', 'More about Nextcloud')\">\n\t\t<InfoCard\n\t\t\thref=\"https://apps.nextcloud.com/\"\n\t\t\t:title=\"t('firstrunwizard', 'Explore more apps ↗')\"\n\t\t\t:subtitle=\"t('firstrunwizard', 'Extend the functionality of Nextcloud with hundreds of community-developed apps.')\" />\n\t\t<InfoCard\n\t\t\thref=\"https://nextcloud.com/contribute/\"\n\t\t\t:title=\"t('firstrunwizard', 'Get involved! ↗')\"\n\t\t\t:subtitle=\"t('firstrunwizard', 'Be a part of the community that helps build, design, translate and promote Nextcloud!')\" />\n\t\t<InfoCard\n\t\t\thref=\"https://docs.nextcloud.com/\"\n\t\t\t:title=\"t('firstrunwizard', 'Need help? ↗')\"\n\t\t\t:subtitle=\"t('firstrunwizard', 'Find out more about your Nextcloud setup with the admin, user or developer documentation.')\" />\n\t\t<InfoCard\n\t\t\thref=\"https://nextcloud.com/enterprise/\"\n\t\t\t:title=\"t('firstrunwizard', 'For large organisations ↗')\"\n\t\t\t:subtitle=\"t('firstrunwizard', 'Get Nextcloud Enterprise for mission critical environments where advanced security and compliance are important.')\" />\n\t</WizardPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { translate as t } from '@nextcloud/l10n'\nimport InfoCard from '../InfoCard.vue'\nimport WizardPage from '../WizardPage.vue'\n</script>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<a\n\t\t:class=\"$style.badge\"\n\t\t:aria-label=\"ariaLabel\"\n\t\ttarget=\"_blank\"\n\t\trel=\"noreferrer\"\n\t\t:href=\"href\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\nimport { imagePath } from '@nextcloud/router'\nimport { computed } from 'vue'\n\nconst props = defineProps<{\n\ttype: 'ios' | 'android'\n}>()\n\nconst android = loadState<string>('firstrunwizard', 'android')\nconst ios = loadState<string>('firstrunwizard', 'ios')\n\n/**\n * Path to the app store badge image\n */\nconst badgeImagePath = computed(() => {\n\tif (props.type === 'ios') {\n\t\treturn imagePath('firstrunwizard', 'iosBadge.png')\n\t} else if (props.type === 'android') {\n\t\treturn imagePath('firstrunwizard', 'androidBadge.png')\n\t}\n\treturn undefined\n})\n\n/**\n * The badge image as CSS source URL\n */\nconst cssBackgroundImage = computed(() => `url('${badgeImagePath.value}')`)\n\nconst href = computed(() => {\n\tif (props.type === 'ios') {\n\t\treturn ios\n\t} else if (props.type === 'android') {\n\t\treturn android\n\t}\n\treturn undefined\n})\n\nconst ariaLabel = computed(() => {\n\tif (props.type === 'ios') {\n\t\treturn t('firstrunwizard', 'Download on Apple app store')\n\t} else if (props.type === 'android') {\n\t\treturn t('firstrunwizard', 'Download on Google play store')\n\t}\n\treturn undefined\n})\n</script>\n\n<style module lang=\"scss\">\n.badge {\n\theight: 74px;\n\twidth: 250px;\n\tbackground-image: v-bind(cssBackgroundImage);\n\tbackground-size: contain;\n\tbackground-repeat: no-repeat;\n\t&:focus-visible {\n\t\toutline: 2px solid var(--color-main-text);\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background);\n\t}\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<WizardPage\n\t\t:title=\"t('firstrunwizard', 'Seamless integration with your devices.')\"\n\t\t:subtitle=\"t('firstrunwizard', 'Sync your files across your devices with the desktop and mobile apps, and connect your calendar and contacts.')\">\n\t\t<AppStoreBadge type=\"android\" />\n\t\t<AppStoreBadge type=\"ios\" />\n\t\t<InfoCard\n\t\t\t:href=\"desktop\"\n\t\t\t:title=\"t('firstrunwizard', 'Desktop app ↗')\"\n\t\t\t:subtitle=\"t('firstrunwizard', 'Download For Windows, Mac OS and Linux.')\" />\n\t\t<InfoCard\n\t\t\t:href=\"syncClientsUrl\"\n\t\t\t:title=\"t('firstrunwizard', 'Calendar and contacts ↗')\"\n\t\t\t:subtitle=\"t('firstrunwizard', 'Connect your calendar and contacts with your devices.')\" />\n\t</WizardPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\nimport AppStoreBadge from '../AppStoreBadge.vue'\nimport InfoCard from '../InfoCard.vue'\nimport WizardPage from '../WizardPage.vue'\n\nconst desktop = loadState<string>('firstrunwizard', 'desktop')\nconst syncClientsUrl = generateUrl('settings/user/sync-clients')\n</script>\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { t } from '@nextcloud/l10n'\n\n/* How to do a new release?\n * 1. Update the `version` to the current HUB release\n * 2. Update the `link` for further information\n * 3. Add release notes, each entry is a new point.\n * 4. Update the alt text for the animation if needed.\n */\nexport default {\n\t/** The HUB release version */\n\tversion: '25 Autumn',\n\n\t/** Link to further information (e.g. blog post) */\n\tlink: 'https://nextcloud.com/blog/nextcloud-hub25-autumn/',\n\n\t/** Release notes in list format */\n\treleaseNotes: [\n\t\t'🫧 ' + t('firstrunwizard', 'Global redesign and usability lift'),\n\t\t'🎨 ' + t('firstrunwizard', 'New Office UI: colors, tabs, bars'),\n\t\t'💪 ' + t('firstrunwizard', 'Performance and stability boost'),\n\t\t'🧠 ' + t('firstrunwizard', 'New AI Agency tools unlocked'),\n\t\t'💬 ' + t('firstrunwizard', 'Talk threads & live transcription'),\n\t\t'📅 ' + t('firstrunwizard', 'Calendar: date poll for participants'),\n\t\t'🔎 ' + t('firstrunwizard', 'Intuitive file search'),\n\t\t'👥 ' + t('firstrunwizard', 'Teams 2.0 & quick Guest accounts'),\n\t\t'👑 ' + t('firstrunwizard', 'Quick presets & many other admin updates'),\n\t\t'⚡ ' + t('firstrunwizard', 'Vue3, WebSockets and more OpenAPI for devs'),\n\t\tt('firstrunwizard', '… and much more!'),\n\t],\n\n\t/** Alternative text for the release animation */\n\tvideoAltText: t('firstrunwizard', 'Get to know the new features of Hub {version}', { version: '25 Autumn' }),\n\n\t/** Subject that is used when sharing the post */\n\tshareSubject: t('firstrunwizard', 'Nextcloud Hub 25 Autumn – Your digital workspace, ready in no time ⚡'),\n}\n","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<WizardPage :title=\"t('firstrunwizard', 'Introducing Nextcloud Hub {version}', { version: HUBRelease.version })\">\n\t\t<a :href=\"HUBRelease.link\" :class=\"$style.anchor\" target=\"_blank\">\n\t\t\t<video\n\t\t\t\t:class=\"$style.animation\"\n\t\t\t\tautoplay\n\t\t\t\tmuted\n\t\t\t\tplaysinline\n\t\t\t\t:poster=\"videoFallbackImage\">\n\t\t\t\t<source :src=\"videoWebm\" type=\"video/webm;codecs=vp9\">\n\t\t\t\t<source :src=\"videoMp4\" type=\"video/mp4\">\n\t\t\t\t{{ HUBRelease.videoAltText }}\n\t\t\t</video>\n\t\t</a>\n\t</WizardPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { translate as t } from '@nextcloud/l10n'\nimport { imagePath } from '@nextcloud/router'\nimport WizardPage from '../WizardPage.vue'\nimport HUBRelease from '../../hub-release.ts'\n\nconst videoMp4 = imagePath('firstrunwizard', 'nextcloudHub.mp4')\nconst videoWebm = imagePath('firstrunwizard', 'nextcloudHub.webm')\nconst videoFallbackImage = imagePath('firstrunwizard', 'nextcloudHub.webp')\n</script>\n\n<style module>\n.anchor {\n\twidth: 100%;\n}\n\n.animation {\n\tborder-radius: var(--border-radius-rounded);\n\tobject-fit: contain;\n\twidth: 100%;\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<WizardPage\n\t\t:scroller-classes=\"scrollerClasses\"\n\t\t:title=\"t('firstrunwizard', 'A collaboration platform that puts you in control')\">\n\t\t<InfoCard\n\t\t\t:title=\"t('firstrunwizard', 'Privacy')\"\n\t\t\t:subtitle=\"t('firstrunwizard', 'Host your data and files where you decide.')\">\n\t\t\t<NcIconSvgWrapper :class=\"$style.icon\" inline :path=\"mdiLock\" />\n\t\t</InfoCard>\n\t\t<InfoCard\n\t\t\t:title=\"t('firstrunwizard', 'Productivity')\"\n\t\t\t:subtitle=\"t('firstrunwizard', 'Collaborate and communicate across any platform.')\">\n\t\t\t<NcIconSvgWrapper :class=\"$style.icon\" inline :path=\"mdiBriefcaseCheck\" />\n\t\t</InfoCard>\n\t\t<InfoCard\n\t\t\t:title=\"t('firstrunwizard', 'Interoperability')\"\n\t\t\t:subtitle=\"t('firstrunwizard', 'Import and export anything you want with open standards.')\">\n\t\t\t<NcIconSvgWrapper :class=\"$style.icon\" inline :path=\"mdiSwapHorizontal\" />\n\t\t</InfoCard>\n\t\t<InfoCard\n\t\t\t:title=\"t('firstrunwizard', 'Community')\"\n\t\t\t:subtitle=\"t('firstrunwizard', 'Enjoy constant improvements from a thriving open-source community.')\">\n\t\t\t<NcIconSvgWrapper :class=\"$style.icon\" inline :path=\"mdiAccountGroup\" />\n\t\t</InfoCard>\n\n\t\t<p :class=\"$style.version\">\n\t\t\t{{ versionNumber }}\n\t\t</p>\n\t</WizardPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { mdiAccountGroup, mdiBriefcaseCheck, mdiLock, mdiSwapHorizontal } from '@mdi/js'\nimport { translate as t } from '@nextcloud/l10n'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\nimport InfoCard from '../InfoCard.vue'\nimport WizardPage from '../WizardPage.vue'\n\ndefineProps<{\n\tscrollerClasses?: string | string[] | Record<string, boolean>\n}>()\n\nconst versionNumber = t('firstrunwizard', 'This Nextcloud is on version {version}', { version: window.OC.config.versionstring })\n</script>\n\n<style module>\n.icon {\n\tmargin-block: calc((1lh - 20px) / 2);\n}\n\n.version {\n\tcolor: var(--color-text-maxcontrast);\n\tmargin-block: calc(var(--default-grid-baseline) * 4) 0;\n\ttext-align: center;\n}\n</style>\n","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 640 640\\\">\\n<!--SPDX-FileCopyrightText: 2025 Fonticons, Inc.\\n - SPDX-License-Identifier: CC-BY-4.0 -->\\n<path d=\\\"M439.8 358.7C436.5 358.3 433.1 357.9 429.8 357.4C433.2 357.8 436.5 358.3 439.8 358.7zM320 291.1C293.9 240.4 222.9 145.9 156.9 99.3C93.6 54.6 69.5 62.3 53.6 69.5C35.3 77.8 32 105.9 32 122.4C32 138.9 41.1 258 47 277.9C66.5 343.6 136.1 365.8 200.2 358.6C203.5 358.1 206.8 357.7 210.2 357.2C206.9 357.7 203.6 358.2 200.2 358.6C106.3 372.6 22.9 406.8 132.3 528.5C252.6 653.1 297.1 501.8 320 425.1C342.9 501.8 369.2 647.6 505.6 528.5C608 425.1 533.7 372.5 439.8 358.6C436.5 358.2 433.1 357.8 429.8 357.3C433.2 357.7 436.5 358.2 439.8 358.6C503.9 365.7 573.4 343.5 593 277.9C598.9 258 608 139 608 122.4C608 105.8 604.7 77.7 586.4 69.5C570.6 62.4 546.4 54.6 483.2 99.3C417.1 145.9 346.1 240.4 320 291.1z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 32 32\\\" height=\\\"32\\\" width=\\\"32\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xml:space=\\\"preserve\\\" style=\\\"fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2\\\"><path d=\\\"M0 1.831c0-138.071-111.929-250-250-250s-250 111.929-250 250c0 117.245 80.715 215.622 189.606 242.638V78.227h-51.552V1.831h51.552v-32.919c0-85.092 38.508-124.532 122.048-124.532 15.838 0 43.167 3.105 54.347 6.211v69.254c-5.901-.621-16.149-.932-28.882-.932-40.993 0-56.832 15.528-56.832 55.9V1.831h81.659l-14.028 76.396h-67.631V250C-95.927 235.049 0 129.649 0 1.831\\\" style=\\\"fill-rule:nonzero\\\" transform=\\\"matrix(.064 0 0 .064 32 15.883)\\\"/></svg>\"","export default \"<svg version=\\\"1.1\\\" viewBox=\\\"0 0 72 72\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><g fill=\\\"none\\\" fill-rule=\\\"evenodd\\\"><path d=\\\"m8 0c-4.4183 8.1162e-16 -8 3.5817-8 8v56c5.4108e-16 4.4183 3.5817 8 8 8h56c4.4183 0 8-3.5817 8-8v-56c0-4.4183-3.5817-8-8-8h-56zm8.3496 10c3.5073 0 6.3477 2.8638 6.3477 6.3965s-2.8404 6.3984-6.3477 6.3984-6.3496-2.8658-6.3496-6.3984 2.8423-6.3965 6.3496-6.3965zm33.033 16.273c7.3531 0 12.617 4.4906 12.617 13.777v21.949h-10.684v-18.197c0-4.9894-1.8966-7.7773-5.8457-7.7773-4.2961 0-6.541 2.9013-6.541 7.7773v18.197h-10.297v-34.666h10.297v4.668s3.0966-5.7285 10.453-5.7285zm-38.35 1.0605h10.736v34.666h-10.736v-34.666z\\\" fill=\\\"currentColor\\\"/></g></svg>\"","export default \"<svg viewBox=\\\"0 0 74 79\\\" fill=\\\"currentColor\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M73.7014 17.9592C72.5616 9.62034 65.1774 3.04876 56.424 1.77536C54.9472 1.56019 49.3517 0.7771 36.3901 0.7771H36.2933C23.3281 0.7771 20.5465 1.56019 19.0697 1.77536C10.56 3.01348 2.78877 8.91838 0.903306 17.356C-0.00357857 21.5113 -0.100361 26.1181 0.068112 30.3439C0.308275 36.404 0.354874 42.4535 0.91406 48.489C1.30064 52.498 1.97502 56.4751 2.93215 60.3905C4.72441 67.6217 11.9795 73.6395 19.0876 76.0945C26.6979 78.6548 34.8821 79.0799 42.724 77.3221C43.5866 77.1245 44.4398 76.8953 45.2833 76.6342C47.1867 76.0381 49.4199 75.3714 51.0616 74.2003C51.0841 74.1839 51.1026 74.1627 51.1156 74.1382C51.1286 74.1138 51.1359 74.0868 51.1368 74.0592V68.2108C51.1364 68.185 51.1302 68.1596 51.1185 68.1365C51.1069 68.1134 51.0902 68.0932 51.0695 68.0773C51.0489 68.0614 51.0249 68.0503 50.9994 68.0447C50.9738 68.0391 50.9473 68.0392 50.9218 68.045C45.8976 69.226 40.7491 69.818 35.5836 69.8087C26.694 69.8087 24.3031 65.6569 23.6184 63.9285C23.0681 62.4347 22.7186 60.8764 22.5789 59.2934C22.5775 59.2669 22.5825 59.2403 22.5934 59.216C22.6043 59.1916 22.621 59.1702 22.6419 59.1533C22.6629 59.1365 22.6876 59.1248 22.714 59.1191C22.7404 59.1134 22.7678 59.1139 22.794 59.1206C27.7345 60.2936 32.799 60.8856 37.8813 60.8843C39.1036 60.8843 40.3223 60.8843 41.5447 60.8526C46.6562 60.7115 52.0437 60.454 57.0728 59.4874C57.1983 59.4628 57.3237 59.4416 57.4313 59.4098C65.3638 57.9107 72.9128 53.2051 73.6799 41.2895C73.7086 40.8204 73.7803 36.3758 73.7803 35.889C73.7839 34.2347 74.3216 24.1533 73.7014 17.9592ZM61.4925 47.6918H53.1514V27.5855C53.1514 23.3526 51.3591 21.1938 47.7136 21.1938C43.7061 21.1938 41.6988 23.7476 41.6988 28.7919V39.7974H33.4078V28.7919C33.4078 23.7476 31.3969 21.1938 27.3894 21.1938C23.7654 21.1938 21.9552 23.3526 21.9516 27.5855V47.6918H13.6176V26.9752C13.6176 22.7423 14.7157 19.3795 16.9118 16.8868C19.1772 14.4 22.1488 13.1231 25.8373 13.1231C30.1064 13.1231 33.3325 14.7386 35.4832 17.9662L37.5587 21.3949L39.6377 17.9662C41.7884 14.7386 45.0145 13.1231 49.2765 13.1231C52.9614 13.1231 55.9329 14.4 58.2055 16.8868C60.4017 19.3772 61.4997 22.74 61.4997 26.9752L61.4925 47.6918Z\\\" fill=\\\"inherit\\\"/></svg>\\n\"","export default \"<svg viewBox=\\\"0 0 1200 1227\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z\\\" fill=\\\"currentColor\\\"/></svg>\\n\"","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<WizardPage :title=\"t('firstrunwizard', 'Find out more on the blog')\">\n\t\t<NcButton :href=\"HubRelease.link\" target=\"_blank\">\n\t\t\t{{ t('firstrunwizard', 'Read the Nextcloud Hub {version} blog', { version: HubRelease.version }) }} ↗\n\t\t</NcButton>\n\n\t\t<section :class=\"$style.share_section\">\n\t\t\t<h3 :class=\"$style.heading\">\n\t\t\t\t{{ t('firstrunwizard', 'Share your opinion about Nextcloud Hub {version}', { version: HubRelease.version }) }}\n\t\t\t</h3>\n\t\t\t<div :class=\"$style.share_wrapper\">\n\t\t\t\t<InfoCard\n\t\t\t\t\tv-for=\"entry of shareLinks\"\n\t\t\t\t\t:key=\"entry.id\"\n\t\t\t\t\t:class=\"$style.card\"\n\t\t\t\t\t:href=\"entry.link\"\n\t\t\t\t\t:title=\"entry.id === 'email' ? t('firstrunwizard', 'Share via email') : t('firstrunwizard', 'Share on {socialMedia}', { socialMedia: entry.name })\">\n\t\t\t\t\t<NcIconSvgWrapper\n\t\t\t\t\t\tv-if=\"entry.icon\"\n\t\t\t\t\t\t:svg=\"entry.id !== 'email' ? entry.icon : undefined\"\n\t\t\t\t\t\t:path=\"entry.id === 'email' ? entry.icon : undefined\" />\n\t\t\t\t</InfoCard>\n\t\t\t</div>\n\t\t</section>\n\t</WizardPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { mdiEmail } from '@mdi/js'\nimport { translate as t } from '@nextcloud/l10n'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\nimport InfoCard from '../InfoCard.vue'\nimport WizardPage from '../WizardPage.vue'\nimport blueskySvg from '../../../img/bluesky.svg?raw'\nimport facebookSvg from '../../../img/facebook.svg?raw'\nimport linkedInSvg from '../../../img/linkedin.svg?raw'\nimport mastodonSvg from '../../../img/mastodon.svg?raw'\nimport xSvg from '../../../img/x.svg?raw'\nimport HubRelease from '../../hub-release.ts'\n\nconst encodedLink = encodeURIComponent(encodeURI(HubRelease.link))\nconst mailSubject = encodeURIComponent(HubRelease.shareSubject ?? t('firstrunwizard', 'Nextcloud Hub {version} release', { version: HubRelease.version }))\nconst mailBody = encodeURIComponent(t('firstrunwizard', 'Read more about it on the Nextcloud Hub {version} blog', { version: HubRelease.version }) + '\\n' + HubRelease.link)\n\nconst shareLinks = [\n\t{\n\t\tid: 'bluesky',\n\t\tname: 'Bluesky',\n\t\tlink: `https://bsky.app/intent/compose?text=${encodedLink}`,\n\t\ticon: blueskySvg,\n\t},\n\t{\n\t\tid: 'facebook',\n\t\tname: 'Facebook',\n\t\tlink: `https://www.facebook.com/sharer/sharer.php?u=${encodedLink}`,\n\t\ticon: facebookSvg,\n\t},\n\t{\n\t\tid: 'linkedin',\n\t\tname: 'LinkedIn',\n\t\tlink: `https://www.linkedin.com/sharing/share-offsite/?url=${encodedLink}`,\n\t\ticon: linkedInSvg,\n\t},\n\t{\n\t\tid: 'mastodon',\n\t\tname: 'Mastodon',\n\t\tlink: `https://mastodon.social/share?text=${encodedLink}`,\n\t\ticon: mastodonSvg,\n\t},\n\t{\n\t\tid: 'x',\n\t\tname: 'X',\n\t\tlink: `https://x.com/intent/post?url=${encodedLink}&via=Nextclouders&text=${encodeURIComponent(HubRelease.shareSubject ?? '')}`,\n\t\ticon: xSvg,\n\t},\n\t{\n\t\tid: 'email',\n\t\tname: 'EMail',\n\t\tlink: `mailto:?subject=${mailSubject}&body=${mailBody}`,\n\t\ticon: mdiEmail,\n\t},\n]\n</script>\n\n<style module>\n.share_section {\n\twidth: 100%;\n}\n\n.share_wrapper {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n\tgap: calc(var(--default-grid-baseline) * 4);\n\tjustify-content: space-around;\n\twidth: 100%;\n}\n\n.card {\n\tflex: 1 1 auto;\n\tmin-width: calc(50% - var(--default-grid-baseline) * 10);\n\n\t/* Reduce padding a bit as we only have a single line of text with icon */\n\tpadding: calc(var(--default-grid-baseline) * 2) !important;\n}\n\n.heading {\n\t/* Semantically a heading but visually bold text */\n\tfont-size: var(--default-font-size);\n\tfont-weight: bold;\n}\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<WizardPage :title=\"t('firstrunwizard', 'New in Nextcloud Hub {version}', { version: HubRelease.version }) + ' 🚀'\">\n\t\t<ul :class=\"$style.list\">\n\t\t\t<li v-for=\"(entry, index) of HubRelease.releaseNotes\" :key=\"index\" :class=\"$style.entry\">\n\t\t\t\t{{ entry }}\n\t\t\t</li>\n\t\t</ul>\n\t</WizardPage>\n</template>\n\n<script setup lang=\"ts\">\nimport { translate as t } from '@nextcloud/l10n'\nimport WizardPage from '../WizardPage.vue'\nimport HubRelease from '../../hub-release.ts'\n</script>\n\n<style module>\n.list {\n\tmargin-inline: 2em auto;\n}\n\n.entry {\n\tpadding-block: var(--default-grid-baseline);\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { Component } from 'vue'\n\nimport { translate as t } from '@nextcloud/l10n'\nimport AboutNextcloudPage from './components/pages/AboutNextcloud.vue'\nimport DeviceIntegrationPage from './components/pages/DeviceIntegration.vue'\nimport HubReleasePage from './components/pages/HubRelease.vue'\nimport KeyNotesPage from './components/pages/KeyNotes.vue'\nimport SharePage from './components/pages/SharePage.vue'\nimport WhatsNewPage from './components/pages/WhatsNew.vue'\nimport HubRelease from './hub-release.ts'\n\ninterface IPageButton {\n\tto: string\n\tlabel: string\n}\n\nexport interface IPage {\n\tid: string\n\tcomponent: Component\n\tbuttons: IPageButton[]\n}\n\nexport default [\n\t{\n\t\tid: 'key-aspects',\n\t\tcomponent: KeyNotesPage,\n\t\tbuttons: [\n\t\t\t{\n\t\t\t\tto: 'hub-release',\n\t\t\t\tlabel: t('firstrunwizard', 'What\\'s new?'),\n\t\t\t}, {\n\t\t\t\tto: 'devices',\n\t\t\t\tlabel: t('firstrunwizard', 'Nextcloud on all your devices'),\n\t\t\t},\n\t\t],\n\t},\n\n\t{\n\t\tid: 'devices',\n\t\tcomponent: DeviceIntegrationPage,\n\t\tbuttons: [\n\t\t\t{\n\t\t\t\tto: 'about',\n\t\t\t\tlabel: t('firstrunwizard', 'More about Nextcloud'),\n\t\t\t},\n\t\t],\n\t},\n\n\t{\n\t\tid: 'about',\n\t\tcomponent: AboutNextcloudPage,\n\t\tbuttons: [\n\t\t\t{\n\t\t\t\tto: 'hub-release',\n\t\t\t\tlabel: t('firstrunwizard', 'Nextcloud Hub {version}', { version: HubRelease.version }),\n\t\t\t},\n\t\t],\n\t},\n\n\t{\n\t\tid: 'hub-release',\n\t\tcomponent: HubReleasePage,\n\t\tbuttons: [\n\t\t\t{\n\t\t\t\tto: 'whats-new',\n\t\t\t\tlabel: t('firstrunwizard', 'Read more'),\n\t\t\t},\n\t\t],\n\t},\n\n\t{\n\t\tid: 'whats-new',\n\t\tcomponent: WhatsNewPage,\n\t\tbuttons: [\n\t\t\t{\n\t\t\t\tto: 'share',\n\t\t\t\tlabel: t('firstrunwizard', 'Share on social media'),\n\t\t\t},\n\t\t],\n\t},\n\n\t{\n\t\tid: 'share',\n\t\tcomponent: SharePage,\n\t\tbuttons: [\n\t\t\t{\n\t\t\t\tto: 'close',\n\t\t\t\tlabel: t('firstrunwizard', 'Get started!'),\n\t\t\t},\n\t\t],\n\t},\n\n] as IPage[]\n","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<!-- The dark prop is set to prevent backdrop \"hit\" when the first real page is shown -->\n\t<NcModal\n\t\tv-if=\"showModal\"\n\t\tid=\"firstrunwizard\"\n\t\tclass=\"first-run-wizard\"\n\t\tsize=\"normal\"\n\t\tno-close\n\t\t:dark=\"!isMobile\"\n\t\t:set-return-focus\n\t\t@close=\"close\"\n\t\t@next=\"currentPage += 1\"\n\t\t@previous=\"currentPage -= 1\">\n\t\t<IntroAnimation\n\t\t\tv-if=\"currentPage === null\"\n\t\t\t@next=\"currentPage = showChangelogOnly ? changelogPage : 0\" />\n\t\t<SlideShow\n\t\t\tv-else\n\t\t\tv-model:current-index=\"currentPage\"\n\t\t\t:pages />\n\t</NcModal>\n</template>\n\n<script setup lang=\"ts\">\nimport axios from '@nextcloud/axios'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateUrl } from '@nextcloud/router'\nimport { useIsSmallMobile } from '@nextcloud/vue/composables/useIsMobile'\nimport { ref, watchEffect } from 'vue'\nimport NcModal from '@nextcloud/vue/components/NcModal'\nimport IntroAnimation from '../components/pages/IntroAnimation.vue'\nimport SlideShow from '../components/SlideShow.vue'\nimport pages from '../pages.ts'\n\n// Exposes open and close functions from the component\ndefineExpose({ open, close })\n\nconst isMobile = useIsSmallMobile()\n/** This is set to true in case the user already received the wizard but Nextcloud was updated to show the changelog only */\nconst showChangelogOnly = loadState<boolean>('firstrunwizard', 'changelogOnly', false)\n/** The index of the changelog page for first run on updated Nextcloud Hub only */\nconst changelogPage = Math.min(pages.findIndex((page) => page.id === 'hub-release'), 0)\n\nconst showModal = ref(false)\nconst currentPage = ref<number | null>(null)\nconst setReturnFocus = ref<HTMLElement | SVGElement | string>()\n\n// If the current page index is set to -1 then close the modal\nwatchEffect(() => {\n\tif (currentPage.value === -1) {\n\t\tclose()\n\t}\n})\n\n/**\n * Open the first run wizard modal\n *\n * @param focusReturn The element to return focus after the modal is closed\n */\nfunction open(focusReturn?: HTMLElement | SVGElement | string) {\n\tsetReturnFocus.value = focusReturn\n\tcurrentPage.value = null\n\tshowModal.value = true\n}\n\n/**\n * Close the modal\n */\nfunction close() {\n\tcurrentPage.value = null\n\tshowModal.value = false\n\n\t// Important: Do not show again automatically\n\taxios.delete(generateUrl('/apps/firstrunwizard/wizard'))\n}\n</script>\n\n<style lang=\"scss\">\n/**\n * Global styles to override vue component styles of the modal\n */\n\n.first-run-wizard .modal-wrapper {\n\t.modal-container {\n\t\toverflow: hidden;\n\n\t\t&__content {\n\t\t\toverflow: hidden;\n\t\t\theight: 100%;\n\t\t\tdisplay: contents;\n\t\t}\n\t}\n}\n\n@media only screen and (max-width: 512px) {\n\t.first-run-wizard {\n\t\t.modal-wrapper .modal-container {\n\t\t\theight: 100dvh;\n\t\t\ttop: 0;\n\t\t}\n\n\t\t.modal-header {\n\t\t\tpointer-events: none;\n\t\t}\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createApp } from 'vue'\nimport FirstRunWizard from './views/App.vue'\n\nlet vm: InstanceType<typeof FirstRunWizard>\n/**\n * Open the wizard and mount if needed.\n *\n * @param focusReturn - Where to return focus after the wizard is closed\n */\nexport function open(focusReturn?: HTMLElement | SVGElement | string) {\n\tif (vm === undefined) {\n\t\tconst el = document.createElement('div')\n\t\tel.id = 'firstrunwizard'\n\t\tdocument.querySelector('body')!.appendChild(el)\n\t\tvm = createApp(FirstRunWizard)\n\t\t\t.mount(el) as InstanceType<typeof FirstRunWizard>\n\t}\n\tvm.open(focusReturn)\n}\n"],"names":["emit","__emit","videoMp4","imagePath","videoWebm","videoFallbackImage","videoFallbackText","t","videoElement","useTemplateRef","onMounted","handleEnded","_createElementBlock","_normalizeClass","$style","_createElementVNode","_unref","_createTextVNode","props","__props","reverseTransition","ref","currentPage","computed","isFirstPage","isLastPage","cssLogoUrl","transitions","useCssModule","transitionClasses","direction","waveTransitionClasses","watch","newPage","oldPage","goToPage","pageId","id","page","_createVNode","_Transition","_createBlock","NcButton","_cache","$event","$emit","NcIconSvgWrapper","mdiArrowLeft","mdiClose","_resolveDynamicComponent","_openBlock","_Fragment","button","index","_toDisplayString","mdiArrowRight","isLink","_renderSlot","_ctx","WizardPage","InfoCard","android","loadState","ios","badgeImagePath","cssBackgroundImage","href","ariaLabel","desktop","syncClientsUrl","generateUrl","AppStoreBadge","HubRelease","HUBRelease","versionNumber","mdiLock","mdiBriefcaseCheck","mdiSwapHorizontal","mdiAccountGroup","blueskySvg","facebookSvg","linkedInSvg","mastodonSvg","xSvg","encodedLink","mailSubject","mailBody","shareLinks","mdiEmail","_renderList","entry","pages","KeyNotesPage","DeviceIntegrationPage","AboutNextcloudPage","HubReleasePage","WhatsNewPage","SharePage","__expose","open","close","isMobile","useIsSmallMobile","showChangelogOnly","changelogPage","showModal","setReturnFocus","watchEffect","focusReturn","axios","NcModal","IntroAnimation","SlideShow","vm","el","createApp","FirstRunWizard"],"mappings":"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"} |