@lumiastream/lumia-types 3.6.3 → 3.6.5
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/dist/custom-overlays/custom-overlays-documentation.md +144 -14
- package/dist/custom-overlays/custom-overlays.d.ts +18 -0
- package/dist/custom-overlays.d.ts +18 -0
- package/dist/esm/variables.types.js +18 -6
- package/dist/variables.types.d.ts +18 -0
- package/dist/variables.types.js +18 -6
- package/package.json +1 -1
|
@@ -394,7 +394,7 @@ A field object can now contain these properties:
|
|
|
394
394
|
|
|
395
395
|
| Property | Required | Purpose | Example |
|
|
396
396
|
| --------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
|
|
397
|
-
| **`type`** | ✅ | UI control to render. Must be one of the `
|
|
397
|
+
| **`type`** | ✅ | UI control to render. Must be one of the `ConfigsFieldType` enum values (`input`, `textarea`, `number`, `checkbox`, `dropdown`, `multiselect`, `colorpicker`, `fontpicker`, `slider`, `imageupload`, `soundupload`, `videoupload`, `actionbutton`). | `"type": "dropdown"` |
|
|
398
398
|
| **`label`** | ✅ | Human-readable name shown in the sidebar. | `"label": "Favorite Color:"` |
|
|
399
399
|
| **`value`** | ❌ | Default value that appears the first time the user opens the overlay (also pre populates `Overlay.data`). Omit it to leave the field blank/unchecked on first load. | `"value": 18` |
|
|
400
400
|
| **`options`** | ☑️\* | Key value map of selectable choices. Required **only** for `dropdown`, `multiselect` and `slider`; ignored for other types. For `slider`, `options` supports `step`, `min`, `max`, `prefix`, `suffix`. | `"options": { "step": 5, "min": 0, "max": 100 }` |
|
|
@@ -402,13 +402,27 @@ A field object can now contain these properties:
|
|
|
402
402
|
| **`visibleIf`** | ❌ | **Conditional render rule**. Field is shown **only if** `Overlay.data[visibleIf.key]` strictly equals one of the values in `visibleIf.equals`. | `"visibleIf": { "key": "targetKey", "equals": ["yes", "maybe"] }` |
|
|
403
403
|
| **`hidden`** | ❌ | **Hard-hide rule.** When set to `true`, the field is **never displayed** in the Configs sidebar, preventing end users from altering it. The value still flows into `Overlay.data`, so the overlay can rely on it internally.<br>Useful for locking event subscriptions or other advanced settings. | `"hidden": true` |
|
|
404
404
|
|
|
405
|
-
Additional properties for text
|
|
405
|
+
Additional properties for text fields (`type: "input"` and `type: "textarea"`):
|
|
406
406
|
|
|
407
407
|
| Property | Required | Purpose | Example |
|
|
408
408
|
| ---------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------- |
|
|
409
|
-
| **`placeholder`** | ❌ | Placeholder text inside the
|
|
410
|
-
| **`enableVariables`** | ❌ | When `true`, renders a variable-enabled
|
|
409
|
+
| **`placeholder`** | ❌ | Placeholder text inside the field. | `"placeholder": "Enter title..."` |
|
|
410
|
+
| **`enableVariables`** | ❌ | When `true`, renders a variable-enabled field that lets users insert variables (e.g., `{{username}}`) from a picker. | `"enableVariables": true` |
|
|
411
411
|
| **`allowedVariables`** | ❌ | When present with `enableVariables: true`, limits the top of the picker to this list. System/function variables are still available below. | `"allowedVariables": ["username", "message"]` |
|
|
412
|
+
| **`rows`** | ❌ | **`textarea` only.** Visible row count. Defaults to `4`. | `"rows": 6` |
|
|
413
|
+
|
|
414
|
+
Additional properties for media upload fields (`type: "imageupload"`, `"soundupload"`, `"videoupload"`):
|
|
415
|
+
|
|
416
|
+
| Property | Required | Purpose | Example |
|
|
417
|
+
| ------------- | -------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
|
|
418
|
+
| **`value`** | ❌ | Default asset URL. The field's `Overlay.data` value is always the uploaded asset's URL string. | `"value": "https://.../logo.png"` |
|
|
419
|
+
| **`accept`** | ❌ | Optional comma-separated MIME accept hint for the upload picker. | `"accept": "image/png,image/jpeg"` |
|
|
420
|
+
|
|
421
|
+
Additional properties for the action button (`type: "actionbutton"`):
|
|
422
|
+
|
|
423
|
+
| Property | Required | Purpose | Example |
|
|
424
|
+
| ----------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
|
|
425
|
+
| **`buttonLabel`** | ❌ | Button-text override. Defaults to the field `label`. The action button has **no persisted value** — clicking it fires the `configAction` event. | `"buttonLabel": "Reset game"` |
|
|
412
426
|
|
|
413
427
|
### Variable-enabled Input Fields
|
|
414
428
|
|
|
@@ -454,16 +468,21 @@ Before looking at the individual properties (type, label, value, options), remem
|
|
|
454
468
|
|
|
455
469
|
### Supported Field Types
|
|
456
470
|
|
|
457
|
-
| type | UI Control
|
|
458
|
-
| --------------- |
|
|
459
|
-
| `"input"` | Single-line text box
|
|
460
|
-
| `"
|
|
461
|
-
| `"
|
|
462
|
-
| `"
|
|
463
|
-
| `"
|
|
464
|
-
| `"
|
|
465
|
-
| `"
|
|
466
|
-
| `"
|
|
471
|
+
| type | UI Control | `Overlay.data` value |
|
|
472
|
+
| --------------- | --------------------------- | --------------------------------------------- |
|
|
473
|
+
| `"input"` | Single-line text box | `string` |
|
|
474
|
+
| `"textarea"` | Multi-line text area | `string` |
|
|
475
|
+
| `"number"` | Numeric input spinner | `number` |
|
|
476
|
+
| `"checkbox"` | Checkbox selection | `boolean` |
|
|
477
|
+
| `"dropdown"` | Select menu | `string` (selected option key) |
|
|
478
|
+
| `"multiselect"` | Multi-select box | `string[]` (selected option keys) |
|
|
479
|
+
| `"colorpicker"` | Color picker widget | `string` (hex/rgba) |
|
|
480
|
+
| `"fontpicker"` | Font picker (Google) | `string` (font family name) |
|
|
481
|
+
| `"slider"` | Number slider | `number` |
|
|
482
|
+
| `"imageupload"` | Image upload picker | `string` (uploaded asset URL) |
|
|
483
|
+
| `"soundupload"` | Audio upload picker | `string` (uploaded asset URL) |
|
|
484
|
+
| `"videoupload"` | Video upload picker | `string` (uploaded asset URL) |
|
|
485
|
+
| `"actionbutton"`| Clickable action button | _none_ — fires the `configAction` event |
|
|
467
486
|
|
|
468
487
|
### Font Picker
|
|
469
488
|
|
|
@@ -502,6 +521,95 @@ The key in the json an ddata must match the variable name used in the css
|
|
|
502
521
|
|
|
503
522
|
> Note we're using variable replacement within the css.
|
|
504
523
|
|
|
524
|
+
### Textarea
|
|
525
|
+
|
|
526
|
+
The `textarea` type renders a multi-line text box for long-form content. It supports the same `placeholder`, `enableVariables`, and `allowedVariables` props as `input`, plus a `rows` prop to control the visible height (defaults to `4`).
|
|
527
|
+
|
|
528
|
+
Configs Tab
|
|
529
|
+
|
|
530
|
+
```json
|
|
531
|
+
{
|
|
532
|
+
"welcomeMessage": {
|
|
533
|
+
"type": "textarea",
|
|
534
|
+
"label": "Welcome Message",
|
|
535
|
+
"rows": 6,
|
|
536
|
+
"placeholder": "Enter the message shown when the overlay loads",
|
|
537
|
+
"enableVariables": true,
|
|
538
|
+
"allowedVariables": ["username"]
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
The value flows into `Overlay.data.welcomeMessage` as a plain string and can be used with `{{welcomeMessage}}` replacement just like any other field.
|
|
544
|
+
|
|
545
|
+
### Media Upload Fields (Image / Sound / Video)
|
|
546
|
+
|
|
547
|
+
The `imageupload`, `soundupload`, and `videoupload` types render an asset picker tied to Lumia's media browser. Once a user picks (or uploads) an asset, the field's value is the **uploaded asset's URL string**. Each type scopes the picker to the matching media kind: images, audio, and video respectively.
|
|
548
|
+
|
|
549
|
+
Configs Tab
|
|
550
|
+
|
|
551
|
+
```json
|
|
552
|
+
{
|
|
553
|
+
"logo": {
|
|
554
|
+
"type": "imageupload",
|
|
555
|
+
"label": "Logo Image"
|
|
556
|
+
},
|
|
557
|
+
"chime": {
|
|
558
|
+
"type": "soundupload",
|
|
559
|
+
"label": "Alert Sound",
|
|
560
|
+
"accept": "audio/mpeg,audio/ogg"
|
|
561
|
+
},
|
|
562
|
+
"intro": {
|
|
563
|
+
"type": "videoupload",
|
|
564
|
+
"label": "Intro Clip"
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
Because the value is just a URL, you can use it directly in your HTML, CSS, or JS:
|
|
570
|
+
|
|
571
|
+
```html
|
|
572
|
+
<img src="{{logo}}" alt="logo" />
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
```js
|
|
576
|
+
const chime = new Audio(Overlay.data.chime);
|
|
577
|
+
chime.play();
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
> The optional `accept` property is a comma-separated MIME hint (e.g. `image/png,image/jpeg`). The picker is already scoped by media type, so `accept` is an extra narrowing hint and can be omitted.
|
|
581
|
+
|
|
582
|
+
### Action Button
|
|
583
|
+
|
|
584
|
+
The `actionbutton` type renders a clickable button in the Configs sidebar. Unlike every other field, it has **no persisted value** — it is a trigger, not a setting. Clicking it dispatches a `configAction` event that your overlay JS can subscribe to. Use `buttonLabel` to override the button text (it defaults to `label`).
|
|
585
|
+
|
|
586
|
+
Configs Tab
|
|
587
|
+
|
|
588
|
+
```json
|
|
589
|
+
{
|
|
590
|
+
"resetGame": {
|
|
591
|
+
"type": "actionbutton",
|
|
592
|
+
"label": "Reset",
|
|
593
|
+
"buttonLabel": "Reset game"
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
JS Tab
|
|
599
|
+
|
|
600
|
+
```js
|
|
601
|
+
// Fired when the user clicks an actionbutton field in the Configs sidebar.
|
|
602
|
+
// `key` is the field's JSON key; `value` is the field's optional `value`.
|
|
603
|
+
Overlay.on("configAction", ({ key, value }) => {
|
|
604
|
+
if (key === "resetGame") {
|
|
605
|
+
toast("Game reset!");
|
|
606
|
+
// run your reset logic here
|
|
607
|
+
}
|
|
608
|
+
});
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
> `configAction` is a Configs-driven event, not a platform event — it does not need to be declared in the Data tab's `events` array and is unaffected by the OverlayListener subscriptions.
|
|
612
|
+
|
|
505
613
|
### Field Display Order
|
|
506
614
|
|
|
507
615
|
By default, config fields are displayed in alphabetical order by their key names. You can override this behavior using the `order` property:
|
|
@@ -628,6 +736,24 @@ In this example, the fields would appear in this order:
|
|
|
628
736
|
"prefix": "",
|
|
629
737
|
"suffix": "px"
|
|
630
738
|
}
|
|
739
|
+
},
|
|
740
|
+
"bio": {
|
|
741
|
+
"order": 11,
|
|
742
|
+
"type": "textarea",
|
|
743
|
+
"label": "Bio:",
|
|
744
|
+
"rows": 4,
|
|
745
|
+
"placeholder": "Tell us about yourself"
|
|
746
|
+
},
|
|
747
|
+
"logo": {
|
|
748
|
+
"order": 12,
|
|
749
|
+
"type": "imageupload",
|
|
750
|
+
"label": "Logo:"
|
|
751
|
+
},
|
|
752
|
+
"reset": {
|
|
753
|
+
"order": 13,
|
|
754
|
+
"type": "actionbutton",
|
|
755
|
+
"label": "Reset",
|
|
756
|
+
"buttonLabel": "Reset overlay"
|
|
631
757
|
}
|
|
632
758
|
}
|
|
633
759
|
```
|
|
@@ -718,6 +844,10 @@ Custom overlay modules carry an optional `content.flavor` field that tells the r
|
|
|
718
844
|
|
|
719
845
|
If you're inspecting an imported overlay's JSON and see `"flavor": "streamelements"`, that's why it can call `SE_API.store.set(...)`, `jQuery`, etc. — none of those are part of the native Lumia overlay API, but the shim makes them available for that specific layer.
|
|
720
846
|
|
|
847
|
+
StreamElements imports also stamp a `content.sourceProvider` field (`'twitch'`, `'youtube'`, or `'kick'`, defaulting to `'twitch'`). The SE compatibility shim reads it to pick the correct listener-name mapping when forwarding Lumia events into the iframe as `onEventReceived` payloads. Hand-authored overlays don't set it.
|
|
848
|
+
|
|
849
|
+
When the import wizard translates an SE widget's fields into Lumia config fields, it maps SE control types onto the native Lumia field types — `googleFont` → `fontpicker`, `image` / `image-input` → `imageupload`, `sound-input` → `soundupload`, `video-input` → `videoupload`, `button` → `actionbutton`, and SE `hidden` fields onto a plain `input` carrying `hidden: true`. The emitted `type` is always a native `ConfigsFieldType`, so an imported overlay's Configs tab behaves identically to one you author by hand.
|
|
850
|
+
|
|
721
851
|
## Code ID
|
|
722
852
|
|
|
723
853
|
The codeId is primarily meant to be used when talking to Lumia Stream. It is used to store storage data, it is used when calling send overlay content that will only send to overlays with that specific code id. It can be retrieved within the overlay using `Overlay.on('overlaycontent', (data) => {...})`
|
|
@@ -1865,6 +1865,12 @@ export declare enum SystemVariables {
|
|
|
1865
1865
|
SPOTIFY_NOW_PLAYING_URI = "spotify_now_playing_uri",
|
|
1866
1866
|
/** Now playing track duration in seconds. Use as {{spotify_now_playing_duration}}. */
|
|
1867
1867
|
SPOTIFY_NOW_PLAYING_DURATION = "spotify_now_playing_duration",
|
|
1868
|
+
/** Now playing track position in seconds at the last play/pause/seek anchor. Use as {{spotify_now_playing_progress}}. */
|
|
1869
|
+
SPOTIFY_NOW_PLAYING_PROGRESS = "spotify_now_playing_progress",
|
|
1870
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{spotify_now_playing_progress_ts}}. */
|
|
1871
|
+
SPOTIFY_NOW_PLAYING_PROGRESS_TS = "spotify_now_playing_progress_ts",
|
|
1872
|
+
/** Whether playback is currently advancing (true/false). Use as {{spotify_now_playing_is_playing}}. */
|
|
1873
|
+
SPOTIFY_NOW_PLAYING_IS_PLAYING = "spotify_now_playing_is_playing",
|
|
1868
1874
|
/** Next song title. Use as {{spotify_next_song}}. */
|
|
1869
1875
|
SPOTIFY_NEXT_SONG = "spotify_next_song",
|
|
1870
1876
|
/** Next song artwork URL. Use as {{spotify_next_image}}. */
|
|
@@ -1891,6 +1897,12 @@ export declare enum SystemVariables {
|
|
|
1891
1897
|
YOUTUBEMUSIC_NOW_PLAYING_URL = "youtubemusic_now_playing_url",
|
|
1892
1898
|
/** Now playing track duration in seconds. Use as {{youtubemusic_now_playing_duration}}. */
|
|
1893
1899
|
YOUTUBEMUSIC_NOW_PLAYING_DURATION = "youtubemusic_now_playing_duration",
|
|
1900
|
+
/** Now playing track position in seconds at the last play/pause/seek anchor. Use as {{youtubemusic_now_playing_progress}}. */
|
|
1901
|
+
YOUTUBEMUSIC_NOW_PLAYING_PROGRESS = "youtubemusic_now_playing_progress",
|
|
1902
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{youtubemusic_now_playing_progress_ts}}. */
|
|
1903
|
+
YOUTUBEMUSIC_NOW_PLAYING_PROGRESS_TS = "youtubemusic_now_playing_progress_ts",
|
|
1904
|
+
/** Whether playback is currently advancing (true/false). Use as {{youtubemusic_now_playing_is_playing}}. */
|
|
1905
|
+
YOUTUBEMUSIC_NOW_PLAYING_IS_PLAYING = "youtubemusic_now_playing_is_playing",
|
|
1894
1906
|
/** Next song title. Use as {{youtubemusic_next_song}}. */
|
|
1895
1907
|
YOUTUBEMUSIC_NEXT_SONG = "youtubemusic_next_song",
|
|
1896
1908
|
/** Next song artwork URL. Use as {{youtubemusic_next_image}}. */
|
|
@@ -1947,6 +1959,12 @@ export declare enum SystemVariables {
|
|
|
1947
1959
|
VLC_NOW_PLAYING_URL = "vlc_now_playing_url",
|
|
1948
1960
|
/** Now playing media duration in seconds. Use as {{vlc_now_playing_duration}}. */
|
|
1949
1961
|
VLC_NOW_PLAYING_DURATION = "vlc_now_playing_duration",
|
|
1962
|
+
/** Now playing media position in seconds at the last play/pause/seek anchor. Use as {{vlc_now_playing_progress}}. */
|
|
1963
|
+
VLC_NOW_PLAYING_PROGRESS = "vlc_now_playing_progress",
|
|
1964
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{vlc_now_playing_progress_ts}}. */
|
|
1965
|
+
VLC_NOW_PLAYING_PROGRESS_TS = "vlc_now_playing_progress_ts",
|
|
1966
|
+
/** Whether playback is currently advancing (true/false). Use as {{vlc_now_playing_is_playing}}. */
|
|
1967
|
+
VLC_NOW_PLAYING_IS_PLAYING = "vlc_now_playing_is_playing",
|
|
1950
1968
|
/** Media URI. Use as {{vlc_now_playing_uri}}. */
|
|
1951
1969
|
VLC_NOW_PLAYING_URI = "vlc_now_playing_uri",
|
|
1952
1970
|
/** Voice changer on (true/false). Use as {{voicemod_voice_changer_on}}. */
|
|
@@ -1865,6 +1865,12 @@ export declare enum SystemVariables {
|
|
|
1865
1865
|
SPOTIFY_NOW_PLAYING_URI = "spotify_now_playing_uri",
|
|
1866
1866
|
/** Now playing track duration in seconds. Use as {{spotify_now_playing_duration}}. */
|
|
1867
1867
|
SPOTIFY_NOW_PLAYING_DURATION = "spotify_now_playing_duration",
|
|
1868
|
+
/** Now playing track position in seconds at the last play/pause/seek anchor. Use as {{spotify_now_playing_progress}}. */
|
|
1869
|
+
SPOTIFY_NOW_PLAYING_PROGRESS = "spotify_now_playing_progress",
|
|
1870
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{spotify_now_playing_progress_ts}}. */
|
|
1871
|
+
SPOTIFY_NOW_PLAYING_PROGRESS_TS = "spotify_now_playing_progress_ts",
|
|
1872
|
+
/** Whether playback is currently advancing (true/false). Use as {{spotify_now_playing_is_playing}}. */
|
|
1873
|
+
SPOTIFY_NOW_PLAYING_IS_PLAYING = "spotify_now_playing_is_playing",
|
|
1868
1874
|
/** Next song title. Use as {{spotify_next_song}}. */
|
|
1869
1875
|
SPOTIFY_NEXT_SONG = "spotify_next_song",
|
|
1870
1876
|
/** Next song artwork URL. Use as {{spotify_next_image}}. */
|
|
@@ -1891,6 +1897,12 @@ export declare enum SystemVariables {
|
|
|
1891
1897
|
YOUTUBEMUSIC_NOW_PLAYING_URL = "youtubemusic_now_playing_url",
|
|
1892
1898
|
/** Now playing track duration in seconds. Use as {{youtubemusic_now_playing_duration}}. */
|
|
1893
1899
|
YOUTUBEMUSIC_NOW_PLAYING_DURATION = "youtubemusic_now_playing_duration",
|
|
1900
|
+
/** Now playing track position in seconds at the last play/pause/seek anchor. Use as {{youtubemusic_now_playing_progress}}. */
|
|
1901
|
+
YOUTUBEMUSIC_NOW_PLAYING_PROGRESS = "youtubemusic_now_playing_progress",
|
|
1902
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{youtubemusic_now_playing_progress_ts}}. */
|
|
1903
|
+
YOUTUBEMUSIC_NOW_PLAYING_PROGRESS_TS = "youtubemusic_now_playing_progress_ts",
|
|
1904
|
+
/** Whether playback is currently advancing (true/false). Use as {{youtubemusic_now_playing_is_playing}}. */
|
|
1905
|
+
YOUTUBEMUSIC_NOW_PLAYING_IS_PLAYING = "youtubemusic_now_playing_is_playing",
|
|
1894
1906
|
/** Next song title. Use as {{youtubemusic_next_song}}. */
|
|
1895
1907
|
YOUTUBEMUSIC_NEXT_SONG = "youtubemusic_next_song",
|
|
1896
1908
|
/** Next song artwork URL. Use as {{youtubemusic_next_image}}. */
|
|
@@ -1947,6 +1959,12 @@ export declare enum SystemVariables {
|
|
|
1947
1959
|
VLC_NOW_PLAYING_URL = "vlc_now_playing_url",
|
|
1948
1960
|
/** Now playing media duration in seconds. Use as {{vlc_now_playing_duration}}. */
|
|
1949
1961
|
VLC_NOW_PLAYING_DURATION = "vlc_now_playing_duration",
|
|
1962
|
+
/** Now playing media position in seconds at the last play/pause/seek anchor. Use as {{vlc_now_playing_progress}}. */
|
|
1963
|
+
VLC_NOW_PLAYING_PROGRESS = "vlc_now_playing_progress",
|
|
1964
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{vlc_now_playing_progress_ts}}. */
|
|
1965
|
+
VLC_NOW_PLAYING_PROGRESS_TS = "vlc_now_playing_progress_ts",
|
|
1966
|
+
/** Whether playback is currently advancing (true/false). Use as {{vlc_now_playing_is_playing}}. */
|
|
1967
|
+
VLC_NOW_PLAYING_IS_PLAYING = "vlc_now_playing_is_playing",
|
|
1950
1968
|
/** Media URI. Use as {{vlc_now_playing_uri}}. */
|
|
1951
1969
|
VLC_NOW_PLAYING_URI = "vlc_now_playing_uri",
|
|
1952
1970
|
/** Voice changer on (true/false). Use as {{voicemod_voice_changer_on}}. */
|
|
@@ -802,8 +802,12 @@ export var SystemVariables;
|
|
|
802
802
|
SystemVariables["SPOTIFY_NOW_PLAYING_URI"] = "spotify_now_playing_uri";
|
|
803
803
|
/** Now playing track duration in seconds. Use as {{spotify_now_playing_duration}}. */
|
|
804
804
|
SystemVariables["SPOTIFY_NOW_PLAYING_DURATION"] = "spotify_now_playing_duration";
|
|
805
|
-
|
|
806
|
-
|
|
805
|
+
/** Now playing track position in seconds at the last play/pause/seek anchor. Use as {{spotify_now_playing_progress}}. */
|
|
806
|
+
SystemVariables["SPOTIFY_NOW_PLAYING_PROGRESS"] = "spotify_now_playing_progress";
|
|
807
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{spotify_now_playing_progress_ts}}. */
|
|
808
|
+
SystemVariables["SPOTIFY_NOW_PLAYING_PROGRESS_TS"] = "spotify_now_playing_progress_ts";
|
|
809
|
+
/** Whether playback is currently advancing (true/false). Use as {{spotify_now_playing_is_playing}}. */
|
|
810
|
+
SystemVariables["SPOTIFY_NOW_PLAYING_IS_PLAYING"] = "spotify_now_playing_is_playing";
|
|
807
811
|
/** Next song title. Use as {{spotify_next_song}}. */
|
|
808
812
|
SystemVariables["SPOTIFY_NEXT_SONG"] = "spotify_next_song";
|
|
809
813
|
/** Next song artwork URL. Use as {{spotify_next_image}}. */
|
|
@@ -831,8 +835,12 @@ export var SystemVariables;
|
|
|
831
835
|
SystemVariables["YOUTUBEMUSIC_NOW_PLAYING_URL"] = "youtubemusic_now_playing_url";
|
|
832
836
|
/** Now playing track duration in seconds. Use as {{youtubemusic_now_playing_duration}}. */
|
|
833
837
|
SystemVariables["YOUTUBEMUSIC_NOW_PLAYING_DURATION"] = "youtubemusic_now_playing_duration";
|
|
834
|
-
|
|
835
|
-
|
|
838
|
+
/** Now playing track position in seconds at the last play/pause/seek anchor. Use as {{youtubemusic_now_playing_progress}}. */
|
|
839
|
+
SystemVariables["YOUTUBEMUSIC_NOW_PLAYING_PROGRESS"] = "youtubemusic_now_playing_progress";
|
|
840
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{youtubemusic_now_playing_progress_ts}}. */
|
|
841
|
+
SystemVariables["YOUTUBEMUSIC_NOW_PLAYING_PROGRESS_TS"] = "youtubemusic_now_playing_progress_ts";
|
|
842
|
+
/** Whether playback is currently advancing (true/false). Use as {{youtubemusic_now_playing_is_playing}}. */
|
|
843
|
+
SystemVariables["YOUTUBEMUSIC_NOW_PLAYING_IS_PLAYING"] = "youtubemusic_now_playing_is_playing";
|
|
836
844
|
/** Next song title. Use as {{youtubemusic_next_song}}. */
|
|
837
845
|
SystemVariables["YOUTUBEMUSIC_NEXT_SONG"] = "youtubemusic_next_song";
|
|
838
846
|
/** Next song artwork URL. Use as {{youtubemusic_next_image}}. */
|
|
@@ -891,8 +899,12 @@ export var SystemVariables;
|
|
|
891
899
|
SystemVariables["VLC_NOW_PLAYING_URL"] = "vlc_now_playing_url";
|
|
892
900
|
/** Now playing media duration in seconds. Use as {{vlc_now_playing_duration}}. */
|
|
893
901
|
SystemVariables["VLC_NOW_PLAYING_DURATION"] = "vlc_now_playing_duration";
|
|
894
|
-
|
|
895
|
-
|
|
902
|
+
/** Now playing media position in seconds at the last play/pause/seek anchor. Use as {{vlc_now_playing_progress}}. */
|
|
903
|
+
SystemVariables["VLC_NOW_PLAYING_PROGRESS"] = "vlc_now_playing_progress";
|
|
904
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{vlc_now_playing_progress_ts}}. */
|
|
905
|
+
SystemVariables["VLC_NOW_PLAYING_PROGRESS_TS"] = "vlc_now_playing_progress_ts";
|
|
906
|
+
/** Whether playback is currently advancing (true/false). Use as {{vlc_now_playing_is_playing}}. */
|
|
907
|
+
SystemVariables["VLC_NOW_PLAYING_IS_PLAYING"] = "vlc_now_playing_is_playing";
|
|
896
908
|
/** Media URI. Use as {{vlc_now_playing_uri}}. */
|
|
897
909
|
SystemVariables["VLC_NOW_PLAYING_URI"] = "vlc_now_playing_uri";
|
|
898
910
|
// ────────────────────────────────── Voicemod ──────────────────────────────────
|
|
@@ -797,6 +797,12 @@ export declare enum SystemVariables {
|
|
|
797
797
|
SPOTIFY_NOW_PLAYING_URI = "spotify_now_playing_uri",
|
|
798
798
|
/** Now playing track duration in seconds. Use as {{spotify_now_playing_duration}}. */
|
|
799
799
|
SPOTIFY_NOW_PLAYING_DURATION = "spotify_now_playing_duration",
|
|
800
|
+
/** Now playing track position in seconds at the last play/pause/seek anchor. Use as {{spotify_now_playing_progress}}. */
|
|
801
|
+
SPOTIFY_NOW_PLAYING_PROGRESS = "spotify_now_playing_progress",
|
|
802
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{spotify_now_playing_progress_ts}}. */
|
|
803
|
+
SPOTIFY_NOW_PLAYING_PROGRESS_TS = "spotify_now_playing_progress_ts",
|
|
804
|
+
/** Whether playback is currently advancing (true/false). Use as {{spotify_now_playing_is_playing}}. */
|
|
805
|
+
SPOTIFY_NOW_PLAYING_IS_PLAYING = "spotify_now_playing_is_playing",
|
|
800
806
|
/** Next song title. Use as {{spotify_next_song}}. */
|
|
801
807
|
SPOTIFY_NEXT_SONG = "spotify_next_song",
|
|
802
808
|
/** Next song artwork URL. Use as {{spotify_next_image}}. */
|
|
@@ -823,6 +829,12 @@ export declare enum SystemVariables {
|
|
|
823
829
|
YOUTUBEMUSIC_NOW_PLAYING_URL = "youtubemusic_now_playing_url",
|
|
824
830
|
/** Now playing track duration in seconds. Use as {{youtubemusic_now_playing_duration}}. */
|
|
825
831
|
YOUTUBEMUSIC_NOW_PLAYING_DURATION = "youtubemusic_now_playing_duration",
|
|
832
|
+
/** Now playing track position in seconds at the last play/pause/seek anchor. Use as {{youtubemusic_now_playing_progress}}. */
|
|
833
|
+
YOUTUBEMUSIC_NOW_PLAYING_PROGRESS = "youtubemusic_now_playing_progress",
|
|
834
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{youtubemusic_now_playing_progress_ts}}. */
|
|
835
|
+
YOUTUBEMUSIC_NOW_PLAYING_PROGRESS_TS = "youtubemusic_now_playing_progress_ts",
|
|
836
|
+
/** Whether playback is currently advancing (true/false). Use as {{youtubemusic_now_playing_is_playing}}. */
|
|
837
|
+
YOUTUBEMUSIC_NOW_PLAYING_IS_PLAYING = "youtubemusic_now_playing_is_playing",
|
|
826
838
|
/** Next song title. Use as {{youtubemusic_next_song}}. */
|
|
827
839
|
YOUTUBEMUSIC_NEXT_SONG = "youtubemusic_next_song",
|
|
828
840
|
/** Next song artwork URL. Use as {{youtubemusic_next_image}}. */
|
|
@@ -879,6 +891,12 @@ export declare enum SystemVariables {
|
|
|
879
891
|
VLC_NOW_PLAYING_URL = "vlc_now_playing_url",
|
|
880
892
|
/** Now playing media duration in seconds. Use as {{vlc_now_playing_duration}}. */
|
|
881
893
|
VLC_NOW_PLAYING_DURATION = "vlc_now_playing_duration",
|
|
894
|
+
/** Now playing media position in seconds at the last play/pause/seek anchor. Use as {{vlc_now_playing_progress}}. */
|
|
895
|
+
VLC_NOW_PLAYING_PROGRESS = "vlc_now_playing_progress",
|
|
896
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{vlc_now_playing_progress_ts}}. */
|
|
897
|
+
VLC_NOW_PLAYING_PROGRESS_TS = "vlc_now_playing_progress_ts",
|
|
898
|
+
/** Whether playback is currently advancing (true/false). Use as {{vlc_now_playing_is_playing}}. */
|
|
899
|
+
VLC_NOW_PLAYING_IS_PLAYING = "vlc_now_playing_is_playing",
|
|
882
900
|
/** Media URI. Use as {{vlc_now_playing_uri}}. */
|
|
883
901
|
VLC_NOW_PLAYING_URI = "vlc_now_playing_uri",
|
|
884
902
|
/** Voice changer on (true/false). Use as {{voicemod_voice_changer_on}}. */
|
package/dist/variables.types.js
CHANGED
|
@@ -807,8 +807,12 @@ var SystemVariables;
|
|
|
807
807
|
SystemVariables["SPOTIFY_NOW_PLAYING_URI"] = "spotify_now_playing_uri";
|
|
808
808
|
/** Now playing track duration in seconds. Use as {{spotify_now_playing_duration}}. */
|
|
809
809
|
SystemVariables["SPOTIFY_NOW_PLAYING_DURATION"] = "spotify_now_playing_duration";
|
|
810
|
-
|
|
811
|
-
|
|
810
|
+
/** Now playing track position in seconds at the last play/pause/seek anchor. Use as {{spotify_now_playing_progress}}. */
|
|
811
|
+
SystemVariables["SPOTIFY_NOW_PLAYING_PROGRESS"] = "spotify_now_playing_progress";
|
|
812
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{spotify_now_playing_progress_ts}}. */
|
|
813
|
+
SystemVariables["SPOTIFY_NOW_PLAYING_PROGRESS_TS"] = "spotify_now_playing_progress_ts";
|
|
814
|
+
/** Whether playback is currently advancing (true/false). Use as {{spotify_now_playing_is_playing}}. */
|
|
815
|
+
SystemVariables["SPOTIFY_NOW_PLAYING_IS_PLAYING"] = "spotify_now_playing_is_playing";
|
|
812
816
|
/** Next song title. Use as {{spotify_next_song}}. */
|
|
813
817
|
SystemVariables["SPOTIFY_NEXT_SONG"] = "spotify_next_song";
|
|
814
818
|
/** Next song artwork URL. Use as {{spotify_next_image}}. */
|
|
@@ -836,8 +840,12 @@ var SystemVariables;
|
|
|
836
840
|
SystemVariables["YOUTUBEMUSIC_NOW_PLAYING_URL"] = "youtubemusic_now_playing_url";
|
|
837
841
|
/** Now playing track duration in seconds. Use as {{youtubemusic_now_playing_duration}}. */
|
|
838
842
|
SystemVariables["YOUTUBEMUSIC_NOW_PLAYING_DURATION"] = "youtubemusic_now_playing_duration";
|
|
839
|
-
|
|
840
|
-
|
|
843
|
+
/** Now playing track position in seconds at the last play/pause/seek anchor. Use as {{youtubemusic_now_playing_progress}}. */
|
|
844
|
+
SystemVariables["YOUTUBEMUSIC_NOW_PLAYING_PROGRESS"] = "youtubemusic_now_playing_progress";
|
|
845
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{youtubemusic_now_playing_progress_ts}}. */
|
|
846
|
+
SystemVariables["YOUTUBEMUSIC_NOW_PLAYING_PROGRESS_TS"] = "youtubemusic_now_playing_progress_ts";
|
|
847
|
+
/** Whether playback is currently advancing (true/false). Use as {{youtubemusic_now_playing_is_playing}}. */
|
|
848
|
+
SystemVariables["YOUTUBEMUSIC_NOW_PLAYING_IS_PLAYING"] = "youtubemusic_now_playing_is_playing";
|
|
841
849
|
/** Next song title. Use as {{youtubemusic_next_song}}. */
|
|
842
850
|
SystemVariables["YOUTUBEMUSIC_NEXT_SONG"] = "youtubemusic_next_song";
|
|
843
851
|
/** Next song artwork URL. Use as {{youtubemusic_next_image}}. */
|
|
@@ -896,8 +904,12 @@ var SystemVariables;
|
|
|
896
904
|
SystemVariables["VLC_NOW_PLAYING_URL"] = "vlc_now_playing_url";
|
|
897
905
|
/** Now playing media duration in seconds. Use as {{vlc_now_playing_duration}}. */
|
|
898
906
|
SystemVariables["VLC_NOW_PLAYING_DURATION"] = "vlc_now_playing_duration";
|
|
899
|
-
|
|
900
|
-
|
|
907
|
+
/** Now playing media position in seconds at the last play/pause/seek anchor. Use as {{vlc_now_playing_progress}}. */
|
|
908
|
+
SystemVariables["VLC_NOW_PLAYING_PROGRESS"] = "vlc_now_playing_progress";
|
|
909
|
+
/** Epoch ms when the progress anchor was captured (for client-side interpolation). Use as {{vlc_now_playing_progress_ts}}. */
|
|
910
|
+
SystemVariables["VLC_NOW_PLAYING_PROGRESS_TS"] = "vlc_now_playing_progress_ts";
|
|
911
|
+
/** Whether playback is currently advancing (true/false). Use as {{vlc_now_playing_is_playing}}. */
|
|
912
|
+
SystemVariables["VLC_NOW_PLAYING_IS_PLAYING"] = "vlc_now_playing_is_playing";
|
|
901
913
|
/** Media URI. Use as {{vlc_now_playing_uri}}. */
|
|
902
914
|
SystemVariables["VLC_NOW_PLAYING_URI"] = "vlc_now_playing_uri";
|
|
903
915
|
// ────────────────────────────────── Voicemod ──────────────────────────────────
|