@orange-halo/components 1.0.0 → 2.1.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/custom-elements.json +3182 -73
- package/dist/base.js +3 -3
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/oh-accordion.js +33 -33
- package/dist/oh-alert.js +26 -26
- package/dist/oh-badge.js +11 -11
- package/dist/oh-breadcrumb.js +20 -20
- package/dist/oh-button.d.ts +7 -1
- package/dist/oh-button.d.ts.map +1 -1
- package/dist/oh-button.js +118 -89
- package/dist/oh-button.js.map +1 -1
- package/dist/oh-card.d.ts.map +1 -1
- package/dist/oh-card.js +38 -66
- package/dist/oh-card.js.map +1 -1
- package/dist/oh-checkbox-group.d.ts +8 -0
- package/dist/oh-checkbox-group.d.ts.map +1 -1
- package/dist/oh-checkbox-group.figma.js +1 -1
- package/dist/oh-checkbox-group.figma.js.map +1 -1
- package/dist/oh-checkbox-group.js +40 -26
- package/dist/oh-checkbox-group.js.map +1 -1
- package/dist/oh-checkbox.d.ts +11 -2
- package/dist/oh-checkbox.d.ts.map +1 -1
- package/dist/oh-checkbox.js +44 -28
- package/dist/oh-checkbox.js.map +1 -1
- package/dist/oh-container.d.ts +5 -5
- package/dist/oh-container.js +15 -15
- package/dist/oh-drawer.d.ts +7 -2
- package/dist/oh-drawer.d.ts.map +1 -1
- package/dist/oh-drawer.js +52 -25
- package/dist/oh-drawer.js.map +1 -1
- package/dist/oh-footer.d.ts +5 -0
- package/dist/oh-footer.d.ts.map +1 -1
- package/dist/oh-footer.js +9 -4
- package/dist/oh-footer.js.map +1 -1
- package/dist/oh-hero.d.ts +5 -0
- package/dist/oh-hero.d.ts.map +1 -1
- package/dist/oh-hero.js +55 -51
- package/dist/oh-hero.js.map +1 -1
- package/dist/oh-icon.js +9 -9
- package/dist/oh-input.d.ts +11 -3
- package/dist/oh-input.d.ts.map +1 -1
- package/dist/oh-input.figma.js +2 -2
- package/dist/oh-input.figma.js.map +1 -1
- package/dist/oh-input.js +49 -37
- package/dist/oh-input.js.map +1 -1
- package/dist/oh-link.d.ts +1 -1
- package/dist/oh-link.js +35 -35
- package/dist/oh-modal.d.ts +10 -4
- package/dist/oh-modal.d.ts.map +1 -1
- package/dist/oh-modal.js +75 -72
- package/dist/oh-modal.js.map +1 -1
- package/dist/oh-navbar.d.ts.map +1 -1
- package/dist/oh-navbar.js +4 -5
- package/dist/oh-navbar.js.map +1 -1
- package/dist/oh-progress.d.ts.map +1 -1
- package/dist/oh-progress.js +21 -35
- package/dist/oh-progress.js.map +1 -1
- package/dist/oh-radio-group.d.ts +8 -0
- package/dist/oh-radio-group.d.ts.map +1 -1
- package/dist/oh-radio-group.js +40 -26
- package/dist/oh-radio-group.js.map +1 -1
- package/dist/oh-radio.d.ts +10 -1
- package/dist/oh-radio.d.ts.map +1 -1
- package/dist/oh-radio.js +44 -28
- package/dist/oh-radio.js.map +1 -1
- package/dist/oh-select.d.ts +10 -2
- package/dist/oh-select.d.ts.map +1 -1
- package/dist/oh-select.js +51 -32
- package/dist/oh-select.js.map +1 -1
- package/dist/oh-skip-link.d.ts.map +1 -1
- package/dist/oh-skip-link.js +15 -14
- package/dist/oh-skip-link.js.map +1 -1
- package/dist/oh-tabs.js +15 -15
- package/dist/oh-toggle.d.ts +5 -2
- package/dist/oh-toggle.d.ts.map +1 -1
- package/dist/oh-toggle.js +18 -20
- package/dist/oh-toggle.js.map +1 -1
- package/dist/styles/typography.js +50 -50
- package/package.json +15 -4
package/dist/oh-button.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* DESIGN DECISIONS:
|
|
8
8
|
* ─────────────────
|
|
9
9
|
* 1. CHUNKY & CONFIDENT
|
|
10
|
-
* - Thick border (
|
|
10
|
+
* - Thick border (stroke.control) that feels illustrative
|
|
11
11
|
* - Solid fills, no subtle gradients
|
|
12
12
|
* - Generous padding, substantial presence
|
|
13
13
|
*
|
|
@@ -64,9 +64,9 @@ let OhButton = class OhButton extends OhElement {
|
|
|
64
64
|
|
|
65
65
|
.button {
|
|
66
66
|
/* Typography: friendly, not shouty */
|
|
67
|
-
font-family: var(--oh-font-family
|
|
68
|
-
font-weight: var(--oh-font-weight
|
|
69
|
-
letter-spacing: var(--oh-
|
|
67
|
+
font-family: var(--oh-button-base-font-family);
|
|
68
|
+
font-weight: var(--oh-button-base-font-weight);
|
|
69
|
+
letter-spacing: var(--oh-button-base-letter-spacing);
|
|
70
70
|
text-decoration: none;
|
|
71
71
|
|
|
72
72
|
/* Layout */
|
|
@@ -76,7 +76,7 @@ let OhButton = class OhButton extends OhElement {
|
|
|
76
76
|
gap: var(--oh-spacing-2);
|
|
77
77
|
|
|
78
78
|
/* Shape: chunky rounded corners, not pills */
|
|
79
|
-
border-radius: var(--oh-radius
|
|
79
|
+
border-radius: var(--oh-button-base-border-radius);
|
|
80
80
|
|
|
81
81
|
/* Thick illustrative border */
|
|
82
82
|
border: var(--oh-button-base-border-width) solid;
|
|
@@ -98,30 +98,30 @@ let OhButton = class OhButton extends OhElement {
|
|
|
98
98
|
PRIMARY VARIANT
|
|
99
99
|
Signature orange — bold and warm
|
|
100
100
|
Filled button: color + shadow define shape (no visible border)
|
|
101
|
-
Contrast:
|
|
101
|
+
Contrast: white on brand primary = 5.0:1 ✓ (WCAG AA)
|
|
102
102
|
═══════════════════════════════════════════════════════════════ */
|
|
103
103
|
|
|
104
104
|
.button--primary {
|
|
105
|
-
background-color: var(--oh-
|
|
106
|
-
border-color: var(--oh-
|
|
107
|
-
color: var(--oh-
|
|
105
|
+
background-color: var(--oh-button-variant-primary-background);
|
|
106
|
+
border-color: var(--oh-button-variant-primary-border-color);
|
|
107
|
+
color: var(--oh-button-variant-primary-color);
|
|
108
108
|
|
|
109
109
|
/* Light offset shadow: makes button pop forward */
|
|
110
|
-
box-shadow:
|
|
110
|
+
box-shadow: var(--oh-elevation-offset-lg) var(--oh-elevation-offset-lg) 0 0 var(--oh-button-variant-primary-shadow-color);
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
.button--primary:hover {
|
|
114
|
-
background-color: var(--oh-
|
|
115
|
-
border-color: var(--oh-
|
|
116
|
-
transform: translate(-
|
|
117
|
-
box-shadow:
|
|
114
|
+
background-color: var(--oh-button-variant-primary-background-hover);
|
|
115
|
+
border-color: var(--oh-button-variant-primary-background-hover);
|
|
116
|
+
transform: translate(var(--oh-lift-hover-md), var(--oh-lift-hover-md));
|
|
117
|
+
box-shadow: var(--oh-elevation-offset-2xl) var(--oh-elevation-offset-2xl) 0 0 var(--oh-button-variant-primary-shadow-color);
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
.button--primary:active {
|
|
121
|
-
background-color: var(--oh-
|
|
122
|
-
border-color: var(--oh-
|
|
123
|
-
transform: translate(
|
|
124
|
-
box-shadow:
|
|
121
|
+
background-color: var(--oh-button-variant-primary-background-active);
|
|
122
|
+
border-color: var(--oh-button-variant-primary-background-active);
|
|
123
|
+
transform: translate(var(--oh-lift-press-md), var(--oh-lift-press-md));
|
|
124
|
+
box-shadow: var(--oh-elevation-offset-xs) var(--oh-elevation-offset-xs) 0 0 var(--oh-button-variant-primary-shadow-color);
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
/* ═══════════════════════════════════════════════════════════════
|
|
@@ -130,23 +130,23 @@ let OhButton = class OhButton extends OhElement {
|
|
|
130
130
|
═══════════════════════════════════════════════════════════════ */
|
|
131
131
|
|
|
132
132
|
.button--secondary {
|
|
133
|
-
background-color: var(--oh-
|
|
134
|
-
border-color: var(--oh-
|
|
135
|
-
color: var(--oh-
|
|
133
|
+
background-color: var(--oh-button-variant-secondary-background);
|
|
134
|
+
border-color: var(--oh-button-variant-secondary-border-color);
|
|
135
|
+
color: var(--oh-button-variant-secondary-color);
|
|
136
136
|
|
|
137
|
-
box-shadow:
|
|
137
|
+
box-shadow: var(--oh-elevation-offset-lg) var(--oh-elevation-offset-lg) 0 0 var(--oh-button-variant-secondary-shadow-color);
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
.button--secondary:hover {
|
|
141
|
-
background-color: var(--oh-
|
|
142
|
-
transform: translate(-
|
|
143
|
-
box-shadow:
|
|
141
|
+
background-color: var(--oh-button-variant-secondary-background-hover);
|
|
142
|
+
transform: translate(var(--oh-lift-hover-md), var(--oh-lift-hover-md));
|
|
143
|
+
box-shadow: var(--oh-elevation-offset-2xl) var(--oh-elevation-offset-2xl) 0 0 var(--oh-button-variant-secondary-shadow-color);
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
.button--secondary:active {
|
|
147
|
-
background-color: var(--oh-
|
|
148
|
-
transform: translate(
|
|
149
|
-
box-shadow:
|
|
147
|
+
background-color: var(--oh-button-variant-secondary-background-active);
|
|
148
|
+
transform: translate(var(--oh-lift-press-md), var(--oh-lift-press-md));
|
|
149
|
+
box-shadow: var(--oh-elevation-offset-xs) var(--oh-elevation-offset-xs) 0 0 var(--oh-button-variant-secondary-shadow-color);
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
/* ═══════════════════════════════════════════════════════════════
|
|
@@ -156,25 +156,25 @@ let OhButton = class OhButton extends OhElement {
|
|
|
156
156
|
═══════════════════════════════════════════════════════════════ */
|
|
157
157
|
|
|
158
158
|
.button--accent {
|
|
159
|
-
background-color: var(--oh-
|
|
160
|
-
border-color: var(--oh-
|
|
161
|
-
color: var(--oh-
|
|
159
|
+
background-color: var(--oh-button-variant-accent-background);
|
|
160
|
+
border-color: var(--oh-button-variant-accent-border-color);
|
|
161
|
+
color: var(--oh-button-variant-accent-color);
|
|
162
162
|
|
|
163
|
-
box-shadow:
|
|
163
|
+
box-shadow: var(--oh-elevation-offset-lg) var(--oh-elevation-offset-lg) 0 0 var(--oh-button-variant-accent-shadow-color);
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
.button--accent:hover {
|
|
167
|
-
background-color: var(--oh-
|
|
168
|
-
border-color: var(--oh-
|
|
169
|
-
transform: translate(-
|
|
170
|
-
box-shadow:
|
|
167
|
+
background-color: var(--oh-button-variant-accent-background-hover);
|
|
168
|
+
border-color: var(--oh-button-variant-accent-background-hover);
|
|
169
|
+
transform: translate(var(--oh-lift-hover-md), var(--oh-lift-hover-md));
|
|
170
|
+
box-shadow: var(--oh-elevation-offset-2xl) var(--oh-elevation-offset-2xl) 0 0 var(--oh-button-variant-accent-shadow-color);
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
.button--accent:active {
|
|
174
|
-
background-color: var(--oh-
|
|
175
|
-
border-color: var(--oh-
|
|
176
|
-
transform: translate(
|
|
177
|
-
box-shadow:
|
|
174
|
+
background-color: var(--oh-button-variant-accent-background-active);
|
|
175
|
+
border-color: var(--oh-button-variant-accent-background-active);
|
|
176
|
+
transform: translate(var(--oh-lift-press-md), var(--oh-lift-press-md));
|
|
177
|
+
box-shadow: var(--oh-elevation-offset-xs) var(--oh-elevation-offset-xs) 0 0 var(--oh-button-variant-accent-shadow-color);
|
|
178
178
|
}
|
|
179
179
|
|
|
180
180
|
/* ═══════════════════════════════════════════════════════════════
|
|
@@ -189,42 +189,42 @@ let OhButton = class OhButton extends OhElement {
|
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
.button--primary:focus-visible {
|
|
192
|
-
box-shadow:
|
|
192
|
+
box-shadow: var(--oh-elevation-offset-lg) var(--oh-elevation-offset-lg) 0 0 var(--oh-button-variant-primary-shadow-color);
|
|
193
193
|
}
|
|
194
194
|
|
|
195
195
|
.button--secondary:focus-visible {
|
|
196
|
-
box-shadow:
|
|
196
|
+
box-shadow: var(--oh-elevation-offset-lg) var(--oh-elevation-offset-lg) 0 0 var(--oh-button-variant-secondary-shadow-color);
|
|
197
197
|
}
|
|
198
198
|
|
|
199
199
|
.button--accent:focus-visible {
|
|
200
|
-
box-shadow:
|
|
200
|
+
box-shadow: var(--oh-elevation-offset-lg) var(--oh-elevation-offset-lg) 0 0 var(--oh-button-variant-accent-shadow-color);
|
|
201
201
|
}
|
|
202
202
|
|
|
203
203
|
/* ═══════════════════════════════════════════════════════════════
|
|
204
204
|
SIZE VARIANTS
|
|
205
205
|
Minimum 16px (1rem) for WCAG readability
|
|
206
|
-
|
|
206
|
+
Values: button.size.* tokens
|
|
207
207
|
═══════════════════════════════════════════════════════════════ */
|
|
208
208
|
|
|
209
209
|
.button--sm {
|
|
210
|
-
font-size: var(--oh-font-size
|
|
211
|
-
padding: var(--oh-
|
|
212
|
-
min-height:
|
|
213
|
-
gap: var(--oh-
|
|
210
|
+
font-size: var(--oh-button-size-sm-font-size);
|
|
211
|
+
padding: var(--oh-button-size-sm-padding-y) var(--oh-button-size-sm-padding-x);
|
|
212
|
+
min-height: var(--oh-button-size-sm-min-height);
|
|
213
|
+
gap: var(--oh-button-size-sm-gap);
|
|
214
214
|
}
|
|
215
215
|
|
|
216
216
|
.button--md {
|
|
217
|
-
font-size: var(--oh-font-size
|
|
218
|
-
padding: var(--oh-
|
|
219
|
-
min-height:
|
|
220
|
-
gap: var(--oh-
|
|
217
|
+
font-size: var(--oh-button-size-md-font-size);
|
|
218
|
+
padding: var(--oh-button-size-md-padding-y) var(--oh-button-size-md-padding-x);
|
|
219
|
+
min-height: var(--oh-button-size-md-min-height);
|
|
220
|
+
gap: var(--oh-button-size-md-gap);
|
|
221
221
|
}
|
|
222
222
|
|
|
223
223
|
.button--lg {
|
|
224
|
-
font-size: var(--oh-font-size
|
|
225
|
-
padding: var(--oh-
|
|
226
|
-
min-height:
|
|
227
|
-
gap: var(--oh-
|
|
224
|
+
font-size: var(--oh-button-size-lg-font-size);
|
|
225
|
+
padding: var(--oh-button-size-lg-padding-y) var(--oh-button-size-lg-padding-x);
|
|
226
|
+
min-height: var(--oh-button-size-lg-min-height);
|
|
227
|
+
gap: var(--oh-button-size-lg-gap);
|
|
228
228
|
}
|
|
229
229
|
|
|
230
230
|
/* ═══════════════════════════════════════════════════════════════
|
|
@@ -259,12 +259,15 @@ let OhButton = class OhButton extends OhElement {
|
|
|
259
259
|
min-width: 56px;
|
|
260
260
|
}
|
|
261
261
|
|
|
262
|
-
/*
|
|
263
|
-
|
|
262
|
+
/* Focus underline drawn by the button itself, for icon-only buttons and
|
|
263
|
+
loading buttons, whose text is hidden so text-decoration shows nothing */
|
|
264
|
+
:host([icon-only]) .button,
|
|
265
|
+
.button--loading {
|
|
264
266
|
position: relative;
|
|
265
267
|
}
|
|
266
268
|
|
|
267
|
-
:host([icon-only]) .button::after
|
|
269
|
+
:host([icon-only]) .button::after,
|
|
270
|
+
.button--loading::after {
|
|
268
271
|
content: '';
|
|
269
272
|
position: absolute;
|
|
270
273
|
bottom: 4px;
|
|
@@ -274,14 +277,15 @@ let OhButton = class OhButton extends OhElement {
|
|
|
274
277
|
height: 2px;
|
|
275
278
|
background-color: currentColor;
|
|
276
279
|
opacity: 0;
|
|
277
|
-
transition: opacity var(--oh-motion-snappy
|
|
280
|
+
transition: opacity var(--oh-motion-snappy) var(--oh-motion-ease-gentle);
|
|
278
281
|
}
|
|
279
282
|
|
|
280
283
|
:host([icon-only]) .button:focus-visible {
|
|
281
284
|
text-decoration: none;
|
|
282
285
|
}
|
|
283
286
|
|
|
284
|
-
:host([icon-only]) .button:focus-visible::after
|
|
287
|
+
:host([icon-only]) .button:focus-visible::after,
|
|
288
|
+
.button--loading:focus-visible::after {
|
|
285
289
|
opacity: 1;
|
|
286
290
|
}
|
|
287
291
|
|
|
@@ -307,6 +311,18 @@ let OhButton = class OhButton extends OhElement {
|
|
|
307
311
|
to { transform: rotate(360deg); }
|
|
308
312
|
}
|
|
309
313
|
|
|
314
|
+
.visually-hidden {
|
|
315
|
+
position: absolute;
|
|
316
|
+
width: 1px;
|
|
317
|
+
height: 1px;
|
|
318
|
+
padding: 0;
|
|
319
|
+
margin: -1px;
|
|
320
|
+
overflow: hidden;
|
|
321
|
+
clip: rect(0, 0, 0, 0);
|
|
322
|
+
white-space: nowrap;
|
|
323
|
+
border: 0;
|
|
324
|
+
}
|
|
325
|
+
|
|
310
326
|
/* ═══════════════════════════════════════════════════════════════
|
|
311
327
|
REDUCED MOTION
|
|
312
328
|
═══════════════════════════════════════════════════════════════ */
|
|
@@ -332,18 +348,18 @@ let OhButton = class OhButton extends OhElement {
|
|
|
332
348
|
|
|
333
349
|
/* Primary - Forced Hover */
|
|
334
350
|
:host([force-state="hover"]) .button--primary {
|
|
335
|
-
background-color: var(--oh-
|
|
336
|
-
border-color: var(--oh-
|
|
337
|
-
transform: translate(-
|
|
338
|
-
box-shadow:
|
|
351
|
+
background-color: var(--oh-button-variant-primary-background-hover);
|
|
352
|
+
border-color: var(--oh-button-variant-primary-background-hover);
|
|
353
|
+
transform: translate(var(--oh-lift-hover-md), var(--oh-lift-hover-md));
|
|
354
|
+
box-shadow: var(--oh-elevation-offset-2xl) var(--oh-elevation-offset-2xl) 0 0 var(--oh-button-variant-primary-shadow-color);
|
|
339
355
|
}
|
|
340
356
|
|
|
341
357
|
/* Primary - Forced Active */
|
|
342
358
|
:host([force-state="active"]) .button--primary {
|
|
343
|
-
background-color: var(--oh-
|
|
344
|
-
border-color: var(--oh-
|
|
345
|
-
transform: translate(
|
|
346
|
-
box-shadow:
|
|
359
|
+
background-color: var(--oh-button-variant-primary-background-active);
|
|
360
|
+
border-color: var(--oh-button-variant-primary-background-active);
|
|
361
|
+
transform: translate(var(--oh-lift-press-md), var(--oh-lift-press-md));
|
|
362
|
+
box-shadow: var(--oh-elevation-offset-xs) var(--oh-elevation-offset-xs) 0 0 var(--oh-button-variant-primary-shadow-color);
|
|
347
363
|
}
|
|
348
364
|
|
|
349
365
|
/* Primary - Forced Focus */
|
|
@@ -351,21 +367,21 @@ let OhButton = class OhButton extends OhElement {
|
|
|
351
367
|
outline: none;
|
|
352
368
|
text-decoration: underline;
|
|
353
369
|
text-underline-offset: var(--oh-spacing-1);
|
|
354
|
-
box-shadow:
|
|
370
|
+
box-shadow: var(--oh-elevation-offset-lg) var(--oh-elevation-offset-lg) 0 0 var(--oh-button-variant-primary-shadow-color);
|
|
355
371
|
}
|
|
356
372
|
|
|
357
373
|
/* Secondary - Forced Hover */
|
|
358
374
|
:host([force-state="hover"]) .button--secondary {
|
|
359
|
-
background-color: var(--oh-
|
|
360
|
-
transform: translate(-
|
|
361
|
-
box-shadow:
|
|
375
|
+
background-color: var(--oh-button-variant-secondary-background-hover);
|
|
376
|
+
transform: translate(var(--oh-lift-hover-md), var(--oh-lift-hover-md));
|
|
377
|
+
box-shadow: var(--oh-elevation-offset-2xl) var(--oh-elevation-offset-2xl) 0 0 var(--oh-button-variant-secondary-shadow-color);
|
|
362
378
|
}
|
|
363
379
|
|
|
364
380
|
/* Secondary - Forced Active */
|
|
365
381
|
:host([force-state="active"]) .button--secondary {
|
|
366
|
-
background-color: var(--oh-
|
|
367
|
-
transform: translate(
|
|
368
|
-
box-shadow:
|
|
382
|
+
background-color: var(--oh-button-variant-secondary-background-active);
|
|
383
|
+
transform: translate(var(--oh-lift-press-md), var(--oh-lift-press-md));
|
|
384
|
+
box-shadow: var(--oh-elevation-offset-xs) var(--oh-elevation-offset-xs) 0 0 var(--oh-button-variant-secondary-shadow-color);
|
|
369
385
|
}
|
|
370
386
|
|
|
371
387
|
/* Secondary - Forced Focus */
|
|
@@ -373,23 +389,23 @@ let OhButton = class OhButton extends OhElement {
|
|
|
373
389
|
outline: none;
|
|
374
390
|
text-decoration: underline;
|
|
375
391
|
text-underline-offset: var(--oh-spacing-1);
|
|
376
|
-
box-shadow:
|
|
392
|
+
box-shadow: var(--oh-elevation-offset-lg) var(--oh-elevation-offset-lg) 0 0 var(--oh-button-variant-secondary-shadow-color);
|
|
377
393
|
}
|
|
378
394
|
|
|
379
395
|
/* Accent - Forced Hover */
|
|
380
396
|
:host([force-state="hover"]) .button--accent {
|
|
381
|
-
background-color: var(--oh-
|
|
382
|
-
border-color: var(--oh-
|
|
383
|
-
transform: translate(-
|
|
384
|
-
box-shadow:
|
|
397
|
+
background-color: var(--oh-button-variant-accent-background-hover);
|
|
398
|
+
border-color: var(--oh-button-variant-accent-background-hover);
|
|
399
|
+
transform: translate(var(--oh-lift-hover-md), var(--oh-lift-hover-md));
|
|
400
|
+
box-shadow: var(--oh-elevation-offset-2xl) var(--oh-elevation-offset-2xl) 0 0 var(--oh-button-variant-accent-shadow-color);
|
|
385
401
|
}
|
|
386
402
|
|
|
387
403
|
/* Accent - Forced Active */
|
|
388
404
|
:host([force-state="active"]) .button--accent {
|
|
389
|
-
background-color: var(--oh-
|
|
390
|
-
border-color: var(--oh-
|
|
391
|
-
transform: translate(
|
|
392
|
-
box-shadow:
|
|
405
|
+
background-color: var(--oh-button-variant-accent-background-active);
|
|
406
|
+
border-color: var(--oh-button-variant-accent-background-active);
|
|
407
|
+
transform: translate(var(--oh-lift-press-md), var(--oh-lift-press-md));
|
|
408
|
+
box-shadow: var(--oh-elevation-offset-xs) var(--oh-elevation-offset-xs) 0 0 var(--oh-button-variant-accent-shadow-color);
|
|
393
409
|
}
|
|
394
410
|
|
|
395
411
|
/* Accent - Forced Focus */
|
|
@@ -397,7 +413,7 @@ let OhButton = class OhButton extends OhElement {
|
|
|
397
413
|
outline: none;
|
|
398
414
|
text-decoration: underline;
|
|
399
415
|
text-underline-offset: var(--oh-spacing-1);
|
|
400
|
-
box-shadow:
|
|
416
|
+
box-shadow: var(--oh-elevation-offset-lg) var(--oh-elevation-offset-lg) 0 0 var(--oh-button-variant-accent-shadow-color);
|
|
401
417
|
}
|
|
402
418
|
`,
|
|
403
419
|
]; }
|
|
@@ -426,8 +442,13 @@ let OhButton = class OhButton extends OhElement {
|
|
|
426
442
|
[`button--${this.size}`]: true,
|
|
427
443
|
"button--loading": this.loading,
|
|
428
444
|
});
|
|
445
|
+
// While loading, the label stays in the DOM (visually hidden) so the
|
|
446
|
+
// button keeps its accessible name.
|
|
429
447
|
const content = this.loading
|
|
430
|
-
? html
|
|
448
|
+
? html `
|
|
449
|
+
<span class="spinner" aria-hidden="true"></span>
|
|
450
|
+
<span class="visually-hidden"><slot></slot></span>
|
|
451
|
+
`
|
|
431
452
|
: html `
|
|
432
453
|
<slot name="icon-left"></slot>
|
|
433
454
|
<slot></slot>
|
|
@@ -443,18 +464,23 @@ let OhButton = class OhButton extends OhElement {
|
|
|
443
464
|
href=${this.href}
|
|
444
465
|
target=${this.target || nothing}
|
|
445
466
|
rel=${rel || nothing}
|
|
467
|
+
aria-label=${this.accessibleLabel || nothing}
|
|
446
468
|
>
|
|
447
469
|
${content}
|
|
448
470
|
</a>
|
|
449
471
|
`;
|
|
450
472
|
}
|
|
451
|
-
// Render as button
|
|
473
|
+
// Render as button. Loading uses aria-disabled, not disabled: a disabled
|
|
474
|
+
// button drops out of the tab order, so pressing a button that starts
|
|
475
|
+
// loading would throw keyboard focus back to the page. _handleClick
|
|
476
|
+
// ignores clicks while loading.
|
|
452
477
|
return html `
|
|
453
478
|
<button
|
|
454
479
|
part="button"
|
|
455
480
|
class=${classes}
|
|
456
|
-
|
|
481
|
+
aria-disabled=${this.loading ? "true" : nothing}
|
|
457
482
|
aria-busy=${this.loading ? "true" : nothing}
|
|
483
|
+
aria-label=${this.accessibleLabel || nothing}
|
|
458
484
|
@click=${this._handleClick}
|
|
459
485
|
>
|
|
460
486
|
${content}
|
|
@@ -474,6 +500,9 @@ __decorate([
|
|
|
474
500
|
__decorate([
|
|
475
501
|
property({ type: Boolean, reflect: true, attribute: "icon-only" })
|
|
476
502
|
], OhButton.prototype, "iconOnly", void 0);
|
|
503
|
+
__decorate([
|
|
504
|
+
property({ type: String, attribute: "accessible-label" })
|
|
505
|
+
], OhButton.prototype, "accessibleLabel", void 0);
|
|
477
506
|
__decorate([
|
|
478
507
|
property({ type: String, reflect: true, attribute: "force-state" })
|
|
479
508
|
], OhButton.prototype, "forceState", void 0);
|
package/dist/oh-button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oh-button.js","sourceRoot":"","sources":["../src/oh-button.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;;;;;;;AAEH,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAO3C,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,SAAS;IAAhC;;
|
|
1
|
+
{"version":3,"file":"oh-button.js","sourceRoot":"","sources":["../src/oh-button.ts"],"names":[],"mappings":"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"}
|
package/dist/oh-card.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oh-card.d.ts","sourceRoot":"","sources":["../src/oh-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,EAAE,SAAS,EAAc,MAAM,WAAW,CAAC;AAElD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD,qBACa,MAAO,SAAQ,SAAS;IACnC,OAAgB,MAAM,
|
|
1
|
+
{"version":3,"file":"oh-card.d.ts","sourceRoot":"","sources":["../src/oh-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,EAAE,SAAS,EAAc,MAAM,WAAW,CAAC;AAElD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD,qBACa,MAAO,SAAQ,SAAS;IACnC,OAAgB,MAAM,4BAqNpB;IAGF,OAAO,EAAE,WAAW,CAAY;IAGhC,WAAW,UAAS;IAGpB,OAAO,EAAE,WAAW,CAAQ;IAE5B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,cAAc;IAOtB,MAAM;CA+BP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
|
package/dist/oh-card.js
CHANGED
|
@@ -50,6 +50,8 @@ let OhCard = class OhCard extends OhElement {
|
|
|
50
50
|
|
|
51
51
|
:host {
|
|
52
52
|
display: block;
|
|
53
|
+
/* Card surfaces fade to linen, where text.link falls below 4.5:1 */
|
|
54
|
+
--oh-color-text-link: var(--oh-color-text-link-raised);
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
/* ═══════════════════════════════════════════════════════════════
|
|
@@ -59,7 +61,7 @@ let OhCard = class OhCard extends OhElement {
|
|
|
59
61
|
|
|
60
62
|
.card {
|
|
61
63
|
/* Shape: friendly rounded corners */
|
|
62
|
-
border-radius: var(--oh-
|
|
64
|
+
border-radius: var(--oh-shape-large);
|
|
63
65
|
overflow: hidden;
|
|
64
66
|
|
|
65
67
|
transition:
|
|
@@ -77,22 +79,19 @@ let OhCard = class OhCard extends OhElement {
|
|
|
77
79
|
/* Surface: subtle gradient for depth */
|
|
78
80
|
background: linear-gradient(
|
|
79
81
|
180deg,
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
var(--oh-card-raised-gradient-start) 0%,
|
|
83
|
+
var(--oh-card-raised-gradient-mid) 40%,
|
|
84
|
+
var(--oh-card-raised-gradient-end) 100%
|
|
83
85
|
);
|
|
84
86
|
|
|
85
87
|
/* Border: visible warm edge */
|
|
86
|
-
border:
|
|
88
|
+
border: var(--oh-card-base-border-width) solid var(--oh-card-raised-border-color);
|
|
87
89
|
|
|
88
90
|
/* Layered shadows:
|
|
89
91
|
1. Outer: soft, offset shadow (tactile)
|
|
90
92
|
2. Deeper: ambient depth
|
|
91
93
|
3. Inner top: sunlit highlight */
|
|
92
|
-
box-shadow:
|
|
93
|
-
0 2px 6px rgba(61, 50, 41, 0.08),
|
|
94
|
-
0 6px 16px rgba(61, 50, 41, 0.05),
|
|
95
|
-
inset 0 1px 0 rgba(255, 255, 255, 0.8);
|
|
94
|
+
box-shadow: var(--oh-elevation-surface-raised);
|
|
96
95
|
}
|
|
97
96
|
|
|
98
97
|
/* ═══════════════════════════════════════════════════════════════
|
|
@@ -104,20 +103,16 @@ let OhCard = class OhCard extends OhElement {
|
|
|
104
103
|
/* Surface: warm sunlit gradient */
|
|
105
104
|
background: linear-gradient(
|
|
106
105
|
180deg,
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
106
|
+
var(--oh-card-sunlit-gradient-start) 0%,
|
|
107
|
+
var(--oh-card-sunlit-gradient-mid) 30%,
|
|
108
|
+
var(--oh-card-sunlit-gradient-end) 100%
|
|
110
109
|
);
|
|
111
110
|
|
|
112
111
|
/* Border: warm tinted edge */
|
|
113
|
-
border:
|
|
112
|
+
border: var(--oh-card-base-border-width) solid var(--oh-card-sunlit-border-color);
|
|
114
113
|
|
|
115
114
|
/* Layered shadows with warm glow */
|
|
116
|
-
box-shadow:
|
|
117
|
-
0 2px 8px rgba(139, 69, 19, 0.08),
|
|
118
|
-
0 8px 24px rgba(139, 69, 19, 0.06),
|
|
119
|
-
0 0 20px rgba(197, 67, 0, 0.04),
|
|
120
|
-
inset 0 1px 0 rgba(255, 255, 255, 0.9);
|
|
115
|
+
box-shadow: var(--oh-elevation-surface-featured);
|
|
121
116
|
}
|
|
122
117
|
|
|
123
118
|
/* ═══════════════════════════════════════════════════════════════
|
|
@@ -129,22 +124,20 @@ let OhCard = class OhCard extends OhElement {
|
|
|
129
124
|
/* Surface: subtle gradient */
|
|
130
125
|
background: linear-gradient(
|
|
131
126
|
180deg,
|
|
132
|
-
|
|
133
|
-
|
|
127
|
+
var(--oh-card-flat-gradient-start) 0%,
|
|
128
|
+
var(--oh-card-flat-gradient-end) 100%
|
|
134
129
|
);
|
|
135
130
|
|
|
136
131
|
/* Border: visible edge */
|
|
137
|
-
border:
|
|
132
|
+
border: var(--oh-card-base-border-width) solid var(--oh-card-flat-border-color);
|
|
138
133
|
|
|
139
134
|
/* Minimal shadow */
|
|
140
|
-
box-shadow:
|
|
141
|
-
0 1px 2px rgba(61, 50, 41, 0.04),
|
|
142
|
-
inset 0 1px 0 rgba(255, 255, 255, 0.6);
|
|
135
|
+
box-shadow: var(--oh-elevation-surface-flat);
|
|
143
136
|
}
|
|
144
137
|
|
|
145
138
|
/* ═══════════════════════════════════════════════════════════════
|
|
146
139
|
INTERACTIVE STATES
|
|
147
|
-
Hover lifts
|
|
140
|
+
Hover lifts; focus is a solid outline, with a warm glow as decoration
|
|
148
141
|
═══════════════════════════════════════════════════════════════ */
|
|
149
142
|
|
|
150
143
|
.card--interactive {
|
|
@@ -153,31 +146,21 @@ let OhCard = class OhCard extends OhElement {
|
|
|
153
146
|
|
|
154
147
|
/* Hover: warm light, lifted */
|
|
155
148
|
.card--interactive.card--raised:hover {
|
|
156
|
-
border-color: var(--oh-color-
|
|
157
|
-
box-shadow:
|
|
158
|
-
|
|
159
|
-
0 12px 28px rgba(61, 50, 41, 0.08),
|
|
160
|
-
inset 0 1px 0 rgba(255, 255, 255, 0.9);
|
|
161
|
-
transform: translateY(-2px);
|
|
149
|
+
border-color: var(--oh-color-border-strong);
|
|
150
|
+
box-shadow: var(--oh-elevation-surface-lifted);
|
|
151
|
+
transform: translateY(var(--oh-lift-hover-md));
|
|
162
152
|
}
|
|
163
153
|
|
|
164
154
|
.card--interactive.card--sunlit:hover {
|
|
165
|
-
border-color:
|
|
166
|
-
box-shadow:
|
|
167
|
-
|
|
168
|
-
0 12px 32px rgba(139, 69, 19, 0.08),
|
|
169
|
-
0 0 28px rgba(197, 67, 0, 0.06),
|
|
170
|
-
inset 0 1px 0 rgba(255, 255, 255, 1);
|
|
171
|
-
transform: translateY(-2px);
|
|
155
|
+
border-color: var(--oh-card-sunlit-border-color-hover);
|
|
156
|
+
box-shadow: var(--oh-elevation-surface-featured-lifted);
|
|
157
|
+
transform: translateY(var(--oh-lift-hover-md));
|
|
172
158
|
}
|
|
173
159
|
|
|
174
160
|
.card--interactive.card--flat:hover {
|
|
175
|
-
border-color: var(--oh-color-
|
|
176
|
-
box-shadow:
|
|
177
|
-
|
|
178
|
-
0 6px 16px rgba(61, 50, 41, 0.05),
|
|
179
|
-
inset 0 1px 0 rgba(255, 255, 255, 0.8);
|
|
180
|
-
transform: translateY(-1px);
|
|
161
|
+
border-color: var(--oh-color-border-strong);
|
|
162
|
+
box-shadow: var(--oh-elevation-surface-raised);
|
|
163
|
+
transform: translateY(var(--oh-lift-hover-sm));
|
|
181
164
|
}
|
|
182
165
|
|
|
183
166
|
/* Active: pressed */
|
|
@@ -186,34 +169,23 @@ let OhCard = class OhCard extends OhElement {
|
|
|
186
169
|
}
|
|
187
170
|
|
|
188
171
|
.card--interactive.card--raised:active {
|
|
189
|
-
box-shadow:
|
|
190
|
-
0 1px 3px rgba(61, 50, 41, 0.1),
|
|
191
|
-
0 3px 8px rgba(61, 50, 41, 0.06),
|
|
192
|
-
inset 0 1px 2px rgba(61, 50, 41, 0.04);
|
|
172
|
+
box-shadow: var(--oh-elevation-surface-pressed);
|
|
193
173
|
}
|
|
194
174
|
|
|
195
|
-
/* Focus:
|
|
175
|
+
/* Focus: solid outline is the indicator; the glow is decoration only */
|
|
196
176
|
.card--interactive:focus-visible {
|
|
197
|
-
outline:
|
|
177
|
+
outline: var(--oh-focus-ring-width) solid var(--oh-focus-ring-color);
|
|
178
|
+
outline-offset: var(--oh-focus-ring-offset);
|
|
179
|
+
border-color: var(--oh-color-brand-primary);
|
|
198
180
|
}
|
|
199
181
|
|
|
200
182
|
.card--interactive.card--raised:focus-visible,
|
|
201
183
|
.card--interactive.card--flat:focus-visible {
|
|
202
|
-
|
|
203
|
-
box-shadow:
|
|
204
|
-
0 0 0 3px rgba(197, 67, 0, 0.25),
|
|
205
|
-
0 0 16px rgba(197, 67, 0, 0.1),
|
|
206
|
-
0 2px 6px rgba(61, 50, 41, 0.08),
|
|
207
|
-
inset 0 1px 0 rgba(255, 255, 255, 0.8);
|
|
184
|
+
box-shadow: 0 0 16px var(--oh-focus-glow-color), var(--oh-elevation-surface-focused);
|
|
208
185
|
}
|
|
209
186
|
|
|
210
187
|
.card--interactive.card--sunlit:focus-visible {
|
|
211
|
-
|
|
212
|
-
box-shadow:
|
|
213
|
-
0 0 0 3px rgba(197, 67, 0, 0.3),
|
|
214
|
-
0 0 20px rgba(197, 67, 0, 0.15),
|
|
215
|
-
0 2px 8px rgba(139, 69, 19, 0.08),
|
|
216
|
-
inset 0 1px 0 rgba(255, 255, 255, 0.9);
|
|
188
|
+
box-shadow: 0 0 20px var(--oh-focus-glow-color), var(--oh-elevation-surface-featured-focused);
|
|
217
189
|
}
|
|
218
190
|
|
|
219
191
|
/* ═══════════════════════════════════════════════════════════════
|
|
@@ -230,11 +202,11 @@ let OhCard = class OhCard extends OhElement {
|
|
|
230
202
|
|
|
231
203
|
.header {
|
|
232
204
|
padding: var(--oh-spacing-4) var(--oh-spacing-5);
|
|
233
|
-
border-bottom:
|
|
205
|
+
border-bottom: var(--oh-stroke-divider) solid var(--oh-card-section-divider-color);
|
|
234
206
|
background: linear-gradient(
|
|
235
207
|
180deg,
|
|
236
|
-
|
|
237
|
-
|
|
208
|
+
var(--oh-card-section-header-gradient-start) 0%,
|
|
209
|
+
var(--oh-card-section-header-gradient-end) 100%
|
|
238
210
|
);
|
|
239
211
|
}
|
|
240
212
|
|
|
@@ -246,7 +218,7 @@ let OhCard = class OhCard extends OhElement {
|
|
|
246
218
|
|
|
247
219
|
.footer {
|
|
248
220
|
padding: var(--oh-spacing-4) var(--oh-spacing-5);
|
|
249
|
-
border-top:
|
|
221
|
+
border-top: var(--oh-stroke-divider) solid var(--oh-card-section-divider-color);
|
|
250
222
|
background: linear-gradient(
|
|
251
223
|
180deg,
|
|
252
224
|
var(--oh-color-surface-raised) 0%,
|
package/dist/oh-card.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oh-card.js","sourceRoot":"","sources":["../src/oh-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;;;;;;AAEH,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAM3C,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,SAAS;IAA9B;;
|
|
1
|
+
{"version":3,"file":"oh-card.js","sourceRoot":"","sources":["../src/oh-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;;;;;;AAEH,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAM3C,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,SAAS;IAA9B;;QAyNL,YAAO,GAAgB,QAAQ,CAAC;QAGhC,gBAAW,GAAG,KAAK,CAAC;QAGpB,YAAO,GAAgB,IAAI,CAAC;IA8C9B,CAAC;aA5QiB,WAAM,GAAG;QACvB,UAAU;QACV,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkNF;KACF,AArNqB,CAqNpB;IAWM,YAAY,CAAC,KAAiB;QACpC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,KAAoB;QACzC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;YACrE,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,KAA8B,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC5B,IAAI,EAAE,IAAI;YACV,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI;YAC/B,CAAC,iBAAiB,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI;YACvC,mBAAmB,EAAE,IAAI,CAAC,WAAW;SACtC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAA;;;gBAGC,OAAO;eACR,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;mBACjC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;iBAClC,IAAI,CAAC,YAAY;mBACf,IAAI,CAAC,cAAc;;;;;;;;;;;;;;KAcjC,CAAC;IACJ,CAAC;;AAnDD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCACV;AAGhC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2CACvB;AAGpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCACd;AA/NjB,MAAM;IADlB,aAAa,CAAC,SAAS,CAAC;GACZ,MAAM,CA6QlB"}
|