@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
@@ -55,13 +55,13 @@ None exposed.
55
55
  ## Tokens / CSS Variables
56
56
 
57
57
  ### Semantic Tokens
58
- - `--rel-fontFamilies-primary` - Font family
59
- - `--rel-fontWeights-semibold` - Font weight (number variant)
60
- - `--rel-fontSizes-xs`, `--rel-fontSizes-sm`, `--rel-fontSizes-lg` - Font sizes for number variant sizes
58
+ - `--rel-fonts-font-family` - Font family
59
+ - `--rel-fonts-weight-body-semibold` - Font weight (number variant)
60
+ - `--rel-body-xs-regular-font-size`, `--rel-body-sm-regular-font-size`, `--rel-body-xl-regular-font-size` - Font sizes for number variant sizes
61
61
 
62
62
  ### Color Tokens
63
- - `--rel-colors-red-primary` - Background color
64
- - `--rel-colors-white` - Text color
63
+ - `--rel-bg-danger` - Background color
64
+ - `--rel-bg-surface` - Text color
65
65
 
66
66
  ## Accessibility
67
67
  - Purely visual indicator (no ARIA roles)
@@ -1,4 +1,3 @@
1
- import "../../styles/vars-v2.css";
2
1
  import { LitElement, html, css } from "lit";
3
2
  import { customElement, property } from "lit/decorators.js";
4
3
 
@@ -11,7 +10,7 @@ export class RelBadge extends LitElement {
11
10
  @property({ type: String }) suffix: string = "notifications";
12
11
 
13
12
  @property({ type: String, reflect: true })
14
- size: "sm" | "md" | "lg" = "md";
13
+ size: "sm" | "md" | "lg" | "xl" = "md";
15
14
 
16
15
  @property({ type: String, reflect: true })
17
16
  variant: "dot" | "number" = "number";
@@ -36,18 +35,22 @@ export class RelBadge extends LitElement {
36
35
 
37
36
  static styles = css`
38
37
  :host {
38
+ color: var(--rel-text-default);
39
39
  display: inline-flex;
40
40
  }
41
41
 
42
42
  .badge {
43
+ font-weight: var(--rel-body-sm-semibold-font-weight);
44
+ font-size: var(--rel-body-sm-semibold-font-size);
45
+ line-height: var(--rel-body-sm-semibold-line-height);
46
+ letter-spacing: var(--rel-body-sm-semibold-letter-spacing);
43
47
  display: inline-flex;
44
48
  align-items: center;
45
49
  justify-content: center;
46
50
  box-sizing: border-box;
47
- font-family: var(--rel-fontFamilies-primary, sans-serif);
48
- font-weight: var(--rel-fontWeights-semibold, 600);
49
- background-color: var(--rel-badge-bg, var(--rel-error-surface-default));
50
- color: var(--rel-badge-color, #ffffff);
51
+ font-family: var(--rel-fonts-font-family, sans-serif);
52
+ background-color: var(--rel-badge-bg, var(--rel-bg-danger));
53
+ color: var(--rel-badge-color, var(--rel-text-static-light));
51
54
  /* Large fixed radius (not 50%) — stays a perfect circle for 1-2 digits,
52
55
  but becomes a pill instead of clipping when content like "999+"
53
56
  is wider than the minimum circle. */
@@ -61,21 +64,46 @@ export class RelBadge extends LitElement {
61
64
  min-width: 20px;
62
65
  height: 20px;
63
66
  padding: 0 4px;
64
- font-size: var(--rel-fontSizes-xs, 12px);
67
+ font-family: var(--rel-body-xs-regular-font-family);
68
+ font-weight: var(--rel-body-xs-semibold-font-weight);
69
+ font-size: var(--rel-body-xs-semibold-font-size);
70
+ line-height: var(--rel-body-xs-semibold-line-height);
71
+ letter-spacing: var(--rel-body-xs-semibold-letter-spacing);
65
72
  }
66
73
 
74
+ /* Size tiers follow Figma Badge S/M/L/XL (20/24/28/40px).
75
+ Figma binds a *-regular family with *-semibold metrics on S/M/L. */
67
76
  .badge-md {
77
+ min-width: 24px;
78
+ height: 24px;
79
+ padding: 0 6px;
80
+ font-family: var(--rel-body-sm-regular-font-family);
81
+ font-weight: var(--rel-body-sm-semibold-font-weight);
82
+ font-size: var(--rel-body-sm-semibold-font-size);
83
+ line-height: var(--rel-body-sm-semibold-line-height);
84
+ letter-spacing: var(--rel-body-sm-semibold-letter-spacing);
85
+ }
86
+
87
+ .badge-lg {
68
88
  min-width: 28px;
69
89
  height: 28px;
70
90
  padding: 0 6px;
71
- font-size: var(--rel-fontSizes-sm, 14px);
91
+ font-family: var(--rel-body-md-regular-font-family);
92
+ font-weight: var(--rel-body-md-semibold-font-weight);
93
+ font-size: var(--rel-body-md-regular-font-size);
94
+ line-height: var(--rel-body-md-regular-line-height);
95
+ letter-spacing: var(--rel-body-md-regular-letter-spacing);
72
96
  }
73
97
 
74
- .badge-lg {
98
+ .badge-xl {
75
99
  min-width: 40px;
76
100
  height: 40px;
77
101
  padding: 0 8px;
78
- font-size: var(--rel-fontSizes-lg, 20px);
102
+ font-family: var(--rel-body-xl-semibold-font-family);
103
+ font-weight: var(--rel-body-xl-semibold-font-weight);
104
+ font-size: var(--rel-body-xl-semibold-font-size);
105
+ line-height: var(--rel-body-xl-semibold-line-height);
106
+ letter-spacing: var(--rel-body-xl-semibold-letter-spacing);
79
107
  }
80
108
 
81
109
  /* DOT BADGES — explicitly reset min-width/padding inherited from the
@@ -101,6 +129,13 @@ export class RelBadge extends LitElement {
101
129
  min-width: 0;
102
130
  padding: 0;
103
131
  }
132
+
133
+ .badge-dot.badge-xl {
134
+ width: 12px;
135
+ height: 12px;
136
+ min-width: 0;
137
+ padding: 0;
138
+ }
104
139
  `;
105
140
 
106
141
  private get classes() {
@@ -127,7 +162,7 @@ export class RelBadge extends LitElement {
127
162
 
128
163
  render() {
129
164
  return html`
130
- <span class="${this.classes}" aria-label=${this.ariaLabel || `${this.number} ${this.suffix}`}>
165
+ <span part="base" class="${this.classes}" aria-label=${this.ariaLabel || `${this.number} ${this.suffix}`}>
131
166
  ${this.variant === "number" ? this.number : null}
132
167
  </span>
133
168
  `;
@@ -65,15 +65,15 @@ None exposed.
65
65
  ## Tokens / CSS Variables
66
66
 
67
67
  ### Semantic Tokens
68
- - `--rel-fontFamilies-primary` - Font family
69
- - `--rel-fontSizes-md` - Font size
70
- - `--rel-fontWeights-medium` - Font weight for links
71
- - `--rel-fontWeights-bold` - Font weight for current page
68
+ - `--rel-fonts-font-family` - Font family
69
+ - `--rel-body-md-regular-font-size` - Font size
70
+ - `--rel-fonts-weight-body-medium` - Font weight for links
71
+ - `--rel-fonts-weight-body-semibold` - Font weight for current page
72
72
 
73
73
  ### Color Tokens
74
- - `--rel-text-primary` - Base text color
75
- - `--rel-text-heading` - Link and current page text color
76
- - `--rel-colors-blue-primary` - Link hover color and focus outline
74
+ - `--rel-text-default` - Base text color
75
+ - `--rel-text-label` - Link and current page text color
76
+ - `--rel-bg-info` - Link hover color and focus outline
77
77
 
78
78
  ## Accessibility
79
79
  - Uses semantic `<nav>` with `aria-label="Breadcrumb"`
@@ -1,4 +1,3 @@
1
- import "../../styles/vars-v2.css";
2
1
  import { LitElement, html, css } from "lit";
3
2
  import { customElement, property } from "lit/decorators.js";
4
3
 
@@ -14,10 +13,13 @@ export class RelBreadcrumbs extends LitElement {
14
13
 
15
14
  static styles = css`
16
15
  :host {
17
- display: block;
18
- font-family: var(--rel-fontFamilies-primary, sans-serif);
19
- font-size: var(--rel-fontSizes-md);
20
- color: var(--rel-text-primary, #333);
16
+ display: block;
17
+ color: var(--rel-text-default);
18
+ font-family: var(--rel-body-md-regular-font-family);
19
+ font-weight: var(--rel-body-md-regular-font-weight);
20
+ font-size: var(--rel-body-md-regular-font-size);
21
+ line-height: var(--rel-body-md-regular-line-height);
22
+ letter-spacing: var(--rel-body-md-regular-letter-spacing);
21
23
  }
22
24
 
23
25
  nav {
@@ -33,30 +35,31 @@ export class RelBreadcrumbs extends LitElement {
33
35
  }
34
36
 
35
37
  li {
38
+ gap: var(--rel-spacing-xs);
36
39
  display: flex;
37
40
  align-items: center;
38
41
  }
39
42
 
40
43
  a {
41
44
  text-decoration: none;
42
- font-weight: var(--rel-fontWeights-regular);
43
- color: var(--rel-color-text-primary);
45
+ font-weight: var(--rel-body-md-regular-font-weight);
46
+ color: var(--rel-text-body);
44
47
  }
45
48
 
46
49
  a:hover {
47
50
  text-decoration: underline;
48
- color: var(--rel-color-text-primary);
51
+ color: var(--rel-text-default);
49
52
  }
50
53
 
51
54
  a:focus-visible {
52
- outline: 2px solid var(--rel-color-border-focus);
55
+ outline: 2px solid var(--rel-border-focus);
53
56
  outline-offset: 2px;
54
57
  border-radius: 2px;
55
58
  }
56
59
 
57
60
  .current {
58
- font-weight: var(--rel-fontWeights-bold);
59
- color: var(--rel-color-text-primary);
61
+ font-weight: var(--rel-body-md-semibold-font-weight);
62
+ color: var(--rel-text-default);
60
63
  cursor: default;
61
64
  }
62
65
 
@@ -70,7 +73,7 @@ export class RelBreadcrumbs extends LitElement {
70
73
 
71
74
  render() {
72
75
  return html`
73
- <nav aria-label="Breadcrumb">
76
+ <nav part="base" aria-label="Breadcrumb">
74
77
  <ol>
75
78
  ${this.items.map((item, index) => {
76
79
  const isLast = index === this.items.length - 1;
@@ -79,7 +82,7 @@ export class RelBreadcrumbs extends LitElement {
79
82
  <li>
80
83
  ${item.url && !isLast
81
84
  ? html`<a href=${item.url}>${item.label}</a>`
82
- : html`<span class="current" aria-current="page">${item.label}</span>`}
85
+ : html`<span part="label" class="current" aria-current="page">${item.label}</span>`}
83
86
  ${!isLast
84
87
  ? html`
85
88
  <svg viewBox="0 0 24 24" aria-hidden="true">
@@ -75,31 +75,31 @@ None exposed.
75
75
  ## Tokens / CSS Variables
76
76
 
77
77
  ### Semantic Tokens
78
- - `--rel-fontFamilies-primary` - Font family
79
- - `--rel-fontWeights-semibold` - Font weight
80
- - `--rel-fontSizes-sm`, `--rel-fontSizes-md`, `--rel-fontSizes-lg` - Font sizes for sizes
78
+ - `--rel-fonts-font-family` - Font family
79
+ - `--rel-fonts-weight-body-semibold` - Font weight
80
+ - `--rel-body-sm-regular-font-size`, `--rel-body-md-regular-font-size`, `--rel-body-xl-regular-font-size` - Font sizes for sizes
81
81
 
82
82
  ### Spacing Tokens
83
- - `--rel-spacing-space-2xs` - Internal gap between elements
84
- - `--rel-spacing-space-md`, `--rel-spacing-space-lg`, `--rel-spacing-space-xl` - Horizontal padding by size
83
+ - `--rel-spacing-2xs` - Internal gap between elements
84
+ - `--rel-spacing-md`, `--rel-spacing-lg`, `--rel-spacing-xl` - Horizontal padding by size
85
85
 
86
86
  ### Color Tokens (by variant/tone)
87
- - **default + default tone**: `--rel-colors-gray-primary` (bg), `--rel-colors-white` (text)
88
- - **default + critical tone**: `--rel-colors-red-primary` (bg), `--rel-colors-white` (text)
89
- - **default + success tone**: `--rel-colors-green-success` (bg), `--rel-colors-white` (text)
90
- - **primary + default tone**: `--rel-colors-green-primary` (bg), `--rel-colors-black` (text)
91
- - **primary + critical tone**: `--rel-colors-red-primary` (bg), `--rel-colors-white` (text)
92
- - **primary + success tone**: `--rel-colors-green-success` (bg), `--rel-colors-white` (text)
93
- - **secondary**: `--rel-colors-white` (bg), `--rel-colors-black` (text + border)
94
- - **text**: transparent (bg), `--rel-colors-black` (text)
95
- - **link**: transparent (bg), `--rel-colors-blue-primary` (text), underlined
96
- - **icon**: `--rel-colors-gray-light` (bg), `--rel-colors-black` (text), circular (40px × 40px)
97
- - **disabled**: `--rel-colors-gray-border` (bg), `--rel-colors-gray-disabled-text` (text)
87
+ - **default + default tone**: `--rel-text-default` (bg), `--rel-bg-surface` (text)
88
+ - **default + critical tone**: `--rel-bg-danger` (bg), `--rel-bg-surface` (text)
89
+ - **default + success tone**: `--rel-text-success` (bg), `--rel-bg-surface` (text)
90
+ - **primary + default tone**: `--rel-bg-brand` (bg), `--rel-text-default` (text)
91
+ - **primary + critical tone**: `--rel-bg-danger` (bg), `--rel-bg-surface` (text)
92
+ - **primary + success tone**: `--rel-text-success` (bg), `--rel-bg-surface` (text)
93
+ - **secondary**: `--rel-bg-surface` (bg), `--rel-text-default` (text + border)
94
+ - **text**: transparent (bg), `--rel-text-default` (text)
95
+ - **link**: transparent (bg), `--rel-bg-info` (text), underlined
96
+ - **icon**: `--rel-bg-surface-elevated` (bg), `--rel-text-default` (text), circular (40px × 40px)
97
+ - **disabled**: `--rel-border-default` (bg), `--rel-text-disabled` (text)
98
98
 
99
99
  ### Border Tokens
100
- - `--rel-borders-radius-border-radius-500` - Large corner radius
101
- - `--rel-borders-radius-border-radius-200` - Small corner radius
102
- - `--rel-borders-radius-border-radius-0` - No corner radius
100
+ - `--rel-border-radius-full-rounded` - Large corner radius
101
+ - `--rel-border-radius-sm` - Small corner radius
102
+ - `--rel-border-radius-square` - No corner radius
103
103
 
104
104
  ## Accessibility
105
105
  - Uses native `<button>` element for proper semantics
@@ -126,5 +126,5 @@ None exposed.
126
126
  - Clicking a disabled button prevents default and stops propagation
127
127
  - Size variants affect height (32px/40px/48px) and horizontal padding
128
128
  - The button has `display: inline-flex` with `align-items: center` and `justify-content: center`
129
- - Internal gap of `var(--rel-spacing-space-2xs)` allows icons + text combinations
129
+ - Internal gap of `var(--rel-spacing-2xs)` allows icons + text combinations
130
130
  - Transitions are `0.15s ease` for all visual changes