fix(dees-element): rename cssForCustom to cssForConstraint, remove DeesElement static cssFor* helpers, and add optional elementClass parameter to cssManager breakpoint helpers
This commit is contained in:
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@design.estate/dees-element',
|
||||
version: '2.2.0',
|
||||
version: '2.2.1',
|
||||
description: 'A library for creating custom elements extending the lit element class with additional functionalities.'
|
||||
}
|
||||
|
||||
@@ -47,29 +47,58 @@ export class CssManager {
|
||||
return domtools.elementBasic.staticStyles;
|
||||
}
|
||||
|
||||
public cssForDesktop(contentArg: CSSResult) {
|
||||
private getContainerNameFromClass(elementClass: { is?: string; name: string }): string {
|
||||
return elementClass.is || elementClass.name.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
||||
}
|
||||
|
||||
public cssForDesktop(contentArg: CSSResult, elementClass?: { is?: string; name: string }) {
|
||||
if (elementClass) {
|
||||
return unsafeCSS(domtools.breakpoints.cssForContainer(
|
||||
contentArg, `(min-width: ${domtools.breakpoints.desktop}px)`, this.getContainerNameFromClass(elementClass),
|
||||
));
|
||||
}
|
||||
return unsafeCSS(domtools.breakpoints.cssForDesktop(contentArg));
|
||||
}
|
||||
|
||||
public cssForNotebook(contentArg: CSSResult) {
|
||||
public cssForNotebook(contentArg: CSSResult, elementClass?: { is?: string; name: string }) {
|
||||
if (elementClass) {
|
||||
return unsafeCSS(domtools.breakpoints.cssForContainer(
|
||||
contentArg, `(max-width: ${domtools.breakpoints.notebook}px)`, this.getContainerNameFromClass(elementClass),
|
||||
));
|
||||
}
|
||||
return unsafeCSS(domtools.breakpoints.cssForNotebook(contentArg));
|
||||
}
|
||||
|
||||
public cssForTablet(contentArg: CSSResult) {
|
||||
public cssForTablet(contentArg: CSSResult, elementClass?: { is?: string; name: string }) {
|
||||
if (elementClass) {
|
||||
return unsafeCSS(domtools.breakpoints.cssForContainer(
|
||||
contentArg, `(max-width: ${domtools.breakpoints.tablet}px)`, this.getContainerNameFromClass(elementClass),
|
||||
));
|
||||
}
|
||||
return unsafeCSS(domtools.breakpoints.cssForTablet(contentArg));
|
||||
}
|
||||
|
||||
public cssForPhablet(contentArg: CSSResult) {
|
||||
public cssForPhablet(contentArg: CSSResult, elementClass?: { is?: string; name: string }) {
|
||||
if (elementClass) {
|
||||
return unsafeCSS(domtools.breakpoints.cssForContainer(
|
||||
contentArg, `(max-width: ${domtools.breakpoints.phablet}px)`, this.getContainerNameFromClass(elementClass),
|
||||
));
|
||||
}
|
||||
return unsafeCSS(domtools.breakpoints.cssForPhablet(contentArg));
|
||||
}
|
||||
|
||||
public cssForPhone(contentArg: CSSResult) {
|
||||
public cssForPhone(contentArg: CSSResult, elementClass?: { is?: string; name: string }) {
|
||||
if (elementClass) {
|
||||
return unsafeCSS(domtools.breakpoints.cssForContainer(
|
||||
contentArg, `(max-width: ${domtools.breakpoints.phone}px)`, this.getContainerNameFromClass(elementClass),
|
||||
));
|
||||
}
|
||||
return unsafeCSS(domtools.breakpoints.cssForPhone(contentArg));
|
||||
}
|
||||
|
||||
public cssForCustom(constraints: { maxWidth?: number; minWidth?: number }) {
|
||||
public cssForConstraint(constraints: { maxWidth?: number; minWidth?: number }) {
|
||||
return (contentArg: CSSResult) =>
|
||||
unsafeCSS(domtools.breakpoints.cssForCustom(constraints)(contentArg));
|
||||
unsafeCSS(domtools.breakpoints.cssForConstraint(constraints)(contentArg));
|
||||
}
|
||||
|
||||
public bdTheme(brightValueArg: string, darkValueArg: string): CSSResult {
|
||||
|
||||
@@ -2,45 +2,15 @@ import * as plugins from './plugins.js';
|
||||
import { type CSSResult } from 'lit';
|
||||
|
||||
export class DeesElement extends plugins.lit.LitElement {
|
||||
// STATIC — component-level responsive helpers (use in `static styles = [...]`)
|
||||
// STATIC — component-level constraint helper (use in `static styles = [...]`)
|
||||
|
||||
private static getContainerName(): string {
|
||||
return (this as any).is || this.name.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
||||
}
|
||||
|
||||
static cssForDesktop(cssArg: CSSResult) {
|
||||
return plugins.domtools.breakpoints.cssForContainer(
|
||||
cssArg, `(min-width: ${plugins.domtools.breakpoints.desktop}px)`, this.getContainerName(),
|
||||
);
|
||||
}
|
||||
|
||||
static cssForNotebook(cssArg: CSSResult) {
|
||||
return plugins.domtools.breakpoints.cssForContainer(
|
||||
cssArg, `(max-width: ${plugins.domtools.breakpoints.notebook}px)`, this.getContainerName(),
|
||||
);
|
||||
}
|
||||
|
||||
static cssForTablet(cssArg: CSSResult) {
|
||||
return plugins.domtools.breakpoints.cssForContainer(
|
||||
cssArg, `(max-width: ${plugins.domtools.breakpoints.tablet}px)`, this.getContainerName(),
|
||||
);
|
||||
}
|
||||
|
||||
static cssForPhablet(cssArg: CSSResult) {
|
||||
return plugins.domtools.breakpoints.cssForContainer(
|
||||
cssArg, `(max-width: ${plugins.domtools.breakpoints.phablet}px)`, this.getContainerName(),
|
||||
);
|
||||
}
|
||||
|
||||
static cssForPhone(cssArg: CSSResult) {
|
||||
return plugins.domtools.breakpoints.cssForContainer(
|
||||
cssArg, `(max-width: ${plugins.domtools.breakpoints.phone}px)`, this.getContainerName(),
|
||||
);
|
||||
}
|
||||
|
||||
static cssForCustom(constraints: { maxWidth?: number; minWidth?: number }) {
|
||||
static cssForConstraint(constraints: { maxWidth?: number; minWidth?: number }) {
|
||||
return (cssArg: CSSResult) =>
|
||||
plugins.domtools.breakpoints.cssForCustomContainer(constraints, this.getContainerName())(cssArg);
|
||||
plugins.domtools.breakpoints.cssForConstraintContainer(constraints, this.getContainerName())(cssArg);
|
||||
}
|
||||
|
||||
// INSTANCE
|
||||
|
||||
Reference in New Issue
Block a user