@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,5 +1,22 @@
1
+ /**
2
+ * Autotrack settings card — rendered inside the PTZ panel when the
3
+ * device has `DeviceFeature.PtzAutotrack`. Three knobs (cross-vendor
4
+ * schema): target type, stop delay, disappear delay, plus an enable /
5
+ * disable toggle that drives the `ptz-autotrack` cap directly.
6
+ *
7
+ * Save semantics:
8
+ * - Toggle (enable/disable) calls `setEnabled` immediately.
9
+ * - Form fields debounce-save on blur — no explicit Save button.
10
+ *
11
+ * Vendor capability hints:
12
+ * - The cap's status carries `currentSettings` from the camera's
13
+ * own GET; rendered on every poll so the operator sees what's
14
+ * really applied vs what they typed.
15
+ * - When the firmware ignored a setting, the field stays editable.
16
+ */
17
+ import { type JSX } from "react";
1
18
  interface AutotrackSectionProps {
2
- readonly deviceId: number;
19
+ readonly deviceId: number;
3
20
  }
4
- export declare function AutotrackSection({ deviceId }: AutotrackSectionProps): import("react").JSX.Element;
21
+ export declare function AutotrackSection({ deviceId }: AutotrackSectionProps): JSX.Element;
5
22
  export {};
@@ -1,4 +1,26 @@
1
+ /**
2
+ * The camera-grid layout editor.
3
+ *
4
+ * A grid's geometry is the one thing a DERIVED settings form cannot express: a
5
+ * generated form renders "cell 1 source = 592, cell 1 crop x = 0.25, cell 1 crop
6
+ * width = 0.5…" and nobody can hold a picture in their head from that. So the
7
+ * geometry gets a widget — the canvas, drawn at the grid's own aspect ratio,
8
+ * with the cells on it — while the knobs that ARE ordinary fields (the name,
9
+ * the canvas size, the frame rate) sit beside it in the same panel.
10
+ *
11
+ * Every rectangle in here is NORMALIZED [0,1], on both sides: the crop taken
12
+ * out of a source, and the cell it lands in. That is how the addon stores them
13
+ * (a source camera can change resolution, and a stored pixel rectangle would
14
+ * quietly start cutting the wrong region), so the editor speaks the same
15
+ * language rather than converting at the boundary.
16
+ *
17
+ * The preview is the source cameras' own snapshots, positioned by CSS from the
18
+ * SAME normalized numbers that will become the ffmpeg `crop`/`overlay`. It costs
19
+ * the server nothing and it is wrong in exactly the ways the real composition
20
+ * would be wrong.
21
+ */
22
+ import { type JSX } from "react";
1
23
  export interface CameraGridLayoutEditorProps {
2
- readonly deviceId: number;
24
+ readonly deviceId: number;
3
25
  }
4
- export declare function CameraGridLayoutEditor({ deviceId }: CameraGridLayoutEditorProps): import("react").JSX.Element;
26
+ export declare function CameraGridLayoutEditor({ deviceId }: CameraGridLayoutEditorProps): JSX.Element;
@@ -1,2 +1,21 @@
1
- import { CapSettingsComponentProps } from './index';
2
- export declare function ConsumablesPanel({ deviceId }: CapSettingsComponentProps): import("react").JSX.Element;
1
+ /**
2
+ * ConsumablesPanel — maintenance-items surface for the generic
3
+ * `consumables` capability. A cap-settings component (ui-library),
4
+ * mounted as a cap-contributed top-level device-detail tab via the
5
+ * cap-UI contribution mechanism (the `consumables` cap declares
6
+ * `ui: { kind:'widget', widgetId:'host/consumables-panel', tab:'consumables', topTab:true, ... }`).
7
+ *
8
+ * Reads the cap's pushed runtime-state slice via `useDeviceCapability`
9
+ * and renders one row per item: a fill bar + percentage when `level` is
10
+ * known, else an `ok`/`replace` status pill when `status` is known, else
11
+ * a muted em-dash. When a provider also reports `remaining` (a count in
12
+ * days/hours/cycles), its value is shown alongside — `null` renders a
13
+ * muted em-dash, never a fake `0` (D393); absent `remaining` renders
14
+ * nothing, exactly as before this field existed. A per-item "Replaced"
15
+ * button calls `cap.reset` when the item is `resettable`. The cap is
16
+ * inert until a provider sets items — an empty list renders a muted
17
+ * placeholder.
18
+ */
19
+ import { type JSX } from "react";
20
+ import type { CapSettingsComponentProps } from "./index";
21
+ export declare function ConsumablesPanel({ deviceId }: CapSettingsComponentProps): JSX.Element;
@@ -1,23 +1,24 @@
1
- import { PlaybackSpan } from './recording-spans';
1
+ import { type JSX } from "react";
2
+ import type { PlaybackSpan } from "./recording-spans";
2
3
  interface CoverageTrackProps {
3
- readonly windowFrom: number;
4
- readonly windowTo: number;
5
- readonly spans: readonly PlaybackSpan[];
6
- /** Last-seeked position to mark with the playhead, or null. */
7
- readonly playheadMs: number | null;
8
- /** Called with the absolute ms a click maps to within the window. */
9
- readonly onSeek: (clickMs: number) => void;
10
- /**
11
- * Drag-scrub callbacks (R9, frame-push mode). When `onScrubEnd` is
12
- * provided the track switches to pointer-driven scrubbing: pointer-down
13
- * begins a drag, moves report the hovered epoch, release commits it —
14
- * a motionless press+release behaves like a seek. `onSeek` is then
15
- * suppressed (the pointer flow owns the gesture). Omit all three for the
16
- * classic click-to-seek behaviour.
17
- */
18
- readonly onScrubStart?: () => void;
19
- readonly onScrubMove?: (ms: number) => void;
20
- readonly onScrubEnd?: (ms: number) => void;
4
+ readonly windowFrom: number;
5
+ readonly windowTo: number;
6
+ readonly spans: readonly PlaybackSpan[];
7
+ /** Last-seeked position to mark with the playhead, or null. */
8
+ readonly playheadMs: number | null;
9
+ /** Called with the absolute ms a click maps to within the window. */
10
+ readonly onSeek: (clickMs: number) => void;
11
+ /**
12
+ * Drag-scrub callbacks (R9, frame-push mode). When `onScrubEnd` is
13
+ * provided the track switches to pointer-driven scrubbing: pointer-down
14
+ * begins a drag, moves report the hovered epoch, release commits it —
15
+ * a motionless press+release behaves like a seek. `onSeek` is then
16
+ * suppressed (the pointer flow owns the gesture). Omit all three for the
17
+ * classic click-to-seek behaviour.
18
+ */
19
+ readonly onScrubStart?: () => void;
20
+ readonly onScrubMove?: (ms: number) => void;
21
+ readonly onScrubEnd?: (ms: number) => void;
21
22
  }
22
- export declare function CoverageTrack({ windowFrom, windowTo, spans, playheadMs, onSeek, onScrubStart, onScrubMove, onScrubEnd, }: CoverageTrackProps): import("react").JSX.Element;
23
+ export declare function CoverageTrack({ windowFrom, windowTo, spans, playheadMs, onSeek, onScrubStart, onScrubMove, onScrubEnd }: CoverageTrackProps): JSX.Element | null;
23
24
  export {};
@@ -1,25 +1,26 @@
1
- import { ClipKind } from './event-thumb';
1
+ import { type ClipKind } from "./event-thumb";
2
+ import { type JSX } from "react";
2
3
  export interface BucketClip {
3
- readonly id: string;
4
- readonly timestamp: number;
5
- readonly kind: ClipKind;
6
- readonly label: string;
7
- readonly mediaUrl?: string;
4
+ readonly id: string;
5
+ readonly timestamp: number;
6
+ readonly kind: ClipKind;
7
+ readonly label: string;
8
+ readonly mediaUrl?: string;
8
9
  }
9
10
  interface EventBucketStripProps {
10
- readonly clips: readonly BucketClip[];
11
- readonly loading: boolean;
12
- /** Key of the clip whose manifest is resolving, for the spinner. */
13
- readonly busyKey: string | null;
14
- readonly onPlay: (clip: BucketClip) => void;
15
- /** Which kinds are currently enabled for display. */
16
- readonly enabledKinds: ReadonlySet<ClipKind>;
17
- /** Called when the user toggles a kind checkbox. */
18
- readonly onToggleKind: (kind: ClipKind) => void;
19
- /** True when more results may exist beyond the current page. */
20
- readonly hasMore: boolean;
21
- /** Called when the user clicks "Load more". */
22
- readonly onLoadMore: () => void;
11
+ readonly clips: readonly BucketClip[];
12
+ readonly loading: boolean;
13
+ /** Key of the clip whose manifest is resolving, for the spinner. */
14
+ readonly busyKey: string | null;
15
+ readonly onPlay: (clip: BucketClip) => void;
16
+ /** Which kinds are currently enabled for display. */
17
+ readonly enabledKinds: ReadonlySet<ClipKind>;
18
+ /** Called when the user toggles a kind checkbox. */
19
+ readonly onToggleKind: (kind: ClipKind) => void;
20
+ /** True when more results may exist beyond the current page. */
21
+ readonly hasMore: boolean;
22
+ /** Called when the user clicks "Load more". */
23
+ readonly onLoadMore: () => void;
23
24
  }
24
- export declare function EventBucketStrip({ clips, loading, busyKey, onPlay, enabledKinds, onToggleKind, hasMore, onLoadMore, }: EventBucketStripProps): import("react").JSX.Element;
25
+ export declare function EventBucketStrip({ clips, loading, busyKey, onPlay, enabledKinds, onToggleKind, hasMore, onLoadMore }: EventBucketStripProps): JSX.Element;
25
26
  export {};
@@ -1,10 +1,11 @@
1
- import { DensityBucket } from './recording-timeline-model';
1
+ import type { DensityBucket } from "./recording-timeline-model";
2
+ import { type JSX } from "react";
2
3
  interface EventHeatmapProps {
3
- readonly windowFrom: number;
4
- readonly windowTo: number;
5
- readonly buckets: readonly DensityBucket[];
6
- readonly selectedIndex: number | null;
7
- readonly onSelectBucket: (index: number) => void;
4
+ readonly windowFrom: number;
5
+ readonly windowTo: number;
6
+ readonly buckets: readonly DensityBucket[];
7
+ readonly selectedIndex: number | null;
8
+ readonly onSelectBucket: (index: number) => void;
8
9
  }
9
- export declare function EventHeatmap({ windowFrom, windowTo, buckets, selectedIndex, onSelectBucket, }: EventHeatmapProps): import("react").JSX.Element;
10
+ export declare function EventHeatmap({ windowFrom, windowTo, buckets, selectedIndex, onSelectBucket }: EventHeatmapProps): JSX.Element | null;
10
11
  export {};
@@ -1,6 +1,6 @@
1
- import { UsePTZResult } from '../../hooks/use-ptz';
1
+ import type { UsePTZResult } from "../../hooks/use-ptz";
2
2
  interface HomePresetPickerProps {
3
- readonly controls: UsePTZResult;
3
+ readonly controls: UsePTZResult;
4
4
  }
5
5
  export declare function HomePresetPicker({ controls }: HomePresetPickerProps): React.ReactElement | null;
6
6
  export {};
@@ -1,48 +1,150 @@
1
- import { ReactNode } from 'react';
2
- import { MaskShape, MaskShapeKind } from '@camstack/types';
1
+ /**
2
+ * MaskShapeCanvas — ONE shared, Konva-based on-frame "drawing plane" editor
3
+ * that handles ALL four `MaskShape` kinds: `rect`, `polygon`, `grid`, `line`.
4
+ *
5
+ * It is a generalization of the detection `ZoneCanvas` (orchestrator) so that
6
+ * privacy-mask (rect/polygon), motion-zones (grid), and the
7
+ * pipeline-orchestrator zones/lines editor can eventually all share a single
8
+ * editor instead of three bespoke ones. Every coordinate is normalized 0..1 of
9
+ * the camera frame (top-left origin), like every existing on-frame editor.
10
+ *
11
+ * ─────────────────────────────────────────────────────────────────────────────
12
+ * Behaviours ported (the references are NOT edited — this generalizes them):
13
+ *
14
+ * - From `ZoneCanvas` (orchestrator zone-editor):
15
+ * • ResizeObserver-sized `<Stage>`, `transparent` absolute-fill overlay
16
+ * mode for layering over a stream player, optional `backdrop` slot,
17
+ * pointer-events pass-through while not editing.
18
+ * • polygon draw / vertex-drag / body-drag with optimistic local override
19
+ * + the `useEffect` that drops the override once the controlled prop
20
+ * echoes the commit back, the rAF-throttled cursor ghost-line preview,
21
+ * the `Arrow` tripwire, and the memoised export.
22
+ * - From `PrivacyMaskCanvas`:
23
+ * • rect move + bottom-right-handle resize with 0..1 clamp, polygon
24
+ * vertex add (edge midpoint) / remove (✕, gated by min/max), and the
25
+ * `polygonVertices` {min,max} gate (e.g. Hikvision {min:4,max:4}).
26
+ * - From `MotionGridCanvas`:
27
+ * • grid cell-paint gesture (press-drag paints every touched cell to the
28
+ * value the first-touched cell flipped to), row-major `cells`.
29
+ *
30
+ * ─────────────────────────────────────────────────────────────────────────────
31
+ * Usage — each consumer maps its own model onto `MaskShapeItem[]` and gates the
32
+ * editor with `supportedShapes`:
33
+ *
34
+ * @example privacy-mask (rect + polygon)
35
+ * ```tsx
36
+ * const items: MaskShapeItem[] = regions.map((r) => ({ id: r.id, shape: r.shape }))
37
+ * <MaskShapeCanvas
38
+ * transparent
39
+ * items={items}
40
+ * supportedShapes={['rect', 'polygon']}
41
+ * polygonVertices={options.polygonVertices} // Hikvision {min:4,max:4}
42
+ * selectedId={selectedId}
43
+ * onSelect={setSelectedId}
44
+ * onShapeChange={(id, shape) =>
45
+ * onRegionsChange(regions.map((r) => (r.id === id ? { ...r, shape } : r)))}
46
+ * onDrawComplete={(shape) => onRegionsChange([...regions, { id: nextId(), shape }])}
47
+ * drawingKind={drawing ? 'rect' : null}
48
+ * />
49
+ * ```
50
+ *
51
+ * @example motion-zones (grid)
52
+ * ```tsx
53
+ * const items: MaskShapeItem[] = [{
54
+ * id: 'motion',
55
+ * shape: { kind: 'grid', gridWidth: w, gridHeight: h, cells },
56
+ * }]
57
+ * <MaskShapeCanvas
58
+ * transparent
59
+ * items={items}
60
+ * supportedShapes={['grid']}
61
+ * grid={{ width: w, height: h }}
62
+ * selectedId="motion"
63
+ * onSelect={() => {}}
64
+ * onShapeChange={(_id, shape) => {
65
+ * if (shape.kind === 'grid') onCellsChange(shape.cells)
66
+ * }}
67
+ * onDrawComplete={() => {}}
68
+ * drawingKind={null}
69
+ * />
70
+ * ```
71
+ *
72
+ * @example orchestrator (polygon + line/tripwire)
73
+ * ```tsx
74
+ * const items: MaskShapeItem[] = zones.map((z) => ({
75
+ * id: z.id,
76
+ * label: z.name,
77
+ * color: z.color,
78
+ * shape: z.kind === 'tripwire'
79
+ * ? { kind: 'line', points: z.points }
80
+ * : { kind: 'polygon', points: z.points },
81
+ * }))
82
+ * <MaskShapeCanvas
83
+ * transparent
84
+ * items={items}
85
+ * supportedShapes={['polygon', 'line']}
86
+ * selectedId={selectedZoneId}
87
+ * onSelect={onSelectZone}
88
+ * onShapeChange={(id, shape) => {
89
+ * if (shape.kind === 'polygon' || shape.kind === 'line')
90
+ * onZonePointsChange(id, shape.points)
91
+ * }}
92
+ * onDrawComplete={(shape) => onZoneComplete(shape)}
93
+ * drawingKind={drawingKind === 'tripwire' ? 'line' : drawingKind}
94
+ * backdrop={<CameraStreamPlayer ... />}
95
+ * />
96
+ * ```
97
+ *
98
+ * Purely controlled — the parent owns the truth. Every edit fires
99
+ * `onShapeChange(id, shape)` (or `onDrawComplete(shape)` for a freshly-drawn
100
+ * shape) with a brand-new immutable shape object; points and cells are never
101
+ * mutated in place.
102
+ */
103
+ import { type JSX, type MemoExoticComponent, type ReactNode } from "react";
104
+ import type { MaskShape, MaskShapeKind } from "@camstack/types";
3
105
  /** One editable item on the drawing plane. */
4
106
  export interface MaskShapeItem {
5
- readonly id: string | number;
6
- readonly shape: MaskShape;
7
- /** Small text label rendered near the shape. */
8
- readonly label?: string;
9
- /** Stroke/fill color. Falls back to a sensible per-kind default. */
10
- readonly color?: string;
11
- /** `false` → rendered dimmed (and skipped for hit-testing of editing chrome). */
12
- readonly enabled?: boolean;
107
+ readonly id: string | number;
108
+ readonly shape: MaskShape;
109
+ /** Small text label rendered near the shape. */
110
+ readonly label?: string;
111
+ /** Stroke/fill color. Falls back to a sensible per-kind default. */
112
+ readonly color?: string;
113
+ /** `false` → rendered dimmed (and skipped for hit-testing of editing chrome). */
114
+ readonly enabled?: boolean;
13
115
  }
14
116
  export interface MaskShapeCanvasProps {
15
- readonly items: MaskShapeItem[];
16
- readonly selectedId: string | number | null;
17
- readonly onSelect: (id: string | number | null) => void;
18
- /** Fired on every edit (controlled — parent owns truth, immutable updates). */
19
- readonly onShapeChange: (id: string | number, shape: MaskShape) => void;
20
- /** Fired when a new shape is finished while drawing. */
21
- readonly onDrawComplete: (shape: MaskShape) => void;
22
- /** When set, clicks draw a new shape of that kind. */
23
- readonly drawingKind: MaskShapeKind | null;
24
- /** Which kinds this mount allows. */
25
- readonly supportedShapes: readonly MaskShapeKind[];
26
- /** Transparent absolute-fill overlay mode (layer over a stream player). */
27
- readonly transparent?: boolean;
28
- /** Backdrop element rendered behind the Stage in standalone mode. */
29
- readonly backdrop?: ReactNode;
30
- /** Gate polygon vertex add/remove (e.g. Hikvision {min:4,max:4}). */
31
- readonly polygonVertices?: {
32
- readonly min: number;
33
- readonly max: number;
34
- };
35
- /** Grid dims when drawing/seeding a `grid` shape. */
36
- readonly grid?: {
37
- readonly width: number;
38
- readonly height: number;
39
- };
117
+ readonly items: MaskShapeItem[];
118
+ readonly selectedId: string | number | null;
119
+ readonly onSelect: (id: string | number | null) => void;
120
+ /** Fired on every edit (controlled — parent owns truth, immutable updates). */
121
+ readonly onShapeChange: (id: string | number, shape: MaskShape) => void;
122
+ /** Fired when a new shape is finished while drawing. */
123
+ readonly onDrawComplete: (shape: MaskShape) => void;
124
+ /** When set, clicks draw a new shape of that kind. */
125
+ readonly drawingKind: MaskShapeKind | null;
126
+ /** Which kinds this mount allows. */
127
+ readonly supportedShapes: readonly MaskShapeKind[];
128
+ /** Transparent absolute-fill overlay mode (layer over a stream player). */
129
+ readonly transparent?: boolean;
130
+ /** Backdrop element rendered behind the Stage in standalone mode. */
131
+ readonly backdrop?: ReactNode;
132
+ /** Gate polygon vertex add/remove (e.g. Hikvision {min:4,max:4}). */
133
+ readonly polygonVertices?: {
134
+ readonly min: number;
135
+ readonly max: number;
136
+ };
137
+ /** Grid dims when drawing/seeding a `grid` shape. */
138
+ readonly grid?: {
139
+ readonly width: number;
140
+ readonly height: number;
141
+ };
40
142
  }
41
- declare function MaskShapeCanvasImpl({ items, selectedId, onSelect, onShapeChange, onDrawComplete, drawingKind, supportedShapes, transparent, backdrop, polygonVertices, grid, }: MaskShapeCanvasProps): import("react").JSX.Element;
143
+ declare function MaskShapeCanvasImpl({ items, selectedId, onSelect, onShapeChange, onDrawComplete, drawingKind, supportedShapes, transparent, backdrop, polygonVertices, grid }: MaskShapeCanvasProps): JSX.Element;
42
144
  /**
43
- * Memoised export. The Konva scene is expensive to re-evaluate (many nodes per
44
- * item + per-item drag-bound closures) and overlay parents re-render on every
45
- * detection/motion event. Mirrors ZoneCanvas's `memo`.
46
- */
47
- export declare const MaskShapeCanvas: import('react').MemoExoticComponent<typeof MaskShapeCanvasImpl>;
145
+ * Memoised export. The Konva scene is expensive to re-evaluate (many nodes per
146
+ * item + per-item drag-bound closures) and overlay parents re-render on every
147
+ * detection/motion event. Mirrors ZoneCanvas's `memo`.
148
+ */
149
+ export declare const MaskShapeCanvas: MemoExoticComponent<typeof MaskShapeCanvasImpl>;
48
150
  export {};
@@ -1,2 +1,41 @@
1
- import { CapSettingsComponentProps } from './index';
2
- export declare function MotionZonesSettings({ deviceId }: CapSettingsComponentProps): import("react").JSX.Element | null;
1
+ /**
2
+ * MotionZonesSettings — management surface for the on-camera
3
+ * `motion-zones` capability. A cap-settings component (ui-library),
4
+ * mounted into the device-detail Config tab via the cap-UI
5
+ * contribution mechanism (the `motion-zones` cap declares a `ui` block).
6
+ *
7
+ * The on-camera motion mask is a SINGLE `grid` region in the shared
8
+ * MaskShape vocabulary (a row-major boolean cell lattice). This component
9
+ * owns its own control panel (Edit toggle, All on / All off / Invert,
10
+ * count, Revert, Save) and paints the editable lattice over the live frame
11
+ * with the shared `MaskShapeCanvas` drawing-plane — registered as a
12
+ * player-overlay layer ONLY while "Edit grid" is toggled on (OFF by
13
+ * default — nothing draws on mount).
14
+ *
15
+ * Detection enable + sensitivity are NOT edited here — they are the
16
+ * camera's on-board motion master switch, owned by the driver's
17
+ * "On-camera motion" settings section. Saving sends a `cells`-only patch
18
+ * (one grid region); enable / sensitivity are left untouched camera-side.
19
+ *
20
+ * ── Resizable input grid (resampled to the camera grid on save) ──────────────
21
+ * The camera's native motion grid (`getOptions().grid`, e.g. 22×18) is the
22
+ * FINEST resolution that round-trips — painting finer than it can't be stored
23
+ * (not reconstructible). So the camera grid is the FLOOR (×1) and the operator
24
+ * picks BIGGER cells: an integer cell-size multiplier (×1/×2/×3) where a UI cell
25
+ * spans an m×m block of camera cells (×2 → quarter as many, ×3 → ninth). The
26
+ * CAMERA grid stays authoritative:
27
+ * - LOAD: the camera grid is COARSENED into the chosen UI resolution (a UI
28
+ * cell is `true` if ANY camera cell in its block is painted) so existing
29
+ * masks display on the bigger-celled surface.
30
+ * - SAVE: the UI grid is EXPANDED back to camera gridWidth×gridHeight — every
31
+ * camera cell takes the value of the UI cell whose block covers it.
32
+ * At ×1 both transforms are the identity, so the camera-grid round-trip is
33
+ * exact; at higher multipliers `coarsen(expand(uiCells)) === uiCells`, so an
34
+ * edit made at the chosen resolution survives the round-trip exactly. The
35
+ * component's draft (`uiCells`) lives at the UI resolution; the last-saved truth
36
+ * (`committedCamera`) and every comparison stay anchored to the camera-native
37
+ * grid so `dirty`/Save/Revert math is resolution-independent.
38
+ */
39
+ import { type JSX } from "react";
40
+ import type { CapSettingsComponentProps } from "./index";
41
+ export declare function MotionZonesSettings({ deviceId }: CapSettingsComponentProps): JSX.Element | null;
@@ -1,2 +1,14 @@
1
- import { CapSettingsComponentProps } from './index';
2
- export declare function NavigationPanel({ deviceId }: CapSettingsComponentProps): import("react").JSX.Element;
1
+ /**
2
+ * NavigationPanel — the `navigation` cap's own panel (`host/navigation-panel`):
3
+ * a drive pad, the data-driven action and sound buttons, the fill light.
4
+ *
5
+ * Nothing here knows a vendor: the buttons come from `listActions()` (enabled
6
+ * entries only, icons mapped from the entry's lucide hint), the primitives
7
+ * from `getFeatures()`, and the live chips from the `navigation` slice. Hold
8
+ * a drive button to move — the hook nudges at 1 Hz and stops on release, like
9
+ * the robot app's joystick. The manual level slider appears only in manual
10
+ * mode, as the cap's own contract asks.
11
+ */
12
+ import { type JSX } from "react";
13
+ import type { CapSettingsComponentProps } from "./index";
14
+ export declare function NavigationPanel({ deviceId }: CapSettingsComponentProps): JSX.Element;
@@ -1,2 +1,3 @@
1
- import { CapSettingsComponentProps } from './index';
2
- export declare function PrivacyMaskSettings({ deviceId }: CapSettingsComponentProps): import("react").JSX.Element | null;
1
+ import { type JSX } from "react";
2
+ import type { CapSettingsComponentProps } from "./index";
3
+ export declare function PrivacyMaskSettings({ deviceId }: CapSettingsComponentProps): JSX.Element | null;
@@ -1,2 +1,15 @@
1
- import { CapSettingsComponentProps } from './index';
2
- export declare function PtzPanel({ deviceId }: CapSettingsComponentProps): import("react").JSX.Element;
1
+ /**
2
+ * PtzPanel — live pan/tilt/zoom controls for the `ptz` capability. A
3
+ * cap-settings component (ui-library), mounted as a cap-contributed
4
+ * top-level device-detail tab via the cap-UI contribution mechanism
5
+ * (the `ptz` cap declares `ui: { tab: 'ptz', kind: 'static', ... }`).
6
+ *
7
+ * Consolidates the former admin-ui `PTZPanelContent`: `usePTZ` drives
8
+ * the controls, `PTZOverlay` renders them (`mode='panel'`), and an
9
+ * Autofocus toggle is shown only when `getOptions().hasAutofocus`.
10
+ * Autotrack is its own cap-UI contribution (`ptz-autotrack`), mounted
11
+ * independently by the contribution mechanism — not nested here.
12
+ */
13
+ import { type JSX } from "react";
14
+ import type { CapSettingsComponentProps } from "./index";
15
+ export declare function PtzPanel({ deviceId }: CapSettingsComponentProps): JSX.Element | null;
@@ -1,40 +1,41 @@
1
- import { RecordingBand } from '@camstack/types';
1
+ import type { JSX } from "react";
2
+ import type { RecordingBand } from "@camstack/types";
2
3
  interface RecordingBandsEditorProps {
3
- readonly bands: readonly RecordingBand[];
4
- readonly onChange: (bands: RecordingBand[]) => void;
5
- /** Present when the host knows the camera — enables the sensor picker on events bands. */
6
- readonly sensorContext?: RecordingSensorContext;
4
+ readonly bands: readonly RecordingBand[];
5
+ readonly onChange: (bands: RecordingBand[]) => void;
6
+ /** Present when the host knows the camera — enables the sensor picker on events bands. */
7
+ readonly sensorContext?: RecordingSensorContext;
7
8
  }
8
9
  /**
9
- * The band table — the ONLY authoring surface for recording intent since the
10
- * legacy mode/schedules/triggers/rules model was retired (2026-07-30).
11
- *
12
- * Each row is one `RecordingBand`: when it applies (weekdays + `HH:MM` span,
13
- * `end <= start` wraps past midnight) and how it records (continuous, or events
14
- * with its own triggers and pre/post buffers). No band covering *now* = nothing
15
- * is recorded then; "off" is the absence of a band, never a band value.
16
- */
17
- export declare function RecordingBandsEditor({ bands, onChange, sensorContext, }: RecordingBandsEditorProps): import("react").JSX.Element;
10
+ * The band table — the ONLY authoring surface for recording intent since the
11
+ * legacy mode/schedules/triggers/rules model was retired (2026-07-30).
12
+ *
13
+ * Each row is one `RecordingBand`: when it applies (weekdays + `HH:MM` span,
14
+ * `end <= start` wraps past midnight) and how it records (continuous, or events
15
+ * with its own triggers and pre/post buffers). No band covering *now* = nothing
16
+ * is recorded then; "off" is the absence of a band, never a band value.
17
+ */
18
+ export declare function RecordingBandsEditor({ bands, onChange, sensorContext }: RecordingBandsEditorProps): JSX.Element;
18
19
  /**
19
- * The camera a band belongs to, for the sensor picker: its own id is never a
20
- * sensor of itself, and its location is what the picker suggests first.
21
- */
20
+ * The camera a band belongs to, for the sensor picker: its own id is never a
21
+ * sensor of itself, and its location is what the picker suggests first.
22
+ */
22
23
  export interface RecordingSensorContext {
23
- readonly cameraId: number;
24
- readonly location: string | null;
25
- /**
26
- * Does this camera publish its own `recording-signal` — the LEVEL the
27
- * `on-device-decision` MODE follows (D380)? Asked of the camera's bindings by
28
- * the host, and read by `RecordingSettings` to decide whether that mode can
29
- * be picked. It is no longer a band trigger: a band is an HOUR, and this
30
- * feature has none to program. Absent = the host did not ask.
31
- */
32
- readonly deviceSignal?: DeviceSignalPresence;
24
+ readonly cameraId: number;
25
+ readonly location: string | null;
26
+ /**
27
+ * Does this camera publish its own `recording-signal` — the LEVEL the
28
+ * `on-device-decision` MODE follows (D380)? Asked of the camera's bindings by
29
+ * the host, and read by `RecordingSettings` to decide whether that mode can
30
+ * be picked. It is no longer a band trigger: a band is an HOUR, and this
31
+ * feature has none to program. Absent = the host did not ask.
32
+ */
33
+ readonly deviceSignal?: DeviceSignalPresence;
33
34
  }
34
35
  /**
35
- * What the host knows about the camera's `recording-signal` binding. Four
36
- * states, not a boolean (D315): `pending` and `unknown` must render as
37
- * "not yet known", never as "this camera has no signal".
38
- */
39
- export type DeviceSignalPresence = 'pending' | 'present' | 'absent' | 'unknown';
36
+ * What the host knows about the camera's `recording-signal` binding. Four
37
+ * states, not a boolean (D315): `pending` and `unknown` must render as
38
+ * "not yet known", never as "this camera has no signal".
39
+ */
40
+ export type DeviceSignalPresence = "pending" | "present" | "absent" | "unknown";
40
41
  export {};
@@ -1,2 +1,3 @@
1
- import { HostWidgetProps } from '../../widgets/host-widgets';
2
- export declare function RecordingPanel({ deviceId }: HostWidgetProps): import("react").JSX.Element;
1
+ import { type JSX } from "react";
2
+ import type { HostWidgetProps } from "../../widgets/host-widgets";
3
+ export declare function RecordingPanel({ deviceId }: HostWidgetProps): JSX.Element;
@@ -1,13 +1,14 @@
1
- import { RecordingConfig, CamProfile } from '@camstack/types';
2
- import { RecordingSensorContext } from './RecordingBandsEditor';
1
+ import { type JSX } from "react";
2
+ import type { RecordingConfig, CamProfile } from "@camstack/types";
3
+ import { type RecordingSensorContext } from "./RecordingBandsEditor";
3
4
  interface RecordingSettingsProps {
4
- readonly initial: RecordingConfig;
5
- /** Broker-assigned profile slots for this camera (already deduped). */
6
- readonly availableProfiles: readonly CamProfile[];
7
- readonly saving: boolean;
8
- readonly onSave: (config: RecordingConfig) => void;
9
- /** The camera this config belongs to — enables the sensor picker on events bands. */
10
- readonly sensorContext?: RecordingSensorContext;
5
+ readonly initial: RecordingConfig;
6
+ /** Broker-assigned profile slots for this camera (already deduped). */
7
+ readonly availableProfiles: readonly CamProfile[];
8
+ readonly saving: boolean;
9
+ readonly onSave: (config: RecordingConfig) => void;
10
+ /** The camera this config belongs to — enables the sensor picker on events bands. */
11
+ readonly sensorContext?: RecordingSensorContext;
11
12
  }
12
- export declare function RecordingSettings({ initial, availableProfiles, saving, onSave, sensorContext, }: RecordingSettingsProps): import("react").JSX.Element;
13
+ export declare function RecordingSettings({ initial, availableProfiles, saving, onSave, sensorContext }: RecordingSettingsProps): JSX.Element | null;
13
14
  export {};
@@ -1,5 +1,6 @@
1
+ import { type JSX } from "react";
1
2
  interface RecordingTimelineProps {
2
- readonly deviceId: number;
3
+ readonly deviceId: number;
3
4
  }
4
- export declare function RecordingTimeline({ deviceId }: RecordingTimelineProps): import("react").JSX.Element;
5
+ export declare function RecordingTimeline({ deviceId }: RecordingTimelineProps): JSX.Element;
5
6
  export {};