@reliability-design/web 1.4.6 → 1.4.8
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/CHANGELOG.md +246 -49
- package/dist/components/rel-accordion/README.md +133 -132
- package/dist/components/rel-alert/README.md +145 -141
- package/dist/components/rel-autocomplete/README.md +172 -61
- package/dist/components/rel-avatar/README.md +118 -130
- package/dist/components/rel-badge/README.md +97 -93
- package/dist/components/rel-breadcrumb/README.md +96 -102
- package/dist/components/rel-button/README.md +190 -130
- package/dist/components/rel-calendar/README.md +109 -109
- package/dist/components/rel-card/README.md +75 -94
- package/dist/components/rel-cardmedia/README.md +100 -127
- package/dist/components/rel-carousel/README.md +186 -166
- package/dist/components/rel-checkbox/README.md +96 -75
- package/dist/components/rel-chip/README.md +138 -121
- package/dist/components/rel-container/README.md +107 -99
- package/dist/components/rel-date-picker/README.md +200 -289
- package/dist/components/rel-divider/README.md +88 -100
- package/dist/components/rel-drawer/README.md +187 -200
- package/dist/components/rel-kbd/README.md +141 -151
- package/dist/components/rel-layout/README.md +34 -0
- package/dist/components/rel-menu/README.md +180 -151
- package/dist/components/rel-menubar/README.md +218 -329
- package/dist/components/rel-otp/README.md +171 -440
- package/dist/components/rel-pagination/README.md +100 -424
- package/dist/components/rel-popover/README.md +203 -568
- package/dist/components/rel-progress/README.md +88 -110
- package/dist/components/rel-radio/README.md +131 -138
- package/dist/components/rel-range-picker/README.md +165 -0
- package/dist/components/rel-resizable/README.md +199 -140
- package/dist/components/rel-segmented-button/README.md +156 -141
- package/dist/components/rel-select/README.md +156 -93
- package/dist/components/rel-sheet/README.md +168 -224
- package/dist/components/rel-skeleton/README.md +104 -0
- package/dist/components/rel-slider/README.md +131 -135
- package/dist/components/rel-snackbar/README.md +168 -134
- package/dist/components/rel-stepper/README.md +162 -160
- package/dist/components/rel-switch/README.md +117 -102
- package/dist/components/rel-tab/README.md +173 -163
- package/dist/components/rel-textfield/README.md +176 -69
- package/dist/components/rel-time-picker/README.md +122 -157
- package/dist/components/rel-toast/README.md +165 -148
- package/dist/components/rel-tooltip/README.md +119 -111
- package/dist/components/rel-upload/README.md +220 -0
- package/dist/index.d.mts +1726 -447
- package/dist/index.d.ts +1726 -447
- package/dist/index.js +13715 -10870
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +14018 -11163
- package/dist/index.mjs.map +1 -1
- package/dist/styles/focus-ring.ts +84 -0
- package/dist/styles/vars.css +892 -866
- package/dist/{vars-XNMTSRVN.css → vars-DXX6QOAG.css} +892 -866
- package/package.json +3 -2
- package/dist/components/rel-accordion/rel-accordion.ts +0 -336
- package/dist/components/rel-alert/rel-alert.ts +0 -305
- package/dist/components/rel-autocomplete/rel-autocomplete.ts +0 -720
- package/dist/components/rel-avatar/rel-avatar.ts +0 -142
- package/dist/components/rel-badge/rel-badge.ts +0 -175
- package/dist/components/rel-breadcrumb/rel-breadcrumb.ts +0 -106
- package/dist/components/rel-button/rel-button.ts +0 -560
- package/dist/components/rel-calendar/index.ts +0 -1
- package/dist/components/rel-calendar/rel-calendar.ts +0 -565
- package/dist/components/rel-card/rel-card.ts +0 -88
- package/dist/components/rel-cardmedia/rel-cardmedia.ts +0 -88
- package/dist/components/rel-carousel/index.ts +0 -1
- package/dist/components/rel-carousel/rel-carousel.ts +0 -723
- package/dist/components/rel-chart/README.md +0 -286
- package/dist/components/rel-chart/index.ts +0 -1
- package/dist/components/rel-chart/rel-chart.ts +0 -754
- package/dist/components/rel-checkbox/rel-checkbox.ts +0 -382
- package/dist/components/rel-chip/rel-chip.ts +0 -483
- package/dist/components/rel-container/rel-container.ts +0 -95
- package/dist/components/rel-date-picker/date-format.test.ts +0 -43
- package/dist/components/rel-date-picker/date-format.ts +0 -47
- package/dist/components/rel-date-picker/date-parse.test.ts +0 -116
- package/dist/components/rel-date-picker/date-parse.ts +0 -178
- package/dist/components/rel-date-picker/index.ts +0 -1
- package/dist/components/rel-date-picker/rel-date-picker.ts +0 -1676
- package/dist/components/rel-divider/rel-divider.ts +0 -54
- package/dist/components/rel-drawer/index.ts +0 -1
- package/dist/components/rel-drawer/rel-drawer-footer.ts +0 -27
- package/dist/components/rel-drawer/rel-drawer.ts +0 -607
- package/dist/components/rel-kbd/rel-kbd.ts +0 -188
- package/dist/components/rel-layout/rel-layout.ts +0 -49
- package/dist/components/rel-menu/rel-menu.ts +0 -541
- package/dist/components/rel-menubar/index.ts +0 -2
- package/dist/components/rel-menubar/rel-menubar-menu.css +0 -3
- package/dist/components/rel-menubar/rel-menubar-menu.ts +0 -17
- package/dist/components/rel-menubar/rel-menubar.ts +0 -777
- package/dist/components/rel-nav-menu/README.md +0 -289
- package/dist/components/rel-nav-menu/index.ts +0 -3
- package/dist/components/rel-nav-menu/rel-nav-menu-item.ts +0 -243
- package/dist/components/rel-nav-menu/rel-nav-menu-panel.ts +0 -72
- package/dist/components/rel-nav-menu/rel-nav-menu.ts +0 -270
- package/dist/components/rel-navbar/README.md +0 -126
- package/dist/components/rel-navbar/rel-navbar.ts +0 -105
- package/dist/components/rel-otp/index.ts +0 -1
- package/dist/components/rel-otp/rel-otp.ts +0 -527
- package/dist/components/rel-pagination/index.ts +0 -1
- package/dist/components/rel-pagination/rel-pagination.ts +0 -522
- package/dist/components/rel-popover/index.ts +0 -2
- package/dist/components/rel-popover/rel-popover-content.ts +0 -81
- package/dist/components/rel-popover/rel-popover.ts +0 -475
- package/dist/components/rel-progress/rel-progress.ts +0 -234
- package/dist/components/rel-radio/rel-radio.ts +0 -481
- package/dist/components/rel-range-picker/rel-range-picker.ts +0 -1688
- package/dist/components/rel-resizable/index.ts +0 -3
- package/dist/components/rel-resizable/rel-resizable-group.ts +0 -405
- package/dist/components/rel-resizable/rel-resizable-handle.ts +0 -150
- package/dist/components/rel-resizable/rel-resizable-panel.ts +0 -58
- package/dist/components/rel-segmented-button/rel-segmented-button.ts +0 -217
- package/dist/components/rel-select/rel-select.ts +0 -1416
- package/dist/components/rel-sheet/rel-sheet.ts +0 -610
- package/dist/components/rel-sidebar/README.md +0 -209
- package/dist/components/rel-sidebar/rel-sidebar.ts +0 -1191
- package/dist/components/rel-skeleton/rel-skeleton.ts +0 -143
- package/dist/components/rel-slider/rel-slider.ts +0 -673
- package/dist/components/rel-snackbar/rel-snackbar.ts +0 -329
- package/dist/components/rel-stepper/rel-stepper.ts +0 -567
- package/dist/components/rel-switch/rel-switch.ts +0 -199
- package/dist/components/rel-tab/rel-tab.ts +0 -264
- package/dist/components/rel-table/README.md +0 -178
- package/dist/components/rel-table/rel-table-body.ts +0 -22
- package/dist/components/rel-table/rel-table-caption.ts +0 -30
- package/dist/components/rel-table/rel-table-cell.ts +0 -43
- package/dist/components/rel-table/rel-table-footer.ts +0 -24
- package/dist/components/rel-table/rel-table-head.ts +0 -47
- package/dist/components/rel-table/rel-table-header.ts +0 -22
- package/dist/components/rel-table/rel-table-row.ts +0 -37
- package/dist/components/rel-table/rel-table.ts +0 -62
- package/dist/components/rel-textfield/rel-textfield.ts +0 -1054
- package/dist/components/rel-time-picker/rel-time-picker.ts +0 -1482
- package/dist/components/rel-time-picker/time-parse.test.ts +0 -67
- package/dist/components/rel-time-picker/time-parse.ts +0 -85
- package/dist/components/rel-toast/rel-toast.ts +0 -206
- package/dist/components/rel-tooltip/rel-tooltip.ts +0 -193
- package/dist/components/rel-topbar/rel-topbar-actions.ts +0 -27
- package/dist/components/rel-topbar/rel-topbar-brand.ts +0 -54
- package/dist/components/rel-topbar/rel-topbar-dropdown-item.ts +0 -69
- package/dist/components/rel-topbar/rel-topbar-dropdown.ts +0 -31
- package/dist/components/rel-topbar/rel-topbar-item.ts +0 -324
- package/dist/components/rel-topbar/rel-topbar-mobile-panel.ts +0 -27
- package/dist/components/rel-topbar/rel-topbar-profile.ts +0 -243
- package/dist/components/rel-topbar/rel-topbar-utilities.ts +0 -27
- package/dist/components/rel-topbar/rel-topbar.ts +0 -446
- package/dist/components/rel-upload/UPLOAD-DESIGN-CHANGES.md +0 -134
- package/dist/components/rel-upload/rel-upload-actions.ts +0 -163
- package/dist/components/rel-upload/rel-upload.ts +0 -968
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { css } from "lit";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The composed focus ring (S1).
|
|
5
|
+
*
|
|
6
|
+
* Figma draws focus as up to two concentric strokes, and several components
|
|
7
|
+
* also draw a hover / dragged stroke on the same edge. Implementing those as
|
|
8
|
+
* per-component `outline` + `box-shadow` pairs does not work: `box-shadow` is
|
|
9
|
+
* a single property, so a `:hover` rule that sets it wipes the focus ring a
|
|
10
|
+
* `:focus-visible` rule set, and specificity decides the winner rather than
|
|
11
|
+
* intent. rel-chip hit exactly this (its subtle tones set `border-color` on
|
|
12
|
+
* hover, and moving that to an inset shadow clobbered the inner focus ring).
|
|
13
|
+
*
|
|
14
|
+
* So the layers are composed ONCE here, and every state rule contributes by
|
|
15
|
+
* setting a custom property instead of re-declaring `box-shadow`. Widths
|
|
16
|
+
* default to `0px`, so a layer costs nothing until a state turns it on, and
|
|
17
|
+
* hover / dragged / focus can all be active at the same time.
|
|
18
|
+
*
|
|
19
|
+
* --_rel-ring-w / -c outer ring (Figma strokeAlign=OUTSIDE)
|
|
20
|
+
* --_rel-ring-inner-w / -c inner ring (Figma strokeAlign=INSIDE)
|
|
21
|
+
* --_rel-ring-stroke-w / -c hover / dragged stroke, also INSIDE
|
|
22
|
+
* --_rel-ring-elevation the element's own box-shadow, if it has one
|
|
23
|
+
*
|
|
24
|
+
* ## Why the outer ring is an `outline` and not another shadow layer
|
|
25
|
+
*
|
|
26
|
+
* `box-shadow` is not painted in forced-colors mode (Windows High Contrast),
|
|
27
|
+
* but `outline` is, and the UA forces it to the user's highlight colour. A
|
|
28
|
+
* ring built entirely from shadows therefore disappears for exactly the users
|
|
29
|
+
* who most depend on it — a WCAG 2.4.11 failure. Keeping the OUTER ring on
|
|
30
|
+
* `outline` means focus stays visible there even though the inner ring and the
|
|
31
|
+
* hover stroke (both decorative refinements) drop out. `outline` also never
|
|
32
|
+
* affects layout, and at `outline-offset: 0` it sits flush against the border
|
|
33
|
+
* box, which is precisely what strokeAlign=OUTSIDE means.
|
|
34
|
+
*
|
|
35
|
+
* ## Usage
|
|
36
|
+
*
|
|
37
|
+
* static styles = [focusRing, css`…`];
|
|
38
|
+
*
|
|
39
|
+
* Put `class="rel-ring"` on the element that carries the ring, then drive it
|
|
40
|
+
* from state rules:
|
|
41
|
+
*
|
|
42
|
+
* .chip:has(.chip-action:focus-visible) { --_rel-ring-w: 1.5px; --_rel-ring-inner-w: 1px; }
|
|
43
|
+
* .chip:hover { --_rel-ring-stroke-w: 1px; --_rel-ring-stroke-c: …; }
|
|
44
|
+
*
|
|
45
|
+
* Recipe A (button, chip, checkbox, radio, switch): outer `--rel-border-focus`
|
|
46
|
+
* at 1.5px, plus `--rel-border-focus-inner` INSIDE on filled styles only —
|
|
47
|
+
* 2px on button, 1px on chip and switch.
|
|
48
|
+
*
|
|
49
|
+
* Recipe B (textfield, select, otp, picker triggers): keep the resting 1px
|
|
50
|
+
* hairline and draw `--rel-border-strong` 2px outside it. Recipe B needs only
|
|
51
|
+
* the outer ring here; the hairline stays the element's own `border`.
|
|
52
|
+
*
|
|
53
|
+
* An element that already has a shadow (elevation) must hand it over as
|
|
54
|
+
* `--_rel-ring-elevation` instead of declaring `box-shadow` itself, or the
|
|
55
|
+
* composed declaration below will replace it.
|
|
56
|
+
*/
|
|
57
|
+
export const focusRing = css`
|
|
58
|
+
:host {
|
|
59
|
+
--_rel-ring-w: 0px;
|
|
60
|
+
--_rel-ring-c: var(--rel-border-focus);
|
|
61
|
+
--_rel-ring-inner-w: 0px;
|
|
62
|
+
--_rel-ring-inner-c: var(--rel-border-focus-inner);
|
|
63
|
+
--_rel-ring-stroke-w: 0px;
|
|
64
|
+
--_rel-ring-stroke-c: transparent;
|
|
65
|
+
--_rel-ring-elevation: 0 0 #0000;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.rel-ring {
|
|
69
|
+
outline: var(--_rel-ring-w) solid var(--_rel-ring-c);
|
|
70
|
+
outline-offset: 0;
|
|
71
|
+
box-shadow:
|
|
72
|
+
inset 0 0 0 var(--_rel-ring-stroke-w) var(--_rel-ring-stroke-c),
|
|
73
|
+
inset 0 0 0 var(--_rel-ring-inner-w) var(--_rel-ring-inner-c),
|
|
74
|
+
var(--_rel-ring-elevation);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* Both inset layers are dropped here by the UA; the outer ring carries the
|
|
78
|
+
whole indication, so force it to the system highlight colour. */
|
|
79
|
+
@media (forced-colors: active) {
|
|
80
|
+
.rel-ring {
|
|
81
|
+
outline-color: Highlight;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
`;
|