@coveo/atomic 3.33.3-pre.ee24f8bd85 → 3.33.3-pre.f230cfebef
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/dist/atomic/_atomic.esm.js +1 -1
- package/dist/atomic/components/analytics-config.js +1 -1
- package/dist/atomic/components/atomic-insight-result2.js +1 -1
- package/dist/atomic/components/atomic-insight-result2.js.map +1 -1
- package/dist/atomic/components/atomic-recs-result2.js +1 -1
- package/dist/atomic/components/atomic-recs-result2.js.map +1 -1
- package/dist/atomic/components/atomic-result-placeholder2.js +1 -1
- package/dist/atomic/components/atomic-result-placeholder2.js.map +1 -1
- package/dist/atomic/components/atomic-result2.js +1 -1
- package/dist/atomic/components/atomic-result2.js.map +1 -1
- package/dist/atomic/components/components/commerce/atomic-commerce-facet-number-input/atomic-commerce-facet-number-input.js +2 -5
- package/dist/atomic/components/components/commerce/atomic-commerce-facets/atomic-commerce-facets.js +3 -7
- package/dist/atomic/components/components/commerce/atomic-commerce-layout/atomic-commerce-layout.js +9 -7
- package/dist/atomic/components/components/commerce/atomic-commerce-product-list/atomic-commerce-product-list.js +13 -3
- package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.js +7 -3
- package/dist/atomic/components/components/commerce/atomic-product/atomic-product.tw.css.js +1 -1
- package/dist/atomic/components/components/commerce/atomic-product-children/atomic-product-children.js +3 -7
- package/dist/atomic/components/components/commerce/atomic-product-description/atomic-product-description.js +3 -4
- package/dist/atomic/components/components/commerce/atomic-product-excerpt/atomic-product-excerpt.js +3 -4
- package/dist/atomic/components/components/commerce/atomic-product-field-condition/atomic-product-field-condition.js +2 -4
- package/dist/atomic/components/components/commerce/atomic-product-link/atomic-product-link.js +3 -6
- package/dist/atomic/components/components/commerce/atomic-product-numeric-field-value/atomic-product-numeric-field-value.js +3 -7
- package/dist/atomic/components/components/commerce/atomic-product-price/atomic-product-price.js +2 -3
- package/dist/atomic/components/components/commerce/atomic-product-rating/atomic-product-rating.js +3 -4
- package/dist/atomic/components/components/commerce/atomic-product-section-actions/atomic-product-section-actions.js +3 -2
- package/dist/atomic/components/components/commerce/atomic-product-section-metadata/atomic-product-section-metadata.js +3 -2
- package/dist/atomic/components/components/commerce/atomic-product-section-name/atomic-product-section-name.js +3 -2
- package/dist/atomic/components/components/commerce/atomic-product-section-visual/atomic-product-section-visual.js +4 -3
- package/dist/atomic/components/components/commerce/atomic-product-text/atomic-product-text.js +2 -4
- package/dist/atomic/components/components/common/atomic-aria-live/atomic-aria-live.js +2 -4
- package/dist/atomic/components/components/common/atomic-facet-date-input/atomic-facet-date-input.js +3 -7
- package/dist/atomic/components/components/common/atomic-icon/atomic-icon.js +3 -4
- package/dist/atomic/components/components/common/atomic-layout-section/atomic-layout-section.js +2 -4
- package/dist/atomic/components/components/common/item-list/styles/grid-display.tw.css.js +4 -0
- package/dist/atomic/components/components/common/item-list/styles/list-display.tw.css.js +4 -0
- package/dist/atomic/components/components/common/item-list/styles/placeholders.tw.css.js +3 -0
- package/dist/atomic/components/components/common/item-list/styles/table-display.tw.css.js +4 -0
- package/dist/atomic/components/components/search/atomic-search-layout/atomic-search-layout.js +7 -7
- package/dist/atomic/components/global/environment.js +1 -1
- package/dist/atomic/components/mixins/item-section-mixin.js +4 -13
- package/dist/atomic/components/mixins/light-dom.js +70 -0
- package/dist/atomic/p-45b200a8.entry.js +2 -0
- package/dist/atomic/{p-bce99a61.entry.js.map → p-45b200a8.entry.js.map} +1 -1
- package/dist/atomic/{p-0544aeaf.entry.js → p-8368d287.entry.js} +2 -2
- package/dist/atomic/{p-3bd7c3e2.entry.js → p-911c5765.entry.js} +2 -2
- package/dist/atomic/{p-d402d8a3.entry.js → p-9ff3ff9e.entry.js} +2 -2
- package/dist/atomic/{p-a13d7515.js → p-d1539193.js} +2 -2
- package/dist/atomic/p-e40a763b.entry.js +2 -0
- package/dist/atomic/{p-78aeb2d4.entry.js.map → p-e40a763b.entry.js.map} +1 -1
- package/dist/atomic/p-e91e8521.entry.js +2 -0
- package/dist/atomic/{p-2215b188.entry.js.map → p-e91e8521.entry.js.map} +1 -1
- package/dist/atomic/p-feb020b6.entry.js +2 -0
- package/dist/atomic/{p-0a58608a.entry.js.map → p-feb020b6.entry.js.map} +1 -1
- package/dist/cjs/{analytics-config-a0130d05.js → analytics-config-1e7b21a7.js} +2 -2
- package/dist/cjs/{analytics-config-a0130d05.js.map → analytics-config-1e7b21a7.js.map} +1 -1
- package/dist/cjs/atomic-insight-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-result.cjs.entry.js +1 -1
- package/dist/cjs/atomic-insight-result.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-recs-interface.cjs.entry.js +1 -1
- package/dist/cjs/atomic-recs-result.cjs.entry.js +1 -1
- package/dist/cjs/atomic-recs-result.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js +1 -1
- package/dist/cjs/atomic-result-placeholder_8.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-result.cjs.entry.js +1 -1
- package/dist/cjs/atomic-result.cjs.entry.js.map +1 -1
- package/dist/cjs/atomic-search-interface.cjs.entry.js +1 -1
- package/dist/cjs/version.cjs.js +2 -2
- package/dist/esm/{analytics-config-ca9f2d02.js → analytics-config-3299bb39.js} +2 -2
- package/dist/esm/{analytics-config-ca9f2d02.js.map → analytics-config-3299bb39.js.map} +1 -1
- package/dist/esm/atomic-insight-interface.entry.js +1 -1
- package/dist/esm/atomic-insight-result.entry.js +1 -1
- package/dist/esm/atomic-insight-result.entry.js.map +1 -1
- package/dist/esm/atomic-recs-interface.entry.js +1 -1
- package/dist/esm/atomic-recs-result.entry.js +1 -1
- package/dist/esm/atomic-recs-result.entry.js.map +1 -1
- package/dist/esm/atomic-result-placeholder_8.entry.js +1 -1
- package/dist/esm/atomic-result-placeholder_8.entry.js.map +1 -1
- package/dist/esm/atomic-result.entry.js +1 -1
- package/dist/esm/atomic-result.entry.js.map +1 -1
- package/dist/esm/atomic-search-interface.entry.js +1 -1
- package/dist/esm/version.js +2 -2
- package/dist/types/components/commerce/atomic-commerce-facet-number-input/atomic-commerce-facet-number-input.d.ts +5 -1
- package/dist/types/components/commerce/atomic-commerce-facets/atomic-commerce-facets.d.ts +5 -2
- package/dist/types/components/commerce/atomic-commerce-layout/atomic-commerce-layout.d.ts +6 -2
- package/dist/types/components/commerce/atomic-product-children/atomic-product-children.d.ts +5 -2
- package/dist/types/components/commerce/atomic-product-description/atomic-product-description.d.ts +5 -1
- package/dist/types/components/commerce/atomic-product-excerpt/atomic-product-excerpt.d.ts +5 -1
- package/dist/types/components/commerce/atomic-product-field-condition/atomic-product-field-condition.d.ts +5 -2
- package/dist/types/components/commerce/atomic-product-link/atomic-product-link.d.ts +3 -1
- package/dist/types/components/commerce/atomic-product-numeric-field-value/atomic-product-numeric-field-value.d.ts +5 -2
- package/dist/types/components/commerce/atomic-product-price/atomic-product-price.d.ts +5 -1
- package/dist/types/components/commerce/atomic-product-rating/atomic-product-rating.d.ts +5 -1
- package/dist/types/components/commerce/atomic-product-text/atomic-product-text.d.ts +5 -2
- package/dist/types/components/common/atomic-aria-live/atomic-aria-live.d.ts +5 -2
- package/dist/types/components/common/atomic-facet-date-input/atomic-facet-date-input.d.ts +5 -2
- package/dist/types/components/common/atomic-icon/atomic-icon.d.ts +3 -1
- package/dist/types/components/common/atomic-layout-section/atomic-layout-section.d.ts +5 -2
- package/dist/types/components/common/interface/bindings.d.ts +1 -1
- package/dist/types/components/common/item-list/styles/placeholders.tw.css.d.ts +2 -0
- package/dist/types/components/common/item-list/styles/table-display.tw.css.d.ts +2 -0
- package/dist/types/components/search/atomic-search-layout/atomic-search-layout.d.ts +4 -2
- package/dist/types/mixins/light-dom.d.ts +25 -0
- package/docs/atomic-docs.json +1 -1
- package/package.json +3 -4
- package/dist/atomic/components/components/commerce/atomic-commerce-product-list/atomic-commerce-product-list.tw.css.js +0 -4
- package/dist/atomic/components/components/commerce/atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.tw.css.js +0 -4
- package/dist/atomic/components/decorators/inject-styles-for-no-shadow-dom.js +0 -55
- package/dist/atomic/p-0a58608a.entry.js +0 -2
- package/dist/atomic/p-2215b188.entry.js +0 -2
- package/dist/atomic/p-78aeb2d4.entry.js +0 -2
- package/dist/atomic/p-bce99a61.entry.js +0 -2
- package/dist/types/decorators/inject-styles-for-no-shadow-dom.d.ts +0 -31
- /package/dist/atomic/{p-0544aeaf.entry.js.map → p-8368d287.entry.js.map} +0 -0
- /package/dist/atomic/{p-3bd7c3e2.entry.js.map → p-911c5765.entry.js.map} +0 -0
- /package/dist/atomic/{p-d402d8a3.entry.js.map → p-9ff3ff9e.entry.js.map} +0 -0
- /package/dist/atomic/{p-a13d7515.js.map → p-d1539193.js.map} +0 -0
- /package/dist/types/components/{commerce/atomic-commerce-product-list/atomic-commerce-product-list.tw.css.d.ts → common/item-list/styles/grid-display.tw.css.d.ts} +0 -0
- /package/dist/types/components/{commerce/atomic-commerce-recommendation-list/atomic-commerce-recommendation-list.tw.css.d.ts → common/item-list/styles/list-display.tw.css.d.ts} +0 -0
package/dist/atomic/components/components/commerce/atomic-product-price/atomic-product-price.js
CHANGED
|
@@ -12,15 +12,15 @@ import { bindingGuard } from "../../../decorators/binding-guard.js";
|
|
|
12
12
|
import { bindings } from "../../../decorators/bindings.js";
|
|
13
13
|
import { createProductContextController } from "../../../decorators/commerce/product-template-decorators.js";
|
|
14
14
|
import { errorGuard } from "../../../decorators/error-guard.js";
|
|
15
|
-
import { injectStylesForNoShadowDOM } from "../../../decorators/inject-styles-for-no-shadow-dom.js";
|
|
16
15
|
import { withTailwindStyles } from "../../../decorators/with-tailwind-styles.js";
|
|
17
16
|
import { multiClassMap, tw } from "../../../directives/multi-class-map.js";
|
|
17
|
+
import { LightDomMixin } from "../../../mixins/light-dom.js";
|
|
18
18
|
import { defaultCurrencyFormatter } from '../../common/formats/format-common.js';
|
|
19
19
|
import { parseValue } from '../product-template-component-utils/product-utils.js';
|
|
20
20
|
/**
|
|
21
21
|
* The `atomic-product-price` component renders the price of a product.
|
|
22
22
|
*/
|
|
23
|
-
let AtomicProductPrice = class AtomicProductPrice extends LitElement {
|
|
23
|
+
let AtomicProductPrice = class AtomicProductPrice extends LightDomMixin(LitElement) {
|
|
24
24
|
constructor() {
|
|
25
25
|
super(...arguments);
|
|
26
26
|
this.productController = createProductContextController(this);
|
|
@@ -94,7 +94,6 @@ __decorate([
|
|
|
94
94
|
AtomicProductPrice = __decorate([
|
|
95
95
|
customElement('atomic-product-price'),
|
|
96
96
|
bindings(),
|
|
97
|
-
injectStylesForNoShadowDOM,
|
|
98
97
|
withTailwindStyles
|
|
99
98
|
], AtomicProductPrice);
|
|
100
99
|
export { AtomicProductPrice };
|
package/dist/atomic/components/components/commerce/atomic-product-rating/atomic-product-rating.js
CHANGED
|
@@ -12,7 +12,7 @@ import { bindingGuard } from "../../../decorators/binding-guard";
|
|
|
12
12
|
import { bindings } from "../../../decorators/bindings.js";
|
|
13
13
|
import { createProductContextController } from "../../../decorators/commerce/product-template-decorators.js";
|
|
14
14
|
import { errorGuard } from "../../../decorators/error-guard";
|
|
15
|
-
import {
|
|
15
|
+
import { LightDomMixin } from "../../../mixins/light-dom";
|
|
16
16
|
const Star = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 13 13\">\n <path\n d=\"m 2.6226137,7.5483827 -1.73646599,-1.67659 c -0.58287,-0.56277 -0.2895686,-1.54878 0.50612799,-1.70148 l 2.630348,-0.50477 c 0.31897,-0.06121 0.58834,-0.27352 0.72239,-0.56935 l 0.84414,-1.86293 c 0.35481,-0.78302702 1.46689,-0.78302802 1.8217,0 l 0.84414,1.86293 c 0.13405,0.29583 0.40342,0.50814 0.72239,0.56935 l 2.6303203,0.50477 c 0.7957,0.1527 1.089,1.13871 0.5062,1.70148 l -1.73651,1.67659 c -0.23632,0.22817 -0.34551,0.55786 -0.2921,0.88198 l 0.45461,2.7587403 c 0.1357,0.824 -0.7386003,1.4416 -1.4698203,1.0382 l -2.087,-1.1515 c -0.30069,-0.1659 -0.66547,-0.1659 -0.96616,0 l -2.087,1.1515 c -0.73122,0.4034 -1.60555,-0.2142 -1.46978,-1.0382 l 0.45457,-2.7587403 c 0.05341,-0.32412 -0.05578,-0.65381 -0.2921,-0.88198 z\"\n stroke-width=\"0.8125\"\n />\n</svg>";
|
|
17
17
|
import { computeNumberOfStars, renderRating, } from '../../common/atomic-rating/rating.js';
|
|
18
18
|
/**
|
|
@@ -25,7 +25,7 @@ import { computeNumberOfStars, renderRating, } from '../../common/atomic-rating/
|
|
|
25
25
|
* @cssprop --atomic-rating-icon-inactive-color - Color of the icon when inactive.
|
|
26
26
|
* @cssprop --atomic-rating-icon-outline - Outline color of the icon.
|
|
27
27
|
*/
|
|
28
|
-
let AtomicProductRating = class AtomicProductRating extends LitElement {
|
|
28
|
+
let AtomicProductRating = class AtomicProductRating extends LightDomMixin(LitElement) {
|
|
29
29
|
constructor() {
|
|
30
30
|
super(...arguments);
|
|
31
31
|
this.productController = createProductContextController(this);
|
|
@@ -151,7 +151,6 @@ __decorate([
|
|
|
151
151
|
], AtomicProductRating.prototype, "render", null);
|
|
152
152
|
AtomicProductRating = __decorate([
|
|
153
153
|
customElement('atomic-product-rating'),
|
|
154
|
-
bindings()
|
|
155
|
-
injectStylesForNoShadowDOM
|
|
154
|
+
bindings()
|
|
156
155
|
], AtomicProductRating);
|
|
157
156
|
export { AtomicProductRating };
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { LitElement } from 'lit';
|
|
7
|
+
import { css, LitElement } from 'lit';
|
|
8
8
|
import { customElement } from 'lit/decorators.js';
|
|
9
9
|
import { ItemSectionMixin } from "../../../mixins/item-section-mixin";
|
|
10
10
|
/**
|
|
@@ -19,7 +19,8 @@ import { ItemSectionMixin } from "../../../mixins/item-section-mixin";
|
|
|
19
19
|
*
|
|
20
20
|
* @slot default - The actions to display.
|
|
21
21
|
*/
|
|
22
|
-
let AtomicProductSectionActions = class AtomicProductSectionActions extends ItemSectionMixin(LitElement
|
|
22
|
+
let AtomicProductSectionActions = class AtomicProductSectionActions extends ItemSectionMixin(LitElement, css`/*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */
|
|
23
|
+
atomic-product-section-actions{text-align:left;&.with-sections{text-overflow:ellipsis;overflow:hidden}&.with-sections{max-height:calc(2*var(--row-height,2rem) + .5rem);--row-height:2rem;flex-wrap:wrap;grid-area:actions;gap:.5rem;display:flex;& atomic-result-quickview{display:inline-block}@media (width>=1024px){&.display-list{&.density-comfortable{margin-bottom:1.5rem}&.density-normal,&.density-compact{margin-bottom:1rem}}&.display-grid{&.density-comfortable{--row-height:2.5rem;margin-top:2.25rem}&.density-normal{--font-size:var(--atomic-text-sm);font-size:var(--font-size);--line-height:calc(var(--font-size)*var(--atomic-line-height-ratio));line-height:var(--line-height);margin-top:1.75rem}&.density-compact{--font-size:var(--atomic-text-sm);font-size:var(--font-size);--line-height:calc(var(--font-size)*var(--atomic-line-height-ratio));line-height:var(--line-height);margin-top:1.25rem}}}@media not all and (width>=1024px){&.display-list{--row-height:2.5rem;&.density-comfortable{margin-top:1rem}&.density-normal{margin-top:.75rem}&.density-compact{margin-top:.5em}}&.display-grid{&.image-large{--row-height:2.5rem;&.density-comfortable{margin-top:1rem}&.density-normal{margin-top:.75rem}&.density-compact{margin-top:.5em}}&.image-small,&.image-icon,&.image-none{&.density-comfortable{margin-top:1.25rem}&.density-normal{margin-top:1rem}&.density-compact{margin-top:.75rem}}}}&.display-table{&.density-comfortable{margin-bottom:1.5rem}&.density-normal,&.density-compact{margin-bottom:1rem}}}}`) {
|
|
23
24
|
};
|
|
24
25
|
AtomicProductSectionActions = __decorate([
|
|
25
26
|
customElement('atomic-product-section-actions')
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { LitElement } from 'lit';
|
|
7
|
+
import { css, LitElement } from 'lit';
|
|
8
8
|
import { customElement } from 'lit/decorators.js';
|
|
9
9
|
import { ItemSectionMixin } from "../../../mixins/item-section-mixin";
|
|
10
10
|
/**
|
|
@@ -18,7 +18,8 @@ import { ItemSectionMixin } from "../../../mixins/item-section-mixin";
|
|
|
18
18
|
*
|
|
19
19
|
* @slot default - The metadata to display.
|
|
20
20
|
*/
|
|
21
|
-
let AtomicProductSectionMetadata = class AtomicProductSectionMetadata extends ItemSectionMixin(LitElement
|
|
21
|
+
let AtomicProductSectionMetadata = class AtomicProductSectionMetadata extends ItemSectionMixin(LitElement, css`/*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */
|
|
22
|
+
atomic-product-section-metadata{--font-size:var(--atomic-text-sm);font-size:var(--font-size);--line-height:calc(var(--font-size)*var(--atomic-line-height-ratio));line-height:var(--line-height);&.with-sections{text-overflow:ellipsis;grid-area:title-metadata;margin-top:.475rem;overflow:hidden}}`) {
|
|
22
23
|
};
|
|
23
24
|
AtomicProductSectionMetadata = __decorate([
|
|
24
25
|
customElement('atomic-product-section-metadata')
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { LitElement } from 'lit';
|
|
7
|
+
import { css, LitElement } from 'lit';
|
|
8
8
|
import { customElement } from 'lit/decorators.js';
|
|
9
9
|
import { ItemSectionMixin } from "../../../mixins/item-section-mixin";
|
|
10
10
|
/**
|
|
@@ -17,7 +17,8 @@ import { ItemSectionMixin } from "../../../mixins/item-section-mixin";
|
|
|
17
17
|
*
|
|
18
18
|
* @slot default - The name to display.
|
|
19
19
|
*/
|
|
20
|
-
let AtomicProductSectionName = class AtomicProductSectionName extends ItemSectionMixin(LitElement
|
|
20
|
+
let AtomicProductSectionName = class AtomicProductSectionName extends ItemSectionMixin(LitElement, css`/*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */
|
|
21
|
+
atomic-product-section-name{&.with-sections{text-overflow:ellipsis;overflow:hidden}&.with-sections{color:var(--atomic-on-background);--font-size:var(--atomic-text-xl);font-size:var(--font-size);--line-height:calc(var(--font-size)*var(--atomic-line-height-ratio));line-height:var(--line-height);grid-area:title;&.density-comfortable{--font-size:var(--atomic-text-2xl);font-size:var(--font-size);--line-height:calc(var(--font-size)*var(--atomic-line-height-ratio));line-height:var(--line-height)}@media (width>=1024px){&.display-grid{word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@media not all and (width>=1024px){&.display-list{--font-size:var(--atomic-text-xl);font-size:var(--font-size);--line-height:calc(var(--font-size)*var(--atomic-line-height-ratio));line-height:var(--line-height)}&.display-grid{&.image-large{--font-size:var(--atomic-text-xl);font-size:var(--font-size);--line-height:calc(var(--font-size)*var(--atomic-line-height-ratio));line-height:var(--line-height)}&.image-small,&.image-icon,&.image-none{--font-size:var(--atomic-text-lg);font-size:var(--font-size);--line-height:calc(var(--font-size)*var(--atomic-line-height-ratio));line-height:var(--line-height);-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:3rem;display:-webkit-box;overflow:hidden}}}}& .with-sections{&.display-grid{min-height:calc(var(--line-height)*2);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}}`) {
|
|
21
22
|
};
|
|
22
23
|
AtomicProductSectionName = __decorate([
|
|
23
24
|
customElement('atomic-product-section-name')
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { LitElement } from 'lit';
|
|
7
|
+
import { css, LitElement } from 'lit';
|
|
8
8
|
import { customElement, property } from 'lit/decorators.js';
|
|
9
9
|
import { ItemSectionMixin } from "../../../mixins/item-section-mixin";
|
|
10
10
|
/**
|
|
@@ -18,10 +18,11 @@ import { ItemSectionMixin } from "../../../mixins/item-section-mixin";
|
|
|
18
18
|
*
|
|
19
19
|
* @slot default - The image to display.
|
|
20
20
|
*/
|
|
21
|
-
let AtomicProductSectionVisual = class AtomicProductSectionVisual extends ItemSectionMixin(LitElement
|
|
21
|
+
let AtomicProductSectionVisual = class AtomicProductSectionVisual extends ItemSectionMixin(LitElement, css`/*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */
|
|
22
|
+
atomic-product-section-visual{&.with-sections{text-overflow:ellipsis;overflow:hidden}&.with-sections{grid-area:visual;&.image-icon{border-radius:var(--atomic-border-radius);width:2rem;height:2rem}&.image-none{display:none}@media (width>=1024px){&.display-list{margin-right:1rem;&.density-comfortable{margin-right:1.5rem}&.image-large{&.density-compact{width:10rem;height:10rem}&.density-comfortable,&.density-normal{width:20.375rem;height:20.375rem}}&.image-small{width:10rem;height:10rem}}&.display-grid{margin-bottom:.5rem;&.image-large,&.image-small{width:100%;&.density-comfortable{margin:0 auto 2rem}&.density-normal{margin:0 auto 1.5rem}&.density-compact{margin:0 auto 1rem}}&.image-large{aspect-ratio:1;height:auto;@supports not (aspect-ratio:1 / 1){&{height:19.75rem}}}&.image-small{aspect-ratio:1;height:auto;@supports not (aspect-ratio:1 / 1){&{height:14rem}}}}}@media not all and (width>=1024px){&.display-list{margin-right:1rem;&.image-large{aspect-ratio:1;width:100%;height:auto;margin-bottom:1rem;margin-right:0;@supports not (aspect-ratio:1 / 1){&{height:7.25rem}}}&.image-small{width:24vw;height:24vw;margin-bottom:1rem}&.image-icon{margin-bottom:0}}&.display-grid{&.image-large{margin-right:1rem;&.image-large{aspect-ratio:1;width:100%;height:auto;margin-bottom:1rem;margin-right:0;@supports not (aspect-ratio:1 / 1){&{height:7.25rem}}}&.image-small{width:24vw;height:24vw;margin-bottom:1rem}&.image-icon{margin-bottom:0}}&.image-small,&.image-icon,&.image-none{&.image-large,&.image-small{width:100%;&.density-comfortable{margin-bottom:1rem}&.density-normal{margin-bottom:.75rem}&.density-compact{margin-bottom:.5rem}}&.image-small{aspect-ratio:1;width:10.25rem;height:10.25rem;@supports not (aspect-ratio:1 / 1){&{height:9rem}}}}}}&.display-table{margin-right:1rem;&.density-comfortable{margin-right:1.5rem}&.image-large{&.density-compact{width:10rem;height:10rem}&.density-comfortable,&.density-normal{width:20.375rem;height:20.375rem}}&.image-small{width:10rem;height:10rem}}}& .with-sections{&.image-icon{& atomic-product-image::part(previous-button),& atomic-product-image::part(next-button),& atomic-product-image::part(indicator){display:none}}}}`) {
|
|
22
23
|
};
|
|
23
24
|
__decorate([
|
|
24
|
-
property({ reflect: true, attribute: 'image-size' })
|
|
25
|
+
property({ reflect: true, attribute: 'image-size', type: Object })
|
|
25
26
|
], AtomicProductSectionVisual.prototype, "imageSize", void 0);
|
|
26
27
|
AtomicProductSectionVisual = __decorate([
|
|
27
28
|
customElement('atomic-product-section-visual')
|
package/dist/atomic/components/components/commerce/atomic-product-text/atomic-product-text.js
CHANGED
|
@@ -17,11 +17,12 @@ import { getFieldValueCaption } from '../../../utils/field-utils';
|
|
|
17
17
|
import { renderItemTextFallback } from '../../common/item-text/item-text-fallback.js';
|
|
18
18
|
import { renderItemTextHighlighted } from '../../common/item-text/item-text-highlighted.js';
|
|
19
19
|
import '../atomic-commerce-text/atomic-commerce-text';
|
|
20
|
+
import { LightDomMixin } from "../../../mixins/light-dom";
|
|
20
21
|
import { getStringValueFromProductOrNull } from '../product-template-component-utils/product-utils.js';
|
|
21
22
|
/**
|
|
22
23
|
* The `atomic-product-text` component renders the value of a string field for a given product.
|
|
23
24
|
*/
|
|
24
|
-
let AtomicProductText = class AtomicProductText extends LitElement {
|
|
25
|
+
let AtomicProductText = class AtomicProductText extends LightDomMixin(LitElement) {
|
|
25
26
|
constructor() {
|
|
26
27
|
super(...arguments);
|
|
27
28
|
/**
|
|
@@ -37,9 +38,6 @@ let AtomicProductText = class AtomicProductText extends LitElement {
|
|
|
37
38
|
this.disableHighlight = false;
|
|
38
39
|
this.productController = createProductContextController(this);
|
|
39
40
|
}
|
|
40
|
-
createRenderRoot() {
|
|
41
|
-
return this;
|
|
42
|
-
}
|
|
43
41
|
initialize() {
|
|
44
42
|
if (!this.product && this.productController.item) {
|
|
45
43
|
this.product = this.productController.item;
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { html, LitElement } from 'lit';
|
|
8
8
|
import { customElement, state } from 'lit/decorators.js';
|
|
9
9
|
import { styleMap } from 'lit/directives/style-map.js';
|
|
10
|
+
import { LightDomMixin } from "../../../mixins/light-dom";
|
|
10
11
|
import { buildDebouncedQueue } from '../../../utils/debounce-utils';
|
|
11
12
|
import { randomID } from '../../../utils/utils';
|
|
12
13
|
/**
|
|
@@ -14,7 +15,7 @@ import { randomID } from '../../../utils/utils';
|
|
|
14
15
|
*
|
|
15
16
|
* @event atomic/accessibility/findAriaLive - Dispatches an event to find the `atomic-aria-live` element.
|
|
16
17
|
*/
|
|
17
|
-
let AtomicAriaLive = class AtomicAriaLive extends LitElement {
|
|
18
|
+
let AtomicAriaLive = class AtomicAriaLive extends LightDomMixin(LitElement) {
|
|
18
19
|
constructor() {
|
|
19
20
|
super(...arguments);
|
|
20
21
|
this.regions = {};
|
|
@@ -24,9 +25,6 @@ let AtomicAriaLive = class AtomicAriaLive extends LitElement {
|
|
|
24
25
|
customEvent.detail.element = this;
|
|
25
26
|
};
|
|
26
27
|
}
|
|
27
|
-
createRenderRoot() {
|
|
28
|
-
return this;
|
|
29
|
-
}
|
|
30
28
|
connectedCallback() {
|
|
31
29
|
super.connectedCallback();
|
|
32
30
|
this.ariaLiveId = randomID('atomic-aria-live-');
|
package/dist/atomic/components/components/common/atomic-facet-date-input/atomic-facet-date-input.js
CHANGED
|
@@ -13,7 +13,7 @@ import { renderButton } from "../button";
|
|
|
13
13
|
import { bindingGuard } from "../../../decorators/binding-guard";
|
|
14
14
|
import { bindings } from "../../../decorators/bindings";
|
|
15
15
|
import { errorGuard } from "../../../decorators/error-guard";
|
|
16
|
-
import {
|
|
16
|
+
import { LightDomMixin } from "../../../mixins/light-dom";
|
|
17
17
|
import { parseDate } from "../../../utils/date-utils";
|
|
18
18
|
/**
|
|
19
19
|
* Internal component made to be integrated in a TimeframeFacet.
|
|
@@ -23,7 +23,7 @@ import { parseDate } from "../../../utils/date-utils";
|
|
|
23
23
|
*
|
|
24
24
|
* @internal
|
|
25
25
|
*/
|
|
26
|
-
let AtomicFacetDateInput = class AtomicFacetDateInput extends LitElement {
|
|
26
|
+
let AtomicFacetDateInput = class AtomicFacetDateInput extends LightDomMixin(LitElement) {
|
|
27
27
|
constructor() {
|
|
28
28
|
super(...arguments);
|
|
29
29
|
this.startRef = createRef();
|
|
@@ -41,9 +41,6 @@ let AtomicFacetDateInput = class AtomicFacetDateInput extends LitElement {
|
|
|
41
41
|
? parseDate(this.inputRange.end).toDate()
|
|
42
42
|
: undefined;
|
|
43
43
|
}
|
|
44
|
-
createRenderRoot() {
|
|
45
|
-
return this;
|
|
46
|
-
}
|
|
47
44
|
/**
|
|
48
45
|
* Validates that this component is only used within an atomic-commerce-timeframe-facet.
|
|
49
46
|
* This is an internal component and should not be used directly by consumers.
|
|
@@ -220,7 +217,6 @@ __decorate([
|
|
|
220
217
|
], AtomicFacetDateInput.prototype, "render", null);
|
|
221
218
|
AtomicFacetDateInput = __decorate([
|
|
222
219
|
customElement('atomic-facet-date-input'),
|
|
223
|
-
bindings()
|
|
224
|
-
withTailwindStyles
|
|
220
|
+
bindings()
|
|
225
221
|
], AtomicFacetDateInput);
|
|
226
222
|
export { AtomicFacetDateInput };
|
|
@@ -11,9 +11,9 @@ import { guard } from 'lit/directives/guard.js';
|
|
|
11
11
|
import { unsafeSVG } from 'lit/directives/unsafe-svg.js';
|
|
12
12
|
import { bindingGuard } from "../../../decorators/binding-guard";
|
|
13
13
|
import { errorGuard } from "../../../decorators/error-guard";
|
|
14
|
-
import { injectStylesForNoShadowDOM } from "../../../decorators/inject-styles-for-no-shadow-dom";
|
|
15
14
|
import { watch } from "../../../decorators/watch";
|
|
16
15
|
import { InitializeBindingsMixin } from "../../../mixins/bindings-mixin";
|
|
16
|
+
import { LightDomMixin } from "../../../mixins/light-dom";
|
|
17
17
|
import { parseAssetURL } from "../../../utils/asset-path-utils";
|
|
18
18
|
class IconFetchError extends Error {
|
|
19
19
|
static fromStatusCode(url, statusCode, statusText) {
|
|
@@ -33,7 +33,7 @@ class IconFetchError extends Error {
|
|
|
33
33
|
*
|
|
34
34
|
* This component can display an icon from those available in the Atomic package, from a specific location, or as an inline SVG element.
|
|
35
35
|
*/
|
|
36
|
-
let AtomicIcon = class AtomicIcon extends InitializeBindingsMixin(LitElement) {
|
|
36
|
+
let AtomicIcon = class AtomicIcon extends LightDomMixin(InitializeBindingsMixin(LitElement)) {
|
|
37
37
|
constructor() {
|
|
38
38
|
super(...arguments);
|
|
39
39
|
this.svg = null;
|
|
@@ -108,7 +108,6 @@ __decorate([
|
|
|
108
108
|
errorGuard()
|
|
109
109
|
], AtomicIcon.prototype, "render", null);
|
|
110
110
|
AtomicIcon = __decorate([
|
|
111
|
-
customElement('atomic-icon')
|
|
112
|
-
injectStylesForNoShadowDOM
|
|
111
|
+
customElement('atomic-icon')
|
|
113
112
|
], AtomicIcon);
|
|
114
113
|
export { AtomicIcon };
|
package/dist/atomic/components/components/common/atomic-layout-section/atomic-layout-section.js
CHANGED
|
@@ -6,15 +6,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { LitElement } from 'lit';
|
|
8
8
|
import { customElement, property } from 'lit/decorators.js';
|
|
9
|
+
import { LightDomMixin } from "../../../mixins/light-dom";
|
|
9
10
|
/**
|
|
10
11
|
* The `atomic-layout-section` lets you identify various sections for the related `atomic-search-layout` or `atomic-commerce-layout` component.
|
|
11
12
|
*
|
|
12
13
|
* @slot default - The default slot where you can add child components to the section.
|
|
13
14
|
*/
|
|
14
|
-
let AtomicLayoutSection = class AtomicLayoutSection extends LitElement {
|
|
15
|
-
createRenderRoot() {
|
|
16
|
-
return this;
|
|
17
|
-
}
|
|
15
|
+
let AtomicLayoutSection = class AtomicLayoutSection extends LightDomMixin(LitElement) {
|
|
18
16
|
};
|
|
19
17
|
__decorate([
|
|
20
18
|
property({ type: String, reflect: true })
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
const styles = css`/*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */
|
|
3
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}:host{& [part~=outline][part~=result-list-grid-clickable-container]{border:1px solid #0000;border-radius:1rem;padding:1rem;transition:all .12s ease-out;position:relative;&:hover{border-style:var(--tw-border-style);border-width:1px;border-color:var(--atomic-neutral);box-shadow:0px 10px 25px var(--atomic-neutral);cursor:pointer}}& [part=result-list-grid-clickable]:focus-visible{border-style:var(--tw-border-style);border-width:2px;border-color:var(--atomic-primary);color:var(--atomic-primary);cursor:pointer;text-align:center;border-radius:2px;text-decoration:underline;display:inline-block;position:absolute}& [part=result-list-grid-clickable]:not(:focus){clip:rect(1px,1px,1px,1px);padding:0;position:absolute;overflow:hidden}& .list-wrapper{word-break:break-word}& .list-root.display-grid{justify-content:space-evenly;display:grid;& .result-component{box-sizing:border-box;height:100%}}& .list-root.display-grid{@media (width>=1024px){&{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}&.density-comfortable{grid-row-gap:4rem;grid-column-gap:1.5rem}&.density-normal,&.density-compact{grid-row-gap:3rem;grid-column-gap:1.5rem}&.image-large{grid-template-columns:repeat(auto-fill,minmax(19rem,1fr))}&.image-small{@media not all and (width>=1024px){&{grid-template-columns:repeat(3,1fr)}}@media (width>=1024px){&{grid-template-columns:repeat(3,1fr)}}@media (width>=1280px){&{grid-template-columns:repeat(4,1fr)}}}}}& .list-root.display-grid{@media not all and (width>=1024px){&.image-large{@media not all and (width>=768px){&{grid-template-columns:minmax(auto,35rem)}&.density-comfortable{& [part~=outline]{&:before{margin:2rem 0}}}&.density-normal{& [part~=outline]{&:before{margin:1.5rem 0}}@media not all and (width>=1024px){& [part~=outline]{&:before{margin:1.75rem 0}}}}&.density-compact{& [part~=outline]{&:before{margin:1rem 0}}@media not all and (width>=1024px){& [part~=outline]{&:before{margin:1.5rem 0}}}}& [part~=outline]{&:before{content:" ";background-color:var(--atomic-neutral);height:1px;display:block}&:first-of-type:before{display:none}}& atomic-result-placeholder{&:before{background-color:#0000}}}@media (width>=768px){&{grid-column-gap:.5rem;grid-row-gap:.5rem;grid-template-columns:1fr 1fr}& [part~=outline]{border-style:var(--tw-border-style);border-width:1px;border-color:var(--atomic-neutral);border-radius:1rem;padding:1rem}& atomic-result-placeholder{border-color:#0000}}}&.image-small,&.image-icon,&.image-none{grid-column-gap:.5rem;grid-row-gap:.5rem;& [part~=outline]{border-style:var(--tw-border-style);border-width:1px;border-color:var(--atomic-neutral);border-radius:1rem;padding:1rem}& atomic-result-placeholder{border-color:#0000}@media not all and (width>=640px){&{grid-template-columns:minmax(0,1fr)}}@media (width>=768px){&{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media (width>=1024px){&{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}}}}}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}`;
|
|
4
|
+
export default styles;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
const styles = css`/*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */
|
|
3
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}[part~=divider]{margin-bottom:1rem;&:not(:last-child){border-bottom-color:var(--atomic-neutral);padding-bottom:1rem}}.list-root.display-list{flex-direction:column;display:flex;& .result-component,& atomic-result-placeholder{width:auto}@media (width>=1024px){&.density-comfortable{& [part~=outline]{&:before{margin:2rem 0}}}&.density-normal{& [part~=outline]{&:before{margin:1.5rem 0}}@media not all and (width>=1024px){& [part~=outline]{&:before{margin:1.75rem 0}}}}&.density-compact{& [part~=outline]{&:before{margin:1rem 0}}@media not all and (width>=1024px){& [part~=outline]{&:before{margin:1.5rem 0}}}}& [part~=outline]{&:before{content:" ";background-color:var(--atomic-neutral);height:1px;display:block}&:first-of-type:before{display:none}}& atomic-result-placeholder{&:before{background-color:#0000}}}@media not all and (width>=1024px){&.image-large{grid-template-columns:minmax(auto,35rem);justify-content:space-evenly;display:grid;&.density-comfortable{& [part~=outline]{&:before{margin:2rem 0}}}&.density-normal{& [part~=outline]{&:before{margin:1.5rem 0}}@media not all and (width>=1024px){& [part~=outline]{&:before{margin:1.75rem 0}}}}&.density-compact{& [part~=outline]{&:before{margin:1rem 0}}@media not all and (width>=1024px){& [part~=outline]{&:before{margin:1.5rem 0}}}}& [part~=outline]{&:before{content:" ";background-color:var(--atomic-neutral);height:1px;display:block}&:first-of-type:before{display:none}}& atomic-result-placeholder{&:before{background-color:#0000}}}&.image-small,&.image-icon,&.image-none{grid-row-gap:1rem;& [part~=outline]{border-style:var(--tw-border-style);border-width:1px;border-color:var(--atomic-neutral);border-radius:1rem;padding:1rem}& atomic-result-placeholder{border-color:#0000}}}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}`;
|
|
4
|
+
export default styles;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
const styles = css`.list-wrapper.placeholder{& .result-component,& table.list-root{display:none}}.list-wrapper:not(.placeholder){& atomic-result-placeholder,& atomic-result-table-placeholder{display:none}}.list-root.loading{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes pulse{0%,to{opacity:.6}50%{opacity:.2}}`;
|
|
3
|
+
export default styles;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
const styles = css`/*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */
|
|
3
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid}}}.list-wrapper.display-table{display:grid;overflow-x:auto}.list-root.display-table{border-spacing:0;border-collapse:separate;min-width:100%;& th,& td{border-style:var(--tw-border-style);border-width:1px;border-color:var(--atomic-neutral);font-family:var(--atomic-font-family);font-size:var(--atomic-text-sm);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)));white-space:nowrap;line-height:1rem;&:not(:first-child){border-left:none}&:first-child{min-width:19rem}}& th{background-color:var(--atomic-neutral-light);color:#000;padding:1rem var(--padding);text-align:left;border-bottom:none;font-weight:700;&:first-child{border-top-left-radius:var(--atomic-border-radius-xl)}&:last-child{border-top-right-radius:var(--atomic-border-radius-xl)}}& td{color:var(--atomic-neutral-dark);vertical-align:top;padding:var(--padding);border-top:none}&.density-comfortable{--padding:2rem}&.density-normal{--padding:1.5rem}&.density-compact{--padding:1rem}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}`;
|
|
4
|
+
export default styles;
|
package/dist/atomic/components/components/search/atomic-search-layout/atomic-search-layout.js
CHANGED
|
@@ -6,8 +6,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { LitElement, unsafeCSS } from 'lit';
|
|
8
8
|
import { customElement, property, state } from 'lit/decorators.js';
|
|
9
|
-
import { injectStylesForNoShadowDOM } from "../../../decorators/inject-styles-for-no-shadow-dom";
|
|
10
9
|
import { ChildrenUpdateCompleteMixin } from "../../../mixins/children-update-complete-mixin";
|
|
10
|
+
import { LightDomMixin } from "../../../mixins/light-dom";
|
|
11
11
|
import { randomID } from "../../../utils/utils";
|
|
12
12
|
import { DEFAULT_MOBILE_BREAKPOINT } from '../../../utils/replace-breakpoint';
|
|
13
13
|
import styles from './atomic-search-layout.tw.css';
|
|
@@ -19,7 +19,7 @@ import { buildSearchLayout } from './search-layout';
|
|
|
19
19
|
* @cssprop --atomic-layout-max-search-box-double-suggestions-width: The maximum width that the search box suggestions will take when displaying a double list.
|
|
20
20
|
* @cssprop --atomic-layout-search-box-left-suggestions-width: The width of the left list when displaying a double list.
|
|
21
21
|
*/
|
|
22
|
-
let AtomicSearchLayout = class AtomicSearchLayout extends ChildrenUpdateCompleteMixin(LitElement) {
|
|
22
|
+
let AtomicSearchLayout = class AtomicSearchLayout extends LightDomMixin(ChildrenUpdateCompleteMixin(LitElement)) {
|
|
23
23
|
constructor() {
|
|
24
24
|
super(...arguments);
|
|
25
25
|
/**
|
|
@@ -28,13 +28,14 @@ let AtomicSearchLayout = class AtomicSearchLayout extends ChildrenUpdateComplete
|
|
|
28
28
|
*/
|
|
29
29
|
this.mobileBreakpoint = DEFAULT_MOBILE_BREAKPOINT;
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
await
|
|
33
|
-
|
|
31
|
+
async addStyles() {
|
|
32
|
+
await this.getUpdateComplete();
|
|
33
|
+
this.injectStyles(unsafeCSS(buildSearchLayout(this, this.mobileBreakpoint)));
|
|
34
34
|
}
|
|
35
35
|
connectedCallback() {
|
|
36
36
|
super.connectedCallback();
|
|
37
37
|
this.id = randomID('atomic-search-layout-');
|
|
38
|
+
this.addStyles();
|
|
38
39
|
}
|
|
39
40
|
};
|
|
40
41
|
AtomicSearchLayout.styles = [styles];
|
|
@@ -45,7 +46,6 @@ __decorate([
|
|
|
45
46
|
property({ type: String, reflect: true, attribute: 'mobile-breakpoint' })
|
|
46
47
|
], AtomicSearchLayout.prototype, "mobileBreakpoint", void 0);
|
|
47
48
|
AtomicSearchLayout = __decorate([
|
|
48
|
-
customElement('atomic-search-layout')
|
|
49
|
-
injectStylesForNoShadowDOM
|
|
49
|
+
customElement('atomic-search-layout')
|
|
50
50
|
], AtomicSearchLayout);
|
|
51
51
|
export { AtomicSearchLayout };
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { hideEmptySection } from "../utils/item-section-utils";
|
|
8
|
-
import { injectStylesForNoShadowDOM } from '../decorators/inject-styles-for-no-shadow-dom.js';
|
|
1
|
+
import { hideEmptySection } from '../utils/item-section-utils.js';
|
|
2
|
+
import { LightDomMixin } from './light-dom.js';
|
|
9
3
|
/**
|
|
10
4
|
* Mixin for product section components that provides common functionality.
|
|
11
5
|
* All product section components extend LitElement and call hideEmptySection in updated().
|
|
@@ -15,14 +9,11 @@ import { injectStylesForNoShadowDOM } from '../decorators/inject-styles-for-no-s
|
|
|
15
9
|
* @returns A class that extends the superClass with product section functionality
|
|
16
10
|
*/
|
|
17
11
|
export function ItemSectionMixin(superClass, styles) {
|
|
18
|
-
|
|
12
|
+
class ProductSectionMixinClass extends LightDomMixin(superClass) {
|
|
19
13
|
updated() {
|
|
20
14
|
hideEmptySection(this);
|
|
21
15
|
}
|
|
22
|
-
}
|
|
16
|
+
}
|
|
23
17
|
ProductSectionMixinClass.styles = styles;
|
|
24
|
-
ProductSectionMixinClass = __decorate([
|
|
25
|
-
injectStylesForNoShadowDOM
|
|
26
|
-
], ProductSectionMixinClass);
|
|
27
18
|
return ProductSectionMixinClass;
|
|
28
19
|
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mixin that provides dynamic styles injection functionality for components that do not use Shadow DOM.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* class MyComponent extends LightDomMixin(LitElement) {
|
|
6
|
+
* static styles = css`div { color: blue; }`;
|
|
7
|
+
* render() { return html`<div>content</div>`; }
|
|
8
|
+
* }
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Automatically injects static styles from the component's `styles` property in `connectedCallback`
|
|
12
|
+
* - Exposes an `injectStyles` method that can be called manually with dynamic styles
|
|
13
|
+
* - Prevents duplicate style injection by checking for existing style sheets
|
|
14
|
+
* - Overrides `createRenderRoot` to return `this` (disabling Shadow DOM)
|
|
15
|
+
*
|
|
16
|
+
* @param superClass - The base class to extend (must be a LitElement constructor)
|
|
17
|
+
* @returns A class that extends the superClass with dynamic styles injection functionality
|
|
18
|
+
*/
|
|
19
|
+
export const LightDomMixin = (superClass) => {
|
|
20
|
+
class LightDomMixinClass extends superClass {
|
|
21
|
+
createRenderRoot() {
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
connectedCallback() {
|
|
25
|
+
super.connectedCallback();
|
|
26
|
+
this.injectStyles();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Injects styles into the document or shadow root.
|
|
30
|
+
*
|
|
31
|
+
* When called without arguments, injects the component's static styles.
|
|
32
|
+
* When called with dynamic styles, injects both static and dynamic styles.
|
|
33
|
+
*
|
|
34
|
+
* @param dynamicStyles - Optional dynamic styles to inject along with static styles
|
|
35
|
+
*/
|
|
36
|
+
async injectStyles(dynamicStyles) {
|
|
37
|
+
const parent = this.getRootNode();
|
|
38
|
+
const isDocumentOrShadowRoot = parent instanceof Document || parent instanceof ShadowRoot;
|
|
39
|
+
if (!isDocumentOrShadowRoot) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const constructorStyles = this.constructor.styles;
|
|
43
|
+
const staticStyles = Array.isArray(constructorStyles)
|
|
44
|
+
? constructorStyles
|
|
45
|
+
: [constructorStyles];
|
|
46
|
+
const dynamicStylesArray = Array.isArray(dynamicStyles)
|
|
47
|
+
? dynamicStyles
|
|
48
|
+
: [dynamicStyles];
|
|
49
|
+
const allStyles = [...staticStyles, ...dynamicStylesArray];
|
|
50
|
+
for (const style of allStyles) {
|
|
51
|
+
if (style) {
|
|
52
|
+
const styleSheet = this.getStyleSheet(style);
|
|
53
|
+
if (styleSheet && !parent.adoptedStyleSheets.includes(styleSheet)) {
|
|
54
|
+
parent.adoptedStyleSheets.push(styleSheet);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
getStyleSheet(style) {
|
|
60
|
+
if (style instanceof CSSStyleSheet) {
|
|
61
|
+
return style;
|
|
62
|
+
}
|
|
63
|
+
if (style && typeof style === 'object' && 'styleSheet' in style) {
|
|
64
|
+
return style.styleSheet;
|
|
65
|
+
}
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return LightDomMixinClass;
|
|
70
|
+
};
|