@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,127 @@
1
+ # rel-card-media
2
+
3
+ ## Overview
4
+ A media-rich card component combining an image, title, subtitle, and custom content area. Features automatic image sizing with object-fit, enhanced hover lift effect (4px), and semantic heading structure. Ideal for blog posts, product listings, or media galleries.
5
+
6
+ ## Usage
7
+ ```html
8
+ <!-- Basic media card -->
9
+ <rel-card-media
10
+ imageSrc="./photo.jpg"
11
+ imageAlt="Beautiful landscape"
12
+ title="Card Title"
13
+ subtitle="Card subtitle or description">
14
+ </rel-card-media>
15
+
16
+ <!-- With custom slotted content -->
17
+ <rel-card-media
18
+ imageSrc="./product.jpg"
19
+ imageAlt="Product image"
20
+ title="Premium Product"
21
+ subtitle="$99.99">
22
+ <p>Additional product details go here.</p>
23
+ <button>Buy Now</button>
24
+ </rel-card-media>
25
+
26
+ <!-- Without image -->
27
+ <rel-card-media
28
+ title="Text-Only Card"
29
+ subtitle="No image provided">
30
+ <p>This card has no image, just title, subtitle, and content.</p>
31
+ </rel-card-media>
32
+
33
+ <!-- With title only -->
34
+ <rel-card-media
35
+ imageSrc="./banner.jpg"
36
+ imageAlt="Banner"
37
+ title="Event Title">
38
+ <p>Event description and details.</p>
39
+ </rel-card-media>
40
+
41
+ <!-- Gallery layout -->
42
+ <div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;">
43
+ <rel-card-media
44
+ imageSrc="./img1.jpg"
45
+ title="Gallery Item 1">
46
+ </rel-card-media>
47
+ <rel-card-media
48
+ imageSrc="./img2.jpg"
49
+ title="Gallery Item 2">
50
+ </rel-card-media>
51
+ <rel-card-media
52
+ imageSrc="./img3.jpg"
53
+ title="Gallery Item 3">
54
+ </rel-card-media>
55
+ </div>
56
+ ```
57
+
58
+ ## API
59
+
60
+ ### Attributes/Properties
61
+ | Name | Type | Default | Description |
62
+ |------|------|---------|-------------|
63
+ | `imageSrc` | `string` | `""` | URL of the card image (optional) |
64
+ | `imageAlt` | `string` | `"Card image"` | Alt text for the image (for accessibility) |
65
+ | `title` | `string` | `""` | Card title displayed as `<h3>` (optional) |
66
+ | `subtitle` | `string` | `""` | Card subtitle displayed as `<p>` (optional) |
67
+
68
+ ## Events
69
+ None.
70
+
71
+ ## Slots
72
+ | Slot | Description |
73
+ |------|-------------|
74
+ | (default) | Additional content rendered below title and subtitle |
75
+
76
+ ## CSS Parts
77
+ None exposed.
78
+
79
+ ## Tokens / CSS Variables
80
+
81
+ ### Semantic Tokens
82
+ - `--rel-fontFamilies-primary` - Font family
83
+ - `--rel-fontSizes-md` - Title font size
84
+ - `--rel-fontSizes-sm` - Subtitle font size
85
+ - `--rel-fontWeights-semibold` - Title font weight
86
+
87
+ ### Color Tokens
88
+ - `--rel-colors-white` - Card background color
89
+ - `--rel-text-primary` - General text color
90
+ - `--rel-text-heading` - Title color
91
+
92
+ ### Shadow Tokens
93
+ - `--rel-shadows-shadow-200` - Default elevation shadow
94
+ - `--rel-shadows-shadow-300` - Hover elevation shadow (larger)
95
+
96
+ ### Border Tokens
97
+ - `--rel-borders-radius-border-radius-300` - Card border radius
98
+
99
+ ### Spacing Tokens
100
+ - `--rel-spacing-space-md` - Content area padding
101
+
102
+ ## Accessibility
103
+ - Image has `alt` attribute for screen reader support
104
+ - Title uses semantic `<h3>` heading
105
+ - Subtitle uses `<p>` for proper text hierarchy
106
+ - Hover effect is purely visual and does not affect accessibility
107
+
108
+ ### Keyboard Interactions
109
+ - None (purely presentational container)
110
+ - Ensure slotted interactive elements are keyboard accessible
111
+
112
+ ### Focus Behavior
113
+ - Does not receive focus (container only)
114
+
115
+ ## Notes / Edge Cases
116
+ - **Image rendering**: If `imageSrc` is not provided or empty, the image section is not rendered
117
+ - **Image sizing**: The image uses `width: 100%`, `height: auto`, and `object-fit: cover` for responsive scaling
118
+ - The image is `display: block` to remove default inline spacing
119
+ - **Title and subtitle**: Both are optional; if not provided, their respective elements are not rendered
120
+ - Title has `margin: 0 0 4px 0` for spacing from subtitle
121
+ - Subtitle has `margin: 0 0 8px 0` for spacing from slotted content
122
+ - **Hover effect**: Translates the card upward by 4px (`translateY(-4px)`) and increases shadow depth (1px more than rel-card)
123
+ - **Animation**: Uses `transition: transform 0.2s ease, box-shadow 0.2s ease`
124
+ - **Motion preferences**: When `prefers-reduced-motion: reduce`, both hover transform and transitions are disabled
125
+ - The card uses `overflow: hidden` to ensure image respects border radius
126
+ - The `.card-content` wrapper provides consistent padding for title, subtitle, and slotted content
127
+ - The component is `display: block` and takes full width of its container
@@ -11,24 +11,30 @@ export class RelCardMedia extends LitElement {
11
11
  static styles = css`
12
12
  :host {
13
13
  display: block;
14
- font-family: var(--rel-fontFamilies-primary);
14
+ font-family: var(--rel-fontFamilies-primary, sans-serif);
15
15
  }
16
16
 
17
17
  .card-media {
18
- background-color: var(--rel-colors-white, #ffffff);
19
- border-radius: var(--rel-borderRadius-lg, 12px);
18
+ background-color: var(--rel-colors-white, #fff);
19
+ color: var(--rel-text-primary, #333);
20
+ border-radius: var(--rel-borders-radius-border-radius-300);
20
21
  overflow: hidden;
21
-
22
- box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.3),
23
- 0px 8px 12px 6px rgba(0, 0, 0, 0.15);
24
-
22
+ box-shadow: var(--rel-shadows-shadow-200);
25
23
  transition: transform 0.2s ease, box-shadow 0.2s ease;
26
24
  }
27
25
 
28
26
  .card-media:hover {
29
27
  transform: translateY(-4px);
30
- box-shadow: 0px 6px 10px rgba(0, 0, 0, 0.35),
31
- 0px 10px 16px 6px rgba(0, 0, 0, 0.2);
28
+ box-shadow: var(--rel-shadows-shadow-300);
29
+ }
30
+
31
+ @media (prefers-reduced-motion: reduce) {
32
+ .card-media {
33
+ transition: none;
34
+ }
35
+ .card-media:hover {
36
+ transform: none;
37
+ }
32
38
  }
33
39
 
34
40
  .card-image img {
@@ -39,20 +45,20 @@ export class RelCardMedia extends LitElement {
39
45
  }
40
46
 
41
47
  .card-content {
42
- padding: var(--rel-spacing-space-md, 16px);
48
+ padding: var(--rel-spacing-space-md);
43
49
  }
44
50
 
45
51
  .card-content h3 {
46
52
  margin: 0 0 4px 0;
47
- font-size: var(--rel-fontSizes-md, 16px);
48
- font-weight: var(--rel-fontWeights-semibold, 600);
49
- color: var(--rel-colors-gray-heading, #2b2b2b);
53
+ font-size: var(--rel-fontSizes-md);
54
+ font-weight: var(--rel-fontWeights-semibold);
55
+ color: var(--rel-text-heading, #2b2b2b);
50
56
  }
51
57
 
52
58
  .card-content p {
53
59
  margin: 0 0 8px 0;
54
- font-size: var(--rel-fontSizes-sm, 14px);
55
- color: var(--rel-colors-gray-text, #555);
60
+ font-size: var(--rel-fontSizes-sm);
61
+ color: var(--rel-text-primary, #333);
56
62
  }
57
63
  `;
58
64
 
@@ -62,7 +68,7 @@ export class RelCardMedia extends LitElement {
62
68
  ${this.imageSrc
63
69
  ? html`
64
70
  <div class="card-image">
65
- <img src="${this.imageSrc}" alt="${this.imageAlt}" />
71
+ <img src=${this.imageSrc} alt=${this.imageAlt} />
66
72
  </div>
67
73
  `
68
74
  : null}
@@ -70,8 +76,6 @@ export class RelCardMedia extends LitElement {
70
76
  <div class="card-content">
71
77
  ${this.title ? html`<h3>${this.title}</h3>` : null}
72
78
  ${this.subtitle ? html`<p>${this.subtitle}</p>` : null}
73
-
74
- <!-- Slot for extra content such as buttons, descriptions, etc -->
75
79
  <slot></slot>
76
80
  </div>
77
81
  </div>
@@ -0,0 +1,166 @@
1
+ # rel-carousel
2
+
3
+ A fully accessible carousel component built with Lit for the Reliability Design System.
4
+
5
+ ## Features
6
+
7
+ - Horizontal sliding carousel
8
+ - Touch/mouse drag support
9
+ - Keyboard navigation
10
+ - Optional autoplay
11
+ - Navigation buttons and dot indicators
12
+ - Loop mode
13
+ - Smooth transitions with reduced motion support
14
+ - Full ARIA support
15
+
16
+ ## Usage
17
+
18
+ ```html
19
+ <rel-carousel>
20
+ <div>Slide 1</div>
21
+ <div>Slide 2</div>
22
+ <div>Slide 3</div>
23
+ </rel-carousel>
24
+ ```
25
+
26
+ ### With Loop
27
+
28
+ ```html
29
+ <rel-carousel loop>
30
+ <div>Slide 1</div>
31
+ <div>Slide 2</div>
32
+ <div>Slide 3</div>
33
+ </rel-carousel>
34
+ ```
35
+
36
+ ### With Autoplay
37
+
38
+ ```html
39
+ <rel-carousel autoplay interval="3000">
40
+ <div>Slide 1</div>
41
+ <div>Slide 2</div>
42
+ <div>Slide 3</div>
43
+ </rel-carousel>
44
+ ```
45
+
46
+ ### Without Navigation
47
+
48
+ ```html
49
+ <rel-carousel show-buttons="false" show-dots="false">
50
+ <div>Slide 1</div>
51
+ <div>Slide 2</div>
52
+ <div>Slide 3</div>
53
+ </rel-carousel>
54
+ ```
55
+
56
+ ### Programmatic Control (JavaScript)
57
+
58
+ ```javascript
59
+ const carousel = document.querySelector('rel-carousel');
60
+
61
+ // Navigate to specific slide
62
+ carousel.value = 2;
63
+
64
+ // Listen to changes
65
+ carousel.addEventListener('rel-change', (e) => {
66
+ console.log('Current slide:', e.detail.value);
67
+ });
68
+ ```
69
+
70
+ ## Attributes
71
+
72
+ | Attribute | Type | Default | Description |
73
+ |-----------|------|---------|-------------|
74
+ | `value` | `number` | `0` | Current slide index (0-based) |
75
+ | `loop` | `boolean` | `false` | Enable infinite loop |
76
+ | `autoplay` | `boolean` | `false` | Enable automatic slide advancement |
77
+ | `interval` | `number` | `5000` | Autoplay interval in milliseconds |
78
+ | `pause-on-hover` | `boolean` | `true` | Pause autoplay on mouse hover |
79
+ | `show-buttons` | `boolean` | `true` | Show prev/next navigation buttons |
80
+ | `show-dots` | `boolean` | `true` | Show dot indicators |
81
+ | `orientation` | `"horizontal" \| "vertical"` | `"horizontal"` | Carousel orientation (v1: horizontal only) |
82
+ | `align` | `"start" \| "center" \| "end"` | `"center"` | Slide alignment in viewport |
83
+ | `slides-per-view` | `number` | `1` | Number of slides visible at once (v1: 1 only) |
84
+ | `gap` | `number` | - | Gap between slides in pixels (optional) |
85
+ | `disabled` | `boolean` | `false` | Disable all interactions |
86
+
87
+ ## Events
88
+
89
+ | Event | Detail | Description |
90
+ |-------|--------|-------------|
91
+ | `rel-change` | `{ value: number }` | Fired when active slide changes |
92
+
93
+ ## Keyboard Navigation
94
+
95
+ - **Arrow Left**: Go to previous slide
96
+ - **Arrow Right**: Go to next slide
97
+ - **Home**: Go to first slide
98
+ - **End**: Go to last slide
99
+ - **Tab**: Navigate through carousel controls
100
+
101
+ ## CSS Parts
102
+
103
+ Use `::part()` to customize carousel appearance:
104
+
105
+ ```css
106
+ rel-carousel::part(viewport) {
107
+ border-radius: 12px;
108
+ }
109
+
110
+ rel-carousel::part(prev-button),
111
+ rel-carousel::part(next-button) {
112
+ background: rgba(0, 0, 0, 0.5);
113
+ color: white;
114
+ }
115
+
116
+ rel-carousel::part(dot) {
117
+ width: 10px;
118
+ height: 10px;
119
+ }
120
+ ```
121
+
122
+ Available parts:
123
+ - `viewport` - The carousel viewport container
124
+ - `track` - The sliding track container
125
+ - `prev-button` - Previous navigation button
126
+ - `next-button` - Next navigation button
127
+ - `dots` - Dots container
128
+ - `dot` - Individual dot indicator
129
+
130
+ ## Accessibility
131
+
132
+ - Carousel uses `role="region"` with `aria-roledescription="carousel"`
133
+ - Each slide has proper ARIA labels
134
+ - Navigation buttons have descriptive `aria-label` attributes
135
+ - Supports keyboard navigation
136
+ - Respects `prefers-reduced-motion` user preference
137
+
138
+ ## Styling
139
+
140
+ The component uses design tokens from the Reliability Design System. All colors, spacing, and typography are inherited from CSS variables.
141
+
142
+ Key tokens used:
143
+ - `--rel-colors-*` for colors
144
+ - `--rel-spacing-*` for spacing
145
+ - `--rel-shadows-*` for shadows
146
+ - `--rel-border-*` for borders
147
+ - Focus outline uses `--rel-colors-blue-primary`
148
+ - Active dot uses `--rel-colors-green-primary`
149
+
150
+ ## Interaction
151
+
152
+ ### Mouse/Touch Drag
153
+ - Click and drag to swipe between slides
154
+ - Threshold-based snap: swipe 20% of slide width to trigger navigation
155
+ - Smooth animation on release
156
+
157
+ ### Autoplay
158
+ - Automatically advances slides at specified interval
159
+ - Pauses on hover (configurable via `pause-on-hover`)
160
+ - Pauses during manual interaction
161
+ - Resumes after interaction ends
162
+
163
+ ### Reduced Motion
164
+ - Component respects `prefers-reduced-motion` media query
165
+ - Disables or reduces transitions when user prefers reduced motion
166
+ - Drag interactions remain functional but with instant snap
@@ -0,0 +1 @@
1
+ export * from "./rel-carousel";