@echelon-foundry/design-system 0.2.0-main.16.1 → 0.2.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/README.md +0 -9
- package/dist/all.css +7 -409
- package/dist/build-metrics.json +2 -22
- package/dist/components.css +7 -409
- package/package.json +1 -1
- package/patterns/manifest.md +0 -2
- package/dist/patterns/diagnostic-status.html +0 -7
- package/dist/patterns/fault-banner.html +0 -19
- package/dist/patterns/fault-blocking.html +0 -25
- package/dist/patterns/fault-details.html +0 -11
- package/dist/patterns/fault-inline.html +0 -17
- package/dist/patterns/fault-notification.html +0 -20
- package/dist/patterns/fault-reference.html +0 -5
- package/dist/patterns/fault-summary.html +0 -20
- package/dist/patterns/fault.html +0 -17
- package/dist/patterns/recovery-actions.html +0 -5
- package/patterns/aegis-faults.manifest.md +0 -81
- package/patterns/diagnostic-status.html +0 -7
- package/patterns/fault-banner.html +0 -19
- package/patterns/fault-blocking.html +0 -25
- package/patterns/fault-details.html +0 -11
- package/patterns/fault-inline.html +0 -17
- package/patterns/fault-notification.html +0 -20
- package/patterns/fault-reference.html +0 -5
- package/patterns/fault-summary.html +0 -20
- package/patterns/fault.html +0 -17
- package/patterns/recovery-actions.html +0 -5
package/dist/components.css
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
/* Physics-derived motion ---------------------------------------------- */
|
|
30
|
-
:where(.ef-switch, .ef-checkbox, .ef-select, .ef-disclosure, .ef-popover, .ef-menu, .ef-dialog, .ef-flyout, .ef-tabs, .ef-alert, .ef-toast, .ef-command-palette
|
|
30
|
+
:where(.ef-switch, .ef-checkbox, .ef-select, .ef-disclosure, .ef-popover, .ef-menu, .ef-dialog, .ef-flyout, .ef-tabs, .ef-alert, .ef-toast, .ef-command-palette) {
|
|
31
31
|
/*
|
|
32
32
|
* CSS cannot run a continuous rigid-body simulation. Forma therefore uses
|
|
33
33
|
* a physics-derived response model. The fallback values remain usable in
|
|
@@ -48,19 +48,19 @@
|
|
|
48
48
|
--ef-motion-damped-easing: cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
:where(.ef-switch, .ef-checkbox, .ef-select, .ef-disclosure, .ef-popover, .ef-menu, .ef-dialog, .ef-flyout, .ef-tabs, .ef-alert, .ef-toast, .ef-command-palette
|
|
51
|
+
:where(.ef-switch, .ef-checkbox, .ef-select, .ef-disclosure, .ef-popover, .ef-menu, .ef-dialog, .ef-flyout, .ef-tabs, .ef-alert, .ef-toast, .ef-command-palette)[data-ef-motion-weight="light"] {
|
|
52
52
|
--ef-motion-mass: 0.65;
|
|
53
53
|
--ef-motion-stiffness: 1.15;
|
|
54
54
|
--ef-motion-damping: 0.94;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
:where(.ef-switch, .ef-checkbox, .ef-select, .ef-disclosure, .ef-popover, .ef-menu, .ef-dialog, .ef-flyout, .ef-tabs, .ef-alert, .ef-toast, .ef-command-palette
|
|
57
|
+
:where(.ef-switch, .ef-checkbox, .ef-select, .ef-disclosure, .ef-popover, .ef-menu, .ef-dialog, .ef-flyout, .ef-tabs, .ef-alert, .ef-toast, .ef-command-palette)[data-ef-motion-weight="standard"] {
|
|
58
58
|
--ef-motion-mass: 1;
|
|
59
59
|
--ef-motion-stiffness: 1;
|
|
60
60
|
--ef-motion-damping: 0.84;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
:where(.ef-switch, .ef-checkbox, .ef-select, .ef-disclosure, .ef-popover, .ef-menu, .ef-dialog, .ef-flyout, .ef-tabs, .ef-alert, .ef-toast, .ef-command-palette
|
|
63
|
+
:where(.ef-switch, .ef-checkbox, .ef-select, .ef-disclosure, .ef-popover, .ef-menu, .ef-dialog, .ef-flyout, .ef-tabs, .ef-alert, .ef-toast, .ef-command-palette)[data-ef-motion-weight="heavy"] {
|
|
64
64
|
--ef-motion-mass: 1.8;
|
|
65
65
|
--ef-motion-stiffness: 0.92;
|
|
66
66
|
--ef-motion-damping: 0.76;
|
|
@@ -72,14 +72,14 @@
|
|
|
72
72
|
--ef-motion-damping: 0.94;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
:where(.ef-dialog, .ef-flyout, .ef-command-palette
|
|
75
|
+
:where(.ef-dialog, .ef-flyout, .ef-command-palette):not([data-ef-motion-weight]) {
|
|
76
76
|
--ef-motion-mass: 1.8;
|
|
77
77
|
--ef-motion-stiffness: 0.92;
|
|
78
78
|
--ef-motion-damping: 0.76;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
@supports (width: calc(1px * sqrt(1))) {
|
|
82
|
-
:where(.ef-switch, .ef-checkbox, .ef-select, .ef-disclosure, .ef-popover, .ef-menu, .ef-dialog, .ef-flyout, .ef-tabs, .ef-alert, .ef-toast, .ef-command-palette
|
|
82
|
+
:where(.ef-switch, .ef-checkbox, .ef-select, .ef-disclosure, .ef-popover, .ef-menu, .ef-dialog, .ef-flyout, .ef-tabs, .ef-alert, .ef-toast, .ef-command-palette) {
|
|
83
83
|
/*
|
|
84
84
|
* Response time follows sqrt(mass / stiffness), then is lengthened as
|
|
85
85
|
* damping decreases. Vertical gravity time follows sqrt(2s / g) and is
|
|
@@ -351,7 +351,7 @@
|
|
|
351
351
|
}
|
|
352
352
|
|
|
353
353
|
@media (prefers-reduced-motion: reduce) {
|
|
354
|
-
:where(.ef-switch, .ef-checkbox, .ef-select, .ef-disclosure, .ef-popover, .ef-menu, .ef-dialog, .ef-flyout, .ef-tabs, .ef-alert, .ef-toast, .ef-command-palette
|
|
354
|
+
:where(.ef-switch, .ef-checkbox, .ef-select, .ef-disclosure, .ef-popover, .ef-menu, .ef-dialog, .ef-flyout, .ef-tabs, .ef-alert, .ef-toast, .ef-command-palette) {
|
|
355
355
|
--ef-motion-inertia-duration: 0.01ms;
|
|
356
356
|
--ef-motion-gravity-duration: 0.01ms;
|
|
357
357
|
--ef-motion-state-duration: 0.01ms;
|
|
@@ -2121,405 +2121,3 @@
|
|
|
2121
2121
|
}
|
|
2122
2122
|
|
|
2123
2123
|
}
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
@layer echelon.components {
|
|
2127
|
-
/* Aegis notification/banner default perceived weight ----------------- */
|
|
2128
|
-
:where(.ef-fault-notification, .ef-fault-banner):not([data-ef-motion-weight]) {
|
|
2129
|
-
--ef-motion-mass: 1;
|
|
2130
|
-
--ef-motion-stiffness: 1;
|
|
2131
|
-
--ef-motion-damping: 0.84;
|
|
2132
|
-
}
|
|
2133
|
-
|
|
2134
|
-
:where(.ef-fault-blocking):not([data-ef-motion-weight]) {
|
|
2135
|
-
--ef-motion-mass: 1.8;
|
|
2136
|
-
--ef-motion-stiffness: 0.92;
|
|
2137
|
-
--ef-motion-damping: 0.76;
|
|
2138
|
-
}
|
|
2139
|
-
|
|
2140
|
-
/* Aegis fault presentation -------------------------------------------- */
|
|
2141
|
-
.ef-fault,
|
|
2142
|
-
.ef-fault-notification,
|
|
2143
|
-
.ef-fault-banner,
|
|
2144
|
-
.ef-fault-summary,
|
|
2145
|
-
.ef-diagnostic-status,
|
|
2146
|
-
.ef-fault-details {
|
|
2147
|
-
box-sizing: border-box;
|
|
2148
|
-
max-inline-size: 100%;
|
|
2149
|
-
}
|
|
2150
|
-
|
|
2151
|
-
.ef-fault {
|
|
2152
|
-
display: grid;
|
|
2153
|
-
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
2154
|
-
align-items: start;
|
|
2155
|
-
gap: var(--ef-primitive-spacing-3, 0.75rem);
|
|
2156
|
-
padding: var(--ef-primitive-spacing-4, 1rem);
|
|
2157
|
-
border: 1px solid var(--ef-color-border-functional, #3a403c);
|
|
2158
|
-
border-inline-start-width: 0.35rem;
|
|
2159
|
-
background: var(--ef-color-surface-primary, #f2efe7);
|
|
2160
|
-
color: var(--ef-color-text-primary, #171a18);
|
|
2161
|
-
}
|
|
2162
|
-
|
|
2163
|
-
.ef-fault[data-ef-severity="diagnostic"] { border-inline-start-style: dotted; }
|
|
2164
|
-
.ef-fault[data-ef-severity="warning"] { border-inline-start-style: dashed; }
|
|
2165
|
-
.ef-fault[data-ef-severity="critical"] {
|
|
2166
|
-
border-inline-start-width: 0.55rem;
|
|
2167
|
-
outline: 1px solid var(--ef-color-border-functional, #3a403c);
|
|
2168
|
-
outline-offset: 2px;
|
|
2169
|
-
}
|
|
2170
|
-
|
|
2171
|
-
.ef-fault__marker,
|
|
2172
|
-
.ef-fault-notification__marker,
|
|
2173
|
-
.ef-fault-summary__marker,
|
|
2174
|
-
.ef-fault-blocking__marker {
|
|
2175
|
-
min-inline-size: 1.75rem;
|
|
2176
|
-
min-block-size: 1.75rem;
|
|
2177
|
-
display: inline-grid;
|
|
2178
|
-
place-items: center;
|
|
2179
|
-
border: 2px solid currentColor;
|
|
2180
|
-
border-radius: var(--ef-primitive-radius-pill, 999px);
|
|
2181
|
-
font-family: var(--ef-primitive-font-family-mono, ui-monospace, monospace);
|
|
2182
|
-
font-weight: 800;
|
|
2183
|
-
line-height: 1;
|
|
2184
|
-
}
|
|
2185
|
-
|
|
2186
|
-
.ef-fault__body,
|
|
2187
|
-
.ef-fault-notification__body,
|
|
2188
|
-
.ef-fault-banner__body {
|
|
2189
|
-
min-inline-size: 0;
|
|
2190
|
-
}
|
|
2191
|
-
|
|
2192
|
-
.ef-fault__severity {
|
|
2193
|
-
margin: 0 0 0.2rem;
|
|
2194
|
-
color: var(--ef-color-text-secondary, #686d68);
|
|
2195
|
-
font-family: var(--ef-primitive-font-family-mono, ui-monospace, monospace);
|
|
2196
|
-
font-size: 0.72rem;
|
|
2197
|
-
font-weight: 800;
|
|
2198
|
-
letter-spacing: 0.08em;
|
|
2199
|
-
line-height: 1.25;
|
|
2200
|
-
text-transform: uppercase;
|
|
2201
|
-
}
|
|
2202
|
-
|
|
2203
|
-
.ef-fault__title,
|
|
2204
|
-
.ef-fault__message,
|
|
2205
|
-
.ef-fault-notification p,
|
|
2206
|
-
.ef-fault-banner p {
|
|
2207
|
-
margin-block-start: 0;
|
|
2208
|
-
}
|
|
2209
|
-
|
|
2210
|
-
.ef-fault__title { margin-block-end: 0.35rem; }
|
|
2211
|
-
.ef-fault__message { margin-block-end: 0.5rem; }
|
|
2212
|
-
|
|
2213
|
-
.ef-fault-reference {
|
|
2214
|
-
display: flex;
|
|
2215
|
-
flex-wrap: wrap;
|
|
2216
|
-
align-items: center;
|
|
2217
|
-
gap: 0.4rem;
|
|
2218
|
-
margin: 0.55rem 0 0;
|
|
2219
|
-
color: var(--ef-color-text-secondary, #686d68);
|
|
2220
|
-
font-size: 0.8125rem;
|
|
2221
|
-
}
|
|
2222
|
-
|
|
2223
|
-
.ef-fault-reference code {
|
|
2224
|
-
color: var(--ef-color-text-primary, #171a18);
|
|
2225
|
-
font-weight: 750;
|
|
2226
|
-
overflow-wrap: anywhere;
|
|
2227
|
-
}
|
|
2228
|
-
|
|
2229
|
-
.ef-fault-reference button {
|
|
2230
|
-
min-block-size: 2.75rem;
|
|
2231
|
-
min-inline-size: 2.75rem;
|
|
2232
|
-
}
|
|
2233
|
-
|
|
2234
|
-
.ef-recovery-actions {
|
|
2235
|
-
display: flex;
|
|
2236
|
-
flex-wrap: wrap;
|
|
2237
|
-
align-items: center;
|
|
2238
|
-
gap: var(--ef-primitive-spacing-2, 0.5rem);
|
|
2239
|
-
min-inline-size: 0;
|
|
2240
|
-
}
|
|
2241
|
-
|
|
2242
|
-
.ef-recovery-actions > button,
|
|
2243
|
-
.ef-fault-notification__dismiss {
|
|
2244
|
-
min-block-size: 2.75rem;
|
|
2245
|
-
}
|
|
2246
|
-
|
|
2247
|
-
.ef-fault--inline {
|
|
2248
|
-
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
2249
|
-
padding: 0.75rem;
|
|
2250
|
-
background: var(--ef-color-surface-secondary, #e3e0d7);
|
|
2251
|
-
}
|
|
2252
|
-
|
|
2253
|
-
.ef-fault-notification {
|
|
2254
|
-
--ef-motion-distance: 0.45;
|
|
2255
|
-
display: grid;
|
|
2256
|
-
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
2257
|
-
align-items: start;
|
|
2258
|
-
gap: var(--ef-primitive-spacing-3, 0.75rem);
|
|
2259
|
-
inline-size: min(32rem, calc(100vw - 2rem));
|
|
2260
|
-
padding: var(--ef-primitive-spacing-4, 1rem);
|
|
2261
|
-
border: 1px solid var(--ef-color-border-functional, #3a403c);
|
|
2262
|
-
border-inline-start-width: 0.35rem;
|
|
2263
|
-
background: var(--ef-color-surface-primary, #f2efe7);
|
|
2264
|
-
color: var(--ef-color-text-primary, #171a18);
|
|
2265
|
-
box-shadow: 0 0.8rem 2.2rem rgb(0 0 0 / 0.18);
|
|
2266
|
-
opacity: 1;
|
|
2267
|
-
translate: 0 0;
|
|
2268
|
-
scale: 1;
|
|
2269
|
-
}
|
|
2270
|
-
|
|
2271
|
-
.ef-fault-notification[data-ef-motion-entry] {
|
|
2272
|
-
opacity: 1;
|
|
2273
|
-
translate: 0 0;
|
|
2274
|
-
transition:
|
|
2275
|
-
opacity var(--ef-motion-state-duration) linear,
|
|
2276
|
-
translate var(--ef-motion-inertia-duration) var(--ef-motion-damped-easing);
|
|
2277
|
-
}
|
|
2278
|
-
|
|
2279
|
-
@starting-style {
|
|
2280
|
-
.ef-fault-notification[data-ef-motion-entry] {
|
|
2281
|
-
opacity: 0;
|
|
2282
|
-
translate: 0 -0.45rem;
|
|
2283
|
-
}
|
|
2284
|
-
}
|
|
2285
|
-
|
|
2286
|
-
.ef-fault-notification__dismiss {
|
|
2287
|
-
align-self: start;
|
|
2288
|
-
}
|
|
2289
|
-
|
|
2290
|
-
.ef-fault-banner {
|
|
2291
|
-
--ef-motion-distance: 0.3;
|
|
2292
|
-
display: grid;
|
|
2293
|
-
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
2294
|
-
align-items: start;
|
|
2295
|
-
gap: var(--ef-primitive-spacing-3, 0.75rem);
|
|
2296
|
-
inline-size: 100%;
|
|
2297
|
-
padding: var(--ef-primitive-spacing-4, 1rem);
|
|
2298
|
-
border: 1px solid var(--ef-color-border-functional, #3a403c);
|
|
2299
|
-
border-block-width: 2px;
|
|
2300
|
-
}
|
|
2301
|
-
|
|
2302
|
-
.ef-fault-banner[data-ef-severity="critical"] {
|
|
2303
|
-
border-block-width: 3px;
|
|
2304
|
-
}
|
|
2305
|
-
|
|
2306
|
-
.ef-fault-banner[data-ef-motion-entry] {
|
|
2307
|
-
opacity: 1;
|
|
2308
|
-
translate: 0 0;
|
|
2309
|
-
transition:
|
|
2310
|
-
opacity var(--ef-motion-state-duration) linear,
|
|
2311
|
-
translate var(--ef-motion-inertia-duration) var(--ef-motion-damped-easing);
|
|
2312
|
-
}
|
|
2313
|
-
|
|
2314
|
-
@starting-style {
|
|
2315
|
-
.ef-fault-banner[data-ef-motion-entry] {
|
|
2316
|
-
opacity: 0;
|
|
2317
|
-
translate: 0 -0.3rem;
|
|
2318
|
-
}
|
|
2319
|
-
}
|
|
2320
|
-
|
|
2321
|
-
.ef-fault-blocking {
|
|
2322
|
-
inline-size: min(42rem, calc(100vw - 2rem));
|
|
2323
|
-
max-block-size: min(90dvh, calc(100dvh - 2rem));
|
|
2324
|
-
}
|
|
2325
|
-
|
|
2326
|
-
.ef-fault-blocking__heading {
|
|
2327
|
-
display: grid;
|
|
2328
|
-
grid-template-columns: auto minmax(0, 1fr);
|
|
2329
|
-
align-items: start;
|
|
2330
|
-
gap: var(--ef-primitive-spacing-3, 0.75rem);
|
|
2331
|
-
}
|
|
2332
|
-
|
|
2333
|
-
.ef-fault-blocking__heading h2 {
|
|
2334
|
-
margin-block-start: 0;
|
|
2335
|
-
}
|
|
2336
|
-
|
|
2337
|
-
.ef-fault-summary {
|
|
2338
|
-
display: grid;
|
|
2339
|
-
gap: var(--ef-primitive-spacing-4, 1rem);
|
|
2340
|
-
padding: var(--ef-primitive-spacing-4, 1rem);
|
|
2341
|
-
border: 2px solid var(--ef-color-border-functional, #3a403c);
|
|
2342
|
-
background: var(--ef-color-surface-primary, #f2efe7);
|
|
2343
|
-
color: var(--ef-color-text-primary, #171a18);
|
|
2344
|
-
}
|
|
2345
|
-
|
|
2346
|
-
.ef-fault-summary:focus-visible {
|
|
2347
|
-
outline: 3px solid var(--ef-color-focus-gap, #f2efe7);
|
|
2348
|
-
outline-offset: 2px;
|
|
2349
|
-
box-shadow: 0 0 0 5px var(--ef-color-focus-ring, #171a18);
|
|
2350
|
-
}
|
|
2351
|
-
|
|
2352
|
-
.ef-fault-summary__heading {
|
|
2353
|
-
display: grid;
|
|
2354
|
-
grid-template-columns: auto minmax(0, 1fr);
|
|
2355
|
-
gap: var(--ef-primitive-spacing-3, 0.75rem);
|
|
2356
|
-
align-items: start;
|
|
2357
|
-
}
|
|
2358
|
-
|
|
2359
|
-
.ef-fault-summary__heading h2 {
|
|
2360
|
-
margin-block: 0;
|
|
2361
|
-
}
|
|
2362
|
-
|
|
2363
|
-
.ef-fault-summary__list {
|
|
2364
|
-
display: grid;
|
|
2365
|
-
gap: 0.65rem;
|
|
2366
|
-
margin: 0;
|
|
2367
|
-
padding-inline-start: 1.4rem;
|
|
2368
|
-
}
|
|
2369
|
-
|
|
2370
|
-
.ef-fault-summary__list > li {
|
|
2371
|
-
padding-inline-start: 0.2rem;
|
|
2372
|
-
}
|
|
2373
|
-
|
|
2374
|
-
.ef-fault-summary__list > li[data-ef-severity="critical"] {
|
|
2375
|
-
font-weight: 750;
|
|
2376
|
-
}
|
|
2377
|
-
|
|
2378
|
-
.ef-fault-summary__meta {
|
|
2379
|
-
display: block;
|
|
2380
|
-
margin-block-start: 0.15rem;
|
|
2381
|
-
color: var(--ef-color-text-secondary, #686d68);
|
|
2382
|
-
font-family: var(--ef-primitive-font-family-mono, ui-monospace, monospace);
|
|
2383
|
-
font-size: 0.75rem;
|
|
2384
|
-
overflow-wrap: anywhere;
|
|
2385
|
-
}
|
|
2386
|
-
|
|
2387
|
-
.ef-diagnostic-status {
|
|
2388
|
-
display: inline-flex;
|
|
2389
|
-
align-items: center;
|
|
2390
|
-
gap: var(--ef-primitive-spacing-2, 0.5rem);
|
|
2391
|
-
padding: 0.55rem 0.75rem;
|
|
2392
|
-
border: 1px solid var(--ef-color-border-functional, #3a403c);
|
|
2393
|
-
background: var(--ef-color-surface-secondary, #e3e0d7);
|
|
2394
|
-
color: var(--ef-color-text-primary, #171a18);
|
|
2395
|
-
}
|
|
2396
|
-
|
|
2397
|
-
.ef-diagnostic-status__marker {
|
|
2398
|
-
min-inline-size: 1.5rem;
|
|
2399
|
-
text-align: center;
|
|
2400
|
-
font-family: var(--ef-primitive-font-family-mono, ui-monospace, monospace);
|
|
2401
|
-
font-weight: 800;
|
|
2402
|
-
}
|
|
2403
|
-
|
|
2404
|
-
.ef-diagnostic-status__body {
|
|
2405
|
-
display: grid;
|
|
2406
|
-
gap: 0.1rem;
|
|
2407
|
-
}
|
|
2408
|
-
|
|
2409
|
-
.ef-diagnostic-status__body > span {
|
|
2410
|
-
color: var(--ef-color-text-on-secondary-surface, #3a403c);
|
|
2411
|
-
font-size: 0.8125rem;
|
|
2412
|
-
}
|
|
2413
|
-
|
|
2414
|
-
.ef-diagnostic-status[data-ef-state="unavailable"],
|
|
2415
|
-
.ef-diagnostic-status[data-ef-state="last-synchronization-failed"] {
|
|
2416
|
-
border-width: 2px;
|
|
2417
|
-
}
|
|
2418
|
-
|
|
2419
|
-
.ef-fault-details {
|
|
2420
|
-
border-block: 1px solid var(--ef-color-border-functional, #3a403c);
|
|
2421
|
-
}
|
|
2422
|
-
|
|
2423
|
-
.ef-fault-details > summary {
|
|
2424
|
-
min-block-size: 2.75rem;
|
|
2425
|
-
display: flex;
|
|
2426
|
-
align-items: center;
|
|
2427
|
-
cursor: pointer;
|
|
2428
|
-
font-weight: 700;
|
|
2429
|
-
}
|
|
2430
|
-
|
|
2431
|
-
.ef-fault-details__content {
|
|
2432
|
-
padding-block-end: var(--ef-primitive-spacing-4, 1rem);
|
|
2433
|
-
}
|
|
2434
|
-
|
|
2435
|
-
.ef-fault-details__list {
|
|
2436
|
-
display: grid;
|
|
2437
|
-
gap: 0.5rem;
|
|
2438
|
-
margin: 0;
|
|
2439
|
-
}
|
|
2440
|
-
|
|
2441
|
-
.ef-fault-details__list > div {
|
|
2442
|
-
display: grid;
|
|
2443
|
-
grid-template-columns: minmax(7rem, auto) minmax(0, 1fr);
|
|
2444
|
-
gap: 0.75rem;
|
|
2445
|
-
}
|
|
2446
|
-
|
|
2447
|
-
.ef-fault-details__list dt { font-weight: 700; }
|
|
2448
|
-
.ef-fault-details__list dd { margin: 0; overflow-wrap: anywhere; }
|
|
2449
|
-
|
|
2450
|
-
.ef-fault-details__boundary {
|
|
2451
|
-
margin-block-end: 0;
|
|
2452
|
-
color: var(--ef-color-text-secondary, #686d68);
|
|
2453
|
-
font-size: 0.8125rem;
|
|
2454
|
-
}
|
|
2455
|
-
|
|
2456
|
-
@media (max-width: 36rem) {
|
|
2457
|
-
.ef-fault,
|
|
2458
|
-
.ef-fault--inline,
|
|
2459
|
-
.ef-fault-notification,
|
|
2460
|
-
.ef-fault-banner {
|
|
2461
|
-
grid-template-columns: auto minmax(0, 1fr);
|
|
2462
|
-
}
|
|
2463
|
-
|
|
2464
|
-
.ef-fault > .ef-recovery-actions,
|
|
2465
|
-
.ef-fault--inline > .ef-recovery-actions,
|
|
2466
|
-
.ef-fault-banner > .ef-recovery-actions,
|
|
2467
|
-
.ef-fault-notification__dismiss {
|
|
2468
|
-
grid-column: 1 / -1;
|
|
2469
|
-
}
|
|
2470
|
-
|
|
2471
|
-
.ef-fault-notification__dismiss {
|
|
2472
|
-
justify-self: stretch;
|
|
2473
|
-
}
|
|
2474
|
-
|
|
2475
|
-
.ef-recovery-actions {
|
|
2476
|
-
inline-size: 100%;
|
|
2477
|
-
}
|
|
2478
|
-
|
|
2479
|
-
.ef-recovery-actions > button,
|
|
2480
|
-
.ef-fault-notification__dismiss {
|
|
2481
|
-
flex: 1 1 100%;
|
|
2482
|
-
inline-size: 100%;
|
|
2483
|
-
}
|
|
2484
|
-
|
|
2485
|
-
.ef-fault-details__list > div {
|
|
2486
|
-
grid-template-columns: 1fr;
|
|
2487
|
-
gap: 0.1rem;
|
|
2488
|
-
}
|
|
2489
|
-
|
|
2490
|
-
.ef-fault-blocking {
|
|
2491
|
-
inline-size: calc(100vw - 1rem);
|
|
2492
|
-
max-block-size: calc(100dvh - 1rem);
|
|
2493
|
-
margin: auto;
|
|
2494
|
-
}
|
|
2495
|
-
}
|
|
2496
|
-
|
|
2497
|
-
@media (forced-colors: active) {
|
|
2498
|
-
.ef-fault,
|
|
2499
|
-
.ef-fault-notification,
|
|
2500
|
-
.ef-fault-banner,
|
|
2501
|
-
.ef-fault-summary,
|
|
2502
|
-
.ef-diagnostic-status,
|
|
2503
|
-
.ef-fault-details {
|
|
2504
|
-
border-color: CanvasText;
|
|
2505
|
-
background: Canvas;
|
|
2506
|
-
color: CanvasText;
|
|
2507
|
-
box-shadow: none;
|
|
2508
|
-
}
|
|
2509
|
-
|
|
2510
|
-
.ef-fault__marker,
|
|
2511
|
-
.ef-fault-notification__marker,
|
|
2512
|
-
.ef-fault-summary__marker,
|
|
2513
|
-
.ef-fault-blocking__marker {
|
|
2514
|
-
border-color: CanvasText;
|
|
2515
|
-
}
|
|
2516
|
-
|
|
2517
|
-
.ef-fault__severity,
|
|
2518
|
-
.ef-fault-summary__meta,
|
|
2519
|
-
.ef-diagnostic-status__body > span,
|
|
2520
|
-
.ef-fault-details__boundary,
|
|
2521
|
-
.ef-fault-reference {
|
|
2522
|
-
color: CanvasText;
|
|
2523
|
-
}
|
|
2524
|
-
}
|
|
2525
|
-
}
|
package/package.json
CHANGED
package/patterns/manifest.md
CHANGED
|
@@ -38,8 +38,6 @@ Own the canonical semantic HTML structures consumed by Echelon applications. Pat
|
|
|
38
38
|
- Documentation and consumer examples wrap the canonical pattern in `<ef-{slug} class="ef-component-tag">`.
|
|
39
39
|
- The `ef-*` wrapper is inert and must never replace the native semantic element inside it or be registered with `customElements.define()`.
|
|
40
40
|
- Modal flyouts stay on native `dialog`; gesture-driven or persistent drawer behavior belongs to Limen/application code.
|
|
41
|
-
- Aegis presentation patterns consume the safe presentation view supplied by the application; raw Aegis faults and diagnostics are outside the pattern boundary.
|
|
42
|
-
- `data-ef-aegis-capability` identifies a rendered recovery capability for Limen/application mapping but never grants authority.
|
|
43
41
|
|
|
44
42
|
## Maintenance
|
|
45
43
|
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<div class="ef-diagnostic-status" data-ef-state="queued" role="status">
|
|
2
|
-
<span class="ef-diagnostic-status__marker" aria-hidden="true">↥</span>
|
|
3
|
-
<span class="ef-diagnostic-status__body">
|
|
4
|
-
<strong>Diagnostics queued</strong>
|
|
5
|
-
<span>3 reports are waiting to synchronize.</span>
|
|
6
|
-
</span>
|
|
7
|
-
</div>
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<aside
|
|
2
|
-
class="ef-alert ef-fault-banner"
|
|
3
|
-
role="status"
|
|
4
|
-
data-ef-intent="banner"
|
|
5
|
-
data-ef-severity="critical"
|
|
6
|
-
data-ef-motion-weight="standard"
|
|
7
|
-
data-ef-motion-entry
|
|
8
|
-
aria-labelledby="fault-banner-title">
|
|
9
|
-
<div class="ef-alert__icon ef-fault-banner__marker" aria-hidden="true">!!</div>
|
|
10
|
-
<div class="ef-fault-banner__body">
|
|
11
|
-
<p class="ef-fault__severity">Critical</p>
|
|
12
|
-
<h2 class="ef-alert__title" id="fault-banner-title">Diagnostics storage is unavailable</h2>
|
|
13
|
-
<p>The application is running in a degraded state. New diagnostics are queued locally.</p>
|
|
14
|
-
<p class="ef-fault-reference">Reference <code>AG-22K8M</code></p>
|
|
15
|
-
</div>
|
|
16
|
-
<div class="ef-recovery-actions" role="group" aria-label="Recovery actions">
|
|
17
|
-
<button type="button" data-ef-aegis-capability="CanRestoreSink">Reconnect diagnostics</button>
|
|
18
|
-
</div>
|
|
19
|
-
</aside>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
<button type="button" commandfor="blocking-fault-dialog" command="show-modal">Preview blocking fault</button>
|
|
2
|
-
<dialog
|
|
3
|
-
class="ef-dialog ef-fault-blocking"
|
|
4
|
-
id="blocking-fault-dialog"
|
|
5
|
-
data-ef-intent="blocking"
|
|
6
|
-
data-ef-severity="critical"
|
|
7
|
-
data-ef-motion-weight="heavy"
|
|
8
|
-
aria-labelledby="blocking-fault-title"
|
|
9
|
-
aria-describedby="blocking-fault-message">
|
|
10
|
-
<div class="ef-dialog__body">
|
|
11
|
-
<div class="ef-fault-blocking__heading">
|
|
12
|
-
<div class="ef-fault-blocking__marker" aria-hidden="true">!!</div>
|
|
13
|
-
<div>
|
|
14
|
-
<p class="ef-fault__severity">Critical</p>
|
|
15
|
-
<h2 id="blocking-fault-title">This application cannot continue safely</h2>
|
|
16
|
-
</div>
|
|
17
|
-
</div>
|
|
18
|
-
<p id="blocking-fault-message">The current state cannot be verified. Use one of the recovery actions below before continuing.</p>
|
|
19
|
-
<p class="ef-fault-reference">Reference <code>AG-7P2DX</code></p>
|
|
20
|
-
</div>
|
|
21
|
-
<div class="ef-dialog__actions ef-recovery-actions" role="group" aria-label="Recovery actions">
|
|
22
|
-
<button type="button" data-ef-aegis-capability="CanOpenReadOnly">Open read-only</button>
|
|
23
|
-
<button type="button" data-ef-aegis-capability="CanReload">Reload</button>
|
|
24
|
-
</div>
|
|
25
|
-
</dialog>
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
<details class="ef-fault-details">
|
|
2
|
-
<summary>Safe diagnostic details</summary>
|
|
3
|
-
<div class="ef-fault-details__content">
|
|
4
|
-
<dl class="ef-fault-details__list">
|
|
5
|
-
<div><dt>Reference</dt><dd><code>AG-4F82C</code></dd></div>
|
|
6
|
-
<div><dt>Application</dt><dd>Chrona</dd></div>
|
|
7
|
-
<div><dt>Recovery state</dt><dd>Retry available</dd></div>
|
|
8
|
-
</dl>
|
|
9
|
-
<p class="ef-fault-details__boundary">Only explicitly approved, already-sanitized diagnostic values belong in this surface.</p>
|
|
10
|
-
</div>
|
|
11
|
-
</details>
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
<div
|
|
2
|
-
class="ef-fault ef-fault--inline"
|
|
3
|
-
id="profile-save-fault"
|
|
4
|
-
data-ef-intent="inline"
|
|
5
|
-
data-ef-severity="error"
|
|
6
|
-
aria-labelledby="profile-save-fault-title">
|
|
7
|
-
<div class="ef-fault__marker" aria-hidden="true">!</div>
|
|
8
|
-
<div class="ef-fault__body">
|
|
9
|
-
<p class="ef-fault__severity">Error</p>
|
|
10
|
-
<p class="ef-fault__title" id="profile-save-fault-title"><strong>Profile was not saved.</strong></p>
|
|
11
|
-
<p class="ef-fault__message">Check your connection and try again.</p>
|
|
12
|
-
<p class="ef-fault-reference">Reference <code>AG-4F82C</code></p>
|
|
13
|
-
</div>
|
|
14
|
-
<div class="ef-recovery-actions" role="group" aria-label="Recovery actions">
|
|
15
|
-
<button type="button" data-ef-aegis-capability="CanRetry">Try again</button>
|
|
16
|
-
</div>
|
|
17
|
-
</div>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<aside
|
|
2
|
-
class="ef-toast ef-fault-notification"
|
|
3
|
-
role="status"
|
|
4
|
-
data-ef-intent="notification"
|
|
5
|
-
data-ef-severity="warning"
|
|
6
|
-
data-ef-motion-weight="standard"
|
|
7
|
-
data-ef-motion-entry
|
|
8
|
-
aria-labelledby="fault-notification-title">
|
|
9
|
-
<div class="ef-fault-notification__marker" aria-hidden="true">!</div>
|
|
10
|
-
<div class="ef-fault-notification__body">
|
|
11
|
-
<p class="ef-fault__severity">Warning</p>
|
|
12
|
-
<h3 class="ef-toast__title" id="fault-notification-title">GitHub is temporarily unavailable</h3>
|
|
13
|
-
<p>Your work is still local. You can retry the synchronization.</p>
|
|
14
|
-
<p class="ef-fault-reference">Reference <code>AG-91B7Q</code></p>
|
|
15
|
-
<div class="ef-recovery-actions" role="group" aria-label="Recovery actions">
|
|
16
|
-
<button type="button" data-ef-aegis-capability="CanRetry">Try again</button>
|
|
17
|
-
</div>
|
|
18
|
-
</div>
|
|
19
|
-
<button type="button" class="ef-fault-notification__dismiss" data-ef-action="dismiss" aria-label="Dismiss notification">Close</button>
|
|
20
|
-
</aside>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<section class="ef-fault-summary" tabindex="-1" aria-labelledby="fault-summary-title">
|
|
2
|
-
<div class="ef-fault-summary__heading">
|
|
3
|
-
<div class="ef-fault-summary__marker" aria-hidden="true">!</div>
|
|
4
|
-
<div>
|
|
5
|
-
<p class="ef-fault__severity">2 unresolved faults</p>
|
|
6
|
-
<h2 id="fault-summary-title">Some work needs your attention</h2>
|
|
7
|
-
<p>Repeated occurrences are grouped by the application before rendering.</p>
|
|
8
|
-
</div>
|
|
9
|
-
</div>
|
|
10
|
-
<ol class="ef-fault-summary__list">
|
|
11
|
-
<li data-ef-severity="error">
|
|
12
|
-
<a href="#customer-name">Customer name could not be saved</a>
|
|
13
|
-
<span class="ef-fault-summary__meta">Error · AG-4F82C · occurred 3 times</span>
|
|
14
|
-
</li>
|
|
15
|
-
<li data-ef-severity="warning">
|
|
16
|
-
<a href="#sync-status">Synchronization is waiting for GitHub</a>
|
|
17
|
-
<span class="ef-fault-summary__meta">Warning · AG-91B7Q</span>
|
|
18
|
-
</li>
|
|
19
|
-
</ol>
|
|
20
|
-
</section>
|
package/dist/patterns/fault.html
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
<section
|
|
2
|
-
class="ef-fault"
|
|
3
|
-
data-ef-intent="inline"
|
|
4
|
-
data-ef-severity="error"
|
|
5
|
-
aria-labelledby="fault-title"
|
|
6
|
-
aria-describedby="fault-message">
|
|
7
|
-
<div class="ef-fault__marker" aria-hidden="true">!</div>
|
|
8
|
-
<div class="ef-fault__body">
|
|
9
|
-
<p class="ef-fault__severity">Error</p>
|
|
10
|
-
<h3 class="ef-fault__title" id="fault-title">Could not save changes</h3>
|
|
11
|
-
<p class="ef-fault__message" id="fault-message">The update did not complete. Your current values are still available.</p>
|
|
12
|
-
<p class="ef-fault-reference">Reference <code>AG-4F82C</code></p>
|
|
13
|
-
</div>
|
|
14
|
-
<div class="ef-recovery-actions" role="group" aria-label="Recovery actions">
|
|
15
|
-
<button type="button" data-ef-aegis-capability="CanRetry">Try again</button>
|
|
16
|
-
</div>
|
|
17
|
-
</section>
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
<div class="ef-recovery-actions" role="group" aria-label="Recovery actions">
|
|
2
|
-
<button type="button" data-ef-aegis-capability="CanRetry">Try again</button>
|
|
3
|
-
<button type="button" data-ef-aegis-capability="CanReauthenticate">Sign in</button>
|
|
4
|
-
<button type="button" data-ef-aegis-capability="CanOpenReadOnly">Open read-only</button>
|
|
5
|
-
</div>
|