UNPKG

@dartbot/segment

Version:

Segmented display implementd as a vanilla Web Component

66 lines 2.49 kB
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 = { [Token.elementSpacing]: '2', [Token.elementPadding]: '2', [Token.segmentBackground]: '#000', [Token.segmentWidth]: '6', [Token.segmentInterval]: '.75', [Token.bevelWidth]: '.1', [Token.sideBevelEnabled]: '1', [Token.fillOn]: '#7f0', [Token.fillOff]: '#030', [Token.strokeOn]: 'black', [Token.strokeOff]: 'black', [Token.strokeWidth]: '0', [Token.shear]: '0', [Token.align]: Align.Left, [Token.glowInner]: '0', [Token.glowOuter]: '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