ngx-strata 0.3.0 → 0.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 (49) hide show
  1. package/assets/icons/check.svg +1 -0
  2. package/assets/styles/components/accordion.scss +12 -1
  3. package/assets/styles/components/action-menu.scss +1 -1
  4. package/assets/styles/components/avatar.scss +48 -9
  5. package/assets/styles/components/badge.scss +134 -0
  6. package/assets/styles/components/button.scss +45 -0
  7. package/assets/styles/components/checkbox.scss +10 -2
  8. package/assets/styles/components/file-upload.scss +113 -0
  9. package/assets/styles/components/image-cropper.scss +201 -0
  10. package/assets/styles/components/input-field.scss +39 -9
  11. package/assets/styles/components/item.scss +1 -1
  12. package/assets/styles/components/modal.scss +106 -1
  13. package/assets/styles/components/notification.scss +29 -0
  14. package/assets/styles/components/otp.scss +132 -0
  15. package/assets/styles/components/pagination.scss +13 -3
  16. package/assets/styles/components/progress.scss +2 -2
  17. package/assets/styles/components/radio.scss +3 -2
  18. package/assets/styles/components/segmented-control.scss +43 -11
  19. package/assets/styles/components/select.scss +29 -6
  20. package/assets/styles/components/slider.scss +30 -2
  21. package/assets/styles/components/stepper.scss +378 -0
  22. package/assets/styles/components/table.scss +1 -1
  23. package/assets/styles/components/tabs.scss +1 -1
  24. package/assets/styles/components/toggle.scss +1 -0
  25. package/assets/styles/components/tooltip.scss +9 -6
  26. package/assets/styles/public-api.scss +6 -1
  27. package/dist/strata/strata.css +1 -1
  28. package/fesm2022/ngx-strata.mjs +3058 -1455
  29. package/fesm2022/ngx-strata.mjs.map +1 -1
  30. package/package.json +1 -1
  31. package/skills/ngx-strata/SKILL.md +43 -18
  32. package/skills/ngx-strata/components/accordion.md +9 -7
  33. package/skills/ngx-strata/components/avatar.md +22 -10
  34. package/skills/ngx-strata/components/badge.md +54 -0
  35. package/skills/ngx-strata/components/checkbox.md +30 -5
  36. package/skills/ngx-strata/components/file-upload.md +50 -0
  37. package/skills/ngx-strata/components/icon.md +12 -7
  38. package/skills/ngx-strata/components/image-cropper.md +83 -0
  39. package/skills/ngx-strata/components/modal.md +180 -31
  40. package/skills/ngx-strata/components/notification.md +50 -14
  41. package/skills/ngx-strata/components/otp.md +68 -0
  42. package/skills/ngx-strata/components/pagination.md +6 -3
  43. package/skills/ngx-strata/components/radio.md +30 -10
  44. package/skills/ngx-strata/components/segmented-control.md +40 -19
  45. package/skills/ngx-strata/components/single-select.md +47 -15
  46. package/skills/ngx-strata/components/slider.md +35 -6
  47. package/skills/ngx-strata/components/stepper.md +64 -0
  48. package/skills/ngx-strata/components/toggle.md +27 -6
  49. package/types/ngx-strata.d.ts +707 -338
@@ -0,0 +1,378 @@
1
+ st-stepper {
2
+ --st-stepper-indicator-size: 32px;
3
+ --st-stepper-indicator-font-size: var(--st-font-md, 14px);
4
+ --st-stepper-indicator-font-weight: 600;
5
+ --st-stepper-title-font-size: var(--st-font-md, 14px);
6
+ --st-stepper-desc-font-size: var(--st-font-sm, 12px);
7
+
8
+ --st-stepper-line-thickness: 2px;
9
+ --st-stepper-line-color: var(--st-color-border-subtle);
10
+ --st-stepper-line-active-color: var(--st-color-text-primary);
11
+
12
+ --st-stepper-future-indicator-bg: var(--st-color-bg-default);
13
+ --st-stepper-future-indicator-border: var(--st-color-border-strong);
14
+ --st-stepper-future-indicator-color: var(--st-color-text-tertiary);
15
+ --st-stepper-future-title-color: var(--st-color-text-secondary);
16
+ --st-stepper-future-desc-color: var(--st-color-text-tertiary);
17
+
18
+ --st-stepper-current-indicator-bg: var(--st-color-text-primary);
19
+ --st-stepper-current-indicator-border: var(--st-color-text-primary);
20
+ --st-stepper-current-indicator-color: var(--st-color-text-inverse);
21
+ --st-stepper-current-halo: 0 0 0 3px var(--st-color-border-default);
22
+ --st-stepper-current-title-color: var(--st-color-text-primary);
23
+ --st-stepper-current-desc-color: var(--st-color-text-secondary);
24
+
25
+ --st-stepper-completed-indicator-bg: var(--st-color-control-bg);
26
+ --st-stepper-completed-indicator-border: var(--st-color-text-primary);
27
+ --st-stepper-completed-indicator-color: var(--st-color-text-primary);
28
+ --st-stepper-completed-title-color: var(--st-color-text-primary);
29
+ --st-stepper-completed-desc-color: var(--st-color-text-secondary);
30
+
31
+ --st-stepper-error-indicator-bg: var(--st-color-feedback-error-subtle);
32
+ --st-stepper-error-indicator-border: var(--st-color-feedback-error-default);
33
+ --st-stepper-error-indicator-color: var(--st-color-feedback-error-text);
34
+ --st-stepper-error-title-color: var(--st-color-feedback-error-text);
35
+ --st-stepper-error-desc-color: var(--st-color-text-tertiary);
36
+
37
+ display: block;
38
+ box-sizing: border-box;
39
+ width: 100%;
40
+
41
+ &.st-size-sm {
42
+ --st-stepper-indicator-size: 24px;
43
+ --st-stepper-indicator-font-size: var(--st-font-xs, 10px);
44
+ --st-stepper-title-font-size: var(--st-font-sm, 12px);
45
+ --st-stepper-desc-font-size: var(--st-font-xs, 10px);
46
+ }
47
+
48
+ &.st-size-md {
49
+ --st-stepper-indicator-size: 32px;
50
+ --st-stepper-indicator-font-size: var(--st-font-md, 14px);
51
+ --st-stepper-title-font-size: var(--st-font-md, 14px);
52
+ --st-stepper-desc-font-size: var(--st-font-sm, 12px);
53
+ }
54
+
55
+ &.st-theme-brand {
56
+ --st-stepper-line-active-color: var(--st-color-accent-default);
57
+
58
+ --st-stepper-current-indicator-bg: var(--st-color-accent-default);
59
+ --st-stepper-current-indicator-border: var(--st-color-accent-default);
60
+ --st-stepper-current-indicator-color: var(--st-color-text-on-accent);
61
+ --st-stepper-current-halo: 0 0 0 3px var(--st-color-accent-subtle);
62
+
63
+ --st-stepper-completed-indicator-bg: var(--st-color-accent-subtle);
64
+ --st-stepper-completed-indicator-border: var(--st-color-accent-default);
65
+ --st-stepper-completed-indicator-color: var(--st-color-accent-text);
66
+ }
67
+
68
+ &.st-theme-success {
69
+ --st-stepper-line-active-color: var(--st-color-feedback-success-default);
70
+
71
+ --st-stepper-current-indicator-bg: var(--st-color-feedback-success-default);
72
+ --st-stepper-current-indicator-border: var(--st-color-feedback-success-default);
73
+ --st-stepper-current-indicator-color: var(--st-color-text-inverse);
74
+ --st-stepper-current-halo: 0 0 0 3px var(--st-color-feedback-success-subtle);
75
+
76
+ --st-stepper-completed-indicator-bg: var(--st-color-feedback-success-subtle);
77
+ --st-stepper-completed-indicator-border: var(--st-color-feedback-success-default);
78
+ --st-stepper-completed-indicator-color: var(--st-color-feedback-success-text);
79
+ }
80
+
81
+ &.st-theme-info {
82
+ --st-stepper-line-active-color: var(--st-color-feedback-info-default);
83
+
84
+ --st-stepper-current-indicator-bg: var(--st-color-feedback-info-default);
85
+ --st-stepper-current-indicator-border: var(--st-color-feedback-info-default);
86
+ --st-stepper-current-indicator-color: var(--st-color-text-inverse);
87
+ --st-stepper-current-halo: 0 0 0 3px var(--st-color-feedback-info-subtle);
88
+
89
+ --st-stepper-completed-indicator-bg: var(--st-color-feedback-info-subtle);
90
+ --st-stepper-completed-indicator-border: var(--st-color-feedback-info-default);
91
+ --st-stepper-completed-indicator-color: var(--st-color-feedback-info-text);
92
+ }
93
+
94
+ &.st-theme-warning {
95
+ --st-stepper-line-active-color: var(--st-color-feedback-warning-default);
96
+
97
+ --st-stepper-current-indicator-bg: var(--st-color-feedback-warning-default);
98
+ --st-stepper-current-indicator-border: var(--st-color-feedback-warning-default);
99
+ --st-stepper-current-indicator-color: var(--st-color-neutral-900);
100
+ --st-stepper-current-halo: 0 0 0 3px var(--st-color-feedback-warning-subtle);
101
+
102
+ --st-stepper-completed-indicator-bg: var(--st-color-feedback-warning-subtle);
103
+ --st-stepper-completed-indicator-border: var(--st-color-feedback-warning-default);
104
+ --st-stepper-completed-indicator-color: var(--st-color-feedback-warning-text);
105
+ }
106
+
107
+ &.st-theme-danger {
108
+ --st-stepper-line-active-color: var(--st-color-feedback-error-default);
109
+
110
+ --st-stepper-current-indicator-bg: var(--st-color-feedback-error-default);
111
+ --st-stepper-current-indicator-border: var(--st-color-feedback-error-default);
112
+ --st-stepper-current-indicator-color: var(--st-color-text-inverse);
113
+ --st-stepper-current-halo: 0 0 0 3px var(--st-color-feedback-error-subtle);
114
+
115
+ --st-stepper-completed-indicator-bg: var(--st-color-feedback-error-subtle);
116
+ --st-stepper-completed-indicator-border: var(--st-color-feedback-error-default);
117
+ --st-stepper-completed-indicator-color: var(--st-color-feedback-error-text);
118
+ }
119
+
120
+ .st-stepper-list {
121
+ margin: 0;
122
+ padding: 0;
123
+ list-style: none;
124
+ box-sizing: border-box;
125
+ }
126
+
127
+ &.st-orientation-horizontal .st-stepper-list {
128
+ display: flex;
129
+ flex-direction: row;
130
+ width: 100%;
131
+ }
132
+
133
+ &.st-orientation-vertical .st-stepper-list {
134
+ display: flex;
135
+ flex-direction: column;
136
+ width: 100%;
137
+ }
138
+ }
139
+
140
+ st-step {
141
+ display: block;
142
+ box-sizing: border-box;
143
+
144
+ &.st-orientation-horizontal {
145
+ flex: 1;
146
+ min-width: 0;
147
+
148
+ .st-step-wrapper {
149
+ display: flex;
150
+ flex-direction: column;
151
+ align-items: center;
152
+ width: 100%;
153
+ }
154
+
155
+ .st-step-top {
156
+ display: flex;
157
+ align-items: center;
158
+ width: 100%;
159
+ align-self: stretch;
160
+ position: relative;
161
+ }
162
+
163
+ .st-step-line {
164
+ flex: 1;
165
+ height: var(--st-stepper-line-thickness);
166
+ background-color: var(--st-stepper-line-color);
167
+ transition: background-color 0.2s ease;
168
+ margin: 0;
169
+
170
+ &.st-line-active {
171
+ background-color: var(--st-stepper-line-active-color);
172
+ }
173
+ }
174
+
175
+ .st-step-line-after {
176
+ margin-right: -1px;
177
+ }
178
+
179
+ .st-step-content {
180
+ display: flex;
181
+ flex-direction: column;
182
+ align-items: center;
183
+ text-align: center;
184
+ margin-top: var(--st-size-xs, 8px);
185
+ width: 100%;
186
+ padding: 0 var(--st-size-xxs, 4px);
187
+ box-sizing: border-box;
188
+ }
189
+
190
+ &.st-step-first {
191
+ .st-step-wrapper {
192
+ align-items: flex-start;
193
+ }
194
+
195
+ .st-step-content {
196
+ align-items: flex-start;
197
+ text-align: left;
198
+ padding-left: 0;
199
+ }
200
+ }
201
+
202
+ &.st-step-last {
203
+ .st-step-wrapper {
204
+ align-items: flex-end;
205
+ }
206
+
207
+ .st-step-content {
208
+ align-items: flex-end;
209
+ text-align: right;
210
+ padding-right: 0;
211
+ }
212
+ }
213
+
214
+ .st-step-title {
215
+ font-size: var(--st-stepper-title-font-size);
216
+ line-height: 1.3;
217
+ font-weight: 500;
218
+ transition: color 0.2s ease, font-size 0.2s ease;
219
+ word-break: break-word;
220
+ }
221
+
222
+ .st-step-description {
223
+ font-size: var(--st-stepper-desc-font-size);
224
+ line-height: 1.3;
225
+ margin-top: var(--st-size-xxxxs, 2px);
226
+ transition: color 0.2s ease, font-size 0.2s ease;
227
+ word-break: break-word;
228
+ }
229
+ }
230
+
231
+ &.st-orientation-vertical {
232
+ width: 100%;
233
+
234
+ .st-step-wrapper {
235
+ display: flex;
236
+ flex-direction: row;
237
+ width: 100%;
238
+ }
239
+
240
+ .st-step-vertical-left {
241
+ display: flex;
242
+ flex-direction: column;
243
+ align-items: center;
244
+ flex: 0 0 auto;
245
+ margin-right: var(--st-size-sm, 16px);
246
+ position: relative;
247
+ }
248
+
249
+ .st-step-vertical-line {
250
+ width: var(--st-stepper-line-thickness);
251
+ flex: 1;
252
+ min-height: var(--st-size-xl, 32px);
253
+ background-color: var(--st-stepper-line-color);
254
+ transition: background-color 0.2s ease;
255
+
256
+ &.st-line-active {
257
+ background-color: var(--st-stepper-line-active-color);
258
+ }
259
+ }
260
+
261
+ .st-step-content {
262
+ flex: 1;
263
+ min-width: 0;
264
+ padding-bottom: var(--st-size-md, 24px);
265
+ }
266
+
267
+ &.st-step-last .st-step-content {
268
+ padding-bottom: 0;
269
+ }
270
+
271
+ .st-step-header {
272
+ display: flex;
273
+ flex-direction: column;
274
+ min-height: var(--st-stepper-indicator-size);
275
+ justify-content: center;
276
+ }
277
+
278
+ .st-step-title {
279
+ font-size: var(--st-stepper-title-font-size);
280
+ line-height: 1.3;
281
+ font-weight: 500;
282
+ transition: color 0.2s ease;
283
+ }
284
+
285
+ .st-step-description {
286
+ font-size: var(--st-stepper-desc-font-size);
287
+ line-height: 1.3;
288
+ margin-top: var(--st-size-xxxxs, 2px);
289
+ transition: color 0.2s ease;
290
+ }
291
+
292
+ .st-step-body {
293
+ margin-top: var(--st-size-xs, 8px);
294
+ }
295
+ }
296
+
297
+ .st-step-indicator {
298
+ flex: 0 0 auto;
299
+ width: var(--st-stepper-indicator-size);
300
+ height: var(--st-stepper-indicator-size);
301
+ border-radius: var(--st-border-radius-full, 9999px);
302
+ display: flex;
303
+ align-items: center;
304
+ justify-content: center;
305
+ font-size: var(--st-stepper-indicator-font-size);
306
+ font-weight: var(--st-stepper-indicator-font-weight);
307
+ box-sizing: border-box;
308
+ transition: all 0.2s ease;
309
+ z-index: 1;
310
+ font-variant-numeric: tabular-nums;
311
+ }
312
+
313
+ &.st-state-future {
314
+ .st-step-indicator {
315
+ background-color: var(--st-stepper-future-indicator-bg);
316
+ border: 1px solid var(--st-stepper-future-indicator-border);
317
+ color: var(--st-stepper-future-indicator-color);
318
+ }
319
+
320
+ .st-step-title {
321
+ color: var(--st-stepper-future-title-color);
322
+ }
323
+
324
+ .st-step-description {
325
+ color: var(--st-stepper-future-desc-color);
326
+ }
327
+ }
328
+
329
+ &.st-state-current {
330
+ .st-step-indicator {
331
+ background-color: var(--st-stepper-current-indicator-bg);
332
+ border: 1px solid var(--st-stepper-current-indicator-border);
333
+ color: var(--st-stepper-current-indicator-color);
334
+ box-shadow: var(--st-stepper-current-halo);
335
+ }
336
+
337
+ .st-step-title {
338
+ color: var(--st-stepper-current-title-color);
339
+ font-weight: 600;
340
+ }
341
+
342
+ .st-step-description {
343
+ color: var(--st-stepper-current-desc-color);
344
+ }
345
+ }
346
+
347
+ &.st-state-completed {
348
+ .st-step-indicator {
349
+ background-color: var(--st-stepper-completed-indicator-bg);
350
+ border: 1px solid var(--st-stepper-completed-indicator-border);
351
+ color: var(--st-stepper-completed-indicator-color);
352
+ }
353
+
354
+ .st-step-title {
355
+ color: var(--st-stepper-completed-title-color);
356
+ }
357
+
358
+ .st-step-description {
359
+ color: var(--st-stepper-completed-desc-color);
360
+ }
361
+ }
362
+
363
+ &.st-state-error {
364
+ .st-step-indicator {
365
+ background-color: var(--st-stepper-error-indicator-bg);
366
+ border: 1px solid var(--st-stepper-error-indicator-border);
367
+ color: var(--st-stepper-error-indicator-color);
368
+ }
369
+
370
+ .st-step-title {
371
+ color: var(--st-stepper-error-title-color);
372
+ }
373
+
374
+ .st-step-description {
375
+ color: var(--st-stepper-error-desc-color);
376
+ }
377
+ }
378
+ }
@@ -62,7 +62,7 @@ st-card {
62
62
  }
63
63
 
64
64
  &:not(.outline) table.st-table {
65
- --st-table-background-color-even-row: var(--st-bg-light);
65
+ --st-table-background-color-even-row: var(--st-color-bg-raised);
66
66
  --st-table-divider-color: var(--st-border-muted);
67
67
  }
68
68
  }
@@ -37,7 +37,7 @@ st-tabs {
37
37
 
38
38
  &:focus-visible {
39
39
  outline: none;
40
- background-color: var(--st-bg-light);
40
+ background-color: var(--st-color-bg-raised);
41
41
  border-radius: var(--st-border-radius-sm);
42
42
  }
43
43
 
@@ -12,6 +12,7 @@ st-toggle {
12
12
 
13
13
  display: inline-flex;
14
14
  align-items: center;
15
+ min-height: var(--st-interactive-element-height-md);
15
16
  gap: var(--st-toggle-gap);
16
17
  cursor: pointer;
17
18
  user-select: none;
@@ -1,4 +1,7 @@
1
1
  .st-tooltip {
2
+ --st-tooltip-bg: var(--st-color-bg-inverse);
3
+ --st-tooltip-color: var(--st-color-text-inverse);
4
+
2
5
  /* Float on top of the UI */
3
6
  position: absolute;
4
7
 
@@ -8,8 +11,8 @@
8
11
  left: 0;
9
12
  visibility: hidden;
10
13
  border-radius: 8px;
11
- background-color: var(--st-bg-contrast-dark);
12
- color: var(--st-text-contrast);
14
+ background-color: var(--st-tooltip-bg);
15
+ color: var(--st-tooltip-color);
13
16
  box-shadow:
14
17
  0px 4px 16px 0px rgba(0, 0, 0, 0.1),
15
18
  0px 2px 4px 0px rgba(0, 0, 0, 0.05);
@@ -39,14 +42,14 @@
39
42
  &.st-tooltip-arrow-top-end {
40
43
  border-left: 6px solid transparent;
41
44
  border-right: 6px solid transparent;
42
- border-top: 6px solid var(--st-bg-contrast-dark);
45
+ border-top: 6px solid var(--st-tooltip-bg, var(--st-color-bg-inverse));
43
46
  }
44
47
  &.st-tooltip-arrow-bottom,
45
48
  &.st-tooltip-arrow-bottom-start,
46
49
  &.st-tooltip-arrow-bottom-end {
47
50
  border-left: 6px solid transparent;
48
51
  border-right: 6px solid transparent;
49
- border-bottom: 6px solid var(--st-bg-contrast-dark);
52
+ border-bottom: 6px solid var(--st-tooltip-bg, var(--st-color-bg-inverse));
50
53
  top: -6px;
51
54
  }
52
55
  &.st-tooltip-arrow-left,
@@ -54,7 +57,7 @@
54
57
  &.st-tooltip-arrow-left-end {
55
58
  border-top: 6px solid transparent;
56
59
  border-bottom: 6px solid transparent;
57
- border-left: 6px solid var(--st-bg-contrast-dark);
60
+ border-left: 6px solid var(--st-tooltip-bg, var(--st-color-bg-inverse));
58
61
  right: -6px;
59
62
  }
60
63
  &.st-tooltip-arrow-right,
@@ -62,7 +65,7 @@
62
65
  &.st-tooltip-arrow-right-end {
63
66
  border-top: 6px solid transparent;
64
67
  border-bottom: 6px solid transparent;
65
- border-right: 6px solid var(--st-bg-contrast-dark);
68
+ border-right: 6px solid var(--st-tooltip-bg, var(--st-color-bg-inverse));
66
69
  left: -6px;
67
70
  }
68
71
  }
@@ -16,6 +16,7 @@
16
16
  @use "./components/alert";
17
17
  @use "./components/avatar";
18
18
  @use "./components/accordion";
19
+ @use "./components/badge";
19
20
  @use "./components/button";
20
21
  @use "./components/card";
21
22
  @use "./components/checkbox";
@@ -42,4 +43,8 @@
42
43
  @use "./components/toggle";
43
44
  @use "./components/tooltip";
44
45
  @use "./components/breadcrumb";
45
- @use "./components/sidemenu";
46
+ @use "./components/sidemenu";
47
+ @use "./components/otp";
48
+ @use "./components/stepper";
49
+ @use "./components/file-upload";
50
+ @use "./components/image-cropper";