@3dsource/source-ui-native 3.2.1 → 3.2.4

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 (34) hide show
  1. package/fesm2022/3dsource-source-ui-native.mjs +10 -10
  2. package/fesm2022/3dsource-source-ui-native.mjs.map +1 -1
  3. package/package.json +1 -1
  4. package/styles/elements/_src-badge.scss +116 -0
  5. package/styles/elements/_src-banner.scss +101 -0
  6. package/styles/elements/_src-button.scss +1 -1
  7. package/styles/elements/_src-checkbox.scss +16 -5
  8. package/styles/elements/_src-divider.scss +14 -0
  9. package/styles/elements/_src-form.scss +2 -2
  10. package/styles/elements/_src-hint.scss +37 -0
  11. package/styles/elements/_src-icon-button.scss +1 -1
  12. package/styles/elements/_src-input.scss +1 -1
  13. package/styles/elements/_src-label.scss +1 -1
  14. package/styles/elements/_src-list.scss +2 -2
  15. package/styles/elements/_src-modal.scss +5 -5
  16. package/styles/elements/_src-popover.scss +5 -5
  17. package/styles/elements/_src-radio.scss +9 -2
  18. package/styles/elements/_src-select.scss +1 -1
  19. package/styles/elements/_src-textarea.scss +3 -3
  20. package/styles/elements/elements.scss +4 -0
  21. package/styles/source-ui-native.css +444 -182
  22. package/styles/source-ui-native.css.map +1 -1
  23. package/styles/source-ui-native.min.css +1 -1
  24. package/styles/variables/color/dark.scss +31 -30
  25. package/styles/variables/color/light.scss +31 -30
  26. package/styles/variables/layout/_lg.scss +17 -20
  27. package/styles/variables/layout/_md.scss +16 -19
  28. package/styles/variables/layout/_sm.scss +17 -20
  29. package/styles/variables/layout/_xl.scss +16 -19
  30. package/styles/variables/primitives/primitives.scss +33 -22
  31. package/styles/variables/ui/_lg.scss +7 -7
  32. package/styles/variables/ui/_md.scss +7 -7
  33. package/styles/variables/ui/_sm.scss +7 -7
  34. package/styles/variables/ui/_xl.scss +7 -7
@@ -0,0 +1,101 @@
1
+ .src-banner {
2
+ --srcBannerPadding: var(--src-layout-padding-const-sm, 8px)
3
+ var(--src-layout-padding-const-md, 12px);
4
+ --srcBannerBackgroundColor: var(
5
+ --src-ui-status-light-neutral,
6
+ rgba(148, 163, 184, 0.24)
7
+ );
8
+ --srcBannerBorderWidth: 1px;
9
+ --srcBannerBorderColor: var(
10
+ --src-border-container-light,
11
+ rgba(148, 163, 184, 0.16)
12
+ );
13
+ --srcBannerTextColor: var(--src-text-body-secondary, #4b5563);
14
+ --srcBannerIconColor: var(--src-icon-default);
15
+ --srcBannerBorderRadius: var(--src-layout-radius-const-rounded-sm, 6px);
16
+ display: flex;
17
+ gap: var(--src-layout-gap-const-sm, 8px);
18
+ width: 100%;
19
+ padding: var(--srcBannerPadding);
20
+ border: var(--srcBannerBorderWidth) solid var(--srcBannerBorderColor);
21
+ border-radius: var(--srcBannerBorderRadius);
22
+ background: var(--srcBannerBackgroundColor);
23
+ color: var(--srcBannerTextColor);
24
+ font-size: var(--src-font-size-xs, 12px);
25
+ font-weight: normal;
26
+ line-height: var(--src-font-line-xs, 16px);
27
+
28
+ .src-banner__icon-prefix,
29
+ .src-banner__icon-postfix {
30
+ width: var(--src-icon-size);
31
+ height: var(--src-icon-size);
32
+ color: var(--srcBannerIconColor);
33
+ flex-shrink: 0;
34
+ & > * {
35
+ width: 100%;
36
+ height: 100%;
37
+ }
38
+ }
39
+
40
+ .src-banner__content {
41
+ flex-grow: 1;
42
+ }
43
+
44
+ .src-banner__title {
45
+ color: var(--srcBannerTextColor);
46
+
47
+ font-family: var(--src-font-family-header, Inter);
48
+ font-size: var(--src-font-size-tech, 9px);
49
+ font-style: normal;
50
+ font-weight: 600;
51
+ line-height: var(--src-font-line-xs, 16px);
52
+ letter-spacing: var(--src-font-spacing-tech, 1.2px);
53
+ text-transform: uppercase;
54
+ margin-bottom: var(--src-layout-gap-const-xs, 4px);
55
+ }
56
+
57
+ p {
58
+ margin: 0;
59
+ }
60
+
61
+ &--context-info {
62
+ --srcBannerBackgroundColor: var(
63
+ --src-ui-status-light-info,
64
+ rgba(1, 123, 255, 0.24)
65
+ );
66
+ --srcBannerBorderColor: var(--src-ui-status-basic-info, #017bff);
67
+ --srcBannerIconColor: var(--src-icon-info);
68
+ --srcBannerTextColor: var(--src-text-body-accent, #016fe6);
69
+ }
70
+
71
+ &--context-success {
72
+ --srcBannerBackgroundColor: var(
73
+ --src-ui-status-light-success,
74
+ rgba(22, 163, 74, 0.16)
75
+ );
76
+ --srcBannerBorderColor: var(--src-ui-status-basic-success, #22c55e);
77
+ --srcBannerIconColor: var(--src-icon-success);
78
+ --srcBannerTextColor: var(--src-text-ui-success-main, #16a34a);
79
+ }
80
+
81
+ &--context-critical,
82
+ &--context-error {
83
+ --srcBannerBackgroundColor: var(
84
+ --src-ui-status-light-critical,
85
+ rgba(239, 68, 68, 0.16)
86
+ );
87
+ --srcBannerBorderColor: var(--src-ui-status-basic-critical, #f24122);
88
+ --srcBannerIconColor: var(--src-icon-error);
89
+ --srcBannerTextColor: var(--src-text-body-destruct, #c5280c);
90
+ }
91
+
92
+ &--context-warning {
93
+ --srcBannerBackgroundColor: var(
94
+ --src-ui-status-light-warning,
95
+ rgba(245, 168, 15, 0.24)
96
+ );
97
+ --srcBannerBorderColor: var(--src-ui-status-basic-warning, #f59b18);
98
+ --srcBannerIconColor: var(--src-icon-warning);
99
+ --srcBannerTextColor: var(--src-text-ui-warning-main, #d97706);
100
+ }
101
+ }
@@ -275,7 +275,7 @@
275
275
  --src-ui-secondary-default-hover,
276
276
  rgba(148, 163, 184, 0.08)
277
277
  );
278
- --srcButtonIconCOlor: var(--src-icon-hover, #111827);
278
+ --srcButtonIconColor: var(--src-icon-hover, #111827);
279
279
  }
280
280
  }
281
281
 
@@ -4,7 +4,7 @@
4
4
  --srcCheckboxBorderWidth: 2px;
5
5
  display: flex;
6
6
  align-items: center;
7
- gap: 4px;
7
+ gap: var(--src-gap-sm, 4px);
8
8
  cursor: pointer;
9
9
 
10
10
  input[type='checkbox'] {
@@ -12,9 +12,9 @@
12
12
  appearance: none;
13
13
  width: var(--srcCheckboxSize);
14
14
  height: var(--srcCheckboxSize);
15
- padding: 2px;
15
+ padding: var(--src-space-0-5, 2px);
16
16
  border-radius: var(--src-border-rounded-xs, var(--src-space-1));
17
- background-color: #fff;
17
+ background-color: var(--src-surface-container-main, #fff);
18
18
  border: var(--srcCheckboxBorderWidth) solid var(--srcCheckboxBorderColor);
19
19
  cursor: pointer;
20
20
 
@@ -23,8 +23,8 @@
23
23
  }
24
24
 
25
25
  &:checked {
26
- background-color: #007bff;
27
- --srcCheckboxBorderColor: #007bff;
26
+ background-color: var(--src-ui-accent-default, #017bff);
27
+ --srcCheckboxBorderColor: var(--src-ui-accent-default, #017bff);
28
28
 
29
29
  &::after {
30
30
  content: '';
@@ -53,6 +53,17 @@
53
53
  box-shadow: 0 0 0 var(--src-shadow-focused, 4px)
54
54
  var(--src-shadow-light, rgba(148, 163, 184, 0.16));
55
55
  }
56
+
57
+ &:disabled,
58
+ &[disabled] {
59
+ --srcCheckboxBorderColor: var(
60
+ --src-ui-accent-disabled,
61
+ rgba(148, 163, 184, 0.24)
62
+ );
63
+ background-color: var(--src-ui-input-disabled, rgba(148, 163, 184, 0.16));
64
+ cursor: default;
65
+ pointer-events: none;
66
+ }
56
67
  }
57
68
 
58
69
  .src-checkbox__label {
@@ -0,0 +1,14 @@
1
+ .src-divider {
2
+ --srcDividerColor: var(--src-border-container-basic, #e5e7eb);
3
+ --srcDividerThickness: 1px;
4
+ --srcDividerOffsetTop: 8px;
5
+ --srcDividerOffsetBottom: var(--srcDividerOffsetTop);
6
+ display: block;
7
+ width: 100%;
8
+ height: var(--srcDividerThickness);
9
+ margin-top: var(--srcDividerOffsetTop);
10
+ margin-bottom: var(--srcDividerOffsetBottom);
11
+ padding: 0;
12
+ background-color: var(--srcDividerColor);
13
+ border: none;
14
+ }
@@ -1,6 +1,6 @@
1
1
  .src-form {
2
- --srcFormRowGap: 16px;
3
- --srcFormItemsGap: 12px;
2
+ --srcFormRowGap: var(--src-layout-gap-const-lg, 16px);
3
+ --srcFormItemsGap: var(--src-layout-gap-const-md, 12px);
4
4
  --srcFormOffset: 0;
5
5
  width: 100%;
6
6
  display: flex;
@@ -0,0 +1,37 @@
1
+ .src-hint {
2
+ --srcHintColor: var(--src-color-icon-default, #6b7280);
3
+ --srcHintFontSize: var(--src-text-fontSize, 12px);
4
+ --srcHintLineHeight: var(--src-text-lineHeight, 16px);
5
+ --srcHintPadding: var(--src-gap-md, 8px) 0 0;
6
+ --srcHintIconSize: var(--src-icon-size, 16px);
7
+
8
+ position: relative;
9
+ color: var(--srcHintColor);
10
+ font-size: var(--srcHintFontSize);
11
+ font-style: normal;
12
+ display: flex;
13
+ font-weight: 500;
14
+ padding: var(--srcHintPadding);
15
+ margin: 0;
16
+ line-height: var(--srcHintLineHeight);
17
+
18
+ .src-hint__icon {
19
+ width: var(--srcHintIconSize);
20
+ height: var(--srcHintIconSize);
21
+ margin-right: var(--src-gap-md, 4px);
22
+ color: currentColor;
23
+ }
24
+
25
+ &--error,
26
+ &--context-error {
27
+ --srcHintColor: var(--src-text-body-destruct, #c5280c);
28
+ }
29
+
30
+ &--context-info {
31
+ --srcHintColor: var(--src-text-body-accent, #016fe6);
32
+ }
33
+
34
+ &--context-success {
35
+ --srcHintColor: var(--src-text-body-success, #16a34a);
36
+ }
37
+ }
@@ -258,7 +258,7 @@
258
258
  --src-ui-secondary-default-hover,
259
259
  rgba(148, 163, 184, 0.08)
260
260
  );
261
- --srcButtonIconCOlor: var(--src-icon-hover, #111827);
261
+ --srcButtonIconColor: var(--src-icon-hover, #111827);
262
262
  }
263
263
  }
264
264
 
@@ -22,7 +22,7 @@
22
22
  var(--src-padding-sm, var(--src-space-3));
23
23
  font-family: var(--src-font-family-body);
24
24
  font-style: normal;
25
- font-weight: var(--src-font-weight-Medium, 500);
25
+ font-weight: var(--src-font-weight-medium, 500);
26
26
  background: var(--srcInputFieldBg);
27
27
  border: var(--srcInputFieldBorder);
28
28
  box-shadow: none;
@@ -3,7 +3,7 @@
3
3
  --srcLabelLineHeight: var(--src-font-line-xs, 16px);
4
4
  --srcLabelFontWeight: 600;
5
5
  --srcLabelColor: var(--src-text-body-lable, #6b7280);
6
- --srcLabelMarginBottom: 4px;
6
+ --srcLabelMarginBottom: var(--src-gap-sm, 4px);
7
7
  --srcLabelLetterSpacing: var(--src-font-spacing-tech, 1.2px);
8
8
 
9
9
  display: block;
@@ -3,10 +3,10 @@
3
3
  width: 100%;
4
4
  margin: 0;
5
5
  list-style: none;
6
- padding: 8px;
6
+ padding: var(--src-padding-xs, 8px);
7
7
 
8
8
  .src-list__item {
9
- margin-bottom: 4px;
9
+ margin-bottom: var(--src-gap-sm, 4px);
10
10
  }
11
11
 
12
12
  &--compact {
@@ -55,7 +55,7 @@
55
55
  padding: var(--srcModalBodyPadding);
56
56
  overflow: auto;
57
57
  scrollbar-width: thin;
58
- scrollbar-color: var(--src-color-border-default) transparent;
58
+ scrollbar-color: var(--src-border-container-basic) transparent;
59
59
  .src-modal__title,
60
60
  .src-modal__scroll-box {
61
61
  grid-column: 1 / -1;
@@ -84,7 +84,7 @@
84
84
  }
85
85
 
86
86
  &::-webkit-scrollbar-thumb {
87
- background-color: var(--src-color-border-default);
87
+ background-color: var(--src-border-container-basic);
88
88
  border-radius: 10px;
89
89
  }
90
90
  }
@@ -99,14 +99,14 @@
99
99
  var(--src-layout-padding-const-xl, 24px);
100
100
  width: 100%;
101
101
  border-top: var(--srcModalFooterBorder);
102
- gap: 8px;
102
+ gap: var(--src-layout-gap-const-sm, 8px);
103
103
 
104
104
  @media (max-width: 767px) {
105
105
  flex-direction: column-reverse;
106
106
  .src-modal__footer-group {
107
107
  width: 100%;
108
108
  }
109
- .src-modal__footer-group src-button {
109
+ .src-modal__footer-group .src-button {
110
110
  flex-grow: 1;
111
111
 
112
112
  .src-button {
@@ -122,7 +122,7 @@
122
122
 
123
123
  .src-modal__footer-group {
124
124
  display: flex;
125
- gap: 10px;
125
+ gap: var(--src-layout-gap-const-md, 12px);
126
126
  }
127
127
 
128
128
  .src-modal__title {
@@ -9,7 +9,7 @@
9
9
  --srcPopoverTitleLineHeight: var(--src-font-line-base);
10
10
  --srcPopoverTitleColor: var(--src-color-text-default);
11
11
  --srcPopoverBodyPadding: 20px;
12
- --srcPopoverTitleBorder: 1px solid var(--src-color-border-default, #e5e7eb);
12
+ --srcPopoverTitleBorder: 1px solid var(--src-border-container-basic, #e5e7eb);
13
13
  display: grid;
14
14
  grid-template-columns: minmax(0, 1fr);
15
15
  grid-template-rows: auto minmax(0, 1fr) auto;
@@ -26,7 +26,7 @@
26
26
  width: var(--srcPopoverWidth);
27
27
  overflow: auto;
28
28
  scrollbar-width: thin;
29
- scrollbar-color: var(--src-color-border-default) transparent;
29
+ scrollbar-color: var(--src-border-container-basic) transparent;
30
30
 
31
31
  &::-webkit-scrollbar {
32
32
  width: 4px;
@@ -37,11 +37,11 @@
37
37
  }
38
38
 
39
39
  &::-webkit-scrollbar-thumb {
40
- background-color: var(--src-color-border-default);
40
+ background-color: var(--src-border-container-basic);
41
41
  border-radius: 10px;
42
42
  }
43
43
  .src-list {
44
- src-list-item:last-child {
44
+ .src-list__item:last-child {
45
45
  margin-bottom: 0;
46
46
  }
47
47
  }
@@ -49,7 +49,7 @@
49
49
  }
50
50
 
51
51
  .src-popover-panel--mobile {
52
- src-popover {
52
+ .src-popover {
53
53
  width: 100%;
54
54
  }
55
55
  .src-popover {
@@ -21,7 +21,7 @@
21
21
  .src-radio {
22
22
  display: flex;
23
23
  align-items: center;
24
- gap: 4px;
24
+ gap: var(--src-gap-sm, 4px);
25
25
  cursor: pointer;
26
26
 
27
27
  input[type='radio'] {
@@ -30,7 +30,7 @@
30
30
  width: var(--srcRadioSize);
31
31
  height: var(--srcRadioSize);
32
32
  border-radius: 50%;
33
- background-color: #fff;
33
+ background-color: var(--src-surface-container-main, #fff);
34
34
  border: var(--srcRadioBorderWidth) solid var(--srcRadioBorderColor);
35
35
  cursor: pointer;
36
36
 
@@ -47,11 +47,18 @@
47
47
  }
48
48
  }
49
49
 
50
+ &:focus-visible {
51
+ outline: none;
52
+ box-shadow: var(--srcRadioFocusRing);
53
+ }
54
+
50
55
  &[disabled] {
51
56
  --srcRadioBorderColor: var(
52
57
  --src-ui-accent-disabled,
53
58
  rgba(148, 163, 184, 0.24)
54
59
  );
60
+ cursor: default;
61
+ pointer-events: none;
55
62
  }
56
63
  }
57
64
 
@@ -30,7 +30,7 @@
30
30
  var(--src-padding-sm, var(--src-space-3));
31
31
  font-family: var(--src-font-family-body);
32
32
  font-style: normal;
33
- font-weight: var(--src-font-weight-Medium, 500);
33
+ font-weight: var(--src-font-weight-medium, 500);
34
34
  border: var(--srcSelectFieldBorder);
35
35
  background-color: var(--srcSelectFieldBg);
36
36
  background-image: url("data:image/svg+xml,%3Csvg width='8' height='5' viewBox='0 0 8 5' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.40573 4.3L0.805725 1.7C0.489058 1.38333 0.418392 1.021 0.593725 0.613C0.768392 0.204333 1.08073 0 1.53073 0H6.68072C7.13072 0 7.44306 0.204333 7.61772 0.613C7.79306 1.021 7.72239 1.38333 7.40573 1.7L4.80572 4.3C4.70572 4.4 4.59739 4.475 4.48073 4.525C4.36406 4.575 4.23906 4.6 4.10573 4.6C3.97239 4.6 3.84739 4.575 3.73073 4.525C3.61406 4.475 3.50573 4.4 3.40573 4.3Z' fill='%236B7280'/%3E%3C/svg%3E%0A");
@@ -26,7 +26,7 @@
26
26
 
27
27
  font-family: var(--src-font-family-body);
28
28
  font-style: normal;
29
- font-weight: var(--src-font-weight-Medium, 500);
29
+ font-weight: var(--src-font-weight-medium, 500);
30
30
  font-size: var(--srcTexareaFontSize);
31
31
  line-height: var(--srcTexareaLineHeight);
32
32
  color: var(--srcTexareaFontColor);
@@ -86,7 +86,7 @@
86
86
  --srcTexareaMinHeight: 56px;
87
87
  }
88
88
 
89
- &.src-input--secondary {
89
+ &.src-textarea--secondary {
90
90
  --srcTexareaBg: var(--src-ui-input-secondary, rgba(148, 163, 184, 0.08));
91
91
  --srcTexareaBorder: none;
92
92
  --srcTexareaColor: var(--src-text-ui-secondary-main, #111827);
@@ -96,7 +96,7 @@
96
96
  --srcTexareaBorder: none;
97
97
  }
98
98
  }
99
- &.src-input--ghost {
99
+ &.src-textarea--ghost {
100
100
  --srcTexareaBg: transparent;
101
101
  --srcTexareaBorder: none;
102
102
  --srcTexareaColor: var(--src-text-ui-secondary-main, #111827);
@@ -11,3 +11,7 @@
11
11
  @use './src-toggle';
12
12
  @use './src-modal';
13
13
  @use './src-popover';
14
+ @use './src-badge';
15
+ @use './src-banner';
16
+ @use './src-divider';
17
+ @use './src-hint';