@ship-ui/core 0.13.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 (66) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -0
  3. package/assets/fonts/InterTight-VariableFont_wght.woff2 +0 -0
  4. package/bin/ship-fg-node +40 -0
  5. package/bin/ship-fg.ts +40 -0
  6. package/bin/src/ship-fg-node.js +344 -0
  7. package/bin/src/ship-fg.ts +368 -0
  8. package/bin/src/utilities.js +53 -0
  9. package/bin/src/utilities.ts +98 -0
  10. package/bin/tsconfig.app.json +15 -0
  11. package/fesm2022/ship-ui-core.mjs +5373 -0
  12. package/fesm2022/ship-ui-core.mjs.map +1 -0
  13. package/index.d.ts +758 -0
  14. package/package.json +52 -0
  15. package/styles/components/ship-alert-container.component.scss +49 -0
  16. package/styles/components/ship-alert.component.scss +273 -0
  17. package/styles/components/ship-button-group.component.scss +63 -0
  18. package/styles/components/ship-button.component.scss +330 -0
  19. package/styles/components/ship-card.component.scss +54 -0
  20. package/styles/components/ship-checkbox.component.scss +245 -0
  21. package/styles/components/ship-chip.component.scss +290 -0
  22. package/styles/components/ship-color-picker.component.scss +78 -0
  23. package/styles/components/ship-datepicker.component.scss +274 -0
  24. package/styles/components/ship-dialog.component.scss +119 -0
  25. package/styles/components/ship-divider.component.scss +27 -0
  26. package/styles/components/ship-file-upload.component.scss +47 -0
  27. package/styles/components/ship-form-field.component.scss +334 -0
  28. package/styles/components/ship-icon.component.scss +54 -0
  29. package/styles/components/ship-list.component.scss +148 -0
  30. package/styles/components/ship-menu.component.scss +217 -0
  31. package/styles/components/ship-popover.component.scss +66 -0
  32. package/styles/components/ship-progress-bar.component.scss +173 -0
  33. package/styles/components/ship-radio.component.scss +182 -0
  34. package/styles/components/ship-range-slider.component.scss +412 -0
  35. package/styles/components/ship-select.component.scss +139 -0
  36. package/styles/components/ship-sidenav.component.scss +192 -0
  37. package/styles/components/ship-sortable.component.scss +54 -0
  38. package/styles/components/ship-spinner.component.scss +53 -0
  39. package/styles/components/ship-stepper.component.scss +138 -0
  40. package/styles/components/ship-table.component.scss +402 -0
  41. package/styles/components/ship-tabs.component.scss +86 -0
  42. package/styles/components/ship-toggle-card.component.scss +71 -0
  43. package/styles/components/ship-toggle.component.scss +238 -0
  44. package/styles/components/ship-tooltip.component.scss +175 -0
  45. package/styles/components/ship-virtual-scroll.component.scss +12 -0
  46. package/styles/components/sparkle-checkbox.component.scss +245 -0
  47. package/styles/components/sparkle-select.component.scss +139 -0
  48. package/styles/core/apexcharts/apexcharts.scss +58 -0
  49. package/styles/core/core/layout.scss +74 -0
  50. package/styles/core/core/loader.scss +63 -0
  51. package/styles/core/core/palette-variables.scss +352 -0
  52. package/styles/core/core/typography.scss +103 -0
  53. package/styles/core/core/variables.scss +188 -0
  54. package/styles/core/core.scss +4 -0
  55. package/styles/core/fonts/_inter-tight.scss +11 -0
  56. package/styles/core/helpers/fn/color-mix.scss +7 -0
  57. package/styles/core/helpers/fn/dp.scss +14 -0
  58. package/styles/core/helpers/fn/p2r.scss +23 -0
  59. package/styles/core/helpers/mixins/border-gradient.scss +61 -0
  60. package/styles/core/helpers/mixins/breakpoint.scss +217 -0
  61. package/styles/core/helpers/mixins/ellipsis.scss +7 -0
  62. package/styles/core/helpers/mixins/overflow-scrolling.scss +18 -0
  63. package/styles/core/helpers/mixins/wrapper.scss +16 -0
  64. package/styles/core/polyfill/light-dark.scss +3 -0
  65. package/styles/helpers.scss +13 -0
  66. package/styles/index.scss +146 -0
@@ -0,0 +1,412 @@
1
+ @use '../helpers.scss' as *;
2
+
3
+ $shipRangeSlider: true !default;
4
+
5
+ @if $shipRangeSlider == true {
6
+ sh-range-slider {
7
+ --rs-h: #{p2r(40)};
8
+ --rs-f: var(--paragraph-30);
9
+ --rs-unit-g: #{p2r(12)};
10
+ --rs-unit-c: var(--base-8);
11
+ --rst: var(--base-3);
12
+ --rst-bc: var(--base-1);
13
+ --rst-bg: var(--base-4);
14
+ --rst-h: #{p2r(8)};
15
+ --rst-s: calc(var(--shape-2) / 2);
16
+ --rs-thumb-c: var(--base-8);
17
+ --rs-thumb-bc: var(--base-1);
18
+ --rs-thumb-value-bg: var(--base-4);
19
+ --rs-thumb-arrow: var(--rs-thumb-value-bg);
20
+ --rs-thumb-value-c: var(--base-8);
21
+ --rs-thumb-si: #{p2r(16)};
22
+ --rs-thumb-w: var(--rs-thumb-si);
23
+ --rs-thumb-s: calc(var(--rs-thumb-w) / 2);
24
+
25
+ display: flex;
26
+ flex-direction: column;
27
+ width: 100%;
28
+ font: var(--rs-f);
29
+
30
+ &.thick {
31
+ --rst-h: #{p2r(16)};
32
+ --rst-s: var(--shape-2);
33
+
34
+ .thumb {
35
+ opacity: 0;
36
+ }
37
+ }
38
+
39
+ &.sharp {
40
+ --rst-s: #{p2r(2)};
41
+ --rs-thumb-s: #{p2r(2)};
42
+ --rs-thumb-bc: transparent !important;
43
+ }
44
+
45
+ .label {
46
+ display: flex;
47
+ align-items: center;
48
+ gap: p2r(8);
49
+ padding-bottom: p2r(4);
50
+
51
+ > label {
52
+ display: flex;
53
+ align-items: center;
54
+ gap: p2r(4);
55
+ }
56
+
57
+ sh-icon {
58
+ color: var(--grey-500);
59
+ font-size: p2r(16);
60
+ }
61
+
62
+ &:empty {
63
+ display: none;
64
+ }
65
+ }
66
+
67
+ &[readonly]:not([readonly='false']),
68
+ &:has(input[type='range'][readonly]:not([readonly='false'])),
69
+ &[disabled]:not([disabled='false']),
70
+ &:has(input[type='range'][disabled]:not([disabled='false'])) {
71
+ opacity: 0.4;
72
+ pointer-events: none;
73
+ user-select: none;
74
+ cursor: initial;
75
+ }
76
+
77
+ &:has(input[type='range'][readonly]),
78
+ &.always-show {
79
+ .thumb .value-indicator {
80
+ opacity: 1;
81
+ }
82
+ }
83
+
84
+ input[type='range'] {
85
+ appearance: none;
86
+ width: 100%;
87
+ height: 100%;
88
+ position: absolute;
89
+ inset: 0;
90
+ opacity: 0;
91
+ margin: 0;
92
+ z-index: 1000;
93
+ }
94
+
95
+ .input-wrap {
96
+ display: flex;
97
+ align-items: center;
98
+ justify-content: center;
99
+ width: 100%;
100
+ height: 100%;
101
+ position: relative;
102
+ gap: var(--rs-unit-g);
103
+ }
104
+
105
+ .thumb-wrap {
106
+ position: absolute;
107
+ top: 0;
108
+ }
109
+
110
+ .thumb {
111
+ position: relative;
112
+ margin-top: calc(-1 * var(--rs-thumb-si) / 4);
113
+ width: var(--rs-thumb-w);
114
+ height: var(--rs-thumb-si);
115
+ border-radius: var(--rs-thumb-s);
116
+ background-color: var(--rs-thumb-c);
117
+ border: 1px solid var(--rs-thumb-bc);
118
+ box-shadow: var(--box-shadow-20);
119
+ transform: translateX(-50%);
120
+ }
121
+
122
+ .track-wrap {
123
+ position: relative;
124
+ width: 100%;
125
+ height: var(--rst-h);
126
+ }
127
+
128
+ .track {
129
+ position: relative;
130
+ width: 100%;
131
+ height: var(--rst-h);
132
+ border-radius: var(--rst-s);
133
+ background-color: var(--rst);
134
+ border: 1px solid var(--rst-bc);
135
+ overflow: hidden;
136
+ }
137
+
138
+ .track-filled {
139
+ position: absolute;
140
+ top: 0;
141
+ left: 0;
142
+ bottom: 0;
143
+ background: var(--rst-bg);
144
+ width: 0;
145
+ }
146
+
147
+ .min-indicator,
148
+ .max-indicator {
149
+ white-space: nowrap;
150
+ color: var(--rs-unit-c);
151
+ }
152
+
153
+ input[type='range']:hover ~ .thumb-wrap .value-indicator,
154
+ input[type='range']:focus ~ .thumb-wrap .value-indicator {
155
+ opacity: 1;
156
+ }
157
+
158
+ .value-indicator {
159
+ position: absolute;
160
+ top: p2r(-30);
161
+ height: p2r(24);
162
+ border-radius: var(--shape-2);
163
+ left: 50%;
164
+ margin: auto;
165
+ transform: translateX(-50%);
166
+ padding: p2r(4 8);
167
+ background: var(--rs-thumb-value-bg);
168
+ color: var(--rs-thumb-value-c);
169
+ white-space: nowrap;
170
+ opacity: 0;
171
+ transition: opacity 125ms linear;
172
+ // transition-delay: 1s;
173
+ user-select: none;
174
+ pointer-events: none;
175
+
176
+ &:after {
177
+ 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;
181
+ position: absolute;
182
+ top: 100%;
183
+ left: 50%;
184
+ margin-left: p2r(-6);
185
+ }
186
+ }
187
+
188
+ &.primary {
189
+ --rst-bg: var(--primary-8);
190
+ --rs-thumb-arrow: var(--primary-8);
191
+ --rs-thumb-value-bg: var(--primary-8);
192
+ --rs-thumb-value-c: #fff;
193
+ }
194
+
195
+ &.accent {
196
+ --rst-bg: var(--accent-8);
197
+ --rs-thumb-arrow: var(--accent-8);
198
+ --rs-thumb-value-bg: var(--accent-8);
199
+ --rs-thumb-value-c: #fff;
200
+ }
201
+
202
+ &.warn {
203
+ --rst-bg: var(--warn-8);
204
+ --rs-thumb-arrow: var(--warn-8);
205
+ --rs-thumb-value-bg: var(--warn-8);
206
+ --rs-thumb-value-c: #fff;
207
+ }
208
+
209
+ &.error {
210
+ --rst-bg: var(--error-8);
211
+ --rs-thumb-arrow: var(--error-8);
212
+ --rs-thumb-value-bg: var(--error-8);
213
+ --rs-thumb-value-c: #fff;
214
+ }
215
+
216
+ &.success {
217
+ --rst-bg: var(--success-8);
218
+ --rs-thumb-arrow: var(--success-8);
219
+ --rs-thumb-value-bg: var(--success-8);
220
+ --rs-thumb-value-c: #fff;
221
+ }
222
+
223
+ &.simple {
224
+ &.primary {
225
+ --rst-bg: var(--primary-8);
226
+ --rst: var(--primary-4);
227
+ --rs-thumb-c: var(--primary-4);
228
+ --rs-thumb-bc: var(--base-1);
229
+ --rs-thumb-value-bg: var(--primary-4);
230
+ --rs-thumb-value-c: var(--primary-8);
231
+ }
232
+
233
+ &.accent {
234
+ --rst-bg: var(--accent-8);
235
+ --rst: var(--accent-4);
236
+ --rs-thumb-c: var(--accent-4);
237
+ --rs-thumb-bc: var(--base-1);
238
+ --rs-thumb-value-bg: var(--accent-4);
239
+ --rs-thumb-value-c: var(--accent-8);
240
+ }
241
+
242
+ &.warn {
243
+ --rst-bg: var(--warn-8);
244
+ --rst: var(--warn-4);
245
+ --rs-thumb-c: var(--warn-4);
246
+ --rs-thumb-bc: var(--base-1);
247
+ --rs-thumb-value-bg: var(--warn-4);
248
+ --rs-thumb-value-c: var(--warn-8);
249
+ }
250
+
251
+ &.error {
252
+ --rst-bg: var(--error-8);
253
+ --rst: var(--error-4);
254
+ --rs-thumb-c: var(--error-4);
255
+ --rs-thumb-bc: var(--base-1);
256
+ --rs-thumb-value-bg: var(--error-4);
257
+ --rs-thumb-value-c: var(--error-8);
258
+ }
259
+
260
+ &.success {
261
+ --rst-bg: var(--success-8);
262
+ --rst: var(--success-4);
263
+ --rs-thumb-c: var(--success-4);
264
+ --rs-thumb-bc: var(--base-1);
265
+ --rs-thumb-value-bg: var(--success-4);
266
+ --rs-thumb-value-c: var(--success-8);
267
+ }
268
+ }
269
+
270
+ &.outlined {
271
+ --rst: var(--base-1);
272
+ --rst-bc: var(--base-4);
273
+ --rs-thumb-c: var(--base-6);
274
+ --rs-thumb-bc: var(--base-1);
275
+
276
+ &.primary,
277
+ &.accent,
278
+ &.warn,
279
+ &.error,
280
+ &.success {
281
+ --rst: var(--base-2);
282
+ }
283
+
284
+ &.primary {
285
+ --rst-bg: var(--primary-4);
286
+ --rst-bc: var(--primary-8);
287
+ --rs-thumb-c: var(--primary-8);
288
+ --rs-thumb-bc: var(--base-1);
289
+ --rs-thumb-value-bg: var(--primary-4);
290
+ --rs-thumb-value-c: var(--primary-8);
291
+ }
292
+
293
+ &.accent {
294
+ --rs-thumb-c: var(--accent-4);
295
+ --rs-thumb-bc: var(--base-1);
296
+ --rs-thumb-value-bg: var(--accent-4);
297
+ --rs-thumb-value-c: var(--accent-8);
298
+ }
299
+
300
+ &.warn {
301
+ --rs-thumb-c: var(--warn-4);
302
+ --rs-thumb-bc: var(--base-1);
303
+ --rs-thumb-value-bg: var(--warn-4);
304
+ --rs-thumb-value-c: var(--warn-8);
305
+ }
306
+
307
+ &.error {
308
+ --rs-thumb-c: var(--error-4);
309
+ --rs-thumb-bc: var(--base-1);
310
+ --rs-thumb-value-bg: var(--error-4);
311
+ --rs-thumb-value-c: var(--error-8);
312
+ }
313
+
314
+ &.success {
315
+ --rs-thumb-c: var(--success-4);
316
+ --rs-thumb-bc: var(--base-1);
317
+ --rs-thumb-value-bg: var(--success-4);
318
+ --rs-thumb-value-c: var(--success-8);
319
+ }
320
+ }
321
+
322
+ &.flat {
323
+ --rs-thumb-c: #fff;
324
+ --rs-thumb-bc: var(--base-4);
325
+
326
+ &.primary,
327
+ &.accent,
328
+ &.warn,
329
+ &.error,
330
+ &.success {
331
+ --rst: var(--base-3);
332
+ --rs-thumb-c: #fff;
333
+ --rs-thumb-bc: var(--base-4);
334
+ --rs-thumb-value-bg: var(--base-8);
335
+ --rs-thumb-value-c: #fff;
336
+ }
337
+
338
+ &.primary {
339
+ --rst-bg: var(--primary-8);
340
+ --rs-thumb-value-bg: var(--primary-8);
341
+ }
342
+
343
+ &.accent {
344
+ --rst-bg: var(--accent-8);
345
+ --rs-thumb-value-bg: var(--accent-8);
346
+ }
347
+
348
+ &.warn {
349
+ --rst-bg: var(--warn-8);
350
+ --rs-thumb-value-bg: var(--warn-8);
351
+ }
352
+
353
+ &.error {
354
+ --rst-bg: var(--error-8);
355
+ --rs-thumb-value-bg: var(--error-8);
356
+ }
357
+
358
+ &.success {
359
+ --rst-bg: var(--success-8);
360
+ --rs-thumb-value-bg: var(--success-8);
361
+ }
362
+ }
363
+
364
+ &.raised {
365
+ --rst-bg: var(--base-g2);
366
+ --rs-thumb-c: #fff;
367
+ --rs-thumb-bc: var(--base-4);
368
+
369
+ &.primary,
370
+ &.accent,
371
+ &.warn,
372
+ &.error,
373
+ &.success {
374
+ --rst: var(--base-3);
375
+ --rs-thumb-c: #fff;
376
+ --rs-thumb-bc: var(--base-4);
377
+ --rs-thumb-value-bg: var(--base-g6);
378
+ --rs-thumb-value-c: #fff;
379
+ }
380
+
381
+ &.primary {
382
+ --rst-bg: var(--primary-g2);
383
+ --rs-thumb-arrow: var(--primary-8);
384
+ --rs-thumb-value-bg: var(--primary-g3);
385
+ }
386
+
387
+ &.accent {
388
+ --rst-bg: var(--accent-g2);
389
+ --rs-thumb-arrow: var(--accent-8);
390
+ --rs-thumb-value-bg: var(--accent-8);
391
+ }
392
+
393
+ &.warn {
394
+ --rst-bg: var(--warn-g2);
395
+ --rs-thumb-arrow: var(--warn-8);
396
+ --rs-thumb-value-bg: var(--warn-8);
397
+ }
398
+
399
+ &.error {
400
+ --rst-bg: var(--error-g2);
401
+ --rs-thumb-arrow: var(--error-8);
402
+ --rs-thumb-value-bg: var(--error-8);
403
+ }
404
+
405
+ &.success {
406
+ --rst-bg: var(--success-g2);
407
+ --rs-thumb-arrow: var(--success-8);
408
+ --rs-thumb-value-bg: var(--success-8);
409
+ }
410
+ }
411
+ }
412
+ }
@@ -0,0 +1,139 @@
1
+ @use '../helpers.scss' as *;
2
+
3
+ $shipSelect: false !default;
4
+
5
+ @if $shipSelect == true {
6
+ sh-select {
7
+ --miw: #{p2r(210)};
8
+
9
+ display: flex;
10
+
11
+ sh-form-field {
12
+ display: flex;
13
+ --ff-mw: var(--miw);
14
+ }
15
+
16
+ sh-popover {
17
+ flex: 1 0;
18
+
19
+ &:has(.ship-options:empty) .popover {
20
+ opacity: 0;
21
+ }
22
+ }
23
+
24
+ .selected-value {
25
+ width: 100%;
26
+ display: flex;
27
+ flex-wrap: wrap;
28
+ align-items: center;
29
+ gap: p2r(4);
30
+ color: var(--base-8);
31
+
32
+ input {
33
+ margin: 0;
34
+ }
35
+
36
+ &.is-selected {
37
+ color: var(--base-12);
38
+ }
39
+ }
40
+
41
+ sh-form-field .input-wrap .input {
42
+ position: relative;
43
+ display: flex;
44
+ flex-wrap: wrap;
45
+
46
+ --ff-space: #{p2r(7 10)};
47
+
48
+ textarea,
49
+ input {
50
+ opacity: 0;
51
+ width: 0;
52
+ height: 0;
53
+ position: absolute;
54
+ }
55
+
56
+ &.show-search-text {
57
+ input {
58
+ opacity: 1;
59
+ height: initial;
60
+ min-width: min-content;
61
+ field-sizing: content;
62
+ font: var(--paragraph-30);
63
+ position: relative;
64
+ }
65
+
66
+ textarea {
67
+ opacity: 1;
68
+ height: initial;
69
+ margin: p2r(4 0 0);
70
+ }
71
+ }
72
+ }
73
+
74
+ sh-form-field.small .input-wrap .input {
75
+ --ff-space: #{p2r(5 8)};
76
+
77
+ sh-chip {
78
+ --chip-h: #{p2r(20)};
79
+ font-size: 80%;
80
+ }
81
+ }
82
+ }
83
+
84
+ .ship-options {
85
+ padding: p2r(8 0);
86
+ display: flex;
87
+ flex-direction: column;
88
+ max-height: p2r(180);
89
+ overflow-y: auto;
90
+ overflow-x: hidden;
91
+
92
+ .option {
93
+ display: flex;
94
+ justify-content: flex-start;
95
+ align-items: center;
96
+ min-height: p2r(32);
97
+ margin: p2r(0 8);
98
+ padding: p2r(0 8);
99
+ gap: p2r(8);
100
+ width: calc(100% - #{p2r(16)});
101
+ border-radius: var(--shape-2);
102
+ appearance: none;
103
+ background-color: transparent;
104
+ border: 0;
105
+ cursor: pointer;
106
+ color: var(--base-12);
107
+ user-select: none;
108
+
109
+ &[disabled] {
110
+ opacity: 0.3;
111
+ cursor: initial;
112
+
113
+ &:hover {
114
+ background-color: transparent;
115
+ }
116
+ }
117
+
118
+ sh-icon {
119
+ font-size: p2r(16);
120
+ }
121
+
122
+ &.active,
123
+ &:checked,
124
+ &:hover {
125
+ background-color: var(--base-2);
126
+ color: var(--base-12);
127
+ }
128
+
129
+ &.focused {
130
+ background-color: var(--primary-1);
131
+ color: var(--base-12);
132
+
133
+ &:hover {
134
+ background-color: var(--primary-2);
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }