@lukso/web-components 1.4.0 → 1.5.0

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 (50) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/components/index.js +1257 -700
  3. package/dist/components/index.umd.cjs +688 -151
  4. package/dist/components/lukso-button/index.js +3 -3
  5. package/dist/components/lukso-button/index.umd.cjs +10 -10
  6. package/dist/components/lukso-card/index.js +25 -25
  7. package/dist/components/lukso-card/index.umd.cjs +10 -10
  8. package/dist/components/lukso-icon/icons/complete-filled-fade-in.d.ts +3 -0
  9. package/dist/components/lukso-icon/icons/progress-complete.d.ts +3 -0
  10. package/dist/components/lukso-icon/icons/progress-indicator.d.ts +3 -0
  11. package/dist/components/lukso-icon/icons/pulse-dot.d.ts +3 -0
  12. package/dist/components/lukso-icon/index.d.ts +3 -2
  13. package/dist/components/lukso-icon/index.js +1148 -587
  14. package/dist/components/lukso-icon/index.umd.cjs +658 -121
  15. package/dist/components/lukso-input/index.js +92 -92
  16. package/dist/components/lukso-input/index.umd.cjs +12 -12
  17. package/dist/components/lukso-navbar/index.js +108 -108
  18. package/dist/components/lukso-navbar/index.umd.cjs +12 -12
  19. package/dist/components/lukso-profile/index.js +30 -30
  20. package/dist/components/lukso-profile/index.umd.cjs +10 -10
  21. package/dist/components/lukso-sanitize/index.js +70 -70
  22. package/dist/components/lukso-sanitize/index.umd.cjs +12 -12
  23. package/dist/components/lukso-tag/index.d.ts +0 -1
  24. package/dist/components/lukso-tag/index.js +106 -105
  25. package/dist/components/lukso-tag/index.umd.cjs +12 -12
  26. package/dist/components/lukso-test/index.js +411 -411
  27. package/dist/components/lukso-test/index.umd.cjs +25 -25
  28. package/dist/components/lukso-username/index.js +101 -101
  29. package/dist/components/lukso-username/index.umd.cjs +12 -12
  30. package/dist/components/lukso-wizard/index.js +144 -144
  31. package/dist/components/lukso-wizard/index.umd.cjs +13 -13
  32. package/dist/index.js +1257 -700
  33. package/dist/index.umd.cjs +688 -151
  34. package/dist/shared/tailwind-element/index.js +147 -147
  35. package/dist/shared/tailwind-element/index.umd.cjs +8 -8
  36. package/dist/shared/tailwind-element.js +147 -147
  37. package/dist/shared/tailwind-element.umd.cjs +8 -8
  38. package/package.json +2 -2
  39. package/src/components/lukso-button/index.ts +1 -1
  40. package/src/components/lukso-icon/icons/complete-filled-fade-in.ts +34 -0
  41. package/src/components/lukso-icon/icons/progress-complete.ts +289 -0
  42. package/src/components/lukso-icon/icons/progress-indicator.ts +236 -0
  43. package/src/components/lukso-icon/icons/pulse-dot.ts +22 -0
  44. package/src/components/lukso-icon/index.ts +125 -114
  45. package/src/components/lukso-icon/lukso-icon.stories.ts +22 -2
  46. package/src/components/lukso-icon/style.scss +3 -0
  47. package/src/components/lukso-input/index.ts +1 -1
  48. package/src/components/lukso-tag/index.ts +3 -3
  49. package/src/components/lukso-tag/lukso-tag.stories.ts +0 -1
  50. package/tailwind.config.cjs +135 -1
@@ -1,112 +1,117 @@
1
1
  import { html } from 'lit'
2
2
  import { customElement, property } from 'lit/decorators.js'
3
3
 
4
- import { TailwindElement } from '@/shared/tailwind-element'
5
- import { addPhoto } from './icons/add-photo.js'
6
- import { arrowDownLg } from './icons/arrow-down-lg.js'
7
- import { arrowDownSm } from './icons/arrow-down-sm.js'
8
- import { arrowLeftLg } from './icons/arrow-left-lg.js'
9
- import { arrowLeftSm } from './icons/arrow-left-sm.js'
10
- import { arrowRightLg } from './icons/arrow-right-lg.js'
11
- import { arrowRightSm } from './icons/arrow-right-sm.js'
12
- import { arrowUpLg } from './icons/arrow-up-lg.js'
13
- import { arrowUpSm } from './icons/arrow-up-sm.js'
14
- import { barbellOutline } from './icons/barbell-outline.js'
15
- import { bulbOutline } from './icons/bulb-outline.js'
16
- import { camera } from './icons/camera.js'
17
- import { clipboard } from './icons/clipboard.js'
18
- import { clock } from './icons/clock.js'
19
- import { closeLg } from './icons/close-lg.js'
20
- import { closeSm } from './icons/close-sm.js'
21
- import { cloud } from './icons/cloud.js'
22
- import { compassOutline } from './icons/compass-outline.js'
23
- import { completeFilled } from './icons/complete-filled.js'
24
- import { completeOutline } from './icons/complete-outline.js'
25
- import { contractLock } from './icons/contract-lock.js'
26
- import { connect } from './icons/connect.js'
27
- import { connections } from './icons/connections.js'
28
- import { controller } from './icons/controller.js'
29
- import { copy } from './icons/copy.js'
30
- import { crossOutline } from './icons/cross-outline.js'
31
- import { dots } from './icons/dots.js'
32
- import { edit } from './icons/edit.js'
33
- import { error } from './icons/error.js'
34
- import { expand } from './icons/expand.js'
35
- import { extension } from './icons/extension.js'
36
- import { eyeHide } from './icons/eye-hide.js'
37
- import { eyeShow } from './icons/eye-show.js'
38
- import { filter } from './icons/filter.js'
39
- import { fishOutline } from './icons/fish-outline.js'
40
- import { flip } from './icons/flip.js'
41
- import { globe } from './icons/globe.js'
42
- import { hamburger } from './icons/hamburger.js'
43
- import { infinite } from './icons/infinite.js'
44
- import { information } from './icons/information.js'
45
- import { keyOutline } from './icons/key-outline.js'
46
- import { link } from './icons/link.js'
47
- import { link1 } from './icons/link1.js'
48
- import { link2 } from './icons/link2.js'
49
- import { link3 } from './icons/link3.js'
50
- import { link4 } from './icons/link4.js'
51
- import { loading } from './icons/loading.js'
52
- import { location } from './icons/location.js'
53
- import { locked } from './icons/locked.js'
54
- import { login } from './icons/login.js'
55
- import { login2 } from './icons/login-2.js'
56
- import { login3 } from './icons/login-3.js'
57
- import { logoChrome } from './icons/logo-chrome.js'
58
- import { mail } from './icons/mail.js'
59
- import { menu1 } from './icons/menu-1.js'
60
- import { menu2 } from './icons/menu-2.js'
61
- import { migrate } from './icons/migrate.js'
62
- import { minimize } from './icons/minimize.js'
63
- import { network } from './icons/network.js'
64
- import { notifications } from './icons/notifications.js'
65
- import { phonePortraitOutline } from './icons/phone-portrait-outline.js'
66
- import { pin } from './icons/pin.js'
67
- import { playFilled } from './icons/play-filled.js'
68
- import { playOutline } from './icons/play-outline.js'
69
- import { plus } from './icons/plus.js'
70
- import { profileAdd } from './icons/profile-add.js'
71
- import { profileExport } from './icons/profile-export.js'
72
- import { profileImport } from './icons/profile-import.js'
73
- import { profileRecovery } from './icons/profile-recovery.js'
74
- import { profileRecovery2 } from './icons/profile-recovery-2.js'
75
- import { profileRestore } from './icons/profile-restore.js'
76
- import { profile } from './icons/profile.js'
77
- import { qrCode } from './icons/qr-code.js'
78
- import { relayer } from './icons/relayer.js'
79
- import { reload } from './icons/reload.js'
80
- import { returnDown } from './icons/return-down.js'
81
- import { returnLeft } from './icons/return-left.js'
82
- import { returnRight } from './icons/return-right.js'
83
- import { returnUp } from './icons/return-up.js'
84
- import { search } from './icons/search.js'
85
- import { settings } from './icons/settings.js'
86
- import { smartContractDoc } from './icons/smart-contract-doc.js'
87
- import { smartContract } from './icons/smart-contract.js'
88
- import { starFilled } from './icons/star-filled.js'
89
- import { starOutline } from './icons/star-outline.js'
90
- import { stepDot } from './icons/step-dot.js'
91
- import { stepProgress } from './icons/step-progress.js'
92
- import { steps } from './icons/steps.js'
93
- import { tick } from './icons/tick.js'
94
- import { timerOutline } from './icons/timer-outline.js'
95
- import { transactionReceive } from './icons/transaction-receive.js'
96
- import { transactionSend } from './icons/transaction-send.js'
97
- import { transfer } from './icons/transfer.js'
98
- import { trash } from './icons/trash.js'
99
- import { turnDown } from './icons/turn-down.js'
100
- import { turnLeft } from './icons/turn-left.js'
101
- import { turnRight } from './icons/turn-right.js'
102
- import { turnUp } from './icons/turn-up.js'
103
- import { unlocked } from './icons/unlocked.js'
104
- import { walletOutline } from './icons/wallet-outline.js'
105
- import { warningRound } from './icons/warning-round.js'
106
- import { warningTriangle } from './icons/warning-triangle.js'
107
- import { googleColor } from './icons/google-color.js'
108
- import { ethLogo } from './icons/eth-logo.js'
109
- import { lyxLogo } from './icons/lyx-logo.js'
4
+ import { TailwindStyledElement } from '@/shared/tailwind-element'
5
+ import style from './style.scss?inline'
6
+ import { addPhoto } from './icons/add-photo'
7
+ import { arrowDownLg } from './icons/arrow-down-lg'
8
+ import { arrowDownSm } from './icons/arrow-down-sm'
9
+ import { arrowLeftLg } from './icons/arrow-left-lg'
10
+ import { arrowLeftSm } from './icons/arrow-left-sm'
11
+ import { arrowRightLg } from './icons/arrow-right-lg'
12
+ import { arrowRightSm } from './icons/arrow-right-sm'
13
+ import { arrowUpLg } from './icons/arrow-up-lg'
14
+ import { arrowUpSm } from './icons/arrow-up-sm'
15
+ import { barbellOutline } from './icons/barbell-outline'
16
+ import { bulbOutline } from './icons/bulb-outline'
17
+ import { camera } from './icons/camera'
18
+ import { clipboard } from './icons/clipboard'
19
+ import { clock } from './icons/clock'
20
+ import { closeLg } from './icons/close-lg'
21
+ import { closeSm } from './icons/close-sm'
22
+ import { cloud } from './icons/cloud'
23
+ import { compassOutline } from './icons/compass-outline'
24
+ import { completeFilled } from './icons/complete-filled'
25
+ import { completeOutline } from './icons/complete-outline'
26
+ import { contractLock } from './icons/contract-lock'
27
+ import { connect } from './icons/connect'
28
+ import { connections } from './icons/connections'
29
+ import { controller } from './icons/controller'
30
+ import { copy } from './icons/copy'
31
+ import { crossOutline } from './icons/cross-outline'
32
+ import { dots } from './icons/dots'
33
+ import { edit } from './icons/edit'
34
+ import { error } from './icons/error'
35
+ import { expand } from './icons/expand'
36
+ import { extension } from './icons/extension'
37
+ import { eyeHide } from './icons/eye-hide'
38
+ import { eyeShow } from './icons/eye-show'
39
+ import { filter } from './icons/filter'
40
+ import { fishOutline } from './icons/fish-outline'
41
+ import { flip } from './icons/flip'
42
+ import { globe } from './icons/globe'
43
+ import { hamburger } from './icons/hamburger'
44
+ import { infinite } from './icons/infinite'
45
+ import { information } from './icons/information'
46
+ import { keyOutline } from './icons/key-outline'
47
+ import { link } from './icons/link'
48
+ import { link1 } from './icons/link1'
49
+ import { link2 } from './icons/link2'
50
+ import { link3 } from './icons/link3'
51
+ import { link4 } from './icons/link4'
52
+ import { loading } from './icons/loading'
53
+ import { location } from './icons/location'
54
+ import { locked } from './icons/locked'
55
+ import { login } from './icons/login'
56
+ import { login2 } from './icons/login-2'
57
+ import { login3 } from './icons/login-3'
58
+ import { logoChrome } from './icons/logo-chrome'
59
+ import { mail } from './icons/mail'
60
+ import { menu1 } from './icons/menu-1'
61
+ import { menu2 } from './icons/menu-2'
62
+ import { migrate } from './icons/migrate'
63
+ import { minimize } from './icons/minimize'
64
+ import { network } from './icons/network'
65
+ import { notifications } from './icons/notifications'
66
+ import { phonePortraitOutline } from './icons/phone-portrait-outline'
67
+ import { pin } from './icons/pin'
68
+ import { playFilled } from './icons/play-filled'
69
+ import { playOutline } from './icons/play-outline'
70
+ import { plus } from './icons/plus'
71
+ import { profileAdd } from './icons/profile-add'
72
+ import { profileExport } from './icons/profile-export'
73
+ import { profileImport } from './icons/profile-import'
74
+ import { profileRecovery } from './icons/profile-recovery'
75
+ import { profileRecovery2 } from './icons/profile-recovery-2'
76
+ import { profileRestore } from './icons/profile-restore'
77
+ import { profile } from './icons/profile'
78
+ import { qrCode } from './icons/qr-code'
79
+ import { relayer } from './icons/relayer'
80
+ import { reload } from './icons/reload'
81
+ import { returnDown } from './icons/return-down'
82
+ import { returnLeft } from './icons/return-left'
83
+ import { returnRight } from './icons/return-right'
84
+ import { returnUp } from './icons/return-up'
85
+ import { search } from './icons/search'
86
+ import { settings } from './icons/settings'
87
+ import { smartContractDoc } from './icons/smart-contract-doc'
88
+ import { smartContract } from './icons/smart-contract'
89
+ import { starFilled } from './icons/star-filled'
90
+ import { starOutline } from './icons/star-outline'
91
+ import { stepDot } from './icons/step-dot'
92
+ import { stepProgress } from './icons/step-progress'
93
+ import { steps } from './icons/steps'
94
+ import { tick } from './icons/tick'
95
+ import { timerOutline } from './icons/timer-outline'
96
+ import { transactionReceive } from './icons/transaction-receive'
97
+ import { transactionSend } from './icons/transaction-send'
98
+ import { transfer } from './icons/transfer'
99
+ import { trash } from './icons/trash'
100
+ import { turnDown } from './icons/turn-down'
101
+ import { turnLeft } from './icons/turn-left'
102
+ import { turnRight } from './icons/turn-right'
103
+ import { turnUp } from './icons/turn-up'
104
+ import { unlocked } from './icons/unlocked'
105
+ import { walletOutline } from './icons/wallet-outline'
106
+ import { warningRound } from './icons/warning-round'
107
+ import { warningTriangle } from './icons/warning-triangle'
108
+ import { googleColor } from './icons/google-color'
109
+ import { ethLogo } from './icons/eth-logo'
110
+ import { lyxLogo } from './icons/lyx-logo'
111
+ import { progressIndicator } from './icons/progress-indicator'
112
+ import { pulseDot } from './icons/pulse-dot'
113
+ import { progressComplete } from './icons/progress-complete'
114
+ import { completeFilledFadeIn } from './icons/complete-filled-fade-in'
110
115
 
111
116
  export type IconOptions = {
112
117
  width: number
@@ -230,10 +235,14 @@ const iconMap = {
230
235
  'google-color': googleColor,
231
236
  'eth-logo': ethLogo,
232
237
  'lyx-logo': lyxLogo,
238
+ 'progress-indicator': progressIndicator,
239
+ 'pulse-dot': pulseDot,
240
+ 'progress-complete': progressComplete,
241
+ 'complete-filled-fade-in': completeFilledFadeIn,
233
242
  }
234
243
 
235
244
  @customElement('lukso-icon')
236
- export class LuksoIcon extends TailwindElement {
245
+ export class LuksoIcon extends TailwindStyledElement(style) {
237
246
  @property({ type: String })
238
247
  name = ''
239
248
 
@@ -282,13 +291,15 @@ export class LuksoIcon extends TailwindElement {
282
291
  console.warn(`Size ${this.size} not found`)
283
292
  }
284
293
 
285
- return html`${icon({
286
- width: size.width,
287
- height: size.height,
288
- color: this.color,
289
- strokeWidth: size.strokeWidth,
290
- secondaryColor: this.secondaryColor,
291
- })}`
294
+ return html`
295
+ ${icon({
296
+ width: size.width,
297
+ height: size.height,
298
+ color: this.color,
299
+ strokeWidth: size.strokeWidth,
300
+ secondaryColor: this.secondaryColor,
301
+ })}
302
+ `
292
303
  }
293
304
  }
294
305
 
@@ -21,16 +21,27 @@ export default {
21
21
  secondaryColor: {
22
22
  control: { type: 'text' },
23
23
  },
24
+ animation: {
25
+ control: { type: 'select' },
26
+ options: [
27
+ 'animate-spin',
28
+ 'animate-ping',
29
+ 'animate-pulse',
30
+ 'animate-bounce',
31
+ 'animate-pulse-resize',
32
+ ],
33
+ },
24
34
  },
25
35
  args: {
26
36
  name: 'profile-recovery',
27
37
  size: 'medium',
28
38
  color: 'neutral-20',
29
39
  secondaryColor: '',
40
+ animation: undefined,
30
41
  },
31
42
  parameters: {
32
43
  controls: {
33
- exclude: ['sizes', 'secondary-color'],
44
+ exclude: ['sizes', 'secondary-color', 'styles'],
34
45
  },
35
46
  design: {
36
47
  type: 'figma',
@@ -39,12 +50,13 @@ export default {
39
50
  },
40
51
  }
41
52
 
42
- const Template = ({ name, size, color, secondaryColor }) =>
53
+ const Template = ({ name, size, color, secondaryColor, animation }) =>
43
54
  html`<lukso-icon
44
55
  name=${name}
45
56
  size=${size}
46
57
  color=${color}
47
58
  secondary-color=${secondaryColor}
59
+ class=${animation}
48
60
  ></lukso-icon>`
49
61
 
50
62
  /** By default icon comes in `medium` size of `24x24` pixels with `neutral-20` color. */
@@ -94,3 +106,11 @@ export const ColoredIcon = Template.bind({})
94
106
  ColoredIcon.args = {
95
107
  name: 'google-color',
96
108
  }
109
+
110
+ /** You can animate any icon by applying `animate-[name]` property. Some icons come with build in animation. Check more details in `Animations` and `Icons` section. */
111
+ export const AnimatedIcon = Template.bind({})
112
+ AnimatedIcon.args = {
113
+ name: 'step-progress',
114
+ secondaryColor: 'neutral-100',
115
+ animation: 'animate-spin',
116
+ }
@@ -0,0 +1,3 @@
1
+ :host {
2
+ display: inline-flex;
3
+ }
@@ -47,7 +47,7 @@ export class LuksoInput extends TailwindElement {
47
47
  private hasHocus = false
48
48
 
49
49
  private defaultInputStyles = `bg-neutral-100 text-neutral-20 paragraph-16-regular px-4 py-3
50
- border border-solid border-neutral-90 h-[48px] placeholder:neutral-70
50
+ border border-solid border-neutral-90 h-[48px] placeholder:text-neutral-70
51
51
  outline-none transition transition-all duration-250 appearance-none`
52
52
 
53
53
  private defaultUnitStyles = `paragraph-12-regular text-neutral-60 flex px-3.5 items-center relative
@@ -21,10 +21,9 @@ export class LuksoTag extends TailwindElement {
21
21
  @property({ type: String, attribute: 'text-color' })
22
22
  textColor = ''
23
23
 
24
- private defaultStyles = `rounded-lg inline-flex items-center justify-center border border-neutral-20 text-neutral-20`
24
+ private defaultStyles = `inline-flex items-center justify-center border border-neutral-20 text-neutral-20`
25
25
  private smallStyles = `paragraph-12-medium h-[28px]`
26
26
  private largeStyles = `paragraph-14-medium h-[34px]`
27
- private roundedStyles = `rounded-[56px]`
28
27
 
29
28
  private padding() {
30
29
  if (this.size === 'small' && this.isRounded) {
@@ -45,7 +44,8 @@ export class LuksoTag extends TailwindElement {
45
44
  class=${customClassMap({
46
45
  [this.defaultStyles]: true,
47
46
  [this.padding()]: true,
48
- [this.roundedStyles]: this.isRounded,
47
+ ['rounded-[56px]']: this.isRounded,
48
+ ['rounded-lg']: !this.isRounded,
49
49
  [this.smallStyles]: this.size === 'small',
50
50
  [this.largeStyles]: this.size === 'large',
51
51
  })}
@@ -47,7 +47,6 @@ export default {
47
47
  'defaultStyles',
48
48
  'smallStyles',
49
49
  'largeStyles',
50
- 'roundedStyles',
51
50
  'is-rounded',
52
51
  'background-color',
53
52
  'text-color',
@@ -1,5 +1,65 @@
1
+ const plugin = require('tailwindcss/plugin')
2
+
1
3
  const { colorPalette } = require('./tools/color-palette.cjs')
2
4
 
5
+ /**
6
+ * Add animation delay utilities. Example: .animation-delay-1000
7
+ */
8
+ const animationDelayPlugin = plugin(function ({ addUtilities, theme, e }) {
9
+ const values = theme('animationDelay')
10
+ var utilities = Object.entries(values).map(([key, value]) => {
11
+ return {
12
+ [`.${e(`animation-delay-${key}`)}`]: { animationDelay: `${value}` },
13
+ }
14
+ })
15
+ addUtilities(utilities)
16
+ })
17
+
18
+ /**
19
+ * Add animation iteration utilities. Example: .animation-iteration-infinite
20
+ */
21
+ const animationIterationPlugin = plugin(function ({ addUtilities, theme, e }) {
22
+ const values = theme('animationIteration')
23
+ var utilities = Object.entries(values).map(([key, value]) => {
24
+ return {
25
+ [`.${e(`animation-iteration-${key}`)}`]: {
26
+ animationIterationCount: `${value}`,
27
+ },
28
+ }
29
+ })
30
+ addUtilities(utilities)
31
+ })
32
+
33
+ /**
34
+ * Add animation duration utilities. Example: .animation-duration-1000
35
+ */
36
+ const animationDuration = plugin(function ({ addUtilities, theme, e }) {
37
+ const values = theme('animationDuration')
38
+ var utilities = Object.entries(values).map(([key, value]) => {
39
+ return {
40
+ [`.${e(`animation-duration-${key}`)}`]: {
41
+ animationDuration: `${value}`,
42
+ },
43
+ }
44
+ })
45
+ addUtilities(utilities)
46
+ })
47
+
48
+ /**
49
+ * Add animation fill mode utilities. Example: .animation-fill-forwards
50
+ */
51
+ const animationFill = plugin(function ({ addUtilities, theme, e }) {
52
+ const values = theme('animationFill')
53
+ var utilities = Object.entries(values).map(([key, value]) => {
54
+ return {
55
+ [`.${e(`animation-fill-${key}`)}`]: {
56
+ animationFillMode: `${value}`,
57
+ },
58
+ }
59
+ })
60
+ addUtilities(utilities)
61
+ })
62
+
3
63
  module.exports = {
4
64
  content: ['**/*.{ts,html,css,scss,mdx}'],
5
65
  theme: {
@@ -110,7 +170,81 @@ module.exports = {
110
170
  height: {
111
171
  78: '78px',
112
172
  },
173
+ animation: {
174
+ 'pulse-resize': 'pulse-resize 1s ease-in-out infinite',
175
+ 'resize-in': 'resize-in 0.5s ease-in-out',
176
+ 'fade-in': 'fade-in 0.5s ease-in-out',
177
+ },
178
+ keyframes: {
179
+ 'pulse-resize': {
180
+ '0%, 100%': { transform: 'scale(1)' },
181
+ '50%': { transform: 'scale(0.7)' },
182
+ },
183
+ 'resize-in': {
184
+ '0%': { transform: 'scale(0.5)' },
185
+ '100%': { transform: 'scale(1)' },
186
+ },
187
+ 'fade-in': {
188
+ '0%': { opacity: '0' },
189
+ '100%': { opacity: '1' },
190
+ },
191
+ },
192
+ animationDelay: {
193
+ none: '0s',
194
+ 75: '75ms',
195
+ 100: '100ms',
196
+ 150: '150ms',
197
+ 200: '200ms',
198
+ 300: '300ms',
199
+ 400: '400ms',
200
+ 500: '500ms',
201
+ 600: '600ms',
202
+ 700: '700ms',
203
+ 800: '800ms',
204
+ 900: '900ms',
205
+ 1000: '1000ms',
206
+ 1500: '1500ms',
207
+ 2000: '2000ms',
208
+ 3000: '3000ms',
209
+ 5000: '5000ms',
210
+ },
211
+ animationIteration: {
212
+ infinite: 'infinite',
213
+ 1: '1',
214
+ 2: '2',
215
+ 3: '3',
216
+ },
217
+ animationDuration: {
218
+ 25: '25ms',
219
+ 50: '50ms',
220
+ 75: '75ms',
221
+ 100: '100ms',
222
+ 150: '150ms',
223
+ 200: '200ms',
224
+ 300: '300ms',
225
+ 400: '400ms',
226
+ 500: '500ms',
227
+ 600: '600ms',
228
+ 700: '700ms',
229
+ 800: '800ms',
230
+ 900: '900ms',
231
+ 1000: '1000ms',
232
+ 1500: '1500ms',
233
+ 2000: '2000ms',
234
+ 3000: '3000ms',
235
+ },
236
+ animationFill: {
237
+ none: 'none',
238
+ forwards: 'forwards',
239
+ backwards: 'backwards',
240
+ both: 'both',
241
+ },
113
242
  },
114
243
  },
115
- plugins: [],
244
+ plugins: [
245
+ animationDelayPlugin,
246
+ animationIterationPlugin,
247
+ animationDuration,
248
+ animationFill,
249
+ ],
116
250
  }