@empathyco/x-components 3.0.0-alpha.90 → 3.0.0-alpha.91
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/design-system/full-theme.css +44 -45
- package/js/x-modules/search/components/banner.vue.js +2 -2
- package/js/x-modules/search/components/banner.vue.js.map +1 -1
- package/js/x-modules/search/components/promoted.vue.js +2 -2
- package/js/x-modules/search/components/promoted.vue.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See
|
|
4
4
|
[Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.0.0-alpha.91](https://github.com/empathyco/x/compare/@empathyco/x-components@3.0.0-alpha.90...@empathyco/x-components@3.0.0-alpha.91) (2022-05-04)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- add `alt-text` accessibility
|
|
11
|
+
([da5a10a](https://github.com/empathyco/x/commit/da5a10a236aae5fae96943fe0ad54849df15e7f5)),
|
|
12
|
+
closes [EX-5930](https://searchbroker.atlassian.net/browse/EX-5930)
|
|
13
|
+
|
|
14
|
+
# Change Log
|
|
15
|
+
|
|
16
|
+
All notable changes to this project will be documented in this file. See
|
|
17
|
+
[Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
18
|
+
|
|
6
19
|
## [3.0.0-alpha.90](https://github.com/empathyco/x/compare/@empathyco/x-components@3.0.0-alpha.89...@empathyco/x-components@3.0.0-alpha.90) (2022-05-03)
|
|
7
20
|
|
|
8
21
|
### Features
|
|
@@ -323,6 +323,35 @@
|
|
|
323
323
|
--x-size-border-width-bottom-button-tertiary: var(--x-size-border-width-button-tertiary);
|
|
324
324
|
--x-size-border-width-left-button-tertiary: var(--x-size-border-width-button-tertiary);
|
|
325
325
|
}
|
|
326
|
+
.x-dropdown--card {
|
|
327
|
+
--x-size-gap-dropdown-default: var(--x-size-gap-dropdown-card);
|
|
328
|
+
--x-size-border-radius-dropdown-default: var(--x-size-border-radius-dropdown-card);
|
|
329
|
+
--x-size-border-radius-top-left-dropdown-default: var(
|
|
330
|
+
--x-size-border-radius-top-left-dropdown-card
|
|
331
|
+
);
|
|
332
|
+
--x-size-border-radius-top-right-dropdown-default: var(
|
|
333
|
+
--x-size-border-radius-top-right-dropdown-card
|
|
334
|
+
);
|
|
335
|
+
--x-size-border-radius-bottom-right-dropdown-default: var(
|
|
336
|
+
--x-size-border-radius-bottom-right-dropdown-card
|
|
337
|
+
);
|
|
338
|
+
--x-size-border-radius-bottom-left-dropdown-default: var(
|
|
339
|
+
--x-size-border-radius-bottom-left-dropdown-card
|
|
340
|
+
);
|
|
341
|
+
--x-size-border-width-dropdown-list-default: var(--x-size-border-width-dropdown-list-card);
|
|
342
|
+
--x-size-border-width-top-dropdown-list-default: var(
|
|
343
|
+
--x-size-border-width-top-dropdown-list-card
|
|
344
|
+
);
|
|
345
|
+
--x-size-border-width-right-dropdown-list-default: var(
|
|
346
|
+
--x-size-border-width-right-dropdown-list-card
|
|
347
|
+
);
|
|
348
|
+
--x-size-border-width-bottom-dropdown-list-default: var(
|
|
349
|
+
--x-size-border-width-bottom-dropdown-list-card
|
|
350
|
+
);
|
|
351
|
+
--x-size-border-width-left-dropdown-list-default: var(
|
|
352
|
+
--x-size-border-width-left-dropdown-list-card
|
|
353
|
+
);
|
|
354
|
+
}
|
|
326
355
|
:root {
|
|
327
356
|
--x-size-gap-dropdown-card: var(--x-size-base-03);
|
|
328
357
|
--x-size-border-radius-dropdown-card: var(--x-size-border-radius-base-s);
|
|
@@ -4136,6 +4165,21 @@
|
|
|
4136
4165
|
:root {
|
|
4137
4166
|
--x-color-text-accent: var(--x-color-base-accent);
|
|
4138
4167
|
}
|
|
4168
|
+
.x-text--bold.x-text {
|
|
4169
|
+
--x-number-font-weight-text: var(--x-number-font-weight-base-bold);
|
|
4170
|
+
}
|
|
4171
|
+
.x-text--bold.x-title1 {
|
|
4172
|
+
--x-number-font-weight-title1: var(--x-number-font-weight-base-bold);
|
|
4173
|
+
}
|
|
4174
|
+
.x-text--bold.x-title2 {
|
|
4175
|
+
--x-number-font-weight-title2: var(--x-number-font-weight-base-bold);
|
|
4176
|
+
}
|
|
4177
|
+
.x-text--bold.x-title3 {
|
|
4178
|
+
--x-number-font-weight-title3: var(--x-number-font-weight-base-bold);
|
|
4179
|
+
}
|
|
4180
|
+
.x-text--bold.x-small {
|
|
4181
|
+
--x-number-font-weight-small: var(--x-number-font-weight-base-bold);
|
|
4182
|
+
}
|
|
4139
4183
|
.x,
|
|
4140
4184
|
.x-text {
|
|
4141
4185
|
font-family: var(--x-font-family-text);
|
|
@@ -7522,48 +7566,3 @@
|
|
|
7522
7566
|
.x-normal-case {
|
|
7523
7567
|
text-transform: none;
|
|
7524
7568
|
}
|
|
7525
|
-
|
|
7526
|
-
.x-dropdown--card {
|
|
7527
|
-
--x-size-gap-dropdown-default: var(--x-size-gap-dropdown-card);
|
|
7528
|
-
--x-size-border-radius-dropdown-default: var(--x-size-border-radius-dropdown-card);
|
|
7529
|
-
--x-size-border-radius-top-left-dropdown-default: var(
|
|
7530
|
-
--x-size-border-radius-top-left-dropdown-card
|
|
7531
|
-
);
|
|
7532
|
-
--x-size-border-radius-top-right-dropdown-default: var(
|
|
7533
|
-
--x-size-border-radius-top-right-dropdown-card
|
|
7534
|
-
);
|
|
7535
|
-
--x-size-border-radius-bottom-right-dropdown-default: var(
|
|
7536
|
-
--x-size-border-radius-bottom-right-dropdown-card
|
|
7537
|
-
);
|
|
7538
|
-
--x-size-border-radius-bottom-left-dropdown-default: var(
|
|
7539
|
-
--x-size-border-radius-bottom-left-dropdown-card
|
|
7540
|
-
);
|
|
7541
|
-
--x-size-border-width-dropdown-list-default: var(--x-size-border-width-dropdown-list-card);
|
|
7542
|
-
--x-size-border-width-top-dropdown-list-default: var(
|
|
7543
|
-
--x-size-border-width-top-dropdown-list-card
|
|
7544
|
-
);
|
|
7545
|
-
--x-size-border-width-right-dropdown-list-default: var(
|
|
7546
|
-
--x-size-border-width-right-dropdown-list-card
|
|
7547
|
-
);
|
|
7548
|
-
--x-size-border-width-bottom-dropdown-list-default: var(
|
|
7549
|
-
--x-size-border-width-bottom-dropdown-list-card
|
|
7550
|
-
);
|
|
7551
|
-
--x-size-border-width-left-dropdown-list-default: var(
|
|
7552
|
-
--x-size-border-width-left-dropdown-list-card
|
|
7553
|
-
);
|
|
7554
|
-
}
|
|
7555
|
-
.x-text--bold.x-text {
|
|
7556
|
-
--x-number-font-weight-text: var(--x-number-font-weight-base-bold);
|
|
7557
|
-
}
|
|
7558
|
-
.x-text--bold.x-title1 {
|
|
7559
|
-
--x-number-font-weight-title1: var(--x-number-font-weight-base-bold);
|
|
7560
|
-
}
|
|
7561
|
-
.x-text--bold.x-title2 {
|
|
7562
|
-
--x-number-font-weight-title2: var(--x-number-font-weight-base-bold);
|
|
7563
|
-
}
|
|
7564
|
-
.x-text--bold.x-title3 {
|
|
7565
|
-
--x-number-font-weight-title3: var(--x-number-font-weight-base-bold);
|
|
7566
|
-
}
|
|
7567
|
-
.x-text--bold.x-small {
|
|
7568
|
-
--x-number-font-weight-small: var(--x-number-font-weight-base-bold);
|
|
7569
|
-
}
|
|
@@ -20,7 +20,7 @@ var __vue_render__ = function () {
|
|
|
20
20
|
[
|
|
21
21
|
_c("img", {
|
|
22
22
|
staticClass: "x-banner__image",
|
|
23
|
-
attrs: { src: _vm.banner.image, alt:
|
|
23
|
+
attrs: { src: _vm.banner.image, alt: _vm.banner.title },
|
|
24
24
|
}),
|
|
25
25
|
_vm._v(" "),
|
|
26
26
|
_c("h2", { staticClass: "x-banner__title" }, [
|
|
@@ -35,7 +35,7 @@ __vue_render__._withStripped = true;
|
|
|
35
35
|
/* style */
|
|
36
36
|
const __vue_inject_styles__ = function (inject) {
|
|
37
37
|
if (!inject) return
|
|
38
|
-
inject("data-v-
|
|
38
|
+
inject("data-v-3a9082b6_0", { source: ".x-banner {\n display: flex;\n flex-flow: column nowrap;\n text-decoration: none;\n}\n.x-banner__image {\n width: 100%;\n object-fit: contain;\n}", map: undefined, media: undefined });
|
|
39
39
|
|
|
40
40
|
};
|
|
41
41
|
/* scoped */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"banner.vue.js","sources":["../../../../../src/x-modules/search/components/banner.vue"],"sourcesContent":["<template>\n <a @click=\"emitClickEvent\" :href=\"banner.url\" class=\"x-banner\" data-test=\"banner\">\n <img :src=\"banner.image\" class=\"x-banner__image\" alt=\"\" />\n <h2 class=\"x-banner__title\">{{ banner.title }}</h2>\n </a>\n</template>\n\n<script lang=\"ts\">\n import { Banner as BannerModel } from '@empathyco/x-types';\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { xComponentMixin } from '../../../components/x-component.mixin';\n import { searchXModule } from '../x-module';\n /**\n * A banner result is just an item that has been inserted into the search results to advertise\n * something. Usually it is the first item in the grid or it can be placed in the middle of them\n * and fill the whole row where appears. It just contains a link to the banner content, an image\n * and a title.\n *\n * @public\n */\n @Component({\n mixins: [xComponentMixin(searchXModule)]\n })\n export default class Banner extends Vue {\n /**\n * The banner data.\n *\n * @public\n */\n @Prop({ required: true })\n public banner!: BannerModel;\n\n /**\n * Emits the banner click event.\n *\n * @internal\n */\n protected emitClickEvent(): void {\n this.$x.emit('UserClickedABanner', this.banner);\n }\n }\n</script>\n\n<style lang=\"scss\">\n .x-banner {\n display: flex;\n flex-flow: column nowrap;\n text-decoration: none;\n\n &__image {\n width: 100%;\n object-fit: contain;\n }\n }\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component doesn't emit events.\n\n## See it in action\n\nIn this example banned data is passed as a prop.\n\n_Here you can see how the `Banner` component is rendered._\n\n```vue\n<template>\n <Banner :banner=\"banner\" />\n</template>\n\n<script>\n import { Banner } from '@empathyco/x-components/search';\n export default {\n name: 'BannerDemo',\n components: {\n Banner\n },\n data() {\n return {\n banner: {\n modelName: 'Banner',\n id: 'banner-example',\n url: 'https://my-website.com/summer-shirts',\n image: 'https://my-website.com/images/summer-shirts.jpg',\n title: 'Trendy summer shirts'\n }\n };\n }\n };\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"banner.vue.js","sources":["../../../../../src/x-modules/search/components/banner.vue"],"sourcesContent":["<template>\n <a @click=\"emitClickEvent\" :href=\"banner.url\" class=\"x-banner\" data-test=\"banner\">\n <img :src=\"banner.image\" class=\"x-banner__image\" :alt=\"banner.title\" />\n <h2 class=\"x-banner__title\">{{ banner.title }}</h2>\n </a>\n</template>\n\n<script lang=\"ts\">\n import { Banner as BannerModel } from '@empathyco/x-types';\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { xComponentMixin } from '../../../components/x-component.mixin';\n import { searchXModule } from '../x-module';\n /**\n * A banner result is just an item that has been inserted into the search results to advertise\n * something. Usually it is the first item in the grid or it can be placed in the middle of them\n * and fill the whole row where appears. It just contains a link to the banner content, an image\n * and a title.\n *\n * @public\n */\n @Component({\n mixins: [xComponentMixin(searchXModule)]\n })\n export default class Banner extends Vue {\n /**\n * The banner data.\n *\n * @public\n */\n @Prop({ required: true })\n public banner!: BannerModel;\n\n /**\n * Emits the banner click event.\n *\n * @internal\n */\n protected emitClickEvent(): void {\n this.$x.emit('UserClickedABanner', this.banner);\n }\n }\n</script>\n\n<style lang=\"scss\">\n .x-banner {\n display: flex;\n flex-flow: column nowrap;\n text-decoration: none;\n\n &__image {\n width: 100%;\n object-fit: contain;\n }\n }\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component doesn't emit events.\n\n## See it in action\n\nIn this example banned data is passed as a prop.\n\n_Here you can see how the `Banner` component is rendered._\n\n```vue\n<template>\n <Banner :banner=\"banner\" />\n</template>\n\n<script>\n import { Banner } from '@empathyco/x-components/search';\n export default {\n name: 'BannerDemo',\n components: {\n Banner\n },\n data() {\n return {\n banner: {\n modelName: 'Banner',\n id: 'banner-example',\n url: 'https://my-website.com/summer-shirts',\n image: 'https://my-website.com/images/summer-shirts.jpg',\n title: 'Trendy summer shirts'\n }\n };\n }\n };\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -20,7 +20,7 @@ var __vue_render__ = function () {
|
|
|
20
20
|
[
|
|
21
21
|
_c("img", {
|
|
22
22
|
staticClass: "x-promoted__image",
|
|
23
|
-
attrs: { src: _vm.promoted.image, alt:
|
|
23
|
+
attrs: { src: _vm.promoted.image, alt: _vm.promoted.title },
|
|
24
24
|
}),
|
|
25
25
|
_vm._v(" "),
|
|
26
26
|
_c("h2", { staticClass: "x-promoted__title" }, [
|
|
@@ -35,7 +35,7 @@ __vue_render__._withStripped = true;
|
|
|
35
35
|
/* style */
|
|
36
36
|
const __vue_inject_styles__ = function (inject) {
|
|
37
37
|
if (!inject) return
|
|
38
|
-
inject("data-v-
|
|
38
|
+
inject("data-v-6786add5_0", { source: ".x-promoted {\n display: flex;\n flex-flow: column nowrap;\n text-decoration: none;\n}\n.x-promoted__image {\n width: 100%;\n object-fit: contain;\n}", map: undefined, media: undefined });
|
|
39
39
|
|
|
40
40
|
};
|
|
41
41
|
/* scoped */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promoted.vue.js","sources":["../../../../../src/x-modules/search/components/promoted.vue"],"sourcesContent":["<template>\n <a @click=\"emitClickEvent\" :href=\"promoted.url\" class=\"x-promoted\" data-test=\"promoted\">\n <img :src=\"promoted.image\" class=\"x-promoted__image\" alt=\"\" />\n <h2 class=\"x-promoted__title\">{{ promoted.title }}</h2>\n </a>\n</template>\n\n<script lang=\"ts\">\n import { Promoted as PromotedModel } from '@empathyco/x-types';\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { xComponentMixin } from '../../../components/x-component.mixin';\n import { searchXModule } from '../x-module';\n\n /**\n * A promoted result is just an item that has been inserted into the search results to advertise\n * something. Usually it is one of the first items in the grid, and has the same shape as a\n * result. It just contains a link to the promoted content, an image, and a title.\n *\n * @public\n */\n @Component({\n mixins: [xComponentMixin(searchXModule)]\n })\n export default class Promoted extends Vue {\n /**\n * The promoted data.\n *\n * @public\n */\n @Prop({ required: true })\n public promoted!: PromotedModel;\n\n /**\n * Emits the promoted click event.\n *\n * @internal\n */\n protected emitClickEvent(): void {\n this.$x.emit('UserClickedAPromoted', this.promoted);\n }\n }\n</script>\n\n<style lang=\"scss\">\n .x-promoted {\n display: flex;\n flex-flow: column nowrap;\n text-decoration: none;\n\n &__image {\n width: 100%;\n object-fit: contain;\n }\n }\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component doesn't emit events.\n\n## See it in action\n\nIn this example promoted data is passed as a prop.\n\n_Here you can see how the `Promoted` component is rendered._\n\n```vue\n<template>\n <Promoted :promoted=\"promoted\" />\n</template>\n\n<script>\n import { Promoted } from '@empathyco/x-components/search';\n\n export default {\n name: 'PromotedDemo',\n components: {\n Promoted\n },\n data() {\n return {\n promoted: {\n modelName: 'Promoted',\n id: 'promoted-example',\n url: 'https://my-website.com/summer-shirts',\n image: 'https://my-website.com/images/summer-shirts.jpg',\n title: 'Trendy summer shirts'\n }\n };\n }\n };\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"promoted.vue.js","sources":["../../../../../src/x-modules/search/components/promoted.vue"],"sourcesContent":["<template>\n <a @click=\"emitClickEvent\" :href=\"promoted.url\" class=\"x-promoted\" data-test=\"promoted\">\n <img :src=\"promoted.image\" class=\"x-promoted__image\" :alt=\"promoted.title\" />\n <h2 class=\"x-promoted__title\">{{ promoted.title }}</h2>\n </a>\n</template>\n\n<script lang=\"ts\">\n import { Promoted as PromotedModel } from '@empathyco/x-types';\n import Vue from 'vue';\n import { Component, Prop } from 'vue-property-decorator';\n import { xComponentMixin } from '../../../components/x-component.mixin';\n import { searchXModule } from '../x-module';\n\n /**\n * A promoted result is just an item that has been inserted into the search results to advertise\n * something. Usually it is one of the first items in the grid, and has the same shape as a\n * result. It just contains a link to the promoted content, an image, and a title.\n *\n * @public\n */\n @Component({\n mixins: [xComponentMixin(searchXModule)]\n })\n export default class Promoted extends Vue {\n /**\n * The promoted data.\n *\n * @public\n */\n @Prop({ required: true })\n public promoted!: PromotedModel;\n\n /**\n * Emits the promoted click event.\n *\n * @internal\n */\n protected emitClickEvent(): void {\n this.$x.emit('UserClickedAPromoted', this.promoted);\n }\n }\n</script>\n\n<style lang=\"scss\">\n .x-promoted {\n display: flex;\n flex-flow: column nowrap;\n text-decoration: none;\n\n &__image {\n width: 100%;\n object-fit: contain;\n }\n }\n</style>\n\n<docs lang=\"mdx\">\n## Events\n\nThis component doesn't emit events.\n\n## See it in action\n\nIn this example promoted data is passed as a prop.\n\n_Here you can see how the `Promoted` component is rendered._\n\n```vue\n<template>\n <Promoted :promoted=\"promoted\" />\n</template>\n\n<script>\n import { Promoted } from '@empathyco/x-components/search';\n\n export default {\n name: 'PromotedDemo',\n components: {\n Promoted\n },\n data() {\n return {\n promoted: {\n modelName: 'Promoted',\n id: 'promoted-example',\n url: 'https://my-website.com/summer-shirts',\n image: 'https://my-website.com/images/summer-shirts.jpg',\n title: 'Trendy summer shirts'\n }\n };\n }\n };\n</script>\n```\n</docs>\n"],"names":[],"mappings":";;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@empathyco/x-components",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.91",
|
|
4
4
|
"description": "Empathy X Components",
|
|
5
5
|
"author": "Empathy Systems Corporation S.L.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -125,5 +125,5 @@
|
|
|
125
125
|
"access": "public",
|
|
126
126
|
"directory": "dist"
|
|
127
127
|
},
|
|
128
|
-
"gitHead": "
|
|
128
|
+
"gitHead": "ef73eb4b19269566873d0207fdf611b2c44e1ea5"
|
|
129
129
|
}
|