webatem 2.3.1__tar.gz → 2.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. {webatem-2.3.1 → webatem-2.3.2}/PKG-INFO +1 -1
  2. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control.html +34 -14
  3. {webatem-2.3.1 → webatem-2.3.2}/pyproject.toml +1 -1
  4. {webatem-2.3.1 → webatem-2.3.2}/webatem.egg-info/PKG-INFO +1 -1
  5. {webatem-2.3.1 → webatem-2.3.2}/LICENSE +0 -0
  6. {webatem-2.3.1 → webatem-2.3.2}/README.md +0 -0
  7. {webatem-2.3.1 → webatem-2.3.2}/atem_control/__init__.py +0 -0
  8. {webatem-2.3.1 → webatem-2.3.2}/atem_control/activity.py +0 -0
  9. {webatem-2.3.1 → webatem-2.3.2}/atem_control/apps.py +0 -0
  10. {webatem-2.3.1 → webatem-2.3.2}/atem_control/control/__init__.py +0 -0
  11. {webatem-2.3.1 → webatem-2.3.2}/atem_control/control/activity.py +0 -0
  12. {webatem-2.3.1 → webatem-2.3.2}/atem_control/control/commands.py +0 -0
  13. {webatem-2.3.1 → webatem-2.3.2}/atem_control/control/consumer.py +0 -0
  14. {webatem-2.3.1 → webatem-2.3.2}/atem_control/control/device_api.py +0 -0
  15. {webatem-2.3.1 → webatem-2.3.2}/atem_control/control/logging.py +0 -0
  16. {webatem-2.3.1 → webatem-2.3.2}/atem_control/control/views.py +0 -0
  17. {webatem-2.3.1 → webatem-2.3.2}/atem_control/discovery.py +0 -0
  18. {webatem-2.3.1 → webatem-2.3.2}/atem_control/hooks.py +0 -0
  19. {webatem-2.3.1 → webatem-2.3.2}/atem_control/hyperdeck/__init__.py +0 -0
  20. {webatem-2.3.1 → webatem-2.3.2}/atem_control/hyperdeck/connection.py +0 -0
  21. {webatem-2.3.1 → webatem-2.3.2}/atem_control/hyperdeck/views.py +0 -0
  22. {webatem-2.3.1 → webatem-2.3.2}/atem_control/ip_upload_lock.py +0 -0
  23. {webatem-2.3.1 → webatem-2.3.2}/atem_control/media_pool/__init__.py +0 -0
  24. {webatem-2.3.1 → webatem-2.3.2}/atem_control/media_pool/broadcast.py +0 -0
  25. {webatem-2.3.1 → webatem-2.3.2}/atem_control/media_pool/still_cache.py +0 -0
  26. {webatem-2.3.1 → webatem-2.3.2}/atem_control/media_pool/views.py +0 -0
  27. {webatem-2.3.1 → webatem-2.3.2}/atem_control/media_pool/watcher.py +0 -0
  28. {webatem-2.3.1 → webatem-2.3.2}/atem_control/migrations/0001_initial.py +0 -0
  29. {webatem-2.3.1 → webatem-2.3.2}/atem_control/migrations/0002_legacy_log.py +0 -0
  30. {webatem-2.3.1 → webatem-2.3.2}/atem_control/migrations/__init__.py +0 -0
  31. {webatem-2.3.1 → webatem-2.3.2}/atem_control/models.py +0 -0
  32. {webatem-2.3.1 → webatem-2.3.2}/atem_control/netutil.py +0 -0
  33. {webatem-2.3.1 → webatem-2.3.2}/atem_control/profile/__init__.py +0 -0
  34. {webatem-2.3.1 → webatem-2.3.2}/atem_control/profile/dialog.py +0 -0
  35. {webatem-2.3.1 → webatem-2.3.2}/atem_control/profile/export.py +0 -0
  36. {webatem-2.3.1 → webatem-2.3.2}/atem_control/profile/views.py +0 -0
  37. {webatem-2.3.1 → webatem-2.3.2}/atem_control/routing.py +0 -0
  38. {webatem-2.3.1 → webatem-2.3.2}/atem_control/sightings.py +0 -0
  39. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/apple-touch-icon.png +0 -0
  40. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/brand.css +0 -0
  41. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/favicon-32.png +0 -0
  42. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/favicon.ico +0 -0
  43. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/Archivo-400-latin-ext.woff2 +0 -0
  44. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/Archivo-400-latin.woff2 +0 -0
  45. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/Archivo-500-latin-ext.woff2 +0 -0
  46. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/Archivo-500-latin.woff2 +0 -0
  47. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/Archivo-600-latin-ext.woff2 +0 -0
  48. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/Archivo-600-latin.woff2 +0 -0
  49. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/Archivo-800-latin-ext.woff2 +0 -0
  50. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/Archivo-800-latin.woff2 +0 -0
  51. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
  52. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/IBMPlexMono-400-latin.woff2 +0 -0
  53. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
  54. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/IBMPlexMono-500-latin.woff2 +0 -0
  55. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/IBMPlexMono-600-latin-ext.woff2 +0 -0
  56. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/IBMPlexMono-600-latin.woff2 +0 -0
  57. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/OFL-Archivo.txt +0 -0
  58. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/fonts/OFL-IBMPlexMono.txt +0 -0
  59. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/icon-192.png +0 -0
  60. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/icon-512.png +0 -0
  61. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/icon-maskable-512.png +0 -0
  62. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/manifest.webmanifest +0 -0
  63. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/mark.svg +0 -0
  64. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/tray/linux-24.png +0 -0
  65. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/tray/mac-22.png +0 -0
  66. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/tray/mac-44.png +0 -0
  67. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/tray/win-16.png +0 -0
  68. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/brand/tray/win-32.png +0 -0
  69. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/css/atem_connect.css +0 -0
  70. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/css/atem_control.css +0 -0
  71. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/icon.png +0 -0
  72. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/js/atem_connect.js +0 -0
  73. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/js/atem_control.js +0 -0
  74. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/js/atem_control_page.js +0 -0
  75. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/js/atem_discovery.js +0 -0
  76. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/js/atem_hyperdeck.js +0 -0
  77. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/js/atem_profile.js +0 -0
  78. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/js/atem_realtime_slider.js +0 -0
  79. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/js/custom-scrollbar.js +0 -0
  80. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/js/recent_label.js +0 -0
  81. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/js/wa-select.js +0 -0
  82. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/vendor/README.md +0 -0
  83. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/vendor/alpine.min.js +0 -0
  84. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/vendor/alpinejs-collapse-3.14.3.min.js +0 -0
  85. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/vendor/bootstrap-icons/bootstrap-icons.min.css +0 -0
  86. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
  87. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
  88. {webatem-2.3.1 → webatem-2.3.2}/atem_control/static/vendor/webatem.css +0 -0
  89. {webatem-2.3.1 → webatem-2.3.2}/atem_control/storage.py +0 -0
  90. {webatem-2.3.1 → webatem-2.3.2}/atem_control/tally.py +0 -0
  91. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/connect.html +0 -0
  92. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_atem_info.html +0 -0
  93. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_fade_to_black.html +0 -0
  94. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_fairlight.html +0 -0
  95. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_header.html +0 -0
  96. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_hyperdeck_panel.html +0 -0
  97. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_macros.html +0 -0
  98. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_media_pool.html +0 -0
  99. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_profile_modal.html +0 -0
  100. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_settings_dsk.html +0 -0
  101. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_settings_transition.html +0 -0
  102. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_settings_usk.html +0 -0
  103. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_slider.html +0 -0
  104. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_transition_controls.html +0 -0
  105. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_transition_style.html +0 -0
  106. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_usk_fly.html +0 -0
  107. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_usk_keyframe.html +0 -0
  108. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_usk_mask.html +0 -0
  109. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templates/control/_usk_slider.html +0 -0
  110. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templatetags/__init__.py +0 -0
  111. {webatem-2.3.1 → webatem-2.3.2}/atem_control/templatetags/static_v.py +0 -0
  112. {webatem-2.3.1 → webatem-2.3.2}/atem_control/uploader.py +0 -0
  113. {webatem-2.3.1 → webatem-2.3.2}/atem_control/urls.py +0 -0
  114. {webatem-2.3.1 → webatem-2.3.2}/setup.cfg +0 -0
  115. {webatem-2.3.1 → webatem-2.3.2}/webatem/__init__.py +0 -0
  116. {webatem-2.3.1 → webatem-2.3.2}/webatem/__main__.py +0 -0
  117. {webatem-2.3.1 → webatem-2.3.2}/webatem/applog.py +0 -0
  118. {webatem-2.3.1 → webatem-2.3.2}/webatem/asgi.py +0 -0
  119. {webatem-2.3.1 → webatem-2.3.2}/webatem/context.py +0 -0
  120. {webatem-2.3.1 → webatem-2.3.2}/webatem/launcher.py +0 -0
  121. {webatem-2.3.1 → webatem-2.3.2}/webatem/server.py +0 -0
  122. {webatem-2.3.1 → webatem-2.3.2}/webatem/settings.py +0 -0
  123. {webatem-2.3.1 → webatem-2.3.2}/webatem/templates/base.html +0 -0
  124. {webatem-2.3.1 → webatem-2.3.2}/webatem/templates/brand/_mark.svg +0 -0
  125. {webatem-2.3.1 → webatem-2.3.2}/webatem/templates/launcher.html +0 -0
  126. {webatem-2.3.1 → webatem-2.3.2}/webatem/uninstall.py +0 -0
  127. {webatem-2.3.1 → webatem-2.3.2}/webatem/updates.py +0 -0
  128. {webatem-2.3.1 → webatem-2.3.2}/webatem/urls.py +0 -0
  129. {webatem-2.3.1 → webatem-2.3.2}/webatem/views.py +0 -0
  130. {webatem-2.3.1 → webatem-2.3.2}/webatem/websocket.py +0 -0
  131. {webatem-2.3.1 → webatem-2.3.2}/webatem.egg-info/SOURCES.txt +0 -0
  132. {webatem-2.3.1 → webatem-2.3.2}/webatem.egg-info/dependency_links.txt +0 -0
  133. {webatem-2.3.1 → webatem-2.3.2}/webatem.egg-info/entry_points.txt +0 -0
  134. {webatem-2.3.1 → webatem-2.3.2}/webatem.egg-info/requires.txt +0 -0
  135. {webatem-2.3.1 → webatem-2.3.2}/webatem.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: webatem
3
- Version: 2.3.1
3
+ Version: 2.3.2
4
4
  Summary: Browser-based control for Blackmagic ATEM switchers: run it, open the browser, your switchers are there
5
5
  Author: Lucas Romanenko
6
6
  License: MIT
@@ -10,25 +10,45 @@
10
10
 
11
11
  {% block content %}
12
12
  {% comment %} The switcher went quiet mid-session (#38): the page keeps its last
13
- state under this scrim and banner, inert, until the server says the switcher
14
- is back. They sit outside the wrapper, which goes inert, and above every
15
- overlay; the scrim dims the page without filtering it. {% endcomment %}
16
- <div x-data x-show="$store.atem.switcherAway" x-cloak
17
- class="fixed inset-0 z-[400] pointer-events-none"
13
+ state under this scrim and notice, inert, until the server says the switcher
14
+ is back. The scrim covers the page's own scroller (the <main> this page sits
15
+ in), not the window: whatever the host puts above it, its navigation, stays
16
+ usable, so the operator can just go to another page. The box is measured, not
17
+ assumed, since hosts differ in what sits above <main>; with no <main> it is the
18
+ window. The notice is centred in it. Both sit outside the wrapper, which goes
19
+ inert, and above every overlay of this page; the scrim dims the page without
20
+ filtering it. :style is an object, never a string: a string would rewrite the
21
+ style attribute and undo x-show. {% endcomment %}
22
+ <div x-data="{
23
+ box: {},
24
+ fit() {
25
+ const m = this.$el.closest('main');
26
+ const r = m ? m.getBoundingClientRect() : { top: 0, left: 0, width: innerWidth, height: innerHeight };
27
+ this.box = { top: r.top + 'px', left: r.left + 'px', width: r.width + 'px', height: r.height + 'px' };
28
+ },
29
+ init() {
30
+ const m = this.$el.closest('main');
31
+ if (m && window.ResizeObserver) new ResizeObserver(() => this.fit()).observe(m);
32
+ this.fit();
33
+ },
34
+ }"
35
+ x-show="$store.atem.switcherAway" x-cloak
36
+ x-effect="$store.atem.switcherAway && fit()"
37
+ @resize.window="fit()"
38
+ :style="box"
39
+ class="fixed z-[400] pointer-events-none flex items-center justify-center px-4"
18
40
  role="status" aria-live="polite">
19
41
  <div class="absolute inset-0 bg-base-100/50"></div>
20
42
  {% comment %} Solid raised surface, strong border: a notice, not a state. No
21
43
  alert colour: --in is the link coral, which reads as PROGRAM here. {% endcomment %}
22
- <div class="relative flex justify-center px-4 pt-4">
23
- <div class="flex flex-wrap sm:flex-nowrap items-center gap-x-4 gap-y-3 px-5 py-3 w-full sm:w-auto max-w-2xl bg-base-300 text-base-content border border-[color:var(--border-strong)] rounded-[14px] shadow-2xl pointer-events-auto">
24
- <span class="loading loading-spinner loading-sm text-base-content/60 shrink-0"></span>
25
- <div class="text-sm leading-snug flex-1 min-w-0">
26
- <div class="font-semibold">The switcher isn't responding. Reconnecting&hellip;</div>
27
- <div class="text-base-content/60">Controls are paused until it's back.</div>
28
- </div>
29
- {% comment %} Its own row on a phone, where it ran off the banner. {% endcomment %}
30
- <button class="btn btn-sm w-full sm:w-auto shrink-0" @click="$store.atem.disconnect()">Back to connect page</button>
44
+ <div class="relative flex flex-wrap sm:flex-nowrap items-center gap-x-4 gap-y-3 px-5 py-3 w-full sm:w-auto max-w-2xl bg-base-300 text-base-content border border-[color:var(--border-strong)] rounded-[14px] shadow-2xl pointer-events-auto">
45
+ <span class="loading loading-spinner loading-sm text-base-content/60 shrink-0"></span>
46
+ <div class="text-sm leading-snug flex-1 min-w-0">
47
+ <div class="font-semibold">The switcher isn't responding. Reconnecting&hellip;</div>
48
+ <div class="text-base-content/60">Controls are paused until it's back.</div>
31
49
  </div>
50
+ {% comment %} Its own row on a phone, where it ran off the banner. {% endcomment %}
51
+ <button class="btn btn-sm w-full sm:w-auto shrink-0" @click="$store.atem.disconnect()">Back to connect page</button>
32
52
  </div>
33
53
  </div>
34
54
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "webatem"
7
- version = "2.3.1"
7
+ version = "2.3.2"
8
8
  description = "Browser-based control for Blackmagic ATEM switchers: run it, open the browser, your switchers are there"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: webatem
3
- Version: 2.3.1
3
+ Version: 2.3.2
4
4
  Summary: Browser-based control for Blackmagic ATEM switchers: run it, open the browser, your switchers are there
5
5
  Author: Lucas Romanenko
6
6
  License: MIT
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes