@dartbot/segment
Version:
Segmented display implementd as a vanilla Web Component
66 lines • 2.49 kB
JavaScript
export var Align;
(function (Align) {
Align["Left"] = "left";
Align["Right"] = "right";
})(Align || (Align = {}));
export var Token;
(function (Token) {
Token["segmentBackground"] = "--dartbot-segment-bg";
Token["elementSpacing"] = "--dartbot-element-spacing";
Token["elementPadding"] = "--dartbot-element-padding";
Token["segmentWidth"] = "--dartbot-segment-width";
Token["segmentInterval"] = "--dartbot-segment-interval";
Token["bevelWidth"] = "--dartbot-bevel-width";
Token["sideBevelEnabled"] = "--dartbot-side-bevel-enabled";
Token["fillOn"] = "--dartbot-fill-on";
Token["fillOff"] = "--dartbot-fill-off";
Token["strokeOn"] = "--dartbot-stroke-on";
Token["strokeOff"] = "--dartbot-stroke-off";
Token["strokeWidth"] = "--dartbot-stroke-width";
Token["shear"] = "--dartbot-shear";
Token["align"] = "--dartbot-align";
Token["glowInner"] = "--dartbot-glow-inner";
Token["glowOuter"] = "--dartbot-glow-outer";
})(Token || (Token = {}));
export const tokenDefaults = {
[]: '2',
[]: '2',
[]: '#000',
[]: '6',
[]: '.75',
[]: '.1',
[]: '1',
[]: '#7f0',
[]: '#030',
[]: 'black',
[]: 'black',
[]: '0',
[]: '0',
[]: Align.Left,
[]: '0',
[]: '0',
};
export const createTheme = (style) => {
const str = (t) => style.getPropertyValue(t) || tokenDefaults[t];
const num = (t) => parseFloat(str(t));
const bool = (t) => str(t) === '1';
return {
elementSpacing: num(Token.elementSpacing),
elementPadding: num(Token.elementPadding),
segmentBackground: str(Token.segmentBackground),
segmentWidth: num(Token.segmentWidth),
segmentInterval: num(Token.segmentInterval),
bevelWidth: num(Token.bevelWidth),
sideBevelEnabled: bool(Token.sideBevelEnabled),
fillOn: str(Token.fillOn),
fillOff: str(Token.fillOff),
strokeOn: str(Token.strokeOn),
strokeOff: str(Token.strokeOff),
strokeWidth: num(Token.strokeWidth),
shear: num(Token.shear),
align: str(Token.align),
glowInner: num(Token.glowInner),
glowOuter: num(Token.glowOuter),
};
};
//# sourceMappingURL=token.js.map