@camstack/ui-library 1.2.256 → 1.2.258

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 (375) hide show
  1. package/dist/composites/accelerator-label.d.ts +9 -9
  2. package/dist/composites/adaptive-downlink.d.ts +141 -143
  3. package/dist/composites/addon-global-settings-form.d.ts +73 -60
  4. package/dist/composites/addon-page-props.d.ts +34 -10
  5. package/dist/composites/agent-step-editor.d.ts +48 -47
  6. package/dist/composites/app-shell/app-shell.d.ts +17 -17
  7. package/dist/composites/app-shell/index.d.ts +3 -3
  8. package/dist/composites/app-shell/sidebar-item.d.ts +9 -8
  9. package/dist/composites/app-shell/sidebar.d.ts +10 -10
  10. package/dist/composites/audio-classification-list.d.ts +16 -15
  11. package/dist/composites/audio-level-waveform.d.ts +31 -30
  12. package/dist/composites/audio-waveform.d.ts +18 -17
  13. package/dist/composites/battery-badge.d.ts +27 -13
  14. package/dist/composites/breadcrumb.d.ts +21 -21
  15. package/dist/composites/camera-stream-player.d.ts +309 -309
  16. package/dist/composites/cap-settings/AutotrackSection.d.ts +19 -2
  17. package/dist/composites/cap-settings/CameraGridLayoutEditor.d.ts +24 -2
  18. package/dist/composites/cap-settings/ConsumablesPanel.d.ts +21 -2
  19. package/dist/composites/cap-settings/CoverageTrack.d.ts +21 -20
  20. package/dist/composites/cap-settings/EventBucketStrip.d.ts +21 -20
  21. package/dist/composites/cap-settings/EventHeatmap.d.ts +8 -7
  22. package/dist/composites/cap-settings/HomePresetPicker.d.ts +2 -2
  23. package/dist/composites/cap-settings/MaskShapeCanvas.d.ts +143 -41
  24. package/dist/composites/cap-settings/MotionZonesSettings.d.ts +41 -2
  25. package/dist/composites/cap-settings/NavigationPanel.d.ts +14 -2
  26. package/dist/composites/cap-settings/PrivacyMaskSettings.d.ts +3 -2
  27. package/dist/composites/cap-settings/PtzPanel.d.ts +15 -2
  28. package/dist/composites/cap-settings/RecordingBandsEditor.d.ts +33 -32
  29. package/dist/composites/cap-settings/RecordingPanel.d.ts +3 -2
  30. package/dist/composites/cap-settings/RecordingSettings.d.ts +11 -10
  31. package/dist/composites/cap-settings/RecordingTimeline.d.ts +3 -2
  32. package/dist/composites/cap-settings/SceneMonitorEditor.d.ts +3 -51
  33. package/dist/composites/cap-settings/SceneReferenceGallery.d.ts +62 -23
  34. package/dist/composites/cap-settings/SceneSettingsForm.d.ts +52 -16
  35. package/dist/composites/cap-settings/TimelineControls.d.ts +21 -20
  36. package/dist/composites/cap-settings/camera-grid-layout.d.ts +95 -95
  37. package/dist/composites/cap-settings/event-thumb.d.ts +9 -8
  38. package/dist/composites/cap-settings/index.d.ts +20 -20
  39. package/dist/composites/cap-settings/privacy-mask-audio.d.ts +47 -47
  40. package/dist/composites/cap-settings/recording-config-form.d.ts +25 -25
  41. package/dist/composites/cap-settings/recording-spans.d.ts +14 -14
  42. package/dist/composites/cap-settings/recording-timeline-model.d.ts +57 -57
  43. package/dist/composites/cap-settings/scene-monitor-copy.d.ts +58 -49
  44. package/dist/composites/client-network-sample.d.ts +41 -41
  45. package/dist/composites/clips/ClipBandBar.d.ts +44 -14
  46. package/dist/composites/clips/ClipPanel.d.ts +30 -6
  47. package/dist/composites/clips/ClipTile.d.ts +26 -5
  48. package/dist/composites/clips/ClipsSection.d.ts +107 -2
  49. package/dist/composites/clips/clip-band.d.ts +72 -38
  50. package/dist/composites/clips/clip-day-window.d.ts +7 -30
  51. package/dist/composites/clips/clip-source-state.d.ts +55 -26
  52. package/dist/composites/clips/clip-still-retry.d.ts +39 -39
  53. package/dist/composites/clips/clip-thumbnail-fetch.d.ts +9 -9
  54. package/dist/composites/clips/clip-tile-media.d.ts +64 -32
  55. package/dist/composites/clips/clip-view-state.d.ts +76 -46
  56. package/dist/composites/code-block.d.ts +5 -4
  57. package/dist/composites/config-form-builder.d.ts +14 -13
  58. package/dist/composites/config-form-field.d.ts +63 -62
  59. package/dist/composites/config-icon-field.d.ts +10 -9
  60. package/dist/composites/config-secret-field.d.ts +51 -27
  61. package/dist/composites/confirm-action-button.d.ts +52 -39
  62. package/dist/composites/confirm-dialog.d.ts +110 -48
  63. package/dist/composites/copy-button.d.ts +25 -19
  64. package/dist/composites/data-table/data-table-header.d.ts +8 -7
  65. package/dist/composites/data-table/data-table-pagination.d.ts +7 -6
  66. package/dist/composites/data-table/data-table-row.d.ts +8 -7
  67. package/dist/composites/data-table/data-table.d.ts +3 -2
  68. package/dist/composites/data-table/index.d.ts +2 -2
  69. package/dist/composites/data-table/types.d.ts +29 -29
  70. package/dist/composites/data-table-filter-bar.d.ts +30 -29
  71. package/dist/composites/data-table-filter.d.ts +34 -34
  72. package/dist/composites/data-table-layout.d.ts +24 -24
  73. package/dist/composites/data-table-pager.d.ts +5 -5
  74. package/dist/composites/data-table-pagination.d.ts +23 -23
  75. package/dist/composites/data-table-selection.d.ts +10 -10
  76. package/dist/composites/data-table.d.ts +167 -118
  77. package/dist/composites/detection-canvas.d.ts +34 -25
  78. package/dist/composites/detection-colors.d.ts +9 -9
  79. package/dist/composites/detection-overlay.d.ts +33 -32
  80. package/dist/composites/detection-result-tree.d.ts +22 -9
  81. package/dist/composites/dev-shell.d.ts +15 -14
  82. package/dist/composites/device-activity-panel.d.ts +37 -31
  83. package/dist/composites/device-card.d.ts +32 -32
  84. package/dist/composites/device-controls/ac-panel.d.ts +2 -2
  85. package/dist/composites/device-controls/alarm-hero-card.d.ts +42 -42
  86. package/dist/composites/device-controls/atoms.d.ts +50 -50
  87. package/dist/composites/device-controls/brightness-panel.d.ts +3 -3
  88. package/dist/composites/device-controls/button-control.d.ts +14 -14
  89. package/dist/composites/device-controls/climate-panel.d.ts +12 -12
  90. package/dist/composites/device-controls/container-primary-hero.d.ts +33 -16
  91. package/dist/composites/device-controls/container-primary.d.ts +68 -39
  92. package/dist/composites/device-controls/control-panel.d.ts +4 -4
  93. package/dist/composites/device-controls/control-registry.d.ts +81 -70
  94. package/dist/composites/device-controls/cover-hero-card.d.ts +26 -26
  95. package/dist/composites/device-controls/cover-inline.d.ts +20 -20
  96. package/dist/composites/device-controls/cover-panel.d.ts +2 -2
  97. package/dist/composites/device-controls/dummy-hero-card.d.ts +2 -2
  98. package/dist/composites/device-controls/fan-hero-card.d.ts +20 -20
  99. package/dist/composites/device-controls/fan-panel.d.ts +3 -3
  100. package/dist/composites/device-controls/humidifier-control.d.ts +46 -29
  101. package/dist/composites/device-controls/image-control.d.ts +41 -27
  102. package/dist/composites/device-controls/index.d.ts +34 -34
  103. package/dist/composites/device-controls/lawn-mower-control.d.ts +30 -16
  104. package/dist/composites/device-controls/light-hero-card.d.ts +15 -15
  105. package/dist/composites/device-controls/lock-hero-card.d.ts +14 -14
  106. package/dist/composites/device-controls/lock-panel.d.ts +3 -3
  107. package/dist/composites/device-controls/media-player-hero-card.d.ts +16 -16
  108. package/dist/composites/device-controls/media-player-panel.d.ts +7 -7
  109. package/dist/composites/device-controls/offline-badge.d.ts +23 -8
  110. package/dist/composites/device-controls/panel-controls.d.ts +39 -20
  111. package/dist/composites/device-controls/pet-feeder-panel.d.ts +27 -9
  112. package/dist/composites/device-controls/popover-row-action.d.ts +18 -6
  113. package/dist/composites/device-controls/primary-child-picker.d.ts +31 -15
  114. package/dist/composites/device-controls/primary-child.d.ts +14 -25
  115. package/dist/composites/device-controls/radial-gauge.d.ts +17 -17
  116. package/dist/composites/device-controls/script-automation-controls.d.ts +9 -9
  117. package/dist/composites/device-controls/sensor-hero-card.d.ts +26 -8
  118. package/dist/composites/device-controls/sensor-inline-control.d.ts +21 -9
  119. package/dist/composites/device-controls/sensor-value-atom.d.ts +97 -76
  120. package/dist/composites/device-controls/switch-hero-card.d.ts +11 -11
  121. package/dist/composites/device-controls/switch-panel.d.ts +2 -2
  122. package/dist/composites/device-controls/tap-toggle.d.ts +13 -13
  123. package/dist/composites/device-controls/thermostat-hero-card.d.ts +16 -16
  124. package/dist/composites/device-controls/types.d.ts +11 -11
  125. package/dist/composites/device-controls/update-control.d.ts +20 -7
  126. package/dist/composites/device-controls/vacuum-control.d.ts +41 -25
  127. package/dist/composites/device-controls/valve-control.d.ts +51 -35
  128. package/dist/composites/device-controls/water-heater-control.d.ts +48 -31
  129. package/dist/composites/device-controls/weather-control.d.ts +46 -28
  130. package/dist/composites/device-export-panel.d.ts +34 -34
  131. package/dist/composites/device-grid.d.ts +10 -10
  132. package/dist/composites/device-item/actions.d.ts +40 -18
  133. package/dist/composites/device-item/admin-link-quick-action.d.ts +66 -26
  134. package/dist/composites/device-item/child-layout.d.ts +43 -26
  135. package/dist/composites/device-item/child-section-accordion.d.ts +20 -6
  136. package/dist/composites/device-item/children-accordion.d.ts +11 -11
  137. package/dist/composites/device-item/container-children-context.d.ts +28 -11
  138. package/dist/composites/device-item/device-delete-action.d.ts +23 -5
  139. package/dist/composites/device-item/features.d.ts +33 -15
  140. package/dist/composites/device-item/header.d.ts +53 -31
  141. package/dist/composites/device-item/helpers.d.ts +291 -274
  142. package/dist/composites/device-item/index.d.ts +18 -9
  143. package/dist/composites/device-item/preview.d.ts +41 -21
  144. package/dist/composites/device-item/quick-detail-action.d.ts +4 -4
  145. package/dist/composites/device-item/reboot-quick-action.d.ts +28 -7
  146. package/dist/composites/device-item/role-display-defaults-context.d.ts +28 -12
  147. package/dist/composites/device-item/status-dot.d.ts +24 -6
  148. package/dist/composites/device-list/batch-actions-bar.d.ts +23 -12
  149. package/dist/composites/device-list/batch-toolbar.d.ts +13 -13
  150. package/dist/composites/device-list/columns.d.ts +108 -108
  151. package/dist/composites/device-list/device-integration.d.ts +48 -58
  152. package/dist/composites/device-list/device-mode.d.ts +121 -121
  153. package/dist/composites/device-list/empty-state.d.ts +14 -3
  154. package/dist/composites/device-list/filter-chips.d.ts +42 -29
  155. package/dist/composites/device-list/fuzzy-match.d.ts +22 -22
  156. package/dist/composites/device-list/generic-mode.d.ts +88 -88
  157. package/dist/composites/device-list/group.d.ts +62 -35
  158. package/dist/composites/device-list/hardware-cell.d.ts +14 -3
  159. package/dist/composites/device-list/hardware.d.ts +29 -11
  160. package/dist/composites/device-list/icon-action.d.ts +27 -15
  161. package/dist/composites/device-list/index.d.ts +46 -23
  162. package/dist/composites/device-list/multi-select.d.ts +17 -17
  163. package/dist/composites/device-list/page-size-select.d.ts +13 -7
  164. package/dist/composites/device-list/pagination.d.ts +19 -12
  165. package/dist/composites/device-list/sort.d.ts +28 -15
  166. package/dist/composites/device-list/sortable-header.d.ts +20 -7
  167. package/dist/composites/device-list/table-layout.d.ts +44 -44
  168. package/dist/composites/device-list/type-filter.d.ts +16 -16
  169. package/dist/composites/device-list/url-state.d.ts +35 -35
  170. package/dist/composites/device-meta.d.ts +43 -43
  171. package/dist/composites/device-picker/DevicePicker.d.ts +72 -33
  172. package/dist/composites/device-picker/SelectedChip.d.ts +10 -9
  173. package/dist/composites/device-picker/device-filter-bar.d.ts +19 -18
  174. package/dist/composites/device-picker/device-fleet-view.d.ts +11 -3
  175. package/dist/composites/device-picker/device-parent.d.ts +27 -27
  176. package/dist/composites/device-picker/device-picker-grouping.d.ts +3 -3
  177. package/dist/composites/device-picker/device-picker-model.d.ts +140 -140
  178. package/dist/composites/device-picker/device-selection-rows.d.ts +31 -24
  179. package/dist/composites/device-picker/device-selection.d.ts +43 -43
  180. package/dist/composites/device-picker/index.d.ts +9 -9
  181. package/dist/composites/device-select-field.d.ts +17 -16
  182. package/dist/composites/device-select-filter.d.ts +78 -78
  183. package/dist/composites/device-selector-picker.d.ts +25 -25
  184. package/dist/composites/device-step-matrix.d.ts +54 -28
  185. package/dist/composites/discovery-panel.d.ts +22 -22
  186. package/dist/composites/doorbell-recent-panel.d.ts +9 -8
  187. package/dist/composites/empty-state.d.ts +8 -8
  188. package/dist/composites/error-box.d.ts +32 -17
  189. package/dist/composites/event-kind-visuals.d.ts +29 -18
  190. package/dist/composites/event-stream.d.ts +59 -42
  191. package/dist/composites/extensions/AssociationSlotCard.d.ts +45 -24
  192. package/dist/composites/extensions/ExtensionsPanel.d.ts +41 -18
  193. package/dist/composites/extensions/extensions-view-state.d.ts +71 -53
  194. package/dist/composites/filter-bar.d.ts +22 -21
  195. package/dist/composites/form-field.d.ts +9 -9
  196. package/dist/composites/format-state-value.d.ts +23 -51
  197. package/dist/composites/grouped-model-selector.d.ts +7 -6
  198. package/dist/composites/hls-quality.d.ts +26 -26
  199. package/dist/composites/hls-video.d.ts +62 -39
  200. package/dist/composites/hover-zoom-image.d.ts +35 -16
  201. package/dist/composites/icon-picker.d.ts +86 -50
  202. package/dist/composites/image-selector.d.ts +21 -20
  203. package/dist/composites/index.d.ts +204 -204
  204. package/dist/composites/inference-config-selector.d.ts +36 -35
  205. package/dist/composites/kebab-menu.d.ts +53 -35
  206. package/dist/composites/key-value-list.d.ts +14 -14
  207. package/dist/composites/log-stream-scroll.d.ts +24 -24
  208. package/dist/composites/log-stream.d.ts +81 -70
  209. package/dist/composites/login-form.d.ts +7 -6
  210. package/dist/composites/model-bound-slider.d.ts +46 -26
  211. package/dist/composites/model-picker.d.ts +20 -19
  212. package/dist/composites/mount-addon-page.d.ts +12 -12
  213. package/dist/composites/network-link-badge.d.ts +7 -6
  214. package/dist/composites/node-picker.d.ts +14 -13
  215. package/dist/composites/notification-targets-field.d.ts +76 -58
  216. package/dist/composites/notification-targets-options.d.ts +9 -6
  217. package/dist/composites/option-select/OptionSelect.d.ts +23 -22
  218. package/dist/composites/option-select/index.d.ts +4 -4
  219. package/dist/composites/option-select/option-select-model.d.ts +35 -35
  220. package/dist/composites/page-header.d.ts +6 -6
  221. package/dist/composites/peer-connection-config.d.ts +9 -9
  222. package/dist/composites/phase-icon.d.ts +10 -3
  223. package/dist/composites/pipeline-builder.d.ts +21 -13
  224. package/dist/composites/pipeline-matrix-shared.d.ts +159 -150
  225. package/dist/composites/pipeline-runtime-selector.d.ts +12 -11
  226. package/dist/composites/pipeline-step.d.ts +39 -31
  227. package/dist/composites/placeholder-field/PlaceholderChipField.d.ts +23 -22
  228. package/dist/composites/placeholder-field/index.d.ts +1 -1
  229. package/dist/composites/provider-badge.d.ts +6 -5
  230. package/dist/composites/ptz-overlay.d.ts +38 -18
  231. package/dist/composites/qr-code.d.ts +24 -10
  232. package/dist/composites/reconnect-schedule.d.ts +22 -22
  233. package/dist/composites/resolve-step-default-model.d.ts +94 -94
  234. package/dist/composites/response-log.d.ts +7 -6
  235. package/dist/composites/root-model-source.d.ts +21 -10
  236. package/dist/composites/scope-picker.d.ts +49 -25
  237. package/dist/composites/section-card.d.ts +19 -11
  238. package/dist/composites/setting-row.d.ts +39 -21
  239. package/dist/composites/snapshot-button.d.ts +23 -19
  240. package/dist/composites/sort-header-button.d.ts +25 -8
  241. package/dist/composites/stat-card.d.ts +20 -8
  242. package/dist/composites/state-values-stream.d.ts +49 -24
  243. package/dist/composites/status-badge.d.ts +10 -8
  244. package/dist/composites/step-inspector/gate-control.d.ts +13 -12
  245. package/dist/composites/step-inspector/index.d.ts +8 -8
  246. package/dist/composites/step-inspector/layered-settings-form.d.ts +41 -30
  247. package/dist/composites/step-inspector/segmented-choice.d.ts +8 -7
  248. package/dist/composites/step-inspector/setting-values.d.ts +13 -8
  249. package/dist/composites/step-inspector/step-detail-dock.d.ts +39 -23
  250. package/dist/composites/step-inspector/step-inspector-panel.d.ts +34 -28
  251. package/dist/composites/step-inspector/step-model-row.d.ts +29 -24
  252. package/dist/composites/step-inspector/step-search.d.ts +11 -11
  253. package/dist/composites/step-timings.d.ts +7 -6
  254. package/dist/composites/step-tree.d.ts +17 -12
  255. package/dist/composites/stream-broker-selector.d.ts +29 -8
  256. package/dist/composites/stream-debug/stream-debug-overlay.d.ts +40 -40
  257. package/dist/composites/stream-debug/webrtc-debug-stats.d.ts +144 -129
  258. package/dist/composites/stream-panel.d.ts +212 -201
  259. package/dist/composites/table-sort.d.ts +61 -61
  260. package/dist/composites/timezone-selector.d.ts +15 -13
  261. package/dist/composites/training/send-frame-to-training.d.ts +5 -4
  262. package/dist/composites/training/training-collection-picker.d.ts +4 -3
  263. package/dist/composites/training/training-refusal-text.d.ts +6 -6
  264. package/dist/composites/unit-picker/UnitPicker.d.ts +19 -14
  265. package/dist/composites/unit-picker/index.d.ts +1 -1
  266. package/dist/composites/use-data-table-filter.d.ts +19 -19
  267. package/dist/composites/version-badge.d.ts +19 -18
  268. package/dist/composites/webrtc-diagnostics/EndpointTestCard.d.ts +7 -7
  269. package/dist/composites/webrtc-diagnostics/HubSessionTestCard.d.ts +14 -14
  270. package/dist/composites/webrtc-diagnostics/RunReport.d.ts +10 -5
  271. package/dist/composites/webrtc-diagnostics/endpoint-probe.d.ts +41 -21
  272. package/dist/composites/webrtc-diagnostics/endpoint-test.d.ts +37 -32
  273. package/dist/composites/webrtc-diagnostics/format.d.ts +3 -3
  274. package/dist/composites/webrtc-diagnostics/ice-candidates.d.ts +49 -49
  275. package/dist/composites/webrtc-diagnostics/nat-mapping.d.ts +36 -36
  276. package/dist/composites/webrtc-diagnostics/session-run.d.ts +108 -95
  277. package/dist/composites/webrtc-diagnostics/session-verdict.d.ts +29 -20
  278. package/dist/composites/widget-panel.d.ts +23 -23
  279. package/dist/composites/widget-slot.d.ts +35 -17
  280. package/dist/contexts/custom-field-renderers.d.ts +53 -17
  281. package/dist/contexts/device-context.d.ts +32 -12
  282. package/dist/contexts/device-quick-detail.d.ts +13 -4
  283. package/dist/contexts/player-overlays.d.ts +82 -42
  284. package/dist/contexts/recorded-playback.d.ts +40 -18
  285. package/dist/contexts/system-context.d.ts +28 -13
  286. package/dist/contexts/vod-playback.d.ts +39 -22
  287. package/dist/contexts/widget-registry.d.ts +139 -102
  288. package/dist/contexts/zone-editing.d.ts +69 -46
  289. package/dist/generated/system-hooks.d.ts +17 -1
  290. package/dist/hooks/index.d.ts +43 -43
  291. package/dist/hooks/turn-server-cache.d.ts +69 -69
  292. package/dist/hooks/use-capability-presence.d.ts +65 -28
  293. package/dist/hooks/use-cluster-nodes.d.ts +54 -27
  294. package/dist/hooks/use-device-autotrack.d.ts +7 -7
  295. package/dist/hooks/use-device-battery.d.ts +24 -11
  296. package/dist/hooks/use-device-cap-slice.d.ts +15 -15
  297. package/dist/hooks/use-device-capability.d.ts +61 -27
  298. package/dist/hooks/use-device-detections.d.ts +32 -32
  299. package/dist/hooks/use-device-features.d.ts +18 -18
  300. package/dist/hooks/use-device-list-page-size.d.ts +19 -6
  301. package/dist/hooks/use-device-network-link.d.ts +15 -7
  302. package/dist/hooks/use-device-proxy.d.ts +98 -92
  303. package/dist/hooks/use-device-snapshot.d.ts +23 -23
  304. package/dist/hooks/use-device-webrtc.d.ts +211 -205
  305. package/dist/hooks/use-devices.d.ts +9 -9
  306. package/dist/hooks/use-doorbell-events.d.ts +13 -13
  307. package/dist/hooks/use-event-stream.d.ts +6 -3
  308. package/dist/hooks/use-is-mobile.d.ts +5 -5
  309. package/dist/hooks/use-live-buffer.d.ts +5 -5
  310. package/dist/hooks/use-live-event.d.ts +1 -1
  311. package/dist/hooks/use-navigation.d.ts +20 -20
  312. package/dist/hooks/use-optimistic-slice.d.ts +13 -13
  313. package/dist/hooks/use-persisted-page-size.d.ts +10 -10
  314. package/dist/hooks/use-ptz.d.ts +108 -108
  315. package/dist/hooks/use-stationary-overlay.d.ts +37 -37
  316. package/dist/hooks/use-system-query.d.ts +33 -10
  317. package/dist/hooks/use-url-query.d.ts +3 -3
  318. package/dist/icons/index.d.ts +2 -2
  319. package/dist/icons/provider-icons.d.ts +2 -2
  320. package/dist/icons/status-icons.d.ts +2 -2
  321. package/dist/index.cjs +123 -69
  322. package/dist/index.d.ts +31 -27
  323. package/dist/index.js +123 -69
  324. package/dist/lib/cap-error.d.ts +18 -39
  325. package/dist/lib/cn.d.ts +1 -1
  326. package/dist/lib/fleet-query-defaults.d.ts +68 -34
  327. package/dist/lib/format-control-datetime.d.ts +16 -16
  328. package/dist/lib/format-duration.d.ts +12 -12
  329. package/dist/lib/format-last-seen.d.ts +5 -18
  330. package/dist/lib/format-numeric.d.ts +7 -7
  331. package/dist/lib/hub-mount.d.ts +8 -42
  332. package/dist/lib/index.d.ts +21 -21
  333. package/dist/lib/phase-config.d.ts +24 -11
  334. package/dist/lib/pipeline-mirror.d.ts +16 -16
  335. package/dist/lib/recorded-control-protocol.d.ts +41 -43
  336. package/dist/lib/resolve-sensor-display.d.ts +36 -20
  337. package/dist/lib/responsive.d.ts +54 -54
  338. package/dist/lib/scrub-controller.d.ts +75 -78
  339. package/dist/lib/shared-context.d.ts +27 -2
  340. package/dist/lib/tailwind-variants.d.ts +20 -20
  341. package/dist/primitives/badge.d.ts +5 -10
  342. package/dist/primitives/bottom-sheet.d.ts +7 -7
  343. package/dist/primitives/button.d.ts +5 -9
  344. package/dist/primitives/card.d.ts +4 -8
  345. package/dist/primitives/checkbox.d.ts +3 -4
  346. package/dist/primitives/collapsible-card.d.ts +23 -13
  347. package/dist/primitives/dialog.d.ts +33 -59
  348. package/dist/primitives/dropdown.d.ts +13 -13
  349. package/dist/primitives/floating-panel.d.ts +41 -20
  350. package/dist/primitives/icon-button.d.ts +8 -12
  351. package/dist/primitives/index.d.ts +22 -22
  352. package/dist/primitives/input.d.ts +6 -16
  353. package/dist/primitives/label.d.ts +3 -4
  354. package/dist/primitives/mobile-drawer.d.ts +8 -8
  355. package/dist/primitives/password-input.d.ts +18 -18
  356. package/dist/primitives/popover.d.ts +7 -7
  357. package/dist/primitives/scroll-area.d.ts +3 -4
  358. package/dist/primitives/select.d.ts +20 -20
  359. package/dist/primitives/separator.d.ts +4 -8
  360. package/dist/primitives/skeleton.d.ts +3 -4
  361. package/dist/primitives/switch.d.ts +6 -6
  362. package/dist/primitives/tabs.d.ts +26 -26
  363. package/dist/primitives/tooltip.d.ts +12 -12
  364. package/dist/theme/create-theme.d.ts +1 -1
  365. package/dist/theme/defaults.d.ts +1 -1
  366. package/dist/theme/index.d.ts +6 -6
  367. package/dist/theme/theme-provider.d.ts +8 -7
  368. package/dist/theme/theme-to-css.d.ts +1 -1
  369. package/dist/theme/types.d.ts +98 -100
  370. package/dist/theme/use-theme-mode.d.ts +1 -1
  371. package/dist/trpc-react.d.ts +23 -3
  372. package/dist/widgets/host-widgets.d.ts +4 -4
  373. package/package.json +8 -4
  374. package/src/tailwind/camstack-theme.css +11 -0
  375. package/dist/composites/unit-picker/UnitPicker.spec.d.ts +0 -1
@@ -1,53 +1,5 @@
1
- /**
2
- * SceneMonitorEditor — the per-camera half of the Scenes surface.
3
- *
4
- * **Imported directly, not resolved as a widget.** It briefly lived behind the
5
- * host widget `host/scene-monitor-editor`, mounted as a "Scenes" tab on one
6
- * camera's detail page. That put a standing question about the property ("is
7
- * the bin still out") one camera deep, where the operator's actual question —
8
- * "which of my scenes have tripped" — could not be asked at all. The overview
9
- * is now the top-level `/scenes` page; this component is what that page opens
10
- * once a camera is chosen, in a dialog. The widget id and its `deviceConfig`
11
- * declaration are both gone, in the same commit, because
12
- * `scripts/check-host-widget-resolves.ts` checks both directions.
13
- *
14
- * It renders BARE — no `WidgetPanel` — because its only caller supplies a
15
- * dialog header, and two stacked titles read as a layout bug.
16
- *
17
- * ## The flow, in the order the operator meets it
18
- *
19
- * 1. **Draw a region on the still frame.** A rect over a SNAPSHOT, not the live
20
- * player: a scene is defined against a photograph, and drawing on a moving
21
- * picture makes it impossible to see whether the box actually contains the
22
- * bin. The editor starts in draw mode and warns above ~40 % of the frame,
23
- * because a full-frame scene is dominated by weather, sky and parked cars —
24
- * it will not work, and it will look broken rather than misconfigured.
25
- * 2. **Capture the initial state, per lighting variant.** Two buttons, Daylight
26
- * and Night (IR), each forcing a fresh snapshot. The variant is DETECTED
27
- * from the frame and shown rather than asked; the buttons exist so the
28
- * operator can say "capture this as the night reference" while standing
29
- * outside at 22:00 — which is exactly why **Night (IR) is labelled
30
- * optional**. Almost nobody does that, and a scene captured only in daylight
31
- * is a configuration, not a defect: under the default
32
- * `onUncoveredCondition: 'skip'` the infrared hours are simply sat out.
33
- * 3. **Read the coverage line.** "Daylight ✓ · Night (IR) ✗ — optional; checks
34
- * in night (ir) are skipped". This feature's failure mode is silence that
35
- * reads as "nothing has happened", and that one line is the difference
36
- * between a five-minute fix and a session of guessing — but it must say what
37
- * HAPPENS, not complain. It used to end "reports 'can't tell'", which made a
38
- * correctly configured scene look broken every night.
39
- * 4. **Reset.** Clears the flag AND re-captures the baseline for the current
40
- * light, because the bin never goes back in exactly the same spot.
41
- * 5. **Settings.** Every knob the model has actually carried since the provider
42
- * shipped — how often it looks, how closely it has to match, how many
43
- * agreeing checks a change costs, what a missing light means, which boolean
44
- * drives notifications, and whether a vision model adjudicates a flip. None
45
- * of it was reachable before; see `SceneSettingsForm`.
46
- *
47
- * Live state arrives through the cap's `status.kind: 'push'` runtime slice, so
48
- * the card updates itself without polling.
49
- */
1
+ import { type JSX } from "react";
50
2
  export interface SceneMonitorEditorProps {
51
- readonly deviceId: number;
3
+ readonly deviceId: number;
52
4
  }
53
- export declare function SceneMonitorEditor({ deviceId }: SceneMonitorEditorProps): import("react").JSX.Element | null;
5
+ export declare function SceneMonitorEditor({ deviceId }: SceneMonitorEditorProps): JSX.Element | null;
@@ -1,36 +1,75 @@
1
- import { SceneMonitor, SceneReference } from '@camstack/types';
1
+ /**
2
+ * SceneReferenceGallery — the photographs a scene is actually judging against,
3
+ * grouped by lighting variant, each individually deletable.
4
+ *
5
+ * ## Why it has to exist
6
+ *
7
+ * A scene's whole answer is "does this region still look like the photograph".
8
+ * Until now the operator could see a COUNT of references and never the
9
+ * references themselves, which makes the two failure modes indistinguishable
10
+ * from the outside: a blurry capture taken while a van was in the way poisons a
11
+ * condition forever, and from a cosine score there is no way to tell which one
12
+ * it was. `deleteReference` shipped with the cap for exactly this and had no
13
+ * caller.
14
+ *
15
+ * ## The image
16
+ *
17
+ * A bare `<img>` against the `event-media` data plane
18
+ * (`/addon/pipeline-analytics/event-media/m/<mediaId>` — D482), which is
19
+ * `access: 'authenticated'` — that accepts the `camstack_session` cookie, and a
20
+ * cookie is the only credential an `<img>` can send. Same mechanism, and the
21
+ * same reasoning, as `use-device-snapshot`; no bearer-token blob fetch is
22
+ * needed and no second copy of the auth plumbing is introduced here.
23
+ *
24
+ * `SceneReference.thumbnailMediaId` finally IS a media row id (D482). It was
25
+ * named `…MediaId` while holding a composite MediaStore key
26
+ * (`scene:<ownerId>:thumbnailSmall:<ts>`), which this component read
27
+ * POSITIONALLY for its owner id — a name that described the right design
28
+ * beside a value that did not, which is the shape of leftover this repo has
29
+ * been bitten by three times. The tile now addresses the row.
30
+ *
31
+ * **A missing blob is normal, not exceptional.** Reference thumbnails written
32
+ * before the `ownerKind: 'scene'` fix carried an `ownerId` no event row backs,
33
+ * which made them eligible for the orphan sweep — so on an existing install
34
+ * some of these ids resolve to nothing. That must degrade to a dated
35
+ * placeholder: the reference is still real, still being scored against, and
36
+ * still deletable. A gallery that blanks or throws over a missing picture would
37
+ * take the delete button away exactly when it is needed.
38
+ */
39
+ import type { SceneMonitor, SceneReference } from "@camstack/types";
40
+ import { type JSX } from "react";
2
41
  /** The hub-proxied prefix for the pipeline-analytics event-media data plane. */
3
42
  export declare const SCENE_MEDIA_BASE: string;
4
43
  /** One reference, with the coordinates `deleteReference` addresses it by. */
5
44
  export interface SceneReferenceTile {
6
- readonly stateId: string;
7
- /** Index into THAT state's `references` array — the cap's own addressing. */
8
- readonly index: number;
9
- readonly reference: SceneReference;
45
+ readonly stateId: string;
46
+ /** Index into THAT state's `references` array — the cap's own addressing. */
47
+ readonly index: number;
48
+ readonly reference: SceneReference;
10
49
  }
11
50
  export interface SceneReferenceGroup {
12
- readonly condition: string;
13
- readonly tiles: readonly SceneReferenceTile[];
51
+ readonly condition: string;
52
+ readonly tiles: readonly SceneReferenceTile[];
14
53
  }
15
54
  /**
16
- * Flatten `states[].references[]` into per-condition groups while keeping each
17
- * reference's `(stateId, index)` — the pair `deleteReference` takes.
18
- *
19
- * The index is deliberately the position in the state's OWN array rather than
20
- * anything derived from the grouping: an index computed over the grouped view
21
- * would address a different reference the moment a scene holds two conditions,
22
- * and the operator would delete the wrong photograph with no way to tell.
23
- */
55
+ * Flatten `states[].references[]` into per-condition groups while keeping each
56
+ * reference's `(stateId, index)` — the pair `deleteReference` takes.
57
+ *
58
+ * The index is deliberately the position in the state's OWN array rather than
59
+ * anything derived from the grouping: an index computed over the grouped view
60
+ * would address a different reference the moment a scene holds two conditions,
61
+ * and the operator would delete the wrong photograph with no way to tell.
62
+ */
24
63
  export declare function groupReferences(monitor: SceneMonitor): readonly SceneReferenceGroup[];
25
64
  /** Total references across every state — the count that decides whether a
26
- * delete leaves the scene with no idea what "normal" looks like. */
65
+ * delete leaves the scene with no idea what "normal" looks like. */
27
66
  export declare function totalReferences(monitor: SceneMonitor): number;
28
67
  export interface SceneReferenceGalleryProps {
29
- readonly monitor: SceneMonitor;
30
- readonly disabled: boolean;
31
- readonly onDelete: (input: {
32
- stateId: string;
33
- index: number;
34
- }) => void;
68
+ readonly monitor: SceneMonitor;
69
+ readonly disabled: boolean;
70
+ readonly onDelete: (input: {
71
+ stateId: string;
72
+ index: number;
73
+ }) => void;
35
74
  }
36
- export declare function SceneReferenceGallery({ monitor, disabled, onDelete }: SceneReferenceGalleryProps): import("react").JSX.Element;
75
+ export declare function SceneReferenceGallery({ monitor, disabled, onDelete }: SceneReferenceGalleryProps): JSX.Element;
@@ -1,21 +1,57 @@
1
- import { SceneCheck, SceneMonitor, SceneUncoveredPolicy } from '@camstack/types';
1
+ /**
2
+ * SceneSettingsForm — every knob a scene actually has, per scene.
3
+ *
4
+ * ## Why this exists
5
+ *
6
+ * The model has carried `enabled`, `triggerMode`, `checkIntervalSec`,
7
+ * `check.threshold`, `check.hysteresisCount`, `quietSeconds`,
8
+ * `minObservationSpacingSec`, `emit`, `autoRestore` and `confirm` since the
9
+ * provider shipped, and `updateScene` has accepted a patch for all of them —
10
+ * but the editor exposed **none**. Every scene therefore ran on the creation
11
+ * defaults, and an operator whose scene fired too eagerly (or not at all) had
12
+ * no move available except deleting it and drawing it again. Tuning knobs that
13
+ * exist and cannot be reached are worse than absent ones: they read, from the
14
+ * code, as a feature that shipped.
15
+ *
16
+ * ## What is deliberately NOT here
17
+ *
18
+ * `check.mode: 'llm'`. The cap declares it and the engine has an adapter seam
19
+ * for it, but no production caller supplies `SceneEngineDeps.llm` — an
20
+ * `llm`-mode scene reports `availability: 'unavailable'` forever. Offering the
21
+ * switch would let an operator convert a working scene into a permanently
22
+ * broken one in one click. The vision model reaches a scene through the
23
+ * **`confirm`** adjudicator instead, which IS wired (`SceneConfirmGate`, built
24
+ * unconditionally at the engine's construction site) and is the better
25
+ * topology anyway: CLIP proposes at the poll cadence, the model is asked only
26
+ * on a candidate flip.
27
+ *
28
+ * ## Editing model
29
+ *
30
+ * Local draft, committed on blur when it differs — the `AutotrackSection`
31
+ * shape. Selects and checkboxes commit on change, because there is no
32
+ * intermediate state worth protecting. There is no second store and no "save"
33
+ * button: `updateScene` writes the authority the provider already owns and the
34
+ * caller refetches (D62).
35
+ */
36
+ import type { SceneCheck, SceneMonitor, SceneUncoveredPolicy } from "@camstack/types";
37
+ import { type JSX } from "react";
2
38
  /** The subset of `updateScene`'s patch this form can produce. */
3
39
  export interface SceneSettingsPatch {
4
- readonly label?: string;
5
- readonly enabled?: boolean;
6
- readonly triggerMode?: SceneMonitor['triggerMode'];
7
- readonly checkIntervalSec?: number;
8
- readonly check?: SceneCheck;
9
- readonly quietSeconds?: number;
10
- readonly minObservationSpacingSec?: number;
11
- readonly emit?: SceneMonitor['emit'];
12
- readonly autoRestore?: boolean;
13
- readonly onUncoveredCondition?: SceneUncoveredPolicy;
14
- readonly confirm?: SceneMonitor['confirm'] | null;
40
+ readonly label?: string;
41
+ readonly enabled?: boolean;
42
+ readonly triggerMode?: SceneMonitor["triggerMode"];
43
+ readonly checkIntervalSec?: number;
44
+ readonly check?: SceneCheck;
45
+ readonly quietSeconds?: number;
46
+ readonly minObservationSpacingSec?: number;
47
+ readonly emit?: SceneMonitor["emit"];
48
+ readonly autoRestore?: boolean;
49
+ readonly onUncoveredCondition?: SceneUncoveredPolicy;
50
+ readonly confirm?: SceneMonitor["confirm"] | null;
15
51
  }
16
52
  export interface SceneSettingsFormProps {
17
- readonly monitor: SceneMonitor;
18
- readonly disabled: boolean;
19
- readonly onPatch: (patch: SceneSettingsPatch) => void;
53
+ readonly monitor: SceneMonitor;
54
+ readonly disabled: boolean;
55
+ readonly onPatch: (patch: SceneSettingsPatch) => void;
20
56
  }
21
- export declare function SceneSettingsForm({ monitor, disabled, onPatch }: SceneSettingsFormProps): import("react").JSX.Element;
57
+ export declare function SceneSettingsForm({ monitor, disabled, onPatch }: SceneSettingsFormProps): JSX.Element;
@@ -1,24 +1,25 @@
1
- import { DayWindow } from './recording-timeline-model';
1
+ import { type JSX } from "react";
2
+ import { type DayWindow } from "./recording-timeline-model";
2
3
  interface TimelineControlsProps {
3
- /** Currently selected calendar day. */
4
- readonly day: Date;
5
- /** Called when the user picks a new day. */
6
- readonly onDayChange: (d: Date) => void;
7
- /** Current zoom+pan view window. */
8
- readonly view: DayWindow;
9
- /** Full day bounds (used for zoom/pan clamping). */
10
- readonly dayBounds: DayWindow;
11
- /** Called when zoom changes the view. */
12
- readonly onViewChange: (w: DayWindow) => void;
4
+ /** Currently selected calendar day. */
5
+ readonly day: Date;
6
+ /** Called when the user picks a new day. */
7
+ readonly onDayChange: (d: Date) => void;
8
+ /** Current zoom+pan view window. */
9
+ readonly view: DayWindow;
10
+ /** Full day bounds (used for zoom/pan clamping). */
11
+ readonly dayBounds: DayWindow;
12
+ /** Called when zoom changes the view. */
13
+ readonly onViewChange: (w: DayWindow) => void;
13
14
  }
14
15
  /**
15
- * Date selector + prev/next pan + zoom-in / zoom-out buttons for the recording
16
- * timeline. Zoom cycles through ZOOM_LEVELS (widest → narrowest), anchored on
17
- * the view's RIGHT edge — so on today's timeline "now" stays pinned to the right
18
- * instead of drifting to a midday range. The ◀ / ▶ buttons step the visible
19
- * window earlier/later within the day (the discoverable equivalent of the
20
- * horizontal wheel-pan wired in RecordingTimeline), so a zoomed-in day can be
21
- * navigated back and forth without a mouse wheel.
22
- */
23
- export declare function TimelineControls({ day, onDayChange, view, dayBounds, onViewChange, }: TimelineControlsProps): import("react").JSX.Element;
16
+ * Date selector + prev/next pan + zoom-in / zoom-out buttons for the recording
17
+ * timeline. Zoom cycles through ZOOM_LEVELS (widest → narrowest), anchored on
18
+ * the view's RIGHT edge — so on today's timeline "now" stays pinned to the right
19
+ * instead of drifting to a midday range. The ◀ / ▶ buttons step the visible
20
+ * window earlier/later within the day (the discoverable equivalent of the
21
+ * horizontal wheel-pan wired in RecordingTimeline), so a zoomed-in day can be
22
+ * navigated back and forth without a mouse wheel.
23
+ */
24
+ export declare function TimelineControls({ day, onDayChange, view, dayBounds, onViewChange }: TimelineControlsProps): JSX.Element | null;
24
25
  export {};
@@ -1,119 +1,119 @@
1
1
  /**
2
- * The pure half of the camera-grid layout editor: what a grid IS on this side
3
- * of the wire, and the geometry the drag handles apply.
4
- *
5
- * Both rectangles an editor manipulates are NORMALIZED [0,1] — the crop taken
6
- * out of a source, and the cell it lands in. The addon stores them that way so
7
- * a source camera that changes resolution does not silently start cutting the
8
- * wrong part of the picture, and the editor has to speak the same language or
9
- * the conversion becomes a second place the convention can drift.
10
- */
2
+ * The pure half of the camera-grid layout editor: what a grid IS on this side
3
+ * of the wire, and the geometry the drag handles apply.
4
+ *
5
+ * Both rectangles an editor manipulates are NORMALIZED [0,1] — the crop taken
6
+ * out of a source, and the cell it lands in. The addon stores them that way so
7
+ * a source camera that changes resolution does not silently start cutting the
8
+ * wrong part of the picture, and the editor has to speak the same language or
9
+ * the conversion becomes a second place the convention can drift.
10
+ */
11
11
  export interface GridNormalizedRect {
12
- readonly x: number;
13
- readonly y: number;
14
- readonly width: number;
15
- readonly height: number;
12
+ readonly x: number;
13
+ readonly y: number;
14
+ readonly width: number;
15
+ readonly height: number;
16
16
  }
17
17
  export interface GridLayoutCell {
18
- readonly deviceId: number;
19
- /** The part of the SOURCE taken, normalized against the source. */
20
- readonly source: GridNormalizedRect;
21
- /** Where it lands, normalized against the CANVAS. */
22
- readonly cell: GridNormalizedRect;
18
+ readonly deviceId: number;
19
+ /** The part of the SOURCE taken, normalized against the source. */
20
+ readonly source: GridNormalizedRect;
21
+ /** Where it lands, normalized against the CANVAS. */
22
+ readonly cell: GridNormalizedRect;
23
23
  }
24
24
  /**
25
- * Which profiles this grid can compose, and which sources stop it.
26
- *
27
- * Read-only in the editor. The operator does not choose what is on offer — the
28
- * source cameras do, by what they have assigned — and a checkbox that pretended
29
- * otherwise would publish a composition with a hole in it.
30
- */
25
+ * Which profiles this grid can compose, and which sources stop it.
26
+ *
27
+ * Read-only in the editor. The operator does not choose what is on offer — the
28
+ * source cameras do, by what they have assigned — and a checkbox that pretended
29
+ * otherwise would publish a composition with a hole in it.
30
+ */
31
31
  export interface GridProfileOffer {
32
- readonly profile: 'high' | 'mid' | 'low';
33
- readonly offered: boolean;
34
- readonly missingSources: readonly number[];
35
- /**
36
- * The canvas this profile composes onto, `WxH`, or empty when it is not
37
- * offered. DERIVED — the operator no longer types a resolution, so this is
38
- * the only place the grid's actual size is ever stated.
39
- */
40
- readonly canvas: string;
41
- /**
42
- * Whether this profile is PUBLISHED, of the ones the grid could serve.
43
- *
44
- * A grid's `high` composes its sources' `high`, so on a 4K fleet it is a 4K
45
- * canvas built from 4K decodes — an opt-in, not something a viewer's adaptive
46
- * should be handed by climbing to the top rung it can see.
47
- */
48
- readonly published: boolean;
32
+ readonly profile: "high" | "mid" | "low";
33
+ readonly offered: boolean;
34
+ readonly missingSources: readonly number[];
35
+ /**
36
+ * The canvas this profile composes onto, `WxH`, or empty when it is not
37
+ * offered. DERIVED — the operator no longer types a resolution, so this is
38
+ * the only place the grid's actual size is ever stated.
39
+ */
40
+ readonly canvas: string;
41
+ /**
42
+ * Whether this profile is PUBLISHED, of the ones the grid could serve.
43
+ *
44
+ * A grid's `high` composes its sources' `high`, so on a 4K fleet it is a 4K
45
+ * canvas built from 4K decodes — an opt-in, not something a viewer's adaptive
46
+ * should be handed by climbing to the top rung it can see.
47
+ */
48
+ readonly published: boolean;
49
49
  }
50
50
  export interface GridLayoutView {
51
- readonly instanceId: string;
52
- readonly deviceId: number;
53
- readonly name: string;
54
- readonly fps: number;
55
- readonly cells: readonly GridLayoutCell[];
56
- readonly profiles: readonly GridProfileOffer[];
51
+ readonly instanceId: string;
52
+ readonly deviceId: number;
53
+ readonly name: string;
54
+ readonly fps: number;
55
+ readonly cells: readonly GridLayoutCell[];
56
+ readonly profiles: readonly GridProfileOffer[];
57
57
  }
58
58
  /**
59
- * What a read of the grid can be.
60
- *
61
- * Three OUTCOMES, never two: a grid, an answer of "this device is not a grid"
62
- * (`null`), and a reply this page could not read (`'unreadable'`). Collapsing
63
- * the last two makes "not yet known" indistinguishable from "not installed",
64
- * which is exactly the failure D315 exists to stop.
65
- */
66
- export type GridLayoutReadOutcome = GridLayoutView | null | 'unreadable';
59
+ * What a read of the grid can be.
60
+ *
61
+ * Three OUTCOMES, never two: a grid, an answer of "this device is not a grid"
62
+ * (`null`), and a reply this page could not read (`'unreadable'`). Collapsing
63
+ * the last two makes "not yet known" indistinguishable from "not installed",
64
+ * which is exactly the failure D315 exists to stop.
65
+ */
66
+ export type GridLayoutReadOutcome = GridLayoutView | null | "unreadable";
67
67
  /**
68
- * Parse the `camera-grid-layout.getLayout` reply. See {@link GridLayoutReadOutcome}.
69
- *
70
- * The cap answers the view itself, or `null` — there is no envelope. It used to
71
- * come back as `{ grid }` from `addons.custom`, which was the mechanism the
72
- * widget reached the addon through before the geometry had a capability of its
73
- * own; the widget now asks THE CAMERA and the envelope went with the bridge.
74
- */
68
+ * Parse the `camera-grid-layout.getLayout` reply. See {@link GridLayoutReadOutcome}.
69
+ *
70
+ * The cap answers the view itself, or `null` — there is no envelope. It used to
71
+ * come back as `{ grid }` from `addons.custom`, which was the mechanism the
72
+ * widget reached the addon through before the geometry had a capability of its
73
+ * own; the widget now asks THE CAMERA and the envelope went with the bridge.
74
+ */
75
75
  export declare function parseGridView(raw: unknown): GridLayoutReadOutcome;
76
76
  /**
77
- * Keep a rectangle inside the unit square.
78
- *
79
- * The addon THROWS on a rectangle that falls outside — a silently clipped
80
- * picture is worse than a refusal — so the editor must never hand it one.
81
- */
77
+ * Keep a rectangle inside the unit square.
78
+ *
79
+ * The addon THROWS on a rectangle that falls outside — a silently clipped
80
+ * picture is worse than a refusal — so the editor must never hand it one.
81
+ */
82
82
  export declare function clampNormalizedRect(rect: GridNormalizedRect): GridNormalizedRect;
83
83
  /** Drag: translate by a normalized delta, clamped. */
84
84
  export declare function moveNormalizedRect(rect: GridNormalizedRect, dx: number, dy: number): GridNormalizedRect;
85
85
  /** Resize from the bottom-right corner: the origin stays put. */
86
86
  export declare function resizeNormalizedRect(rect: GridNormalizedRect, dw: number, dh: number): GridNormalizedRect;
87
87
  /** The eight grips on a rectangle. A corner moves two edges, an edge one. */
88
- export type GridResizeHandle = 'nw' | 'n' | 'ne' | 'e' | 'se' | 's' | 'sw' | 'w';
88
+ export type GridResizeHandle = "nw" | "n" | "ne" | "e" | "se" | "s" | "sw" | "w";
89
89
  /**
90
- * Resize from ANY handle: the opposite side is the anchor.
91
- *
92
- * The editor had one grip, in the bottom-right, which meant a cell could only
93
- * grow away from its origin — to move its top edge an operator had to drag the
94
- * whole cell and then resize it back. The rectangle is expressed as its two
95
- * edges here rather than origin+extent, because that is what makes "the
96
- * opposite edge does not move" fall out instead of being arithmetic to get
97
- * wrong. `clampNormalizedRect` still has the last word: the addon THROWS on a
98
- * rectangle outside the unit square.
99
- */
90
+ * Resize from ANY handle: the opposite side is the anchor.
91
+ *
92
+ * The editor had one grip, in the bottom-right, which meant a cell could only
93
+ * grow away from its origin — to move its top edge an operator had to drag the
94
+ * whole cell and then resize it back. The rectangle is expressed as its two
95
+ * edges here rather than origin+extent, because that is what makes "the
96
+ * opposite edge does not move" fall out instead of being arithmetic to get
97
+ * wrong. `clampNormalizedRect` still has the last word: the addon THROWS on a
98
+ * rectangle outside the unit square.
99
+ */
100
100
  export declare function resizeNormalizedRectFrom(rect: GridNormalizedRect, handle: GridResizeHandle, dx: number, dy: number): GridNormalizedRect;
101
101
  /**
102
- * Tile the whole canvas with `count` cells, leaving no gap.
103
- *
104
- * Autofill exists because the useful answer to "put these four cameras up" is
105
- * almost never the one hand-dragging produces: rectangles land a pixel apart
106
- * and the composition shows black seams the operator cannot see in the editor
107
- * but will see in the stream.
108
- *
109
- * The shape is the near-square one — `ceil(sqrt(n))` columns — and a short last
110
- * row STRETCHES to the full width rather than leaving a hole. Three cameras
111
- * become two over one, not a 2x2 with an empty quarter, which is precisely the
112
- * layout autofill is asked to avoid.
113
- *
114
- * Aspect is deliberately not considered: these are CANVAS fractions, and what a
115
- * source shows inside its cell is the crop's business (the source rectangle),
116
- * not the placement's. Mixing the two here would silently re-crop every cell
117
- * whenever the canvas was resized.
118
- */
102
+ * Tile the whole canvas with `count` cells, leaving no gap.
103
+ *
104
+ * Autofill exists because the useful answer to "put these four cameras up" is
105
+ * almost never the one hand-dragging produces: rectangles land a pixel apart
106
+ * and the composition shows black seams the operator cannot see in the editor
107
+ * but will see in the stream.
108
+ *
109
+ * The shape is the near-square one — `ceil(sqrt(n))` columns — and a short last
110
+ * row STRETCHES to the full width rather than leaving a hole. Three cameras
111
+ * become two over one, not a 2x2 with an empty quarter, which is precisely the
112
+ * layout autofill is asked to avoid.
113
+ *
114
+ * Aspect is deliberately not considered: these are CANVAS fractions, and what a
115
+ * source shows inside its cell is the crop's business (the source rectangle),
116
+ * not the placement's. Mixing the two here would silently re-crop every cell
117
+ * whenever the canvas was resized.
118
+ */
119
119
  export declare function autofillCellRects(count: number): readonly GridNormalizedRect[];
@@ -1,11 +1,12 @@
1
- export type ClipKind = 'motion' | 'object' | 'audio';
1
+ import { type JSX } from "react";
2
+ export type ClipKind = "motion" | "object" | "audio";
2
3
  interface EventThumbProps {
3
- readonly mediaUrl?: string;
4
- readonly kind: ClipKind;
4
+ readonly mediaUrl?: string;
5
+ readonly kind: ClipKind;
5
6
  }
6
- export declare function EventThumb({ mediaUrl, kind }: EventThumbProps): import("react").JSX.Element;
7
- export declare function EventKindIcon({ kind, large, }: {
8
- readonly kind: ClipKind;
9
- readonly large?: boolean;
10
- }): import("react").JSX.Element;
7
+ export declare function EventThumb({ mediaUrl, kind }: EventThumbProps): JSX.Element;
8
+ export declare function EventKindIcon({ kind, large }: {
9
+ readonly kind: ClipKind;
10
+ readonly large?: boolean;
11
+ }): JSX.Element;
11
12
  export {};
@@ -1,23 +1,23 @@
1
- export { AutotrackSection } from './AutotrackSection';
2
- export { ConsumablesPanel } from './ConsumablesPanel';
3
- export type { MaskShapeCanvasProps, MaskShapeItem } from './MaskShapeCanvas';
4
- export { MaskShapeCanvas } from './MaskShapeCanvas';
5
- export { MotionZonesSettings } from './MotionZonesSettings';
6
- export { PrivacyMaskSettings } from './PrivacyMaskSettings';
7
- export { NavigationPanel } from './NavigationPanel';
8
- export { PtzPanel } from './PtzPanel';
9
- export { RecordingBandsEditor } from './RecordingBandsEditor';
10
- export { RecordingPanel } from './RecordingPanel';
11
- export { RecordingSettings } from './RecordingSettings';
12
- export { SceneMonitorEditor } from './SceneMonitorEditor';
1
+ export { AutotrackSection } from "./AutotrackSection";
2
+ export { ConsumablesPanel } from "./ConsumablesPanel";
3
+ export type { MaskShapeCanvasProps, MaskShapeItem } from "./MaskShapeCanvas";
4
+ export { MaskShapeCanvas } from "./MaskShapeCanvas";
5
+ export { MotionZonesSettings } from "./MotionZonesSettings";
6
+ export { PrivacyMaskSettings } from "./PrivacyMaskSettings";
7
+ export { NavigationPanel } from "./NavigationPanel";
8
+ export { PtzPanel } from "./PtzPanel";
9
+ export { RecordingBandsEditor } from "./RecordingBandsEditor";
10
+ export { RecordingPanel } from "./RecordingPanel";
11
+ export { RecordingSettings } from "./RecordingSettings";
12
+ export { SceneMonitorEditor } from "./SceneMonitorEditor";
13
13
  /**
14
- * Props every cap-settings component receives.
15
- *
16
- * Components are resolved by `componentId` through the admin-ui
17
- * `UI_COMPONENTS` registry (the cap-name-keyed `CAP_SETTINGS_COMPONENTS`
18
- * registry has been retired). This shape mirrors the admin-ui
19
- * `UiComponentProps` contract.
20
- */
14
+ * Props every cap-settings component receives.
15
+ *
16
+ * Components are resolved by `componentId` through the admin-ui
17
+ * `UI_COMPONENTS` registry (the cap-name-keyed `CAP_SETTINGS_COMPONENTS`
18
+ * registry has been retired). This shape mirrors the admin-ui
19
+ * `UiComponentProps` contract.
20
+ */
21
21
  export interface CapSettingsComponentProps {
22
- readonly deviceId: number;
22
+ readonly deviceId: number;
23
23
  }