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

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,150 @@
1
+ // ============================================================================
2
+ // ALERT COMPONENT — EAERA DESIGN SYSTEM
3
+ // ============================================================================
4
+ // Source: Figma UI Kit Core
5
+ // Node: https://www.figma.com/design/HSOs8VcK5CKL8s15AqD42x/UI-KIT-CORE?node-id=40233-14068
6
+ // Component: EaeraAlert.vue (wraps el-alert, class="custom-alert")
7
+ //
8
+ // Rendered DOM (Element Plus ElAlert):
9
+ // .custom-alert.el-alert.el-alert--{type}.is-light
10
+ // ├── .el-alert__icon (when :show-icon)
11
+ // └── .el-alert__content
12
+ // ├── .el-alert__title (when title)
13
+ // ├── .el-alert__description (slot / :message)
14
+ // └── .el-alert__close-btn (when :closable)
15
+ // ============================================================================
16
+
17
+ @use '../themes/aurora/typography/typography-utils' as typo;
18
+ @use '../themes/aurora/elevation/elevation-utils' as elevation;
19
+
20
+ @mixin alert-type($bg, $text) {
21
+ background-color: $bg;
22
+
23
+ .el-alert__icon {
24
+ color: $text;
25
+ }
26
+
27
+ // No title: the semantic color applies to the single-line description text
28
+ &:not(.custom-alert--with-title) {
29
+ .el-alert__description {
30
+ color: $text;
31
+ }
32
+ }
33
+
34
+ // With title: the semantic color applies to the title; description is always secondary
35
+ &.custom-alert--with-title {
36
+ .el-alert__title {
37
+ color: $text;
38
+ }
39
+
40
+ .el-alert__description {
41
+ color: var(--er-text-secondary);
42
+ }
43
+ }
44
+ }
45
+
46
+ // ─── Base ─────────────────────────────────────────────────────────────────────
47
+
48
+ .custom-alert.el-alert {
49
+ // Override EP `width: 100%` / padding / bg / border-radius / no border
50
+ width: 100%;
51
+ padding: var(--er-shape-spacing-100);
52
+ gap: var(--er-shape-spacing-150);
53
+ background-color: var(--er-surface-neutral-subtle);
54
+ border: none;
55
+ border-radius: var(--er-shape-corner-100);
56
+
57
+ .el-alert__icon {
58
+ width: var(--er-control-height-xs);
59
+ height: var(--er-control-height-xs);
60
+ margin-right: 0;
61
+ color: var(--er-icon-secondary);
62
+
63
+ * {
64
+ width: 100%;
65
+ height: 100%;
66
+ }
67
+ }
68
+
69
+ .el-alert__content {
70
+ flex: 1;
71
+ @include typo.body-sm;
72
+ color: var(--er-text-secondary);
73
+ }
74
+
75
+ .el-alert__title {
76
+ @include typo.title-sm-em;
77
+ color: var(--er-text-primary);
78
+ }
79
+
80
+ .el-alert__description {
81
+ @include typo.body-sm;
82
+ color: var(--er-text-secondary);
83
+ }
84
+
85
+ .el-alert__close-btn {
86
+ // Keep EP `position: absolute; top: 12px; right: 16px` so the X sits at the top-right
87
+ // (do NOT set position: static — that drops it into the content flow at the bottom)
88
+ // right is overridden per case below: 8px (no title) / 12px (with title)
89
+ flex-shrink: 0;
90
+ display: flex;
91
+ align-items: center;
92
+ justify-content: center;
93
+ width: var(--er-control-height-sm);
94
+ height: var(--er-control-height-sm);
95
+ padding: var(--er-shape-spacing-50);
96
+ border-radius: var(--er-shape-corner-50);
97
+ color: var(--er-icon-primary);
98
+
99
+ &:hover {
100
+ color: var(--er-text-primary);
101
+ background-color: var(--er-action-neutral-subtle-hover);
102
+ }
103
+ }
104
+
105
+ // No title (single line): center the X vertically with the icon/text line
106
+ // (with-title keeps EP's absolute top: 12px aligned to the title row)
107
+ &:not(.custom-alert--with-title) {
108
+ .el-alert__close-btn {
109
+ top: 50%;
110
+ transform: translateY(-50%);
111
+ right: 8px;
112
+ }
113
+ }
114
+
115
+ // ── With Title: left-align stacked title + description ──
116
+ &.custom-alert--with-title {
117
+ padding: var(--er-shape-spacing-150);
118
+ align-items: flex-start;
119
+
120
+ .el-alert__close-btn {
121
+ right: 12px;
122
+ }
123
+
124
+ .el-alert__content {
125
+ align-items: flex-start;
126
+ }
127
+ }
128
+
129
+ // ── Color types (bg + icon follow the tint; text color targets description when
130
+ // no title, or the title when a title is present — no border on any variant) ──
131
+ &.custom-alert--default {
132
+ @include alert-type(var(--er-surface-neutral-subtle), var(--er-text-secondary));
133
+ }
134
+
135
+ &.custom-alert--success {
136
+ @include alert-type(var(--er-surface-success-subtle), var(--er-text-success));
137
+ }
138
+
139
+ &.custom-alert--warning {
140
+ @include alert-type(var(--er-surface-warning-subtle), var(--er-text-warning));
141
+ }
142
+
143
+ &.custom-alert--error {
144
+ @include alert-type(var(--er-surface-danger-subtle), var(--er-text-danger));
145
+ }
146
+
147
+ &.custom-alert--info {
148
+ @include alert-type(var(--er-surface-information-subtle), var(--er-text-information));
149
+ }
150
+ }
@@ -0,0 +1,165 @@
1
+ // ============================================================================
2
+ // AUTO COMPLETE COMPONENT STYLES
3
+ // ============================================================================
4
+ // Source: Figma UI Kit Production - Auto Complete (node-id=40538:29899)
5
+ // Based on: EaeraAutoComplete.vue component (wraps Element Plus ElAutocomplete)
6
+ // IMPORTANT: Colors use Layer 3 tokens only
7
+ //
8
+ // ELEMENT PLUS STRUCTURE:
9
+ // .el-autocomplete ← Root wrapper (inline-block)
10
+ // .el-input ← Input component (reuses input styles)
11
+ // .el-input__wrapper ← Input container (border, padding, bg)
12
+ // .el-input__prefix ← Left icon slot
13
+ // input.el-input__inner ← Actual input element
14
+ // .el-input__suffix ← Right icon slot
15
+ // .el-autocomplete-suggestion ← Dropdown panel (teleported to body)
16
+ // .el-autocomplete-suggestion__wrap ← Scroll container
17
+ // .el-autocomplete-suggestion__list
18
+ // li ← Suggestion items
19
+ // ============================================================================
20
+
21
+ @use '../themes/aurora/typography/typography-utils' as typo;
22
+ @use '../themes/aurora/elevation/elevation-utils' as elevation;
23
+
24
+ // ─────────────────────────────────────────────────────────────────────────
25
+ // AUTO COMPLETE SIZES — from Figma (node-id=40538:29899)
26
+ // Figma axes: state (default/hover/focus), is-disabled, is-danger, is-filled, size (sm/md/lg)
27
+ // SM: h-24px (not in figma width but implied), px-6px, border-radius xs (4px) — inferred from sm pattern
28
+ // MD: h-32px, px-8px, border-radius sm (8px)
29
+ // LG: h-40px, px-12px, border-radius sm (8px)
30
+ // ─────────────────────────────────────────────────────────────────────────
31
+
32
+ .custom-auto-complete.el-autocomplete {
33
+ .el-icon {
34
+ width: var(--er-control-height-xxs) !important;
35
+ height: var(--er-control-height-xxs) !important;
36
+
37
+ &.el-input__clear {
38
+ width: 12px !important;
39
+ height: 12px !important;
40
+ }
41
+
42
+ svg {
43
+ width: 100%;
44
+ height: 100%;
45
+ }
46
+ }
47
+
48
+ .el-input {
49
+ &:hover:not(.is-disabled) {
50
+ border-color: var(--er-action-primary-default);
51
+ }
52
+ }
53
+
54
+ .el-input__wrapper {
55
+ height: var(--er-control-height-md);
56
+ padding: 0 var(--er-shape-spacing-100);
57
+ gap: var(--er-shape-spacing-50);
58
+ border-radius: var(--er-shape-corner-100);
59
+ border: 1px solid var(--er-border-default);
60
+ background-color: var(--er-surface-container);
61
+ box-shadow: none !important;
62
+
63
+ &:hover {
64
+ border-color: var(--er-action-primary-hover);
65
+ }
66
+
67
+ &.is-focus,
68
+ &:focus-within {
69
+ border-color: var(--er-action-primary-default);
70
+ }
71
+ }
72
+
73
+ // Input text
74
+ .el-input__inner {
75
+ @include typo.body-md;
76
+ color: var(--er-text-primary);
77
+
78
+ &::placeholder {
79
+ @include typo.body-md;
80
+ color: var(--er-text-muted); // Figma: text/muted #a1a1aa
81
+ }
82
+ }
83
+
84
+ &.sm .el-input__inner,
85
+ &.sm .el-input__inner::placeholder {
86
+ @include typo.body-sm;
87
+ }
88
+
89
+ &.lg .el-input__wrapper {
90
+ height: var(--er-control-height-lg);
91
+ padding: 0 var(--er-shape-spacing-150);
92
+ gap: var(--er-shape-spacing-75);
93
+ border-radius: var(--er-shape-corner-150);
94
+ }
95
+
96
+ &.is-danger .el-input__wrapper,
97
+ &.danger .el-input__wrapper {
98
+ border-color: var(--er-border-danger);
99
+
100
+ &:hover {
101
+ border-color: var(--er-border-danger);
102
+ }
103
+
104
+ &.is-focus,
105
+ &:focus-within {
106
+ border-color: var(--er-action-primary-default);
107
+ }
108
+ }
109
+
110
+ &.is-disabled .el-input__wrapper,
111
+ .el-input.is-disabled .el-input__wrapper {
112
+ background-color: var(--er-surface-container);
113
+ opacity: 0.5;
114
+ cursor: not-allowed;
115
+
116
+ &:hover {
117
+ border-color: var(--er-border-default);
118
+ }
119
+ }
120
+
121
+ .el-input__suffix,
122
+ .el-input__prefix {
123
+ display: flex;
124
+ align-items: center;
125
+ }
126
+
127
+ .el-input__prefix-inner {
128
+ width: var(--er-control-height-xxs);
129
+ height: var(--er-control-height-xxs);
130
+
131
+ >:last-child{
132
+ margin-right: 0;
133
+ }
134
+
135
+ svg {
136
+ width: 100%;
137
+ height: 100%;
138
+ }
139
+ }
140
+
141
+ &.sm .el-input__wrapper {
142
+ height: var(--er-control-height-sm);
143
+ padding: 0 var(--er-shape-spacing-75);
144
+ gap: var(--er-shape-spacing-50);
145
+ border-radius: var(--er-shape-corner-75);
146
+
147
+ .el-input__prefix-inner {
148
+ width: 12px;
149
+ height: 12px;
150
+ }
151
+ }
152
+
153
+ // ── XL ──
154
+ &.xl .el-input__wrapper {
155
+ height: var(--er-control-height-xl);
156
+ padding: 0 var(--er-shape-spacing-200);
157
+ gap: var(--er-shape-spacing-100);
158
+ border-radius: var(--er-shape-corner-150);
159
+
160
+ .el-input__prefix-inner {
161
+ width: var(--er-control-height-xs);
162
+ height: var(--er-control-height-xs);
163
+ }
164
+ }
165
+ }
@@ -0,0 +1,25 @@
1
+ @use '../themes/aurora/typography/typography-utils' as typo;
2
+
3
+ // ─────────────────────────────────────────────────────────────────────────
4
+ // Avatar Group (EaeraAvatarGroup)
5
+ // Figma: group layout — avatars overlap -4px, stacked left-to-right
6
+ // ─────────────────────────────────────────────────────────────────────────
7
+
8
+ // ─────────────────────────────────────────────────────────────────────────
9
+ // Mixin for avatar/overflow sizes
10
+ // ─────────────────────────────────────────────────────────────────────────
11
+ @mixin avatar-group-size($size, $border-width: 1px) {
12
+ width: $size;
13
+ height: $size;
14
+ border-width: $border-width;
15
+ }
16
+
17
+ .custom-avatar-group.el-avatar-group {
18
+ display: flex;
19
+ align-items: center;
20
+ isolation: isolate;
21
+
22
+ .custom-avatar.el-avatar:not(:first-child) {
23
+ margin-left: -4px;
24
+ }
25
+ }
@@ -0,0 +1,40 @@
1
+ @use '../themes/aurora/typography/typography-utils' as typo;
2
+ // ─────────────────────────────────────────────────────────────────────────
3
+ // Mixin for avatar/overflow sizes
4
+ // ─────────────────────────────────────────────────────────────────────────
5
+ @mixin avatar-size($size, $border-width: 1px) {
6
+ width: $size;
7
+ height: $size;
8
+ border-width: $border-width;
9
+ }
10
+
11
+ // ─────────────────────────────────────────────────────────────────────────
12
+ // Individual Avatar
13
+ // ─────────────────────────────────────────────────────────────────────────
14
+ .custom-avatar.el-avatar {
15
+ background: var(--er-surface-brand-subtle);
16
+ color: var(--er-action-primary-default);
17
+ border: 1px solid var(--er-neutral-white);
18
+
19
+ // ── Size overrides (EaeraAvatar passes string size as a CSS class)
20
+ &.sm {
21
+ @include avatar-size(var(--er-control-height-xxs));
22
+ @include typo.label-sm;
23
+ }
24
+ &.md {
25
+ @include avatar-size(var(--er-control-height-xs));
26
+ @include typo.label-sm;
27
+ }
28
+ &.lg {
29
+ @include avatar-size(var(--er-control-height-sm));
30
+ @include typo.label-md;
31
+ }
32
+ &.xl {
33
+ @include avatar-size(var(--er-control-height-md), 2px);
34
+ @include typo.title-md;
35
+ }
36
+ &[class*='2xl'] {
37
+ @include avatar-size(var(--er-control-height-lg), 2px);
38
+ @include typo.title-lg;
39
+ }
40
+ }
@@ -0,0 +1,80 @@
1
+ @use '../themes/aurora/typography/typography-utils' as typo;
2
+
3
+ @mixin badge-type($bg) {
4
+ background-color: $bg !important;
5
+ }
6
+
7
+ // ─── Base ─────────────────────────────────────────────────────────────────────
8
+
9
+ .custom-badge.el-badge {
10
+ position: relative;
11
+
12
+ .el-badge__content {
13
+ position: absolute;
14
+ right: -8px !important;
15
+ top: -8px !important;
16
+ transform: none !important;
17
+ height: 16px;
18
+ min-width: 16px;
19
+ padding: 0 4px;
20
+ border-radius: var(--er-shape-corner-200);
21
+ @include typo.label-sm;
22
+ text-align: center;
23
+ white-space: nowrap;
24
+ color: var(--er-text-inverse);
25
+ border: none;
26
+
27
+ // ── Types ──
28
+ &.el-badge__content--primary {
29
+ @include badge-type(var(--er-icon-brand));
30
+ }
31
+
32
+ &.el-badge__content--success {
33
+ @include badge-type(var(--er-icon-success));
34
+ }
35
+
36
+ &.el-badge__content--warning {
37
+ @include badge-type(var(--er-icon-warning));
38
+ }
39
+
40
+ &.el-badge__content--danger {
41
+ @include badge-type(var(--er-icon-danger));
42
+ }
43
+
44
+ &.el-badge__content--info {
45
+ @include badge-type(var(--er-icon-information));
46
+ }
47
+
48
+ // ── Dot ──
49
+ &.is-dot {
50
+ right: -4px !important;
51
+ top: -4px !important;
52
+ width: 8px;
53
+ height: 8px;
54
+ min-width: 8px;
55
+ padding: 0;
56
+ border-radius: var(--er-shape-corner-200);
57
+ border: none;
58
+
59
+ &.el-badge__content--primary {
60
+ @include badge-type(var(--er-icon-brand));
61
+ }
62
+
63
+ &.el-badge__content--success {
64
+ @include badge-type(var(--er-icon-success));
65
+ }
66
+
67
+ &.el-badge__content--warning {
68
+ @include badge-type(var(--er-icon-warning));
69
+ }
70
+
71
+ &.el-badge__content--danger {
72
+ @include badge-type(var(--er-icon-danger));
73
+ }
74
+
75
+ &.el-badge__content--info {
76
+ @include badge-type(var(--er-icon-information));
77
+ }
78
+ }
79
+ }
80
+ }
@@ -0,0 +1,91 @@
1
+ @use '../themes/aurora/typography/typography-utils' as typo;
2
+
3
+ @mixin breadcrumb-size($height, $padding-x, $radius) {
4
+ .el-breadcrumb__inner {
5
+ height: $height;
6
+ padding: 0 $padding-x;
7
+ border-radius: $radius;
8
+ @content;
9
+ }
10
+ }
11
+
12
+ // ─── Base ─────────────────────────────────────────────────────────────────────
13
+
14
+ .custom-breadcrumb.el-breadcrumb {
15
+ display: flex;
16
+ align-items: center;
17
+ user-select: none;
18
+ .el-breadcrumb__inner {
19
+ display: inline-flex;
20
+ align-items: center;
21
+ justify-content: center;
22
+ color: var(--er-text-primary) !important;
23
+ white-space: nowrap;
24
+ }
25
+
26
+ .el-breadcrumb__inner.is-link {
27
+ color: var(--er-text-primary) !important;
28
+
29
+ &:hover {
30
+ background-color: var(--er-action-neutral-subtle-hover);
31
+ color: var(--er-text-primary) !important;
32
+ }
33
+ }
34
+
35
+ .el-breadcrumb__inner:not(.is-link),
36
+ .el-breadcrumb__item:last-child .el-breadcrumb__inner {
37
+ color: var(--er-text-brand) !important;
38
+ }
39
+
40
+ .el-breadcrumb__item.is-disabled {
41
+ opacity: 0.5;
42
+ pointer-events: none;
43
+ }
44
+
45
+ .el-breadcrumb__separator {
46
+ color: var(--er-icon-muted);
47
+ &.el-icon {
48
+ margin: 0;
49
+ }
50
+ }
51
+
52
+ // ── MD ──
53
+ &.md {
54
+ @include breadcrumb-size(
55
+ var(--er-control-height-md),
56
+ var(--er-shape-spacing-100),
57
+ var(--er-shape-corner-100)
58
+ ) {
59
+ @include typo.label-lg;
60
+ }
61
+
62
+ .el-breadcrumb__separator.el-icon {
63
+ width: 16px;
64
+ height: 16px;
65
+ svg {
66
+ width: 16px;
67
+ height: 16px;
68
+ }
69
+ }
70
+ }
71
+
72
+ // ── SM ──
73
+ &.sm {
74
+ @include breadcrumb-size(
75
+ var(--er-control-height-sm),
76
+ var(--er-shape-spacing-50),
77
+ var(--er-shape-corner-50)
78
+ ) {
79
+ @include typo.label-md;
80
+ }
81
+
82
+ .el-breadcrumb__separator.el-icon {
83
+ width: 12px;
84
+ height: 12px;
85
+ svg {
86
+ width: 12px;
87
+ height: 12px;
88
+ }
89
+ }
90
+ }
91
+ }