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
JavaScript
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