@policystudio/policy-studio-ui-vue 1.1.90-beta.80 → 1.1.90-beta.81

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.
@@ -1313,17 +1313,6 @@ video {
1313
1313
  --tw-text-opacity: 1;
1314
1314
  color: rgb(81, 94, 106, var(--tw-text-opacity, 1));
1315
1315
  }
1316
- .psui-el-accordion .accordion-fade-enter-active,
1317
- .psui-el-accordion .accordion-fade-leave-active {
1318
- will-change: height, margin-bottom;
1319
- transition: height 0.4s ease, margin-bottom 0.4s ease-in-out;
1320
- overflow: hidden;
1321
- }
1322
- .psui-el-accordion .accordion-fade-enter-from,
1323
- .psui-el-accordion .accordion-fade-leave-to {
1324
- height: 0 !important;
1325
- margin-bottom: 0 !important;
1326
- }
1327
1316
 
1328
1317
  .psui-el-input {
1329
1318
  /* Layout Default */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@policystudio/policy-studio-ui-vue",
3
- "version": "1.1.90-beta.80",
3
+ "version": "1.1.90-beta.81",
4
4
  "description": "Policy Studio UI",
5
5
  "author": "Policy Studio Team",
6
6
  "scripts": {
@@ -94,17 +94,5 @@
94
94
  @apply psui-list-none psui-text-gray-60 psui-mb-5;
95
95
  }
96
96
 
97
- .accordion-fade-enter-active,
98
- .accordion-fade-leave-active {
99
- will-change: height, margin-bottom;
100
- transition: height 0.4s ease, margin-bottom 0.4s ease-in-out;
101
- overflow: hidden;
102
- }
103
-
104
- .accordion-fade-enter-from,
105
- .accordion-fade-leave-to {
106
- height: 0 !important;
107
- margin-bottom: 0 !important;
108
- }
109
97
  }
110
98
  }
@@ -30,10 +30,12 @@
30
30
  </div>
31
31
  <transition
32
32
  name="accordion-fade"
33
- @enter="start"
34
- @after-enter="end"
35
- @before-leave="start"
36
- @after-leave="end"
33
+ :css="false"
34
+ @before-enter="beforeEnter"
35
+ @enter="enter"
36
+ @after-enter="afterEnter"
37
+ @before-leave="beforeLeave"
38
+ @leave="leave"
37
39
  >
38
40
  <div
39
41
  v-if="isOpen"
@@ -128,13 +130,67 @@ const toggle = () => {
128
130
  localOpened.value = !localOpened.value
129
131
  }
130
132
  }
131
- const start = (el) => {
133
+
134
+ const beforeEnter = (el) => {
135
+ el.style.height = '0'
136
+ el.style.opacity = '0'
137
+ el.style.overflow = 'hidden'
138
+ el.style.paddingTop = '0'
139
+ el.style.paddingBottom = '0'
140
+ el.style.marginTop = '0'
141
+ el.style.marginBottom = '0'
142
+ }
143
+
144
+ const enter = (el, done) => {
145
+ void el.offsetHeight
146
+
147
+ el.style.transition = 'all 0.3s ease-in-out'
132
148
  el.style.height = el.scrollHeight + 'px'
133
- el.style.padding = el.srcollPaddingBottom + 'px'
149
+ el.style.opacity = '1'
150
+
151
+ el.style.removeProperty('padding-top')
152
+ el.style.removeProperty('padding-bottom')
153
+ el.style.removeProperty('margin-top')
154
+ el.style.removeProperty('margin-bottom')
155
+
156
+ el.addEventListener('transitionend', done, { once: true })
157
+ }
158
+
159
+ const afterEnter = (el) => {
160
+ el.style.height = 'auto'
161
+ el.style.overflow = 'visible'
162
+ el.style.transition = ''
134
163
  }
135
- const end = (el) => {
136
- el.style.height = ''
137
- el.style.padding = ''
164
+
165
+ const beforeLeave = (el) => {
166
+ if (!el) return
167
+
168
+ el.style.height = el.scrollHeight + 'px'
169
+ el.style.overflow = 'hidden'
170
+
171
+ const style = window.getComputedStyle(el)
172
+ el.style.paddingTop = style.paddingTop
173
+ el.style.paddingBottom = style.paddingBottom
174
+ el.style.marginTop = style.marginTop
175
+ el.style.marginBottom = style.marginBottom
176
+ }
177
+
178
+ const leave = (el, done) => {
179
+ if (!el) return
180
+
181
+ void el.offsetHeight
182
+ el.style.transition = 'all 0.3s ease-in-out'
183
+
184
+ requestAnimationFrame(() => {
185
+ el.style.height = '0'
186
+ el.style.opacity = '0'
187
+ el.style.paddingTop = '0'
188
+ el.style.paddingBottom = '0'
189
+ el.style.marginTop = '0'
190
+ el.style.marginBottom = '0'
191
+ })
192
+
193
+ el.addEventListener('transitionend', done, { once: true })
138
194
  }
139
195
  </script>
140
196