@reliability-design/web 1.3.1 → 1.4.0

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 (123) hide show
  1. package/dist/components/rel-accordion/README.md +13 -13
  2. package/dist/components/rel-accordion/rel-accordion.ts +80 -45
  3. package/dist/components/rel-alert/README.md +15 -15
  4. package/dist/components/rel-alert/rel-alert.ts +153 -158
  5. package/dist/components/rel-avatar/README.md +15 -15
  6. package/dist/components/rel-avatar/rel-avatar.ts +42 -38
  7. package/dist/components/rel-badge/README.md +5 -5
  8. package/dist/components/rel-badge/rel-badge.ts +46 -11
  9. package/dist/components/rel-breadcrumb/README.md +7 -7
  10. package/dist/components/rel-breadcrumb/rel-breadcrumb.ts +16 -13
  11. package/dist/components/rel-button/README.md +20 -20
  12. package/dist/components/rel-button/rel-button.ts +292 -105
  13. package/dist/components/rel-calendar/README.md +5 -5
  14. package/dist/components/rel-calendar/rel-calendar.ts +61 -45
  15. package/dist/components/rel-card/README.md +6 -6
  16. package/dist/components/rel-card/rel-card.ts +88 -35
  17. package/dist/components/rel-cardmedia/README.md +9 -9
  18. package/dist/components/rel-cardmedia/rel-cardmedia.ts +27 -20
  19. package/dist/components/rel-carousel/README.md +3 -3
  20. package/dist/components/rel-carousel/rel-carousel.ts +174 -90
  21. package/dist/components/rel-chart/README.md +8 -8
  22. package/dist/components/rel-chart/rel-chart.ts +59 -41
  23. package/dist/components/rel-checkbox/README.md +7 -7
  24. package/dist/components/rel-checkbox/rel-checkbox.ts +61 -61
  25. package/dist/components/rel-chip/README.md +16 -16
  26. package/dist/components/rel-chip/rel-chip.ts +143 -111
  27. package/dist/components/rel-container/README.md +11 -11
  28. package/dist/components/rel-container/rel-container.ts +35 -9
  29. package/dist/components/rel-date-picker/README.md +43 -7
  30. package/dist/components/rel-date-picker/date-format.test.ts +43 -0
  31. package/dist/components/rel-date-picker/date-format.ts +47 -0
  32. package/dist/components/rel-date-picker/rel-date-picker.ts +154 -82
  33. package/dist/components/rel-divider/README.md +9 -9
  34. package/dist/components/rel-divider/rel-divider.ts +10 -9
  35. package/dist/components/rel-drawer/README.md +1 -1
  36. package/dist/components/rel-drawer/rel-drawer-footer.ts +1 -1
  37. package/dist/components/rel-drawer/rel-drawer.ts +56 -28
  38. package/dist/components/rel-kbd/README.md +20 -20
  39. package/dist/components/rel-kbd/rel-kbd.ts +119 -25
  40. package/dist/components/rel-layout/README.md +1 -1
  41. package/dist/components/rel-layout/rel-layout.ts +2 -2
  42. package/dist/components/rel-menu/README.md +15 -15
  43. package/dist/components/rel-menu/rel-menu.ts +155 -88
  44. package/dist/components/rel-menubar/README.md +20 -20
  45. package/dist/components/rel-menubar/rel-menubar.ts +47 -31
  46. package/dist/components/rel-nav-menu/README.md +21 -21
  47. package/dist/components/rel-nav-menu/rel-nav-menu-item.ts +17 -14
  48. package/dist/components/rel-nav-menu/rel-nav-menu-panel.ts +33 -14
  49. package/dist/components/rel-nav-menu/rel-nav-menu.ts +14 -7
  50. package/dist/components/rel-navbar/README.md +7 -7
  51. package/dist/components/rel-navbar/rel-navbar.ts +12 -11
  52. package/dist/components/rel-otp/README.md +3 -3
  53. package/dist/components/rel-otp/rel-otp.ts +46 -30
  54. package/dist/components/rel-pagination/README.md +18 -18
  55. package/dist/components/rel-pagination/rel-pagination.ts +141 -90
  56. package/dist/components/rel-popover/README.md +13 -13
  57. package/dist/components/rel-popover/rel-popover-content.ts +39 -14
  58. package/dist/components/rel-popover/rel-popover.ts +18 -7
  59. package/dist/components/rel-progress/README.md +5 -5
  60. package/dist/components/rel-progress/rel-progress.ts +16 -12
  61. package/dist/components/rel-radio/README.md +9 -9
  62. package/dist/components/rel-radio/rel-radio.ts +64 -50
  63. package/dist/components/rel-range-picker/rel-range-picker.ts +120 -117
  64. package/dist/components/rel-resizable/README.md +4 -4
  65. package/dist/components/rel-resizable/rel-resizable-group.ts +15 -4
  66. package/dist/components/rel-resizable/rel-resizable-handle.ts +13 -9
  67. package/dist/components/rel-resizable/rel-resizable-panel.ts +11 -0
  68. package/dist/components/rel-segmented-button/README.md +10 -10
  69. package/dist/components/rel-segmented-button/rel-segmented-button.ts +39 -40
  70. package/dist/components/rel-select/README.md +14 -14
  71. package/dist/components/rel-select/rel-select.ts +120 -188
  72. package/dist/components/rel-sheet/README.md +10 -10
  73. package/dist/components/rel-sheet/rel-sheet.ts +82 -23
  74. package/dist/components/rel-sidebar/README.md +5 -5
  75. package/dist/components/rel-sidebar/rel-sidebar.ts +75 -60
  76. package/dist/components/rel-skeleton/rel-skeleton.ts +8 -13
  77. package/dist/components/rel-slider/README.md +10 -10
  78. package/dist/components/rel-slider/rel-slider.ts +230 -57
  79. package/dist/components/rel-snackbar/README.md +9 -9
  80. package/dist/components/rel-snackbar/rel-snackbar.ts +44 -32
  81. package/dist/components/rel-stepper/README.md +10 -10
  82. package/dist/components/rel-stepper/rel-stepper.ts +110 -46
  83. package/dist/components/rel-switch/README.md +5 -5
  84. package/dist/components/rel-switch/rel-switch.ts +23 -12
  85. package/dist/components/rel-tab/README.md +13 -13
  86. package/dist/components/rel-tab/rel-tab.ts +63 -19
  87. package/dist/components/rel-table/README.md +7 -7
  88. package/dist/components/rel-table/rel-table-body.ts +2 -1
  89. package/dist/components/rel-table/rel-table-caption.ts +10 -7
  90. package/dist/components/rel-table/rel-table-cell.ts +7 -6
  91. package/dist/components/rel-table/rel-table-footer.ts +4 -3
  92. package/dist/components/rel-table/rel-table-head.ts +11 -9
  93. package/dist/components/rel-table/rel-table-header.ts +2 -1
  94. package/dist/components/rel-table/rel-table-row.ts +5 -4
  95. package/dist/components/rel-table/rel-table.ts +16 -7
  96. package/dist/components/rel-textfield/README.md +11 -11
  97. package/dist/components/rel-textfield/rel-textfield.ts +172 -91
  98. package/dist/components/rel-toast/README.md +11 -11
  99. package/dist/components/rel-toast/rel-toast.ts +33 -30
  100. package/dist/components/rel-tooltip/README.md +7 -7
  101. package/dist/components/rel-tooltip/rel-tooltip.ts +160 -123
  102. package/dist/components/rel-topbar/rel-topbar-actions.ts +1 -2
  103. package/dist/components/rel-topbar/rel-topbar-brand.ts +8 -5
  104. package/dist/components/rel-topbar/rel-topbar-dropdown-item.ts +10 -8
  105. package/dist/components/rel-topbar/rel-topbar-dropdown.ts +4 -5
  106. package/dist/components/rel-topbar/rel-topbar-item.ts +23 -22
  107. package/dist/components/rel-topbar/rel-topbar-mobile-panel.ts +0 -1
  108. package/dist/components/rel-topbar/rel-topbar-profile.ts +68 -50
  109. package/dist/components/rel-topbar/rel-topbar-utilities.ts +1 -2
  110. package/dist/components/rel-topbar/rel-topbar.ts +31 -29
  111. package/dist/index.d.mts +151 -39
  112. package/dist/index.d.ts +151 -39
  113. package/dist/index.js +3544 -2289
  114. package/dist/index.js.map +1 -1
  115. package/dist/index.mjs +3876 -2622
  116. package/dist/index.mjs.map +1 -1
  117. package/dist/styles/vars.css +653 -363
  118. package/dist/vars-WY2XCF5G.css +653 -0
  119. package/package.json +3 -2
  120. package/dist/components/rel-range-picker/rel-range-picker.css +0 -349
  121. package/dist/styles/vars-v2.css +0 -525
  122. package/dist/vars-F54UGCHM.css +0 -363
  123. package/dist/vars-v2-VMGWTFJZ.css +0 -525
@@ -77,21 +77,21 @@ None exposed.
77
77
  ## Tokens / CSS Variables
78
78
 
79
79
  ### Semantic Tokens
80
- - `--rel-fontFamilies-primary` - Font family
81
- - `--rel-fontSizes-sm`, `--rel-fontSizes-xs` - Font sizes for label and supporting text
82
- - `--rel-fontWeights-medium` - Font weight for labels
80
+ - `--rel-fonts-font-family` - Font family
81
+ - `--rel-body-sm-regular-font-size`, `--rel-body-xs-regular-font-size` - Font sizes for label and supporting text
82
+ - `--rel-fonts-weight-body-medium` - Font weight for labels
83
83
 
84
84
  ### Spacing Tokens
85
- - `--rel-spacing-space-xs` - Gap between radio options
86
- - `--rel-spacing-space-3xs` - Gap within each option (label and supporting text)
87
- - `--rel-spacing-space-2xs` - Gap between radio circle and label
85
+ - `--rel-spacing-xs` - Gap between radio options
86
+ - `--rel-spacing-3xs` - Gap within each option (label and supporting text)
87
+ - `--rel-spacing-2xs` - Gap between radio circle and label
88
88
 
89
89
  ### Color Tokens
90
- - `--rel-text-heading` - Radio button border and checked dot color
91
- - `--rel-text-primary` - Label text color
90
+ - `--rel-text-label` - Radio button border and checked dot color
91
+ - `--rel-text-default` - Label text color
92
92
  - `--rel-text-placeholder` - Supporting text color
93
93
  - `--rel-border-info` - Focus outline color
94
- - `--rel-colors-red-secondary` - Error state border and dot color
94
+ - `--rel-text-danger` - Error state border and dot color
95
95
 
96
96
  ## Accessibility
97
97
  - Uses visually hidden native radio inputs for proper screen reader support
@@ -1,6 +1,5 @@
1
1
  import { LitElement, html, css } from "lit";
2
2
  import { customElement, property } from "lit/decorators.js";
3
- import "../../styles/vars-v2.css";
4
3
 
5
4
  export interface RadioOption {
6
5
  value: string;
@@ -34,50 +33,52 @@ export class RelRadio extends LitElement {
34
33
 
35
34
  static styles = css`
36
35
  :host {
36
+ color: var(--rel-text-default);
37
37
  display: block;
38
- font-family: var(--rel-fontFamilies-primary);
38
+ font-family: var(--rel-fonts-font-family);
39
39
  }
40
40
 
41
41
  .rel-radio-group {
42
42
  display: flex;
43
43
  flex-direction: column;
44
44
  align-items: flex-start;
45
- gap: var(--rel-spacing-space-xs);
45
+ gap: var(--rel-spacing-xs);
46
46
  }
47
47
 
48
48
  .rel-radio-option {
49
49
  display: inline-flex;
50
50
  flex-direction: column;
51
- gap: var(--rel-spacing-space-3xs);
51
+ gap: var(--rel-spacing-3xs);
52
52
  cursor: pointer;
53
53
  }
54
54
 
55
55
  .rel-radio-option.disabled {
56
56
  opacity: 0.6;
57
+ color: var(--rel-text-disabled);
57
58
  cursor: not-allowed !important;
58
59
  }
59
60
 
60
61
  .rel-radio-option:not(.disabled):hover .radio-custom {
61
- border-color: #525252;
62
+ border-color: var(--rel-text-body);
62
63
  }
63
64
 
64
65
  .rel-radio-option:not(.disabled):hover .radio-label {
65
- color: #525252;
66
+ color: var(--rel-text-body);
66
67
  }
67
68
 
68
69
  .rel-radio-option:not(.disabled):hover .radio-supporting {
69
- color: #7D7D7D;
70
+ color: var(--rel-text-caption);
70
71
  }
71
72
 
72
73
  .rel-radio-option:focus-within:has(input:focus-visible) {
73
- outline: 1.5px solid #000000;
74
+ outline: 1.5px solid var(--rel-border-focus);
74
75
  outline-offset: 1px;
75
76
  }
76
77
 
77
78
  .radio-main {
78
79
  display: flex;
79
80
  align-items: center;
80
- gap: var(--rel-spacing-space-2xs);
81
+ gap: var(--rel-spacing-2xs);
81
82
  }
82
83
 
83
84
  input {
@@ -89,7 +90,7 @@ export class RelRadio extends LitElement {
89
90
  .radio-custom {
90
91
  width: 20px;
91
92
  height: 20px;
92
- border: 2px solid var(--rel-color-text-heading);
93
+ border: 2px solid var(--rel-text-label);
93
94
  border-radius: 50%;
94
95
  position: relative;
95
96
  flex-shrink: 0;
@@ -99,62 +100,76 @@ export class RelRadio extends LitElement {
99
100
  content: "";
100
101
  position: absolute;
101
102
  inset: 4px;
102
- background: var(--rel-color-text-heading);
103
+ background: var(--rel-text-label);
103
104
  border-radius: 50%;
104
105
  }
105
106
 
106
107
  .radio-label {
107
- font-size: var(--rel-fontSizes-md, 16px);
108
- font-weight: var(--rel-fontWeights-medium);
109
- color: var(--rel-color-text-primary);
108
+ color: var(--rel-text-default);
109
+
110
+ font-family: var(--rel-body-lg-regular-font-family);
111
+
112
+ font-weight: var(--rel-body-lg-regular-font-weight);
113
+
114
+ font-size: var(--rel-body-lg-regular-font-size);
115
+
116
+ line-height: var(--rel-body-lg-regular-line-height);
117
+
118
+ letter-spacing: var(--rel-body-lg-regular-letter-spacing);
119
+
110
120
  }
111
121
 
112
122
  .radio-supporting {
113
- font-size: var(--rel-fontSizes-sm, 12px);
114
123
  margin-left: 28px;
115
- color: #7D7D7D;
124
+ color: var(--rel-text-caption);
125
+
126
+ font-family: var(--rel-body-sm-regular-font-family);
127
+
128
+ font-weight: var(--rel-body-sm-regular-font-weight);
129
+
130
+ font-size: var(--rel-body-sm-regular-font-size);
131
+
132
+ line-height: var(--rel-body-sm-regular-line-height);
133
+
134
+ letter-spacing: var(--rel-body-sm-regular-letter-spacing);
135
+
136
+ }
137
+
138
+ /* Error state (Figma State=Error, both Is Checked values) */
139
+ .rel-radio-option.error-unchecked .radio-custom,
140
+ .rel-radio-option.error-checked .radio-custom {
141
+ border-color: var(--rel-border-danger);
116
142
  }
117
143
 
118
- /* Error state — unchecked only */
119
- .rel-radio-option.error-unchecked .radio-custom {
120
- border-color: #CE3131;
144
+ .rel-radio-option.error-checked input:checked + .radio-custom::after {
145
+ background: var(--rel-text-danger);
121
146
  }
122
147
 
123
- .rel-radio-option.error-unchecked .radio-label {
124
- color: #CE3131;
148
+ .rel-radio-option.error-unchecked .radio-label,
149
+ .rel-radio-option.error-checked .radio-label {
150
+ color: var(--rel-text-danger);
125
151
  }
126
152
 
127
- .rel-radio-option.error-unchecked .radio-supporting {
128
- color: #CE3131;
153
+ .rel-radio-option.error-unchecked .radio-supporting,
154
+ .rel-radio-option.error-checked .radio-supporting {
155
+ color: var(--rel-text-danger);
129
156
  }
130
157
 
131
158
  /* Error message below group */
132
159
  .error-message {
133
- font-size: var(--rel-fontSizes-sm, 12px);
134
- color: #CE3131;
135
- margin-top: var(--rel-spacing-space-2xs, 4px);
136
- }
160
+ color: var(--rel-text-danger);
161
+ margin-top: var(--rel-spacing-2xs, 4px);
137
162
 
138
- /* Dark mode hover overrides */
139
- :host-context([data-theme="dark"]) .rel-radio-option:not(.disabled):hover .radio-custom,
140
- :host-context(.dark) .rel-radio-option:not(.disabled):hover .radio-custom {
141
- border-color: var(--rel-color-text-secondary, #D4D4D4);
142
- }
163
+ font-family: var(--rel-body-sm-regular-font-family);
143
164
 
144
- :host-context([data-theme="dark"]) .rel-radio-option:not(.disabled):hover .radio-label,
145
- :host-context(.dark) .rel-radio-option:not(.disabled):hover .radio-label {
146
- color: var(--rel-color-text-secondary, #D4D4D4);
147
- }
165
+ font-weight: var(--rel-body-sm-regular-font-weight);
148
166
 
149
- :host-context([data-theme="dark"]) .rel-radio-option:not(.disabled):hover .radio-supporting,
150
- :host-context(.dark) .rel-radio-option:not(.disabled):hover .radio-supporting {
151
- color: var(--rel-color-text-placeholder, #A3A3A3);
152
- }
167
+ font-size: var(--rel-body-sm-regular-font-size);
168
+
169
+ line-height: var(--rel-body-sm-regular-line-height);
170
+
171
+ letter-spacing: var(--rel-body-sm-regular-letter-spacing);
153
172
 
154
- :host-context([data-theme="dark"]) .rel-radio-option:focus-within:has(input:focus-visible),
155
- :host-context(.dark) .rel-radio-option:focus-within:has(input:focus-visible) {
156
- outline: 1.5px solid var(--rel-color-text-primary, #F5F5F5);
157
- outline-offset: 1px;
158
173
  }
159
174
  `;
160
175
 
@@ -183,12 +198,11 @@ export class RelRadio extends LitElement {
183
198
  private renderOption(option: RadioOption) {
184
199
  const isChecked = this.selectedValue === option.value;
185
200
  const isDisabled = this.disabled || option.disabled;
186
- const isErrorActive = this.error && !this.hasSelection;
187
-
188
201
  const classes = [
189
202
  "rel-radio-option",
190
203
  isDisabled ? "disabled" : "",
191
- isErrorActive ? "error-unchecked" : "",
204
+ this.error && !this.hasSelection ? "error-unchecked" : "",
205
+ this.error && isChecked ? "error-checked" : "",
192
206
  ]
193
207
  .filter(Boolean)
194
208
  .join(" ");
@@ -205,7 +219,7 @@ export class RelRadio extends LitElement {
205
219
  @blur="${() => this._onTouched()}"
206
220
  />
207
221
  <span class="radio-custom"></span>
208
- <span class="radio-label">${option.label}</span>
222
+ <span part="label" class="radio-label">${option.label}</span>
209
223
  </div>
210
224
 
211
225
  ${option.supportingText
@@ -217,10 +231,10 @@ export class RelRadio extends LitElement {
217
231
 
218
232
  render() {
219
233
  return html`
220
- <div class="rel-radio-group">
234
+ <div part="base" class="rel-radio-group">
221
235
  ${this.options.map((o) => this.renderOption(o))}
222
236
  </div>
223
- ${this.error && this.errorMessage && !this.hasSelection
237
+ ${this.error && this.errorMessage
224
238
  ? html`<div class="error-message">${this.errorMessage}</div>`
225
239
  : ""}
226
240
  `;