diff --git a/docs/src/content/docs/resources/changelog.md b/docs/src/content/docs/resources/changelog.md index 30b6577f3..4c5bd8d09 100644 --- a/docs/src/content/docs/resources/changelog.md +++ b/docs/src/content/docs/resources/changelog.md @@ -28,6 +28,7 @@ New versions of Web Awesome are released as-needed and generally occur when a cr - Added help text to `` [#1800] - Fixed a bug in `` that caused HTML tags to be included in `getTextLabel()` - Fixed a bug in `` that caused slides to not switch correctly [#1862] +- Refactored component styles to be consumed more efficiently [#1692] ## 2.13.1 diff --git a/scripts/plop/templates/component/component.hbs b/scripts/plop/templates/component/component.hbs index 19c862d18..557930665 100644 --- a/scripts/plop/templates/component/component.hbs +++ b/scripts/plop/templates/component/component.hbs @@ -24,7 +24,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty --example - An example CSS custom property. */ export default class {{ properCase tag }} extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; private readonly localize = new LocalizeController(this); diff --git a/scripts/plop/templates/component/styles.hbs b/scripts/plop/templates/component/styles.hbs index 1775f7f7e..940a1557b 100644 --- a/scripts/plop/templates/component/styles.hbs +++ b/scripts/plop/templates/component/styles.hbs @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: block; } diff --git a/src/components/alert/alert.component.ts b/src/components/alert/alert.component.ts index 5d2cd5842..db20707d5 100644 --- a/src/components/alert/alert.component.ts +++ b/src/components/alert/alert.component.ts @@ -7,6 +7,7 @@ import { LocalizeController } from '../../utilities/localize.js'; import { property, query } from 'lit/decorators.js'; import { waitForEvent } from '../../internal/event.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './alert.styles.js'; import WaIconButton from '../icon-button/icon-button.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -50,7 +51,7 @@ const toastStack = Object.assign(document.createElement('div'), { className: 'wa * @animation alert.hide - The animation to use when hiding the alert. */ export default class WaAlert extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon-button': WaIconButton }; private autoHideTimeout: number; diff --git a/src/components/alert/alert.styles.ts b/src/components/alert/alert.styles.ts index 8fead064a..f986be9fb 100644 --- a/src/components/alert/alert.styles.ts +++ b/src/components/alert/alert.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --border-radius: var(--wa-panel-corners); --border-style: var(--wa-panel-border-style); diff --git a/src/components/animated-image/animated-image.component.ts b/src/components/animated-image/animated-image.component.ts index 184eb1a42..18cffa6a8 100644 --- a/src/components/animated-image/animated-image.component.ts +++ b/src/components/animated-image/animated-image.component.ts @@ -1,6 +1,7 @@ import { html } from 'lit'; import { property, query, state } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './animated-image.styles.js'; import WaIcon from '../icon/icon.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -26,7 +27,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty --icon-size - The size of the play/pause icons. */ export default class WaAnimatedImage extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon': WaIcon }; @query('.animated-image__animated') animatedImage: HTMLImageElement; diff --git a/src/components/animated-image/animated-image.styles.ts b/src/components/animated-image/animated-image.styles.ts index 612efde4c..e8caae52c 100644 --- a/src/components/animated-image/animated-image.styles.ts +++ b/src/components/animated-image/animated-image.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --control-box-size: 3rem; --icon-size: calc(var(--control-box-size) * 0.625); diff --git a/src/components/animation/animation.component.ts b/src/components/animation/animation.component.ts index 506002ad5..208f33cb6 100644 --- a/src/components/animation/animation.component.ts +++ b/src/components/animation/animation.component.ts @@ -2,6 +2,7 @@ import { animations } from './animations.js'; import { html } from 'lit'; import { property, queryAsync } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './animation.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -20,7 +21,7 @@ import type { CSSResultGroup } from 'lit'; * animate multiple elements, either wrap them in a single container or use multiple `` elements. */ export default class WaAnimation extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; private animation?: Animation; private hasStarted = false; diff --git a/src/components/animation/animation.styles.ts b/src/components/animation/animation.styles.ts index 674851eea..1ef4bf6f3 100644 --- a/src/components/animation/animation.styles.ts +++ b/src/components/animation/animation.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: contents; } diff --git a/src/components/avatar/avatar.component.ts b/src/components/avatar/avatar.component.ts index ea0cec927..6d0e367d2 100644 --- a/src/components/avatar/avatar.component.ts +++ b/src/components/avatar/avatar.component.ts @@ -2,6 +2,7 @@ import { classMap } from 'lit/directives/class-map.js'; import { html } from 'lit'; import { property, state } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './avatar.styles.js'; import WaIcon from '../icon/icon.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -25,7 +26,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty --size - The size of the avatar. */ export default class WaAvatar extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon': WaIcon }; diff --git a/src/components/avatar/avatar.styles.ts b/src/components/avatar/avatar.styles.ts index 462f5af7f..e83f6d9c1 100644 --- a/src/components/avatar/avatar.styles.ts +++ b/src/components/avatar/avatar.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: inline-block; diff --git a/src/components/badge/badge.component.ts b/src/components/badge/badge.component.ts index 53c967c99..baca53bb4 100644 --- a/src/components/badge/badge.component.ts +++ b/src/components/badge/badge.component.ts @@ -1,6 +1,7 @@ import { classMap } from 'lit/directives/class-map.js'; import { html } from 'lit'; import { property } from 'lit/decorators.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './badge.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -23,7 +24,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty --content-color - The color of the badge's content. */ export default class WaBadge extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; /** The badge's theme variant. */ @property({ reflect: true }) variant: 'brand' | 'success' | 'neutral' | 'warning' | 'danger' = 'brand'; diff --git a/src/components/badge/badge.styles.ts b/src/components/badge/badge.styles.ts index 978cbd687..fa72446b9 100644 --- a/src/components/badge/badge.styles.ts +++ b/src/components/badge/badge.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --border-color: var(--wa-color-surface-default); --border-radius: var(--wa-corners-xs); diff --git a/src/components/breadcrumb-item/breadcrumb-item.component.ts b/src/components/breadcrumb-item/breadcrumb-item.component.ts index be215e1fc..20fbf71c6 100644 --- a/src/components/breadcrumb-item/breadcrumb-item.component.ts +++ b/src/components/breadcrumb-item/breadcrumb-item.component.ts @@ -3,6 +3,7 @@ import { HasSlotController } from '../../internal/slot.js'; import { html } from 'lit'; import { ifDefined } from 'lit/directives/if-defined.js'; import { property } from 'lit/decorators.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './breadcrumb-item.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -26,7 +27,7 @@ import type { CSSResultGroup } from 'lit'; * @csspart separator - The container that wraps the separator. */ export default class WaBreadcrumbItem extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; private readonly hasSlotController = new HasSlotController(this, 'prefix', 'suffix'); diff --git a/src/components/breadcrumb-item/breadcrumb-item.styles.ts b/src/components/breadcrumb-item/breadcrumb-item.styles.ts index a409c6865..1896e08f8 100644 --- a/src/components/breadcrumb-item/breadcrumb-item.styles.ts +++ b/src/components/breadcrumb-item/breadcrumb-item.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: inline-flex; } diff --git a/src/components/breadcrumb/breadcrumb.component.ts b/src/components/breadcrumb/breadcrumb.component.ts index 7f42ac8be..aa69d8ff4 100644 --- a/src/components/breadcrumb/breadcrumb.component.ts +++ b/src/components/breadcrumb/breadcrumb.component.ts @@ -1,6 +1,7 @@ import { html } from 'lit'; import { LocalizeController } from '../../utilities/localize.js'; import { property, query } from 'lit/decorators.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './breadcrumb.styles.js'; import WaIcon from '../icon/icon.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -21,7 +22,7 @@ import type WaBreadcrumbItem from '../breadcrumb-item/breadcrumb-item.js'; * @csspart base - The component's base wrapper. */ export default class WaBreadcrumb extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon': WaIcon }; private readonly localize = new LocalizeController(this); diff --git a/src/components/breadcrumb/breadcrumb.styles.ts b/src/components/breadcrumb/breadcrumb.styles.ts index 8974f84ad..86c0e16e0 100644 --- a/src/components/breadcrumb/breadcrumb.styles.ts +++ b/src/components/breadcrumb/breadcrumb.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - .breadcrumb { display: flex; align-items: center; diff --git a/src/components/button-group/button-group.component.ts b/src/components/button-group/button-group.component.ts index f1235a905..446bc1168 100644 --- a/src/components/button-group/button-group.component.ts +++ b/src/components/button-group/button-group.component.ts @@ -1,5 +1,6 @@ import { html } from 'lit'; import { property, query, state } from 'lit/decorators.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './button-group.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -15,7 +16,7 @@ import type { CSSResultGroup } from 'lit'; * @csspart base - The component's base wrapper. */ export default class WaButtonGroup extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; @query('slot') defaultSlot: HTMLSlotElement; diff --git a/src/components/button-group/button-group.styles.ts b/src/components/button-group/button-group.styles.ts index 868f5a838..89e6de8d6 100644 --- a/src/components/button-group/button-group.styles.ts +++ b/src/components/button-group/button-group.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: inline-block; } diff --git a/src/components/button/button.component.ts b/src/components/button/button.component.ts index d83e1e7e7..5d43ada2b 100644 --- a/src/components/button/button.component.ts +++ b/src/components/button/button.component.ts @@ -6,6 +6,7 @@ import { ifDefined } from 'lit/directives/if-defined.js'; import { LocalizeController } from '../../utilities/localize.js'; import { property, query, state } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './button.styles.js'; import WaIcon from '../icon/icon.component.js'; import WaSpinner from '../spinner/spinner.component.js'; @@ -53,7 +54,7 @@ import type { WebAwesomeFormControl } from '../../internal/webawesome-element.js * @cssproperty --label-color-hover - The color of the button's label on hover. */ export default class WaButton extends WebAwesomeElement implements WebAwesomeFormControl { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon': WaIcon, 'wa-spinner': WaSpinner diff --git a/src/components/button/button.styles.ts b/src/components/button/button.styles.ts index e76a3922a..303fb1a9d 100644 --- a/src/components/button/button.styles.ts +++ b/src/components/button/button.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --border-radius: var(--wa-form-controls-corners); --border-style: var(--wa-border-style); diff --git a/src/components/card/card.component.ts b/src/components/card/card.component.ts index 151887df3..c707487e8 100644 --- a/src/components/card/card.component.ts +++ b/src/components/card/card.component.ts @@ -1,6 +1,7 @@ import { classMap } from 'lit/directives/class-map.js'; import { HasSlotController } from '../../internal/slot.js'; import { html } from 'lit'; +import componentStyles from '../../styles/component.styles.js'; import styles from './card.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -31,7 +32,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty --padding - The padding for each section in the card. Expects a single value. */ export default class WaCard extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; private readonly hasSlotController = new HasSlotController(this, 'footer', 'header', 'image'); diff --git a/src/components/card/card.styles.ts b/src/components/card/card.styles.ts index 4222d85fd..d747e53c2 100644 --- a/src/components/card/card.styles.ts +++ b/src/components/card/card.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --background: var(--wa-color-surface-default); --border-color: var(--wa-color-surface-border); diff --git a/src/components/carousel-item/carousel-item.component.ts b/src/components/carousel-item/carousel-item.component.ts index 8b173818c..9d8d85574 100644 --- a/src/components/carousel-item/carousel-item.component.ts +++ b/src/components/carousel-item/carousel-item.component.ts @@ -1,4 +1,5 @@ import { html } from 'lit'; +import componentStyles from '../../styles/component.styles.js'; import styles from './carousel-item.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -15,7 +16,7 @@ import type { CSSResultGroup } from 'lit'; * */ export default class WaCarouselItem extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; connectedCallback() { super.connectedCallback(); diff --git a/src/components/carousel-item/carousel-item.styles.ts b/src/components/carousel-item/carousel-item.styles.ts index 4a5053746..11e07af3c 100644 --- a/src/components/carousel-item/carousel-item.styles.ts +++ b/src/components/carousel-item/carousel-item.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --aspect-ratio: inherit; diff --git a/src/components/carousel/carousel.component.ts b/src/components/carousel/carousel.component.ts index 4a8671649..a68ab9808 100644 --- a/src/components/carousel/carousel.component.ts +++ b/src/components/carousel/carousel.component.ts @@ -11,6 +11,7 @@ import { prefersReducedMotion } from '../../internal/animate.js'; import { range } from 'lit/directives/range.js'; import { waitForEvent } from '../../internal/event.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './carousel.styles.js'; import WaIcon from '../icon/icon.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -47,7 +48,7 @@ import type WaCarouselItem from '../carousel-item/carousel-item.component.js'; * partially visible as a scroll hint. */ export default class SlCarousel extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon': WaIcon }; /** When set, allows the user to navigate the carousel in the same direction indefinitely. */ diff --git a/src/components/carousel/carousel.styles.ts b/src/components/carousel/carousel.styles.ts index 1885a8747..f75510c70 100644 --- a/src/components/carousel/carousel.styles.ts +++ b/src/components/carousel/carousel.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --aspect-ratio: 16 / 9; --navigation-color: var(--wa-color-text-quiet); diff --git a/src/components/checkbox/checkbox.component.ts b/src/components/checkbox/checkbox.component.ts index 8bc26b437..6167c6de8 100644 --- a/src/components/checkbox/checkbox.component.ts +++ b/src/components/checkbox/checkbox.component.ts @@ -7,6 +7,7 @@ import { ifDefined } from 'lit/directives/if-defined.js'; import { live } from 'lit/directives/live.js'; import { property, query, state } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './checkbox.styles.js'; import WaIcon from '../icon/icon.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -51,7 +52,7 @@ import type { WebAwesomeFormControl } from '../../internal/webawesome-element.js */ export default class WaCheckbox extends WebAwesomeElement implements WebAwesomeFormControl { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon': WaIcon }; private readonly formControlController = new FormControlController(this, { diff --git a/src/components/checkbox/checkbox.styles.ts b/src/components/checkbox/checkbox.styles.ts index 200521012..d162e3785 100644 --- a/src/components/checkbox/checkbox.styles.ts +++ b/src/components/checkbox/checkbox.styles.ts @@ -1,11 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; -import formControlStyles from '../../styles/form-control.styles.js'; export default css` - ${componentStyles} - ${formControlStyles} - :host { --background: var(--wa-form-controls-background); --background-checked: var(--wa-form-controls-activated-color); diff --git a/src/components/color-picker/color-picker.component.ts b/src/components/color-picker/color-picker.component.ts index c0f781c60..2d1c6d921 100644 --- a/src/components/color-picker/color-picker.component.ts +++ b/src/components/color-picker/color-picker.component.ts @@ -10,6 +10,7 @@ import { property, query, state } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; import { TinyColor } from '@ctrl/tinycolor'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './color-picker.styles.js'; import WaButton from '../button/button.component.js'; import WaButtonGroup from '../button-group/button-group.component.js'; @@ -90,7 +91,7 @@ declare const EyeDropper: EyeDropperConstructor; * @cssproperty --swatch-size - The size of each predefined color swatch. */ export default class WaColorPicker extends WebAwesomeElement implements WebAwesomeFormControl { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-button-group': WaButtonGroup, diff --git a/src/components/color-picker/color-picker.styles.ts b/src/components/color-picker/color-picker.styles.ts index ec40840c6..5523113ed 100644 --- a/src/components/color-picker/color-picker.styles.ts +++ b/src/components/color-picker/color-picker.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --grid-width: 280px; --grid-height: 200px; diff --git a/src/components/copy-button/copy-button.component.ts b/src/components/copy-button/copy-button.component.ts index 683830608..375ee9b62 100644 --- a/src/components/copy-button/copy-button.component.ts +++ b/src/components/copy-button/copy-button.component.ts @@ -3,6 +3,7 @@ import { getAnimation, setDefaultAnimation } from '../../utilities/animation-reg import { html } from 'lit'; import { LocalizeController } from '../../utilities/localize.js'; import { property, query, state } from 'lit/decorators.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './copy-button.styles.js'; import WaIcon from '../icon/icon.component.js'; import WaTooltip from '../tooltip/tooltip.component.js'; @@ -41,7 +42,7 @@ import type { CSSResultGroup } from 'lit'; * @animation copy.out - The animation to use when feedback icons animate out. */ export default class WaCopyButton extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon': WaIcon, 'wa-tooltip': WaTooltip diff --git a/src/components/copy-button/copy-button.styles.ts b/src/components/copy-button/copy-button.styles.ts index 706768707..d50e3a268 100644 --- a/src/components/copy-button/copy-button.styles.ts +++ b/src/components/copy-button/copy-button.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --error-color: var(--wa-color-danger-spot); --success-color: var(--wa-color-success-spot); diff --git a/src/components/details/details.component.ts b/src/components/details/details.component.ts index f44735432..a4996bd22 100644 --- a/src/components/details/details.component.ts +++ b/src/components/details/details.component.ts @@ -6,6 +6,7 @@ import { LocalizeController } from '../../utilities/localize.js'; import { property, query } from 'lit/decorators.js'; import { waitForEvent } from '../../internal/event.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './details.styles.js'; import WaIcon from '../icon/icon.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -47,7 +48,7 @@ import type { CSSResultGroup } from 'lit'; * @animation details.hide - The animation to use when hiding details. You can use `height: auto` with this animation. */ export default class WaDetails extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon': WaIcon diff --git a/src/components/details/details.styles.ts b/src/components/details/details.styles.ts index d56478383..4f5e3242d 100644 --- a/src/components/details/details.styles.ts +++ b/src/components/details/details.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --background: var(--wa-color-surface-default); --border-color: var(--wa-color-surface-border); diff --git a/src/components/dialog/dialog.component.ts b/src/components/dialog/dialog.component.ts index 238af4360..b82585562 100644 --- a/src/components/dialog/dialog.component.ts +++ b/src/components/dialog/dialog.component.ts @@ -9,6 +9,7 @@ import { lockBodyScrolling, unlockBodyScrolling } from '../../internal/scroll.js import { property, query } from 'lit/decorators.js'; import { waitForEvent } from '../../internal/event.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import Modal from '../../internal/modal.js'; import styles from './dialog.styles.js'; import WaIconButton from '../icon-button/icon-button.component.js'; @@ -65,7 +66,7 @@ import type { CSSResultGroup } from 'lit'; * the third-party modal opens. Upon closing, call `modal.deactivateExternal()` to restore Shoelace's focus trapping. */ export default class WaDialog extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon-button': WaIconButton }; diff --git a/src/components/dialog/dialog.styles.ts b/src/components/dialog/dialog.styles.ts index 535d2580a..78a132639 100644 --- a/src/components/dialog/dialog.styles.ts +++ b/src/components/dialog/dialog.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --width: 31rem; --header-spacing: var(--wa-space-l); diff --git a/src/components/divider/divider.component.ts b/src/components/divider/divider.component.ts index 2f2a0848f..980c422ae 100644 --- a/src/components/divider/divider.component.ts +++ b/src/components/divider/divider.component.ts @@ -1,5 +1,6 @@ import { property } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './divider.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -15,7 +16,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty --spacing - The spacing of the divider. */ export default class WaDivider extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; /** Draws the divider in a vertical orientation. */ @property({ type: Boolean, reflect: true }) vertical = false; diff --git a/src/components/divider/divider.styles.ts b/src/components/divider/divider.styles.ts index c63238def..5ce40e283 100644 --- a/src/components/divider/divider.styles.ts +++ b/src/components/divider/divider.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --color: var(--wa-color-surface-border); --width: var(--wa-border-width-s); diff --git a/src/components/drawer/drawer.component.ts b/src/components/drawer/drawer.component.ts index 29f9b6f3f..46fd2da3e 100644 --- a/src/components/drawer/drawer.component.ts +++ b/src/components/drawer/drawer.component.ts @@ -10,6 +10,7 @@ import { property, query } from 'lit/decorators.js'; import { uppercaseFirstLetter } from '../../internal/string.js'; import { waitForEvent } from '../../internal/event.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import Modal from '../../internal/modal.js'; import styles from './drawer.styles.js'; import WaIconButton from '../icon-button/icon-button.component.js'; @@ -74,7 +75,7 @@ import type { CSSResultGroup } from 'lit'; * the third-party modal opens. Upon closing, call `modal.deactivateExternal()` to restore Shoelace's focus trapping. */ export default class WaDrawer extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon-button': WaIconButton }; private readonly hasSlotController = new HasSlotController(this, 'footer'); diff --git a/src/components/drawer/drawer.styles.ts b/src/components/drawer/drawer.styles.ts index 17c198414..0f7c55918 100644 --- a/src/components/drawer/drawer.styles.ts +++ b/src/components/drawer/drawer.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --size: 25rem; --header-spacing: var(--wa-space-l); diff --git a/src/components/dropdown/dropdown.component.ts b/src/components/dropdown/dropdown.component.ts index 9803a3a28..2e5a737a1 100644 --- a/src/components/dropdown/dropdown.component.ts +++ b/src/components/dropdown/dropdown.component.ts @@ -7,6 +7,7 @@ import { LocalizeController } from '../../utilities/localize.js'; import { property, query } from 'lit/decorators.js'; import { waitForEvent } from '../../internal/event.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './dropdown.styles.js'; import WaPopup from '../popup/popup.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -40,7 +41,7 @@ import type WaMenu from '../menu/menu.js'; * @animation dropdown.hide - The animation to use when hiding the dropdown. */ export default class WaDropdown extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-popup': WaPopup }; @query('.dropdown') popup: WaPopup; diff --git a/src/components/dropdown/dropdown.styles.ts b/src/components/dropdown/dropdown.styles.ts index 28581b280..3d23a280f 100644 --- a/src/components/dropdown/dropdown.styles.ts +++ b/src/components/dropdown/dropdown.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: inline-block; } diff --git a/src/components/icon-button/icon-button.component.ts b/src/components/icon-button/icon-button.component.ts index a963c91a0..b4d55c742 100644 --- a/src/components/icon-button/icon-button.component.ts +++ b/src/components/icon-button/icon-button.component.ts @@ -2,6 +2,7 @@ import { classMap } from 'lit/directives/class-map.js'; import { html, literal } from 'lit/static-html.js'; import { ifDefined } from 'lit/directives/if-defined.js'; import { property, query, state } from 'lit/decorators.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './icon-button.styles.js'; import WaIcon from '../icon/icon.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -21,7 +22,7 @@ import type { CSSResultGroup } from 'lit'; * @csspart base - The component's base wrapper. */ export default class WaIconButton extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon': WaIcon }; @query('.icon-button') button: HTMLButtonElement | HTMLLinkElement; diff --git a/src/components/icon-button/icon-button.styles.ts b/src/components/icon-button/icon-button.styles.ts index 939f2180c..cff01f74d 100644 --- a/src/components/icon-button/icon-button.styles.ts +++ b/src/components/icon-button/icon-button.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: inline-block; color: var(--wa-color-text-quiet); diff --git a/src/components/icon/icon.component.ts b/src/components/icon/icon.component.ts index ae837a365..6ec3a3fa8 100644 --- a/src/components/icon/icon.component.ts +++ b/src/components/icon/icon.component.ts @@ -3,6 +3,7 @@ import { html } from 'lit'; import { isTemplateResult } from 'lit/directive-helpers.js'; import { property, state } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './icon.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -33,7 +34,7 @@ interface IconSource { * @csspart use - The element generated when using `spriteSheet: true` */ export default class WaIcon extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; private initialRender = false; diff --git a/src/components/icon/icon.styles.ts b/src/components/icon/icon.styles.ts index 9f6f17412..6b459f375 100644 --- a/src/components/icon/icon.styles.ts +++ b/src/components/icon/icon.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: inline-block; width: auto; diff --git a/src/components/image-comparer/image-comparer.component.ts b/src/components/image-comparer/image-comparer.component.ts index 7a6697fa9..c47a37c8a 100644 --- a/src/components/image-comparer/image-comparer.component.ts +++ b/src/components/image-comparer/image-comparer.component.ts @@ -6,6 +6,7 @@ import { LocalizeController } from '../../utilities/localize.js'; import { property, query } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './image-comparer.styles.js'; import WaIcon from '../icon/icon.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -35,7 +36,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty --handle-size - The size of the compare handle. */ export default class WaImageComparer extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static scopedElement = { 'wa-icon': WaIcon }; private readonly localize = new LocalizeController(this); diff --git a/src/components/image-comparer/image-comparer.styles.ts b/src/components/image-comparer/image-comparer.styles.ts index e4f77100f..2b7a60cef 100644 --- a/src/components/image-comparer/image-comparer.styles.ts +++ b/src/components/image-comparer/image-comparer.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --divider-width: 2px; --handle-size: 2.5rem; diff --git a/src/components/include/include.component.ts b/src/components/include/include.component.ts index 73d88c401..7f8faf0a9 100644 --- a/src/components/include/include.component.ts +++ b/src/components/include/include.component.ts @@ -2,6 +2,7 @@ import { html } from 'lit'; import { property } from 'lit/decorators.js'; import { requestInclude } from './request.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './include.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -16,7 +17,7 @@ import type { CSSResultGroup } from 'lit'; * @event {{ status: number }} wa-error - Emitted when the included file fails to load due to an error. */ export default class WaInclude extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; /** * The location of the HTML file to include. Be sure you trust the content you are including as it will be executed as diff --git a/src/components/include/include.styles.ts b/src/components/include/include.styles.ts index 1775f7f7e..940a1557b 100644 --- a/src/components/include/include.styles.ts +++ b/src/components/include/include.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: block; } diff --git a/src/components/input/input.component.ts b/src/components/input/input.component.ts index 12a4a8233..e83ce97ed 100644 --- a/src/components/input/input.component.ts +++ b/src/components/input/input.component.ts @@ -8,6 +8,8 @@ import { live } from 'lit/directives/live.js'; import { LocalizeController } from '../../utilities/localize.js'; import { property, query, state } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; +import formControlStyles from '../../styles/form-control.styles.js'; import styles from './input.styles.js'; import WaIcon from '../icon/icon.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -56,7 +58,7 @@ import type { WebAwesomeFormControl } from '../../internal/webawesome-element.js * @cssproperty --box-shadow - The shadow effects around the edges of the input. */ export default class WaInput extends WebAwesomeElement implements WebAwesomeFormControl { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, formControlStyles, styles]; static dependencies = { 'wa-icon': WaIcon }; private readonly formControlController = new FormControlController(this, { diff --git a/src/components/input/input.styles.ts b/src/components/input/input.styles.ts index 6ccf59b5e..4fb79f299 100644 --- a/src/components/input/input.styles.ts +++ b/src/components/input/input.styles.ts @@ -1,11 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; -import formControlStyles from '../../styles/form-control.styles.js'; export default css` - ${componentStyles} - ${formControlStyles} - :host { --background: var(--wa-form-controls-background); --border-color: var(--wa-form-controls-resting-color); diff --git a/src/components/menu-item/menu-item.component.ts b/src/components/menu-item/menu-item.component.ts index f6c49d04c..0ca78ec73 100644 --- a/src/components/menu-item/menu-item.component.ts +++ b/src/components/menu-item/menu-item.component.ts @@ -5,6 +5,7 @@ import { LocalizeController } from '../../utilities/localize.js'; import { property, query } from 'lit/decorators.js'; import { SubmenuController } from './submenu-controller.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './menu-item.styles.js'; import WaIcon from '../icon/icon.component.js'; import WaPopup from '../popup/popup.component.js'; @@ -38,7 +39,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty [--submenu-offset=-2px] - The distance submenus shift to overlap the parent menu. */ export default class WaMenuItem extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon': WaIcon, 'wa-popup': WaPopup, diff --git a/src/components/menu-item/menu-item.styles.ts b/src/components/menu-item/menu-item.styles.ts index 06c6ffed1..1dbe44ed1 100644 --- a/src/components/menu-item/menu-item.styles.ts +++ b/src/components/menu-item/menu-item.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --submenu-offset: -2px; diff --git a/src/components/menu-label/menu-label.component.ts b/src/components/menu-label/menu-label.component.ts index a35870837..c04abe726 100644 --- a/src/components/menu-label/menu-label.component.ts +++ b/src/components/menu-label/menu-label.component.ts @@ -1,4 +1,5 @@ import { html } from 'lit'; +import componentStyles from '../../styles/component.styles.js'; import styles from './menu-label.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -14,7 +15,7 @@ import type { CSSResultGroup } from 'lit'; * @csspart base - The component's base wrapper. */ export default class WaMenuLabel extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; render() { return html` `; diff --git a/src/components/menu-label/menu-label.styles.ts b/src/components/menu-label/menu-label.styles.ts index 52b81ab28..099c3665f 100644 --- a/src/components/menu-label/menu-label.styles.ts +++ b/src/components/menu-label/menu-label.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: block; font-size: var(--wa-font-size-s); diff --git a/src/components/menu/menu.component.ts b/src/components/menu/menu.component.ts index 770ca72d1..ebe333b1b 100644 --- a/src/components/menu/menu.component.ts +++ b/src/components/menu/menu.component.ts @@ -1,9 +1,11 @@ import { html } from 'lit'; import { query } from 'lit/decorators.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './menu.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; import type WaMenuItem from '../menu-item/menu-item.component.js'; + export interface MenuSelectEventDetail { item: WaMenuItem; } @@ -19,7 +21,7 @@ export interface MenuSelectEventDetail { * @event {{ item: WaMenuItem }} wa-select - Emitted when a menu item is selected. */ export default class WaMenu extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; @query('slot') defaultSlot: HTMLSlotElement; diff --git a/src/components/menu/menu.styles.ts b/src/components/menu/menu.styles.ts index c57d4f203..97a1ffdd1 100644 --- a/src/components/menu/menu.styles.ts +++ b/src/components/menu/menu.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: block; position: relative; diff --git a/src/components/mutation-observer/mutation-observer.component.ts b/src/components/mutation-observer/mutation-observer.component.ts index 3dce15918..fe09d88ec 100644 --- a/src/components/mutation-observer/mutation-observer.component.ts +++ b/src/components/mutation-observer/mutation-observer.component.ts @@ -1,6 +1,7 @@ import { html } from 'lit'; import { property } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './mutation-observer.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -16,7 +17,7 @@ import type { CSSResultGroup } from 'lit'; * @slot - The content to watch for mutations. */ export default class WaMutationObserver extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; private mutationObserver: MutationObserver; diff --git a/src/components/mutation-observer/mutation-observer.styles.ts b/src/components/mutation-observer/mutation-observer.styles.ts index 674851eea..1ef4bf6f3 100644 --- a/src/components/mutation-observer/mutation-observer.styles.ts +++ b/src/components/mutation-observer/mutation-observer.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: contents; } diff --git a/src/components/option/option.component.ts b/src/components/option/option.component.ts index 94c4277cc..89177dd35 100644 --- a/src/components/option/option.component.ts +++ b/src/components/option/option.component.ts @@ -3,6 +3,7 @@ import { html } from 'lit'; import { LocalizeController } from '../../utilities/localize.js'; import { property, query, state } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './option.styles.js'; import WaIcon from '../icon/icon.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -27,7 +28,7 @@ import type { CSSResultGroup } from 'lit'; * @csspart suffix - The container that wraps the suffix. */ export default class WaOption extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon': WaIcon }; private cachedTextLabel: string; diff --git a/src/components/option/option.styles.ts b/src/components/option/option.styles.ts index 132eb3427..fc0714af2 100644 --- a/src/components/option/option.styles.ts +++ b/src/components/option/option.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: block; user-select: none; diff --git a/src/components/popup/popup.component.ts b/src/components/popup/popup.component.ts index eefcca403..ac72ef904 100644 --- a/src/components/popup/popup.component.ts +++ b/src/components/popup/popup.component.ts @@ -3,6 +3,7 @@ import { classMap } from 'lit/directives/class-map.js'; import { html } from 'lit'; import { offsetParent } from 'composed-offset-position'; import { property, query } from 'lit/decorators.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './popup.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -45,7 +46,7 @@ function isVirtualElement(e: unknown): e is VirtualElement { * available when using `auto-size`. */ export default class WaPopup extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; private anchorEl: Element | VirtualElement | null; private cleanup: ReturnType | undefined; diff --git a/src/components/popup/popup.styles.ts b/src/components/popup/popup.styles.ts index 71d745322..02d0415c8 100644 --- a/src/components/popup/popup.styles.ts +++ b/src/components/popup/popup.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --arrow-color: black; --arrow-size: var(--wa-tooltip-arrow-size); diff --git a/src/components/progress-bar/progress-bar.component.ts b/src/components/progress-bar/progress-bar.component.ts index 96bdf9643..f5cca287d 100644 --- a/src/components/progress-bar/progress-bar.component.ts +++ b/src/components/progress-bar/progress-bar.component.ts @@ -4,6 +4,7 @@ import { ifDefined } from 'lit/directives/if-defined.js'; import { LocalizeController } from '../../utilities/localize.js'; import { property } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './progress-bar.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -27,7 +28,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty --box-shadow - The shadow effects around the edges of the progress bar. */ export default class WaProgressBar extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; private readonly localize = new LocalizeController(this); /** The current progress as a percentage, 0 to 100. */ diff --git a/src/components/progress-bar/progress-bar.styles.ts b/src/components/progress-bar/progress-bar.styles.ts index 1f978e931..72f693d47 100644 --- a/src/components/progress-bar/progress-bar.styles.ts +++ b/src/components/progress-bar/progress-bar.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --height: 1.25rem; --track-color: var(--wa-color-neutral-fill-highlight); diff --git a/src/components/progress-ring/progress-ring.component.ts b/src/components/progress-ring/progress-ring.component.ts index 423358d37..dd8c2e363 100644 --- a/src/components/progress-ring/progress-ring.component.ts +++ b/src/components/progress-ring/progress-ring.component.ts @@ -1,6 +1,7 @@ import { html } from 'lit'; import { LocalizeController } from '../../utilities/localize.js'; import { property, query, state } from 'lit/decorators.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './progress-ring.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -24,7 +25,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty --indicator-transition-duration - The duration of the indicator's transition when the value changes. */ export default class WaProgressRing extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; private readonly localize = new LocalizeController(this); diff --git a/src/components/progress-ring/progress-ring.styles.ts b/src/components/progress-ring/progress-ring.styles.ts index ec794d4aa..05253e89b 100644 --- a/src/components/progress-ring/progress-ring.styles.ts +++ b/src/components/progress-ring/progress-ring.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --size: 8rem; --track-width: 0.25rem; diff --git a/src/components/qr-code/qr-code.component.ts b/src/components/qr-code/qr-code.component.ts index 93750e555..21b26cb52 100644 --- a/src/components/qr-code/qr-code.component.ts +++ b/src/components/qr-code/qr-code.component.ts @@ -2,6 +2,7 @@ import { html } from 'lit'; import { property, query } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import QrCreator from 'qr-creator'; import styles from './qr-code.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -16,7 +17,7 @@ import type { CSSResultGroup } from 'lit'; * @csspart base - The component's base wrapper. */ export default class WaQrCode extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; @query('canvas') canvas: HTMLElement; diff --git a/src/components/qr-code/qr-code.styles.ts b/src/components/qr-code/qr-code.styles.ts index af9afa4e6..aa50921f3 100644 --- a/src/components/qr-code/qr-code.styles.ts +++ b/src/components/qr-code/qr-code.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: inline-block; } diff --git a/src/components/radio-button/radio-button.component.ts b/src/components/radio-button/radio-button.component.ts index eecb18cb5..c3fde2864 100644 --- a/src/components/radio-button/radio-button.component.ts +++ b/src/components/radio-button/radio-button.component.ts @@ -4,6 +4,7 @@ import { html } from 'lit/static-html.js'; import { ifDefined } from 'lit/directives/if-defined.js'; import { property, query, state } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './radio-button.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -29,7 +30,7 @@ import type { CSSResultGroup } from 'lit'; * @csspart suffix - The container that wraps the suffix. */ export default class WaRadioButton extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; private readonly hasSlotController = new HasSlotController(this, '[default]', 'prefix', 'suffix'); diff --git a/src/components/radio-group/radio-group.component.ts b/src/components/radio-group/radio-group.component.ts index 3bd48f09a..c26e3b41d 100644 --- a/src/components/radio-group/radio-group.component.ts +++ b/src/components/radio-group/radio-group.component.ts @@ -9,6 +9,8 @@ import { HasSlotController } from '../../internal/slot.js'; import { html } from 'lit'; import { property, query, state } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; +import formControlStyles from '../../styles/form-control.styles.js'; import styles from './radio-group.styles.js'; import WaButtonGroup from '../button-group/button-group.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -42,7 +44,7 @@ import type WaRadioButton from '../radio-button/radio-button.js'; * @csspart button-group__base - The button group's `base` part. */ export default class WaRadioGroup extends WebAwesomeElement implements WebAwesomeFormControl { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, formControlStyles, styles]; static dependencies = { 'wa-button-group': WaButtonGroup }; protected readonly formControlController = new FormControlController(this); diff --git a/src/components/radio-group/radio-group.styles.ts b/src/components/radio-group/radio-group.styles.ts index fa184630f..266c5272d 100644 --- a/src/components/radio-group/radio-group.styles.ts +++ b/src/components/radio-group/radio-group.styles.ts @@ -1,11 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; -import formControlStyles from '../../styles/form-control.styles.js'; export default css` - ${componentStyles} - ${formControlStyles} - :host { display: block; } diff --git a/src/components/radio/radio.component.ts b/src/components/radio/radio.component.ts index dfef960c5..11f533595 100644 --- a/src/components/radio/radio.component.ts +++ b/src/components/radio/radio.component.ts @@ -2,6 +2,7 @@ import { classMap } from 'lit/directives/class-map.js'; import { html } from 'lit'; import { property, state } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './radio.styles.js'; import WaIcon from '../icon/icon.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -38,7 +39,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty --toggle-size - The size of the radio. */ export default class WaRadio extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon': WaIcon }; @state() checked = false; diff --git a/src/components/radio/radio.styles.ts b/src/components/radio/radio.styles.ts index 80535711a..7847ccd35 100644 --- a/src/components/radio/radio.styles.ts +++ b/src/components/radio/radio.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --background: var(--wa-form-controls-background); --background-checked: var(--wa-form-controls-activated-color); diff --git a/src/components/range/range.component.ts b/src/components/range/range.component.ts index 4191eb5ce..667e4e851 100644 --- a/src/components/range/range.component.ts +++ b/src/components/range/range.component.ts @@ -8,6 +8,8 @@ import { ifDefined } from 'lit/directives/if-defined.js'; import { live } from 'lit/directives/live.js'; import { LocalizeController } from '../../utilities/localize.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; +import formControlStyles from '../../styles/form-control.styles.js'; import styles from './range.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -44,7 +46,7 @@ import type { WebAwesomeFormControl } from '../../internal/webawesome-element.js * @cssproperty --track-active-offset - The point of origin of the active track. */ export default class WaRange extends WebAwesomeElement implements WebAwesomeFormControl { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, formControlStyles, styles]; private readonly formControlController = new FormControlController(this); private readonly hasSlotController = new HasSlotController(this, 'help-text', 'label'); diff --git a/src/components/range/range.styles.ts b/src/components/range/range.styles.ts index fa92dc4e5..71964a17b 100644 --- a/src/components/range/range.styles.ts +++ b/src/components/range/range.styles.ts @@ -1,11 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; -import formControlStyles from '../../styles/form-control.styles.js'; export default css` - ${componentStyles} - ${formControlStyles} - :host { --thumb-size: 20px; --tooltip-offset: calc(var(--wa-tooltip-arrow-size) * 2.5); diff --git a/src/components/rating/rating.component.ts b/src/components/rating/rating.component.ts index accd33c2f..f53ee6676 100644 --- a/src/components/rating/rating.component.ts +++ b/src/components/rating/rating.component.ts @@ -6,6 +6,7 @@ import { LocalizeController } from '../../utilities/localize.js'; import { styleMap } from 'lit/directives/style-map.js'; import { unsafeHTML } from 'lit/directives/unsafe-html.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './rating.styles.js'; import WaIcon from '../icon/icon.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -32,7 +33,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty --symbol-spacing - The spacing to use around symbols. */ export default class WaRating extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon': WaIcon }; private readonly localize = new LocalizeController(this); diff --git a/src/components/rating/rating.styles.ts b/src/components/rating/rating.styles.ts index 95c5304d5..b94c30aab 100644 --- a/src/components/rating/rating.styles.ts +++ b/src/components/rating/rating.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --symbol-color: var(--wa-color-neutral-fill-highlight); --symbol-color-active: var(--wa-color-yellow-70); diff --git a/src/components/resize-observer/resize-observer.component.ts b/src/components/resize-observer/resize-observer.component.ts index a6cc6258b..c22c62bbb 100644 --- a/src/components/resize-observer/resize-observer.component.ts +++ b/src/components/resize-observer/resize-observer.component.ts @@ -1,6 +1,7 @@ import { html } from 'lit'; import { property } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './resize-observer.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -16,7 +17,7 @@ import type { CSSResultGroup } from 'lit'; * @event {{ entries: ResizeObserverEntry[] }} wa-resize - Emitted when the element is resized. */ export default class WaResizeObserver extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; private resizeObserver: ResizeObserver; private observedElements: HTMLElement[] = []; diff --git a/src/components/resize-observer/resize-observer.styles.ts b/src/components/resize-observer/resize-observer.styles.ts index 674851eea..1ef4bf6f3 100644 --- a/src/components/resize-observer/resize-observer.styles.ts +++ b/src/components/resize-observer/resize-observer.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: contents; } diff --git a/src/components/select/select.component.ts b/src/components/select/select.component.ts index 2f04fb53b..5deb8ede9 100644 --- a/src/components/select/select.component.ts +++ b/src/components/select/select.component.ts @@ -11,6 +11,8 @@ import { scrollIntoView } from '../../internal/scroll.js'; import { unsafeHTML } from 'lit/directives/unsafe-html.js'; import { waitForEvent } from '../../internal/event.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; +import formControlStyles from '../../styles/form-control.styles.js'; import styles from './select.styles.js'; import WaIcon from '../icon/icon.component.js'; import WaPopup from '../popup/popup.component.js'; @@ -74,7 +76,7 @@ import type WaOption from '../option/option.component.js'; * @cssproperty --box-shadow - The shadow effects around the edges of the select's combobox. */ export default class WaSelect extends WebAwesomeElement implements WebAwesomeFormControl { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, formControlStyles, styles]; static dependencies = { 'wa-icon': WaIcon, 'wa-popup': WaPopup, diff --git a/src/components/select/select.styles.ts b/src/components/select/select.styles.ts index 5bb1bc5b8..e418fc5f3 100644 --- a/src/components/select/select.styles.ts +++ b/src/components/select/select.styles.ts @@ -1,11 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; -import formControlStyles from '../../styles/form-control.styles.js'; export default css` - ${componentStyles} - ${formControlStyles} - :host { --background: var(--wa-form-controls-background); --border-color: var(--wa-form-controls-resting-color); diff --git a/src/components/skeleton/skeleton.component.ts b/src/components/skeleton/skeleton.component.ts index 806f117b6..87e8153d4 100644 --- a/src/components/skeleton/skeleton.component.ts +++ b/src/components/skeleton/skeleton.component.ts @@ -1,6 +1,7 @@ import { classMap } from 'lit/directives/class-map.js'; import { html } from 'lit'; import { property } from 'lit/decorators.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './skeleton.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -19,7 +20,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty --sheen-color - The sheen color when the skeleton is in its loading state. */ export default class WaSkeleton extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; /** Determines which effect the skeleton will use. */ @property() effect: 'pulse' | 'sheen' | 'none' = 'none'; diff --git a/src/components/skeleton/skeleton.styles.ts b/src/components/skeleton/skeleton.styles.ts index 329b8c14a..6298b7508 100644 --- a/src/components/skeleton/skeleton.styles.ts +++ b/src/components/skeleton/skeleton.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --border-radius: var(--wa-corners-pill); --color: var(--wa-color-neutral-fill-highlight); diff --git a/src/components/spinner/spinner.component.ts b/src/components/spinner/spinner.component.ts index 2f846c480..d9d2e6dc9 100644 --- a/src/components/spinner/spinner.component.ts +++ b/src/components/spinner/spinner.component.ts @@ -1,5 +1,6 @@ import { html } from 'lit'; import { LocalizeController } from '../../utilities/localize.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './spinner.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -18,7 +19,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty --speed - The time it takes for the spinner to complete one animation cycle. */ export default class WaSpinner extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; private readonly localize = new LocalizeController(this); diff --git a/src/components/spinner/spinner.styles.ts b/src/components/spinner/spinner.styles.ts index 7b7558602..3392711cd 100644 --- a/src/components/spinner/spinner.styles.ts +++ b/src/components/spinner/spinner.styles.ts @@ -1,5 +1,4 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; // Resizing a spinner element using anything but font-size will break the animation because the animation uses em units. // Therefore, if a spinner is used in a flex container without `flex: none` applied, the spinner can grow/shrink and @@ -7,8 +6,6 @@ import componentStyles from '../../styles/component.styles.js'; // according to its actual dimensions. export default css` - ${componentStyles} - :host { --track-width: 2px; --track-color: var(--wa-color-neutral-fill-highlight); diff --git a/src/components/split-panel/split-panel.component.ts b/src/components/split-panel/split-panel.component.ts index 2819be91c..6e0d48ff3 100644 --- a/src/components/split-panel/split-panel.component.ts +++ b/src/components/split-panel/split-panel.component.ts @@ -5,6 +5,7 @@ import { ifDefined } from 'lit/directives/if-defined.js'; import { LocalizeController } from '../../utilities/localize.js'; import { property, query } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './split-panel.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -33,7 +34,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty [--max=100%] - The maximum allowed size of the primary panel. */ export default class WaSplitPanel extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; private cachedPositionInPixels: number; private readonly localize = new LocalizeController(this); diff --git a/src/components/split-panel/split-panel.styles.ts b/src/components/split-panel/split-panel.styles.ts index 6a67938d4..40c45a772 100644 --- a/src/components/split-panel/split-panel.styles.ts +++ b/src/components/split-panel/split-panel.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --divider-width: 4px; --divider-hit-area: 12px; diff --git a/src/components/switch/switch.component.ts b/src/components/switch/switch.component.ts index 7c4ad9b0f..bab69985d 100644 --- a/src/components/switch/switch.component.ts +++ b/src/components/switch/switch.component.ts @@ -7,6 +7,8 @@ import { ifDefined } from 'lit/directives/if-defined.js'; import { live } from 'lit/directives/live.js'; import { property, query, state } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; +import formControlStyles from '../../styles/form-control.styles.js'; import styles from './switch.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -48,7 +50,7 @@ import type { WebAwesomeFormControl } from '../../internal/webawesome-element.js * @cssproperty --width - The width of the switch. */ export default class WaSwitch extends WebAwesomeElement implements WebAwesomeFormControl { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, formControlStyles, styles]; private readonly formControlController = new FormControlController(this, { value: (control: WaSwitch) => (control.checked ? control.value || 'on' : undefined), diff --git a/src/components/switch/switch.styles.ts b/src/components/switch/switch.styles.ts index 6a73c8bcb..02637c7e5 100644 --- a/src/components/switch/switch.styles.ts +++ b/src/components/switch/switch.styles.ts @@ -1,11 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; -import formControlStyles from '../../styles/form-control.styles.js'; export default css` - ${componentStyles} - ${formControlStyles} - :host { --background: var(--wa-form-controls-resting-color); --background-checked: var(--wa-form-controls-activated-color); diff --git a/src/components/tab-group/tab-group.component.ts b/src/components/tab-group/tab-group.component.ts index d8562c7c4..3643edab3 100644 --- a/src/components/tab-group/tab-group.component.ts +++ b/src/components/tab-group/tab-group.component.ts @@ -4,6 +4,7 @@ import { LocalizeController } from '../../utilities/localize.js'; import { property, query, state } from 'lit/decorators.js'; import { scrollIntoView } from '../../internal/scroll.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './tab-group.styles.js'; import WaIconButton from '../icon-button/icon-button.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -40,7 +41,7 @@ import type WaTabPanel from '../tab-panel/tab-panel.js'; * @cssproperty --track-width - The width of the indicator's track (the line that separates tabs from panels). */ export default class WaTabGroup extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon-button': WaIconButton }; private readonly localize = new LocalizeController(this); diff --git a/src/components/tab-group/tab-group.styles.ts b/src/components/tab-group/tab-group.styles.ts index a1f86517d..5bea9ae14 100644 --- a/src/components/tab-group/tab-group.styles.ts +++ b/src/components/tab-group/tab-group.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --indicator-color: var(--wa-color-brand-spot); --track-color: var(--wa-color-neutral-fill-highlight); diff --git a/src/components/tab-panel/tab-panel.component.ts b/src/components/tab-panel/tab-panel.component.ts index 1b06f7851..c65fd2e02 100644 --- a/src/components/tab-panel/tab-panel.component.ts +++ b/src/components/tab-panel/tab-panel.component.ts @@ -2,6 +2,7 @@ import { classMap } from 'lit/directives/class-map.js'; import { html } from 'lit'; import { property } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './tab-panel.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -21,7 +22,7 @@ let id = 0; * @cssproperty --padding - The tab panel's padding. */ export default class WaTabPanel extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; private readonly attrId = ++id; private readonly componentId = `wa-tab-panel-${this.attrId}`; diff --git a/src/components/tab-panel/tab-panel.styles.ts b/src/components/tab-panel/tab-panel.styles.ts index dfec6b308..e0c9f2142 100644 --- a/src/components/tab-panel/tab-panel.styles.ts +++ b/src/components/tab-panel/tab-panel.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --padding: 0; diff --git a/src/components/tab/tab.component.ts b/src/components/tab/tab.component.ts index 39fed65f5..6cc519100 100644 --- a/src/components/tab/tab.component.ts +++ b/src/components/tab/tab.component.ts @@ -3,6 +3,7 @@ import { html } from 'lit'; import { LocalizeController } from '../../utilities/localize.js'; import { property, query } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './tab.styles.js'; import WaIconButton from '../icon-button/icon-button.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -27,7 +28,7 @@ let id = 0; * @csspart close-button__base - The close button's exported `base` part. */ export default class WaTab extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon-button': WaIconButton }; private readonly localize = new LocalizeController(this); diff --git a/src/components/tab/tab.styles.ts b/src/components/tab/tab.styles.ts index d65742de8..64339d99b 100644 --- a/src/components/tab/tab.styles.ts +++ b/src/components/tab/tab.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: inline-block; } diff --git a/src/components/tag/tag.component.ts b/src/components/tag/tag.component.ts index 4acc43bce..4bc11c4ed 100644 --- a/src/components/tag/tag.component.ts +++ b/src/components/tag/tag.component.ts @@ -2,6 +2,7 @@ import { classMap } from 'lit/directives/class-map.js'; import { html } from 'lit'; import { LocalizeController } from '../../utilities/localize.js'; import { property } from 'lit/decorators.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './tag.styles.js'; import WaIconButton from '../icon-button/icon-button.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -32,7 +33,7 @@ import type { CSSResultGroup } from 'lit'; * @cssproperty --content-color - The color of the tag's content. */ export default class WaTag extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-icon-button': WaIconButton }; private readonly localize = new LocalizeController(this); diff --git a/src/components/tag/tag.styles.ts b/src/components/tag/tag.styles.ts index 9102d3a8e..309891d96 100644 --- a/src/components/tag/tag.styles.ts +++ b/src/components/tag/tag.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --border-radius: var(--wa-corners-xs); --border-style: var(--wa-border-style); diff --git a/src/components/textarea/textarea.component.ts b/src/components/textarea/textarea.component.ts index 97ed4581c..f9029c4cc 100644 --- a/src/components/textarea/textarea.component.ts +++ b/src/components/textarea/textarea.component.ts @@ -7,6 +7,8 @@ import { ifDefined } from 'lit/directives/if-defined.js'; import { live } from 'lit/directives/live.js'; import { property, query, state } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; +import formControlStyles from '../../styles/form-control.styles.js'; import styles from './textarea.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -42,7 +44,7 @@ import type { WebAwesomeFormControl } from '../../internal/webawesome-element.js * @cssproperty --box-shadow - The shadow effects around the edges of the textarea. */ export default class WaTextarea extends WebAwesomeElement implements WebAwesomeFormControl { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, formControlStyles, styles]; private readonly formControlController = new FormControlController(this, { assumeInteractionOn: ['wa-blur', 'wa-input'] diff --git a/src/components/textarea/textarea.styles.ts b/src/components/textarea/textarea.styles.ts index 9913197ba..062de1535 100644 --- a/src/components/textarea/textarea.styles.ts +++ b/src/components/textarea/textarea.styles.ts @@ -1,11 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; -import formControlStyles from '../../styles/form-control.styles.js'; export default css` - ${componentStyles} - ${formControlStyles} - :host { --background: var(--wa-form-controls-background); --border-color: var(--wa-form-controls-resting-color); diff --git a/src/components/tooltip/tooltip.component.ts b/src/components/tooltip/tooltip.component.ts index 8514f894d..c3ab8c77b 100644 --- a/src/components/tooltip/tooltip.component.ts +++ b/src/components/tooltip/tooltip.component.ts @@ -6,6 +6,7 @@ import { LocalizeController } from '../../utilities/localize.js'; import { property, query } from 'lit/decorators.js'; import { waitForEvent } from '../../internal/event.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './tooltip.styles.js'; import WaPopup from '../popup/popup.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -40,7 +41,7 @@ import type { CSSResultGroup } from 'lit'; * @animation tooltip.hide - The animation to use when hiding the tooltip. */ export default class WaTooltip extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-popup': WaPopup }; private hoverTimeout: number; diff --git a/src/components/tooltip/tooltip.styles.ts b/src/components/tooltip/tooltip.styles.ts index 33773f184..6edb891be 100644 --- a/src/components/tooltip/tooltip.styles.ts +++ b/src/components/tooltip/tooltip.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { --max-width: 20rem; --hide-delay: 0ms; diff --git a/src/components/tree-item/tree-item.component.ts b/src/components/tree-item/tree-item.component.ts index 99fcbbd68..bc2bec208 100644 --- a/src/components/tree-item/tree-item.component.ts +++ b/src/components/tree-item/tree-item.component.ts @@ -7,6 +7,7 @@ import { LocalizeController } from '../../utilities/localize.js'; import { property, query, state } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; import { when } from 'lit/directives/when.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './tree-item.styles.js'; import WaCheckbox from '../checkbox/checkbox.component.js'; import WaIcon from '../icon/icon.component.js'; @@ -57,7 +58,7 @@ import type { CSSResultGroup, PropertyValueMap } from 'lit'; * @csspart checkbox__label - The checkbox's exported `label` part. */ export default class WaTreeItem extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; static dependencies = { 'wa-checkbox': WaCheckbox, 'wa-icon': WaIcon, diff --git a/src/components/tree-item/tree-item.styles.ts b/src/components/tree-item/tree-item.styles.ts index 024bc2a4b..0bd5919cd 100644 --- a/src/components/tree-item/tree-item.styles.ts +++ b/src/components/tree-item/tree-item.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { display: block; outline: 0; diff --git a/src/components/tree/tree.component.ts b/src/components/tree/tree.component.ts index cfa69693b..556eba4bd 100644 --- a/src/components/tree/tree.component.ts +++ b/src/components/tree/tree.component.ts @@ -3,6 +3,7 @@ import { html } from 'lit'; import { LocalizeController } from '../../utilities/localize.js'; import { property, query } from 'lit/decorators.js'; import { watch } from '../../internal/watch.js'; +import componentStyles from '../../styles/component.styles.js'; import styles from './tree.styles.js'; import WaTreeItem from '../tree-item/tree-item.component.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; @@ -70,7 +71,7 @@ function syncCheckboxes(changedTreeItem: WaTreeItem, initialSync = false) { * @cssproperty [--indent-guide-width=0] - The width of the indentation line. */ export default class WaTree extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; @query('slot:not([name])') defaultSlot: HTMLSlotElement; @query('slot[name=expand-icon]') expandedIconSlot: HTMLSlotElement; diff --git a/src/components/tree/tree.styles.ts b/src/components/tree/tree.styles.ts index 6d7bf5160..19a68345c 100644 --- a/src/components/tree/tree.styles.ts +++ b/src/components/tree/tree.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host { /* * These are actually used by tree item, but we define them here so they can more easily be set and all tree items diff --git a/src/components/visually-hidden/visually-hidden.component.ts b/src/components/visually-hidden/visually-hidden.component.ts index ab7be791c..837e868f1 100644 --- a/src/components/visually-hidden/visually-hidden.component.ts +++ b/src/components/visually-hidden/visually-hidden.component.ts @@ -1,4 +1,5 @@ import { html } from 'lit'; +import componentStyles from '../../styles/component.styles.js'; import styles from './visually-hidden.styles.js'; import WebAwesomeElement from '../../internal/webawesome-element.js'; import type { CSSResultGroup } from 'lit'; @@ -12,7 +13,7 @@ import type { CSSResultGroup } from 'lit'; * @slot - The content to be visually hidden. */ export default class WaVisuallyHidden extends WebAwesomeElement { - static styles: CSSResultGroup = styles; + static styles: CSSResultGroup = [componentStyles, styles]; render() { return html` `; diff --git a/src/components/visually-hidden/visually-hidden.styles.ts b/src/components/visually-hidden/visually-hidden.styles.ts index 1f72aab53..fd1d8910d 100644 --- a/src/components/visually-hidden/visually-hidden.styles.ts +++ b/src/components/visually-hidden/visually-hidden.styles.ts @@ -1,9 +1,6 @@ import { css } from 'lit'; -import componentStyles from '../../styles/component.styles.js'; export default css` - ${componentStyles} - :host(:not(:focus-within)) { position: absolute !important; width: 1px !important;