@eaera-com/eaera-widgets-v2 0.1.63 → 0.1.64

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 (97) hide show
  1. package/dist/design-system/components/_alert.scss +150 -0
  2. package/dist/design-system/components/_auto-complete.scss +165 -0
  3. package/dist/design-system/components/_avatar-group.scss +25 -0
  4. package/dist/design-system/components/_avatar.scss +40 -0
  5. package/dist/design-system/components/_badge.scss +80 -0
  6. package/dist/design-system/components/_breadcrumb.scss +91 -0
  7. package/dist/design-system/components/_button.scss +378 -0
  8. package/dist/design-system/components/_card.scss +27 -0
  9. package/dist/design-system/components/_carousel.scss +104 -0
  10. package/dist/design-system/components/_cascader.scss +705 -0
  11. package/dist/design-system/components/_checkbox-list.scss +18 -0
  12. package/dist/design-system/components/_checkbox.scss +117 -0
  13. package/dist/design-system/components/_collapse.scss +84 -0
  14. package/dist/design-system/components/_color-picker.scss +195 -0
  15. package/dist/design-system/components/_country-flag.scss +56 -0
  16. package/dist/design-system/components/_currency-icon.scss +19 -0
  17. package/dist/design-system/components/_date-picker.scss +748 -0
  18. package/dist/design-system/components/_dialog.scss +101 -0
  19. package/dist/design-system/components/_divider.scss +7 -0
  20. package/dist/design-system/components/_drawer.scss +41 -0
  21. package/dist/design-system/components/_dropdown.scss +69 -0
  22. package/dist/design-system/components/_empty.scss +101 -0
  23. package/dist/design-system/components/_form.scss +151 -0
  24. package/dist/design-system/components/_growth-balance-profit-widget.scss +95 -0
  25. package/dist/design-system/components/_input-code.scss +116 -0
  26. package/dist/design-system/components/_input-number.scss +233 -0
  27. package/dist/design-system/components/_input-tag.scss +212 -0
  28. package/dist/design-system/components/_input.scss +239 -0
  29. package/dist/design-system/components/_link.scss +64 -0
  30. package/dist/design-system/components/_loading.scss +89 -0
  31. package/dist/design-system/components/_menu.scss +578 -0
  32. package/dist/design-system/components/_message-box.scss +78 -0
  33. package/dist/design-system/components/_message.scss +187 -0
  34. package/dist/design-system/components/_monthly-gain-widget.scss +114 -0
  35. package/dist/design-system/components/_pagination.scss +356 -0
  36. package/dist/design-system/components/_pl-calendar-widget.scss +171 -0
  37. package/dist/design-system/components/_popconfirm.scss +57 -0
  38. package/dist/design-system/components/_popper.scss +267 -0
  39. package/dist/design-system/components/_progress.scss +153 -0
  40. package/dist/design-system/components/_radio.scss +68 -0
  41. package/dist/design-system/components/_segmented.scss +215 -0
  42. package/dist/design-system/components/_select-country.scss +182 -0
  43. package/dist/design-system/components/_select.scss +235 -0
  44. package/dist/design-system/components/_skeleton.scss +146 -0
  45. package/dist/design-system/components/_slider.scss +142 -0
  46. package/dist/design-system/components/_spinner.scss +73 -0
  47. package/dist/design-system/components/_steps.scss +292 -0
  48. package/dist/design-system/components/_switch.scss +89 -0
  49. package/dist/design-system/components/_switcher.scss +110 -0
  50. package/dist/design-system/components/_table.scss +580 -0
  51. package/dist/design-system/components/_tabs.scss +260 -0
  52. package/dist/design-system/components/_tag.scss +208 -0
  53. package/dist/design-system/components/_time-picker.scss +255 -0
  54. package/dist/design-system/components/_time-select.scss +167 -0
  55. package/dist/design-system/components/_timeline.scss +99 -0
  56. package/dist/design-system/components/_tooltip.scss +19 -0
  57. package/dist/design-system/components/_topbar-menu.scss +67 -0
  58. package/dist/design-system/components/_trade-volume-widget.scss +114 -0
  59. package/dist/design-system/components/_transfer.scss +241 -0
  60. package/dist/design-system/components/_tree-select.scss +198 -0
  61. package/dist/design-system/components/_tree.scss +108 -0
  62. package/dist/design-system/components/_upload.scss +226 -0
  63. package/dist/design-system/themes/aurora/bridges/_element-plus-bridge.scss +58 -0
  64. package/dist/design-system/themes/aurora/elevation/_elevation-tokens.scss +67 -0
  65. package/dist/design-system/themes/aurora/elevation/_elevation-utils.scss +94 -0
  66. package/dist/design-system/themes/aurora/index.scss +133 -0
  67. package/dist/design-system/themes/aurora/layers/_layer1-palettes.scss +289 -0
  68. package/dist/design-system/themes/aurora/layers/_layer2-alias.scss +250 -0
  69. package/dist/design-system/themes/aurora/layers/_layer3-tokens.scss +242 -0
  70. package/dist/design-system/themes/aurora/themes/_dark-mode.scss +177 -0
  71. package/dist/design-system/themes/aurora/themes/projects/base.scss +11 -0
  72. package/dist/design-system/themes/aurora/tokens/_border-radius.scss +28 -0
  73. package/dist/design-system/themes/aurora/tokens/_control-height.scss +18 -0
  74. package/dist/design-system/themes/aurora/tokens/_screen-size.scss +10 -0
  75. package/dist/design-system/themes/aurora/tokens/_spacing.scss +29 -0
  76. package/dist/design-system/themes/aurora/typography/_typography-primitives.scss +11 -0
  77. package/dist/design-system/themes/aurora/typography/_typography-semantic.scss +5 -0
  78. package/dist/design-system/themes/aurora/typography/_typography-tokens.scss +185 -0
  79. package/dist/design-system/themes/aurora/typography/_typography-utils.scss +375 -0
  80. package/dist/design-system/themes/core/bridges/_element-plus-bridge.scss +82 -0
  81. package/dist/design-system/themes/core/elevation/_elevation-tokens.scss +67 -0
  82. package/dist/design-system/themes/core/elevation/_elevation-utils.scss +94 -0
  83. package/dist/design-system/themes/core/index.scss +130 -0
  84. package/dist/design-system/themes/core/layers/_layer1-palettes.scss +289 -0
  85. package/dist/design-system/themes/core/layers/_layer2-alias.scss +242 -0
  86. package/dist/design-system/themes/core/layers/_layer3-tokens.scss +220 -0
  87. package/dist/design-system/themes/core/themes/_dark-mode.scss +165 -0
  88. package/dist/design-system/themes/core/themes/projects/base.scss +11 -0
  89. package/dist/design-system/themes/core/tokens/_border-radius.scss +28 -0
  90. package/dist/design-system/themes/core/tokens/_control-height.scss +18 -0
  91. package/dist/design-system/themes/core/tokens/_screen-size.scss +10 -0
  92. package/dist/design-system/themes/core/tokens/_spacing.scss +29 -0
  93. package/dist/design-system/themes/core/typography/_typography-primitives.scss +11 -0
  94. package/dist/design-system/themes/core/typography/_typography-semantic.scss +5 -0
  95. package/dist/design-system/themes/core/typography/_typography-tokens.scss +185 -0
  96. package/dist/design-system/themes/core/typography/_typography-utils.scss +375 -0
  97. package/package.json +4 -3
@@ -0,0 +1,260 @@
1
+ @use '../themes/aurora/typography/typography-utils' as typo;
2
+
3
+ @mixin tab-size($height, $padding) {
4
+ .el-tabs__item {
5
+ height: $height;
6
+ padding: 0 $padding;
7
+
8
+ &:nth-child(2),
9
+ &:last-child {
10
+ padding-left: $padding;
11
+ padding-right: $padding;
12
+ }
13
+
14
+ @content;
15
+ }
16
+ }
17
+
18
+ // ─── Base ─────────────────────────────────────────────────────────────────────
19
+
20
+ .custom-tab.el-tabs {
21
+ .el-tabs__header {
22
+ margin-bottom: 0;
23
+ }
24
+
25
+ .el-tabs__content {
26
+ padding-top: var(--er-shape-spacing-200);
27
+ }
28
+
29
+ .el-tabs__nav-wrap::after {
30
+ background-color: var(--er-border-subtle);
31
+ height: 1px;
32
+ }
33
+
34
+ .el-tabs__nav {
35
+ border: none;
36
+ }
37
+
38
+ .el-tabs__active-bar {
39
+ height: 2px;
40
+ background-color: var(--er-action-primary-default);
41
+ }
42
+
43
+ .el-tabs__item {
44
+ height: var(--er-control-height-lg);
45
+ padding: 0 var(--er-shape-spacing-150);
46
+ display: flex;
47
+ align-items: center;
48
+ justify-content: center;
49
+ position: relative;
50
+ user-select: none;
51
+ @include typo.label-lg;
52
+ color: var(--er-text-secondary) !important;
53
+
54
+ &.is-active {
55
+ color: var(--er-action-primary-default) !important;
56
+ }
57
+
58
+ &.is-disabled {
59
+ opacity: 0.5;
60
+ cursor: not-allowed;
61
+ pointer-events: none;
62
+ }
63
+
64
+ // Icon only tab
65
+ &:has(.custom-tab__label.tab-icon-only) {
66
+ display: flex;
67
+ padding: 0;
68
+ justify-content: center;
69
+ align-items: center;
70
+ aspect-ratio: 1 / 1;
71
+ }
72
+ }
73
+
74
+ // Tab label wrapper
75
+ .custom-tab__label {
76
+ display: flex;
77
+ align-items: center;
78
+ justify-content: center;
79
+ gap: var(--er-shape-spacing-50);
80
+
81
+ &.tab-icon-only {
82
+ height: 100%;
83
+ gap: 0;
84
+
85
+ .custom-tab__label-text {
86
+ display: flex;
87
+ align-items: center;
88
+ justify-content: center;
89
+ flex-shrink: 0;
90
+ }
91
+ }
92
+ }
93
+
94
+ // Prefix icon
95
+ .custom-tab__label-prefix {
96
+ display: flex;
97
+ align-items: center;
98
+ justify-content: center;
99
+ flex-shrink: 0;
100
+
101
+ svg {
102
+ width: 20px;
103
+ height: 20px;
104
+ }
105
+ }
106
+
107
+ // Label text
108
+ .custom-tab__label-text {
109
+ @include typo.label-lg;
110
+ flex-shrink: 0;
111
+ white-space: nowrap;
112
+ }
113
+
114
+ // Badge
115
+ .custom-tab__label-badge {
116
+ display: flex;
117
+ align-items: center;
118
+ justify-content: center;
119
+ flex-shrink: 0;
120
+
121
+ .tab-badge {
122
+ display: inline-flex;
123
+ height: 16px;
124
+ min-width: 16px;
125
+ padding: 0 4px;
126
+ justify-content: center;
127
+ align-items: center;
128
+ border-radius: var(--er-shape-corner-50);
129
+
130
+ &.badge-filled {
131
+ background: var(--er-surface-neutral-subtle);
132
+ @include typo.label-sm;
133
+ }
134
+
135
+ &.badge-ghost {
136
+ color: var(--er-text-secondary);
137
+ background: transparent;
138
+ opacity: 0.5;
139
+ @include typo.label-md;
140
+ }
141
+ }
142
+ }
143
+
144
+ .is-active {
145
+ .badge-filled {
146
+ background: var(--er-surface-brand-subtle) !important
147
+ }
148
+
149
+ .badge-ghost {
150
+ color: var(--er-text-brand) !important
151
+ }
152
+ }
153
+
154
+ .el-tabs__item:has(.custom-tab__label.tab-icon-only) .custom-tab__label-prefix svg,
155
+ .el-tabs__item:has(.custom-tab__label.tab-icon-only) .custom-tab__label-text svg {
156
+ width: 20px;
157
+ height: 20px;
158
+ }
159
+
160
+ // ── LG ──
161
+ &.lg {
162
+ @include tab-size(var(--er-control-height-lg), var(--er-shape-spacing-150));
163
+
164
+ .el-tabs__nav {
165
+ gap: var(--er-shape-spacing-150);
166
+ }
167
+
168
+ .el-tabs__item:has(.custom-tab__label.tab-icon-only) {
169
+ width: var(--er-control-height-lg);
170
+ min-width: var(--er-control-height-lg);
171
+ }
172
+ }
173
+
174
+ // ── MD ──
175
+ &.md {
176
+ @include tab-size(var(--er-control-height-md), var(--er-shape-spacing-100));
177
+
178
+ .el-tabs__nav {
179
+ gap: var(--er-shape-spacing-100);
180
+ }
181
+
182
+ .el-tabs__item:has(.custom-tab__label.tab-icon-only) {
183
+ width: var(--er-control-height-md);
184
+ min-width: var(--er-control-height-md);
185
+ }
186
+ }
187
+
188
+ // ── Border ──
189
+ &.variant-border {
190
+ .el-tabs__active-bar {
191
+ display: none;
192
+ }
193
+
194
+ .el-tabs__item {
195
+ &.is-active::after {
196
+ content: '';
197
+ position: absolute;
198
+ bottom: 0;
199
+ left: 0;
200
+ right: 0;
201
+ height: 2px;
202
+ background-color: var(--er-action-primary-default);
203
+ z-index: 1;
204
+ }
205
+
206
+ &:hover.is-active:not(.is-disabled)::after {
207
+ background-color: var(--er-action-primary-hover);
208
+ }
209
+
210
+ &:hover:not(.is-active):not(.is-disabled)::after {
211
+ content: '';
212
+ position: absolute;
213
+ bottom: 0;
214
+ left: 0;
215
+ right: 0;
216
+ height: 2px;
217
+ background-color: var(--er-action-neutral-hover);
218
+ z-index: 0;
219
+ }
220
+
221
+ &:nth-child(2),
222
+ &:last-child {
223
+ &.is-active::after {
224
+ background-color: var(--er-action-primary-default);
225
+ }
226
+
227
+ &:hover.is-active:not(.is-disabled)::after {
228
+ background-color: var(--er-action-primary-hover);
229
+ }
230
+ }
231
+ }
232
+ }
233
+
234
+ // ── Ghost ──
235
+ &.variant-ghost {
236
+ .el-tabs__nav-wrap::after {
237
+ display: none;
238
+ }
239
+
240
+ .el-tabs__active-bar {
241
+ display: none;
242
+ }
243
+
244
+ .el-tabs__item {
245
+ border-radius: var(--er-shape-corner-100);
246
+
247
+ &:hover:not(.is-active):not(.is-disabled) {
248
+ background-color: var(--er-action-neutral-subtle-hover);
249
+ }
250
+
251
+ &.is-active {
252
+ background-color: var(--er-action-primary-subtle);
253
+ }
254
+
255
+ &:hover.is-active:not(.is-disabled) {
256
+ background-color: var(--er-action-primary-subtle-hover);
257
+ }
258
+ }
259
+ }
260
+ }
@@ -0,0 +1,208 @@
1
+ @use "../themes/aurora/typography/typography-utils" as typo;
2
+
3
+ @mixin tag-fill-variant($bg, $text) {
4
+ background-color: $bg;
5
+ color: $text;
6
+ }
7
+
8
+ @mixin tag-plain-variant($border, $text) {
9
+ border-color: $border;
10
+ color: $text;
11
+ }
12
+
13
+ // ─── Base ─────────────────────────────────────────────────────────────────────
14
+
15
+ .custom-tag.el-tag {
16
+ @include typo.label-md;
17
+ gap: var(--er-shape-spacing-50);
18
+ &.md {
19
+ height: var(--er-control-height-sm);
20
+ padding: 0 var(--er-shape-spacing-100);
21
+ border-radius: var(--er-shape-corner-100);
22
+ }
23
+
24
+ &.sm {
25
+ height: var(--er-control-height-xs);
26
+ padding: 0 var(--er-shape-spacing-75);
27
+ border-radius: var(--er-shape-corner-75);
28
+ }
29
+
30
+ &.is-round {
31
+ border-radius: var(--er-shape-corner-full);
32
+ }
33
+
34
+ .el-tag__close {
35
+ margin-left: 0;
36
+ color: inherit;
37
+ background-color: transparent;
38
+
39
+ &:hover {
40
+ background-color: transparent;
41
+ color: inherit;
42
+ }
43
+ }
44
+
45
+ // ── Fill ──
46
+ &.el-tag--light {
47
+ border-color: transparent;
48
+
49
+ &.primary {
50
+ @include tag-fill-variant(var(--er-surface-brand-subtle), var(--er-text-brand));
51
+ }
52
+
53
+ &.warning {
54
+ @include tag-fill-variant(var(--er-surface-warning-subtle), var(--er-text-warning));
55
+ }
56
+
57
+ &.danger {
58
+ @include tag-fill-variant(var(--er-surface-danger-subtle), var(--er-text-danger));
59
+ }
60
+
61
+ &.info {
62
+ @include tag-fill-variant(var(--er-surface-information-subtle), var(--er-text-information));
63
+ }
64
+
65
+ &.success {
66
+ @include tag-fill-variant(var(--er-surface-success-subtle), var(--er-text-success));
67
+ }
68
+
69
+ &.default {
70
+ @include tag-fill-variant(var(--er-surface-neutral-subtle), var(--er-text-secondary));
71
+ }
72
+ }
73
+
74
+ // ── Plain ──
75
+ &.el-tag--plain {
76
+ background-color: transparent;
77
+
78
+ &.primary {
79
+ @include tag-plain-variant(var(--er-border-brand-subtle), var(--er-text-brand));
80
+ }
81
+
82
+ &.warning {
83
+ @include tag-plain-variant(var(--er-border-warning-subtle), var(--er-text-warning));
84
+ }
85
+
86
+ &.danger {
87
+ @include tag-plain-variant(var(--er-border-danger-subtle), var(--er-text-danger));
88
+ }
89
+
90
+ &.info {
91
+ @include tag-plain-variant(var(--er-border-information-subtle), var(--er-text-information));
92
+ }
93
+
94
+ &.success {
95
+ @include tag-plain-variant(var(--er-border-success-subtle), var(--er-text-success));
96
+ }
97
+
98
+ &.default {
99
+ @include tag-plain-variant(var(--er-border-default), var(--er-text-secondary));
100
+ }
101
+ }
102
+
103
+ // ─── Status variant ───────────────────────────────────────────────────────
104
+ // Figma: 42.1 Status (dot indicator) | 42.2 Status Icon (icon slot)
105
+ // Variant axes: style (fill / plain / ghost) × status × size
106
+ //
107
+ // Style → effect prop mapping:
108
+ // fill = effect='light' (el-tag--light)
109
+ // plain = effect='plain' (el-tag--plain)
110
+ // ghost = effect='light' + ghost=true (.is-ghost)
111
+ //
112
+ // status colors: warning | danger | information | success | disable | brand (=primary)
113
+ // ─────────────────────────────────────────────────────────────────────────
114
+ &.is-status {
115
+ // Always pill shape
116
+ border-radius: var(--er-shape-corner-full) !important;
117
+
118
+ // Align dot/icon and text in a flex row with 4px gap
119
+ .el-tag__content {
120
+ display: inline-flex;
121
+ align-items: center;
122
+ gap: var(--er-shape-corner-50);
123
+
124
+ .custom-tag__prefix svg {
125
+ width: 6px;
126
+ height: 6px;
127
+ }
128
+ }
129
+
130
+ // ── Ghost style — no bg, no border, no padding ─────────────────────────
131
+ // Figma: is-ghost=yes → bare dot/icon + text, no container
132
+ &.is-ghost {
133
+ background-color: transparent !important;
134
+ border-color: transparent !important;
135
+ padding: 0;
136
+ }
137
+
138
+ // ── Fill — disable status (unique tokens, not in regular tag colors) ────
139
+ // Figma: bg=surface/subtle (#fafafa), text=text/disabled (#a1a1aa)
140
+ &.el-tag--light.disable {
141
+ background-color: var(--er-surface-neutral-subtle);
142
+ color: var(--er-text-muted);
143
+ border-color: transparent;
144
+ }
145
+
146
+ // ── Plain — disable status ──────────────────────────────────────────────
147
+ // Figma: border=border/disabled, text=text/disabled
148
+ &.el-tag--plain.disable {
149
+ background-color: transparent;
150
+ color: var(--er-text-muted);
151
+ border-color: var(--er-border-default);
152
+ }
153
+ }
154
+
155
+ &.is-loading {
156
+ // Always pill shape like status
157
+ border-radius: var(--er-shape-corner-full) !important;
158
+
159
+ // ─── Loading variant ─────────────────────────────────────────────────────────
160
+ // Source: EaeraTag.vue — Lucide Loader icon (size 16) + "Processing" label
161
+ // Rendered inside el-tag. The Loader icon spins via CSS; the label is static
162
+ // i18n text and no animated dots are used.
163
+ // ─────────────────────────────────────────────────────────────────────────────
164
+
165
+ .custom-tag__loader {
166
+ display: inline-flex;
167
+ align-items: center;
168
+ justify-content: center;
169
+ gap: 4px;
170
+ }
171
+
172
+ .custom-tag__loader-icon {
173
+ animation: tag-loader-spin 1.5s linear infinite;
174
+ }
175
+
176
+ @keyframes tag-loader-spin {
177
+ 100% {
178
+ transform: rotate(1turn);
179
+ }
180
+ }
181
+
182
+ // Align loader icon and text in a flex row
183
+ .el-tag__content {
184
+ display: inline-flex;
185
+ align-items: center;
186
+ gap: var(--er-shape-corner-50);
187
+ }
188
+
189
+ // ── Ghost style ─────────────────────────
190
+ &.is-ghost {
191
+ background-color: transparent !important;
192
+ border-color: transparent !important;
193
+ padding: 0;
194
+ }
195
+
196
+ // ── Fill — fixed default color tokens ────
197
+ &.el-tag--light {
198
+ @include tag-fill-variant(var(--er-surface-neutral-subtle), var(--er-text-secondary));
199
+ border-color: transparent;
200
+ }
201
+
202
+ // ── Plain — fixed default color tokens ────
203
+ &.el-tag--plain {
204
+ @include tag-plain-variant(var(--er-border-default), var(--er-text-secondary));
205
+ background-color: transparent;
206
+ }
207
+ }
208
+ }