@explorer-1/vue 0.3.4 → 0.3.6
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/CHANGELOG.md +13 -0
- package/package.json +2 -2
- package/src/components/AsteroidWatchWidget/AsteroidWatchWidget.stories.js +2 -2
- package/src/components/BaseAccordionItem/BaseAccordionItem.stories.js +48 -4
- package/src/components/BaseAudio/BaseAudio.stories.js +4 -6
- package/src/components/BaseButton/BaseButton.stories.ts +13 -5
- package/src/components/BaseHeading/BaseHeading.stories.js +10 -3
- package/src/components/BaseImage/BaseImage.stories.ts +8 -3
- package/src/components/BaseImageCaption/BaseImageCaption.stories.js +11 -0
- package/src/components/BaseImagePlaceholder/BaseImagePlaceholder.stories.js +14 -3
- package/src/components/BaseLink/BaseLink.stories.js +47 -4
- package/src/components/BasePill/BasePill.stories.js +10 -4
- package/src/components/BasePill/BasePill.vue +1 -3
- package/src/components/BaseTimer/BaseTimer.stories.js +1 -1
- package/src/components/BlockAccordion/BlockAccordion.stories.js +3 -1
- package/src/components/BlockCardGridItem/BlockCardGridItem.stories.js +2 -2
- package/src/components/BlockCardGridItem/BlockCardGridItemElement.vue +1 -1
- package/src/components/BlockCircleImageCard/BlockCircleImageCard.stories.js +2 -1
- package/src/components/BlockIframeEmbed/BlockIframeEmbed.stories.js +2 -2
- package/src/components/BlockImageCarousel/BlockImageCarousel.stories.js +2 -2
- package/src/components/BlockImageCarouselItem/BlockImageCarouselItem.stories.js +2 -2
- package/src/components/BlockImageComparison/BlockImageComparison.stories.js +2 -2
- package/src/components/BlockImageGallery/BlockImageGallery.stories.js +2 -2
- package/src/components/BlockInlineImage/BlockInlineImage.stories.js +12 -2
- package/src/components/BlockLinkCard/BlockLinkCard.stories.js +19 -16
- package/src/components/BlockLinkCard/BlockLinkCard.vue +1 -1
- package/src/components/BlockLinkTile/BlockLinkTile.stories.js +2 -2
- package/src/components/EventDetailHero/EventDetailHero.stories.js +10 -7
- package/src/components/HeroLarge/HeroLarge.stories.js +26 -2
- package/src/components/HeroLarge/HeroLarge.vue +2 -0
- package/src/components/HeroMedia/HeroMedia.stories.js +1 -1
- package/src/components/HeroMedium/HeroMedium.stories.js +18 -4
- package/src/components/HeroMedium/HeroSmall.stories.js +18 -4
- package/src/components/HomepageCarouselItem/HomepageCarouselItem.stories.js +2 -2
- package/src/components/MetaPanel/MetaPanel.stories.js +1 -1
- package/src/components/MissionDetailHero/MissionDetailHero.stories.js +2 -2
- package/src/components/MissionDetailStats/MissionDetailStats.stories.js +2 -2
- package/src/components/NavHeading/NavHeading.stories.js +2 -2
- package/src/components/NavHighlight/NavHighlight.stories.js +2 -2
- package/src/components/NavLinkList/NavLinkList.stories.js +2 -2
- package/src/components/NavMobile/NavMobile.stories.js +7 -2
- package/src/components/NavMobile/NavMobileEdu.stories.js +9 -3
- package/src/components/ParallaxContainer/ParallaxContainer.stories.js +2 -2
- package/src/components/RoboticsDetailStats/RoboticsDetailStats.stories.js +2 -2
- package/src/components/SearchResultGridItem/SearchResultGridItem.stories.js +2 -2
- package/src/components/SearchResultsList/SearchResultsList.stories.js +2 -2
- package/src/components/TopicDetailMissionCarouselItem/TopicDetailMissionCarouselItem.stories.js +2 -2
- package/src/components/TopicDetailMoreItem/TopicDetailMoreItem.stories.js +2 -2
- package/src/docs/foundation/grid_layouthelpers.stories.js +2 -2
- package/src/docs/introduction.docs.mdx +14 -2
- package/src/templates/PageContent/PageContent.stories.js +1 -1
- package/src/templates/PageEventDetail/PageEventDetail.stories.js +1 -1
- package/src/templates/PageNewsDetail/PageNewsDetail.stories.js +2 -2
- package/src/templates/edu/PageContentEdu.stories.js +2 -2
- package/src/templates/edu/PageEduCollectionsDetail/PageEduCollectionsDetail.stories.js +2 -2
- package/src/templates/edu/PageEduEventDetail/PageEduEventDetail.stories.js +1 -1
- package/src/templates/edu/PageEduExplainerArticle/PageEduExplainerArticle.stories.js +2 -2
- package/src/templates/edu/PageEduGalleryDetail/PageEduGalleryDetail.stories.js +1 -1
- package/src/templates/edu/PageEduHome/PageEduHome.stories.js +1 -1
- package/src/templates/edu/PageEduLesson/PageEduLesson.stories.js +2 -2
- package/src/templates/edu/PageEduMultimediaDetail/PageEduMultimediaDetail.stories.js +1 -1
- package/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.stories.js +2 -2
- package/src/templates/edu/PageEduStudentProject/PageEduStudentProject.stories.js +2 -2
- package/src/templates/edu/PageEduTeachableMoment/PageEduTeachableMoment.stories.js +2 -2
- package/src/templates/www/PageAsteroidWatchContent/PageAsteroidWatchContent.stories.js +2 -2
- package/src/templates/www/PageAsteroidWatchIndex/PageAsteroidWatchIndex.stories.js +2 -2
- package/src/templates/www/PageGoDirectory/PageGoDirectory.stories.js +2 -2
- package/src/templates/www/PageHomepage/PageHomepage.stories.js +2 -2
- package/src/templates/www/PageMissionDetail/PageMissionDetail.stories.js +2 -2
- package/src/templates/www/PagePodcast/PagePodcast.stories.js +2 -2
- package/src/templates/www/PagePodcastSeason/PagePodcastSeason.stories.js +2 -2
- package/src/templates/www/PagePressKitIndex/PagePressKitIndex.stories.js +2 -2
- package/src/templates/www/PageProfileDetail/PageProfileDetail.stories.js +2 -2
- package/src/templates/www/PageRoboticsDetail/PageRoboticsDetail.stories.js +2 -2
- package/src/templates/www/PageTimeline/PageTimeline.stories.js +2 -2
- package/src/templates/www/PageTopicDetail/PageTopicDetail.stories.js +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @explorer-1/vue
|
|
2
2
|
|
|
3
|
+
## 0.3.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [c307f7b]
|
|
8
|
+
- @explorer-1/common@1.3.3
|
|
9
|
+
|
|
10
|
+
## 0.3.5
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- 0a83db1: Documentation updates, Storybook improvements.
|
|
15
|
+
|
|
3
16
|
## 0.3.4
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@explorer-1/vue",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"vue-bind-once": "^0.2.1",
|
|
32
32
|
"vue3-compare-image": "^1.2.5",
|
|
33
33
|
"vue3-observe-visibility": "^1.0.1",
|
|
34
|
-
"@explorer-1/common": "1.3.
|
|
34
|
+
"@explorer-1/common": "1.3.3"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@vitejs/plugin-vue": "^5.0.4",
|
|
@@ -6,12 +6,12 @@ export default {
|
|
|
6
6
|
excludeStories: /.*Data$/,
|
|
7
7
|
decorators: [
|
|
8
8
|
() => ({
|
|
9
|
-
template: `<div id="
|
|
9
|
+
template: `<div id="storyRoot" class="mt-20"><story/></div>`
|
|
10
10
|
})
|
|
11
11
|
],
|
|
12
12
|
parameters: {
|
|
13
13
|
html: {
|
|
14
|
-
root: '#
|
|
14
|
+
root: '#storyRoot' // to omit decorators from html output
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
argTypes: {
|
|
@@ -1,15 +1,59 @@
|
|
|
1
1
|
import BaseAccordionItem from './BaseAccordionItem.vue'
|
|
2
|
-
import { BlockStreamfieldTruncatedData } from '../BlockStreamfield/BlockStreamfield.stories'
|
|
3
2
|
export default {
|
|
4
3
|
title: 'Components/Base/BaseAccordionItem',
|
|
5
|
-
component: BaseAccordionItem
|
|
4
|
+
component: BaseAccordionItem,
|
|
5
|
+
argTypes: {
|
|
6
|
+
headingLevel: {
|
|
7
|
+
type: 'string',
|
|
8
|
+
control: { type: 'select' },
|
|
9
|
+
options: ['h2', 'h3', 'h4', 'h5', 'h6']
|
|
10
|
+
},
|
|
11
|
+
accordionItemOpened: {
|
|
12
|
+
type: '@click emit',
|
|
13
|
+
description: 'Fires when an item is opened'
|
|
14
|
+
},
|
|
15
|
+
accordionItemClosed: {
|
|
16
|
+
type: '@click emit',
|
|
17
|
+
description: 'Fires when an item is closed'
|
|
18
|
+
},
|
|
19
|
+
header: {
|
|
20
|
+
type: 'html',
|
|
21
|
+
control: { type: 'none' },
|
|
22
|
+
description:
|
|
23
|
+
'The entire clickable area of the item, including `heading`. Override with `<template #header>`. Will need to reconstruct `handleClick()` behavior.'
|
|
24
|
+
},
|
|
25
|
+
heading: {
|
|
26
|
+
type: 'html',
|
|
27
|
+
control: { type: 'none' },
|
|
28
|
+
description:
|
|
29
|
+
'Just the heading text within the item header. Override with `<template #heading>`'
|
|
30
|
+
},
|
|
31
|
+
default: {
|
|
32
|
+
type: 'html',
|
|
33
|
+
control: { type: 'none' },
|
|
34
|
+
description:
|
|
35
|
+
'The entire contents of expanded item, including `panelContents`. Override with `<template #default>`. Will need to reconstruct `aria-labelledby` attributes.'
|
|
36
|
+
},
|
|
37
|
+
panelContents: {
|
|
38
|
+
type: { name: 'html', required: true },
|
|
39
|
+
control: { type: 'none' },
|
|
40
|
+
description:
|
|
41
|
+
'Contents of expanded accordion item. There is no default template. Override with `<template #panelContents>`'
|
|
42
|
+
}
|
|
43
|
+
}
|
|
6
44
|
}
|
|
7
45
|
|
|
8
46
|
// stories
|
|
9
47
|
export const BaseStory = {
|
|
10
48
|
name: 'BaseAccordionItem',
|
|
11
49
|
args: {
|
|
12
|
-
headingLevel: '
|
|
13
|
-
|
|
50
|
+
headingLevel: 'h5',
|
|
51
|
+
|
|
52
|
+
item: {
|
|
53
|
+
title: 'Title for the accordion',
|
|
54
|
+
body: [{ text: 'No default body template. Customize with the `panelContents` slot.' }]
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
header: '<h3>Test</h3>'
|
|
14
58
|
}
|
|
15
59
|
}
|
|
@@ -5,22 +5,20 @@ export default {
|
|
|
5
5
|
component: BaseAudio,
|
|
6
6
|
decorators: [
|
|
7
7
|
() => ({
|
|
8
|
-
template: `<div id="
|
|
8
|
+
template: `<div id="storyRoot" class="bg-black p-4 pb-5"><story/></div>`
|
|
9
9
|
})
|
|
10
10
|
],
|
|
11
11
|
parameters: {
|
|
12
12
|
html: {
|
|
13
|
-
root: '#
|
|
13
|
+
root: '#storyRoot'
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
excludeStories: /.*Data$/
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
export const BaseAudioData = {
|
|
19
|
+
const BaseAudioData = {
|
|
21
20
|
file: '/audio/file_example_MP3_700KB.mp3',
|
|
22
|
-
autoPlay: false
|
|
23
|
-
loop: false
|
|
21
|
+
autoPlay: false
|
|
24
22
|
}
|
|
25
23
|
|
|
26
24
|
export const BaseStory = {
|
|
@@ -8,11 +8,13 @@ export default {
|
|
|
8
8
|
tags: ['autodocs'],
|
|
9
9
|
parameters: {
|
|
10
10
|
slots: {
|
|
11
|
-
default: '
|
|
11
|
+
default: 'The contents of the button, usually text. Override with `<template #default>`',
|
|
12
|
+
icon: 'Appears to the right of the `default` slot. Override with `<template #icon>`',
|
|
13
|
+
afterIcon: 'Appears to the right of the `icon` slot. Override with `<template #afterIcon>`'
|
|
12
14
|
},
|
|
13
15
|
docs: {
|
|
14
16
|
description: {
|
|
15
|
-
component: 'Simple button with
|
|
17
|
+
component: 'Simple button with style variations.'
|
|
16
18
|
}
|
|
17
19
|
}
|
|
18
20
|
},
|
|
@@ -20,7 +22,7 @@ export default {
|
|
|
20
22
|
ariaLabel: {
|
|
21
23
|
type: 'string',
|
|
22
24
|
description:
|
|
23
|
-
"ARIA label. Recommended if your button
|
|
25
|
+
"ARIA label. Recommended if your button text isn't descriptive, or if it only contains an icon."
|
|
24
26
|
},
|
|
25
27
|
variant: {
|
|
26
28
|
type: 'string',
|
|
@@ -32,13 +34,18 @@ export default {
|
|
|
32
34
|
table: {
|
|
33
35
|
defaultValue: { summary: 'default' }
|
|
34
36
|
}
|
|
37
|
+
},
|
|
38
|
+
to: {
|
|
39
|
+
description: 'If populated, a router-link will be generated. Overrides `href`'
|
|
40
|
+
},
|
|
41
|
+
click: {
|
|
42
|
+
type: '@click emit'
|
|
35
43
|
}
|
|
36
44
|
}
|
|
37
45
|
}
|
|
38
46
|
|
|
39
47
|
export const BaseButtonData = {
|
|
40
|
-
|
|
41
|
-
ariaLabel: 'Explore',
|
|
48
|
+
ariaLabel: 'Link to learn more',
|
|
42
49
|
compact: false,
|
|
43
50
|
disabled: false,
|
|
44
51
|
to: '/',
|
|
@@ -63,4 +70,5 @@ export const DarkButton = {
|
|
|
63
70
|
...BaseButtonData,
|
|
64
71
|
variant: 'dark'
|
|
65
72
|
}
|
|
73
|
+
// globals: { themeVariant: 'ThemeVariantDark' }
|
|
66
74
|
}
|
|
@@ -16,14 +16,14 @@ export default {
|
|
|
16
16
|
level: {
|
|
17
17
|
type: { name: 'string', required: false },
|
|
18
18
|
description:
|
|
19
|
-
'The semantic heading tag if different from the display size (ex: a heading
|
|
19
|
+
'The semantic heading tag if different from the display size (ex: a heading needs to look like an `h4`, but semantically, it is an `h1`.',
|
|
20
20
|
control: { type: 'select' },
|
|
21
21
|
options: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
parameters: {
|
|
25
25
|
slots: {
|
|
26
|
-
default: '
|
|
26
|
+
default: 'The contents of the heading, usually text. Override with `<template #default>`'
|
|
27
27
|
},
|
|
28
28
|
docs: {
|
|
29
29
|
description: {
|
|
@@ -71,4 +71,11 @@ const TemplateHeadingsWithIcons = (args) => ({
|
|
|
71
71
|
})
|
|
72
72
|
|
|
73
73
|
export const HeadingsWithIcons = TemplateHeadingsWithIcons.bind({})
|
|
74
|
-
HeadingsWithIcons.args = { size: '
|
|
74
|
+
HeadingsWithIcons.args = { size: 'h3', level: 'h3', default: 'Heading 3 with Icon' }
|
|
75
|
+
HeadingsWithIcons.parameters = {
|
|
76
|
+
docs: {
|
|
77
|
+
description: {
|
|
78
|
+
story: 'Example of overriding the default slot to include an icon component.'
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -33,7 +33,12 @@ export const BaseImageData = {
|
|
|
33
33
|
// stories
|
|
34
34
|
export const BaseStory = {
|
|
35
35
|
args: BaseImageData,
|
|
36
|
-
decorators: [() => ({ template: '<div class="max-w-full"><story /></div>' })]
|
|
36
|
+
decorators: [() => ({ template: '<div id="storyDecorator" class="max-w-full"><story /></div>' })],
|
|
37
|
+
parameters: {
|
|
38
|
+
html: {
|
|
39
|
+
root: '#storyDecorator'
|
|
40
|
+
}
|
|
41
|
+
}
|
|
37
42
|
}
|
|
38
43
|
|
|
39
44
|
export const LazyLoading = {
|
|
@@ -41,12 +46,12 @@ export const LazyLoading = {
|
|
|
41
46
|
decorators: [
|
|
42
47
|
() => ({
|
|
43
48
|
template:
|
|
44
|
-
'<div class="max-w-full"><div style="height:3500px">Scroll down and watch the network tab ⬇️</div><div id="
|
|
49
|
+
'<div class="max-w-full"><div style="height:3500px">Scroll down and watch the network tab ⬇️</div><div id="storyDecorator"><story /></div></div>'
|
|
45
50
|
})
|
|
46
51
|
],
|
|
47
52
|
parameters: {
|
|
48
53
|
html: {
|
|
49
|
-
root: '#
|
|
54
|
+
root: '#storyDecorator'
|
|
50
55
|
}
|
|
51
56
|
}
|
|
52
57
|
}
|
|
@@ -9,6 +9,17 @@ export default {
|
|
|
9
9
|
component: 'Caption text used with both images and videos.'
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
+
},
|
|
13
|
+
argTypes: {
|
|
14
|
+
customLink: {
|
|
15
|
+
type: 'string',
|
|
16
|
+
description:
|
|
17
|
+
'Appends a link to the end of the caption. Overrides "Full Image Details" link, if it exists.'
|
|
18
|
+
},
|
|
19
|
+
customLinkText: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
description: 'Text for the custom link.'
|
|
22
|
+
}
|
|
12
23
|
}
|
|
13
24
|
}
|
|
14
25
|
|
|
@@ -5,7 +5,7 @@ export default {
|
|
|
5
5
|
component: BaseImagePlaceholder,
|
|
6
6
|
excludeStories: /.*Data$/,
|
|
7
7
|
decorators: () => ({
|
|
8
|
-
template: '<div class="w-
|
|
8
|
+
template: '<div id="storyRoot" class="w-3/4"><story /></div>'
|
|
9
9
|
}),
|
|
10
10
|
tags: ['autodocs'],
|
|
11
11
|
parameters: {
|
|
@@ -16,6 +16,9 @@ export default {
|
|
|
16
16
|
template: `<BaseImage :object-fit-class="args.BaseImageProps.objectFitClass" :loading="args.BaseImageProps.loading" :src="args.BaseImageProps.src" :srcset="args.BaseImageProps.srcset" :alt="args.BaseImageProps.alt" :width="args.BaseImageProps.width" :height="args.BaseImageProps.height" />`
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
|
+
html: {
|
|
20
|
+
root: '#storyRoot'
|
|
21
|
+
},
|
|
19
22
|
docs: {
|
|
20
23
|
description: {
|
|
21
24
|
component:
|
|
@@ -29,6 +32,8 @@ export default {
|
|
|
29
32
|
options: Object.keys(aspectRatios)
|
|
30
33
|
},
|
|
31
34
|
responsiveAspectRatio: {
|
|
35
|
+
description:
|
|
36
|
+
'Custom tailwind classes to combine screen-size directives with aspect ratios. Example: `md:aspect-ratio-four-three lg:aspect-ratio-twelve-nine`. Overrides `aspectRatio` setting.',
|
|
32
37
|
control: { type: 'text' }
|
|
33
38
|
}
|
|
34
39
|
}
|
|
@@ -38,7 +43,8 @@ export default {
|
|
|
38
43
|
export const BaseImagePlaceholderData = {
|
|
39
44
|
aspectRatio: '12:9',
|
|
40
45
|
darkMode: true,
|
|
41
|
-
transparentMode: false
|
|
46
|
+
transparentMode: false,
|
|
47
|
+
noLogo: false
|
|
42
48
|
}
|
|
43
49
|
|
|
44
50
|
export const WithImage = {
|
|
@@ -60,6 +66,7 @@ export const BaseStory = {
|
|
|
60
66
|
name: 'No Image',
|
|
61
67
|
args: {
|
|
62
68
|
...BaseImagePlaceholderData,
|
|
69
|
+
|
|
63
70
|
BaseImageProps: {
|
|
64
71
|
src: '',
|
|
65
72
|
srcset: '',
|
|
@@ -68,6 +75,10 @@ export const BaseStory = {
|
|
|
68
75
|
height: '',
|
|
69
76
|
objectFitClass: 'scaleDown',
|
|
70
77
|
loading: ''
|
|
71
|
-
}
|
|
78
|
+
},
|
|
79
|
+
|
|
80
|
+
noLogo: true,
|
|
81
|
+
aspectRatio: '16:9',
|
|
82
|
+
responsiveAspectRatio: 'md:aspect-ratio-four-three lg:aspect-ratio-twelve-nine'
|
|
72
83
|
}
|
|
73
84
|
}
|
|
@@ -4,13 +4,58 @@ export default {
|
|
|
4
4
|
component: BaseLink,
|
|
5
5
|
parameters: {
|
|
6
6
|
slots: {
|
|
7
|
-
default: '
|
|
7
|
+
default: 'Text or markup contained in the link'
|
|
8
8
|
}
|
|
9
9
|
},
|
|
10
10
|
argTypes: {
|
|
11
11
|
variant: {
|
|
12
12
|
control: { type: 'select' },
|
|
13
|
-
options: Object.keys(variants)
|
|
13
|
+
options: Object.keys(variants),
|
|
14
|
+
description: 'Preset variants'
|
|
15
|
+
},
|
|
16
|
+
to: {
|
|
17
|
+
description: 'If populated, a router-link will be generated. Overrides `href`'
|
|
18
|
+
},
|
|
19
|
+
linkClicked: {
|
|
20
|
+
type: '@click emit',
|
|
21
|
+
description: 'Event emitted at the root-level (globally available)'
|
|
22
|
+
},
|
|
23
|
+
specificLinkClicked: {
|
|
24
|
+
type: '@click emit',
|
|
25
|
+
description: 'Locally emitted event (includes event attributes)'
|
|
26
|
+
},
|
|
27
|
+
linkClass: {
|
|
28
|
+
description: 'Apply classes directly to the `<a>` element.'
|
|
29
|
+
},
|
|
30
|
+
externalTargetBlank: {
|
|
31
|
+
description: 'Autmatically sets target to `_blank` for external (non-router) links.'
|
|
32
|
+
},
|
|
33
|
+
exact: {
|
|
34
|
+
description:
|
|
35
|
+
"Maps to the `exact` prop in Nuxt's native `NuxtLink` component. If `true`, `active-class` will be applied to the link only if the current path is an exact match. Only affects router links."
|
|
36
|
+
},
|
|
37
|
+
usePrimaryColor: {
|
|
38
|
+
type: 'boolean',
|
|
39
|
+
description: "Overrides the theme's `active` color and uses the `primary` color instead."
|
|
40
|
+
},
|
|
41
|
+
caret: {
|
|
42
|
+
description:
|
|
43
|
+
'If a caret icon should be appended to the link. Set automatically when using the `primary` link variant.'
|
|
44
|
+
},
|
|
45
|
+
caretColor: {
|
|
46
|
+
control: { type: 'text' },
|
|
47
|
+
description: 'Tailwind text color class for the caret. Ex: `text-primary`'
|
|
48
|
+
},
|
|
49
|
+
caretWrapperClass: {
|
|
50
|
+
description: 'Add classes to the caret wrapper'
|
|
51
|
+
},
|
|
52
|
+
caretClass: {
|
|
53
|
+
description:
|
|
54
|
+
"Apply classes directly to the caret. Maps to `MixinAnimationCaret`'s `arrowClass` prop."
|
|
55
|
+
},
|
|
56
|
+
caretInline: { description: 'Apply `inline` class to the caret wrapper' },
|
|
57
|
+
caretMarginLeft: {
|
|
58
|
+
description: 'Customize the left margin of the caret using Tailwind classes.'
|
|
14
59
|
}
|
|
15
60
|
},
|
|
16
61
|
excludeStories: /.*Data$/
|
|
@@ -21,8 +66,6 @@ export const BaseLinkData = {
|
|
|
21
66
|
variant: 'primary',
|
|
22
67
|
to: '/',
|
|
23
68
|
href: '/',
|
|
24
|
-
caret: false,
|
|
25
|
-
caretColor: 'text-primary',
|
|
26
69
|
default: 'Link Text'
|
|
27
70
|
}
|
|
28
71
|
|
|
@@ -7,19 +7,20 @@ export default {
|
|
|
7
7
|
argTypes: {
|
|
8
8
|
variant: {
|
|
9
9
|
type: { name: 'string', required: false },
|
|
10
|
-
description: 'The variant (color) of the
|
|
10
|
+
description: 'The variant (color) of the pill',
|
|
11
11
|
control: { type: 'select' },
|
|
12
12
|
options: ['primary', 'secondary', 'action']
|
|
13
13
|
},
|
|
14
14
|
size: {
|
|
15
15
|
type: { name: 'string', required: false },
|
|
16
|
-
description: 'The size of the
|
|
16
|
+
description: 'The size of the pill',
|
|
17
17
|
control: { type: 'select' },
|
|
18
18
|
options: ['sm', 'md', 'lg']
|
|
19
19
|
},
|
|
20
20
|
contentType: {
|
|
21
21
|
control: { type: 'select' },
|
|
22
|
-
options: Object.keys(eduMetadataDictionary)
|
|
22
|
+
options: Object.keys(eduMetadataDictionary),
|
|
23
|
+
description: 'Maps to EDU Resource types. Must use `ThemeEdu` to have an effect.'
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
26
|
}
|
|
@@ -39,5 +40,10 @@ export const SecondarySmall = {
|
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
export const WithType = {
|
|
42
|
-
args: {
|
|
43
|
+
args: {
|
|
44
|
+
size: 'sm',
|
|
45
|
+
variant: 'primary',
|
|
46
|
+
text: 'Student Project',
|
|
47
|
+
contentType: 'EDUStudentProjectPage'
|
|
48
|
+
}
|
|
43
49
|
}
|
|
@@ -22,15 +22,13 @@ interface BasePillProps {
|
|
|
22
22
|
variant?: string
|
|
23
23
|
size?: string
|
|
24
24
|
contentType?: string
|
|
25
|
-
invert?: boolean
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
// define props
|
|
29
28
|
const props = withDefaults(defineProps<BasePillProps>(), {
|
|
30
29
|
variant: 'primary',
|
|
31
30
|
size: 'md',
|
|
32
|
-
contentType: undefined
|
|
33
|
-
invert: false
|
|
31
|
+
contentType: undefined
|
|
34
32
|
})
|
|
35
33
|
|
|
36
34
|
const metadataType = computed(() => {
|
|
@@ -6,12 +6,12 @@ export default {
|
|
|
6
6
|
tags: ['!autodocs'],
|
|
7
7
|
decorators: [
|
|
8
8
|
() => ({
|
|
9
|
-
template: `<div id="
|
|
9
|
+
template: `<div id="storyRoot" class="lg:w-1/3"><story/></div>`
|
|
10
10
|
})
|
|
11
11
|
],
|
|
12
12
|
parameters: {
|
|
13
13
|
html: {
|
|
14
|
-
root: '#
|
|
14
|
+
root: '#storyRoot'
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
excludeStories: /.*Data$/
|
|
@@ -7,7 +7,7 @@ export default {
|
|
|
7
7
|
tags: ['!autodocs'],
|
|
8
8
|
decorators: [
|
|
9
9
|
() => ({
|
|
10
|
-
template: `<div class="relative max-w-xl mx-auto container"><story/></div>`
|
|
10
|
+
template: `<div id="storyRoot" class="relative max-w-xl mx-auto container"><story/></div>`
|
|
11
11
|
})
|
|
12
12
|
],
|
|
13
13
|
argTypes: {
|
|
@@ -18,6 +18,7 @@ export default {
|
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
20
|
parameters: {
|
|
21
|
+
html: { root: '#storyRoot' },
|
|
21
22
|
slots: {
|
|
22
23
|
icon: {
|
|
23
24
|
description: 'Icon slot',
|
|
@@ -5,12 +5,12 @@ export default {
|
|
|
5
5
|
component: BlockIframeEmbed,
|
|
6
6
|
decorators: [
|
|
7
7
|
() => ({
|
|
8
|
-
template: `<div id="
|
|
8
|
+
template: `<div id="storyRoot" class="mx-auto max-w-screen-md"><story/></div>`
|
|
9
9
|
})
|
|
10
10
|
],
|
|
11
11
|
parameters: {
|
|
12
12
|
html: {
|
|
13
|
-
root: '#
|
|
13
|
+
root: '#storyRoot'
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
excludeStories: /.*Data$/
|
|
@@ -5,7 +5,7 @@ export default {
|
|
|
5
5
|
component: BlockImageCarousel,
|
|
6
6
|
decorators: [
|
|
7
7
|
() => ({
|
|
8
|
-
template: `<div id="
|
|
8
|
+
template: `<div id="storyRoot" class="container"><story/></div>`
|
|
9
9
|
})
|
|
10
10
|
],
|
|
11
11
|
argTypes: {
|
|
@@ -23,7 +23,7 @@ export default {
|
|
|
23
23
|
},
|
|
24
24
|
parameters: {
|
|
25
25
|
html: {
|
|
26
|
-
root: '#
|
|
26
|
+
root: '#storyRoot'
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
excludeStories: /.*Data$/
|
|
@@ -5,7 +5,7 @@ export default {
|
|
|
5
5
|
component: BlockImageCarouselItem,
|
|
6
6
|
decorators: [
|
|
7
7
|
() => ({
|
|
8
|
-
template: `<div id="
|
|
8
|
+
template: `<div id="storyRoot" class="container mx-auto"><story/></div>`
|
|
9
9
|
})
|
|
10
10
|
],
|
|
11
11
|
argTypes: {
|
|
@@ -24,7 +24,7 @@ export default {
|
|
|
24
24
|
},
|
|
25
25
|
parameters: {
|
|
26
26
|
html: {
|
|
27
|
-
root: '#
|
|
27
|
+
root: '#storyRoot'
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
excludeStories: /.*Data$/
|
|
@@ -5,12 +5,12 @@ export default {
|
|
|
5
5
|
component: BlockImageComparison,
|
|
6
6
|
decorators: [
|
|
7
7
|
() => ({
|
|
8
|
-
template: `<div id="
|
|
8
|
+
template: `<div id="storyRoot" class="container mx-auto"><story/></div>`
|
|
9
9
|
})
|
|
10
10
|
],
|
|
11
11
|
parameters: {
|
|
12
12
|
html: {
|
|
13
|
-
root: '#
|
|
13
|
+
root: '#storyRoot'
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
excludeStories: /.*Data$/
|
|
@@ -6,7 +6,7 @@ export default {
|
|
|
6
6
|
component: BlockImageGallery,
|
|
7
7
|
decorators: [
|
|
8
8
|
() => ({
|
|
9
|
-
template: `<div id="
|
|
9
|
+
template: `<div id="storyRoot" class="max-w-screen-3xl mx-auto"><story/></div>`
|
|
10
10
|
})
|
|
11
11
|
],
|
|
12
12
|
argTypes: {
|
|
@@ -20,7 +20,7 @@ export default {
|
|
|
20
20
|
|
|
21
21
|
parameters: {
|
|
22
22
|
html: {
|
|
23
|
-
root: '#
|
|
23
|
+
root: '#storyRoot'
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
excludeStories: /.*Data$/
|
|
@@ -4,6 +4,14 @@ import BlockInlineImage from './BlockInlineImage.vue'
|
|
|
4
4
|
export default {
|
|
5
5
|
title: 'Components/Blocks/BlockInlineImage',
|
|
6
6
|
component: BlockInlineImage,
|
|
7
|
+
argTypes: {
|
|
8
|
+
variant: {
|
|
9
|
+
type: 'string',
|
|
10
|
+
description: 'Text size variant',
|
|
11
|
+
control: { type: 'select' },
|
|
12
|
+
options: ['small', 'medium', 'large']
|
|
13
|
+
}
|
|
14
|
+
},
|
|
7
15
|
excludeStories: /.*(Data)$/
|
|
8
16
|
}
|
|
9
17
|
|
|
@@ -30,7 +38,7 @@ export const BlockInlineImageData = {
|
|
|
30
38
|
|
|
31
39
|
export const BaseStory = {
|
|
32
40
|
name: 'Align Right',
|
|
33
|
-
args: { data: BlockInlineImageData.block }
|
|
41
|
+
args: { data: BlockInlineImageData.block, variant: 'large' }
|
|
34
42
|
}
|
|
35
43
|
|
|
36
44
|
export const CustomCaption = {
|
|
@@ -64,6 +72,8 @@ export const PortraitImage = {
|
|
|
64
72
|
width: 500
|
|
65
73
|
}
|
|
66
74
|
}
|
|
67
|
-
}
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
variant: 'large'
|
|
68
78
|
}
|
|
69
79
|
}
|