sposchedule

Форк
1
151 строка · 4.5 Кб
1
export default {
2
  root: ({ props }) => ({
3
    class: [
4
      //Size and Shape
5
      'w-96 rounded-md',
6

7
      // Positioning
8
      {
9
        '-translate-x-2/4':
10
          props.position == 'top-center' || props.position == 'bottom-center',
11
      },
12
    ],
13
  }),
14
  message: ({ props }) => ({
15
    class: [
16
      'mb-4 rounded-md w-full',
17
      'border border-transparent',
18
      'backdrop-blur-[10px] shadow-md',
19

20
      // Colors
21
      {
22
        'bg-blue-50/90 dark:bg-blue-500/20': props.message.severity == 'info',
23
        'bg-green-50/90 dark:bg-green-500/20':
24
          props.message.severity == 'success',
25
        'bg-surface-50 dark:bg-surface-800':
26
          props.message.severity == 'secondary',
27
        'bg-orange-50/90 dark:bg-orange-500/20':
28
          props.message.severity == 'warn',
29
        'bg-red-50/90 dark:bg-red-500/20': props.message.severity == 'error',
30
        'bg-surface-950 dark:bg-surface-0':
31
          props.message.severity == 'contrast',
32
      },
33
      {
34
        'border-blue-200 dark:border-blue-500/20':
35
          props.message.severity == 'info',
36
        'border-green-200 dark:border-green-500/20':
37
          props.message.severity == 'success',
38
        'border-surface-300 dark:border-surface-500/20':
39
          props.message.severity == 'secondary',
40
        'border-orange-200 dark:border-orange-500/20':
41
          props.message.severity == 'warn',
42
        'border-red-200 dark:border-red-500/20':
43
          props.message.severity == 'error',
44
        'border-surface-950 dark:border-surface-0':
45
          props.message.severity == 'contrast',
46
      },
47
      {
48
        'text-blue-700 dark:text-blue-300': props.message.severity == 'info',
49
        'text-green-700 dark:text-green-300':
50
          props.message.severity == 'success',
51
        'text-surface-700 dark:text-surface-300':
52
          props.message.severity == 'secondary',
53
        'text-orange-700 dark:text-orange-300':
54
          props.message.severity == 'warn',
55
        'text-red-700 dark:text-red-300': props.message.severity == 'error',
56
        'text-surface-0 dark:text-surface-950':
57
          props.message.severity == 'contrast',
58
      },
59
    ],
60
  }),
61
  messageContent: ({ props }) => ({
62
    class: [
63
      'flex p-3',
64
      {
65
        'items-start': props.message.summary,
66
        'items-center': !props.message.summary,
67
      },
68
    ],
69
  }),
70
  messageIcon: ({ props }) => ({
71
    class: [
72
      // Sizing and Spacing
73
      props.message.severity === 'contrast' ||
74
      props.message.severity === 'secondary'
75
        ? 'w-0'
76
        : 'w-[1.125rem] h-[1.125rem] mr-2',
77
      'text-lg leading-[normal]',
78
    ],
79
  }),
80
  messageText: {
81
    class: [
82
      // Font and Text
83
      'text-base leading-[normal]',
84
      'ml-2',
85
      'flex-1',
86
    ],
87
  },
88
  summary: {
89
    class: 'font-medium block',
90
  },
91
  detail: ({ props }) => ({
92
    class: [
93
      'block',
94
      'text-sm',
95
      props.message.severity === 'contrast'
96
        ? 'text-surface-0 dark:text-surface-950'
97
        : 'text-surface-700 dark:text-surface-0',
98
      { 'mt-2': props.message.summary },
99
    ],
100
  }),
101
  closeButton: ({ props }) => ({
102
    class: [
103
      // Flexbox
104
      'flex items-center justify-center',
105

106
      // Size
107
      'w-7 h-7',
108

109
      // Spacing and Misc
110
      'ml-auto  relative',
111

112
      // Shape
113
      'rounded-full',
114

115
      // Colors
116
      'bg-transparent',
117

118
      // Transitions
119
      'transition duration-200 ease-in-out',
120

121
      // States
122
      'hover:bg-surface-0/30 dark:hover:bg-[rgba(255,255,255,0.03)]',
123
      'focus:outline-none focus:outline-offset-0 focus:ring-1',
124
      {
125
        'focus:ring-blue-500 dark:focus:ring-blue-400':
126
          props.severity == 'info',
127
        'focus:ring-green-500 dark:focus:ring-green-400':
128
          props.severity == 'success',
129
        'focus:ring-surface-500 dark:focus:ring-surface-400':
130
          props.severity == 'secondary',
131
        'focus:ring-orange-500 dark:focus:ring-orange-400':
132
          props.severity == 'warn',
133
        'focus:ring-red-500 dark:focus:ring-red-4000':
134
          props.severity == 'error',
135
        'focus:ring-surface-0 dark:focus:ring-surface-950':
136
          props.severity == 'contrast',
137
      },
138

139
      // Misc
140
      'overflow-hidden',
141
    ],
142
  }),
143
  transition: {
144
    enterFromClass: 'opacity-0 translate-y-2/4',
145
    enterActiveClass: 'transition-[transform,opacity] duration-300',
146
    leaveFromClass: 'max-h-[1000px]',
147
    leaveActiveClass:
148
      '!transition-[max-height_.45s_cubic-bezier(0,1,0,1),opacity_.3s,margin-bottom_.3s] overflow-hidden',
149
    leaveToClass: 'max-h-0 opacity-0 mb-0',
150
  },
151
};
152

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.