@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
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
# rel-sidebar
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
A sophisticated sidebar navigation system with multiple components: `rel-sidebar-provider` (state manager), `rel-sidebar` (visual container), `rel-sidebar-trigger` (toggle button), and layout helpers (`rel-sidebar-header`, `rel-sidebar-footer`, `rel-sidebar-content`, `rel-sidebar-rail`). Supports three variants (sidebar, floating, inset), two collapsible modes (offcanvas, icon), mobile detection, localStorage persistence, keyboard shortcuts, and focus trapping.
|
|
5
|
-
|
|
6
|
-
## Components
|
|
7
|
-
This sidebar system consists of multiple components that work together:
|
|
8
|
-
- **`<rel-sidebar-provider>`**: Root wrapper that manages state
|
|
9
|
-
- **`<rel-sidebar>`**: Visual sidebar container
|
|
10
|
-
- **`<rel-sidebar-trigger>`**: Toggle button
|
|
11
|
-
- **`<rel-sidebar-header>`**: Header layout helper
|
|
12
|
-
- **`<rel-sidebar-footer>`**: Footer layout helper
|
|
13
|
-
- **`<rel-sidebar-content>`**: Main content wrapper
|
|
14
|
-
- **`<rel-sidebar-rail>`**: Collapsed (icon-only) state content
|
|
15
|
-
|
|
16
|
-
## Usage
|
|
17
|
-
```html
|
|
18
|
-
<!-- Basic sidebar with provider -->
|
|
19
|
-
<rel-sidebar-provider>
|
|
20
|
-
<rel-sidebar>
|
|
21
|
-
<rel-sidebar-header>
|
|
22
|
-
<h2>App Name</h2>
|
|
23
|
-
<rel-sidebar-trigger>
|
|
24
|
-
<button>☰</button>
|
|
25
|
-
</rel-sidebar-trigger>
|
|
26
|
-
</rel-sidebar-header>
|
|
27
|
-
|
|
28
|
-
<rel-sidebar-content>
|
|
29
|
-
<nav>
|
|
30
|
-
<a href="#home">Home</a>
|
|
31
|
-
<a href="#about">About</a>
|
|
32
|
-
<a href="#contact">Contact</a>
|
|
33
|
-
</nav>
|
|
34
|
-
</rel-sidebar-content>
|
|
35
|
-
|
|
36
|
-
<rel-sidebar-footer>
|
|
37
|
-
<p>© 2024 Company</p>
|
|
38
|
-
</rel-sidebar-footer>
|
|
39
|
-
</rel-sidebar>
|
|
40
|
-
|
|
41
|
-
<main>
|
|
42
|
-
<h1>Main Content</h1>
|
|
43
|
-
<p>Page content goes here</p>
|
|
44
|
-
</main>
|
|
45
|
-
</rel-sidebar-provider>
|
|
46
|
-
|
|
47
|
-
<!-- Controlled open state -->
|
|
48
|
-
<rel-sidebar-provider open="true">
|
|
49
|
-
<rel-sidebar>
|
|
50
|
-
<nav>Navigation items</nav>
|
|
51
|
-
</rel-sidebar>
|
|
52
|
-
<main>Content</main>
|
|
53
|
-
</rel-sidebar-provider>
|
|
54
|
-
|
|
55
|
-
<!-- Right-side floating variant -->
|
|
56
|
-
<rel-sidebar-provider side="right" variant="floating" width="lg">
|
|
57
|
-
<rel-sidebar>
|
|
58
|
-
<h3>Right Sidebar</h3>
|
|
59
|
-
</rel-sidebar>
|
|
60
|
-
<main>Content</main>
|
|
61
|
-
</rel-sidebar-provider>
|
|
62
|
-
|
|
63
|
-
<!-- Offcanvas mode (overlay on all screen sizes) -->
|
|
64
|
-
<rel-sidebar-provider collapsible="offcanvas">
|
|
65
|
-
<rel-sidebar>
|
|
66
|
-
<nav>Menu</nav>
|
|
67
|
-
</rel-sidebar>
|
|
68
|
-
<main>Content</main>
|
|
69
|
-
</rel-sidebar-provider>
|
|
70
|
-
|
|
71
|
-
<!-- Listen for state changes -->
|
|
72
|
-
<rel-sidebar-provider id="sidebarProvider">
|
|
73
|
-
<rel-sidebar>Nav</rel-sidebar>
|
|
74
|
-
<main>Content</main>
|
|
75
|
-
</rel-sidebar-provider>
|
|
76
|
-
<script>
|
|
77
|
-
const provider = document.getElementById('sidebarProvider');
|
|
78
|
-
provider.addEventListener('rel-sidebar-change', (e) => {
|
|
79
|
-
console.log('Open:', e.detail.open);
|
|
80
|
-
console.log('Collapsed:', e.detail.collapsed);
|
|
81
|
-
console.log('Reason:', e.detail.reason);
|
|
82
|
-
});
|
|
83
|
-
</script>
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## API
|
|
87
|
-
|
|
88
|
-
### rel-sidebar-provider Properties
|
|
89
|
-
| Name | Type | Default | Description |
|
|
90
|
-
|------|------|---------|-------------|
|
|
91
|
-
| `open` (reflected) | `boolean?` | `undefined` | Controlled open state (undefined = uncontrolled) |
|
|
92
|
-
| `defaultopen` | `boolean` | `true` | Default open state (uncontrolled mode) |
|
|
93
|
-
| `collapsed` (reflected) | `boolean?` | `undefined` | Controlled collapsed state |
|
|
94
|
-
| `defaultcollapsed` | `boolean` | `false` | Default collapsed state (uncontrolled mode) |
|
|
95
|
-
| `variant` | `"sidebar" \| "floating" \| "inset"` | `"sidebar"` | Visual variant |
|
|
96
|
-
| `side` | `"left" \| "right"` | `"left"` | Which side the sidebar appears on |
|
|
97
|
-
| `collapsible` | `"offcanvas" \| "icon" \| "none"` | `"icon"` | Collapsible behavior mode |
|
|
98
|
-
| `width` | `"sm" \| "md" \| "lg"` | `"md"` | Sidebar width (240/280/320px) |
|
|
99
|
-
| `persist-key` | `string` | `"rel-sidebar"` | localStorage key for persistence |
|
|
100
|
-
| `keyboard-shortcut` | `boolean` | `true` | Enable Ctrl/Cmd+B shortcut |
|
|
101
|
-
| `disable-persist` | `boolean` | `false` | Disable localStorage persistence |
|
|
102
|
-
| `disable-overlay-close` | `boolean` | `false` | Prevent closing on overlay click |
|
|
103
|
-
|
|
104
|
-
### rel-sidebar Properties
|
|
105
|
-
| Name | Type | Default | Description |
|
|
106
|
-
|------|------|---------|-------------|
|
|
107
|
-
| `inset` | `boolean` | `false` | Use inset variant styling (overrides provider variant) |
|
|
108
|
-
|
|
109
|
-
## Events
|
|
110
|
-
| Event | Detail | Description |
|
|
111
|
-
|-------|--------|-------------|
|
|
112
|
-
| `rel-sidebar-change` | `{ open, collapsed, reason }` | Fired when sidebar state changes |
|
|
113
|
-
| `rel-sidebar-state` | `{ isOpen, isCollapsed, isMobile, side, variant, collapsible, width }` | Internal state sync event |
|
|
114
|
-
|
|
115
|
-
### Change Reasons
|
|
116
|
-
- `"trigger"`: Toggled via trigger button
|
|
117
|
-
- `"rail"`: Toggled collapsed state
|
|
118
|
-
- `"overlay"`: Closed by clicking overlay
|
|
119
|
-
- `"escape"`: Closed via Escape key
|
|
120
|
-
- `"shortcut"`: Toggled via keyboard shortcut (Ctrl/Cmd+B)
|
|
121
|
-
- `"api"`: Changed programmatically via `setOpen()` or `setCollapsed()`
|
|
122
|
-
|
|
123
|
-
## Methods
|
|
124
|
-
|
|
125
|
-
### Provider Methods
|
|
126
|
-
```typescript
|
|
127
|
-
provider.setOpen(nextOpen: boolean, reason?: string): void
|
|
128
|
-
provider.setCollapsed(nextCollapsed: boolean, reason?: string): void
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
##Slots
|
|
132
|
-
| Slot | Component | Description |
|
|
133
|
-
|------|-----------|-------------|
|
|
134
|
-
| (default) | All | Main content area |
|
|
135
|
-
|
|
136
|
-
## CSS Parts
|
|
137
|
-
None exposed.
|
|
138
|
-
|
|
139
|
-
## Tokens / CSS Variables
|
|
140
|
-
|
|
141
|
-
### Width Tokens (defined on `<rel-sidebar>`)
|
|
142
|
-
- `--sidebar-width-sm`: `240px` (small width)
|
|
143
|
-
- `--sidebar-width-md`: `280px` (medium width)
|
|
144
|
-
- `--sidebar-width-lg`: `320px` (large width)
|
|
145
|
-
- `--sidebar-width-collapsed`: `56px` (collapsed/icon-only width)
|
|
146
|
-
|
|
147
|
-
### Transition Tokens
|
|
148
|
-
- `--sidebar-transition-duration`: `0.2s`
|
|
149
|
-
- `--sidebar-transition-timing`: `cubic-bezier(0.4, 0, 0.2, 1)`
|
|
150
|
-
|
|
151
|
-
### Color Tokens
|
|
152
|
-
- `--rel-bg-surface-elevated` - Sidebar background (`#fafafa`)
|
|
153
|
-
- `--rel-text-default` - Text color
|
|
154
|
-
- `--rel-border-default` - Border color
|
|
155
|
-
- `--rel-overlay-scrim` - Overlay background (`rgba(0, 0, 0, 0.5)`)
|
|
156
|
-
|
|
157
|
-
### Shadow Tokens (floating variant)
|
|
158
|
-
- `--rel-shadows-shadow-400` - Floating variant shadow
|
|
159
|
-
|
|
160
|
-
### Other Tokens
|
|
161
|
-
- `--rel-border-radius-md` - Floating variant border radius
|
|
162
|
-
- `--rel-spacing-md` - Floating variant inset, header/footer padding
|
|
163
|
-
- `--rel-spacing-2xs` - Used in various layouts
|
|
164
|
-
|
|
165
|
-
## Accessibility
|
|
166
|
-
- Sidebar uses `role="navigation"`
|
|
167
|
-
- Focus trap active in offcanvas mode
|
|
168
|
-
- Escape key closes offcanvas
|
|
169
|
-
- Keyboard shortcut (Ctrl/Cmd+B) for toggling
|
|
170
|
-
- Restores focus to trigger when closing
|
|
171
|
-
|
|
172
|
-
### Keyboard Interactions
|
|
173
|
-
| Key | Action |
|
|
174
|
-
|-----|--------|
|
|
175
|
-
| `Ctrl/Cmd + B` | Toggle sidebar (open/collapsed depending on mode) |
|
|
176
|
-
| `Escape` | Close sidebar (offcanvas mode only) |
|
|
177
|
-
| `Tab` | Focus trap within sidebar when open in offcanvas mode |
|
|
178
|
-
|
|
179
|
-
### Focus Behavior
|
|
180
|
-
- In offcanvas mode, focus moves to first focusable element when opened
|
|
181
|
-
- Focus is trapped within sidebar in offcanvas mode
|
|
182
|
-
- Focus restores to trigger button when closed
|
|
183
|
-
|
|
184
|
-
## Notes / Edge Cases
|
|
185
|
-
- **Mobile detection**: Automatically detects `max-width: 768px` breakpoint and switches to offcanvas mode
|
|
186
|
-
- **Collapsible modes**:
|
|
187
|
-
- **offcanvas**: Sidebar slides in/out with overlay (like a drawer)
|
|
188
|
-
- **icon**: Sidebar collapses to icon-only width (56px)
|
|
189
|
-
- **none**: Sidebar cannot be collapsed (always full width)
|
|
190
|
-
|
|
191
|
-
- **Variants**:
|
|
192
|
-
- **sidebar**: Fixed position, full height
|
|
193
|
-
- **floating**: Inset with margins, rounded corners, shadow
|
|
194
|
-
- **inset**: Relative position, no shadow
|
|
195
|
-
|
|
196
|
-
- **State persistence**: By default, sidebar state is saved to localStorage and restored on reload (disable with `disable-persist`)
|
|
197
|
-
- **Controlled vs uncontrolled**: If `open` or `collapsed` props are set, the component is controlled and won't manage its own state
|
|
198
|
-
- **Mobile behavior**: On mobile, sidebar starts closed and ignores persisted state
|
|
199
|
-
- **Scroll locking**: In offcanvas mode, body scroll is locked when sidebar is open
|
|
200
|
-
- **Transitions disabled**: When `prefers-reduced-motion: reduce`
|
|
201
|
-
- The provider uses `display: contents` to avoid affecting layout
|
|
202
|
-
- Sidebar is overlaid with `z-index: 1000` in offcanvas mode
|
|
203
|
-
- Overlay is `z-index: 999`
|
|
204
|
-
|
|
205
|
-
### Width Values
|
|
206
|
-
- **sm**: 240px
|
|
207
|
-
- **md**: 280px
|
|
208
|
-
- **lg**: 320px
|
|
209
|
-
- **collapsed**: 56px
|