@reliability-design/web 1.1.1 → 1.3.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 (69) hide show
  1. package/dist/components/rel-accordion/rel-accordion.ts +289 -150
  2. package/dist/components/rel-alert/rel-alert.ts +34 -34
  3. package/dist/components/rel-avatar/README.md +15 -4
  4. package/dist/components/rel-avatar/rel-avatar.ts +138 -94
  5. package/dist/components/rel-badge/README.md +7 -0
  6. package/dist/components/rel-badge/rel-badge.ts +39 -2
  7. package/dist/components/rel-breadcrumb/rel-breadcrumb.ts +6 -6
  8. package/dist/components/rel-button/rel-button.ts +96 -28
  9. package/dist/components/rel-calendar/rel-calendar.ts +15 -8
  10. package/dist/components/rel-card/rel-card.ts +9 -17
  11. package/dist/components/rel-cardmedia/rel-cardmedia.ts +20 -23
  12. package/dist/components/rel-carousel/rel-carousel.ts +596 -468
  13. package/dist/components/rel-checkbox/rel-checkbox.ts +68 -16
  14. package/dist/components/rel-chip/README.md +7 -0
  15. package/dist/components/rel-chip/rel-chip.ts +411 -244
  16. package/dist/components/rel-container/rel-container.ts +2 -2
  17. package/dist/components/rel-date-picker/rel-date-picker.ts +23 -19
  18. package/dist/components/rel-divider/rel-divider.ts +3 -3
  19. package/dist/components/rel-drawer/rel-drawer-footer.ts +0 -2
  20. package/dist/components/rel-drawer/rel-drawer.ts +46 -90
  21. package/dist/components/rel-kbd/rel-kbd.ts +94 -118
  22. package/dist/components/rel-layout/rel-layout.ts +49 -58
  23. package/dist/components/rel-menu/rel-menu.ts +359 -359
  24. package/dist/components/rel-menubar/rel-menubar-menu.css +3 -0
  25. package/dist/components/rel-menubar/rel-menubar-menu.ts +2 -1
  26. package/dist/components/rel-menubar/rel-menubar.ts +603 -605
  27. package/dist/components/rel-otp/rel-otp.ts +22 -25
  28. package/dist/components/rel-pagination/rel-pagination.ts +442 -381
  29. package/dist/components/rel-popover/rel-popover-content.ts +6 -5
  30. package/dist/components/rel-popover/rel-popover.ts +26 -7
  31. package/dist/components/rel-progress/rel-progress.ts +10 -9
  32. package/dist/components/rel-radio/rel-radio.ts +228 -172
  33. package/dist/components/rel-range-picker/rel-range-picker.css +349 -0
  34. package/dist/components/rel-range-picker/rel-range-picker.ts +1080 -0
  35. package/dist/components/rel-resizable/rel-resizable-handle.ts +8 -7
  36. package/dist/components/rel-segmented-button/rel-segmented-button.ts +41 -20
  37. package/dist/components/rel-select/README.md +34 -28
  38. package/dist/components/rel-select/rel-select.ts +1015 -275
  39. package/dist/components/rel-sheet/rel-sheet.ts +365 -684
  40. package/dist/components/rel-skeleton/rel-skeleton.ts +139 -0
  41. package/dist/components/rel-slider/rel-slider.ts +49 -27
  42. package/dist/components/rel-snackbar/rel-snackbar.ts +28 -28
  43. package/dist/components/rel-stepper/rel-stepper.ts +11 -10
  44. package/dist/components/rel-switch/rel-switch.ts +7 -6
  45. package/dist/components/rel-tab/rel-tab.ts +15 -29
  46. package/dist/components/rel-textfield/rel-textfield.ts +192 -35
  47. package/dist/components/rel-toast/rel-toast.ts +21 -13
  48. package/dist/components/rel-tooltip/rel-tooltip.ts +123 -123
  49. package/dist/components/rel-topbar/rel-topbar-actions.ts +1 -0
  50. package/dist/components/rel-topbar/rel-topbar-brand.ts +1 -0
  51. package/dist/components/rel-topbar/rel-topbar-dropdown-item.ts +32 -2
  52. package/dist/components/rel-topbar/rel-topbar-dropdown.ts +1 -1
  53. package/dist/components/rel-topbar/rel-topbar-item.ts +15 -10
  54. package/dist/components/rel-topbar/rel-topbar-mobile-panel.ts +1 -0
  55. package/dist/components/rel-topbar/rel-topbar-profile.ts +30 -56
  56. package/dist/components/rel-topbar/rel-topbar-utilities.ts +1 -0
  57. package/dist/components/rel-topbar/rel-topbar.ts +137 -28
  58. package/dist/index.d.mts +310 -193
  59. package/dist/index.d.ts +310 -193
  60. package/dist/index.js +5562 -3526
  61. package/dist/index.js.map +1 -1
  62. package/dist/index.mjs +5328 -3284
  63. package/dist/index.mjs.map +1 -1
  64. package/dist/rel-menubar-menu-BEEQDAXW.css +3 -0
  65. package/dist/styles/vars-v2.css +525 -0
  66. package/dist/styles/vars.css +346 -346
  67. package/dist/{vars-TBB4BMSD.css → vars-I2PC74XD.css} +346 -346
  68. package/dist/vars-v2-VMGWTFJZ.css +525 -0
  69. package/package.json +2 -1
@@ -9,7 +9,7 @@ interface CalendarDay {
9
9
  isSelected: boolean;
10
10
  isDisabled: boolean;
11
11
  }
12
-
12
+
13
13
  @customElement("rel-date-picker")
14
14
  export class RelDatePicker extends LitElement {
15
15
  @property({ type: String, reflect: true }) value: string | null = null;
@@ -47,6 +47,10 @@ export class RelDatePicker extends LitElement {
47
47
 
48
48
  :host([disabled]) {
49
49
  opacity: 0.6;
50
+ cursor: not-allowed;
51
+ }
52
+
53
+ :host([disabled]) * {
50
54
  pointer-events: none;
51
55
  }
52
56
 
@@ -70,7 +74,7 @@ export class RelDatePicker extends LitElement {
70
74
  justify-content: space-between;
71
75
  gap: var(--rel-spacing-space-xs);
72
76
  padding: var(--rel-spacing-space-sm) var(--rel-spacing-space-md);
73
- background: var(--rel-colors-white);
77
+ background: var(--rel-color-bg-primary);
74
78
  border: 1px solid var(--rel-border-default);
75
79
  border-radius: var(--rel-borders-radius-border-radius-200);
76
80
  font-family: var(--rel-fontFamilies-primary);
@@ -82,13 +86,13 @@ export class RelDatePicker extends LitElement {
82
86
  }
83
87
 
84
88
  .trigger-button:hover:not(:disabled) {
85
- border-color: var(--rel-colors-gray-heading);
89
+ border-color: var(--rel-color-border-strong);
86
90
  }
87
91
 
88
92
  .trigger-button:focus-visible {
89
- outline: 2px solid var(--rel-colors-blue-primary);
93
+ outline: 2px solid var(--rel-color-border-focus);
90
94
  outline-offset: 2px;
91
- border-color: var(--rel-colors-blue-primary);
95
+ border-color: var(--rel-color-border-focus);
92
96
  }
93
97
 
94
98
  .trigger-button:disabled {
@@ -116,7 +120,7 @@ export class RelDatePicker extends LitElement {
116
120
  border: none;
117
121
  padding: var(--rel-spacing-space-3xs);
118
122
  cursor: pointer;
119
- color: var(--rel-colors-gray-placeholder);
123
+ color: var(--rel-color-text-placeholder);
120
124
  display: flex;
121
125
  align-items: center;
122
126
  justify-content: center;
@@ -126,7 +130,7 @@ export class RelDatePicker extends LitElement {
126
130
 
127
131
  .icon-button:hover {
128
132
  background: var(--rel-surface-secondary);
129
- color: var(--rel-colors-gray-heading);
133
+ color: var(--rel-color-text-primary);
130
134
  }
131
135
 
132
136
  .icon-button svg {
@@ -139,7 +143,7 @@ export class RelDatePicker extends LitElement {
139
143
  top: calc(100% + 4px);
140
144
  left: 0;
141
145
  z-index: 1000;
142
- background: var(--rel-colors-white);
146
+ background: var(--rel-color-bg-primary);
143
147
  border: 1px solid var(--rel-border-default);
144
148
  border-radius: var(--rel-borders-radius-border-radius-200);
145
149
  box-shadow: var(--rel-shadows-shadow-300);
@@ -170,7 +174,7 @@ export class RelDatePicker extends LitElement {
170
174
  align-items: center;
171
175
  justify-content: center;
172
176
  cursor: pointer;
173
- color: var(--rel-colors-gray-primary);
177
+ color: var(--rel-color-text-primary);
174
178
  transition: background-color 0.15s ease;
175
179
  }
176
180
 
@@ -179,7 +183,7 @@ export class RelDatePicker extends LitElement {
179
183
  }
180
184
 
181
185
  .nav-button:focus-visible {
182
- outline: 2px solid var(--rel-colors-blue-primary);
186
+ outline: 2px solid var(--rel-color-border-focus);
183
187
  outline-offset: 2px;
184
188
  }
185
189
 
@@ -191,7 +195,7 @@ export class RelDatePicker extends LitElement {
191
195
  .dropdown-trigger {
192
196
  width: 100%;
193
197
  padding: var(--rel-spacing-space-xs) var(--rel-spacing-space-sm);
194
- background: var(--rel-colors-white);
198
+ background: var(--rel-color-bg-primary);
195
199
  border: 1px solid var(--rel-border-default);
196
200
  border-radius: var(--rel-borders-radius-border-radius-200);
197
201
  font-family: var(--rel-fontFamilies-primary);
@@ -208,7 +212,7 @@ export class RelDatePicker extends LitElement {
208
212
  }
209
213
 
210
214
  .dropdown-trigger:focus-visible {
211
- outline: 2px solid var(--rel-colors-blue-primary);
215
+ outline: 2px solid var(--rel-color-border-focus);
212
216
  outline-offset: 2px;
213
217
  }
214
218
 
@@ -218,7 +222,7 @@ export class RelDatePicker extends LitElement {
218
222
  left: 0;
219
223
  right: 0;
220
224
  z-index: 10;
221
- background: var(--rel-colors-white);
225
+ background: var(--rel-color-bg-primary);
222
226
  border: 1px solid var(--rel-border-default);
223
227
  border-radius: var(--rel-borders-radius-border-radius-200);
224
228
  box-shadow: var(--rel-shadows-shadow-200);
@@ -244,8 +248,8 @@ export class RelDatePicker extends LitElement {
244
248
  }
245
249
 
246
250
  .dropdown-item.selected {
247
- background: var(--rel-colors-blue-bg);
248
- color: var(--rel-colors-blue-primary);
251
+ background: var(--rel-background-info);
252
+ color: var(--rel-text-info);
249
253
  font-weight: var(--rel-fontWeights-semibold);
250
254
  }
251
255
 
@@ -260,7 +264,7 @@ export class RelDatePicker extends LitElement {
260
264
  text-align: center;
261
265
  font-size: var(--rel-fontSizes-xs);
262
266
  font-weight: var(--rel-fontWeights-semibold);
263
- color: var(--rel-colors-gray-placeholder);
267
+ color: var(--rel-color-text-placeholder);
264
268
  padding: var(--rel-spacing-space-xs);
265
269
  text-transform: uppercase;
266
270
  }
@@ -290,18 +294,18 @@ export class RelDatePicker extends LitElement {
290
294
  }
291
295
 
292
296
  .day-button:focus-visible {
293
- outline: 2px solid var(--rel-colors-blue-primary);
297
+ outline: 2px solid var(--rel-color-border-focus);
294
298
  outline-offset: -2px;
295
299
  z-index: 1;
296
300
  }
297
301
 
298
302
  .day-button.today:not(.selected) {
299
- border: 2px solid var(--rel-colors-blue-primary);
303
+ border: 2px solid var(--rel-colors-green-primary);
300
304
  }
301
305
 
302
306
  .day-button.selected {
303
307
  background: var(--rel-colors-green-primary);
304
- color: var(--rel-colors-black);
308
+ color: var(--rel-color-text-inverse);
305
309
  font-weight: var(--rel-fontWeights-semibold);
306
310
  }
307
311
 
@@ -15,21 +15,21 @@
15
15
  display: flex;
16
16
  background: transparent;
17
17
  font-family: var(--rel-fontFamilies-primary);
18
- color: var(--rel-colors-gray-primary);
18
+ color: var(--rel-color-text-primary);
19
19
  }
20
20
 
21
21
  /* Horizontal */
22
22
  .rel-divider.horizontal {
23
23
  width: 100%;
24
24
  height: var(--rel-borders-width-stroke-100);
25
- background-color: var(--rel-colors-gray-border);
25
+ background-color: var(--rel-color-border-divider);
26
26
  margin: var(--rel-spacing-space-md) 0;
27
27
  }
28
28
 
29
29
  /* Vertical */
30
30
  .rel-divider.vertical {
31
31
  width: var(--rel-borders-width-stroke-100);
32
- background-color: var(--rel-colors-gray-border);
32
+ background-color: var(--rel-color-border-divider);
33
33
  margin: 0 var(--rel-spacing-space-md);
34
34
  align-self: stretch;
35
35
  height: 100%;
@@ -8,8 +8,6 @@ export class RelDrawerFooter extends LitElement {
8
8
  display: flex;
9
9
  justify-content: flex-end;
10
10
  gap: var(--rel-spacing-space-xs);
11
- padding-top: var(--rel-spacing-space-md);
12
- border-top: 1px solid var(--rel-color-border-divider);
13
11
  }
14
12
  `;
15
13
 
@@ -1,8 +1,9 @@
1
1
  import { LitElement, html, css } from "lit";
2
2
  import { customElement, property, state, query } from "lit/decorators.js";
3
+ import "@reliability-design/icons/rel-icon";
3
4
  import "./rel-drawer-footer";
4
5
 
5
- export type DrawerSide = "bottom" | "left" | "right" | "top";
6
+ export type DrawerSide = "bottom" | "left" | "right";
6
7
  export type DrawerCloseReason = "backdrop" | "escape" | "drag" | "programmatic";
7
8
 
8
9
  @customElement("rel-drawer")
@@ -17,8 +18,7 @@ export class RelDrawer extends LitElement {
17
18
  @property({ type: Boolean }) draggable = true;
18
19
  @property({ type: Number, attribute: "snap-threshold" }) snapThreshold = 0.25;
19
20
  @property({ type: String, attribute: "max-height" }) maxHeight = "80vh";
20
- @property({ type: String }) width = "420px";
21
- @property({ type: Boolean, reflect: true }) disabled = false;
21
+ @property({ type: String }) width = "";
22
22
  @property({ type: String }) title: string = "";
23
23
  @property({ type: String }) description: string = "";
24
24
 
@@ -40,11 +40,6 @@ export class RelDrawer extends LitElement {
40
40
  --drawer-transition-timing: cubic-bezier(0.32, 0.72, 0, 1);
41
41
  }
42
42
 
43
- :host([disabled]) {
44
- pointer-events: none;
45
- opacity: 0.6;
46
- }
47
-
48
43
  .drawer-container {
49
44
  position: fixed;
50
45
  top: 0;
@@ -78,10 +73,11 @@ export class RelDrawer extends LitElement {
78
73
  /* Panel base */
79
74
  .panel {
80
75
  position: absolute;
81
- background: var(--rel-colors-white);
76
+ background: var(--rel-color-bg-primary);
82
77
  box-shadow: var(--rel-shadows-shadow-500);
83
78
  display: flex;
84
79
  flex-direction: column;
80
+ overflow: hidden;
85
81
  outline: none;
86
82
  font-family: var(--rel-fontFamilies-primary);
87
83
  transition: transform var(--drawer-transition-duration) var(--drawer-transition-timing);
@@ -90,16 +86,19 @@ export class RelDrawer extends LitElement {
90
86
  /* Bottom drawer */
91
87
  .panel[data-side="bottom"] {
92
88
  bottom: 0;
93
- left: 0;
94
- right: 0;
95
- max-height: var(--drawer-max-height, 80vh);
96
- border-top-left-radius: var(--rel-borders-radius-border-radius-300);
97
- border-top-right-radius: var(--rel-borders-radius-border-radius-300);
98
- transform: translateY(100%);
89
+ left: 50%;
90
+ right: auto;
91
+ width: var(--drawer-width, clamp(640px, 66vw, 952px));
92
+ height: var(--drawer-height, clamp(360px, 49vh, 600px));
93
+ border-radius: var(--rel-borders-radius-border-radius-200)
94
+ var(--rel-borders-radius-border-radius-200)
95
+ 0
96
+ 0;
97
+ transform: translateX(-50%) translateY(100%);
99
98
  }
100
99
 
101
100
  .drawer-container.open .panel[data-side="bottom"] {
102
- transform: translateY(0);
101
+ transform: translateX(-50%) translateY(0);
103
102
  }
104
103
 
105
104
  /* Left drawer */
@@ -107,10 +106,8 @@ export class RelDrawer extends LitElement {
107
106
  top: 0;
108
107
  left: 0;
109
108
  bottom: 0;
110
- width: var(--drawer-width, 420px);
111
- max-width: 90vw;
112
- border-top-right-radius: var(--rel-borders-radius-border-radius-300);
113
- border-bottom-right-radius: var(--rel-borders-radius-border-radius-300);
109
+ width: var(--drawer-width, clamp(280px, 24vw, 420px));
110
+ border-radius: 0;
114
111
  transform: translateX(-100%);
115
112
  }
116
113
 
@@ -123,10 +120,8 @@ export class RelDrawer extends LitElement {
123
120
  top: 0;
124
121
  right: 0;
125
122
  bottom: 0;
126
- width: var(--drawer-width, 420px);
127
- max-width: 90vw;
128
- border-top-left-radius: var(--rel-borders-radius-border-radius-300);
129
- border-bottom-left-radius: var(--rel-borders-radius-border-radius-300);
123
+ width: var(--drawer-width, clamp(280px, 24vw, 420px));
124
+ border-radius: 0;
130
125
  transform: translateX(100%);
131
126
  }
132
127
 
@@ -134,21 +129,6 @@ export class RelDrawer extends LitElement {
134
129
  transform: translateX(0);
135
130
  }
136
131
 
137
- /* Top drawer */
138
- .panel[data-side="top"] {
139
- top: 0;
140
- left: 0;
141
- right: 0;
142
- max-height: var(--drawer-max-height, 80vh);
143
- border-bottom-left-radius: var(--rel-borders-radius-border-radius-300);
144
- border-bottom-right-radius: var(--rel-borders-radius-border-radius-300);
145
- transform: translateY(-100%);
146
- }
147
-
148
- .drawer-container.open .panel[data-side="top"] {
149
- transform: translateY(0);
150
- }
151
-
152
132
  /* Dragging state */
153
133
  .panel.dragging {
154
134
  transition: none;
@@ -158,13 +138,17 @@ export class RelDrawer extends LitElement {
158
138
  transition: none;
159
139
  }
160
140
 
141
+ .overlay.no-modal {
142
+ display: none !important;
143
+ }
144
+
161
145
  /* Handle */
162
146
  .handle {
163
147
  width: 48px;
164
148
  height: 4px;
165
- background: var(--rel-colors-gray-divider);
149
+ background: var(--rel-color-border-divider);
166
150
  border-radius: var(--rel-borders-radius-border-radius-500);
167
- margin: var(--rel-spacing-space-sm) auto var(--rel-spacing-space-xs);
151
+ margin: var(--rel-spacing-space-xs) auto var(--rel-spacing-space-2xs);
168
152
  cursor: grab;
169
153
  touch-action: none;
170
154
  }
@@ -183,7 +167,7 @@ export class RelDrawer extends LitElement {
183
167
  flex-direction: column;
184
168
  gap: var(--rel-spacing-space-2xs);
185
169
  padding: var(--rel-spacing-space-md) var(--rel-spacing-space-lg);
186
- border-bottom: var(--rel-borders-width-stroke-100) solid var(--rel-colors-gray-border);
170
+ border-bottom: var(--rel-borders-width-stroke-100) solid var(--rel-color-border-default);
187
171
  }
188
172
 
189
173
  .header.empty {
@@ -192,7 +176,7 @@ export class RelDrawer extends LitElement {
192
176
 
193
177
  .header-top {
194
178
  display: flex;
195
- align-items: center;
179
+ align-items: flex-start;
196
180
  justify-content: space-between;
197
181
  }
198
182
 
@@ -218,8 +202,10 @@ export class RelDrawer extends LitElement {
218
202
  display: flex;
219
203
  align-items: center;
220
204
  justify-content: center;
205
+ align-self: flex-start;
206
+ flex-shrink: 0;
221
207
  border-radius: var(--rel-borders-radius-border-radius-100);
222
- color: var(--rel-colors-gray-primary, #333);
208
+ color: var(--rel-color-text-primary);
223
209
  transition: background 0.15s ease;
224
210
  }
225
211
 
@@ -228,11 +214,11 @@ export class RelDrawer extends LitElement {
228
214
  }
229
215
 
230
216
  .close-button:active {
231
- background: var(--rel-colors-gray-divider, #bdbdbd);
217
+ background: var(--rel-color-border-divider);
232
218
  }
233
219
 
234
220
  .close-button:focus-visible {
235
- outline: 2px solid var(--rel-colors-blue-primary, #0091ea);
221
+ outline: 2px solid var(--rel-color-border-focus);
236
222
  outline-offset: 2px;
237
223
  }
238
224
 
@@ -245,12 +231,9 @@ export class RelDrawer extends LitElement {
245
231
 
246
232
  /* Footer */
247
233
  .footer {
234
+ flex-shrink: 0;
248
235
  padding: var(--rel-spacing-space-md) var(--rel-spacing-space-lg);
249
- border-top: var(--rel-borders-width-stroke-100) solid var(--rel-colors-gray-border);
250
- }
251
-
252
- .footer.empty {
253
- display: none;
236
+ border-top: var(--rel-borders-width-stroke-100) solid var(--rel-color-border-default);
254
237
  }
255
238
 
256
239
  /* Reduced motion */
@@ -299,7 +282,10 @@ export class RelDrawer extends LitElement {
299
282
 
300
283
  if (this.modal) {
301
284
  this.updateComplete.then(() => {
302
- const focusTarget = this.shadowRoot?.querySelector<HTMLElement>("[autofocus], .close-button, .panel");
285
+ const focusTarget =
286
+ this.querySelector<HTMLElement>("[autofocus]") ??
287
+ this.querySelector<HTMLElement>(".close-button") ??
288
+ this.querySelector<HTMLElement>(".panel");
303
289
  focusTarget?.focus();
304
290
  });
305
291
  }
@@ -356,17 +342,6 @@ export class RelDrawer extends LitElement {
356
342
  document.body.style.paddingRight = this.originalBodyPaddingRight;
357
343
  }
358
344
 
359
- private focusPanel() {
360
- if (!this.panelElement) return;
361
-
362
- const focusable = this.getFocusableElements();
363
- if (focusable.length > 0) {
364
- focusable[0].focus();
365
- } else {
366
- this.panelElement.focus();
367
- }
368
- }
369
-
370
345
  private getFocusableElements(): HTMLElement[] {
371
346
  if (!this.panelElement) return [];
372
347
 
@@ -415,7 +390,7 @@ export class RelDrawer extends LitElement {
415
390
 
416
391
  const firstFocusable = focusable[0];
417
392
  const lastFocusable = focusable[focusable.length - 1];
418
- const activeElement = this.shadowRoot?.activeElement || document.activeElement;
393
+ const activeElement = document.activeElement;
419
394
 
420
395
  if (e.shiftKey) {
421
396
  if (activeElement === firstFocusable) {
@@ -476,7 +451,7 @@ export class RelDrawer extends LitElement {
476
451
  }
477
452
  };
478
453
 
479
- private handlePointerUp = (e: PointerEvent) => {
454
+ private handlePointerUp = (_e: PointerEvent) => {
480
455
  if (!this.isDragging) return;
481
456
 
482
457
  this.isDragging = false;
@@ -500,7 +475,7 @@ export class RelDrawer extends LitElement {
500
475
  return "";
501
476
  }
502
477
 
503
- return `transform: translateY(${this.dragOffset}px);`;
478
+ return `transform: translateX(-50%) translateY(${this.dragOffset}px);`;
504
479
  }
505
480
 
506
481
  private getOverlayStyle() {
@@ -515,17 +490,9 @@ export class RelDrawer extends LitElement {
515
490
  return `opacity: ${opacity};`;
516
491
  }
517
492
 
518
- private hasSlotContent(slotName?: string): boolean {
519
- const slot = this.shadowRoot?.querySelector(
520
- slotName ? `slot[name="${slotName}"]` : "slot:not([name])"
521
- ) as HTMLSlotElement;
522
- return slot ? slot.assignedElements({ flatten: true }).length > 0 : false;
523
- }
524
-
525
493
  render() {
526
494
  const hasTitle = !!this.title;
527
495
  const hasDescription = !!this.description;
528
- const hasFooter = this.hasSlotContent("footer");
529
496
  const showCloseButton = this.dismissible;
530
497
  const hasHeader = hasTitle || hasDescription || showCloseButton;
531
498
 
@@ -536,7 +503,7 @@ export class RelDrawer extends LitElement {
536
503
  <div class="drawer-container ${this.open ? "open" : ""}">
537
504
  <div
538
505
  part="overlay"
539
- class="overlay ${this.isDragging ? "dragging" : ""}"
506
+ class="overlay ${!this.modal ? 'no-modal' : ''} ${this.isDragging ? 'dragging' : ''}"
540
507
  style="${this.getOverlayStyle()}"
541
508
  @click="${this.handleOverlayClick}"></div>
542
509
 
@@ -573,16 +540,7 @@ export class RelDrawer extends LitElement {
573
540
  class="close-button"
574
541
  @click="${this.handleCloseButtonClick}"
575
542
  aria-label="Close">
576
- <svg
577
- width="16"
578
- height="16"
579
- viewBox="0 0 16 16"
580
- fill="none"
581
- xmlns="http://www.w3.org/2000/svg">
582
- <path
583
- d="M12.8 4.27L11.73 3.2L8 6.93L4.27 3.2L3.2 4.27L6.93 8L3.2 11.73L4.27 12.8L8 9.07L11.73 12.8L12.8 11.73L9.07 8L12.8 4.27Z"
584
- fill="currentColor" />
585
- </svg>
543
+ <rel-icon name="close" size="sm"></rel-icon>
586
544
  </button>`
587
545
  : ""}
588
546
  </div>
@@ -594,11 +552,9 @@ export class RelDrawer extends LitElement {
594
552
  <slot></slot>
595
553
  </div>
596
554
 
597
- ${hasFooter
598
- ? html`<div part="footer" class="footer">
599
- <rel-drawer-footer><slot name="footer"></slot></rel-drawer-footer>
600
- </div>`
601
- : ""}
555
+ <div part="footer" class="footer">
556
+ <rel-drawer-footer><slot name="footer"></slot></rel-drawer-footer>
557
+ </div>
602
558
  </div>
603
559
  </div>
604
560
  `;