@ship-ui/core 0.18.5 → 0.18.10

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.
@@ -11,9 +11,11 @@ $shipAccordion: true !default;
11
11
 
12
12
  display: flex;
13
13
  flex-direction: column;
14
- border: 1px solid var(--acc-bc);
14
+ border: var(--border-10);
15
+ border-color: var(--acc-bc);
15
16
  border-radius: var(--acc-s);
16
17
  overflow: hidden;
18
+ background: var(--base-1);
17
19
 
18
20
  &:empty {
19
21
  display: none;
@@ -24,11 +26,32 @@ $shipAccordion: true !default;
24
26
  --acc-f: var(--paragraph-40);
25
27
  }
26
28
 
29
+ &.type-b {
30
+ --acc-s: 0;
31
+ width: 100%;
32
+ height: 100%;
33
+ border: 0;
34
+ overflow: auto;
35
+
36
+ > details:last-child {
37
+ border-bottom: var(--border-10);
38
+ }
39
+ }
40
+
27
41
  details {
28
42
  width: 100%;
29
43
 
44
+ &.disabled {
45
+ opacity: 0.5;
46
+ pointer-events: none;
47
+
48
+ summary {
49
+ cursor: not-allowed;
50
+ }
51
+ }
52
+
30
53
  // Hide standard browser marker
31
- & > summary {
54
+ > summary {
32
55
  list-style: none;
33
56
 
34
57
  &::-webkit-details-marker {
@@ -36,7 +59,7 @@ $shipAccordion: true !default;
36
59
  }
37
60
  }
38
61
 
39
- summary {
62
+ > summary {
40
63
  display: flex;
41
64
  align-items: center;
42
65
  padding: var(--acc-pad);
@@ -45,7 +68,8 @@ $shipAccordion: true !default;
45
68
  transition: background-color 0.2s;
46
69
  font-weight: 500;
47
70
  font-size: var(--acc-f);
48
- border-bottom: 1px solid var(--acc-bc);
71
+ border-bottom: var(--border-10);
72
+ border-color: var(--acc-bc);
49
73
 
50
74
  &:focus-visible {
51
75
  outline: 2px solid var(--primary-8);
@@ -60,9 +84,14 @@ $shipAccordion: true !default;
60
84
  }
61
85
  }
62
86
 
87
+ &:last-child > summary {
88
+ border-bottom: 0;
89
+ }
90
+
63
91
  &[open] {
64
- summary {
65
- border-bottom: 1px solid var(--acc-bc);
92
+ > summary {
93
+ border-bottom: var(--border-10);
94
+ border-color: var(--acc-bc);
66
95
 
67
96
  sh-icon {
68
97
  transform: rotate(180deg);
@@ -70,7 +99,8 @@ $shipAccordion: true !default;
70
99
  }
71
100
 
72
101
  + details {
73
- border-top: 1px solid var(--acc-bc);
102
+ border-top: var(--border-10);
103
+ border-color: var(--acc-bc);
74
104
  }
75
105
  }
76
106
 
@@ -37,7 +37,7 @@ $shipBlueprint: true !default;
37
37
  .midpoint-div {
38
38
  position: absolute;
39
39
  background-color: var(--base-2);
40
- border: 1px solid var(--base-4);
40
+ border: var(--border-10);
41
41
  padding: p2r(8);
42
42
  gap: p2r(8);
43
43
  border-radius: var(--shape-2);
@@ -138,7 +138,7 @@ $shipBlueprint: true !default;
138
138
  align-items: center;
139
139
  justify-content: space-between;
140
140
  background-color: var(--base-2);
141
- border-bottom: 1px solid var(--base-4);
141
+ border-bottom: var(--border-10);
142
142
  cursor: grab;
143
143
  user-select: none;
144
144
 
@@ -194,7 +194,7 @@ $shipBlueprint: true !default;
194
194
  height: p2r(12);
195
195
  background-color: var(--bp-stroke-c);
196
196
  border-radius: 50%;
197
- border: 1px solid var(--base-8);
197
+ border: var(--border-20);
198
198
  cursor: pointer;
199
199
  position: relative;
200
200
  }
@@ -14,11 +14,13 @@ $shipButtonGroup: true !default;
14
14
  --btng-f: var(--paragraph-30);
15
15
 
16
16
  display: inline-flex;
17
- border: 1px solid var(--btng-bc);
17
+ border: var(--border-10);
18
+ border-color: var(--btng-bc);
18
19
  border-radius: var(--btng-s);
19
20
  height: var(--btng-h);
20
21
  background: var(--btng-bg);
21
22
  overflow: hidden;
23
+ position: relative;
22
24
 
23
25
  &.small {
24
26
  --btng-h: #{p2r(32)};
@@ -35,7 +37,7 @@ $shipButtonGroup: true !default;
35
37
  border: 0;
36
38
 
37
39
  button {
38
- border-radius: p2r(6);
40
+ border-radius: calc((var(--btng-s) / 3) * 2);
39
41
  border: 0;
40
42
 
41
43
  &:focus-visible {
@@ -60,6 +62,10 @@ $shipButtonGroup: true !default;
60
62
  }
61
63
  }
62
64
  }
65
+
66
+ &:after {
67
+ border-radius: calc((var(--btng-s) / 3) * 2);
68
+ }
63
69
  }
64
70
 
65
71
  button {
@@ -140,20 +146,20 @@ $shipButtonGroup: true !default;
140
146
  transition:
141
147
  left 0.175s ease-out,
142
148
  right 0.175s ease-out;
143
- border-radius: var(--btng-s-a);
144
- }
145
-
146
- &:not(.type-b):has(button:first-child.active) {
147
- &:after {
148
- --btng-s-a: #{p2r(4 0 0 4)};
149
- }
149
+ // border-radius: var(--btng-s-a);
150
150
  }
151
151
 
152
- &:not(.type-b):has(button:last-child.active) {
153
- &:after {
154
- --btng-s-a: #{p2r(0 4 4 0)};
155
- }
156
- }
152
+ // &:not(.type-b):has(button:first-child.active) {
153
+ // &:after {
154
+ // --btng-s-a: var(--btng-s) 0 0 var(--btng-s);
155
+ // }
156
+ // }
157
+
158
+ // &:not(.type-b):has(button:last-child.active) {
159
+ // &:after {
160
+ // --btng-s-a: 0 var(--btng-s) var(--btng-s) 0;
161
+ // }
162
+ // }
157
163
  }
158
164
  }
159
165
  }
@@ -15,7 +15,8 @@ $shipCard: true !default;
15
15
  padding: var(--card-p);
16
16
  position: relative;
17
17
  z-index: 0;
18
- border: 1px solid var(--card-bc);
18
+ border: var(--border-10);
19
+ border-color: var(--card-bc);
19
20
  box-shadow: var(--card-sh);
20
21
  border-radius: var(--shape-3);
21
22
  overflow: hidden;
@@ -82,7 +82,8 @@ $shipCheckbox: true !default;
82
82
  &.flat {
83
83
  &:not(:has(input:checked)):not(.active) .box {
84
84
  background: transparent;
85
- border: 1px solid var(--box-bc);
85
+ border: var(--border-10);
86
+ border-color: var(--box-bc);
86
87
  }
87
88
  }
88
89
 
@@ -43,6 +43,10 @@ $shipChipShadow: false !default;
43
43
  &.small {
44
44
  padding: p2r(0 6);
45
45
  }
46
+
47
+ &.xsmall {
48
+ padding: p2r(0 4);
49
+ }
46
50
  }
47
51
 
48
52
  sh-icon {
@@ -72,6 +76,21 @@ $shipChipShadow: false !default;
72
76
  }
73
77
  }
74
78
 
79
+ &.xsmall {
80
+ --chip-h: #{p2r(20)};
81
+
82
+ font: var(--paragraph-40B);
83
+ padding: p2r(0 6);
84
+
85
+ div {
86
+ gap: p2r(2);
87
+ }
88
+
89
+ sh-icon {
90
+ font-size: p2r(10);
91
+ }
92
+ }
93
+
75
94
  &[disabled] {
76
95
  opacity: 0.5;
77
96
  }
@@ -7,7 +7,7 @@ $shipColorPicker: true !default;
7
7
  position: relative;
8
8
  display: block;
9
9
  width: p2r(300);
10
- height: p2r(300);
10
+ aspect-ratio: 1 / 1;
11
11
 
12
12
  canvas {
13
13
  background-image:
@@ -26,13 +26,23 @@ $shipColorPicker: true !default;
26
26
  overflow: hidden;
27
27
  }
28
28
 
29
+ &.rgb {
30
+ border-radius: p2r(2);
31
+
32
+ // canvas {
33
+ // border-radius: p2r(2);
34
+ // }
35
+ }
36
+
29
37
  &.saturation:not(.vertical),
30
- &.hue:not(.vertical) {
38
+ &.hue:not(.vertical),
39
+ &.alpha:not(.vertical) {
31
40
  height: p2r(20);
32
- border-radius: var(--shape-2);
41
+ aspect-ratio: auto;
42
+ border-radius: p2r(2);
33
43
 
34
44
  canvas {
35
- border-radius: var(--shape-2);
45
+ border-radius: p2r(2);
36
46
  }
37
47
 
38
48
  .marker {
@@ -41,12 +51,15 @@ $shipColorPicker: true !default;
41
51
  }
42
52
 
43
53
  &.saturation.vertical,
44
- &.hue.vertical {
54
+ &.hue.vertical,
55
+ &.alpha.vertical {
45
56
  width: p2r(20);
46
- border-radius: var(--shape-2);
57
+ height: p2r(300);
58
+ aspect-ratio: auto;
59
+ border-radius: p2r(2);
47
60
 
48
61
  canvas {
49
- border-radius: var(--shape-2);
62
+ border-radius: p2r(2);
50
63
  }
51
64
 
52
65
  .marker {
@@ -55,12 +68,11 @@ $shipColorPicker: true !default;
55
68
  }
56
69
 
57
70
  canvas {
58
- width: calc(100% + 1px);
59
- height: calc(100% + 1px);
60
- transform: translate(-1px, -1px);
71
+ width: 100%;
72
+ height: 100%;
61
73
 
62
74
  border: 2px solid var(--base-1);
63
- outline: 1px solid var(--base-4);
75
+ outline: var(--border-10);
64
76
  }
65
77
 
66
78
  .marker {
@@ -75,4 +87,64 @@ $shipColorPicker: true !default;
75
87
  box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.3);
76
88
  }
77
89
  }
90
+
91
+ sh-color-picker-input {
92
+ display: flex;
93
+
94
+ sh-popover {
95
+ width: 100%;
96
+ }
97
+
98
+ [popoverContent] {
99
+ padding: p2r(12);
100
+ width: p2r(280);
101
+ display: flex;
102
+ flex-direction: column;
103
+ gap: p2r(8);
104
+ }
105
+
106
+ .input-container {
107
+ flex: 1 0;
108
+ display: flex;
109
+ align-items: center;
110
+ gap: p2r(4);
111
+ padding-right: p2r(8);
112
+
113
+ input {
114
+ margin-right: 0;
115
+ min-width: p2r(175);
116
+ }
117
+ }
118
+
119
+ .color-indicator {
120
+ position: relative;
121
+ width: p2r(24);
122
+ height: p2r(24);
123
+ border-radius: var(--shape-2);
124
+ border: var(--border-10);
125
+ overflow: hidden;
126
+
127
+ background-color: #fff;
128
+ background-image:
129
+ linear-gradient(45deg, #ccc 25%, transparent 25%), linear-gradient(-45deg, #ccc 25%, transparent 25%),
130
+ linear-gradient(45deg, transparent 75%, #ccc 75%), linear-gradient(-45deg, transparent 75%, #ccc 75%);
131
+ background-size: 8px 8px;
132
+ background-position:
133
+ 0 0,
134
+ 0 4px,
135
+ 4px -4px,
136
+ -4px 0px;
137
+
138
+ &::after {
139
+ content: '';
140
+ position: absolute;
141
+ inset: 0;
142
+ background: var(--indicator-color);
143
+ }
144
+ }
145
+
146
+ sh-color-picker {
147
+ width: 100%;
148
+ }
149
+ }
78
150
  }
@@ -10,7 +10,7 @@ $shipDialog: true !default;
10
10
  --dialog-s: var(--shape-2);
11
11
  --dialog-inner-s: var(--shape-2);
12
12
 
13
- border: 1px solid var(--base-4);
13
+ border: var(--border-10);
14
14
  background: transparent;
15
15
  border-radius: var(--dialog-s);
16
16
  box-shadow: var(--box-shadow-40);
@@ -32,7 +32,7 @@ $shipDialog: true !default;
32
32
 
33
33
  background: var(--base-3);
34
34
  padding: p2r(8);
35
- outline: 1px solid var(--base-4);
35
+ outline: var(--border-10);
36
36
  outline-offset: -1px;
37
37
  overflow: hidden;
38
38
 
@@ -116,7 +116,7 @@ $shipDialog: true !default;
116
116
 
117
117
  &.sticky {
118
118
  background-color: var(--dialog-bg);
119
- border-bottom: 1px solid var(--base-4);
119
+ border-bottom: var(--border-10);
120
120
  box-shadow: var(--box-shadow-35);
121
121
  position: sticky;
122
122
  top: 0;
@@ -141,7 +141,7 @@ $shipDialog: true !default;
141
141
 
142
142
  &.sticky {
143
143
  background-color: var(--dialog-bg);
144
- border-top: 1px solid var(--base-4);
144
+ border-top: var(--border-10);
145
145
  box-shadow: var(--box-shadow-35);
146
146
  position: sticky;
147
147
  bottom: 0;
@@ -174,7 +174,8 @@ $shipFormFieldShadow: false !default;
174
174
  .input-wrap {
175
175
  display: flex;
176
176
  align-items: center;
177
- border: 1px solid var(--ff-bc);
177
+ border: var(--border-10);
178
+ border-color: var(--ff-bc);
178
179
  border-radius: var(--ff-s);
179
180
  background: var(--ff-bg);
180
181
  box-shadow: var(--ff-bs);
@@ -26,7 +26,7 @@ $shipMenu: true !default;
26
26
  sh-popover .options {
27
27
  [title] {
28
28
  position: sticky;
29
- border-bottom: 1px solid var(--base-4);
29
+ border-bottom: var(--border-10);
30
30
  }
31
31
  }
32
32
 
@@ -74,7 +74,7 @@ $shipPopover: true !default;
74
74
  overflow: auto;
75
75
  z-index: 0;
76
76
  background-color: var(--base-1);
77
- border: 1px solid var(--base-4);
77
+ border: var(--border-10);
78
78
  border-radius: var(--shape-2);
79
79
  font: var(--paragraph-30);
80
80
  color: var(--base-8);
@@ -72,7 +72,7 @@ $shipProgressBar: true !default;
72
72
  }
73
73
 
74
74
  &.outlined {
75
- --pb-b: 1px solid var(--base-4);
75
+ --pb-b: var(--border-10);
76
76
  --pb-bg: var(--base-1);
77
77
 
78
78
  &:after {
@@ -105,7 +105,8 @@ $shipRadio: true !default;
105
105
  &.flat {
106
106
  &:not(:has(input:checked)):not(.active) .radio {
107
107
  background: transparent;
108
- border: 1px solid var(--radio-bc);
108
+ border: var(--border-10);
109
+ border-color: var(--radio-bc);
109
110
  }
110
111
  }
111
112
  }
@@ -27,15 +27,6 @@ $shipRangeSlider: true !default;
27
27
  width: 100%;
28
28
  font: var(--rs-f);
29
29
 
30
- &.thick {
31
- --rst-h: #{p2r(16)};
32
- --rst-s: var(--shape-2);
33
-
34
- .thumb {
35
- opacity: 0;
36
- }
37
- }
38
-
39
30
  &.sharp {
40
31
  --rst-s: #{p2r(2)};
41
32
  --rs-thumb-s: #{p2r(2)};
@@ -97,7 +88,7 @@ $shipRangeSlider: true !default;
97
88
  align-items: center;
98
89
  justify-content: center;
99
90
  width: 100%;
100
- height: 100%;
91
+ min-height: var(--rs-h);
101
92
  position: relative;
102
93
  gap: var(--rs-unit-g);
103
94
  }
@@ -159,6 +150,7 @@ $shipRangeSlider: true !default;
159
150
  position: absolute;
160
151
  top: p2r(-30);
161
152
  height: p2r(24);
153
+ min-width: p2r(24);
162
154
  border-radius: var(--shape-2);
163
155
  left: 50%;
164
156
  margin: auto;
@@ -169,19 +161,18 @@ $shipRangeSlider: true !default;
169
161
  white-space: nowrap;
170
162
  opacity: 0;
171
163
  transition: opacity 125ms linear;
172
- // transition-delay: 1s;
173
164
  user-select: none;
174
165
  pointer-events: none;
175
166
 
176
167
  &:after {
177
168
  content: '';
178
- border-top: p2r(6) solid var(--rs-thumb-arrow);
179
- border-left: p2r(6) solid transparent;
180
- border-right: p2r(6) solid transparent;
169
+ border-top: p2r(5) solid var(--rs-thumb-arrow);
170
+ border-left: p2r(5) solid transparent;
171
+ border-right: p2r(5) solid transparent;
181
172
  position: absolute;
182
- top: 100%;
173
+ top: calc(100% - 1px);
183
174
  left: 50%;
184
- margin-left: p2r(-6);
175
+ margin-left: p2r(-5);
185
176
  }
186
177
  }
187
178
 
@@ -221,49 +212,61 @@ $shipRangeSlider: true !default;
221
212
  }
222
213
 
223
214
  &.simple {
215
+ --rst-h: #{p2r(16)};
216
+ --rst-s: var(--shape-2);
217
+
218
+ .thumb {
219
+ width: 1px;
220
+ height: var(--rst-h);
221
+ margin-top: 0;
222
+ border-radius: 0;
223
+ border: none;
224
+ box-shadow: none;
225
+ }
226
+
224
227
  &.primary {
225
228
  --rst-bg: var(--primary-8);
226
- --rst: var(--primary-4);
227
- --rs-thumb-c: var(--primary-4);
229
+ --rst: var(--primary-2);
230
+ --rs-thumb-c: var(--primary-8);
228
231
  --rs-thumb-bc: var(--base-1);
229
- --rs-thumb-value-bg: var(--primary-4);
230
- --rs-thumb-value-c: var(--primary-8);
232
+ --rs-thumb-value-bg: var(--primary-8);
233
+ --rs-thumb-value-c: var(--primary-2);
231
234
  }
232
235
 
233
236
  &.accent {
234
237
  --rst-bg: var(--accent-8);
235
- --rst: var(--accent-4);
236
- --rs-thumb-c: var(--accent-4);
238
+ --rst: var(--accent-2);
239
+ --rs-thumb-c: var(--accent-8);
237
240
  --rs-thumb-bc: var(--base-1);
238
- --rs-thumb-value-bg: var(--accent-4);
239
- --rs-thumb-value-c: var(--accent-8);
241
+ --rs-thumb-value-bg: var(--accent-8);
242
+ --rs-thumb-value-c: var(--accent-2);
240
243
  }
241
244
 
242
245
  &.warn {
243
246
  --rst-bg: var(--warn-8);
244
- --rst: var(--warn-4);
245
- --rs-thumb-c: var(--warn-4);
247
+ --rst: var(--warn-2);
248
+ --rs-thumb-c: var(--warn-8);
246
249
  --rs-thumb-bc: var(--base-1);
247
- --rs-thumb-value-bg: var(--warn-4);
248
- --rs-thumb-value-c: var(--warn-8);
250
+ --rs-thumb-value-bg: var(--warn-8);
251
+ --rs-thumb-value-c: var(--warn-2);
249
252
  }
250
253
 
251
254
  &.error {
252
255
  --rst-bg: var(--error-8);
253
- --rst: var(--error-4);
254
- --rs-thumb-c: var(--error-4);
256
+ --rst: var(--error-2);
257
+ --rs-thumb-c: var(--error-8);
255
258
  --rs-thumb-bc: var(--base-1);
256
- --rs-thumb-value-bg: var(--error-4);
257
- --rs-thumb-value-c: var(--error-8);
259
+ --rs-thumb-value-bg: var(--error-8);
260
+ --rs-thumb-value-c: var(--error-2);
258
261
  }
259
262
 
260
263
  &.success {
261
264
  --rst-bg: var(--success-8);
262
- --rst: var(--success-4);
263
- --rs-thumb-c: var(--success-4);
265
+ --rst: var(--success-2);
266
+ --rs-thumb-c: var(--success-8);
264
267
  --rs-thumb-bc: var(--base-1);
265
- --rs-thumb-value-bg: var(--success-4);
266
- --rs-thumb-value-c: var(--success-8);
268
+ --rs-thumb-value-bg: var(--success-8);
269
+ --rs-thumb-value-c: var(--success-2);
267
270
  }
268
271
  }
269
272
 
@@ -272,6 +275,7 @@ $shipRangeSlider: true !default;
272
275
  --rst-bc: var(--base-4);
273
276
  --rs-thumb-c: var(--base-6);
274
277
  --rs-thumb-bc: var(--base-1);
278
+ --rs-thumb-arrow: var(--base-4);
275
279
 
276
280
  &.primary,
277
281
  &.accent,
@@ -288,6 +292,7 @@ $shipRangeSlider: true !default;
288
292
  --rs-thumb-bc: var(--base-1);
289
293
  --rs-thumb-value-bg: var(--primary-4);
290
294
  --rs-thumb-value-c: var(--primary-8);
295
+ --rs-thumb-arrow: var(--primary-4);
291
296
  }
292
297
 
293
298
  &.accent {
@@ -295,6 +300,7 @@ $shipRangeSlider: true !default;
295
300
  --rs-thumb-bc: var(--base-1);
296
301
  --rs-thumb-value-bg: var(--accent-4);
297
302
  --rs-thumb-value-c: var(--accent-8);
303
+ --rs-thumb-arrow: var(--accent-4);
298
304
  }
299
305
 
300
306
  &.warn {
@@ -302,6 +308,7 @@ $shipRangeSlider: true !default;
302
308
  --rs-thumb-bc: var(--base-1);
303
309
  --rs-thumb-value-bg: var(--warn-4);
304
310
  --rs-thumb-value-c: var(--warn-8);
311
+ --rs-thumb-arrow: var(--warn-4);
305
312
  }
306
313
 
307
314
  &.error {
@@ -309,6 +316,7 @@ $shipRangeSlider: true !default;
309
316
  --rs-thumb-bc: var(--base-1);
310
317
  --rs-thumb-value-bg: var(--error-4);
311
318
  --rs-thumb-value-c: var(--error-8);
319
+ --rs-thumb-arrow: var(--error-4);
312
320
  }
313
321
 
314
322
  &.success {
@@ -316,6 +324,7 @@ $shipRangeSlider: true !default;
316
324
  --rs-thumb-bc: var(--base-1);
317
325
  --rs-thumb-value-bg: var(--success-4);
318
326
  --rs-thumb-value-c: var(--success-8);
327
+ --rs-thumb-arrow: var(--success-4);
319
328
  }
320
329
  }
321
330
 
@@ -14,7 +14,8 @@ $shipSheet: true !default;
14
14
 
15
15
  border-radius: var(--sheet-s);
16
16
  background: var(--sheet-bg);
17
- border: 1px solid var(--sheet-bc);
17
+ border: var(--border-10);
18
+ border-color: var(--sheet-bc);
18
19
  color: var(--sheet-c);
19
20
 
20
21
  &.sharp {
@@ -36,7 +36,7 @@ $shipSidenav: true !default;
36
36
  overflow-y: auto;
37
37
  -webkit-overflow-scrolling: auto;
38
38
  background-color: var(--base-1);
39
- border: 1px solid var(--base-4);
39
+ border: var(--border-10);
40
40
  border-radius: var(--shape-3);
41
41
  height: calc(100vh - 2rem);
42
42
  box-shadow: var(--box-shadow-35);
@@ -49,7 +49,7 @@ $shipSidenav: true !default;
49
49
  align-items: center;
50
50
  justify-content: space-between;
51
51
  padding: p2r(0 16);
52
- border-bottom: 1px solid var(--base-4);
52
+ border-bottom: var(--border-10);
53
53
  z-index: 10000;
54
54
  position: relative;
55
55
  }
@@ -173,7 +173,7 @@ $shipSidenav: true !default;
173
173
  &.open .main-wrap {
174
174
  transform: translateX(var(--sidenav-width));
175
175
  box-shadow: var(--box-shadow-10);
176
- border-left: 1px solid var(--base-4);
176
+ border-left: var(--border-10);
177
177
  }
178
178
 
179
179
  .closed-topbar {