@reliability-design/web 1.0.2

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 (60) hide show
  1. package/dist/components/rel-accordion/rel-accordion.stories.ts +313 -0
  2. package/dist/components/rel-accordion/rel-accordion.ts +114 -0
  3. package/dist/components/rel-alert/rel-alert.stories.ts +412 -0
  4. package/dist/components/rel-alert/rel-alert.ts +194 -0
  5. package/dist/components/rel-avatar/rel-avatar.stories.ts +327 -0
  6. package/dist/components/rel-avatar/rel-avatar.ts +100 -0
  7. package/dist/components/rel-badge/rel-badge.stories.ts +350 -0
  8. package/dist/components/rel-badge/rel-badge.ts +70 -0
  9. package/dist/components/rel-breadcrumb/rel-breadcrumb.stories.ts +306 -0
  10. package/dist/components/rel-breadcrumb/rel-breadcrumb.ts +97 -0
  11. package/dist/components/rel-button/rel-button.stories.ts +356 -0
  12. package/dist/components/rel-button/rel-button.ts +204 -0
  13. package/dist/components/rel-card/rel-card.stories.ts +299 -0
  14. package/dist/components/rel-card/rel-card.ts +33 -0
  15. package/dist/components/rel-cardmedia/rel-cardmedia.stories.ts +368 -0
  16. package/dist/components/rel-cardmedia/rel-cardmedia.ts +80 -0
  17. package/dist/components/rel-checkbox/rel-checkbox.stories.ts +414 -0
  18. package/dist/components/rel-checkbox/rel-checkbox.ts +164 -0
  19. package/dist/components/rel-chip/rel-chip.stories.ts +552 -0
  20. package/dist/components/rel-chip/rel-chip.ts +261 -0
  21. package/dist/components/rel-container/rel-container.stories.ts +239 -0
  22. package/dist/components/rel-container/rel-container.ts +74 -0
  23. package/dist/components/rel-divider/rel-divider.stories.ts +229 -0
  24. package/dist/components/rel-divider/rel-divider.ts +44 -0
  25. package/dist/components/rel-layout/rel-layout.stories.ts +713 -0
  26. package/dist/components/rel-layout/rel-layout.ts +60 -0
  27. package/dist/components/rel-menu/rel-menu.stories.ts +910 -0
  28. package/dist/components/rel-menu/rel-menu.ts +319 -0
  29. package/dist/components/rel-progress/rel-progress.stories.ts +817 -0
  30. package/dist/components/rel-progress/rel-progress.ts +182 -0
  31. package/dist/components/rel-radio/rel-radio.stories.ts +1048 -0
  32. package/dist/components/rel-radio/rel-radio.ts +187 -0
  33. package/dist/components/rel-segmented-button/rel-segmented-button.stories.ts +1079 -0
  34. package/dist/components/rel-segmented-button/rel-segmented-button.ts +150 -0
  35. package/dist/components/rel-select/rel-select.stories.ts +1201 -0
  36. package/dist/components/rel-select/rel-select.ts +261 -0
  37. package/dist/components/rel-slider/rel-slider.stories.ts +730 -0
  38. package/dist/components/rel-slider/rel-slider.ts +440 -0
  39. package/dist/components/rel-snackbar/rel-snackbar.stories.ts +808 -0
  40. package/dist/components/rel-snackbar/rel-snackbar.ts +212 -0
  41. package/dist/components/rel-stepper/rel-stepper.stories.ts +752 -0
  42. package/dist/components/rel-stepper/rel-stepper.ts +425 -0
  43. package/dist/components/rel-switch/rel-switch.stories.ts +441 -0
  44. package/dist/components/rel-switch/rel-switch.ts +161 -0
  45. package/dist/components/rel-tab/rel-tab.stories.ts +492 -0
  46. package/dist/components/rel-tab/rel-tab.ts +145 -0
  47. package/dist/components/rel-textfield/rel-textfield.stories.ts +710 -0
  48. package/dist/components/rel-textfield/rel-textfield.ts +224 -0
  49. package/dist/components/rel-toast/rel-toast.stories.ts +394 -0
  50. package/dist/components/rel-toast/rel-toast.ts +154 -0
  51. package/dist/components/rel-tooltip/rel-tooltip.stories.ts +364 -0
  52. package/dist/components/rel-tooltip/rel-tooltip.ts +80 -0
  53. package/dist/index.d.mts +372 -0
  54. package/dist/index.d.ts +372 -0
  55. package/dist/index.js +4593 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/index.mjs +4544 -0
  58. package/dist/index.mjs.map +1 -0
  59. package/dist/styles/vars.css +184 -0
  60. package/package.json +32 -0
@@ -0,0 +1,182 @@
1
+ import { LitElement, html, css } from "lit";
2
+ import { customElement, property } from "lit/decorators.js";
3
+
4
+ export type ProgressMode =
5
+ | "linear-determinate"
6
+ | "linear-indeterminate"
7
+ | "circular-determinate"
8
+ | "circular-indeterminate";
9
+
10
+ @customElement("rel-progress")
11
+ export class RelProgress extends LitElement {
12
+ @property({ type: String }) mode: ProgressMode = "linear-determinate";
13
+
14
+ @property({ type: Number }) value: number = 0;
15
+
16
+ private radius = 15.9155;
17
+ private circumference = 2 * Math.PI * this.radius;
18
+
19
+ static styles = css`
20
+ :host {
21
+ display: block;
22
+ font-family: var(--rel-fontFamilies-primary);
23
+ }
24
+
25
+ :host([mode*="circular"]) {
26
+ display: inline-block;
27
+ }
28
+
29
+ /* Linear Progress */
30
+ .linear-track {
31
+ background: var(--rel-colors-gray-border);
32
+ border-radius: var(--rel-borders-radius-border-radius-200);
33
+ height: 6px;
34
+ overflow: hidden;
35
+ width: 100%;
36
+ }
37
+
38
+ .linear-bar {
39
+ background: var(--rel-colors-black);
40
+ height: 100%;
41
+ transition: width 0.3s ease;
42
+ }
43
+
44
+ .linear-bar.indeterminate {
45
+ width: 30%;
46
+ animation: linear-indeterminate 1.5s infinite;
47
+ }
48
+
49
+ @keyframes linear-indeterminate {
50
+ 0% {
51
+ margin-left: -30%;
52
+ }
53
+ 50% {
54
+ margin-left: 50%;
55
+ }
56
+ 100% {
57
+ margin-left: 100%;
58
+ }
59
+ }
60
+
61
+ /* Circular Progress */
62
+ .circular {
63
+ display: inline-block;
64
+ width: 48px;
65
+ height: 48px;
66
+ }
67
+
68
+ .circular-svg {
69
+ transform: rotate(-90deg);
70
+ width: 100%;
71
+ height: 100%;
72
+ }
73
+
74
+ .circular-bg {
75
+ fill: none;
76
+ stroke: var(--rel-colors-gray-border);
77
+ stroke-width: 3;
78
+ }
79
+
80
+ .circular-progress {
81
+ fill: none;
82
+ stroke: var(--rel-colors-black);
83
+ stroke-width: 3;
84
+ stroke-linecap: round;
85
+ transition: stroke-dashoffset 0.35s;
86
+ transform: rotate(0deg);
87
+ transform-origin: center;
88
+ }
89
+
90
+ /* Circular Indeterminate Spinner */
91
+ .spinner {
92
+ animation: rotate 2s linear infinite;
93
+ }
94
+
95
+ .spinner-path {
96
+ stroke: var(--rel-colors-black);
97
+ stroke-linecap: round;
98
+ animation: dash 1.5s ease-in-out infinite;
99
+ }
100
+
101
+ @keyframes rotate {
102
+ 100% {
103
+ transform: rotate(360deg);
104
+ }
105
+ }
106
+
107
+ @keyframes dash {
108
+ 0% {
109
+ stroke-dasharray: 1, 150;
110
+ stroke-dashoffset: 0;
111
+ }
112
+ 50% {
113
+ stroke-dasharray: 90, 150;
114
+ stroke-dashoffset: -35;
115
+ }
116
+ 100% {
117
+ stroke-dasharray: 90, 150;
118
+ stroke-dashoffset: -124;
119
+ }
120
+ }
121
+ `;
122
+
123
+ private renderLinearDeterminate() {
124
+ return html`
125
+ <div class="linear-track">
126
+ <div class="linear-bar" style="width: ${this.value}%"></div>
127
+ </div>
128
+ `;
129
+ }
130
+
131
+ private renderLinearIndeterminate() {
132
+ return html`
133
+ <div class="linear-track">
134
+ <div class="linear-bar indeterminate"></div>
135
+ </div>
136
+ `;
137
+ }
138
+
139
+ private renderCircularDeterminate() {
140
+ const offset = this.circumference - (this.value / 100) * this.circumference;
141
+
142
+ return html`
143
+ <div class="circular">
144
+ <svg viewBox="0 0 36 36" class="circular-svg">
145
+ <circle class="circular-bg" cx="18" cy="18" r="15.9155" />
146
+ <circle
147
+ class="circular-progress"
148
+ cx="18"
149
+ cy="18"
150
+ r="15.9155"
151
+ stroke-dasharray="${this.circumference}"
152
+ stroke-dashoffset="${offset}" />
153
+ </svg>
154
+ </div>
155
+ `;
156
+ }
157
+
158
+ private renderCircularIndeterminate() {
159
+ return html`
160
+ <div class="circular">
161
+ <svg viewBox="0 0 50 50" class="spinner">
162
+ <circle class="spinner-path" cx="25" cy="25" r="20" fill="none" stroke-width="4" />
163
+ </svg>
164
+ </div>
165
+ `;
166
+ }
167
+
168
+ render() {
169
+ switch (this.mode) {
170
+ case "linear-determinate":
171
+ return this.renderLinearDeterminate();
172
+ case "linear-indeterminate":
173
+ return this.renderLinearIndeterminate();
174
+ case "circular-determinate":
175
+ return this.renderCircularDeterminate();
176
+ case "circular-indeterminate":
177
+ return this.renderCircularIndeterminate();
178
+ default:
179
+ return this.renderLinearDeterminate();
180
+ }
181
+ }
182
+ }