foucui 1.0.1 → 1.0.2

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 (234) hide show
  1. package/dist/components/QiuCanvasKit/QiuCanvasEditor.vue.d.ts +3 -1
  2. package/dist/components/QiuCanvasKit/components/DataModulesPanel.vue.d.ts +1 -0
  3. package/dist/components/QiuTable/index.vue.d.ts +12 -12
  4. package/dist/foucui.css +1 -1
  5. package/dist/foucui.js +7476 -7373
  6. package/dist/foucui.umd.cjs +19 -19
  7. package/package.json +23 -13
  8. package/components/QiuAffix/index.vue +0 -186
  9. package/components/QiuAlert/index.vue +0 -208
  10. package/components/QiuAnchor/context.ts +0 -18
  11. package/components/QiuAnchor/index.vue +0 -180
  12. package/components/QiuAnchorLink/index.vue +0 -67
  13. package/components/QiuApp/index.vue +0 -9
  14. package/components/QiuAutocomplete/index.vue +0 -408
  15. package/components/QiuAvatar/index.vue +0 -140
  16. package/components/QiuBacktop/index.vue +0 -121
  17. package/components/QiuBadge/api/index.ts +0 -389
  18. package/components/QiuBadge/components/BadgeImagePickerDialog.vue +0 -243
  19. package/components/QiuBadge/components/BadgeLibraryManagerDialog.vue +0 -30
  20. package/components/QiuBadge/components/BadgeLibraryPanel.vue +0 -182
  21. package/components/QiuBadge/composables/useTableHostHeight.ts +0 -53
  22. package/components/QiuBadge/index.ts +0 -18
  23. package/components/QiuBadge/shared/BadgeTemplateRenderer.vue +0 -32
  24. package/components/QiuBadge/shared/assetUrl.ts +0 -26
  25. package/components/QiuBadge/shared/badgeTemplate.ts +0 -309
  26. package/components/QiuBadge/utils/chinaAreaData.ts +0 -44
  27. package/components/QiuBadge/utils/hostRegion.ts +0 -22
  28. package/components/QiuBadge/utils/pca-code.json +0 -1
  29. package/components/QiuBadge/utils/pdfFromElement.ts +0 -348
  30. package/components/QiuBadge/views/BadgeLibraryView.vue +0 -32
  31. package/components/QiuBadge/views/BadgeManageView.vue +0 -1364
  32. package/components/QiuBadge/views/BadgeTemplateEditorView.vue +0 -10
  33. package/components/QiuBadge/views/BadgeTemplateListView.vue +0 -229
  34. package/components/QiuBadge/views/DeskLabelTemplateListView.vue +0 -227
  35. package/components/QiuBadge/views/DeskLabelView.vue +0 -683
  36. package/components/QiuBadgeDot/index.vue +0 -87
  37. package/components/QiuButton/index.vue +0 -247
  38. package/components/QiuButtonGroup/index.vue +0 -63
  39. package/components/QiuCanvasKit/QiuCanvasEditor.vue +0 -5503
  40. package/components/QiuCanvasKit/QiuCanvasRenderer.vue +0 -348
  41. package/components/QiuCanvasKit/assetUrl.ts +0 -11
  42. package/components/QiuCanvasKit/components/DataModulesPanel.vue +0 -352
  43. package/components/QiuCanvasKit/export/html.ts +0 -132
  44. package/components/QiuCanvasKit/export/pdf.ts +0 -48
  45. package/components/QiuCanvasKit/export/png.ts +0 -50
  46. package/components/QiuCanvasKit/index.ts +0 -20
  47. package/components/QiuCanvasKit/modules/badgeCompat.ts +0 -84
  48. package/components/QiuCanvasKit/modules/dataRegistry.ts +0 -207
  49. package/components/QiuCanvasKit/modules/merge.ts +0 -71
  50. package/components/QiuCanvasKit/presets/badge.ts +0 -67
  51. package/components/QiuCanvasKit/presets/banner.ts +0 -79
  52. package/components/QiuCanvasKit/types.ts +0 -138
  53. package/components/QiuCard/index.vue +0 -104
  54. package/components/QiuCarousel/context.ts +0 -16
  55. package/components/QiuCarousel/index.vue +0 -343
  56. package/components/QiuCarouselItem/index.vue +0 -47
  57. package/components/QiuCascader/index.vue +0 -879
  58. package/components/QiuCascader/types.ts +0 -48
  59. package/components/QiuCheckbox/QiuCheckboxGroup.vue +0 -78
  60. package/components/QiuCheckbox/index.vue +0 -231
  61. package/components/QiuCheckbox/types.ts +0 -8
  62. package/components/QiuCode/index.vue +0 -64
  63. package/components/QiuCol/col.scss +0 -55
  64. package/components/QiuCol/index.vue +0 -64
  65. package/components/QiuCollapse/context.ts +0 -10
  66. package/components/QiuCollapse/index.vue +0 -70
  67. package/components/QiuCollapseItem/index.vue +0 -167
  68. package/components/QiuColorField/index.vue +0 -296
  69. package/components/QiuColorPicker/README.md +0 -118
  70. package/components/QiuColorPicker/index.vue +0 -60
  71. package/components/QiuColorfulCard/index.vue +0 -101
  72. package/components/QiuCombobox/index.vue +0 -277
  73. package/components/QiuConfigProvider/index.vue +0 -31
  74. package/components/QiuContextMenu/index.vue +0 -209
  75. package/components/QiuDate/index.vue +0 -1134
  76. package/components/QiuDescriptions/context.ts +0 -20
  77. package/components/QiuDescriptions/index.vue +0 -115
  78. package/components/QiuDescriptionsItem/index.vue +0 -103
  79. package/components/QiuDialog/index.vue +0 -828
  80. package/components/QiuDigitalCard/index.vue +0 -159
  81. package/components/QiuDivider/index.vue +0 -185
  82. package/components/QiuDot/index.vue +0 -83
  83. package/components/QiuDrawer/index.vue +0 -350
  84. package/components/QiuDropdown/QiuDropdownItem.vue +0 -74
  85. package/components/QiuDropdown/QiuDropdownMenu.vue +0 -22
  86. package/components/QiuDropdown/context.ts +0 -9
  87. package/components/QiuDropdown/index.vue +0 -189
  88. package/components/QiuEmpty/index.vue +0 -73
  89. package/components/QiuForm/index.vue +0 -172
  90. package/components/QiuForm/types.ts +0 -39
  91. package/components/QiuFormItem/index.vue +0 -276
  92. package/components/QiuFullscreen/index.vue +0 -11
  93. package/components/QiuGrid/index.vue +0 -408
  94. package/components/QiuHoverCard/index.vue +0 -192
  95. package/components/QiuIcon/index.vue +0 -117
  96. package/components/QiuIconPicker/iconify.libraries.ts +0 -182
  97. package/components/QiuIconPicker/icons.catalog.ts +0 -3072
  98. package/components/QiuIconPicker/index.vue +0 -488
  99. package/components/QiuImage/index.vue +0 -177
  100. package/components/QiuInput/index.vue +0 -328
  101. package/components/QiuInputNumber/index.vue +0 -295
  102. package/components/QiuInputOtp/index.vue +0 -190
  103. package/components/QiuKbd/index.vue +0 -57
  104. package/components/QiuLayoutContainer/index.vue +0 -50
  105. package/components/QiuLinkPreview/index.vue +0 -224
  106. package/components/QiuLoading/index.ts +0 -176
  107. package/components/QiuLoading/spinner.vue +0 -820
  108. package/components/QiuLoading/types.ts +0 -44
  109. package/components/QiuMention/index.vue +0 -299
  110. package/components/QiuMenu/QiuMenuRoot.vue +0 -241
  111. package/components/QiuMenu/components/QiuMenuItem.vue +0 -340
  112. package/components/QiuMenu/components/QiuSubMenu.vue +0 -504
  113. package/components/QiuMenu/context.ts +0 -21
  114. package/components/QiuMenu/index.vue +0 -43
  115. package/components/QiuMenuNav/QiuMenuNavItem.vue +0 -100
  116. package/components/QiuMenuNav/QiuMenuNavSub.vue +0 -120
  117. package/components/QiuMenuNav/context.ts +0 -14
  118. package/components/QiuMenuNav/index.vue +0 -148
  119. package/components/QiuMsg/QiuMsgItem.vue +0 -180
  120. package/components/QiuMsg/index.ts +0 -158
  121. package/components/QiuMsg/types.ts +0 -23
  122. package/components/QiuMsgBox/index.ts +0 -147
  123. package/components/QiuNotification/QiuNotificationItem.vue +0 -168
  124. package/components/QiuNotification/index.ts +0 -155
  125. package/components/QiuNotification/types.ts +0 -14
  126. package/components/QiuPage/index.vue +0 -12
  127. package/components/QiuPageHeader/index.vue +0 -115
  128. package/components/QiuPageMain/index.vue +0 -78
  129. package/components/QiuPagination/index.vue +0 -421
  130. package/components/QiuPasswordStrength/index.vue +0 -101
  131. package/components/QiuPopconfirm/index.vue +0 -196
  132. package/components/QiuPopover/index.vue +0 -277
  133. package/components/QiuProgress/index.vue +0 -235
  134. package/components/QiuQrcode/index.vue +0 -302
  135. package/components/QiuQueryForm/components/QiuQueryFormBottomPanel.vue +0 -13
  136. package/components/QiuQueryForm/components/QiuQueryFormLeftPanel.vue +0 -37
  137. package/components/QiuQueryForm/components/QiuQueryFormRightPanel.vue +0 -37
  138. package/components/QiuQueryForm/components/QiuQueryFormTopPanel.vue +0 -13
  139. package/components/QiuQueryForm/index.vue +0 -117
  140. package/components/QiuRadio/QiuRadioGroup.vue +0 -75
  141. package/components/QiuRadio/index.vue +0 -191
  142. package/components/QiuRadio/types.ts +0 -9
  143. package/components/QiuRate/index.vue +0 -184
  144. package/components/QiuRefresh/index.vue +0 -32
  145. package/components/QiuResult/index.vue +0 -103
  146. package/components/QiuRow/index.vue +0 -60
  147. package/components/QiuRow/types.ts +0 -5
  148. package/components/QiuScrollbar/index.vue +0 -107
  149. package/components/QiuSearchBar/index.vue +0 -154
  150. package/components/QiuSegmented/index.vue +0 -120
  151. package/components/QiuSelect/QiuOption.vue +0 -93
  152. package/components/QiuSelect/index.vue +0 -452
  153. package/components/QiuSelect/types.ts +0 -15
  154. package/components/QiuSkeleton/index.vue +0 -78
  155. package/components/QiuSlider/index.vue +0 -266
  156. package/components/QiuSpace/index.vue +0 -95
  157. package/components/QiuSparkline/index.vue +0 -92
  158. package/components/QiuStatistic/index.vue +0 -4
  159. package/components/QiuStatistics/index.vue +0 -123
  160. package/components/QiuStep/index.vue +0 -220
  161. package/components/QiuSteps/context.ts +0 -25
  162. package/components/QiuSteps/index.vue +0 -84
  163. package/components/QiuSwitch/index.vue +0 -145
  164. package/components/QiuTabBar/index.vue +0 -218
  165. package/components/QiuTabBar/types.ts +0 -19
  166. package/components/QiuTabPane/index.vue +0 -82
  167. package/components/QiuTable/columns.ts +0 -16
  168. package/components/QiuTable/export.ts +0 -102
  169. package/components/QiuTable/index.ts +0 -24
  170. package/components/QiuTable/index.vue +0 -3503
  171. package/components/QiuTable/registry.ts +0 -75
  172. package/components/QiuTable/styles/table.scss +0 -1230
  173. package/components/QiuTable/types.ts +0 -413
  174. package/components/QiuTable/useArea.ts +0 -202
  175. package/components/QiuTable/useColumns.ts +0 -325
  176. package/components/QiuTable/useEdit.ts +0 -136
  177. package/components/QiuTable/useExtras.ts +0 -115
  178. package/components/QiuTable/useHistory.ts +0 -77
  179. package/components/QiuTable/useMerge.ts +0 -105
  180. package/components/QiuTable/useResize.ts +0 -86
  181. package/components/QiuTable/useScrollSync.ts +0 -152
  182. package/components/QiuTable/useVirtual.ts +0 -97
  183. package/components/QiuTable/utils.ts +0 -165
  184. package/components/QiuTableColumn/index.vue +0 -101
  185. package/components/QiuTag/index.vue +0 -143
  186. package/components/QiuText/index.vue +0 -99
  187. package/components/QiuTime/index.vue +0 -548
  188. package/components/QiuTimeAgo/index.vue +0 -103
  189. package/components/QiuTimeline/index.vue +0 -54
  190. package/components/QiuTimelineItem/index.vue +0 -140
  191. package/components/QiuTips/index.vue +0 -323
  192. package/components/QiuTooltip/index.vue +0 -237
  193. package/components/QiuTransfer/index.vue +0 -277
  194. package/components/QiuTree/QiuTreeNode.vue +0 -146
  195. package/components/QiuTree/index.vue +0 -143
  196. package/components/QiuTree/types.ts +0 -30
  197. package/components/QiuTreeSelect/index.vue +0 -259
  198. package/components/QiuTrend/index.vue +0 -92
  199. package/components/QiuUpload/index.vue +0 -628
  200. package/components/QiuUploadCrop/index.vue +0 -1267
  201. package/components/QiuWatermark/index.vue +0 -121
  202. package/components/useBodyScrollLock.ts +0 -28
  203. package/dist/components/QiuBadge/utils/pca-code.json.d.ts +0 -3
  204. package/plugins/qiu.ts +0 -83
  205. package/plugins/shortcuts.ts +0 -69
  206. package/src/bridge/@/api/media.ts +0 -8
  207. package/src/bridge/@/api/notice.ts +0 -5
  208. package/src/bridge/@/config/index.ts +0 -38
  209. package/src/bridge/@/config/media.config.ts +0 -37
  210. package/src/bridge/@/config/security.config.ts +0 -8
  211. package/src/bridge/@/i18n/index.ts +0 -6
  212. package/src/bridge/@/store/modules/bing.ts +0 -9
  213. package/src/bridge/@/store/modules/errorLog.ts +0 -9
  214. package/src/bridge/@/store/modules/media.ts +0 -10
  215. package/src/bridge/@/store/modules/routes.ts +0 -10
  216. package/src/bridge/@/store/modules/settings.ts +0 -9
  217. package/src/bridge/@/store/modules/tabs.ts +0 -9
  218. package/src/bridge/@/store/modules/user.ts +0 -9
  219. package/src/bridge/@/utils/convertToCamelCase.ts +0 -11
  220. package/src/bridge/@/utils/index.ts +0 -9
  221. package/src/bridge/@/utils/pageTitle.ts +0 -4
  222. package/src/bridge/@/utils/routes.ts +0 -14
  223. package/src/bridge/@/utils/validate.ts +0 -17
  224. package/src/bridge/@qiu/plugins/shortcuts.ts +0 -3
  225. package/src/i18n.ts +0 -8
  226. package/src/icons/qiu-logo.svg +0 -1
  227. package/styles/dark.scss +0 -194
  228. package/styles/normalize.css +0 -349
  229. package/styles/plain.scss +0 -423
  230. package/styles/qiu-tokens.scss +0 -40
  231. package/styles/qiu.scss +0 -1149
  232. package/styles/technology.scss +0 -452
  233. package/styles/var.scss +0 -382
  234. package/styles/variables.scss +0 -77
@@ -1,87 +0,0 @@
1
- <template>
2
- <span class="qiu-badge-dot" :class="{ 'is-dot': isDot }">
3
- <slot />
4
- <sup
5
- v-if="!hidden && (isDot || displayValue !== null)"
6
- class="qiu-badge-dot__content"
7
- :class="{
8
- 'is-dot': isDot,
9
- 'is-fixed': !!$slots.default,
10
- }"
11
- >
12
- <template v-if="!isDot">{{ displayValue }}</template>
13
- </sup>
14
- </span>
15
- </template>
16
-
17
- <script lang="ts" setup>
18
- defineOptions({ name: 'QiuBadgeDot' })
19
-
20
- const props = withDefaults(
21
- defineProps<{
22
- value?: string | number
23
- max?: number
24
- isDot?: boolean
25
- hidden?: boolean
26
- }>(),
27
- {
28
- value: '',
29
- max: 99,
30
- isDot: false,
31
- hidden: false,
32
- }
33
- )
34
-
35
- const displayValue = computed(() => {
36
- if (props.isDot) return null
37
- const raw = props.value
38
- if (raw === '' || raw === undefined || raw === null) return null
39
- const num = Number(raw)
40
- if (!Number.isNaN(num) && num > props.max) return `${props.max}+`
41
- return String(raw)
42
- })
43
- </script>
44
-
45
- <style lang="scss" scoped>
46
- .qiu-badge-dot {
47
- position: relative;
48
- display: inline-flex;
49
- vertical-align: middle;
50
- }
51
-
52
- .qiu-badge-dot__content {
53
- position: absolute;
54
- top: 0;
55
- right: 0;
56
- z-index: 1;
57
- display: inline-flex;
58
- align-items: center;
59
- justify-content: center;
60
- min-width: 18px;
61
- height: 18px;
62
- padding: 0 6px;
63
- font-size: 12px;
64
- font-weight: 600;
65
- line-height: 18px;
66
- color: #fff;
67
- white-space: nowrap;
68
- background: var(--qiu-color-danger, var(--qiu-color-danger, #f56c6c));
69
- border: 1px solid var(--qiu-bg-color, var(--qiu-bg-color, #fff));
70
- border-radius: 10px;
71
- box-sizing: border-box;
72
- transform: translate(50%, -50%);
73
- transform-origin: 100% 0;
74
-
75
- &.is-fixed {
76
- position: absolute;
77
- }
78
-
79
- &.is-dot {
80
- min-width: 8px;
81
- width: 8px;
82
- height: 8px;
83
- padding: 0;
84
- border-radius: 50%;
85
- }
86
- }
87
- </style>
@@ -1,247 +0,0 @@
1
- <template>
2
- <component
3
- :is="tag"
4
- class="qiu-button"
5
- :class="buttonClass"
6
- :type="tag === 'button' ? nativeType : undefined"
7
- :disabled="disabled || loading"
8
- :style="colorStyle"
9
- v-bind="$attrs"
10
- @click="onClick"
11
- >
12
- <span v-if="loading" class="qiu-button__loading" aria-hidden="true" />
13
- <span v-if="!loading && (icon || $slots.icon)" class="qiu-button__icon">
14
- <slot name="icon">
15
- <qiu-icon v-if="icon" :icon="icon" />
16
- </slot>
17
- </span>
18
- <span v-if="$slots.default" class="qiu-button__label"><slot /></span>
19
- <span v-if="iconRight || $slots.iconRight" class="qiu-button__icon-right">
20
- <slot name="iconRight">
21
- <qiu-icon v-if="iconRight" :icon="iconRight" />
22
- </slot>
23
- </span>
24
- </component>
25
- </template>
26
-
27
- <script lang="ts" setup>
28
- /**
29
- * QiuButton — 纯自研多色按钮(无 Element Plus)
30
- */
31
- defineOptions({
32
- name: 'QiuButton',
33
- inheritAttrs: false,
34
- })
35
-
36
- const QIU_BUTTON_COLORS: Record<string, string> = {
37
- primary: 'var(--qiu-color-primary, var(--qiu-color-primary, #0f766e))',
38
- success: 'var(--qiu-color-success, var(--qiu-color-success, #67c23a))',
39
- warning: 'var(--qiu-color-warning, var(--qiu-color-warning, #e6a23c))',
40
- danger: 'var(--qiu-color-danger, var(--qiu-color-danger, #f56c6c))',
41
- info: 'var(--qiu-color-info, var(--qiu-color-info, #909399))',
42
- cyan: '#0ea5e9',
43
- orange: '#f97316',
44
- pink: '#ec4899',
45
- teal: '#14b8a6',
46
- gray: '#64748b',
47
- magenta: '#d946ef',
48
- lime: '#84cc16',
49
- brown: '#a16207',
50
- }
51
-
52
- type QiuButtonType = 'default' | keyof typeof QIU_BUTTON_COLORS | string
53
-
54
- const props = withDefaults(
55
- defineProps<{
56
- type?: QiuButtonType
57
- color?: string
58
- size?: 'large' | 'default' | 'small'
59
- plain?: boolean
60
- text?: boolean
61
- link?: boolean
62
- round?: boolean
63
- circle?: boolean
64
- disabled?: boolean
65
- loading?: boolean
66
- nativeType?: 'button' | 'submit' | 'reset'
67
- tag?: string
68
- icon?: string
69
- iconRight?: string
70
- }>(),
71
- {
72
- type: 'default',
73
- plain: false,
74
- text: false,
75
- link: false,
76
- round: false,
77
- circle: false,
78
- disabled: false,
79
- loading: false,
80
- nativeType: 'button',
81
- tag: 'button',
82
- }
83
- )
84
-
85
- const emit = defineEmits<{ click: [e: MouseEvent] }>()
86
-
87
- const groupSize = inject<Ref<'large' | 'default' | 'small'> | null>('qiuButtonGroupSize', null)
88
- const resolvedSize = computed(() => props.size || groupSize?.value || 'default')
89
-
90
- const resolvedHue = computed(() => {
91
- if (props.color) return props.color
92
- if (props.type && props.type !== 'default' && QIU_BUTTON_COLORS[props.type]) {
93
- return QIU_BUTTON_COLORS[props.type]
94
- }
95
- return ''
96
- })
97
-
98
- const colorStyle = computed(() => {
99
- if (!resolvedHue.value) return undefined
100
- return { '--qiu-btn-color': resolvedHue.value } as Record<string, string>
101
- })
102
-
103
- const buttonClass = computed(() => [
104
- `qiu-button--${resolvedSize.value}`,
105
- {
106
- 'qiu-button--default': props.type === 'default' && !props.color,
107
- 'qiu-button--colored': !!resolvedHue.value,
108
- 'qiu-button--plain': props.plain,
109
- 'qiu-button--text': props.text,
110
- 'qiu-button--link': props.link,
111
- 'qiu-button--round': props.round,
112
- 'qiu-button--circle': props.circle,
113
- 'is-disabled': props.disabled || props.loading,
114
- 'is-loading': props.loading,
115
- },
116
- ])
117
-
118
- const onClick = (e: MouseEvent) => {
119
- if (props.disabled || props.loading) {
120
- e.preventDefault()
121
- return
122
- }
123
- emit('click', e)
124
- }
125
- </script>
126
-
127
- <style lang="scss" scoped>
128
- .qiu-button {
129
- --qiu-btn-color: var(--qiu-color-primary, var(--qiu-color-primary, #0f766e));
130
- display: inline-flex;
131
- gap: 6px;
132
- align-items: center;
133
- justify-content: center;
134
- margin: 0;
135
- font-weight: 500;
136
- font-size: var(--qiu-font-size, 14px);
137
- line-height: 1;
138
- white-space: nowrap;
139
- text-align: center;
140
- vertical-align: middle;
141
- appearance: none;
142
- cursor: pointer;
143
- user-select: none;
144
- border: 1px solid var(--qiu-border-color, var(--qiu-border-color, #dcdfe6));
145
- border-radius: var(--qiu-border-radius, 4px);
146
- background: var(--qiu-fill-color-blank, #fff);
147
- color: var(--qiu-text-color-regular, #606266);
148
- transition:
149
- color var(--qiu-transition, 0.2s),
150
- background var(--qiu-transition, 0.2s),
151
- border-color var(--qiu-transition, 0.2s);
152
-
153
- &--large {
154
- height: var(--qiu-component-size-large, 40px);
155
- padding: 0 18px;
156
- font-size: 15px;
157
- }
158
- &--default {
159
- height: var(--qiu-component-size, 32px);
160
- padding: 0 14px;
161
- }
162
- &--small {
163
- height: var(--qiu-component-size-small, 24px);
164
- padding: 0 10px;
165
- font-size: var(--qiu-font-size-small, 13px);
166
- }
167
-
168
- &--colored:not(.qiu-button--plain):not(.qiu-button--text):not(.qiu-button--link) {
169
- color: #fff;
170
- background: var(--qiu-btn-color);
171
- border-color: var(--qiu-btn-color);
172
- &:hover:not(.is-disabled) {
173
- filter: brightness(1.08);
174
- }
175
- }
176
-
177
- &--colored.qiu-button--plain {
178
- color: var(--qiu-btn-color);
179
- background: color-mix(in srgb, var(--qiu-btn-color) 10%, #fff);
180
- border-color: color-mix(in srgb, var(--qiu-btn-color) 45%, #fff);
181
- &:hover:not(.is-disabled) {
182
- color: #fff;
183
- background: var(--qiu-btn-color);
184
- border-color: var(--qiu-btn-color);
185
- }
186
- }
187
-
188
- &--text,
189
- &--link {
190
- height: auto;
191
- padding: 0 4px;
192
- border-color: transparent;
193
- background: transparent;
194
- color: var(--qiu-btn-color, var(--qiu-text-color-regular, #606266));
195
- &:hover:not(.is-disabled) {
196
- opacity: 0.8;
197
- }
198
- }
199
-
200
- &--link {
201
- padding: 0;
202
- }
203
-
204
- &--round {
205
- border-radius: var(--qiu-border-radius-round, 20px);
206
- }
207
-
208
- &--circle {
209
- width: var(--qiu-component-size, 32px);
210
- padding: 0;
211
- border-radius: 50%;
212
- &.qiu-button--large {
213
- width: var(--qiu-component-size-large, 40px);
214
- }
215
- &.qiu-button--small {
216
- width: var(--qiu-component-size-small, 24px);
217
- }
218
- }
219
-
220
- &.is-disabled {
221
- cursor: not-allowed;
222
- opacity: 0.55;
223
- }
224
-
225
- &__loading {
226
- width: 1em;
227
- height: 1em;
228
- border: 2px solid currentColor;
229
- border-right-color: transparent;
230
- border-radius: 50%;
231
- animation: qiu-btn-spin 0.7s linear infinite;
232
- }
233
-
234
- &__icon,
235
- &__icon-right {
236
- display: inline-flex;
237
- align-items: center;
238
- line-height: 1;
239
- }
240
- }
241
-
242
- @keyframes qiu-btn-spin {
243
- to {
244
- transform: rotate(360deg);
245
- }
246
- }
247
- </style>
@@ -1,63 +0,0 @@
1
- <template>
2
- <div class="qiu-button-group" :class="groupClass" role="group" v-bind="$attrs">
3
- <slot />
4
- </div>
5
- </template>
6
-
7
- <script lang="ts" setup>
8
- defineOptions({ name: 'QiuButtonGroup' })
9
-
10
- const props = withDefaults(
11
- defineProps<{
12
- size?: 'large' | 'default' | 'small'
13
- vertical?: boolean
14
- }>(),
15
- { size: 'default', vertical: false }
16
- )
17
-
18
- const groupClass = computed(() => ({
19
- 'qiu-button-group--vertical': props.vertical,
20
- [`qiu-button-group--${props.size}`]: true,
21
- }))
22
-
23
- provide('qiuButtonGroupSize', toRef(props, 'size'))
24
- </script>
25
-
26
- <style lang="scss" scoped>
27
- .qiu-button-group {
28
- display: inline-flex;
29
- vertical-align: middle;
30
-
31
- :deep(.qiu-button) {
32
- border-radius: 0;
33
- & + .qiu-button {
34
- margin-left: -1px;
35
- }
36
- &:first-child {
37
- border-top-left-radius: var(--qiu-border-radius, 4px);
38
- border-bottom-left-radius: var(--qiu-border-radius, 4px);
39
- }
40
- &:last-child {
41
- border-top-right-radius: var(--qiu-border-radius, 4px);
42
- border-bottom-right-radius: var(--qiu-border-radius, 4px);
43
- }
44
- }
45
-
46
- &--vertical {
47
- flex-direction: column;
48
- :deep(.qiu-button) {
49
- width: 100%;
50
- & + .qiu-button {
51
- margin-left: 0;
52
- margin-top: -1px;
53
- }
54
- &:first-child {
55
- border-radius: var(--qiu-border-radius, 4px) var(--qiu-border-radius, 4px) 0 0;
56
- }
57
- &:last-child {
58
- border-radius: 0 0 var(--qiu-border-radius, 4px) var(--qiu-border-radius, 4px);
59
- }
60
- }
61
- }
62
- }
63
- </style>