@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.
- package/dist/design-system/components/_alert.scss +150 -0
- package/dist/design-system/components/_auto-complete.scss +165 -0
- package/dist/design-system/components/_avatar-group.scss +25 -0
- package/dist/design-system/components/_avatar.scss +40 -0
- package/dist/design-system/components/_badge.scss +80 -0
- package/dist/design-system/components/_breadcrumb.scss +91 -0
- package/dist/design-system/components/_button.scss +378 -0
- package/dist/design-system/components/_card.scss +27 -0
- package/dist/design-system/components/_carousel.scss +104 -0
- package/dist/design-system/components/_cascader.scss +705 -0
- package/dist/design-system/components/_checkbox-list.scss +18 -0
- package/dist/design-system/components/_checkbox.scss +117 -0
- package/dist/design-system/components/_collapse.scss +84 -0
- package/dist/design-system/components/_color-picker.scss +195 -0
- package/dist/design-system/components/_country-flag.scss +56 -0
- package/dist/design-system/components/_currency-icon.scss +19 -0
- package/dist/design-system/components/_date-picker.scss +748 -0
- package/dist/design-system/components/_dialog.scss +101 -0
- package/dist/design-system/components/_divider.scss +7 -0
- package/dist/design-system/components/_drawer.scss +41 -0
- package/dist/design-system/components/_dropdown.scss +69 -0
- package/dist/design-system/components/_empty.scss +101 -0
- package/dist/design-system/components/_form.scss +151 -0
- package/dist/design-system/components/_growth-balance-profit-widget.scss +95 -0
- package/dist/design-system/components/_input-code.scss +116 -0
- package/dist/design-system/components/_input-number.scss +233 -0
- package/dist/design-system/components/_input-tag.scss +212 -0
- package/dist/design-system/components/_input.scss +239 -0
- package/dist/design-system/components/_link.scss +64 -0
- package/dist/design-system/components/_loading.scss +89 -0
- package/dist/design-system/components/_menu.scss +578 -0
- package/dist/design-system/components/_message-box.scss +78 -0
- package/dist/design-system/components/_message.scss +187 -0
- package/dist/design-system/components/_monthly-gain-widget.scss +114 -0
- package/dist/design-system/components/_pagination.scss +356 -0
- package/dist/design-system/components/_pl-calendar-widget.scss +171 -0
- package/dist/design-system/components/_popconfirm.scss +57 -0
- package/dist/design-system/components/_popper.scss +267 -0
- package/dist/design-system/components/_progress.scss +153 -0
- package/dist/design-system/components/_radio.scss +68 -0
- package/dist/design-system/components/_segmented.scss +215 -0
- package/dist/design-system/components/_select-country.scss +182 -0
- package/dist/design-system/components/_select.scss +235 -0
- package/dist/design-system/components/_skeleton.scss +146 -0
- package/dist/design-system/components/_slider.scss +142 -0
- package/dist/design-system/components/_spinner.scss +73 -0
- package/dist/design-system/components/_steps.scss +292 -0
- package/dist/design-system/components/_switch.scss +89 -0
- package/dist/design-system/components/_switcher.scss +110 -0
- package/dist/design-system/components/_table.scss +580 -0
- package/dist/design-system/components/_tabs.scss +260 -0
- package/dist/design-system/components/_tag.scss +208 -0
- package/dist/design-system/components/_time-picker.scss +255 -0
- package/dist/design-system/components/_time-select.scss +167 -0
- package/dist/design-system/components/_timeline.scss +99 -0
- package/dist/design-system/components/_tooltip.scss +19 -0
- package/dist/design-system/components/_topbar-menu.scss +67 -0
- package/dist/design-system/components/_trade-volume-widget.scss +114 -0
- package/dist/design-system/components/_transfer.scss +241 -0
- package/dist/design-system/components/_tree-select.scss +198 -0
- package/dist/design-system/components/_tree.scss +108 -0
- package/dist/design-system/components/_upload.scss +226 -0
- package/dist/design-system/themes/aurora/bridges/_element-plus-bridge.scss +58 -0
- package/dist/design-system/themes/aurora/elevation/_elevation-tokens.scss +67 -0
- package/dist/design-system/themes/aurora/elevation/_elevation-utils.scss +94 -0
- package/dist/design-system/themes/aurora/index.scss +133 -0
- package/dist/design-system/themes/aurora/layers/_layer1-palettes.scss +289 -0
- package/dist/design-system/themes/aurora/layers/_layer2-alias.scss +250 -0
- package/dist/design-system/themes/aurora/layers/_layer3-tokens.scss +242 -0
- package/dist/design-system/themes/aurora/themes/_dark-mode.scss +177 -0
- package/dist/design-system/themes/aurora/themes/projects/base.scss +11 -0
- package/dist/design-system/themes/aurora/tokens/_border-radius.scss +28 -0
- package/dist/design-system/themes/aurora/tokens/_control-height.scss +18 -0
- package/dist/design-system/themes/aurora/tokens/_screen-size.scss +10 -0
- package/dist/design-system/themes/aurora/tokens/_spacing.scss +29 -0
- package/dist/design-system/themes/aurora/typography/_typography-primitives.scss +11 -0
- package/dist/design-system/themes/aurora/typography/_typography-semantic.scss +5 -0
- package/dist/design-system/themes/aurora/typography/_typography-tokens.scss +185 -0
- package/dist/design-system/themes/aurora/typography/_typography-utils.scss +375 -0
- package/dist/design-system/themes/core/bridges/_element-plus-bridge.scss +82 -0
- package/dist/design-system/themes/core/elevation/_elevation-tokens.scss +67 -0
- package/dist/design-system/themes/core/elevation/_elevation-utils.scss +94 -0
- package/dist/design-system/themes/core/index.scss +130 -0
- package/dist/design-system/themes/core/layers/_layer1-palettes.scss +289 -0
- package/dist/design-system/themes/core/layers/_layer2-alias.scss +242 -0
- package/dist/design-system/themes/core/layers/_layer3-tokens.scss +220 -0
- package/dist/design-system/themes/core/themes/_dark-mode.scss +165 -0
- package/dist/design-system/themes/core/themes/projects/base.scss +11 -0
- package/dist/design-system/themes/core/tokens/_border-radius.scss +28 -0
- package/dist/design-system/themes/core/tokens/_control-height.scss +18 -0
- package/dist/design-system/themes/core/tokens/_screen-size.scss +10 -0
- package/dist/design-system/themes/core/tokens/_spacing.scss +29 -0
- package/dist/design-system/themes/core/typography/_typography-primitives.scss +11 -0
- package/dist/design-system/themes/core/typography/_typography-semantic.scss +5 -0
- package/dist/design-system/themes/core/typography/_typography-tokens.scss +185 -0
- package/dist/design-system/themes/core/typography/_typography-utils.scss +375 -0
- package/package.json +4 -3
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
@use '../themes/aurora/typography/typography-utils' as typo;
|
|
2
|
+
@use '../themes/aurora/elevation/elevation-utils' as elevation;
|
|
3
|
+
|
|
4
|
+
// ─── Backdrop scrim ───────────────────────────────────────────────────────────
|
|
5
|
+
// Dim the page content behind an open dialog. Matches the Figma "Overlay" spec
|
|
6
|
+
// (node 1-14516): rgba(0, 0, 0, 0.5). Element Plus tags a dialog's `.el-overlay`
|
|
7
|
+
// with `el-modal-dialog`, so this targets only dialog backdrops — drawers,
|
|
8
|
+
// dropdowns and other overlays keep their own styling. `!important` guarantees
|
|
9
|
+
// the scrim renders even if an Element Plus theme drifts the overlay token.
|
|
10
|
+
.el-overlay-dialog {
|
|
11
|
+
background-color: var(--er-surface-overlay) !important;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.el-overlay.el-modal-dialog {
|
|
15
|
+
position: relative;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// ─── Base ─────────────────────────────────────────────────────────────────────
|
|
19
|
+
|
|
20
|
+
.custom-dialog.el-dialog {
|
|
21
|
+
background-color: var(--er-surface-elevated);
|
|
22
|
+
border-radius: var(--er-shape-corner-250);
|
|
23
|
+
@include elevation.elevation-level-2;
|
|
24
|
+
padding: 0;
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: column;
|
|
27
|
+
max-width: 90%;
|
|
28
|
+
max-height: 644px;
|
|
29
|
+
|
|
30
|
+
.el-dialog__header {
|
|
31
|
+
padding: var(--er-shape-spacing-200);
|
|
32
|
+
margin: 0;
|
|
33
|
+
display: flex;
|
|
34
|
+
align-items: flex-start;
|
|
35
|
+
justify-content: space-between;
|
|
36
|
+
gap: var(--er-shape-spacing-100);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.el-dialog__headerbtn {
|
|
40
|
+
position: static;
|
|
41
|
+
width: var(--er-control-height-sm);
|
|
42
|
+
height: var(--er-control-height-sm);
|
|
43
|
+
display: flex;
|
|
44
|
+
align-items: center;
|
|
45
|
+
justify-content: center;
|
|
46
|
+
background: transparent;
|
|
47
|
+
border: none;
|
|
48
|
+
padding: 0;
|
|
49
|
+
cursor: pointer;
|
|
50
|
+
color: var(--er-icon-primary);
|
|
51
|
+
|
|
52
|
+
.el-dialog__close {
|
|
53
|
+
color: inherit;
|
|
54
|
+
width: var(--er-control-height-sm);
|
|
55
|
+
height: var(--er-control-height-sm);
|
|
56
|
+
|
|
57
|
+
svg {
|
|
58
|
+
width: 16px;
|
|
59
|
+
height: 16px;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&:hover {
|
|
64
|
+
color: var(--er-icon-primary);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.el-dialog__title {
|
|
69
|
+
@include typo.title-lg-em;
|
|
70
|
+
color: var(--er-text-primary);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.el-dialog__body {
|
|
74
|
+
padding: 0 var(--er-shape-spacing-200);
|
|
75
|
+
width: 100%;
|
|
76
|
+
flex: 1;
|
|
77
|
+
overflow: auto;
|
|
78
|
+
|
|
79
|
+
// Figma 40233-13398: scrollbar inset 4px from the right edge; with the
|
|
80
|
+
// 16px body padding the content stays 16px from the edge, 12px from the bar.
|
|
81
|
+
&::-webkit-scrollbar-track {
|
|
82
|
+
margin-right: 4px;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.el-dialog__footer {
|
|
87
|
+
display: flex;
|
|
88
|
+
justify-content: flex-end;
|
|
89
|
+
gap: var(--er-shape-spacing-100);
|
|
90
|
+
padding: var(--er-shape-spacing-200);
|
|
91
|
+
margin: 0;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// ── Icon Centered ──
|
|
95
|
+
&.icon-centered {
|
|
96
|
+
.el-dialog__body {
|
|
97
|
+
align-items: center;
|
|
98
|
+
text-align: center;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// DRAWER — Design System Overrides
|
|
3
|
+
// Figma: https://www.figma.com/design/HSOs8VcK5CKL8s15AqD42x/UI-KIT-CORE?node-id=40233-13890
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// Layout: flex-col, bg white, border-left, padding 16px, gap 24px
|
|
6
|
+
// Header: title 20px/500/28px, description 12px/400/16px, close 24×24px
|
|
7
|
+
// Body: flex 1, overflow auto
|
|
8
|
+
// ============================================================================
|
|
9
|
+
|
|
10
|
+
.custom-drawer.el-drawer {
|
|
11
|
+
background: var(--er-surface-container);
|
|
12
|
+
border-left: 1px solid var(--er-border-default);
|
|
13
|
+
padding: var(--er-shape-spacing-200);
|
|
14
|
+
display: flex;
|
|
15
|
+
flex-direction: column;
|
|
16
|
+
gap: var(--er-shape-spacing-300);
|
|
17
|
+
|
|
18
|
+
.el-drawer__sr-focus {
|
|
19
|
+
display: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// ── Header
|
|
23
|
+
.el-drawer__header {
|
|
24
|
+
padding: 0;
|
|
25
|
+
margin-bottom: 0;
|
|
26
|
+
color: var(--er-text-primary);
|
|
27
|
+
align-items: flex-start;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// ── Body
|
|
31
|
+
.el-drawer__body {
|
|
32
|
+
padding: 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.el-drawer__footer {
|
|
36
|
+
display: flex;
|
|
37
|
+
justify-content: flex-end;
|
|
38
|
+
gap: var(--er-shape-spacing-100);
|
|
39
|
+
padding: 0;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
.custom-dropdown__popper.el-popper {
|
|
2
|
+
// Popper background — force dark surface in dark mode. EP defaults to
|
|
3
|
+
// --el-bg-color-overlay (#ffffff) and wallet-selector-popper sets the inner
|
|
4
|
+
// .el-dropdown-menu to transparent, so the popper itself MUST carry the bg.
|
|
5
|
+
background-color: var(--er-surface-container) !important;
|
|
6
|
+
border-color: var(--er-border-subtle) !important;
|
|
7
|
+
border-radius: var(--er-shape-corner-150);
|
|
8
|
+
|
|
9
|
+
.el-popper__arrow::before {
|
|
10
|
+
border-color: var(--er-border-default);
|
|
11
|
+
background-color: var(--el-bg-color-overlay);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
li {
|
|
15
|
+
min-width: 200px;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Inner menu — wallet-selector-popper sets this to transparent, so inherit
|
|
19
|
+
// the popper background above. Ensure no leak-through.
|
|
20
|
+
.el-dropdown-menu {
|
|
21
|
+
background: transparent;
|
|
22
|
+
border: none;
|
|
23
|
+
box-shadow: none;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Item text + hover — EP items use `--el-text-color-regular` and a light
|
|
27
|
+
// hover fill, both unreadable on the dark panel. Bind to EAERA tokens so the
|
|
28
|
+
// menu stays legible in dark mode.
|
|
29
|
+
.el-dropdown-menu__item {
|
|
30
|
+
width: 100%;
|
|
31
|
+
color: var(--el-text-color-regular, var(--er-text-secondary));
|
|
32
|
+
border-radius: var(--er-shape-corner-150);
|
|
33
|
+
&:not(.is-disabled):hover,
|
|
34
|
+
&:not(.is-disabled):focus {
|
|
35
|
+
background-color: var(--er-action-primary-subtle-hover);
|
|
36
|
+
color: var(--el-text-primary);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&.is-disabled {
|
|
40
|
+
color: var(--el-text-disabled);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
i {
|
|
44
|
+
margin: 0;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.el-dropdown-menu__item:not(.is-disabled):focus:not(:hover):not(.is-selected):not(.selected) {
|
|
49
|
+
background-color: transparent;
|
|
50
|
+
color: inherit;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&.danger {
|
|
54
|
+
.el-dropdown-menu__item {
|
|
55
|
+
color: var(--er-text-danger) !important;
|
|
56
|
+
|
|
57
|
+
&:not(.is-disabled):hover,
|
|
58
|
+
&:not(.is-disabled):focus {
|
|
59
|
+
background-color: var(--er-action-danger-subtle-hover);
|
|
60
|
+
color: var(--el-text-primary);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.dropdown-overlay {
|
|
67
|
+
backdrop-filter: none !important;
|
|
68
|
+
background: none;
|
|
69
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// // ============================================================================
|
|
2
|
+
// // EMPTY — Design System Overrides
|
|
3
|
+
// // Figma: https://www.figma.com/design/HSOs8VcK5CKL8s15AqD42x/UI-KIT-CORE?node-id=40713-28609
|
|
4
|
+
// // ============================================================================
|
|
5
|
+
// // Variants:
|
|
6
|
+
// // default: illustration + title + description + action
|
|
7
|
+
// // haveDescription=false: no description paragraph
|
|
8
|
+
// // haveButton=false: no action slot
|
|
9
|
+
// // ============================================================================
|
|
10
|
+
// //
|
|
11
|
+
// // DOM structure (.custom-empty):
|
|
12
|
+
// // .custom-empty
|
|
13
|
+
// // span.custom-empty__bg-tr ← decorative background shape (top-right)
|
|
14
|
+
// // span.custom-empty__bg-tl ← decorative background shape (top-left)
|
|
15
|
+
// // .custom-empty__image ← illustration area (slot or default card)
|
|
16
|
+
// // .custom-empty__illustration ← default 40×40 icon card
|
|
17
|
+
// // svg ← chart icon
|
|
18
|
+
// // .custom-empty__content ← title + description
|
|
19
|
+
// // p.custom-empty__title ← typo/title-md, text/primary
|
|
20
|
+
// // p.custom-empty__description ← typo/body-md, text/muted (optional)
|
|
21
|
+
// // .custom-empty__bottom ← action slot (only rendered when slot provided)
|
|
22
|
+
// // ============================================================================
|
|
23
|
+
|
|
24
|
+
@use '../themes/aurora/typography/typography-utils' as typo;
|
|
25
|
+
@use '../themes/aurora/elevation/elevation-utils' as elevation;
|
|
26
|
+
|
|
27
|
+
.custom-empty-wrapper {
|
|
28
|
+
position: relative;
|
|
29
|
+
overflow: hidden;
|
|
30
|
+
height: 100%;
|
|
31
|
+
width: 100%;
|
|
32
|
+
// ── Decorative background SVG shapes ────────────────────────────────────
|
|
33
|
+
// Figma: background-element, actual SVG assets (not CSS approximations)
|
|
34
|
+
.custom-empty__bg-tl {
|
|
35
|
+
position: absolute;
|
|
36
|
+
top: 0;
|
|
37
|
+
left: 0;
|
|
38
|
+
pointer-events: none;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.custom-empty__bg-tr {
|
|
42
|
+
position: absolute;
|
|
43
|
+
top: 0;
|
|
44
|
+
right: 0;
|
|
45
|
+
pointer-events: none;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.custom-empty.el-empty {
|
|
49
|
+
@apply h-full w-full flex flex-col items-center justify-center;
|
|
50
|
+
padding: var(--er-shape-spacing-200);
|
|
51
|
+
gap: var(--er-shape-spacing-150);
|
|
52
|
+
width: 100%;
|
|
53
|
+
height: 100%;
|
|
54
|
+
|
|
55
|
+
.el-empty__image {
|
|
56
|
+
// Match .custom-empty__image sizing
|
|
57
|
+
width: var(--er-control-height-lg);
|
|
58
|
+
height: var(--er-control-height-lg);
|
|
59
|
+
display: flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
justify-content: center;
|
|
62
|
+
border-radius: var(--er-shape-corner-100);
|
|
63
|
+
border: 1px solid var(--er-border-subtle);
|
|
64
|
+
background: var(--er-surface-container);
|
|
65
|
+
@include elevation.elevation-level-1;
|
|
66
|
+
|
|
67
|
+
svg {
|
|
68
|
+
width: var(--er-control-height-xs);
|
|
69
|
+
height: var(--er-control-height-xs);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.custom-empty__content {
|
|
74
|
+
position: relative;
|
|
75
|
+
z-index: 1;
|
|
76
|
+
display: flex;
|
|
77
|
+
flex-direction: column;
|
|
78
|
+
align-items: center;
|
|
79
|
+
text-align: center;
|
|
80
|
+
max-width: 320px;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.custom-empty__title {
|
|
84
|
+
@include typo.title-md;
|
|
85
|
+
color: var(--er-text-primary);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.el-empty__description {
|
|
89
|
+
margin-top: 0;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.custom-empty__description {
|
|
93
|
+
@include typo.body-md;
|
|
94
|
+
color: var(--er-text-muted);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.el-empty__bottom {
|
|
98
|
+
margin-top: 0;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
@use '../themes/aurora/typography/typography-utils' as typo;
|
|
2
|
+
|
|
3
|
+
.el-form.custom-form {
|
|
4
|
+
.custom-form__parent-group {
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
gap: var(--er-shape-spacing-200);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.el-form-item {
|
|
11
|
+
display: flex;
|
|
12
|
+
flex-direction: column;
|
|
13
|
+
gap: var(--er-shape-spacing-50);
|
|
14
|
+
margin-bottom: 0;
|
|
15
|
+
width: 100%;
|
|
16
|
+
|
|
17
|
+
&__label {
|
|
18
|
+
@include typo.label-lg;
|
|
19
|
+
display: flex;
|
|
20
|
+
gap: var(--er-shape-spacing-50);
|
|
21
|
+
color: var(--er-text-primary);
|
|
22
|
+
align-items: center;
|
|
23
|
+
margin: 0;
|
|
24
|
+
|
|
25
|
+
&:before {
|
|
26
|
+
display: none;
|
|
27
|
+
content: '' !important;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.required-field {
|
|
31
|
+
color: var(--er-text-danger);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
&__content {
|
|
36
|
+
gap: var(--er-shape-spacing-50);
|
|
37
|
+
flex: unset;
|
|
38
|
+
line-height: unset;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// ── Shared message styles ─────────────────────────────────────────────────
|
|
42
|
+
.custom-form-item {
|
|
43
|
+
&__error,
|
|
44
|
+
&__success,
|
|
45
|
+
&__info {
|
|
46
|
+
@include typo.body-sm;
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: flex-start;
|
|
49
|
+
gap: var(--er-shape-spacing-50);
|
|
50
|
+
width: 100%;
|
|
51
|
+
|
|
52
|
+
svg {
|
|
53
|
+
width: var(--er-control-height-xxs);
|
|
54
|
+
height: var(--er-control-height-xxs);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&__error {
|
|
59
|
+
color: var(--er-text-danger);
|
|
60
|
+
}
|
|
61
|
+
&__success {
|
|
62
|
+
color: var(--er-text-success);
|
|
63
|
+
}
|
|
64
|
+
&__info {
|
|
65
|
+
color: var(--er-text-muted);
|
|
66
|
+
|
|
67
|
+
.el-icon {
|
|
68
|
+
color: var(--er-icon-secondary);
|
|
69
|
+
width: var(--er-control-height-xxs);
|
|
70
|
+
height: var(--er-control-height-xxs);
|
|
71
|
+
|
|
72
|
+
svg {
|
|
73
|
+
width: 100%;
|
|
74
|
+
height: 100%;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// ── Icon tooltip ──────────────────────────────────────────────────────────
|
|
81
|
+
.label-tooltip {
|
|
82
|
+
color: var(--er-icon-secondary);
|
|
83
|
+
width: var(--er-control-height-xxs);
|
|
84
|
+
height: var(--er-control-height-xxs);
|
|
85
|
+
|
|
86
|
+
svg {
|
|
87
|
+
width: 100%;
|
|
88
|
+
height: 100%;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
&.label-size--sm {
|
|
93
|
+
.el-form-item__label {
|
|
94
|
+
@include typo.label-sm;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.label-tooltip {
|
|
98
|
+
width: 12px;
|
|
99
|
+
height: 12px;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
&.label-size--md {
|
|
104
|
+
.el-form-item__label {
|
|
105
|
+
@include typo.label-md;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.label-tooltip {
|
|
109
|
+
width: 14px;
|
|
110
|
+
height: 14px;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
&.label-size--lg {
|
|
115
|
+
.el-form-item__label {
|
|
116
|
+
@include typo.label-lg;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.label-tooltip {
|
|
120
|
+
width: 16px;
|
|
121
|
+
height: 16px;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// ── Validation border overrides ───────────────────────────────────────────
|
|
126
|
+
&.is-error {
|
|
127
|
+
.custom-auto-complete.el-autocomplete .el-input__wrapper,
|
|
128
|
+
.custom-input.el-textarea .el-textarea__inner,
|
|
129
|
+
.custom-input-tag.el-input-tag,
|
|
130
|
+
.custom-select.el-select .el-select__wrapper,
|
|
131
|
+
.custom-input.el-input .el-input__wrapper {
|
|
132
|
+
border-color: var(--er-border-danger) !important;
|
|
133
|
+
|
|
134
|
+
&:hover {
|
|
135
|
+
border-color: var(--er-border-danger) !important;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
&:focus,
|
|
139
|
+
&.is-focus,
|
|
140
|
+
&.is-focused {
|
|
141
|
+
border-color: var(--er-action-primary-default) !important;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.form-group-default {
|
|
148
|
+
display: flex;
|
|
149
|
+
gap: var(--er-shape-spacing-100);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// ============================================================================
|
|
2
|
+
// EaeraWidgetGrowthBalanceProfitChart — Growth / Balance / Profit widget styles
|
|
3
|
+
// Design source: Figma 7DD5x9AmpudFQRF9mjSclE node 2093-100712
|
|
4
|
+
// Uses --er-* custom properties (host app must provide design tokens)
|
|
5
|
+
// ============================================================================
|
|
6
|
+
|
|
7
|
+
.gbp-widget {
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
align-self: stretch;
|
|
11
|
+
background: var(--er-surface-container);
|
|
12
|
+
border: 1px solid var(--er-border-default);
|
|
13
|
+
border-radius: var(--er-shape-corner-200);
|
|
14
|
+
padding: var(--er-shape-spacing-200);
|
|
15
|
+
gap: var(--er-shape-spacing-200);
|
|
16
|
+
|
|
17
|
+
// ── Header ───────────────────────────────────────────────────────────────
|
|
18
|
+
&__header {
|
|
19
|
+
display: flex;
|
|
20
|
+
align-self: stretch;
|
|
21
|
+
align-items: center;
|
|
22
|
+
justify-content: space-between;
|
|
23
|
+
padding: var(--er-shape-spacing-100) 0;
|
|
24
|
+
flex-wrap: wrap;
|
|
25
|
+
gap: var(--er-shape-spacing-100);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&__title {
|
|
29
|
+
color: var(--er-text-primary);
|
|
30
|
+
font-family: var(--er-typo-title-md-font);
|
|
31
|
+
font-size: var(--er-typo-title-md-sz);
|
|
32
|
+
line-height: var(--er-typo-title-md-line-hg);
|
|
33
|
+
font-weight: var(--er-typo-title-md-wg-em);
|
|
34
|
+
letter-spacing: var(--er-typo-title-md-tracking);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&__controls {
|
|
38
|
+
@apply w-full md:w-fit grid grid-cols-1 md:grid-cols-2 gap-3;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// ── Select dropdown ──────────────────────────────────────────────────────
|
|
42
|
+
&__select {
|
|
43
|
+
@apply my-auto;
|
|
44
|
+
width: 200px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
&__select .el-select__wrapper {
|
|
48
|
+
min-height: 32px;
|
|
49
|
+
border-radius: var(--er-shape-corner-100);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&__select-icon {
|
|
53
|
+
width: 16px;
|
|
54
|
+
height: 16px;
|
|
55
|
+
color: var(--er-text-muted);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// ── Chart area ───────────────────────────────────────────────────────────
|
|
59
|
+
&__body {
|
|
60
|
+
display: flex;
|
|
61
|
+
flex-direction: column;
|
|
62
|
+
align-self: stretch;
|
|
63
|
+
min-height: 440px;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
&__chart {
|
|
67
|
+
width: 100%;
|
|
68
|
+
height: 440px;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// ── Empty state ──────────────────────────────────────────────────────────
|
|
72
|
+
&__empty {
|
|
73
|
+
display: flex;
|
|
74
|
+
flex-direction: column;
|
|
75
|
+
align-items: center;
|
|
76
|
+
justify-content: center;
|
|
77
|
+
gap: var(--er-shape-spacing-150);
|
|
78
|
+
height: 440px;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
&__empty-icon {
|
|
82
|
+
width: 48px;
|
|
83
|
+
height: 48px;
|
|
84
|
+
color: var(--er-text-placeholder);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
&__empty-text {
|
|
88
|
+
color: var(--er-text-muted);
|
|
89
|
+
font-family: var(--er-typo-body-md-font);
|
|
90
|
+
font-size: var(--er-typo-body-md-sz);
|
|
91
|
+
line-height: var(--er-typo-body-md-line-hg);
|
|
92
|
+
font-weight: var(--er-typo-body-md-wg);
|
|
93
|
+
letter-spacing: var(--er-typo-body-md-tracking);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
@use '../themes/aurora/typography/typography-utils' as typo;
|
|
2
|
+
|
|
3
|
+
// ─── Input Code / OTP ──────────────────────────────────────────────────────
|
|
4
|
+
// Source: Figma UI KIT CORE — OTP input (43229:1245) / otp-input-field (43226:3187)
|
|
5
|
+
|
|
6
|
+
.custom-input-otp.el-input-otp {
|
|
7
|
+
display: inline-flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
height: var(--er-control-height-3xl);
|
|
10
|
+
column-gap: 0;
|
|
11
|
+
|
|
12
|
+
.el-input-otp__input-field {
|
|
13
|
+
width: 56px;
|
|
14
|
+
height: 100%;
|
|
15
|
+
border: 1px solid var(--er-border-default);
|
|
16
|
+
border-radius: 0;
|
|
17
|
+
box-shadow: none !important;
|
|
18
|
+
|
|
19
|
+
&:first-child {
|
|
20
|
+
border-top-left-radius: var(--er-shape-corner-150);
|
|
21
|
+
border-bottom-left-radius: var(--er-shape-corner-150);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&:last-child {
|
|
25
|
+
border-top-right-radius: var(--er-shape-corner-150);
|
|
26
|
+
border-bottom-right-radius: var(--er-shape-corner-150);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
&:not(:first-child) {
|
|
30
|
+
border-left: none;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&:has(.el-input-otp__input[value=''])::before {
|
|
34
|
+
content: '-';
|
|
35
|
+
position: absolute;
|
|
36
|
+
inset: 0;
|
|
37
|
+
display: flex;
|
|
38
|
+
align-items: center;
|
|
39
|
+
justify-content: center;
|
|
40
|
+
color: var(--er-text-muted);
|
|
41
|
+
pointer-events: none;
|
|
42
|
+
@include typo.headline-lg;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&:has(.el-input-otp__input:focus)::before {
|
|
46
|
+
display: none;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
&:focus-within {
|
|
50
|
+
z-index: 2;
|
|
51
|
+
border: 2px solid var(--er-action-primary-default);
|
|
52
|
+
box-shadow: 0 0 0 2px var(--er-shadow-ambient-015);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&:not(.is-disabled):not(.disabled):not(.is-danger):not(.danger):not(.is-error):not(.error)
|
|
57
|
+
.el-input-otp__input-field:hover:not(:focus-within) {
|
|
58
|
+
z-index: 1;
|
|
59
|
+
border: 2px solid var(--er-action-primary-hover);
|
|
60
|
+
box-shadow: 0 0 0 2px var(--er-shadow-ambient-015);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.el-input-otp__input {
|
|
64
|
+
padding: 0;
|
|
65
|
+
color: var(--er-text-primary);
|
|
66
|
+
background-color: transparent;
|
|
67
|
+
|
|
68
|
+
@include typo.headline-lg;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// ── Disabled ──
|
|
72
|
+
&.is-disabled,
|
|
73
|
+
&.disabled {
|
|
74
|
+
opacity: 0.5;
|
|
75
|
+
pointer-events: none;
|
|
76
|
+
|
|
77
|
+
.el-input-otp__input-field {
|
|
78
|
+
background-color: transparent;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// ── Error / Danger ──
|
|
83
|
+
&.is-danger,
|
|
84
|
+
&.danger,
|
|
85
|
+
&.is-error,
|
|
86
|
+
&.error {
|
|
87
|
+
.el-input-otp__input-field {
|
|
88
|
+
border-color: var(--er-border-danger);
|
|
89
|
+
border-right-color: var(--er-border-danger-subtle);
|
|
90
|
+
|
|
91
|
+
&:last-child {
|
|
92
|
+
border-right-color: var(--er-border-danger);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
&:hover:not(:focus-within) {
|
|
96
|
+
z-index: 1;
|
|
97
|
+
border: 2px solid var(--er-action-danger-hover);
|
|
98
|
+
box-shadow: 0 0 0 2px var(--er-shadow-ambient-015);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
&:focus-within {
|
|
102
|
+
z-index: 2;
|
|
103
|
+
border: 2px solid var(--er-action-primary-default);
|
|
104
|
+
box-shadow: 0 0 0 2px var(--er-shadow-ambient-015);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.el-input-otp__input-field:has(.el-input-otp__input[value=''])::before {
|
|
109
|
+
color: var(--er-text-danger);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.el-input-otp__input {
|
|
113
|
+
color: var(--er-text-danger);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|