Skip to content
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions packages/varlet-ui/src/locale/en-US.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,4 +104,8 @@ export default {
paginationJump: 'Go to',
// time-picker
timePickerHint: 'SELECT TIME',
// tour
tourPrevious: 'previous',
tourNext: 'next',
tourFinish: 'finish',
} satisfies Message
4 changes: 4 additions & 0 deletions packages/varlet-ui/src/locale/zh-CN.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,4 +104,8 @@ export default {
paginationJump: '前往',
// time-picker
timePickerHint: '选择时间',
// tour
tourPrevious: '上一步',
tourNext: '下一步',
tourFinish: '结束引导',
} satisfies Message
4 changes: 4 additions & 0 deletions packages/varlet-ui/src/locale/zh-TW.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,4 +104,8 @@ export default {
paginationJump: '前往',
// time-picker
timePickerHint: '選擇時間',
// tour
tourPrevious: '上一步',
tourNext: '下一步',
tourFinish: '結束引導',
} satisfies Message
Original file line number Diff line number Diff line change
Expand Up @@ -861,6 +861,29 @@ exports[`dark theme 1`] = `
"--tooltip-success-text-color": "var(--color-on-success)",
"--tooltip-warning-color": "var(--color-warning)",
"--tooltip-warning-text-color": "var(--color-on-warning)",
"--tour-actions-padding": "0 12px 12px 20px",
"--tour-background": "var(--color-surface-container-low)",
"--tour-border-radius": "3px",
"--tour-close-button-right": "20px",
"--tour-close-button-top": "20px",
"--tour-description-color": "#bbb",
"--tour-description-font-size": "var(--font-size-md)",
"--tour-description-line-height": "24px",
"--tour-description-padding": "12px 20px",
"--tour-indicator-background-color": "var(--color-surface-container-highest)",
"--tour-next-button-color": "var(--color-primary)",
"--tour-prev-button-color": "var(--color-primary)",
"--tour-primary-background": "var(--color-primary)",
"--tour-primary-description-color": "var(--color-on-info)",
"--tour-primary-indicator-active-background-color": "var(--color-on-primary)",
"--tour-primary-indicator-background-color": "rgba(255, 255, 255, 0.15)",
"--tour-primary-next-button-color": "var(--color-on-primary)",
"--tour-primary-prev-button-color": "var(--color-on-primary)",
"--tour-primary-title-color": "var(--color-on-primary)",
"--tour-title-color": "#fff",
"--tour-title-font-size": "var(--font-size-lg)",
"--tour-title-padding": "20px 20px 0",
"--tour-width": "280px",
"--uploader-action-background": "#303030",
"--uploader-action-icon-color": "#fff",
"--uploader-action-icon-size": "24px",
Expand Down Expand Up @@ -1759,6 +1782,29 @@ exports[`md3Dark theme 1`] = `
"--tooltip-success-text-color": "var(--color-on-success)",
"--tooltip-warning-color": "var(--color-warning)",
"--tooltip-warning-text-color": "var(--color-on-warning)",
"--tour-actions-padding": "0 24px 24px",
"--tour-background": "var(--color-surface-container-high)",
"--tour-border-radius": "28px",
"--tour-close-button-right": "24px",
"--tour-close-button-top": "28px",
"--tour-description-color": "var(--color-on-surface-variant)",
"--tour-description-font-size": "var(--font-size-md)",
"--tour-description-line-height": "24px",
"--tour-description-padding": "16px 24px 24px",
"--tour-indicator-background-color": "var(--color-surface-container-low)",
"--tour-next-button-color": "var(--color-primary)",
"--tour-prev-button-color": "var(--color-primary)",
"--tour-primary-background": "var(--color-primary)",
"--tour-primary-description-color": "var(--color-on-info)",
"--tour-primary-indicator-active-background-color": "var(--color-on-primary)",
"--tour-primary-indicator-background-color": "rgba(0, 0, 0, 0.15)",
"--tour-primary-next-button-color": "var(--color-on-primary)",
"--tour-primary-prev-button-color": "var(--color-on-primary)",
"--tour-primary-title-color": "var(--color-on-primary)",
"--tour-title-color": "var(--color-inverse-surface)",
"--tour-title-font-size": "20px",
"--tour-title-padding": "24px 24px 0",
"--tour-width": "312px",
"--uploader-action-background": "var(--color-surface-container-highest)",
"--uploader-action-icon-color": "var(--color-on-surface-variant)",
"--uploader-action-icon-size": "24px",
Expand Down Expand Up @@ -2639,6 +2685,29 @@ exports[`md3Light theme 1`] = `
"--tooltip-success-text-color": "var(--color-on-success)",
"--tooltip-warning-color": "var(--color-warning)",
"--tooltip-warning-text-color": "var(--color-on-warning)",
"--tour-actions-padding": "0 24px 24px",
"--tour-background": "var(--color-surface-container-high)",
"--tour-border-radius": "28px",
"--tour-close-button-right": "24px",
"--tour-close-button-top": "28px",
"--tour-description-color": "var(--color-on-surface-variant)",
"--tour-description-font-size": "var(--font-size-md)",
"--tour-description-line-height": "24px",
"--tour-description-padding": "16px 24px 24px",
"--tour-indicator-background-color": "var(--color-surface-container-low)",
"--tour-next-button-color": "var(--color-primary)",
"--tour-prev-button-color": "var(--color-primary)",
"--tour-primary-background": "var(--color-primary)",
"--tour-primary-description-color": "var(--color-on-info)",
"--tour-primary-indicator-active-background-color": "var(--color-on-primary)",
"--tour-primary-indicator-background-color": "rgba(255, 255, 255, 0.15)",
"--tour-primary-next-button-color": "var(--color-on-primary)",
"--tour-primary-prev-button-color": "var(--color-on-primary)",
"--tour-primary-title-color": "var(--color-on-primary)",
"--tour-title-color": "#1D1B20",
"--tour-title-font-size": "20px",
"--tour-title-padding": "24px 24px 0",
"--tour-width": "312px",
"--uploader-action-background": "var(--color-surface-container-low)",
"--uploader-action-icon-color": "var(--color-on-surface-variant)",
"--uploader-action-icon-size": "24px",
Expand Down
2 changes: 2 additions & 0 deletions packages/varlet-ui/src/themes/dark/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ import table from './table'
import tabs from './tabs'
import timePicker from './timePicker'
import tooltip from './tooltip'
import tour from './tour'
import uploader from './uploader'
import watermark from './watermark'

Expand Down Expand Up @@ -211,4 +212,5 @@ export default {
...select,
...code,
...signature,
...tour,
} as StyleVars
25 changes: 25 additions & 0 deletions packages/varlet-ui/src/themes/dark/tour.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
export default {
'--tour-width': '280px',
'--tour-background': 'var(--color-surface-container-low)',
'--tour-border-radius': '3px',
'--tour-title-padding': '20px 20px 0',
'--tour-title-color': '#fff',
'--tour-title-font-size': 'var(--font-size-lg)',
'--tour-description-color': '#bbb',
'--tour-description-padding': '12px 20px',
'--tour-description-font-size': 'var(--font-size-md)',
'--tour-description-line-height': '24px',
'--tour-indicator-background-color': 'var(--color-surface-container-highest)',
'--tour-actions-padding': '0 12px 12px 20px',
'--tour-next-button-color': 'var(--color-primary)',
'--tour-prev-button-color': 'var(--color-primary)',
'--tour-close-button-right': '20px',
'--tour-close-button-top': '20px',
'--tour-primary-background': 'var(--color-primary)',
'--tour-primary-title-color': 'var(--color-on-primary)',
'--tour-primary-description-color': 'var(--color-on-info)',
'--tour-primary-indicator-background-color': 'rgba(255, 255, 255, 0.15)',
'--tour-primary-indicator-active-background-color': 'var(--color-on-primary)',
'--tour-primary-next-button-color': 'var(--color-on-primary)',
'--tour-primary-prev-button-color': 'var(--color-on-primary)',
}
2 changes: 2 additions & 0 deletions packages/varlet-ui/src/themes/md3-dark/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ import table from './table'
import tabs from './tabs'
import timePicker from './timePicker'
import tooltip from './tooltip'
import tour from './tour'
import uploader from './uploader'
import watermark from './watermark'

Expand Down Expand Up @@ -211,4 +212,5 @@ export default {
...swipe,
...code,
...signature,
...tour,
} as StyleVars
25 changes: 25 additions & 0 deletions packages/varlet-ui/src/themes/md3-dark/tour.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
export default {
'--tour-width': '312px',
'--tour-background': 'var(--color-surface-container-high)',
'--tour-border-radius': '28px',
'--tour-title-padding': '24px 24px 0',
'--tour-title-color': 'var(--color-inverse-surface)',
'--tour-title-font-size': '20px',
'--tour-description-color': 'var(--color-on-surface-variant)',
'--tour-description-padding': '16px 24px 24px',
'--tour-description-font-size': 'var(--font-size-md)',
'--tour-description-line-height': '24px',
'--tour-indicator-background-color': 'var(--color-surface-container-low)',
'--tour-actions-padding': '0 24px 24px',
'--tour-next-button-color': 'var(--color-primary)',
'--tour-prev-button-color': 'var(--color-primary)',
'--tour-close-button-right': '24px',
'--tour-close-button-top': '28px',
'--tour-primary-background': 'var(--color-primary)',
'--tour-primary-title-color': 'var(--color-on-primary)',
'--tour-primary-description-color': 'var(--color-on-info)',
'--tour-primary-indicator-background-color': 'rgba(0, 0, 0, 0.15)',
'--tour-primary-indicator-active-background-color': 'var(--color-on-primary)',
'--tour-primary-next-button-color': 'var(--color-on-primary)',
'--tour-primary-prev-button-color': 'var(--color-on-primary)',
}
2 changes: 2 additions & 0 deletions packages/varlet-ui/src/themes/md3-light/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ import table from './table'
import tabs from './tabs'
import timePicker from './timePicker'
import tooltip from './tooltip'
import tour from './tour'
import uploader from './uploader'
import watermark from './watermark'

Expand Down Expand Up @@ -211,4 +212,5 @@ export default {
...appBar,
...code,
...signature,
...tour,
} as StyleVars
25 changes: 25 additions & 0 deletions packages/varlet-ui/src/themes/md3-light/tour.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
export default {
'--tour-width': '312px',
'--tour-background': 'var(--color-surface-container-high)',
'--tour-border-radius': '28px',
'--tour-title-padding': '24px 24px 0',
'--tour-title-color': '#1D1B20',
'--tour-title-font-size': '20px',
'--tour-description-color': 'var(--color-on-surface-variant)',
'--tour-description-padding': '16px 24px 24px',
'--tour-description-font-size': 'var(--font-size-md)',
'--tour-description-line-height': '24px',
'--tour-indicator-background-color': 'var(--color-surface-container-low)',
'--tour-actions-padding': '0 24px 24px',
'--tour-next-button-color': 'var(--color-primary)',
'--tour-prev-button-color': 'var(--color-primary)',
'--tour-close-button-right': '24px',
'--tour-close-button-top': '28px',
'--tour-primary-background': 'var(--color-primary)',
'--tour-primary-title-color': 'var(--color-on-primary)',
'--tour-primary-description-color': 'var(--color-on-info)',
'--tour-primary-indicator-background-color': 'rgba(255, 255, 255, 0.15)',
'--tour-primary-indicator-active-background-color': 'var(--color-on-primary)',
'--tour-primary-next-button-color': 'var(--color-on-primary)',
'--tour-primary-prev-button-color': 'var(--color-on-primary)',
}
44 changes: 44 additions & 0 deletions packages/varlet-ui/src/tour-step/TourStep.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<template>
<div :class="n()">
<div v-if="title || $slots['title']" :class="n('title')">
<slot name="title">{{ title }}</slot>
</div>
<div v-if="description || $slots['default']" :class="n('description')">
<slot>{{ description }}</slot>
</div>
</div>
</template>

<script lang="ts">
import { defineComponent, watch } from 'vue'
import { injectTour } from '../tour/provide'
import { createNamespace } from '../utils/components'
import { props } from './props'

const { name, n } = createNamespace('tour-step')

export default defineComponent({
name,
props,
setup(props) {
const { updateStepProps } = injectTour()

watch(
props,
(value) => {
updateStepProps?.(value)
},
{ immediate: true },
)

return {
n,
}
},
})
</script>

<style lang="less">
@import '../styles/common';
@import './tourStep';
</style>
12 changes: 12 additions & 0 deletions packages/varlet-ui/src/tour-step/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { withInstall, withPropsDefaultsSetter } from '../utils/components'
import { props as tourStepProps } from './props'
import TourStep from './TourStep.vue'

withInstall(TourStep)
withPropsDefaultsSetter(TourStep, tourStepProps)

export { tourStepProps }

export const _TourStepComponent = TourStep

export default TourStep
33 changes: 33 additions & 0 deletions packages/varlet-ui/src/tour-step/props.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import { type PropType } from 'vue'
import { popupProps } from '../popup'
import { Placement } from '../tour/props'
import { pickProps } from '../utils/components'

export const props = {
target: [String, Object] as PropType<string | HTMLElement>,
title: String,
description: String,
Comment thread
rzzf marked this conversation as resolved.
Outdated
placement: String as PropType<Placement>,
width: [Number, String],
overlay: {
type: Boolean,
default: undefined,
},
arrow: {
type: Boolean,
default: undefined,
},
closeable: {
type: Boolean,
default: undefined,
},
prevButtonText: String,
nextButtonText: String,
prevButtonTextColor: String,
nextButtonTextColor: String,
prevButtonColor: String,
nextButtonColor: String,
contentClass: String,
contentStyle: Object,
...pickProps(popupProps, ['overlayClass', 'overlayStyle']),
}
14 changes: 14 additions & 0 deletions packages/varlet-ui/src/tour-step/tourStep.less
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
.var-tour-step {
&__title {
padding: var(--tour-title-padding);
color: var(--tour-title-color);
font-size: var(--tour-title-font-size);
}

&__description {
padding: var(--tour-description-padding);
color: var(--tour-description-color);
font-size: var(--tour-description-font-size);
line-height: var(--tour-description-line-height);
}
}
Loading