UNPKG

super-jss

Version:

Super JavaScript Stylesheets for Angular 20 — atomic CSS-in-JS using Signals with responsive breakpoints and theming.

2,278 lines (2,271 loc) 249 kB
import * as i0 from '@angular/core'; import { Injectable, PLATFORM_ID, Inject, signal, computed, effect, Input, Directive, ElementRef, Component, ChangeDetectionStrategy, EventEmitter, Output } from '@angular/core'; import { isPlatformBrowser, DOCUMENT } from '@angular/common'; import { fromEvent, auditTime } from 'rxjs'; import * as i1 from '@angular/platform-browser'; /** * Computes the active breakpoint key for a given width. * @param breakpoints Theme breakpoints map. * @param screenWidth Current viewport width in pixels. * @returns Breakpoint key (e.g., 'xs', 'md'). */ const getCurrentBreakpoint = (breakpoints, screenWidth) => { const sortedBreakpoints = Object.entries(breakpoints).sort((a, b) => a[1] - b[1]); let currentBp = 'xs'; for (const [key, value] of sortedBreakpoints) { if (screenWidth >= value) { currentBp = key; } } return currentBp; }; /** * Resolves a theme token (e.g., 'primary.main', 'blue.500') to a CSS color. * Falls back to the raw value when the token cannot be resolved. * @param value Token or raw color. * @param theme Active theme. * @returns CSS color string. */ const resolveThemeColor = (value, theme) => { const parts = value.split('.'); if ((parts.length === 1 && value in theme.palette) || value in theme.colors) { if (value in theme.colors) { const colorObject = theme.colors[value]; return typeof colorObject === 'object' ? colorObject['500'] : colorObject; } if (value in theme.palette) { return theme.palette[value].main; } } else if (parts.length === 2) { const [category, shade] = parts; if (category in theme.colors) { const colorObject = theme.colors[category]; return typeof colorObject === 'object' ? colorObject[shade] ?? value : colorObject; } if (category in theme.palette) { const colorObject = theme.palette[category]; return colorObject[shade] ?? value; } } return value; }; /** * Applies a style object directly to an element honoring responsive values. * For responsive objects, uses the nearest defined breakpoint value at or below current. * @param el Target element. * @param styles Style object (may include responsive values). * @param screenWidth Current viewport width in pixels. * @param theme Active theme used for spacing, colors and breakpoints. */ // Note: inline responsive application helpers were removed from core; styles are applied via classes. /** * Deeply merges plain objects without mutating inputs. * Arrays and primitives in source override target values. * @param target Base object. * @param source Overrides object. * @returns New merged object. */ function deepMerge(target, source) { const output = { ...target }; if (isObject(target) && isObject(source)) { Object.keys(source).forEach(key => { if (isObject(source[key])) { if (!(key in target)) { Object.assign(output, { [key]: source[key] }); } else { output[key] = deepMerge(target[key], source[key]); } } else { Object.assign(output, { [key]: source[key] }); } }); } return output; } /** Type guard for plain object values (non-array). */ function isObject(item) { return (item && typeof item === 'object' && !Array.isArray(item)); } // Normalize various input forms into a 1–4 density level. function toDensityLevel(val) { if (val === undefined || val === null || val === 'none') return undefined; if (val === true || val === '' || val === 'true') return 2; if (typeof val === 'number') { const n = Math.max(1, Math.min(4, Math.round(val))); return n; } const m = { compact: 1, default: 2, comfortable: 3, spacious: 4, }; return m[String(val).toLowerCase()]; } // Compact, semantic, deterministic class-name generator used by the CSS pipeline. // Goal: produce shorter readable tokens with a tiny hash suffix to ensure // uniqueness without huge verbose names (tradeoff: slightly less readable, // much smaller DOM class strings). const ABBR = { padding: 'p', margin: 'm', backgroundColor: 'bg', color: 'c', width: 'w', height: 'h', display: 'd', fontSize: 'fs', fontWeight: 'fw', borderRadius: 'br', boxShadow: 'bs', gap: 'g', }; function kebabToCompact(s) { return s.replace(/[^a-zA-Z0-9]/g, '').slice(0, 8); } function sanitizeForClass(value) { if (value === undefined) return 'u'; return String(value) .replace(/\./g, '_') .replace(/[^a-zA-Z0-9_-]/g, '-'); } // Simple deterministic 32-bit-ish hash, rendered in base36 and trimmed. function shortHash(input) { let h = 2166136261 >>> 0; for (let i = 0; i < input.length; i++) { h ^= input.charCodeAt(i); h = Math.imul(h, 16777619) >>> 0; } return (h >>> 0).toString(36); } /** * Generate an atomic class name for a single property/value pair. * variantPrefix may include trailing dash (e.g. 'hover-') and will be preserved. */ function generateAtomicClassName(variantPrefix, propKey, bp, value) { const hint = ABBR[propKey] || kebabToCompact(propKey); const bpPart = bp ? `-${bp}` : ''; const val = sanitizeForClass(value); const hash = shortHash(`${propKey}|${bp || ''}|${val}`).slice(0, 5); return `${variantPrefix}sj-${hint}${bpPart}-${val}-${hash}`; } /** Generate a compact bundle id for a whole style object. */ function generateBundleId(stylesJson) { const h = shortHash(stylesJson).slice(0, 6); return `sjb-${h}`; } // Mapping of shorthand style keys to their corresponding CSS properties. const shorthandMappings = { // Padding and Margin p: 'padding', pt: 'paddingTop', pr: 'paddingRight', pb: 'paddingBottom', pl: 'paddingLeft', m: 'margin', mt: 'marginTop', mr: 'marginRight', mb: 'marginBottom', ml: 'marginLeft', // Sizes w: 'width', h: 'height', minW: 'minWidth', minH: 'minHeight', maxW: 'maxWidth', maxH: 'maxHeight', // Borders b: 'border', bt: 'borderTop', br: 'borderRight', bb: 'borderBottom', bl: 'borderLeft', bs: 'borderStyle', bw: 'borderWidth', bc: 'borderColor', brad: 'borderRadius', // Colors bg: 'backgroundColor', c: 'color', // Flexbox d: 'display', fxDir: 'flexDirection', fxWrap: 'flexWrap', fxFlow: 'flexFlow', fxJustify: 'justifyContent', fxAItems: 'alignItems', fxAContent: 'alignContent', fxOrder: 'order', fxGrow: 'flexGrow', fxShrink: 'flexShrink', fxBasis: 'flexBasis', fxASelf: 'alignSelf', // Typography fs: 'fontSize', fw: 'fontWeight', lh: 'lineHeight', ff: 'fontFamily', ta: 'textAlign', td: 'textDecoration', tt: 'textTransform', ls: 'letterSpacing', ws: 'wordSpacing', fStyle: 'fontStyle', fVariant: 'fontVariant', }; // Use core resolver to avoid code duplication and reduce bundle size /** * Generates deterministic atomic CSS classes from a SjStyle object. * Produces min-width media queries for responsive entries and supports '&' pseudos. */ class CssGenerator { constructor(theme) { this.theme = theme; } /** * Generates a map of className -> CSS rule from the provided styles. * @param styles Root style object. * @returns Map of atomic class rules keyed by class name. */ generateAtomicCss(styles) { const cssMap = new Map(); this._generate(styles, cssMap); return cssMap; } /** * Recursive generator that walks the style tree and builds class rules. * @param styles Current style node. * @param cssMap Accumulator map of className -> rule. * @param pseudoClass Pseudo selector (e.g., ':hover'), including leading colon. * @param variantPrefix Prefix added to class names for pseudo variants. */ _generate(styles, cssMap, pseudoClass = '', variantPrefix = '') { for (const key in styles) { let value = styles[key]; if (key.startsWith('&')) { const newPseudoClass = key.substring(1); const newVariantPrefix = newPseudoClass.replace(/[^a-zA-Z0-9-]/g, '') + '-'; this._generate(value, cssMap, newPseudoClass, newVariantPrefix); } else { // Handle directional shorthands (px/py/mx/my) before generic mapping if (key === 'px' || key === 'py' || key === 'mx' || key === 'my') { let axisValue = value; // If user passed an explicit density token marker via sj.padding.options.*, map to responsive const densityAxis = this.getDensityLevel(value); if ((key === 'px' || key === 'py') && densityAxis) { const dens = this.densityToResponsive(key === 'px' ? 'padding-x' : 'padding-y', densityAxis); if (dens) axisValue = dens; } const parts = key === 'px' ? [ { cssProp: 'paddingLeft', derivedKey: 'pl' }, { cssProp: 'paddingRight', derivedKey: 'pr' }, ] : key === 'py' ? [ { cssProp: 'paddingTop', derivedKey: 'pt' }, { cssProp: 'paddingBottom', derivedKey: 'pb' }, ] : key === 'mx' ? [ { cssProp: 'marginLeft', derivedKey: 'ml' }, { cssProp: 'marginRight', derivedKey: 'mr' }, ] : [ { cssProp: 'marginTop', derivedKey: 'mt' }, { cssProp: 'marginBottom', derivedKey: 'mb' }, ]; if (typeof axisValue === 'object' && axisValue !== null) { // Responsive object: fill-forward values so missing breakpoints inherit // the last defined value. Emit base rule for xs (top-level) and media for others. const orderedBps = Object.keys(this.theme.breakpoints); let lastVal = undefined; for (const bp of orderedBps) { if (Object.prototype.hasOwnProperty.call(axisValue, bp)) { lastVal = axisValue[bp]; } if (lastVal === undefined) continue; for (const part of parts) { if (bp === 'xs' && this.theme.breakpoints.xs === 0) { const className = generateAtomicClassName(variantPrefix, part.derivedKey, undefined, lastVal); const resolved = this.resolveStyleValue(part.derivedKey, lastVal); const cssRule = `.${className}${pseudoClass} { ${this.kebabCase(part.cssProp)}: ${resolved}; }`; cssMap.set(className, cssRule); } else { const className = generateAtomicClassName(variantPrefix, part.derivedKey, bp, lastVal); const resolved = this.resolveStyleValue(part.derivedKey, lastVal); const mediaQuery = `@media (min-width: ${this.theme.breakpoints[bp]}px) {\n .${className}${pseudoClass} { ${this.kebabCase(part.cssProp)}: ${resolved}; }\n}`; cssMap.set(className, mediaQuery); } } } } else { // Single value: emit two atomic rules (left/right or top/bottom) for (const part of parts) { const className = generateAtomicClassName(variantPrefix, part.derivedKey, undefined, axisValue); const resolved = this.resolveStyleValue(part.derivedKey, axisValue); const cssRule = `.${className}${pseudoClass} { ${this.kebabCase(part.cssProp)}: ${resolved}; }`; cssMap.set(className, cssRule); } } continue; // skip standard handling for these shorthands } const cssProperty = shorthandMappings[key] || key; // Density tokens via explicit sj.*.options.* marker (padding/gap) const densityLevel = this.getDensityLevel(value); if (densityLevel && (String(cssProperty).startsWith('padding') || String(cssProperty) === 'gap')) { const dens = this.densityToResponsive(String(cssProperty), densityLevel); if (dens) value = dens; } if (typeof value === 'object' && value !== null) { // Handle responsive styles with fill-forward semantics: // generate a rule for each breakpoint from the last defined value. const orderedBps = Object.keys(this.theme.breakpoints); let lastVal = undefined; for (const bp of orderedBps) { if (Object.prototype.hasOwnProperty.call(value, bp)) { lastVal = value[bp]; } if (lastVal === undefined) continue; const responsiveValue = this.resolveStyleValue(key, lastVal); if (bp === 'xs' && this.theme.breakpoints.xs === 0) { // Top-level rule for xs const className = generateAtomicClassName(variantPrefix, key, undefined, lastVal); const cssRule = `.${className}${pseudoClass} { ${this.kebabCase(cssProperty)}: ${responsiveValue}; }`; cssMap.set(className, cssRule); } else { // Media rule for this breakpoint (including inherited values) const className = generateAtomicClassName(variantPrefix, key, bp, lastVal); const mediaQuery = `@media (min-width: ${this.theme.breakpoints[bp]}px) {\n .${className}${pseudoClass} { ${this.kebabCase(cssProperty)}: ${responsiveValue}; }\n}`; cssMap.set(className, mediaQuery); } } } else { // Handle non-responsive styles const className = generateAtomicClassName(variantPrefix, key, undefined, value); const resolvedValue = this.resolveStyleValue(key, value); const cssRule = `.${className}${pseudoClass} { ${this.kebabCase(cssProperty)}: ${resolvedValue}; }`; cssMap.set(className, cssRule); } } } } /** * Maps a density level (1..4) to a ResponsiveStyle using the theme's * surfaces maps for spacing-related properties. */ densityToResponsive(prop, level) { const srf = this.theme.components?.surfaces ?? {}; const pad = (srf.padding || {})[level]; const getRS = (v) => { if (!v) return null; if (typeof v === 'number') return { xs: v }; if (typeof v === 'object') return v; return null; }; if (prop.startsWith('padding')) { if (!pad) return null; // Support: ResponsiveStyle/number OR side maps with all/x/y/top/right/bottom/left if (typeof pad === 'number' || (typeof pad === 'object' && (pad.xs || pad.sm || pad.md || pad.lg || pad.xl || pad.xxl))) { return getRS(pad); } const sideMap = pad; // Determine which side/axis if (prop === 'padding-x' || prop === 'px') return getRS(sideMap.x) || getRS(sideMap.all); if (prop === 'padding-y' || prop === 'py') return getRS(sideMap.y) || getRS(sideMap.all); if (prop === 'paddingTop') return getRS(sideMap.top) || getRS(sideMap.y) || getRS(sideMap.all); if (prop === 'paddingBottom') return getRS(sideMap.bottom) || getRS(sideMap.y) || getRS(sideMap.all); if (prop === 'paddingLeft') return getRS(sideMap.left) || getRS(sideMap.x) || getRS(sideMap.all); if (prop === 'paddingRight') return getRS(sideMap.right) || getRS(sideMap.x) || getRS(sideMap.all); // generic padding: prefer all, else y as a reasonable fallback return getRS(sideMap.all) || getRS(sideMap.y) || null; } if (prop === 'gap') { const gp = (srf.gap || {})[level]; return getRS(gp); } return null; } /** Extracts density level from an explicit sj token object. */ getDensityLevel(v) { try { if (v && typeof v === 'object' && v.__sjDensity != null) { const n = Number(v.__sjDensity); if (Number.isFinite(n) && n >= 1 && n <= 12) return n; } } catch { } return null; } /** * Normalizes a style value using theme spacing and color resolution. * @param key Original style key. * @param value Raw style value. * @returns CSS-ready string value. */ resolveStyleValue(key, value) { if (value === undefined) { return 'initial'; } // Typography properties should handle numbers differently than spacing properties const typographyProps = new Set([ 'fontSize', 'lineHeight', 'letterSpacing', 'wordSpacing', 'fs', 'lh', 'ls', 'ws', 'fSize', 'fVariant', ]); if (typeof value === 'number') { // Font weight: keep numeric as-is (not spacing, not rem) if (key === 'fontWeight' || key === 'fw') { return String(value); } // Keep line-height unitless when numeric (CSS best practice and matches tests) if (key === 'lineHeight' || key === 'lh') { return String(value); } if (typographyProps.has(key)) { // For typography, convert numbers to rem units (1 = 1rem) return `${value}rem`; } else { // Zero is a valid CSS value and should not map to theme.spacing(0) if (value === 0) { return '0'; } // For spacing properties, use theme spacing function return this.theme.spacing(value); } } // Palette token → CSS custom property for instant theme swaps if (typeof value === 'string') { const parts = value.split('.'); const families = this.theme.palette; const tones = new Set(['main', 'light', 'dark', 'contrast']); if (parts.length === 1 && (value in families)) { const fam = parts[0]; return `var(--sj-palette-${fam}-main)`; } if (parts.length === 2 && (parts[0] in families) && tones.has(parts[1])) { const fam = parts[0]; const tone = parts[1]; return `var(--sj-palette-${fam}-${tone})`; } } let v = resolveThemeColor(value, this.theme); if (key === 'fontFamily' && typeof v === 'string') { // If it's a list, assume user provided correct quoting per family (don't wrap) if (!v.includes(',')) { const trimmed = v.trim(); const isQuoted = /^['"].*['"]$/.test(trimmed); const hasSpace = /\s/.test(trimmed); if (hasSpace && !isQuoted) { v = `"${trimmed}"`; } } // Preserve monospace/explicit overrides as raw values if (/\bmonospace\b/i.test(v)) { return v; } // Emit explicit override as-is (no CSS var indirection here) return v; } return v; } /** Converts camelCase property names to kebab-case. */ kebabCase(str) { return str.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`); } /** Makes a value safe for use in class names. */ sanitizeValue(value) { return String(value) .replace(/\./g, '_') .replace(/[^a-zA-Z0-9_-]/g, '-'); } } var __meta__ = { generatedAt: "2025-11-03T01:58:57.268Z", themeSignature: "{\"breakpoints\":{\"lg\":1280,\"md\":960,\"sm\":600,\"xl\":1920,\"xs\":0,\"xxl\":2560},\"palette\":{\"dark\":{\"contrast\":\"#FFFFFF\",\"dark\":\"#0B1220\",\"light\":\"#475569\",\"main\":\"#1F2937\"},\"error\":{\"contrast\":\"#FFFFFF\",\"dark\":\"#C61625\",\"light\":\"#EC1B2E\",\"main\":\"#C61625\"},\"info\":{\"contrast\":\"#FFFFFF\",\"dark\":\"#2563EB\",\"light\":\"#3B82F6\",\"main\":\"#2563EB\"},\"light\":{\"contrast\":\"#0B1220\",\"dark\":\"#F1F5F9\",\"light\":\"#F8FAFC\",\"main\":\"#FFFFFF\"},\"neutral\":{\"contrast\":\"#0B1220\",\"dark\":\"#CBD5E1\",\"light\":\"#F8FAFC\",\"main\":\"#E2E8F0\"},\"primary\":{\"contrast\":\"#FFFFFF\",\"dark\":\"#25374E\",\"light\":\"#8AA7BA\",\"main\":\"#2C415C\"},\"secondary\":{\"contrast\":\"#FFFFFF\",\"dark\":\"#334155\",\"light\":\"#94A3B8\",\"main\":\"#475569\"},\"success\":{\"contrast\":\"#FFFFFF\",\"dark\":\"#166534\",\"light\":\"#15803D\",\"main\":\"#166534\"},\"tertiary\":{\"contrast\":\"#000000\",\"dark\":\"#94A3B8\",\"light\":\"#E2E8F0\",\"main\":\"#CBD5E1\"},\"warning\":{\"contrast\":\"#0B1220\",\"dark\":\"#D97706\",\"light\":\"#F59E0B\",\"main\":\"#F59E0B\"}},\"spacing\":{\"1\":\"0.125rem\",\"10\":\"3.875rem\",\"11\":\"4.875rem\",\"12\":\"6.125rem\",\"2\":\"0.25rem\",\"3\":\"0.5rem\",\"4\":\"0.75rem\",\"5\":\"1rem\",\"6\":\"1.5rem\",\"7\":\"2rem\",\"8\":\"2.5rem\",\"9\":\"3.125rem\"},\"surfaces\":{\"border\":{\"1\":{\"md\":\"0.065remrem\",\"xs\":\"0.065rem\"},\"2\":{\"md\":\"0.1rem\",\"xs\":\"0.065rem\"},\"3\":{\"md\":\"0.1rem\",\"xs\":\"0.1rem\"},\"4\":{\"md\":\"0.2rem\",\"xs\":\"0.15rem\"}},\"gap\":{\"1\":{\"md\":2,\"xs\":1},\"2\":{\"md\":3,\"xs\":2},\"3\":{\"md\":4,\"xs\":3},\"4\":{\"md\":6,\"xs\":4}},\"padding\":{\"1\":{\"md\":2,\"xs\":1},\"2\":{\"lg\":4,\"md\":3,\"xs\":2},\"3\":{\"lg\":5,\"md\":4,\"xs\":3},\"4\":{\"lg\":7,\"md\":6,\"xs\":4}},\"radius\":{\"1\":{\"md\":2,\"xs\":1},\"2\":{\"md\":3,\"xs\":2},\"3\":{\"md\":4,\"xs\":3},\"4\":{\"md\":6,\"xs\":4}}}}", totalEntries: 978, spacingSteps: [ 1, 2, 3, 4, 5, 6, 8, 10, 12 ], responsiveBreakpoints: [ "sm", "md", "lg", "xl", "xxl" ] }; var precomputedPayload = { __meta__: __meta__, "backgroundColor::dark.main::base": [ "sj-bg-dark_main-1xrac" ], "backgroundColor::error.main::base": [ "sj-bg-error_main-1uati" ], "backgroundColor::info.main::base": [ "sj-bg-info_main-6q377" ], "backgroundColor::light.main::base": [ "sj-bg-light_main-3mua4" ], "backgroundColor::neutral.dark::base": [ "sj-bg-neutral_dark-1bers" ], "backgroundColor::neutral.light::base": [ "sj-bg-neutral_light-15yux" ], "backgroundColor::neutral.main::base": [ "sj-bg-neutral_main-1ljmp" ], "backgroundColor::primary.dark::base": [ "sj-bg-primary_dark-1fdi3" ], "backgroundColor::primary.light::base": [ "sj-bg-primary_light-2ljub" ], "backgroundColor::primary.main::base": [ "sj-bg-primary_main-ada35" ], "backgroundColor::secondary.dark::base": [ "sj-bg-secondary_dark-t9c6d" ], "backgroundColor::secondary.light::base": [ "sj-bg-secondary_light-lelhl" ], "backgroundColor::secondary.main::base": [ "sj-bg-secondary_main-1tzhk" ], "backgroundColor::success.main::base": [ "sj-bg-success_main-qz6nv" ], "backgroundColor::tertiary.dark::base": [ "sj-bg-tertiary_dark-14lna" ], "backgroundColor::tertiary.light::base": [ "sj-bg-tertiary_light-3qq80" ], "backgroundColor::tertiary.main::base": [ "sj-bg-tertiary_main-t273r" ], "backgroundColor::warning.main::base": [ "sj-bg-warning_main-1mu9e" ], "bg::dark.main::base": [ "sj-bg-dark_main-1gwnc" ], "bg::error.main::base": [ "sj-bg-error_main-1x621" ], "bg::info.main::base": [ "sj-bg-info_main-16thj" ], "bg::light.main::base": [ "sj-bg-light_main-1j4cj" ], "bg::neutral.dark::base": [ "sj-bg-neutral_dark-m8l79" ], "bg::neutral.light::base": [ "sj-bg-neutral_light-jg88r" ], "bg::neutral.main::base": [ "sj-bg-neutral_main-rw0e0" ], "bg::primary.dark::base": [ "sj-bg-primary_dark-11eq0" ], "bg::primary.light::base": [ "sj-bg-primary_light-iyx2w" ], "bg::primary.main::base": [ "sj-bg-primary_main-mx6ef" ], "bg::secondary.dark::base": [ "sj-bg-secondary_dark-vqxz7" ], "bg::secondary.light::base": [ "sj-bg-secondary_light-rlyw6" ], "bg::secondary.main::base": [ "sj-bg-secondary_main-z3svu" ], "bg::success.main::base": [ "sj-bg-success_main-8m184" ], "bg::tertiary.dark::base": [ "sj-bg-tertiary_dark-15o5c" ], "bg::tertiary.light::base": [ "sj-bg-tertiary_light-nbyyn" ], "bg::tertiary.main::base": [ "sj-bg-tertiary_main-4ij1z" ], "bg::warning.main::base": [ "sj-bg-warning_main-rcypl" ], "c::dark.main::base": [ "sj-c-dark_main-17zwc" ], "c::error.main::base": [ "sj-c-error_main-1pn0e" ], "c::info.main::base": [ "sj-c-info_main-1c4im" ], "c::light.main::base": [ "sj-c-light_main-bncae" ], "c::neutral.dark::base": [ "sj-c-neutral_dark-1mhoj" ], "c::neutral.light::base": [ "sj-c-neutral_light-1ce1v" ], "c::neutral.main::base": [ "sj-c-neutral_main-hzwwf" ], "c::primary.dark::base": [ "sj-c-primary_dark-1h0o5" ], "c::primary.light::base": [ "sj-c-primary_light-z04mm" ], "c::primary.main::base": [ "sj-c-primary_main-1miby" ], "c::secondary.dark::base": [ "sj-c-secondary_dark-q4fz0" ], "c::secondary.light::base": [ "sj-c-secondary_light-1kir3" ], "c::secondary.main::base": [ "sj-c-secondary_main-1sh9t" ], "c::success.main::base": [ "sj-c-success_main-1vtud" ], "c::tertiary.dark::base": [ "sj-c-tertiary_dark-115ev" ], "c::tertiary.light::base": [ "sj-c-tertiary_light-7nyec" ], "c::tertiary.main::base": [ "sj-c-tertiary_main-55tkk" ], "c::warning.main::base": [ "sj-c-warning_main-1couw" ], "color::dark.main::base": [ "sj-c-dark_main-ps4ss" ], "color::error.main::base": [ "sj-c-error_main-1wr7c" ], "color::info.main::base": [ "sj-c-info_main-1wmgl" ], "color::light.main::base": [ "sj-c-light_main-1twmu" ], "color::neutral.dark::base": [ "sj-c-neutral_dark-1hlwh" ], "color::neutral.light::base": [ "sj-c-neutral_light-1le58" ], "color::neutral.main::base": [ "sj-c-neutral_main-fb2jc" ], "color::primary.dark::base": [ "sj-c-primary_dark-xjtxt" ], "color::primary.light::base": [ "sj-c-primary_light-1i8kd" ], "color::primary.main::base": [ "sj-c-primary_main-12zk1" ], "color::secondary.dark::base": [ "sj-c-secondary_dark-1gt7m" ], "color::secondary.light::base": [ "sj-c-secondary_light-5jhqc" ], "color::secondary.main::base": [ "sj-c-secondary_main-1uyq2" ], "color::success.main::base": [ "sj-c-success_main-1cqat" ], "color::tertiary.dark::base": [ "sj-c-tertiary_dark-1wowc" ], "color::tertiary.light::base": [ "sj-c-tertiary_light-1m284" ], "color::tertiary.main::base": [ "sj-c-tertiary_main-1r2nf" ], "color::warning.main::base": [ "sj-c-warning_main-16lr8" ], "d::block::base": [ "sj-d-block-10ag7" ], "d::block::lg": [ "sj-d-lg-block-16kwu" ], "d::block::md": [ "sj-d-md-block-gechx" ], "d::block::sm": [ "sj-d-sm-block-1ruai" ], "d::block::xl": [ "sj-d-xl-block-1uk8g" ], "d::block::xxl": [ "sj-d-xxl-block-1s090" ], "d::contents::base": [ "sj-d-contents-wio8p" ], "d::contents::lg": [ "sj-d-lg-contents-16ee0" ], "d::contents::md": [ "sj-d-md-contents-118gz" ], "d::contents::sm": [ "sj-d-sm-contents-wi7i2" ], "d::contents::xl": [ "sj-d-xl-contents-1esft" ], "d::contents::xxl": [ "sj-d-xxl-contents-vscd3" ], "d::flex::base": [ "sj-d-flex-1gru0" ], "d::flex::lg": [ "sj-d-lg-flex-gf0b5" ], "d::flex::md": [ "sj-d-md-flex-10ak8" ], "d::flex::sm": [ "sj-d-sm-flex-1xfeo" ], "d::flex::xl": [ "sj-d-xl-flex-112os" ], "d::flex::xxl": [ "sj-d-xxl-flex-k7n3m" ], "d::grid::base": [ "sj-d-grid-xg9zd" ], "d::grid::lg": [ "sj-d-lg-grid-1jgzv" ], "d::grid::md": [ "sj-d-md-grid-xiob3" ], "d::grid::sm": [ "sj-d-sm-grid-1exjk" ], "d::grid::xl": [ "sj-d-xl-grid-1maik" ], "d::grid::xxl": [ "sj-d-xxl-grid-10b1d" ], "d::inline-block::base": [ "sj-d-inline-block-1bo2b" ], "d::inline-block::lg": [ "sj-d-lg-inline-block-w6eb1" ], "d::inline-block::md": [ "sj-d-md-inline-block-1bjgj" ], "d::inline-block::sm": [ "sj-d-sm-inline-block-18asa" ], "d::inline-block::xl": [ "sj-d-xl-inline-block-3inwh" ], "d::inline-block::xxl": [ "sj-d-xxl-inline-block-17myj" ], "d::inline-flex::base": [ "sj-d-inline-flex-1chv9" ], "d::inline-flex::lg": [ "sj-d-lg-inline-flex-3sml7" ], "d::inline-flex::md": [ "sj-d-md-inline-flex-13bj7" ], "d::inline-flex::sm": [ "sj-d-sm-inline-flex-8ckey" ], "d::inline-flex::xl": [ "sj-d-xl-inline-flex-1pzpq" ], "d::inline-flex::xxl": [ "sj-d-xxl-inline-flex-8p5t0" ], "d::inline::base": [ "sj-d-inline-1e4ux" ], "d::inline::lg": [ "sj-d-lg-inline-1wrcz" ], "d::inline::md": [ "sj-d-md-inline-1hw7a" ], "d::inline::sm": [ "sj-d-sm-inline-aqtpu" ], "d::inline::xl": [ "sj-d-xl-inline-stddt" ], "d::inline::xxl": [ "sj-d-xxl-inline-1i4zi" ], "d::none::base": [ "sj-d-none-1j3gy" ], "d::none::lg": [ "sj-d-lg-none-1ny18" ], "d::none::md": [ "sj-d-md-none-1bkpy" ], "d::none::sm": [ "sj-d-sm-none-je1sx" ], "d::none::xl": [ "sj-d-xl-none-x45d0" ], "d::none::xxl": [ "sj-d-xxl-none-3qpom" ], "display::block::base": [ "sj-d-block-1plqp" ], "display::block::lg": [ "sj-d-lg-block-8g877" ], "display::block::md": [ "sj-d-md-block-ykvtj" ], "display::block::sm": [ "sj-d-sm-block-us5ez" ], "display::block::xl": [ "sj-d-xl-block-921gb" ], "display::block::xxl": [ "sj-d-xxl-block-tp5ry" ], "display::contents::base": [ "sj-d-contents-177nm" ], "display::contents::lg": [ "sj-d-lg-contents-1ogg1" ], "display::contents::md": [ "sj-d-md-contents-kgpje" ], "display::contents::sm": [ "sj-d-sm-contents-h4xga" ], "display::contents::xl": [ "sj-d-xl-contents-15jre" ], "display::contents::xxl": [ "sj-d-xxl-contents-zx5io" ], "display::flex::base": [ "sj-d-flex-vu7jt" ], "display::flex::lg": [ "sj-d-lg-flex-1duyp" ], "display::flex::md": [ "sj-d-md-flex-3xpug" ], "display::flex::sm": [ "sj-d-sm-flex-141ty" ], "display::flex::xl": [ "sj-d-xl-flex-kfwco" ], "display::flex::xxl": [ "sj-d-xxl-flex-8ogg6" ], "display::grid::base": [ "sj-d-grid-cmvhk" ], "display::grid::lg": [ "sj-d-lg-grid-1rx07" ], "display::grid::md": [ "sj-d-md-grid-1faqz" ], "display::grid::sm": [ "sj-d-sm-grid-vcczo" ], "display::grid::xl": [ "sj-d-xl-grid-bqfdt" ], "display::grid::xxl": [ "sj-d-xxl-grid-1w3h7" ], "display::inline-block::base": [ "sj-d-inline-block-1f2c2" ], "display::inline-block::lg": [ "sj-d-lg-inline-block-19sjk" ], "display::inline-block::md": [ "sj-d-md-inline-block-7kifr" ], "display::inline-block::sm": [ "sj-d-sm-inline-block-1kjy2" ], "display::inline-block::xl": [ "sj-d-xl-inline-block-17pn6" ], "display::inline-block::xxl": [ "sj-d-xxl-inline-block-14ipw" ], "display::inline-flex::base": [ "sj-d-inline-flex-1s27q" ], "display::inline-flex::lg": [ "sj-d-lg-inline-flex-1rhgh" ], "display::inline-flex::md": [ "sj-d-md-inline-flex-fg4y4" ], "display::inline-flex::sm": [ "sj-d-sm-inline-flex-1eeun" ], "display::inline-flex::xl": [ "sj-d-xl-inline-flex-vqj7t" ], "display::inline-flex::xxl": [ "sj-d-xxl-inline-flex-cxm98" ], "display::inline::base": [ "sj-d-inline-94lpt" ], "display::inline::lg": [ "sj-d-lg-inline-132qk" ], "display::inline::md": [ "sj-d-md-inline-9kj0w" ], "display::inline::sm": [ "sj-d-sm-inline-10trg" ], "display::inline::xl": [ "sj-d-xl-inline-1m04s" ], "display::inline::xxl": [ "sj-d-xxl-inline-19nhz" ], "display::none::base": [ "sj-d-none-fda4t" ], "display::none::lg": [ "sj-d-lg-none-1tyt3" ], "display::none::md": [ "sj-d-md-none-1l2mx" ], "display::none::sm": [ "sj-d-sm-none-8byxb" ], "display::none::xl": [ "sj-d-xl-none-1nr5d" ], "display::none::xxl": [ "sj-d-xxl-none-b05mh" ], "gap::1::base": [ "sj-g-1-1qz3p" ], "gap::1::lg": [ "sj-g-lg-1-g48c4" ], "gap::1::md": [ "sj-g-md-1-1ioh3" ], "gap::1::sm": [ "sj-g-sm-1-650s0" ], "gap::1::xl": [ "sj-g-xl-1-w39lu" ], "gap::1::xxl": [ "sj-g-xxl-1-7hmik" ], "gap::10::base": [ "sj-g-10-15gdd" ], "gap::10::lg": [ "sj-g-lg-10-1o4wy" ], "gap::10::md": [ "sj-g-md-10-ms3od" ], "gap::10::sm": [ "sj-g-sm-10-1lhyi" ], "gap::10::xl": [ "sj-g-xl-10-1sbmn" ], "gap::10::xxl": [ "sj-g-xxl-10-ct8g7" ], "gap::12::base": [ "sj-g-12-14we6" ], "gap::12::lg": [ "sj-g-lg-12-1nkxr" ], "gap::12::md": [ "sj-g-md-12-m84gz" ], "gap::12::sm": [ "sj-g-sm-12-1kxzb" ], "gap::12::xl": [ "sj-g-xl-12-1rrng" ], "gap::12::xxl": [ "sj-g-xxl-12-dd7nl" ], "gap::2::base": [ "sj-g-2-1qp43" ], "gap::2::lg": [ "sj-g-lg-2-ge7xt" ], "gap::2::md": [ "sj-g-md-2-1iygo" ], "gap::2::sm": [ "sj-g-sm-2-5v16b" ], "gap::2::xl": [ "sj-g-xl-2-vta05" ], "gap::2::xxl": [ "sj-g-xxl-2-8blbn" ], "gap::3::base": [ "sj-g-3-1qf4h" ], "gap::3::lg": [ "sj-g-lg-3-go7ji" ], "gap::3::md": [ "sj-g-md-3-1j8ga" ], "gap::3::sm": [ "sj-g-sm-3-5l1km" ], "gap::3::xl": [ "sj-g-xl-3-vjaeg" ], "gap::3::xxl": [ "sj-g-xxl-3-81lpy" ], "gap::4::base": [ "sj-g-4-1q54w" ], "gap::4::lg": [ "sj-g-lg-4-eqabn" ], "gap::4::md": [ "sj-g-md-4-1haj2" ], "gap::4::sm": [ "sj-g-sm-4-5b1yx" ], "gap::4::xl": [ "sj-g-xl-4-xh7mb" ], "gap::4::xxl": [ "sj-g-xxl-4-8vkj1" ], "gap::5::base": [ "sj-g-5-1pv5a" ], "gap::5::lg": [ "sj-g-lg-5-f09xc" ], "gap::5::md": [ "sj-g-md-5-1hkio" ], "gap::5::sm": [ "sj-g-sm-5-512d8" ], "gap::5::xl": [ "sj-g-xl-5-x780m" ], "gap::5::xxl": [ "sj-g-xxl-5-8lkxc" ], "gap::6::base": [ "sj-g-6-1pl5o" ], "gap::6::lg": [ "sj-g-lg-6-fa9j1" ], "gap::6::md": [ "sj-g-md-6-1huia" ], "gap::6::sm": [ "sj-g-sm-6-4r2rj" ], "gap::6::xl": [ "sj-g-xl-6-wx8ex" ], "gap::6::xxl": [ "sj-g-xxl-6-9fjqf" ], "gap::8::base": [ "sj-g-8-1p16h" ], "gap::8::lg": [ "sj-g-lg-8-dmbwv" ], "gap::8::md": [ "sj-g-md-8-1g6kn" ], "gap::8::sm": [ "sj-g-sm-8-473k5" ], "gap::8::xl": [ "sj-g-xl-8-yl613" ], "gap::8::xxl": [ "sj-g-xxl-8-9zixt" ], "m::1::base": [ "sj-m-1-181vk" ], "m::1::lg": [ "sj-m-lg-1-k1lqi" ], "m::1::md": [ "sj-m-md-1-1ftpw" ], "m::1::sm": [ "sj-m-sm-1-1ezkr" ], "m::1::xl": [ "sj-m-xl-1-tyzur" ], "m::1::xxl": [ "sj-m-xxl-1-1xosw" ], "m::10::base": [ "sj-m-10-dver9" ], "m::10::lg": [ "sj-m-lg-10-22li2" ], "m::10::md": [ "sj-m-md-10-1ag4d" ], "m::10::sm": [ "sj-m-sm-10-xdctt" ], "m::10::xl": [ "sj-m-xl-10-tv57r" ], "m::10::xxl": [ "sj-m-xxl-10-14hia" ], "m::12::base": [ "sj-m-12-dbfjv" ], "m::12::lg": [ "sj-m-lg-12-1imap" ], "m::12::md": [ "sj-m-md-12-19w56" ], "m::12::sm": [ "sj-m-sm-12-wtdmf" ], "m::12::xl": [ "sj-m-xl-12-tb60d" ], "m::12::xxl": [ "sj-m-xxl-12-13xj3" ], "m::2::base": [ "sj-m-2-18bv5" ], "m::2::lg": [ "sj-m-lg-2-jrm4t" ], "m::2::md": [ "sj-m-md-2-1fjqa" ], "m::2::sm": [ "sj-m-sm-2-1f9kd" ], "m::2::xl": [ "sj-m-xl-2-u8zgg" ], "m::2::xxl": [ "sj-m-xxl-2-1xysi" ], "m::3::base": [ "sj-m-3-18lur" ], "m::3::lg": [ "sj-m-lg-3-jhmj4" ], "m::3::md": [ "sj-m-md-3-1f9qp" ], "m::3::sm": [ "sj-m-sm-3-1fjjy" ], "m::3::xl": [ "sj-m-xl-3-uiz25" ], "m::3::xxl": [ "sj-m-xxl-3-1y8s3" ], "m::4::base": [ "sj-m-4-18vud" ], "m::4::lg": [ "sj-m-lg-4-lfjqz" ], "m::4::md": [ "sj-m-md-4-1h7nx" ], "m::4::sm": [ "sj-m-sm-4-1dlmr" ], "m::4::xl": [ "sj-m-xl-4-sl1ua" ], "m::4::xxl": [ "sj-m-xxl-4-1wauv" ], "m::5::base": [ "sj-m-5-195tz" ], "m::5::lg": [ "sj-m-lg-5-l5k5a" ], "m::5::md": [ "sj-m-md-5-1gxob" ], "m::5::sm": [ "sj-m-sm-5-1dvmc" ], "m::5::xl": [ "sj-m-xl-5-sv1fz" ], "m::5::xxl": [ "sj-m-xxl-5-1wkuh" ], "m::6::base": [ "sj-m-6-19ftk" ], "m::6::lg": [ "sj-m-lg-6-kvkjl" ], "m::6::md": [ "sj-m-md-6-1gnop" ], "m::6::sm": [ "sj-m-sm-6-1e5ly" ], "m::6::xl": [ "sj-m-xl-6-t511o" ], "m::6::xxl": [ "sj-m-xxl-6-1wuu3" ], "m::8::base": [ "sj-m-8-19zss" ], "m::8::lg": [ "sj-m-lg-8-i3oin" ], "m::8::md": [ "sj-m-md-8-1dvso" ], "m::8::sm": [ "sj-m-sm-8-1gxhz" ], "m::8::xl": [ "sj-m-xl-8-vwx2l" ], "m::8::xxl": [ "sj-m-xxl-8-lm2as" ], "mb::1::base": [ "sj-mb-1-13jr0" ], "mb::1::lg": [ "sj-mb-lg-1-11x7t" ], "mb::1::md": [ "sj-mb-md-1-rngdx" ], "mb::1::sm": [ "sj-mb-sm-1-bgby6" ], "mb::1::xl": [ "sj-mb-xl-1-12skp" ], "mb::1::xxl": [ "sj-mb-xxl-1-m4or2" ], "mb::10::base": [ "sj-mb-10-1cj6n" ], "mb::10::lg": [ "sj-mb-lg-10-10qf3" ], "mb::10::md": [ "sj-mb-md-10-boxk6" ], "mb::10::sm": [ "sj-mb-sm-10-11xua" ], "mb::10::xl": [ "sj-mb-xl-10-tk9ev" ], "mb::10::xxl": [ "sj-mb-xxl-10-1ibf0" ], "mb::12::base": [ "sj-mb-12-1d35v" ], "mb::12::lg": [ "sj-mb-lg-12-11aea" ], "mb::12::md": [ "sj-mb-md-12-c8wrj" ], "mb::12::sm": [ "sj-mb-sm-12-12hth" ], "mb::12::xl": [ "sj-mb-xl-12-u48m9" ], "mb::12::xxl": [ "sj-mb-xxl-12-1ive8" ], "mb::2::base": [ "sj-mb-2-12ps7" ], "mb::2::lg": [ "sj-mb-lg-2-12r6n" ], "mb::2::md": [ "sj-mb-md-2-shf70" ], "mb::2::sm": [ "sj-mb-sm-2-amd53" ], "mb::2::xl": [ "sj-mb-xl-2-11ylw" ], "mb::2::xxl": [ "sj-mb-xxl-2-lapxz" ], "mb::3::base": [ "sj-mb-3-12zrs" ], "mb::3::lg": [ "sj-mb-lg-3-12h71" ], "mb::3::md": [ "sj-mb-md-3-s7flb" ], "mb::3::sm": [ "sj-mb-sm-3-awcqs" ], "mb::3::xl": [ "sj-mb-xl-3-128li" ], "mb::3::xxl": [ "sj-mb-xxl-3-lkpjo" ], "mb::4::base": [ "sj-mb-4-125sz" ], "mb::4::lg": [ "sj-mb-lg-4-11390" ], "mb::4::md": [ "sj-mb-md-4-t1eed" ], "mb::4::sm": [ "sj-mb-sm-4-a2dxp" ], "mb::4::xl": [ "sj-mb-xl-4-13mjj" ], "mb::4::xxl": [ "sj-mb-xxl-4-kqqql" ], "mb::5::base": [ "sj-mb-5-12fsl" ], "mb::5::lg": [ "sj-mb-lg-5-10t9f" ], "mb::5::md": [ "sj-mb-md-5-sresp" ], "mb::5::sm": [ "sj-mb-sm-5-acdje" ], "mb::5::xl": [ "sj-mb-xl-5-13wj4" ], "mb::5::xxl": [ "sj-mb-xxl-5-l0qca" ], "mb::6::base": [ "sj-mb-6-11lts" ], "mb::6::lg": [ "sj-mb-lg-6-11n88" ], "mb::6::md": [ "sj-mb-md-6-tldlr" ], "mb::6::sm": [ "sj-mb-sm-6-9ieqb" ], "mb::6::xl": [ "sj-mb-xl-6-132kb" ], "mb::6::xxl": [ "sj-mb-xxl-6-k6rj7" ], "mb::8::base": [ "sj-mb-8-111uk" ], "mb::8::lg": [ "sj-mb-lg-8-14f49" ], "mb::8::md": [ "sj-mb-md-8-ppj62" ], "mb::8::sm": [ "sj-mb-sm-8-8yfix" ], "mb::8::xl": [ "sj-mb-xl-8-10aoa" ], "mb::8::xxl": [ "sj-mb-xxl-8-o2lyx" ], "ml::1::base": [ "sj-ml-1-105e1" ], "ml::1::lg": [ "sj-ml-lg-1-1lca6" ], "ml::1::md": [ "sj-ml-md-1-is1f3" ], "ml::1::sm": [ "sj-ml-sm-1-62jog" ], "ml::1::xl": [ "sj-ml-xl-1-xn1cs" ], "ml::1::xxl": [ "sj-ml-xxl-1-16va0" ], "ml::10::base": [ "sj-ml-10-2acaw" ], "ml::10::lg": [ "sj-ml-lg-10-411n0" ], "ml::10::md": [ "sj-ml-md-10-5v9sf" ], "ml::10::sm": [ "sj-ml-sm-10-5niu8" ], "ml::10::xl": [ "sj-ml-xl-10-183fz" ], "ml::10::xxl": [ "sj-ml-xxl-10-7xbkg" ], "ml::12::base": [ "sj-ml-12-1qd3i" ], "ml::12::lg": [ "sj-ml-lg-12-3h2fm" ], "ml::12::md": [ "sj-ml-md-12-5bal2" ], "ml::12::sm": [ "sj-ml-sm-12-53jmu" ], "ml::12::xl": [ "sj-ml-xl-12-17jgs" ], "ml::12::xxl": [ "sj-ml-xxl-12-7dcd2" ], "ml::2::base": [ "sj-ml-2-10fdn" ], "ml::2::lg": [ "sj-ml-lg-2-1l2ak" ], "ml::2::md": [ "sj-ml-md-2-ii1te" ], "ml::2::sm": [ "sj-ml-sm-2-6cja5" ], "ml::2::xl": [ "sj-ml-xl-2-xx0yh" ], "ml::2::xxl": [ "sj-ml-xxl-2-1guvp" ], "ml::3::base": [ "sj-ml-3-10pd9" ], "ml::3::lg": [ "sj-ml-lg-3-1ksay" ], "ml::3::md": [ "sj-ml-md-3-i827p" ], "ml::3::sm": [ "sj-ml-sm-3-6mivu" ], "ml::3::xl": [ "sj-ml-xl-3-y70k6" ], "ml::3::xxl": [ "sj-ml-xxl-3-1quhe" ], "ml::4::base": [ "sj-ml-4-yrg16" ], "ml::4::lg": [ "sj-ml-lg-4-1kibd" ], "ml::4::md": [ "sj-ml-md-4-hy2m0" ], "ml::4::sm": [ "sj-ml-sm-4-6wihj" ], "ml::4::xl": [ "sj-ml-xl-4-yh05v" ], "ml::4::xxl": [ "sj-ml-xxl-4-20u33" ], "ml::5::base": [ "sj-ml-5-z1fmv" ], "ml::5::lg": [ "sj-ml-lg-5-1k8br" ], "ml::5::md": [ "sj-ml-md-5-ho30b" ], "ml::5::sm": [ "sj-ml-sm-5-76i38" ], "ml::5::xl": [ "sj-ml-xl-5-yqzrj" ], "ml::5::xxl": [ "sj-ml-xxl-5-2atos" ], "ml::6::base": [ "sj-ml-6-zbf8k" ], "ml::6::lg": [ "sj-ml-lg-6-1jyc5" ], "ml::6::md": [ "sj-ml-md-6-he3em" ], "ml::6::sm": [ "sj-ml-sm-6-7ghox" ], "ml::6::xl": [ "sj-ml-xl-6-z0zd8" ], "ml::6::xxl": [ "sj-ml-xxl-6-2ktah" ], "ml::8::base": [ "sj-ml-8-123b9" ], "ml::8::lg": [ "sj-ml-lg-8-1jecy" ], "ml::8::md": [ "sj-ml-md-8-gu479" ], "ml::8::sm": [ "sj-ml-sm-8-80gwb" ], "ml::8::xl": [ "sj-ml-xl-8-zkykm" ], "ml::8::xxl": [ "sj-ml-xxl-8-1xq2w" ], "mr::1::base": [ "sj-mr-1-iazax" ], "mr::1::lg": [ "sj-mr-lg-1-4j6b5" ], "mr::1::md": [ "sj-mr-md-1-1taix" ], "mr::1::sm": [ "sj-mr-sm-1-wp72s" ], "mr::1::xl": [ "sj-mr-xl-1-5crvb" ], "mr::1::xxl": [ "sj-mr-xxl-1-3lnd6" ], "mr::10::base": [ "sj-mr-10-6mt81" ], "mr::10::lg": [ "sj-mr-lg-10-10ge8" ], "mr::10::md": [ "sj-mr-md-10-1axht" ], "mr::10::sm": [ "sj-mr-sm-10-rms9n" ], "mr::10::xl": [ "sj-mr-xl-10-1hziq" ], "mr::10::xxl": [ "sj-mr-xxl-10-1dviz" ], "mr::12::base": [ "sj-mr-12-76sff" ], "mr::12::lg": [ "sj-mr-lg-12-110df" ], "mr::12::md": [ "sj-mr-md-12-1bhh1" ], "mr::12::sm": [ "sj-mr-sm-12-s6rh1" ], "mr::12::xl": [ "sj-mr-xl-12-1ijhx" ], "mr::12::xxl": [ "sj-mr-xxl-12-1efi6" ], "mr::2::base": [ "sj-mr-2-hh0hu" ], "mr::2::lg": [ "sj-mr-lg-2-5d548" ], "mr::2::md": [ "sj-mr-md-2-1u4hq" ], "mr::2::sm": [ "sj-mr-sm-2-vv89p" ], "mr::2::xl": [ "sj-mr-xl-2-4it28" ], "mr::2::xxl": [ "sj-mr-xxl-2-2rok3" ], "mr::3::base": [ "sj-mr-3-hr03j" ], "mr::3::lg": [ "sj-mr-lg-3-535ij" ], "mr::3::md": [ "sj-mr-md-3-1tui4" ], "mr::3::sm": [ "sj-mr-sm-3-w57ve" ], "mr::3::xl": [ "sj-mr-xl-3-4ssnx" ], "mr::3::xxl": [ "sj-mr-xxl-3-31o5s" ], "mr::4::base": [ "sj-mr-4-gx1ag" ], "mr::4::lg": [ "sj-mr-lg-4-3p7i2" ], "mr::4::md": [ "sj-mr-md-4-1uogx" ], "mr::4::sm": [ "sj-mr-sm-4-vb92b" ], "mr::4::xl": [ "sj-mr-xl-4-66qoe" ], "mr::4::xxl": [ "sj-mr-xxl-4-27pcp" ], "mr::5::base": [ "sj-mr-5-h70w5" ], "mr::5::lg": [ "sj-mr-lg-5-3f7wd" ], "mr::5::md": [ "sj-mr-md-5-1uehb" ], "mr::5::sm": [ "sj-mr-sm-5-vl8o0" ], "mr::5::xl": [ "sj-mr-xl-5-6gqa3" ], "mr::5::xxl": [ "sj-mr-xxl-5-2hoye" ], "mr::6::base": [ "sj-mr-6-gd232" ], "mr::6::lg": [ "sj-mr-lg-6-496pg" ], "mr::6::md": [ "sj-mr-md-6-1v8g4" ], "mr::6::sm": [ "sj-mr-sm-6-ur9uy" ], "mr::6::xl": [ "sj-mr-xl-6-5mrh0" ], "mr::6::xxl": [ "sj-mr-xxl-6-1nq5b" ], "mr::8::base": [ "sj-mr-8-ft2vo" ], "mr::8::lg": [ "sj-mr-lg-8-712qe" ], "mr::8::md": [ "sj-mr-md-8-1rclp" ], "mr::8::sm": [ "sj-mr-sm-8-u7ank" ], "mr::8::xl": [ "sj-mr-xl-8-2uvg2" ], "mr::8::xxl": [ "sj-mr-xxl-8-5jkl1" ], "mt::1::base": [ "sj-mt-1-1bdqu" ], "mt::1::lg": [ "sj-mt-lg-1-1xew8" ], "mt::1::md": [ "sj-mt-md-1-u5wcu" ], "mt::1::sm": [ "sj-mt-sm-1-1plcl" ], "mt::1::xl": [ "sj-mt-xl-1-1x2l0" ], "mt::1::xxl": [ "sj-mt-xxl-1-19jaz" ], "mt::10::base": [ "sj-mt-10-1xet0" ], "mt::10::lg": [ "sj-mt-lg-10-1e9zn" ], "mt::10::md": [ "sj-mt-md-10-nmeh8" ], "mt::10::sm": [ "sj-mt-sm-10-hifd0" ], "mt::10::xl": [ "sj-mt-xl-10-1pge1" ], "mt::10::xxl": [ "sj-mt-xxl-10-1c5zs" ], "mt::12::base": [ "sj-mt-12-1wutt" ], "mt::12::lg": [ "sj-mt-lg-12-1dq0g" ], "mt::12::md": [ "sj-mt-md-12-n2f9u" ], "mt::12::sm": [ "sj-mt-sm-12-gyg5m" ], "mt::12::xl": [ "sj-mt-xl-12-1owet" ], "mt::12::xxl": [ "sj-mt-xxl-12-1bm0k" ], "mt::2::base": [ "sj-mt-2-1bnqf" ], "mt::2::lg": [ "sj-mt-lg-2-1x4wm" ], "mt::2::md": [ "sj-mt-md-2-tvwr5" ], "mt::2::sm": [ "sj-mt-sm-2-1pvc7" ], "mt::2::xl": [ "sj-mt-xl-2-1xckm" ], "mt::2::xxl": [ "sj-mt-xxl-2-19tal" ], "mt::3::base": [ "sj-mt-3-1bxq1" ], "mt::3::lg": [ "sj-mt-lg-3-1wux1" ], "mt::3::md": [ "sj-mt-md-3-tlx5g" ], "mt::3::sm": [ "sj-mt-sm-3-1q5bt" ], "mt::3::xl": [ "sj-mt-xl-3-1xmk8" ], "mt::3::xxl": [ "sj-mt-xxl-3-1a3a6" ], "mt::4::base": [ "sj-mt-4-19zst" ], "mt::4::lg": [ "sj-mt-lg-4-1wkxf" ], "mt::4::md": [ "sj-mt-md-4-tbxjr" ], "mt::4::sm": [ "sj-mt-sm-4-1qfbf" ], "mt::4::xl": [ "sj-mt-xl-4-1xwjt" ], "mt::4::xxl": [ "sj-mt-xxl-4-1ad9s" ], "mt::5::base": [ "sj-mt-5-1a9sf" ], "mt::5::lg": [ "sj-mt-lg-5-1waxt" ], "mt::5::md": [ "sj-mt-md-5-t1xy2" ], "mt::5::sm": [ "sj-mt-sm-5-1qpb0" ], "mt::5::xl": [ "sj-mt-xl-5-1y6jf" ], "mt::5::xxl": [ "sj-mt-xxl-5-1an9e" ], "mt::6::base": [ "sj-mt-6-1ajs1" ], "mt::6::lg": [ "sj-mt-lg-6-1w0y8" ], "mt::6::md": [ "sj-mt-md-6-srycd" ], "mt::6::sm": [ "sj-mt-sm-6-1qzam" ], "mt::6::xl": [ "sj-mt-xl-6-1ygj1" ], "mt::6::xxl": [ "sj-mt-xxl-6-1ax90" ], "mt::8::base": [ "sj-mt-8-18vue" ], "mt::8::lg": [ "sj-mt-lg-8-volx9" ], "mt::8::md": [ "sj-mt-md-8-wnss3" ], "mt::8::sm": [ "sj-mt-sm-8-1n3g6" ], "mt::8::xl": [ "sj-mt-xl-8-1ukol" ], "mt::8::xxl": [ "sj-mt-xxl-8-1bh87" ], "mx::1::base": [ "sj-ml-1-105e1", "sj-mr-1-iazax" ], "mx::1::lg": [ "sj-ml-lg-1-1lca6", "sj-mr-lg-1-4j6b5" ], "mx::1::md": [ "sj-ml-md-1-is1f3", "sj-mr-md-1-1taix" ], "mx::1::sm": [ "sj-ml-sm-1-62jog", "sj-mr-sm-1-wp72s" ], "mx::1::xl": [ "sj-ml-xl-1-xn1cs", "sj-mr-xl-1-5crvb" ], "mx::1::xxl": [ "sj-ml-xxl-1-16va0", "sj-mr-xxl-1-3lnd6" ], "mx::10::base": [ "sj-ml-10-2acaw", "sj-mr-10-6mt81" ], "mx::10::lg": [ "sj-ml-lg-10-411n0", "sj-mr-lg-10-10ge8" ], "mx::10::md": [ "sj-ml-md-10-5v9sf", "sj-mr-md-10-1axht" ], "mx::10::sm": [ "sj-ml-sm-10-5niu8", "sj-mr-sm-10-rms9n" ], "mx::10::xl": [ "sj-ml-xl-10-183fz", "sj-mr-xl-10-1hziq" ], "mx::10::xxl": [ "sj-ml-xxl-10-7xbkg", "sj-mr-xxl-10-1dviz" ], "mx::12::base": [ "sj-ml-12-1qd3i", "sj-mr-12-76sff" ], "mx::12::lg": [ "sj-ml-lg-12-3h2fm", "sj-mr-lg-12-110df" ], "mx::12::md": [ "sj-ml-md-12-5bal2", "sj-mr-md-12-1bhh1" ], "mx::12::sm": [ "sj-ml-sm-12-53jmu", "sj-mr-sm-12-s6rh1" ], "mx::12::xl": [ "sj-ml-xl-12-17jgs", "sj-mr-xl-12-1ijhx" ], "mx::12::xxl": [ "sj-ml-xxl-12-7dcd2", "sj-mr-xxl-12-1efi6" ], "mx::2::base": [ "sj-ml-2-10fdn", "sj-mr-2-hh0hu" ], "mx::2::lg": [ "sj-ml-lg-2-1l2ak", "sj-mr-lg-2-5d548" ], "mx::2::md": [ "sj-ml-md-2-ii1te", "sj-mr-md-2-1u4hq" ], "mx::2::sm": [ "sj-ml-sm-2-6cja5", "sj-mr-sm-2-vv89p" ], "mx::2::xl": [ "sj-ml-xl-2-xx0yh", "sj-mr-xl-2-4it28" ], "mx::2::xxl": [ "sj-ml-xxl-2-1guvp", "sj-mr-xxl-2-2rok3" ], "mx::3::base": [ "sj-ml-3-10pd9", "sj-mr-3-hr03j" ], "mx::3::lg": [ "sj-ml-lg-3-1ksay", "sj-mr-lg-3-535ij" ], "mx::3::md": [ "sj-ml-md-3-i827p", "sj-mr-md-3-1tui4" ], "mx::3::sm": [ "sj-ml-sm-3-6mivu", "sj-mr-sm-3-w57ve" ], "mx::3::xl": [ "sj-ml-xl-3-y70k6", "sj-mr-xl-3-4ssnx" ], "mx::3::xxl": [ "sj-ml-xxl-3-1quhe", "sj-mr-xxl-3-31o5s" ], "mx::4::base": [ "sj-ml-4-yrg16", "sj-mr-4-gx1ag" ], "mx::4::lg": [ "sj-ml-lg-4-1kibd", "sj-mr-lg-4-3p7i2" ], "mx::4::md": [ "sj-ml-md-4-hy2m0", "sj-mr-md-4-1uogx" ], "mx::4::sm": [ "sj-ml-sm-4-6wihj", "sj-mr-sm-4-vb92b" ], "mx::4::xl": [ "sj-ml-xl-4-yh05v", "sj-mr-xl-4-66qoe" ], "mx::4::xxl": [ "sj-ml-xxl-4-20u33", "sj-mr-xxl-4-27pcp" ], "mx::5::base": [ "sj-ml-5-z1fmv", "sj-mr-5-h70w5" ], "mx::5::lg": [ "sj-ml-lg-5-1k8br", "sj-mr-lg-5-3f7wd" ], "mx::5::md": [ "sj-ml-md-5-ho30b", "sj-mr-md-5-1uehb" ], "mx::5::sm": [ "sj-ml-sm-5-76i38", "sj-mr-sm-5-vl8o0" ], "mx::5::xl": [ "sj-ml-xl-5-yqzrj", "sj-mr-xl-5-6gqa3" ], "mx::5::xxl": [ "sj-ml-xxl-5-2atos", "sj-mr-xxl-5-2hoye" ], "mx::6::base": [ "sj-ml-6-zbf8k", "sj-mr-6-gd232" ], "mx::6::lg": [ "sj-ml-lg-6-1jyc5", "sj-mr-lg-6-496pg" ], "mx::6::md": [ "sj-ml-md-6-he3em", "sj-mr-md-6-1v8g4" ], "mx::6::sm": [ "sj-ml-sm-6-7ghox", "sj-mr-sm-6-ur9uy" ], "mx::6::xl": [ "sj-ml-xl-6-z0zd8", "sj-mr-xl-6-5mrh0" ], "mx::6::xxl": [ "sj-ml-xxl-6-2ktah", "sj-mr-xxl-6-1nq5b" ], "mx::8::base": [ "sj-ml-8-123b9", "sj-mr-8-ft2vo" ], "mx::8::lg": [ "sj-ml-lg-8-1jecy", "sj-mr-lg-8-712qe" ], "mx::8::md": [ "sj-ml-md-8-gu479", "sj-mr-md-8-1rclp" ], "mx::8::sm": [ "sj-ml-sm-8-80gwb", "sj-mr-sm-8-u7ank" ], "mx::8::xl": [ "sj-ml-xl-8-zkykm", "sj-mr-xl-8-2uvg2" ], "mx::8::xxl": [ "sj-ml-xxl-8-1xq2w", "sj-mr-xxl-8-5jkl1" ], "my::1::base": [ "sj-mb-1-13jr0", "sj-mt-1-1bdqu" ], "my::1::lg": [ "sj-mb-lg-1-11x7t", "sj-mt-lg-1-1xew8" ], "my::1::md": [ "sj-mb-md-1-rngdx", "sj-mt-md-1-u5wcu" ], "my::1::sm": [ "sj-mb-sm-1-bgby6", "sj-mt-sm-1-1plcl" ], "my::1::xl": [ "sj-mb-xl-1-12skp", "sj-mt-xl-1-1x2l0" ], "my::1::xxl": [ "sj-mb-xxl-1-m4or2", "sj-mt-xxl-1-19jaz" ], "my::10::base": [ "sj-mb-10-1cj6n", "sj-mt-10-1xet0" ], "my::10::lg": [ "sj-mb-lg-10-10qf3", "sj-mt-lg-10-1e9zn" ], "my::10::md": [ "sj-mb-md-10-boxk6", "s