@proyecto-viviana/ui 0.4.1 → 0.5.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.
- package/dist/styles.css +0 -3
- package/dist/viviana-tokens.css +240 -171
- package/package.json +3 -57
- package/src/viviana-tokens.css +240 -171
- package/dist/CalendarCard.d.ts +0 -2
- package/dist/CalendarCard.d.ts.map +0 -1
- package/dist/CalendarCard.js +0 -96
- package/dist/CalendarCard.js.map +0 -1
- package/dist/CalendarCard.jsx +0 -50
- package/dist/CalendarCard.jsx.map +0 -1
- package/dist/Chip.d.ts +0 -2
- package/dist/Chip.d.ts.map +0 -1
- package/dist/Chip.js +0 -2
- package/dist/Chip.jsx +0 -2
- package/dist/Conversation.d.ts +0 -2
- package/dist/Conversation.d.ts.map +0 -1
- package/dist/Conversation.js +0 -176
- package/dist/Conversation.js.map +0 -1
- package/dist/Conversation.jsx +0 -106
- package/dist/Conversation.jsx.map +0 -1
- package/dist/EventCard.d.ts +0 -2
- package/dist/EventCard.d.ts.map +0 -1
- package/dist/EventCard.js +0 -171
- package/dist/EventCard.js.map +0 -1
- package/dist/EventCard.jsx +0 -94
- package/dist/EventCard.jsx.map +0 -1
- package/dist/Logo.d.ts +0 -2
- package/dist/Logo.d.ts.map +0 -1
- package/dist/Logo.js +0 -116
- package/dist/Logo.js.map +0 -1
- package/dist/Logo.jsx +0 -101
- package/dist/Logo.jsx.map +0 -1
- package/dist/PageLayout.d.ts +0 -2
- package/dist/PageLayout.d.ts.map +0 -1
- package/dist/PageLayout.js +0 -31
- package/dist/PageLayout.js.map +0 -1
- package/dist/PageLayout.jsx +0 -23
- package/dist/PageLayout.jsx.map +0 -1
- package/dist/ProfileCard.d.ts +0 -2
- package/dist/ProfileCard.d.ts.map +0 -1
- package/dist/ProfileCard.js +0 -77
- package/dist/ProfileCard.js.map +0 -1
- package/dist/ProfileCard.jsx +0 -52
- package/dist/ProfileCard.jsx.map +0 -1
- package/dist/ProjectCard.d.ts +0 -2
- package/dist/ProjectCard.d.ts.map +0 -1
- package/dist/ProjectCard.js +0 -162
- package/dist/ProjectCard.js.map +0 -1
- package/dist/ProjectCard.jsx +0 -131
- package/dist/ProjectCard.jsx.map +0 -1
- package/dist/TimelineItem.d.ts +0 -2
- package/dist/TimelineItem.d.ts.map +0 -1
- package/dist/TimelineItem.js +0 -137
- package/dist/TimelineItem.js.map +0 -1
- package/dist/TimelineItem.jsx +0 -70
- package/dist/TimelineItem.jsx.map +0 -1
- package/dist/chip2.js +0 -82
- package/dist/chip2.js.map +0 -1
- package/dist/chip2.jsx +0 -68
- package/dist/chip2.jsx.map +0 -1
- package/dist/custom/calendar-card/index.d.ts +0 -12
- package/dist/custom/calendar-card/index.d.ts.map +0 -1
- package/dist/custom/chip/index.d.ts +0 -16
- package/dist/custom/chip/index.d.ts.map +0 -1
- package/dist/custom/conversation/index.d.ts +0 -32
- package/dist/custom/conversation/index.d.ts.map +0 -1
- package/dist/custom/event-card/index.d.ts +0 -30
- package/dist/custom/event-card/index.d.ts.map +0 -1
- package/dist/custom/header/index.d.ts +0 -12
- package/dist/custom/header/index.d.ts.map +0 -1
- package/dist/custom/lateral-nav/index.d.ts +0 -32
- package/dist/custom/lateral-nav/index.d.ts.map +0 -1
- package/dist/custom/logo/index.d.ts +0 -11
- package/dist/custom/logo/index.d.ts.map +0 -1
- package/dist/custom/nav-header/index.d.ts +0 -13
- package/dist/custom/nav-header/index.d.ts.map +0 -1
- package/dist/custom/page-layout/index.d.ts +0 -7
- package/dist/custom/page-layout/index.d.ts.map +0 -1
- package/dist/custom/profile-card/index.d.ts +0 -16
- package/dist/custom/profile-card/index.d.ts.map +0 -1
- package/dist/custom/project-card/index.d.ts +0 -13
- package/dist/custom/project-card/index.d.ts.map +0 -1
- package/dist/custom/timeline-item/index.d.ts +0 -28
- package/dist/custom/timeline-item/index.d.ts.map +0 -1
- package/src/CalendarCard.ts +0 -1
- package/src/Chip.ts +0 -1
- package/src/Conversation.ts +0 -1
- package/src/EventCard.ts +0 -1
- package/src/Logo.ts +0 -1
- package/src/PageLayout.ts +0 -1
- package/src/ProfileCard.ts +0 -1
- package/src/ProjectCard.ts +0 -1
- package/src/TimelineItem.ts +0 -1
- package/src/custom/calendar-card/index.tsx +0 -124
- package/src/custom/chip/index.tsx +0 -82
- package/src/custom/conversation/index.tsx +0 -216
- package/src/custom/event-card/index.tsx +0 -253
- package/src/custom/header/index.tsx +0 -64
- package/src/custom/lateral-nav/index.tsx +0 -143
- package/src/custom/logo/index.tsx +0 -60
- package/src/custom/nav-header/index.tsx +0 -106
- package/src/custom/page-layout/index.tsx +0 -33
- package/src/custom/profile-card/index.tsx +0 -123
- package/src/custom/project-card/index.tsx +0 -76
- package/src/custom/timeline-item/index.tsx +0 -148
package/src/viviana-tokens.css
CHANGED
|
@@ -1,88 +1,99 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Viviana
|
|
2
|
+
* Viviana UI design tokens — blue + amber frosted glass.
|
|
3
3
|
*
|
|
4
4
|
* The brand's color palette + typography, owned by the design system itself so
|
|
5
5
|
* the product components are self-contained. The S2 style() macro carries the
|
|
6
6
|
* *shape* (spacing, radius, sizing, type ramp) via its named tokens; these vars
|
|
7
|
-
* supply the *
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* supply the *color* + the *frosted-glass effect* families, referenced from
|
|
8
|
+
* components as arbitrary `[var(--color-*)]` / `[var(--surface-*)]` values.
|
|
9
|
+
*
|
|
10
|
+
* This is the retuned Viviana UI token layer authored on the
|
|
11
|
+
* `design/visual-system-claude-v1` lane (see `.claude/current/visual-system-lane.md`).
|
|
12
|
+
* It supersedes the earlier blue + pink "Silapse" palette: the accent family is
|
|
13
|
+
* now amber (the single warm, one-per-screen action color), blue carries
|
|
14
|
+
* wayfinding/selection, and new **surface / blur / edge-glass / glow / shadow**
|
|
15
|
+
* families express the frosted-glass surface ladder. Semantic
|
|
16
|
+
* success/warning/danger are unchanged. The values are the canonical spec
|
|
17
|
+
* transcribed from the paired design handoff; the Education reference route keeps
|
|
18
|
+
* the same semantic names under its `.vui` scope.
|
|
11
19
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
20
|
+
* Dark is the default (`:root`); light overrides bind to the same
|
|
21
|
+
* `data-color-scheme` attribute solid-spectrum's theme uses, so a single scheme
|
|
22
|
+
* switch flips both layers together. `apps/web` still ships its own copy of the
|
|
23
|
+
* legacy palette until the Tailwind-removal Phase 4 restyle consumes this file
|
|
24
|
+
* directly (`.claude/current/tailwind-removal.md`).
|
|
14
25
|
*/
|
|
15
26
|
|
|
16
27
|
:root {
|
|
17
|
-
/* Grey scale */
|
|
18
|
-
--color-grey-50: #
|
|
19
|
-
--color-grey-100: #
|
|
20
|
-
--color-grey-200: #
|
|
21
|
-
--color-grey-300: #
|
|
22
|
-
--color-grey-400: #
|
|
23
|
-
--color-grey-500: #
|
|
24
|
-
--color-grey-600: #
|
|
25
|
-
--color-grey-700: #
|
|
26
|
-
--color-grey-800: #
|
|
27
|
-
--color-grey-900: #
|
|
28
|
-
|
|
29
|
-
/* Blue scale */
|
|
30
|
-
--color-blue-50: #
|
|
31
|
-
--color-blue-100: #
|
|
32
|
-
--color-blue-200: #
|
|
33
|
-
--color-blue-300: #
|
|
34
|
-
--color-blue-400: #
|
|
35
|
-
--color-blue-500: #
|
|
36
|
-
--color-blue-600: #
|
|
37
|
-
--color-blue-700: #
|
|
38
|
-
--color-blue-800: #
|
|
39
|
-
--color-blue-900: #
|
|
40
|
-
|
|
41
|
-
/*
|
|
42
|
-
--color-
|
|
43
|
-
--color-
|
|
44
|
-
--color-
|
|
45
|
-
--color-
|
|
46
|
-
--color-
|
|
47
|
-
--color-
|
|
48
|
-
--color-
|
|
49
|
-
--color-
|
|
50
|
-
--color-
|
|
51
|
-
--color-
|
|
52
|
-
|
|
53
|
-
/* Background —
|
|
54
|
-
--color-bg-100: #
|
|
55
|
-
--color-bg-200: #
|
|
56
|
-
--color-bg-300: #
|
|
57
|
-
--color-bg-400: #
|
|
58
|
-
--color-bg-light: #
|
|
59
|
-
|
|
60
|
-
/* Primary — blue
|
|
61
|
-
--color-primary: #
|
|
62
|
-
--color-primary-50: #
|
|
63
|
-
--color-primary-100: #
|
|
64
|
-
--color-primary-200: #
|
|
65
|
-
--color-primary-300: #
|
|
66
|
-
--color-primary-400: #
|
|
67
|
-
--color-primary-500: #
|
|
68
|
-
--color-primary-600: #
|
|
69
|
-
--color-primary-700: #
|
|
70
|
-
--color-primary-800: #
|
|
71
|
-
--color-primary-900: #
|
|
72
|
-
|
|
73
|
-
/* Accent —
|
|
74
|
-
--color-accent: #
|
|
75
|
-
--color-accent-50: #
|
|
76
|
-
--color-accent-100: #
|
|
77
|
-
--color-accent-200: #
|
|
78
|
-
--color-accent-300: #
|
|
79
|
-
--color-accent-400: #
|
|
80
|
-
--color-accent-500: #
|
|
81
|
-
--color-accent-600: #
|
|
82
|
-
--color-accent-700: #
|
|
83
|
-
--color-accent-800: #
|
|
84
|
-
--color-accent-900: #
|
|
85
|
-
--color-accent-highlight: #
|
|
28
|
+
/* Grey scale — charcoal-slate neutral ramp */
|
|
29
|
+
--color-grey-50: #f3f4f6;
|
|
30
|
+
--color-grey-100: #d7dce2;
|
|
31
|
+
--color-grey-200: #b9c0c9;
|
|
32
|
+
--color-grey-300: #97a1ab;
|
|
33
|
+
--color-grey-400: #626d78;
|
|
34
|
+
--color-grey-500: #4a545e;
|
|
35
|
+
--color-grey-600: #333c45;
|
|
36
|
+
--color-grey-700: #232d37;
|
|
37
|
+
--color-grey-800: #1a222a;
|
|
38
|
+
--color-grey-900: #10161c;
|
|
39
|
+
|
|
40
|
+
/* Blue scale — wayfinding / selection */
|
|
41
|
+
--color-blue-50: #eaf4fe;
|
|
42
|
+
--color-blue-100: #d4e9fd;
|
|
43
|
+
--color-blue-200: #a8d2fb;
|
|
44
|
+
--color-blue-300: #7cbaf8;
|
|
45
|
+
--color-blue-400: #55a6f6;
|
|
46
|
+
--color-blue-500: #2e90fa;
|
|
47
|
+
--color-blue-600: #1877e8;
|
|
48
|
+
--color-blue-700: #135fc0;
|
|
49
|
+
--color-blue-800: #0e4a99;
|
|
50
|
+
--color-blue-900: #0a2f63;
|
|
51
|
+
|
|
52
|
+
/* Amber scale — the single warm action accent */
|
|
53
|
+
--color-amber-50: #fef4e6;
|
|
54
|
+
--color-amber-100: #fde7c8;
|
|
55
|
+
--color-amber-200: #fcd9a0;
|
|
56
|
+
--color-amber-300: #f9c270;
|
|
57
|
+
--color-amber-400: #f9a838;
|
|
58
|
+
--color-amber-500: #f79009;
|
|
59
|
+
--color-amber-600: #e07b00;
|
|
60
|
+
--color-amber-700: #b86200;
|
|
61
|
+
--color-amber-800: #8f4c00;
|
|
62
|
+
--color-amber-900: #3b2200;
|
|
63
|
+
|
|
64
|
+
/* Background — frosted charcoal ladder (near-opaque worst-case surfaces) */
|
|
65
|
+
--color-bg-100: #2a333c;
|
|
66
|
+
--color-bg-200: #232d37;
|
|
67
|
+
--color-bg-300: #1b242c;
|
|
68
|
+
--color-bg-400: #141a1f;
|
|
69
|
+
--color-bg-light: #33424e;
|
|
70
|
+
|
|
71
|
+
/* Primary — blue */
|
|
72
|
+
--color-primary: #55a6f6;
|
|
73
|
+
--color-primary-50: #0a1826;
|
|
74
|
+
--color-primary-100: #d4e9fd;
|
|
75
|
+
--color-primary-200: #a8d2fb;
|
|
76
|
+
--color-primary-300: #7cbaf8;
|
|
77
|
+
--color-primary-400: #55a6f6;
|
|
78
|
+
--color-primary-500: #2e90fa;
|
|
79
|
+
--color-primary-600: #1877e8;
|
|
80
|
+
--color-primary-700: #135fc0;
|
|
81
|
+
--color-primary-800: #0e4a99;
|
|
82
|
+
--color-primary-900: #0a2f63;
|
|
83
|
+
|
|
84
|
+
/* Accent — amber (high indices lighten for text/marks on dark) */
|
|
85
|
+
--color-accent: #f79009;
|
|
86
|
+
--color-accent-50: #1f1405;
|
|
87
|
+
--color-accent-100: #fde7c8;
|
|
88
|
+
--color-accent-200: #fcd9a0;
|
|
89
|
+
--color-accent-300: #f9c270;
|
|
90
|
+
--color-accent-400: #f9a838;
|
|
91
|
+
--color-accent-500: #f79009;
|
|
92
|
+
--color-accent-600: #f9a838;
|
|
93
|
+
--color-accent-700: #f9c270;
|
|
94
|
+
--color-accent-800: #fde7c8;
|
|
95
|
+
--color-accent-900: #3b2200;
|
|
96
|
+
--color-accent-highlight: #f9c270;
|
|
86
97
|
|
|
87
98
|
/* Semantic colors */
|
|
88
99
|
--color-success-100: #e5fff3;
|
|
@@ -114,36 +125,36 @@
|
|
|
114
125
|
--color-danger-900: #ffe5e5;
|
|
115
126
|
|
|
116
127
|
/* Cards */
|
|
117
|
-
--color-cards-bg: #
|
|
118
|
-
--color-cards-bg-load: #
|
|
128
|
+
--color-cards-bg: #232d37;
|
|
129
|
+
--color-cards-bg-load: #2f3a44;
|
|
119
130
|
--color-correct: #83f1a7;
|
|
120
131
|
--color-incorrect: #e74c3c;
|
|
121
132
|
|
|
122
133
|
/* Canvas */
|
|
123
|
-
--color-canvas-bg: #
|
|
134
|
+
--color-canvas-bg: #10161c;
|
|
124
135
|
|
|
125
|
-
/* Surfaces */
|
|
126
|
-
--color-background: #
|
|
127
|
-
--color-surface: #
|
|
128
|
-
--color-surface-elevated: #
|
|
136
|
+
/* Surfaces (opaque) */
|
|
137
|
+
--color-background: #141a1f;
|
|
138
|
+
--color-surface: #1b242c;
|
|
139
|
+
--color-surface-elevated: #232d37;
|
|
129
140
|
|
|
130
141
|
/* Blue depth backgrounds */
|
|
131
|
-
--color-bg-blue-deep: #
|
|
132
|
-
--color-bg-blue-dark: #
|
|
133
|
-
--color-bg-blue-mid: #
|
|
134
|
-
--color-bg-blue-light: #
|
|
142
|
+
--color-bg-blue-deep: #071726;
|
|
143
|
+
--color-bg-blue-dark: #0a1f33;
|
|
144
|
+
--color-bg-blue-mid: #0e2a44;
|
|
145
|
+
--color-bg-blue-light: #123a5e;
|
|
135
146
|
|
|
136
147
|
/* Text */
|
|
137
|
-
--color-text: #
|
|
138
|
-
--color-text-secondary: #
|
|
139
|
-
--color-text-muted: #
|
|
140
|
-
--color-text-dim: #
|
|
141
|
-
--color-text-disabled: #
|
|
148
|
+
--color-text: #f3f4f6;
|
|
149
|
+
--color-text-secondary: #97a1ab;
|
|
150
|
+
--color-text-muted: #626d78;
|
|
151
|
+
--color-text-dim: #55708a;
|
|
152
|
+
--color-text-disabled: #3a444e;
|
|
142
153
|
|
|
143
154
|
/* Borders */
|
|
144
|
-
--color-border: #
|
|
145
|
-
--color-border-muted: #
|
|
146
|
-
--color-divider: #
|
|
155
|
+
--color-border: #232d37;
|
|
156
|
+
--color-border-muted: #1a222a;
|
|
157
|
+
--color-divider: #1a222a;
|
|
147
158
|
|
|
148
159
|
/* Semantic base + dim */
|
|
149
160
|
--color-success: #3fb950;
|
|
@@ -154,22 +165,51 @@
|
|
|
154
165
|
--color-danger-dim: #da3633;
|
|
155
166
|
|
|
156
167
|
/* Dim versions (wire base / inactive elements) */
|
|
157
|
-
--color-primary-dim: #
|
|
158
|
-
--color-accent-dim: #
|
|
168
|
+
--color-primary-dim: #123a5e;
|
|
169
|
+
--color-accent-dim: #3b2a12;
|
|
159
170
|
|
|
160
171
|
/* Header background */
|
|
161
|
-
--color-header-bg: #
|
|
172
|
+
--color-header-bg: #1b242c;
|
|
162
173
|
|
|
163
|
-
/* Glow effects (for drop-shadow filters) */
|
|
164
|
-
--color-primary-glow: rgba(
|
|
165
|
-
--color-accent-glow: rgba(
|
|
166
|
-
--color-fusion-glow: rgba(
|
|
174
|
+
/* Glow effects (for drop-shadow filters) — blue + amber */
|
|
175
|
+
--color-primary-glow: rgba(46, 144, 250, 0.55);
|
|
176
|
+
--color-accent-glow: rgba(247, 144, 9, 0.5);
|
|
177
|
+
--color-fusion-glow: rgba(139, 92, 246, 0.5);
|
|
167
178
|
|
|
168
179
|
/* Semantic background tints */
|
|
169
180
|
--color-success-bg: rgba(63, 185, 80, 0.1);
|
|
170
181
|
--color-warning-bg: rgba(210, 153, 34, 0.1);
|
|
171
182
|
--color-danger-bg: rgba(248, 81, 73, 0.1);
|
|
172
183
|
|
|
184
|
+
/* ── Frosted-glass surface family (translucent ladder over a lit scene) ── */
|
|
185
|
+
--surface-app: #1e2227;
|
|
186
|
+
--surface-panel: rgba(20, 26, 31, 0.94);
|
|
187
|
+
--surface-card: rgba(27, 36, 44, 0.9);
|
|
188
|
+
--surface-raised: rgba(35, 45, 55, 0.95);
|
|
189
|
+
--surface-inset: rgba(13, 17, 21, 0.72);
|
|
190
|
+
--surface-hover: rgba(42, 53, 64, 0.95);
|
|
191
|
+
--surface-ghost: rgba(30, 36, 41, 0.28);
|
|
192
|
+
|
|
193
|
+
/* Accent surface tints (soft fills for selected/warm states) */
|
|
194
|
+
--accent-primary: var(--color-primary);
|
|
195
|
+
--accent-primary-soft: rgba(46, 144, 250, 0.15);
|
|
196
|
+
--accent-warm: var(--color-accent);
|
|
197
|
+
--accent-warm-soft: rgba(247, 144, 9, 0.15);
|
|
198
|
+
|
|
199
|
+
/* ── Blur family ── */
|
|
200
|
+
--blur-panel: blur(18px);
|
|
201
|
+
--blur-card: blur(10px);
|
|
202
|
+
|
|
203
|
+
/* ── Edge-glass (inner highlight that catches the light) ── */
|
|
204
|
+
--edge-glass: inset 0 1px 0 rgba(255, 255, 255, 0.09), inset 0 0 0 1px rgba(255, 255, 255, 0.04);
|
|
205
|
+
|
|
206
|
+
/* ── Shadow + glow family (glow follows the accent, never the chrome) ── */
|
|
207
|
+
--shadow-card: 0 2px 8px rgba(0, 0, 0, 0.35), 0 8px 24px rgba(0, 0, 0, 0.4);
|
|
208
|
+
--shadow-panel: 0 12px 40px rgba(0, 0, 0, 0.5);
|
|
209
|
+
--shadow-float: 0 16px 48px rgba(0, 0, 0, 0.6);
|
|
210
|
+
--shadow-glow-blue: 0 0 24px rgba(46, 144, 250, 0.35);
|
|
211
|
+
--shadow-glow-warm: 0 0 24px rgba(247, 144, 9, 0.3);
|
|
212
|
+
|
|
173
213
|
/* Typography */
|
|
174
214
|
--font-sen: "Sen", sans-serif;
|
|
175
215
|
--font-jost: "Jost", sans-serif;
|
|
@@ -177,6 +217,8 @@
|
|
|
177
217
|
--font-mono: "JetBrains Mono", monospace;
|
|
178
218
|
--font-title: "Jost", system-ui, sans-serif;
|
|
179
219
|
--font-body: "Sen", system-ui, sans-serif;
|
|
220
|
+
--font-display: var(--font-jost);
|
|
221
|
+
--font-ui: var(--font-sen);
|
|
180
222
|
}
|
|
181
223
|
|
|
182
224
|
[data-color-scheme="light"] {
|
|
@@ -191,55 +233,56 @@
|
|
|
191
233
|
--color-grey-800: #262626;
|
|
192
234
|
--color-grey-900: #171717;
|
|
193
235
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
--color-
|
|
205
|
-
--color-
|
|
206
|
-
--color-
|
|
207
|
-
--color-
|
|
208
|
-
--color-
|
|
209
|
-
--color-
|
|
210
|
-
--color-
|
|
211
|
-
--color-
|
|
212
|
-
--color-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
--color-
|
|
216
|
-
--color-
|
|
217
|
-
--color-
|
|
218
|
-
--color-
|
|
236
|
+
/* Blue + primary FLIP for daylight: the :root (dark) ramp runs light→dark as
|
|
237
|
+
the index climbs, so the low indices (100/200/300 — used as *text*: wordmarks,
|
|
238
|
+
card titles, nav section titles, active links) must invert to dark navy here,
|
|
239
|
+
or they render near-invisible on the light surfaces. Mid index 500 stays a
|
|
240
|
+
readable medium blue (its only text use sits on the light bg-400 bar); 700
|
|
241
|
+
lightens because it is a *fill* (the primary Chip) that carries dark text.
|
|
242
|
+
Same hue as dark — only lightness/saturation shift for AA (WCAG verified
|
|
243
|
+
against the bg-* ladder below). Blue mirrors primary (no direct consumers,
|
|
244
|
+
kept in lockstep for future use). */
|
|
245
|
+
--color-blue-50: #eef5ff;
|
|
246
|
+
--color-blue-100: #08203c;
|
|
247
|
+
--color-blue-200: #0b2a4a;
|
|
248
|
+
--color-blue-300: #103c67;
|
|
249
|
+
--color-blue-400: #15508a;
|
|
250
|
+
--color-blue-500: #1a5fa3;
|
|
251
|
+
--color-blue-600: #2270b0;
|
|
252
|
+
--color-blue-700: #6fa8d6;
|
|
253
|
+
--color-blue-800: #a8cfec;
|
|
254
|
+
--color-blue-900: #0b2545;
|
|
255
|
+
--color-primary: #1a5fa3;
|
|
256
|
+
--color-primary-50: #eef5ff;
|
|
257
|
+
--color-primary-100: #08203c;
|
|
258
|
+
--color-primary-200: #0b2a4a;
|
|
259
|
+
--color-primary-300: #103c67;
|
|
260
|
+
--color-primary-400: #15508a;
|
|
261
|
+
--color-primary-500: #1a5fa3;
|
|
262
|
+
--color-primary-600: #2270b0;
|
|
263
|
+
--color-primary-700: #6fa8d6;
|
|
264
|
+
--color-primary-800: #a8cfec;
|
|
265
|
+
--color-primary-900: #0b2545;
|
|
266
|
+
|
|
267
|
+
/* Amber accent — high indices darken for text/marks on light */
|
|
268
|
+
--color-accent: #f79009;
|
|
269
|
+
--color-accent-100: #fef4e6;
|
|
270
|
+
--color-accent-200: #7a4a00;
|
|
271
|
+
--color-accent-300: #f9c270;
|
|
272
|
+
--color-accent-400: #f79009;
|
|
273
|
+
--color-accent-500: #8a5200;
|
|
274
|
+
--color-accent-highlight: #e07b00;
|
|
275
|
+
|
|
276
|
+
/* Backgrounds — daylight slate ladder, AA-verified against primary text.
|
|
277
|
+
bg-100 (the darkest rung, e.g. the secondary Chip fill) is lightened enough
|
|
278
|
+
that dark primary-200 text clears 4.5:1 on it — a mid-slate cannot host any
|
|
279
|
+
AA text. */
|
|
280
|
+
--color-bg-100: #7ba0b3;
|
|
281
|
+
--color-bg-200: #aebccb;
|
|
282
|
+
--color-bg-300: #cdd8e4;
|
|
283
|
+
--color-bg-400: #e2e9f1;
|
|
219
284
|
--color-bg-light: #ffffff;
|
|
220
285
|
|
|
221
|
-
/* Primary — blue */
|
|
222
|
-
--color-primary: #75abc7;
|
|
223
|
-
--color-primary-50: #f0f7ff;
|
|
224
|
-
--color-primary-100: #06131d;
|
|
225
|
-
--color-primary-200: #0c2436;
|
|
226
|
-
--color-primary-300: #133a54;
|
|
227
|
-
--color-primary-400: #195073;
|
|
228
|
-
--color-primary-500: #1e6090;
|
|
229
|
-
--color-primary-600: #2470a5;
|
|
230
|
-
--color-primary-700: #5ea8d0;
|
|
231
|
-
--color-primary-800: #9dcce4;
|
|
232
|
-
--color-primary-900: #0d2a3d;
|
|
233
|
-
|
|
234
|
-
/* Accent — pink */
|
|
235
|
-
--color-accent: #df5c9a;
|
|
236
|
-
--color-accent-100: #fef2f7;
|
|
237
|
-
--color-accent-200: #7d1c48;
|
|
238
|
-
--color-accent-300: #f78fb9;
|
|
239
|
-
--color-accent-400: #df5c9a;
|
|
240
|
-
--color-accent-500: #8a1e4a;
|
|
241
|
-
--color-accent-highlight: #d4508a;
|
|
242
|
-
|
|
243
286
|
/* Semantic — darker for readability on light bgs */
|
|
244
287
|
--color-success-100: #e5fff3;
|
|
245
288
|
--color-success-200: #c2ffc8;
|
|
@@ -269,33 +312,39 @@
|
|
|
269
312
|
--color-danger-800: #572f2f;
|
|
270
313
|
--color-danger-900: #351c1c;
|
|
271
314
|
|
|
272
|
-
--color-cards-bg: #
|
|
273
|
-
--color-cards-bg-load: #
|
|
315
|
+
--color-cards-bg: #ffffff;
|
|
316
|
+
--color-cards-bg-load: #eef3f9;
|
|
274
317
|
--color-correct: #1a7f37;
|
|
275
318
|
--color-incorrect: #cf222e;
|
|
276
319
|
|
|
277
|
-
--color-canvas-bg: #
|
|
320
|
+
--color-canvas-bg: #dbe8ef;
|
|
278
321
|
|
|
279
|
-
/* Surfaces */
|
|
280
|
-
--color-background: #
|
|
322
|
+
/* Surfaces (opaque) */
|
|
323
|
+
--color-background: #eef3f9;
|
|
281
324
|
--color-surface: #ffffff;
|
|
282
|
-
--color-surface-elevated: #
|
|
325
|
+
--color-surface-elevated: #e7edf5;
|
|
283
326
|
|
|
284
|
-
--color-bg-blue-deep: #
|
|
285
|
-
--color-bg-blue-dark: #
|
|
286
|
-
--color-bg-blue-mid: #
|
|
287
|
-
--color-bg-blue-light: #
|
|
327
|
+
--color-bg-blue-deep: #eaf4fe;
|
|
328
|
+
--color-bg-blue-dark: #d4e9fd;
|
|
329
|
+
--color-bg-blue-mid: #a8d2fb;
|
|
330
|
+
--color-bg-blue-light: #7cbaf8;
|
|
288
331
|
|
|
289
332
|
/* Text */
|
|
290
|
-
--color-text: #
|
|
333
|
+
--color-text: #17212e;
|
|
334
|
+
/* WCAG AA: secondary text lands as normal-size runs on the light
|
|
335
|
+
--color-bg-300 card (EventListItem subtitle, CalendarCard "seguida por"
|
|
336
|
+
connector). A mid-slate (#64748b) read only 3.29:1 there; this darker
|
|
337
|
+
slate-blue clears 4.82:1 on bg-300 while staying the same hue and reading
|
|
338
|
+
as muted secondary against the near-black --color-text. */
|
|
291
339
|
--color-text-secondary: #405d70;
|
|
292
|
-
--color-text-muted: #
|
|
293
|
-
--color-text-
|
|
340
|
+
--color-text-muted: #94a3b8;
|
|
341
|
+
--color-text-dim: #64748b;
|
|
342
|
+
--color-text-disabled: #c4d0de;
|
|
294
343
|
|
|
295
344
|
/* Borders */
|
|
296
|
-
--color-border: #
|
|
297
|
-
--color-border-muted: #
|
|
298
|
-
--color-divider: #
|
|
345
|
+
--color-border: #dce4ee;
|
|
346
|
+
--color-border-muted: #eaeff6;
|
|
347
|
+
--color-divider: #eaeff6;
|
|
299
348
|
|
|
300
349
|
/* Semantic base + dim */
|
|
301
350
|
--color-success: #5bc96e;
|
|
@@ -306,13 +355,33 @@
|
|
|
306
355
|
--color-danger-dim: #9d5555;
|
|
307
356
|
|
|
308
357
|
/* Dim, glow, bg tints */
|
|
309
|
-
--color-primary-dim: #
|
|
310
|
-
--color-accent-dim: #
|
|
311
|
-
--color-header-bg: #
|
|
312
|
-
--color-primary-glow: rgba(
|
|
313
|
-
--color-accent-glow: rgba(
|
|
314
|
-
--color-fusion-glow: rgba(
|
|
358
|
+
--color-primary-dim: #d4e9fd;
|
|
359
|
+
--color-accent-dim: #fde7c8;
|
|
360
|
+
--color-header-bg: #e7edf5;
|
|
361
|
+
--color-primary-glow: rgba(46, 144, 250, 0.4);
|
|
362
|
+
--color-accent-glow: rgba(247, 144, 9, 0.35);
|
|
363
|
+
--color-fusion-glow: rgba(139, 92, 246, 0.4);
|
|
315
364
|
--color-success-bg: rgba(63, 185, 80, 0.1);
|
|
316
365
|
--color-warning-bg: rgba(210, 153, 34, 0.15);
|
|
317
366
|
--color-danger-bg: rgba(248, 81, 73, 0.1);
|
|
367
|
+
|
|
368
|
+
/* ── Frosted-glass surface family (daylight) ── */
|
|
369
|
+
--surface-app: #e9eff6;
|
|
370
|
+
--surface-panel: rgba(255, 255, 255, 0.42);
|
|
371
|
+
--surface-card: rgba(255, 255, 255, 0.55);
|
|
372
|
+
--surface-raised: rgba(255, 255, 255, 0.88);
|
|
373
|
+
--surface-inset: rgba(238, 243, 249, 0.55);
|
|
374
|
+
--surface-hover: rgba(255, 255, 255, 0.75);
|
|
375
|
+
--surface-ghost: rgba(255, 255, 255, 0.18);
|
|
376
|
+
|
|
377
|
+
--accent-primary-soft: rgba(46, 144, 250, 0.1);
|
|
378
|
+
--accent-warm-soft: rgba(247, 144, 9, 0.1);
|
|
379
|
+
|
|
380
|
+
/* Edge-glass + shadow/glow — daylight (soft, cool-tinted; glow carries accent) */
|
|
381
|
+
--edge-glass: inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 0 0 1px rgba(255, 255, 255, 0.35);
|
|
382
|
+
--shadow-card: 0 2px 8px rgba(99, 115, 139, 0.08), 0 8px 24px rgba(99, 115, 139, 0.1);
|
|
383
|
+
--shadow-panel: 0 12px 40px rgba(99, 115, 139, 0.14);
|
|
384
|
+
--shadow-float: 0 16px 48px rgba(99, 115, 139, 0.22);
|
|
385
|
+
--shadow-glow-blue: 0 4px 20px rgba(46, 144, 250, 0.28);
|
|
386
|
+
--shadow-glow-warm: 0 4px 20px rgba(247, 144, 9, 0.24);
|
|
318
387
|
}
|
package/dist/CalendarCard.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarCard.d.ts","sourceRoot":"","sources":["../src/CalendarCard.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
package/dist/CalendarCard.js
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { t as Chip } from "./chip2.js";
|
|
2
|
-
/* empty css */
|
|
3
|
-
/* empty css */
|
|
4
|
-
import { className, createComponent, effect, getNextElement, getNextMarker, insert, memo, setAttribute, template } from "solid-js/web";
|
|
5
|
-
import { For, Show } from "solid-js";
|
|
6
|
-
//#region src/custom/calendar-card/index.tsx
|
|
7
|
-
var _tmpl$ = /*#__PURE__*/ template(`<img class=" ZKniM151 FKniM151 _va151 _Hb151 oc151 nc151 kc151 jc151 _kc151 hc151 mc151 lc151 _jf151 ij1j4Pd151">`), _tmpl$2 = /*#__PURE__*/ template(`<span class=" xd151 _xa151 xX0cczbc151 _xX0cczba151 pO550xe151"><!$><!/> más`), _tmpl$3 = /*#__PURE__*/ template(`<span class=" uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-b151 vx151 xb151 _xa151 _Fd151 _FnuYUweb151 pxeCuqc151">seguida por <!$><!/><!$><!/>`), _tmpl$4 = /*#__PURE__*/ template(`<div class=" sd151 _wb151 Ub151 qb151">`), _tmpl$5 = /*#__PURE__*/ template(`<div><!$><!/><div class=" sd151 _ta151 Ue151 qe151 _ub151 Na151"><span class=" uk151 ucJ9TBTb151 ud3Euai151 uea151 ugb151 uhd151 uje151 u2NhKxcl151 uic151 -_6BNtrc-f151 vx151 xe151 _xa151 xX0cczbd151 _xX0cczba151 xfe151 _xfa151 xfX0cczbd151 _xfX0cczba151 _Fd151 _FnuYUweb151 pXDQpyb151 _Nc151 Pc151 _Yb151 _7c151"></span><!$><!/><!$><!/>`), _tmpl$6 = /*#__PURE__*/ template(`<span class=" xd151 _xa151 xX0cczbc151 _xX0cczba151 pO550xe151">`);
|
|
8
|
-
const card = " sd151 eb151 Ug151 qg151 Za151 LQAax0d151 Te151 Qe151 Se151 Re151 oe151 ne151 ke151 je151 _kc151 hc151 mc151 lc151 _jf151 i6nBqyb151 gg0eWE151 _nLeasBb151";
|
|
9
|
-
function CalendarCard(props) {
|
|
10
|
-
const displayedFollowers = () => props.followers?.slice(0, 2) ?? [];
|
|
11
|
-
const remainingCount = () => {
|
|
12
|
-
return (props.followerCount ?? props.followers?.length ?? 0) - displayedFollowers().length;
|
|
13
|
-
};
|
|
14
|
-
return (() => {
|
|
15
|
-
var _el$ = getNextElement(_tmpl$5), _el$19 = _el$.firstChild, [_el$20, _co$6] = getNextMarker(_el$19.nextSibling), _el$3 = _el$20.nextSibling, _el$4 = _el$3.firstChild, _el$15 = _el$4.nextSibling, [_el$16, _co$4] = getNextMarker(_el$15.nextSibling), _el$17 = _el$16.nextSibling, [_el$18, _co$5] = getNextMarker(_el$17.nextSibling);
|
|
16
|
-
insert(_el$, createComponent(Show, {
|
|
17
|
-
get when() {
|
|
18
|
-
return props.image;
|
|
19
|
-
},
|
|
20
|
-
get children() {
|
|
21
|
-
var _el$2 = getNextElement(_tmpl$);
|
|
22
|
-
effect((_p$) => {
|
|
23
|
-
var _v$ = props.image, _v$2 = props.title;
|
|
24
|
-
_v$ !== _p$.e && setAttribute(_el$2, "src", _p$.e = _v$);
|
|
25
|
-
_v$2 !== _p$.t && setAttribute(_el$2, "alt", _p$.t = _v$2);
|
|
26
|
-
return _p$;
|
|
27
|
-
}, {
|
|
28
|
-
e: void 0,
|
|
29
|
-
t: void 0
|
|
30
|
-
});
|
|
31
|
-
return _el$2;
|
|
32
|
-
}
|
|
33
|
-
}), _el$20, _co$6);
|
|
34
|
-
insert(_el$4, () => props.title);
|
|
35
|
-
insert(_el$3, createComponent(Show, {
|
|
36
|
-
get when() {
|
|
37
|
-
return displayedFollowers().length > 0;
|
|
38
|
-
},
|
|
39
|
-
get children() {
|
|
40
|
-
var _el$5 = getNextElement(_tmpl$3), _el$10 = _el$5.firstChild.nextSibling, [_el$11, _co$2] = getNextMarker(_el$10.nextSibling), _el$12 = _el$11.nextSibling, [_el$13, _co$3] = getNextMarker(_el$12.nextSibling);
|
|
41
|
-
insert(_el$5, createComponent(For, {
|
|
42
|
-
get each() {
|
|
43
|
-
return displayedFollowers();
|
|
44
|
-
},
|
|
45
|
-
children: (follower, index) => [(() => {
|
|
46
|
-
var _el$21 = getNextElement(_tmpl$6);
|
|
47
|
-
insert(_el$21, () => follower.name);
|
|
48
|
-
return _el$21;
|
|
49
|
-
})(), memo(() => index() < displayedFollowers().length - 1 && ", ")]
|
|
50
|
-
}), _el$11, _co$2);
|
|
51
|
-
insert(_el$5, createComponent(Show, {
|
|
52
|
-
get when() {
|
|
53
|
-
return remainingCount() > 0;
|
|
54
|
-
},
|
|
55
|
-
get children() {
|
|
56
|
-
return [
|
|
57
|
-
" ",
|
|
58
|
-
"y ",
|
|
59
|
-
(() => {
|
|
60
|
-
var _el$8 = getNextElement(_tmpl$2), _el$0 = _el$8.firstChild, [_el$1, _co$] = getNextMarker(_el$0.nextSibling);
|
|
61
|
-
_el$1.nextSibling;
|
|
62
|
-
insert(_el$8, remainingCount, _el$1, _co$);
|
|
63
|
-
return _el$8;
|
|
64
|
-
})()
|
|
65
|
-
];
|
|
66
|
-
}
|
|
67
|
-
}), _el$13, _co$3);
|
|
68
|
-
return _el$5;
|
|
69
|
-
}
|
|
70
|
-
}), _el$16, _co$4);
|
|
71
|
-
insert(_el$3, createComponent(Show, {
|
|
72
|
-
get when() {
|
|
73
|
-
return memo(() => !!props.tags)() && props.tags.length > 0;
|
|
74
|
-
},
|
|
75
|
-
get children() {
|
|
76
|
-
var _el$14 = getNextElement(_tmpl$4);
|
|
77
|
-
insert(_el$14, createComponent(For, {
|
|
78
|
-
get each() {
|
|
79
|
-
return props.tags;
|
|
80
|
-
},
|
|
81
|
-
children: (tag) => createComponent(Chip, {
|
|
82
|
-
text: tag,
|
|
83
|
-
variant: "primary"
|
|
84
|
-
})
|
|
85
|
-
}));
|
|
86
|
-
return _el$14;
|
|
87
|
-
}
|
|
88
|
-
}), _el$18, _co$5);
|
|
89
|
-
effect(() => className(_el$, `${card} ${props.class ?? ""}`));
|
|
90
|
-
return _el$;
|
|
91
|
-
})();
|
|
92
|
-
}
|
|
93
|
-
//#endregion
|
|
94
|
-
export { CalendarCard };
|
|
95
|
-
|
|
96
|
-
//# sourceMappingURL=CalendarCard.js.map
|
package/dist/CalendarCard.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarCard.js","names":[],"sources":["../src/custom/calendar-card/index.tsx"],"sourcesContent":["import { Show, For } from \"solid-js\";\nimport { Chip } from \"../chip\";\n// Styled via the S2 style() macro through viviana's own seam (../../style →\n// src/style.ts). A horizontal \"followed calendar\" card: square thumbnail +\n// title + followers line + tag chips, on the S2 ramps in Silapse colors.\nimport { style } from \"../../style\" with { type: \"macro\" };\n\nexport interface CalendarCardProps {\n title: string;\n image?: string;\n tags?: string[];\n followers?: { name: string }[];\n followerCount?: number;\n class?: string;\n}\n\nconst card = style({\n display: \"flex\",\n alignItems: \"center\",\n gap: 12,\n width: \"full\",\n maxWidth: 500,\n padding: 12,\n borderRadius: \"xl\",\n borderWidth: 2,\n borderStyle: \"solid\",\n borderColor: \"[var(--color-primary-600)]\",\n backgroundColor: \"[var(--color-bg-300)]\",\n boxShadow: \"elevated\",\n});\n\nconst thumb = style({\n width: 80,\n height: 80,\n flexShrink: 0,\n objectFit: \"cover\",\n borderRadius: \"lg\",\n borderWidth: 2,\n borderStyle: \"solid\",\n borderColor: \"[var(--color-accent)]\",\n});\n\nconst body = style({\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n flexGrow: 1,\n minWidth: 0,\n});\n\nconst title = style({\n font: \"heading-sm\",\n color: \"[var(--color-primary-100)]\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n});\n\nconst followers = style({\n font: \"ui-sm\",\n color: \"[var(--color-text-secondary)]\",\n});\n\nconst followerName = style({\n fontWeight: \"bold\",\n // WCAG AA fix: the follower names sit on the `--color-bg-300` card. They are\n // small text (`ui-sm`, inherited), so the 4.5:1 normal-text floor applies.\n // `--color-accent` (#df5c9a) is a fixed pink in both themes and read only\n // 2.42:1 on the light-blue card (5.08:1 dark); no pink ramp step clears 4.5:1\n // on both the dark-grey and light-blue card (`--color-accent-500` is 4.39:1\n // dark — a hair under). The names keep their emphasis via `fontWeight: bold`\n // against the secondary-grey connectors and take the flipping `--color-text`,\n // which clears 4.5:1 both ways (17.40:1 dark / 9.63:1 light). The card's pink\n // accent moment stays on the thumbnail border (bears no text).\n color: \"[var(--color-text)]\",\n});\n\nconst tags = style({\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: 4,\n});\n\nexport function CalendarCard(props: CalendarCardProps) {\n const displayedFollowers = () => props.followers?.slice(0, 2) ?? [];\n const remainingCount = () => {\n const total = props.followerCount ?? props.followers?.length ?? 0;\n const displayed = displayedFollowers().length;\n return total - displayed;\n };\n\n return (\n <div class={`${card} ${props.class ?? \"\"}`}>\n <Show when={props.image}>\n <img class={thumb} src={props.image} alt={props.title} />\n </Show>\n <div class={body}>\n <span class={title}>{props.title}</span>\n <Show when={displayedFollowers().length > 0}>\n <span class={followers}>\n seguida por{\" \"}\n <For each={displayedFollowers()}>\n {(follower, index) => (\n <>\n <span class={followerName}>{follower.name}</span>\n {index() < displayedFollowers().length - 1 && \", \"}\n </>\n )}\n </For>\n <Show when={remainingCount() > 0}>\n {\" \"}\n y <span class={followerName}>{remainingCount()} más</span>\n </Show>\n </span>\n </Show>\n <Show when={props.tags && props.tags.length > 0}>\n <div class={tags}>\n <For each={props.tags}>{(tag) => <Chip text={tag} variant=\"primary\" />}</For>\n </div>\n </Show>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAgBA,MAAM,OAAA;AAmEN,SAAgB,aAAa,OAAwB;CACnD,MAAM,2BAA2B,MAAM,WAAW,MAAM,GAAG,CAAA,KAAM,CAAA;CACjE,MAAM,uBAAiB;EAGrB,QAFc,MAAM,iBAAiB,MAAM,WAAW,UAAU,KAC9C,mBAAA,EAAqB;CAEzC;CAEA,cAAA;EAAA,IAAA,OAAA,eAAA,OAAA,GAAA,SAAA,KAAA,YAAA,CAAA,QAAA,SAAA,cAAA,OAAA,WAAA,GAAA,QAAA,OAAA,aAAA,QAAA,MAAA,YAAA,SAAA,MAAA,aAAA,CAAA,QAAA,SAAA,cAAA,OAAA,WAAA,GAAA,SAAA,OAAA,aAAA,CAAA,QAAA,SAAA,cAAA,OAAA,WAAA;EAAA,OAAA,MAAA,gBAEK,MAAA;GAAA,IAAK,OAAA;IAAA,OAAM,MAAM;GAAK;GAAA,IAAA,WAAA;IAAA,IAAA,QAAA,eAAA,MAAA;IAAA,QAAA,QAAA;KAAA,IAAA,MACG,MAAM,OAAK,OAAO,MAAM;KAAK,QAAA,IAAA,KAAA,aAAA,OAAA,OAAA,IAAA,IAAA,GAAA;KAAA,SAAA,IAAA,KAAA,aAAA,OAAA,OAAA,IAAA,IAAA,IAAA;KAAA,OAAA;IAAA,GAAA;KAAA,GAAA,KAAA;KAAA,GAAA,KAAA;IAAA,CAAA;IAAA,OAAA;GAAA;EAAA,CAAA,GAAA,QAAA,KAAA;EAAA,OAAA,aAGhC,MAAM,KAAK;EAAA,OAAA,OAAA,gBAC/B,MAAA;GAAA,IAAK,OAAA;IAAA,OAAM,mBAAA,EAAqB,SAAS;GAAA;GAAA,IAAA,WAAA;IAAA,IAAA,QAAA,eAAA,OAAA,GAAA,SAAA,MAAA,WAAA,aAAA,CAAA,QAAA,SAAA,cAAA,OAAA,WAAA,GAAA,SAAA,OAAA,aAAA,CAAA,QAAA,SAAA,cAAA,OAAA,WAAA;IAAA,OAAA,OAAA,gBAGrC,KAAA;KAAA,IAAI,OAAA;MAAA,OAAM,mBAAA;KAAA;KAAA,WACP,UAAU,UAAA,QAAA;MAAA,IAAA,SAAA,eAAA,OAAA;MAAA,OAAA,cAEoB,SAAS,IAAI;MAAA,OAAA;KAAA,GAAA,GAAA,WACxC,MAAA,IAAU,mBAAA,EAAqB,SAAS,KAAK,IAAA,CAAA;IAElD,CAAA,GAAA,QAAA,KAAA;IAAA,OAAA,OAAA,gBAED,MAAA;KAAA,IAAK,OAAA;MAAA,OAAM,eAAA,IAAmB;KAAA;KAAA,IAAA,WAAA;MAAA,OAAA;OAC5B;OAAA;cAAA;QAAA,IAAA,QAAA,eAAA,OAAA,GAAA,QAAA,MAAA,YAAA,CAAA,OAAA,QAAA,cAAA,MAAA,WAAA;QAAA,MAAA;QAAA,OAAA,OAC6B,gBAAA,OAAA,IAAA;QAAA,OAAA;OAAA,GAAA;MAAA;KAAA;IAAA,CAAA,GAAA,QAAA,KAAA;IAAA,OAAA;GAAA;EAAA,CAAA,GAAA,QAAA,KAAA;EAAA,OAAA,OAAA,gBAInC,MAAA;GAAA,IAAK,OAAA;IAAA,OAAM,WAAA,CAAA,CAAA,MAAM,IAAI,EAAA,KAAI,MAAM,KAAK,SAAS;GAAA;GAAA,IAAA,WAAA;IAAA,IAAA,SAAA,eAAA,OAAA;IAAA,OAAA,QAAA,gBAEzC,KAAA;KAAA,IAAI,OAAA;MAAA,OAAM,MAAM;KAAI;KAAA,WAAI,QAAA,gBAAS,MAAA;MAAK,MAAM;MAAK,SAAA;KAAA,CAAA;IAAQ,CAAA,CAAA;IAAA,OAAA;GAAA;EAAA,CAAA,GAAA,QAAA,KAAA;EAAA,aAAA,UAAA,MAzBtD,GAAG,KAAA,GAAQ,MAAM,SAAS,IAAI,CAAA;EAAA,OAAA;CAAA,GAAA;AA+B9C"}
|