rappel-ui 1.0.34 → 1.0.35

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 (240) hide show
  1. package/README.md +1 -0
  2. package/cjs/components/dropdown/index.d.ts +11 -98
  3. package/cjs/components/dropdown/src/dropdown-item.vue.d.ts +9 -7
  4. package/cjs/components/dropdown/src/dropdown-item.vue_vue_type_script_setup_true_lang.js +1 -1
  5. package/cjs/components/dropdown/src/dropdown-submenu.vue.d.ts +4 -2
  6. package/cjs/components/dropdown/src/dropdown-submenu.vue_vue_type_script_setup_true_lang.js +1 -1
  7. package/cjs/components/dropdown/src/dropdown.vue.d.ts +343 -11
  8. package/cjs/components/dropdown/src/dropdown.vue_vue_type_script_setup_true_lang.js +1 -1
  9. package/cjs/components/dropdown/src/loop.js +1 -0
  10. package/cjs/components/dropdown/src/loop.vue.d.ts +18 -0
  11. package/cjs/components/dropdown/src/loop.vue_vue_type_script_setup_true_lang.js +1 -0
  12. package/cjs/components/dropdown/src/types.d.ts +21 -14
  13. package/cjs/components/dropdown/src/use-dropdown-emit.d.ts +4 -4
  14. package/cjs/components/index.d.ts +1 -0
  15. package/cjs/components/index.js +1 -1
  16. package/cjs/components/menu/index.d.ts +86 -0
  17. package/cjs/components/menu/index.js +1 -0
  18. package/cjs/components/menu/src/constants.d.ts +1 -0
  19. package/cjs/components/menu/src/constants.js +1 -0
  20. package/cjs/components/menu/src/loop.js +1 -0
  21. package/cjs/components/menu/src/loop.vue.d.ts +18 -0
  22. package/cjs/components/menu/src/loop.vue_vue_type_script_setup_true_lang.js +1 -0
  23. package/cjs/components/menu/src/menu-item.js +1 -0
  24. package/cjs/components/menu/src/menu-item.vue.d.ts +25 -0
  25. package/cjs/components/menu/src/menu-item.vue_vue_type_script_setup_true_lang.js +1 -0
  26. package/cjs/components/menu/src/menu.js +1 -0
  27. package/cjs/components/menu/src/menu.vue.d.ts +21 -0
  28. package/cjs/components/menu/src/menu.vue_vue_type_script_setup_true_lang.js +1 -0
  29. package/cjs/components/menu/src/submenu.js +1 -0
  30. package/cjs/components/menu/src/submenu.vue.d.ts +19 -0
  31. package/cjs/components/menu/src/submenu.vue_vue_type_script_setup_true_lang.js +1 -0
  32. package/cjs/components/menu/src/types.d.ts +79 -0
  33. package/cjs/components/menu/src/use-menu-emit.d.ts +5 -0
  34. package/cjs/components/menu/src/use-menu-emit.js +1 -0
  35. package/cjs/components/menu/style/css.d.ts +0 -0
  36. package/cjs/components/menu/style/css.js +2 -0
  37. package/cjs/components/menu/style/index.d.ts +0 -0
  38. package/cjs/components/menu/style/index.js +2 -0
  39. package/cjs/components/message/src/create-message.js +1 -1
  40. package/cjs/components/message/src/use-message-emit.d.ts +2 -2
  41. package/cjs/components/popconfirm/src/popconfirm.vue_vue_type_script_setup_true_lang.js +1 -1
  42. package/cjs/components/popconfirm/src/use-popconfirm-emit.d.ts +2 -2
  43. package/cjs/components/popover/src/popover.vue_vue_type_script_setup_true_lang.js +1 -1
  44. package/cjs/components/popover/src/types.d.ts +1 -0
  45. package/cjs/components/popover/src/use-popover-emit.d.ts +2 -2
  46. package/cjs/components/tooltip/src/constants.d.ts +0 -1
  47. package/cjs/components/tooltip/src/constants.js +1 -1
  48. package/cjs/components/tooltip/src/tooltip.vue_vue_type_script_setup_true_lang.js +1 -1
  49. package/cjs/components/tooltip/src/types.d.ts +1 -0
  50. package/cjs/components/tooltip/src/use-tooltip-emit.d.ts +2 -2
  51. package/cjs/components/tooltip/src/use-tooltip.js +1 -1
  52. package/cjs/components/transition/src/use-transition-emit.d.ts +2 -2
  53. package/cjs/composables/index.d.ts +1 -0
  54. package/cjs/composables/index.js +1 -1
  55. package/cjs/composables/use-slot-node/index.d.ts +2 -0
  56. package/cjs/composables/use-slot-node/index.js +1 -0
  57. package/cjs/composables/use-theme/index.js +1 -1
  58. package/cjs/constants/index.d.ts +1 -0
  59. package/cjs/constants/index.js +1 -0
  60. package/cjs/index.d.ts +183 -186
  61. package/cjs/index.js +1 -1
  62. package/cjs/svg-icons/create-icon.d.ts +2 -2
  63. package/cjs/svg-icons/src/arrow-backward.d.ts +2 -2
  64. package/cjs/svg-icons/src/arrow-down.d.ts +2 -2
  65. package/cjs/svg-icons/src/arrow-downward.d.ts +2 -2
  66. package/cjs/svg-icons/src/arrow-forward.d.ts +2 -2
  67. package/cjs/svg-icons/src/arrow-left.d.ts +2 -2
  68. package/cjs/svg-icons/src/arrow-right.d.ts +2 -2
  69. package/cjs/svg-icons/src/arrow-up.d.ts +2 -2
  70. package/cjs/svg-icons/src/arrow-upward.d.ts +2 -2
  71. package/cjs/svg-icons/src/check-circle.d.ts +2 -2
  72. package/cjs/svg-icons/src/check-fill.d.ts +2 -2
  73. package/cjs/svg-icons/src/check.d.ts +2 -2
  74. package/cjs/svg-icons/src/close-circle.d.ts +2 -2
  75. package/cjs/svg-icons/src/close-fill.d.ts +2 -2
  76. package/cjs/svg-icons/src/close-short.d.ts +2 -2
  77. package/cjs/svg-icons/src/close.d.ts +2 -2
  78. package/cjs/svg-icons/src/copy-closure.d.ts +2 -2
  79. package/cjs/svg-icons/src/copy.d.ts +2 -2
  80. package/cjs/svg-icons/src/delete.d.ts +2 -2
  81. package/cjs/svg-icons/src/exclam-fill.d.ts +2 -2
  82. package/cjs/svg-icons/src/exclam.d.ts +2 -2
  83. package/cjs/svg-icons/src/help.d.ts +2 -2
  84. package/cjs/svg-icons/src/info-circle.d.ts +2 -2
  85. package/cjs/svg-icons/src/info-fill.d.ts +2 -2
  86. package/cjs/svg-icons/src/loading.d.ts +2 -2
  87. package/cjs/svg-icons/src/more-dot-circle-horizontal.d.ts +2 -2
  88. package/cjs/svg-icons/src/more-dot-circle-outline-horizontal.d.ts +2 -2
  89. package/cjs/svg-icons/src/more-dot-circle-outline-vertical.d.ts +2 -2
  90. package/cjs/svg-icons/src/more-dot-circle.d.ts +2 -2
  91. package/cjs/svg-icons/src/more-dot-square-horizontal.d.ts +2 -2
  92. package/cjs/svg-icons/src/more-dot-square.d.ts +2 -2
  93. package/cjs/svg-icons/src/more-line.d.ts +2 -2
  94. package/cjs/svg-icons/src/play.d.ts +2 -2
  95. package/cjs/svg-icons/src/search-bold.d.ts +2 -2
  96. package/cjs/svg-icons/src/search.d.ts +2 -2
  97. package/cjs/svg-icons/src/star-fill.d.ts +2 -2
  98. package/cjs/svg-icons/src/star.d.ts +2 -2
  99. package/cjs/svg-icons/src/triangle-backward-fill.d.ts +2 -2
  100. package/cjs/svg-icons/src/triangle-downward-fill.d.ts +2 -2
  101. package/cjs/svg-icons/src/triangle-forward-fill.d.ts +2 -2
  102. package/cjs/svg-icons/src/triangle-upward-fill.d.ts +2 -2
  103. package/cjs/types/common.d.ts +16 -0
  104. package/cjs/types/component.d.ts +2 -1
  105. package/cjs/types/theme.d.ts +1 -1
  106. package/cjs/utils/index.js +1 -1
  107. package/cjs/utils/util.d.ts +15 -0
  108. package/cjs/utils/util.js +1 -1
  109. package/dist/index.css +1 -1
  110. package/dist/index.umd.js +13 -13
  111. package/es/components/dropdown/index.d.ts +11 -98
  112. package/es/components/dropdown/src/dropdown-item.vue.d.ts +9 -7
  113. package/es/components/dropdown/src/dropdown-item.vue_vue_type_script_setup_true_lang.mjs +103 -43
  114. package/es/components/dropdown/src/dropdown-submenu.vue.d.ts +4 -2
  115. package/es/components/dropdown/src/dropdown-submenu.vue_vue_type_script_setup_true_lang.mjs +42 -32
  116. package/es/components/dropdown/src/dropdown.vue.d.ts +343 -11
  117. package/es/components/dropdown/src/dropdown.vue_vue_type_script_setup_true_lang.mjs +105 -107
  118. package/es/components/dropdown/src/loop.mjs +5 -0
  119. package/es/components/dropdown/src/loop.vue.d.ts +18 -0
  120. package/es/components/dropdown/src/loop.vue_vue_type_script_setup_true_lang.mjs +26 -0
  121. package/es/components/dropdown/src/types.d.ts +21 -14
  122. package/es/components/dropdown/src/use-dropdown-emit.d.ts +4 -4
  123. package/es/components/index.d.ts +1 -0
  124. package/es/components/index.mjs +8 -2
  125. package/es/components/menu/index.d.ts +86 -0
  126. package/es/components/menu/index.mjs +13 -0
  127. package/es/components/menu/src/constants.d.ts +1 -0
  128. package/es/components/menu/src/constants.mjs +4 -0
  129. package/es/components/menu/src/loop.mjs +5 -0
  130. package/es/components/menu/src/loop.vue.d.ts +18 -0
  131. package/es/components/menu/src/loop.vue_vue_type_script_setup_true_lang.mjs +22 -0
  132. package/es/components/menu/src/menu-item.mjs +5 -0
  133. package/es/components/menu/src/menu-item.vue.d.ts +25 -0
  134. package/es/components/menu/src/menu-item.vue_vue_type_script_setup_true_lang.mjs +232 -0
  135. package/es/components/menu/src/menu.mjs +5 -0
  136. package/es/components/menu/src/menu.vue.d.ts +21 -0
  137. package/es/components/menu/src/menu.vue_vue_type_script_setup_true_lang.mjs +119 -0
  138. package/es/components/menu/src/submenu.mjs +5 -0
  139. package/es/components/menu/src/submenu.vue.d.ts +19 -0
  140. package/es/components/menu/src/submenu.vue_vue_type_script_setup_true_lang.mjs +176 -0
  141. package/es/components/menu/src/types.d.ts +79 -0
  142. package/es/components/menu/src/use-menu-emit.d.ts +5 -0
  143. package/es/components/menu/src/use-menu-emit.mjs +6 -0
  144. package/es/components/menu/style/css.d.ts +0 -0
  145. package/es/components/menu/style/css.mjs +2 -0
  146. package/es/components/menu/style/index.d.ts +0 -0
  147. package/es/components/menu/style/index.mjs +2 -0
  148. package/es/components/message/src/create-message.mjs +44 -43
  149. package/es/components/message/src/use-message-emit.d.ts +2 -2
  150. package/es/components/popconfirm/src/popconfirm.vue_vue_type_script_setup_true_lang.mjs +62 -65
  151. package/es/components/popconfirm/src/use-popconfirm-emit.d.ts +2 -2
  152. package/es/components/popover/src/popover.vue_vue_type_script_setup_true_lang.mjs +36 -32
  153. package/es/components/popover/src/types.d.ts +1 -0
  154. package/es/components/popover/src/use-popover-emit.d.ts +2 -2
  155. package/es/components/tooltip/src/constants.d.ts +0 -1
  156. package/es/components/tooltip/src/constants.mjs +2 -6
  157. package/es/components/tooltip/src/tooltip.vue_vue_type_script_setup_true_lang.mjs +85 -82
  158. package/es/components/tooltip/src/types.d.ts +1 -0
  159. package/es/components/tooltip/src/use-tooltip-emit.d.ts +2 -2
  160. package/es/components/tooltip/src/use-tooltip.mjs +5 -5
  161. package/es/components/transition/src/use-transition-emit.d.ts +2 -2
  162. package/es/composables/index.d.ts +1 -0
  163. package/es/composables/index.mjs +2 -1
  164. package/es/composables/use-slot-node/index.d.ts +2 -0
  165. package/es/composables/use-slot-node/index.mjs +10 -0
  166. package/es/composables/use-theme/index.mjs +1 -1
  167. package/es/constants/index.d.ts +1 -0
  168. package/es/constants/index.mjs +9 -0
  169. package/es/index.d.ts +183 -186
  170. package/es/index.mjs +81 -77
  171. package/es/svg-icons/create-icon.d.ts +2 -2
  172. package/es/svg-icons/src/arrow-backward.d.ts +2 -2
  173. package/es/svg-icons/src/arrow-down.d.ts +2 -2
  174. package/es/svg-icons/src/arrow-downward.d.ts +2 -2
  175. package/es/svg-icons/src/arrow-forward.d.ts +2 -2
  176. package/es/svg-icons/src/arrow-left.d.ts +2 -2
  177. package/es/svg-icons/src/arrow-right.d.ts +2 -2
  178. package/es/svg-icons/src/arrow-up.d.ts +2 -2
  179. package/es/svg-icons/src/arrow-upward.d.ts +2 -2
  180. package/es/svg-icons/src/check-circle.d.ts +2 -2
  181. package/es/svg-icons/src/check-fill.d.ts +2 -2
  182. package/es/svg-icons/src/check.d.ts +2 -2
  183. package/es/svg-icons/src/close-circle.d.ts +2 -2
  184. package/es/svg-icons/src/close-fill.d.ts +2 -2
  185. package/es/svg-icons/src/close-short.d.ts +2 -2
  186. package/es/svg-icons/src/close.d.ts +2 -2
  187. package/es/svg-icons/src/copy-closure.d.ts +2 -2
  188. package/es/svg-icons/src/copy.d.ts +2 -2
  189. package/es/svg-icons/src/delete.d.ts +2 -2
  190. package/es/svg-icons/src/exclam-fill.d.ts +2 -2
  191. package/es/svg-icons/src/exclam.d.ts +2 -2
  192. package/es/svg-icons/src/help.d.ts +2 -2
  193. package/es/svg-icons/src/info-circle.d.ts +2 -2
  194. package/es/svg-icons/src/info-fill.d.ts +2 -2
  195. package/es/svg-icons/src/loading.d.ts +2 -2
  196. package/es/svg-icons/src/more-dot-circle-horizontal.d.ts +2 -2
  197. package/es/svg-icons/src/more-dot-circle-outline-horizontal.d.ts +2 -2
  198. package/es/svg-icons/src/more-dot-circle-outline-vertical.d.ts +2 -2
  199. package/es/svg-icons/src/more-dot-circle.d.ts +2 -2
  200. package/es/svg-icons/src/more-dot-square-horizontal.d.ts +2 -2
  201. package/es/svg-icons/src/more-dot-square.d.ts +2 -2
  202. package/es/svg-icons/src/more-line.d.ts +2 -2
  203. package/es/svg-icons/src/play.d.ts +2 -2
  204. package/es/svg-icons/src/search-bold.d.ts +2 -2
  205. package/es/svg-icons/src/search.d.ts +2 -2
  206. package/es/svg-icons/src/star-fill.d.ts +2 -2
  207. package/es/svg-icons/src/star.d.ts +2 -2
  208. package/es/svg-icons/src/triangle-backward-fill.d.ts +2 -2
  209. package/es/svg-icons/src/triangle-downward-fill.d.ts +2 -2
  210. package/es/svg-icons/src/triangle-forward-fill.d.ts +2 -2
  211. package/es/svg-icons/src/triangle-upward-fill.d.ts +2 -2
  212. package/es/types/common.d.ts +16 -0
  213. package/es/types/component.d.ts +2 -1
  214. package/es/types/theme.d.ts +1 -1
  215. package/es/utils/index.mjs +2 -2
  216. package/es/utils/util.d.ts +15 -0
  217. package/es/utils/util.mjs +13 -3
  218. package/package.json +2 -2
  219. package/theme-chalk/index.css +1 -1
  220. package/theme-chalk/re-dropdown.css +1 -1
  221. package/theme-chalk/re-menu.css +1 -0
  222. package/theme-chalk/re-popconfirm.css +1 -1
  223. package/theme-chalk/re-popover.css +1 -1
  224. package/theme-chalk/re-tooltip.css +1 -1
  225. package/theme-chalk/src/css-vars/_dropdown.scss +44 -0
  226. package/theme-chalk/src/css-vars/_menu.scss +44 -0
  227. package/theme-chalk/src/css-vars/_popconfirm.scss +15 -0
  228. package/theme-chalk/src/css-vars/_popover.scss +24 -0
  229. package/theme-chalk/src/css-vars/_tooltip.scss +10 -5
  230. package/theme-chalk/src/dropdown.scss +44 -28
  231. package/theme-chalk/src/index.scss +1 -0
  232. package/theme-chalk/src/menu.scss +215 -0
  233. package/theme-chalk/src/mixins/_dropdown.scss +78 -0
  234. package/theme-chalk/src/mixins/_menu.scss +99 -0
  235. package/theme-chalk/src/mixins/_popconfirm.scss +21 -2
  236. package/theme-chalk/src/mixins/_popover.scss +26 -0
  237. package/theme-chalk/src/mixins/index.scss +9 -0
  238. package/theme-chalk/src/popconfirm.scss +7 -1
  239. package/theme-chalk/src/popover.scss +8 -0
  240. package/theme-chalk/src/tooltip.scss +1 -0
@@ -8,6 +8,25 @@
8
8
  filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.1));
9
9
  padding: 5px 0;
10
10
  }
11
+ @include dropdown-var('auto');
12
+ &.is-light {
13
+ @include dropdown-var('light');
14
+ }
15
+ &.is-dark {
16
+ @include dropdown-var('dark');
17
+ }
18
+
19
+ $bgcolor: getCssVar('dropdown', 'bgcolor');
20
+ $color: getCssVar('dropdown', 'color');
21
+ $hover-bgcolor: getCssVar('dropdown', 'hover-bgcolor');
22
+ $hover-color: getCssVar('dropdown', 'hover-color');
23
+ $disabled-bgcolor: getCssVar('dropdown', 'disabled-bgcolor');
24
+ $disabled-color: getCssVar('dropdown', 'disabled-color');
25
+ $font-size: getCssVar('dropdown', 'font-size');
26
+ $icon-font-size: getCssVar('dropdown', 'icon-font-size');
27
+ $sub-padding-left: getCssVar('dropdown', 'sub-padding-left');
28
+ $line-height: getCssVar('dropdown', 'line-height');
29
+ $label-padding: getCssVar('dropdown', 'label-padding');
11
30
 
12
31
  &[data-placement^='bottom'] {
13
32
  @include transition-transform('translateY(-8px) scaleY(0.95)', 'translateY(0) scaleY(1)');
@@ -29,39 +48,42 @@
29
48
  outline: none;
30
49
  }
31
50
 
32
- @include sub(children) {
33
- opacity: 0;
34
- visibility: hidden;
35
- position: absolute;
36
- top: -5px;
37
- left: 100%;
38
- transition:
39
- opacity 0.3s ease-in-out,
40
- transform 0.3s cubic-bezier(0.1, 0.4, 0.7, 1);
41
- transform: translateX(-8px) scaleX(0.95);
51
+ @include sub(submenu) {
52
+ transform-origin: left center;
53
+ }
54
+ @include sub(label-wrap) {
55
+ display: flex;
56
+ align-items: center;
57
+ cursor: pointer;
58
+ height: $line-height;
59
+ line-height: $line-height;
60
+ font-size: $font-size;
61
+ padding: 0 $label-padding;
62
+ user-select: none;
42
63
  }
43
64
 
44
65
  @include sub(label) {
45
- padding: 0 14px;
46
66
  white-space: nowrap;
47
67
  word-break: keep-all;
68
+ min-width: 0;
69
+ flex: 1;
48
70
  }
49
71
 
50
72
  @include sub(icon) {
51
73
  display: flex;
52
74
  justify-content: center;
53
75
  align-items: center;
54
- font-size: 16px;
55
- margin-left: 14px;
56
- margin-right: -9px;
76
+ font-size: $icon-font-size;
77
+ margin-right: 8px;
57
78
  }
58
79
 
59
80
  @include sub(subicon) {
60
81
  display: flex;
61
82
  justify-content: center;
62
83
  align-items: center;
63
- margin-right: 7px;
64
- font-size: 16px;
84
+ margin-left: $label-padding;
85
+ margin-right: -7px;
86
+ font-size: $icon-font-size;
65
87
  }
66
88
 
67
89
  @include sub(item) {
@@ -70,8 +92,8 @@
70
92
  list-style: none;
71
93
  margin: 0;
72
94
  cursor: pointer;
73
- line-height: 32px;
74
- font-size: 14px;
95
+ line-height: $line-height;
96
+ font-size: $font-size;
75
97
  padding: 0;
76
98
 
77
99
  &.has-children {
@@ -79,19 +101,13 @@
79
101
  }
80
102
 
81
103
  @include hover() {
82
- background-color: getCssVar('color', 'primary', 'shade-1');
83
- color: getCssVar('color', 'primary', 'base');
84
-
85
- @include child(dropdown__children) {
86
- opacity: 1;
87
- transform: translateX(0) scaleX(1);
88
- visibility: visible;
89
- }
104
+ background-color: $hover-bgcolor;
105
+ color: $hover-color;
90
106
  }
91
107
  @include is(disabled) {
92
108
  cursor: not-allowed;
93
- color: getCssVar('color', 'text', 'lighter');
94
- background-color: getCssVar('color', 'fill', 'blank');
109
+ color: $disabled-color;
110
+ background-color: $disabled-bgcolor;
95
111
  }
96
112
  }
97
113
  }
@@ -11,3 +11,4 @@
11
11
  @forward './popconfirm';
12
12
  @forward './message';
13
13
  @forward './dropdown';
14
+ @forward './menu';
@@ -0,0 +1,215 @@
1
+ @use 'mixins/index' as *;
2
+ @use 'function/index' as *;
3
+ @use 'mixins/_menu' as *;
4
+
5
+ @include buildRootCls('menu') {
6
+ @include menu-var('auto');
7
+ &.is-light {
8
+ @include menu-var('light');
9
+ }
10
+ &.is-dark {
11
+ @include menu-var('dark');
12
+ }
13
+ @include modifier('tooltip') {
14
+ filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.1));
15
+ @include menu-var('auto');
16
+ &.is-light {
17
+ @include menu-var('light');
18
+ }
19
+ &.is-dark {
20
+ @include menu-var('dark');
21
+ }
22
+ }
23
+ @include modifier(cover) {
24
+ &.is-light {
25
+ @include set-bordercolor-var('light', 'border-color');
26
+ }
27
+ &.is-dark {
28
+ @include set-bordercolor-var('dark', 'border-color');
29
+ }
30
+ }
31
+
32
+ $bgcolor: getCssVar('menu', 'bgcolor');
33
+ $color: getCssVar('menu', 'color');
34
+ $hover-bgcolor: getCssVar('menu', 'hover-bgcolor');
35
+ $hover-color: getCssVar('menu', 'hover-color');
36
+ $disabled-bgcolor: getCssVar('menu', 'disabled-bgcolor');
37
+ $disabled-color: getCssVar('menu', 'disabled-color');
38
+ $font-size: getCssVar('menu', 'font-size');
39
+ $icon-font-size: getCssVar('menu', 'icon-font-size');
40
+ $border-radius: getCssVar('menu', 'border-radius');
41
+ $sub-padding-left: getCssVar('menu', 'sub-padding-left');
42
+ $line-height: getCssVar('menu', 'line-height');
43
+ $icon-width: getCssVar('menu', 'icon-width');
44
+ $label-padding: getCssVar('menu', 'label-padding');
45
+
46
+ width: 100%;
47
+ margin: 0;
48
+ padding: 0;
49
+ list-style: none;
50
+ outline: none;
51
+ transition: width var(--menu-transition-duration) ease-in-out;
52
+ color: $color;
53
+ background-color: $bgcolor;
54
+
55
+ @include sub(submenu) {
56
+ padding-left: $sub-padding-left;
57
+ height: 0;
58
+ opacity: 0;
59
+ overflow: hidden;
60
+ color: $color;
61
+ background-color: $bgcolor;
62
+ transition:
63
+ height var(--menu-transition-duration) ease-in-out,
64
+ opacity var(--menu-transition-duration) ease-in-out;
65
+ }
66
+
67
+ @include sub(label) {
68
+ white-space: nowrap;
69
+ word-break: keep-all;
70
+ min-width: 0;
71
+ flex: 1;
72
+ opacity: 1;
73
+ transition:
74
+ width var(--menu-transition-duration) ease-in-out,
75
+ opacity var(--menu-transition-duration) ease-in-out;
76
+ }
77
+
78
+ @include sub(icon) {
79
+ display: flex;
80
+ justify-content: center;
81
+ align-items: center;
82
+ font-size: $icon-font-size;
83
+ margin-right: 8px;
84
+ width: $icon-width;
85
+ transition: margin-right 0s ease-in-out;
86
+ }
87
+
88
+ @include sub(subicon) {
89
+ opacity: 1;
90
+ display: flex;
91
+ justify-content: center;
92
+ align-items: center;
93
+ margin-left: $label-padding;
94
+ font-size: $icon-font-size;
95
+ transition: opacity 0s var(--menu-transition-duration) ease-in-out;
96
+ @include child(svg-icon) {
97
+ transition: transform 0.2s ease-in-out;
98
+ }
99
+ }
100
+ @include is(collapse) {
101
+ width: calc($icon-width + $label-padding * 2);
102
+ @include child(menu__item) {
103
+ @include child(menu__label-wrap) {
104
+ @include child(menu__icon) {
105
+ margin-right: 0;
106
+ transition: margin-right 0s var(--menu-transition-duration) ease-in-out;
107
+ }
108
+ @include child(menu__label) {
109
+ width: 0;
110
+ opacity: 0;
111
+ flex: 0;
112
+ }
113
+
114
+ @include child(menu__subicon) {
115
+ opacity: 0;
116
+ visibility: hidden;
117
+ }
118
+ }
119
+ }
120
+ }
121
+ @include sub(label-wrap) {
122
+ display: flex;
123
+ align-items: center;
124
+ cursor: pointer;
125
+ height: $line-height;
126
+ line-height: $line-height;
127
+ font-size: $font-size;
128
+ padding: 0 $label-padding;
129
+ user-select: none;
130
+ overflow: hidden;
131
+ color: $color;
132
+ background-color: $bgcolor;
133
+ }
134
+ @include sub(item) {
135
+ list-style: none;
136
+ margin: 0;
137
+ padding: 0;
138
+ color: $color;
139
+ background-color: $bgcolor;
140
+ &.has-children {
141
+ position: relative;
142
+ }
143
+
144
+ @include child(menu__label-wrap) {
145
+ border-radius: $border-radius;
146
+ }
147
+ @include is(selected) {
148
+ @include child(menu__label-wrap) {
149
+ background-color: $hover-bgcolor;
150
+ color: $hover-color;
151
+ }
152
+ }
153
+ @include hover() {
154
+ @include child(menu__label-wrap) {
155
+ background-color: $hover-bgcolor;
156
+ color: $hover-color;
157
+ }
158
+ }
159
+ @include is(opened) {
160
+ @include child(menu__submenu) {
161
+ opacity: 1;
162
+ height: auto;
163
+ }
164
+ @include child(menu__label-wrap) {
165
+ @include child(menu__subicon) {
166
+ @include child(svg-icon) {
167
+ transform: rotate(180deg);
168
+ }
169
+ }
170
+ }
171
+ }
172
+ @include is(disabled) {
173
+ cursor: not-allowed;
174
+ color: $disabled-color;
175
+ background-color: $disabled-bgcolor;
176
+ @include child(menu__label-wrap) {
177
+ cursor: not-allowed;
178
+ color: $disabled-color;
179
+ background-color: $disabled-bgcolor;
180
+ }
181
+ }
182
+ }
183
+
184
+ @include modifier(tooltip) {
185
+ &:not(.is-disabled) {
186
+ &[data-placement^='bottom'] {
187
+ @include transition-transform('translateY(-8px) scaleY(0.95)', 'translateY(0) scaleY(1)');
188
+ }
189
+ &[data-placement^='top'] {
190
+ @include transition-transform('translateY(8px) scaleY(0.95)', 'translateY(0) scaleY(1)');
191
+ }
192
+ &[data-placement^='left'] {
193
+ @include transition-transform('translateX(8px) scaleX(0.95)', 'translateX(0) scaleX(1)');
194
+ }
195
+ &[data-placement^='right'] {
196
+ @include transition-transform('translateX(-8px) scaleX(0.95)', 'translateX(0) scaleX(1)');
197
+ }
198
+ width: fit-content;
199
+ padding: 0;
200
+ }
201
+
202
+ @include buildCls(menu__item) {
203
+ @include buildCls(menu__subicon) {
204
+ margin-right: calc($label-padding * -0.5);
205
+ @include buildCls(svg-icon) {
206
+ transform: rotate(-90deg);
207
+ }
208
+ }
209
+ }
210
+ }
211
+ @include modifier(horizontal) {
212
+ display: flex;
213
+ flex-wrap: nowrap;
214
+ }
215
+ }
@@ -1,4 +1,8 @@
1
1
  @use './_transition' as *;
2
+ @use 'sass:map';
3
+ @use '../css-vars/_dropdown' as *;
4
+ @use './index' as *;
5
+ @use '../function/index' as *;
2
6
 
3
7
  @mixin transition-transform($from-style, $to-style) {
4
8
  @include transition-common(
@@ -15,3 +19,77 @@
15
19
  )
16
20
  );
17
21
  }
22
+
23
+ @mixin set-bgcolor-var($key, $val) {
24
+ #{getCssVarStr('dropdown' ,'bgcolor')}: #{deepGet($dropdown, $key, $val)};
25
+ #{getCssVarStr('tooltip' ,'bgcolor')}: #{deepGet($dropdown, $key, $val)};
26
+ }
27
+
28
+ @mixin set-color-var($key, $val) {
29
+ #{getCssVarStr('dropdown' ,'color')}: #{deepGet($dropdown, $key, $val)};
30
+ #{getCssVarStr('tooltip' ,'color')}: #{deepGet($dropdown, $key, $val)};
31
+ }
32
+
33
+ @mixin set-bordercolor-var($key, $val) {
34
+ #{getCssVarStr('tooltip' ,'border-color')}: #{deepGet($dropdown, $key, $val)};
35
+ }
36
+
37
+ @mixin set-hover-bgcolor-var($key, $val) {
38
+ #{getCssVarStr('dropdown' ,'hover-bgcolor')}: #{deepGet($dropdown, $key, $val)};
39
+ }
40
+
41
+ @mixin set-hover-color-var($key, $val) {
42
+ #{getCssVarStr('dropdown' ,'hover-color')}: #{deepGet($dropdown, $key, $val)};
43
+ }
44
+
45
+ @mixin set-disabled-color-var($key, $val) {
46
+ #{getCssVarStr('dropdown' ,'disabled-color')}: #{deepGet($dropdown, $key, $val)};
47
+ }
48
+
49
+ @mixin set-disabled-bgcolor-var($key, $val) {
50
+ #{getCssVarStr('dropdown' ,'disabled-bgcolor')}: #{deepGet($dropdown, $key, $val)};
51
+ }
52
+
53
+ @mixin set-radius-var($key, $val) {
54
+ #{getCssVarStr('dropdown' ,'border-radius')}: #{deepGet($dropdown, $key, $val)};
55
+ }
56
+
57
+ @mixin set-font-size-var($key, $val) {
58
+ #{getCssVarStr('dropdown' ,'font-size')}: #{deepGet($dropdown, $key, $val)};
59
+ }
60
+
61
+ @mixin set-icon-font-size-var($key, $val) {
62
+ #{getCssVarStr('dropdown' ,'icon-font-size')}: #{deepGet($dropdown, $key, $val)};
63
+ }
64
+ @mixin set-label-padding-var($key, $val) {
65
+ #{getCssVarStr('dropdown' ,'label-padding')}: #{deepGet($dropdown, $key, $val)};
66
+ }
67
+ @mixin set-sub-padding-left-var($key, $val) {
68
+ #{getCssVarStr('dropdown' ,'sub-padding-left')}: #{deepGet($dropdown, $key, $val)};
69
+ }
70
+ @mixin set-line-height-var($key, $val) {
71
+ #{getCssVarStr('dropdown' ,'line-height')}: #{deepGet($dropdown, $key, $val)};
72
+ }
73
+
74
+ @mixin dropdown-theme-var($theme) {
75
+ @include set-bgcolor-var($theme, 'bgcolor');
76
+ @include set-color-var($theme, 'color');
77
+ @include set-bordercolor-var($theme, 'border-color');
78
+
79
+ @include set-hover-color-var($theme, 'hover-color');
80
+ @include set-hover-bgcolor-var($theme, 'hover-bgcolor');
81
+
82
+ @include set-disabled-color-var($theme, 'disabled-color');
83
+ @include set-disabled-bgcolor-var($theme, 'disabled-bgcolor');
84
+ }
85
+
86
+ @mixin dropdown-var($theme) {
87
+ @include set-icon-font-size-var('dropdown', 'icon-font-size');
88
+ @include set-font-size-var('dropdown', 'font-size');
89
+ @include set-radius-var('dropdown', 'border-radius');
90
+ @include set-sub-padding-left-var('dropdown', 'sub-padding-left');
91
+ @include set-line-height-var('dropdown', 'line-height');
92
+ @include set-label-padding-var('dropdown', 'label-padding');
93
+
94
+ @include dropdown-theme-var($theme);
95
+ }
@@ -0,0 +1,99 @@
1
+ @use 'sass:map';
2
+ @use './transition' as *;
3
+ @use '../css-vars/_menu' as *;
4
+ @use './index' as *;
5
+ @use '../function/index' as *;
6
+
7
+ @mixin transition-transform($from-style, $to-style) {
8
+ @include transition-common(
9
+ menu,
10
+ 'opacity, transform',
11
+ 'ease-in-out, cubic-bezier(0.1, 0.4, 0.7, 1)',
12
+ (
13
+ opacity: 0,
14
+ transform: #{$from-style}
15
+ ),
16
+ (
17
+ opacity: 1,
18
+ transform: #{$to-style}
19
+ )
20
+ );
21
+ }
22
+
23
+ @mixin set-bgcolor-var($key, $val) {
24
+ #{getCssVarStr('menu' ,'bgcolor')}: #{deepGet($menu, $key, $val)};
25
+ #{getCssVarStr('tooltip' ,'bgcolor')}: #{deepGet($menu, $key, $val)};
26
+ }
27
+
28
+ @mixin set-color-var($key, $val) {
29
+ #{getCssVarStr('menu' ,'color')}: #{deepGet($menu, $key, $val)};
30
+ #{getCssVarStr('tooltip' ,'color')}: #{deepGet($menu, $key, $val)};
31
+ }
32
+
33
+ @mixin set-bordercolor-var($key, $val) {
34
+ #{getCssVarStr('tooltip' ,'border-color')}: #{deepGet($menu, $key, $val)};
35
+ }
36
+
37
+ @mixin set-hover-bgcolor-var($key, $val) {
38
+ #{getCssVarStr('menu' ,'hover-bgcolor')}: #{deepGet($menu, $key, $val)};
39
+ }
40
+
41
+ @mixin set-hover-color-var($key, $val) {
42
+ #{getCssVarStr('menu' ,'hover-color')}: #{deepGet($menu, $key, $val)};
43
+ }
44
+
45
+ @mixin set-disabled-color-var($key, $val) {
46
+ #{getCssVarStr('menu' ,'disabled-color')}: #{deepGet($menu, $key, $val)};
47
+ }
48
+
49
+ @mixin set-disabled-bgcolor-var($key, $val) {
50
+ #{getCssVarStr('menu' ,'disabled-bgcolor')}: #{deepGet($menu, $key, $val)};
51
+ }
52
+
53
+ @mixin set-radius-var($key, $val) {
54
+ #{getCssVarStr('menu' ,'border-radius')}: #{deepGet($menu, $key, $val)};
55
+ }
56
+
57
+ @mixin set-font-size-var($key, $val) {
58
+ #{getCssVarStr('menu' ,'font-size')}: #{deepGet($menu, $key, $val)};
59
+ }
60
+
61
+ @mixin set-icon-width-var($key, $val) {
62
+ #{getCssVarStr('menu' ,'icon-width')}: #{deepGet($menu, $key, $val)};
63
+ }
64
+ @mixin set-icon-font-size-var($key, $val) {
65
+ #{getCssVarStr('menu' ,'icon-font-size')}: #{deepGet($menu, $key, $val)};
66
+ }
67
+ @mixin set-label-padding-var($key, $val) {
68
+ #{getCssVarStr('menu' ,'label-padding')}: #{deepGet($menu, $key, $val)};
69
+ }
70
+ @mixin set-sub-padding-left-var($key, $val) {
71
+ #{getCssVarStr('menu' ,'sub-padding-left')}: #{deepGet($menu, $key, $val)};
72
+ }
73
+ @mixin set-line-height-var($key, $val) {
74
+ #{getCssVarStr('menu' ,'line-height')}: #{deepGet($menu, $key, $val)};
75
+ }
76
+
77
+ @mixin menu-theme-var($theme) {
78
+ @include set-bgcolor-var($theme, 'bgcolor');
79
+ @include set-color-var($theme, 'color');
80
+ @include set-bordercolor-var($theme, 'border-color');
81
+
82
+ @include set-hover-color-var($theme, 'hover-color');
83
+ @include set-hover-bgcolor-var($theme, 'hover-bgcolor');
84
+
85
+ @include set-disabled-color-var($theme, 'disabled-color');
86
+ @include set-disabled-bgcolor-var($theme, 'disabled-bgcolor');
87
+ }
88
+
89
+ @mixin menu-var($theme) {
90
+ @include set-icon-font-size-var('menu', 'icon-font-size');
91
+ @include set-font-size-var('menu', 'font-size');
92
+ @include set-radius-var('menu', 'border-radius');
93
+ @include set-sub-padding-left-var('menu', 'sub-padding-left');
94
+ @include set-line-height-var('menu', 'line-height');
95
+ @include set-icon-width-var('menu', 'icon-width');
96
+ @include set-label-padding-var('menu', 'label-padding');
97
+
98
+ @include menu-theme-var($theme);
99
+ }
@@ -1,5 +1,5 @@
1
1
  @use 'sass:map';
2
- @use '../css-vars/popconfirm' as *;
2
+ @use '../css-vars/_popconfirm' as *;
3
3
  @use './index' as *;
4
4
  @use '../function/index' as *;
5
5
 
@@ -7,6 +7,25 @@
7
7
  #{getCssVarStr('popconfirm','icon' ,'color')}: #{deepGet($popconfirm, $key, $val)};
8
8
  }
9
9
 
10
- @mixin popconfirm-var() {
10
+ @mixin set-bgcolor-var($key, $val) {
11
+ #{getCssVarStr('tooltip' ,'bgcolor')}: #{deepGet($popconfirm, $key, $val)};
12
+ }
13
+
14
+ @mixin set-color-var($key, $val) {
15
+ #{getCssVarStr('tooltip' ,'color')}: #{deepGet($popconfirm, $key, $val)};
16
+ }
17
+
18
+ @mixin set-bordercolor-var($key, $val) {
19
+ #{getCssVarStr('tooltip' ,'border-color')}: #{deepGet($popconfirm, $key, $val)};
20
+ }
21
+
22
+ @mixin popconfirm-theme-var($theme) {
23
+ @include set-bgcolor-var($theme, 'bgcolor');
24
+ @include set-color-var($theme, 'color');
25
+ @include set-bordercolor-var($theme, 'border-color');
26
+ }
27
+
28
+ @mixin popconfirm-var($theme) {
11
29
  @include set-icon-color-var('icon', 'color');
30
+ @include popconfirm-theme-var($theme);
12
31
  }
@@ -0,0 +1,26 @@
1
+ @use 'sass:map';
2
+ @use '../css-vars/_popover' as *;
3
+ @use './index' as *;
4
+ @use '../function/index' as *;
5
+
6
+ @mixin set-bgcolor-var($key, $val) {
7
+ #{getCssVarStr('tooltip' ,'bgcolor')}: #{deepGet($popover, $key, $val)};
8
+ }
9
+
10
+ @mixin set-color-var($key, $val) {
11
+ #{getCssVarStr('tooltip' ,'color')}: #{deepGet($popover, $key, $val)};
12
+ }
13
+
14
+ @mixin set-bordercolor-var($key, $val) {
15
+ #{getCssVarStr('tooltip' ,'border-color')}: #{deepGet($popover, $key, $val)};
16
+ }
17
+
18
+ @mixin popover-theme-var($theme) {
19
+ @include set-bgcolor-var($theme, 'bgcolor');
20
+ @include set-color-var($theme, 'color');
21
+ @include set-bordercolor-var($theme, 'border-color');
22
+ }
23
+
24
+ @mixin popover-var($theme) {
25
+ @include popover-theme-var($theme);
26
+ }
@@ -29,6 +29,15 @@
29
29
  @content;
30
30
  }
31
31
  }
32
+
33
+ @mixin modifiers($modifiers...) {
34
+ @each $m in $modifiers {
35
+ @include modifier($m) {
36
+ @content;
37
+ }
38
+ }
39
+ }
40
+
32
41
  @mixin sub($subName) {
33
42
  &__#{$subName} {
34
43
  @content;
@@ -4,10 +4,16 @@
4
4
  @use 'function/index' as *;
5
5
 
6
6
  @include buildRootCls('popconfirm') {
7
- @include popconfirm-var();
8
7
  @include buildSiblingCls('tooltip') {
9
8
  padding: 0;
10
9
  filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.1));
10
+ @include popconfirm-var('auto');
11
+ &.is-light {
12
+ @include popconfirm-var('light');
13
+ }
14
+ &.is-dark {
15
+ @include popconfirm-var('dark');
16
+ }
11
17
  }
12
18
  @include sub('header') {
13
19
  display: flex;
@@ -1,11 +1,19 @@
1
1
  @use 'mixins/index' as *;
2
2
  @use 'mixins/_transition' as *;
3
+ @use 'mixins/_popover' as *;
3
4
  @use 'function/index' as *;
4
5
 
5
6
  @include buildRootCls('popover') {
6
7
  @include buildSiblingCls('tooltip') {
7
8
  padding: 0;
8
9
  filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.1));
10
+ @include popover-var('auto');
11
+ &.is-light {
12
+ @include popover-var('light');
13
+ }
14
+ &.is-dark {
15
+ @include popover-var('dark');
16
+ }
9
17
  }
10
18
  @include sub('title') {
11
19
  font-size: getCssVar('root-font-size');
@@ -4,6 +4,7 @@
4
4
  @use 'function/index' as *;
5
5
 
6
6
  @include buildRootCls('tooltip') {
7
+ @include tooltip-var('auto');
7
8
  &.is-light {
8
9
  @include tooltip-var('light');
9
10
  }