├── images ├── jasonette-logo.png └── jasonette-snippets-code.gif ├── .vscode └── launch.json ├── CHANGELOG.md ├── package.json ├── README.md └── snippets └── snippets.json /images/jasonette-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/felipemullen/jasonette-snippets/HEAD/images/jasonette-logo.png -------------------------------------------------------------------------------- /images/jasonette-snippets-code.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/felipemullen/jasonette-snippets/HEAD/images/jasonette-snippets-code.gif -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that launches the extension inside a new window 2 | { 3 | "version": "0.1.0", 4 | "configurations": [ 5 | { 6 | "name": "Launch Extension", 7 | "type": "extensionHost", 8 | "request": "launch", 9 | "runtimeExecutable": "${execPath}", 10 | "args": ["--extensionDevelopmentPath=${workspaceRoot}" ] 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | All notable changes to the "jasonette-snippets" extension will be documented in this file. 3 | 4 | The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) 5 | 6 | ## [1.3.0] - 2017-09-16 7 | ### Added 8 | - fonts.ios snippet for a quick dropdown of fonts 9 | 10 | ## [1.0.1] - 2017-09-16 11 | ### Fixed 12 | - Trailing comma in $audio.duration after "url" prop 13 | 14 | ## [1.0.1] - 2017-09-15 15 | ### Changed 16 | - Preview gif image is higher resolution 17 | - package.json has a few more descriptors 18 | 19 | ### Added 20 | - Jasonette logo so it looks prettier in the marketplace 21 | 22 | ## [1.0.0] - 2017-09-15 23 | ### Added 24 | - The whole thing -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jasonette-snippets", 3 | "displayName": "Jasonette Snippets", 4 | "description": "Contains JSON code snippets for Jasonette Actions and Components", 5 | "icon": "images/jasonette-logo.png", 6 | "version": "1.3.0", 7 | "license": "MIT", 8 | "author": { 9 | "name": "Felipe Mullen" 10 | }, 11 | "publisher": "felipemullen", 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/felipemullen/jasonette-snippets" 15 | }, 16 | "engines": { 17 | "vscode": "^1.5.0" 18 | }, 19 | "keywords": [ 20 | "json", 21 | "snippet", 22 | "jasonette" 23 | ], 24 | "categories": [ 25 | "Snippets" 26 | ], 27 | "contributes": { 28 | "snippets": [ 29 | { 30 | "language": "json", 31 | "path": "./snippets/snippets.json" 32 | } 33 | ] 34 | } 35 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # jasonette-snippets README 2 | 3 | This extension adds some jazzy Jasonette Code Snippets into Visual Studio Code. Get stoked! 4 | 5 |  6 | 7 | ## Features 8 | 9 | A boatload of snippets! What else do I need to say? 10 | 11 | > Checkout the GitHub repo if catch any mistakes or you feel like you can contribute some more snippets! 12 | 13 | ## Requirements 14 | 15 | None. Visual Studio Code and ten fingers. 16 | 17 | Only JSON files are supported. 18 | 19 | ## Snippets List 20 | 21 | | Prefix | Jasonette Snippet Content | 22 | | ------ | ------------ | 23 | | `jason` | `A new jasonette app base` | 24 | | `href` | `Used to describe links between views` | 25 | | `$require` | `The $require action imports remote JSON files in parallel` | 26 | | `$lambda` | `Call another action by name` | 27 | | `$reload` | `Refreshes the view completely by re-fetching content from the current URL` | 28 | | `$render` | `Renders a template with data` | 29 | | `$snapshot` | `Takes a snapshot of the currently visible screen` | 30 | | `$href` | `An action version of href. Works the same way, but can be used when a component doesn't support href attribute directly` | 31 | | `$close` | `Close a modal (works when the currently view is a modal)` | 32 | | `$back` | `Transition one step back from the current view. If the current view is a modal, it closes the current view, otherwise it slides back to the previous view` | 33 | | `$network.request` | `Make GET/POST/PUT/DELETE Action requests` | 34 | | `$network.upload` | `Upload data to cloud providers. Currently supports S3` | 35 | | `$session.set` | `$session.set takes care of token authentication to authenticate into any mobile API` | 36 | | `$session.reset` | `This action lets you clear sessions for a specified domain. Can be used for both token authentication and web authentication via cookies` | 37 | | `$set` | `Use $set and $get to set and get local variables.` | 38 | | `$get` | `Use $set and $get to set and get local variables.` | 39 | | `$cache.set` | `$cache.set action is used to store to cache` | 40 | | `$cache.get` | `Directly access $cache variable from a template expression` | 41 | | `$cache.reset` | `Use $cache.reset action to reset the cache associated with the current url` | 42 | | `$global.set` | `$global.set action is used to write to global variables` | 43 | | `$global.get` | `Read global variables using template expressions` | 44 | | `$global.reset` | `Use $global.reset action to remove global variables by name` | 45 | | `$util.banner` | `Displays a banner notification with title and description` | 46 | | `$util.toast` | `Displays a toast notification with a simple text` | 47 | | `$util.alert` | `Displays an alert` | 48 | | `$util.share` | `Share a text, image, video, or a combination of them` | 49 | | `$util.picker` | `Opens a multiple choice picker menu, with each item linking to an action or an href` | 50 | | `$util.datepicker` | `Opens a datepicker and returns the value in unix time format` | 51 | | `$util.addressbook` | `Fetches the addressbook to populate them into $jason` | 52 | | `$media.camera` | `Capture a video or a photo using the device camera` | 53 | | `$media.picker` | `Opens the device camera roll` | 54 | | `$media.play` | `plays a video from remote url` | 55 | | `$audio.play` | `Play audio from remote url` | 56 | | `$audio.pause` | `Pauses an audio clip that's already playing from a remote url` | 57 | | `$audio.stop` | `Stops an audio clip that's already playing from a remote url. If URL is specified, stops ONLY this url. Otherwise, stops all audios currently playing` | 58 | | `$audio.seek` | `Seeks audio already playing from a remote url` | 59 | | `$audio.position` | `Get the position of the specified audio clip` | 60 | | `$audio.duration` | `Returns total duration of the specified audio clip in seconds` | 61 | | `$audio.record` | `Records audio` | 62 | | `$geo.get` | `Get user's geolocation using accuracy in meters` | 63 | | `$timer.start` | `Start a timer using seconds as a countdown` | 64 | | `$timer.stop` | `Stops a timer using the name of the timer` | 65 | | `$convert.csv` | `Converts CSV to parsed JSON` | 66 | | `$convert.rss` | `Convert RSS to JSON. Built on top of node-feedparser library` | 67 | | `label` | `Static uneditable text element` | 68 | | `image` | `Image loaded from either remote url or data-url` | 69 | | `button` | `A basic component that responds to user tap` | 70 | | `textfield` | `Single line input field` | 71 | | `textarea` | `Multiline input field` | 72 | | `slider` | `Horizontal slider input` | 73 | | `html` | `A self-contained web environment that you can plug in, style, and manipulate just like the rest of the components` | 74 | | `space` | `An empty space component mostly used for layout purposes` | 75 | | `map` | `Map component` | 76 | | `layout` | `A layout to store components in` | 77 | | `nestedlayout` | `A layout to store components in` | 78 | | `each` | `Iterates through the expression that comes after declaration` | 79 | | `if` | `Single conditional statement` | 80 | | `ifelse` | `Conditional statement including else` | 81 | | `elseif` | `Conditional statement including else` | 82 | | `this` | `This keyword` | 83 | | `mixin` | `Mixin Helper` | 84 | 85 | ## Known Issues 86 | 87 | TBD 88 | 89 | ## Release Notes 90 | 91 | ### 1.0.0 92 | 93 | Initial release -------------------------------------------------------------------------------- /snippets/snippets.json: -------------------------------------------------------------------------------- 1 | { 2 | /////////////////////////////////////////////////////////////////////////// 3 | /// Jasonette Code Snippets 4 | /// Felipe Mullen 5 | /// 9.15.2017 6 | /// ----------------------------------------------------------------------- 7 | /// Above all else, guard your heart, for everything you do flows from it 8 | /////////////////////////////////////////////////////////////////////////// 9 | "New Jasonette App": { 10 | "prefix": "jason", 11 | "body": [ 12 | "{", 13 | "\t\"\\$jason\": {", 14 | "\t\t\"head\": {", 15 | "\t\t\t\"title\": \"${1:My New App}\",", 16 | "\t\t\t\"description\": \"${2:A jasonette app}\",", 17 | "\t\t\t\"offline\": \"${3|true,yes,on|}\",", 18 | "\t\t\t\"styles\": { },", 19 | "\t\t\t\"actions\": { },", 20 | "\t\t\t\"templates\": { },", 21 | "\t\t\t\"data\": { }", 22 | "\t\t},", 23 | "\t\t\"body\": {", 24 | "\t\t\t\"header\": { },", 25 | "\t\t\t\"sections\": [ ],", 26 | "\t\t\t\"layers\": [ ],", 27 | "\t\t\t\"footer\": { }", 28 | "\t\t}", 29 | "\t}", 30 | "}" 31 | ], 32 | "description": "A new jasonette app base" 33 | }, 34 | "Href link": { 35 | "prefix": "href", 36 | "body": [ 37 | "\"href\": {", 38 | "\t\"url\": \"${1:www.mylinkurl.com/myfile.json}\",", 39 | "\t\"view\": \"${2|jason,web,app|}\",", 40 | "\t\"transition\": \"${3|push,modal,replace|}\",", 41 | "\t\"loading\": \"${4|true,false|}\"", 42 | "}" 43 | ], 44 | "description": "Used to describe links between views" 45 | }, 46 | "Action - $require": { 47 | "prefix": "$require", 48 | "body": [ 49 | "{", 50 | "\t\"type\": \"\\$require\",", 51 | "\t\"options\": {", 52 | "\t\t${0}", 53 | "\t},", 54 | "\t\"success\": { },", 55 | "\t\"error\": { }", 56 | "}" 57 | ], 58 | "description": "The $require action imports remote JSON files in parallel" 59 | }, 60 | "Action - $lambda": { 61 | "prefix": "$lambda", 62 | "body": [ 63 | "{", 64 | "\t\"type\": \"\\$lambda\",", 65 | "\t\"options\": {", 66 | "\t\t\"name\": \"${1:function_name}\",", 67 | "\t\t\"options\": {", 68 | "\t\t\t${0}", 69 | "\t\t}", 70 | "\t},", 71 | "\t\"success\": { },", 72 | "\t\"error\": { }", 73 | "}" 74 | ], 75 | "description": "Call another action by name" 76 | }, 77 | "Action - $reload": { 78 | "prefix": "$reload", 79 | "body": [ 80 | "{", 81 | "\t\"type\": \"\\$reload\",", 82 | "\t\"success\": { },", 83 | "\t\"error\": { }", 84 | "}" 85 | ], 86 | "description": "Refreshes the view completely by re-fetching content from the current URL" 87 | }, 88 | "Action - $render": { 89 | "prefix": "$render", 90 | "body": [ 91 | "{", 92 | "\t\"type\": \"\\$render\",", 93 | "\t\"success\": { },", 94 | "\t\"error\": { }", 95 | "}" 96 | ], 97 | "description": "Renders a template with data" 98 | }, 99 | "Action - $snapshot": { 100 | "prefix": "$snapshot", 101 | "body": [ 102 | "{", 103 | "\t\"type\": \"\\$snapshot\",", 104 | "\t\"success\": {", 105 | "\t\t${0}", 106 | "\t},", 107 | "\t\"error\": { }", 108 | "}" 109 | ], 110 | "description": "Takes a snapshot of the currently visible screen" 111 | }, 112 | "Action - $href": { 113 | "prefix": "$href", 114 | "body": [ 115 | "{", 116 | "\t\"type\": \"\\$href\",", 117 | "\t\"options\": {", 118 | "\t\t\"url\": \"${1:www.mylinkurl.com/myfile.json}\",", 119 | "\t\t\"view\": \"${2|jason,web,app|}\",", 120 | "\t\t\"transition\": \"${3|push,modal,fullscreen|}\",", 121 | "\t\t\"options\": {", 122 | "\t\t\t${0}", 123 | "\t\t}", 124 | "\t},", 125 | "\t\"success\": { },", 126 | "\t\"error\": { }", 127 | "}" 128 | ], 129 | "description": "An action version of href. Works the same way, but can be used when a component doesn't support href attribute directly" 130 | }, 131 | "Action - $close": { 132 | "prefix": "$close", 133 | "body": [ 134 | "{", 135 | "\t\"type\": \"\\$close\",", 136 | "\t\"success\": { },", 137 | "\t\"error\": { }", 138 | "}" 139 | ], 140 | "description": "Close a modal (works when the currently view is a modal)" 141 | }, 142 | "Action - $back": { 143 | "prefix": "$back", 144 | "body": [ 145 | "{", 146 | "\t\"type\": \"\\$back\",", 147 | "\t\"success\": { },", 148 | "\t\"error\": { }", 149 | "}" 150 | ], 151 | "description": "Transition one step back from the current view. If the current view is a modal, it closes the current view, otherwise it slides back to the previous view" 152 | }, 153 | "Action - $network.request": { 154 | "prefix": "$network.request", 155 | "body": [ 156 | "{", 157 | "\t\"type\": \"\\$network.request\",", 158 | "\t\"options\": {", 159 | "\t\t\"url\": \"${1:www.mylinkurl.com/myfile.json}\",", 160 | "\t\t\"method\": \"${2|get,post,put,delete|}\",", 161 | "\t\t\"data\": { },", 162 | "\t\t\"header\": { },", 163 | "\t\t\"data_type\": \"${3|json,html,rss,raw|}\",", 164 | "\t\t\"content_type\": \"\"", 165 | "\t},", 166 | "\t\"success\": { ${0} },", 167 | "\t\"error\": { }", 168 | "}" 169 | ], 170 | "description": "Make GET/POST/PUT/DELETE Action requests" 171 | }, 172 | "Action - $network.upload": { 173 | "prefix": "$network.upload", 174 | "body": [ 175 | "{", 176 | "\t\"type\": \"\\$network.upload\",", 177 | "\t\"options\": {", 178 | "\t\t\"type\": \"${1|s3|}\",", 179 | "\t\t\"bucket\": \"${4:s3://...}\",", 180 | "\t\t\"path\": \"${5:path/to/file}\",", 181 | "\t\t\"sign_url\": \"${6:sign_url}\"", 182 | "\t},", 183 | "\t\"success\": { ${0} },", 184 | "\t\"error\": { }", 185 | "}" 186 | ], 187 | "description": "Upload data to cloud providers. Currently supports S3" 188 | }, 189 | "Action - $session.set": { 190 | "prefix": "$session.set", 191 | "body": [ 192 | "{", 193 | "\t\"type\": \"\\$session.set\",", 194 | "\t\"options\": {", 195 | "\t\t\"domain\": \"${1:jasonbase.com}\",", 196 | "\t\t\"header\": { },", 197 | "\t\t\"body\": { }", 198 | "\t},", 199 | "\t\"success\": { ${0} },", 200 | "\t\"error\": { }", 201 | "}" 202 | ], 203 | "description": "$session.set takes care of token authentication to authenticate into any mobile API" 204 | }, 205 | "Action - $session.reset": { 206 | "prefix": "$session.reset", 207 | "body": [ 208 | "{", 209 | "\t\"type\": \"\\$session.reset\",", 210 | "\t\"options\": {", 211 | "\t\t\"url\": \"${1:www.url.com/fromwhich/to/signout}\",", 212 | "\t\t\"domain\": \"${2:jasonbase.com}\",", 213 | "\t\t\"data\": { },", 214 | "\t\"type\": \"${3|json,html|}\"", 215 | "\t},", 216 | "\t\"success\": { ${0} },", 217 | "\t\"error\": { }", 218 | "}" 219 | ], 220 | "description": "This action lets you clear sessions for a specified domain. Can be used for both token authentication and web authentication via cookies" 221 | }, 222 | "Action - $set": { 223 | "prefix": "$set", 224 | "body": [ 225 | "{", 226 | "\t\"type\": \"\\$set\",", 227 | "\t\"options\": { },", 228 | "\t\"success\": { ${0} },", 229 | "\t\"error\": { }", 230 | "}" 231 | ], 232 | "description": "Use $set and $get to set and get local variables." 233 | }, 234 | "Action - $get": { 235 | "prefix": "$get", 236 | "body": "\"{{\\$get.${1:VARIABLE_NAME}}}\"", 237 | "description": "Use $set and $get to set and get local variables." 238 | }, 239 | "Action - $cache.set": { 240 | "prefix": "$cache.set", 241 | "body": [ 242 | "{", 243 | "\t\"type\": \"\\$cache.set\",", 244 | "\t\"options\": {", 245 | "\t\t\"items\": \"${1:\\$jason}\"", 246 | "\t},", 247 | "\t\"success\": { ${0} },", 248 | "\t\"error\": { }", 249 | "}" 250 | ], 251 | "description": "$cache.set action is used to store to cache" 252 | }, 253 | "Action - $cache.get": { 254 | "prefix": "$cache.get", 255 | "body": "\"{{\\$cache.${1:VARIABLE_NAME}}}\"", 256 | "description": "Directly access $cache variable from a template expression" 257 | }, 258 | "Action - $cache.reset": { 259 | "prefix": "$cache.reset", 260 | "body": [ 261 | "{", 262 | "\t\"type\": \"\\$cache.reset\",", 263 | "\t\"success\": { ${0} },", 264 | "\t\"error\": { }", 265 | "}" 266 | ], 267 | "description": "Use $cache.reset action to reset the cache associated with the current url" 268 | }, 269 | "Action - $global.set": { 270 | "prefix": "$global.set", 271 | "body": [ 272 | "{", 273 | "\t\"type\": \"\\$global.set\",", 274 | "\t\"options\": {", 275 | "\t\t\"items\": \"${1:\\$jason}\"", 276 | "\t},", 277 | "\t\"success\": { ${0} },", 278 | "\t\"error\": { }", 279 | "}" 280 | ], 281 | "description": "$global.set action is used to write to global variables" 282 | }, 283 | "Action - $global.get": { 284 | "prefix": "$global.get", 285 | "body": "\"{{\\$global.${1:VARIABLE_NAME}}}\"", 286 | "description": "Read global variables using template expressions" 287 | }, 288 | "Action - $global.reset": { 289 | "prefix": "$global.reset", 290 | "body": [ 291 | "{", 292 | "\t\"type\": \"\\$global.reset\",", 293 | "\t\"items\": [\"${1:Key}\"],", 294 | "\t\"success\": { ${0} },", 295 | "\t\"error\": { }", 296 | "}" 297 | ], 298 | "description": "Use $global.reset action to remove global variables by name" 299 | }, 300 | "Action - $util.banner": { 301 | "prefix": "$util.banner", 302 | "body": [ 303 | "{", 304 | "\t\"type\": \"\\$util.banner\",", 305 | "\t\"options\": {", 306 | "\t\t\"title\": \"${1:Hello}\",", 307 | "\t\t\"description\": \"${2:This is a message}\",", 308 | "\t\t\"type\": \"${3|error,success,info|}\"", 309 | "\t},", 310 | "\t\"success\": { ${0} },", 311 | "\t\"error\": { }", 312 | "}" 313 | ], 314 | "description": "Displays a banner notification with title and description" 315 | }, 316 | "Action - $util.toast": { 317 | "prefix": "$util.toast", 318 | "body": [ 319 | "{", 320 | "\t\"type\": \"\\$util.toast\",", 321 | "\t\"options\": {", 322 | "\t\t\"text\": \"${1:I'm a toast. I display a simple text.}\",", 323 | "\t\t\"type\": \"${2|error,info,warning,dark,default,success|}\"", 324 | "\t},", 325 | "\t\"success\": { ${0} },", 326 | "\t\"error\": { }", 327 | "}" 328 | ], 329 | "description": "Displays a toast notification with a simple text" 330 | }, 331 | "Action - $util.alert": { 332 | "prefix": "$util.alert", 333 | "body": [ 334 | "{", 335 | "\t\"type\": \"\\$util.toast\",", 336 | "\t\"options\": {", 337 | "\t\t\"title\": \"${1:Hello}\",", 338 | "\t\t\"description\": \"${2:This is a message}\",", 339 | "\t\t\"form\": [ ${0} ]", 340 | "\t},", 341 | "\t\"success\": { ${0} },", 342 | "\t\"error\": { }", 343 | "}" 344 | ], 345 | "description": "Displays an alert" 346 | }, 347 | "Action - $util.share": { 348 | "prefix": "$util.share", 349 | "body": [ 350 | "{", 351 | "\t\"type\": \"\\$util.share\",", 352 | "\t\"options\": {", 353 | "\t\t\"items\": [{", 354 | "\t\t\t\"type\": \"${1|text,image,video|}\",", 355 | "\t\t\t\"text\": \"${2:I'm a toast. I display a simple text.}\",", 356 | "\t\t\t\"data\": \"\",", 357 | "\t\t\t\"url\": \"www.myurl.com/image.jpg\",", 358 | "\t\t\t\"file_url\": \"www.myurl.com/video.mp4\"", 359 | "\t\t}]", 360 | "\t},", 361 | "\t\"success\": { ${0} },", 362 | "\t\"error\": { }", 363 | "}" 364 | ], 365 | "description": "Share a text, image, video, or a combination of them" 366 | }, 367 | "Action - $util.picker": { 368 | "prefix": "$util.picker", 369 | "body": [ 370 | "{", 371 | "\t\"type\": \"\\$util.picker\",", 372 | "\t\"options\": {", 373 | "\t\t\"title\": \"${1:Choose an item}\",", 374 | "\t\t\"items\": [{", 375 | "\t\t\t\"text\": \"${2:Choice}\",", 376 | "\t\t\t\"href\": \"${3:MY_LAMBDA}\",", 377 | "\t\t\t\"action\": { ${0} }", 378 | "\t\t}]", 379 | "\t},", 380 | "\t\"success\": { ${0} },", 381 | "\t\"error\": { }", 382 | "}" 383 | ], 384 | "description": "Opens a multiple choice picker menu, with each item linking to an action or an href" 385 | }, 386 | "Action - $util.datepicker": { 387 | "prefix": "$util.datepicker", 388 | "body": [ 389 | "{", 390 | "\t\"type\": \"\\$util.datepicker\",", 391 | "\t\"options\": {", 392 | "\t\t\"title\": \"${1:Pick a date}\",", 393 | "\t\t\"description\": \"${2:Just pick one}\"", 394 | "\t},", 395 | "\t\"success\": { ${0} },", 396 | "\t\"error\": { }", 397 | "}" 398 | ], 399 | "description": "Opens a datepicker and returns the value in unix time format" 400 | }, 401 | "Action - $util.addressbook": { 402 | "prefix": "$util.addressbook", 403 | "body": [ 404 | "{", 405 | "\t\"type\": \"\\$util.addressbook\",", 406 | "\t\"success\": { ${0} },", 407 | "\t\"error\": { }", 408 | "}" 409 | ], 410 | "description": "Fetches the addressbook to populate them into $jason" 411 | }, 412 | "Action - $media.camera": { 413 | "prefix": "$media.camera", 414 | "body": [ 415 | "{", 416 | "\t\"type\": \"\\$media.camera\",", 417 | "\t\"options\": {", 418 | "\t\t\"type\": \"${1|photo,video|}\",", 419 | "\t\t\"edit\": \"${2|true,false|}\",", 420 | "\t\t\"quality\": \"${3|high,medium,low|}\"", 421 | "\t},", 422 | "\t\"success\": { ${0} },", 423 | "\t\"error\": { }", 424 | "}" 425 | ], 426 | "description": "Capture a video or a photo using the device camera" 427 | }, 428 | "Action - $media.picker": { 429 | "prefix": "$media.picker", 430 | "body": [ 431 | "{", 432 | "\t\"type\": \"\\$media.picker\",", 433 | "\t\"options\": {", 434 | "\t\t\"type\": \"${1|photo,video|}\",", 435 | "\t\t\"edit\": \"${2|true,false|}\",", 436 | "\t\t\"quality\": \"${3|high,medium,low|}\"", 437 | "\t},", 438 | "\t\"success\": { ${0} },", 439 | "\t\"error\": { }", 440 | "}" 441 | ], 442 | "description": "Opens the device camera roll" 443 | }, 444 | "Action - $media.play": { 445 | "prefix": "$media.play", 446 | "body": [ 447 | "{", 448 | "\t\"type\": \"\\$media.play\",", 449 | "\t\"options\": {", 450 | "\t\t\"url\": \"${1:https://vjs.zencdn.net/v/oceans.mp4}\",", 451 | "\t\t\"muted\": \"${2|true,false|}\"", 452 | "\t},", 453 | "\t\"success\": { ${0} },", 454 | "\t\"error\": { }", 455 | "}" 456 | ], 457 | "description": "plays a video from remote url" 458 | }, 459 | "Action - $audio.play": { 460 | "prefix": "$audio.play", 461 | "body": [ 462 | "{", 463 | "\t\"type\": \"\\$audio.play\",", 464 | "\t\"options\": {", 465 | "\t\t\"url\": \"${1:http://www.podtrac.com/pts/redirect.mp3/traffic.libsyn.com/songexploder/SongExploder73-Busdriver.mp3}\",", 466 | "\t\t\"title\": \"${2:Busdriver - Worlds to Run}\",", 467 | "\t\t\"author\": \"${3:Song Exploder}\",", 468 | "\t\t\"image\": \"${4:http://discover.pocketcasts.com/discover/images/400/fff9ba50-53e1-0131-8293-723c91aeae46.jpg}\"", 469 | "\t},", 470 | "\t\"success\": { ${0} },", 471 | "\t\"error\": { }", 472 | "}" 473 | ], 474 | "description": "Play audio from remote url" 475 | }, 476 | "Action - $audio.pause": { 477 | "prefix": "$audio.pause", 478 | "body": [ 479 | "{", 480 | "\t\"type\": \"\\$audio.pause\",", 481 | "\t\"options\": {", 482 | "\t\t\"url\": \"${1:http://www.podtrac.com/pts/redirect.mp3/traffic.libsyn.com/songexploder/SongExploder73-Busdriver.mp3}\"", 483 | "\t},", 484 | "\t\"success\": { ${0} },", 485 | "\t\"error\": { }", 486 | "}" 487 | ], 488 | "description": "Pauses an audio clip that's already playing from a remote url" 489 | }, 490 | "Action - $audio.stop": { 491 | "prefix": "$audio.stop", 492 | "body": [ 493 | "{", 494 | "\t\"type\": \"\\$audio.stop\",", 495 | "\t\"options\": {", 496 | "\t\t\"url\": \"${1:http://www.podtrac.com/pts/redirect.mp3/traffic.libsyn.com/songexploder/SongExploder73-Busdriver.mp3}\"", 497 | "\t},", 498 | "\t\"success\": { ${0} },", 499 | "\t\"error\": { }", 500 | "}" 501 | ], 502 | "description": "Stops an audio clip that's already playing from a remote url. If URL is specified, stops ONLY this url. Otherwise, stops all audios currently playing" 503 | }, 504 | "Action - $audio.seek": { 505 | "prefix": "$audio.seek", 506 | "body": [ 507 | "{", 508 | "\t\"type\": \"\\$audio.seek\",", 509 | "\t\"options\": {", 510 | "\t\t\"url\": \"${1:http://www.podtrac.com/pts/redirect.mp3/traffic.libsyn.com/songexploder/SongExploder73-Busdriver.mp3}\",", 511 | "\t\t\"position\": \"${2:0.35}\"", 512 | "\t},", 513 | "\t\"success\": { ${0} },", 514 | "\t\"error\": { }", 515 | "}" 516 | ], 517 | "description": "Seeks audio already playing from a remote url" 518 | }, 519 | "Action - $audio.position": { 520 | "prefix": "$audio.position", 521 | "body": [ 522 | "{", 523 | "\t\"type\": \"\\$audio.position\",", 524 | "\t\"options\": {", 525 | "\t\t\"url\": \"${1:http://www.podtrac.com/pts/redirect.mp3/traffic.libsyn.com/songexploder/SongExploder73-Busdriver.mp3}\"", 526 | "\t},", 527 | "\t\"success\": { ${0} },", 528 | "\t\"error\": { }", 529 | "}" 530 | ], 531 | "description": "Get the position of the specified audio clip" 532 | }, 533 | "Action - $audio.duration": { 534 | "prefix": "$audio.duration", 535 | "body": [ 536 | "{", 537 | "\t\"type\": \"\\$audio.duration\",", 538 | "\t\"options\": {", 539 | "\t\t\"url\": \"${1:http://www.podtrac.com/pts/redirect.mp3/traffic.libsyn.com/songexploder/SongExploder73-Busdriver.mp3}\"", 540 | "\t},", 541 | "\t\"success\": { ${0} },", 542 | "\t\"error\": { }", 543 | "}" 544 | ], 545 | "description": "Returns total duration of the specified audio clip in seconds" 546 | }, 547 | "Action - $audio.record": { 548 | "prefix": "$audio.record", 549 | "body": [ 550 | "{", 551 | "\t\"type\": \"\\$audio.record\",", 552 | "\t\"options\": {", 553 | "\t\t\"color\": \"rgb(${1:0},${2:0},${3:0})\",", 554 | "\t\t\"color:disabled\": \"rgb(${4:0},${5:0},${6:0})\",", 555 | "\t\t\"theme\": \"light\",", 556 | "\t},", 557 | "\t\"success\": { ${0} },", 558 | "\t\"error\": { }", 559 | "}" 560 | ], 561 | "description": "Records audio" 562 | }, 563 | "Action - $geo.get": { 564 | "prefix": "$geo.get", 565 | "body": [ 566 | "{", 567 | "\t\"type\": \"\\$geo.get\",", 568 | "\t\"options\": {", 569 | "\t\t\"distance\": \"${1:5000}\"", 570 | "\t},", 571 | "\t\"success\": { ${0} },", 572 | "\t\"error\": { }", 573 | "}" 574 | ], 575 | "description": "Get user's geolocation using accuracy in meters" 576 | }, 577 | "Action - $timer.start": { 578 | "prefix": "$timer.start", 579 | "body": [ 580 | "{", 581 | "\t\"type\": \"\\$timer.start\",", 582 | "\t\"options\": {", 583 | "\t\t\"interval\": \"${1:1}\",", 584 | "\t\t\"name\": \"${2:timer1}\",", 585 | "\t\t\"repeats\": \"${3|true,false|}\",", 586 | "\t\t\"action\": { ${0} }", 587 | "\t},", 588 | "\t\"success\": { },", 589 | "\t\"error\": { }", 590 | "}" 591 | ], 592 | "description": "Start a timer using seconds as a countdown" 593 | }, 594 | "Action - $timer.stop": { 595 | "prefix": "$timer.stop", 596 | "body": [ 597 | "{", 598 | "\t\"type\": \"\\$timer.stop\",", 599 | "\t\"options\": {", 600 | "\t\t\"name\": \"${1:timer1}\"", 601 | "\t},", 602 | "\t\"success\": { ${0} },", 603 | "\t\"error\": { }", 604 | "}" 605 | ], 606 | "description": "Stops a timer using the name of the timer" 607 | }, 608 | "Action - $convert.csv": { 609 | "prefix": "$convert.csv", 610 | "body": [ 611 | "{", 612 | "\t\"type\": \"\\$convert.csv\",", 613 | "\t\"options\": {", 614 | "\t\t\"data\": \"\"", 615 | "\t},", 616 | "\t\"success\": { ${0} },", 617 | "\t\"error\": { }", 618 | "}" 619 | ], 620 | "description": "Converts CSV to parsed JSON" 621 | }, 622 | "Action - $convert.rss": { 623 | "prefix": "$convert.rss", 624 | "body": [ 625 | "{", 626 | "\t\"type\": \"\\$convert.rss\",", 627 | "\t\"options\": {", 628 | "\t\t\"data\": \"\"", 629 | "\t},", 630 | "\t\"success\": { ${0} },", 631 | "\t\"error\": { }", 632 | "}" 633 | ], 634 | "description": "Convert RSS to JSON. Built on top of node-feedparser library" 635 | }, 636 | "Component - label": { 637 | "prefix": "label", 638 | "body": [ 639 | "{", 640 | "\t\"type\": \"label\",", 641 | "\t\"text\": \"${1:Hello world}\",", 642 | "\t\"style\": {", 643 | "\t\t\"font\": \"${2|AcademyEngravedLetPlain,AlNile-Bold,AlNile,AmericanTypewriter,AmericanTypewriter-Bold,AmericanTypewriter-Condensed,AmericanTypewriter-CondensedBold,AmericanTypewriter-CondensedLight,AmericanTypewriter-Light,AppleColorEmoji,AppleSDGothicNeo-Thin,AppleSDGothicNeo-UltraLight,AppleSDGothicNeo-Light,AppleSDGothicNeo-Regular,AppleSDGothicNeo-Medium,AppleSDGothicNeo-SemiBold,AppleSDGothicNeo-Bold,AppleSDGothicNeo-Medium,ArialMT,Arial-BoldItalicMT,Arial-BoldMT,Arial-ItalicMT,ArialHebrew,ArialHebrew-Bold,ArialHebrew-Light,ArialRoundedMTBold,Avenir-Black,Avenir-BlackOblique,Avenir-Book,Avenir-BookOblique,Avenir-Heavy,Avenir-HeavyOblique,Avenir-Light,Avenir-LightOblique,Avenir-Medium,Avenir-MediumOblique,Avenir-Oblique,Avenir-Roman,AvenirNext-Bold,AvenirNext-BoldItalic,AvenirNext-DemiBold,AvenirNext-DemiBoldItalic,AvenirNext-Heavy,AvenirNext-HeavyItalic,AvenirNext-Italic,AvenirNext-Medium,AvenirNext-MediumItalic,AvenirNext-Regular,AvenirNext-UltraLight,AvenirNext-UltraLightItalic,AvenirNextCondensed-Bold,AvenirNextCondensed-BoldItalic,AvenirNextCondensed-DemiBold,AvenirNextCondensed-DemiBoldItalic,AvenirNextCondensed-Heavy,AvenirNextCondensed-HeavyItalic,AvenirNextCondensed-Italic,AvenirNextCondensed-Medium,AvenirNextCondensed-MediumItalic,AvenirNextCondensed-Regular,AvenirNextCondensed-UltraLight,AvenirNextCondensed-UltraLightItalic,BanglaSangamMN,BanglaSangamMN-Bold,Baskerville,Baskerville-Bold,Baskerville-BoldItalic,Baskerville-Italic,Baskerville-SemiBold,Baskerville-SemiBoldItalic,BodoniOrnamentsITCTT,BodoniSvtyTwoITCTT-Bold,BodoniSvtyTwoITCTT-Book,BodoniSvtyTwoITCTT-BookIta,BodoniSvtyTwoOSITCTT-Bold,BodoniSvtyTwoOSITCTT-Book,BodoniSvtyTwoOSITCTT-BookIt,BodoniSvtyTwoSCITCTT-Book,BradleyHandITCTT-Bold,ChalkboardSE-Bold,ChalkboardSE-Light,ChalkboardSE-Regular,Chalkduster,Cochin,Cochin-Bold,Cochin-BoldItalic,Cochin-Italic,Copperplate,Copperplate-Bold,Copperplate-Light,Courier,Courier-Bold,Courier-BoldOblique,Courier-Oblique,CourierNewPS-BoldItalicMT,CourierNewPS-BoldMT,CourierNewPS-ItalicMT,CourierNewPSMT,DBLCDTempBlack,DINAlternate-Bold,DINCondensed-Bold,DamascusBold,Damascus,DamascusLight,DamascusMedium,DamascusSemiBold,DevanagariSangamMN,DevanagariSangamMN-Bold,Didot,Didot-Bold,Didot-Italic,DiwanMishafi,EuphemiaUCAS,EuphemiaUCAS-Bold,EuphemiaUCAS-Italic,Farah,Futura-CondensedExtraBold,Futura-CondensedMedium,Futura-Medium,Futura-MediumItalic,GeezaPro,GeezaPro-Bold,Georgia,Georgia-Bold,Georgia-BoldItalic,Georgia-Italic,GillSans,GillSans-SemiBold,GillSans-SemiBoldItalic,GillSans-Bold,GillSans-BoldItalic,GillSans-UltraBold,GillSans-Italic,GillSans-Light,GillSans-LightItalic,GujaratiSangamMN,GujaratiSangamMN-Bold,GurmukhiMN,GurmukhiMN-Bold,STHeitiSC-Light,STHeitiSC-Medium,STHeitiTC-Light,STHeitiTC-Medium,Helvetica,Helvetica-Bold,Helvetica-BoldOblique,Helvetica-Light,Helvetica-LightOblique,Helvetica-Oblique,HelveticaNeue,HelveticaNeue-Bold,HelveticaNeue-BoldItalic,HelveticaNeue-CondensedBlack,HelveticaNeue-CondensedBold,HelveticaNeue-Italic,HelveticaNeue-Light,HelveticaNeue-LightItalic,HelveticaNeue-Medium,HelveticaNeue-MediumItalic,HelveticaNeue-UltraLight,HelveticaNeue-UltraLightItalic,HelveticaNeue-Thin,HelveticaNeue-ThinItalic,HiraKakuProN-W3,HiraKakuProN-W6,HiraMinProN-W3,HiraMinProN-W6,HiraginoSans-W3,HiraginoSans-W6,HoeflerText-Black,HoeflerText-BlackItalic,HoeflerText-Italic,HoeflerText-Regular,IowanOldStyle-Bold,IowanOldStyle-BoldItalic,IowanOldStyle-Italic,IowanOldStyle-Roman,Kailasa,Kailasa-Bold,KannadaSangamMN,KannadaSangamMN-Bold,KhmerSangamMN,KohinoorBangla-Light,KohinoorBangla-Regular,KohinoorBangla-Semibold,KohinoorDevanagari-Book,KohinoorDevanagari-Light,KohinoorDevanagari-Medium,KohinoorTelugu-Light,KohinoorTelugu-Regular,KohinoorTelugu-Medium,LaoSangamMN,MalayalamSangamMN,MalayalamSangamMN-Bold,Menlo-BoldItalic,Menlo-Regular,Menlo-Bold,Menlo-Italic,Marion-Bold,Marion-Italic,Marion-Regular,MarkerFelt-Thin,MarkerFelt-Wide,Noteworthy-Bold,Noteworthy-Light,Optima-Bold,Optima-BoldItalic,Optima-ExtraBlack,Optima-Italic,Optima-Regular,OriyaSangamMN,OriyaSangamMN-Bold,Palatino-Bold,Palatino-BoldItalic,Palatino-Italic,Palatino-Roman,Papyrus,Papyrus-Condensed,PartyLetPlain,PingFangHK-Ultralight,PingFangHK-Light,PingFangHK-Thin,PingFangHK-Regular,PingFangHK-Medium,PingFangHK-Semibold,PingFangSC-Ultralight,PingFangSC-Light,PingFangSC-Thin,PingFangSC-Regular,PingFangSC-Medium,PingFangSC-Semibold,PingFangTC-Ultralight,PingFangTC-Light,PingFangTC-Thin,PingFangTC-Regular,PingFangTC-Medium,PingFangTC-Semibold,SanFranciscoDisplay-Black,SanFranciscoDisplay-Bold,SanFranciscoDisplay-Heavy,SanFranciscoDisplay-Light,SanFranciscoDisplay-Medium,SanFranciscoDisplay-Regular,SanFranciscoDisplay-Semibold,SanFranciscoDisplay-Thin,SanFranciscoDisplay-Ultralight,SanFranciscoRounded-Black,SanFranciscoRounded-Bold,SanFranciscoRounded-Heavy,SanFranciscoRounded-Light,SanFranciscoRounded-Medium,SanFranciscoRounded-Regular,SanFranciscoRounded-Semibold,SanFranciscoRounded-Thin,SanFranciscoRounded-Ultralight,SanFranciscoText-Bold,SanFranciscoText-BoldG1,SanFranciscoText-BoldG2,SanFranciscoText-BoldG3,SanFranciscoText-BoldItalic,SanFranciscoText-BoldItalicG1,SanFranciscoText-BoldItalicG2,SanFranciscoText-BoldItalicG3,SanFranciscoText-Heavy,SanFranciscoText-HeavyItalic,SanFranciscoText-Light,SanFranciscoText-LightItalic,SanFranciscoText-Medium,SanFranciscoText-MediumItalic,SanFranciscoText-Regular,SanFranciscoText-RegularG1,SanFranciscoText-RegularG2,SanFranciscoText-RegularG3,SanFranciscoText-RegularItalic,SanFranciscoText-RegularItalicG1,SanFranciscoText-RegularItalicG2,SanFranciscoText-RegularItalicG3,SanFranciscoText-Semibold,SanFranciscoText-SemiboldItalic,SanFranciscoText-Thin,SanFranciscoText-ThinItalic,SavoyeLetPlain,SinhalaSangamMN,SinhalaSangamMN-Bold,SnellRoundhand,SnellRoundhand-Black,SnellRoundhand-Bold,Superclarendon-Regular,Superclarendon-BoldItalic,Superclarendon-Light,Superclarendon-BlackItalic,Superclarendon-Italic,Superclarendon-LightItalic,Superclarendon-Bold,Superclarendon-Black,TamilSangamMN,TamilSangamMN-Bold,TeluguSangamMN,TeluguSangamMN-Bold,Thonburi,Thonburi-Bold,Thonburi-Light,TimesNewRomanPS-BoldItalicMT,TimesNewRomanPS-BoldMT,TimesNewRomanPS-ItalicMT,TimesNewRomanPSMT,Trebuchet-BoldItalic,TrebuchetMS,TrebuchetMS-Bold,TrebuchetMS-Italic,Verdana,Verdana-Bold,Verdana-BoldItalic,Verdana-Italic,ZapfDingbatsITC,Zapfino|}\",", 644 | "\t\t\"size\": \"${3:30}\",", 645 | "\t\t\"color\": \"rgb(${4:0},${5:0},${6:0})\",", 646 | "\t\t\"padding\": \"${7:10}\",", 647 | "\t\t\"background\": \"rgb(${8:0},${9:0},${10:0})\",", 648 | "\t\t\"corner_radius\": \"${11:0}\"", 649 | "\t}", 650 | "}" 651 | ], 652 | "description": "Static uneditable text element" 653 | }, 654 | "Component - image": { 655 | "prefix": "image", 656 | "body": [ 657 | "{", 658 | "\t\"type\": \"image\",", 659 | "\t\"url\": \"${1:http://i.imgur.com/KUJPgGV.png}\",", 660 | "\t\"header\": { },", 661 | "\t\"style\": {", 662 | "\t\t\"width\": \"${2:30}\",", 663 | "\t\t\"height\": \"${3:10}\",", 664 | "\t\t\"color\": \"rgb(${4:0},${5:0},${6:0})\",", 665 | "\t\t\"corner_radius\": \"${7:0}\"", 666 | "\t}", 667 | "}" 668 | ], 669 | "description": "Image loaded from either remote url or data-url" 670 | }, 671 | "Component - button": { 672 | "prefix": "button", 673 | "body": [ 674 | "{", 675 | "\t\"type\": \"button\",", 676 | "\t\"text\": \"${1:Click Me}\",", 677 | "\t\"url\": \"${2:http://i.imgur.com/KUJPgGV.png}\",", 678 | "\t\"header\": { },", 679 | "\t\"style\": {", 680 | "\t\t\"width\": \"${3:30}\",", 681 | "\t\t\"height\": \"${4:10}\",", 682 | "\t\t\"color\": \"rgb(${5:0},${6:0},${7:0})\",", 683 | "\t\t\"background\": \"rgb(${8:0},${9:0},${10:0})\",", 684 | "\t\t\"corner_radius\": \"${11:0}\",", 685 | "\t\t\"padding\": \"${12:10}\",", 686 | "\t\t\"align\": \"${13|left,right,center|}\"", 687 | "\t},", 688 | "\t\"action\": { }", 689 | "}" 690 | ], 691 | "description": "A basic component that responds to user tap" 692 | }, 693 | "Component - textfield": { 694 | "prefix": "textfield", 695 | "body": [ 696 | "{", 697 | "\t\"type\": \"textfield\",", 698 | "\t\"name\": \"${1:LocalVariableName}\",", 699 | "\t\"placeholder\": \"${2:Placeholder Text}\",", 700 | "\t\"keyboard\": \"${3|text,number,phone,url,email|}\",", 701 | "\t\"style\": {", 702 | "\t\t\"background\": \"rgb(${4:0},${5:0},${6:0})\",", 703 | "\t\t\"align\": \"${7|left,right,center|}\",", 704 | "\t\t\"autocorrect\": \"${8|true,false|}\",", 705 | "\t\t\"autocapitalize\": \"${9|true,false|}\",", 706 | "\t\t\"spellcheck\": \"${10|true,false|}\",", 707 | "\t\t\"size\": \"${11:30}\",", 708 | "\t\t\"font\": \"${12|AcademyEngravedLetPlain,AlNile-Bold,AlNile,AmericanTypewriter,AmericanTypewriter-Bold,AmericanTypewriter-Condensed,AmericanTypewriter-CondensedBold,AmericanTypewriter-CondensedLight,AmericanTypewriter-Light,AppleColorEmoji,AppleSDGothicNeo-Thin,AppleSDGothicNeo-UltraLight,AppleSDGothicNeo-Light,AppleSDGothicNeo-Regular,AppleSDGothicNeo-Medium,AppleSDGothicNeo-SemiBold,AppleSDGothicNeo-Bold,AppleSDGothicNeo-Medium,ArialMT,Arial-BoldItalicMT,Arial-BoldMT,Arial-ItalicMT,ArialHebrew,ArialHebrew-Bold,ArialHebrew-Light,ArialRoundedMTBold,Avenir-Black,Avenir-BlackOblique,Avenir-Book,Avenir-BookOblique,Avenir-Heavy,Avenir-HeavyOblique,Avenir-Light,Avenir-LightOblique,Avenir-Medium,Avenir-MediumOblique,Avenir-Oblique,Avenir-Roman,AvenirNext-Bold,AvenirNext-BoldItalic,AvenirNext-DemiBold,AvenirNext-DemiBoldItalic,AvenirNext-Heavy,AvenirNext-HeavyItalic,AvenirNext-Italic,AvenirNext-Medium,AvenirNext-MediumItalic,AvenirNext-Regular,AvenirNext-UltraLight,AvenirNext-UltraLightItalic,AvenirNextCondensed-Bold,AvenirNextCondensed-BoldItalic,AvenirNextCondensed-DemiBold,AvenirNextCondensed-DemiBoldItalic,AvenirNextCondensed-Heavy,AvenirNextCondensed-HeavyItalic,AvenirNextCondensed-Italic,AvenirNextCondensed-Medium,AvenirNextCondensed-MediumItalic,AvenirNextCondensed-Regular,AvenirNextCondensed-UltraLight,AvenirNextCondensed-UltraLightItalic,BanglaSangamMN,BanglaSangamMN-Bold,Baskerville,Baskerville-Bold,Baskerville-BoldItalic,Baskerville-Italic,Baskerville-SemiBold,Baskerville-SemiBoldItalic,BodoniOrnamentsITCTT,BodoniSvtyTwoITCTT-Bold,BodoniSvtyTwoITCTT-Book,BodoniSvtyTwoITCTT-BookIta,BodoniSvtyTwoOSITCTT-Bold,BodoniSvtyTwoOSITCTT-Book,BodoniSvtyTwoOSITCTT-BookIt,BodoniSvtyTwoSCITCTT-Book,BradleyHandITCTT-Bold,ChalkboardSE-Bold,ChalkboardSE-Light,ChalkboardSE-Regular,Chalkduster,Cochin,Cochin-Bold,Cochin-BoldItalic,Cochin-Italic,Copperplate,Copperplate-Bold,Copperplate-Light,Courier,Courier-Bold,Courier-BoldOblique,Courier-Oblique,CourierNewPS-BoldItalicMT,CourierNewPS-BoldMT,CourierNewPS-ItalicMT,CourierNewPSMT,DBLCDTempBlack,DINAlternate-Bold,DINCondensed-Bold,DamascusBold,Damascus,DamascusLight,DamascusMedium,DamascusSemiBold,DevanagariSangamMN,DevanagariSangamMN-Bold,Didot,Didot-Bold,Didot-Italic,DiwanMishafi,EuphemiaUCAS,EuphemiaUCAS-Bold,EuphemiaUCAS-Italic,Farah,Futura-CondensedExtraBold,Futura-CondensedMedium,Futura-Medium,Futura-MediumItalic,GeezaPro,GeezaPro-Bold,Georgia,Georgia-Bold,Georgia-BoldItalic,Georgia-Italic,GillSans,GillSans-SemiBold,GillSans-SemiBoldItalic,GillSans-Bold,GillSans-BoldItalic,GillSans-UltraBold,GillSans-Italic,GillSans-Light,GillSans-LightItalic,GujaratiSangamMN,GujaratiSangamMN-Bold,GurmukhiMN,GurmukhiMN-Bold,STHeitiSC-Light,STHeitiSC-Medium,STHeitiTC-Light,STHeitiTC-Medium,Helvetica,Helvetica-Bold,Helvetica-BoldOblique,Helvetica-Light,Helvetica-LightOblique,Helvetica-Oblique,HelveticaNeue,HelveticaNeue-Bold,HelveticaNeue-BoldItalic,HelveticaNeue-CondensedBlack,HelveticaNeue-CondensedBold,HelveticaNeue-Italic,HelveticaNeue-Light,HelveticaNeue-LightItalic,HelveticaNeue-Medium,HelveticaNeue-MediumItalic,HelveticaNeue-UltraLight,HelveticaNeue-UltraLightItalic,HelveticaNeue-Thin,HelveticaNeue-ThinItalic,HiraKakuProN-W3,HiraKakuProN-W6,HiraMinProN-W3,HiraMinProN-W6,HiraginoSans-W3,HiraginoSans-W6,HoeflerText-Black,HoeflerText-BlackItalic,HoeflerText-Italic,HoeflerText-Regular,IowanOldStyle-Bold,IowanOldStyle-BoldItalic,IowanOldStyle-Italic,IowanOldStyle-Roman,Kailasa,Kailasa-Bold,KannadaSangamMN,KannadaSangamMN-Bold,KhmerSangamMN,KohinoorBangla-Light,KohinoorBangla-Regular,KohinoorBangla-Semibold,KohinoorDevanagari-Book,KohinoorDevanagari-Light,KohinoorDevanagari-Medium,KohinoorTelugu-Light,KohinoorTelugu-Regular,KohinoorTelugu-Medium,LaoSangamMN,MalayalamSangamMN,MalayalamSangamMN-Bold,Menlo-BoldItalic,Menlo-Regular,Menlo-Bold,Menlo-Italic,Marion-Bold,Marion-Italic,Marion-Regular,MarkerFelt-Thin,MarkerFelt-Wide,Noteworthy-Bold,Noteworthy-Light,Optima-Bold,Optima-BoldItalic,Optima-ExtraBlack,Optima-Italic,Optima-Regular,OriyaSangamMN,OriyaSangamMN-Bold,Palatino-Bold,Palatino-BoldItalic,Palatino-Italic,Palatino-Roman,Papyrus,Papyrus-Condensed,PartyLetPlain,PingFangHK-Ultralight,PingFangHK-Light,PingFangHK-Thin,PingFangHK-Regular,PingFangHK-Medium,PingFangHK-Semibold,PingFangSC-Ultralight,PingFangSC-Light,PingFangSC-Thin,PingFangSC-Regular,PingFangSC-Medium,PingFangSC-Semibold,PingFangTC-Ultralight,PingFangTC-Light,PingFangTC-Thin,PingFangTC-Regular,PingFangTC-Medium,PingFangTC-Semibold,SanFranciscoDisplay-Black,SanFranciscoDisplay-Bold,SanFranciscoDisplay-Heavy,SanFranciscoDisplay-Light,SanFranciscoDisplay-Medium,SanFranciscoDisplay-Regular,SanFranciscoDisplay-Semibold,SanFranciscoDisplay-Thin,SanFranciscoDisplay-Ultralight,SanFranciscoRounded-Black,SanFranciscoRounded-Bold,SanFranciscoRounded-Heavy,SanFranciscoRounded-Light,SanFranciscoRounded-Medium,SanFranciscoRounded-Regular,SanFranciscoRounded-Semibold,SanFranciscoRounded-Thin,SanFranciscoRounded-Ultralight,SanFranciscoText-Bold,SanFranciscoText-BoldG1,SanFranciscoText-BoldG2,SanFranciscoText-BoldG3,SanFranciscoText-BoldItalic,SanFranciscoText-BoldItalicG1,SanFranciscoText-BoldItalicG2,SanFranciscoText-BoldItalicG3,SanFranciscoText-Heavy,SanFranciscoText-HeavyItalic,SanFranciscoText-Light,SanFranciscoText-LightItalic,SanFranciscoText-Medium,SanFranciscoText-MediumItalic,SanFranciscoText-Regular,SanFranciscoText-RegularG1,SanFranciscoText-RegularG2,SanFranciscoText-RegularG3,SanFranciscoText-RegularItalic,SanFranciscoText-RegularItalicG1,SanFranciscoText-RegularItalicG2,SanFranciscoText-RegularItalicG3,SanFranciscoText-Semibold,SanFranciscoText-SemiboldItalic,SanFranciscoText-Thin,SanFranciscoText-ThinItalic,SavoyeLetPlain,SinhalaSangamMN,SinhalaSangamMN-Bold,SnellRoundhand,SnellRoundhand-Black,SnellRoundhand-Bold,Superclarendon-Regular,Superclarendon-BoldItalic,Superclarendon-Light,Superclarendon-BlackItalic,Superclarendon-Italic,Superclarendon-LightItalic,Superclarendon-Bold,Superclarendon-Black,TamilSangamMN,TamilSangamMN-Bold,TeluguSangamMN,TeluguSangamMN-Bold,Thonburi,Thonburi-Bold,Thonburi-Light,TimesNewRomanPS-BoldItalicMT,TimesNewRomanPS-BoldMT,TimesNewRomanPS-ItalicMT,TimesNewRomanPSMT,Trebuchet-BoldItalic,TrebuchetMS,TrebuchetMS-Bold,TrebuchetMS-Italic,Verdana,Verdana-Bold,Verdana-BoldItalic,Verdana-Italic,ZapfDingbatsITC,Zapfino|}\",", 709 | "\t\t\"color\": \"rgb(${13:0},${14:0},${15:0})\",", 710 | "\t\t\"placeholder_color\": \"rgb(${16:0},${17:0},${18:0})\",", 711 | "\t\t\"secure\": \"${19|true,false|}\"", 712 | "\t}", 713 | "}" 714 | ], 715 | "description": "Single line input field" 716 | }, 717 | "Component - textarea": { 718 | "prefix": "textarea", 719 | "body": [ 720 | "{", 721 | "\t\"type\": \"textarea\",", 722 | "\t\"name\": \"${1:LocalVariableName}\",", 723 | "\t\"value\": \"${2:Prefilled Value}\",", 724 | "\t\"placeholder\": \"${3:Placeholder Text}\",", 725 | "\t\"keyboard\": \"${4|text,number,phone,url,email|}\",", 726 | "\t\"style\": {", 727 | "\t\t\"background\": \"rgb(${5:0},${6:0},${7:0})\",", 728 | "\t\t\"align\": \"${8|left,right,center|}\",", 729 | "\t\t\"autocorrect\": \"${9|true,false|}\",", 730 | "\t\t\"autocapitalize\": \"${10|true,false|}\",", 731 | "\t\t\"spellcheck\": \"${11|true,false|}\",", 732 | "\t\t\"size\": \"${12:30}\",", 733 | "\t\t\"font\": \"${13|AcademyEngravedLetPlain,AlNile-Bold,AlNile,AmericanTypewriter,AmericanTypewriter-Bold,AmericanTypewriter-Condensed,AmericanTypewriter-CondensedBold,AmericanTypewriter-CondensedLight,AmericanTypewriter-Light,AppleColorEmoji,AppleSDGothicNeo-Thin,AppleSDGothicNeo-UltraLight,AppleSDGothicNeo-Light,AppleSDGothicNeo-Regular,AppleSDGothicNeo-Medium,AppleSDGothicNeo-SemiBold,AppleSDGothicNeo-Bold,AppleSDGothicNeo-Medium,ArialMT,Arial-BoldItalicMT,Arial-BoldMT,Arial-ItalicMT,ArialHebrew,ArialHebrew-Bold,ArialHebrew-Light,ArialRoundedMTBold,Avenir-Black,Avenir-BlackOblique,Avenir-Book,Avenir-BookOblique,Avenir-Heavy,Avenir-HeavyOblique,Avenir-Light,Avenir-LightOblique,Avenir-Medium,Avenir-MediumOblique,Avenir-Oblique,Avenir-Roman,AvenirNext-Bold,AvenirNext-BoldItalic,AvenirNext-DemiBold,AvenirNext-DemiBoldItalic,AvenirNext-Heavy,AvenirNext-HeavyItalic,AvenirNext-Italic,AvenirNext-Medium,AvenirNext-MediumItalic,AvenirNext-Regular,AvenirNext-UltraLight,AvenirNext-UltraLightItalic,AvenirNextCondensed-Bold,AvenirNextCondensed-BoldItalic,AvenirNextCondensed-DemiBold,AvenirNextCondensed-DemiBoldItalic,AvenirNextCondensed-Heavy,AvenirNextCondensed-HeavyItalic,AvenirNextCondensed-Italic,AvenirNextCondensed-Medium,AvenirNextCondensed-MediumItalic,AvenirNextCondensed-Regular,AvenirNextCondensed-UltraLight,AvenirNextCondensed-UltraLightItalic,BanglaSangamMN,BanglaSangamMN-Bold,Baskerville,Baskerville-Bold,Baskerville-BoldItalic,Baskerville-Italic,Baskerville-SemiBold,Baskerville-SemiBoldItalic,BodoniOrnamentsITCTT,BodoniSvtyTwoITCTT-Bold,BodoniSvtyTwoITCTT-Book,BodoniSvtyTwoITCTT-BookIta,BodoniSvtyTwoOSITCTT-Bold,BodoniSvtyTwoOSITCTT-Book,BodoniSvtyTwoOSITCTT-BookIt,BodoniSvtyTwoSCITCTT-Book,BradleyHandITCTT-Bold,ChalkboardSE-Bold,ChalkboardSE-Light,ChalkboardSE-Regular,Chalkduster,Cochin,Cochin-Bold,Cochin-BoldItalic,Cochin-Italic,Copperplate,Copperplate-Bold,Copperplate-Light,Courier,Courier-Bold,Courier-BoldOblique,Courier-Oblique,CourierNewPS-BoldItalicMT,CourierNewPS-BoldMT,CourierNewPS-ItalicMT,CourierNewPSMT,DBLCDTempBlack,DINAlternate-Bold,DINCondensed-Bold,DamascusBold,Damascus,DamascusLight,DamascusMedium,DamascusSemiBold,DevanagariSangamMN,DevanagariSangamMN-Bold,Didot,Didot-Bold,Didot-Italic,DiwanMishafi,EuphemiaUCAS,EuphemiaUCAS-Bold,EuphemiaUCAS-Italic,Farah,Futura-CondensedExtraBold,Futura-CondensedMedium,Futura-Medium,Futura-MediumItalic,GeezaPro,GeezaPro-Bold,Georgia,Georgia-Bold,Georgia-BoldItalic,Georgia-Italic,GillSans,GillSans-SemiBold,GillSans-SemiBoldItalic,GillSans-Bold,GillSans-BoldItalic,GillSans-UltraBold,GillSans-Italic,GillSans-Light,GillSans-LightItalic,GujaratiSangamMN,GujaratiSangamMN-Bold,GurmukhiMN,GurmukhiMN-Bold,STHeitiSC-Light,STHeitiSC-Medium,STHeitiTC-Light,STHeitiTC-Medium,Helvetica,Helvetica-Bold,Helvetica-BoldOblique,Helvetica-Light,Helvetica-LightOblique,Helvetica-Oblique,HelveticaNeue,HelveticaNeue-Bold,HelveticaNeue-BoldItalic,HelveticaNeue-CondensedBlack,HelveticaNeue-CondensedBold,HelveticaNeue-Italic,HelveticaNeue-Light,HelveticaNeue-LightItalic,HelveticaNeue-Medium,HelveticaNeue-MediumItalic,HelveticaNeue-UltraLight,HelveticaNeue-UltraLightItalic,HelveticaNeue-Thin,HelveticaNeue-ThinItalic,HiraKakuProN-W3,HiraKakuProN-W6,HiraMinProN-W3,HiraMinProN-W6,HiraginoSans-W3,HiraginoSans-W6,HoeflerText-Black,HoeflerText-BlackItalic,HoeflerText-Italic,HoeflerText-Regular,IowanOldStyle-Bold,IowanOldStyle-BoldItalic,IowanOldStyle-Italic,IowanOldStyle-Roman,Kailasa,Kailasa-Bold,KannadaSangamMN,KannadaSangamMN-Bold,KhmerSangamMN,KohinoorBangla-Light,KohinoorBangla-Regular,KohinoorBangla-Semibold,KohinoorDevanagari-Book,KohinoorDevanagari-Light,KohinoorDevanagari-Medium,KohinoorTelugu-Light,KohinoorTelugu-Regular,KohinoorTelugu-Medium,LaoSangamMN,MalayalamSangamMN,MalayalamSangamMN-Bold,Menlo-BoldItalic,Menlo-Regular,Menlo-Bold,Menlo-Italic,Marion-Bold,Marion-Italic,Marion-Regular,MarkerFelt-Thin,MarkerFelt-Wide,Noteworthy-Bold,Noteworthy-Light,Optima-Bold,Optima-BoldItalic,Optima-ExtraBlack,Optima-Italic,Optima-Regular,OriyaSangamMN,OriyaSangamMN-Bold,Palatino-Bold,Palatino-BoldItalic,Palatino-Italic,Palatino-Roman,Papyrus,Papyrus-Condensed,PartyLetPlain,PingFangHK-Ultralight,PingFangHK-Light,PingFangHK-Thin,PingFangHK-Regular,PingFangHK-Medium,PingFangHK-Semibold,PingFangSC-Ultralight,PingFangSC-Light,PingFangSC-Thin,PingFangSC-Regular,PingFangSC-Medium,PingFangSC-Semibold,PingFangTC-Ultralight,PingFangTC-Light,PingFangTC-Thin,PingFangTC-Regular,PingFangTC-Medium,PingFangTC-Semibold,SanFranciscoDisplay-Black,SanFranciscoDisplay-Bold,SanFranciscoDisplay-Heavy,SanFranciscoDisplay-Light,SanFranciscoDisplay-Medium,SanFranciscoDisplay-Regular,SanFranciscoDisplay-Semibold,SanFranciscoDisplay-Thin,SanFranciscoDisplay-Ultralight,SanFranciscoRounded-Black,SanFranciscoRounded-Bold,SanFranciscoRounded-Heavy,SanFranciscoRounded-Light,SanFranciscoRounded-Medium,SanFranciscoRounded-Regular,SanFranciscoRounded-Semibold,SanFranciscoRounded-Thin,SanFranciscoRounded-Ultralight,SanFranciscoText-Bold,SanFranciscoText-BoldG1,SanFranciscoText-BoldG2,SanFranciscoText-BoldG3,SanFranciscoText-BoldItalic,SanFranciscoText-BoldItalicG1,SanFranciscoText-BoldItalicG2,SanFranciscoText-BoldItalicG3,SanFranciscoText-Heavy,SanFranciscoText-HeavyItalic,SanFranciscoText-Light,SanFranciscoText-LightItalic,SanFranciscoText-Medium,SanFranciscoText-MediumItalic,SanFranciscoText-Regular,SanFranciscoText-RegularG1,SanFranciscoText-RegularG2,SanFranciscoText-RegularG3,SanFranciscoText-RegularItalic,SanFranciscoText-RegularItalicG1,SanFranciscoText-RegularItalicG2,SanFranciscoText-RegularItalicG3,SanFranciscoText-Semibold,SanFranciscoText-SemiboldItalic,SanFranciscoText-Thin,SanFranciscoText-ThinItalic,SavoyeLetPlain,SinhalaSangamMN,SinhalaSangamMN-Bold,SnellRoundhand,SnellRoundhand-Black,SnellRoundhand-Bold,Superclarendon-Regular,Superclarendon-BoldItalic,Superclarendon-Light,Superclarendon-BlackItalic,Superclarendon-Italic,Superclarendon-LightItalic,Superclarendon-Bold,Superclarendon-Black,TamilSangamMN,TamilSangamMN-Bold,TeluguSangamMN,TeluguSangamMN-Bold,Thonburi,Thonburi-Bold,Thonburi-Light,TimesNewRomanPS-BoldItalicMT,TimesNewRomanPS-BoldMT,TimesNewRomanPS-ItalicMT,TimesNewRomanPSMT,Trebuchet-BoldItalic,TrebuchetMS,TrebuchetMS-Bold,TrebuchetMS-Italic,Verdana,Verdana-Bold,Verdana-BoldItalic,Verdana-Italic,ZapfDingbatsITC,Zapfino|}\",", 734 | "\t\t\"color\": \"rgb(${14:0},${15:0},${16:0})\",", 735 | "\t\t\"placeholder_color\": \"rgb(${17:0},${18:0},${19:0})\"", 736 | "\t}", 737 | "}" 738 | ], 739 | "description": "Multiline input field" 740 | }, 741 | "Component - slider": { 742 | "prefix": "slider", 743 | "body": [ 744 | "{", 745 | "\t\"type\": \"slider\",", 746 | "\t\"name\": \"${1:LocalVariableName}\",", 747 | "\t\"value\": \"${2:0.3}\",", 748 | "\t\"action\": { },", 749 | "\t\"style\": {", 750 | "\t\t\"width\": \"${3:30}\",", 751 | "\t\t\"height\": \"${4:10}\",", 752 | "\t\t\"color\": \"rgb(${5:0},${6:0},${7:0})\"", 753 | "\t}", 754 | "}" 755 | ], 756 | "description": "Horizontal slider input" 757 | }, 758 | "Component - html": { 759 | "prefix": "html", 760 | "body": [ 761 | "{", 762 | "\t\"type\": \"html\",", 763 | "\t\"style\": { },", 764 | "\t\"text\": \"${1: