@camstack/ui-library 1.2.257 → 1.2.259

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 +124 -69
  322. package/dist/index.d.ts +31 -27
  323. package/dist/index.js +124 -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,50 +1,16 @@
1
1
  /**
2
- * Where the hub is, from inside a page the hub served.
3
- *
4
- * The admin UI is not always at the hub's root. The Home Assistant component
5
- * frames it through a same-origin relay — `https://<ha>/api/camstack/p/<grant>/…`
6
- * → `https://<hub>:4443/…` — so the browser never has to trust the hub's
7
- * local certificate. The relay sends `X-Forwarded-Prefix` and the hub
8
- * injects two things into the shell it serves for that request:
9
- *
10
- * <base href="<prefix>/">
11
- * <meta name="camstack-mount" content="<prefix>/">
12
- *
13
- * This module is the ONE reader of that fact. Every URL the page composes
14
- * toward the hub — tRPC HTTP and WS, `/api/webrtc`, `/addon/…` data planes,
15
- * `/api/addon-assets`, MF remote entries, `<img src>` — goes through it:
16
- *
17
- * - `hubPath('/api/x')` → `/api/x` at the root, `/<prefix>/api/x` under one.
18
- * A same-origin path; the default for fetch, `<img>`, links.
19
- * - `hubOrigin()` → `https://host` or `https://host/<prefix>`; the
20
- * `serverUrl` handed to the SDK and the players (they append `/trpc`,
21
- * `/api/webrtc`, `/adaptive-probe` themselves).
22
- * - `hubUrl()` / `hubWsUrl()` — absolute http(s) / ws(s) forms.
23
- * - `routerBasename()` → `''` or `/<prefix>`, for `<BrowserRouter>`.
24
- *
25
- * Why not `window.location.origin` + a literal: `<base>` does not apply to a
26
- * root-absolute path, so `'/api/x'` leaves the relay and lands on HA's own
27
- * `/api/x`. And why not `document.baseURI` alone: without a `<base>` it is
28
- * the DOCUMENT's URL, so `/devices/5` would read as a mount of `/devices/`.
29
- * The meta is the authority; a `<base>` element is accepted on its own for a
30
- * host that injects only that.
31
- *
32
- * `scripts/check-hub-paths-through-mount.ts` keeps every other module from
33
- * spelling a hub path directly.
34
- */
35
- /**
36
- * The path the app is mounted at, with a trailing slash: `/` or `/<prefix>/`.
37
- * Resolved once — the shell is the only thing that can say where it lives,
38
- * and it says so before any script runs.
39
- */
2
+ * The path the app is mounted at, with a trailing slash: `/` or `/<prefix>/`.
3
+ * Resolved once — the shell is the only thing that can say where it lives,
4
+ * and it says so before any script runs.
5
+ */
40
6
  export declare function mountPath(): string;
41
7
  /** `<BrowserRouter basename>`: the mount without its trailing slash. */
42
8
  export declare function routerBasename(): string;
43
9
  /**
44
- * A same-origin path under the mount. Absolute URLs and paths already under
45
- * the mount pass through unchanged, so a server-stamped `bundleUrl` can be
46
- * wrapped without knowing whether it was.
47
- */
10
+ * A same-origin path under the mount. Absolute URLs and paths already under
11
+ * the mount pass through unchanged, so a server-stamped `bundleUrl` can be
12
+ * wrapped without knowing whether it was.
13
+ */
48
14
  export declare function hubPath(pathname: string): string;
49
15
  /** The absolute hub base with no trailing slash — the SDK's `serverUrl`. */
50
16
  export declare function hubOrigin(): string;
@@ -1,21 +1,21 @@
1
- export { cn } from './cn';
2
- export { formatLastSeen } from './format-last-seen';
3
- export { formatControlDateTime } from './format-control-datetime';
4
- export type { ControlDateTimeFormat } from './format-control-datetime';
5
- export { formatNumeric } from './format-numeric';
6
- export { resolveSensorDisplay } from './resolve-sensor-display';
7
- export type { SensorDisplayInput, ResolvedSensorDisplay } from './resolve-sensor-display';
8
- export { isAbsentProvider } from './cap-error';
9
- export * from './responsive';
10
- export { mirror } from './pipeline-mirror';
11
- export type { MirrorSource, MirrorInput, MirrorOutcome, MirrorResultEntry, } from './pipeline-mirror';
12
- export { PHASE_CONFIG, getPhaseVisual } from './phase-config';
13
- export type { PhaseVisual } from './phase-config';
14
- export { createSharedContext } from './shared-context';
15
- export { ensureMfHostInit } from './mf-runtime-init';
16
- export { hubOrigin, hubPath, hubUrl, hubWsUrl, mountPath, resetHubMountForTests, routerBasename, } from './hub-mount';
17
- export { serializeRecordedCommand, parseRecordedServerMessage, RECORDED_PLAYBACK_MODES, } from './recorded-control-protocol';
18
- export type { RecordedControlCommand, RecordedPlaybackMode, RecordedServerMessage, } from './recorded-control-protocol';
19
- export { scrubReducer, initialScrubState, shouldEmit, shouldCommit, cursorFractionFor, makeScrubBridge, useScrubController, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS, } from './scrub-controller';
20
- export type { ScrubSource, ScrubState, ScrubAction, ScrubController, PlaybackControlSink, LastCommit, } from './scrub-controller';
21
- export { applyFleetQueryDefaults, FLEET_LIST_QUERY_KEY, FLEET_LIST_STALE_TIME_MS, FLEET_LIST_GC_TIME_MS, } from './fleet-query-defaults';
1
+ export { cn } from "./cn";
2
+ export { formatLastSeen } from "./format-last-seen";
3
+ export { formatControlDateTime } from "./format-control-datetime";
4
+ export type { ControlDateTimeFormat } from "./format-control-datetime";
5
+ export { formatNumeric } from "./format-numeric";
6
+ export { resolveSensorDisplay } from "./resolve-sensor-display";
7
+ export type { SensorDisplayInput, ResolvedSensorDisplay } from "./resolve-sensor-display";
8
+ export { isAbsentProvider } from "./cap-error";
9
+ export * from "./responsive";
10
+ export { mirror } from "./pipeline-mirror";
11
+ export type { MirrorSource, MirrorInput, MirrorOutcome, MirrorResultEntry } from "./pipeline-mirror";
12
+ export { PHASE_CONFIG, getPhaseVisual } from "./phase-config";
13
+ export type { PhaseVisual } from "./phase-config";
14
+ export { createSharedContext } from "./shared-context";
15
+ export { ensureMfHostInit } from "./mf-runtime-init";
16
+ export { hubOrigin, hubPath, hubUrl, hubWsUrl, mountPath, resetHubMountForTests, routerBasename } from "./hub-mount";
17
+ export { serializeRecordedCommand, parseRecordedServerMessage, RECORDED_PLAYBACK_MODES } from "./recorded-control-protocol";
18
+ export type { RecordedControlCommand, RecordedPlaybackMode, RecordedServerMessage } from "./recorded-control-protocol";
19
+ export { scrubReducer, initialScrubState, shouldEmit, shouldCommit, cursorFractionFor, makeScrubBridge, useScrubController, COMMIT_DEDUPE_TOLERANCE_MS, COMMIT_DEDUPE_WINDOW_MS } from "./scrub-controller";
20
+ export type { ScrubSource, ScrubState, ScrubAction, ScrubController, PlaybackControlSink, LastCommit } from "./scrub-controller";
21
+ export { applyFleetQueryDefaults, FLEET_LIST_QUERY_KEY, FLEET_LIST_STALE_TIME_MS, FLEET_LIST_GC_TIME_MS } from "./fleet-query-defaults";
@@ -1,15 +1,28 @@
1
- import { CameraPhase } from '@camstack/types';
1
+ /**
2
+ * phase-config — canonical visual config for CameraPhase values.
3
+ *
4
+ * Single source of truth for label, color classes, dot class, and
5
+ * lucide icon name. Every UI surface (PhaseBadge, CameraStatusStrip,
6
+ * CameraAssignmentsTable, DeviceDetail, OverviewTab, NodeLiveTab)
7
+ * imports from here instead of hardcoding phase → style mappings.
8
+ *
9
+ * Icon components are NOT imported here (would pull lucide-react into
10
+ * the config module). Consumers import the icon by name themselves:
11
+ * `import { [cfg.icon] } from 'lucide-react'`
12
+ * or use the provided `PhaseIcon` component from `./phase-icon.tsx`.
13
+ */
14
+ import type { CameraPhase } from "@camstack/types";
2
15
  export interface PhaseVisual {
3
- /** Human-readable label (e.g. "Active", "Load-Shed"). */
4
- readonly label: string;
5
- /** Tailwind text color class (e.g. "text-success"). */
6
- readonly textColor: string;
7
- /** Tailwind border+bg classes for pill/badge containers. */
8
- readonly badgeClass: string;
9
- /** Tailwind class for the status dot (circle indicator). */
10
- readonly dotClass: string;
11
- /** Lucide icon name to use for this phase. */
12
- readonly icon: 'Activity' | 'Eye' | 'AlertTriangle' | 'PauseCircle' | 'PowerOff';
16
+ /** Human-readable label (e.g. "Active", "Load-Shed"). */
17
+ readonly label: string;
18
+ /** Tailwind text color class (e.g. "text-success"). */
19
+ readonly textColor: string;
20
+ /** Tailwind border+bg classes for pill/badge containers. */
21
+ readonly badgeClass: string;
22
+ /** Tailwind class for the status dot (circle indicator). */
23
+ readonly dotClass: string;
24
+ /** Lucide icon name to use for this phase. */
25
+ readonly icon: "Activity" | "Eye" | "AlertTriangle" | "PauseCircle" | "PowerOff";
13
26
  }
14
27
  export declare const PHASE_CONFIG: Record<CameraPhase, PhaseVisual>;
15
28
  /** Look up phase config with a safe fallback to `watching` for unknown values. */
@@ -1,23 +1,23 @@
1
- import { AgentAddonConfig, CameraStepOverridePatch, PipelineSchema } from '@camstack/types';
1
+ import type { AgentAddonConfig, CameraStepOverridePatch, PipelineSchema } from "@camstack/types";
2
2
  export interface MirrorSource {
3
- readonly nodeId: string;
4
- readonly engine: {
5
- readonly format: string;
6
- };
7
- readonly defaults: Readonly<Record<string, AgentAddonConfig>>;
3
+ readonly nodeId: string;
4
+ readonly engine: {
5
+ readonly format: string;
6
+ };
7
+ readonly defaults: Readonly<Record<string, AgentAddonConfig>>;
8
8
  }
9
9
  export interface MirrorInput {
10
- readonly source: MirrorSource;
11
- readonly target: MirrorSource;
12
- readonly catalog: PipelineSchema;
13
- readonly addonIds: readonly string[];
10
+ readonly source: MirrorSource;
11
+ readonly target: MirrorSource;
12
+ readonly catalog: PipelineSchema;
13
+ readonly addonIds: readonly string[];
14
14
  }
15
- export type MirrorOutcome = 'exact' | 'mapped' | 'skip';
15
+ export type MirrorOutcome = "exact" | "mapped" | "skip";
16
16
  export interface MirrorResultEntry {
17
- readonly addonId: string;
18
- readonly outcome: MirrorOutcome;
19
- readonly modelId: string | null;
20
- readonly reason?: string;
21
- readonly patch: CameraStepOverridePatch | null;
17
+ readonly addonId: string;
18
+ readonly outcome: MirrorOutcome;
19
+ readonly modelId: string | null;
20
+ readonly reason?: string;
21
+ readonly patch: CameraStepOverridePatch | null;
22
22
  }
23
23
  export declare function mirror(input: MirrorInput): readonly MirrorResultEntry[];
@@ -1,61 +1,59 @@
1
1
  /**
2
- * Client-side wire codec for the `camstack-control` RTCDataChannel (R9).
3
- *
4
- * Mirrors the broker's `control-protocol.ts`
5
- * (packages/addon-pipeline/src/stream-broker/recorded/control-protocol.ts):
6
- * client→server commands drive the per-viewer `TimelineSession` /
7
- * `RecordedFeeder` (frame-push recorded playback on the SAME WebRTC session
8
- * as live video); server→client messages report playback state + a ~1 Hz
9
- * position. Shapes are re-declared here (not imported) because ui-library
10
- * cannot depend on an addon package — the embed SPA does the same.
11
- *
12
- * Parsing is defensive: a malformed frame returns `null`, never throws, so a
13
- * bad datachannel message can't take down the player.
14
- */
2
+ * Client-side wire codec for the `camstack-control` RTCDataChannel (R9).
3
+ *
4
+ * Mirrors the broker's `control-protocol.ts`
5
+ * (packages/addon-pipeline/src/stream-broker/recorded/control-protocol.ts):
6
+ * client→server commands drive the per-viewer `TimelineSession` /
7
+ * `RecordedFeeder` (frame-push recorded playback on the SAME WebRTC session
8
+ * as live video); server→client messages report playback state + a ~1 Hz
9
+ * position. Shapes are re-declared here (not imported) because ui-library
10
+ * cannot depend on an addon package — the embed SPA does the same.
11
+ *
12
+ * Parsing is defensive: a malformed frame returns `null`, never throws, so a
13
+ * bad datachannel message can't take down the player.
14
+ */
15
15
  export type RecordedControlCommand = {
16
- readonly t: 'playRecorded';
17
- readonly deviceId: number;
18
- readonly epoch: number;
19
- readonly profile: string;
16
+ readonly t: "playRecorded";
17
+ readonly deviceId: number;
18
+ readonly epoch: number;
19
+ readonly profile: string;
20
20
  } | {
21
- readonly t: 'seek';
22
- readonly epoch: number;
21
+ readonly t: "seek";
22
+ readonly epoch: number;
23
23
  } | {
24
- readonly t: 'scrubCommit';
25
- readonly epoch: number;
24
+ readonly t: "scrubCommit";
25
+ readonly epoch: number;
26
26
  } | {
27
- readonly t: 'setRate';
28
- readonly rate: 0 | 1;
27
+ readonly t: "setRate";
28
+ readonly rate: 0 | 1;
29
29
  } | {
30
- readonly t: 'goLive';
30
+ readonly t: "goLive";
31
31
  } | {
32
- readonly t: 'setProfile';
33
- readonly profile: string;
32
+ readonly t: "setProfile";
33
+ readonly profile: string;
34
34
  };
35
35
  /** Serialize a command for `RTCDataChannel.send` (matches the server schema). */
36
36
  export declare function serializeRecordedCommand(cmd: RecordedControlCommand): string;
37
37
  /**
38
- * Playback mode reported by the server session. `live` = the shared live feed
39
- * owns the track; every other value describes the recorded feeder.
40
- */
38
+ * Playback mode reported by the server session. `live` = the shared live feed
39
+ * owns the track; every other value describes the recorded feeder.
40
+ */
41
41
  export declare const RECORDED_PLAYBACK_MODES: readonly ["live", "loading", "playing", "paused", "gap", "ended", "error"];
42
42
  export type RecordedPlaybackMode = (typeof RECORDED_PLAYBACK_MODES)[number];
43
- export type RecordedServedProfile = 'high' | 'mid' | 'low';
43
+ export type RecordedServedProfile = "high" | "mid" | "low";
44
44
  export type RecordedServerMessage = {
45
- readonly kind: 'state';
46
- readonly state: RecordedPlaybackMode;
45
+ readonly kind: "state";
46
+ readonly state: RecordedPlaybackMode;
47
47
  } | {
48
- readonly kind: 'position';
49
- readonly epochMs: number;
50
- }
51
- /** The tier actually playing, next to the one the client asked for. */
52
- | {
53
- readonly kind: 'servedProfile';
54
- readonly profile: RecordedServedProfile;
55
- readonly requested: string;
48
+ readonly kind: "position";
49
+ readonly epochMs: number;
50
+ } | {
51
+ readonly kind: "servedProfile";
52
+ readonly profile: RecordedServedProfile;
53
+ readonly requested: string;
56
54
  };
57
55
  /**
58
- * Parse a raw server→client control frame. Returns `null` on any malformed
59
- * payload (bad JSON, unknown discriminator, wrong field types).
60
- */
56
+ * Parse a raw server→client control frame. Returns `null` on any malformed
57
+ * payload (bad JSON, unknown discriminator, wrong field types).
58
+ */
61
59
  export declare function parseRecordedServerMessage(raw: string): RecordedServerMessage | null;
@@ -1,25 +1,41 @@
1
- import { DeviceDisplayOverride, RoleDisplayDefault } from '@camstack/types';
1
+ /**
2
+ * Shared, pure resolution of a sensor's DISPLAY unit + precision + value
3
+ * transform. One function so the two renderers (`SensorValueAtom`,
4
+ * `SensorHeroCard`) can never diverge — they duplicated this precedence before.
5
+ *
6
+ * Resolution order (device override → role default → live slice →
7
+ * ROLE_DESCRIPTOR canonicalUnit). `??` everywhere, never `||`: `precision: 0`
8
+ * is a legal override and must win over a slice `precision: 2`.
9
+ *
10
+ * Conversion happens at RENDER only — storage stays in source units. An
11
+ * override unit converts the raw slice value ONLY when it shares a dimension
12
+ * with the source unit (`canConvertUnit`); on refusal the display falls back to
13
+ * identity + the SOURCE unit so a unit label and its value math can never
14
+ * disagree. Precision applies AFTER conversion (by construction — the caller
15
+ * runs `formatNumeric(toDisplayValue(raw), precision)`).
16
+ */
17
+ import type { DeviceDisplayOverride, RoleDisplayDefault } from "@camstack/types";
2
18
  export interface SensorDisplayInput {
3
- /** Per-device override from the row (`DeviceInfo.display`). */
4
- readonly display?: DeviceDisplayOverride;
5
- /** Cap name for `perCap` refinement (e.g. 'numeric-sensor'); undefined skips it. */
6
- readonly capName?: string;
7
- /** Role default (`roleDisplayDefaults[device.role]`). */
8
- readonly roleDefault?: RoleDisplayDefault;
9
- /** Live slice unit (the unit the raw VALUE is actually in, for generic sensors). */
10
- readonly sliceUnit?: string;
11
- /** Live slice precision. */
12
- readonly slicePrecision?: number;
13
- /** ROLE_DESCRIPTOR canonical unit fallback (typed roles). */
14
- readonly canonicalUnit?: string;
19
+ /** Per-device override from the row (`DeviceInfo.display`). */
20
+ readonly display?: DeviceDisplayOverride;
21
+ /** Cap name for `perCap` refinement (e.g. 'numeric-sensor'); undefined skips it. */
22
+ readonly capName?: string;
23
+ /** Role default (`roleDisplayDefaults[device.role]`). */
24
+ readonly roleDefault?: RoleDisplayDefault;
25
+ /** Live slice unit (the unit the raw VALUE is actually in, for generic sensors). */
26
+ readonly sliceUnit?: string;
27
+ /** Live slice precision. */
28
+ readonly slicePrecision?: number;
29
+ /** ROLE_DESCRIPTOR canonical unit fallback (typed roles). */
30
+ readonly canonicalUnit?: string;
15
31
  }
16
32
  export interface ResolvedSensorDisplay {
17
- /** Display unit — `''` when none resolves anywhere. */
18
- readonly unit: string;
19
- /** Display precision (int 0-10) or undefined for auto-format. */
20
- readonly precision: number | undefined;
21
- /** Convert a raw slice value into the display unit. Identity unless an
22
- * override unit differs from the source unit AND both share a dimension. */
23
- readonly toDisplayValue: (raw: number) => number;
33
+ /** Display unit — `''` when none resolves anywhere. */
34
+ readonly unit: string;
35
+ /** Display precision (int 0-10) or undefined for auto-format. */
36
+ readonly precision: number | undefined;
37
+ /** Convert a raw slice value into the display unit. Identity unless an
38
+ * override unit differs from the source unit AND both share a dimension. */
39
+ readonly toDisplayValue: (raw: number) => number;
24
40
  }
25
41
  export declare function resolveSensorDisplay(input: SensorDisplayInput): ResolvedSensorDisplay;
@@ -1,40 +1,40 @@
1
1
  /**
2
- * Responsive design tokens — three-tier system.
3
- *
4
- * The admin-ui targets three width tiers; every component should pick
5
- * the right token from this file instead of hand-coding breakpoints.
6
- * Adopting the tokens uniformly is what makes the app feel consistent
7
- * across operator devices (mobile / tablet / desktop) and what unlocks
8
- * targeted tuning (e.g. shrink every label by 1px in one place).
9
- *
10
- * Tier definitions (Tailwind breakpoints):
11
- *
12
- * • **L1 — Compact** (`< 640px`, default = mobile portrait)
13
- * Single column, tight padding, smallest text, icon-only buttons
14
- * where labels can be inferred. The operator can still see every
15
- * stat / action — no horizontal scroll, no clipped text. The user
16
- * directive: "molta informazione in poco spazio quando la width è
17
- * bassa." [a lot of information in little space when the width is low.]
18
- *
19
- * • **L2 — Standard** (`sm` — `640–1023px`, tablet + small laptop)
20
- * 2-column grids, side panels become visible, button labels return.
21
- * Targets ~768px–1024px viewports — the most common operator sizes.
22
- *
23
- * • **L3 — Spacious** (`lg+` — `≥ 1024px`, desktop)
24
- * 4-column grids, generous padding, full-width header text,
25
- * side-by-side composite layouts. The operator has elbow room.
26
- *
27
- * Conventions:
28
- * - **Always start from L1** — the bare class is always the compact
29
- * variant, then `sm:` adds room at 640px, `lg:` at 1024px. No
30
- * desktop-first breakpoints; no max-width queries.
31
- * - **Token strings are static** — kept as `as const` so callers can
32
- * compose them via `cn()` / template literals without running a
33
- * class generator at runtime.
34
- * - **Pair the token with a comment** — the comment in the file
35
- * names every breakpoint it crosses, so a reader can predict the
36
- * layout without going to Tailwind docs.
37
- */
2
+ * Responsive design tokens — three-tier system.
3
+ *
4
+ * The admin-ui targets three width tiers; every component should pick
5
+ * the right token from this file instead of hand-coding breakpoints.
6
+ * Adopting the tokens uniformly is what makes the app feel consistent
7
+ * across operator devices (mobile / tablet / desktop) and what unlocks
8
+ * targeted tuning (e.g. shrink every label by 1px in one place).
9
+ *
10
+ * Tier definitions (Tailwind breakpoints):
11
+ *
12
+ * • **L1 — Compact** (`< 640px`, default = mobile portrait)
13
+ * Single column, tight padding, smallest text, icon-only buttons
14
+ * where labels can be inferred. The operator can still see every
15
+ * stat / action — no horizontal scroll, no clipped text. The user
16
+ * directive: "molta informazione in poco spazio quando la width è
17
+ * bassa." [a lot of information in little space when the width is low.]
18
+ *
19
+ * • **L2 — Standard** (`sm` — `640–1023px`, tablet + small laptop)
20
+ * 2-column grids, side panels become visible, button labels return.
21
+ * Targets ~768px–1024px viewports — the most common operator sizes.
22
+ *
23
+ * • **L3 — Spacious** (`lg+` — `≥ 1024px`, desktop)
24
+ * 4-column grids, generous padding, full-width header text,
25
+ * side-by-side composite layouts. The operator has elbow room.
26
+ *
27
+ * Conventions:
28
+ * - **Always start from L1** — the bare class is always the compact
29
+ * variant, then `sm:` adds room at 640px, `lg:` at 1024px. No
30
+ * desktop-first breakpoints; no max-width queries.
31
+ * - **Token strings are static** — kept as `as const` so callers can
32
+ * compose them via `cn()` / template literals without running a
33
+ * class generator at runtime.
34
+ * - **Pair the token with a comment** — the comment in the file
35
+ * names every breakpoint it crosses, so a reader can predict the
36
+ * layout without going to Tailwind docs.
37
+ */
38
38
  /** Container padding for a card-style section (header + body). */
39
39
  export declare const SECTION_CARD: "rounded-lg border border-border bg-surface overflow-hidden";
40
40
  /** Header strip inside a card (between border-b lines). */
@@ -56,32 +56,32 @@ export declare const SPLIT_PANEL_OUTER: "flex flex-col-reverse md:flex-row";
56
56
  /** Sidebar narrow lane in a SPLIT_PANEL_OUTER layout. */
57
57
  export declare const SPLIT_PANEL_SIDE: "w-full md:w-44 lg:w-52 md:flex-shrink-0 border-b md:border-b-0 md:border-l border-border";
58
58
  /**
59
- * The tier boundary at which a settings label/value row stops stacking.
60
- *
61
- * Below it (L1 — compact) the row is ONE column: label on its own line, value
62
- * on the next at full width. Above it the row is label-left / value-right as
63
- * before. The two-column form needs `SETTING_ROW_LABEL`'s lane plus a readable
64
- * value beside it; a phone has neither, and the failure mode is not "cramped"
65
- * but "the value is the part that gets cut" — the one thing the operator
66
- * opened the page to read.
67
- */
59
+ * The tier boundary at which a settings label/value row stops stacking.
60
+ *
61
+ * Below it (L1 — compact) the row is ONE column: label on its own line, value
62
+ * on the next at full width. Above it the row is label-left / value-right as
63
+ * before. The two-column form needs `SETTING_ROW_LABEL`'s lane plus a readable
64
+ * value beside it; a phone has neither, and the failure mode is not "cramped"
65
+ * but "the value is the part that gets cut" — the one thing the operator
66
+ * opened the page to read.
67
+ */
68
68
  export declare const SETTING_ROW_STACK_BREAKPOINT: "sm";
69
69
  /** Outer row: single column at L1, label/value columns from `sm` up. */
70
70
  export declare const SETTING_ROW: "flex min-w-0 flex-col gap-0.5 py-1.5 sm:flex-row sm:items-center";
71
71
  /** Label lane. Full width (and free to wrap) at L1; a fixed lane from `sm` up. */
72
72
  export declare const SETTING_ROW_LABEL: "min-w-0 text-[11px] leading-tight text-foreground-subtle sm:w-32 sm:shrink-0 sm:pr-2";
73
73
  /**
74
- * Value lane — the value text plus its trailing affordances (copy / reveal).
75
- * `w-full` at L1 so the value owns the whole row once the label is above it;
76
- * `sm:flex-1` makes it share the row again from `sm` up.
77
- */
74
+ * Value lane — the value text plus its trailing affordances (copy / reveal).
75
+ * `w-full` at L1 so the value owns the whole row once the label is above it;
76
+ * `sm:flex-1` makes it share the row again from `sm` up.
77
+ */
78
78
  export declare const SETTING_ROW_VALUE: "flex w-full min-w-0 items-center gap-1 sm:flex-1";
79
79
  /**
80
- * The value text itself. `break-all` lets an opaque token (a key, a URL) wrap
81
- * at L1 instead of being cut mid-word; `sm:truncate` restores the single-line
82
- * desktop form, where the row is wide enough for truncation to be a choice
83
- * rather than data loss.
84
- */
80
+ * The value text itself. `break-all` lets an opaque token (a key, a URL) wrap
81
+ * at L1 instead of being cut mid-word; `sm:truncate` restores the single-line
82
+ * desktop form, where the row is wide enough for truncation to be a choice
83
+ * rather than data loss.
84
+ */
85
85
  export declare const SETTING_ROW_VALUE_TEXT: "min-w-0 break-all text-xs text-foreground sm:truncate";
86
86
  /** Section header label (uppercase tracking-wider). */
87
87
  export declare const TEXT_SECTION_LABEL: "text-[10px] sm:text-[11px] font-semibold text-foreground uppercase tracking-wider";