ngx-strata 0.5.0 → 0.5.1

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.
@@ -35,6 +35,10 @@
35
35
  border-radius: var(--st-border-radius-sm, 4px);
36
36
  outline-offset: 2px;
37
37
 
38
+ st-badge {
39
+ flex-shrink: 0;
40
+ }
41
+
38
42
  &:focus-visible {
39
43
  outline: 2px solid var(--st-color-accent-default);
40
44
  }
@@ -0,0 +1,254 @@
1
+ st-number-stepper {
2
+ --st-number-stepper-bg-color: var(--st-color-bg-raised);
3
+ --st-number-stepper-bg-hover-color: var(--st-color-bg-raised);
4
+ --st-number-stepper-text-color: var(--st-color-text-primary);
5
+ --st-number-stepper-border-color: var(--st-border-muted);
6
+ --st-number-stepper-opacity-disabled: 0.55;
7
+ --st-number-stepper-height: var(--st-interactive-element-height-md);
8
+ --st-number-stepper-font-size: var(--st-font-md);
9
+ --st-number-stepper-border-radius: var(--st-border-radius-md);
10
+ --st-number-stepper-btn-width: var(--st-interactive-element-height-md);
11
+ --st-number-stepper-btn-bg: transparent;
12
+ --st-number-stepper-btn-hover-bg: var(--st-color-control-bg-hover);
13
+ --st-number-stepper-btn-active-bg: var(--st-color-control-bg-active);
14
+ --st-number-stepper-btn-color: var(--st-color-text-secondary);
15
+ --st-number-stepper-btn-hover-color: var(--st-color-text-primary);
16
+ --st-number-stepper-btn-icon-size: var(--st-font-md);
17
+ --st-number-stepper-footer-font-size: var(--st-font-sm);
18
+
19
+ display: flex;
20
+ flex-direction: column;
21
+ box-sizing: border-box;
22
+
23
+ label {
24
+ margin-bottom: var(--st-space-2);
25
+ }
26
+
27
+ &.st-size-sm {
28
+ --st-number-stepper-height: var(--st-interactive-element-height-sm);
29
+ --st-number-stepper-font-size: var(--st-font-sm);
30
+ --st-number-stepper-border-radius: var(--st-border-radius-sm);
31
+ --st-number-stepper-btn-width: var(--st-interactive-element-height-sm);
32
+ --st-number-stepper-btn-icon-size: var(--st-font-sm);
33
+ --st-number-stepper-footer-font-size: var(--st-font-xs);
34
+ }
35
+
36
+ &.st-size-md {
37
+ --st-number-stepper-height: var(--st-interactive-element-height-md);
38
+ --st-number-stepper-font-size: var(--st-font-md);
39
+ --st-number-stepper-border-radius: var(--st-border-radius-md);
40
+ --st-number-stepper-btn-width: var(--st-interactive-element-height-md);
41
+ --st-number-stepper-btn-icon-size: var(--st-font-md);
42
+ --st-number-stepper-footer-font-size: var(--st-font-sm);
43
+ }
44
+
45
+ &.st-size-lg {
46
+ --st-number-stepper-height: var(--st-interactive-element-height-lg);
47
+ --st-number-stepper-font-size: var(--st-font-md);
48
+ --st-number-stepper-border-radius: var(--st-border-radius-md);
49
+ --st-number-stepper-btn-width: var(--st-interactive-element-height-lg);
50
+ --st-number-stepper-btn-icon-size: var(--st-font-lg);
51
+ --st-number-stepper-footer-font-size: var(--st-font-sm);
52
+ }
53
+
54
+ .st-stepper-wrapper {
55
+ position: relative;
56
+ display: flex;
57
+ flex-direction: row;
58
+ align-items: stretch;
59
+ box-sizing: border-box;
60
+ height: var(--st-number-stepper-height);
61
+ min-height: var(--st-number-stepper-height);
62
+ background-color: var(--st-number-stepper-bg-color);
63
+ border: 1px solid var(--st-number-stepper-border-color);
64
+ border-radius: var(--st-number-stepper-border-radius);
65
+ overflow: hidden;
66
+ transition:
67
+ border-color var(--st-transition-fast),
68
+ background-color var(--st-transition-fast),
69
+ box-shadow var(--st-transition-fast);
70
+
71
+ &:focus-within {
72
+ outline: var(--st-focus-ring-width) var(--st-focus-ring-style) var(--st-focus-ring-color);
73
+ outline-offset: var(--st-focus-ring-offset);
74
+ }
75
+
76
+ &:hover {
77
+ background-color: var(--st-number-stepper-bg-hover-color);
78
+ }
79
+ }
80
+
81
+ input {
82
+ border: none;
83
+ background: none;
84
+ flex: 1;
85
+ min-width: 0;
86
+ width: 100%;
87
+ height: 100%;
88
+ color: var(--st-number-stepper-text-color);
89
+ font-size: var(--st-number-stepper-font-size);
90
+ font-family: inherit;
91
+ font-variant-numeric: tabular-nums;
92
+ text-align: center;
93
+ padding: 0 var(--st-space-2);
94
+ box-sizing: border-box;
95
+
96
+ &:focus-visible {
97
+ outline: none;
98
+ }
99
+ }
100
+
101
+ .st-stepper-btn {
102
+ border: none;
103
+ background: var(--st-number-stepper-btn-bg);
104
+ color: var(--st-number-stepper-btn-color);
105
+ cursor: pointer;
106
+ display: inline-flex;
107
+ align-items: center;
108
+ justify-content: center;
109
+ padding: 0;
110
+ transition:
111
+ background-color var(--st-transition-fast),
112
+ color var(--st-transition-fast);
113
+ user-select: none;
114
+
115
+ &:hover:not(:disabled) {
116
+ background-color: var(--st-number-stepper-btn-hover-bg);
117
+ color: var(--st-number-stepper-btn-hover-color);
118
+ }
119
+
120
+ &:active:not(:disabled) {
121
+ background-color: var(--st-number-stepper-btn-active-bg);
122
+ }
123
+
124
+ &:disabled {
125
+ cursor: not-allowed;
126
+ opacity: 0.4;
127
+ }
128
+
129
+ &:focus-visible {
130
+ outline: none;
131
+ }
132
+ }
133
+
134
+ &.st-layout-split {
135
+ .st-stepper-btn {
136
+ width: var(--st-number-stepper-btn-width);
137
+ min-width: var(--st-number-stepper-btn-width);
138
+ height: 100%;
139
+
140
+ st-icon {
141
+ font-size: var(--st-number-stepper-btn-icon-size);
142
+ }
143
+ }
144
+
145
+ .st-stepper-btn-dec {
146
+ border-right: 1px solid var(--st-number-stepper-border-color);
147
+ }
148
+
149
+ .st-stepper-btn-inc {
150
+ border-left: 1px solid var(--st-number-stepper-border-color);
151
+ }
152
+ }
153
+
154
+ &.st-layout-stacked {
155
+ input {
156
+ text-align: left;
157
+ padding-left: var(--st-space-3);
158
+ }
159
+
160
+ .st-stepper-stacked-actions {
161
+ display: flex;
162
+ flex-direction: column;
163
+ width: calc(var(--st-number-stepper-btn-width) * 0.75);
164
+ min-width: calc(var(--st-number-stepper-btn-width) * 0.75);
165
+ border-left: 1px solid var(--st-number-stepper-border-color);
166
+ height: 100%;
167
+
168
+ .st-stepper-btn {
169
+ flex: 1;
170
+ width: 100%;
171
+ height: 50%;
172
+
173
+ st-icon {
174
+ font-size: calc(var(--st-number-stepper-btn-icon-size) * 0.75);
175
+ }
176
+
177
+ &.st-stepper-btn-inc {
178
+ border-bottom: 1px solid var(--st-number-stepper-border-color);
179
+ }
180
+ }
181
+ }
182
+ }
183
+
184
+ &.st-state-error,
185
+ &.st-error {
186
+ --st-number-stepper-border-color: var(--st-color-feedback-error-default);
187
+
188
+ .st-stepper-wrapper:focus-within {
189
+ outline-color: var(--st-color-feedback-error-default);
190
+ }
191
+ }
192
+
193
+ &.st-state-success {
194
+ --st-number-stepper-border-color: var(--st-color-feedback-success-default);
195
+
196
+ .st-stepper-wrapper:focus-within {
197
+ outline-color: var(--st-color-feedback-success-default);
198
+ }
199
+ }
200
+
201
+ &.st-state-warning {
202
+ --st-number-stepper-border-color: var(--st-color-feedback-warning-default);
203
+
204
+ .st-stepper-wrapper:focus-within {
205
+ outline-color: var(--st-color-feedback-warning-default);
206
+ }
207
+ }
208
+
209
+ .st-stepper-footer {
210
+ display: flex;
211
+ justify-content: space-between;
212
+ align-items: flex-start;
213
+ gap: var(--st-space-2);
214
+ margin-top: var(--st-space-1);
215
+ line-height: 1.25;
216
+ }
217
+
218
+ .st-stepper-message {
219
+ font-size: var(--st-number-stepper-footer-font-size);
220
+ color: var(--st-color-text-secondary);
221
+
222
+ &.st-message-error {
223
+ color: var(--st-color-feedback-error-text);
224
+ }
225
+
226
+ &.st-message-success {
227
+ color: var(--st-color-feedback-success-text);
228
+ }
229
+
230
+ &.st-message-warning {
231
+ color: var(--st-color-feedback-warning-text);
232
+ }
233
+ }
234
+
235
+ &.st-disabled,
236
+ &[disabled],
237
+ &[data-disabled='true'],
238
+ &:has(input:disabled),
239
+ &:has([aria-disabled='true']) {
240
+ cursor: not-allowed;
241
+ opacity: var(--st-number-stepper-opacity-disabled);
242
+ pointer-events: none;
243
+
244
+ .st-stepper-wrapper {
245
+ &:hover {
246
+ background-color: var(--st-number-stepper-bg-color);
247
+ }
248
+
249
+ &:focus-within {
250
+ outline: none;
251
+ }
252
+ }
253
+ }
254
+ }
@@ -0,0 +1,115 @@
1
+ st-skeleton {
2
+ --st-skeleton-bg: var(--st-color-skeleton-bg);
3
+ --st-skeleton-shimmer: var(--st-color-skeleton-shimmer);
4
+ --st-skeleton-radius: var(--st-border-radius-sm);
5
+ --st-skeleton-gap: var(--st-space-2);
6
+ --st-skeleton-height: 1.15em;
7
+ --st-skeleton-animation-duration: 1.6s;
8
+
9
+ display: block;
10
+ box-sizing: border-box;
11
+ width: 100%;
12
+
13
+ &.st-skeleton-xs {
14
+ --st-skeleton-height: 20px;
15
+ --st-skeleton-size: 20px;
16
+ }
17
+
18
+ &.st-skeleton-sm {
19
+ --st-skeleton-height: 32px;
20
+ --st-skeleton-size: 32px;
21
+ }
22
+
23
+ &.st-skeleton-md {
24
+ --st-skeleton-height: 48px;
25
+ --st-skeleton-size: 48px;
26
+ }
27
+
28
+ &.st-skeleton-lg {
29
+ --st-skeleton-height: 72px;
30
+ --st-skeleton-size: 72px;
31
+ }
32
+
33
+ &.st-skeleton-circular {
34
+ --st-skeleton-radius: var(--st-border-radius-full);
35
+ --st-skeleton-height: var(--st-skeleton-size, 48px);
36
+ display: inline-block;
37
+ width: auto;
38
+
39
+ .st-skeleton-bone {
40
+ width: var(--st-skeleton-height);
41
+ height: var(--st-skeleton-height);
42
+ aspect-ratio: 1 / 1;
43
+ }
44
+ }
45
+
46
+ &.st-skeleton-rectangular {
47
+ --st-skeleton-radius: var(--st-border-radius-md);
48
+ --st-skeleton-height: 120px;
49
+ }
50
+
51
+ &.st-skeleton-rounded {
52
+ --st-skeleton-radius: var(--st-border-radius-full);
53
+ --st-skeleton-height: var(--st-skeleton-size, 36px);
54
+ }
55
+
56
+ .st-skeleton-group {
57
+ display: flex;
58
+ flex-direction: column;
59
+ gap: var(--st-skeleton-gap);
60
+ width: 100%;
61
+ }
62
+
63
+ .st-skeleton-bone {
64
+ box-sizing: border-box;
65
+ width: 100%;
66
+ min-height: 8px;
67
+ height: var(--st-skeleton-height);
68
+ border-radius: var(--st-skeleton-radius);
69
+ background-color: var(--st-skeleton-bg);
70
+ }
71
+
72
+ &.st-skeleton-anim-shimmer .st-skeleton-bone {
73
+ background-image: linear-gradient(
74
+ 90deg,
75
+ var(--st-skeleton-bg) 0%,
76
+ var(--st-skeleton-shimmer) 50%,
77
+ var(--st-skeleton-bg) 100%
78
+ );
79
+ background-size: 200% 100%;
80
+ background-repeat: no-repeat;
81
+ animation: st-skeleton-shimmer var(--st-skeleton-animation-duration) ease-in-out infinite;
82
+ }
83
+
84
+ &.st-skeleton-anim-pulse .st-skeleton-bone {
85
+ animation: st-skeleton-pulse var(--st-skeleton-animation-duration) ease-in-out infinite;
86
+ }
87
+
88
+ &.st-skeleton-anim-none .st-skeleton-bone {
89
+ animation: none;
90
+ }
91
+
92
+ @media (prefers-reduced-motion: reduce) {
93
+ .st-skeleton-bone {
94
+ animation: none !important;
95
+ }
96
+ }
97
+ }
98
+
99
+ @keyframes st-skeleton-shimmer {
100
+ 0% {
101
+ background-position: 200% 0;
102
+ }
103
+ 100% {
104
+ background-position: -200% 0;
105
+ }
106
+ }
107
+
108
+ @keyframes st-skeleton-pulse {
109
+ 0%, 100% {
110
+ opacity: 1;
111
+ }
112
+ 50% {
113
+ opacity: 0.4;
114
+ }
115
+ }
@@ -27,6 +27,10 @@ st-action-menu-item {
27
27
  display: flex;
28
28
  align-items: center;
29
29
  height: auto;
30
+
31
+ st-badge {
32
+ flex-shrink: 0;
33
+ }
30
34
  }
31
35
 
32
36
  .item-start:not(:empty) {
@@ -153,6 +153,17 @@ st-input-field {
153
153
  &:focus-visible {
154
154
  outline: none;
155
155
  }
156
+
157
+ &[type='number'] {
158
+ appearance: textfield;
159
+ -moz-appearance: textfield;
160
+
161
+ &::-webkit-inner-spin-button,
162
+ &::-webkit-outer-spin-button {
163
+ -webkit-appearance: none;
164
+ margin: 0;
165
+ }
166
+ }
156
167
  }
157
168
 
158
169
  &.st-state-error,