adata-ui 2.1.40-beta.13 → 2.1.40-beta.14

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.
@@ -30,7 +30,7 @@ const classes = computed(() =>
30
30
  props.disabled ? 'text-gray-500 bg-deepblue-900/5' : typeSwitchValues[props.view][props.type],
31
31
  'inline-flex items-center justify-center font-medium rounded-full select-none inline-flex outline-none',
32
32
  sizeSwitchValues[props.size],
33
- props.value && props.value.toString().length > 2 ? 'w-auto' : '',
33
+ props.value && props.value.toString().length > 1 ? 'w-auto' : '',
34
34
  ])
35
35
 
36
36
  export type StateType = {
@@ -70,8 +70,8 @@ const typeSwitchValues: ViewType = {
70
70
  }
71
71
 
72
72
  const sizeSwitchValues: SizeSwitchValues = {
73
- sm: 'w-4 h-4 px-1 text-[9.5px]',
74
- md: 'w-5 h-5 px-1 text-[10px]',
73
+ sm: 'w-4 h-4 px-1 text-body-sm',
74
+ md: 'w-5 h-5 px-1 text-body-sm',
75
75
  lg: 'px-2 w-6 h-6 text-body-sm font-semibold',
76
76
  }
77
77
  </script>
@@ -64,14 +64,14 @@ const CHIP_CLASS: Record<Color, Record<View | 'selected', string>> = {
64
64
  }
65
65
 
66
66
  const DOT_CLASS: Record<Color, Record<View, string>> = {
67
- gray: { outline: 'bg-[#4A5565] dark:bg-gray-400', solid: 'bg-[#4A5565] dark:bg-gray-400' },
67
+ gray: { outline: 'bg-[#6A7282] dark:bg-gray-300', solid: 'bg-[#6A7282] dark:bg-gray-300' },
68
68
  blue: { outline: 'bg-[#068DFF] dark:bg-blue-400', solid: 'bg-[#068DFF] dark:bg-blue-400' },
69
69
  green: { outline: 'bg-[#00A63E] dark:bg-green-400', solid: 'bg-[#00A63E] dark:bg-green-400' },
70
70
  yellow: { outline: 'bg-[#E17100] dark:bg-orange-400', solid: 'bg-[#E17100] dark:bg-orange-400' },
71
71
  red: { outline: 'bg-[#E7000B] dark:bg-red-400', solid: 'bg-[#E7000B] dark:bg-red-400' },
72
72
  }
73
73
 
74
- const DOT_SELECTED_CLASS = 'bg-white dark:bg-gray-100'
74
+ const DOT_SELECTED_CLASS = 'bg-white'
75
75
 
76
76
  function dotColorName(option: Option): Color {
77
77
  return option.color ?? props.color
@@ -1,31 +1,36 @@
1
1
  <script lang="ts" setup>
2
- import {twMerge} from '#adata-ui/utils/twMerge';
2
+ type BadgeType = 'primary' | 'success' | 'danger' | 'gray' | 'warning'
3
+ type BadgeView = 'default' | 'inverted' | 'transparent'
4
+ type BadgeSize = 'xs' | 'sm' | 'lg'
3
5
 
4
- defineOptions({ name: 'AStatusBadge' })
6
+ type StateType = {
7
+ [key in BadgeType]?: string
8
+ }
9
+
10
+ interface ViewType {
11
+ default: StateType
12
+ inverted: StateType
13
+ transparent: StateType
14
+ }
5
15
 
6
16
  interface Props {
7
- type?: 'primary' | 'success' | 'danger' | 'gray' | 'orange' | 'warning'
8
- view?: 'default' | 'inverted' | 'transparent'
9
- size?: 'xs' | 'sm' | 'lg'
17
+ type?: BadgeType
18
+ view?: BadgeView
19
+ size?: BadgeSize
20
+ point?: boolean
10
21
  customClasses?: string
11
22
  }
12
23
 
24
+ defineOptions({ name: 'AStatusBadge' })
25
+
13
26
  const props = withDefaults(defineProps<Props>(), {
14
27
  type: 'primary',
15
28
  view: 'default',
16
29
  size: 'lg',
17
- customClasses: ''
30
+ point: false,
31
+ customClasses: '',
18
32
  })
19
33
 
20
- const classes = computed(() =>
21
- [
22
- 'text-body-md rounded-sm select-none inline-flex gap-[5.5px] justify-center items-center border',
23
- typeSwitchValues[props.view][props.type],
24
- props.size === 'xs'? 'px-4 py-[2px] text-body-sm font-bold' : '',
25
- props.size === 'sm'? 'text-body-sm font-semibold px-4 py-[2px] h-6' : '',
26
- props.size === 'lg'? 'px-4 py-[7.5px] font-semibold' : '',
27
- ])
28
-
29
34
  const typeSwitchValues: ViewType = {
30
35
  default: {
31
36
  primary: 'bg-[#068DFF] text-white border-transparent dark:bg-[#068DFF]/30 dark:text-blue-100',
@@ -33,45 +38,68 @@ const typeSwitchValues: ViewType = {
33
38
  danger: 'bg-[#E7000B] text-white border-transparent dark:bg-[#E7000B]/30 dark:text-red-100',
34
39
  warning: 'bg-[#E17100] text-white border-transparent dark:bg-[#E17100]/30 dark:text-orange-100',
35
40
  gray: 'bg-[#4A5565] text-white border-transparent dark:bg-[#4A5565]/30 dark:text-gray-100',
36
- orange: 'bg-[#E17100] text-white border-transparent dark:bg-[#E17100]/30 dark:text-orange-100'
37
41
  },
38
42
  inverted: {
39
43
  primary: 'bg-[#F0F8FF] text-[#068DFF] border-transparent dark:bg-[#068DFF]/10 dark:text-blue-400',
40
- success: 'bg-[#DCFCE7] text-[#00A63E] border-transparent dark:bg-[#00A63E]/10 dark:text-green-400',
41
- danger: 'bg-[#FFE2E2] text-[#E7000B] border-transparent dark:bg-[#E7000B]/10 dark:text-red-400',
42
- warning: 'bg-[#FEF3C6] text-[#E17100] border-transparent dark:bg-[#E17100]/10 dark:text-orange-400',
43
- gray: 'bg-[#F3F4F6] text-[#4A5565] border-transparent dark:bg-[#4A5565]/10 dark:text-gray-300',
44
- orange: 'bg-[#FEF3C6] text-[#E17100] border-transparent dark:bg-[#E17100]/10 dark:text-orange-400'
44
+ success: 'bg-[#DCFCE7] text-[#008236] border-transparent dark:bg-[#00A63E]/10 dark:text-green-400',
45
+ danger: 'bg-[#FFE2E2] text-[#C10007] border-transparent dark:bg-[#E7000B]/10 dark:text-red-400',
46
+ warning: 'bg-[#FEF3C6] text-[#9A5800] border-transparent dark:bg-[#E17100]/10 dark:text-orange-400',
47
+ gray: 'bg-[#F3F4F6] text-[#364153] border-transparent dark:bg-[#4A5565]/10 dark:text-gray-300',
45
48
  },
46
49
  transparent: {
47
- primary: 'bg-white border-[#B3DCFF] text-[#068DFF] dark:bg-transparent dark:border-[#068DFF]/50 dark:text-blue-400',
48
- success: 'bg-white border-[#7BF1A8] text-[#00A63E] dark:bg-transparent dark:border-[#00A63E]/50 dark:text-green-400',
49
- danger: 'bg-white border-[#FFA2A2] text-[#E7000B] dark:bg-transparent dark:border-[#E7000B]/50 dark:text-red-400',
50
- warning: 'bg-white border-[#FFD230] text-[#E17100] dark:bg-transparent dark:border-[#E17100]/50 dark:text-orange-400',
51
- gray: 'bg-white border-[#D1D5DC] text-[#4A5565] dark:bg-transparent dark:border-[#4A5565]/50 dark:text-gray-300',
52
- orange: 'bg-white border-[#FFD230] text-[#E17100] dark:bg-transparent dark:border-[#E17100]/50 dark:text-orange-400'
53
- }
50
+ primary: 'bg-white border-[#B3DCFF] text-[#0066BD] dark:bg-transparent dark:border-[#068DFF]/50 dark:text-blue-400',
51
+ success: 'bg-white border-[#7BF1A8] text-[#008236] dark:bg-transparent dark:border-[#00A63E]/50 dark:text-green-400',
52
+ danger: 'bg-white border-[#FFA2A2] text-[#C10007] dark:bg-transparent dark:border-[#E7000B]/50 dark:text-red-400',
53
+ warning: 'bg-white border-[#FFD230] text-[#9A5800] dark:bg-transparent dark:border-[#E17100]/50 dark:text-orange-400',
54
+ gray: 'bg-white border-[#D1D5DC] text-[#364153] dark:bg-transparent dark:border-[#4A5565]/50 dark:text-gray-300',
55
+ },
54
56
  }
55
57
 
56
-
57
-
58
-
59
- type StateType = {
60
- [key in 'primary' | 'success' | 'danger' | 'gray' | 'orange' | 'warning']?: string
58
+ const pointSwitchValues: ViewType = {
59
+ default: {
60
+ primary: 'bg-white',
61
+ success: 'bg-white',
62
+ danger: 'bg-white',
63
+ warning: 'bg-white',
64
+ gray: 'bg-white',
65
+ },
66
+ inverted: {
67
+ primary: 'bg-[#068DFF] dark:bg-blue-400',
68
+ success: 'bg-[#00A63E] dark:bg-green-400',
69
+ danger: 'bg-[#E7000B] dark:bg-red-400',
70
+ warning: 'bg-[#E17100] dark:bg-orange-400',
71
+ gray: 'bg-[#6A7282] dark:bg-gray-300',
72
+ },
73
+ transparent: {
74
+ primary: 'bg-[#068DFF] dark:bg-blue-400',
75
+ success: 'bg-[#00A63E] dark:bg-green-400',
76
+ danger: 'bg-[#E7000B] dark:bg-red-400',
77
+ warning: 'bg-[#E17100] dark:bg-orange-400',
78
+ gray: 'bg-[#6A7282] dark:bg-gray-300',
79
+ },
61
80
  }
62
81
 
63
- type ViewType = {
64
- default: StateType
65
- inverted: StateType
66
- transparent: StateType
67
- };
68
-
69
-
82
+ const classes = computed(() =>
83
+ [
84
+ 'text-body-md rounded-sm select-none inline-flex gap-[5.5px] justify-center items-center border',
85
+ typeSwitchValues[props.view][props.type],
86
+ props.size === 'xs' ? 'px-4 py-[2px] text-body-sm font-bold' : '',
87
+ props.size === 'sm' ? 'text-body-sm font-semibold px-4 py-[2px] h-6' : '',
88
+ props.size === 'lg' ? 'px-4 py-[7.5px] font-semibold' : '',
89
+ ])
70
90
 
91
+ const pointClasses = computed(() =>
92
+ [
93
+ 'w-1.5 h-1.5 rounded-full shrink-0',
94
+ pointSwitchValues[props.view][props.type],
95
+ ])
71
96
  </script>
97
+
72
98
  <template>
73
99
  <div :class="[[classes], customClasses]">
74
- <slot name="point"/>
100
+ <slot name="point">
101
+ <span v-if="point" :class="pointClasses" />
102
+ </slot>
75
103
  <slot />
76
104
  </div>
77
105
  </template>
@@ -50,8 +50,8 @@ function onSelectToggle() {
50
50
  <a-checkbox-v2
51
51
  v-if="type === 'checkbox'"
52
52
  size="lg"
53
- side="left"
54
- class="flex w-full items-center justify-between text-left"
53
+ side="right"
54
+ class="flex w-full items-center text-left"
55
55
  :model-value="node.state === 'checked'"
56
56
  :intermediate="node.state === 'indeterminate'"
57
57
  :disabled="isDisabled"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "adata-ui",
3
3
  "type": "module",
4
- "version": "2.1.40-beta.13",
4
+ "version": "2.1.40-beta.14",
5
5
  "main": "./nuxt.config.ts",
6
6
  "scripts": {
7
7
  "dev": "nuxi dev .playground",
@@ -1,76 +0,0 @@
1
- <script lang="ts" setup>
2
- import { twMerge } from '#adata-ui/utils/twMerge'
3
-
4
- defineOptions({ name: 'StatusBadgeV2', inheritAttrs: false })
5
-
6
- type BadgeType = 'primary' | 'success' | 'danger' | 'gray' | 'orange' | 'warning'
7
- type BadgeView = 'default' | 'inverted' | 'transparent'
8
- type BadgeSize = 'xs' | 'sm' | 'md' | 'lg'
9
-
10
- interface Props {
11
- type?: BadgeType
12
- view?: BadgeView
13
- size?: BadgeSize
14
- }
15
-
16
- const props = withDefaults(defineProps<Props>(), {
17
- type: 'primary',
18
- view: 'inverted',
19
- size: 'sm',
20
- })
21
-
22
- const base
23
- = 'inline-flex w-fit items-center justify-center gap-1.5 rounded-full font-semibold select-none'
24
-
25
- const sizeClasses: Record<BadgeSize, string> = {
26
- xs: 'px-2 py-0.5 text-[11px] leading-none',
27
- sm: 'px-2.5 py-1 text-xs leading-none',
28
- md: 'px-3 py-1.5 text-sm',
29
- lg: 'px-4 py-2 text-base',
30
- }
31
-
32
- const typeClasses: Record<BadgeView, Partial<Record<BadgeType, string>>> = {
33
- default: {
34
- primary: 'bg-blue-700 text-white dark:bg-blue-500 dark:text-gray-900',
35
- success: 'bg-green-500 text-white dark:bg-green-400 dark:text-gray-900',
36
- danger: 'bg-red-500 text-white dark:text-gray-100',
37
- warning: 'bg-yellow-400 text-white dark:text-gray-900',
38
- gray: 'bg-deepblue-900 text-white dark:bg-gray-200/10 dark:text-gray-200',
39
- orange: 'bg-orange-600 text-white dark:text-gray-100',
40
- },
41
- inverted: {
42
- primary: 'bg-blue-700/10 text-blue-700 dark:bg-blue-500/10 dark:text-blue-500',
43
- success: 'bg-green-500/15 text-green-600 dark:bg-green-400/15 dark:text-green-400',
44
- danger: 'bg-red-500/10 text-red-500 dark:bg-red-400/10 dark:text-red-400',
45
- warning: 'bg-yellow-400/15 text-yellow-500 dark:bg-yellow-400/15 dark:text-yellow-400',
46
- gray: 'bg-deepblue-900/10 text-gray-600 dark:bg-gray-200/10 dark:text-gray-300',
47
- orange: 'bg-orange-600/10 text-orange-600 dark:text-orange-500',
48
- },
49
- transparent: {
50
- primary: 'bg-transparent text-blue-700 dark:text-blue-500',
51
- success: 'bg-transparent text-green-600 dark:text-green-400',
52
- danger: 'bg-transparent text-red-500 dark:text-red-400',
53
- warning: 'bg-transparent text-yellow-500 dark:text-yellow-400',
54
- gray: 'bg-transparent text-gray-600 dark:text-gray-300',
55
- orange: 'bg-transparent text-orange-600 dark:text-orange-500',
56
- },
57
- }
58
-
59
- const attrs = useAttrs()
60
-
61
- const classes = computed(() =>
62
- twMerge(
63
- base,
64
- sizeClasses[props.size],
65
- typeClasses[props.view][props.type],
66
- attrs.class as string,
67
- ),
68
- )
69
- </script>
70
-
71
- <template>
72
- <div :class="classes" v-bind="{ ...$attrs, class: undefined }">
73
- <slot name="point" />
74
- <slot />
75
- </div>
76
- </template>