@ship-ui/core 0.19.5 → 0.22.2

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 (153) hide show
  1. package/README.md +3 -0
  2. package/assets/mcp/components.json +66 -4243
  3. package/bin/mcp/index.js +6027 -273
  4. package/bin/ship-fg-scanner +0 -0
  5. package/bin/ship-fg.mjs +14 -12
  6. package/bin/src/subset.ts +3 -1
  7. package/fesm2022/ship-ui-core-sh-form-field-experimental.mjs +42 -0
  8. package/fesm2022/ship-ui-core-sh-form-field-experimental.mjs.map +1 -0
  9. package/fesm2022/ship-ui-core-ship-accordion.mjs +127 -0
  10. package/fesm2022/ship-ui-core-ship-accordion.mjs.map +1 -0
  11. package/fesm2022/ship-ui-core-ship-alert.mjs +305 -0
  12. package/fesm2022/ship-ui-core-ship-alert.mjs.map +1 -0
  13. package/fesm2022/ship-ui-core-ship-blueprint.mjs +1156 -0
  14. package/fesm2022/ship-ui-core-ship-blueprint.mjs.map +1 -0
  15. package/fesm2022/ship-ui-core-ship-button-group.mjs +41 -0
  16. package/fesm2022/ship-ui-core-ship-button-group.mjs.map +1 -0
  17. package/fesm2022/ship-ui-core-ship-button.mjs +38 -0
  18. package/fesm2022/ship-ui-core-ship-button.mjs.map +1 -0
  19. package/fesm2022/ship-ui-core-ship-card.mjs +35 -0
  20. package/fesm2022/ship-ui-core-ship-card.mjs.map +1 -0
  21. package/fesm2022/ship-ui-core-ship-checkbox.mjs +113 -0
  22. package/fesm2022/ship-ui-core-ship-checkbox.mjs.map +1 -0
  23. package/fesm2022/ship-ui-core-ship-chip.mjs +44 -0
  24. package/fesm2022/ship-ui-core-ship-chip.mjs.map +1 -0
  25. package/fesm2022/ship-ui-core-ship-color-picker.mjs +947 -0
  26. package/fesm2022/ship-ui-core-ship-color-picker.mjs.map +1 -0
  27. package/fesm2022/ship-ui-core-ship-datepicker.mjs +951 -0
  28. package/fesm2022/ship-ui-core-ship-datepicker.mjs.map +1 -0
  29. package/fesm2022/ship-ui-core-ship-dialog.mjs +263 -0
  30. package/fesm2022/ship-ui-core-ship-dialog.mjs.map +1 -0
  31. package/fesm2022/ship-ui-core-ship-divider.mjs +22 -0
  32. package/fesm2022/ship-ui-core-ship-divider.mjs.map +1 -0
  33. package/fesm2022/ship-ui-core-ship-event-card.mjs +50 -0
  34. package/fesm2022/ship-ui-core-ship-event-card.mjs.map +1 -0
  35. package/fesm2022/ship-ui-core-ship-file-upload.mjs +112 -0
  36. package/fesm2022/ship-ui-core-ship-file-upload.mjs.map +1 -0
  37. package/fesm2022/ship-ui-core-ship-form-field.mjs +310 -0
  38. package/fesm2022/ship-ui-core-ship-form-field.mjs.map +1 -0
  39. package/fesm2022/ship-ui-core-ship-icon.mjs +81 -0
  40. package/fesm2022/ship-ui-core-ship-icon.mjs.map +1 -0
  41. package/fesm2022/ship-ui-core-ship-list.mjs +22 -0
  42. package/fesm2022/ship-ui-core-ship-list.mjs.map +1 -0
  43. package/fesm2022/ship-ui-core-ship-menu.mjs +545 -0
  44. package/fesm2022/ship-ui-core-ship-menu.mjs.map +1 -0
  45. package/fesm2022/ship-ui-core-ship-popover.mjs +286 -0
  46. package/fesm2022/ship-ui-core-ship-popover.mjs.map +1 -0
  47. package/fesm2022/ship-ui-core-ship-progress-bar.mjs +37 -0
  48. package/fesm2022/ship-ui-core-ship-progress-bar.mjs.map +1 -0
  49. package/fesm2022/ship-ui-core-ship-radio.mjs +102 -0
  50. package/fesm2022/ship-ui-core-ship-radio.mjs.map +1 -0
  51. package/fesm2022/ship-ui-core-ship-range-slider.mjs +277 -0
  52. package/fesm2022/ship-ui-core-ship-range-slider.mjs.map +1 -0
  53. package/fesm2022/ship-ui-core-ship-select.mjs +971 -0
  54. package/fesm2022/ship-ui-core-ship-select.mjs.map +1 -0
  55. package/fesm2022/ship-ui-core-ship-sidenav.mjs +248 -0
  56. package/fesm2022/ship-ui-core-ship-sidenav.mjs.map +1 -0
  57. package/fesm2022/ship-ui-core-ship-sortable.mjs +485 -0
  58. package/fesm2022/ship-ui-core-ship-sortable.mjs.map +1 -0
  59. package/fesm2022/ship-ui-core-ship-spinner.mjs +28 -0
  60. package/fesm2022/ship-ui-core-ship-spinner.mjs.map +1 -0
  61. package/fesm2022/ship-ui-core-ship-stepper.mjs +76 -0
  62. package/fesm2022/ship-ui-core-ship-stepper.mjs.map +1 -0
  63. package/fesm2022/ship-ui-core-ship-table-filter-bar.mjs +28 -0
  64. package/fesm2022/ship-ui-core-ship-table-filter-bar.mjs.map +1 -0
  65. package/fesm2022/ship-ui-core-ship-table.mjs +442 -0
  66. package/fesm2022/ship-ui-core-ship-table.mjs.map +1 -0
  67. package/fesm2022/ship-ui-core-ship-tabs.mjs +38 -0
  68. package/fesm2022/ship-ui-core-ship-tabs.mjs.map +1 -0
  69. package/fesm2022/ship-ui-core-ship-theme-toggle.mjs +119 -0
  70. package/fesm2022/ship-ui-core-ship-theme-toggle.mjs.map +1 -0
  71. package/fesm2022/ship-ui-core-ship-toggle-card.mjs +75 -0
  72. package/fesm2022/ship-ui-core-ship-toggle-card.mjs.map +1 -0
  73. package/fesm2022/ship-ui-core-ship-toggle.mjs +105 -0
  74. package/fesm2022/ship-ui-core-ship-toggle.mjs.map +1 -0
  75. package/fesm2022/ship-ui-core-ship-virtual-scroll.mjs +186 -0
  76. package/fesm2022/ship-ui-core-ship-virtual-scroll.mjs.map +1 -0
  77. package/fesm2022/ship-ui-core.mjs +880 -8782
  78. package/fesm2022/ship-ui-core.mjs.map +1 -1
  79. package/package.json +147 -3
  80. package/styles/core.scss +43 -0
  81. package/styles/helpers.scss +2 -0
  82. package/styles/index.scss +12 -123
  83. package/types/ship-ui-core-sh-form-field-experimental.d.ts +11 -0
  84. package/types/ship-ui-core-ship-accordion.d.ts +19 -0
  85. package/types/ship-ui-core-ship-alert.d.ts +68 -0
  86. package/types/ship-ui-core-ship-blueprint.d.ts +112 -0
  87. package/types/ship-ui-core-ship-button-group.d.ts +15 -0
  88. package/types/ship-ui-core-ship-button.d.ts +13 -0
  89. package/types/ship-ui-core-ship-card.d.ts +11 -0
  90. package/types/ship-ui-core-ship-checkbox.d.ts +22 -0
  91. package/types/ship-ui-core-ship-chip.d.ts +15 -0
  92. package/types/ship-ui-core-ship-color-picker.d.ts +105 -0
  93. package/types/ship-ui-core-ship-datepicker.d.ts +96 -0
  94. package/types/ship-ui-core-ship-dialog.d.ts +76 -0
  95. package/types/ship-ui-core-ship-divider.d.ts +8 -0
  96. package/types/ship-ui-core-ship-event-card.d.ts +11 -0
  97. package/types/ship-ui-core-ship-file-upload.d.ts +20 -0
  98. package/types/ship-ui-core-ship-form-field.d.ts +32 -0
  99. package/types/ship-ui-core-ship-icon.d.ts +18 -0
  100. package/types/ship-ui-core-ship-list.d.ts +8 -0
  101. package/types/ship-ui-core-ship-menu.d.ts +49 -0
  102. package/types/ship-ui-core-ship-popover.d.ts +40 -0
  103. package/types/ship-ui-core-ship-progress-bar.d.ts +14 -0
  104. package/types/ship-ui-core-ship-radio.d.ts +22 -0
  105. package/types/ship-ui-core-ship-range-slider.d.ts +31 -0
  106. package/types/ship-ui-core-ship-select.d.ts +81 -0
  107. package/types/ship-ui-core-ship-sidenav.d.ts +36 -0
  108. package/types/ship-ui-core-ship-sortable.d.ts +72 -0
  109. package/types/ship-ui-core-ship-spinner.d.ts +10 -0
  110. package/types/ship-ui-core-ship-stepper.d.ts +13 -0
  111. package/types/ship-ui-core-ship-table-filter-bar.d.ts +8 -0
  112. package/types/ship-ui-core-ship-table.d.ts +69 -0
  113. package/types/ship-ui-core-ship-tabs.d.ts +14 -0
  114. package/types/ship-ui-core-ship-theme-toggle.d.ts +28 -0
  115. package/types/ship-ui-core-ship-toggle-card.d.ts +15 -0
  116. package/types/ship-ui-core-ship-toggle.d.ts +21 -0
  117. package/types/ship-ui-core-ship-virtual-scroll.d.ts +22 -0
  118. package/types/ship-ui-core.d.ts +88 -1070
  119. package/styles/components/ship-accordion.scss +0 -113
  120. package/styles/components/ship-alert-container.scss +0 -49
  121. package/styles/components/ship-alert.scss +0 -177
  122. package/styles/components/ship-blueprint.scss +0 -242
  123. package/styles/components/ship-button-group.scss +0 -165
  124. package/styles/components/ship-button.scss +0 -141
  125. package/styles/components/ship-card.scss +0 -57
  126. package/styles/components/ship-checkbox.scss +0 -116
  127. package/styles/components/ship-chip.scss +0 -104
  128. package/styles/components/ship-color-picker.scss +0 -150
  129. package/styles/components/ship-datepicker.scss +0 -317
  130. package/styles/components/ship-dialog.scss +0 -152
  131. package/styles/components/ship-divider.scss +0 -27
  132. package/styles/components/ship-event-card.scss +0 -51
  133. package/styles/components/ship-file-upload.scss +0 -47
  134. package/styles/components/ship-form-field.scss +0 -408
  135. package/styles/components/ship-icon.scss +0 -54
  136. package/styles/components/ship-list.scss +0 -165
  137. package/styles/components/ship-menu.scss +0 -237
  138. package/styles/components/ship-popover.scss +0 -205
  139. package/styles/components/ship-progress-bar.scss +0 -173
  140. package/styles/components/ship-radio.scss +0 -113
  141. package/styles/components/ship-range-slider.scss +0 -421
  142. package/styles/components/ship-select.scss +0 -153
  143. package/styles/components/ship-sidenav.scss +0 -195
  144. package/styles/components/ship-sortable.scss +0 -45
  145. package/styles/components/ship-spinner.scss +0 -53
  146. package/styles/components/ship-stepper.scss +0 -158
  147. package/styles/components/ship-table.scss +0 -443
  148. package/styles/components/ship-tabs.scss +0 -125
  149. package/styles/components/ship-theme-toggle.scss +0 -41
  150. package/styles/components/ship-toggle-card.scss +0 -69
  151. package/styles/components/ship-toggle.scss +0 -255
  152. package/styles/components/ship-tooltip.scss +0 -151
  153. package/styles/components/ship-virtual-scroll.scss +0 -12
@@ -1,408 +0,0 @@
1
- @use '../helpers.scss' as *;
2
-
3
- $shipFormField: true !default;
4
- $shipDatepicker: true !default;
5
- $shipFormFieldShadow: false !default;
6
-
7
- %smallFormField {
8
- --ff-space: #{p2r(7 10)};
9
- --ff-input-space: #{p2r(6 10)};
10
- --ff-f: var(--paragraph-40B);
11
-
12
- line-height: p2r(16);
13
-
14
- .prefix,
15
- .suffix {
16
- line-height: p2r(16);
17
-
18
- > sh-icon {
19
- font-size: p2r(16);
20
- }
21
- }
22
- }
23
-
24
- @if $shipFormField == true {
25
- sh-form-field-popover,
26
- sh-form-field {
27
- --ff-s: var(--shape-2);
28
- --ff-bc: var(--base-4);
29
- --ff-boxfix-bg: var(--base-2);
30
- --ff-suffix-bg: transparent;
31
- --ff-ic: var(--base-11);
32
- --ff-bg: var(--base-1);
33
- --ff-f: var(--paragraph-30B);
34
- --ff-spinner-size: #{p2r(20)};
35
- --ff-spinner-thickness: #{p2r(2)};
36
- --ff-space: #{p2r(9 12)};
37
- --ff-input-space: #{p2r(10 12)};
38
- --ff-mw: auto;
39
-
40
- @if $shipFormFieldShadow != false {
41
- --ff-bs: var(--box-shadow-10);
42
- } @else {
43
- --ff-bs: none;
44
- }
45
-
46
- display: flex;
47
- flex-direction: column;
48
- align-items: flex-start;
49
- position: relative;
50
- width: 100%;
51
-
52
- transition: transform 125ms linear;
53
- transform: scale(1);
54
-
55
- &:has(input[type='time']) {
56
- --ff-input-space: #{p2r(9 12)};
57
- }
58
-
59
- &:active {
60
- .input-wrap {
61
- --ff-bs: 0 0 6px 0 var(--base-4);
62
- }
63
- }
64
-
65
- &[readonly],
66
- &.readonly,
67
- &[disabled],
68
- &.disabled,
69
- &:has(input[disabled]),
70
- &:has(textarea[disabled]) {
71
- pointer-events: none;
72
- user-select: none;
73
- opacity: 0.5;
74
-
75
- &:active {
76
- transform: scale(1);
77
- }
78
- }
79
-
80
- &.small {
81
- @extend %smallFormField;
82
- }
83
-
84
- &.auto-width {
85
- width: initial;
86
-
87
- .input-wrap,
88
- input {
89
- width: initial;
90
- }
91
- }
92
-
93
- &.center {
94
- .input-wrap input[type='number'],
95
- .input-wrap input {
96
- text-align: center;
97
- }
98
- }
99
-
100
- label {
101
- display: flex;
102
- align-items: center;
103
- padding-bottom: p2r(4);
104
- gap: p2r(4);
105
-
106
- sh-icon {
107
- font-size: p2r(16);
108
- }
109
- }
110
-
111
- .suffix,
112
- .prefix {
113
- display: none;
114
- align-items: center;
115
- gap: p2r(4);
116
- padding: var(--ff-space);
117
- padding-right: 0;
118
- transition: background-color 125ms linear;
119
- background-color: inherit;
120
- line-height: p2r(20);
121
-
122
- &:has([boxPrefix]) {
123
- padding: var(--ff-space);
124
- background-color: var(--ff-boxfix-bg);
125
- }
126
-
127
- &:has([boxSuffix]) {
128
- padding: var(--ff-space);
129
- background-color: var(--ff-boxfix-bg);
130
- }
131
-
132
- [boxPrefix],
133
- [boxSuffix] {
134
- --ff-ic: var(--base-8);
135
-
136
- display: flex;
137
- align-items: center;
138
- gap: p2r(4);
139
- }
140
-
141
- &:not(:empty) {
142
- display: flex;
143
- }
144
- }
145
-
146
- .suffix {
147
- padding: var(--ff-space);
148
- background-color: var(--ff-suffix-bg);
149
-
150
- &:has([textsuffix]) {
151
- padding-left: 0;
152
- }
153
- }
154
-
155
- &:has(input.ng-touched.ng-invalid) {
156
- --ff-ic: var(--error-8);
157
- --ff-bc: var(--error-8);
158
- --ff-boxfix-bg: var(--error-2);
159
- }
160
-
161
- &.autosize {
162
- width: min-content;
163
-
164
- .input-wrap {
165
- height: auto;
166
-
167
- textarea,
168
- input {
169
- field-sizing: content;
170
- }
171
- }
172
- }
173
-
174
- .input-wrap {
175
- display: flex;
176
- align-items: center;
177
- border: var(--border-10);
178
- border-color: var(--ff-bc);
179
- border-radius: var(--ff-s);
180
- background: var(--ff-bg);
181
- box-shadow: var(--ff-bs);
182
- overflow: hidden;
183
- transition:
184
- border-color 125ms linear,
185
- box-shadow 95ms linear;
186
- min-width: var(--ff-mw);
187
- width: 100%;
188
-
189
- &.is-open,
190
- &:has(textarea:focus-visible),
191
- &:has(input:focus-visible) {
192
- outline: 2px solid var(--primary-8);
193
- outline-offset: 2px;
194
- }
195
-
196
- sh-popover,
197
- .input {
198
- flex: 1 0;
199
- margin: var(--ff-space);
200
- }
201
-
202
- textarea {
203
- resize: none;
204
- margin: p2r(8 0);
205
- color: var(--base-8);
206
- field-sizing: content;
207
- }
208
-
209
- &:has(textarea) {
210
- height: auto;
211
- min-width: 100%;
212
- max-width: 100%;
213
- }
214
-
215
- sh-icon {
216
- color: var(--ff-ic);
217
- transition: color 125ms linear;
218
-
219
- &.primary {
220
- --ff-ic: var(--primary-8);
221
- }
222
-
223
- &.accent {
224
- --ff-ic: var(--accent-8);
225
- }
226
-
227
- &.warn {
228
- --ff-ic: var(--warn-8);
229
- }
230
-
231
- &.error {
232
- --ff-ic: var(--error-8);
233
- }
234
-
235
- &.success {
236
- --ff-ic: var(--success-8);
237
- }
238
- }
239
-
240
- sh-chip sh-icon {
241
- color: var(--chip-ic);
242
- }
243
-
244
- sh-spinner {
245
- --spinner-size: var(--ff-spinner-size);
246
- --spinner-thickness: var(--ff-spinner-thickness);
247
- }
248
-
249
- textarea,
250
- input {
251
- appearance: none;
252
- border: 0;
253
- padding: 0;
254
- background: transparent;
255
- font: var(--paragraph-30B);
256
- flex: 1 0;
257
- color: var(--base-8);
258
- margin: var(--ff-input-space);
259
- width: 100%;
260
-
261
- &::placeholder {
262
- color: var(--base-6);
263
- }
264
-
265
- &:focus {
266
- outline: none;
267
- }
268
-
269
- &[type='number'] {
270
- appearance: textfield;
271
- text-align: right;
272
-
273
- &::-webkit-outer-spin-button,
274
- &::-webkit-inner-spin-button {
275
- display: none;
276
- }
277
-
278
- &:has(+ .suffix:not(:empty)) {
279
- margin-right: 0;
280
- }
281
- }
282
-
283
- &[type='time'] {
284
- appearance: textfield;
285
- text-align: center;
286
- line-height: p2r(16);
287
-
288
- &::-webkit-calendar-picker-indicator {
289
- appearance: none;
290
- display: none;
291
- }
292
- }
293
- }
294
- }
295
-
296
- .helpers {
297
- height: p2r(20);
298
- display: flex;
299
- align-items: center;
300
- gap: p2r(4);
301
- padding-top: p2r(4);
302
- width: 100%;
303
-
304
- [hint] {
305
- color: var(--base-9);
306
-
307
- &[suffix] {
308
- text-align: right;
309
- width: 100%;
310
- }
311
- }
312
-
313
- &:has(.error-wrap:not(:empty)) .hint {
314
- display: none;
315
- }
316
- }
317
-
318
- // &:not(:has(input.ng-touched.ng-invalid)) {
319
- // &:has(.hint:empty) .helpers {
320
- // height: 0;
321
- // padding-top: 0;
322
- // }
323
- // }
324
-
325
- &:has(.error-wrap:empty + .hint:empty) .helpers {
326
- height: 0;
327
- padding-top: 0;
328
- }
329
-
330
- &:has(input.ng-touched.ng-invalid) .helpers .hint {
331
- opacity: 0;
332
- visibility: hidden;
333
- }
334
-
335
- .error-wrap {
336
- color: var(--error-8);
337
- opacity: 1;
338
- transition: opacity 125ms linear;
339
- position: absolute;
340
- bottom: 0;
341
- left: 0;
342
- right: 0;
343
- width: 100%;
344
- }
345
-
346
- .hint {
347
- display: flex;
348
- align-items: center;
349
- justify-content: space-between;
350
- width: 100%;
351
- color: var(--base-8);
352
- opacity: 1;
353
- transition:
354
- visibility 125ms linear,
355
- opacity 125ms linear;
356
- visibility: visible;
357
-
358
- &:empty {
359
- opacity: 0;
360
- }
361
- }
362
-
363
- &.error {
364
- --ff-ic: var(--error-8);
365
- }
366
-
367
- &.warning {
368
- --ff-ic: var(--warn-8);
369
- }
370
-
371
- &.success {
372
- --ff-ic: var(--success-8);
373
- }
374
-
375
- &.horizontal {
376
- display: grid;
377
- grid-template-columns: auto 1fr;
378
- align-items: center;
379
- gap: 0 p2r(16);
380
-
381
- label {
382
- padding-bottom: 0;
383
- margin-bottom: 0;
384
- grid-column: 1;
385
- }
386
-
387
- .input-wrap {
388
- grid-column: 2;
389
- }
390
-
391
- .helpers {
392
- grid-column: 2;
393
- }
394
- }
395
- }
396
- }
397
-
398
- @if $shipDatepicker == true {
399
- sh-daterange-input,
400
- sh-datepicker-input {
401
- &.small {
402
- sh-form-field-popover,
403
- sh-form-field {
404
- @extend %smallFormField;
405
- }
406
- }
407
- }
408
- }
@@ -1,54 +0,0 @@
1
- @use '../helpers.scss' as *;
2
-
3
- $shipIcon: true !default;
4
-
5
- @if $shipIcon == true {
6
- sh-icon {
7
- --icon-c: inherit;
8
-
9
- font-size: p2r(20);
10
- line-height: 1em;
11
- width: 1em;
12
- height: 1em;
13
- min-width: 1em;
14
- min-height: 1em;
15
- max-width: 1em;
16
- max-height: 1em;
17
- text-align: left;
18
- overflow: hidden;
19
- display: inline-block;
20
- color: var(--icon-c);
21
-
22
- &.primary {
23
- --icon-c: var(--primary-8);
24
- }
25
-
26
- &.accent {
27
- --icon-c: var(--accent-8);
28
- }
29
-
30
- &.warn {
31
- --icon-c: var(--warn-8);
32
- }
33
-
34
- &.error {
35
- --icon-c: var(--error-8);
36
- }
37
-
38
- &.success {
39
- --icon-c: var(--success-8);
40
- }
41
-
42
- &.large {
43
- font-size: p2r(32);
44
- }
45
-
46
- &.small {
47
- font-size: p2r(16);
48
- }
49
-
50
- &.inherit {
51
- font-size: inherit;
52
- }
53
- }
54
- }
@@ -1,165 +0,0 @@
1
- @use '../helpers.scss' as *;
2
-
3
- $shipList: true !default;
4
-
5
- @if $shipList == true {
6
- sh-list {
7
- --list-s: var(--shape-2);
8
- --list-active-bg: var(--base-1);
9
- --list-color: var(--base-9);
10
- --list-active-bs: none;
11
- --list-item-b: 1px solid transparent;
12
- --list-item-active-b: 1px solid --list-active-bg;
13
- --list-p: #{p2r(20 16)};
14
- --list-item-p: #{p2r(8 12)};
15
- --list-item-gap: #{p2r(8)};
16
-
17
- width: 100%;
18
- padding: var(--list-p);
19
- gap: p2r(8);
20
- display: flex;
21
- flex-direction: column;
22
-
23
- &.base-1 {
24
- --list-active-bg: var(--base-1);
25
- --list-active-bs: var(--box-shadow-20);
26
- }
27
-
28
- &.outlined {
29
- --list-active-bg: transparent;
30
- --list-active-bs: none;
31
- --list-item-b: 1px solid transparent;
32
- --list-item-active-b: 1px solid var(--primary-8);
33
- }
34
-
35
- &:empty {
36
- padding: 0;
37
- }
38
-
39
- > [title] {
40
- color: var(--base-8);
41
- margin: 0 0.75rem;
42
- font: var(--paragraph-30);
43
- line-height: p2r(24);
44
- }
45
-
46
- &[shsortable] [item]:active {
47
- transform: scale(1);
48
- }
49
-
50
- > [action],
51
- > [item] {
52
- border-radius: var(--list-s);
53
- padding: var(--list-item-p);
54
- font: var(--paragraph-30B);
55
- color: var(--list-color);
56
- border: var(--list-item-b);
57
- display: flex;
58
- align-items: center;
59
- gap: var(--list-item-gap);
60
- width: 100%;
61
- user-select: none;
62
- appearance: none;
63
- border: 0;
64
- text-align: left;
65
- text-wrap: balance;
66
- background-color: transparent;
67
- text-decoration: none;
68
-
69
- transition:
70
- transform 125ms linear,
71
- box-shadow 125ms linear;
72
- transform: scale(1);
73
-
74
- &:active {
75
- --list-active-bs: var(--box-shadow-10);
76
- transform: scale(0.98);
77
- }
78
-
79
- &:focus {
80
- outline: none;
81
- }
82
-
83
- &:focus-visible {
84
- outline: 2px solid var(--primary-8);
85
- outline-offset: 2px;
86
- }
87
-
88
- [suffix] {
89
- margin-left: auto;
90
- color: var(--base-8);
91
- }
92
- }
93
-
94
- :has(input),
95
- > [action] {
96
- cursor: pointer;
97
- }
98
-
99
- > [item]:has(input:checked),
100
- > [action]:has(input:checked),
101
- > [action].active,
102
- > [action].selected {
103
- --list-color: var(--base-12);
104
-
105
- background-color: var(--list-active-bg);
106
- box-shadow: var(--list-active-bs);
107
- border: var(--list-item-active-b);
108
- }
109
-
110
- &.primary {
111
- > [item]:has(input:checked),
112
- > [action]:has(input:checked),
113
- > [action].active,
114
- > [action].selected {
115
- sh-icon:first-child {
116
- color: var(--primary-8);
117
- }
118
- }
119
- }
120
-
121
- &.accent {
122
- > [item]:has(input:checked),
123
- > [action]:has(input:checked),
124
- > [action].active,
125
- > [action].selected {
126
- sh-icon:first-child {
127
- color: var(--accent-8);
128
- }
129
- }
130
- }
131
-
132
- &.warn {
133
- > [item]:has(input:checked),
134
- > [action]:has(input:checked),
135
- > [action].active,
136
- > [action].selected {
137
- sh-icon:first-child {
138
- color: var(--warn-8);
139
- }
140
- }
141
- }
142
-
143
- &.error {
144
- > [item]:has(input:checked),
145
- > [action]:has(input:checked),
146
- > [action].active,
147
- > [action].selected {
148
- sh-icon:first-child {
149
- color: var(--error-8);
150
- }
151
- }
152
- }
153
-
154
- &.success {
155
- > [item]:has(input:checked),
156
- > [action]:has(input:checked),
157
- > [action].active,
158
- > [action].selected {
159
- sh-icon:first-child {
160
- color: var(--success-8);
161
- }
162
- }
163
- }
164
- }
165
- }