@reliability-design/web 1.0.2 → 1.0.6

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 (145) hide show
  1. package/dist/components/rel-accordion/README.md +132 -0
  2. package/dist/components/rel-accordion/rel-accordion.ts +61 -29
  3. package/dist/components/rel-alert/README.md +141 -0
  4. package/dist/components/rel-alert/rel-alert.ts +110 -67
  5. package/dist/components/rel-avatar/README.md +119 -0
  6. package/dist/components/rel-avatar/rel-avatar.ts +8 -15
  7. package/dist/components/rel-badge/README.md +86 -0
  8. package/dist/components/rel-badge/rel-badge.ts +28 -21
  9. package/dist/components/rel-breadcrumb/README.md +102 -0
  10. package/dist/components/rel-breadcrumb/rel-breadcrumb.ts +24 -18
  11. package/dist/components/rel-button/README.md +130 -0
  12. package/dist/components/rel-button/rel-button.ts +39 -59
  13. package/dist/components/rel-calendar/README.md +109 -0
  14. package/dist/components/rel-calendar/index.ts +1 -0
  15. package/dist/components/rel-calendar/rel-calendar.ts +467 -0
  16. package/dist/components/rel-card/README.md +94 -0
  17. package/dist/components/rel-card/rel-card.ts +21 -11
  18. package/dist/components/rel-cardmedia/README.md +127 -0
  19. package/dist/components/rel-cardmedia/rel-cardmedia.ts +22 -18
  20. package/dist/components/rel-carousel/README.md +166 -0
  21. package/dist/components/rel-carousel/index.ts +1 -0
  22. package/dist/components/rel-carousel/rel-carousel.ts +469 -0
  23. package/dist/components/rel-chart/README.md +286 -0
  24. package/dist/components/rel-chart/index.ts +1 -0
  25. package/dist/components/rel-chart/rel-chart.ts +736 -0
  26. package/dist/components/rel-checkbox/README.md +77 -0
  27. package/dist/components/rel-checkbox/rel-checkbox.ts +36 -45
  28. package/dist/components/rel-chip/README.md +114 -0
  29. package/dist/components/rel-chip/rel-chip.ts +47 -122
  30. package/dist/components/rel-container/README.md +99 -0
  31. package/dist/components/rel-container/rel-container.ts +1 -6
  32. package/dist/components/rel-date-picker/README.md +253 -0
  33. package/dist/components/rel-date-picker/index.ts +1 -0
  34. package/dist/components/rel-date-picker/rel-date-picker.ts +916 -0
  35. package/dist/components/rel-divider/README.md +100 -0
  36. package/dist/components/rel-divider/rel-divider.ts +37 -37
  37. package/dist/components/rel-drawer/README.md +200 -0
  38. package/dist/components/rel-drawer/index.ts +1 -0
  39. package/dist/components/rel-drawer/rel-drawer.ts +621 -0
  40. package/dist/components/rel-kbd/README.md +151 -0
  41. package/dist/components/rel-kbd/rel-kbd.ts +118 -0
  42. package/dist/components/rel-layout/README.md +88 -0
  43. package/dist/components/rel-layout/rel-layout.ts +12 -14
  44. package/dist/components/rel-menu/README.md +151 -0
  45. package/dist/components/rel-menu/rel-menu.ts +18 -10
  46. package/dist/components/rel-menubar/README.md +329 -0
  47. package/dist/components/rel-menubar/index.ts +2 -0
  48. package/dist/components/rel-menubar/rel-menubar-menu.ts +16 -0
  49. package/dist/components/rel-menubar/rel-menubar.ts +576 -0
  50. package/dist/components/rel-nav-menu/README.md +289 -0
  51. package/dist/components/rel-nav-menu/index.ts +3 -0
  52. package/dist/components/rel-nav-menu/rel-nav-menu-item.ts +143 -0
  53. package/dist/components/rel-nav-menu/rel-nav-menu-panel.ts +53 -0
  54. package/dist/components/rel-nav-menu/rel-nav-menu.ts +331 -0
  55. package/dist/components/rel-navbar/README.md +126 -0
  56. package/dist/components/rel-navbar/rel-navbar.ts +91 -0
  57. package/dist/components/rel-otp/README.md +440 -0
  58. package/dist/components/rel-otp/index.ts +1 -0
  59. package/dist/components/rel-otp/rel-otp.ts +504 -0
  60. package/dist/components/rel-pagination/README.md +410 -0
  61. package/dist/components/rel-pagination/index.ts +1 -0
  62. package/dist/components/rel-pagination/rel-pagination.ts +376 -0
  63. package/dist/components/rel-popover/README.md +568 -0
  64. package/dist/components/rel-popover/index.ts +2 -0
  65. package/dist/components/rel-popover/rel-popover-content.ts +55 -0
  66. package/dist/components/rel-popover/rel-popover.ts +327 -0
  67. package/dist/components/rel-progress/README.md +110 -0
  68. package/dist/components/rel-progress/rel-progress.ts +58 -20
  69. package/dist/components/rel-quote-page/README.md +166 -0
  70. package/dist/components/rel-quote-page/rel-quote-page.ts +816 -0
  71. package/dist/components/rel-radio/README.md +120 -0
  72. package/dist/components/rel-radio/rel-radio.ts +41 -73
  73. package/dist/components/rel-resizable/README.md +140 -0
  74. package/dist/components/rel-resizable/index.ts +3 -0
  75. package/dist/components/rel-resizable/rel-resizable-group.ts +374 -0
  76. package/dist/components/rel-resizable/rel-resizable-handle.ts +149 -0
  77. package/dist/components/rel-resizable/rel-resizable-panel.ts +47 -0
  78. package/dist/components/rel-segmented-button/README.md +141 -0
  79. package/dist/components/rel-segmented-button/rel-segmented-button.ts +18 -13
  80. package/dist/components/rel-select/README.md +107 -0
  81. package/dist/components/rel-select/rel-select.ts +14 -14
  82. package/dist/components/rel-sheet/README.md +224 -0
  83. package/dist/components/rel-sheet/rel-sheet.ts +683 -0
  84. package/dist/components/rel-sidebar/README.md +209 -0
  85. package/dist/components/rel-sidebar/rel-sidebar.ts +1158 -0
  86. package/dist/components/rel-slider/README.md +135 -0
  87. package/dist/components/rel-slider/rel-slider.ts +19 -7
  88. package/dist/components/rel-snackbar/README.md +134 -0
  89. package/dist/components/rel-snackbar/rel-snackbar.ts +73 -2
  90. package/dist/components/rel-stepper/README.md +160 -0
  91. package/dist/components/rel-stepper/rel-stepper.ts +29 -8
  92. package/dist/components/rel-switch/README.md +102 -0
  93. package/dist/components/rel-switch/rel-switch.ts +22 -11
  94. package/dist/components/rel-tab/README.md +163 -0
  95. package/dist/components/rel-tab/rel-tab.ts +46 -22
  96. package/dist/components/rel-table/README.md +178 -0
  97. package/dist/components/rel-table/rel-table-body.ts +16 -0
  98. package/dist/components/rel-table/rel-table-caption.ts +22 -0
  99. package/dist/components/rel-table/rel-table-cell.ts +49 -0
  100. package/dist/components/rel-table/rel-table-footer.ts +18 -0
  101. package/dist/components/rel-table/rel-table-head.ts +33 -0
  102. package/dist/components/rel-table/rel-table-header.ts +16 -0
  103. package/dist/components/rel-table/rel-table-row.ts +32 -0
  104. package/dist/components/rel-table/rel-table.ts +47 -0
  105. package/dist/components/rel-textfield/README.md +90 -0
  106. package/dist/components/rel-textfield/rel-textfield.ts +37 -21
  107. package/dist/components/rel-toast/README.md +148 -0
  108. package/dist/components/rel-toast/rel-toast.ts +32 -14
  109. package/dist/components/rel-tooltip/README.md +103 -0
  110. package/dist/components/rel-tooltip/rel-tooltip.ts +9 -9
  111. package/dist/index.d.mts +846 -7
  112. package/dist/index.d.ts +846 -7
  113. package/dist/index.js +10860 -1803
  114. package/dist/index.js.map +1 -1
  115. package/dist/index.mjs +10820 -1809
  116. package/dist/index.mjs.map +1 -1
  117. package/dist/styles/vars.css +293 -183
  118. package/dist/vars-ITL2K3KO.css +294 -0
  119. package/package.json +2 -2
  120. package/dist/components/rel-accordion/rel-accordion.stories.ts +0 -313
  121. package/dist/components/rel-alert/rel-alert.stories.ts +0 -412
  122. package/dist/components/rel-avatar/rel-avatar.stories.ts +0 -327
  123. package/dist/components/rel-badge/rel-badge.stories.ts +0 -350
  124. package/dist/components/rel-breadcrumb/rel-breadcrumb.stories.ts +0 -306
  125. package/dist/components/rel-button/rel-button.stories.ts +0 -356
  126. package/dist/components/rel-card/rel-card.stories.ts +0 -299
  127. package/dist/components/rel-cardmedia/rel-cardmedia.stories.ts +0 -368
  128. package/dist/components/rel-checkbox/rel-checkbox.stories.ts +0 -414
  129. package/dist/components/rel-chip/rel-chip.stories.ts +0 -552
  130. package/dist/components/rel-container/rel-container.stories.ts +0 -239
  131. package/dist/components/rel-divider/rel-divider.stories.ts +0 -229
  132. package/dist/components/rel-layout/rel-layout.stories.ts +0 -713
  133. package/dist/components/rel-menu/rel-menu.stories.ts +0 -910
  134. package/dist/components/rel-progress/rel-progress.stories.ts +0 -817
  135. package/dist/components/rel-radio/rel-radio.stories.ts +0 -1048
  136. package/dist/components/rel-segmented-button/rel-segmented-button.stories.ts +0 -1079
  137. package/dist/components/rel-select/rel-select.stories.ts +0 -1201
  138. package/dist/components/rel-slider/rel-slider.stories.ts +0 -730
  139. package/dist/components/rel-snackbar/rel-snackbar.stories.ts +0 -808
  140. package/dist/components/rel-stepper/rel-stepper.stories.ts +0 -752
  141. package/dist/components/rel-switch/rel-switch.stories.ts +0 -441
  142. package/dist/components/rel-tab/rel-tab.stories.ts +0 -492
  143. package/dist/components/rel-textfield/rel-textfield.stories.ts +0 -710
  144. package/dist/components/rel-toast/rel-toast.stories.ts +0 -394
  145. package/dist/components/rel-tooltip/rel-tooltip.stories.ts +0 -364
@@ -0,0 +1,100 @@
1
+ # rel-divider
2
+
3
+ ## Overview
4
+ A simple divider component supporting horizontal and vertical orientations. Provides a visual separator line with configurable styling via CSS tokens.
5
+
6
+ ## Usage
7
+ ```html
8
+ <!-- Horizontal divider (default) -->
9
+ <p>Section 1</p>
10
+ <rel-divider></rel-divider>
11
+ <p>Section 2</p>
12
+
13
+ <!-- Vertical divider -->
14
+ <div style="display: flex; align-items: center; height: 50px;">
15
+ <span>Item 1</span>
16
+ <rel-divider orientation="vertical"></rel-divider>
17
+ <span>Item 2</span>
18
+ <rel-divider orientation="vertical"></rel-divider>
19
+ <span>Item 3</span>
20
+ </div>
21
+
22
+ <!-- In a toolbar -->
23
+ <div style="display: flex; gap: 16px; align-items: center;">
24
+ <button>Action 1</button>
25
+ <rel-divider orientation="vertical"></rel-divider>
26
+ <button>Action 2</button>
27
+ <rel-divider orientation="vertical"></rel-divider>
28
+ <button>Action 3</button>
29
+ </div>
30
+
31
+ <!-- Between content sections -->
32
+ <section>
33
+ <h2>Section A</h2>
34
+ <p>Content A</p>
35
+ </section>
36
+ <rel-divider></rel-divider>
37
+ <section>
38
+ <h2>Section B</h2>
39
+ <p>Content B</p>
40
+ </section>
41
+ ```
42
+
43
+ ## API
44
+
45
+ ### Attributes/Properties
46
+ | Name | Type | Default | Description |
47
+ |------|------|---------|-------------|
48
+ | `orientation` | `"horizontal" \| "vertical"` | `"horizontal"` | Divider orientation |
49
+
50
+ ## Events
51
+ None.
52
+
53
+ ## Slots
54
+ None.
55
+
56
+ ## CSS Parts
57
+ None exposed.
58
+
59
+ ## Tokens / CSS Variables
60
+
61
+ ### Semantic Tokens
62
+ - `--rel-fontFamilies-primary` - Font family
63
+ - `--rel-colors-gray-primary` - Text color (not used visually, but set)
64
+
65
+ ### Color Tokens
66
+ - `--rel-colors-gray-border` - Divider line color
67
+
68
+ ### Border Tokens
69
+ - `--rel-borders-width-stroke-100` - Line thickness (width/height)
70
+
71
+ ### Spacing Tokens
72
+ - `--rel-spacing-space-md` - Margin around divider
73
+
74
+ ## Accessibility
75
+ - Uses `role="separator"` for proper ARIA semantics
76
+ - Screen readers will announce the divider as a separator
77
+
78
+ ### Keyboard Interactions
79
+ - None (non-interactive element)
80
+
81
+ ### Focus Behavior
82
+ - Does not receive focus
83
+
84
+ ## Notes / Edge Cases
85
+ - **Horizontal orientation**:
86
+ - `width: 100%`
87
+ - `height: var(--rel-borders-width-stroke-100)`
88
+ - `margin: var(--rel-spacing-space-md) 0` (vertical margin)
89
+
90
+ - **Vertical orientation**:
91
+ - `width: var(--rel-borders-width-stroke-100)`
92
+ - `height: 100%`
93
+ - `margin: 0 var(--rel-spacing-space-md)` (horizontal margin)
94
+ - Uses `align-self: stretch` to fill parent height
95
+
96
+ - The divider is purely visual and has `background: transparent` on the host element
97
+ - The actual divider line is rendered by an internal `.rel-divider` div
98
+ - For vertical dividers to work properly, the parent must have a defined height
99
+ - Vertical dividers use `align-self: stretch` to match the parent's height
100
+ - The divider is `display: block` on the host element
@@ -1,44 +1,44 @@
1
- import { LitElement, html, css } from "lit";
2
- import { customElement, property } from "lit/decorators.js";
1
+ import { LitElement, html, css } from "lit";
2
+ import { customElement, property } from "lit/decorators.js";
3
3
 
4
- @customElement("rel-divider")
5
- export class RelDivider extends LitElement {
6
- @property({ type: String }) orientation: "horizontal" | "vertical" = "horizontal";
4
+ @customElement("rel-divider")
5
+ export class RelDivider extends LitElement {
6
+ @property({ type: String }) orientation: "horizontal" | "vertical" = "horizontal";
7
7
 
8
- static styles = css`
9
- :host {
10
- display: block;
11
- }
8
+ static styles = css`
9
+ :host {
10
+ display: block;
11
+ }
12
12
 
13
- .rel-divider {
14
- position: relative;
15
- display: flex;
16
- background: transparent;
17
- font-family: var(--rel-fontFamilies-primary);
18
- color: var(--rel-colors-gray-primary);
19
- }
13
+ .rel-divider {
14
+ position: relative;
15
+ display: flex;
16
+ background: transparent;
17
+ font-family: var(--rel-fontFamilies-primary);
18
+ color: var(--rel-colors-gray-primary);
19
+ }
20
20
 
21
- /* Horizontal */
22
- .rel-divider.horizontal {
23
- width: 100%;
24
- height: var(--rel-borders-width-stroke-100);
25
- background-color: var(--rel-colors-gray-border);
26
- margin: var(--rel-spacing-space-md) 0;
27
- }
21
+ /* Horizontal */
22
+ .rel-divider.horizontal {
23
+ width: 100%;
24
+ height: var(--rel-borders-width-stroke-100);
25
+ background-color: var(--rel-colors-gray-border);
26
+ margin: var(--rel-spacing-space-md) 0;
27
+ }
28
28
 
29
- /* Vertical */
30
- .rel-divider.vertical {
31
- width: var(--rel-borders-width-stroke-100);
32
- background-color: var(--rel-colors-gray-border);
33
- margin: 0 var(--rel-spacing-space-md);
34
- align-self: stretch;
35
- height: 100%;
36
- }
37
- `;
38
-
39
- render() {
40
- return html`
41
- <div class="rel-divider ${this.orientation}" role="separator"></div>
29
+ /* Vertical */
30
+ .rel-divider.vertical {
31
+ width: var(--rel-borders-width-stroke-100);
32
+ background-color: var(--rel-colors-gray-border);
33
+ margin: 0 var(--rel-spacing-space-md);
34
+ align-self: stretch;
35
+ height: 100%;
36
+ }
42
37
  `;
38
+
39
+ render() {
40
+ return html`
41
+ <div class="rel-divider ${this.orientation}" role="separator"></div>
42
+ `;
43
+ }
43
44
  }
44
- }
@@ -0,0 +1,200 @@
1
+ # RelDrawer Component
2
+
3
+ A flexible, accessible drawer/sheet component for the Reliability Design System.
4
+
5
+ ## Features
6
+
7
+ - Slides from bottom (default), left, right, or top
8
+ - Overlay/backdrop with configurable dismiss behavior
9
+ - Drag-to-close for bottom drawers (touch & mouse)
10
+ - Focus trapping for modal mode
11
+ - Keyboard navigation (Escape to close, Tab trap)
12
+ - Token-driven styling (no hardcoded colors)
13
+ - Respects `prefers-reduced-motion`
14
+ - Slot-based content API
15
+
16
+ ## Basic Usage
17
+
18
+ ```html
19
+ <rel-drawer open>
20
+ <h3 slot="title">Drawer Title</h3>
21
+ <p slot="description">Optional description text</p>
22
+
23
+ <p>Your drawer content goes here.</p>
24
+
25
+ <div slot="footer">
26
+ <button>Cancel</button>
27
+ <button>Save</button>
28
+ </div>
29
+ </rel-drawer>
30
+ ```
31
+
32
+ ## Properties
33
+
34
+ | Property | Type | Default | Description |
35
+ |----------|------|---------|-------------|
36
+ | `open` | `boolean` | `false` | Controls drawer visibility (reflects) |
37
+ | `side` | `"bottom" \| "left" \| "right" \| "top"` | `"bottom"` | Edge from which drawer slides |
38
+ | `dismissible` | `boolean` | `true` | Allows backdrop/Escape close |
39
+ | `modal` | `boolean` | `true` | Enables focus trap and `aria-modal` |
40
+ | `close-on-backdrop` | `boolean` | `true` | Close when clicking backdrop |
41
+ | `close-on-escape` | `boolean` | `true` | Close when pressing Escape |
42
+ | `show-handle` | `boolean` | `true` | Show handle bar (bottom drawer only) |
43
+ | `draggable` | `boolean` | `true` | Enable drag-to-close (bottom only) |
44
+ | `snap-threshold` | `number` | `0.25` | Drag distance % to trigger close |
45
+ | `max-height` | `string` | `"80vh"` | Max height for bottom/top drawers |
46
+ | `width` | `string` | `"420px"` | Width for left/right drawers |
47
+ | `disabled` | `boolean` | `false` | Disables all interaction |
48
+
49
+ ## Events
50
+
51
+ | Event | Detail | Description |
52
+ |-------|--------|-------------|
53
+ | `rel-open-change` | `{ open: boolean }` | Fires when open state changes |
54
+ | `rel-close` | `{ reason: "backdrop" \| "escape" \| "drag" \| "programmatic" }` | Fires when drawer closes |
55
+
56
+ ## Slots
57
+
58
+ | Slot | Description |
59
+ |------|-------------|
60
+ | (default) | Drawer content body |
61
+ | `title` | Header title text |
62
+ | `description` | Header description text |
63
+ | `footer` | Footer content (buttons, actions) |
64
+
65
+ ## CSS Parts
66
+
67
+ | Part | Description |
68
+ |------|-------------|
69
+ | `overlay` | Backdrop element |
70
+ | `panel` | Drawer panel container |
71
+ | `handle` | Drag handle bar |
72
+ | `header` | Header container |
73
+ | `content` | Content container |
74
+ | `footer` | Footer container |
75
+ | `close-button` | Close button (X) |
76
+
77
+ ## Examples
78
+
79
+ ### Bottom Sheet (Mobile-style)
80
+
81
+ ```html
82
+ <rel-drawer open side="bottom" max-height="60vh">
83
+ <h3 slot="title">Select an option</h3>
84
+ <ul>
85
+ <li>Option 1</li>
86
+ <li>Option 2</li>
87
+ <li>Option 3</li>
88
+ </ul>
89
+ </rel-drawer>
90
+ ```
91
+
92
+ ### Side Panel (Desktop Navigation)
93
+
94
+ ```html
95
+ <rel-drawer open side="right" width="300px">
96
+ <h3 slot="title">Navigation</h3>
97
+ <nav>
98
+ <a href="/home">Home</a>
99
+ <a href="/about">About</a>
100
+ <a href="/contact">Contact</a>
101
+ </nav>
102
+ </rel-drawer>
103
+ ```
104
+
105
+ ### Programmatic Control
106
+
107
+ ```javascript
108
+ const drawer = document.querySelector('rel-drawer');
109
+
110
+ // Open drawer
111
+ drawer.open = true;
112
+
113
+ // Close drawer
114
+ drawer.open = false;
115
+
116
+ // Listen for close event
117
+ drawer.addEventListener('rel-close', (e) => {
118
+ console.log('Closed via:', e.detail.reason);
119
+ });
120
+ ```
121
+
122
+ ### Non-Modal Drawer
123
+
124
+ ```html
125
+ <rel-drawer open modal="false" dismissible="false">
126
+ <!-- Doesn't trap focus, can't be dismissed -->
127
+ <p>Persistent sidebar content</p>
128
+ </rel-drawer>
129
+ ```
130
+
131
+ ## Accessibility
132
+
133
+ - When `modal="true"`:
134
+ - Sets `role="dialog"` and `aria-modal="true"`
135
+ - Traps focus within drawer
136
+ - Returns focus to trigger element on close
137
+ - Locks body scroll to prevent background scrolling
138
+ - Keyboard support:
139
+ - `Escape`: Close drawer (if `close-on-escape`)
140
+ - `Tab`: Cycle focus within drawer (if `modal`)
141
+ - Screen reader: Announced as dialog when opened
142
+
143
+ ## Styling
144
+
145
+ The drawer uses design system tokens for all colors, spacing, shadows, and borders. You can customize appearance using CSS parts:
146
+
147
+ ```css
148
+ rel-drawer::part(overlay) {
149
+ background: rgba(0, 0, 0, 0.7);
150
+ }
151
+
152
+ rel-drawer::part(panel) {
153
+ box-shadow: 0 0 30px rgba(0, 0, 0, 0.3);
154
+ }
155
+
156
+ rel-drawer::part(handle) {
157
+ background: var(--rel-colors-blue-primary);
158
+ }
159
+ ```
160
+
161
+ ## Framework Integration
162
+
163
+ ### React
164
+
165
+ ```jsx
166
+ <RelDrawer
167
+ open={isOpen}
168
+ onRelClose={(e) => setIsOpen(false)}
169
+ side="right"
170
+ >
171
+ <span slot="title">Settings</span>
172
+ <SettingsForm />
173
+ </RelDrawer>
174
+ ```
175
+
176
+ ### Angular
177
+
178
+ ```html
179
+ <rel-drawer
180
+ [open]="isOpen"
181
+ (rel-close)="isOpen = false"
182
+ side="left"
183
+ >
184
+ <span slot="title">Menu</span>
185
+ <app-menu></app-menu>
186
+ </rel-drawer>
187
+ ```
188
+
189
+ ### Vue
190
+
191
+ ```vue
192
+ <rel-drawer
193
+ :open="isOpen"
194
+ @rel-close="isOpen = false"
195
+ side="bottom"
196
+ >
197
+ <template #title>Options</template>
198
+ <OptionsPanel />
199
+ </rel-drawer>
200
+ ```
@@ -0,0 +1 @@
1
+ export * from "./rel-drawer";