@uxf/ui 11.104.0 → 11.106.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 (44) hide show
  1. package/css/avatar.css +19 -3
  2. package/css/badge.css +15 -6
  3. package/css/button-list.css +3 -1
  4. package/css/button.css +3 -1
  5. package/css/checkbox-button.css +79 -25
  6. package/css/checkbox-input.css +2 -3
  7. package/css/checkbox.css +49 -24
  8. package/css/color-radio-group.css +7 -3
  9. package/css/color-radio.css +29 -6
  10. package/css/date-picker.css +5 -2
  11. package/css/dropzone.css +9 -3
  12. package/css/error-message.css +4 -1
  13. package/css/file-input.css +30 -11
  14. package/css/flash-messages.css +2 -2
  15. package/css/form-component.css +5 -2
  16. package/css/image-gallery.css +65 -15
  17. package/css/input-basic.css +10 -4
  18. package/css/input-with-popover.css +15 -6
  19. package/css/input.css +69 -40
  20. package/css/label.css +7 -2
  21. package/css/list-item.css +14 -5
  22. package/css/loader.css +17 -6
  23. package/css/lozenge.css +2 -2
  24. package/css/menu.css +2 -2
  25. package/css/multi-combobox.css +0 -8
  26. package/css/multi-select.css +0 -10
  27. package/css/pagination.css +27 -16
  28. package/css/paper.css +3 -1
  29. package/css/radio-group.css +39 -13
  30. package/css/radio.css +45 -23
  31. package/css/raster-image.css +14 -5
  32. package/css/text-link.css +5 -1
  33. package/css/typography.css +30 -10
  34. package/date-picker/date-picker-decade.js +4 -2
  35. package/date-picker/date-picker.stories.js +1 -1
  36. package/date-range-picker/date-range-picker-decade.js +4 -2
  37. package/label/label.js +2 -1
  38. package/modal/README.md +64 -22
  39. package/modal/index.d.ts +1 -1
  40. package/modal/index.js +2 -2
  41. package/modal/modal-service.d.ts +3 -3
  42. package/modal/modal-service.js +5 -10
  43. package/modal/modal.stories.js +5 -5
  44. package/package.json +5 -5
@@ -1,6 +1,4 @@
1
1
  .uxf-flash-messages {
2
- @apply space-y-4;
3
-
4
2
  bottom: 0;
5
3
  display: flex;
6
4
  flex-direction: column;
@@ -14,6 +12,8 @@
14
12
  right: 0;
15
13
  z-index: theme("zIndex.flashMessage");
16
14
 
15
+ @apply space-y-4;
16
+
17
17
  &__permanent,
18
18
  &__dismissable {
19
19
  display: flex;
@@ -1,7 +1,10 @@
1
1
  .uxf-helper-text {
2
- @apply mt-1 text-xs text-gray-500;
2
+ color: theme("colors.gray.500");
3
+ margin-top: theme("spacing.1");
4
+
5
+ @apply text-xs;
3
6
 
4
7
  &.is-invalid {
5
- @apply text-error;
8
+ color: theme("colors.error.DEFAULT");
6
9
  }
7
10
  }
@@ -1,51 +1,93 @@
1
1
  .uxf-image-gallery {
2
- @apply z-imageGallery fixed inset-0 flex flex-col;
2
+ display: flex;
3
+ flex-direction: column;
4
+ inset: 0;
5
+ position: fixed;
6
+ z-index: theme("zIndex.imageGallery");
3
7
 
4
8
  &__content {
5
- @apply mx-auto max-h-[calc(100%-128px)] grow;
9
+ flex-grow: 1;
10
+ margin-inline: auto;
11
+ max-height: calc(100% - 128px);
6
12
  }
7
13
 
8
14
  &__inner {
9
- @apply container flex h-full items-center justify-center;
15
+ align-items: center;
16
+ display: flex;
17
+ height: 100%;
18
+ justify-content: center;
19
+
20
+ @apply container;
10
21
  }
11
22
 
12
23
  &__image {
13
- @apply z-1 w-full object-contain;
24
+ object-fit: contain;
25
+ width: 100%;
26
+ z-index: 1;
14
27
  }
15
28
 
16
29
  &__buttons {
17
- @apply container pointer-events-none absolute inset-0 z-10 flex items-center justify-between p-2;
30
+ align-items: center;
31
+ display: flex;
32
+ inset: 0;
33
+ justify-content: space-between;
34
+ padding: theme("spacing.2");
35
+ pointer-events: none;
36
+ position: absolute;
37
+ z-index: 10;
38
+
39
+ @apply container;
18
40
  }
19
41
 
20
42
  &__button {
21
- @apply pointer-events-auto rounded-full bg-black bg-opacity-50 p-3;
43
+ background-color: rgb(0 0 0 / 50%);
44
+ border-radius: 9999px;
45
+ padding: theme("spacing.3");
46
+ pointer-events: auto;
22
47
 
23
48
  &-icon {
24
- @apply h-8 w-8 text-white;
49
+ color: theme("colors.white");
50
+ height: theme("spacing.8");
51
+ width: theme("spacing.8");
25
52
  }
26
53
  }
27
54
 
28
55
  &__dots {
29
- @apply z-1 mx-auto flex h-[64px] items-center space-x-2 p-4;
56
+ @apply space-x-2;
57
+
58
+ align-items: center;
59
+ display: flex;
60
+ height: 64px;
61
+ margin-inline: auto;
62
+ padding: theme("spacing.4");
63
+ z-index: 1;
30
64
  }
31
65
 
32
66
  &__dot {
33
- @apply h-2 w-2 rounded-full bg-gray-500;
67
+ background-color: theme("colors.gray.500");
68
+ border-radius: 9999px;
69
+ height: theme("spacing.2");
70
+ width: theme("spacing.2");
34
71
 
35
72
  &--active {
36
- @apply bg-white;
73
+ background-color: theme("colors.white");
37
74
  }
38
75
  }
39
76
 
40
77
  &__close-button-wrapper {
41
- @apply z-1 ml-auto w-auto;
78
+ margin-left: auto;
79
+ width: auto;
80
+ z-index: 1;
42
81
  }
43
82
 
44
83
  &__close-button {
45
- @apply bg-black bg-opacity-50 p-5;
84
+ background-color: rgb(0 0 0 / 50%);
85
+ padding: theme("spacing.5");
46
86
 
47
87
  &-icon {
48
- @apply size-6 text-white;
88
+ color: theme("colors.white");
89
+ height: theme("spacing.6");
90
+ width: theme("spacing.6");
49
91
  }
50
92
 
51
93
  &-text {
@@ -54,10 +96,18 @@
54
96
  }
55
97
 
56
98
  &__custom-content {
57
- @apply absolute bottom-0 right-0 bg-gray-600 text-white;
99
+ background-color: theme("colors.gray.600");
100
+ bottom: 0;
101
+ color: theme("colors.white");
102
+ position: absolute;
103
+ right: 0;
58
104
  }
59
105
 
60
106
  &__backdrop {
61
- @apply absolute inset-0 bg-black bg-opacity-75 transition-opacity;
107
+ background-color: rgb(0 0 0 / 75%);
108
+ inset: 0;
109
+ position: absolute;
110
+
111
+ @apply transition-opacity;
62
112
  }
63
113
  }
@@ -1,18 +1,24 @@
1
1
  .uxf-input {
2
- @apply flex flex-row;
2
+ display: flex;
3
+ flex-direction: row;
3
4
  }
4
5
 
5
6
  .uxf-input__wrapper {
6
- @apply flex w-full flex-row;
7
+ display: flex;
8
+ flex-direction: row;
9
+ width: 100%;
7
10
  }
8
11
 
9
12
  .uxf-input__element {
10
- @apply w-full;
13
+ width: 100%;
11
14
  }
12
15
 
13
16
  .uxf-input__left-element,
14
17
  .uxf-input__right-element,
15
18
  .uxf-input__left-addon,
16
19
  .uxf-input__right-addon {
17
- @apply flex flex-row items-center whitespace-nowrap;
20
+ align-items: center;
21
+ display: flex;
22
+ flex-direction: row;
23
+ white-space: nowrap;
18
24
  }
@@ -1,31 +1,40 @@
1
1
  .uxf-input-with-popover {
2
2
  &__panel {
3
- @apply z-dropdown max-w-md rounded-md bg-white p-3 text-gray-800 shadow-lg ring-1 ring-black ring-opacity-5;
3
+ @apply ring-1 ring-black ring-opacity-5;
4
4
 
5
+ background-color: theme("colors.white");
6
+ border-radius: theme("borderRadius.md");
7
+ box-shadow: theme("boxShadow.lg");
8
+ color: theme("colors.gray.800");
9
+ max-width: theme("maxWidth.md");
5
10
  overflow-y: auto;
11
+ padding: theme("spacing.3");
12
+ z-index: theme("zIndex.dropdown");
6
13
 
7
14
  &:focus {
8
15
  outline: none;
9
16
  }
10
17
 
11
18
  :root .dark & {
12
- @apply bg-gray-800 text-white;
19
+ background-color: theme("colors.gray.800");
20
+ color: theme("colors.white");
13
21
  }
14
22
 
15
23
  &--bottom {
16
- @apply mt-1;
24
+ margin-top: theme("spacing.1");
17
25
  }
18
26
 
19
27
  &--top {
20
- @apply -mt-1;
28
+ margin-top: calc(-1 * theme("spacing.1"));
21
29
  }
22
30
  }
23
31
 
24
32
  &__trigger-element {
25
- @apply h-5 w-5 rounded-sm;
26
-
27
33
  align-items: center;
34
+ border-radius: theme("borderRadius.sm");
28
35
  display: inline-flex;
36
+ height: theme("spacing.5");
29
37
  justify-content: center;
38
+ width: theme("spacing.5");
30
39
  }
31
40
  }
package/css/input.css CHANGED
@@ -1,8 +1,12 @@
1
1
  .uxf-input {
2
- @apply rounded-md bg-white text-gray-900 shadow-sm;
2
+ background-color: theme("colors.white");
3
+ border-radius: theme("borderRadius.md");
4
+ box-shadow: theme("boxShadow.sm");
5
+ color: theme("colors.gray.900");
3
6
 
4
7
  :root .dark & {
5
- @apply bg-gray-900 text-gray-300;
8
+ background-color: theme("colors.gray.900");
9
+ color: theme("colors.gray.300");
6
10
  }
7
11
 
8
12
  &__arrow-icon {
@@ -16,17 +20,22 @@
16
20
  }
17
21
 
18
22
  &__element {
19
- @apply placeholder:text-lightLow bg-transparent;
20
-
21
23
  appearance: none;
24
+ background-color: transparent;
22
25
  outline: none;
23
26
 
27
+ &::placeholder {
28
+ color: theme("colors.lightLow");
29
+ }
30
+
24
31
  &.is-empty {
25
32
  color: theme("colors.lightLow");
26
33
  }
27
34
 
28
35
  :root .dark & {
29
- @apply placeholder:text-darkLow;
36
+ &::placeholder {
37
+ color: theme("colors.darkLow");
38
+ }
30
39
 
31
40
  &.is-empty {
32
41
  color: theme("colors.darkLow");
@@ -40,75 +49,86 @@
40
49
 
41
50
  &__left-element,
42
51
  &__right-element {
43
- @apply text-lightLow;
52
+ color: theme("colors.lightLow");
44
53
 
45
54
  :root .dark & {
46
- @apply text-darkLow;
55
+ color: theme("colors.darkLow");
47
56
  }
48
57
  }
49
58
 
50
59
  &__left-element {
51
- @apply mr-2;
60
+ margin-right: theme("spacing.2");
52
61
  }
53
62
 
54
63
  &__right-element {
55
- @apply ml-2 space-x-2;
64
+ @apply space-x-2;
65
+
66
+ margin-left: theme("spacing.2");
56
67
  }
57
68
 
58
69
  &__left-addon,
59
70
  &__right-addon {
60
- @apply border border-gray-200 bg-gray-100;
71
+ background-color: theme("colors.gray.100");
72
+ border: 1px solid theme("colors.gray.200");
61
73
 
62
74
  :root .dark & {
63
- @apply border-gray-700 bg-gray-800;
75
+ background-color: theme("colors.gray.800");
76
+ border-color: theme("colors.gray.700");
64
77
  }
65
78
 
66
79
  &--text {
67
- @apply px-2;
80
+ padding-inline: theme("spacing.2");
68
81
  }
69
82
  }
70
83
 
71
84
  &__left-addon {
72
- @apply rounded-l-md border-r-0;
85
+ border-radius: theme("borderRadius.md") 0 0 theme("borderRadius.md");
86
+ border-right-width: 0;
73
87
  }
74
88
 
75
89
  &__right-addon {
76
- @apply rounded-r-md border-l-0;
90
+ border-left-width: 0;
91
+ border-radius: 0 theme("borderRadius.md") theme("borderRadius.md") 0;
77
92
  }
78
93
 
79
94
  &__wrapper {
80
- @apply rounded-md border border-gray-200 px-3;
95
+ border: 1px solid theme("colors.gray.200");
96
+ border-radius: theme("borderRadius.md");
97
+ padding-inline: theme("spacing.3");
81
98
 
82
99
  :root .dark & {
83
- @apply border-gray-700;
100
+ border-color: theme("colors.gray.700");
84
101
  }
85
102
  }
86
103
 
87
104
  &__remove-button {
88
- @apply rounded-sm;
89
-
90
105
  align-items: center;
106
+ border-radius: theme("borderRadius.sm");
91
107
  display: inline-flex;
92
108
  flex-shrink: 0;
93
109
  justify-content: center;
94
110
 
95
111
  &-inner {
96
- @apply size-3.5 rounded-full bg-gray-300;
97
-
98
112
  align-items: center;
113
+ background-color: theme("colors.gray.300");
114
+ border-radius: 9999px;
99
115
  display: flex;
116
+ height: theme("spacing[3.5]");
100
117
  justify-content: center;
118
+ width: theme("spacing[3.5]");
101
119
 
102
120
  :root .dark & {
103
- @apply bg-gray-600;
121
+ background-color: theme("colors.gray.600");
104
122
  }
105
123
  }
106
124
 
107
125
  &-icon {
108
- @apply size-2 text-white;
126
+ color: theme("colors.white");
127
+ height: theme("spacing.2");
128
+ width: theme("spacing.2");
109
129
 
110
130
  :root .dark & {
111
- @apply text-darkMedium;
131
+ color: theme("colors.darkMedium");
112
132
  }
113
133
  }
114
134
  }
@@ -139,33 +159,38 @@
139
159
 
140
160
  &--has-right-addon {
141
161
  .uxf-input__wrapper {
142
- @apply rounded-r-none;
162
+ border-bottom-right-radius: 0;
163
+ border-top-right-radius: 0;
143
164
  }
144
165
  }
145
166
 
146
167
  &--has-left-addon {
147
168
  .uxf-input__wrapper {
148
- @apply rounded-l-none;
169
+ border-bottom-left-radius: 0;
170
+ border-top-left-radius: 0;
149
171
  }
150
172
  }
151
173
 
152
174
  &.is-focused {
153
175
  .uxf-input__wrapper {
154
- @apply border-primary ring-primary ring-1 ring-inset ring-offset-0;
176
+ @apply ring-primary ring-1 ring-inset ring-offset-0;
177
+
178
+ border-color: theme("colors.primary.DEFAULT");
155
179
 
156
180
  :root .dark & {
157
- @apply border-primary ring-primary;
181
+ @apply ring-primary;
182
+
183
+ border-color: theme("colors.primary.DEFAULT");
158
184
  }
159
185
  }
160
186
  }
161
187
 
162
188
  &.is-disabled {
163
- @apply bg-gray-100;
164
-
189
+ background-color: theme("colors.gray.100");
165
190
  cursor: not-allowed;
166
191
 
167
192
  :root .dark & {
168
- @apply bg-gray-800;
193
+ background-color: theme("colors.gray.800");
169
194
  }
170
195
 
171
196
  .uxf-input__element {
@@ -187,10 +212,10 @@
187
212
  .uxf-input__wrapper,
188
213
  .uxf-input__left-addon,
189
214
  .uxf-input__right-addon {
190
- @apply border-gray-200;
215
+ border-color: theme("colors.gray.200");
191
216
 
192
217
  :root .dark & {
193
- @apply border-gray-700;
218
+ border-color: theme("colors.gray.700");
194
219
  }
195
220
  }
196
221
  }
@@ -198,33 +223,37 @@
198
223
  &.is-invalid {
199
224
  &.is-focused {
200
225
  .uxf-input__wrapper {
201
- @apply border-error ring-error;
226
+ @apply ring-error;
227
+
228
+ border-color: theme("colors.error.DEFAULT");
202
229
 
203
230
  :root .dark & {
204
- @apply border-error ring-error;
231
+ @apply ring-error;
232
+
233
+ border-color: theme("colors.error.DEFAULT");
205
234
  }
206
235
  }
207
236
  }
208
237
 
209
238
  .uxf-input__wrapper {
210
- @apply border-error placeholder:text-error-300;
239
+ border-color: theme("colors.error.DEFAULT");
211
240
 
212
241
  .uxf-input__left-element,
213
242
  .uxf-input__right-element {
214
- @apply text-error;
243
+ color: theme("colors.error.DEFAULT");
215
244
  }
216
245
 
217
246
  .uxf-input__element {
218
- @apply text-error placeholder:text-error border-gray-200;
247
+ border-color: theme("colors.gray.200");
219
248
 
220
- &.is-empty {
249
+ &:not(.is-empty) {
221
250
  color: theme("colors.error.DEFAULT");
222
251
  }
223
252
 
224
253
  :root .dark & {
225
- @apply text-error placeholder:text-error border-gray-700;
254
+ border-color: theme("colors.gray.700");
226
255
 
227
- &.is-empty {
256
+ &:not(.is-empty) {
228
257
  color: theme("colors.error.DEFAULT");
229
258
  }
230
259
  }
package/css/label.css CHANGED
@@ -1,8 +1,13 @@
1
1
  .uxf-label {
2
- @apply mb-0.5 block text-sm font-medium text-gray-900;
2
+ color: theme("colors.gray.900");
3
+ display: block;
4
+ font-weight: 500;
5
+ margin-bottom: 2px;
6
+
7
+ @apply text-sm;
3
8
 
4
9
  :root .dark & {
5
- @apply text-white;
10
+ color: theme("colors.white");
6
11
  }
7
12
 
8
13
  &--hidden {
package/css/list-item.css CHANGED
@@ -1,24 +1,33 @@
1
1
  .uxf-list-item {
2
- @apply is-hoverable:opacity-75 focus-visible:before:border-primary relative flex min-h-[64px] grow justify-between space-x-3 px-5 py-4 outline-none transition-opacity before:absolute before:inset-0 before:rounded-lg focus-visible:before:border-2;
2
+ @apply is-hoverable:opacity-75 focus-visible:before:border-primary space-x-3 transition-opacity before:absolute before:inset-0 before:rounded-lg focus-visible:before:border-2;
3
+
4
+ display: flex;
5
+ flex-grow: 1;
6
+ justify-content: space-between;
7
+ min-height: 64px;
8
+ outline: none;
9
+ padding-block: theme("spacing.4");
10
+ padding-inline: theme("spacing.5");
11
+ position: relative;
3
12
 
4
13
  :root .dark & {
5
14
  @apply focus-visible:before:border-primary;
6
15
  }
7
16
 
8
17
  &__inner {
9
- @apply w-full;
18
+ width: 100%;
10
19
  }
11
20
 
12
21
  &__end-elements-wrapper,
13
22
  &__end-icon-wrapper {
14
- @apply shrink-0;
23
+ flex-shrink: 0;
15
24
  }
16
25
 
17
26
  .uxf-list-item__end-icon-wrapper {
18
- @apply text-gray-300;
27
+ color: theme("colors.gray.300");
19
28
 
20
29
  :root .dark & {
21
- @apply text-gray-600;
30
+ color: theme("colors.gray.600");
22
31
  }
23
32
  }
24
33
  }
package/css/loader.css CHANGED
@@ -5,23 +5,34 @@
5
5
  }
6
6
 
7
7
  .uxf-loader {
8
- @apply inline-block rounded-full border-r-transparent border-t-current;
9
-
10
8
  animation: spinner 1.2s linear infinite;
9
+ border-radius: 9999px;
10
+ border-right-color: transparent;
11
+ border-top-color: currentcolor;
12
+ display: inline-block;
11
13
 
12
14
  :root .dark & {
13
- @apply text-white;
15
+ color: theme("colors.white");
14
16
  }
15
17
 
16
18
  &--size-default {
17
- @apply size-12 border-r-4 border-t-4;
19
+ border-right-width: 4px;
20
+ border-top-width: 4px;
21
+ height: theme("spacing.12");
22
+ width: theme("spacing.12");
18
23
  }
19
24
 
20
25
  &--size-lg {
21
- @apply size-24 border-r-8 border-t-8;
26
+ border-right-width: 8px;
27
+ border-top-width: 8px;
28
+ height: theme("spacing.24");
29
+ width: theme("spacing.24");
22
30
  }
23
31
 
24
32
  &--size-sm {
25
- @apply size-6 border-r-2 border-t-2;
33
+ border-right-width: 2px;
34
+ border-top-width: 2px;
35
+ height: theme("spacing.6");
36
+ width: theme("spacing.6");
26
37
  }
27
38
  }
package/css/lozenge.css CHANGED
@@ -8,13 +8,13 @@
8
8
  padding: 0 4px;
9
9
 
10
10
  &__text {
11
+ @apply truncate;
12
+
11
13
  color: var(--color);
12
14
  font-size: 0.625em;
13
15
  font-weight: theme("fontWeight.semibold");
14
16
  letter-spacing: -0.02em;
15
17
  text-transform: uppercase;
16
-
17
- @apply truncate;
18
18
  }
19
19
 
20
20
  &--variant-default {
package/css/menu.css CHANGED
@@ -56,10 +56,10 @@
56
56
  }
57
57
 
58
58
  .uxf-menu-item__label {
59
+ @apply truncate;
60
+
59
61
  flex-grow: 1;
60
62
  text-align: left;
61
-
62
- @apply truncate;
63
63
  }
64
64
 
65
65
  .uxf-menu-item__open-icon {
@@ -76,16 +76,8 @@
76
76
  .uxf-multi-combobox__input {
77
77
  color: theme("colors.error.DEFAULT");
78
78
 
79
- &::placeholder {
80
- color: currentcolor;
81
- }
82
-
83
79
  :root .dark & {
84
80
  color: theme("colors.error.DEFAULT");
85
-
86
- &::placeholder {
87
- color: currentcolor;
88
- }
89
81
  }
90
82
  }
91
83
  }
@@ -100,16 +100,6 @@
100
100
  margin-top: 7px;
101
101
  }
102
102
 
103
- &.is-invalid {
104
- .uxf-multi-select__input--is-empty {
105
- color: theme("colors.error.DEFAULT");
106
-
107
- :root .dark & {
108
- color: theme("colors.error.DEFAULT");
109
- }
110
- }
111
- }
112
-
113
103
  &__dropdown-item {
114
104
  .uxf-checkbox {
115
105
  margin-top: theme("spacing.1");