@reliability-design/web 1.4.5 → 1.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/CHANGELOG.md +211 -49
  2. package/dist/components/rel-accordion/README.md +132 -132
  3. package/dist/components/rel-alert/README.md +145 -141
  4. package/dist/components/rel-autocomplete/README.md +156 -61
  5. package/dist/components/rel-avatar/README.md +116 -130
  6. package/dist/components/rel-badge/README.md +98 -93
  7. package/dist/components/rel-breadcrumb/README.md +96 -102
  8. package/dist/components/rel-button/README.md +160 -130
  9. package/dist/components/rel-calendar/README.md +109 -109
  10. package/dist/components/rel-card/README.md +75 -94
  11. package/dist/components/rel-cardmedia/README.md +100 -127
  12. package/dist/components/rel-carousel/README.md +184 -166
  13. package/dist/components/rel-checkbox/README.md +93 -75
  14. package/dist/components/rel-chip/README.md +132 -121
  15. package/dist/components/rel-container/README.md +107 -99
  16. package/dist/components/rel-date-picker/README.md +200 -289
  17. package/dist/components/rel-divider/README.md +78 -100
  18. package/dist/components/rel-drawer/README.md +187 -200
  19. package/dist/components/rel-kbd/README.md +141 -151
  20. package/dist/components/rel-menu/README.md +178 -151
  21. package/dist/components/rel-menubar/README.md +218 -329
  22. package/dist/components/rel-otp/README.md +170 -440
  23. package/dist/components/rel-pagination/README.md +100 -424
  24. package/dist/components/rel-popover/README.md +203 -568
  25. package/dist/components/rel-progress/README.md +88 -110
  26. package/dist/components/rel-radio/README.md +131 -135
  27. package/dist/components/rel-range-picker/README.md +162 -0
  28. package/dist/components/rel-resizable/README.md +199 -140
  29. package/dist/components/rel-segmented-button/README.md +155 -141
  30. package/dist/components/rel-select/README.md +154 -93
  31. package/dist/components/rel-sheet/README.md +168 -224
  32. package/dist/components/rel-skeleton/README.md +103 -0
  33. package/dist/components/rel-slider/README.md +130 -135
  34. package/dist/components/rel-snackbar/README.md +162 -134
  35. package/dist/components/rel-stepper/README.md +158 -160
  36. package/dist/components/rel-switch/README.md +108 -102
  37. package/dist/components/rel-tab/README.md +171 -163
  38. package/dist/components/rel-textfield/README.md +159 -69
  39. package/dist/components/rel-time-picker/README.md +122 -157
  40. package/dist/components/rel-toast/README.md +157 -148
  41. package/dist/components/rel-tooltip/README.md +108 -103
  42. package/dist/components/rel-upload/README.md +220 -0
  43. package/dist/index.d.mts +1387 -350
  44. package/dist/index.d.ts +1387 -350
  45. package/dist/index.js +5863 -3600
  46. package/dist/index.js.map +1 -1
  47. package/dist/index.mjs +5864 -3592
  48. package/dist/index.mjs.map +1 -1
  49. package/dist/styles/vars.css +877 -866
  50. package/dist/{vars-XNMTSRVN.css → vars-JHTUGNRG.css} +877 -866
  51. package/package.json +4 -3
  52. package/dist/components/rel-accordion/rel-accordion.ts +0 -336
  53. package/dist/components/rel-alert/rel-alert.ts +0 -305
  54. package/dist/components/rel-autocomplete/rel-autocomplete.ts +0 -689
  55. package/dist/components/rel-avatar/rel-avatar.ts +0 -142
  56. package/dist/components/rel-badge/rel-badge.ts +0 -170
  57. package/dist/components/rel-breadcrumb/rel-breadcrumb.ts +0 -106
  58. package/dist/components/rel-button/rel-button.ts +0 -560
  59. package/dist/components/rel-calendar/index.ts +0 -1
  60. package/dist/components/rel-calendar/rel-calendar.ts +0 -519
  61. package/dist/components/rel-card/rel-card.ts +0 -88
  62. package/dist/components/rel-cardmedia/rel-cardmedia.ts +0 -88
  63. package/dist/components/rel-carousel/index.ts +0 -1
  64. package/dist/components/rel-carousel/rel-carousel.ts +0 -700
  65. package/dist/components/rel-chart/README.md +0 -286
  66. package/dist/components/rel-chart/index.ts +0 -1
  67. package/dist/components/rel-chart/rel-chart.ts +0 -754
  68. package/dist/components/rel-checkbox/rel-checkbox.ts +0 -382
  69. package/dist/components/rel-chip/rel-chip.ts +0 -472
  70. package/dist/components/rel-container/rel-container.ts +0 -95
  71. package/dist/components/rel-date-picker/date-format.test.ts +0 -43
  72. package/dist/components/rel-date-picker/date-format.ts +0 -47
  73. package/dist/components/rel-date-picker/index.ts +0 -1
  74. package/dist/components/rel-date-picker/rel-date-picker.ts +0 -1237
  75. package/dist/components/rel-divider/rel-divider.ts +0 -54
  76. package/dist/components/rel-drawer/index.ts +0 -1
  77. package/dist/components/rel-drawer/rel-drawer-footer.ts +0 -27
  78. package/dist/components/rel-drawer/rel-drawer.ts +0 -604
  79. package/dist/components/rel-kbd/rel-kbd.ts +0 -188
  80. package/dist/components/rel-layout/rel-layout.ts +0 -49
  81. package/dist/components/rel-menu/rel-menu.ts +0 -535
  82. package/dist/components/rel-menubar/index.ts +0 -2
  83. package/dist/components/rel-menubar/rel-menubar-menu.css +0 -3
  84. package/dist/components/rel-menubar/rel-menubar-menu.ts +0 -17
  85. package/dist/components/rel-menubar/rel-menubar.ts +0 -777
  86. package/dist/components/rel-nav-menu/README.md +0 -289
  87. package/dist/components/rel-nav-menu/index.ts +0 -3
  88. package/dist/components/rel-nav-menu/rel-nav-menu-item.ts +0 -243
  89. package/dist/components/rel-nav-menu/rel-nav-menu-panel.ts +0 -72
  90. package/dist/components/rel-nav-menu/rel-nav-menu.ts +0 -270
  91. package/dist/components/rel-navbar/README.md +0 -126
  92. package/dist/components/rel-navbar/rel-navbar.ts +0 -105
  93. package/dist/components/rel-otp/index.ts +0 -1
  94. package/dist/components/rel-otp/rel-otp.ts +0 -517
  95. package/dist/components/rel-pagination/index.ts +0 -1
  96. package/dist/components/rel-pagination/rel-pagination.ts +0 -509
  97. package/dist/components/rel-popover/index.ts +0 -2
  98. package/dist/components/rel-popover/rel-popover-content.ts +0 -81
  99. package/dist/components/rel-popover/rel-popover.ts +0 -444
  100. package/dist/components/rel-progress/rel-progress.ts +0 -225
  101. package/dist/components/rel-radio/rel-radio.ts +0 -305
  102. package/dist/components/rel-range-picker/rel-range-picker.ts +0 -1331
  103. package/dist/components/rel-resizable/index.ts +0 -3
  104. package/dist/components/rel-resizable/rel-resizable-group.ts +0 -405
  105. package/dist/components/rel-resizable/rel-resizable-handle.ts +0 -150
  106. package/dist/components/rel-resizable/rel-resizable-panel.ts +0 -58
  107. package/dist/components/rel-segmented-button/rel-segmented-button.ts +0 -213
  108. package/dist/components/rel-select/rel-select.ts +0 -1385
  109. package/dist/components/rel-sheet/rel-sheet.ts +0 -465
  110. package/dist/components/rel-sidebar/README.md +0 -209
  111. package/dist/components/rel-sidebar/rel-sidebar.ts +0 -1185
  112. package/dist/components/rel-skeleton/rel-skeleton.ts +0 -134
  113. package/dist/components/rel-slider/rel-slider.ts +0 -670
  114. package/dist/components/rel-snackbar/rel-snackbar.ts +0 -325
  115. package/dist/components/rel-stepper/rel-stepper.ts +0 -565
  116. package/dist/components/rel-switch/rel-switch.ts +0 -197
  117. package/dist/components/rel-tab/rel-tab.ts +0 -264
  118. package/dist/components/rel-table/README.md +0 -178
  119. package/dist/components/rel-table/rel-table-body.ts +0 -22
  120. package/dist/components/rel-table/rel-table-caption.ts +0 -30
  121. package/dist/components/rel-table/rel-table-cell.ts +0 -43
  122. package/dist/components/rel-table/rel-table-footer.ts +0 -24
  123. package/dist/components/rel-table/rel-table-head.ts +0 -47
  124. package/dist/components/rel-table/rel-table-header.ts +0 -22
  125. package/dist/components/rel-table/rel-table-row.ts +0 -37
  126. package/dist/components/rel-table/rel-table.ts +0 -62
  127. package/dist/components/rel-textfield/rel-textfield.ts +0 -866
  128. package/dist/components/rel-time-picker/rel-time-picker.ts +0 -1126
  129. package/dist/components/rel-toast/rel-toast.ts +0 -204
  130. package/dist/components/rel-tooltip/rel-tooltip.ts +0 -190
  131. package/dist/components/rel-topbar/rel-topbar-actions.ts +0 -27
  132. package/dist/components/rel-topbar/rel-topbar-brand.ts +0 -54
  133. package/dist/components/rel-topbar/rel-topbar-dropdown-item.ts +0 -69
  134. package/dist/components/rel-topbar/rel-topbar-dropdown.ts +0 -31
  135. package/dist/components/rel-topbar/rel-topbar-item.ts +0 -324
  136. package/dist/components/rel-topbar/rel-topbar-mobile-panel.ts +0 -27
  137. package/dist/components/rel-topbar/rel-topbar-profile.ts +0 -243
  138. package/dist/components/rel-topbar/rel-topbar-utilities.ts +0 -27
  139. package/dist/components/rel-topbar/rel-topbar.ts +0 -446
  140. package/dist/components/rel-upload/UPLOAD-DESIGN-CHANGES.md +0 -134
  141. package/dist/components/rel-upload/rel-upload-actions.ts +0 -163
  142. package/dist/components/rel-upload/rel-upload.ts +0 -943
@@ -1,151 +1,141 @@
1
- # rel-kbd
2
-
3
- A keyboard key/shortcut pill component for displaying keyboard shortcuts and key combinations in a visually consistent way.
4
-
5
- ## Usage
6
-
7
- ```html
8
- <!-- Basic usage -->
9
- <rel-kbd>K</rel-kbd>
10
-
11
- <!-- Keyboard shortcut combination -->
12
- <rel-kbd>Ctrl</rel-kbd> + <rel-kbd>K</rel-kbd>
13
-
14
- <!-- With variants -->
15
- <rel-kbd variant="muted">⌘</rel-kbd>
16
- <rel-kbd variant="default">Shift</rel-kbd>
17
-
18
- <!-- Different sizes -->
19
- <rel-kbd size="sm">Esc</rel-kbd>
20
- <rel-kbd size="md">Enter</rel-kbd>
21
- <rel-kbd size="lg">Space</rel-kbd>
22
-
23
- <!-- Pill shape -->
24
- <rel-kbd pill>R</rel-kbd>
25
-
26
- <!-- Inset (pressed) appearance -->
27
- <rel-kbd inset>Tab</rel-kbd>
28
- ```
29
-
30
- ## API
31
-
32
- ### Properties
33
-
34
- | Property | Type | Default | Description |
35
- |----------|------|---------|-------------|
36
- | `size` | `"sm" \| "md" \| "lg"` | `"md"` | Controls the size of the kbd element |
37
- | `variant` | `"default" \| "muted"` | `"default"` | Visual style variant |
38
- | `pill` | `boolean` | `false` | When true, renders with full rounded corners |
39
- | `inset` | `boolean` | `false` | When true, renders with pressed/inset appearance |
40
-
41
- ### Slots
42
-
43
- | Slot | Description |
44
- |------|-------------|
45
- | (default) | The keyboard key label or character |
46
-
47
- ### CSS Custom Properties
48
-
49
- The component uses design tokens from the Reliability Design System:
50
-
51
- #### Colors
52
- - `--rel-bg-surface-elevated` - Default background
53
- - `--rel-bg-neutral-elevated-1` - Muted and inset backgrounds
54
- - `--rel-text-label` - Default text color
55
- - `--rel-text-placeholder` - Muted text color
56
- - `--rel-border-default` - Default border
57
- - `--rel-border-default` - Muted border
58
-
59
- #### Typography
60
- - `--rel-fonts-font-family` - Font family (Poppins)
61
- - `--rel-fonts-weight-body-medium` - Font weight (500)
62
- - `--rel-body-xs-regular-font-size` - Small size font
63
- - `--rel-body-sm-regular-font-size` - Medium size font
64
- - `--rel-body-md-regular-font-size` - Large size font
65
-
66
- #### Spacing
67
- - `--rel-spacing-3xs` (2px)
68
- - `--rel-spacing-2xs` (4px)
69
- - `--rel-spacing-xs` (8px)
70
- - `--rel-spacing-sm` (12px)
71
- - `--rel-spacing-md` (16px)
72
-
73
- #### Borders
74
- - `--rel-stroke-sm` (1px)
75
- - `--rel-border-radius-xs` (2px)
76
- - `--rel-border-radius-sm` (8px)
77
- - `--rel-border-radius-full-rounded` (1000px - pill shape)
78
-
79
- ## Examples
80
-
81
- ### Search Shortcut
82
- ```html
83
- <p>Press <rel-kbd>Ctrl</rel-kbd> + <rel-kbd>K</rel-kbd> to search</p>
84
- ```
85
-
86
- ### Mac Shortcut
87
- ```html
88
- <p>Press <rel-kbd variant="muted">⌘</rel-kbd> + <rel-kbd>Shift</rel-kbd> + <rel-kbd pill>R</rel-kbd> to reload</p>
89
- ```
90
-
91
- ### Multiple Sizes
92
- ```html
93
- <div style="display: flex; gap: 8px; align-items: center;">
94
- <rel-kbd size="sm">S</rel-kbd>
95
- <rel-kbd size="md">M</rel-kbd>
96
- <rel-kbd size="lg">L</rel-kbd>
97
- </div>
98
- ```
99
-
100
- ### Pressed State
101
- ```html
102
- <p>Hold <rel-kbd inset>Space</rel-kbd> to preview</p>
103
- ```
104
-
105
- ## Accessibility
106
-
107
- - Uses semantic `<kbd>` HTML element for proper semantics
108
- - `role="presentation"` is set to avoid redundant announcements
109
- - Non-interactive by default (no tabindex)
110
- - Text content is fully accessible to screen readers
111
- - Inherits text color that maintains sufficient contrast ratios
112
-
113
- ## Styling Notes
114
-
115
- ### Default Appearance
116
- - Subtle background with light border
117
- - Small inset highlight shadow for raised appearance
118
- - Monospaced font weight for technical look
119
-
120
- ### Muted Variant
121
- - Lower contrast for secondary shortcuts
122
- - Softer colors and reduced shadow
123
-
124
- ### Pill Modifier
125
- - Fully rounded corners using border-radius-500 token
126
- - Ideal for single character keys
127
-
128
- ### Inset Modifier
129
- - Inverted shadow for pressed/active appearance
130
- - Slight vertical translation for depth effect
131
- - Darker background to indicate pressed state
132
-
133
- ## Dark Mode Support
134
-
135
- The component automatically supports dark mode when design tokens are configured with dark mode variants, as it exclusively uses CSS custom properties.
136
-
137
- ## Browser Support
138
-
139
- Compatible with all modern browsers that support:
140
- - Web Components
141
- - CSS Custom Properties
142
- - Shadow DOM
143
-
144
- ## Framework Integration
145
-
146
- Works seamlessly with:
147
- - Vanilla JavaScript
148
- - Angular
149
- - React (via wrapper)
150
- - Vue
151
- - Any framework that supports Web Components
1
+ # rel-kbd
2
+
3
+ `<rel-kbd>` is the single key cap from the Figma "Kbd" component (node 6316:284): a flat, bordered chip that shows a keyboard key or shortcut inline with text, in three heights (20 / 24 / 28px) and two fills (`default`, `muted`), with an `inset` pressed look. `<rel-kbd-group>` (Figma Kbd Items=1–4) renders a multi-key shortcut from an `items` array, one `<rel-kbd>` per key joined by "+" separators. Use them in help text, tooltips, menus and command palettes to display shortcuts. They are display-only — do not use them as buttons, and use `rel-chip` for tags or `rel-badge` for counts.
4
+
5
+ ## Usage
6
+
7
+ ```html
8
+ <!-- Single key -->
9
+ <rel-kbd>K</rel-kbd>
10
+
11
+ <!-- Sizes -->
12
+ <rel-kbd size="small">Esc</rel-kbd>
13
+ <rel-kbd size="medium">Enter</rel-kbd>
14
+ <rel-kbd size="large">Space</rel-kbd>
15
+
16
+ <!-- Variants -->
17
+ <rel-kbd variant="default">Shift</rel-kbd>
18
+ <rel-kbd variant="muted">⌘</rel-kbd>
19
+
20
+ <!-- Pressed look -->
21
+ <p>Hold <rel-kbd inset>Space</rel-kbd> to preview</p>
22
+
23
+ <!-- Multi-key shortcut from an items array (JSON attribute or property) -->
24
+ <rel-kbd-group items='["Ctrl","Shift","P"]' size="medium"></rel-kbd-group>
25
+ <rel-kbd-group id="palette" variant="muted" size="small"></rel-kbd-group>
26
+ <script>
27
+ document.getElementById("palette").items = ["⌘", "K"];
28
+ </script>
29
+
30
+ <!-- Inline with text -->
31
+ <p>Press <rel-kbd-group items='["Ctrl","K"]'></rel-kbd-group> to search</p>
32
+ ```
33
+
34
+ ### Deprecated aliases
35
+
36
+ ```html
37
+ <!-- sm / md / lg → small / medium / large (accepted silently; no console notice) -->
38
+ <rel-kbd size="sm">S</rel-kbd>
39
+ <rel-kbd size="md">M</rel-kbd>
40
+ <rel-kbd size="lg">L</rel-kbd>
41
+ <rel-kbd-group items='["Ctrl","C"]' size="md"></rel-kbd-group>
42
+
43
+ <!-- `pill` is deprecated → use the default 4px radius. Still renders fully rounded corners and logs once:
44
+ [rel-kbd] "pill" is deprecated and will be removed in 3.0 — use "the default radius (4px at every size)" instead. The Kbd spec has one radius at every size; pill keeps working but is not part of the design. -->
45
+ <rel-kbd pill>R</rel-kbd>
46
+ ```
47
+
48
+ <!-- readme-gen:start -->
49
+
50
+ <!-- Generated from rel-kbd.ts — do not edit; run readme-generate.mjs -->
51
+
52
+ ## Elements
53
+
54
+ | Element | Class | Source |
55
+ | --- | --- | --- |
56
+ | `<rel-kbd>` | `RelKbd` | `rel-kbd.ts` |
57
+ | `<rel-kbd-group>` | `RelKbdGroup` | `rel-kbd.ts` |
58
+
59
+ ## API
60
+
61
+ ### `<rel-kbd>`
62
+
63
+ #### Attributes / Properties
64
+
65
+ | Property | Attribute | Type | Default | Description |
66
+ | --- | --- | --- | --- | --- |
67
+ | `size` | `size` | `"sm" \| "md" \| "lg" \| "small" \| "medium" \| "large"` | `"md"` | Key-cap scale (Figma Size): `small` 20px tall / label-sm, `medium` 24px / label-md, `large` 28px / label-lg; 4px radius at every size. `sm` / `md` / `lg` are the legacy short spellings and stay accepted. Reflected. |
68
+ | `variant` | `variant` | `"default" \| "muted"` | `"default"` | Fill / text contrast: `default` = elevated-1 background with label text; `muted` = elevated-2 background with placeholder-tone text for secondary shortcuts. Both are flat with a 1px border. Reflected. |
69
+ | `inset` | `inset` | `boolean` | `false` | Pressed look: border-strong stroke, 1px downward nudge and (muted variant) a darker fill. Reflected. |
70
+
71
+ ##### Deprecated (still supported — removal targeted for 3.0)
72
+
73
+ | Property | Attribute | Type | Use instead |
74
+ | --- | --- | --- | --- |
75
+ | `pill` | `pill` | `boolean` | The Kbd spec has a single 4px radius at every size (audit 16); `pill` is kept working as an alias but logs a one-time notice. |
76
+
77
+ ### Events
78
+
79
+ | Event | Detail | Bubbles / composed | Description |
80
+ | --- | --- | --- | --- |
81
+ | — | — | — | This element emits no custom events. |
82
+
83
+ ### Slots
84
+
85
+ | Slot | Description |
86
+ | --- | --- |
87
+ | (default) | The key label (e.g. `Ctrl`, `K`, `⌘`) |
88
+
89
+ ### CSS Parts
90
+
91
+ | Part | Description |
92
+ | --- | --- |
93
+ | — | None exposed. |
94
+
95
+ ### `<rel-kbd-group>`
96
+
97
+ #### Attributes / Properties
98
+
99
+ | Property | Attribute | Type | Default | Description |
100
+ | --- | --- | --- | --- | --- |
101
+ | `items` | `items` | `string[]` | `[]` | Key labels to render, one `<rel-kbd>` each, joined by `+` separators. Set as a property or as a JSON array attribute (`items='["Ctrl","K"]'`). |
102
+ | `size` | `size` | `"sm" \| "md" \| "lg" \| "small" \| "medium" \| "large"` | `"md"` | Passed through to every generated <rel-kbd>: `small` / `medium` / `large` (legacy `sm` / `md` / `lg` still accepted). Reflected. |
103
+ | `variant` | `variant` | `"default" \| "muted"` | `"default"` | Passed through to every generated <rel-kbd>: `default` or `muted`. Reflected. |
104
+
105
+ ### Events
106
+
107
+ | Event | Detail | Bubbles / composed | Description |
108
+ | --- | --- | --- | --- |
109
+ | — | — | — | This element emits no custom events. |
110
+
111
+ ### Slots
112
+
113
+ | Slot | Description |
114
+ | --- | --- |
115
+ | (default) | Extra content rendered after the generated keys (e.g. hand-written `<rel-kbd>` children) |
116
+
117
+ ### CSS Parts
118
+
119
+ | Part | Description |
120
+ | --- | --- |
121
+ | `label` | The `+` separator between generated keys |
122
+ | `item` | Each generated `<rel-kbd>` key cap |
123
+
124
+ <!-- readme-gen:end -->
125
+
126
+ ## Accessibility
127
+
128
+ - Both elements are purely presentational: no ARIA role, no `tabindex`, no keyboard handling and no events. `<rel-kbd>` renders only its default slot, so the key label is plain text for screen readers.
129
+ - Neither element wraps its content in a native `<kbd>`. If you need that semantics, put the `<kbd>` in light DOM: `<kbd><rel-kbd>Ctrl</rel-kbd></kbd>`.
130
+ - In `<rel-kbd-group>` the "+" separators are `aria-hidden="true"`, so a shortcut reads as the sequence of key labels only.
131
+ - Text is `user-select: none` on the key caps and separators, so shortcuts are not copied along with surrounding prose.
132
+ - Colours come from the neutral elevated backgrounds with `--rel-text-label` (default) and `--rel-text-placeholder` (muted) text; the muted variant is intended for secondary shortcuts and has lower contrast by design.
133
+
134
+ ## Notes / Edge Cases
135
+
136
+ - Heights are the Figma frame heights (20 / 24 / 28px) with the 1px border inside them (`box-sizing: border-box`), and the corner radius is 4px at every size. The key cap is flat — fill plus 1px stroke, no shadow — matching the Figma component.
137
+ - `small` / `medium` / `large` and `sm` / `md` / `lg` are interchangeable at the CSS level (`:host([size="md"])` and `:host([size="medium"])` share rules); the default value is `md`.
138
+ - `inset` swaps the stroke to `--rel-border-strong` and nudges the cap 1px down; in the `muted` variant it also darkens the fill.
139
+ - A `<span>` slotted into `<rel-kbd>` picks up body-sm-regular type (Figma hint text) instead of the label type.
140
+ - `<rel-kbd-group>` passes its `size` and `variant` to every generated key; `items` set as an attribute must be a JSON array string. Slotted `<rel-kbd>` children render after the generated keys with no automatic "+" separators — either use `items` or hand-write the whole shortcut.
141
+ - The `item` and `label` parts exist only on `<rel-kbd-group>`; a standalone `<rel-kbd>` exposes no parts.