@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,330 @@
1
+ @use '../helpers.scss' as *;
2
+ $shipButton: true !default;
3
+ $shipButtonShadow: false !default;
4
+
5
+ @if $shipButton == true {
6
+ [shButton] {
7
+ --btn-h: #{p2r(40)};
8
+ --btn-s: var(--shape-2);
9
+ --btn-f: var(--paragraph-20);
10
+ --loader-c: var(--base-8);
11
+ --btn-c: var(--base-12);
12
+ --btn-ic: var(--base-12);
13
+ --btn-ir: var(0deg);
14
+ --btn-bg: var(--base-1);
15
+ --btn-bg-h: var(--base-2);
16
+ --btn-bc: var(--base-4);
17
+
18
+ @if $shipButtonShadow != false {
19
+ --btn-bs: var(--box-shadow-10);
20
+ } @else {
21
+ --btn-bs: none;
22
+ }
23
+
24
+ display: inline-flex;
25
+ align-items: center;
26
+ justify-content: center;
27
+ gap: p2r(8);
28
+ position: relative;
29
+ padding: p2r(0 12);
30
+ transition: color 80ms linear;
31
+ min-width: auto;
32
+ cursor: pointer;
33
+ outline: none;
34
+ line-height: inherit;
35
+ user-select: none;
36
+ appearance: none;
37
+ overflow: visible;
38
+ vertical-align: middle;
39
+ text-decoration: none;
40
+
41
+ border-radius: var(--btn-s);
42
+ height: var(--btn-h);
43
+ border: 1px solid var(--btn-bc);
44
+ box-shadow: var(--btn-bs);
45
+ font: var(--btn-f);
46
+
47
+ background: var(--btn-bg);
48
+ color: var(--btn-c);
49
+ transition: background 75ms linear;
50
+
51
+ sh-icon {
52
+ color: var(--btn-ic);
53
+ rotate: var(--btn-ir);
54
+ transition: rotate 125ms ease-in-out;
55
+ }
56
+
57
+ &:has(sh-icon:only-child) {
58
+ padding: p2r(0 9);
59
+ }
60
+
61
+ &:hover {
62
+ --btn-c: var(--base-12);
63
+ background: var(--btn-bg-h);
64
+ }
65
+
66
+ &.loader.outlined,
67
+ &.loader.simple,
68
+ &.loader.flat,
69
+ &.loader.raised,
70
+ &.loader {
71
+ color: transparent;
72
+ width: auto;
73
+
74
+ &:hover,
75
+ &.primary,
76
+ &.accent,
77
+ &.warn,
78
+ &.error,
79
+ &.success {
80
+ color: transparent;
81
+ }
82
+
83
+ > * {
84
+ opacity: 0;
85
+ }
86
+ }
87
+
88
+ &.rotated-icon sh-icon {
89
+ --btn-ir: 180deg;
90
+ }
91
+
92
+ &.small {
93
+ --btn-h: #{p2r(32)};
94
+ --btn-f: var(--paragraph-30);
95
+
96
+ padding: p2r(0 8);
97
+ gap: p2r(4);
98
+
99
+ sh-icon {
100
+ font-size: p2r(16);
101
+ }
102
+ }
103
+
104
+ &[disabled] {
105
+ opacity: 0.5;
106
+ pointer-events: none;
107
+ user-select: none;
108
+ }
109
+
110
+ &[read-only],
111
+ &[read-only='true'],
112
+ &[readonly='true'],
113
+ &[readonly],
114
+ &.readonly {
115
+ pointer-events: none;
116
+ user-select: none;
117
+ }
118
+
119
+ // Base
120
+ &.primary {
121
+ --btn-ic: var(--primary-8);
122
+ }
123
+
124
+ &.accent {
125
+ --btn-ic: var(--accent-8);
126
+ }
127
+
128
+ &.warn {
129
+ --btn-ic: var(--warn-8);
130
+ }
131
+
132
+ &.error {
133
+ --btn-ic: var(--error-8);
134
+ }
135
+
136
+ &.success {
137
+ --btn-ic: var(--success-8);
138
+ }
139
+
140
+ &.simple,
141
+ &.outlined {
142
+ --btn-c: var(--base-12);
143
+ --btn-bg: var(--base-2);
144
+ --btn-bg-h: var(--base-3);
145
+
146
+ transition:
147
+ color 80ms linear,
148
+ background 80ms linear;
149
+
150
+ &.primary {
151
+ --loader-c: var(--primary-8);
152
+
153
+ --btn-bg: var(--primary-1);
154
+ --btn-bg-h: var(--primary-2);
155
+ --btn-bc: var(--primary-4);
156
+ }
157
+
158
+ &.accent {
159
+ --loader-c: var(--accent-8);
160
+
161
+ --btn-bg: var(--accent-1);
162
+ --btn-bg-h: var(--accent-2);
163
+ --btn-bc: var(--accent-4);
164
+ }
165
+
166
+ &.warn {
167
+ --loader-c: var(--warn-8);
168
+
169
+ --btn-bg: var(--warn-1);
170
+ --btn-bg-h: var(--warn-2);
171
+ --btn-bc: var(--warn-4);
172
+ }
173
+
174
+ &.error {
175
+ --loader-c: var(--error-8);
176
+
177
+ --btn-bg: var(--error-1);
178
+ --btn-bg-h: var(--error-2);
179
+ --btn-bc: var(--error-4);
180
+ }
181
+
182
+ &.success {
183
+ --loader-c: var(--success-8);
184
+
185
+ --btn-bg: var(--success-1);
186
+ --btn-bg-h: var(--success-2);
187
+ --btn-bc: var(--success-4);
188
+ }
189
+ }
190
+
191
+ &.simple,
192
+ &.simple.primary,
193
+ &.simple.accent,
194
+ &.simple.warn,
195
+ &.simple.error,
196
+ &.simple.success {
197
+ --btn-bc: var(--btn-bg);
198
+ }
199
+
200
+ &.simple {
201
+ &.primary {
202
+ --btn-c: var(--primary-8);
203
+ }
204
+
205
+ &.accent {
206
+ --btn-c: var(--accent-8);
207
+ }
208
+
209
+ &.warn {
210
+ --btn-c: var(--warn-8);
211
+ }
212
+
213
+ &.error {
214
+ --btn-c: var(--error-8);
215
+ }
216
+
217
+ &.success {
218
+ --btn-c: var(--success-8);
219
+ }
220
+ }
221
+
222
+ &.flat {
223
+ --loader-c: var(--base-1);
224
+ --btn-c: #fff;
225
+ --btn-ic: #fff;
226
+ --btn-bg: var(--base-8);
227
+ --btn-bg-h: #{lighten(var(--base-8), 10%)};
228
+
229
+ border: 0;
230
+
231
+ &:has(sh-icon:only-child) {
232
+ padding: p2r(0 10);
233
+ }
234
+
235
+ &.small:has(sh-icon:only-child) {
236
+ padding: p2r(0 8);
237
+ }
238
+
239
+ &.primary {
240
+ --btn-c: var(--primary-c8);
241
+ --btn-bg: var(--primary-8);
242
+ --btn-bg-h: var(--primary-6);
243
+ }
244
+
245
+ &.accent {
246
+ --btn-c: var(--accent-c8);
247
+ --btn-bg: var(--accent-8);
248
+ --btn-bg-h: var(--accent-6);
249
+ }
250
+
251
+ &.warn {
252
+ --btn-c: var(--warn-c8);
253
+ --btn-bg: var(--warn-8);
254
+ --btn-bg-h: var(--warn-6);
255
+ }
256
+
257
+ &.error {
258
+ --btn-c: var(--error-c8);
259
+ --btn-bg: var(--error-8);
260
+ --btn-bg-h: var(--error-6);
261
+ }
262
+
263
+ &.success {
264
+ --btn-c: var(--success-c8);
265
+ --btn-bg: var(--success-8);
266
+ --btn-bg-h: var(--success-6);
267
+ }
268
+ }
269
+
270
+ &.raised {
271
+ --loader-c: var(--base-1);
272
+ --btn-c: #fff;
273
+ --btn-ic: #fff;
274
+ --btn-bg: var(--base-g6);
275
+ --btn-bg-h: var(--base-g7);
276
+
277
+ border: 0;
278
+ // &:before {
279
+ // content: '';
280
+ // position: absolute;
281
+ // inset: 0;
282
+ // border-radius: inherit;
283
+ // background: linear-gradient(to bottom, #fff, #000);
284
+ // mask:
285
+ // linear-gradient(to bottom, #fff 0 0) content-box,
286
+ // linear-gradient(to bottom, #fff 0 0);
287
+ // // -webkit-mask: linear-gradient(to bottom, #fff 0 0) content-box, linear-gradient(to bottom, #fff 0 0);
288
+ // mask-composite: exclude;
289
+ // }
290
+
291
+ &:has(sh-icon:only-child) {
292
+ padding: p2r(0 10);
293
+ }
294
+
295
+ &.small:has(sh-icon:only-child) {
296
+ padding: p2r(0 8);
297
+ }
298
+
299
+ &.primary {
300
+ --btn-c: var(--primary-c8);
301
+ --btn-bg: var(--primary-g2);
302
+ --btn-bg-h: var(--primary-g3);
303
+ }
304
+
305
+ &.accent {
306
+ --btn-c: var(--accent-c8);
307
+ --btn-bg: var(--accent-g2);
308
+ --btn-bg-h: var(--accent-g3);
309
+ }
310
+
311
+ &.warn {
312
+ --btn-c: var(--warn-c8);
313
+ --btn-bg: var(--warn-g2);
314
+ --btn-bg-h: var(--warn-g3);
315
+ }
316
+
317
+ &.error {
318
+ --btn-c: var(--error-c8);
319
+ --btn-bg: var(--error-g2);
320
+ --btn-bg-h: var(--error-g3);
321
+ }
322
+
323
+ &.success {
324
+ --btn-c: var(--success-c8);
325
+ --btn-bg: var(--success-g2);
326
+ --btn-bg-h: var(--success-g3);
327
+ }
328
+ }
329
+ }
330
+ }
@@ -0,0 +1,54 @@
1
+ @use '../helpers.scss' as *;
2
+
3
+ $shipCard: true !default;
4
+
5
+ @if $shipCard == true {
6
+ sh-card {
7
+ --card-bg: var(--base-1);
8
+ --card-ibg: var(--base-2);
9
+ --card-bc: var(--base-4);
10
+ --card-sh: var(--box-shadow-10);
11
+ --card-p: #{p2r(24)};
12
+ --card-shp: #{p2r(8)};
13
+
14
+ display: block;
15
+ padding: var(--card-p);
16
+ position: relative;
17
+ z-index: 0;
18
+ border: 1px solid var(--card-bc);
19
+ box-shadow: var(--card-sh);
20
+ border-radius: var(--shape-3);
21
+ overflow: hidden;
22
+
23
+ &:before,
24
+ &:after {
25
+ content: '';
26
+ position: absolute;
27
+ }
28
+
29
+ &:before {
30
+ background-color: var(--card-bg);
31
+ inset: 0;
32
+ z-index: -2;
33
+ }
34
+
35
+ &:after {
36
+ background-color: var(--card-ibg);
37
+ border-radius: var(--shape-2);
38
+ inset: var(--card-shp);
39
+ z-index: -1;
40
+ }
41
+
42
+ &.type-b {
43
+ --card-bg: var(--base-2);
44
+ --card-ibg: var(--base-1);
45
+ --card-sh: none;
46
+ --card-shp: #{p2r(4)};
47
+ }
48
+
49
+ &.type-c {
50
+ --card-ibg: var(--card-bg);
51
+ --card-p: 0;
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,245 @@
1
+ @use '../helpers.scss' as *;
2
+
3
+ $shipCheckbox: true !default;
4
+
5
+ @if $shipCheckbox == true {
6
+ sh-checkbox {
7
+ --box-bw: #{p2r(1)};
8
+ --box-bc: var(--base-4);
9
+ --box-c: var(--base-8);
10
+ --box-bg: var(--base-2);
11
+
12
+ display: flex;
13
+ align-items: center;
14
+ gap: p2r(8);
15
+ cursor: pointer;
16
+ user-select: none;
17
+ position: relative;
18
+
19
+ > input[type='checkbox'] {
20
+ appearance: none;
21
+ position: absolute;
22
+ inset: 0;
23
+ cursor: pointer;
24
+
25
+ &:focus {
26
+ outline: none;
27
+ }
28
+ }
29
+
30
+ &:has(input[disabled]),
31
+ &[disabled]:not([disabled='false']) {
32
+ opacity: 0.5;
33
+ pointer-events: none;
34
+ user-select: none;
35
+ cursor: initial;
36
+ }
37
+
38
+ .box {
39
+ display: flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ width: p2r(20);
43
+ height: p2r(20);
44
+ cursor: pointer;
45
+ position: relative;
46
+ border-radius: var(--shape-1);
47
+ border: var(--box-bw) solid var(--box-bc);
48
+ background: var(--box-bg);
49
+ font-size: p2r(12);
50
+ color: var(--box-c);
51
+
52
+ sh-icon {
53
+ opacity: 0;
54
+ font-weight: bold;
55
+ transition: opacity 75ms linear;
56
+
57
+ &.indeterminate-indicator {
58
+ display: none;
59
+ }
60
+ }
61
+ }
62
+
63
+ &.indeterminate {
64
+ .box sh-icon {
65
+ &.indeterminate-indicator {
66
+ display: block;
67
+ }
68
+
69
+ &.default-indicator {
70
+ display: none;
71
+ }
72
+ }
73
+ }
74
+
75
+ &:has(input[type='checkbox']:checked),
76
+ &.indeterminate,
77
+ &.active {
78
+ .box sh-icon {
79
+ opacity: 1;
80
+ }
81
+ }
82
+
83
+ &:hover {
84
+ .box sh-icon {
85
+ opacity: 0.5;
86
+ }
87
+ }
88
+
89
+ &.primary {
90
+ --box-c: var(--primary-8);
91
+ }
92
+
93
+ &.accent {
94
+ --box-c: var(--accent-8);
95
+ }
96
+
97
+ &.warn {
98
+ --box-c: var(--warn-8);
99
+ }
100
+
101
+ &.error {
102
+ --box-c: var(--error-8);
103
+ }
104
+
105
+ &.success {
106
+ --box-c: var(--success-8);
107
+ }
108
+
109
+ &.simple,
110
+ &.outlined {
111
+ --box-bg: var(--base-3);
112
+ --box-bc: var(--base-6);
113
+
114
+ &.primary {
115
+ --box-bg: var(--primary-3);
116
+ --box-bc: var(--primary-6);
117
+ }
118
+
119
+ &.accent {
120
+ --box-bg: var(--accent-3);
121
+ --box-bc: var(--accent-6);
122
+ }
123
+
124
+ &.warn {
125
+ --box-bg: var(--warn-3);
126
+ --box-bc: var(--warn-6);
127
+ }
128
+
129
+ &.error {
130
+ --box-bg: var(--error-3);
131
+ --box-bc: var(--error-6);
132
+ }
133
+
134
+ &.success {
135
+ --box-bg: var(--success-3);
136
+ --box-bc: var(--success-6);
137
+ }
138
+ }
139
+
140
+ &.simple {
141
+ --box-bc: var(--box-bg);
142
+
143
+ &.primary,
144
+ &.accent,
145
+ &.warn,
146
+ &.error,
147
+ &.success {
148
+ --box-bc: var(--box-bg);
149
+ }
150
+ }
151
+
152
+ &.flat,
153
+ &.raised {
154
+ &.primary,
155
+ &.accent,
156
+ &.warn,
157
+ &.error,
158
+ &.success {
159
+ --box-bc: var(--base-4);
160
+ --box-c: var(--base-8);
161
+ --box-bg: var(--base-2);
162
+ }
163
+ }
164
+
165
+ &.flat:has(input[type='checkbox']:checked),
166
+ &.flat.indeterminate,
167
+ &.flat.active {
168
+ @extend %flat;
169
+ }
170
+
171
+ &.raised:has(input[type='checkbox']:checked),
172
+ &.raised.indeterminate,
173
+ &.raised.active {
174
+ @extend %raised;
175
+ }
176
+ }
177
+
178
+ .ship-popup-menu sh-option[selected] {
179
+ sh-checkbox {
180
+ sh-icon {
181
+ opacity: 1;
182
+ }
183
+
184
+ &.flat {
185
+ @extend %flat;
186
+ }
187
+
188
+ &.raised {
189
+ @extend %raised;
190
+ }
191
+ }
192
+ }
193
+
194
+ %flat {
195
+ --box-bw: 0;
196
+ --box-bg: var(--base-8);
197
+ --box-c: #fff;
198
+
199
+ &.primary {
200
+ --box-bg: var(--primary-8);
201
+ }
202
+
203
+ &.accent {
204
+ --box-bg: var(--accent-8);
205
+ }
206
+
207
+ &.warn {
208
+ --box-bg: var(--warn-8);
209
+ }
210
+
211
+ &.error {
212
+ --box-bg: var(--error-8);
213
+ }
214
+
215
+ &.success {
216
+ --box-bg: var(--success-8);
217
+ }
218
+ }
219
+
220
+ %raised {
221
+ --box-bw: 0;
222
+ --box-bg: var(--base-g2);
223
+ --box-c: #fff;
224
+
225
+ &.primary {
226
+ --box-bg: var(--primary-g2);
227
+ }
228
+
229
+ &.accent {
230
+ --box-bg: var(--accent-g2);
231
+ }
232
+
233
+ &.warn {
234
+ --box-bg: var(--warn-g2);
235
+ }
236
+
237
+ &.error {
238
+ --box-bg: var(--error-g2);
239
+ }
240
+
241
+ &.success {
242
+ --box-bg: var(--success-g2);
243
+ }
244
+ }
245
+ }