@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,286 @@
1
+ # rel-chart
2
+
3
+ A lightweight, accessible chart component built with Lit for the Reliability Design System. Supports bar and line charts with interactive tooltips.
4
+
5
+ ## Features
6
+
7
+ - Bar charts (grouped)
8
+ - Line charts with points
9
+ - Interactive tooltips on hover/focus
10
+ - Grid and axis labels
11
+ - Legend
12
+ - Responsive sizing
13
+ - Full keyboard navigation
14
+ - Token-driven styling
15
+ - Reduced motion support
16
+
17
+ ## Usage
18
+
19
+ ### Property-based (Recommended)
20
+
21
+ ```javascript
22
+ const chart = document.querySelector('rel-chart');
23
+
24
+ chart.data = [
25
+ { month: 'Jan', desktop: 186, mobile: 80 },
26
+ { month: 'Feb', desktop: 305, mobile: 200 },
27
+ { month: 'Mar', desktop: 237, mobile: 120 },
28
+ { month: 'Apr', desktop: 73, mobile: 190 },
29
+ { month: 'May', desktop: 209, mobile: 130 },
30
+ { month: 'Jun', desktop: 214, mobile: 140 }
31
+ ];
32
+
33
+ chart.series = [
34
+ { key: 'desktop', label: 'Desktop' },
35
+ { key: 'mobile', label: 'Mobile' }
36
+ ];
37
+
38
+ chart.xKey = 'month';
39
+ ```
40
+
41
+ ### Attribute-based (Simple demos)
42
+
43
+ ```html
44
+ <rel-chart
45
+ type="bar"
46
+ x-key="month"
47
+ series-json='[{"key":"desktop","label":"Desktop"},{"key":"mobile","label":"Mobile"}]'
48
+ data-json='[
49
+ {"month":"Jan","desktop":186,"mobile":80},
50
+ {"month":"Feb","desktop":305,"mobile":200},
51
+ {"month":"Mar","desktop":237,"mobile":120}
52
+ ]'
53
+ ></rel-chart>
54
+ ```
55
+
56
+ ### Bar Chart
57
+
58
+ ```html
59
+ <rel-chart type="bar" x-key="date"></rel-chart>
60
+ ```
61
+
62
+ ### Line Chart
63
+
64
+ ```html
65
+ <rel-chart type="line" x-key="date"></rel-chart>
66
+ ```
67
+
68
+ ### Custom Height
69
+
70
+ ```html
71
+ <rel-chart height="400"></rel-chart>
72
+ ```
73
+
74
+ ### Without Grid
75
+
76
+ ```html
77
+ <rel-chart show-grid="false"></rel-chart>
78
+ ```
79
+
80
+ ### Date Formatting
81
+
82
+ ```html
83
+ <rel-chart format-x="date" locale="en-US"></rel-chart>
84
+ ```
85
+
86
+ ### Custom Colors
87
+
88
+ ```javascript
89
+ chart.series = [
90
+ {
91
+ key: 'desktop',
92
+ label: 'Desktop',
93
+ colorToken: 'var(--rel-colors-blue-primary)'
94
+ },
95
+ {
96
+ key: 'mobile',
97
+ label: 'Mobile',
98
+ colorToken: 'var(--rel-colors-green-primary)'
99
+ }
100
+ ];
101
+ ```
102
+
103
+ ## Attributes
104
+
105
+ | Attribute | Type | Default | Description |
106
+ |-----------|------|---------|-------------|
107
+ | `type` | `"bar" \| "line"` | `"bar"` | Chart type |
108
+ | `height` | `number` | `320` | Chart height in pixels |
109
+ | `x-key` | `string` | `""` | Property name for x-axis values |
110
+ | `series-json` | `string` | `""` | JSON string of series configuration |
111
+ | `data-json` | `string` | `""` | JSON string of chart data |
112
+ | `show-grid` | `boolean` | `true` | Show background grid |
113
+ | `show-axis` | `boolean` | `true` | Show axis labels |
114
+ | `show-legend` | `boolean` | `true` | Show legend |
115
+ | `stacked` | `boolean` | `false` | Stack bars (bar chart only, not implemented in v1) |
116
+ | `format-x` | `"date" \| "string" \| "number"` | `"string"` | X-axis value format |
117
+ | `locale` | `string` | `"en-US"` | Locale for date formatting |
118
+ | `disabled` | `boolean` | `false` | Disable interactions |
119
+
120
+ ## Properties
121
+
122
+ | Property | Type | Description |
123
+ |----------|------|-------------|
124
+ | `data` | `Array<Record<string, unknown>>` | Chart data (preferred over data-json) |
125
+ | `series` | `SeriesConfig[]` | Series configuration (preferred over series-json) |
126
+
127
+ ### SeriesConfig
128
+
129
+ ```typescript
130
+ interface SeriesConfig {
131
+ key: string; // Property name in data
132
+ label?: string; // Display label
133
+ colorToken?: string; // CSS variable or color token
134
+ }
135
+ ```
136
+
137
+ ## Events
138
+
139
+ | Event | Detail | Description |
140
+ |-------|--------|-------------|
141
+ | `rel-hover` | `{ index: number, datum: object, seriesKey?: string }` | Fired when hovering over a data point |
142
+
143
+ ## Keyboard Navigation
144
+
145
+ - **Tab**: Navigate between data points
146
+ - **Enter/Space**: Show tooltip for focused point
147
+ - Each bar/point is focusable and shows tooltip on focus
148
+
149
+ ## CSS Parts
150
+
151
+ Use `::part()` to customize chart appearance:
152
+
153
+ ```css
154
+ rel-chart::part(container) {
155
+ background: #f5f5f5;
156
+ }
157
+
158
+ rel-chart::part(bar) {
159
+ rx: 4; /* Rounded corners */
160
+ }
161
+
162
+ rel-chart::part(tooltip) {
163
+ background: rgba(0, 0, 0, 0.9);
164
+ color: white;
165
+ }
166
+ ```
167
+
168
+ Available parts:
169
+ - `container` - Chart container
170
+ - `svg` - SVG element
171
+ - `grid` - Grid lines
172
+ - `axis` - Axis lines and labels
173
+ - `bar` - Bar elements
174
+ - `line` - Line paths
175
+ - `point` - Line chart points
176
+ - `legend` - Legend container
177
+ - `tooltip` - Tooltip overlay
178
+
179
+ ## Data Format
180
+
181
+ ### Simple Data
182
+
183
+ ```javascript
184
+ [
185
+ { month: 'Jan', value: 100 },
186
+ { month: 'Feb', value: 150 },
187
+ { month: 'Mar', value: 120 }
188
+ ]
189
+ ```
190
+
191
+ ### Multi-Series Data
192
+
193
+ ```javascript
194
+ [
195
+ { date: '2024-01', desktop: 186, mobile: 80, tablet: 45 },
196
+ { date: '2024-02', desktop: 305, mobile: 200, tablet: 150 },
197
+ { date: '2024-03', desktop: 237, mobile: 120, tablet: 90 }
198
+ ]
199
+ ```
200
+
201
+ ## Examples
202
+
203
+ ### Complete Bar Chart Example
204
+
205
+ ```html
206
+ <rel-chart
207
+ id="sales-chart"
208
+ type="bar"
209
+ height="360"
210
+ ></rel-chart>
211
+
212
+ <script>
213
+ const chart = document.getElementById('sales-chart');
214
+
215
+ chart.xKey = 'month';
216
+ chart.data = [
217
+ { month: 'January', desktop: 186, mobile: 80 },
218
+ { month: 'February', desktop: 305, mobile: 200 },
219
+ { month: 'March', desktop: 237, mobile: 120 },
220
+ { month: 'April', desktop: 73, mobile: 190 },
221
+ { month: 'May', desktop: 209, mobile: 130 },
222
+ { month: 'June', desktop: 214, mobile: 140 }
223
+ ];
224
+
225
+ chart.series = [
226
+ { key: 'desktop', label: 'Desktop', colorToken: 'var(--rel-colors-blue-primary)' },
227
+ { key: 'mobile', label: 'Mobile', colorToken: 'var(--rel-colors-green-primary)' }
228
+ ];
229
+
230
+ chart.addEventListener('rel-hover', (e) => {
231
+ console.log('Hovering:', e.detail);
232
+ });
233
+ </script>
234
+ ```
235
+
236
+ ### Complete Line Chart Example
237
+
238
+ ```html
239
+ <rel-chart
240
+ id="trend-chart"
241
+ type="line"
242
+ height="300"
243
+ format-x="date"
244
+ ></rel-chart>
245
+
246
+ <script>
247
+ const chart = document.getElementById('trend-chart');
248
+
249
+ chart.xKey = 'date';
250
+ chart.data = [
251
+ { date: '2024-01-01', revenue: 4200 },
252
+ { date: '2024-01-08', revenue: 4500 },
253
+ { date: '2024-01-15', revenue: 4100 },
254
+ { date: '2024-01-22', revenue: 4800 },
255
+ { date: '2024-01-29', revenue: 5200 }
256
+ ];
257
+
258
+ chart.series = [
259
+ { key: 'revenue', label: 'Revenue', colorToken: 'var(--rel-colors-green-success)' }
260
+ ];
261
+ </script>
262
+ ```
263
+
264
+ ## Accessibility
265
+
266
+ - Charts use semantic SVG with proper ARIA labels
267
+ - All interactive elements are keyboard accessible
268
+ - Tooltips appear on both hover and focus
269
+ - Respects `prefers-reduced-motion` user preference
270
+ - Color is not the only way to distinguish data (labels provided)
271
+
272
+ ## Styling
273
+
274
+ The component uses design tokens from the Reliability Design System. All colors, spacing, and typography are inherited from CSS variables.
275
+
276
+ Key tokens used:
277
+ - `--rel-colors-*` for all colors
278
+ - `--rel-spacing-*` for spacing
279
+ - `--rel-fontSizes-*`, `--rel-fontWeights-*` for typography
280
+ - `--rel-borders-*` for borders and radius
281
+ - `--rel-shadows-*` for shadows
282
+ - Default series colors use system color tokens
283
+
284
+ ## Browser Support
285
+
286
+ Works in all modern browsers with ES2020 support and native Web Components.
@@ -0,0 +1 @@
1
+ export * from "./rel-chart";