@imput/helium-prism 0.1.0

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 (110) hide show
  1. package/LICENSE +673 -0
  2. package/README.md +77 -0
  3. package/dist/components/Button.svelte +38 -0
  4. package/dist/components/Button.svelte.d.ts +13 -0
  5. package/dist/components/Button.svelte.d.ts.map +1 -0
  6. package/dist/components/CardLink.svelte +41 -0
  7. package/dist/components/CardLink.svelte.d.ts +11 -0
  8. package/dist/components/CardLink.svelte.d.ts.map +1 -0
  9. package/dist/components/Checkbox.svelte +151 -0
  10. package/dist/components/Checkbox.svelte.d.ts +23 -0
  11. package/dist/components/Checkbox.svelte.d.ts.map +1 -0
  12. package/dist/components/CopyIcon.svelte +71 -0
  13. package/dist/components/CopyIcon.svelte.d.ts +10 -0
  14. package/dist/components/CopyIcon.svelte.d.ts.map +1 -0
  15. package/dist/components/Dropdown.svelte +128 -0
  16. package/dist/components/Dropdown.svelte.d.ts +32 -0
  17. package/dist/components/Dropdown.svelte.d.ts.map +1 -0
  18. package/dist/components/GradientShimmer.svelte +467 -0
  19. package/dist/components/GradientShimmer.svelte.d.ts +13 -0
  20. package/dist/components/GradientShimmer.svelte.d.ts.map +1 -0
  21. package/dist/components/HeliumLogo.svelte +40 -0
  22. package/dist/components/HeliumLogo.svelte.d.ts +10 -0
  23. package/dist/components/HeliumLogo.svelte.d.ts.map +1 -0
  24. package/dist/components/Input.svelte +117 -0
  25. package/dist/components/Input.svelte.d.ts +17 -0
  26. package/dist/components/Input.svelte.d.ts.map +1 -0
  27. package/dist/components/OuterLink.svelte +30 -0
  28. package/dist/components/OuterLink.svelte.d.ts +10 -0
  29. package/dist/components/OuterLink.svelte.d.ts.map +1 -0
  30. package/dist/components/SearchBar.svelte +68 -0
  31. package/dist/components/SearchBar.svelte.d.ts +15 -0
  32. package/dist/components/SearchBar.svelte.d.ts.map +1 -0
  33. package/dist/components/Skeleton.svelte +47 -0
  34. package/dist/components/Skeleton.svelte.d.ts +10 -0
  35. package/dist/components/Skeleton.svelte.d.ts.map +1 -0
  36. package/dist/components/Spinner.svelte +44 -0
  37. package/dist/components/Spinner.svelte.d.ts +9 -0
  38. package/dist/components/Spinner.svelte.d.ts.map +1 -0
  39. package/dist/components/Text.svelte +83 -0
  40. package/dist/components/Text.svelte.d.ts +24 -0
  41. package/dist/components/Text.svelte.d.ts.map +1 -0
  42. package/dist/components/Toggle.svelte +109 -0
  43. package/dist/components/Toggle.svelte.d.ts +19 -0
  44. package/dist/components/Toggle.svelte.d.ts.map +1 -0
  45. package/dist/components/Tooltip.svelte +130 -0
  46. package/dist/components/Tooltip.svelte.d.ts +10 -0
  47. package/dist/components/Tooltip.svelte.d.ts.map +1 -0
  48. package/dist/components/icons/IconArrowDown.svelte +15 -0
  49. package/dist/components/icons/IconArrowDown.svelte.d.ts +27 -0
  50. package/dist/components/icons/IconArrowDown.svelte.d.ts.map +1 -0
  51. package/dist/components/icons/IconArrowLeft.svelte +15 -0
  52. package/dist/components/icons/IconArrowLeft.svelte.d.ts +27 -0
  53. package/dist/components/icons/IconArrowLeft.svelte.d.ts.map +1 -0
  54. package/dist/components/icons/IconArrowRight.svelte +15 -0
  55. package/dist/components/icons/IconArrowRight.svelte.d.ts +27 -0
  56. package/dist/components/icons/IconArrowRight.svelte.d.ts.map +1 -0
  57. package/dist/components/icons/IconArrowUp.svelte +15 -0
  58. package/dist/components/icons/IconArrowUp.svelte.d.ts +27 -0
  59. package/dist/components/icons/IconArrowUp.svelte.d.ts.map +1 -0
  60. package/dist/components/icons/IconBang.svelte +16 -0
  61. package/dist/components/icons/IconBang.svelte.d.ts +27 -0
  62. package/dist/components/icons/IconBang.svelte.d.ts.map +1 -0
  63. package/dist/components/icons/IconCheck.svelte +13 -0
  64. package/dist/components/icons/IconCheck.svelte.d.ts +27 -0
  65. package/dist/components/icons/IconCheck.svelte.d.ts.map +1 -0
  66. package/dist/components/icons/IconChevronDown.svelte +13 -0
  67. package/dist/components/icons/IconChevronDown.svelte.d.ts +27 -0
  68. package/dist/components/icons/IconChevronDown.svelte.d.ts.map +1 -0
  69. package/dist/components/icons/IconCopy.svelte +18 -0
  70. package/dist/components/icons/IconCopy.svelte.d.ts +27 -0
  71. package/dist/components/icons/IconCopy.svelte.d.ts.map +1 -0
  72. package/dist/components/icons/IconDownload.svelte +15 -0
  73. package/dist/components/icons/IconDownload.svelte.d.ts +27 -0
  74. package/dist/components/icons/IconDownload.svelte.d.ts.map +1 -0
  75. package/dist/components/icons/IconExternalLink.svelte +15 -0
  76. package/dist/components/icons/IconExternalLink.svelte.d.ts +27 -0
  77. package/dist/components/icons/IconExternalLink.svelte.d.ts.map +1 -0
  78. package/dist/components/icons/IconInfo.svelte +15 -0
  79. package/dist/components/icons/IconInfo.svelte.d.ts +27 -0
  80. package/dist/components/icons/IconInfo.svelte.d.ts.map +1 -0
  81. package/dist/components/icons/IconLink.svelte +15 -0
  82. package/dist/components/icons/IconLink.svelte.d.ts +27 -0
  83. package/dist/components/icons/IconLink.svelte.d.ts.map +1 -0
  84. package/dist/components/icons/IconLoader.svelte +13 -0
  85. package/dist/components/icons/IconLoader.svelte.d.ts +27 -0
  86. package/dist/components/icons/IconLoader.svelte.d.ts.map +1 -0
  87. package/dist/components/icons/IconSearch.svelte +14 -0
  88. package/dist/components/icons/IconSearch.svelte.d.ts +27 -0
  89. package/dist/components/icons/IconSearch.svelte.d.ts.map +1 -0
  90. package/dist/components/icons/IconWorld.svelte +17 -0
  91. package/dist/components/icons/IconWorld.svelte.d.ts +27 -0
  92. package/dist/components/icons/IconWorld.svelte.d.ts.map +1 -0
  93. package/dist/components/icons/IconX.svelte +14 -0
  94. package/dist/components/icons/IconX.svelte.d.ts +27 -0
  95. package/dist/components/icons/IconX.svelte.d.ts.map +1 -0
  96. package/dist/components/icons/LICENSE +21 -0
  97. package/dist/components/logos/HeliumLogoRaw.svelte +6 -0
  98. package/dist/components/logos/HeliumLogoRaw.svelte.d.ts +27 -0
  99. package/dist/components/logos/HeliumLogoRaw.svelte.d.ts.map +1 -0
  100. package/dist/components/logos/HeliumTextRaw.svelte +16 -0
  101. package/dist/components/logos/HeliumTextRaw.svelte.d.ts +27 -0
  102. package/dist/components/logos/HeliumTextRaw.svelte.d.ts.map +1 -0
  103. package/dist/gradient-shimmer.d.ts +85 -0
  104. package/dist/gradient-shimmer.d.ts.map +1 -0
  105. package/dist/gradient-shimmer.js +227 -0
  106. package/dist/index.d.ts +32 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +33 -0
  109. package/dist/styles.css +386 -0
  110. package/package.json +54 -0
@@ -0,0 +1,386 @@
1
+ :root {
2
+ --font: "Instrument Sans Variable", system-ui, Helvetica, Arial, sans-serif;
3
+
4
+ --primary: #0d1c64;
5
+ --secondary: #475a7f;
6
+ --tertiary: #646f9a;
7
+ --white: #ffffff;
8
+
9
+ --helium-blue: #3450d1;
10
+ --helium-blue-hover: #3a58db;
11
+ --helium-blue-press: #304bc2;
12
+
13
+ --bg-surface: #fbfcff;
14
+ --bg-gradient-start: #f4f7ff;
15
+ --bg-gradient-end: #acbbff;
16
+ --background: var(--bg-gradient-start);
17
+
18
+ --tooltip-bg: #eaedfd;
19
+ --tooltip-shadow: color-mix(in srgb, #9ba6d8 50%, transparent);
20
+
21
+ --helium-elevated: #3450d1;
22
+ --helium-elevated-5: color-mix(in srgb, var(--helium-elevated) 5%, transparent);
23
+ --helium-elevated-7: color-mix(in srgb, var(--helium-elevated) 7%, transparent);
24
+ --helium-elevated-10: color-mix(in srgb, var(--helium-elevated) 10%, transparent);
25
+ --helium-elevated-15: color-mix(in srgb, var(--helium-elevated) 15%, transparent);
26
+ --helium-elevated-20: color-mix(in srgb, var(--helium-elevated) 20%, transparent);
27
+ --helium-elevated-25: color-mix(in srgb, var(--helium-elevated) 25%, transparent);
28
+ --helium-elevated-30: color-mix(in srgb, var(--helium-elevated) 30%, transparent);
29
+ --helium-elevated-40: color-mix(in srgb, var(--helium-elevated) 40%, transparent);
30
+ --helium-elevated-50: color-mix(in srgb, var(--helium-elevated) 50%, transparent);
31
+
32
+ --gap: 6px;
33
+ --gap-1: 12px;
34
+ --gap-2: 20px;
35
+ --content-padding: 32px;
36
+ --section-padding: 48px;
37
+
38
+ --mid-border-radius: 12px;
39
+ --card-border-radius: 20px;
40
+ --shimmer-size: 350px;
41
+
42
+ --glass-filter: blur(12px) saturate(110%);
43
+
44
+ font-family: var(--font);
45
+ line-height: 120%;
46
+ font-weight: 500;
47
+ letter-spacing: -1%;
48
+
49
+ color: var(--primary);
50
+ font-synthesis: none;
51
+ text-rendering: optimizeLegibility;
52
+ -webkit-font-smoothing: antialiased;
53
+ -moz-osx-font-smoothing: grayscale;
54
+ }
55
+
56
+ @media (prefers-color-scheme: dark) {
57
+ :root {
58
+ --primary: #e3e6f2;
59
+ --secondary: #8f9bcb;
60
+ --tertiary: #7985b2;
61
+ --white: var(--primary);
62
+
63
+ --tooltip-bg: #1d2a5d;
64
+ --tooltip-shadow: color-mix(in srgb, var(--tooltip-bg) 40%, transparent);
65
+
66
+ --bg-surface: #0e1123;
67
+ --bg-gradient-start: #151932;
68
+ --bg-gradient-end: #2d3c7f;
69
+ --background: var(--bg-gradient-start);
70
+
71
+ --helium-elevated: #b3beec;
72
+ --glass-filter: blur(12px);
73
+ }
74
+ }
75
+
76
+ * {
77
+ box-sizing: border-box;
78
+ -webkit-tap-highlight-color: transparent;
79
+ }
80
+
81
+ *::-webkit-scrollbar {
82
+ display: none;
83
+ }
84
+
85
+ html {
86
+ background: var(--bg-gradient-start);
87
+ }
88
+
89
+ ::selection {
90
+ color: var(--primary);
91
+ background-color: var(--helium-elevated-30);
92
+ }
93
+
94
+ input {
95
+ font-family: var(--font);
96
+ }
97
+
98
+ body {
99
+ margin: 0;
100
+ color: var(--primary);
101
+ background: var(--background);
102
+ font-family: var(--font);
103
+ }
104
+
105
+ h1,
106
+ h2,
107
+ h3,
108
+ h4,
109
+ h5,
110
+ h6 {
111
+ font-weight: 500;
112
+ margin-block: 0;
113
+ margin-inline: 0;
114
+ line-height: 120%;
115
+ }
116
+
117
+ h1,
118
+ h2 {
119
+ letter-spacing: -2%;
120
+ line-height: 110%;
121
+ }
122
+
123
+ h1 {
124
+ font-size: 43px;
125
+ }
126
+
127
+ h2 {
128
+ font-size: 36px;
129
+ }
130
+
131
+ h3 {
132
+ font-size: 24px;
133
+ }
134
+
135
+ h4 {
136
+ font-size: 17px;
137
+ }
138
+
139
+ h5 {
140
+ font-size: 14px;
141
+ }
142
+
143
+ h6 {
144
+ font-size: 12px;
145
+ }
146
+
147
+ p,
148
+ a,
149
+ li {
150
+ margin: 0;
151
+ font-size: 16px;
152
+ line-height: 122%;
153
+ color: var(--secondary);
154
+ }
155
+
156
+ strong {
157
+ font-weight: 600;
158
+ }
159
+
160
+ h1,
161
+ h2,
162
+ p {
163
+ white-space: pre-line;
164
+ }
165
+
166
+ a {
167
+ color: inherit;
168
+ text-underline-offset: 4px;
169
+
170
+ &:not(.button):focus-visible {
171
+ border-radius: 5px;
172
+ }
173
+ }
174
+
175
+ svg,
176
+ img {
177
+ pointer-events: none;
178
+ user-select: none;
179
+ -webkit-user-select: none;
180
+ -webkit-user-drag: none;
181
+ }
182
+
183
+ button {
184
+ appearance: none;
185
+ letter-spacing: inherit;
186
+ word-spacing: unset;
187
+ line-height: inherit;
188
+ text-indent: 0;
189
+ text-shadow: none;
190
+ text-align: center;
191
+ cursor: pointer;
192
+ box-sizing: border-box;
193
+ margin: 0;
194
+ padding-block: 0;
195
+ padding-inline: 0;
196
+ border: none;
197
+ font-family: inherit;
198
+ font-weight: inherit;
199
+ }
200
+
201
+ button,
202
+ .button {
203
+ --size: 38px;
204
+
205
+ color: var(--primary);
206
+ background-color: var(--helium-elevated-7);
207
+ font-size: 16px;
208
+ white-space: nowrap;
209
+ min-height: 38px;
210
+ padding: 9px 16px;
211
+ border-radius: var(--size);
212
+ transition: 0.2s background-color, 0.2s transform, 0.2s opacity;
213
+ will-change: transform;
214
+ display: inline-flex;
215
+ align-items: center;
216
+ gap: 7px;
217
+ user-select: none;
218
+ -webkit-user-select: none;
219
+ -webkit-user-drag: none;
220
+
221
+ &:hover {
222
+ background-color: var(--helium-elevated-10);
223
+ }
224
+
225
+ &:active {
226
+ background-color: var(--helium-elevated-15);
227
+ transform: scale(0.97);
228
+ }
229
+
230
+ &.primary {
231
+ color: var(--white);
232
+ background-color: var(--helium-blue);
233
+
234
+ &:hover {
235
+ background-color: var(--helium-blue-hover);
236
+ }
237
+
238
+ &:active {
239
+ background-color: var(--helium-blue-press);
240
+ }
241
+ }
242
+
243
+ &.circle {
244
+ height: var(--size);
245
+ width: var(--size);
246
+ padding: 0;
247
+ justify-content: center;
248
+ }
249
+
250
+ &.card {
251
+ --text-white-space: normal;
252
+
253
+ min-height: 0;
254
+ width: 100%;
255
+ text-align: left;
256
+ white-space: normal;
257
+ border-radius: 14px;
258
+ padding: 14px 18px;
259
+ gap: var(--gap-1);
260
+
261
+ &:active {
262
+ transform: none;
263
+ }
264
+
265
+ & svg {
266
+ flex: 0 0 auto;
267
+ width: 21px;
268
+ height: 21px;
269
+ }
270
+ }
271
+
272
+ &:not(.card):not(.circle):has(svg) {
273
+ padding-inline-start: 14px;
274
+ }
275
+
276
+ &:disabled {
277
+ color: var(--tertiary);
278
+ background-color: var(--helium-elevated-5);
279
+ pointer-events: none;
280
+
281
+ &:not(.selected) {
282
+ box-shadow: none;
283
+ }
284
+ }
285
+
286
+ &.selected {
287
+ box-shadow: 0 0 0 1px var(--primary) inset, 0 0 0 1px var(--primary);
288
+ }
289
+
290
+ & svg {
291
+ height: 18px;
292
+ width: 18px;
293
+ stroke-width: 1.8px;
294
+ }
295
+ }
296
+
297
+ a.button {
298
+ text-decoration: none;
299
+ }
300
+
301
+ button:focus-visible,
302
+ .button:focus-visible,
303
+ a:focus-visible {
304
+ outline: 2px var(--primary) solid;
305
+ outline-offset: 3px;
306
+ }
307
+
308
+ .action-buttons {
309
+ display: flex;
310
+ gap: var(--gap);
311
+
312
+ & > button,
313
+ & > .button {
314
+ border-radius: 30px;
315
+ }
316
+ }
317
+
318
+ .input-field,
319
+ .dropdown {
320
+ color: var(--primary);
321
+ border-radius: 12px;
322
+ align-items: center;
323
+ transition: 0.2s background-color, 0.1s outline-color, 0.1s box-shadow;
324
+ }
325
+
326
+ .input-field,
327
+ .dropdown {
328
+ background-color: var(--helium-elevated-7);
329
+ display: inline-flex;
330
+
331
+ &:hover,
332
+ &:focus-within {
333
+ background-color: var(--helium-elevated-10);
334
+ }
335
+
336
+ &:focus-within {
337
+ outline: 2px var(--primary) solid;
338
+ outline-offset: -1px;
339
+ }
340
+ }
341
+
342
+ .input-field {
343
+ gap: 9px;
344
+ width: 100%;
345
+ cursor: text;
346
+ }
347
+
348
+ :where(.input-field input, .dropdown select) {
349
+ appearance: none;
350
+ min-width: 0;
351
+ width: 100%;
352
+ color: inherit;
353
+ background: none;
354
+ border: none;
355
+ outline: none;
356
+ font: inherit;
357
+ font-weight: 500;
358
+ letter-spacing: inherit;
359
+ }
360
+
361
+ :where(.input-field input)::placeholder {
362
+ color: var(--tertiary);
363
+ font-weight: 500;
364
+ user-select: none;
365
+ -webkit-user-select: none;
366
+ }
367
+
368
+ .input-field.disabled,
369
+ .dropdown.disabled {
370
+ cursor: not-allowed;
371
+ opacity: 0.5;
372
+ pointer-events: none;
373
+ }
374
+
375
+ .glass-children {
376
+ & > * button:not(.primary),
377
+ & > * .button:not(.primary),
378
+ & > * .checkbox-control,
379
+ & > * .input-field,
380
+ & > * .dropdown,
381
+ & > * .skeleton {
382
+ --helium-elevated-7: color-mix(in srgb, var(--helium-elevated) 9%, transparent);
383
+
384
+ backdrop-filter: var(--glass-filter);
385
+ }
386
+ }
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@imput/helium-prism",
3
+ "version": "0.1.0",
4
+ "description": "Shared UI components of Helium web interfaces for Svelte",
5
+ "type": "module",
6
+ "license": "GPL-3.0-only",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/imputnet/helium-prism.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/imputnet/helium-prism/issues"
13
+ },
14
+ "homepage": "https://github.com/imputnet/helium-prism#readme",
15
+ "sideEffects": [
16
+ "**/*.css",
17
+ "**/*.svelte"
18
+ ],
19
+ "svelte": "./dist/index.js",
20
+ "types": "./dist/index.d.ts",
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "svelte": "./dist/index.js",
25
+ "default": "./dist/index.js"
26
+ },
27
+ "./styles.css": "./dist/styles.css",
28
+ "./package.json": "./package.json"
29
+ },
30
+ "files": [
31
+ "dist"
32
+ ],
33
+ "peerDependencies": {
34
+ "svelte": ">=5.20.0"
35
+ },
36
+ "devDependencies": {
37
+ "@sveltejs/package": "^2.0.0",
38
+ "@sveltejs/vite-plugin-svelte": "^5.0.0",
39
+ "svelte": "^5.20.0",
40
+ "svelte-check": "^4.0.0",
41
+ "typescript": "^5.6.0",
42
+ "vite": "^6.0.0"
43
+ },
44
+ "engines": {
45
+ "node": ">=20"
46
+ },
47
+ "scripts": {
48
+ "check": "svelte-check --tsconfig ./tsconfig.json",
49
+ "dev": "vite",
50
+ "generate:index": "deno run --allow-read=src/lib/components --allow-write=src/lib/index.ts scripts/generate-index.ts",
51
+ "pack:dry-run": "pnpm pack --dry-run",
52
+ "package": "svelte-package --input src/lib --tsconfig ./tsconfig.json && cp src/css/styles.css dist/styles.css"
53
+ }
54
+ }