digital-zen-pack 0.0.1 → 0.0.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.
package/dist/main.d.ts ADDED
@@ -0,0 +1 @@
1
+ import './style.scss';
package/dist/main.js ADDED
@@ -0,0 +1 @@
1
+ import './style.scss';
package/dist/style.css ADDED
@@ -0,0 +1,2 @@
1
+ @import url(./styles/_variables.scss);
2
+ @import url(./styles/_components.scss);
package/package.json CHANGED
@@ -1,15 +1,24 @@
1
1
  {
2
2
  "name": "digital-zen-pack",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "type": "module",
5
+ "main": "./dist/main.js",
6
+ "types": "./dist/main.d.ts",
7
+ "exports": {
8
+ ".": "./dist/main.js",
9
+ "./style.css": "./dist/style.css"
10
+ },
11
+ "files": [
12
+ "dist"
13
+ ],
5
14
  "devDependencies": {
6
15
  "sass": "^1.97.2",
7
16
  "typescript": "~5.9.3",
8
17
  "vite": "^7.2.4"
9
18
  },
10
19
  "scripts": {
11
- "dev": "vite",
12
- "build": "tsc && vite build",
13
- "preview": "vite preview"
20
+ "build:js": "tsc",
21
+ "build:css": "sass src/style.scss dist/style.css --no-source-map",
22
+ "build": "pnpm run build:js && pnpm run build:css"
14
23
  }
15
24
  }
package/index.html DELETED
@@ -1,12 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <title>digital-zen-pack</title>
7
- </head>
8
- <body>
9
- <div id="app"></div>
10
- <script type="module" src="/src/main.ts"></script>
11
- </body>
12
- </html>
package/src/main.ts DELETED
@@ -1 +0,0 @@
1
- import './style.scss'
package/src/style.scss DELETED
@@ -1,2 +0,0 @@
1
- @import url(./styles/_variables.scss);
2
- @import url(./styles/_components.scss);
@@ -1,500 +0,0 @@
1
- .dz-button {
2
- display: flex;
3
- gap: var(--button-text-icon-gap);
4
- align-items: center;
5
- border-radius: var(--radius);
6
- padding: var(--spacing);
7
- font-size: var(--font-size-md);
8
- cursor: pointer;
9
- background-color: var(--color-component-bg-light);
10
- color: var(--color-component-text-light);
11
- justify-content: center;
12
-
13
- &--xs {
14
- height: var(--btn-size-xs);
15
- padding: var(--spacing-xs);
16
- border-radius: var(--radius-xs);
17
- }
18
- &--sm {
19
- height: var(--btn-size-sm);
20
- padding: var(--spacing-sm);
21
- }
22
- &--md {
23
- height: var(--btn-size-md);
24
- padding: var(--spacing-md);
25
- }
26
- &--lg {
27
- height: var(--btn-size-lg);
28
- padding: var(--spacing-lg);
29
- }
30
- &--xl {
31
- height: var(--btn-size-xl);
32
- padding: var(--spacing-xl);
33
- }
34
- &--xxl {
35
- height: var(--btn-size-xxl);
36
- padding: var(--spacing-xxl);
37
- }
38
-
39
- &--round,
40
- &--square {
41
- aspect-ratio: 1 / 1;
42
- }
43
-
44
- &--round {
45
- border-radius: 99999px;
46
- }
47
-
48
- &--activated {
49
- background-color: var(--color-zen-accent);
50
- color: var(--color-on-accent);
51
- }
52
-
53
- &--error {
54
- background-color: var(--color-zen-error);
55
- color: var(--color-on-accent);
56
- }
57
-
58
- &--ghost {
59
- background-color: transparent;
60
- color: var(--color-component-bg-dark);
61
- border: 1px solid var(--color-component-bg-dark);
62
- }
63
-
64
- &.dz-button--ghost {
65
- &.dz-button--activated {
66
- background-color: transparent;
67
- color: var(--color-zen-accent);
68
- border: 1px solid var(--color-zen-accent);
69
- }
70
- }
71
-
72
- &.dz-button--ghost {
73
- &.dz-button--error {
74
- background-color: transparent;
75
- color: var(--color-zen-error);
76
- border: 1px solid var(--color-zen-error);
77
- }
78
- }
79
-
80
- &:disabled {
81
- cursor: not-allowed;
82
- pointer-events: none;
83
- filter: grayscale(50%);
84
- }
85
- }
86
-
87
- .dz-icon {
88
- height: var(--icon-height);
89
- aspect-ratio: 1 / 1;
90
-
91
- use {
92
- width: 100%;
93
- height: 100%;
94
- }
95
-
96
- &--shadow {
97
- filter: drop-shadow(0 1px 1px var(--color-component-text-light));
98
- }
99
- }
100
-
101
- .dz-form {
102
- display: flex;
103
- flex-direction: column;
104
- align-items: center;
105
- width: 100%;
106
-
107
- &--text-start {
108
- justify-content: flex-start;
109
- text-align: start;
110
- }
111
-
112
- &__error {
113
- width: 100%;
114
- margin: var(--list-gap) 0;
115
- }
116
- }
117
-
118
- .dz-input {
119
- display: block;
120
- width: 100%;
121
- height: var(--btn-size-md);
122
- padding: var(--spacing);
123
- border-radius: var(--radius);
124
- border: 2px solid var(--color-zen-accent);
125
- outline: none;
126
- background-color: var(--color-component-bg-light);
127
- color: var(--color-component-text-light);
128
- box-shadow: 0 0 var(--shadow-blur) var(--shadow-color);
129
- transition:
130
- background-color 0.2s ease,
131
- color 0.2s ease,
132
- box-shadow 0.2s ease;
133
- font-size: var(--font-size-sm);
134
-
135
- &::placeholder {
136
- color: var(--color-component-text-light);
137
- opacity: 0.6;
138
- font-size: var(--font-size-xs);
139
- }
140
-
141
- &:focus {
142
- box-shadow: 0 0 0 1px var(--color-zen-accent);
143
- }
144
-
145
- &--invalid {
146
- border: 2px solid var(--color-zen-error);
147
-
148
- &:focus {
149
- box-shadow: 0 0 0 1px var(--color-zen-error);
150
- }
151
- }
152
-
153
- &--textarea {
154
- height: auto;
155
- min-height: calc(var(--btn-size-md) + 1px);
156
- padding: var(--spacing);
157
- resize: vertical;
158
- }
159
-
160
- &::-webkit-calendar-picker-indicator {
161
- mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 24 24' %3E%3Cg%3E%3Cpath d='M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
162
- background-repeat: no-repeat;
163
- background-image: none;
164
- background-color: currentColor;
165
- cursor: pointer;
166
- }
167
-
168
- &--fit {
169
- width: max-content;
170
- }
171
-
172
- &--borderless {
173
- border: none;
174
- }
175
- }
176
-
177
- .dz-list,
178
- .dz-form {
179
- display: flex;
180
- gap: var(--list-gap);
181
- flex-wrap: wrap;
182
- flex-direction: column;
183
-
184
- &--horizontal {
185
- flex-direction: row;
186
- }
187
-
188
- &--fit {
189
- width: max-content;
190
- }
191
-
192
- &--full {
193
- width: 100%;
194
- }
195
- }
196
-
197
- .dz-form {
198
- &__field {
199
- width: 100%;
200
- text-align: start;
201
- }
202
-
203
- &__hint {
204
- width: 100%;
205
- font-size: var(--font-size-xs);
206
- color: var(--color-glass-text);
207
- }
208
-
209
- &__required {
210
- color: var(--color-zen-error);
211
- }
212
-
213
- &--fit {
214
- width: max-content;
215
- }
216
-
217
- &__actions {
218
- display: flex;
219
- gap: var(--spacing);
220
- justify-content: flex-end;
221
- width: 100%;
222
- margin-top: var(--spacing);
223
- }
224
- }
225
-
226
- .dz-box {
227
- width: 100%;
228
- padding: var(--spacing);
229
- border-radius: var(--radius);
230
-
231
- &--fit {
232
- width: max-content;
233
- }
234
-
235
- &--colored {
236
- background-color: var(--color-component-bg-dark);
237
- color: var(--color-component-text-dark);
238
- }
239
- }
240
-
241
- .dz-placeholder {
242
- position: relative;
243
- padding: var(--spacing);
244
- display: flex;
245
- flex-direction: column;
246
- align-items: center;
247
- justify-content: center;
248
- gap: var(--spacing);
249
- width: 100%;
250
- min-height: var(--placeholder-height);
251
- border-radius: var(--radius);
252
- background-color: var(--color-component-bg-light);
253
- color: var(--color-component-text-light);
254
- text-align: center;
255
- font-size: var(--font-size-sm);
256
- font-style: italic;
257
- opacity: 0.85;
258
- transition:
259
- opacity 0.2s ease,
260
- background-color 0.2s ease,
261
- box-shadow 0.3s ease;
262
-
263
- &.shadow {
264
- box-shadow: 0 2px 6px var(--shadow-color);
265
- }
266
-
267
- &--fit {
268
- width: max-content;
269
- }
270
-
271
- &--accent {
272
- background-color: var(--color-zen-accent);
273
- color: var(--color-on-accent);
274
- }
275
-
276
- &--error {
277
- background-color: var(--color-zen-error);
278
- color: var(--color-on-accent);
279
- }
280
-
281
- &--warn {
282
- background-color: var(--color-zen-warn);
283
- color: var(--color-on-warn);
284
- }
285
-
286
- .dz-placeholder__icon {
287
- width: var(--btn-size-md);
288
- }
289
-
290
- .dz-placeholder__text {
291
- max-width: 80%;
292
- }
293
- }
294
-
295
- .dz-accordion {
296
- width: 100%;
297
- border-radius: var(--radius);
298
- background-color: var(--color-component-bg-light);
299
- color: var(--color-component-text-light);
300
- box-shadow: 0 2px 4px var(--shadow-color);
301
- overflow: hidden;
302
- transition: background-color 0.3s ease;
303
-
304
- &[open] {
305
- background-color: var(--color-component-bg-dark);
306
- color: var(--color-component-text-dark);
307
-
308
- .dz-accordion__icon {
309
- transform: rotate(180deg);
310
- }
311
- }
312
-
313
- &__header {
314
- display: flex;
315
- justify-content: space-between;
316
- align-items: center;
317
- padding: var(--spacing);
318
- cursor: pointer;
319
- list-style: none;
320
- transition: background-color 0.3s ease;
321
- font-size: var(--font-size-md);
322
-
323
- &::-webkit-details-marker {
324
- display: none;
325
- }
326
- }
327
-
328
- &__icon {
329
- display: flex;
330
- align-items: center;
331
- justify-content: center;
332
- transition: transform 0.3s ease;
333
- width: var(--btn-size-xs);
334
- }
335
-
336
- &__content {
337
- padding: var(--spacing);
338
- font-size: var(--font-size-sm);
339
- border-top: 1px solid var(--color-glass-text);
340
- }
341
- }
342
-
343
- .dz-accordion--sm .dz-accordion__header {
344
- padding: var(--spacing-sm);
345
- font-size: var(--font-size-sm);
346
- }
347
-
348
- .dz-accordion--lg .dz-accordion__header {
349
- padding: var(--spacing-lg);
350
- font-size: var(--font-size-lg);
351
- }
352
-
353
- .dz-accordion--accent {
354
- border: 1px solid var(--color-zen-accent);
355
-
356
- &[open] {
357
- background-color: var(--color-zen-accent);
358
- color: var(--color-on-accent);
359
- }
360
- }
361
-
362
- .dz-accordion--error {
363
- border: 1px solid var(--color-zen-error);
364
-
365
- &[open] {
366
- background-color: var(--color-zen-error);
367
- color: var(--color-on-accent);
368
- }
369
- }
370
-
371
- .dz-fieldset {
372
- display: flex;
373
- padding: var(--spacing-md);
374
- border: none;
375
- border-radius: var(--radius);
376
- background-color: var(--color-component-bg-light);
377
- color: var(--color-component-text-light);
378
- flex-direction: column;
379
- align-items: center;
380
- justify-content: center;
381
- gap: var(--spacing);
382
-
383
- &--fit {
384
- max-width: max-content;
385
- }
386
-
387
- &.dz-fieldset--dark {
388
- background-color: var(--color-component-bg-dark);
389
- color: var(--color-component-text-dark);
390
- border-color: var(--color-component-bg-light);
391
- }
392
-
393
- &__legend {
394
- font-size: var(--font-size-sm);
395
- font-weight: 600;
396
- padding: 0 var(--spacing-sm);
397
- color: var(--color-text);
398
-
399
- &--error {
400
- color: var(--color-zen-error);
401
- }
402
-
403
- &--accent {
404
- color: var(--color-zen-accent);
405
- }
406
- }
407
- }
408
-
409
- .dz-banner {
410
- display: flex;
411
- align-items: center;
412
- gap: var(--spacing);
413
- width: 100%;
414
- padding: var(--spacing);
415
- border-radius: var(--radius);
416
- font-size: var(--font-size-sm);
417
- border-left: 4px solid transparent;
418
- transition:
419
- background-color 0.2s ease,
420
- color 0.2s ease,
421
- border-color 0.2s ease;
422
-
423
- &__icon {
424
- flex-shrink: 0;
425
- width: var(--btn-size-sm);
426
- height: var(--btn-size-sm);
427
- display: flex;
428
- align-items: center;
429
- justify-content: center;
430
- }
431
-
432
- &__content {
433
- flex: 1;
434
- display: flex;
435
- flex-direction: column;
436
- gap: var(--spacing-xs);
437
- }
438
-
439
- &__title {
440
- font-weight: 600;
441
- font-size: var(--font-size-md);
442
- }
443
-
444
- &__message {
445
- font-size: var(--font-size-sm);
446
- line-height: 1.4;
447
- }
448
-
449
- &--info {
450
- background-color: var(--color-zen-accent);
451
- color: var(--color-on-accent);
452
- border-left-color: var(--color-zen-accent);
453
- }
454
-
455
- &--success {
456
- background-color: var(--color-zen-success);
457
- color: var(--color-on-success);
458
- border-left-color: var(--color-zen-success);
459
- }
460
-
461
- &--warn {
462
- background-color: var(--color-zen-warn);
463
- color: var(--color-on-warn);
464
- border-left-color: var(--color-zen-warn);
465
- }
466
-
467
- &--error {
468
- background-color: var(--color-zen-error);
469
- color: var(--color-on-accent);
470
- border-left-color: var(--color-zen-error);
471
- }
472
-
473
- &--sm {
474
- padding: var(--spacing-sm);
475
- font-size: var(--font-size-xs);
476
-
477
- .dz-banner__icon {
478
- width: var(--btn-size-xs);
479
- height: var(--btn-size-xs);
480
- }
481
-
482
- .dz-banner__title {
483
- font-size: var(--font-size-sm);
484
- }
485
- }
486
-
487
- &--lg {
488
- padding: var(--spacing-lg);
489
- font-size: var(--font-size-md);
490
-
491
- .dz-banner__icon {
492
- width: var(--btn-size-md);
493
- height: var(--btn-size-md);
494
- }
495
-
496
- .dz-banner__title {
497
- font-size: var(--font-size-lg);
498
- }
499
- }
500
- }
@@ -1,75 +0,0 @@
1
- .shadow {
2
- box-shadow: 0 4px 6px var(--shadow-color);
3
- transition:
4
- transform 0.3s,
5
- box-shadow 0.3s;
6
-
7
- &:hover {
8
- box-shadow: 0 6px 8px var(--shadow-color);
9
-
10
- &:has(.shadow:hover) {
11
- box-shadow: 0 4px 6px var(--shadow-color);
12
- }
13
- }
14
-
15
- &--activated {
16
- box-shadow: 0 4px 6px var(--color-zen-accent);
17
-
18
- &:hover {
19
- box-shadow: 0 6px 8px var(--color-zen-accent);
20
-
21
- &:has(.shadow:hover) {
22
- box-shadow: 0 4px 6px var(--color-zen-accent);
23
- }
24
- }
25
- }
26
-
27
- &--hoverless {
28
- &:hover {
29
- box-shadow: 0 4px 6px var(--shadow-color);
30
- }
31
- }
32
- }
33
-
34
- @keyframes pulse {
35
- 0% {
36
- transform: scale(1);
37
- }
38
- 70% {
39
- transform: scale(1.3);
40
- }
41
- 100% {
42
- transform: scale(1);
43
- }
44
- }
45
-
46
- .pulse {
47
- animation: pulse 3s infinite;
48
- }
49
-
50
- @keyframes rotate {
51
- 0% {
52
- transform: rotate(0deg);
53
- }
54
- 100% {
55
- transform: rotate(360deg);
56
- }
57
- }
58
-
59
- .rotate {
60
- animation: rotate 2s linear infinite;
61
- }
62
-
63
- .round {
64
- border-radius: 99999px;
65
- }
66
-
67
- .hidden {
68
- display: none !important;
69
- pointer-events: none !important;
70
- height: 0 !important;
71
- width: 0 !important;
72
- margin: 0 !important;
73
- padding: 0 !important;
74
- overflow: hidden !important;
75
- }
@@ -1,65 +0,0 @@
1
- :root {
2
- /* Цветовые токены */
3
- --color-background: #f9fafc;
4
- --color-text: #334155;
5
- --color-zen-accent: #ac37ff;
6
- --color-zen-warn: #d3b334;
7
- --color-zen-error: #d33434;
8
- --color-zen-success: #22a865;
9
- --color-on-warn: #475569;
10
- --color-on-accent: #f1f5f9;
11
- --color-on-success: #f1f5f9;
12
- --color-component-bg-light: #f1f5f9;
13
- --color-component-text-light: #475569;
14
- --color-component-bg-dark: #334155;
15
- --color-component-text-dark: #f1f5f9;
16
- --color-glass-text: rgba(71, 85, 105, 0.5);
17
-
18
- /* Размеры кнопок */
19
- --btn-size-xs: 24px;
20
- --btn-size-sm: 32px;
21
- --btn-size-md: 48px;
22
- --btn-size-lg: 64px;
23
- --btn-size-xl: 96px;
24
- --btn-size-xxl: 130px;
25
-
26
- /* Размеры текста */
27
- --font-size-xxs: 10px;
28
- --font-size-xs: 12px;
29
- --font-size-sm: 14px;
30
- --font-size-md: 16px;
31
- --font-size-lg: 18px;
32
- --font-size-xl: 20px;
33
- --font-size-xxl: 24px;
34
-
35
- /* Общие переменные */
36
- --spacing: 8px;
37
- --radius: 12px;
38
- --radius-xs: 8px;
39
- --spacing-xs: 4px;
40
- --spacing-sm: 6px;
41
- --spacing-md: 12px;
42
- --spacing-lg: 16px;
43
- --spacing-xl: 24px;
44
- --spacing-xxl: 32px;
45
- --icon-height: 100%;
46
- --shadow-color: rgba(0, 0, 0, 0.25);
47
- --shadow-blur: 12px;
48
- --shadow-translate-width: 2px;
49
- --list-gap: 0.5rem;
50
- --loader-size: 24px;
51
- --button-text-icon-gap: 0.5rem;
52
- --placeholder-height: 5rem;
53
- }
54
-
55
- /* Для тёмной темы переопределяем только цвета */
56
- .dark-theme {
57
- --color-background: #1e293b;
58
- --color-text: #e2e8f0;
59
- --color-component-bg-light: #475569;
60
- --color-component-text-light: #f1f5f9;
61
- --color-component-bg-dark: #f1f5f9;
62
- --color-component-text-dark: #475569;
63
- --color-glass-text: rgba(241, 245, 249, 0.5);
64
- --shadow-color: rgba(0, 0, 0, 0.8);
65
- }
package/tsconfig.json DELETED
@@ -1,26 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "useDefineForClassFields": true,
5
- "module": "ESNext",
6
- "lib": ["ES2022", "DOM", "DOM.Iterable"],
7
- "types": ["vite/client"],
8
- "skipLibCheck": true,
9
-
10
- /* Bundler mode */
11
- "moduleResolution": "bundler",
12
- "allowImportingTsExtensions": true,
13
- "verbatimModuleSyntax": true,
14
- "moduleDetection": "force",
15
- "noEmit": true,
16
-
17
- /* Linting */
18
- "strict": true,
19
- "noUnusedLocals": true,
20
- "noUnusedParameters": true,
21
- "erasableSyntaxOnly": true,
22
- "noFallthroughCasesInSwitch": true,
23
- "noUncheckedSideEffectImports": true
24
- },
25
- "include": ["src"]
26
- }