@maccesar/titools 4.4.2 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -178,7 +178,7 @@ The knowledge index is based on the latest Titanium SDK documentation. If your p
178
178
  | purgetss | Utility-first styling | UI styling and animations |
179
179
  | ti-ui | UI/UX patterns | Complex layouts, ListViews, platform UI |
180
180
  | ti-api | Complete Titanium API reference | Looking up properties, methods, events |
181
- | ti-guides | SDK fundamentals | tiapp.xml, Hyperloop, distribution |
181
+ | ti-guides | SDK fundamentals | tiapp.xml, Hyperloop, distribution, JDK/Xcode compatibility, release notes |
182
182
  | ti-howtos | Native feature integration | Location, push, media, platform APIs |
183
183
  | alloy-guides | Alloy MVC framework reference | Controllers, models, views, widgets |
184
184
  | alloy-howtos | Alloy CLI, configuration, debugging | alloy.jmk, config.json, custom XML tags |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maccesar/titools",
3
- "version": "4.4.2",
3
+ "version": "4.5.0",
4
4
  "description": "Titanium SDK skills and agents for AI coding assistants (Claude Code, Gemini CLI, Codex CLI)",
5
5
  "main": "lib/index.js",
6
6
  "type": "module",
@@ -160,75 +160,227 @@ The Media module is used to access the device's media-related functionality, suc
160
160
 
161
161
  ### Related Types
162
162
 
163
+ > **Warning:** `success` receives a different shape depending on `allowMultiple`. With a single selection it is a `CameraMediaItemType` and the blob is on `e.media`. With `allowMultiple: true` it is a `CameraMediaMultipleItemsType` and there is no `e.media` at all — the blobs live under `e.images`, `e.videos` and `e.livePhotos`, each entry itself a `CameraMediaItemType`.
164
+
165
+ #### CameraMediaItemType
166
+ > A media object from the camera or photo gallery.
167
+
168
+ | Property | Type | Platform | Description |
169
+ |----------|------|----------|-------------|
170
+ | success | Boolean | both | Indicates if the operation succeeded. Returns `true`. |
171
+ | error | String | both | Error message, if any returned. |
172
+ | code | Number | both | Error code. Returns 0. |
173
+ | media | Ti.Blob | both | The media object, as a [Blob](Titanium.Blob). |
174
+ | path | String | android | The path of the image when returning data from the gallery. |
175
+ | mediaType | String | both | The type of media, either `MEDIA_TYPE_PHOTO`, `MEDIA_TYPE_LIVEPHOTO` or `MEDIA_… |
176
+ | cropRect | Dimension | both | Simple object defining the user's selected crop rectangle, or `null` if the use… |
177
+ | previewRect | Size | android | Simple object defining the preview image size. This will be undefined when cust… |
178
+ | livePhoto | Ti.UI.iOS.LivePhoto | both | The live photo object, as a <Titanium.UI.iOS.LivePhoto> and `undefined` if no l… |
179
+
180
+ #### CameraMediaMultipleItemsType
181
+ > A media object from photo gallery when <Titanium.Media.allowMultiple> is `true`.
182
+
183
+ | Property | Type | Platform | Description |
184
+ |----------|------|----------|-------------|
185
+ | success | Boolean | both | Indicates if the operation succeeded. Returns `true`. |
186
+ | error | String | both | Error message, if any returned. |
187
+ | code | Number | both | Error code. Returns 0. |
188
+ | images | Array<CameraMediaItemType> | both | The list of selected images. |
189
+ | livePhotos | Array<Titanium.UI.iOS.LivePhoto> | ios | The list of selected live photo objects. |
190
+ | videos | Array<CameraMediaItemType> | both | The list of selected videos. |
191
+
192
+ #### CameraOpen
193
+ > Parameters of the open callback
194
+
195
+ | Property | Type | Platform | Description |
196
+ |----------|------|----------|-------------|
197
+ | width | Number | android | Width of the preview camera image |
198
+ | height | Number | android | Height of the preview camera image |
199
+
163
200
  #### CameraOptionsType
164
201
  > Simple object for specifying options to [showCamera](Titanium.Media.showCamera).
165
202
 
166
- | Property | Type | Description |
167
- |----------|------|-------------|
168
- | success | Callback<CameraMediaItemType> | Function to call when the camera is closed after a successful capture/selection. |
169
- | open | Callback<CameraOpen> | Function to call when the camera is shown |
170
- | error | Callback<FailureResponse> | Function to call upon receiving an error. |
171
- | cancel | Callback<FailureResponse> | Function to call if the user presses the cancel button. |
172
- | recording | Callback<CameraRecordingCallback> | Function to call during recording. Returns size and duration. |
173
- | androidback | Callback<FailureResponse> | Function to call if the user presses the back button. |
174
- | autohide | Boolean | Specifies if the camera should be hidden automatically after the media capture … |
175
- | animated | Boolean | Specifies if the dialog should be animated upon showing and hiding. |
176
- | saveToPhotoGallery | Boolean | Specifies if the media should be saved to the photo gallery upon successful cap… |
177
- | allowEditing | Boolean | Specifies if the media should be editable after capture/selection. |
178
- | zoomEnabled | Boolean | Specifies if pinch to zoom is enabled or not. |
179
- | targetImageWidth | Number | Maximum width of the saved image. Depending on your phone and your value this m… |
180
- | targetImageHeight | Number | Maximum height of the saved image. Depending on your phone and your value this … |
181
- | mediaTypes | Array<String> | Array of media type constants to allow. Note: If you want to select live photos… |
182
- | videoMaximumDuration | Number | Maximum duration (in milliseconds) to allow video capture before completing. |
183
- | videoQuality | Number | Constant to indicate the video quality during capture. |
184
- | whichCamera | Number | Opens the camera with the specified camera direction. |
185
- | showControls | Boolean | Indicates if the built-in camera controls should be displayed. |
186
- | overlay | Ti.UI.View | View to added as an overlay to the camera UI (on top). |
187
- | transform | Ti.UI.Matrix2D | Transformation matrix to apply to the camera or photogallery view. |
188
- | inPopOver | Boolean | Show the camera in a popover. |
189
- | popoverView | Ti.UI.View | View to position the camera or photo gallery popover on top of. |
190
- | arrowDirection | Number | Controls the type of arrow and position of the popover. |
191
- | autorotate | Boolean | Determines if the camera preview should rotate or not. |
203
+ | Property | Type | Platform | Description |
204
+ |----------|------|----------|-------------|
205
+ | success | Callback<CameraMediaItemType> | both | Function to call when the camera is closed after a successful capture/selection. |
206
+ | open | Callback<CameraOpen> | android | Function to call when the camera is shown |
207
+ | error | Callback<FailureResponse> | both | Function to call upon receiving an error. |
208
+ | cancel | Callback<FailureResponse> | both | Function to call if the user presses the cancel button. |
209
+ | recording | Callback<CameraRecordingCallback> | android | Function to call during recording. Returns size and duration. |
210
+ | androidback | Callback<FailureResponse> | android | Function to call if the user presses the back button. |
211
+ | autohide | Boolean | both | Specifies if the camera should be hidden automatically after the media capture … |
212
+ | animated | Boolean | ios | Specifies if the dialog should be animated upon showing and hiding. |
213
+ | saveToPhotoGallery | Boolean | both | Specifies if the media should be saved to the photo gallery upon successful cap… |
214
+ | allowEditing | Boolean | ios | Specifies if the media should be editable after capture/selection. |
215
+ | zoomEnabled | Boolean | android | Specifies if pinch to zoom is enabled or not. |
216
+ | targetImageWidth | Number | android | Maximum width of the saved image. Depending on your phone and your value this m… |
217
+ | targetImageHeight | Number | android | Maximum height of the saved image. Depending on your phone and your value this … |
218
+ | mediaTypes | Array<String> | both | Array of media type constants to allow. Note: If you want to select live photos… |
219
+ | videoMaximumDuration | Number | both | Maximum duration (in milliseconds) to allow video capture before completing. |
220
+ | videoQuality | Number | both | Constant to indicate the video quality during capture. |
221
+ | whichCamera | Number | android | Opens the camera with the specified camera direction. |
222
+ | showControls | Boolean | ios | Indicates if the built-in camera controls should be displayed. |
223
+ | overlay | Ti.UI.View | both | View to added as an overlay to the camera UI (on top). |
224
+ | transform | Ti.UI.Matrix2D | ios | Transformation matrix to apply to the camera or photogallery view. |
225
+ | inPopOver | Boolean | ios | Show the camera in a popover. |
226
+ | popoverView | Ti.UI.View | ios | View to position the camera or photo gallery popover on top of. |
227
+ | arrowDirection | Number | ios | Controls the type of arrow and position of the popover. |
228
+ | autorotate | Boolean | ios | Determines if the camera preview should rotate or not. |
229
+
230
+ #### CameraRecordingCallback
231
+ > Infos about the current video recording
232
+
233
+ | Property | Type | Platform | Description |
234
+ |----------|------|----------|-------------|
235
+ | duration | Number | both | Length in milliseconds |
236
+ | size | Number | both | Size of the video in bytes |
237
+
238
+ #### FailureResponse
239
+ > Properties used in any event or callback which needs to report a failure.
240
+
241
+ | Property | Type | Platform | Description |
242
+ |----------|------|----------|-------------|
243
+ | success | Boolean | both | Indicates if the operation succeeded. Returns `false`. |
244
+ | error | String | both | Error message, if any returned. |
245
+ | code | Number | both | Error code. Returns a non-zero value. |
246
+
247
+ #### MediaAuthorizationResponse
248
+ > Argument passed to the callback when a request finishes successfully or erroneously.
249
+
250
+ | Property | Type | Platform | Description |
251
+ |----------|------|----------|-------------|
252
+ | success | Boolean | both | Indicates if the operation succeeded. |
253
+ | error | String | both | Error message, if any returned. |
254
+ | code | Number | both | Error code. Returns 0 if `success` is `true`. |
255
+
256
+ #### MediaQueryInfoType
257
+ > A full query descriptor for a filtering predicate.
258
+
259
+ | Property | Type | Platform | Description |
260
+ |----------|------|----------|-------------|
261
+ | value | Number \| String \| Boolean | ios | The value for the given predicate. See the descriptions in <MediaQueryType> for… |
262
+ | exact | Boolean | ios | Whether or not the predicate is for an exact match. The default is `true`. |
192
263
 
193
264
  #### MediaQueryType
194
265
  > A specifier for a media library query. By default, filters perform an exact match.
195
266
 
196
- | Property | Type | Description |
197
- |----------|------|-------------|
198
- | grouping | Number | A constant that specifies the ordering of the result array. |
199
- | mediaType | MediaQueryInfoType \| Number | The media type to filter on. |
200
- | title | MediaQueryInfoType \| String | The title to filter on. Value should be a String. |
201
- | albumTitle | MediaQueryInfoType \| String | The album title to filter on. Value should be a String. |
202
- | artist | MediaQueryInfoType \| String | The artist to filter on. Value should be a String. |
203
- | albumArtist | MediaQueryInfoType \| String | The album artist to filter on. Value should be a String. |
204
- | genre | MediaQueryInfoType \| String | The genre to filter on. Value should be a String. |
205
- | composer | MediaQueryInfoType \| String | The composer to filter on. Value should be a String. |
206
- | isCompilation | MediaQueryInfoType \| Boolean | Filter by whether or not the item is a compilation. The value should be a Boole… |
207
- | playCount | MediaQueryInfoType \| Number | The play count to filter on. Value should be a Number. |
208
- | persistentID | MediaQueryInfoType \| Number | The persistent ID to filter on. Value should be a Number. |
209
- | albumPersistentID | MediaQueryInfoType \| Number | The album persistent ID to filter on. Value should be a Number. |
210
- | albumArtistPersistentID | MediaQueryInfoType \| Number | The album artist persistent ID to filter on. Value should be a Number. |
211
- | genrePersistentID | MediaQueryInfoType \| Number | The genre persistent ID to filter on. Value should be a Number. |
212
- | composerPersistentID | MediaQueryInfoType \| Number | The composer persistent ID to filter on. Value should be a Number. |
213
- | isCloudItem | MediaQueryInfoType \| Boolean | Filter by whether or not the item is a cloud item. Value should be a Boolean. |
214
- | hasProtectedAsset | MediaQueryInfoType \| Boolean | Filter by whether or not the item is a protected asset. Value should be a Boole… |
215
- | podcastTitle | MediaQueryInfoType \| String | The podcast title to filter on. Value should be a String. |
216
- | podcastPersistentID | MediaQueryInfoType \| Number | The podcast persistent ID to filter on. Value should be a Number. |
267
+ | Property | Type | Platform | Description |
268
+ |----------|------|----------|-------------|
269
+ | grouping | Number | ios | A constant that specifies the ordering of the result array. |
270
+ | mediaType | MediaQueryInfoType \| Number | ios | The media type to filter on. |
271
+ | title | MediaQueryInfoType \| String | ios | The title to filter on. Value should be a String. |
272
+ | albumTitle | MediaQueryInfoType \| String | ios | The album title to filter on. Value should be a String. |
273
+ | artist | MediaQueryInfoType \| String | ios | The artist to filter on. Value should be a String. |
274
+ | albumArtist | MediaQueryInfoType \| String | ios | The album artist to filter on. Value should be a String. |
275
+ | genre | MediaQueryInfoType \| String | ios | The genre to filter on. Value should be a String. |
276
+ | composer | MediaQueryInfoType \| String | ios | The composer to filter on. Value should be a String. |
277
+ | isCompilation | MediaQueryInfoType \| Boolean | ios | Filter by whether or not the item is a compilation. The value should be a Boole… |
278
+ | playCount | MediaQueryInfoType \| Number | ios | The play count to filter on. Value should be a Number. |
279
+ | persistentID | MediaQueryInfoType \| Number | ios | The persistent ID to filter on. Value should be a Number. |
280
+ | albumPersistentID | MediaQueryInfoType \| Number | ios | The album persistent ID to filter on. Value should be a Number. |
281
+ | albumArtistPersistentID | MediaQueryInfoType \| Number | ios | The album artist persistent ID to filter on. Value should be a Number. |
282
+ | genrePersistentID | MediaQueryInfoType \| Number | ios | The genre persistent ID to filter on. Value should be a Number. |
283
+ | composerPersistentID | MediaQueryInfoType \| Number | ios | The composer persistent ID to filter on. Value should be a Number. |
284
+ | isCloudItem | MediaQueryInfoType \| Boolean | ios | Filter by whether or not the item is a cloud item. Value should be a Boolean. |
285
+ | hasProtectedAsset | MediaQueryInfoType \| Boolean | ios | Filter by whether or not the item is a protected asset. Value should be a Boole… |
286
+ | podcastTitle | MediaQueryInfoType \| String | ios | The podcast title to filter on. Value should be a String. |
287
+ | podcastPersistentID | MediaQueryInfoType \| Number | ios | The podcast persistent ID to filter on. Value should be a Number. |
217
288
 
218
289
  #### MusicLibraryOptionsType
219
290
  > Simple object for specifying options to [openMusicLibrary](Titanium.Media.openMusicLibrary).
220
291
 
221
- | Property | Type | Description |
222
- |----------|------|-------------|
223
- | success | Callback<MusicLibraryResponseType> | Function to call when the music library selection is made. |
224
- | error | Callback<FailureResponse> | Function to call upon receiving an error. |
225
- | cancel | Callback<FailureResponse> | Function to call if the user presses the cancel button. |
226
- | autohide | Boolean | Specifies that the library should be hidden automatically after media selection… |
227
- | animated | Boolean | Boolean if the dialog should be animated when showing and hiding. |
228
- | mediaTypes | Number \| Array<Number> | An array of media type constants defining selectable media. |
229
- | allowMultipleSelections | Boolean | Set to `true` to allow the user to select multiple items from the library. |
230
-
231
- *Plus 2 more types: *
292
+ | Property | Type | Platform | Description |
293
+ |----------|------|----------|-------------|
294
+ | success | Callback<MusicLibraryResponseType> | ios | Function to call when the music library selection is made. |
295
+ | error | Callback<FailureResponse> | ios | Function to call upon receiving an error. |
296
+ | cancel | Callback<FailureResponse> | ios | Function to call if the user presses the cancel button. |
297
+ | autohide | Boolean | ios | Specifies that the library should be hidden automatically after media selection… |
298
+ | animated | Boolean | ios | Boolean if the dialog should be animated when showing and hiding. |
299
+ | mediaTypes | Number \| Array<Number> | ios | An array of media type constants defining selectable media. |
300
+ | allowMultipleSelections | Boolean | ios | Set to `true` to allow the user to select multiple items from the library. |
301
+
302
+ #### MusicLibraryResponseType
303
+ > Simple object passed to the [openMusicLibrary](Titanium.Media.openMusicLibrary) `success` callback function.
304
+
305
+ | Property | Type | Platform | Description |
306
+ |----------|------|----------|-------------|
307
+ | representative | Ti.Media.Item | both | A single representative of the selected items. |
308
+ | items | Array<Titanium.Media.Item> | both | A list of all the items chosen by the user. |
309
+ | types | Number | both | Media types in this collection, represented as the bitwise OR of the media type… |
310
+
311
+ #### PhotoGalleryOptionsType
312
+ > Simple object for specifying options to [openPhotoGallery](Titanium.Media.openPhotoGallery).
313
+
314
+ | Property | Type | Platform | Description |
315
+ |----------|------|----------|-------------|
316
+ | success | Callback<CameraMediaItemType> \| Callback<CameraMediaMultipleItemsType> | both | Function to call when the photo gallery is closed after a successful selection. |
317
+ | error | Callback<FailureResponse> | both | Function to call upon receiving an error. |
318
+ | cancel | Callback<FailureResponse> | both | Function to call if the user presses the cancel button. |
319
+ | autohide | Boolean | ios | Specifies if the photo gallery should be hidden automatically after the media s… |
320
+ | animated | Boolean | ios | Specifies if the dialog should be animated upon showing and hiding. |
321
+ | allowEditing | Boolean | ios | Specifies if the media should be editable after capture/selection. |
322
+ | mediaTypes | Array<String> | both | Array of media type constants to allow. Live photos is only supported on the iO… |
323
+ | popoverView | Ti.UI.View | ios | View to position the photo gallery popover on top of. |
324
+ | arrowDirection | Number | ios | Controls the type of arrow and position of the popover. |
325
+ | allowMultiple | Boolean | both | Specifies if the user should be able to select multiple photos. |
326
+ | maxImages | Boolean | android | Specifies the number of images a user can select at maximum. |
327
+ | pathOnly | Boolean | android | Do not include the blob in the result |
328
+ | selectionLimit | Boolean | ios | Specifies number of media item that can be selected. |
329
+ | allowTranscoding | Boolean | ios | Specifies if the video should be transcoded (using highest quality preset) . If… |
330
+
331
+ #### PreviewImageError
332
+ > The parameter passed to the `error` callback of <PreviewImageOptions>.
333
+
334
+ | Property | Type | Platform | Description |
335
+ |----------|------|----------|-------------|
336
+ | success | Boolean | android | Indicates if the operation succeeded. Returns `false`. |
337
+ | error | String | android | Error message, if any returned. |
338
+ | code | Number | android | Error code, if applicable. |
339
+ | message | String | android | Description of the error. |
340
+
341
+ #### PreviewImageOptions
342
+ > Options passed to <Titanium.Media.previewImage>.
343
+
344
+ | Property | Type | Platform | Description |
345
+ |----------|------|----------|-------------|
346
+ | image | Ti.Blob | android | The image to preview. Must be a blob based on a file, such as from <Titanium.Fi… |
347
+ | success | Callback<SuccessResponse> | android | Function to be called back if the preview succeeds. No info is passed. |
348
+ | error | Callback<PreviewImageError> | android | Function called back if the preview fails. Check the `message` property of pass… |
349
+
350
+ #### RouteDescription
351
+ > An Object describing the current audio route.
352
+
353
+ | Property | Type | Platform | Description |
354
+ |----------|------|----------|-------------|
355
+ | inputs | Array<String> | ios | An Array of current input ports for the session. See the `AUDIO_SESSION_PORT` c… |
356
+ | outputs | Array<String> | ios | An Array of current output ports for the session. See the `AUDIO_SESSION_PORT` … |
357
+
358
+ #### ScreenshotResult
359
+ > The parameter passed to the <Titanium.Media.takeScreenshot> callback.
360
+
361
+ | Property | Type | Platform | Description |
362
+ |----------|------|----------|-------------|
363
+ | media | Ti.Blob | both | The screenshot image. |
364
+
365
+ #### SuccessResponse
366
+ > Properties used in any event or callback which needs to report a success.
367
+
368
+ | Property | Type | Platform | Description |
369
+ |----------|------|----------|-------------|
370
+ | success | Boolean | both | Indicates if the operation succeeded. Returns `true`. |
371
+ | error | String | both | Error message, if any returned. |
372
+ | code | Number | both | Error code. Returns 0. |
373
+
374
+ #### RequestCameraAccessResult
375
+ > Same shape as [MediaAuthorizationResponse](#mediaauthorizationresponse): `success`, `error`, `code`.
376
+
377
+ #### RequestMusicLibraryAccessResult
378
+ > Same shape as [MediaAuthorizationResponse](#mediaauthorizationresponse): `success`, `error`, `code`.
379
+
380
+ #### RequestPhotoGalleryAccessResult
381
+ > Same shape as [MediaAuthorizationResponse](#mediaauthorizationresponse): `success`, `error`, `code`.
382
+
383
+ Also referenced by this API, documented elsewhere: `Dictionary`.
232
384
 
233
385
  ---
234
386
 
@@ -597,32 +597,42 @@ In Alloy, use the **`<Module>`** element with the `module` attribute set to `ti.
597
597
  #### CameraAnimationParams
598
598
  > Simple object used to control camera animations.
599
599
 
600
- | Property | Type | Description |
601
- |----------|------|-------------|
602
- | camera | Modules.Map.Annotation | <Modules.Map.Camera> to be animated to. |
603
- | duration | Number | The amount of time (in milliseconds) that the animation will last. |
604
- | curve | Number | Animation curve or easing function to apply to the animation. |
600
+ | Property | Type | Platform | Description |
601
+ |----------|------|----------|-------------|
602
+ | camera | Modules.Map.Annotation | both | <Modules.Map.Camera> to be animated to. |
603
+ | duration | Number | both | The amount of time (in milliseconds) that the animation will last. |
604
+ | curve | Number | both | Animation curve or easing function to apply to the animation. |
605
605
 
606
606
  #### ClusterAnnotationParams
607
607
  > Simple object used to create cluster annotation view.
608
608
 
609
- | Property | Type | Description |
610
- |----------|------|-------------|
611
- | memberAnnotations | Array<Modules.Map.Annotation> | Array of Modules.Map.Annotation, which is recieved in event 'clusteringstarted'… |
612
- | annotation | Modules.Map.Annotation | <Modules.Map.Annotation> instance, which you want to show as clustered annotati… |
609
+ | Property | Type | Platform | Description |
610
+ |----------|------|----------|-------------|
611
+ | memberAnnotations | Array<Modules.Map.Annotation> | ios | Array of Modules.Map.Annotation, which is received in event 'clusteringstarted'… |
612
+ | annotation | Modules.Map.Annotation | ios | <Modules.Map.Annotation> instance, which you want to show as clustered annotati… |
613
613
 
614
614
  #### MapLocationTypeV2
615
615
  > Simple object used as an argument to [setLocation](Modules.Map.View.setLocation).
616
616
 
617
- | Property | Type | Description |
618
- |----------|------|-------------|
619
- | longitude | Number | Longitude value for the center point of the map, in decimal degrees. |
620
- | latitude | Number | Latitude value for the center point of the map, in decimal degrees. |
621
- | longitudeDelta | Number | The amount of east-to-west distance displayed on the map, measured in decimal d… |
622
- | latitudeDelta | Number | The amount of north-to-south distance displayed on the map, measured in decimal… |
623
- | animate | Boolean | Set to `true` to animate the move to the new location. |
624
-
625
- *Plus 3 more types: MapViewPadding*
617
+ | Property | Type | Platform | Description |
618
+ |----------|------|----------|-------------|
619
+ | longitude | Number | both | Longitude value for the center point of the map, in decimal degrees. |
620
+ | latitude | Number | both | Latitude value for the center point of the map, in decimal degrees. |
621
+ | longitudeDelta | Number | both | The amount of east-to-west distance displayed on the map, measured in decimal d… |
622
+ | latitudeDelta | Number | both | The amount of north-to-south distance displayed on the map, measured in decimal… |
623
+ | animate | Boolean | both | Set to `true` to animate the move to the new location. |
624
+
625
+ #### MapViewPadding
626
+ > The padding applied to the map view using <Modules.Map.View.padding>.
627
+
628
+ | Property | Type | Platform | Description |
629
+ |----------|------|----------|-------------|
630
+ | top | Number | both | Top padding of the map view. |
631
+ | left | Number | both | Left padding of the map view. |
632
+ | bottom | Number | both | Bottom padding of the map view. |
633
+ | right | Number | both | Right padding of the map view. |
634
+
635
+ Also referenced by this API, documented elsewhere: [MapPointType](#mappointtype), [MapRegionTypev2](#mapregiontypev2).
626
636
 
627
637
  ---
628
638
 
@@ -206,17 +206,20 @@
206
206
  > Platforms: both
207
207
  > Type: module
208
208
 
209
- ### Properties (unique: 10/50)
209
+ ### Properties (unique: 14/50)
210
210
  | Property | Type | Platform | Description |
211
211
  |----------|------|----------|-------------|
212
212
  | accessToken | String | both | OAuth token set after a successful `authorize`. |
213
213
  | accessTokenExpired | Boolean | both | Returns whether the <Modules.Facebook.accessToken… |
214
214
  | accessTokenActive | Boolean | both | Returns `true` if the <Modules.Facebook.accessTok… |
215
+ | advertiserTrackingEnabled | Boolean | ios | Gets or sets the SDK's advertiser-tracking flag. |
215
216
  | appID | String | both | If not explicitly set, the default will be read f… |
217
+ | authenticationToken | String | android | Returns the raw Authentication Token (JWT) from the most recent Limited Login, … |
216
218
  | canPresentOpenGraphActionDialog | Boolean | android | Checks if the device can support the use of the F… |
217
219
  | expirationDate | Date | both | Time at which the `accessToken` expires. |
218
220
  | loggedIn | Boolean | both | Indicates if the user is logged in. |
219
- | loginTracking | Number | ios | Gets or sets the desired tracking preference to u… |
221
+ | loginTracking | Number | both | Gets or sets the desired tracking preference to use for login attempts. |
222
+ | nonce | String | android | Optional nonce used by Limited Login (`LOGIN_TRACKING_LIMITED`) to bind the iss… |
220
223
  | permissions | Array<String> | both | Array of permissions to request for your app. |
221
224
  | uid | String | both | Unique user ID returned from Facebook. |
222
225
 
@@ -272,13 +275,30 @@
272
275
  ### Events (6)
273
276
  | Event | Platform | Description |
274
277
  |-------|----------|-------------|
275
- | login | both | Fired at session login. |
278
+ | login | both | Fired at session login. Payload: `success`, `cancelled`, `error`, `code`, `uid`, `data`, `authenticationToken`. |
276
279
  | logout | both | Fired at session logout. |
277
280
  | requestDialogCompleted | both | Fired when the Send Request dialog is closed. |
278
281
  | shareCompleted | both | Fired when the Share dialog or Web Share dialog is closed. |
279
282
  | inviteCompleted | both | Fired when the Invite dialog is closed. |
280
283
  | tokenUpdated | both | Fired when [refreshPermissionsFromServer](Modules.Facebook.refreshPermissionsFr… |
281
284
 
285
+ ### Login Tracking and Limited Login
286
+
287
+ `loginTracking` and the `LOGIN_TRACKING_ENABLED` (default) / `LOGIN_TRACKING_LIMITED` constants are supported on **both** platforms. With `LOGIN_TRACKING_LIMITED`, `authorize()` (or `requestNewReadPermissions()`) starts Facebook's OIDC-based Limited Login flow: the SDK returns an Authentication Token (a JWT) instead of a classic Graph access token, delivered as `event.authenticationToken.tokenString` on the `login` event. Verify that JWT's signature server-side against Facebook's JWKS.
288
+
289
+ > **Warning:** `Modules.Facebook.LoginButton` honors `loginTracking` on iOS only. The Android FB SDK's button exposes no Limited Login configuration, so on Android you must trigger Limited Login through `Modules.Facebook.authorize()` rather than through the button.
290
+
291
+ ### Related Types
292
+
293
+ #### LimitedLoginAuthenticationToken
294
+ > Shape of `event.authenticationToken` on the [login](Modules.Facebook.login) event when Limited Login (`LOGIN_TRACKING_LIMITED`) is used.
295
+
296
+ | Property | Type | Platform | Description |
297
+ |----------|------|----------|-------------|
298
+ | tokenString | String | both | The signed JWT (header.payload.signature) issued by Facebook. Verify on your ba… |
299
+ | nonce | String | both | The nonce echoed back by Facebook. Matches the [nonce](Modules.Facebook.nonce) … |
300
+ | graphDomain | String | both | Optional graph domain hint returned by the iOS SDK (e.g. `gaming`). `undefined`… |
301
+
282
302
  ---
283
303
 
284
304
  ## Modules.Facebook.LoginButton
@@ -280,27 +280,90 @@ JavaScript in the web view executes in its own context. The web view can intera
280
280
  #### BackForwardList
281
281
  > The object returned to the <Titanium.UI.WebView.backForwardList> method.
282
282
 
283
- | Property | Type | Description |
284
- |----------|------|-------------|
285
- | currentItem | BackForwardListItem | The current item. |
286
- | backItem | BackForwardListItem | The item immediately preceding the current item. |
287
- | forwardItem | BackForwardListItem | The item immediately following the current item. |
288
- | backList | Array<BackForwardListItem> | The portion of the list preceding the current item. |
289
- | forwardList | Array<BackForwardListItem> | The portion of the list following the current item. |
290
-
291
- #### Dictionary
292
- > Plain JavaScript object.
283
+ | Property | Type | Platform | Description |
284
+ |----------|------|----------|-------------|
285
+ | currentItem | BackForwardListItem | ios | The current item. |
286
+ | backItem | BackForwardListItem | ios | The item immediately preceding the current item. |
287
+ | forwardItem | BackForwardListItem | ios | The item immediately following the current item. |
288
+ | backList | Array<BackForwardListItem> | ios | The portion of the list preceding the current item. |
289
+ | forwardList | Array<BackForwardListItem> | ios | The portion of the list following the current item. |
290
+
291
+ #### BackForwardListItem
292
+ > The object represents a webpage in the back-forward of a web view.
293
+
294
+ | Property | Type | Platform | Description |
295
+ |----------|------|----------|-------------|
296
+ | url | String | ios | The URL of the webpage represented by this item. |
297
+ | initialUrl | String | ios | The URL of the initial request that created this item. |
298
+ | title | String | ios | The title of the webpage represented by this item. |
299
+
300
+ #### DataCreationResult
301
+ > The parameter passed to the <Titanium.UI.WebView.createPDF> or <Titanium.UI.WebView.createWebArchive>callback.
302
+
303
+ | Property | Type | Platform | Description |
304
+ |----------|------|----------|-------------|
305
+ | data | Ti.Blob | ios | The created data. |
306
+ | success | Boolean | ios | Indicates if the data creation successful or not. |
307
+ | error | String | ios | Error message, if any returned. |
308
+
309
+ #### DataCreationResultAndroid
310
+ > Success callback in <Titanium.UI.WebView.createPDF>.
311
+
312
+ | Property | Type | Platform | Description |
313
+ |----------|------|----------|-------------|
314
+ | data | Ti.Blob | android | The created data. |
315
+
316
+ #### OnLinkURLResponse
317
+ > An object returned when the <Titanium.UI.WebView.onlink> callback is fired.
318
+
319
+ | Property | Type | Platform | Description |
320
+ |----------|------|----------|-------------|
321
+ | url | String | both | The URL of the link that should be navigated to. |
322
+
323
+ #### SearchResult
324
+ > The parameter passed to the <Titanium.UI.WebView.findString>.
325
+
326
+ | Property | Type | Platform | Description |
327
+ |----------|------|----------|-------------|
328
+ | success | Boolean | ios | Indicates if string found or not. |
329
+ | error | String | ios | Error message, if any returned. |
330
+
331
+ #### setHtmlOptions
332
+ > Options used by <Titanium.UI.WebView.setHtml>
333
+
334
+ | Property | Type | Platform | Description |
335
+ |----------|------|----------|-------------|
336
+ | baseURL | String | both | Sets the URL that the web content's paths will be relative to. |
337
+ | mimeType | String | both | Sets the MIME type for the content. Defaults to "text/html" if not specified. |
338
+
339
+ #### SnapshotResult
340
+ > The parameter passed to the <Titanium.UI.WebView.takeSnapshot> callback.
341
+
342
+ | Property | Type | Platform | Description |
343
+ |----------|------|----------|-------------|
344
+ | snapshot | Ti.Blob | ios | The snapshot image. |
345
+ | success | Boolean | ios | Indicates if the snapshot taken. |
346
+ | error | String | ios | Error message, if any returned. |
293
347
 
294
348
  #### StringSearchOptions
295
349
  > The optional options to pass to the <Titanium.UI.WebView.findString>. Pass a dictionary with one or more of the following string-keys: * `caseSensitive` (Boolean value) * `backward` (Boolean value) * `wraps` (Boolean value)
296
350
 
297
- | Property | Type | Description |
298
- |----------|------|-------------|
299
- | caseSensitive | Boolean | Whether or not the search should be case sensitive. |
300
- | backward | Boolean | The direction to search from the current selection. The search will respect the… |
301
- | wraps | Boolean | Whether the search should start at the beginning of the document once it reache… |
351
+ | Property | Type | Platform | Description |
352
+ |----------|------|----------|-------------|
353
+ | caseSensitive | Boolean | both | Whether or not the search should be case sensitive. |
354
+ | backward | Boolean | both | The direction to search from the current selection. The search will respect the… |
355
+ | wraps | Boolean | both | Whether the search should start at the beginning of the document once it reache… |
356
+
357
+ #### UserScriptParams
358
+ > Dictionary of options for the <Titanium.UI.WebView.addUserScript> method.
359
+
360
+ | Property | Type | Platform | Description |
361
+ |----------|------|----------|-------------|
362
+ | source | String | ios | A script that can be injected into a webpage. |
363
+ | injectionTime | Number | ios | The time when the script should be injected into the webpage. |
364
+ | mainFrameOnly | Boolean | ios | A Boolean value indicating whether the script should be injected only into the … |
302
365
 
303
- *Plus 2 more types: *
366
+ Also referenced by this API, documented elsewhere: `Dictionary`.
304
367
 
305
368
  ---
306
369
 
@@ -131,22 +131,54 @@ A `ListView` object is a container for [ListSection](Titanium.UI.ListSection) ob
131
131
  #### AnimatedOptions
132
132
  > A JavaScript object holding an `animated` property. Used for many UI methods as a means of specifying some transition should be animated.
133
133
 
134
- | Property | Type | Description |
135
- |----------|------|-------------|
136
- | animated | Boolean | If `true`, animate a transition for the method/value change. Note that for most… |
134
+ | Property | Type | Platform | Description |
135
+ |----------|------|----------|-------------|
136
+ | animated | Boolean | both | If `true`, animate a transition for the method/value change. Note that for most… |
137
137
 
138
138
  #### AnimatedWithDurationOptions
139
139
  > A JavaScript object holding `animated` and `duration` properties. Used on iOS For [TableView](Titanium.UI.TableView) and [ListView](Titanium.UI.ListView) content offset transitions.
140
140
 
141
- | Property | Type | Description |
142
- |----------|------|-------------|
143
- | animated | Boolean | If `true`, animate a transition for the method/value change. Note that for most… |
144
- | duration | Number | The duration in `milliseconds` for animation |
141
+ | Property | Type | Platform | Description |
142
+ |----------|------|----------|-------------|
143
+ | animated | Boolean | both | If `true`, animate a transition for the method/value change. Note that for most… |
144
+ | duration | Number | both | The duration in `milliseconds` for animation |
145
+
146
+ #### ListItemEventType
147
+ > The arguments for the <Titanium.UI.ListView.prefetch> and <Titanium.UI.ListView.cancelprefetch> events.
148
+
149
+ | Property | Type | Platform | Description |
150
+ |----------|------|----------|-------------|
151
+ | section | Ti.UI.ListSection | ios | List section if the item is contained in a list section. |
152
+ | sectionIndex | Number | ios | Section index. |
153
+ | itemIndex | Number | ios | Item index. |
154
+ | itemId | String | ios | The item ID bound to the list item that generated the event. |
155
+
156
+ #### ListViewIndexEntry
157
+ > A simple object that represents an index entry in a `ListView`.
145
158
 
146
- #### Dictionary
147
- > Plain JavaScript object.
159
+ | Property | Type | Platform | Description |
160
+ |----------|------|----------|-------------|
161
+ | title | String | ios | Title to display in the index bar. |
162
+ | index | Number | ios | Section index associated with this title. |
148
163
 
149
- *Plus 6 more types: ListViewMarkerProps, Padding, Point, SelectedItem*
164
+ #### ListViewMarkerProps
165
+ > The parameter for [setMarker](Titanium.UI.ListView.setMarker) and [addMarker](Titanium.UI.ListView.addMarker) methods.
166
+
167
+ | Property | Type | Platform | Description |
168
+ |----------|------|----------|-------------|
169
+ | sectionIndex | Number | both | The sectionIndex of the reference item. |
170
+ | itemIndex | Number | both | The itemIndex of the reference item. |
171
+
172
+ #### SelectedItem
173
+ > The arguments for the <Titanium.UI.ListView.itemsselected> event.
174
+
175
+ | Property | Type | Platform | Description |
176
+ |----------|------|----------|-------------|
177
+ | section | Ti.UI.ListSection | both | List section if the item is contained in a list section. |
178
+ | sectionIndex | Number | both | Section index. |
179
+ | itemIndex | Number | both | Item index. |
180
+
181
+ Also referenced by this API, documented elsewhere: `Dictionary`, [HorizontalInsets](#horizontalinsets), [ListViewAnimationProperties](#listviewanimationproperties), [Padding](api-ui-windows-navigation.md#padding), [Point](api-ui-extras.md#point).
150
182
 
151
183
  ---
152
184
 
@@ -422,27 +454,62 @@ There are few approaches to creating and using `TableView` object.
422
454
  #### AnimatedOptions
423
455
  > A JavaScript object holding an `animated` property. Used for many UI methods as a means of specifying some transition should be animated.
424
456
 
425
- | Property | Type | Description |
426
- |----------|------|-------------|
427
- | animated | Boolean | If `true`, animate a transition for the method/value change. Note that for most… |
457
+ | Property | Type | Platform | Description |
458
+ |----------|------|----------|-------------|
459
+ | animated | Boolean | both | If `true`, animate a transition for the method/value change. Note that for most… |
428
460
 
429
461
  #### AnimatedWithDurationOptions
430
462
  > A JavaScript object holding `animated` and `duration` properties. Used on iOS For [TableView](Titanium.UI.TableView) and [ListView](Titanium.UI.ListView) content offset transitions.
431
463
 
432
- | Property | Type | Description |
433
- |----------|------|-------------|
434
- | animated | Boolean | If `true`, animate a transition for the method/value change. Note that for most… |
435
- | duration | Number | The duration in `milliseconds` for animation |
464
+ | Property | Type | Platform | Description |
465
+ |----------|------|----------|-------------|
466
+ | animated | Boolean | both | If `true`, animate a transition for the method/value change. Note that for most… |
467
+ | duration | Number | both | The duration in `milliseconds` for animation |
436
468
 
437
469
  #### HorizontalInsets
438
470
  > Dictionary object of parameters for horizontal-only insets applied to [Table](Titanium.UI.TableView) and [List](Titanium.UI.ListView) views. Only `left` and `right` properties are used (see <Padding>).
439
471
 
440
- | Property | Type | Description |
441
- |----------|------|-------------|
442
- | left | Number | Left padding/inset |
443
- | right | Number | Right padding/inset |
472
+ | Property | Type | Platform | Description |
473
+ |----------|------|----------|-------------|
474
+ | left | Number | both | Left padding/inset |
475
+ | right | Number | both | Right padding/inset |
476
+
477
+ #### SelectedRowObject
478
+ > The arguments for the <Titanium.UI.TableView.rowsselected> event.
479
+
480
+ | Property | Type | Platform | Description |
481
+ |----------|------|----------|-------------|
482
+ | index | Number | both | Row index. |
483
+ | row | Ti.UI.TableViewRow | both | Table view row object. |
484
+ | rowData | Dictionary<Titanium.UI.TableViewRow> | both | Properties of the row. Use this property rather than `row` to access any custom… |
485
+ | section | Ti.UI.TableViewSection | both | Table view section object, if the clicked row is contained in a section. |
486
+
487
+ #### Size
488
+ > A simple object consisting of size measurements.
489
+
490
+ | Property | Type | Platform | Description |
491
+ |----------|------|----------|-------------|
492
+ | height | Number | both | The height measurement. |
493
+ | width | Number | both | The width measurement. |
494
+
495
+ #### TableViewAnimationProperties
496
+ > A simple object for specifying the animation properties to use when inserting or deleting rows, or scrolling the table.
497
+
498
+ | Property | Type | Platform | Description |
499
+ |----------|------|----------|-------------|
500
+ | animated | Boolean | both | Whether this table change should be animated. Ignored if any `animationStyle` v… |
501
+ | animationStyle | Number | both | Type of animation to use for row insertions and deletions. |
502
+ | position | Number | both | Specifies what position to scroll the selected row to. |
503
+
504
+ #### TableViewIndexEntry
505
+ > A simple object that represents an index entry in a `TableView`.
506
+
507
+ | Property | Type | Platform | Description |
508
+ |----------|------|----------|-------------|
509
+ | title | String | both | Title to display in the index bar for this item. |
510
+ | index | Number | both | Row index associated with this item. |
444
511
 
445
- *Plus 5 more types: SelectedRowObject, Size, TableViewAnimationProperties*
512
+ Also referenced by this API, documented elsewhere: `Dictionary`, [Padding](api-ui-windows-navigation.md#padding), [Point](api-ui-extras.md#point).
446
513
 
447
514
  ---
448
515
 
@@ -164,32 +164,60 @@ This applies to Windows inside both standalone NavigationWindow and TabGroup (wh
164
164
  #### AnimatedOptions
165
165
  > A JavaScript object holding an `animated` property. Used for many UI methods as a means of specifying some transition should be animated.
166
166
 
167
- | Property | Type | Description |
168
- |----------|------|-------------|
169
- | animated | Boolean | If `true`, animate a transition for the method/value change. Note that for most… |
167
+ | Property | Type | Platform | Description |
168
+ |----------|------|----------|-------------|
169
+ | animated | Boolean | both | If `true`, animate a transition for the method/value change. Note that for most… |
170
+
171
+ #### closeWindowParams
172
+ > Dictionary of options for the <Titanium.UI.Window.close> method.
173
+
174
+ | Property | Type | Platform | Description |
175
+ |----------|------|----------|-------------|
176
+ | animated | Boolean | both | Determines whether to use an animated effect when the window is closed. Default… |
177
+ | animationDuration | Number | ios | duration of the animation in milliseconds |
178
+ | animationStyle | Number | ios | Transition type to use during a transition animation. |
179
+ | activityEnterAnimation | Number | android | Animation resource to use for the incoming activity. |
180
+ | activityExitAnimation | Number | android | Animation resource to use for the outgoing activity. |
170
181
 
171
182
  #### Padding
172
183
  > Dictionary object of parameters for the padding/insets applied to all kinds of views.
173
184
 
174
- | Property | Type | Description |
175
- |----------|------|-------------|
176
- | left | Number | Left padding/inset |
177
- | right | Number | Right padding/inset |
178
- | top | Number | Top padding/inset |
179
- | bottom | Number | Bottom padding/inset |
185
+ | Property | Type | Platform | Description |
186
+ |----------|------|----------|-------------|
187
+ | left | Number | both | Left padding/inset |
188
+ | right | Number | both | Right padding/inset |
189
+ | top | Number | both | Top padding/inset |
190
+ | bottom | Number | both | Bottom padding/inset |
180
191
 
181
- #### closeWindowParams
182
- > Dictionary of options for the <Titanium.UI.Window.close> method.
192
+ #### shadowDict
193
+ > Dictionary describing the shadow effect for text.
183
194
 
184
- | Property | Type | Description |
185
- |----------|------|-------------|
186
- | animated | Boolean | Determines whether to use an animated effect when the window is closed. Default… |
187
- | animationDuration | Number | duration of the animation in milliseconds |
188
- | animationStyle | Number | Transition type to use during a transition animation. |
189
- | activityEnterAnimation | Number | Animation resource to use for the incoming activity. |
190
- | activityExitAnimation | Number | Animation resource to use for the outgoing activity. |
195
+ | Property | Type | Platform | Description |
196
+ |----------|------|----------|-------------|
197
+ | blurRadius | Number | both | Specifies the blur radius of the shadow. |
198
+ | color | String \| Ti.UI.Color | both | Color name or hex triplet specifying the color of the shadow. |
199
+ | offset | Size | both | <Size> with the properties `width` and `height` used as the horizontal and vert… |
200
+
201
+ #### titleAttributesParams
202
+ > Dictionary of options for the <Titanium.UI.Window.titleAttributes> property.
203
+
204
+ | Property | Type | Platform | Description |
205
+ |----------|------|----------|-------------|
206
+ | color | String \| Ti.UI.Color | both | Color of the window title, as a color name or hex triplet. |
207
+ | font | Font | ios | Font to use for the window title. |
208
+ | shadow | shadowDict | ios | Shadow color and offset for the window title. |
191
209
 
192
- *Plus 3 more types: windowToolbarParam*
210
+ #### windowToolbarParam
211
+ > Dictionary of options for the <Titanium.UI.Window.setToolbar> method.
212
+
213
+ | Property | Type | Platform | Description |
214
+ |----------|------|----------|-------------|
215
+ | translucent | Boolean | both | Defines if the toolbar is translucent. |
216
+ | animated | Boolean | both | Defines if the toolbar appearance is animated. |
217
+ | barColor | String \| Ti.UI.Color | both | Background color for the toolbar, as a color name or hex triplet. |
218
+ | tintColor | String \| Ti.UI.Color | both | The tintColor to apply to the tool bar. |
219
+
220
+ Also referenced by this API, documented elsewhere: `Dictionary`, [Font](api-ui-lists.md#font), [openWindowParams](#openwindowparams).
193
221
 
194
222
  ---
195
223
 
@@ -334,45 +362,45 @@ You can add tabs to the group using [addTab](Titanium.UI.TabGroup.addTab), and p
334
362
  #### closeWindowParams
335
363
  > Dictionary of options for the <Titanium.UI.Window.close> method.
336
364
 
337
- | Property | Type | Description |
338
- |----------|------|-------------|
339
- | animated | Boolean | Determines whether to use an animated effect when the window is closed. Default… |
340
- | animationDuration | Number | duration of the animation in milliseconds |
341
- | animationStyle | Number | Transition type to use during a transition animation. |
342
- | activityEnterAnimation | Number | Animation resource to use for the incoming activity. |
343
- | activityExitAnimation | Number | Animation resource to use for the outgoing activity. |
365
+ | Property | Type | Platform | Description |
366
+ |----------|------|----------|-------------|
367
+ | animated | Boolean | both | Determines whether to use an animated effect when the window is closed. Default… |
368
+ | animationDuration | Number | ios | duration of the animation in milliseconds |
369
+ | animationStyle | Number | ios | Transition type to use during a transition animation. |
370
+ | activityEnterAnimation | Number | android | Animation resource to use for the incoming activity. |
371
+ | activityExitAnimation | Number | android | Animation resource to use for the outgoing activity. |
344
372
 
345
373
  #### disableTabOptions
346
374
  > Dictionary of options for the <Titanium.UI.TabGroup.disableTabOptions> method.
347
375
 
348
- | Property | Type | Description |
349
- |----------|------|-------------|
350
- | animated | Boolean | Determines whether to use an animated effect to hide/show the navigation bar. |
351
- | enabled | Boolean | Show or hide the navigation bar. |
376
+ | Property | Type | Platform | Description |
377
+ |----------|------|----------|-------------|
378
+ | animated | Boolean | both | Determines whether to use an animated effect to hide/show the navigation bar. |
379
+ | enabled | Boolean | both | Show or hide the navigation bar. |
352
380
 
353
381
  #### openWindowParams
354
382
  > Dictionary of options for the <Titanium.UI.Window.open> method.
355
383
 
356
- | Property | Type | Description |
357
- |----------|------|-------------|
358
- | animated | Boolean | Determines whether to use an animated effect when the window is shown. |
359
- | bottom | Number \| String | Window's bottom position, in platform-specific units. |
360
- | fullscreen | Boolean | Determines if the window is fullscreen. |
361
- | height | Number \| String | Window's height, in platform-specific units. |
362
- | left | Number \| String | Window's left position, in platform-specific units. |
363
- | modal | Boolean | Determines whether to open the window modal in front of other windows. |
364
- | forceModal | Boolean | Indicates whether the window enforces modal behaviour. |
365
- | modalStyle | Number | Presentation style of this modal window. |
366
- | modalTransitionStyle | Number | Transition style of this modal window. |
367
- | navBarHidden | Boolean | For modal windows, hides the nav bar (`true`) or shows the nav bar (`false`). |
368
- | right | Number \| String | Window's right position, in platform-specific units. |
369
- | top | Number \| String | Window's top position, in platform-specific units. |
370
- | transition | Number | Transition style of this non-modal window. |
371
- | width | Number \| String | Window's width, in platform-specific units. |
372
- | activityEnterAnimation | Number | Animation resource to run on the activity being opened. |
373
- | activityExitAnimation | Number | Animation resource to run on the activity that is being put in background as a … |
374
-
375
- *Plus 1 more types: *
384
+ | Property | Type | Platform | Description |
385
+ |----------|------|----------|-------------|
386
+ | animated | Boolean | both | Determines whether to use an animated effect when the window is shown. |
387
+ | bottom | Number \| String | both | Window's bottom position, in platform-specific units. |
388
+ | fullscreen | Boolean | both | Determines if the window is fullscreen. |
389
+ | height | Number \| String | both | Window's height, in platform-specific units. |
390
+ | left | Number \| String | both | Window's left position, in platform-specific units. |
391
+ | modal | Boolean | both | Determines whether to open the window modal in front of other windows. |
392
+ | forceModal | Boolean | ios | Indicates whether the window enforces modal behaviour. |
393
+ | modalStyle | Number | ios | Presentation style of this modal window. |
394
+ | modalTransitionStyle | Number | ios | Transition style of this modal window. |
395
+ | navBarHidden | Boolean | both | For modal windows, hides the nav bar (`true`) or shows the nav bar (`false`). |
396
+ | right | Number \| String | both | Window's right position, in platform-specific units. |
397
+ | top | Number \| String | both | Window's top position, in platform-specific units. |
398
+ | transition | Number | ios | Transition style of this non-modal window. |
399
+ | width | Number \| String | both | Window's width, in platform-specific units. |
400
+ | activityEnterAnimation | Number | android | Animation resource to run on the activity being opened. |
401
+ | activityExitAnimation | Number | android | Animation resource to run on the activity that is being put in background as a … |
402
+
403
+ Also referenced by this API, documented elsewhere: `Dictionary`, [Font](api-ui-lists.md#font), [shadowDict](#shadowdict), [titleAttributesParams](#titleattributesparams).
376
404
 
377
405
  ---
378
406
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ti-guides
3
- description: 'Use when working on Titanium SDK fundamentals: project configuration (`tiapp.xml`, `timodule.xml`), CommonJS modules, Hyperloop native access, app distribution (App Store / Google Play, certificates, provisioning), Titanium CLI usage, memory management, bridge optimization, SQLite transactions, image memory, or coding standards. Triggers include `tiapp.xml` in the project root, for either Alloy (`app/`) or Classic (`Resources/`) Titanium projects.'
3
+ description: 'Use when working on Titanium SDK fundamentals: project configuration (`tiapp.xml`, `timodule.xml`), CommonJS modules, Hyperloop native access, app distribution (App Store / Google Play, certificates, provisioning), Titanium CLI usage, memory management, bridge optimization, SQLite transactions, image memory, coding standards, the compatibility matrix (which JDK, Node.js, Xcode or Android SDK a given Titanium SDK needs), or what changed in a Titanium SDK release. Triggers include `tiapp.xml` in the project root, for either Alloy (`app/`) or Classic (`Resources/`) Titanium projects.'
4
4
  ---
5
5
 
6
6
  # ti-guides
@@ -19,6 +19,8 @@ Use this skill when:
19
19
  - Using Hyperloop to call native APIs (Objective-C / Swift / Java)
20
20
  - Optimizing memory: removing global listeners, caching native properties, image memory footprints
21
21
  - Working with the Titanium CLI (`ti build`, `ti sdk install`, `ti sdk select`)
22
+ - Checking which JDK, Node.js, Xcode or Android SDK a Titanium SDK version requires
23
+ - Finding out what changed in a Titanium SDK release and whether it affects existing code
22
24
  - Writing CommonJS modules (stateful caching, ES6+ patterns, antipatterns)
23
25
  - Authoring `AndroidManifest.xml` overrides
24
26
  - Following TiDev style and naming conventions
@@ -47,6 +49,8 @@ Do NOT use for:
47
49
  | Google Play (APK / AAB), App Store (IPA), certificates, provisioning, deployment | [app-distribution.md](references/app-distribution.md) |
48
50
  | Complete `tiapp.xml` and `timodule.xml` reference | [tiapp-config.md](references/tiapp-config.md) |
49
51
  | Titanium CLI commands, options, tasks, configuration, build processes | [cli-reference.md](references/cli-reference.md) |
52
+ | JDK, Node.js, Xcode and Android SDK versions each Titanium SDK supports | [compatibility-matrix.md](references/compatibility-matrix.md) |
53
+ | What changed per 13.x release, and which changes affect your code | [sdk-release-notes.md](references/sdk-release-notes.md) |
50
54
  | Community support, modules, sample code, Slack, learning materials | [resources.md](references/resources.md) |
51
55
 
52
56
  ## Core practices
@@ -0,0 +1,89 @@
1
+ # Compatibility matrix
2
+
3
+ Which JDK, Node.js, Xcode and Android SDK versions a given Titanium SDK release can build with. Components outside the min/max ranges below are not compatible.
4
+
5
+ Only the currently supported ranges are reproduced here. Upstream also keeps collapsed tables of long-unsupported ranges (back to Titanium 1.7); if a project is pinned to something older than the rows below, consult the upstream matrix directly.
6
+
7
+ <!-- TOC-START -->
8
+ ## Contents
9
+
10
+ - [1. Operating system](#1-operating-system)
11
+ - [2. Java Development Kit](#2-java-development-kit)
12
+ - [3. Node.js](#3-nodejs)
13
+ - [4. Android](#4-android)
14
+ - [5. iOS and Xcode](#5-ios-and-xcode)
15
+ - [6. Which platform can build what](#6-which-platform-can-build-what)
16
+
17
+ <!-- TOC-END -->
18
+
19
+ ## 1. Operating system
20
+
21
+ | Operating system | Version |
22
+ |---|---|
23
+ | macOS | 10.11.5 and later |
24
+ | Windows | Windows 7 and later (Android) |
25
+ | Linux | Tested on Fedora and (K)Ubuntu; others should work |
26
+
27
+ ## 2. Java Development Kit
28
+
29
+ The JDK is required to build Titanium apps and modules for Android. OpenJDK or Oracle both work.
30
+
31
+ | Titanium SDK version | Min JDK | Max JDK |
32
+ |---|---|---|
33
+ | 13.3.0 - latest | 18 | 25 |
34
+ | 12.8.0 - 13.2.0 | 18 | 21 |
35
+
36
+ `12.0.0 - 12.7.0` (JDK 11-17) moved to the unsupported table when 13.3.0 shipped.
37
+
38
+ ## 3. Node.js
39
+
40
+ Node.js is required to install and run the Titanium SDK. On Windows, enable `dev mode` in Windows settings for Node to work correctly.
41
+
42
+ | Titanium SDK version | Min Node | Max Node |
43
+ |---|---|---|
44
+ | 13.1.1 - latest | 20.x | 24.x |
45
+ | 13.0.0 - 13.1.0 | 20.x | 22.x |
46
+ | 12.6.0 - 12.8.0 | 18.x | 22.x |
47
+
48
+ ## 4. Android
49
+
50
+ As of Titanium 9.0.0 the build system downloads the needed Android SDK platforms and tools automatically. Upgrade those packages only between major projects — changes there have broken the Titanium toolchain several times.
51
+
52
+ | Titanium SDK version | Min target (`android:targetSdkVersion`) | Max target | Min supported (`android:minSdkVersion`) |
53
+ |---|---|---|---|
54
+ | 13.1.0+ | 15.x (API 35) | 15.x (API 35) | 7.x (API 24) |
55
+ | 12.8.0 - 13.0.1 | 15.x (API 35) | 15.x (API 35) | 5.x (API 21) |
56
+ | 12.5.0 - 12.8.0 | 14.x (API 34) | 14.x (API 34) | 5.x (API 21) |
57
+ | 12.0.0 - 12.5.0 | 13.x (API 33) | 13.x (API 33) | 5.x (API 21) |
58
+
59
+ A `android:targetSDKVersion` set in `tiapp.xml` must fall inside the min/max target range of the SDK in use.
60
+
61
+ > **Note:** Titanium SDK 13.4.0 is described in its release note as *preparing the SDK for Android target SDK 36*. The matrix above still lists API 35 as the maximum; treat API 36 as in-progress rather than as a supported target until the matrix says otherwise.
62
+
63
+ Developing native Android add-on modules on macOS also requires the Xcode command line tools.
64
+
65
+ ## 5. iOS and Xcode
66
+
67
+ Building for iOS requires macOS — Apple's license agreement allows iOS development only on Apple hardware.
68
+
69
+ | Titanium SDK version | Min Xcode | Max Xcode | Notes |
70
+ |---|---|---|---|
71
+ | 12.6.3 - latest | 12.0.0 | 16.x | Full support for iOS 18.4 |
72
+ | 12.2.0 - 12.6.2 | 12.0.0 | 16.2 | Full support for iOS 17 |
73
+ | 10.1.0 - 12.1.2 | 11.0.0 | 13.x | Full support for iOS 15 |
74
+
75
+ | Titanium SDK version | Min iOS SDK | Max iOS SDK | Min target iOS | Max target iOS |
76
+ |---|---|---|---|---|
77
+ | 12.2.0 - latest | 13.0.0 | 17.x | 12.0 | 17.x |
78
+ | 10.1.0 - 12.1.2 | 13.0.0 | 15.x | 12.0 | 15.x |
79
+
80
+ > **Note:** these two tables lag behind the release notes. Titanium SDK 13.3.0 shipped *support for Xcode 27 and iOS 27*, which no row above reflects. Where they disagree, the release note is the newer statement — see [sdk-release-notes.md](sdk-release-notes.md).
81
+
82
+ ## 6. Which platform can build what
83
+
84
+ | Target | macOS | Windows | Linux |
85
+ |---|---|---|---|
86
+ | Android | Yes | Yes | Yes |
87
+ | iOS | Yes | No | No |
88
+
89
+ Anything marked *pre-release* upstream — Beta, Developer Preview, Release Candidate, and continuous builds — is not officially supported.
@@ -111,7 +111,13 @@ See `hyperloop-native-access.md` for native module development:
111
111
 
112
112
  ### IDE support
113
113
 
114
- - VS Code: https://code.visualstudio.com/ (with Titanium extensions)
114
+ Titanium has no IDE of its own; the CLI is the common denominator and every editor below drives it.
115
+
116
+ | Editor | Integration |
117
+ |---|---|
118
+ | Visual Studio Code | Titanium extension — https://code.visualstudio.com/ |
119
+ | JetBrains IDEs | Community plugin — https://github.com/devloopsnet/titanium-jetbrains |
120
+ | Atom | Titanium package (Atom itself is discontinued) |
115
121
 
116
122
  ### CLI tools
117
123
 
@@ -0,0 +1,75 @@
1
+ # SDK release notes: what changes your code
2
+
3
+ Condensed 13.x release history, filtered down to what actually affects how you write or configure an app. Full changelogs (every commit, every credit) live upstream under `Titanium_SDK_Release_Notes/`.
4
+
5
+ Each GA release desupports the previous patch release. Running an unsupported version is allowed, but bug reports against it are not accepted.
6
+
7
+ <!-- TOC-START -->
8
+ ## Contents
9
+
10
+ - [1. Version timeline](#1-version-timeline)
11
+ - [2. 13.4.0 — Android target SDK 36 groundwork](#2-1340--android-target-sdk-36-groundwork)
12
+ - [3. 13.3.1 — patch](#3-1331--patch)
13
+ - [4. 13.3.0 — Xcode 27, iOS 27, multi-scene](#4-1330--xcode-27-ios-27-multi-scene)
14
+ - [5. 13.2.0 — ViewPager2, keepHardwareMode](#5-1320--viewpager2-keephardwaremode)
15
+ - [6. Bundled module versions](#6-bundled-module-versions)
16
+
17
+ <!-- TOC-END -->
18
+
19
+ ## 1. Version timeline
20
+
21
+ | Version | Date | Headline |
22
+ |---|---|---|
23
+ | 13.4.0.GA | 28 July 2026 | Prepares the SDK for Android target SDK 36; v8 memory cleanup |
24
+ | 13.3.1.GA | 20 July 2026 | Patch — iOS restart and LiveView fixes |
25
+ | 13.3.0.GA | 01 July 2026 | Xcode 27 and iOS 27, Hyperloop 8.0.0, iOS multi-scene apps |
26
+ | 13.2.0.GA | 08 April 2026 | iOS core changes, Node.js 24 support, Android fixes |
27
+ | 13.1.0.GA | — | Minor release, high-priority fixes |
28
+ | 13.0.0.GA | — | Major release: iOS 26 / Xcode 26, Android 16 KB page size |
29
+
30
+ ## 2. 13.4.0 — Android target SDK 36 groundwork
31
+
32
+ - **Prepares the SDK for Android target SDK 36.** Groundwork only; the compatibility matrix still lists API 35 as the maximum target. See [compatibility-matrix.md](compatibility-matrix.md) § Android.
33
+ - v8 memory cleanup (Android).
34
+ - `Window.rect` now reflects pre-open `left`/`top` instead of reporting zeros before the window opens (Android).
35
+ - Build paths adjusted for Windows hosts.
36
+ - iOS: fixed the dimming area in a TableView SearchBar.
37
+ - The debug-only selector for `Ti.App._restart()` was removed, making the method callable outside debug builds.
38
+
39
+ ## 3. 13.3.1 — patch
40
+
41
+ iOS-only fixes: the `restart` method, and LiveView restart. Hyperloop bumped to 8.0.1.
42
+
43
+ ## 4. 13.3.0 — Xcode 27, iOS 27, multi-scene
44
+
45
+ - **Xcode 27 and iOS 27 support.** This postdates the Xcode/iOS rows in the compatibility matrix, which still cap at Xcode 16.x.
46
+ - **iOS multi-scene applications** are supported.
47
+ - **Hyperloop 8.0.0.**
48
+ - ScrollableView (Android): a deprecation note was added for its older events. As of SDK 13.4.0 no ScrollableView event is actually flagged deprecated in the API metadata — `scroll`, `scrollend` and `dragend` all remain current — so treat this as advance warning, not as a removal.
49
+ - ImageView: pinch-and-zoom improved on Android; the remote-image fade-in animation was removed on iOS.
50
+ - TabGroup (iOS): `focus` is now emitted separately from `selected`. Code that assumed one event covered both cases needs checking.
51
+ - `borderWidth` no longer renders at double thickness when `borderRadius` is an array (iOS).
52
+ - Android: Material 3 BottomNavigation theme and dark/light switching fixes, CameraX rotation fix under orientation lock, WebView fix for URLs carrying large GET data, `Ti.Preferences` optimized.
53
+
54
+ ## 5. 13.2.0 — ViewPager2, keepHardwareMode
55
+
56
+ - **ScrollableView moved to ViewPager2 on Android.** A backing-widget swap; verify paging, nested scrolling and any custom paging control against it.
57
+ - **`keepHardwareMode` added to `Ti.UI.View`** (Android) — controls the view's render mode.
58
+ - **`hideKeyboardAccessoryView` added to WebView** (iOS) to hide the keyboard accessory bar.
59
+ - **AttributedString support on Android**, previously iOS-only.
60
+ - Images can be dragged horizontally inside a ScrollableView (Android).
61
+ - ListView caches `searchText` (Android).
62
+ - The app name in `AndroidManifest.xml` now uses the i18n value.
63
+ - Node.js 24 support; core-js upgraded, removing the `baseline-browser-mapping` warning.
64
+ - iOS: Mac Catalyst fixes for `Ti.UI.Button` styling and events, and module builds with `mac=true`.
65
+
66
+ ## 6. Bundled module versions
67
+
68
+ Versions shipped with each SDK. Unchanged rows are omitted.
69
+
70
+ | Module | 13.2.0 (Android / iOS) | 13.3.0+ (Android / iOS) |
71
+ |---|---|---|
72
+ | facebook | 14.0.0 / 15.0.0 | 15.0.0 / 16.0.0 |
73
+ | hyperloop | 7.1.0 / 7.1.0 | 8.0.1 / 8.0.1 (8.0.0 in 13.3.0) |
74
+
75
+ Stable across 13.2.0–13.4.0: `ti.map` 5.7.0 / 7.3.1, `ti.webdialog` 2.5.0 / 3.0.2, `ti.playservices` 18.6.0 (Android only), `ti.identity` 3.2.0 / 5.0.0, `urlSession` 4.0.1 (iOS only), `ti.coremotion` 4.0.1 (iOS only), `ti.applesignin` 3.1.2 (iOS only).
@@ -108,9 +108,15 @@ scrollableView.addEventListener('scroll', (e) => {
108
108
  Ti.API.info(`Views: ${e.view}`); // View object reference
109
109
  });
110
110
 
111
- scrollableView.addEventListener('dragEnd', (e) => {
111
+ // Android only, and lowercase: ScrollableView has no `dragEnd` event.
112
+ scrollableView.addEventListener('dragend', (e) => {
112
113
  Ti.API.info(`Drag ended, settled on page: ${e.currentPage}`);
113
114
  });
115
+
116
+ // Cross-platform equivalent — fires once the view stops moving.
117
+ scrollableView.addEventListener('scrollend', (e) => {
118
+ Ti.API.info(`Settled on page: ${e.currentPage}`);
119
+ });
114
120
  ```
115
121
  ...
116
122
  ### Image gallery