@vanjana/vue-ui 0.1.62 → 0.1.87

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 (54) hide show
  1. package/dist/theme-light.css +1 -1
  2. package/dist/types/components/chip-group.vue.d.ts +40 -0
  3. package/dist/types/components/chip-selector.vue.d.ts +24 -0
  4. package/dist/types/components/chip.vue.d.ts +2 -2
  5. package/dist/types/components/dialog.vue.d.ts +2 -2
  6. package/dist/types/components/editable-label.vue.d.ts +13 -0
  7. package/dist/types/components/form/form-field.vue.d.ts +2 -2
  8. package/dist/types/components/form/input-select.vue.d.ts +1 -1
  9. package/dist/types/components/form/input-slider.vue.d.ts +2 -2
  10. package/dist/types/components/form/input-text-area.vue.d.ts +2 -2
  11. package/dist/types/components/form/input-text.vue.d.ts +2 -2
  12. package/dist/types/components/form/input.vue.d.ts +1 -1
  13. package/dist/types/components/form/textarea.vue.d.ts +1 -1
  14. package/dist/types/components/index.d.ts +10 -2
  15. package/dist/types/components/notification/notification.vue.d.ts +13 -0
  16. package/dist/types/components/notification/notifications.vue.d.ts +3 -0
  17. package/dist/types/components/paginator.vue.d.ts +1 -1
  18. package/dist/types/components/radio.vue.d.ts +15 -0
  19. package/dist/types/components/shell/shell-navigation-item.vue.d.ts +12 -2
  20. package/dist/types/components/shell/shell.vue.d.ts +4 -2
  21. package/dist/types/components/skeleton.vue.d.ts +8 -0
  22. package/dist/types/components/slider.vue.d.ts +2 -2
  23. package/dist/types/config.d.ts +2 -0
  24. package/dist/types/model/FormFieldProps.d.ts +2 -1
  25. package/dist/types/model/Icons.d.ts +45 -4
  26. package/dist/types/services/index.d.ts +2 -1
  27. package/dist/types/services/notification.service.d.ts +62 -0
  28. package/dist/types/stories/components/chip-group.stories.d.ts +48 -0
  29. package/dist/types/stories/components/chip-selector.stories.d.ts +38 -0
  30. package/dist/types/stories/components/chip.stories.d.ts +2 -2
  31. package/dist/types/stories/components/compact.stories.d.ts +2 -2
  32. package/dist/types/stories/components/dialog.stories.d.ts +5 -5
  33. package/dist/types/stories/components/editable-label.stories.d.ts +30 -0
  34. package/dist/types/stories/components/form-field.stories.d.ts +27 -2
  35. package/dist/types/stories/components/input.stories.d.ts +1 -1
  36. package/dist/types/stories/components/notification.stories.d.ts +44 -0
  37. package/dist/types/stories/components/radio.stories.d.ts +65 -0
  38. package/dist/types/stories/components/shell.stories.d.ts +4 -0
  39. package/dist/types/stories/components/skeleton.stories.d.ts +30 -0
  40. package/dist/types/stories/components/textarea.stories.d.ts +1 -1
  41. package/dist/vanjana-vue-ui.es.js +2020 -1544
  42. package/dist/vanjana-vue-ui.umd.js +1 -1
  43. package/dist/vue-ui.css +1 -1
  44. package/package.json +3 -2
  45. package/themes/common/_components.scss +4 -0
  46. package/themes/common/_mixins.scss +1 -1
  47. package/themes/common/components/_checkbox.scss +43 -9
  48. package/themes/common/components/_radio.scss +59 -0
  49. package/themes/common/components/_shell.scss +25 -28
  50. package/themes/common/components/_skeleton.scss +31 -0
  51. package/themes/common/components/form/_form-field.scss +39 -2
  52. package/themes/common/components/form/_input.scss +1 -1
  53. package/themes/common/components/notification/_notification.scss +39 -0
  54. package/themes/light/theme.scss +27 -13
@@ -1,26 +1,60 @@
1
+ @use "../mixins" as *;
2
+
1
3
  .checkbox {
2
- gap: var(--space-s);
4
+ gap: 0.5rem;
5
+ }
3
6
 
4
- &:hover .checkbox-box {
5
- border-color: var(--color-primary);
7
+ .checkbox-input {
8
+ opacity: 0;
9
+
10
+ &:disabled + .checkbox-box {
11
+ opacity: 0.5;
12
+ }
13
+
14
+ &:focus-visible + .checkbox-box {
15
+ outline: 2px solid var(--color-primary);
16
+ outline-offset: 2px;
6
17
  }
7
18
  }
8
19
 
9
20
  .checkbox-box {
10
- border-color: var(--color-border);
11
- border-radius: var(--border-radius-s);
12
- background-color: var(--color-background);
21
+ width: 20px;
22
+ height: 20px;
23
+ border: 2px solid var(--color-border);
24
+ border-radius: var(--border-radius-input);
25
+ transition: all 0.2s ease;
26
+ @include useColor("input");
13
27
  }
14
28
 
15
29
  .checkbox-icon {
16
- color: var(--color-primary-contrast);
30
+ width: 16px;
31
+ height: 16px;
32
+ }
33
+
34
+ .checkbox-check {
35
+ stroke-dasharray: 24;
36
+ stroke-dashoffset: 24;
37
+ transition: stroke-dashoffset 0.3s ease;
38
+ stroke: currentColor;
17
39
  }
18
40
 
19
41
  .checkbox-input:checked + .checkbox-box {
20
- background-color: var(--color-primary);
42
+ @include useColor("primary");
43
+
44
+ .checkbox-check {
45
+ stroke-dashoffset: 0;
46
+ }
47
+ }
48
+
49
+ .checkbox-box:hover {
21
50
  border-color: var(--color-primary);
22
51
  }
23
52
 
24
53
  .checkbox-label {
25
- color: var(--color-text-primary);
54
+ font-size: 1rem;
55
+ @include useColor("base");
56
+ }
57
+
58
+ .checkbox-input:disabled ~ .checkbox-label {
59
+ opacity: 0.5;
26
60
  }
@@ -0,0 +1,59 @@
1
+ @use "../mixins" as *;
2
+
3
+ .radio {
4
+ gap: 0.5rem;
5
+ }
6
+
7
+ .radio-input {
8
+ opacity: 0;
9
+
10
+ &:disabled + .radio-box {
11
+ opacity: 0.5;
12
+ }
13
+
14
+ &:focus-visible + .radio-box {
15
+ outline: 2px solid var(--color-primary);
16
+ outline-offset: 2px;
17
+ }
18
+ }
19
+
20
+ .radio-box {
21
+ width: 20px;
22
+ height: 20px;
23
+ border: 2px solid var(--color-border);
24
+ border-radius: 50%;
25
+ transition: all 0.2s ease;
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ @include useColor("input");
30
+ }
31
+
32
+ .radio-dot {
33
+ width: 10px;
34
+ height: 10px;
35
+ border-radius: 50%;
36
+ transform: scale(0);
37
+ transition: transform 180ms ease;
38
+ background: currentColor;
39
+ }
40
+
41
+ .radio-input:checked + .radio-box {
42
+ .radio-dot {
43
+ transform: scale(1);
44
+ @include useColor("primary");
45
+ }
46
+ }
47
+
48
+ .radio-box:hover {
49
+ border-color: var(--color-primary);
50
+ }
51
+
52
+ .radio-label {
53
+ font-size: 1rem;
54
+ @include useColor("base");
55
+ }
56
+
57
+ .radio-input:disabled ~ .radio-label {
58
+ opacity: 0.5;
59
+ }
@@ -5,6 +5,7 @@
5
5
 
6
6
  > header {
7
7
  padding: var(--space-s);
8
+ @include useColor("shell-header");
8
9
 
9
10
  .shell-title {
10
11
  gap: var(--space-m);
@@ -19,8 +20,6 @@
19
20
  gap: var(--space-s);
20
21
  }
21
22
 
22
- --application__color: blue;
23
- --application-gradient: linear-gradient(90deg, #e0f7ff 0%, #c5dbff 20%, #fff9e6 50%, #ffe4f0 75%, #ffd9f2 100%);
24
23
  border-bottom: solid var(--space-s) var(--application__color);
25
24
  border-image-slice: 1;
26
25
  border-image-source: var(--application-gradient);
@@ -28,7 +27,7 @@
28
27
 
29
28
  .shell-content {
30
29
  main {
31
- padding: 0;
30
+ padding: var(--space-s);
32
31
  overflow: auto;
33
32
  }
34
33
 
@@ -55,32 +54,30 @@
55
54
  padding: 0;
56
55
  margin: 0;
57
56
  gap: var(--space-s);
57
+ }
58
+ .shell-navigation-item {
59
+ padding: 0;
60
+ margin: 0;
61
+
62
+ .shell-navigation-item-link {
63
+ padding: var(--space-m) var(--space-s);
64
+ text-decoration: none;
65
+ border-left: solid 5px transparent;
66
+ transition: all 0.2s ease;
58
67
 
59
- .shell-navigation-item {
60
- padding: 0;
61
- margin: 0;
62
-
63
- .shell-navigation-item-link {
64
- padding: var(--space-m) var(--space-s);
65
- text-decoration: none;
66
- border-left: solid 5px transparent;
67
- transition: all 0.2s ease;
68
-
69
- .shell-navigation-icon {
70
- font-size: 1.5rem;
71
- }
72
-
73
- @include useColor("navigation-item");
74
-
75
- &:hover {
76
- @include useColor("navigation-hover");
77
- border-left: solid 5px currentColor;
78
- }
79
- &.router-link-active {
80
- @include useColor("navigation-hover");
81
- border-left: solid 5px currentColor;
82
- background-color: rgba(255, 255, 255, 0.5);
83
- }
68
+ .shell-navigation-icon {
69
+ font-size: 1.5rem;
70
+ }
71
+
72
+ @include useColor("navigation-item");
73
+
74
+ &:hover {
75
+ border-left: solid 5px currentColor;
76
+ @include useColor("navigation-hover");
77
+ }
78
+ &.router-link-active {
79
+ border-left: solid 5px currentColor;
80
+ @include useColor("navigation-item-active");
84
81
  }
85
82
  }
86
83
  }
@@ -0,0 +1,31 @@
1
+ @use "../mixins" as *;
2
+
3
+ .vj-skeleton {
4
+ @include useColor("skeleton");
5
+
6
+ &::after {
7
+ transform: translate(0, 0);
8
+ filter: blur(0.2px);
9
+ opacity: 0.95;
10
+ animation: shimmer-diag 2.5s linear infinite;
11
+
12
+ @include useColor("skeleton-shimmer");
13
+ }
14
+
15
+ @keyframes shimmer-diag {
16
+ 0% {
17
+ transform: translate(-100%, -100%);
18
+ }
19
+ 100% {
20
+ transform: translate(100%, 100%);
21
+ }
22
+ }
23
+
24
+ /* Respect users who prefer reduced motion */
25
+ @media (prefers-reduced-motion: reduce) {
26
+ .vj-skeleton::after {
27
+ animation: none;
28
+ opacity: 0.6;
29
+ }
30
+ }
31
+ }
@@ -6,14 +6,14 @@
6
6
 
7
7
  /* LABEL */
8
8
  .form-field__label {
9
- left: 8px;
9
+ left: var(--space-s);
10
10
  padding: 0 var(--space-xs);
11
11
  @include useFont("caption");
12
12
  @include useColor("input-label");
13
13
  }
14
14
 
15
15
  .form-field__label--float {
16
- left: 12px;
16
+ left: var(--space-m);
17
17
  @include useFont("caption");
18
18
  @include useColor("input-label-floating");
19
19
  }
@@ -29,4 +29,41 @@
29
29
  display: none;
30
30
  }
31
31
  }
32
+
33
+ &.form-field--underlined {
34
+ .form-field__label {
35
+ left: 0 !important;
36
+ padding-left: 0px !important;
37
+ }
38
+
39
+ .input,
40
+ .textarea {
41
+ border-radius: 0 !important;
42
+ padding-left: 0 !important;
43
+ padding-right: 0 !important;
44
+ outline: none !important;
45
+ box-shadow: 0px 2px 0px var(--color-border);
46
+
47
+ &:focus-within {
48
+ box-shadow: 0px 2px 0px #7c3aed !important;
49
+ }
50
+ }
51
+
52
+ .select-trigger {
53
+ outline: none !important;
54
+ border-left: none !important;
55
+ border-right: none !important;
56
+ border-top: none !important;
57
+ border-radius: 0 !important;
58
+ border-width: 2px !important;
59
+ padding-left: 0px !important;
60
+ border-color: var(--color-border) !important;
61
+
62
+ &:focus-visible {
63
+ outline: none !important;
64
+ box-shadow: none !important;
65
+ border-color: #7c3aed !important;
66
+ }
67
+ }
68
+ }
32
69
  }
@@ -1,10 +1,10 @@
1
1
  @use "../../mixins" as *;
2
2
 
3
3
  .input {
4
- padding: var(--space-s) var(--space-l);
5
4
  border-radius: var(--border-radius-input);
6
5
  outline: var(--border-input);
7
6
  outline-offset: -1px;
7
+ padding: var(--space-s) var(--space-l);
8
8
  gap: var(--space-s);
9
9
 
10
10
  @include useFont("input");
@@ -0,0 +1,39 @@
1
+ @use "../../mixins" as *;
2
+
3
+ .notification {
4
+ position: relative;
5
+ gap: var(--space-s);
6
+ padding: var(--space-xs) var(--space-s);
7
+ border-radius: var(--border-radius-component);
8
+ border-left: 4px solid;
9
+
10
+ .notification__message {
11
+ flex: 1 1 auto;
12
+ gap: var(--space-s);
13
+
14
+ .notification__title {
15
+ @include useFont("button");
16
+ }
17
+ }
18
+
19
+ .notification__icon {
20
+ flex-shrink: 0;
21
+ font-size: 24px;
22
+ }
23
+ }
24
+
25
+ .notification--success {
26
+ @include useColor("success");
27
+ }
28
+
29
+ .notification--info {
30
+ @include useColor("info");
31
+ }
32
+
33
+ .notification--warning {
34
+ @include useColor("warning");
35
+ }
36
+
37
+ .notification--error {
38
+ @include useColor("danger");
39
+ }
@@ -3,44 +3,58 @@
3
3
  @forward "../default";
4
4
 
5
5
  :root {
6
- --color-border: #dedede; //#cbd5e1
7
- --color-border-highlight: #4f46e5; //#cbd5e1
6
+ /* Restore previous primary (softer blue) and add a subtle gradient/shimmer */
7
+ --primary-solid: #3b82c4; /* restored soft primary */
8
+ --primary-gradient: linear-gradient(90deg, #3b82c4 0%, #6197ca 45%, #3b82c4 100%);
9
+ --application__color: var(--primary-solid);
10
+ --application-gradient: linear-gradient(90deg, #e8f6ff 0%, #d6e9ff 35%, #f7f9ff 70%, #fff8ea 100%);
11
+
12
+ --color-border: #cccccc;
13
+ --color-border-highlight: #6d5df6;
8
14
  --border-footer: solid 1px var(--color-border);
9
15
  --border-input: solid 1px var(--color-border); //#cbd5e1
10
16
  --border-radius-input: 6px;
11
17
  --opacity-disabled: 0.5;
12
18
  --tab-indicator-height: 3px;
13
19
 
14
- --spinner-gradient: linear-gradient(90deg, #0b7a73, #c8a2ff, #fff7d6, #f97316, #051937);
15
- // --spinner-gradient: linear-gradient(90deg, #006a63 0%, #0b7a73 15%, #b892ff 35%, #c8a2ff 45%, #fff1a8 60%, #ffb347 72%, #ff7a18 85%, #051937 100%);
20
+ --spinner-gradient: linear-gradient(90deg, #00b3a6 0%, #6fb6ff 40%, #ffd39a 80%);
16
21
 
17
22
  @include defineColor("base", #ffffff, #333333);
18
23
  @include defineColor("input", #ffffff, #333333);
19
24
  @include defineColor("input-label", #ffffff, #64748b);
20
25
  @include defineColor("input-label-floating", #ffffff, #4c1d95);
21
26
 
27
+ @include defineColor("shell-header", #ffffff, #2d3748);
22
28
  @include defineColor("navigation", #ffffff, #2d3748);
23
29
  @include defineColor("navigation-item", transparent, #64748b);
24
- @include defineColor("navigation-hover", transparent, #4f46e5);
30
+ @include defineColor("navigation-item-active", rgba(255, 255, 255, 0.5), #3b82c4);
31
+ @include defineColor("navigation-hover", transparent, #3b82c4);
25
32
 
26
- @include defineColor("button-primary", #4f46e5, #ffffff);
33
+ @include defineColor("button-primary", var(--primary-gradient), #ffffff);
27
34
  @include defineColor("button-secondary", #f97316, #ffffff);
28
35
  @include defineColor("button-tertiary", transparent, #374151);
29
36
  @include defineColor("dot-menu", #eeeeee, #374151);
30
37
  @include defineColor("button-hover", #403b9c, #ffffff);
31
38
 
32
39
  @include defineColor("tab", transparent, #333333);
33
- @include defineColor("tab-hover", transparent, #4f46e5);
34
- @include defineColor("tab-active", transparent, #4f46e5);
40
+ @include defineColor("tab-hover", transparent, #3b82c4);
41
+ @include defineColor("tab-active", transparent, #3b82c4);
35
42
 
36
- @include defineColor("primary", #4f46e5, #ffffff);
37
- @include defineColor("success", #e6ffef, #0b7a3a);
43
+ @include defineColor("primary", var(--primary-solid), #ffffff);
44
+ @include defineColor("success", #1fb67a, #ffffff);
38
45
  @include defineColor("info", #e6f0ff, #0b57d0);
39
- @include defineColor("warning", #fff7e6, #b36b00);
40
- @include defineColor("danger", #ffecec, #b00020);
46
+ @include defineColor("warning", #f59e0b, #ffffff);
47
+ @include defineColor("danger", #e11d48, #ffffff);
48
+
49
+ @include defineColor("skeleton", #e9ecef, #b00020);
50
+ @include defineColor(
51
+ "skeleton-shimmer",
52
+ linear-gradient(135deg, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0.65) 50%, rgba(255, 255, 255, 0) 70%),
53
+ #b00020
54
+ );
41
55
 
42
56
  @include defineFont("title", h1, 24px, 600);
43
- @include defineFont("title", h2, 24px, 600);
57
+ @include defineFont("subtitle", h2, 24px, 600);
44
58
  @include defineFont("header", h3, 18px, 600, 32px);
45
59
  @include defineFont("primary", body, 16px, 400);
46
60
  @include defineFont("secondary", secondary, 14px, 300, 16px);