@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.
Files changed (148) hide show
  1. package/CHANGELOG.md +246 -49
  2. package/dist/components/rel-accordion/README.md +133 -132
  3. package/dist/components/rel-alert/README.md +145 -141
  4. package/dist/components/rel-autocomplete/README.md +172 -61
  5. package/dist/components/rel-avatar/README.md +118 -130
  6. package/dist/components/rel-badge/README.md +97 -93
  7. package/dist/components/rel-breadcrumb/README.md +96 -102
  8. package/dist/components/rel-button/README.md +190 -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 +186 -166
  13. package/dist/components/rel-checkbox/README.md +96 -75
  14. package/dist/components/rel-chip/README.md +138 -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 +88 -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-layout/README.md +34 -0
  21. package/dist/components/rel-menu/README.md +180 -151
  22. package/dist/components/rel-menubar/README.md +218 -329
  23. package/dist/components/rel-otp/README.md +171 -440
  24. package/dist/components/rel-pagination/README.md +100 -424
  25. package/dist/components/rel-popover/README.md +203 -568
  26. package/dist/components/rel-progress/README.md +88 -110
  27. package/dist/components/rel-radio/README.md +131 -138
  28. package/dist/components/rel-range-picker/README.md +165 -0
  29. package/dist/components/rel-resizable/README.md +199 -140
  30. package/dist/components/rel-segmented-button/README.md +156 -141
  31. package/dist/components/rel-select/README.md +156 -93
  32. package/dist/components/rel-sheet/README.md +168 -224
  33. package/dist/components/rel-skeleton/README.md +104 -0
  34. package/dist/components/rel-slider/README.md +131 -135
  35. package/dist/components/rel-snackbar/README.md +168 -134
  36. package/dist/components/rel-stepper/README.md +162 -160
  37. package/dist/components/rel-switch/README.md +117 -102
  38. package/dist/components/rel-tab/README.md +173 -163
  39. package/dist/components/rel-textfield/README.md +176 -69
  40. package/dist/components/rel-time-picker/README.md +122 -157
  41. package/dist/components/rel-toast/README.md +165 -148
  42. package/dist/components/rel-tooltip/README.md +119 -111
  43. package/dist/components/rel-upload/README.md +220 -0
  44. package/dist/index.d.mts +1726 -447
  45. package/dist/index.d.ts +1726 -447
  46. package/dist/index.js +13715 -10870
  47. package/dist/index.js.map +1 -1
  48. package/dist/index.mjs +14018 -11163
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/styles/focus-ring.ts +84 -0
  51. package/dist/styles/vars.css +892 -866
  52. package/dist/{vars-XNMTSRVN.css → vars-DXX6QOAG.css} +892 -866
  53. package/package.json +3 -2
  54. package/dist/components/rel-accordion/rel-accordion.ts +0 -336
  55. package/dist/components/rel-alert/rel-alert.ts +0 -305
  56. package/dist/components/rel-autocomplete/rel-autocomplete.ts +0 -720
  57. package/dist/components/rel-avatar/rel-avatar.ts +0 -142
  58. package/dist/components/rel-badge/rel-badge.ts +0 -175
  59. package/dist/components/rel-breadcrumb/rel-breadcrumb.ts +0 -106
  60. package/dist/components/rel-button/rel-button.ts +0 -560
  61. package/dist/components/rel-calendar/index.ts +0 -1
  62. package/dist/components/rel-calendar/rel-calendar.ts +0 -565
  63. package/dist/components/rel-card/rel-card.ts +0 -88
  64. package/dist/components/rel-cardmedia/rel-cardmedia.ts +0 -88
  65. package/dist/components/rel-carousel/index.ts +0 -1
  66. package/dist/components/rel-carousel/rel-carousel.ts +0 -723
  67. package/dist/components/rel-chart/README.md +0 -286
  68. package/dist/components/rel-chart/index.ts +0 -1
  69. package/dist/components/rel-chart/rel-chart.ts +0 -754
  70. package/dist/components/rel-checkbox/rel-checkbox.ts +0 -382
  71. package/dist/components/rel-chip/rel-chip.ts +0 -483
  72. package/dist/components/rel-container/rel-container.ts +0 -95
  73. package/dist/components/rel-date-picker/date-format.test.ts +0 -43
  74. package/dist/components/rel-date-picker/date-format.ts +0 -47
  75. package/dist/components/rel-date-picker/date-parse.test.ts +0 -116
  76. package/dist/components/rel-date-picker/date-parse.ts +0 -178
  77. package/dist/components/rel-date-picker/index.ts +0 -1
  78. package/dist/components/rel-date-picker/rel-date-picker.ts +0 -1676
  79. package/dist/components/rel-divider/rel-divider.ts +0 -54
  80. package/dist/components/rel-drawer/index.ts +0 -1
  81. package/dist/components/rel-drawer/rel-drawer-footer.ts +0 -27
  82. package/dist/components/rel-drawer/rel-drawer.ts +0 -607
  83. package/dist/components/rel-kbd/rel-kbd.ts +0 -188
  84. package/dist/components/rel-layout/rel-layout.ts +0 -49
  85. package/dist/components/rel-menu/rel-menu.ts +0 -541
  86. package/dist/components/rel-menubar/index.ts +0 -2
  87. package/dist/components/rel-menubar/rel-menubar-menu.css +0 -3
  88. package/dist/components/rel-menubar/rel-menubar-menu.ts +0 -17
  89. package/dist/components/rel-menubar/rel-menubar.ts +0 -777
  90. package/dist/components/rel-nav-menu/README.md +0 -289
  91. package/dist/components/rel-nav-menu/index.ts +0 -3
  92. package/dist/components/rel-nav-menu/rel-nav-menu-item.ts +0 -243
  93. package/dist/components/rel-nav-menu/rel-nav-menu-panel.ts +0 -72
  94. package/dist/components/rel-nav-menu/rel-nav-menu.ts +0 -270
  95. package/dist/components/rel-navbar/README.md +0 -126
  96. package/dist/components/rel-navbar/rel-navbar.ts +0 -105
  97. package/dist/components/rel-otp/index.ts +0 -1
  98. package/dist/components/rel-otp/rel-otp.ts +0 -527
  99. package/dist/components/rel-pagination/index.ts +0 -1
  100. package/dist/components/rel-pagination/rel-pagination.ts +0 -522
  101. package/dist/components/rel-popover/index.ts +0 -2
  102. package/dist/components/rel-popover/rel-popover-content.ts +0 -81
  103. package/dist/components/rel-popover/rel-popover.ts +0 -475
  104. package/dist/components/rel-progress/rel-progress.ts +0 -234
  105. package/dist/components/rel-radio/rel-radio.ts +0 -481
  106. package/dist/components/rel-range-picker/rel-range-picker.ts +0 -1688
  107. package/dist/components/rel-resizable/index.ts +0 -3
  108. package/dist/components/rel-resizable/rel-resizable-group.ts +0 -405
  109. package/dist/components/rel-resizable/rel-resizable-handle.ts +0 -150
  110. package/dist/components/rel-resizable/rel-resizable-panel.ts +0 -58
  111. package/dist/components/rel-segmented-button/rel-segmented-button.ts +0 -217
  112. package/dist/components/rel-select/rel-select.ts +0 -1416
  113. package/dist/components/rel-sheet/rel-sheet.ts +0 -610
  114. package/dist/components/rel-sidebar/README.md +0 -209
  115. package/dist/components/rel-sidebar/rel-sidebar.ts +0 -1191
  116. package/dist/components/rel-skeleton/rel-skeleton.ts +0 -143
  117. package/dist/components/rel-slider/rel-slider.ts +0 -673
  118. package/dist/components/rel-snackbar/rel-snackbar.ts +0 -329
  119. package/dist/components/rel-stepper/rel-stepper.ts +0 -567
  120. package/dist/components/rel-switch/rel-switch.ts +0 -199
  121. package/dist/components/rel-tab/rel-tab.ts +0 -264
  122. package/dist/components/rel-table/README.md +0 -178
  123. package/dist/components/rel-table/rel-table-body.ts +0 -22
  124. package/dist/components/rel-table/rel-table-caption.ts +0 -30
  125. package/dist/components/rel-table/rel-table-cell.ts +0 -43
  126. package/dist/components/rel-table/rel-table-footer.ts +0 -24
  127. package/dist/components/rel-table/rel-table-head.ts +0 -47
  128. package/dist/components/rel-table/rel-table-header.ts +0 -22
  129. package/dist/components/rel-table/rel-table-row.ts +0 -37
  130. package/dist/components/rel-table/rel-table.ts +0 -62
  131. package/dist/components/rel-textfield/rel-textfield.ts +0 -1054
  132. package/dist/components/rel-time-picker/rel-time-picker.ts +0 -1482
  133. package/dist/components/rel-time-picker/time-parse.test.ts +0 -67
  134. package/dist/components/rel-time-picker/time-parse.ts +0 -85
  135. package/dist/components/rel-toast/rel-toast.ts +0 -206
  136. package/dist/components/rel-tooltip/rel-tooltip.ts +0 -193
  137. package/dist/components/rel-topbar/rel-topbar-actions.ts +0 -27
  138. package/dist/components/rel-topbar/rel-topbar-brand.ts +0 -54
  139. package/dist/components/rel-topbar/rel-topbar-dropdown-item.ts +0 -69
  140. package/dist/components/rel-topbar/rel-topbar-dropdown.ts +0 -31
  141. package/dist/components/rel-topbar/rel-topbar-item.ts +0 -324
  142. package/dist/components/rel-topbar/rel-topbar-mobile-panel.ts +0 -27
  143. package/dist/components/rel-topbar/rel-topbar-profile.ts +0 -243
  144. package/dist/components/rel-topbar/rel-topbar-utilities.ts +0 -27
  145. package/dist/components/rel-topbar/rel-topbar.ts +0 -446
  146. package/dist/components/rel-upload/UPLOAD-DESIGN-CHANGES.md +0 -134
  147. package/dist/components/rel-upload/rel-upload-actions.ts +0 -163
  148. package/dist/components/rel-upload/rel-upload.ts +0 -968
@@ -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 carry a 0.5px stroke and the hard 2px bottom edge Figma draws on the key cap. 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 0.5px stroke inside them (`box-sizing: border-box`), and the corner radius is 4px at every size. The cap carries a hard 2px bottom edge (a zero-blur drop shadow), so it occupies 2px more vertical space than its nominal height.
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.
@@ -39,6 +39,40 @@ A responsive CSS Grid layout component with automatic breakpoint handling. Provi
39
39
  </rel-layout>
40
40
  ```
41
41
 
42
+ <!-- readme-gen:start -->
43
+
44
+ <!-- Generated from rel-layout.ts — do not edit; run readme-generate.mjs -->
45
+
46
+ ## API
47
+
48
+ ### Attributes / Properties
49
+
50
+ | Property | Attribute | Type | Default | Description |
51
+ | --- | --- | --- | --- | --- |
52
+ | `gap` | `gap` | `string` | `"1rem"` | — |
53
+ | `columns` | `columns` | `number` | `4` | — |
54
+ | `responsive` | `responsive` | `boolean` | `true` | Reflected. |
55
+
56
+ ## Events
57
+
58
+ | Event | Detail | Bubbles / composed | Description |
59
+ | --- | --- | --- | --- |
60
+ | — | — | — | This element emits no custom events. |
61
+
62
+ ## Slots
63
+
64
+ | Slot | Description |
65
+ | --- | --- |
66
+ | (default) | Main content. |
67
+
68
+ ## CSS Parts
69
+
70
+ | Part | Description |
71
+ | --- | --- |
72
+ | — | None exposed. |
73
+
74
+ <!-- readme-gen:end -->
75
+
42
76
  ## API
43
77
 
44
78
  ### Attributes/Properties