@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,116 +1,116 @@
1
- import { ConfigOption, DeviceSelectFilter } from '@camstack/types';
1
+ import { type ConfigOption, type DeviceSelectFilter } from "@camstack/types";
2
2
  /**
3
- * Pure, render-free helpers backing the `device-select` / `device-multiselect`
4
- * form fields. The field declares only a {@link DeviceSelectFilter}; the
5
- * renderer fetches EVERY system device via `deviceManager.listAll` and narrows
6
- * the list CLIENT-SIDE with these functions — there is no server-computed
7
- * option list.
8
- *
9
- * Kept separate from the React component so the match/label/search logic is
10
- * unit-testable without mounting a tree or mocking tRPC.
11
- */
3
+ * Pure, render-free helpers backing the `device-select` / `device-multiselect`
4
+ * form fields. The field declares only a {@link DeviceSelectFilter}; the
5
+ * renderer fetches EVERY system device via `deviceManager.listAll` and narrows
6
+ * the list CLIENT-SIDE with these functions — there is no server-computed
7
+ * option list.
8
+ *
9
+ * Kept separate from the React component so the match/label/search logic is
10
+ * unit-testable without mounting a tree or mocking tRPC.
11
+ */
12
12
  /**
13
- * The minimal projection of a `deviceManager.listAll` row these helpers read.
14
- * A structural subset of `DeviceInfo` so a stubbed device (in a test) or the
15
- * full wire shape both satisfy it.
16
- */
13
+ * The minimal projection of a `deviceManager.listAll` row these helpers read.
14
+ * A structural subset of `DeviceInfo` so a stubbed device (in a test) or the
15
+ * full wire shape both satisfy it.
16
+ */
17
17
  export interface DeviceSelectCandidate {
18
- readonly id: number;
19
- readonly type: string;
20
- readonly name: string;
21
- readonly location?: string | null;
22
- readonly features?: readonly string[];
23
- /** Name of the container this device lives in, when it has one. */
24
- readonly parentName?: string | null;
18
+ readonly id: number;
19
+ readonly type: string;
20
+ readonly name: string;
21
+ readonly location?: string | null;
22
+ readonly features?: readonly string[];
23
+ /** Name of the container this device lives in, when it has one. */
24
+ readonly parentName?: string | null;
25
25
  }
26
26
  /** A picker option that still knows where its device is. */
27
27
  export interface DeviceOption extends ConfigOption {
28
- readonly location: string | null;
28
+ readonly location: string | null;
29
29
  }
30
30
  /**
31
- * Does a device satisfy the filter?
32
- *
33
- * Union match: with an empty/absent filter every device passes; otherwise the
34
- * device passes when ANY provided clause matches — its `features` intersect
35
- * `caps`, OR its `type` is in `types`. `excludeDeviceId` is subtracted last
36
- * (it always drops the device regardless of the other clauses).
37
- */
31
+ * Does a device satisfy the filter?
32
+ *
33
+ * Union match: with an empty/absent filter every device passes; otherwise the
34
+ * device passes when ANY provided clause matches — its `features` intersect
35
+ * `caps`, OR its `type` is in `types`. `excludeDeviceId` is subtracted last
36
+ * (it always drops the device regardless of the other clauses).
37
+ */
38
38
  export declare function deviceMatchesFilter(device: DeviceSelectCandidate, filter?: DeviceSelectFilter): boolean;
39
39
  /** Human label for a device option: `Name (Location)` when a location is set. */
40
40
  export declare function deviceOptionLabel(device: DeviceSelectCandidate): string;
41
41
  /**
42
- * Filter a device list and project it into sorted `{ value, label }` options
43
- * (value = the device id as a string). Sorted case-insensitively by label so
44
- * the picker order is stable.
45
- */
42
+ * Filter a device list and project it into sorted `{ value, label }` options
43
+ * (value = the device id as a string). Sorted case-insensitively by label so
44
+ * the picker order is stable.
45
+ */
46
46
  /** `Location · type · in Container` — the parts a name alone does not say. */
47
47
  export declare function deviceOptionDescription(device: DeviceSelectCandidate): string;
48
48
  export declare function devicesToOptions(devices: readonly DeviceSelectCandidate[], filter?: DeviceSelectFilter): DeviceOption[];
49
49
  export interface DeviceFacets {
50
- readonly locations: readonly string[];
51
- readonly types: readonly string[];
50
+ readonly locations: readonly string[];
51
+ readonly types: readonly string[];
52
52
  }
53
53
  /** The distinct locations and types on offer — the chips above the search. */
54
54
  export declare function deviceFacets(devices: readonly DeviceSelectCandidate[]): DeviceFacets;
55
55
  /** Each facet is a SET of chosen values: any of them matches, none = all. */
56
56
  export interface FacetSelection {
57
- readonly locations: readonly string[];
58
- readonly types: readonly string[];
57
+ readonly locations: readonly string[];
58
+ readonly types: readonly string[];
59
59
  }
60
60
  export declare const NO_FACETS: FacetSelection;
61
61
  /** Every facet with a choice must match one of its values. */
62
62
  export declare function matchesFacets(device: DeviceSelectCandidate, facets: FacetSelection): boolean;
63
63
  export interface SuggestedPartition<T> {
64
- readonly suggested: readonly T[];
65
- readonly others: readonly T[];
64
+ readonly suggested: readonly T[];
65
+ readonly others: readonly T[];
66
66
  }
67
67
  /**
68
- * Split `items` into the suggested ones (first, in their order) and the rest.
69
- * Suggested is a presentation, never a pick: nothing here selects anything
70
- * (D356).
71
- */
68
+ * Split `items` into the suggested ones (first, in their order) and the rest.
69
+ * Suggested is a presentation, never a pick: nothing here selects anything
70
+ * (D356).
71
+ */
72
72
  export declare function partitionSuggested<T>(items: readonly T[], suggested: ReadonlySet<number>, idOf: (item: T) => number): SuggestedPartition<T>;
73
73
  /**
74
- * The fleet row {@link sameLocationSuggestions} reads. Every field is a column
75
- * of the `slim` `listAll` projection, so no caller needs a wider read.
76
- */
74
+ * The fleet row {@link sameLocationSuggestions} reads. Every field is a column
75
+ * of the `slim` `listAll` projection, so no caller needs a wider read.
76
+ */
77
77
  export interface SuggestionFleetDevice {
78
- readonly id: number;
79
- readonly type: string;
80
- readonly name: string;
81
- readonly stableId: string;
82
- readonly location?: string | null;
83
- readonly parentDeviceId?: number | null;
84
- /** A container's stored primary-child pick (the child's `stableId`). */
85
- readonly primaryChildEntityId?: string | null;
86
- readonly role?: string | null;
78
+ readonly id: number;
79
+ readonly type: string;
80
+ readonly name: string;
81
+ readonly stableId: string;
82
+ readonly location?: string | null;
83
+ readonly parentDeviceId?: number | null;
84
+ /** A container's stored primary-child pick (the child's `stableId`). */
85
+ readonly primaryChildEntityId?: string | null;
86
+ readonly role?: string | null;
87
87
  }
88
88
  /**
89
- * Which devices are SUGGESTED to a device in `location` — the one rule every
90
- * picker that suggests by room applies (D356, D749):
91
- *
92
- * - a device sharing the location is suggested;
93
- * - a CONTAINER is never suggested itself. A container family that is in the
94
- * location (the container or any of its children) contributes ONE device:
95
- * the child the container stands for — the operator's stored pick, else
96
- * the automatic one (`resolveContainerPrimaryChild`, role → namesake →
97
- * type). Its other children are not suggested; they stay pickable.
98
- * - a container with no child (nothing to stand for) contributes nothing.
99
- *
100
- * Validity for the card (kind, capability, already assigned, the host itself)
101
- * is the CALLER's filter: intersect, never widen.
102
- */
89
+ * Which devices are SUGGESTED to a device in `location` — the one rule every
90
+ * picker that suggests by room applies (D356, D749):
91
+ *
92
+ * - a device sharing the location is suggested;
93
+ * - a CONTAINER is never suggested itself. A container family that is in the
94
+ * location (the container or any of its children) contributes ONE device:
95
+ * the child the container stands for — the operator's stored pick, else
96
+ * the automatic one (`resolveContainerPrimaryChild`, role → namesake →
97
+ * type). Its other children are not suggested; they stay pickable.
98
+ * - a container with no child (nothing to stand for) contributes nothing.
99
+ *
100
+ * Validity for the card (kind, capability, already assigned, the host itself)
101
+ * is the CALLER's filter: intersect, never widen.
102
+ */
103
103
  export declare function sameLocationSuggestions(fleet: readonly SuggestionFleetDevice[], location: string | null | undefined): ReadonlySet<number>;
104
104
  /**
105
- * Free-text option filter — case-insensitive AND over whitespace tokens, each
106
- * matched against the option's `value` + `label` (so a device is found by name,
107
- * id, or location). An empty query returns every option in order.
108
- */
105
+ * Free-text option filter — case-insensitive AND over whitespace tokens, each
106
+ * matched against the option's `value` + `label` (so a device is found by name,
107
+ * id, or location). An empty query returns every option in order.
108
+ */
109
109
  export declare function filterDeviceOptions<T extends ConfigOption>(options: readonly T[], query: string): T[];
110
110
  /**
111
- * Resolve the currently-selected values into options IN SELECTION ORDER (so
112
- * chips stay stable while searching). A selected value with no matching option
113
- * becomes a synthetic `{ value, label: value }` — a stale id still shows as a
114
- * removable chip rather than silently vanishing.
115
- */
111
+ * Resolve the currently-selected values into options IN SELECTION ORDER (so
112
+ * chips stay stable while searching). A selected value with no matching option
113
+ * becomes a synthetic `{ value, label: value }` — a stale id still shows as a
114
+ * removable chip rather than silently vanishing.
115
+ */
116
116
  export declare function selectedDeviceOptions(options: readonly ConfigOption[], selected: readonly string[]): ConfigOption[];
@@ -1,37 +1,37 @@
1
- import { DeviceType, DeviceSelector } from '@camstack/types';
1
+ import { DeviceType, type DeviceSelector } from "@camstack/types";
2
2
  /** The device fields this picker reads. */
3
3
  export interface SelectorDevice {
4
- readonly id: number;
5
- readonly name: string;
6
- readonly type: DeviceType;
7
- readonly location: string | null;
8
- readonly parentDeviceId: number | null;
4
+ readonly id: number;
5
+ readonly name: string;
6
+ readonly type: DeviceType;
7
+ readonly location: string | null;
8
+ readonly parentDeviceId: number | null;
9
9
  }
10
- export type DeviceSelectorTab = 'all' | 'types' | 'locations' | 'ids';
10
+ export type DeviceSelectorTab = "all" | "types" | "locations" | "ids";
11
11
  interface DeviceSelectorPickerProps {
12
- readonly value: DeviceSelector;
13
- readonly onChange: (next: DeviceSelector) => void;
14
- /**
15
- * `includeLinked` lives next to the selector because it changes what the
16
- * selector REACHES, not what it selects. Omit both to hide the toggle
17
- * (the raw picker renders it per row instead).
18
- */
19
- readonly includeLinked?: boolean;
20
- readonly onIncludeLinkedChange?: (next: boolean) => void;
21
- /**
22
- * Ids the CALLER may delegate. `null` = unclamped (admin). A clamped
23
- * picker hides devices outside the set from the Chosen tab and reports the
24
- * counts it can actually see.
25
- */
26
- readonly clampToDeviceIds?: readonly number[] | null;
27
- /** Compact spacing for the raw picker's inline row. */
28
- readonly dense?: boolean;
12
+ readonly value: DeviceSelector;
13
+ readonly onChange: (next: DeviceSelector) => void;
14
+ /**
15
+ * `includeLinked` lives next to the selector because it changes what the
16
+ * selector REACHES, not what it selects. Omit both to hide the toggle
17
+ * (the raw picker renders it per row instead).
18
+ */
19
+ readonly includeLinked?: boolean;
20
+ readonly onIncludeLinkedChange?: (next: boolean) => void;
21
+ /**
22
+ * Ids the CALLER may delegate. `null` = unclamped (admin). A clamped
23
+ * picker hides devices outside the set from the Chosen tab and reports the
24
+ * counts it can actually see.
25
+ */
26
+ readonly clampToDeviceIds?: readonly number[] | null;
27
+ /** Compact spacing for the raw picker's inline row. */
28
+ readonly dense?: boolean;
29
29
  }
30
30
  /** Human label for a `DeviceType` — 'lawn-mower' → 'Lawn mower'. */
31
31
  export declare function deviceTypeLabel(type: string): string;
32
32
  /** Which tab a selector belongs to. */
33
33
  export declare function tabForSelector(selector: DeviceSelector): DeviceSelectorTab;
34
- export declare function DeviceSelectorPicker({ value, onChange, includeLinked, onIncludeLinkedChange, clampToDeviceIds, dense, }: DeviceSelectorPickerProps): React.ReactElement;
34
+ export declare function DeviceSelectorPicker({ value, onChange, includeLinked, onIncludeLinkedChange, clampToDeviceIds, dense }: DeviceSelectorPickerProps): React.ReactElement;
35
35
  /** Summary line for a selector — used by the raw picker's collapsed row. */
36
36
  export declare function describeDeviceSelector(selector: DeviceSelector): string;
37
37
  export {};
@@ -1,37 +1,63 @@
1
- import { ReactNode } from 'react';
2
- import { StepTreeNode } from './step-tree';
3
- import { AgentColumn, CellState, MatrixSelectedCell } from './pipeline-matrix-shared';
4
- export type { AgentColumn, CellState, MatrixSelectedCell } from './pipeline-matrix-shared';
1
+ /**
2
+ * DeviceStepMatrix — the step × accelerator TABLE of a detection pipeline
3
+ * (D757): the node's Pipeline tab and the camera's Detection pipeline → Steps
4
+ * are this matrix, and a click on a cell (or a step's header) opens that step's
5
+ * settings in a docked panel (`StepDetailDock`) that overlays the page instead
6
+ * of reflowing the matrix.
7
+ *
8
+ * Column 1 (STICKY): the indented step tree — slot, name, class-flow chips,
9
+ * and an optional badge (the camera's gate). The header is a button: it
10
+ * opens the step on the selected accelerator.
11
+ * Columns 2..N: one per accelerator, grouped under their node; the header
12
+ * names the accelerator, its format, the model it elects, and "off" for a
13
+ * switched-off one. A cell shows the model that runs there, or "⚠ skip",
14
+ * "→ iGPU", "root", "cluster", "ovr", "—".
15
+ *
16
+ * Keyboard: ONE Tab stop (a roving tabindex over the step headers and cells);
17
+ * arrows move, Home / End go to the row's ends, Enter or Space opens.
18
+ *
19
+ * `reserveRightPx`: the width a docked panel covers at the right of the
20
+ * viewport. The matrix adds a trailing spacer that wide (so any column can
21
+ * scroll clear of it) and scrolls the selected cell into the uncovered part —
22
+ * it never shrinks, so nothing reflows when the panel opens.
23
+ *
24
+ * Responsive, container-measured: narrower than the step column plus two
25
+ * columns, the matrix shows ONE node at a time with a node selector.
26
+ */
27
+ import { type ReactNode, type ForwardRefExoticComponent, type RefAttributes } from "react";
28
+ import type { StepTreeNode } from "./step-tree";
29
+ import { type AgentColumn, type CellState, type MatrixSelectedCell } from "./pipeline-matrix-shared";
30
+ export type { AgentColumn, CellState, MatrixSelectedCell } from "./pipeline-matrix-shared";
5
31
  export interface DeviceStepMatrixProps {
6
- readonly tree: readonly StepTreeNode[];
7
- readonly agents: readonly AgentColumn[];
8
- readonly getCellState: (addonId: string, agent: AgentColumn) => CellState;
9
- /** `viaKeyboard`: opened with Enter / Space (a host moves focus into its panel). */
10
- readonly onCellClick: (addonId: string, agent: AgentColumn, viaKeyboard?: boolean) => void;
11
- readonly selectedCell: MatrixSelectedCell | null;
12
- /** Single-node fallback (B): which node the one column shows. */
13
- readonly fallbackNodeId: string | null;
14
- readonly onFallbackNodeChange: (nodeId: string) => void;
15
- /** A step's header was activated — open the step on the selected accelerator. */
16
- readonly onStepClick?: (addonId: string, viaKeyboard?: boolean) => void;
17
- /** A badge beside a step's name (the camera's gate). */
18
- readonly stepBadge?: (addonId: string) => ReactNode;
19
- /** Width a docked panel covers at the viewport's right edge; 0 = none. */
20
- readonly reserveRightPx?: number;
21
- /** Accessible name of the grid. */
22
- readonly label?: string;
32
+ readonly tree: readonly StepTreeNode[];
33
+ readonly agents: readonly AgentColumn[];
34
+ readonly getCellState: (addonId: string, agent: AgentColumn) => CellState;
35
+ /** `viaKeyboard`: opened with Enter / Space (a host moves focus into its panel). */
36
+ readonly onCellClick: (addonId: string, agent: AgentColumn, viaKeyboard?: boolean) => void;
37
+ readonly selectedCell: MatrixSelectedCell | null;
38
+ /** Single-node fallback (B): which node the one column shows. */
39
+ readonly fallbackNodeId: string | null;
40
+ readonly onFallbackNodeChange: (nodeId: string) => void;
41
+ /** A step's header was activated — open the step on the selected accelerator. */
42
+ readonly onStepClick?: (addonId: string, viaKeyboard?: boolean) => void;
43
+ /** A badge beside a step's name (the camera's gate). */
44
+ readonly stepBadge?: (addonId: string) => ReactNode;
45
+ /** Width a docked panel covers at the viewport's right edge; 0 = none. */
46
+ readonly reserveRightPx?: number;
47
+ /** Accessible name of the grid. */
48
+ readonly label?: string;
23
49
  }
24
50
  /** Imperative focus, so a closing panel can hand focus back to its cell. */
25
51
  export interface DeviceStepMatrixHandle {
26
- /** `columnKey` = `agentColumnKey(column)`; `null` = the step's header. */
27
- readonly focusCell: (addonId: string, columnKey: string | null) => void;
52
+ /** `columnKey` = `agentColumnKey(column)`; `null` = the step's header. */
53
+ readonly focusCell: (addonId: string, columnKey: string | null) => void;
28
54
  }
29
55
  /** Where a key press moves the roving focus in a `rows × cols` grid. */
30
56
  export declare function nextGridPosition(key: string, pos: {
31
- readonly r: number;
32
- readonly c: number;
57
+ readonly r: number;
58
+ readonly c: number;
33
59
  }, rows: number, cols: number): {
34
- readonly r: number;
35
- readonly c: number;
60
+ readonly r: number;
61
+ readonly c: number;
36
62
  } | null;
37
- export declare const DeviceStepMatrix: import('react').ForwardRefExoticComponent<DeviceStepMatrixProps & import('react').RefAttributes<DeviceStepMatrixHandle>>;
63
+ export declare const DeviceStepMatrix: ForwardRefExoticComponent<DeviceStepMatrixProps & RefAttributes<DeviceStepMatrixHandle>>;
@@ -1,26 +1,26 @@
1
1
  /**
2
- * Shared discovery panel — renders the `device-discovery` cap surface
3
- * for any parent device that registers it (Reolink Hub, future ONVIF
4
- * gateway, NVR-style integrations). Keeps the integration's UI
5
- * surface zero-effort: as long as the cap is mounted, the panel
6
- * renders the channel list with status badges, refresh, adopt, and
7
- * release controls.
8
- *
9
- * A single generic UI used by every provider that exposes children
10
- * behind a gateway. Keeps the operator UX consistent across
11
- * integrations.
12
- */
2
+ * Shared discovery panel — renders the `device-discovery` cap surface
3
+ * for any parent device that registers it (Reolink Hub, future ONVIF
4
+ * gateway, NVR-style integrations). Keeps the integration's UI
5
+ * surface zero-effort: as long as the cap is mounted, the panel
6
+ * renders the channel list with status badges, refresh, adopt, and
7
+ * release controls.
8
+ *
9
+ * A single generic UI used by every provider that exposes children
10
+ * behind a gateway. Keeps the operator UX consistent across
11
+ * integrations.
12
+ */
13
13
  interface DiscoveryPanelProps {
14
- readonly deviceId: number;
15
- readonly className?: string;
16
- /**
17
- * Optional navigation callback fired when the operator clicks the
18
- * "Open" link on an adopted child row. ui-library deliberately
19
- * stays free of `react-router-dom` so it works in agent UIs +
20
- * embedded admin shells alike — host wires the actual navigation.
21
- * When omitted, the link is hidden.
22
- */
23
- readonly onOpenChild?: (childDeviceId: number) => void;
14
+ readonly deviceId: number;
15
+ readonly className?: string;
16
+ /**
17
+ * Optional navigation callback fired when the operator clicks the
18
+ * "Open" link on an adopted child row. ui-library deliberately
19
+ * stays free of `react-router-dom` so it works in agent UIs +
20
+ * embedded admin shells alike — host wires the actual navigation.
21
+ * When omitted, the link is hidden.
22
+ */
23
+ readonly onOpenChild?: (childDeviceId: number) => void;
24
24
  }
25
- export declare function DiscoveryPanel({ deviceId, className, onOpenChild, }: DiscoveryPanelProps): React.ReactElement;
25
+ export declare function DiscoveryPanel({ deviceId, className, onOpenChild }: DiscoveryPanelProps): React.ReactElement;
26
26
  export {};
@@ -1,10 +1,11 @@
1
- import { DoorbellPressEvent } from '../hooks/use-doorbell-events';
1
+ import type { DoorbellPressEvent } from "../hooks/use-doorbell-events";
2
+ import { type JSX } from "react";
2
3
  export interface DoorbellRecentPanelProps {
3
- readonly history: readonly DoorbellPressEvent[];
4
- /** Max rows to show (defaults to 5). */
5
- readonly limit?: number;
6
- /** Visual hint that the latest press is fresh (< 30s) — pulses the icon. */
7
- readonly latestIsFresh?: boolean;
8
- readonly className?: string;
4
+ readonly history: readonly DoorbellPressEvent[];
5
+ /** Max rows to show (defaults to 5). */
6
+ readonly limit?: number;
7
+ /** Visual hint that the latest press is fresh (< 30s) — pulses the icon. */
8
+ readonly latestIsFresh?: boolean;
9
+ readonly className?: string;
9
10
  }
10
- export declare function DoorbellRecentPanel({ history, limit, latestIsFresh, className, }: DoorbellRecentPanelProps): import("react").JSX.Element | null;
11
+ export declare function DoorbellRecentPanel({ history, limit, latestIsFresh, className }: DoorbellRecentPanelProps): JSX.Element | null;
@@ -1,10 +1,10 @@
1
- import { ReactNode } from 'react';
2
- import { LucideIcon } from 'lucide-react';
1
+ import { type ReactNode, type JSX } from "react";
2
+ import { type LucideIcon } from "lucide-react";
3
3
  export interface EmptyStateProps {
4
- icon?: LucideIcon;
5
- title: string;
6
- description?: string;
7
- action?: ReactNode;
8
- className?: string;
4
+ icon?: LucideIcon;
5
+ title: string;
6
+ description?: string;
7
+ action?: ReactNode;
8
+ className?: string;
9
9
  }
10
- export declare function EmptyState({ icon: Icon, title, description, action, className }: EmptyStateProps): import("react").JSX.Element;
10
+ export declare function EmptyState({ icon: Icon, title, description, action, className }: EmptyStateProps): JSX.Element;
@@ -1,19 +1,34 @@
1
- import { ReactNode } from 'react';
2
- export type ErrorBoxVariant = 'danger' | 'warning';
1
+ /**
2
+ * `<ErrorBox>` — the shared, presentational error/alert box for the
3
+ * admin UI.
4
+ *
5
+ * One consistent way to surface connection / status / operation
6
+ * failures across every addon surface (Remote Access, Mesh Networks,
7
+ * TURN Servers, Authentication, device-export, …). It always renders
8
+ * as a bordered box INSIDE a form/body — never as a tiny inline header
9
+ * span. Light-theme readable by design.
10
+ *
11
+ * Purely presentational: no data fetching, no business logic. Pass a
12
+ * message string (or richer `ReactNode`), an optional `title`, an
13
+ * optional retry handler / action slot, and an optional `warning`
14
+ * variant for non-fatal advisories.
15
+ */
16
+ import { type ReactNode, type JSX } from "react";
17
+ export type ErrorBoxVariant = "danger" | "warning";
3
18
  export interface ErrorBoxProps {
4
- /** The error message. Accepts a string or richer content. */
5
- message: ReactNode;
6
- /** Optional bold headline shown above the message. */
7
- title?: string;
8
- /**
9
- * Optional retry handler. When supplied (and no custom `action` is
10
- * given) a compact "Retry" button is rendered.
11
- */
12
- onRetry?: () => void;
13
- /** Custom action slot — overrides the default retry button. */
14
- action?: ReactNode;
15
- /** Visual flavor. Defaults to `danger`. */
16
- variant?: ErrorBoxVariant;
17
- className?: string;
19
+ /** The error message. Accepts a string or richer content. */
20
+ message: ReactNode;
21
+ /** Optional bold headline shown above the message. */
22
+ title?: string;
23
+ /**
24
+ * Optional retry handler. When supplied (and no custom `action` is
25
+ * given) a compact "Retry" button is rendered.
26
+ */
27
+ onRetry?: () => void;
28
+ /** Custom action slot — overrides the default retry button. */
29
+ action?: ReactNode;
30
+ /** Visual flavor. Defaults to `danger`. */
31
+ variant?: ErrorBoxVariant;
32
+ className?: string;
18
33
  }
19
- export declare function ErrorBox({ message, title, onRetry, action, variant, className, }: ErrorBoxProps): import("react").JSX.Element;
34
+ export declare function ErrorBox({ message, title, onRetry, action, variant, className }: ErrorBoxProps): JSX.Element;
@@ -1,26 +1,37 @@
1
- import { LucideIcon } from 'lucide-react';
2
- import { EventKindDescriptor } from '@camstack/types';
3
- import { TranslationFn } from './config-form-builder';
4
1
  /**
5
- * `iconId` → lucide component. Built ONLY from statically-imported icons
6
- * (bundle-safe). Unknown ids resolve to the neutral `Tag` fallback.
7
- */
2
+ * Event-kind VISUALS — the UI-side half of the unified taxonomy dictionary
3
+ * (`@camstack/types` `EVENT_TAXONOMY` owns the serializable data:
4
+ * color / iconId / labelKey; this owns `iconId → lucide component` and
5
+ * `labelKey → t()`).
6
+ *
7
+ * Every UI that renders an event kind (timeline, events tree, chips,
8
+ * detection canvas/tree) resolves its glyph + translated label here — no
9
+ * per-component hardcoded icon or label.
10
+ */
11
+ import { type JSX } from "react";
12
+ import { type LucideIcon } from "lucide-react";
13
+ import type { EventKindDescriptor } from "@camstack/types";
14
+ import type { TranslationFn } from "./config-form-builder";
15
+ /**
16
+ * `iconId` → lucide component. Built ONLY from statically-imported icons
17
+ * (bundle-safe). Unknown ids resolve to the neutral `Tag` fallback.
18
+ */
8
19
  export declare const EVENT_KIND_ICONS: Readonly<Record<string, LucideIcon>>;
9
20
  /** Resolve an `iconId` to a lucide component (falls back to `Tag`). */
10
21
  export declare function resolveEventKindIcon(iconId: string): LucideIcon;
11
22
  /**
12
- * Translated label for an event kind — `t(labelKey)` when a translation
13
- * exists, else the English `label` fallback. Robust to a missing key: an
14
- * i18n backend that echoes the key unchanged (react-i18next default) is
15
- * treated as "no translation" and the fallback label is returned, so the UI
16
- * never renders a raw `eventKind.*` key.
17
- */
18
- export declare function eventKindLabel(descriptor: Pick<EventKindDescriptor, 'labelKey' | 'label'>, t?: TranslationFn): string;
23
+ * Translated label for an event kind — `t(labelKey)` when a translation
24
+ * exists, else the English `label` fallback. Robust to a missing key: an
25
+ * i18n backend that echoes the key unchanged (react-i18next default) is
26
+ * treated as "no translation" and the fallback label is returned, so the UI
27
+ * never renders a raw `eventKind.*` key.
28
+ */
29
+ export declare function eventKindLabel(descriptor: Pick<EventKindDescriptor, "labelKey" | "label">, t?: TranslationFn): string;
19
30
  export interface EventKindGlyphProps {
20
- readonly iconId: string;
21
- readonly size?: number;
22
- readonly color?: string;
23
- readonly className?: string;
31
+ readonly iconId: string;
32
+ readonly size?: number;
33
+ readonly color?: string;
34
+ readonly className?: string;
24
35
  }
25
36
  /** Small convenience component: renders the lucide glyph for an `iconId`. */
26
- export declare function EventKindGlyph({ iconId, size, color, className }: EventKindGlyphProps): import('react').FunctionComponentElement<Omit<import('lucide-react').LucideProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
37
+ export declare function EventKindGlyph({ iconId, size, color, className }: EventKindGlyphProps): JSX.Element;