@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,115 +1,112 @@
1
- export type ScrubSource = 'timeline' | 'heatmap';
1
+ export type ScrubSource = "timeline" | "heatmap";
2
2
  export interface ScrubState {
3
- readonly scrubbing: boolean;
4
- readonly scrubEpoch: number | null;
5
- readonly playheadEpoch: number | null;
6
- readonly lastSource: ScrubSource | null;
3
+ readonly scrubbing: boolean;
4
+ readonly scrubEpoch: number | null;
5
+ readonly playheadEpoch: number | null;
6
+ readonly lastSource: ScrubSource | null;
7
7
  }
8
8
  export declare const initialScrubState: ScrubState;
9
9
  export type ScrubAction = {
10
- readonly type: 'begin';
11
- readonly source: ScrubSource;
10
+ readonly type: "begin";
11
+ readonly source: ScrubSource;
12
12
  } | {
13
- readonly type: 'update';
14
- readonly epoch: number;
15
- readonly source: ScrubSource;
13
+ readonly type: "update";
14
+ readonly epoch: number;
15
+ readonly source: ScrubSource;
16
16
  } | {
17
- readonly type: 'end';
18
- readonly epoch: number;
19
- readonly source: ScrubSource;
17
+ readonly type: "end";
18
+ readonly epoch: number;
19
+ readonly source: ScrubSource;
20
20
  } | {
21
- readonly type: 'seek';
22
- readonly epoch: number;
23
- readonly source: ScrubSource;
21
+ readonly type: "seek";
22
+ readonly epoch: number;
23
+ readonly source: ScrubSource;
24
24
  } | {
25
- readonly type: 'playhead';
26
- readonly epoch: number;
25
+ readonly type: "playhead";
26
+ readonly epoch: number;
27
27
  } | {
28
- readonly type: 'reset';
28
+ readonly type: "reset";
29
29
  };
30
30
  export declare function scrubReducer(state: ScrubState, action: ScrubAction): ScrubState;
31
31
  /**
32
- * Throttle decision for continuous `update` emits (default ~70 ms).
33
- * Returns true when enough time has elapsed since the last emit.
34
- */
32
+ * Throttle decision for continuous `update` emits (default ~70 ms).
33
+ * Returns true when enough time has elapsed since the last emit.
34
+ */
35
35
  export declare function shouldEmit(lastEmitMs: number, now: number, throttleMs?: number): boolean;
36
36
  /** The last committed target (epoch + wall-clock of the commit). */
37
37
  export interface LastCommit {
38
- readonly epoch: number;
39
- readonly at: number;
38
+ readonly epoch: number;
39
+ readonly at: number;
40
40
  }
41
41
  /** Epochs within this many ms of the last commit count as the SAME target. */
42
42
  export declare const COMMIT_DEDUPE_TOLERANCE_MS = 750;
43
43
  /** Only dedupe against a commit made within this recent window. */
44
- export declare const COMMIT_DEDUPE_WINDOW_MS = 2000;
44
+ export declare const COMMIT_DEDUPE_WINDOW_MS = 2e3;
45
45
  /**
46
- * Decide whether a `seek`/`scrubCommit` should actually hit the playback sink.
47
- * Each commit reloads the server feeder (loading→playing) and visibly stutters
48
- * playback; firing the same (or a near-identical) target twice in quick
49
- * succession produces a redundant reload. Drop a commit only when it targets
50
- * essentially the SAME epoch as the last commit AND that commit was recent — a
51
- * genuinely different target, or a re-seek to the same spot after the window,
52
- * always commits.
53
- */
46
+ * Decide whether a `seek`/`scrubCommit` should actually hit the playback sink.
47
+ * Each commit reloads the server feeder (loading→playing) and visibly stutters
48
+ * playback; firing the same (or a near-identical) target twice in quick
49
+ * succession produces a redundant reload. Drop a commit only when it targets
50
+ * essentially the SAME epoch as the last commit AND that commit was recent — a
51
+ * genuinely different target, or a re-seek to the same spot after the window,
52
+ * always commits.
53
+ */
54
54
  export declare function shouldCommit(last: LastCommit | null, epoch: number, now: number, toleranceMs?: number, windowMs?: number): boolean;
55
55
  /**
56
- * The active cursor position (scrub target while scrubbing, else playhead)
57
- * expressed as a 0..1 fraction across the day window.
58
- * Returns null when no position is known or the day window is degenerate.
59
- */
56
+ * The active cursor position (scrub target while scrubbing, else playhead)
57
+ * expressed as a 0..1 fraction across the day window.
58
+ * Returns null when no position is known or the day window is degenerate.
59
+ */
60
60
  export declare function cursorFractionFor(state: ScrubState, day: {
61
- readonly from: number;
62
- readonly to: number;
61
+ readonly from: number;
62
+ readonly to: number;
63
63
  }): number | null;
64
64
  /**
65
- * Generic, always-active playback control surface the scrub controller
66
- * drives. `scrubStart`/`scrubTo` are CLIENT-SIDE hooks (the wire protocol has
67
- * no per-move scrub message — a future WebCodecs preview consumes them);
68
- * `scrubCommit`/`seek` reach the server feeder.
69
- */
65
+ * Generic, always-active playback control surface the scrub controller
66
+ * drives. `scrubStart`/`scrubTo` are CLIENT-SIDE hooks (the wire protocol has
67
+ * no per-move scrub message — a future WebCodecs preview consumes them);
68
+ * `scrubCommit`/`seek` reach the server feeder.
69
+ */
70
70
  export interface PlaybackControlSink {
71
- scrubStart(): void;
72
- scrubTo(epochMs: number): void;
73
- scrubCommit(epochMs: number): void;
74
- seek(epochMs: number): void;
71
+ scrubStart(): void;
72
+ scrubTo(epochMs: number): void;
73
+ scrubCommit(epochMs: number): void;
74
+ seek(epochMs: number): void;
75
75
  }
76
76
  /** A mutable holder, structurally compatible with React's `MutableRefObject`. */
77
77
  export interface MutableRef<T> {
78
- current: T;
78
+ current: T;
79
79
  }
80
80
  /** The gesture callbacks the hook exposes (everything except `state`). */
81
- type ScrubBridge = Omit<ScrubController, 'state'>;
81
+ type ScrubBridge = Omit<ScrubController, "state">;
82
82
  /**
83
- * Builds the always-active bridge callbacks from a sink, a dispatch, and the
84
- * throttle ref. Pure (no React) so it can be unit-tested directly: the hook
85
- * just wraps the result in `useMemo`.
86
- *
87
- * Every gesture drives the sink immediately — there is no VOD-active gate.
88
- */
89
- export declare function makeScrubBridge(sink: PlaybackControlSink, dispatch: (action: ScrubAction) => void, lastEmitRef: MutableRef<number>, lastCommitRef?: MutableRef<LastCommit | null>,
90
- /** Reports whether the PLAYER is currently on the live edge (not in recorded
91
- * mode). Used to bypass commit-dedupe on the live→recorded transition. */
92
- isPlayerLive?: () => boolean): ScrubBridge;
83
+ * Builds the always-active bridge callbacks from a sink, a dispatch, and the
84
+ * throttle ref. Pure (no React) so it can be unit-tested directly: the hook
85
+ * just wraps the result in `useMemo`.
86
+ *
87
+ * Every gesture drives the sink immediately — there is no VOD-active gate.
88
+ */
89
+ export declare function makeScrubBridge(sink: PlaybackControlSink, dispatch: (action: ScrubAction) => void, lastEmitRef: MutableRef<number>, lastCommitRef?: MutableRef<LastCommit | null>, isPlayerLive?: () => boolean): ScrubBridge;
93
90
  export interface ScrubController {
94
- readonly state: ScrubState;
95
- readonly beginScrub: (source: ScrubSource) => void;
96
- readonly updateScrub: (epoch: number, source: ScrubSource) => void;
97
- readonly endScrub: (epoch: number, source: ScrubSource) => void;
98
- readonly seek: (epoch: number, source: ScrubSource) => void;
99
- readonly setPlayhead: (epoch: number) => void;
100
- readonly reset: () => void;
91
+ readonly state: ScrubState;
92
+ readonly beginScrub: (source: ScrubSource) => void;
93
+ readonly updateScrub: (epoch: number, source: ScrubSource) => void;
94
+ readonly endScrub: (epoch: number, source: ScrubSource) => void;
95
+ readonly seek: (epoch: number, source: ScrubSource) => void;
96
+ readonly setPlayhead: (epoch: number) => void;
97
+ readonly reset: () => void;
101
98
  }
102
99
  /**
103
- * Owns the shared scrub position and bridges it to a playback control sink.
104
- *
105
- * The bridge is always active: any gesture (drag or tap) drives the sink
106
- * immediately. There is no VOD-active gate — the timeline always drives
107
- * playback while frame-push mode is on.
108
- *
109
- * @param sink Always-active playback control surface (e.g. the datachannel)
110
- * @param isPlayerLive Synchronous getter for "is the player on the live
111
- * edge?" — lets a live→recorded commit bypass dedupe so the seek always
112
- * reaches the server.
113
- */
100
+ * Owns the shared scrub position and bridges it to a playback control sink.
101
+ *
102
+ * The bridge is always active: any gesture (drag or tap) drives the sink
103
+ * immediately. There is no VOD-active gate — the timeline always drives
104
+ * playback while frame-push mode is on.
105
+ *
106
+ * @param sink Always-active playback control surface (e.g. the datachannel)
107
+ * @param isPlayerLive Synchronous getter for "is the player on the live
108
+ * edge?" — lets a live→recorded commit bypass dedupe so the seek always
109
+ * reaches the server.
110
+ */
114
111
  export declare function useScrubController(sink: PlaybackControlSink, isPlayerLive?: () => boolean): ScrubController;
115
112
  export {};
@@ -1,5 +1,30 @@
1
- import { Context } from 'react';
1
+ /**
2
+ * Cross-bundle React Context sharing.
3
+ *
4
+ * Addon page bundles (benchmark, etc.) ship their own bundled copy of
5
+ * `@camstack/ui-library`. Without sharing, each bundle calls
6
+ * `createContext()` and gets a fresh Context instance — so when the
7
+ * bundle's hook reads from this Context, it doesn't match the host
8
+ * admin-ui's <Provider> tree, and `useContext()` returns the default
9
+ * value (typically `null`) which often causes a `must be used within
10
+ * Provider` throw.
11
+ *
12
+ * This helper stashes Context instances on `globalThis` keyed by a
13
+ * unique name, so the SECOND-evaluated copy reuses the host's
14
+ * instance instead of creating a duplicate.
15
+ *
16
+ * Boot order:
17
+ * 1. admin-ui's main.tsx evaluates first → globalThis Map is empty
18
+ * → creates Context, stores it under `name`.
19
+ * 2. Addon bundle evaluates later → globalThis Map has the entry
20
+ * → returns the host's Context.
21
+ *
22
+ * Critical: pick UNIQUE `name`s. Two distinct contexts with the same
23
+ * name will silently collide (and TypeScript can't catch it because
24
+ * the Map is typed as `Context<unknown>`).
25
+ */
26
+ import { type Context } from "react";
2
27
  declare global {
3
- var __camstackSharedContexts: Map<string, Context<unknown>> | undefined;
28
+ var __camstackSharedContexts: Map<string, Context<unknown>> | undefined;
4
29
  }
5
30
  export declare function createSharedContext<T>(name: string, defaultValue: T): Context<T>;
@@ -1,27 +1,27 @@
1
1
  /**
2
- * Predicates over a Tailwind class string, used by layout tests to assert a
3
- * responsive DECISION rather than a class literal.
4
- *
5
- * Why this exists: the two mobile defects fixed in 2026-08 were both "a
6
- * utility that should have been behind a breakpoint was applied at every
7
- * width" — a pinned first table column, a truncated settings value. The
8
- * invariant worth guarding is exactly that: `sticky` must not appear
9
- * unconditionally on the name column, `truncate` must not appear
10
- * unconditionally on a settings value. Asserting the whole `className`
11
- * byte-for-byte would guard something else (churn) and would go stale the
12
- * first time a padding token moves — see `docs/ui/conventions.md`,
13
- * "Frozen-string tests have an expiry date".
14
- *
15
- * A Tailwind class is `variant:variant:utility`. Everything before the last
16
- * `:` is a condition (breakpoint, state, container query); a class with no
17
- * `:` applies at every width and in every state.
18
- */
2
+ * Predicates over a Tailwind class string, used by layout tests to assert a
3
+ * responsive DECISION rather than a class literal.
4
+ *
5
+ * Why this exists: the two mobile defects fixed in 2026-08 were both "a
6
+ * utility that should have been behind a breakpoint was applied at every
7
+ * width" — a pinned first table column, a truncated settings value. The
8
+ * invariant worth guarding is exactly that: `sticky` must not appear
9
+ * unconditionally on the name column, `truncate` must not appear
10
+ * unconditionally on a settings value. Asserting the whole `className`
11
+ * byte-for-byte would guard something else (churn) and would go stale the
12
+ * first time a padding token moves — see `docs/ui/conventions.md`,
13
+ * "Frozen-string tests have an expiry date".
14
+ *
15
+ * A Tailwind class is `variant:variant:utility`. Everything before the last
16
+ * `:` is a condition (breakpoint, state, container query); a class with no
17
+ * `:` applies at every width and in every state.
18
+ */
19
19
  /** Split a class string into non-empty tokens. `undefined` ⇒ no tokens. */
20
20
  export declare function classTokens(className: string | undefined): readonly string[];
21
21
  /**
22
- * True when `utility` is applied with NO condition — i.e. at every width.
23
- * `hasUnconditionalClass('md:sticky', 'sticky')` is false: that is the point.
24
- */
22
+ * True when `utility` is applied with NO condition — i.e. at every width.
23
+ * `hasUnconditionalClass('md:sticky', 'sticky')` is false: that is the point.
24
+ */
25
25
  export declare function hasUnconditionalClass(className: string | undefined, utility: string): boolean;
26
26
  /** True when `utility` is applied behind the given `variant` (e.g. `md`). */
27
27
  export declare function hasVariantClass(className: string | undefined, variant: string, utility: string): boolean;
@@ -1,11 +1,6 @@
1
- import { HTMLAttributes } from 'react';
2
- import { VariantProps } from 'class-variance-authority';
3
- declare const badgeVariants: (props?: ({
4
- variant?: "info" | "danger" | "default" | "success" | "warning" | null | undefined;
5
- styleVariant?: "outline" | "solid" | null | undefined;
6
- } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
- export interface BadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'style'>, VariantProps<typeof badgeVariants> {
8
- style?: 'solid' | 'outline';
1
+ import { type HTMLAttributes, type ForwardRefExoticComponent, type RefAttributes } from "react";
2
+ export interface BadgeProps extends Omit<HTMLAttributes<HTMLSpanElement>, "style"> {
3
+ variant?: "default" | "success" | "warning" | "danger" | "info";
4
+ style?: "solid" | "outline";
9
5
  }
10
- export declare const Badge: import('react').ForwardRefExoticComponent<BadgeProps & import('react').RefAttributes<HTMLSpanElement>>;
11
- export {};
6
+ export declare const Badge: ForwardRefExoticComponent<BadgeProps & RefAttributes<HTMLSpanElement>>;
@@ -1,9 +1,9 @@
1
- import { ReactNode } from 'react';
1
+ import { type ReactNode, type JSX } from "react";
2
2
  export interface BottomSheetProps {
3
- open: boolean;
4
- onClose: () => void;
5
- title?: string;
6
- children: ReactNode;
7
- className?: string;
3
+ open: boolean;
4
+ onClose: () => void;
5
+ title?: string;
6
+ children: ReactNode;
7
+ className?: string;
8
8
  }
9
- export declare function BottomSheet({ open, onClose, title, children, className }: BottomSheetProps): import("react").JSX.Element;
9
+ export declare function BottomSheet({ open, onClose, title, children, className }: BottomSheetProps): JSX.Element;
@@ -1,10 +1,6 @@
1
- import { ButtonHTMLAttributes } from 'react';
2
- import { VariantProps } from 'class-variance-authority';
3
- declare const buttonVariants: (props?: ({
4
- variant?: "primary" | "secondary" | "ghost" | "danger" | "outline" | null | undefined;
5
- size?: "sm" | "md" | "lg" | null | undefined;
6
- } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
- export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
1
+ import { type ButtonHTMLAttributes, type ForwardRefExoticComponent, type RefAttributes } from "react";
2
+ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3
+ variant?: "primary" | "secondary" | "ghost" | "danger" | "outline";
4
+ size?: "sm" | "md" | "lg";
8
5
  }
9
- export declare const Button: import('react').ForwardRefExoticComponent<ButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
10
- export {};
6
+ export declare const Button: ForwardRefExoticComponent<ButtonProps & RefAttributes<HTMLButtonElement>>;
@@ -1,9 +1,5 @@
1
- import { HTMLAttributes } from 'react';
2
- import { VariantProps } from 'class-variance-authority';
3
- declare const cardVariants: (props?: ({
4
- variant?: "flat" | "bordered" | null | undefined;
5
- } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
- export interface CardProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
1
+ import { type HTMLAttributes, type ForwardRefExoticComponent, type RefAttributes } from "react";
2
+ export interface CardProps extends HTMLAttributes<HTMLDivElement> {
3
+ variant?: "flat" | "bordered";
7
4
  }
8
- export declare const Card: import('react').ForwardRefExoticComponent<CardProps & import('react').RefAttributes<HTMLDivElement>>;
9
- export {};
5
+ export declare const Card: ForwardRefExoticComponent<CardProps & RefAttributes<HTMLDivElement>>;
@@ -1,4 +1,3 @@
1
- import { InputHTMLAttributes } from 'react';
2
- export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
3
- }
4
- export declare const Checkbox: import('react').ForwardRefExoticComponent<CheckboxProps & import('react').RefAttributes<HTMLInputElement>>;
1
+ import { type InputHTMLAttributes, type ForwardRefExoticComponent, type RefAttributes } from "react";
2
+ export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "type"> {}
3
+ export declare const Checkbox: ForwardRefExoticComponent<CheckboxProps & RefAttributes<HTMLInputElement>>;
@@ -1,15 +1,25 @@
1
- import { ReactNode } from 'react';
1
+ /**
2
+ * CollapsibleCard — neutral card with a clickable header + optional
3
+ * expanded body. Same visual language as `FormBuilder` sections so
4
+ * every settings-style container in the app shares one style
5
+ * (`rounded-lg border border-border bg-surface`, no shadow, no
6
+ * coloured left accent).
7
+ *
8
+ * Used by `PipelineStep`; reusable for any "click to expand" settings
9
+ * row where we want FormBuilder-matching chrome.
10
+ */
11
+ import { type ReactNode, type JSX } from "react";
2
12
  export interface CollapsibleCardProps {
3
- readonly expanded: boolean;
4
- readonly onExpandedChange: (next: boolean) => void;
5
- /** Rendered inside the clickable header row, to the right of the chevron. */
6
- readonly header: ReactNode;
7
- /** Expanded body — rendered below a subtle divider when `expanded === true`. */
8
- readonly children?: ReactNode;
9
- /** Dims the entire card — for steps flagged as disabled/inactive. */
10
- readonly dimmed?: boolean;
11
- /** Hide the chevron (header still click-toggles). Useful for always-expanded views. */
12
- readonly hideChevron?: boolean;
13
- readonly className?: string;
13
+ readonly expanded: boolean;
14
+ readonly onExpandedChange: (next: boolean) => void;
15
+ /** Rendered inside the clickable header row, to the right of the chevron. */
16
+ readonly header: ReactNode;
17
+ /** Expanded body — rendered below a subtle divider when `expanded === true`. */
18
+ readonly children?: ReactNode;
19
+ /** Dims the entire card — for steps flagged as disabled/inactive. */
20
+ readonly dimmed?: boolean;
21
+ /** Hide the chevron (header still click-toggles). Useful for always-expanded views. */
22
+ readonly hideChevron?: boolean;
23
+ readonly className?: string;
14
24
  }
15
- export declare function CollapsibleCard({ expanded, onExpandedChange, header, children, dimmed, hideChevron, className, }: CollapsibleCardProps): import("react").JSX.Element;
25
+ export declare function CollapsibleCard({ expanded, onExpandedChange, header, children, dimmed, hideChevron, className }: CollapsibleCardProps): JSX.Element;
@@ -1,65 +1,39 @@
1
- import { HTMLAttributes, ReactNode } from 'react';
2
- import { VariantProps } from 'class-variance-authority';
1
+ import { type JSX, type HTMLAttributes, type ReactNode, type ForwardRefExoticComponent, type RefAttributes } from "react";
3
2
  interface DialogProps {
4
- children: ReactNode;
5
- open?: boolean;
6
- onOpenChange?: (open: boolean) => void;
3
+ children: ReactNode;
4
+ open?: boolean;
5
+ onOpenChange?: (open: boolean) => void;
7
6
  }
8
- export declare function Dialog({ children, open: controlledOpen, onOpenChange }: DialogProps): import("react").JSX.Element;
9
- export declare function DialogTrigger({ children, ...props }: HTMLAttributes<HTMLButtonElement>): import("react").JSX.Element;
10
- /**
11
- * A native <dialog> opened with showModal() is promoted to the top layer, so
12
- * ancestor transform/overflow can't clip it — but it relies on the UA
13
- * stylesheet's `dialog { margin: auto }` for modal centering. Tailwind's
14
- * preflight resets `margin: 0` on every element, which defeats that centering
15
- * and pins the modal to the top-left. We therefore center deterministically:
16
- * a top-layer dialog with `position: fixed` is viewport-relative, and a
17
- * self-transform is fine, so `fixed left-1/2 top-1/2 -translate-x-1/2
18
- * -translate-y-1/2 m-0` always centers regardless of any margin reset. Width
19
- * is capped to the viewport (`w-[calc(100vw-2rem)]`) rather than a bare
20
- * `w-full` (which would overflow/clip a centered dialog); the per-variant
21
- * `max-w-*` keeps small dialogs small while the cap prevents overflow.
22
- *
23
- * Height is capped against the SAFE viewport, not the raw one. A top-layer
24
- * `fixed` dialog is viewport-relative, and under `viewport-fit=cover` the
25
- * viewport extends behind the iOS notch/Dynamic Island and home indicator —
26
- * so a dialog tall enough to hit its `max-h` put its header under the clock.
27
- * Because the box is centred on the viewport (not on the safe area), the cap
28
- * has to subtract TWICE the LARGER of the two insets for the box to clear
29
- * both edges; using each inset once would still overflow the taller side
30
- * whenever they are asymmetric (they are: ~59px top vs ~34px bottom). Every
31
- * term collapses to the previous `100dvh - 2rem` where the insets are 0.
32
- */
33
- declare const contentVariants: (props?: ({
34
- width?: "sm" | "md" | "lg" | null | undefined;
35
- scroll?: "content" | "body" | null | undefined;
36
- placement?: "center" | "sheet-on-mobile" | null | undefined;
37
- } & import('class-variance-authority/types').ClassProp) | undefined) => string;
38
- export type DialogPlacement = NonNullable<VariantProps<typeof contentVariants>['placement']>;
39
- export interface DialogContentProps extends HTMLAttributes<HTMLDialogElement>, VariantProps<typeof contentVariants> {
7
+ export declare function Dialog({ children, open: controlledOpen, onOpenChange }: DialogProps): JSX.Element;
8
+ export declare function DialogTrigger({ children, ...props }: HTMLAttributes<HTMLButtonElement>): JSX.Element;
9
+ export interface DialogContentProps extends HTMLAttributes<HTMLDialogElement> {
10
+ width?: "sm" | "md" | "lg";
11
+ scroll?: "content" | "body";
12
+ placement?: "center" | "sheet-on-mobile";
40
13
  }
41
- export declare const DialogContent: import('react').ForwardRefExoticComponent<DialogContentProps & import('react').RefAttributes<HTMLDialogElement>>;
14
+ export type DialogPlacement = NonNullable<DialogContentProps["placement"]>;
15
+ export declare const DialogContent: ForwardRefExoticComponent<DialogContentProps & RefAttributes<HTMLDialogElement>>;
42
16
  /** `shrink-0` is inert outside a flex column and load-bearing inside one:
43
- * under `scroll="body"` the header must keep its height while the body gives
44
- * ground, or a long form squeezes its own title to nothing. */
45
- export declare function DialogHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
17
+ * under `scroll="body"` the header must keep its height while the body gives
18
+ * ground, or a long form squeezes its own title to nothing. */
19
+ export declare function DialogHeader({ className, ...props }: HTMLAttributes<HTMLDivElement>): JSX.Element;
46
20
  /**
47
- * The scrolling middle of a `scroll="body"` dialog.
48
- *
49
- * `min-h-0` is what makes it work: a flex item's default `min-height: auto`
50
- * refuses to shrink below its content, so without it the body pushes the
51
- * footer out of the dialog instead of scrolling — the exact failure this
52
- * variant exists to remove. Anything sticky INSIDE a dialog body pins against
53
- * this element, since it is the scroll container.
54
- *
55
- * It only bounds a scroll area if every ancestor up to the dialog has a
56
- * resolved height. `DialogContent` supplies the top of that chain (see the
57
- * `scroll: 'body'` compound variants); an intermediate wrapper between them —
58
- * a `<Tabs>` that owns the tab strip, say — must carry `flex-1 min-h-0` too,
59
- * or it collapses and takes the body with it.
60
- */
61
- export declare function DialogBody({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
62
- export declare function DialogFooter({ className, ...props }: HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
63
- export declare function DialogTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>): import("react").JSX.Element;
64
- export declare function DialogDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>): import("react").JSX.Element;
21
+ * The scrolling middle of a `scroll="body"` dialog.
22
+ *
23
+ * `min-h-0` is what makes it work: a flex item's default `min-height: auto`
24
+ * refuses to shrink below its content, so without it the body pushes the
25
+ * footer out of the dialog instead of scrolling — the exact failure this
26
+ * variant exists to remove. Anything sticky INSIDE a dialog body pins against
27
+ * this element, since it is the scroll container.
28
+ *
29
+ * It only bounds a scroll area if every ancestor up to the dialog has a
30
+ * resolved height. `DialogContent` supplies the top of that chain (see the
31
+ * `scroll: 'body'` compound variants); an intermediate wrapper between them —
32
+ * a `<Tabs>` that owns the tab strip, say — must carry `flex-1 min-h-0` too,
33
+ * or it collapses and takes the body with it.
34
+ */
35
+ export declare function DialogBody({ className, ...props }: HTMLAttributes<HTMLDivElement>): JSX.Element;
36
+ export declare function DialogFooter({ className, ...props }: HTMLAttributes<HTMLDivElement>): JSX.Element;
37
+ export declare function DialogTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>): JSX.Element;
38
+ export declare function DialogDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>): JSX.Element;
65
39
  export {};
@@ -1,19 +1,19 @@
1
- import { ButtonHTMLAttributes, HTMLAttributes, ReactNode } from 'react';
2
- import { LucideIcon } from 'lucide-react';
1
+ import { type JSX, type ButtonHTMLAttributes, type HTMLAttributes, type ReactNode } from "react";
2
+ import { type LucideIcon } from "lucide-react";
3
3
  export declare function Dropdown({ children }: {
4
- children: ReactNode;
5
- }): import("react").JSX.Element;
6
- export declare function DropdownTrigger({ children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>): import("react").JSX.Element;
4
+ children: ReactNode;
5
+ }): JSX.Element | null;
6
+ export declare function DropdownTrigger({ children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>): JSX.Element | null;
7
7
  interface DropdownContentProps extends HTMLAttributes<HTMLDivElement> {
8
- /** Horizontal alignment relative to the trigger. Default: 'start' (left-aligned). */
9
- align?: 'start' | 'end';
10
- /** Pixel offset between trigger and content. Default: 4. */
11
- offset?: number;
8
+ /** Horizontal alignment relative to the trigger. Default: 'start' (left-aligned). */
9
+ align?: "start" | "end";
10
+ /** Pixel offset between trigger and content. Default: 4. */
11
+ offset?: number;
12
12
  }
13
- export declare function DropdownContent({ className, children, align, offset, ...props }: DropdownContentProps): import('react').ReactPortal | null;
13
+ export declare function DropdownContent({ className, children, align, offset, ...props }: DropdownContentProps): JSX.Element | null;
14
14
  interface DropdownItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
15
- icon?: LucideIcon;
16
- variant?: 'default' | 'danger';
15
+ icon?: LucideIcon;
16
+ variant?: "default" | "danger";
17
17
  }
18
- export declare function DropdownItem({ className, icon: Icon, variant, children, onClick, ...props }: DropdownItemProps): import("react").JSX.Element;
18
+ export declare function DropdownItem({ className, icon: Icon, variant, children, onClick, ...props }: DropdownItemProps): JSX.Element | null;
19
19
  export {};
@@ -1,22 +1,43 @@
1
- import { ReactNode } from 'react';
1
+ import { type ReactNode, type JSX } from "react";
2
+ import { type LucideIcon } from "lucide-react";
3
+ export interface FloatingPanelPosition {
4
+ readonly x: number;
5
+ readonly y: number;
6
+ }
7
+ export interface FloatingPanelSize {
8
+ readonly w: number;
9
+ readonly h: number;
10
+ }
2
11
  export interface FloatingPanelProps {
3
- /** Panel title displayed in the title bar */
4
- title: string;
5
- /** Called when the close button is clicked */
6
- onClose: () => void;
7
- /** Panel content */
8
- children: ReactNode;
9
- /** Default width in pixels */
10
- defaultWidth?: number;
11
- /** Default height in pixels */
12
- defaultHeight?: number;
13
- /** Minimum width in pixels */
14
- minWidth?: number;
15
- /** Minimum height in pixels */
16
- minHeight?: number;
17
- /** Offset index to stagger multiple panels (adds 30px offset per index) */
18
- offsetIndex?: number;
19
- /** Additional CSS classes for the panel container */
20
- className?: string;
12
+ /** Panel title displayed in the title bar */
13
+ title: string;
14
+ /** Optional icon shown before the title */
15
+ icon?: LucideIcon;
16
+ /**
17
+ * Controlled position. When set, the owner holds the position (so it can
18
+ * survive the panel being unmounted on close) and receives every drag step
19
+ * through `onPositionChange`. Leave unset for an uncontrolled panel.
20
+ */
21
+ position?: FloatingPanelPosition;
22
+ onPositionChange?: (position: FloatingPanelPosition) => void;
23
+ /** Controlled size, same contract as `position` (resize via the corner handle). */
24
+ size?: FloatingPanelSize;
25
+ onSizeChange?: (size: FloatingPanelSize) => void;
26
+ /** Called when the close button is clicked */
27
+ onClose: () => void;
28
+ /** Panel content */
29
+ children: ReactNode;
30
+ /** Default width in pixels */
31
+ defaultWidth?: number;
32
+ /** Default height in pixels */
33
+ defaultHeight?: number;
34
+ /** Minimum width in pixels */
35
+ minWidth?: number;
36
+ /** Minimum height in pixels */
37
+ minHeight?: number;
38
+ /** Offset index to stagger multiple panels (adds 30px offset per index) */
39
+ offsetIndex?: number;
40
+ /** Additional CSS classes for the panel container */
41
+ className?: string;
21
42
  }
22
- export declare function FloatingPanel({ title, onClose, children, defaultWidth, defaultHeight, minWidth, minHeight, offsetIndex, className, }: FloatingPanelProps): import("react").JSX.Element;
43
+ export declare function FloatingPanel({ title, icon: Icon, position, onPositionChange, size: controlledSize, onSizeChange, onClose, children, defaultWidth, defaultHeight, minWidth, minHeight, offsetIndex, className }: FloatingPanelProps): JSX.Element;
@@ -1,13 +1,9 @@
1
- import { ButtonHTMLAttributes } from 'react';
2
- import { VariantProps } from 'class-variance-authority';
3
- import { LucideIcon } from 'lucide-react';
4
- declare const iconButtonVariants: (props?: ({
5
- variant?: "primary" | "secondary" | "ghost" | "danger" | "outline" | null | undefined;
6
- size?: "sm" | "md" | "lg" | null | undefined;
7
- } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
- export interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'>, VariantProps<typeof iconButtonVariants> {
9
- icon: LucideIcon;
10
- 'aria-label': string;
1
+ import { type ButtonHTMLAttributes, type ForwardRefExoticComponent, type RefAttributes } from "react";
2
+ import { type LucideIcon } from "lucide-react";
3
+ export interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
4
+ variant?: "primary" | "secondary" | "ghost" | "danger" | "outline";
5
+ size?: "sm" | "md" | "lg";
6
+ icon: LucideIcon;
7
+ "aria-label": string;
11
8
  }
12
- export declare const IconButton: import('react').ForwardRefExoticComponent<IconButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
13
- export {};
9
+ export declare const IconButton: ForwardRefExoticComponent<IconButtonProps & RefAttributes<HTMLButtonElement>>;