├── .editorconfig ├── .github ├── CODEOWNERS └── workflows │ └── stale.yml ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── LICENSE ├── README.md ├── header.png ├── package.json ├── packages ├── playground │ ├── nuxt-project │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── app.vue │ │ ├── assets │ │ │ ├── dog.json │ │ │ ├── logo.png │ │ │ └── lottie.json │ │ ├── components │ │ │ └── HelloWorld.vue │ │ ├── nuxt.config.ts │ │ ├── package.json │ │ ├── plugins │ │ │ └── Vue3Lottie.client.ts │ │ ├── public │ │ │ └── favicon.ico │ │ ├── server │ │ │ └── tsconfig.json │ │ └── tsconfig.json │ └── vite-project │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public │ │ └── favicon.ico │ │ ├── src │ │ ├── App.vue │ │ ├── assets │ │ │ └── logo.png │ │ ├── components.d.ts │ │ ├── components │ │ │ └── HelloWorld.vue │ │ ├── env.d.ts │ │ └── main.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts └── vue3-spline │ ├── README copy.md │ ├── package.json │ ├── src │ ├── index.ts │ ├── types.ts │ └── vue3-spline.vue │ ├── tsconfig.json │ ├── vite.config.ts │ └── vue-shim.d.ts ├── pnpm-lock.yaml ├── pnpm-workspace.yaml └── renovate.json /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{js,jsx,ts,tsx,vue}] 2 | indent_style = space 3 | indent_size = 2 4 | trim_trailing_whitespace = true 5 | insert_final_newline = true 6 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @pixelastronauts 2 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | # This workflow warns and then closes issues and PRs that have had no activity for a specified amount of time. 2 | # 3 | # You can adjust the behavior by modifying this file. 4 | # For more information, see: 5 | # https://github.com/actions/stale 6 | name: Mark stale issues and pull requests 7 | 8 | on: 9 | schedule: 10 | - cron: '32 19 * * *' 11 | 12 | jobs: 13 | stale: 14 | 15 | runs-on: ubuntu-latest 16 | permissions: 17 | issues: write 18 | pull-requests: write 19 | 20 | steps: 21 | - uses: actions/stale@v8 22 | with: 23 | repo-token: ${{ secrets.GITHUB_TOKEN }} 24 | days-before-issue-stale: 30 25 | days-before-issue-close: 14 26 | stale-pr-message: 'Stale pull request' 27 | stale-issue-label: 'no-issue-activity' 28 | stale-pr-label: 'no-pr-activity' 29 | stale-issue-message: "This issue is stale because it has been open for 30 days with no activity." 30 | close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." 31 | days-before-pr-stale: -1 32 | days-before-pr-close: -1 33 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw* 22 | 23 | docs/package-lock.json 24 | docs/.vitepress/dist 25 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixelastronauts/vue3-spline/d3ad12ddce5d5c4c09db3ade7cdc919d1b51cdf1/.npmrc -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | docus/content/0.index.md 2 | docus/content/3.examples.md -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true, 4 | "trailingComma": "all" 5 | } 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Max Baan 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vue 3 Spline 2 | 3 | Add Spline animations to your Vue 3 or Nuxt 3 application. 4 | 5 |

6 | 7 | 8 | 9 |

10 | 11 | `vue3-spline` was created to facilitate developers in integrating Spline animations into their Vue 3 applications. During my quest for an uncomplicated method to incorporate Spline animations into my Vue project, I discovered a noticeable absence of up-to-date solutions. `vue3-spline` serves as a Vue wrapper around the `spline-runtime` library, enriched with several additional features. 12 | 13 | ## Installation and Usage 14 | 15 | ### Vue 3 16 | 17 | - You can install `vue3-spline` over `yarn`, `npm` or `pnpm. `spline-runtime`is a dependency of`vue3-spline`and should be automatically installed when you install`vue3-spline`. 18 | 19 | If you are using npm: 20 | 21 | ```shell 22 | npm install vue3-spline@latest --save 23 | ``` 24 | 25 | If you are using yarn: 26 | 27 | ```shell 28 | yarn add vue3-spline@latest 29 | ``` 30 | 31 | If you are using pnpm: 32 | 33 | ```shell 34 | pnpm install vue3-spline@latest 35 | ``` 36 | 37 | - Register the component in your Vue 3 application. 38 | 39 | The most common use case is to register the component globally. 40 | 41 | ```js 42 | // main.js 43 | import { createApp } from 'vue' 44 | import Vue3Spline from 'vue3-spline' 45 | 46 | createApp(App).use(Vue3Spline).mount('#app') 47 | ``` 48 | 49 | If you get an error with TS, try `use(Vue3Spline, { name: "Vue3Spline" })` 50 | 51 | To define global components for [Volar type-checking](https://github.com/johnsoncodehk/volar/tree/master/extensions/vscode-vue-language-features#usage) you will need to add: 52 | 53 | ```ts 54 | // components.d.ts 55 | declare module '@vue/runtime-core' { 56 | export interface GlobalComponents { 57 | SplineAnimation: typeof import('vue3-spline')['Vue3Spline'] 58 | } 59 | } 60 | export {} 61 | ``` 62 | 63 | If needed rename component to use: 64 | 65 | ```ts 66 | app.use(Vue3Spline, { name: 'SplineAnimation' }) // use in template 67 | ``` 68 | 69 | - `name` string (default: 'Vue3Spline') - set custom component name 70 | 71 | Alternatively you can also import the component locally. 72 | 73 | ```js 74 | import { Vue3Spline } from 'vue3-spline' 75 | 76 | export default { 77 | components: { 78 | Vue3Spline, 79 | }, 80 | } 81 | ``` 82 | 83 | You can then use the component in your template 84 | 85 | ```vue 86 | 93 | 94 | 103 | ``` 104 | 105 | ### Nuxt 3 106 | 107 | This is still experimental. Will be updated soon. 108 | 109 | - You can install `vue3-spline` over `yarn` or `npm`. `spline-runtime` is a dependency of `vue3-spline` and should be automatically installed when you install `vue3-spline`. 110 | 111 | If you are using npm: 112 | 113 | ```shell 114 | npm install vue3-spline@latest --save 115 | ``` 116 | 117 | If you are using yarn: 118 | 119 | ```shell 120 | yarn add vue3-spline@latest 121 | ``` 122 | 123 | - Create a folder called **`plugins`** at the root of your project. 124 | - Create a file named **`Vue3Spline.client.ts`** inside the _plugins_ directory. 125 | - Add the following code to the **`Vue3Spline.client.ts`** file. 126 | 127 | ```ts 128 | import Vue3Spline from 'vue3-spline' 129 | 130 | export default defineNuxtPlugin((nuxtApp) => { 131 | nuxtApp.vueApp.use(Vue3Spline) 132 | }) 133 | ``` 134 | 135 | If you get an error with TS, try `use(Vue3Spline, { name: "Vue3Spline" })` 136 | 137 | This should register as a global component that you can call anywhere in your app under the tag. 138 | 139 | I would recommend using a `` parent tag to ensure that the animation only loads in on the client side. 140 | 141 | ```vue 142 | 143 | 148 | 149 | ``` 150 | 151 | ## Contribute to vue3-spline 152 | 153 | 👋 Hey there! If you've made it this far, first off, thank you for using vue3-spline. This plugin was crafted with love, dedication, and a vision to simplify the integration of Spline animations into Vue 3 projects. However, the journey doesn't end here! 154 | 155 | The world of open source thrives on the contributions of passionate developers like you. Whether you've spotted a bug, thought of a new feature, or just want to improve the existing code - your contributions are not just welcomed, but earnestly encouraged. 156 | -------------------------------------------------------------------------------- /header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixelastronauts/vue3-spline/d3ad12ddce5d5c4c09db3ade7cdc919d1b51cdf1/header.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue3-spline-monorepo", 3 | "private": "true", 4 | "workspaces": [ 5 | "packages/*" 6 | ], 7 | "scripts": { 8 | "build": "bun build --filter vue3-spline" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/playground/nuxt-project/.gitignore: -------------------------------------------------------------------------------- 1 | # Nuxt dev/build outputs 2 | .output 3 | .data 4 | .nuxt 5 | .nitro 6 | .cache 7 | dist 8 | 9 | # Node dependencies 10 | node_modules 11 | 12 | # Logs 13 | logs 14 | *.log 15 | 16 | # Misc 17 | .DS_Store 18 | .fleet 19 | .idea 20 | 21 | # Local env files 22 | .env 23 | .env.* 24 | !.env.example 25 | -------------------------------------------------------------------------------- /packages/playground/nuxt-project/.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true -------------------------------------------------------------------------------- /packages/playground/nuxt-project/app.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 18 | 19 | 31 | -------------------------------------------------------------------------------- /packages/playground/nuxt-project/assets/dog.json: -------------------------------------------------------------------------------- 1 | {"v":"5.7.8","fr":30,"ip":0,"op":60,"w":1000,"h":1000,"nm":"music","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 3","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[500,500,0],"ix":2,"l":2},"a":{"a":0,"k":[50,50,0],"ix":1,"l":2},"s":{"a":0,"k":[800,800,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 12","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.75],"y":[1]},"o":{"x":[0.25],"y":[0]},"t":7,"s":[100]},{"t":12,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.75,"y":1},"o":{"x":0.25,"y":0},"t":-15,"s":[25.654,39.365,0],"to":[-13.776,0.483,0],"ti":[-0.102,5.041,0]},{"t":15,"s":[5.143,11.948,0]}],"ix":2,"l":2},"a":{"a":0,"k":[17.438,18.198,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.75,0.75,0.75],"y":[1,1,1]},"o":{"x":[0.25,0.25,0.25],"y":[0,0,0]},"t":-15,"s":[0,0,100]},{"t":-5,"s":[20.718,20.718,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.561,-6.045],[-4.728,-10.858],[13.993,-15.887],[14.16,-11.074]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0.009,0.008],[2.652,-2.183],[0.049,-0.073],[-3.373,-0.997],[-0.611,0.021],[0.106,3.059],[0,0],[0,0],[0,0],[2.864,-2.283],[0.053,-0.077],[-3.38,-0.999],[-0.612,0.021],[0.106,3.06]],"o":[[0,0],[0,0],[-0.009,-0.008],[-2.042,-1.905],[-0.069,0.056],[-2.731,3.979],[0.557,0.164],[3.059,-0.106],[0,0],[0,0],[0,0],[-1.893,-1.793],[-0.073,0.058],[-2.751,3.984],[0.557,0.164],[3.059,-0.106],[0,0]],"v":[[15.523,-17.957],[-6.371,-12.074],[-5.665,8.355],[-5.691,8.329],[-13.591,8.41],[-13.772,8.608],[-11.047,17.714],[-9.287,17.936],[-3.93,12.196],[-4.504,-4.402],[14.216,-9.431],[14.663,3.477],[6.763,3.496],[6.569,3.704],[9.28,12.83],[11.041,13.053],[16.397,7.311]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[16.753,18.206],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":-15,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Layer 11","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.75],"y":[1]},"o":{"x":[0.25],"y":[0]},"t":68,"s":[100]},{"t":73,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.75,"y":1},"o":{"x":0.25,"y":0},"t":46,"s":[25.654,39.365,0],"to":[-13.776,0.483,0],"ti":[-0.102,5.041,0]},{"t":76,"s":[5.143,11.948,0]}],"ix":2,"l":2},"a":{"a":0,"k":[17.438,18.198,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.75,0.75,0.75],"y":[1,1,1]},"o":{"x":[0.25,0.25,0.25],"y":[0,0,0]},"t":46,"s":[0,0,100]},{"t":56,"s":[20.718,20.718,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-4.561,-6.045],[-4.728,-10.858],[13.993,-15.887],[14.16,-11.074]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0.009,0.008],[2.652,-2.183],[0.049,-0.073],[-3.373,-0.997],[-0.611,0.021],[0.106,3.059],[0,0],[0,0],[0,0],[2.864,-2.283],[0.053,-0.077],[-3.38,-0.999],[-0.612,0.021],[0.106,3.06]],"o":[[0,0],[0,0],[-0.009,-0.008],[-2.042,-1.905],[-0.069,0.056],[-2.731,3.979],[0.557,0.164],[3.059,-0.106],[0,0],[0,0],[0,0],[-1.893,-1.793],[-0.073,0.058],[-2.751,3.984],[0.557,0.164],[3.059,-0.106],[0,0]],"v":[[15.523,-17.957],[-6.371,-12.074],[-5.665,8.355],[-5.691,8.329],[-13.591,8.41],[-13.772,8.608],[-11.047,17.714],[-9.287,17.936],[-3.93,12.196],[-4.504,-4.402],[14.216,-9.431],[14.663,3.477],[6.763,3.496],[6.569,3.704],[9.28,12.83],[11.041,13.053],[16.397,7.311]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[16.753,18.206],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":46,"op":60,"st":46,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Layer 13","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.75],"y":[1]},"o":{"x":[0.25],"y":[0]},"t":55,"s":[100]},{"t":60,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.75,"y":1},"o":{"x":0.25,"y":0},"t":33,"s":[25.654,39.365,0],"to":[-13.776,0.483,0],"ti":[-0.102,5.041,0]},{"t":63,"s":[1.897,18.923,0]}],"ix":2,"l":2},"a":{"a":0,"k":[7.164,9.689,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.75,0.75,0.75],"y":[1,1,1]},"o":{"x":[0.25,0.25,0.25],"y":[0,0,0]},"t":33,"s":[0,0,100]},{"t":43,"s":[27.624,27.624,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.101,0.942],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.997,0.106],[0.207,-1.949],[-0.598,-0.737],[-0.944,-0.1],[-0.39,0.093],[-0.417,0.337]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.572,-0.734],[-1.948,-0.207],[-0.1,0.943],[0.596,0.739],[0.411,0.044],[0.507,-0.122],[0.736,-0.595]],"v":[[0.292,6.252],[0.292,6.252],[1.941,-7.932],[6.447,-5.863],[6.874,-6.794],[1.087,-9.451],[-0.441,3.691],[-2.867,2.339],[-6.774,5.499],[-6.003,8.106],[-3.615,9.406],[-2.407,9.329],[-1.006,8.636]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976000019148,0.651000019148,0.176000004189,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.124,9.701],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":33,"op":60,"st":33,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Layer 9","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.75],"y":[1]},"o":{"x":[0.25],"y":[0]},"t":22,"s":[100]},{"t":27,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.75,"y":1},"o":{"x":0.25,"y":0},"t":0,"s":[25.654,39.365,0],"to":[-13.776,0.483,0],"ti":[-0.102,5.041,0]},{"t":30,"s":[1.897,18.923,0]}],"ix":2,"l":2},"a":{"a":0,"k":[7.164,9.689,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.75,0.75,0.75],"y":[1,1,1]},"o":{"x":[0.25,0.25,0.25],"y":[0,0,0]},"t":0,"s":[0,0,100]},{"t":10,"s":[27.624,27.624,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.101,0.942],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.997,0.106],[0.207,-1.949],[-0.598,-0.737],[-0.944,-0.1],[-0.39,0.093],[-0.417,0.337]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.572,-0.734],[-1.948,-0.207],[-0.1,0.943],[0.596,0.739],[0.411,0.044],[0.507,-0.122],[0.736,-0.595]],"v":[[0.292,6.252],[0.292,6.252],[1.941,-7.932],[6.447,-5.863],[6.874,-6.794],[1.087,-9.451],[-0.441,3.691],[-2.867,2.339],[-6.774,5.499],[-6.003,8.106],[-3.615,9.406],[-2.407,9.329],[-1.006,8.636]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976000019148,0.651000019148,0.176000004189,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[7.124,9.701],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Layer 10","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.75],"y":[1]},"o":{"x":[0.25],"y":[0]},"t":38,"s":[100]},{"t":43,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.75],"y":[1]},"o":{"x":[0.25],"y":[0]},"t":26,"s":[-54]},{"t":46,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.75,"y":1},"o":{"x":0.25,"y":0},"t":16,"s":[25.654,39.365,0],"to":[-13.776,0.483,0],"ti":[-0.102,5.041,0]},{"t":46,"s":[-4.387,6.975,0]}],"ix":2,"l":2},"a":{"a":0,"k":[13.19,9.416,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.75,0.75,0.75],"y":[1,1,1]},"o":{"x":[0.25,0.25,0.25],"y":[0,0,0]},"t":16,"s":[0,0,100]},{"t":26,"s":[27.624,27.624,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[11.39,-4.147],[9.807,-1.836],[-0.692,-5.94],[0.891,-8.251]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.002,0.008],[0.712,0.487],[1.006,-1.469],[-0.817,-1.077],[-0.293,-0.201],[-1.005,1.469],[0,0],[0,0],[0,0],[0.742,0.507],[1.005,-1.469],[-0.817,-1.077],[-0.294,-0.201],[-1.006,1.469],[0,0],[0,0]],"o":[[-0.001,-0.008],[-0.159,-0.847],[-1.468,-1.006],[-0.805,1.175],[0.204,0.269],[1.469,1.005],[0,0],[0,0],[0,0],[-0.147,-0.822],[-1.469,-1.006],[-0.805,1.175],[0.203,0.269],[1.469,1.005],[0,0],[0,0],[0,0]],"v":[[-6.176,0.422],[-6.179,0.398],[-7.528,-1.671],[-12.015,-0.832],[-11.923,2.944],[-11.175,3.656],[-6.688,2.816],[-1.231,-5.151],[9.266,-1.048],[5.023,5.15],[3.673,3.055],[-0.814,3.894],[-0.723,7.67],[0.024,8.382],[4.512,7.542],[12.82,-4.587],[0.541,-9.387]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.238999998803,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.069,9.637],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":16,"op":60,"st":16,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Headphone 1","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[49.087,58.349,0],"ix":2,"l":2},"a":{"a":0,"k":[73.093,66.01,0],"ix":1,"l":2},"s":{"a":0,"k":[27.624,27.624,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.66,"y":1},"o":{"x":0.34,"y":0},"t":0,"s":[{"i":[[0,0],[0,0],[17.265,-3.079]],"o":[[0,0],[3.079,17.264],[0,0]],"v":[[6.18,-46.654],[11.304,12.069],[-14.382,48.904]],"c":false}]},{"i":{"x":0.66,"y":1},"o":{"x":0.34,"y":0},"t":30,"s":[{"i":[[0,0],[0,0],[17.265,-3.079]],"o":[[0,0],[3.079,17.264],[0,0]],"v":[[-1.32,-48.904],[11.304,12.069],[-14.382,48.904]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[0,0],[17.265,-3.079]],"o":[[0,0],[3.079,17.264],[0,0]],"v":[[6.18,-46.654],[11.304,12.069],[-14.382,48.904]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.04,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[53.817,51.504],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[11.619,-45.748],[1.464,20.878],[3.299,37.563]],"o":[[-24.046,-13.242],[-10.588,37.939],[0,0],[0,0]],"v":[[70.493,-38.771],[11.768,14.073],[-33.659,4.092],[-70.493,-21.593]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.04,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[73.093,96.315],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"body","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[54.775,67.866,0],"ix":2,"l":2},"a":{"a":0,"k":[116.185,64.167,0],"ix":1,"l":2},"s":{"a":0,"k":[27.624,27.624,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.954,-1.251],[0,0],[-4.016,1.309],[0,0]],"o":[[0,0],[-4.376,1.315],[0,0],[4.498,-1.529]],"v":[[23.334,-19.367],[-26.028,-2.25],[-27.37,19.309],[26.889,-2.25]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.957000014361,0.238999998803,0.361000001197,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[66.925,36.734],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.459,1.139],[1.413,-3.328],[0.172,-1.75],[-0.563,-1.635],[-1.116,-1.365],[-1.426,-1.065],[-3.331,-1.065],[0,0],[0.17,-0.532],[0.477,0.063],[3.456,0.104],[3.424,-0.376],[3.031,-1.549],[0.997,-1.381],[0.115,-1.751],[-0.952,1.543],[-1.527,0.947],[-3.497,0.559],[-3.533,-0.005],[-3.545,-0.426],[0,0],[3.038,2.349],[1.178,1.527],[0.64,1.826],[-0.231,1.928],[-0.844,1.692],[-1.19,1.43]],"o":[[-2.564,2.645],[-0.703,1.658],[-0.108,1.755],[0.667,1.616],[1.111,1.361],[2.807,2.15],[0,0],[0.532,0.17],[-0.151,0.475],[-3.399,-0.452],[-3.46,-0.104],[-3.408,0.409],[-1.509,0.766],[-0.998,1.375],[-0.098,-1.746],[0.931,-1.553],[3.107,-1.862],[3.512,-0.571],[3.543,0.018],[0,0],[-3.694,-1.179],[-1.502,-1.186],[-1.189,-1.528],[-0.561,-1.888],[0.304,-1.915],[0.869,-1.68],[1.198,-1.425]],"v":[[8.947,-22.273],[2.734,-13.312],[1.383,-8.171],[2.06,-3.044],[4.656,1.502],[8.453,5.18],[17.893,10.063],[17.921,10.072],[18.576,11.343],[17.479,12.039],[7.135,11.26],[-3.216,11.634],[-13.081,14.27],[-16.983,17.45],[-18.647,22.273],[-17.422,17.16],[-13.563,13.425],[-3.43,10.088],[7.166,9.359],[17.758,10.035],[17.343,12.009],[7.258,6.708],[3.234,2.597],[0.542,-2.524],[0.039,-8.319],[1.817,-13.745],[4.976,-18.385]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[164.656,105.812],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.071,-1.146],[-1.168,2.062],[-1.957,1.331],[-4.598,0.601],[-4.498,0.058],[-2.199,0.41],[-1.025,0.433],[-0.719,0.907],[1.003,-0.61],[1.123,-0.33],[2.306,-0.193],[2.255,-0.133],[0,0],[1.118,-0.11],[3.833,-2.174],[1.264,-1.82],[0.302,-0.469],[0.19,-0.526]],"o":[[-0.271,-2.289],[1.16,-2.096],[3.99,-2.653],[4.64,-0.639],[2.258,-0.054],[1.108,-0.176],[1.016,-0.442],[-0.536,1.027],[-1.006,0.614],[-2.255,0.663],[-2.3,0.219],[0,0],[-1.128,0.046],[-4.436,0.54],[-1.87,1.12],[-0.312,0.452],[-0.222,0.505],[-0.408,1.043]],"v":[[-22.925,10.052],[-21.428,3.297],[-16.51,-1.802],[-3.23,-6.227],[10.567,-6.614],[17.288,-7.157],[20.492,-8.085],[23.196,-10.052],[20.756,-7.587],[17.524,-6.187],[10.642,-5.03],[3.757,-4.715],[0.375,-4.568],[-2.977,-4.213],[-15.667,-0.468],[-20.592,3.831],[-21.486,5.23],[-22.175,6.752]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[65.685,116.848],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.546,3.037],[40.378,-7.402],[0.028,10.123],[0.001,0.073],[0,0],[-8.972,-4.298],[-0.811,-6.06],[0,0]],"o":[[-13.369,-74.325],[-9.956,1.827],[0,-0.073],[0,0],[-3.63,37.854],[-11.078,4.219],[0,0],[5.788,0]],"v":[[96.267,39.68],[-21.919,-34.254],[-41.114,-50.173],[-41.115,-50.392],[-93.182,-37.855],[-76.407,34.788],[-90.58,50.392],[90.507,50.392]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976000019148,0.651000019148,0.176000004189,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[133.342,77.693],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-2.529,-8.644],[6.537,0.344],[5.187,-3.043],[0,0],[0,0],[0,0]],"o":[[0,0],[1.838,6.282],[-18.235,-0.961],[-9.529,5.597],[0,0],[0,0],[0,0]],"v":[[15.944,-22.538],[19.273,-5.494],[9.721,6.679],[-19.741,6.373],[-26.574,22.538],[29.27,22.538],[29.27,-17.803]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[29.52,105.546],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"eye 2","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[14.995,32.554,0],"ix":2,"l":2},"a":{"a":0,"k":[9.625,12.837,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.66,"y":1},"o":{"x":0.34,"y":0},"t":0,"s":[{"i":[[-0.059,-2.213],[-1.326,0.035],[0.059,2.213],[1.326,-0.035]],"o":[[0.059,2.213],[1.326,-0.035],[-0.058,-2.213],[-1.325,0.035]],"v":[[-2.4,0.063],[0.107,4.008],[2.401,-0.063],[-0.107,-4.008]],"c":true}]},{"i":{"x":0.66,"y":1},"o":{"x":0.34,"y":0},"t":30,"s":[{"i":[[0.179,-2.387],[-1.728,-0.162],[-0.18,2.387],[1.728,0.162]],"o":[[-0.179,2.387],[1.728,0.162],[0.18,-2.387],[-1.727,-0.162]],"v":[[-3.129,-0.293],[-0.325,4.323],[3.129,0.293],[0.325,-4.323]],"c":true}]},{"t":60,"s":[{"i":[[-0.059,-2.213],[-1.326,0.035],[0.059,2.213],[1.326,-0.035]],"o":[[0.059,2.213],[1.326,-0.035],[-0.058,-2.213],[-1.325,0.035]],"v":[[-2.4,0.063],[0.107,4.008],[2.401,-0.063],[-0.107,-4.008]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.398,15.729],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.66,"y":1},"o":{"x":0.34,"y":0},"t":0,"s":[{"i":[[0,0],[7.929,-4.986]],"o":[[0,0],[0,0]],"v":[[7.574,0.278],[-4.79,2.178]],"c":false}]},{"i":{"x":0.66,"y":1},"o":{"x":0.34,"y":0},"t":30,"s":[{"i":[[0,0],[7.008,-2.623]],"o":[[0,0],[0,0]],"v":[[5.123,1.222],[-5.123,1.312]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[7.929,-4.986]],"o":[[0,0],[0,0]],"v":[[7.574,0.278],[-4.79,2.178]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.801,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[9.625,5.814],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"eye 1","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[40.752,33.521,0],"ix":2,"l":2},"a":{"a":0,"k":[10.809,14.064,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.66,"y":1},"o":{"x":0.34,"y":0},"t":0,"s":[{"i":[[0.292,-2.481],[-1.486,-0.175],[-0.292,2.481],[1.486,0.175]],"o":[[-0.292,2.481],[1.486,0.175],[0.292,-2.481],[-1.487,-0.175]],"v":[[-2.691,-0.317],[-0.528,4.492],[2.692,0.317],[0.528,-4.492]],"c":true}]},{"i":{"x":0.66,"y":1},"o":{"x":0.34,"y":0},"t":30,"s":[{"i":[[0.337,-2.453],[-1.717,-0.173],[-0.337,2.453],[1.717,0.173]],"o":[[-0.337,2.453],[1.717,0.173],[0.337,-2.453],[-1.718,-0.173]],"v":[[-3.11,-0.313],[-0.611,4.441],[3.111,0.313],[0.611,-4.441]],"c":true}]},{"t":60,"s":[{"i":[[0.292,-2.481],[-1.486,-0.175],[-0.292,2.481],[1.486,0.175]],"o":[[-0.292,2.481],[1.486,0.175],[0.292,-2.481],[-1.487,-0.175]],"v":[[-2.691,-0.317],[-0.528,4.492],[2.692,0.317],[0.528,-4.492]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.16,17.276],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.66,"y":1},"o":{"x":0.34,"y":0},"t":0,"s":[{"i":[[0,0],[9.729,-0.814]],"o":[[0,0],[0,0]],"v":[[7.254,2.829],[-5.719,-0.476]],"c":false}]},{"i":{"x":0.66,"y":1},"o":{"x":0.34,"y":0},"t":30,"s":[{"i":[[0,0],[8.25,-1.797]],"o":[[0,0],[0,0]],"v":[[5.729,1.676],[-5.729,0.121]],"c":false}]},{"t":60,"s":[{"i":[[0,0],[9.729,-0.814]],"o":[[0,0],[0,0]],"v":[[7.254,2.829],[-5.719,-0.476]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.032,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[10.809,6.756],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"headphone upper","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[-3.229]},{"t":60,"s":[0]}],"ix":10},"p":{"a":0,"k":[72.765,24.593,0],"ix":2,"l":2},"a":{"a":0,"k":[54.592,66.234,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.447,-43.327]],"o":[[17.562,-3.132],[0,0]],"v":[[-20.914,-23.718],[20.914,26.849]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.957000014361,0.238999998803,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5.201,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[33.917,39.852],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.786,-5.709],[3.488,-1.286],[1.872,5.995],[-3.575,0.999]],"o":[[1.779,5.713],[-3.482,1.284],[-1.877,-5.993],[3.58,-1.003]],"v":[[6.449,-2.113],[3.53,10.454],[-6.35,2.03],[-3.086,-10.736]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.461,68.521],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.171,-10.12],[6.238,-2.533],[3.471,11.102],[-6.523,1.584]],"o":[[3.148,10.132],[-6.213,2.529],[-3.484,-11.096],[6.537,-1.607]],"v":[[12.219,-3.884],[7.188,18.703],[-11.882,3.931],[-4.773,-19.625]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.917999985639,0.917999985639,0.917999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[53.88,68.658],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.171,-10.12],[6.238,-2.533],[-26.596,5.134]],"o":[[3.148,10.132],[-26.343,11.769],[6.537,-1.607]],"v":[[20.22,-8.504],[15.189,14.083],[3.228,-24.245]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[45.879,73.278],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"nose","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.61],"y":[1]},"o":{"x":[0.39],"y":[0]},"t":0,"s":[3]},{"i":{"x":[0.61],"y":[1]},"o":{"x":[0.39],"y":[0]},"t":30,"s":[-3]},{"t":60,"s":[3]}],"ix":10},"p":{"a":0,"k":[58.145,55.731,0],"ix":2,"l":2},"a":{"a":0,"k":[81.299,18.194,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-5.084,-0.978]],"o":[[0,0],[0,0]],"v":[[-2.222,-2.82],[2.542,2.82]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.813,"ix":5},"lc":2,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[61.463,36.006],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.084,-1.004],[-4.154,0.663],[-1.028,0.229],[0,0],[-0.49,0.196],[0,0],[0,0],[-1.846,1.022],[0,0],[0,0],[-0.275,-0.418],[0.418,-0.274],[0.007,-0.004],[0,0],[1.952,-0.929],[0,0],[0,0],[0.52,-0.153],[0,0],[1.07,-0.177],[4.185,1.153],[3.102,3.055],[-0.069,0.07],[-0.07,-0.066]],"o":[[3.097,2.882],[4.112,1.008],[1.036,-0.201],[0,0],[0.501,-0.162],[0,0],[0,0],[1.881,-0.964],[0,0],[0,0],[0.418,-0.275],[0.275,0.419],[-0.006,0.005],[0,0],[-1.923,0.996],[0,0],[0,0],[-0.508,0.187],[0,0],[-1.064,0.206],[-4.293,0.561],[-4.166,-1.156],[-0.07,-0.069],[0.068,-0.069],[0,0]],"v":[[-23.952,-1.616],[-12.796,4.142],[-0.233,4.493],[2.873,3.897],[5.905,2.982],[7.412,2.504],[8.874,1.891],[11.796,0.668],[17.385,-2.327],[22.694,-5.814],[22.755,-5.854],[24.01,-5.595],[23.75,-4.34],[23.728,-4.325],[18.205,-0.917],[12.395,1.988],[9.359,3.159],[7.843,3.743],[6.279,4.193],[3.138,5.043],[-0.076,5.568],[-12.976,4.841],[-24.215,-1.373],[-24.216,-1.625],[-23.968,-1.631]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.006,42.462],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.452,-3.273],[-6.671,9.761],[3.848,0.424]],"o":[[0,0],[2.847,-4.658],[-7.692,-0.846]],"v":[[-5.645,8.137],[6.25,0.373],[0.944,-9.288]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.347,25.016],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[12.467,-19.715],[-1.596,-6.873],[-18.909,3.696],[-7.312,3.88],[0,0],[0,0],[0,0]],"o":[[-2.981,4.715],[5.91,25.469],[7.579,-1.482],[11.257,-5.973],[0,0],[0,0],[0,0]],"v":[[-31.638,-15.278],[-34.229,2.004],[23.502,15.994],[46.574,8.735],[67.323,-9.502],[61.463,-21.202],[24.38,-37.583]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976000019148,0.651000019148,0.176000004189,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[38.625,37.833],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"shadow","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[59.006,86.008,0],"ix":2,"l":2},"a":{"a":0,"k":[62.103,17.367,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-20.411,-8.258],[33.703,-10.656],[0,0]],"o":[[0,0],[0,0],[4.148,-0.382]],"v":[[21.207,-17.117],[-21.424,21.036],[-19.976,-13.114]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[62.103,17.367],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"head","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.61],"y":[1]},"o":{"x":[0.39],"y":[0]},"t":0,"s":[3]},{"i":{"x":[0.61],"y":[1]},"o":{"x":[0.39],"y":[0]},"t":30,"s":[-3]},{"t":60,"s":[3]}],"ix":10},"p":{"a":0,"k":[40.014,63.918,0],"ix":2,"l":2},"a":{"a":0,"k":[59.654,118.518,0],"ix":1,"l":2},"s":{"a":0,"k":[27.624,27.624,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-18.551,2.041],[0,0],[0,0],[-0.716,11.514],[0,0],[25.996,-6.032],[-4.165,-22.527]],"o":[[0,0],[0,0],[0,0],[0,0],[-5.179,-22.318],[-25.996,6.033],[4.183,22.629]],"v":[[-5.552,11.242],[-7.957,54.998],[-1.681,61.102],[44.411,29.996],[34.776,-29.811],[-12.121,-61.596],[-40.246,-12.482]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976000019148,0.651000019148,0.176000004189,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[44.661,67.878],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"headphone Lower","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30,"s":[3.07]},{"t":60,"s":[0]}],"ix":10},"p":{"a":0,"k":[9.334,36.178,0],"ix":2,"l":2},"a":{"a":0,"k":[26.241,74.687,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.929,-8.765],[5.497,-1.044],[-22.51,-0.167]],"o":[[0.908,8.771],[-23.391,5.281],[5.59,-0.241]],"v":[[16.437,-3.508],[8.643,14.073],[5.165,-19.113]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.917999985639,0.917999985639,0.917999985639,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[25.939,76.412],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-17.563,3.132]],"o":[[-13.308,-37.007],[0,0]],"v":[[-4.231,30.954],[17.54,-30.954]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.957000014361,0.238999998803,0.361000001197,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5.201,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[30.542,43.957],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"upper ear","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.61],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[-11.347]},{"i":{"x":[0.61],"y":[1]},"o":{"x":[0.39],"y":[0]},"t":30,"s":[4.094]},{"t":60,"s":[-11.347]}],"ix":10},"p":{"a":0,"k":[61.21,16.323,0],"ix":2,"l":2},"a":{"a":0,"k":[9.968,71.08,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.768,-2.508],[-1.422,1.62],[16.541,-18.713]],"o":[[1.234,1.768],[47.317,-53.953],[-15.591,17.643]],"v":[[-22.216,36.343],[-16.988,36.627],[-14.738,-19.534]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[30.579,38.497],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"headphone 2","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[70.441,60.013,0],"ix":2,"l":2},"a":{"a":0,"k":[9.407,17.089,0],"ix":1,"l":2},"s":{"a":0,"k":[27.624,27.624,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[4.387,-19.745],[0,0]],"v":[[4.257,14.489],[-8.644,-14.489]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.04,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[11.244,17.089],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"head wire","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[28.112,52.334,0],"ix":2,"l":2},"a":{"a":0,"k":[5.957,31.007,0],"ix":1,"l":2},"s":{"a":0,"k":[27.624,27.624,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[5.437,30.486],[-5.437,-30.486]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1.04,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[5.957,31.007],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"lower ear","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.61],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[1.505]},{"i":{"x":[0.61],"y":[1]},"o":{"x":[0.39],"y":[0]},"t":30,"s":[4.094]},{"t":60,"s":[1.505]}],"ix":10},"p":{"a":0,"k":[21.669,16.374,0],"ix":2,"l":2},"a":{"a":0,"k":[30.01,70.044,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.921,-0.937],[-0.159,2.15],[1.931,-24.9]],"o":[[2.05,0.667],[5.267,-71.569],[-1.817,23.475]],"v":[[9.948,36.912],[14.293,33.989],[-17.743,-12.194]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[19.81,37.83],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"tail","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.78],"y":[1]},"o":{"x":[0.22],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.78],"y":[1]},"o":{"x":[0.22],"y":[0]},"t":15,"s":[6]},{"i":{"x":[0.78],"y":[1]},"o":{"x":[0.22],"y":[0]},"t":30,"s":[0]},{"i":{"x":[0.78],"y":[1]},"o":{"x":[0.22],"y":[0]},"t":45,"s":[6]},{"t":60,"s":[0]}],"ix":10},"p":{"a":0,"k":[83.835,77.676,0],"ix":2,"l":2},"a":{"a":0,"k":[3.413,122.679,0],"ix":1,"l":2},"s":{"a":0,"k":[27.624,27.624,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[14.111,-31.964],[0.843,-0.349],[0,0],[0.164,1.596],[-8.196,4.456],[-5.36,25.759],[7.61,5.228]],"o":[[-13.84,31.35],[-0.013,0.005],[-5.192,1.075],[-0.177,-1.757],[13.918,-7.57],[3.958,-18.992],[0,0]],"v":[[19.356,1.685],[-25.865,43.254],[-25.885,43.262],[-33.29,42.578],[-23.926,37.025],[13.686,-10.885],[3.363,-44.336]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976000019148,0.651000019148,0.176000004189,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[33.717,80.93],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[46.015,-11.464],[1.416,-0.295],[0,0],[0.163,1.597],[-8.195,4.456],[-5.361,25.759],[7.611,5.229],[0.84,2.613],[-22.218,-28]],"o":[[-1.917,0.477],[-0.014,0.005],[-5.191,1.075],[-0.178,-1.756],[13.918,-7.571],[3.958,-18.992],[-7.123,-4.893],[-1.578,-4.878],[20.991,26.456]],"v":[[-30.109,60.266],[-35.098,61.426],[-35.119,61.434],[-42.523,60.749],[-33.16,55.197],[4.453,7.287],[-5.871,-26.165],[-21.779,-35.061],[21.71,-34.508]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.769000004787,0.463000009574,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[42.951,62.758],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0}],"markers":[]} -------------------------------------------------------------------------------- /packages/playground/nuxt-project/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixelastronauts/vue3-spline/d3ad12ddce5d5c4c09db3ade7cdc919d1b51cdf1/packages/playground/nuxt-project/assets/logo.png -------------------------------------------------------------------------------- /packages/playground/nuxt-project/assets/lottie.json: -------------------------------------------------------------------------------- 1 | { 2 | "v": "5.5.7", 3 | "fr": 30, 4 | "ip": 0, 5 | "op": 68, 6 | "w": 500, 7 | "h": 500, 8 | "nm": "Comp 1", 9 | "ddd": 0, 10 | "assets": [], 11 | "layers": [ 12 | { 13 | "ddd": 0, 14 | "ind": 1, 15 | "ty": 4, 16 | "nm": "Layer 2/hi Outlines", 17 | "sr": 1, 18 | "ks": { 19 | "o": { 20 | "a": 0, 21 | "k": 100, 22 | "ix": 11 23 | }, 24 | "r": { 25 | "a": 1, 26 | "k": [ 27 | { 28 | "i": { 29 | "x": [ 30 | 0 31 | ], 32 | "y": [ 33 | 1 34 | ] 35 | }, 36 | "o": { 37 | "x": [ 38 | 0.333 39 | ], 40 | "y": [ 41 | 0 42 | ] 43 | }, 44 | "t": 0, 45 | "s": [ 46 | 0 47 | ] 48 | }, 49 | { 50 | "t": 32, 51 | "s": [ 52 | 2025 53 | ] 54 | } 55 | ], 56 | "ix": 10 57 | }, 58 | "p": { 59 | "a": 0, 60 | "k": [ 61 | 250, 62 | 250, 63 | 0 64 | ], 65 | "ix": 2 66 | }, 67 | "a": { 68 | "a": 0, 69 | "k": [ 70 | 250, 71 | 250, 72 | 0 73 | ], 74 | "ix": 1 75 | }, 76 | "s": { 77 | "a": 0, 78 | "k": [ 79 | 100, 80 | 100, 81 | 100 82 | ], 83 | "ix": 6 84 | } 85 | }, 86 | "ao": 0, 87 | "shapes": [ 88 | { 89 | "ty": "gr", 90 | "it": [ 91 | { 92 | "ind": 0, 93 | "ty": "sh", 94 | "ix": 1, 95 | "ks": { 96 | "a": 0, 97 | "k": { 98 | "i": [ 99 | [ 100 | 4.694, 101 | 0 102 | ], 103 | [ 104 | 0, 105 | 4.694 106 | ], 107 | [ 108 | -46.913, 109 | 0 110 | ], 111 | [ 112 | 0, 113 | -4.694 114 | ], 115 | [ 116 | 4.694, 117 | 0 118 | ], 119 | [ 120 | 0, 121 | -37.539 122 | ] 123 | ], 124 | "o": [ 125 | [ 126 | -4.694, 127 | 0 128 | ], 129 | [ 130 | 0, 131 | -46.913 132 | ], 133 | [ 134 | 4.694, 135 | 0 136 | ], 137 | [ 138 | 0, 139 | 4.695 140 | ], 141 | [ 142 | -37.539, 143 | 0 144 | ], 145 | [ 146 | 0, 147 | 4.694 148 | ] 149 | ], 150 | "v": [ 151 | [ 152 | -38.29, 153 | 46.789 154 | ], 155 | [ 156 | -46.79, 157 | 38.289 158 | ], 159 | [ 160 | 38.289, 161 | -46.789 162 | ], 163 | [ 164 | 46.789, 165 | -38.289 166 | ], 167 | [ 168 | 38.289, 169 | -29.789 170 | ], 171 | [ 172 | -29.79, 173 | 38.289 174 | ] 175 | ], 176 | "c": true 177 | }, 178 | "ix": 2 179 | }, 180 | "nm": "Path 1", 181 | "mn": "ADBE Vector Shape - Group", 182 | "hd": false 183 | }, 184 | { 185 | "ty": "fl", 186 | "c": { 187 | "a": 0, 188 | "k": [ 189 | 0, 190 | 0, 191 | 0, 192 | 1 193 | ], 194 | "ix": 4 195 | }, 196 | "o": { 197 | "a": 0, 198 | "k": 100, 199 | "ix": 5 200 | }, 201 | "r": 1, 202 | "bm": 0, 203 | "nm": "Fill 1", 204 | "mn": "ADBE Vector Graphic - Fill", 205 | "hd": false 206 | }, 207 | { 208 | "ty": "tr", 209 | "p": { 210 | "a": 0, 211 | "k": [ 212 | 211.711, 213 | 211.711 214 | ], 215 | "ix": 2 216 | }, 217 | "a": { 218 | "a": 0, 219 | "k": [ 220 | 0, 221 | 0 222 | ], 223 | "ix": 1 224 | }, 225 | "s": { 226 | "a": 0, 227 | "k": [ 228 | 100, 229 | 100 230 | ], 231 | "ix": 3 232 | }, 233 | "r": { 234 | "a": 0, 235 | "k": 0, 236 | "ix": 6 237 | }, 238 | "o": { 239 | "a": 0, 240 | "k": 100, 241 | "ix": 7 242 | }, 243 | "sk": { 244 | "a": 0, 245 | "k": 0, 246 | "ix": 4 247 | }, 248 | "sa": { 249 | "a": 0, 250 | "k": 0, 251 | "ix": 5 252 | }, 253 | "nm": "Transform" 254 | } 255 | ], 256 | "nm": "Group 1", 257 | "np": 2, 258 | "cix": 2, 259 | "bm": 0, 260 | "ix": 1, 261 | "mn": "ADBE Vector Group", 262 | "hd": false 263 | } 264 | ], 265 | "ip": 0, 266 | "op": 1500, 267 | "st": 0, 268 | "bm": 0 269 | }, 270 | { 271 | "ddd": 0, 272 | "ind": 2, 273 | "ty": 4, 274 | "nm": "Layer 3/hi Outlines 2", 275 | "sr": 1, 276 | "ks": { 277 | "o": { 278 | "a": 0, 279 | "k": 100, 280 | "ix": 11 281 | }, 282 | "r": { 283 | "a": 0, 284 | "k": 0, 285 | "ix": 10 286 | }, 287 | "p": { 288 | "a": 1, 289 | "k": [ 290 | { 291 | "i": { 292 | "x": 0.833, 293 | "y": 0.833 294 | }, 295 | "o": { 296 | "x": 0.167, 297 | "y": 0.167 298 | }, 299 | "t": 36, 300 | "s": [ 301 | 250, 302 | 250, 303 | 0 304 | ], 305 | "to": [ 306 | 4.167, 307 | 0, 308 | 0 309 | ], 310 | "ti": [ 311 | -4.167, 312 | 0, 313 | 0 314 | ] 315 | }, 316 | { 317 | "t": 40, 318 | "s": [ 319 | 275, 320 | 250, 321 | 0 322 | ] 323 | } 324 | ], 325 | "ix": 2 326 | }, 327 | "a": { 328 | "a": 0, 329 | "k": [ 330 | 250, 331 | 250, 332 | 0 333 | ], 334 | "ix": 1 335 | }, 336 | "s": { 337 | "a": 1, 338 | "k": [ 339 | { 340 | "i": { 341 | "x": [ 342 | 0.833, 343 | 0.833, 344 | 0.833 345 | ], 346 | "y": [ 347 | 0.833, 348 | 0.833, 349 | 0.833 350 | ] 351 | }, 352 | "o": { 353 | "x": [ 354 | 0.167, 355 | 0.167, 356 | 0.167 357 | ], 358 | "y": [ 359 | 0.167, 360 | 0.167, 361 | 0.167 362 | ] 363 | }, 364 | "t": 32, 365 | "s": [ 366 | 100, 367 | 100, 368 | 100 369 | ] 370 | }, 371 | { 372 | "i": { 373 | "x": [ 374 | 0.833, 375 | 0.833, 376 | 0.833 377 | ], 378 | "y": [ 379 | 0.833, 380 | 0.833, 381 | 0.833 382 | ] 383 | }, 384 | "o": { 385 | "x": [ 386 | 0.167, 387 | 0.167, 388 | 0.167 389 | ], 390 | "y": [ 391 | 0.167, 392 | 0.167, 393 | 0.167 394 | ] 395 | }, 396 | "t": 36, 397 | "s": [ 398 | 50, 399 | 50, 400 | 100 401 | ] 402 | }, 403 | { 404 | "i": { 405 | "x": [ 406 | 0.833, 407 | 0.833, 408 | 0.833 409 | ], 410 | "y": [ 411 | 0.833, 412 | 0.833, 413 | 0.833 414 | ] 415 | }, 416 | "o": { 417 | "x": [ 418 | 0.167, 419 | 0.167, 420 | 0.167 421 | ], 422 | "y": [ 423 | 0.167, 424 | 0.167, 425 | 0.167 426 | ] 427 | }, 428 | "t": 40, 429 | "s": [ 430 | 32, 431 | 32, 432 | 100 433 | ] 434 | }, 435 | { 436 | "i": { 437 | "x": [ 438 | 0.833, 439 | 0.833, 440 | 0.833 441 | ], 442 | "y": [ 443 | 0.833, 444 | 0.833, 445 | 0.833 446 | ] 447 | }, 448 | "o": { 449 | "x": [ 450 | 0.167, 451 | 0.167, 452 | 0.167 453 | ], 454 | "y": [ 455 | 0.167, 456 | 0.167, 457 | 0.167 458 | ] 459 | }, 460 | "t": 42, 461 | "s": [ 462 | 32, 463 | 0, 464 | 100 465 | ] 466 | }, 467 | { 468 | "t": 47, 469 | "s": [ 470 | 32, 471 | 32, 472 | 100 473 | ] 474 | } 475 | ], 476 | "ix": 6 477 | } 478 | }, 479 | "ao": 0, 480 | "shapes": [ 481 | { 482 | "ty": "gr", 483 | "it": [ 484 | { 485 | "ind": 0, 486 | "ty": "sh", 487 | "ix": 1, 488 | "ks": { 489 | "a": 0, 490 | "k": { 491 | "i": [ 492 | [ 493 | 0, 494 | -28.976 495 | ], 496 | [ 497 | 28.976, 498 | 0 499 | ], 500 | [ 501 | 0, 502 | 28.976 503 | ], 504 | [ 505 | -28.975, 506 | 0 507 | ] 508 | ], 509 | "o": [ 510 | [ 511 | 0, 512 | 28.976 513 | ], 514 | [ 515 | -28.975, 516 | 0 517 | ], 518 | [ 519 | 0, 520 | -28.976 521 | ], 522 | [ 523 | 28.976, 524 | 0 525 | ] 526 | ], 527 | "v": [ 528 | [ 529 | 52.465, 530 | -0.001 531 | ], 532 | [ 533 | -0.001, 534 | 52.465 535 | ], 536 | [ 537 | -52.464, 538 | -0.001 539 | ], 540 | [ 541 | -0.001, 542 | -52.465 543 | ] 544 | ], 545 | "c": true 546 | }, 547 | "ix": 2 548 | }, 549 | "nm": "Path 1", 550 | "mn": "ADBE Vector Shape - Group", 551 | "hd": false 552 | }, 553 | { 554 | "ty": "fl", 555 | "c": { 556 | "a": 0, 557 | "k": [ 558 | 0, 559 | 0, 560 | 0, 561 | 1 562 | ], 563 | "ix": 4 564 | }, 565 | "o": { 566 | "a": 0, 567 | "k": 100, 568 | "ix": 5 569 | }, 570 | "r": 1, 571 | "bm": 0, 572 | "nm": "Fill 1", 573 | "mn": "ADBE Vector Graphic - Fill", 574 | "hd": false 575 | }, 576 | { 577 | "ty": "tr", 578 | "p": { 579 | "a": 0, 580 | "k": [ 581 | 250, 582 | 250.001 583 | ], 584 | "ix": 2 585 | }, 586 | "a": { 587 | "a": 0, 588 | "k": [ 589 | 0, 590 | 0 591 | ], 592 | "ix": 1 593 | }, 594 | "s": { 595 | "a": 0, 596 | "k": [ 597 | 100, 598 | 100 599 | ], 600 | "ix": 3 601 | }, 602 | "r": { 603 | "a": 0, 604 | "k": 0, 605 | "ix": 6 606 | }, 607 | "o": { 608 | "a": 0, 609 | "k": 100, 610 | "ix": 7 611 | }, 612 | "sk": { 613 | "a": 0, 614 | "k": 0, 615 | "ix": 4 616 | }, 617 | "sa": { 618 | "a": 0, 619 | "k": 0, 620 | "ix": 5 621 | }, 622 | "nm": "Transform" 623 | } 624 | ], 625 | "nm": "Group 1", 626 | "np": 2, 627 | "cix": 2, 628 | "bm": 0, 629 | "ix": 1, 630 | "mn": "ADBE Vector Group", 631 | "hd": false 632 | } 633 | ], 634 | "ip": 0, 635 | "op": 1500, 636 | "st": 0, 637 | "bm": 0 638 | }, 639 | { 640 | "ddd": 0, 641 | "ind": 3, 642 | "ty": 4, 643 | "nm": "Layer 3/hi Outlines", 644 | "sr": 1, 645 | "ks": { 646 | "o": { 647 | "a": 0, 648 | "k": 100, 649 | "ix": 11 650 | }, 651 | "r": { 652 | "a": 0, 653 | "k": 0, 654 | "ix": 10 655 | }, 656 | "p": { 657 | "a": 1, 658 | "k": [ 659 | { 660 | "i": { 661 | "x": 0.833, 662 | "y": 0.833 663 | }, 664 | "o": { 665 | "x": 0.167, 666 | "y": 0.167 667 | }, 668 | "t": 36, 669 | "s": [ 670 | 250, 671 | 250, 672 | 0 673 | ], 674 | "to": [ 675 | -4.167, 676 | 0, 677 | 0 678 | ], 679 | "ti": [ 680 | 4.167, 681 | 0, 682 | 0 683 | ] 684 | }, 685 | { 686 | "t": 40, 687 | "s": [ 688 | 225, 689 | 250, 690 | 0 691 | ] 692 | } 693 | ], 694 | "ix": 2 695 | }, 696 | "a": { 697 | "a": 0, 698 | "k": [ 699 | 250, 700 | 250, 701 | 0 702 | ], 703 | "ix": 1 704 | }, 705 | "s": { 706 | "a": 0, 707 | "k": [ 708 | 32, 709 | 32, 710 | 100 711 | ], 712 | "ix": 6 713 | } 714 | }, 715 | "ao": 0, 716 | "shapes": [ 717 | { 718 | "ty": "gr", 719 | "it": [ 720 | { 721 | "ind": 0, 722 | "ty": "sh", 723 | "ix": 1, 724 | "ks": { 725 | "a": 0, 726 | "k": { 727 | "i": [ 728 | [ 729 | 0, 730 | -28.976 731 | ], 732 | [ 733 | 28.976, 734 | 0 735 | ], 736 | [ 737 | 0, 738 | 28.976 739 | ], 740 | [ 741 | -28.975, 742 | 0 743 | ] 744 | ], 745 | "o": [ 746 | [ 747 | 0, 748 | 28.976 749 | ], 750 | [ 751 | -28.975, 752 | 0 753 | ], 754 | [ 755 | 0, 756 | -28.976 757 | ], 758 | [ 759 | 28.976, 760 | 0 761 | ] 762 | ], 763 | "v": [ 764 | [ 765 | 52.465, 766 | -0.001 767 | ], 768 | [ 769 | -0.001, 770 | 52.465 771 | ], 772 | [ 773 | -52.464, 774 | -0.001 775 | ], 776 | [ 777 | -0.001, 778 | -52.465 779 | ] 780 | ], 781 | "c": true 782 | }, 783 | "ix": 2 784 | }, 785 | "nm": "Path 1", 786 | "mn": "ADBE Vector Shape - Group", 787 | "hd": false 788 | }, 789 | { 790 | "ty": "fl", 791 | "c": { 792 | "a": 0, 793 | "k": [ 794 | 0, 795 | 0, 796 | 0, 797 | 1 798 | ], 799 | "ix": 4 800 | }, 801 | "o": { 802 | "a": 0, 803 | "k": 100, 804 | "ix": 5 805 | }, 806 | "r": 1, 807 | "bm": 0, 808 | "nm": "Fill 1", 809 | "mn": "ADBE Vector Graphic - Fill", 810 | "hd": false 811 | }, 812 | { 813 | "ty": "tr", 814 | "p": { 815 | "a": 0, 816 | "k": [ 817 | 250, 818 | 250.001 819 | ], 820 | "ix": 2 821 | }, 822 | "a": { 823 | "a": 0, 824 | "k": [ 825 | 0, 826 | 0 827 | ], 828 | "ix": 1 829 | }, 830 | "s": { 831 | "a": 0, 832 | "k": [ 833 | 100, 834 | 100 835 | ], 836 | "ix": 3 837 | }, 838 | "r": { 839 | "a": 0, 840 | "k": 0, 841 | "ix": 6 842 | }, 843 | "o": { 844 | "a": 0, 845 | "k": 100, 846 | "ix": 7 847 | }, 848 | "sk": { 849 | "a": 0, 850 | "k": 0, 851 | "ix": 4 852 | }, 853 | "sa": { 854 | "a": 0, 855 | "k": 0, 856 | "ix": 5 857 | }, 858 | "nm": "Transform" 859 | } 860 | ], 861 | "nm": "Group 1", 862 | "np": 2, 863 | "cix": 2, 864 | "bm": 0, 865 | "ix": 1, 866 | "mn": "ADBE Vector Group", 867 | "hd": false 868 | } 869 | ], 870 | "ip": 0, 871 | "op": 1500, 872 | "st": 0, 873 | "bm": 0 874 | } 875 | ], 876 | "markers": [] 877 | } -------------------------------------------------------------------------------- /packages/playground/nuxt-project/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 23 | 24 | 41 | -------------------------------------------------------------------------------- /packages/playground/nuxt-project/nuxt.config.ts: -------------------------------------------------------------------------------- 1 | // https://nuxt.com/docs/api/configuration/nuxt-config 2 | export default defineNuxtConfig({ 3 | devtools: { enabled: true } 4 | }) 5 | -------------------------------------------------------------------------------- /packages/playground/nuxt-project/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nuxt-app", 3 | "private": true, 4 | "type": "module", 5 | "scripts": { 6 | "build": "nuxt build", 7 | "dev": "nuxt dev", 8 | "generate": "nuxt generate", 9 | "preview": "nuxt preview", 10 | "postinstall": "nuxt prepare" 11 | }, 12 | "dependencies": { 13 | "vue3-spline": "workspace:*", 14 | "@nuxt/kit": "npm:@nuxt/kit-edge@latest" 15 | }, 16 | "devDependencies": { 17 | "@nuxt/devtools": "latest", 18 | "nuxt": "^3.7.4", 19 | "vue": "^3.3.4", 20 | "vue-router": "^4.2.5" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/playground/nuxt-project/plugins/Vue3Lottie.client.ts: -------------------------------------------------------------------------------- 1 | import Vue3Spline from 'vue3-spline' 2 | 3 | export default defineNuxtPlugin((nuxtApp) => { 4 | nuxtApp.vueApp.use(Vue3Spline, { name: 'Vue3Spline' }) 5 | }) 6 | -------------------------------------------------------------------------------- /packages/playground/nuxt-project/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixelastronauts/vue3-spline/d3ad12ddce5d5c4c09db3ade7cdc919d1b51cdf1/packages/playground/nuxt-project/public/favicon.ico -------------------------------------------------------------------------------- /packages/playground/nuxt-project/server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../.nuxt/tsconfig.server.json" 3 | } 4 | -------------------------------------------------------------------------------- /packages/playground/nuxt-project/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // https://nuxt.com/docs/guide/concepts/typescript 3 | "extends": "./.nuxt/tsconfig.json" 4 | } 5 | -------------------------------------------------------------------------------- /packages/playground/vite-project/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /packages/playground/vite-project/README.md: -------------------------------------------------------------------------------- 1 | # Vue 3 + Typescript + Vite 2 | 3 | This template should help get you started developing with Vue 3 and Typescript in Vite. The template uses Vue 3 ` 12 | 13 | 14 | -------------------------------------------------------------------------------- /packages/playground/vite-project/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vite-project", 3 | "private": true, 4 | "version": "0.0.0", 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vue-tsc --noEmit && vite build", 8 | "preview": "vite preview" 9 | }, 10 | "dependencies": { 11 | "vue": "3.3.6", 12 | "vue3-spline": "workspace:*" 13 | }, 14 | "devDependencies": { 15 | "@vitejs/plugin-vue": "2.3.4", 16 | "typescript": "5.1.3", 17 | "vite": "2.9.16", 18 | "vue-tsc": "0.40.13" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /packages/playground/vite-project/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixelastronauts/vue3-spline/d3ad12ddce5d5c4c09db3ade7cdc919d1b51cdf1/packages/playground/vite-project/public/favicon.ico -------------------------------------------------------------------------------- /packages/playground/vite-project/src/App.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 16 | 17 | 29 | -------------------------------------------------------------------------------- /packages/playground/vite-project/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixelastronauts/vue3-spline/d3ad12ddce5d5c4c09db3ade7cdc919d1b51cdf1/packages/playground/vite-project/src/assets/logo.png -------------------------------------------------------------------------------- /packages/playground/vite-project/src/components.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@vue/runtime-core' { 2 | export interface GlobalComponents { 3 | SplineAnimation: typeof import('vue3-spline')['Vue3Spline'] 4 | } 5 | } 6 | export {} 7 | -------------------------------------------------------------------------------- /packages/playground/vite-project/src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 31 | 32 | 49 | -------------------------------------------------------------------------------- /packages/playground/vite-project/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue' 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any> 7 | export default component 8 | } 9 | -------------------------------------------------------------------------------- /packages/playground/vite-project/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | import Vue3Spline from 'vue3-spline' 5 | 6 | let app = createApp(App) 7 | 8 | app.use(Vue3Spline, { name: 'Vue3Spline' }) 9 | app.mount('#app') 10 | -------------------------------------------------------------------------------- /packages/playground/vite-project/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "useDefineForClassFields": true, 5 | "module": "esnext", 6 | "moduleResolution": "node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "sourceMap": true, 10 | "resolveJsonModule": true, 11 | "esModuleInterop": true, 12 | "lib": ["esnext", "dom"] 13 | }, 14 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], 15 | "references": [{ "path": "./tsconfig.node.json" }] 16 | } 17 | -------------------------------------------------------------------------------- /packages/playground/vite-project/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "esnext", 5 | "moduleResolution": "node" 6 | }, 7 | "include": ["vite.config.ts"] 8 | } 9 | -------------------------------------------------------------------------------- /packages/playground/vite-project/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()] 7 | }) 8 | -------------------------------------------------------------------------------- /packages/vue3-spline/README copy.md: -------------------------------------------------------------------------------- 1 | # Vue 3 Spline 2 | 3 | Add Spline animations to your Vue 3 or Nuxt 3 application. 4 | 5 |

6 | 7 | 8 | 9 |

10 | 11 | `vue3-spline` was created to facilitate developers in integrating Spline animations into their Vue 3 applications. During my quest for an uncomplicated method to incorporate Spline animations into my Vue project, I discovered a noticeable absence of up-to-date solutions. `vue3-spline` serves as a Vue wrapper around the `spline-runtime` library, enriched with several additional features. 12 | 13 | ## Installation and Usage 14 | 15 | ### Vue 3 16 | 17 | - You can install `vue3-spline` over `yarn`, `npm` or `pnpm. `spline-runtime`is a dependency of`vue3-spline`and should be automatically installed when you install`vue3-spline`. 18 | 19 | If you are using npm: 20 | 21 | ```shell 22 | npm install vue3-spline@latest --save 23 | ``` 24 | 25 | If you are using yarn: 26 | 27 | ```shell 28 | yarn add vue3-spline@latest 29 | ``` 30 | 31 | If you are using pnpm: 32 | 33 | ```shell 34 | pnpm install vue3-spline@latest 35 | ``` 36 | 37 | - Register the component in your Vue 3 application. 38 | 39 | The most common use case is to register the component globally. 40 | 41 | ```js 42 | // main.js 43 | import { createApp } from 'vue' 44 | import Vue3Spline from 'vue3-spline' 45 | 46 | createApp(App).use(Vue3Spline).mount('#app') 47 | ``` 48 | 49 | If you get an error with TS, try `use(Vue3Spline, { name: "Vue3Spline" })` 50 | 51 | To define global components for [Volar type-checking](https://github.com/johnsoncodehk/volar/tree/master/extensions/vscode-vue-language-features#usage) you will need to add: 52 | 53 | ```ts 54 | // components.d.ts 55 | declare module '@vue/runtime-core' { 56 | export interface GlobalComponents { 57 | SplineAnimation: typeof import('vue3-spline')['Vue3Spline'] 58 | } 59 | } 60 | export {} 61 | ``` 62 | 63 | If needed rename component to use: 64 | 65 | ```ts 66 | app.use(Vue3Spline, { name: 'SplineAnimation' }) // use in template 67 | ``` 68 | 69 | - `name` string (default: 'Vue3Spline') - set custom component name 70 | 71 | Alternatively you can also import the component locally. 72 | 73 | ```js 74 | import { Vue3Spline } from 'vue3-spline' 75 | 76 | export default { 77 | components: { 78 | Vue3Spline, 79 | }, 80 | } 81 | ``` 82 | 83 | You can then use the component in your template 84 | 85 | ```vue 86 | 93 | 94 | 103 | ``` 104 | 105 | ### Nuxt 3 106 | 107 | This is still experimental. Will be updated soon. 108 | 109 | - You can install `vue3-spline` over `yarn` or `npm`. `spline-runtime` is a dependency of `vue3-spline` and should be automatically installed when you install `vue3-spline`. 110 | 111 | If you are using npm: 112 | 113 | ```shell 114 | npm install vue3-spline@latest --save 115 | ``` 116 | 117 | If you are using yarn: 118 | 119 | ```shell 120 | yarn add vue3-spline@latest 121 | ``` 122 | 123 | - Create a folder called **`plugins`** at the root of your project. 124 | - Create a file named **`Vue3Spline.client.ts`** inside the _plugins_ directory. 125 | - Add the following code to the **`Vue3Spline.client.ts`** file. 126 | 127 | ```ts 128 | import Vue3Spline from 'vue3-spline' 129 | 130 | export default defineNuxtPlugin((nuxtApp) => { 131 | nuxtApp.vueApp.use(Vue3Spline) 132 | }) 133 | ``` 134 | 135 | If you get an error with TS, try `use(Vue3Spline, { name: "Vue3Spline" })` 136 | 137 | This should register as a global component that you can call anywhere in your app under the tag. 138 | 139 | I would recommend using a `` parent tag to ensure that the animation only loads in on the client side. 140 | 141 | ```vue 142 | 143 | 148 | 149 | ``` 150 | -------------------------------------------------------------------------------- /packages/vue3-spline/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue3-spline", 3 | "version": "1.0.0", 4 | "license": "MIT", 5 | "author": "Max Baan (https://pixelastronauts.nl)", 6 | "type": "module", 7 | "scripts": { 8 | "dev": "vite build --watch", 9 | "build": "vite build", 10 | "dev:build": "vite build && tsc -d --emitDeclarationOnly && vue-typegen gen -s ./src -o ./dist", 11 | "prepublishOnly": "npm run build", 12 | "lint": "eslint \"{packages,playground}/**/*.{ts,tsx,vue,js,jsx,html}\"", 13 | "prettier": "npx prettier --write ." 14 | }, 15 | "dependencies": { 16 | "lodash-es": "^4.17.21", 17 | "@splinetool/runtime": "^0.9.484" 18 | }, 19 | "peerDependencies": { 20 | "vue": "^3.2" 21 | }, 22 | "files": [ 23 | "dist/*" 24 | ], 25 | "repository": { 26 | "type": "git", 27 | "url": "https://github.com/pixelastronauts/vue3-spline.git" 28 | }, 29 | "publishConfig": { 30 | "access": "public", 31 | "registry": "https://registry.npmjs.org/" 32 | }, 33 | "main": "dist/vue3-spline.cjs.js", 34 | "module": "dist/vue3-spline.es.js", 35 | "types": "dist/index.d.ts", 36 | "exports": { 37 | ".": { 38 | "types": "./dist/index.d.ts", 39 | "import": "./dist/vue3-spline.es.js", 40 | "require": "./dist/vue3-spline.cjs.js" 41 | } 42 | }, 43 | "devDependencies": { 44 | "@babel/types": "7.23.0", 45 | "@types/lodash-es": "4.17.10", 46 | "@types/node": "20.8.8", 47 | "@vitejs/plugin-vue": "2.3.4", 48 | "@vue/compiler-sfc": "^3.3.4", 49 | "typescript": "5.0.4", 50 | "vite": "2.9.16", 51 | "vite-plugin-css-injected-by-js": "^3.1.1", 52 | "vite-plugin-dts": "^2.3.0", 53 | "vite-plugin-vue-type-imports": "^0.2.4", 54 | "vue": "3.3.6", 55 | "vue-tsc": "0.40.13", 56 | "vue-typegen": "0.2.0" 57 | }, 58 | "bugs": { 59 | "url": "https://github.com/pixelastronauts/vue3-spline/issues", 60 | "email": "max@pixelastronauts.nl" 61 | }, 62 | "engines": { 63 | "node": ">=12" 64 | }, 65 | "homepage": "https://vue3-spline.vercel.app/", 66 | "keywords": [ 67 | "vue3", 68 | "spline" 69 | ] 70 | } 71 | -------------------------------------------------------------------------------- /packages/vue3-spline/src/index.ts: -------------------------------------------------------------------------------- 1 | import type { App, Plugin } from 'vue' 2 | import Vue3Spline from './vue3-spline.vue' 3 | export * from './types' 4 | 5 | export interface PluginOptions { 6 | name?: string 7 | } 8 | 9 | export default { 10 | install(app: App, options?: PluginOptions) { 11 | const name = options?.name ?? 'Vue3Spline' 12 | app.component(name, Vue3Spline) 13 | }, 14 | } as Plugin 15 | 16 | export { Vue3Spline } 17 | -------------------------------------------------------------------------------- /packages/vue3-spline/src/types.ts: -------------------------------------------------------------------------------- 1 | import { StyleValue } from 'vue' 2 | 3 | // Basic type for scene props 4 | export interface SceneProps { 5 | url: string 6 | variables?: Record 7 | } 8 | 9 | // Props for the Vue component 10 | export interface SplineCanvasProps { 11 | canvasId?: string 12 | scene: SceneProps 13 | canvasStyle?: StyleValue 14 | } 15 | 16 | // Type for the Spline application instance 17 | export interface Application { 18 | load(url: string, variables?: Record): Promise 19 | play(): void 20 | stop(): void 21 | setVariables(variables: Record): void 22 | setVariable(name: string, value: any): void 23 | getVariables(): Record | undefined 24 | getVariable(name: string): any 25 | setBackgroundColor(color: string): void 26 | getAllObjects(): any 27 | getSplineEvents(): any 28 | setZoom(zoom: number): void 29 | setSize(width: number, height: number): void 30 | findObjectById(uuid: string): any 31 | findObjectByName(name: string): any 32 | emitEvent(eventName: SplineEventName, nameOrUuid: string): void 33 | emitEventReverse(eventName: SplineEventName, nameOrUuid: string): void 34 | addEventListener(eventName: SplineEventName, cb: (event: any) => void): void 35 | removeEventListener( 36 | eventName: SplineEventName, 37 | cb: (event: any) => void, 38 | ): void 39 | } 40 | 41 | // Type for supported Spline event names (assuming we don't have the complete list) 42 | export type SplineEventName = string 43 | -------------------------------------------------------------------------------- /packages/vue3-spline/src/vue3-spline.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 104 | -------------------------------------------------------------------------------- /packages/vue3-spline/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "strict": true, 6 | "declaration": true, 7 | "lib": ["es2017", "ESNext", "DOM", "DOM.Iterable"], 8 | "jsx": "preserve", 9 | "outDir": "dist", 10 | "moduleResolution": "node", 11 | "types": ["vite/client"] 12 | }, 13 | "include": ["src", "*.d.ts"], 14 | } 15 | -------------------------------------------------------------------------------- /packages/vue3-spline/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { resolve } from 'node:path' 2 | import { defineConfig } from 'vite' 3 | import Vue from '@vitejs/plugin-vue' 4 | import VueTypeImports from 'vite-plugin-vue-type-imports' 5 | import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js' 6 | import dts from 'vite-plugin-dts' 7 | 8 | export default defineConfig({ 9 | plugins: [ 10 | Vue(), 11 | VueTypeImports(), 12 | cssInjectedByJsPlugin(), 13 | dts({ 14 | insertTypesEntry: true, 15 | copyDtsFiles: false, 16 | skipDiagnostics: false, 17 | cleanVueFileName: true, 18 | }), 19 | ], 20 | build: { 21 | lib: { 22 | entry: resolve(__dirname, './src/index.ts'), 23 | name: 'vue3spline', 24 | formats: ['es', 'cjs'], 25 | }, 26 | outDir: 'dist', 27 | rollupOptions: { 28 | external: ['vue', '@splinetool/runtime'], 29 | output: { 30 | exports: 'named', 31 | globals: { 32 | vue: 'Vue' 33 | }, 34 | }, 35 | }, 36 | }, 37 | }) 38 | -------------------------------------------------------------------------------- /packages/vue3-spline/vue-shim.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import type { ComponentOptions } from 'vue' 3 | const component: ComponentOptions 4 | export default component 5 | } 6 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - 'packages/**' 3 | - 'packages/playground' 4 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["config:base"], 3 | "semanticCommits": true, 4 | "stabilityDays": 3, 5 | "prCreation": "not-pending", 6 | "labels": ["type: dependencies"], 7 | "packageRules": [ 8 | { 9 | "packageNames": ["node"], 10 | "enabled": false 11 | } 12 | ] 13 | } 14 | --------------------------------------------------------------------------------