hy-app 0.6.9 → 0.7.1

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 (106) hide show
  1. package/attributes.json +1 -1
  2. package/components/hy-avatar/hy-avatar.vue +12 -5
  3. package/components/hy-avatar/props.ts +4 -2
  4. package/components/hy-avatar/typing.d.ts +8 -1
  5. package/components/hy-calendar/hy-calendar.vue +3 -2
  6. package/components/hy-calendar/month.vue +25 -5
  7. package/components/hy-calendar/props.ts +1 -1
  8. package/components/hy-calendar/typing.d.ts +9 -0
  9. package/components/hy-cascader/hy-cascader.vue +503 -0
  10. package/components/hy-cascader/index.scss +84 -0
  11. package/components/hy-cascader/props.ts +88 -0
  12. package/components/hy-cascader/typing.d.ts +34 -0
  13. package/components/hy-check-button/typing.d.ts +12 -7
  14. package/components/hy-code-input/hy-code-input.vue +33 -11
  15. package/components/hy-code-input/typing.d.ts +4 -0
  16. package/components/hy-config-provider/hy-config-provider.vue +58 -53
  17. package/components/hy-count-down/hy-count-down.vue +8 -8
  18. package/components/hy-count-down/typing.d.ts +16 -0
  19. package/components/hy-count-to/hy-count-to.vue +7 -7
  20. package/components/hy-count-to/typing.d.ts +24 -0
  21. package/components/hy-datetime-picker/props.ts +1 -1
  22. package/components/hy-datetime-picker/typing.d.ts +1 -1
  23. package/components/hy-dropdown/typing.d.ts +5 -0
  24. package/components/hy-dropdown-item/hy-dropdown-item.vue +1 -1
  25. package/components/hy-folding-panel/hy-folding-panel.vue +3 -3
  26. package/components/hy-folding-panel/typing.d.ts +23 -0
  27. package/components/hy-folding-panel-item/hy-folding-panel-item.vue +2 -2
  28. package/components/hy-folding-panel-item/typing.d.ts +21 -0
  29. package/components/hy-form/hy-form.vue +2 -2
  30. package/components/hy-form/typing.d.ts +37 -0
  31. package/components/hy-form-item/typing.d.ts +1 -1
  32. package/components/hy-grid/hy-grid.vue +12 -12
  33. package/components/hy-grid/index.scss +1 -2
  34. package/components/hy-grid/props.ts +7 -2
  35. package/components/hy-grid/typing.d.ts +1 -1
  36. package/components/hy-icon/typing.d.ts +52 -9
  37. package/components/hy-keyboard/constants.ts +83 -0
  38. package/components/hy-keyboard/hy-keyboard.vue +375 -0
  39. package/components/hy-keyboard/index.scss +73 -0
  40. package/components/hy-keyboard/key/index.scss +79 -0
  41. package/components/hy-keyboard/key/index.vue +91 -0
  42. package/components/hy-keyboard/key/types.ts +1 -0
  43. package/components/hy-keyboard/props.ts +108 -0
  44. package/components/hy-keyboard/typing.d.ts +18 -0
  45. package/components/hy-list/hy-list.vue +15 -13
  46. package/components/hy-list/props.ts +1 -1
  47. package/components/hy-modal/typing.d.ts +2 -2
  48. package/components/hy-notice-bar/hy-column-notice.vue +54 -94
  49. package/components/hy-notice-bar/hy-notice-bar.vue +128 -96
  50. package/components/hy-notice-bar/hy-row-notice.vue +89 -121
  51. package/components/hy-notice-bar/props.ts +86 -85
  52. package/components/hy-notify/hy-notify.vue +10 -10
  53. package/components/hy-notify/typing.d.ts +35 -0
  54. package/components/hy-number-step/hy-number-step.vue +370 -367
  55. package/components/hy-number-step/index.scss +1 -0
  56. package/components/hy-number-step/props.ts +1 -1
  57. package/components/hy-picker/hy-picker.vue +126 -149
  58. package/components/hy-picker/props.ts +4 -1
  59. package/components/hy-picker/typing.d.ts +22 -0
  60. package/components/hy-popover/hy-popover.vue +2 -2
  61. package/components/hy-popover/typing.d.ts +1 -1
  62. package/components/hy-popup/hy-popup.vue +1 -1
  63. package/components/hy-popup/index.scss +1 -0
  64. package/components/hy-price/hy-price.vue +52 -23
  65. package/components/hy-price/props.ts +54 -54
  66. package/components/hy-radio/props.ts +1 -1
  67. package/components/hy-radio/typing.d.ts +5 -1
  68. package/components/hy-rolling-num/typing.d.ts +1 -0
  69. package/components/hy-signature/hy-signature.vue +17 -17
  70. package/components/hy-signature/typing.d.ts +1 -1
  71. package/components/hy-skeleton/index.scss +17 -0
  72. package/components/hy-steps/hy-steps.vue +1 -1
  73. package/components/hy-submit-bar/typing.d.ts +3 -3
  74. package/components/hy-swipe-action/hy-swipe-action.vue +34 -15
  75. package/components/hy-swipe-action/index.scss +0 -1
  76. package/components/hy-switch/typing.d.ts +4 -0
  77. package/components/hy-tabbar/props.ts +2 -1
  78. package/components/hy-tabbar/typing.d.ts +5 -4
  79. package/components/hy-tabs/hy-tabs.vue +338 -336
  80. package/components/hy-tabs/index.scss +6 -6
  81. package/components/hy-tabs/typing.d.ts +41 -33
  82. package/components/hy-textarea/hy-textarea.vue +2 -2
  83. package/components/hy-textarea/typing.d.ts +4 -0
  84. package/components/hy-toast/hy-toast.vue +17 -9
  85. package/components/hy-toast/index.scss +1 -1
  86. package/components/hy-toast/typing.d.ts +56 -37
  87. package/components/hy-tooltip/hy-tooltip.vue +1 -1
  88. package/components/hy-tooltip/index.scss +1 -0
  89. package/components/hy-tooltip/props.ts +1 -1
  90. package/components/hy-upload/hy-upload.vue +16 -1
  91. package/components/hy-upload/index.scss +149 -144
  92. package/components/index.ts +6 -0
  93. package/global.d.ts +2 -0
  94. package/libs/api/http.ts +122 -119
  95. package/libs/config/icon.ts +442 -430
  96. package/libs/css/_function.scss +7 -13
  97. package/libs/css/iconfont.css +445 -441
  98. package/libs/css/theme.scss +3 -1
  99. package/libs/locale/lang/en-US.ts +4 -0
  100. package/libs/locale/lang/zh-CN.ts +4 -0
  101. package/libs/typing/index.ts +80 -0
  102. package/package.json +5 -2
  103. package/tags.json +1 -1
  104. package/web-types.json +1 -1
  105. package/components/hy-folding-panel/hy-folding-panel-group.vue +0 -163
  106. package/components/hy-qrcode/qrcode.js.bak +0 -1434
@@ -68,11 +68,11 @@
68
68
  }
69
69
  }
70
70
  }
71
+ }
71
72
 
72
- .swiper-item {
73
- width: 100%;
74
- height: 100%;
75
- @include flex(column);
76
- box-sizing: border-box;
77
- }
73
+ .swiper-item {
74
+ width: 100%;
75
+ height: 100%;
76
+ @include flex(column);
77
+ box-sizing: border-box;
78
78
  }
@@ -1,33 +1,41 @@
1
- import BadgeProps from '../hy-badge/typing'
2
- export interface TabsItemVo extends AnyObject {
3
- /**
4
- * @description tab名称
5
- * */
6
- name: string
7
- /**
8
- * @description 徽标接收的props
9
- * */
10
- badge?: BadgeProps
11
- /**
12
- * @description 是否禁用
13
- * */
14
- disabled?: boolean
15
- /**
16
- * @description swiper内容值
17
- * */
18
- content?: any
19
- }
20
-
21
- export interface TabsParamsVo extends TabsParamsVo {
22
- index: number
23
- }
24
- export interface ITabsEmits {
25
- /** 点击标签时触发 */
26
- (e: 'click', params: TabsParamsVo): void
27
- /** 标签索引改变时触发 */
28
- (e: 'change', item: TabsItemVo, index: number): void
29
- /** 长按标签时触发 */
30
- (e: 'longPress', params: TabsParamsVo): void
31
- /** 标签索引改变时触发 */
32
- (e: 'update:current', index: number): void
33
- }
1
+ import type { HyBadgeProps } from '../../index'
2
+ export interface TabsItemVo {
3
+ /**
4
+ * tab名称
5
+ * */
6
+ name: string
7
+ /**
8
+ * 徽标接收的props
9
+ * */
10
+ badge?: HyBadgeProps
11
+ /**
12
+ * 是否禁用
13
+ * */
14
+ disabled?: boolean
15
+ /**
16
+ * swiper内容值
17
+ * */
18
+ content?: any
19
+ [key: string]: any
20
+ }
21
+
22
+ export interface ITabsExpose {
23
+ /**
24
+ * 计算滑块距离左边距离
25
+ * */
26
+ resize: () => void
27
+ }
28
+
29
+ export interface TabsParamsVo extends TabsParamsVo {
30
+ index: number
31
+ }
32
+ export interface ITabsEmits {
33
+ /** 点击标签时触发 */
34
+ (e: 'click', params: TabsParamsVo): void
35
+ /** 标签索引改变时触发 */
36
+ (e: 'change', item: TabsItemVo, index: number): void
37
+ /** 长按标签时触发 */
38
+ (e: 'longPress', params: TabsParamsVo): void
39
+ /** 标签索引改变时触发 */
40
+ (e: 'update:current', index: number): void
41
+ }
@@ -125,7 +125,7 @@ const textareaStyle = computed(() => {
125
125
  return Object.assign(style, props.customStyle)
126
126
  })
127
127
  /**
128
- * @description 边框颜色
128
+ * 边框颜色
129
129
  * */
130
130
  const borderStyle = computed(() => {
131
131
  return (isFocus: boolean) => {
@@ -173,7 +173,7 @@ const onInput = (e: any) => {
173
173
  })
174
174
  }
175
175
  /**
176
- * @description 内容发生变化,进行处理
176
+ * 内容发生变化,进行处理
177
177
  * */
178
178
  const valueChange = () => {
179
179
  const value = innerValue.value
@@ -3,6 +3,10 @@ import type {
3
3
  InputOnConfirmEvent,
4
4
  InputOnFocusEvent
5
5
  } from '@uni-helper/uni-types'
6
+ import type { ExtractPropTypes } from 'vue'
7
+ import type textareaProps from './props'
8
+
9
+ export interface HyTextareaProps extends ExtractPropTypes<typeof textareaProps> {}
6
10
 
7
11
  export interface ITextareaEmits {
8
12
  /** 输入框失去焦点时触发 */
@@ -1,8 +1,8 @@
1
1
  <template>
2
2
  <hy-overlay
3
3
  :show="isShow"
4
- :zIndex="tmpConfig.overlay ? 10070 : -1"
5
- :LockScroll="false"
4
+ :LockScroll="!tmpConfig.overlay"
5
+ :opacity="tmpConfig.cover ? 0.5 : 0"
6
6
  :custom-style="overlayStyle"
7
7
  >
8
8
  <view :style="[contentStyle]" :class="contentClass">
@@ -18,7 +18,13 @@
18
18
  v-else-if="iconNameCom"
19
19
  :class="['hy-toast__content--icon', `hy-toast__content--icon__${tmpConfig.type}`]"
20
20
  >
21
- <hy-icon :name="iconNameCom" size="17" color="#FFFFFF"></hy-icon>
21
+ <hy-icon
22
+ :name="iconNameCom"
23
+ :size="(typeof tmpConfig.icon === 'object' && tmpConfig.icon?.size) || 17"
24
+ :color="
25
+ (typeof tmpConfig.icon === 'object' && tmpConfig.icon?.color) || '#FFFFFF'
26
+ "
27
+ ></hy-icon>
22
28
  </view>
23
29
  <text
24
30
  :class="[
@@ -48,8 +54,8 @@ export default {
48
54
  <script setup lang="ts">
49
55
  import { computed, onMounted, onUnmounted, reactive, ref } from 'vue'
50
56
  import type { CSSProperties } from 'vue'
51
- import type ToastOptions from './typing'
52
- import { ColorConfig, iconName, getWindowInfo, hexToRgb, deepMerge } from '../../libs'
57
+ import type { IToastExpose, ToastOptions } from './typing'
58
+ import { ColorConfig, iconName, getWindowInfo, hexToRgb } from '../../libs'
53
59
  // 组件
54
60
  import HyOverlay from '../hy-overlay/hy-overlay.vue'
55
61
  import HyIcon from '../hy-icon/hy-icon.vue'
@@ -85,8 +91,6 @@ const overlayStyle = computed(() => {
85
91
  display: 'flex',
86
92
  flexDirection: 'column'
87
93
  }
88
- // 将遮罩设置为100%透明度,避免出现灰色背景
89
- style.backgroundColor = 'rgba(0, 0, 0, 0)'
90
94
  return style
91
95
  })
92
96
 
@@ -102,7 +106,11 @@ const iconNameCom = computed(() => {
102
106
  return ''
103
107
  }
104
108
  } else {
105
- return tmpConfig.value.icon
109
+ const icon = tmpConfig.value.icon
110
+ if (typeof icon === 'string') {
111
+ return icon
112
+ }
113
+ return icon?.name
106
114
  }
107
115
  })
108
116
 
@@ -189,7 +197,7 @@ const clearTimer = () => {
189
197
  // config.loading = false
190
198
  }
191
199
 
192
- defineExpose({
200
+ defineExpose<IToastExpose>({
193
201
  show,
194
202
  hide
195
203
  })
@@ -13,7 +13,7 @@
13
13
  max-width: 600rpx;
14
14
  /* #endif */
15
15
  position: relative;
16
- z-index: 10090;
16
+ z-index: 11000;
17
17
 
18
18
  @include m(loading) {
19
19
  flex-direction: column;
@@ -1,38 +1,57 @@
1
- export default interface ToastOptions {
2
- /**
3
- * @description 显示文本
4
- * */
5
- message?: string;
6
- /**
7
- * @description 主题类型,primary,success,error,warning,info
8
- * */
9
- type?: HyApp.ThemeType | "";
10
- /**
11
- * @description toast出现的位置
12
- * */
13
- position?: HyApp.ColumnCenterType;
14
- /**
15
- * @description 显示的图标
16
- * */
17
- icon?: boolean | string;
18
- /**
19
- * @description 是否防止触摸穿透
20
- * */
21
- overlay?: boolean;
22
- /**
23
- * @description 是否加载中状态
24
- * */
25
- loading?: boolean;
26
- /**
27
- * @description 加载状态
28
- * */
29
- loadMode?: HyApp.LoadingMode;
30
- /**
31
- * @description 显示的时间,毫秒
32
- * */
33
- duration?: number;
34
- /**
35
- * @description 执行完后的回调函数
36
- * */
37
- complete?: Function | null;
1
+ import type { HyIconProps } from '../hy-icon/typing'
2
+
3
+ export interface ToastOptions {
4
+ /**
5
+ * 显示文本
6
+ * */
7
+ message?: string
8
+ /**
9
+ * 主题类型,primary,success,error,warning,info
10
+ * */
11
+ type?: HyApp.ThemeType | ''
12
+ /**
13
+ * toast出现的位置
14
+ * */
15
+ position?: HyApp.ColumnCenterType
16
+ /**
17
+ * 显示的图标
18
+ * */
19
+ icon?: boolean | string | HyIconProps
20
+ /**
21
+ * 是否防止触摸穿透
22
+ * */
23
+ overlay?: boolean
24
+ /**
25
+ * 是否显示透明遮罩层
26
+ * */
27
+ cover?: boolean
28
+ /**
29
+ * 是否加载中状态
30
+ * */
31
+ loading?: boolean
32
+ /**
33
+ * 加载状态
34
+ * */
35
+ loadMode?: HyApp.LoadingMode
36
+ /**
37
+ * 显示的时间,毫秒
38
+ * */
39
+ duration?: number
40
+ /**
41
+ * 执行完后的回调函数
42
+ * */
43
+ complete?: Function | null
44
+ }
45
+
46
+ /** HyToast 组件实例暴露的方法 */
47
+ export interface IToastExpose {
48
+ /**
49
+ * 显示 Toast
50
+ * @param options Toast 配置选项
51
+ */
52
+ show: (options: ToastOptions) => void
53
+ /**
54
+ * 隐藏 Toast
55
+ */
56
+ hide: () => void
38
57
  }
@@ -2,7 +2,7 @@
2
2
  <view class="hy-tooltip">
3
3
  <hy-overlay
4
4
  :show="showTooltip && tooltipTop !== -10000 && overlay"
5
- :customStyle="{ backgroundColor: 'rgba(0, 0, 0, 0)' }"
5
+ :opacity="0"
6
6
  @click="closeHandler"
7
7
  ></hy-overlay>
8
8
  <!-- 文本内容区域 -->
@@ -76,6 +76,7 @@ $hy-tooltip--background-color: rgb(50, 50, 51);
76
76
  @include m(text) {
77
77
  font-size: 13px;
78
78
  color: #ffffff;
79
+ white-space: nowrap;
79
80
  }
80
81
  }
81
82
  }
@@ -21,7 +21,7 @@ const tooltipProps = {
21
21
  },
22
22
  /**
23
23
  * 指定 popover 的放置位置
24
- * @values top,top-start,top-end,bottom,bottom-start,bottom-end,left,left-start,left-end,right,right-start,right-end
24
+ * @values top,bottom,left,right
25
25
  * */
26
26
  placement: {
27
27
  type: String,
@@ -68,7 +68,10 @@
68
68
  <!-- 删除图片图标 -->
69
69
 
70
70
  <!-- 上传成功图标 -->
71
- <view class="hy-upload__success" v-if="item.status === 'success'">
71
+ <view
72
+ class="hy-upload__status hy-upload__success"
73
+ v-if="item.status === 'success'"
74
+ >
72
75
  <view class="hy-upload__success--icon">
73
76
  <hy-icon
74
77
  :name="IconConfig.CHECK_MASK"
@@ -77,6 +80,18 @@
77
80
  ></hy-icon>
78
81
  </view>
79
82
  </view>
83
+ <view
84
+ class="hy-upload__status hy-upload__error"
85
+ v-if="item.status === 'failed'"
86
+ >
87
+ <view class="hy-upload__success--icon">
88
+ <hy-icon
89
+ :name="IconConfig.CLOSE_CIRCLE"
90
+ color="#ffffff"
91
+ size="12"
92
+ ></hy-icon>
93
+ </view>
94
+ </view>
80
95
  <!-- 上传成功图标 -->
81
96
  </view>
82
97
  </template>
@@ -1,145 +1,150 @@
1
- @use "../../libs/css/mixin" as *;
2
- @use "../../libs/css/theme" as *;
3
-
4
- $hy-upload-image-width: 80px !default;
5
- $hy-upload-text-font-size: 11px !default;
6
-
7
-
8
- @include b(upload) {
9
- @include flex(column);
10
- flex: 1;
11
-
12
- @include e(wrap) {
13
- @include flex;
14
- flex-wrap: wrap;
15
- flex: 1;
16
-
17
- @include m(preview) {
18
- border-radius: 2px;
19
- margin: 0 8px 8px 0;
20
- position: relative;
21
- overflow: hidden;
22
- @include flex;
23
-
24
- @include e(image) {
25
- width: $hy-upload-image-width;
26
- height: $hy-upload-image-width;
27
- }
28
-
29
- @include e(other) {
30
- width: $hy-upload-image-width;
31
- height: $hy-upload-image-width;
32
- background-color: rgb(242, 242, 242);
33
- flex: 1;
34
- @include flex(column);
35
- justify-content: center;
36
- align-items: center;
37
-
38
- @include m(text) {
39
- font-size: $hy-upload-text-font-size;
40
- color: $hy-text-color--grey;
41
- margin-top: 2px;
42
- }
43
- }
44
-
45
- /* 进度条样式 */
46
- @include e(progress) {
47
- width: 100%;
48
- height: 100%;
49
- backdrop-filter: blur(6px);
50
- position: absolute;
51
- z-index: 10;
52
- display: grid;
53
- place-content: center;
54
-
55
- @include m(number) {
56
- width: 70px;
57
- margin-bottom: 6rpx;
58
- }
59
-
60
- @include m(value) {
61
- font-size: 20rpx;
62
- color: $hy-primary;
63
- }
64
- }
65
- }
66
- }
67
-
68
- @include e(deletable) {
69
- position: absolute;
70
- top: 0;
71
- right: 0;
72
- background-color: rgb(55, 55, 55);
73
- height: 14px;
74
- width: 14px;
75
- @include flex;
76
- border-bottom-left-radius: 100px;
77
- align-items: center;
78
- justify-content: center;
79
- z-index: 9;
80
-
81
- @include m(icon) {
82
- position: absolute;
83
- transform: scale(0.7);
84
- top: 0;
85
- right: 0;
86
- }
87
- }
88
-
89
- @include e(success) {
90
- position: absolute;
91
- bottom: 0;
92
- right: 0;
93
- @include flex;
94
- // 由于weex(nvue)为阿里巴巴的KPI(部门业绩考核)的laji产物,不支持css绘制三角形
95
- // 所以在nvue下使用图片,非nvue下使用css实现
96
- /* #ifndef APP-NVUE */
97
- border-style: solid;
98
- border-color: transparent $hy-success $hy-success transparent;
99
- border-width: 9px;
100
- align-items: center;
101
- justify-content: center;
102
- /* #endif */
103
-
104
- @include m(icon) {
105
- /* #ifndef APP-NVUE */
106
- position: absolute;
107
- transform: scale(0.7);
108
- bottom: -10px;
109
- right: -10px;
110
- /* #endif */
111
- /* #ifdef APP-NVUE */
112
- width: 16px;
113
- height: 16px;
114
- /* #endif */
115
- }
116
- }
117
-
118
- @include e(button) {
119
- @include flex(column);
120
- align-items: center;
121
- justify-content: center;
122
- width: $hy-upload-image-width;
123
- height: $hy-upload-image-width;
124
- background-color: $hy-background--empty;
125
- border-radius: 2px;
126
- margin: 0 8px 8px 0;
127
- /* #ifndef APP-NVUE */
128
- box-sizing: border-box;
129
- /* #endif */
130
-
131
- @include m(text) {
132
- font-size: $hy-upload-text-font-size;
133
- color: $hy-text-color--grey;
134
- margin-top: 2px;
135
- }
136
-
137
- @include m(hover) {
138
- background-color: $hy-background--hover;
139
- }
140
-
141
- @include m(disabled) {
142
- opacity: 0.5;
143
- }
144
- }
1
+ @use "../../libs/css/mixin" as *;
2
+ @use "../../libs/css/theme" as *;
3
+
4
+ $hy-upload-image-width: 80px !default;
5
+ $hy-upload-text-font-size: 11px !default;
6
+
7
+
8
+ @include b(upload) {
9
+ @include flex(column);
10
+ flex: 1;
11
+
12
+ @include e(wrap) {
13
+ @include flex;
14
+ flex-wrap: wrap;
15
+ flex: 1;
16
+
17
+ @include m(preview) {
18
+ border-radius: 2px;
19
+ margin: 0 8px 8px 0;
20
+ position: relative;
21
+ overflow: hidden;
22
+ @include flex;
23
+
24
+ @include e(image) {
25
+ width: $hy-upload-image-width;
26
+ height: $hy-upload-image-width;
27
+ }
28
+
29
+ @include e(other) {
30
+ width: $hy-upload-image-width;
31
+ height: $hy-upload-image-width;
32
+ background-color: rgb(242, 242, 242);
33
+ flex: 1;
34
+ @include flex(column);
35
+ justify-content: center;
36
+ align-items: center;
37
+
38
+ @include m(text) {
39
+ font-size: $hy-upload-text-font-size;
40
+ color: $hy-text-color--grey;
41
+ margin-top: 2px;
42
+ }
43
+ }
44
+
45
+ /* 进度条样式 */
46
+ @include e(progress) {
47
+ width: 100%;
48
+ height: 100%;
49
+ backdrop-filter: blur(6px);
50
+ position: absolute;
51
+ z-index: 10;
52
+ display: grid;
53
+ place-content: center;
54
+
55
+ @include m(number) {
56
+ width: 70px;
57
+ margin-bottom: 6rpx;
58
+ }
59
+
60
+ @include m(value) {
61
+ font-size: 20rpx;
62
+ color: $hy-primary;
63
+ }
64
+ }
65
+ }
66
+ }
67
+
68
+ @include e(deletable) {
69
+ position: absolute;
70
+ top: 0;
71
+ right: 0;
72
+ background-color: rgb(55, 55, 55);
73
+ height: 14px;
74
+ width: 14px;
75
+ @include flex;
76
+ border-bottom-left-radius: 100px;
77
+ align-items: center;
78
+ justify-content: center;
79
+ z-index: 9;
80
+
81
+ @include m(icon) {
82
+ position: absolute;
83
+ transform: scale(0.7);
84
+ top: 0;
85
+ right: 0;
86
+ }
87
+ }
88
+
89
+ @include e(status) {
90
+ position: absolute;
91
+ bottom: 0;
92
+ right: 0;
93
+ @include flex;
94
+ /* #ifndef APP-NVUE */
95
+ border-style: solid;
96
+ border-width: 9px;
97
+ align-items: center;
98
+ justify-content: center;
99
+ /* #endif */
100
+ }
101
+
102
+ @include e(success) {
103
+ border-color: transparent $hy-success $hy-success transparent;
104
+
105
+ @include m(icon) {
106
+ /* #ifndef APP-NVUE */
107
+ position: absolute;
108
+ transform: scale(0.7);
109
+ bottom: -10px;
110
+ right: -10px;
111
+ /* #endif */
112
+ /* #ifdef APP-NVUE */
113
+ width: 16px;
114
+ height: 16px;
115
+ /* #endif */
116
+ }
117
+ }
118
+
119
+ @include e(error) {
120
+ border-color: transparent $hy-error $hy-error transparent;
121
+ }
122
+
123
+ @include e(button) {
124
+ @include flex(column);
125
+ align-items: center;
126
+ justify-content: center;
127
+ width: $hy-upload-image-width;
128
+ height: $hy-upload-image-width;
129
+ background-color: $hy-background--empty;
130
+ border-radius: 2px;
131
+ margin: 0 8px 8px 0;
132
+ /* #ifndef APP-NVUE */
133
+ box-sizing: border-box;
134
+ /* #endif */
135
+
136
+ @include m(text) {
137
+ font-size: $hy-upload-text-font-size;
138
+ color: $hy-text-color--grey;
139
+ margin-top: 2px;
140
+ }
141
+
142
+ @include m(hover) {
143
+ background-color: $hy-background--hover;
144
+ }
145
+
146
+ @include m(disabled) {
147
+ opacity: 0.5;
148
+ }
149
+ }
145
150
  }