@yugnex/nexui 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/LICENSE +59 -0
  2. package/css/nexui-base.css +157 -0
  3. package/css/nexui-icons.css +86 -0
  4. package/css/nexui-tokens.css +113 -0
  5. package/css/nexui.css +16 -0
  6. package/dist/assets/geometry.d.ts +98 -0
  7. package/dist/assets/geometry.d.ts.map +1 -0
  8. package/dist/assets/geometry.js +114 -0
  9. package/dist/assets/geometry.js.map +1 -0
  10. package/dist/assets/typography.d.ts +3 -0
  11. package/dist/assets/typography.d.ts.map +1 -0
  12. package/dist/assets/typography.js +178 -0
  13. package/dist/assets/typography.js.map +1 -0
  14. package/dist/core/compiler.d.ts +30 -0
  15. package/dist/core/compiler.d.ts.map +1 -0
  16. package/dist/core/compiler.js +124 -0
  17. package/dist/core/compiler.js.map +1 -0
  18. package/dist/core/cx.d.ts +7 -0
  19. package/dist/core/cx.d.ts.map +1 -0
  20. package/dist/core/cx.js +34 -0
  21. package/dist/core/cx.js.map +1 -0
  22. package/dist/core/matrix.d.ts +118 -0
  23. package/dist/core/matrix.d.ts.map +1 -0
  24. package/dist/core/matrix.js +180 -0
  25. package/dist/core/matrix.js.map +1 -0
  26. package/dist/index.d.ts +27 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +74 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/primitives/avatar.d.ts +8 -0
  31. package/dist/primitives/avatar.d.ts.map +1 -0
  32. package/dist/primitives/avatar.js +146 -0
  33. package/dist/primitives/avatar.js.map +1 -0
  34. package/dist/primitives/badge.d.ts +8 -0
  35. package/dist/primitives/badge.d.ts.map +1 -0
  36. package/dist/primitives/badge.js +88 -0
  37. package/dist/primitives/badge.js.map +1 -0
  38. package/dist/primitives/button.d.ts +10 -0
  39. package/dist/primitives/button.d.ts.map +1 -0
  40. package/dist/primitives/button.js +137 -0
  41. package/dist/primitives/button.js.map +1 -0
  42. package/dist/primitives/checkbox.d.ts +13 -0
  43. package/dist/primitives/checkbox.d.ts.map +1 -0
  44. package/dist/primitives/checkbox.js +107 -0
  45. package/dist/primitives/checkbox.js.map +1 -0
  46. package/dist/primitives/input.d.ts +14 -0
  47. package/dist/primitives/input.d.ts.map +1 -0
  48. package/dist/primitives/input.js +177 -0
  49. package/dist/primitives/input.js.map +1 -0
  50. package/dist/primitives/panel.d.ts +9 -0
  51. package/dist/primitives/panel.d.ts.map +1 -0
  52. package/dist/primitives/panel.js +101 -0
  53. package/dist/primitives/panel.js.map +1 -0
  54. package/dist/primitives/progress.d.ts +8 -0
  55. package/dist/primitives/progress.d.ts.map +1 -0
  56. package/dist/primitives/progress.js +105 -0
  57. package/dist/primitives/progress.js.map +1 -0
  58. package/dist/primitives/separator.d.ts +8 -0
  59. package/dist/primitives/separator.d.ts.map +1 -0
  60. package/dist/primitives/separator.js +69 -0
  61. package/dist/primitives/separator.js.map +1 -0
  62. package/dist/primitives/skeleton.d.ts +8 -0
  63. package/dist/primitives/skeleton.d.ts.map +1 -0
  64. package/dist/primitives/skeleton.js +61 -0
  65. package/dist/primitives/skeleton.js.map +1 -0
  66. package/dist/primitives/spinner.d.ts +8 -0
  67. package/dist/primitives/spinner.d.ts.map +1 -0
  68. package/dist/primitives/spinner.js +64 -0
  69. package/dist/primitives/spinner.js.map +1 -0
  70. package/dist/primitives/status-ring.d.ts +8 -0
  71. package/dist/primitives/status-ring.d.ts.map +1 -0
  72. package/dist/primitives/status-ring.js +101 -0
  73. package/dist/primitives/status-ring.js.map +1 -0
  74. package/dist/primitives/switch.d.ts +12 -0
  75. package/dist/primitives/switch.d.ts.map +1 -0
  76. package/dist/primitives/switch.js +124 -0
  77. package/dist/primitives/switch.js.map +1 -0
  78. package/dist/primitives/text-stream.d.ts +23 -0
  79. package/dist/primitives/text-stream.d.ts.map +1 -0
  80. package/dist/primitives/text-stream.js +167 -0
  81. package/dist/primitives/text-stream.js.map +1 -0
  82. package/dist/tokens/colors.d.ts +127 -0
  83. package/dist/tokens/colors.d.ts.map +1 -0
  84. package/dist/tokens/colors.js +135 -0
  85. package/dist/tokens/colors.js.map +1 -0
  86. package/dist/tokens/motion.d.ts +37 -0
  87. package/dist/tokens/motion.d.ts.map +1 -0
  88. package/dist/tokens/motion.js +93 -0
  89. package/dist/tokens/motion.js.map +1 -0
  90. package/dist/tokens/shadows.d.ts +34 -0
  91. package/dist/tokens/shadows.d.ts.map +1 -0
  92. package/dist/tokens/shadows.js +45 -0
  93. package/dist/tokens/shadows.js.map +1 -0
  94. package/dist/tokens/spacing.d.ts +69 -0
  95. package/dist/tokens/spacing.d.ts.map +1 -0
  96. package/dist/tokens/spacing.js +71 -0
  97. package/dist/tokens/spacing.js.map +1 -0
  98. package/dist/tokens/type.d.ts +166 -0
  99. package/dist/tokens/type.d.ts.map +1 -0
  100. package/dist/tokens/type.js +215 -0
  101. package/dist/tokens/type.js.map +1 -0
  102. package/fonts/NexuiIcons.woff2 +0 -0
  103. package/fonts/NexuiMono-Regular.otf +0 -0
  104. package/fonts/NexuiMono-Regular.woff2 +0 -0
  105. package/fonts/NexuiSans-Bold.otf +0 -0
  106. package/fonts/NexuiSans-Bold.woff2 +0 -0
  107. package/fonts/NexuiSans-Medium.otf +0 -0
  108. package/fonts/NexuiSans-Medium.woff2 +0 -0
  109. package/fonts/NexuiSans-Regular.otf +0 -0
  110. package/fonts/NexuiSans-Regular.woff2 +0 -0
  111. package/native/Cargo.toml +16 -0
  112. package/native/src/lib.rs +127 -0
  113. package/nexui-utils.css +485 -0
  114. package/package.json +58 -0
  115. package/src/assets/geometry.ts +144 -0
  116. package/src/assets/typography.ts +184 -0
  117. package/src/core/compiler.ts +139 -0
  118. package/src/core/cx.ts +50 -0
  119. package/src/core/matrix.ts +195 -0
  120. package/src/index.ts +78 -0
  121. package/src/primitives/avatar.ts +159 -0
  122. package/src/primitives/badge.ts +98 -0
  123. package/src/primitives/button.ts +149 -0
  124. package/src/primitives/checkbox.ts +113 -0
  125. package/src/primitives/input.ts +187 -0
  126. package/src/primitives/panel.ts +111 -0
  127. package/src/primitives/progress.ts +112 -0
  128. package/src/primitives/separator.ts +73 -0
  129. package/src/primitives/skeleton.ts +68 -0
  130. package/src/primitives/spinner.ts +71 -0
  131. package/src/primitives/status-ring.ts +109 -0
  132. package/src/primitives/switch.ts +134 -0
  133. package/src/primitives/text-stream.ts +187 -0
  134. package/src/tokens/colors.ts +149 -0
  135. package/src/tokens/motion.ts +97 -0
  136. package/src/tokens/shadows.ts +58 -0
  137. package/src/tokens/spacing.ts +79 -0
  138. package/src/tokens/type.ts +224 -0
@@ -0,0 +1,23 @@
1
+ export declare class NexTextStream extends HTMLElement {
2
+ private logBuffer;
3
+ private lineElements;
4
+ private viewport;
5
+ private container;
6
+ private lineCount;
7
+ static readonly MAX_BUFFER = 5000;
8
+ static readonly VISIBLE_ROWS = 50;
9
+ static get observedAttributes(): string[];
10
+ constructor();
11
+ connectedCallback(): void;
12
+ attributeChangedCallback(): void;
13
+ private setupLayout;
14
+ /** Push a single log line. Safe for high-frequency calls (e.g. SSE tokens). */
15
+ pushLogTrace(message: string): void;
16
+ /** Push multiple lines at once (batch). More efficient than repeated pushLogTrace. */
17
+ pushBatch(messages: string[]): void;
18
+ /** Clear all log content. */
19
+ clear(): void;
20
+ private appendRow;
21
+ private scrollToBottom;
22
+ }
23
+ //# sourceMappingURL=text-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-stream.d.ts","sourceRoot":"","sources":["../../src/primitives/text-stream.ts"],"names":[],"mappings":"AA0BA,qBAAa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,SAAS,CAAK;IAEtB,MAAM,CAAC,QAAQ,CAAC,UAAU,QAAU;IACpC,MAAM,CAAC,QAAQ,CAAC,YAAY,MAAM;IAElC,MAAM,KAAK,kBAAkB,aAE5B;;IAOD,iBAAiB;IAIjB,wBAAwB;IAIxB,OAAO,CAAC,WAAW;IAgEnB,+EAA+E;IACxE,YAAY,CAAC,OAAO,EAAE,MAAM;IAuBnC,sFAAsF;IAC/E,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE;IAInC,6BAA6B;IACtB,KAAK;IAOZ,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,cAAc;CAKvB"}
@@ -0,0 +1,167 @@
1
+ // @yugnex/nexui — NexTextStream Web Component
2
+ // Live log stream viewer with virtual tail rendering.
3
+ // XSS-safe: all user content set via textContent, never innerHTML.
4
+ // Performance: incremental DOM append, not full rebuild per message.
5
+ import { nexui_compiler } from "../core/compiler";
6
+ function detectFlag(text) {
7
+ const lower = text.toLowerCase();
8
+ if (text.includes("🚨") || lower.includes("error") || lower.includes("fatal"))
9
+ return "error";
10
+ if (text.includes("⚠") || lower.includes("warn"))
11
+ return "warn";
12
+ if (text.includes("✓") || lower.includes("verified") || lower.includes("pass"))
13
+ return "verify";
14
+ if (text.includes("✦") || lower.includes("system") || lower.includes("[sys]"))
15
+ return "system";
16
+ return "default";
17
+ }
18
+ const FLAG_COLORS = {
19
+ error: "var(--nx-error, #EF4444)",
20
+ warn: "var(--nx-warning, #EAB308)",
21
+ verify: "var(--nx-success, #22C55E)",
22
+ system: "var(--nx-accent, #E89010)",
23
+ default: "var(--nx-text, #E6EDF3)",
24
+ };
25
+ export class NexTextStream extends HTMLElement {
26
+ static get observedAttributes() {
27
+ return ["max-rows", "show-numbers"];
28
+ }
29
+ constructor() {
30
+ super();
31
+ this.logBuffer = [];
32
+ this.lineElements = [];
33
+ this.viewport = null;
34
+ this.container = null;
35
+ this.lineCount = 0;
36
+ this.attachShadow({ mode: "open" });
37
+ }
38
+ connectedCallback() {
39
+ this.setupLayout();
40
+ }
41
+ attributeChangedCallback() {
42
+ // No re-render needed for these attrs — they affect future appends only
43
+ }
44
+ setupLayout() {
45
+ if (!this.shadowRoot)
46
+ return;
47
+ const themeCSS = nexui_compiler.getThemeCSS(nexui_compiler.getActiveTheme(), ":host");
48
+ const style = document.createElement("style");
49
+ style.textContent = `
50
+ ${themeCSS}
51
+ :host {
52
+ display: block;
53
+ background-color: var(--nx-bg-void, #040610);
54
+ border: 1px solid var(--nx-border, #1e293b);
55
+ border-radius: 6px;
56
+ padding: 12px;
57
+ font-family: var(--nx-font-mono, 'JetBrains Mono', monospace);
58
+ font-size: 11px;
59
+ line-height: 1.8;
60
+ color: var(--nx-text, #E6EDF3);
61
+ overflow: hidden;
62
+ }
63
+ .viewport {
64
+ max-height: 400px;
65
+ overflow-y: auto;
66
+ scrollbar-width: thin;
67
+ scrollbar-color: rgba(255,255,255,0.12) transparent;
68
+ }
69
+ .viewport::-webkit-scrollbar { width: 4px; }
70
+ .viewport::-webkit-scrollbar-track { background: transparent; }
71
+ .viewport::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); border-radius: 2px; }
72
+ .row {
73
+ display: flex;
74
+ gap: 10px;
75
+ white-space: pre-wrap;
76
+ word-break: break-all;
77
+ padding: 1px 0;
78
+ }
79
+ .num {
80
+ color: var(--nx-text-4, #484F58);
81
+ user-select: none;
82
+ min-width: 36px;
83
+ text-align: right;
84
+ flex-shrink: 0;
85
+ }
86
+ .text {
87
+ flex: 1;
88
+ min-width: 0;
89
+ }
90
+ `;
91
+ const viewport = document.createElement("div");
92
+ viewport.className = "viewport";
93
+ const container = document.createElement("div");
94
+ container.setAttribute("aria-live", "polite");
95
+ container.setAttribute("aria-label", "Log stream");
96
+ viewport.appendChild(container);
97
+ this.shadowRoot.appendChild(style);
98
+ this.shadowRoot.appendChild(viewport);
99
+ this.viewport = viewport;
100
+ this.container = container;
101
+ }
102
+ /** Push a single log line. Safe for high-frequency calls (e.g. SSE tokens). */
103
+ pushLogTrace(message) {
104
+ // Enforce buffer ceiling
105
+ if (this.logBuffer.length >= NexTextStream.MAX_BUFFER) {
106
+ this.logBuffer.shift();
107
+ // Remove the oldest visible row element
108
+ const oldest = this.lineElements.shift();
109
+ if (oldest && this.container)
110
+ this.container.removeChild(oldest);
111
+ }
112
+ this.logBuffer.push(message);
113
+ this.lineCount++;
114
+ this.appendRow(message, this.lineCount);
115
+ // Trim visible rows beyond the virtual window
116
+ const maxVisible = parseInt(this.getAttribute("max-rows") ?? "50", 10);
117
+ while (this.lineElements.length > maxVisible) {
118
+ const old = this.lineElements.shift();
119
+ if (old && this.container)
120
+ this.container.removeChild(old);
121
+ }
122
+ this.scrollToBottom();
123
+ }
124
+ /** Push multiple lines at once (batch). More efficient than repeated pushLogTrace. */
125
+ pushBatch(messages) {
126
+ for (const msg of messages)
127
+ this.pushLogTrace(msg);
128
+ }
129
+ /** Clear all log content. */
130
+ clear() {
131
+ this.logBuffer = [];
132
+ this.lineElements = [];
133
+ this.lineCount = 0;
134
+ if (this.container)
135
+ this.container.textContent = "";
136
+ }
137
+ appendRow(text, lineNumber) {
138
+ if (!this.container)
139
+ return;
140
+ const showNums = this.getAttribute("show-numbers") !== "false";
141
+ const flag = detectFlag(text);
142
+ const color = FLAG_COLORS[flag];
143
+ const row = document.createElement("div");
144
+ row.className = "row";
145
+ if (showNums) {
146
+ const num = document.createElement("span");
147
+ num.className = "num";
148
+ num.textContent = String(lineNumber);
149
+ row.appendChild(num);
150
+ }
151
+ const textSpan = document.createElement("span");
152
+ textSpan.className = "text";
153
+ textSpan.style.color = color;
154
+ textSpan.textContent = text; // textContent — never innerHTML
155
+ row.appendChild(textSpan);
156
+ this.container.appendChild(row);
157
+ this.lineElements.push(row);
158
+ }
159
+ scrollToBottom() {
160
+ if (this.viewport) {
161
+ this.viewport.scrollTop = this.viewport.scrollHeight;
162
+ }
163
+ }
164
+ }
165
+ NexTextStream.MAX_BUFFER = 5000;
166
+ NexTextStream.VISIBLE_ROWS = 50;
167
+ //# sourceMappingURL=text-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-stream.js","sourceRoot":"","sources":["../../src/primitives/text-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ export declare const NEXUI_PALETTE: {
2
+ readonly void: {
3
+ readonly 0: "#000000";
4
+ readonly 50: "#05070C";
5
+ readonly 100: "#0A0D14";
6
+ readonly 200: "#0D1117";
7
+ readonly 300: "#161B22";
8
+ readonly 400: "#1C2128";
9
+ readonly 500: "#21262D";
10
+ readonly 600: "#30363D";
11
+ readonly 700: "#3D444D";
12
+ readonly 800: "#484F58";
13
+ readonly 900: "#6E7681";
14
+ readonly 950: "#8B949E";
15
+ };
16
+ readonly amber: {
17
+ readonly 50: "#FFF8E7";
18
+ readonly 100: "#FDECC8";
19
+ readonly 200: "#F9D07A";
20
+ readonly 300: "#F5B342";
21
+ readonly 400: "#E89010";
22
+ readonly 500: "#C97A0E";
23
+ readonly 600: "#A3630B";
24
+ readonly 700: "#7D4D09";
25
+ readonly 800: "#573606";
26
+ readonly 900: "#3A2304";
27
+ };
28
+ readonly teal: {
29
+ readonly 50: "#E6FFFE";
30
+ readonly 100: "#CCFFFE";
31
+ readonly 200: "#99FFFD";
32
+ readonly 300: "#4DFCF7";
33
+ readonly 400: "#0FD4C6";
34
+ readonly 500: "#0EB5A9";
35
+ readonly 600: "#0B8A81";
36
+ readonly 700: "#086059";
37
+ readonly 800: "#053D38";
38
+ readonly 900: "#021F1C";
39
+ };
40
+ readonly green: {
41
+ readonly 50: "#F0FDF4";
42
+ readonly 100: "#DCFCE7";
43
+ readonly 200: "#BBF7D0";
44
+ readonly 300: "#86EFAC";
45
+ readonly 400: "#4ADE80";
46
+ readonly 500: "#22C55E";
47
+ readonly 600: "#16A34A";
48
+ readonly 700: "#15803D";
49
+ readonly 800: "#166534";
50
+ readonly 900: "#14532D";
51
+ };
52
+ readonly red: {
53
+ readonly 50: "#FEF2F2";
54
+ readonly 100: "#FEE2E2";
55
+ readonly 200: "#FECACA";
56
+ readonly 300: "#FCA5A5";
57
+ readonly 400: "#F87171";
58
+ readonly 500: "#EF4444";
59
+ readonly 600: "#DC2626";
60
+ readonly 700: "#B91C1C";
61
+ readonly 800: "#991B1B";
62
+ readonly 900: "#7F1D1D";
63
+ };
64
+ readonly yellow: {
65
+ readonly 400: "#FACC15";
66
+ readonly 500: "#EAB308";
67
+ readonly 600: "#CA8A04";
68
+ };
69
+ };
70
+ export declare const NEXUI_SEMANTIC_VOID: {
71
+ readonly "bg-void": "#05070C";
72
+ readonly "bg-base": "#0D1117";
73
+ readonly "bg-surface": "#161B22";
74
+ readonly "bg-elevated": "#1C2128";
75
+ readonly "bg-overlay": "#21262D";
76
+ readonly border: "rgba(255,255,255,0.08)";
77
+ readonly "border-strong": "rgba(255,255,255,0.16)";
78
+ readonly "border-focus": "rgba(232,144,16,0.60)";
79
+ readonly "text-primary": "#E6EDF3";
80
+ readonly "text-secondary": "#8B949E";
81
+ readonly "text-dim": "#6E7681";
82
+ readonly "text-ghost": "#484F58";
83
+ readonly "text-inverse": "#05070C";
84
+ readonly accent: "#E89010";
85
+ readonly "accent-dim": "rgba(232,144,16,0.09)";
86
+ readonly "accent-border": "rgba(232,144,16,0.22)";
87
+ readonly "accent-text": "#F5B342";
88
+ readonly live: "#0FD4C6";
89
+ readonly "live-dim": "rgba(15,212,198,0.09)";
90
+ readonly "live-border": "rgba(15,212,198,0.22)";
91
+ readonly success: "#22C55E";
92
+ readonly "success-dim": "rgba(34,197,94,0.10)";
93
+ readonly error: "#EF4444";
94
+ readonly "error-dim": "rgba(239,68,68,0.10)";
95
+ readonly warning: "#EAB308";
96
+ readonly "warning-dim": "rgba(234,179,8,0.10)";
97
+ };
98
+ export declare const NEXUI_SEMANTIC_TERMINAL: {
99
+ readonly "bg-void": "#000000";
100
+ readonly "bg-base": "#050505";
101
+ readonly "bg-surface": "#0C0E12";
102
+ readonly "bg-elevated": "#111418";
103
+ readonly "bg-overlay": "#161B22";
104
+ readonly border: "#1E293B";
105
+ readonly "border-strong": "#2D3748";
106
+ readonly "border-focus": "rgba(16,185,129,0.60)";
107
+ readonly "text-primary": "#10B981";
108
+ readonly "text-secondary": "#6EE7B7";
109
+ readonly "text-dim": "#34D399";
110
+ readonly "text-ghost": "#065F46";
111
+ readonly "text-inverse": "#000000";
112
+ readonly accent: "#E89010";
113
+ readonly "accent-dim": "rgba(232,144,16,0.09)";
114
+ readonly "accent-border": "rgba(232,144,16,0.22)";
115
+ readonly "accent-text": "#F5B342";
116
+ readonly live: "#10B981";
117
+ readonly "live-dim": "rgba(16,185,129,0.09)";
118
+ readonly "live-border": "rgba(16,185,129,0.22)";
119
+ readonly success: "#10B981";
120
+ readonly "success-dim": "rgba(16,185,129,0.10)";
121
+ readonly error: "#EF4444";
122
+ readonly "error-dim": "rgba(239,68,68,0.10)";
123
+ readonly warning: "#EAB308";
124
+ readonly "warning-dim": "rgba(234,179,8,0.10)";
125
+ };
126
+ export type NexuiSemanticToken = keyof typeof NEXUI_SEMANTIC_VOID;
127
+ //# sourceMappingURL=colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/tokens/colors.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoEhB,CAAC;AAGX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCtB,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC1B,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,mBAAmB,CAAC"}
@@ -0,0 +1,135 @@
1
+ // @yugnex/nexui — Sovereign Color System
2
+ // Zero external dependencies. All values hand-authored.
3
+ export const NEXUI_PALETTE = {
4
+ void: {
5
+ 0: "#000000",
6
+ 50: "#05070C",
7
+ 100: "#0A0D14",
8
+ 200: "#0D1117",
9
+ 300: "#161B22",
10
+ 400: "#1C2128",
11
+ 500: "#21262D",
12
+ 600: "#30363D",
13
+ 700: "#3D444D",
14
+ 800: "#484F58",
15
+ 900: "#6E7681",
16
+ 950: "#8B949E",
17
+ },
18
+ amber: {
19
+ 50: "#FFF8E7",
20
+ 100: "#FDECC8",
21
+ 200: "#F9D07A",
22
+ 300: "#F5B342",
23
+ 400: "#E89010",
24
+ 500: "#C97A0E",
25
+ 600: "#A3630B",
26
+ 700: "#7D4D09",
27
+ 800: "#573606",
28
+ 900: "#3A2304",
29
+ },
30
+ teal: {
31
+ 50: "#E6FFFE",
32
+ 100: "#CCFFFE",
33
+ 200: "#99FFFD",
34
+ 300: "#4DFCF7",
35
+ 400: "#0FD4C6",
36
+ 500: "#0EB5A9",
37
+ 600: "#0B8A81",
38
+ 700: "#086059",
39
+ 800: "#053D38",
40
+ 900: "#021F1C",
41
+ },
42
+ green: {
43
+ 50: "#F0FDF4",
44
+ 100: "#DCFCE7",
45
+ 200: "#BBF7D0",
46
+ 300: "#86EFAC",
47
+ 400: "#4ADE80",
48
+ 500: "#22C55E",
49
+ 600: "#16A34A",
50
+ 700: "#15803D",
51
+ 800: "#166534",
52
+ 900: "#14532D",
53
+ },
54
+ red: {
55
+ 50: "#FEF2F2",
56
+ 100: "#FEE2E2",
57
+ 200: "#FECACA",
58
+ 300: "#FCA5A5",
59
+ 400: "#F87171",
60
+ 500: "#EF4444",
61
+ 600: "#DC2626",
62
+ 700: "#B91C1C",
63
+ 800: "#991B1B",
64
+ 900: "#7F1D1D",
65
+ },
66
+ yellow: {
67
+ 400: "#FACC15",
68
+ 500: "#EAB308",
69
+ 600: "#CA8A04",
70
+ },
71
+ };
72
+ // Semantic layer — what components reference, never raw palette values
73
+ export const NEXUI_SEMANTIC_VOID = {
74
+ // Surfaces (ground → highest elevation)
75
+ "bg-void": NEXUI_PALETTE.void[50],
76
+ "bg-base": NEXUI_PALETTE.void[200],
77
+ "bg-surface": NEXUI_PALETTE.void[300],
78
+ "bg-elevated": NEXUI_PALETTE.void[400],
79
+ "bg-overlay": NEXUI_PALETTE.void[500],
80
+ // Borders
81
+ "border": "rgba(255,255,255,0.08)",
82
+ "border-strong": "rgba(255,255,255,0.16)",
83
+ "border-focus": "rgba(232,144,16,0.60)",
84
+ // Text hierarchy
85
+ "text-primary": "#E6EDF3",
86
+ "text-secondary": NEXUI_PALETTE.void[950],
87
+ "text-dim": NEXUI_PALETTE.void[900],
88
+ "text-ghost": NEXUI_PALETTE.void[800],
89
+ "text-inverse": NEXUI_PALETTE.void[50],
90
+ // Accent (amber — primary brand)
91
+ "accent": NEXUI_PALETTE.amber[400],
92
+ "accent-dim": "rgba(232,144,16,0.09)",
93
+ "accent-border": "rgba(232,144,16,0.22)",
94
+ "accent-text": NEXUI_PALETTE.amber[300],
95
+ // Live / activity (teal)
96
+ "live": NEXUI_PALETTE.teal[400],
97
+ "live-dim": "rgba(15,212,198,0.09)",
98
+ "live-border": "rgba(15,212,198,0.22)",
99
+ // Status
100
+ "success": NEXUI_PALETTE.green[500],
101
+ "success-dim": "rgba(34,197,94,0.10)",
102
+ "error": NEXUI_PALETTE.red[500],
103
+ "error-dim": "rgba(239,68,68,0.10)",
104
+ "warning": NEXUI_PALETTE.yellow[500],
105
+ "warning-dim": "rgba(234,179,8,0.10)",
106
+ };
107
+ export const NEXUI_SEMANTIC_TERMINAL = {
108
+ "bg-void": "#000000",
109
+ "bg-base": "#050505",
110
+ "bg-surface": "#0C0E12",
111
+ "bg-elevated": "#111418",
112
+ "bg-overlay": "#161B22",
113
+ "border": "#1E293B",
114
+ "border-strong": "#2D3748",
115
+ "border-focus": "rgba(16,185,129,0.60)",
116
+ "text-primary": "#10B981",
117
+ "text-secondary": "#6EE7B7",
118
+ "text-dim": "#34D399",
119
+ "text-ghost": "#065F46",
120
+ "text-inverse": "#000000",
121
+ "accent": NEXUI_PALETTE.amber[400],
122
+ "accent-dim": "rgba(232,144,16,0.09)",
123
+ "accent-border": "rgba(232,144,16,0.22)",
124
+ "accent-text": NEXUI_PALETTE.amber[300],
125
+ "live": "#10B981",
126
+ "live-dim": "rgba(16,185,129,0.09)",
127
+ "live-border": "rgba(16,185,129,0.22)",
128
+ "success": "#10B981",
129
+ "success-dim": "rgba(16,185,129,0.10)",
130
+ "error": NEXUI_PALETTE.red[500],
131
+ "error-dim": "rgba(239,68,68,0.10)",
132
+ "warning": NEXUI_PALETTE.yellow[500],
133
+ "warning-dim": "rgba(234,179,8,0.10)",
134
+ };
135
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/tokens/colors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ export declare const NEXUI_EASING: {
2
+ readonly standard: "cubic-bezier(0.2, 0, 0, 1)";
3
+ readonly decelerate: "cubic-bezier(0, 0, 0.2, 1)";
4
+ readonly accelerate: "cubic-bezier(0.3, 0, 1, 1)";
5
+ readonly linear: "linear";
6
+ readonly spring: "cubic-bezier(0.34, 1.56, 0.64, 1)";
7
+ readonly sharp: "cubic-bezier(0.4, 0, 0.6, 1)";
8
+ };
9
+ export declare const NEXUI_DURATION: {
10
+ readonly 50: "50ms";
11
+ readonly 100: "100ms";
12
+ readonly 150: "150ms";
13
+ readonly 200: "200ms";
14
+ readonly 300: "300ms";
15
+ readonly 400: "400ms";
16
+ readonly 500: "500ms";
17
+ readonly 700: "700ms";
18
+ readonly 1000: "1000ms";
19
+ };
20
+ export declare const NEXUI_TRANSITION: {
21
+ readonly instant: "all 50ms cubic-bezier(0.4, 0, 0.6, 1)";
22
+ readonly fast: "all 100ms cubic-bezier(0.2, 0, 0, 1)";
23
+ readonly base: "all 200ms cubic-bezier(0.2, 0, 0, 1)";
24
+ readonly smooth: "all 300ms cubic-bezier(0, 0, 0.2, 1)";
25
+ readonly slow: "all 500ms cubic-bezier(0, 0, 0.2, 1)";
26
+ readonly none: "none";
27
+ readonly colors: "color 150ms cubic-bezier(0.2, 0, 0, 1), background-color 150ms cubic-bezier(0.2, 0, 0, 1), border-color 150ms cubic-bezier(0.2, 0, 0, 1), fill 150ms cubic-bezier(0.2, 0, 0, 1), stroke 150ms cubic-bezier(0.2, 0, 0, 1)";
28
+ readonly opacity: "opacity 200ms cubic-bezier(0.2, 0, 0, 1)";
29
+ readonly transform: "transform 200ms cubic-bezier(0.2, 0, 0, 1)";
30
+ readonly ring: "box-shadow 150ms cubic-bezier(0.2, 0, 0, 1)";
31
+ readonly "slide-in": "transform 300ms cubic-bezier(0, 0, 0.2, 1), opacity 300ms cubic-bezier(0, 0, 0.2, 1)";
32
+ readonly "slide-out": "transform 200ms cubic-bezier(0.3, 0, 1, 1), opacity 200ms cubic-bezier(0.3, 0, 1, 1)";
33
+ readonly scale: "transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1)";
34
+ readonly "ring-score": "stroke-dashoffset 700ms cubic-bezier(0, 0, 0.2, 1)";
35
+ };
36
+ export declare const NEXUI_KEYFRAMES = "\n@keyframes nx-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n@keyframes nx-fade-out {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n@keyframes nx-slide-up {\n from { opacity: 0; transform: translateY(8px); }\n to { opacity: 1; transform: translateY(0); }\n}\n@keyframes nx-slide-down {\n from { opacity: 0; transform: translateY(-8px); }\n to { opacity: 1; transform: translateY(0); }\n}\n@keyframes nx-scale-in {\n from { opacity: 0; transform: scale(0.95); }\n to { opacity: 1; transform: scale(1); }\n}\n@keyframes nx-spin {\n to { transform: rotate(360deg); }\n}\n@keyframes nx-pulse-ring {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.4; }\n}\n@keyframes nx-shimmer {\n 0% { background-position: -200% 0; }\n 100% { background-position: 200% 0; }\n}\n@keyframes nx-blink {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0; }\n}\n";
37
+ //# sourceMappingURL=motion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion.d.ts","sourceRoot":"","sources":["../../src/tokens/motion.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;;;;;;;CAaf,CAAC;AAEX,eAAO,MAAM,cAAc;;;;;;;;;;CAmBjB,CAAC;AAGX,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;CAiBnB,CAAC;AAGX,eAAO,MAAM,eAAe,83BAoC3B,CAAC"}
@@ -0,0 +1,93 @@
1
+ // @yugnex/nexui — Motion Tokens
2
+ // Easing curves + durations. Matches native platform conventions.
3
+ export const NEXUI_EASING = {
4
+ // Standard — element moves between two screen states
5
+ standard: "cubic-bezier(0.2, 0, 0, 1)",
6
+ // Decelerate — element enters the screen (decelerates to rest)
7
+ decelerate: "cubic-bezier(0, 0, 0.2, 1)",
8
+ // Accelerate — element leaves the screen (accelerates to exit)
9
+ accelerate: "cubic-bezier(0.3, 0, 1, 1)",
10
+ // Linear — progress bars, loaders
11
+ linear: "linear",
12
+ // Spring — interactive, snap, bouncy (for emphasis)
13
+ spring: "cubic-bezier(0.34, 1.56, 0.64, 1)",
14
+ // Sharp — micro-interactions (toggles, chips)
15
+ sharp: "cubic-bezier(0.4, 0, 0.6, 1)",
16
+ };
17
+ export const NEXUI_DURATION = {
18
+ // Micro — icon state change, badge pulse
19
+ 50: "50ms",
20
+ // Fast — tooltip show/hide, focus ring
21
+ 100: "100ms",
22
+ // Quick — button feedback, checkbox
23
+ 150: "150ms",
24
+ // Standard — panel collapse, menu open
25
+ 200: "200ms",
26
+ // Smooth — drawer, modal, tab transitions
27
+ 300: "300ms",
28
+ // Deliberate — page-level transitions
29
+ 400: "400ms",
30
+ // Slow — complex choreography
31
+ 500: "500ms",
32
+ // Elaborate — data visualization entry
33
+ 700: "700ms",
34
+ // Cinematic — splash, hero
35
+ 1000: "1000ms",
36
+ };
37
+ // Semantic transition presets — use these in components
38
+ export const NEXUI_TRANSITION = {
39
+ "instant": `all ${NEXUI_DURATION[50]} ${NEXUI_EASING.sharp}`,
40
+ "fast": `all ${NEXUI_DURATION[100]} ${NEXUI_EASING.standard}`,
41
+ "base": `all ${NEXUI_DURATION[200]} ${NEXUI_EASING.standard}`,
42
+ "smooth": `all ${NEXUI_DURATION[300]} ${NEXUI_EASING.decelerate}`,
43
+ "slow": `all ${NEXUI_DURATION[500]} ${NEXUI_EASING.decelerate}`,
44
+ "none": "none",
45
+ // Specific property transitions (better performance than `all`)
46
+ "colors": `color ${NEXUI_DURATION[150]} ${NEXUI_EASING.standard}, background-color ${NEXUI_DURATION[150]} ${NEXUI_EASING.standard}, border-color ${NEXUI_DURATION[150]} ${NEXUI_EASING.standard}, fill ${NEXUI_DURATION[150]} ${NEXUI_EASING.standard}, stroke ${NEXUI_DURATION[150]} ${NEXUI_EASING.standard}`,
47
+ "opacity": `opacity ${NEXUI_DURATION[200]} ${NEXUI_EASING.standard}`,
48
+ "transform": `transform ${NEXUI_DURATION[200]} ${NEXUI_EASING.standard}`,
49
+ "ring": `box-shadow ${NEXUI_DURATION[150]} ${NEXUI_EASING.standard}`,
50
+ "slide-in": `transform ${NEXUI_DURATION[300]} ${NEXUI_EASING.decelerate}, opacity ${NEXUI_DURATION[300]} ${NEXUI_EASING.decelerate}`,
51
+ "slide-out": `transform ${NEXUI_DURATION[200]} ${NEXUI_EASING.accelerate}, opacity ${NEXUI_DURATION[200]} ${NEXUI_EASING.accelerate}`,
52
+ "scale": `transform ${NEXUI_DURATION[200]} ${NEXUI_EASING.spring}`,
53
+ "ring-score": `stroke-dashoffset ${NEXUI_DURATION[700]} ${NEXUI_EASING.decelerate}`,
54
+ };
55
+ // Keyframe definitions — inject once per page via NexuiTypographySheet or initializeNexuiEngine
56
+ export const NEXUI_KEYFRAMES = `
57
+ @keyframes nx-fade-in {
58
+ from { opacity: 0; }
59
+ to { opacity: 1; }
60
+ }
61
+ @keyframes nx-fade-out {
62
+ from { opacity: 1; }
63
+ to { opacity: 0; }
64
+ }
65
+ @keyframes nx-slide-up {
66
+ from { opacity: 0; transform: translateY(8px); }
67
+ to { opacity: 1; transform: translateY(0); }
68
+ }
69
+ @keyframes nx-slide-down {
70
+ from { opacity: 0; transform: translateY(-8px); }
71
+ to { opacity: 1; transform: translateY(0); }
72
+ }
73
+ @keyframes nx-scale-in {
74
+ from { opacity: 0; transform: scale(0.95); }
75
+ to { opacity: 1; transform: scale(1); }
76
+ }
77
+ @keyframes nx-spin {
78
+ to { transform: rotate(360deg); }
79
+ }
80
+ @keyframes nx-pulse-ring {
81
+ 0%, 100% { opacity: 1; }
82
+ 50% { opacity: 0.4; }
83
+ }
84
+ @keyframes nx-shimmer {
85
+ 0% { background-position: -200% 0; }
86
+ 100% { background-position: 200% 0; }
87
+ }
88
+ @keyframes nx-blink {
89
+ 0%, 100% { opacity: 1; }
90
+ 50% { opacity: 0; }
91
+ }
92
+ `;
93
+ //# sourceMappingURL=motion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion.js","sourceRoot":"","sources":["../../src/tokens/motion.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,kEAAkE;AAElE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,qDAAqD;IACrD,QAAQ,EAAS,4BAA4B;IAC7C,+DAA+D;IAC/D,UAAU,EAAO,4BAA4B;IAC7C,+DAA+D;IAC/D,UAAU,EAAO,4BAA4B;IAC7C,kCAAkC;IAClC,MAAM,EAAW,QAAQ;IACzB,oDAAoD;IACpD,MAAM,EAAW,mCAAmC;IACpD,8CAA8C;IAC9C,KAAK,EAAY,8BAA8B;CACvC,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,yCAAyC;IACzC,EAAE,EAAI,MAAM;IACZ,uCAAuC;IACvC,GAAG,EAAG,OAAO;IACb,oCAAoC;IACpC,GAAG,EAAG,OAAO;IACb,uCAAuC;IACvC,GAAG,EAAG,OAAO;IACb,0CAA0C;IAC1C,GAAG,EAAG,OAAO;IACb,sCAAsC;IACtC,GAAG,EAAG,OAAO;IACb,8BAA8B;IAC9B,GAAG,EAAG,OAAO;IACb,uCAAuC;IACvC,GAAG,EAAG,OAAO;IACb,2BAA2B;IAC3B,IAAI,EAAE,QAAQ;CACN,CAAC;AAEX,wDAAwD;AACxD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,SAAS,EAAK,OAAO,cAAc,CAAC,EAAE,CAAC,KAAK,YAAY,CAAC,KAAK,EAAE;IAChE,MAAM,EAAQ,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE;IACnE,MAAM,EAAQ,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE;IACnE,QAAQ,EAAM,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,UAAU,EAAE;IACrE,MAAM,EAAQ,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,UAAU,EAAE;IACrE,MAAM,EAAQ,MAAM;IAEpB,gEAAgE;IAChE,QAAQ,EAAM,SAAS,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,sBAAsB,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,kBAAkB,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,UAAU,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,YAAY,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE;IACnT,SAAS,EAAK,WAAW,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE;IACvE,WAAW,EAAG,aAAa,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE;IACzE,MAAM,EAAQ,cAAc,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE;IAC1E,UAAU,EAAI,aAAa,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,UAAU,aAAa,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,UAAU,EAAE;IACtI,WAAW,EAAG,aAAa,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,UAAU,aAAa,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,UAAU,EAAE;IACtI,OAAO,EAAO,aAAa,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE;IACvE,YAAY,EAAE,qBAAqB,cAAc,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,UAAU,EAAE;CAC3E,CAAC;AAEX,gGAAgG;AAChG,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC9B,CAAC"}
@@ -0,0 +1,34 @@
1
+ export declare const NEXUI_SHADOWS_VOID: {
2
+ readonly none: "none";
3
+ readonly xs: "0 1px 2px rgba(0,0,0,0.40)";
4
+ readonly sm: "0 1px 3px rgba(0,0,0,0.50), 0 1px 2px rgba(0,0,0,0.30)";
5
+ readonly md: "0 4px 6px rgba(0,0,0,0.40), 0 2px 4px rgba(0,0,0,0.30)";
6
+ readonly lg: "0 10px 15px rgba(0,0,0,0.50), 0 4px 6px rgba(0,0,0,0.30)";
7
+ readonly xl: "0 20px 25px rgba(0,0,0,0.55), 0 8px 10px rgba(0,0,0,0.30)";
8
+ readonly "2xl": "0 25px 50px rgba(0,0,0,0.65)";
9
+ readonly "glow-accent": "0 0 0 3px rgba(232,144,16,0.30), 0 0 16px rgba(232,144,16,0.12)";
10
+ readonly "glow-live": "0 0 0 3px rgba(15,212,198,0.25), 0 0 16px rgba(15,212,198,0.10)";
11
+ readonly "glow-success": "0 0 0 3px rgba(34,197,94,0.25), 0 0 12px rgba(34,197,94,0.08)";
12
+ readonly "glow-error": "0 0 0 3px rgba(239,68,68,0.30), 0 0 12px rgba(239,68,68,0.10)";
13
+ readonly focus: "0 0 0 2px #0D1117, 0 0 0 4px rgba(232,144,16,0.60)";
14
+ readonly inner: "inset 0 2px 4px rgba(0,0,0,0.40)";
15
+ readonly "inner-strong": "inset 0 2px 8px rgba(0,0,0,0.60)";
16
+ };
17
+ export declare const NEXUI_SHADOWS_TERMINAL: {
18
+ readonly none: "none";
19
+ readonly xs: "0 1px 2px rgba(0,0,0,0.70)";
20
+ readonly sm: "0 1px 3px rgba(0,0,0,0.80), 0 1px 2px rgba(0,0,0,0.50)";
21
+ readonly md: "0 4px 6px rgba(0,0,0,0.70), 0 2px 4px rgba(0,0,0,0.50)";
22
+ readonly lg: "0 10px 15px rgba(0,0,0,0.80), 0 4px 6px rgba(0,0,0,0.50)";
23
+ readonly xl: "0 20px 25px rgba(0,0,0,0.85), 0 8px 10px rgba(0,0,0,0.50)";
24
+ readonly "2xl": "0 25px 50px rgba(0,0,0,0.90)";
25
+ readonly "glow-accent": "0 0 0 3px rgba(232,144,16,0.30), 0 0 16px rgba(232,144,16,0.12)";
26
+ readonly "glow-live": "0 0 0 3px rgba(16,185,129,0.30), 0 0 16px rgba(16,185,129,0.12)";
27
+ readonly "glow-success": "0 0 0 3px rgba(16,185,129,0.30), 0 0 12px rgba(16,185,129,0.10)";
28
+ readonly "glow-error": "0 0 0 3px rgba(239,68,68,0.35), 0 0 12px rgba(239,68,68,0.12)";
29
+ readonly focus: "0 0 0 2px #000000, 0 0 0 4px rgba(16,185,129,0.60)";
30
+ readonly inner: "inset 0 2px 4px rgba(0,0,0,0.70)";
31
+ readonly "inner-strong": "inset 0 2px 8px rgba(0,0,0,0.90)";
32
+ };
33
+ export type ShadowKey = keyof typeof NEXUI_SHADOWS_VOID;
34
+ //# sourceMappingURL=shadows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadows.d.ts","sourceRoot":"","sources":["../../src/tokens/shadows.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;CAkCrB,CAAC;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;CAgBzB,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,kBAAkB,CAAC"}