UNPKG

@tachui/modifiers

Version:

Essential styling modifiers for tachUI framework

886 lines (885 loc) 25.3 kB
var x = Object.defineProperty; var v = (r, o, e) => o in r ? x(r, o, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[o] = e; var s = (r, o, e) => v(r, typeof o != "symbol" ? o + "" : o, e); import { globalModifierRegistry as A } from "@tachui/core/modifiers/registry"; import { B as u } from "./base-CkGf4b9G.js"; import { a as yt, A as It, I as xt, L as vt, b as At } from "./base-CkGf4b9G.js"; import { ModifierPriority as St } from "@tachui/core/modifiers/types"; import { l as w, n as S, o as M, r as T, p as C, s as $, z as P } from "./overlay-DDiSLprp.js"; import { A as Tt, m as Ct, F as $t, O as Pt, q as Rt, P as Et, S as Bt, Z as Vt, d as kt, e as zt, c as Dt, h as Ot, a as Lt, b as Nt, i as Ut, f as Ht, k as jt, g as Wt, j as Ft } from "./overlay-DDiSLprp.js"; import { f as R, g as E, h as B, u as V } from "./css-CJEXRr6H.js"; import { C as qt, U as Gt, i as Zt, c as _t, d as Xt, b as Yt, e as Jt, a as Qt, o as er } from "./css-CJEXRr6H.js"; import { b as k, i as z, y as D, A as O, v as L } from "./clipped-CCW8gJqJ.js"; import { a as rr, B as ir, h as or, x as ar, z as nr, C as sr, F as dr, c as lr, d as cr, e as fr, l as pr, q as ur, n as mr, m as gr, k as br, j as hr, p as yr, t as Ir, u as xr, w as vr, f as Ar, g as wr, o as Sr, r as Mr, s as Tr } from "./clipped-CCW8gJqJ.js"; import { t as N, a as U, j as H } from "./font-3qM2Z97N.js"; import { T as $r, k as Pr, i as Rr, f as Er, d as Br, e as Vr, l as kr, o as zr, s as Dr, h as Or, c as Lr, g as Nr, b as Ur, w as Hr } from "./font-3qM2Z97N.js"; import { lineClamp as j, wordBreak as W } from "./typography/text.js"; import { HyphensModifier as Wr, LineClampModifier as Fr, OverflowWrapModifier as Kr, WordBreakModifier as qr, hyphens as Gr, overflowWrap as Zr } from "./typography/text.js"; import { u as F, l as K, m as q, n as G, i as Z, k as _, q as X, g as Y, s as J, a as Q, o as ee, b as te, c as re, d as ie, e as oe, f as ae } from "./allows-hit-testing-DscPrcOw.js"; import { A as Xr, j as Yr, F as Jr, K as Qr, p as ei, O as ti, S as ri, w as ii, v as oi, h as ai, t as ni, r as si } from "./allows-hit-testing-DscPrcOw.js"; import { padding as ne, paddingTop as se, paddingBottom as de, paddingLeft as le, paddingRight as ce, paddingLeading as fe, paddingTrailing as pe, paddingHorizontal as ue, paddingVertical as me } from "./basic/padding.js"; import { PaddingModifier as li, paddingPresets as ci } from "./basic/padding.js"; import { margin as ge, marginTop as be, marginBottom as he, marginLeft as ye, marginRight as Ie, marginLeading as xe, marginTrailing as ve, marginHorizontal as Ae, marginVertical as we } from "./basic/margin.js"; import { MarginModifier as pi, marginPresets as ui } from "./basic/margin.js"; import { size as Se, width as Me, height as Te, maxWidth as Ce, maxHeight as $e, minWidth as Pe, minHeight as Re } from "./basic/size.js"; import { SizeModifier as gi } from "./basic/size.js"; import { BaseModifier as Ee } from "./base.js"; const c = class c extends Ee { constructor() { super(...arguments); s(this, "type", "pseudoElement"); s(this, "priority", 50); } apply(e, t) { if (!t.element) return; const i = `tachui-pseudo-${++c.elementCount}`; t.element.classList.add(i), this.properties.before && this.addPseudoElementRule(i, "before", this.properties.before), this.properties.after && this.addPseudoElementRule(i, "after", this.properties.after); } addPseudoElementRule(e, t, i) { const a = this.getOrCreateStyleSheet(), n = this.generatePseudoElementCSS(e, t, i); try { a.insertRule(n); } catch (d) { (typeof process > "u" || process.env.NODE_ENV !== "test") && console.warn("Failed to add pseudo-element rule:", d); } } generatePseudoElementCSS(e, t, i) { const a = `.${e}::${t}`, n = []; return i.content || (i.content = '""'), Object.entries(i).forEach(([d, l]) => { if (l !== void 0) { const y = this.toCSSProperty(d), I = this.formatCSSValue(d, l); n.push(`${y}: ${I}`); } }), `${a} { ${n.join("; ")} }`; } formatCSSValue(e, t) { return e === "content" ? typeof t == "string" ? !t.startsWith('"') && !t.startsWith("'") ? `"${t.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"` : t : '""' : typeof t == "number" ? [ "opacity", "z-index", "line-height", "flex-grow", "flex-shrink", "order", "column-count", "font-weight" ].includes(this.toCSSProperty(e)) ? String(t) : `${t}px` : String(t); } getOrCreateStyleSheet() { const e = document.getElementById( c.styleSheetId ); if (e && e instanceof HTMLStyleElement) return e.sheet; const t = document.createElement("style"); t.id = c.styleSheetId; try { document.head.appendChild(t); } catch (i) { (typeof process > "u" || process.env.NODE_ENV !== "test") && console.warn("Failed to append stylesheet to document.head:", i); } return t.sheet; } toCSSProperty(e) { return e.replace(/([A-Z])/g, "-$1").toLowerCase(); } }; // High priority to ensure pseudo-elements are applied last s(c, "styleSheetId", "tachui-pseudo-elements"), s(c, "elementCount", 0); let f = c; function p(r) { return new f({ before: r }); } function m(r) { return new f({ after: r }); } function Be(r) { return new f(r); } function Ve(r, o = {}) { return p({ content: r, display: "inline-block", ...o }); } function ke(r, o = {}) { return m({ content: r, display: "inline-block", ...o }); } function ze(r = "#ddd", o = 1, e = 16) { return p({ content: "", display: "inline-block", width: e, height: o, backgroundColor: r, marginRight: 8, verticalAlign: "middle" }); } function De(r = "#ddd", o = 1, e = 16) { return m({ content: "", display: "inline-block", width: e, height: o, backgroundColor: r, marginLeft: 8, verticalAlign: "middle" }); } function Oe(r = '"', o = '"') { return new f({ before: { content: r, fontSize: "1.2em", color: "#666", marginRight: 4 }, after: { content: o, fontSize: "1.2em", color: "#666", marginLeft: 4 } }); } function Le(r = "currentColor", o = 1, e = 1) { return m({ content: "", position: "absolute", bottom: 0, left: 0, right: 0, height: o, backgroundColor: r, opacity: e }); } function Ne(r = "#ff3b30", o = 6, e = "") { return m({ content: e, position: "absolute", top: -2, right: -2, width: e ? "auto" : o, height: o, minWidth: o, backgroundColor: r, borderRadius: "50%", fontSize: 10, color: "white", textAlign: "center", lineHeight: e ? o / 10 : 1, padding: e ? "2px 4px" : 0, display: "flex", alignItems: "center", justifyContent: "center" }); } function Ue(r, o = "top", e = "#333", t = "white") { return p({ content: r, position: "absolute", backgroundColor: e, color: t, padding: "4px 8px", borderRadius: 4, fontSize: 12, whiteSpace: "nowrap", zIndex: 1e3, opacity: 0, pointerEvents: "none", transition: "opacity 0.2s ease", ...{ top: { bottom: "100%", left: "50%", transform: "translateX(-50%)", marginBottom: 5 }, bottom: { top: "100%", left: "50%", transform: "translateX(-50%)", marginTop: 5 }, left: { right: "100%", top: "50%", transform: "translateY(-50%)", marginRight: 5 }, right: { left: "100%", top: "50%", transform: "translateY(-50%)", marginLeft: 5 } }[o] }); } function He(r, o = "#ff3b30", e = "white") { return p({ content: r, position: "absolute", top: 8, right: -8, backgroundColor: o, color: e, padding: "2px 12px", fontSize: 11, fontWeight: "bold", textTransform: "uppercase", transform: "rotate(45deg)", transformOrigin: "center", zIndex: 10 }); } function je(r = 20, o = "#007AFF", e = 2) { if (!document.getElementById("tachui-spinner-animation")) { const t = document.createElement("style"); t.id = "tachui-spinner-animation", t.textContent = ` @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } `, document.head.appendChild(t); } return p({ content: "", display: "inline-block", width: r, height: r, border: `${e}px solid transparent`, borderTop: `${e}px solid ${o}`, borderRadius: "50%", animation: "spin 1s linear infinite" }); } class We extends u { // High priority for HTML attributes constructor(e) { super(e); s(this, "type", "id"); s(this, "priority", 85); } apply(e, t) { if (!t.element) return; const { id: i } = this.properties; typeof process < "u" && process.env.NODE_ENV === "development" && this.validateId(i), t.element.setAttribute("id", i); } validateId(e) { if (!e || typeof e != "string") { console.warn("TachUI ID Modifier: ID must be a non-empty string"); return; } /^[a-zA-Z][a-zA-Z0-9_:-]*$/.test(e) || console.warn( `TachUI ID Modifier: Invalid ID format "${e}". IDs must start with a letter and contain only letters, digits, hyphens, underscores, colons, and periods.` ), typeof document < "u" && document.getElementById && document.getElementById(e) && console.warn( `TachUI ID Modifier: Duplicate ID "${e}" detected. IDs should be unique within the document.` ); } } function Fe(r) { return new We({ id: r }); } class Ke extends u { // High priority for HTML attributes constructor(e) { super(e); s(this, "type", "data"); s(this, "priority", 80); } apply(e, t) { if (!t.element) return; const { data: i } = this.properties; typeof process < "u" && process.env.NODE_ENV === "development" && this.validateDataAttributes(i), Object.entries(i).forEach(([a, n]) => { const d = this.formatDataAttributeName(a), l = this.formatDataAttributeValue(n); t.element.setAttribute(d, l); }); } formatDataAttributeName(e) { const t = e.replace(/[A-Z]/g, (i) => `-${i.toLowerCase()}`); return t.startsWith("data-") ? t : `data-${t}`; } formatDataAttributeValue(e) { return typeof e == "boolean" ? e ? "true" : "false" : String(e); } validateDataAttributes(e) { Object.entries(e).forEach(([t, i]) => { if (!t || typeof t != "string") { console.warn( "TachUI Data Modifier: Data attribute keys must be non-empty strings" ); return; } const a = t.replace(/^data-/, ""); /^[a-zA-Z][a-zA-Z0-9-_]*$/.test(a) || console.warn( `TachUI Data Modifier: Invalid data attribute key "${t}". Keys should start with a letter and contain only letters, numbers, hyphens, and underscores.` ), i != null && typeof i != "string" && typeof i != "number" && typeof i != "boolean" && console.warn( `TachUI Data Modifier: Data attribute "${t}" has invalid value type "${typeof i}". Only strings, numbers, and booleans are supported.` ); }); } } function qe(r) { return new Ke({ data: r }); } class Ge extends u { // High priority for accessibility constructor(e) { super(e); s(this, "type", "tabIndex"); s(this, "priority", 75); } apply(e, t) { if (!t.element) return; const { tabIndex: i } = this.properties; typeof process < "u" && process.env.NODE_ENV === "development" && this.validateTabIndex(i), t.element.setAttribute("tabindex", String(i)); } validateTabIndex(e) { if (typeof e != "number" || !Number.isInteger(e)) { console.warn("TachUI TabIndex Modifier: tabIndex must be an integer"); return; } e > 0 && console.info( 'TachUI TabIndex Modifier: Positive tabIndex values can disrupt natural tab order. Consider using tabIndex="0" for focusable elements and tabIndex="-1" for programmatically focusable elements.' ), e < -1 && console.warn( "TachUI TabIndex Modifier: tabIndex values less than -1 are not recommended. Use -1 to remove from tab order or 0+ for tab order." ); } } function Ze(r) { return new Ge({ tabIndex: r }); } const b = class b extends u { constructor(e) { super(e); s(this, "type", "aria"); s(this, "priority", 90); } apply(e, t) { if (!t.element) return; const { aria: i } = this.properties; typeof process < "u" && process.env.NODE_ENV === "development" && this.validateAriaAttributes(i), Object.entries(i).forEach(([a, n]) => { if (n != null) { const d = this.formatAriaAttributeName(a), l = this.formatAriaAttributeValue(n); t.element.setAttribute(d, l); } }); } formatAriaAttributeName(e) { if (e === "role") return "role"; e === "labeledby" && (e = "labelledby"); const t = e.replace(/[A-Z]/g, (i) => `-${i.toLowerCase()}`); return t.startsWith("aria-") ? t : `aria-${t}`; } formatAriaAttributeValue(e) { return typeof e == "boolean" ? e ? "true" : "false" : String(e); } validateAriaAttributes(e) { Object.entries(e).forEach(([t, i]) => { if (!t || typeof t != "string") { console.warn( "TachUI ARIA Modifier: ARIA attribute keys must be non-empty strings" ); return; } const a = t.replace(/^aria-/, ""); !b.KNOWN_ATTRIBUTES.has(a) && !t.startsWith("aria-") && console.warn( `TachUI ARIA Modifier: Unknown ARIA attribute "${t}". This may not be a valid ARIA attribute. Did you mean "${this.suggestCorrection(a)}"?` ), this.validateSpecificAriaAttribute(t, i); }); } validateSpecificAriaAttribute(e, t) { const i = e.replace(/^aria-/, ""); switch (i) { case "live": ["off", "polite", "assertive"].includes(t) || console.warn( `TachUI ARIA Modifier: Invalid value "${t}" for aria-live. Valid values are: "off", "polite", "assertive"` ); break; case "haspopup": const a = [ "false", "true", "menu", "listbox", "tree", "grid", "dialog" ]; typeof t == "string" && !a.includes(t) && console.warn( `TachUI ARIA Modifier: Invalid value "${t}" for aria-haspopup. Valid values are: ${a.join(", ")}` ); break; case "current": const n = ["page", "step", "location", "date", "time"]; typeof t == "string" && !n.includes(t) && console.warn( `TachUI ARIA Modifier: Invalid value "${t}" for aria-current. Valid values are: false, true, ${n.join(", ")}` ); break; case "invalid": const d = ["false", "true", "grammar", "spelling"]; typeof t == "string" && !d.includes(t) && console.warn( `TachUI ARIA Modifier: Invalid value "${t}" for aria-invalid. Valid values are: ${d.join(", ")}` ); break; case "orientation": ["horizontal", "vertical"].includes(t) || console.warn( `TachUI ARIA Modifier: Invalid value "${t}" for aria-orientation. Valid values are: "horizontal", "vertical"` ); break; case "sort": ["none", "ascending", "descending", "other"].includes( t ) || console.warn( `TachUI ARIA Modifier: Invalid value "${t}" for aria-sort. Valid values are: "none", "ascending", "descending", "other"` ); break; case "pressed": const l = ["true", "false", "mixed"]; typeof t == "string" && !l.includes(t) && console.warn( `TachUI ARIA Modifier: Invalid value "${t}" for aria-pressed. Valid values are: ${l.join(", ")}` ); break; // Numeric attributes validation case "level": case "posinset": case "setsize": case "valuemax": case "valuemin": case "valuenow": typeof t == "number" && (t < 0 || !Number.isInteger(t)) && console.warn( `TachUI ARIA Modifier: Invalid value "${t}" for aria-${i}. Must be a non-negative integer.` ); break; } } suggestCorrection(e) { return { lable: "label", labeledby: "labelledby", descripedby: "describedby", described: "describedby", controled: "controls", controles: "controls", expaned: "expanded", expandd: "expanded", hiden: "hidden", hidde: "hidden", disbled: "disabled", disable: "disabled", requird: "required", require: "required", selectd: "selected", select: "selected", orientaton: "orientation" }[e] || e; } }; // Highest priority for accessibility s(b, "KNOWN_ATTRIBUTES", /* @__PURE__ */ new Set([ "label", "labelledby", "describedby", "expanded", "hidden", "live", "atomic", "busy", "controls", "current", "disabled", "grabbed", "haspopup", "invalid", "level", "multiline", "multiselectable", "orientation", "owns", "placeholder", "posinset", "pressed", "readonly", "relevant", "required", "selected", "setsize", "sort", "valuemax", "valuemin", "valuenow", "valuetext", "role" ])); let h = b; function _e(r) { return new h({ aria: r }); } class g extends u { // Early application for CSS variables constructor(e) { super(e); s(this, "type", "customProperties"); s(this, "priority", 5); } apply(e, t) { if (!t.element) return; const i = this.computeCustomPropertyStyles(this.properties); this.applyStyles(t.element, i); } computeCustomPropertyStyles(e) { const t = {}; return Object.entries(e.properties).forEach(([i, a]) => { const n = i.startsWith("--") ? i : `--${i}`; t[n] = this.formatPropertyValue(a); }), t; } formatPropertyValue(e) { return typeof e == "number" ? e.toString() : String(e); } } function Xe(r) { return new g({ properties: r.properties, scope: r.scope || "local" }); } function Ye(r, o, e) { return new g({ properties: { [r]: o }, scope: e || "local" }); } function Je(r) { return new g({ properties: r, scope: "local" }); } function mt(r) { const o = {}; return Object.entries(r).forEach(([e, t]) => { if (t !== void 0) { const i = e.replace( /[A-Z]/g, (a) => `-${a.toLowerCase()}` ); o[`--theme-color-${i}`] = t; } }), new g({ properties: o, scope: "local" }); } function gt(r) { const o = {}; return Object.entries(r).forEach(([e, t]) => { t !== void 0 && (o[`--token-${e}`] = t); }), new g({ properties: o, scope: "local" }); } const Qe = [ // Basic layout modifiers ["padding", ne], ["paddingTop", se], ["paddingBottom", de], ["paddingLeft", le], ["paddingRight", ce], ["paddingLeading", fe], ["paddingTrailing", pe], ["paddingHorizontal", ue], ["paddingVertical", me], ["margin", ge], ["marginTop", be], ["marginBottom", he], ["marginLeft", ye], ["marginRight", Ie], ["marginLeading", xe], ["marginTrailing", ve], ["marginHorizontal", Ae], ["marginVertical", we], ["size", Se], ["width", Me], ["height", Te], ["maxWidth", Ce], ["maxHeight", $e], ["minWidth", Pe], ["minHeight", Re], // Advanced layout modifiers - only core functions that exist ["aspectRatio", w], ["fixedSize", S], ["offset", M], ["overlay", T], ["position", C], ["scaleEffect", $], ["zIndex", P], // Appearance modifiers - core functions only ["backgroundColor", k], ["border", z], ["clipShape", D], ["clipped", O], ["foregroundColor", L], // Typography modifiers - core functions only ["typography", N], ["textAlign", U], ["font", H], ["lineClamp", j], ["wordBreak", W], // Interaction modifiers ["allowsHitTesting", F], ["focusable", K], ["activatable", q], ["editable", G], ["focused", Z], ["keyboardShortcut", _], ["onContinuousHover", X], ["onLongPressGesture", Y], ["scroll", J], ["scrollBehavior", Q], ["overscrollBehavior", ee], ["overscrollBehaviorX", te], ["overscrollBehaviorY", re], ["scrollMargin", ie], ["scrollPadding", oe], ["scrollSnap", ae], // Utility modifiers ["css", R], ["cssProperty", E], ["cssVariable", B], ["utility", V], // Attribute modifiers ["aria", _e], ["customProperties", Xe], ["customProperty", Ye], ["cssVariables", Je], ["id", Fe], ["data", qe], ["tabIndex", Ze], // Element modifiers ["before", p], ["after", m], ["pseudoElements", Be], ["iconBefore", Ve], ["iconAfter", ke], ["lineBefore", ze], ["lineAfter", De], ["quotes", Oe], ["underline", Le], ["badge", Ne], ["tooltip", Ue], ["cornerRibbon", He], ["spinner", je] ]; function et() { let r = 0, o = 0; Qe.forEach(([e, t]) => { try { A.register(e, t), r++; } catch (i) { console.warn(`Failed to register modifier '${e}':`, i), o++; } }), console.log( `@tachui/modifiers: Registered ${r} modifiers${o > 0 ? `, ${o} failed` : ""}` ); } et(); export { Xr as AllowsHitTestingModifier, yt as AnimationModifier, It as AppearanceModifier, h as AriaModifier, Tt as AspectRatioModifier, rr as BackgroundClipModifier, ir as BackgroundModifier, u as BaseModifier, or as BorderModifier, qt as CSSModifier, ar as ClipShapeModifier, nr as ClippedModifier, sr as CornerRadiusModifier, g as CustomPropertiesModifier, Ke as DataModifier, Ct as FixedSizeModifier, $t as FlexboxModifier, Yr as FocusableModifier, Jr as FocusedModifier, dr as ForegroundModifier, Wr as HyphensModifier, We as IdModifier, xt as InteractionModifier, Qr as KeyboardShortcutModifier, vt as LayoutModifier, At as LifecycleModifier, Fr as LineClampModifier, pi as MarginModifier, St as ModifierPriority, Pt as OffsetModifier, ei as OnContinuousHoverModifier, ti as OnLongPressGestureModifier, Kr as OverflowWrapModifier, Rt as OverlayModifier, li as PaddingModifier, Et as PositionModifier, f as PseudoElementModifier, Bt as ScaleEffectModifier, ri as ScrollModifier, gi as SizeModifier, Ge as TabIndexModifier, $r as TypographyModifier, Gt as UtilityModifier, qr as WordBreakModifier, Vt as ZIndexModifier, q as activatable, m as after, kt as alignItems, zt as alignSelf, F as allowsHitTesting, _e as aria, w as aspectRatio, lr as background, cr as backgroundClip, k as backgroundColor, Ne as badge, p as before, fr as blueGradientText, z as border, pr as borderBottom, ur as borderHorizontal, mr as borderLeading, gr as borderLeft, br as borderRight, hr as borderTop, yr as borderTrailing, Ir as borderVertical, D as clipShape, O as clipped, xr as cornerRadius, He as cornerRibbon, R as css, E as cssProperty, B as cssVariable, Je as cssVariables, Zt as cssVendor, _t as cursor, Pr as custom, Xe as customProperties, Ye as customProperty, qe as data, gt as designTokens, ii as disableHitTesting, Xt as display, G as editable, oi as enableHitTesting, S as fixedSize, Dt as flexBasis, Ot as flexDirection, Lt as flexGrow, Nt as flexShrink, Ut as flexWrap, Ht as flexbox, jt as flexboxPresets, K as focusable, Z as focused, H as font, Rr as fontFamily, Er as fontSize, Br as fontWeight, vr as foreground, L as foregroundColor, Wt as gap, Ar as goldGradientText, wr as gradientText, Te as height, Gr as hyphens, ke as iconAfter, Ve as iconBefore, Fe as id, Ft as justifyContent, _ as keyboardShortcut, ai as keyboardShortcutBuilder, Vr as letterSpacing, De as lineAfter, ze as lineBefore, j as lineClamp, kr as lineHeight, ge as margin, he as marginBottom, Ae as marginHorizontal, xe as marginLeading, ye as marginLeft, ui as marginPresets, Ie as marginRight, be as marginTop, ve as marginTrailing, we as marginVertical, $e as maxHeight, Ce as maxWidth, Re as minHeight, Pe as minWidth, Sr as oceanGradientText, M as offset, X as onContinuousHover, ni as onContinuousHoverGlobal, si as onContinuousHoverLocal, Y as onLongPressGesture, Yt as outline, Jt as outlineOffset, zr as overflow, Zr as overflowWrap, Qt as overflowX, er as overflowY, T as overlay, ee as overscrollBehavior, te as overscrollBehaviorX, re as overscrollBehaviorY, ne as padding, de as paddingBottom, ue as paddingHorizontal, fe as paddingLeading, le as paddingLeft, ci as paddingPresets, ce as paddingRight, se as paddingTop, pe as paddingTrailing, me as paddingVertical, C as position, Be as pseudoElements, Oe as quotes, Mr as rainbowGradientText, $ as scaleEffect, J as scroll, Q as scrollBehavior, ie as scrollMargin, oe as scrollPadding, ae as scrollSnap, Se as size, je as spinner, Tr as sunsetGradientText, Dr as system, Ze as tabIndex, U as textAlign, Or as textCase, Lr as textDecoration, Nr as textOverflow, Ur as textTransform, mt as themeColors, Ue as tooltip, N as typography, Le as underline, V as utility, Hr as whiteSpace, Me as width, W as wordBreak, P as zIndex }; //# sourceMappingURL=index.js.map