@camstack/ui-library 1.2.256 → 1.2.258

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/dist/composites/accelerator-label.d.ts +9 -9
  2. package/dist/composites/adaptive-downlink.d.ts +141 -143
  3. package/dist/composites/addon-global-settings-form.d.ts +73 -60
  4. package/dist/composites/addon-page-props.d.ts +34 -10
  5. package/dist/composites/agent-step-editor.d.ts +48 -47
  6. package/dist/composites/app-shell/app-shell.d.ts +17 -17
  7. package/dist/composites/app-shell/index.d.ts +3 -3
  8. package/dist/composites/app-shell/sidebar-item.d.ts +9 -8
  9. package/dist/composites/app-shell/sidebar.d.ts +10 -10
  10. package/dist/composites/audio-classification-list.d.ts +16 -15
  11. package/dist/composites/audio-level-waveform.d.ts +31 -30
  12. package/dist/composites/audio-waveform.d.ts +18 -17
  13. package/dist/composites/battery-badge.d.ts +27 -13
  14. package/dist/composites/breadcrumb.d.ts +21 -21
  15. package/dist/composites/camera-stream-player.d.ts +309 -309
  16. package/dist/composites/cap-settings/AutotrackSection.d.ts +19 -2
  17. package/dist/composites/cap-settings/CameraGridLayoutEditor.d.ts +24 -2
  18. package/dist/composites/cap-settings/ConsumablesPanel.d.ts +21 -2
  19. package/dist/composites/cap-settings/CoverageTrack.d.ts +21 -20
  20. package/dist/composites/cap-settings/EventBucketStrip.d.ts +21 -20
  21. package/dist/composites/cap-settings/EventHeatmap.d.ts +8 -7
  22. package/dist/composites/cap-settings/HomePresetPicker.d.ts +2 -2
  23. package/dist/composites/cap-settings/MaskShapeCanvas.d.ts +143 -41
  24. package/dist/composites/cap-settings/MotionZonesSettings.d.ts +41 -2
  25. package/dist/composites/cap-settings/NavigationPanel.d.ts +14 -2
  26. package/dist/composites/cap-settings/PrivacyMaskSettings.d.ts +3 -2
  27. package/dist/composites/cap-settings/PtzPanel.d.ts +15 -2
  28. package/dist/composites/cap-settings/RecordingBandsEditor.d.ts +33 -32
  29. package/dist/composites/cap-settings/RecordingPanel.d.ts +3 -2
  30. package/dist/composites/cap-settings/RecordingSettings.d.ts +11 -10
  31. package/dist/composites/cap-settings/RecordingTimeline.d.ts +3 -2
  32. package/dist/composites/cap-settings/SceneMonitorEditor.d.ts +3 -51
  33. package/dist/composites/cap-settings/SceneReferenceGallery.d.ts +62 -23
  34. package/dist/composites/cap-settings/SceneSettingsForm.d.ts +52 -16
  35. package/dist/composites/cap-settings/TimelineControls.d.ts +21 -20
  36. package/dist/composites/cap-settings/camera-grid-layout.d.ts +95 -95
  37. package/dist/composites/cap-settings/event-thumb.d.ts +9 -8
  38. package/dist/composites/cap-settings/index.d.ts +20 -20
  39. package/dist/composites/cap-settings/privacy-mask-audio.d.ts +47 -47
  40. package/dist/composites/cap-settings/recording-config-form.d.ts +25 -25
  41. package/dist/composites/cap-settings/recording-spans.d.ts +14 -14
  42. package/dist/composites/cap-settings/recording-timeline-model.d.ts +57 -57
  43. package/dist/composites/cap-settings/scene-monitor-copy.d.ts +58 -49
  44. package/dist/composites/client-network-sample.d.ts +41 -41
  45. package/dist/composites/clips/ClipBandBar.d.ts +44 -14
  46. package/dist/composites/clips/ClipPanel.d.ts +30 -6
  47. package/dist/composites/clips/ClipTile.d.ts +26 -5
  48. package/dist/composites/clips/ClipsSection.d.ts +107 -2
  49. package/dist/composites/clips/clip-band.d.ts +72 -38
  50. package/dist/composites/clips/clip-day-window.d.ts +7 -30
  51. package/dist/composites/clips/clip-source-state.d.ts +55 -26
  52. package/dist/composites/clips/clip-still-retry.d.ts +39 -39
  53. package/dist/composites/clips/clip-thumbnail-fetch.d.ts +9 -9
  54. package/dist/composites/clips/clip-tile-media.d.ts +64 -32
  55. package/dist/composites/clips/clip-view-state.d.ts +76 -46
  56. package/dist/composites/code-block.d.ts +5 -4
  57. package/dist/composites/config-form-builder.d.ts +14 -13
  58. package/dist/composites/config-form-field.d.ts +63 -62
  59. package/dist/composites/config-icon-field.d.ts +10 -9
  60. package/dist/composites/config-secret-field.d.ts +51 -27
  61. package/dist/composites/confirm-action-button.d.ts +52 -39
  62. package/dist/composites/confirm-dialog.d.ts +110 -48
  63. package/dist/composites/copy-button.d.ts +25 -19
  64. package/dist/composites/data-table/data-table-header.d.ts +8 -7
  65. package/dist/composites/data-table/data-table-pagination.d.ts +7 -6
  66. package/dist/composites/data-table/data-table-row.d.ts +8 -7
  67. package/dist/composites/data-table/data-table.d.ts +3 -2
  68. package/dist/composites/data-table/index.d.ts +2 -2
  69. package/dist/composites/data-table/types.d.ts +29 -29
  70. package/dist/composites/data-table-filter-bar.d.ts +30 -29
  71. package/dist/composites/data-table-filter.d.ts +34 -34
  72. package/dist/composites/data-table-layout.d.ts +24 -24
  73. package/dist/composites/data-table-pager.d.ts +5 -5
  74. package/dist/composites/data-table-pagination.d.ts +23 -23
  75. package/dist/composites/data-table-selection.d.ts +10 -10
  76. package/dist/composites/data-table.d.ts +167 -118
  77. package/dist/composites/detection-canvas.d.ts +34 -25
  78. package/dist/composites/detection-colors.d.ts +9 -9
  79. package/dist/composites/detection-overlay.d.ts +33 -32
  80. package/dist/composites/detection-result-tree.d.ts +22 -9
  81. package/dist/composites/dev-shell.d.ts +15 -14
  82. package/dist/composites/device-activity-panel.d.ts +37 -31
  83. package/dist/composites/device-card.d.ts +32 -32
  84. package/dist/composites/device-controls/ac-panel.d.ts +2 -2
  85. package/dist/composites/device-controls/alarm-hero-card.d.ts +42 -42
  86. package/dist/composites/device-controls/atoms.d.ts +50 -50
  87. package/dist/composites/device-controls/brightness-panel.d.ts +3 -3
  88. package/dist/composites/device-controls/button-control.d.ts +14 -14
  89. package/dist/composites/device-controls/climate-panel.d.ts +12 -12
  90. package/dist/composites/device-controls/container-primary-hero.d.ts +33 -16
  91. package/dist/composites/device-controls/container-primary.d.ts +68 -39
  92. package/dist/composites/device-controls/control-panel.d.ts +4 -4
  93. package/dist/composites/device-controls/control-registry.d.ts +81 -70
  94. package/dist/composites/device-controls/cover-hero-card.d.ts +26 -26
  95. package/dist/composites/device-controls/cover-inline.d.ts +20 -20
  96. package/dist/composites/device-controls/cover-panel.d.ts +2 -2
  97. package/dist/composites/device-controls/dummy-hero-card.d.ts +2 -2
  98. package/dist/composites/device-controls/fan-hero-card.d.ts +20 -20
  99. package/dist/composites/device-controls/fan-panel.d.ts +3 -3
  100. package/dist/composites/device-controls/humidifier-control.d.ts +46 -29
  101. package/dist/composites/device-controls/image-control.d.ts +41 -27
  102. package/dist/composites/device-controls/index.d.ts +34 -34
  103. package/dist/composites/device-controls/lawn-mower-control.d.ts +30 -16
  104. package/dist/composites/device-controls/light-hero-card.d.ts +15 -15
  105. package/dist/composites/device-controls/lock-hero-card.d.ts +14 -14
  106. package/dist/composites/device-controls/lock-panel.d.ts +3 -3
  107. package/dist/composites/device-controls/media-player-hero-card.d.ts +16 -16
  108. package/dist/composites/device-controls/media-player-panel.d.ts +7 -7
  109. package/dist/composites/device-controls/offline-badge.d.ts +23 -8
  110. package/dist/composites/device-controls/panel-controls.d.ts +39 -20
  111. package/dist/composites/device-controls/pet-feeder-panel.d.ts +27 -9
  112. package/dist/composites/device-controls/popover-row-action.d.ts +18 -6
  113. package/dist/composites/device-controls/primary-child-picker.d.ts +31 -15
  114. package/dist/composites/device-controls/primary-child.d.ts +14 -25
  115. package/dist/composites/device-controls/radial-gauge.d.ts +17 -17
  116. package/dist/composites/device-controls/script-automation-controls.d.ts +9 -9
  117. package/dist/composites/device-controls/sensor-hero-card.d.ts +26 -8
  118. package/dist/composites/device-controls/sensor-inline-control.d.ts +21 -9
  119. package/dist/composites/device-controls/sensor-value-atom.d.ts +97 -76
  120. package/dist/composites/device-controls/switch-hero-card.d.ts +11 -11
  121. package/dist/composites/device-controls/switch-panel.d.ts +2 -2
  122. package/dist/composites/device-controls/tap-toggle.d.ts +13 -13
  123. package/dist/composites/device-controls/thermostat-hero-card.d.ts +16 -16
  124. package/dist/composites/device-controls/types.d.ts +11 -11
  125. package/dist/composites/device-controls/update-control.d.ts +20 -7
  126. package/dist/composites/device-controls/vacuum-control.d.ts +41 -25
  127. package/dist/composites/device-controls/valve-control.d.ts +51 -35
  128. package/dist/composites/device-controls/water-heater-control.d.ts +48 -31
  129. package/dist/composites/device-controls/weather-control.d.ts +46 -28
  130. package/dist/composites/device-export-panel.d.ts +34 -34
  131. package/dist/composites/device-grid.d.ts +10 -10
  132. package/dist/composites/device-item/actions.d.ts +40 -18
  133. package/dist/composites/device-item/admin-link-quick-action.d.ts +66 -26
  134. package/dist/composites/device-item/child-layout.d.ts +43 -26
  135. package/dist/composites/device-item/child-section-accordion.d.ts +20 -6
  136. package/dist/composites/device-item/children-accordion.d.ts +11 -11
  137. package/dist/composites/device-item/container-children-context.d.ts +28 -11
  138. package/dist/composites/device-item/device-delete-action.d.ts +23 -5
  139. package/dist/composites/device-item/features.d.ts +33 -15
  140. package/dist/composites/device-item/header.d.ts +53 -31
  141. package/dist/composites/device-item/helpers.d.ts +291 -274
  142. package/dist/composites/device-item/index.d.ts +18 -9
  143. package/dist/composites/device-item/preview.d.ts +41 -21
  144. package/dist/composites/device-item/quick-detail-action.d.ts +4 -4
  145. package/dist/composites/device-item/reboot-quick-action.d.ts +28 -7
  146. package/dist/composites/device-item/role-display-defaults-context.d.ts +28 -12
  147. package/dist/composites/device-item/status-dot.d.ts +24 -6
  148. package/dist/composites/device-list/batch-actions-bar.d.ts +23 -12
  149. package/dist/composites/device-list/batch-toolbar.d.ts +13 -13
  150. package/dist/composites/device-list/columns.d.ts +108 -108
  151. package/dist/composites/device-list/device-integration.d.ts +48 -58
  152. package/dist/composites/device-list/device-mode.d.ts +121 -121
  153. package/dist/composites/device-list/empty-state.d.ts +14 -3
  154. package/dist/composites/device-list/filter-chips.d.ts +42 -29
  155. package/dist/composites/device-list/fuzzy-match.d.ts +22 -22
  156. package/dist/composites/device-list/generic-mode.d.ts +88 -88
  157. package/dist/composites/device-list/group.d.ts +62 -35
  158. package/dist/composites/device-list/hardware-cell.d.ts +14 -3
  159. package/dist/composites/device-list/hardware.d.ts +29 -11
  160. package/dist/composites/device-list/icon-action.d.ts +27 -15
  161. package/dist/composites/device-list/index.d.ts +46 -23
  162. package/dist/composites/device-list/multi-select.d.ts +17 -17
  163. package/dist/composites/device-list/page-size-select.d.ts +13 -7
  164. package/dist/composites/device-list/pagination.d.ts +19 -12
  165. package/dist/composites/device-list/sort.d.ts +28 -15
  166. package/dist/composites/device-list/sortable-header.d.ts +20 -7
  167. package/dist/composites/device-list/table-layout.d.ts +44 -44
  168. package/dist/composites/device-list/type-filter.d.ts +16 -16
  169. package/dist/composites/device-list/url-state.d.ts +35 -35
  170. package/dist/composites/device-meta.d.ts +43 -43
  171. package/dist/composites/device-picker/DevicePicker.d.ts +72 -33
  172. package/dist/composites/device-picker/SelectedChip.d.ts +10 -9
  173. package/dist/composites/device-picker/device-filter-bar.d.ts +19 -18
  174. package/dist/composites/device-picker/device-fleet-view.d.ts +11 -3
  175. package/dist/composites/device-picker/device-parent.d.ts +27 -27
  176. package/dist/composites/device-picker/device-picker-grouping.d.ts +3 -3
  177. package/dist/composites/device-picker/device-picker-model.d.ts +140 -140
  178. package/dist/composites/device-picker/device-selection-rows.d.ts +31 -24
  179. package/dist/composites/device-picker/device-selection.d.ts +43 -43
  180. package/dist/composites/device-picker/index.d.ts +9 -9
  181. package/dist/composites/device-select-field.d.ts +17 -16
  182. package/dist/composites/device-select-filter.d.ts +78 -78
  183. package/dist/composites/device-selector-picker.d.ts +25 -25
  184. package/dist/composites/device-step-matrix.d.ts +54 -28
  185. package/dist/composites/discovery-panel.d.ts +22 -22
  186. package/dist/composites/doorbell-recent-panel.d.ts +9 -8
  187. package/dist/composites/empty-state.d.ts +8 -8
  188. package/dist/composites/error-box.d.ts +32 -17
  189. package/dist/composites/event-kind-visuals.d.ts +29 -18
  190. package/dist/composites/event-stream.d.ts +59 -42
  191. package/dist/composites/extensions/AssociationSlotCard.d.ts +45 -24
  192. package/dist/composites/extensions/ExtensionsPanel.d.ts +41 -18
  193. package/dist/composites/extensions/extensions-view-state.d.ts +71 -53
  194. package/dist/composites/filter-bar.d.ts +22 -21
  195. package/dist/composites/form-field.d.ts +9 -9
  196. package/dist/composites/format-state-value.d.ts +23 -51
  197. package/dist/composites/grouped-model-selector.d.ts +7 -6
  198. package/dist/composites/hls-quality.d.ts +26 -26
  199. package/dist/composites/hls-video.d.ts +62 -39
  200. package/dist/composites/hover-zoom-image.d.ts +35 -16
  201. package/dist/composites/icon-picker.d.ts +86 -50
  202. package/dist/composites/image-selector.d.ts +21 -20
  203. package/dist/composites/index.d.ts +204 -204
  204. package/dist/composites/inference-config-selector.d.ts +36 -35
  205. package/dist/composites/kebab-menu.d.ts +53 -35
  206. package/dist/composites/key-value-list.d.ts +14 -14
  207. package/dist/composites/log-stream-scroll.d.ts +24 -24
  208. package/dist/composites/log-stream.d.ts +81 -70
  209. package/dist/composites/login-form.d.ts +7 -6
  210. package/dist/composites/model-bound-slider.d.ts +46 -26
  211. package/dist/composites/model-picker.d.ts +20 -19
  212. package/dist/composites/mount-addon-page.d.ts +12 -12
  213. package/dist/composites/network-link-badge.d.ts +7 -6
  214. package/dist/composites/node-picker.d.ts +14 -13
  215. package/dist/composites/notification-targets-field.d.ts +76 -58
  216. package/dist/composites/notification-targets-options.d.ts +9 -6
  217. package/dist/composites/option-select/OptionSelect.d.ts +23 -22
  218. package/dist/composites/option-select/index.d.ts +4 -4
  219. package/dist/composites/option-select/option-select-model.d.ts +35 -35
  220. package/dist/composites/page-header.d.ts +6 -6
  221. package/dist/composites/peer-connection-config.d.ts +9 -9
  222. package/dist/composites/phase-icon.d.ts +10 -3
  223. package/dist/composites/pipeline-builder.d.ts +21 -13
  224. package/dist/composites/pipeline-matrix-shared.d.ts +159 -150
  225. package/dist/composites/pipeline-runtime-selector.d.ts +12 -11
  226. package/dist/composites/pipeline-step.d.ts +39 -31
  227. package/dist/composites/placeholder-field/PlaceholderChipField.d.ts +23 -22
  228. package/dist/composites/placeholder-field/index.d.ts +1 -1
  229. package/dist/composites/provider-badge.d.ts +6 -5
  230. package/dist/composites/ptz-overlay.d.ts +38 -18
  231. package/dist/composites/qr-code.d.ts +24 -10
  232. package/dist/composites/reconnect-schedule.d.ts +22 -22
  233. package/dist/composites/resolve-step-default-model.d.ts +94 -94
  234. package/dist/composites/response-log.d.ts +7 -6
  235. package/dist/composites/root-model-source.d.ts +21 -10
  236. package/dist/composites/scope-picker.d.ts +49 -25
  237. package/dist/composites/section-card.d.ts +19 -11
  238. package/dist/composites/setting-row.d.ts +39 -21
  239. package/dist/composites/snapshot-button.d.ts +23 -19
  240. package/dist/composites/sort-header-button.d.ts +25 -8
  241. package/dist/composites/stat-card.d.ts +20 -8
  242. package/dist/composites/state-values-stream.d.ts +49 -24
  243. package/dist/composites/status-badge.d.ts +10 -8
  244. package/dist/composites/step-inspector/gate-control.d.ts +13 -12
  245. package/dist/composites/step-inspector/index.d.ts +8 -8
  246. package/dist/composites/step-inspector/layered-settings-form.d.ts +41 -30
  247. package/dist/composites/step-inspector/segmented-choice.d.ts +8 -7
  248. package/dist/composites/step-inspector/setting-values.d.ts +13 -8
  249. package/dist/composites/step-inspector/step-detail-dock.d.ts +39 -23
  250. package/dist/composites/step-inspector/step-inspector-panel.d.ts +34 -28
  251. package/dist/composites/step-inspector/step-model-row.d.ts +29 -24
  252. package/dist/composites/step-inspector/step-search.d.ts +11 -11
  253. package/dist/composites/step-timings.d.ts +7 -6
  254. package/dist/composites/step-tree.d.ts +17 -12
  255. package/dist/composites/stream-broker-selector.d.ts +29 -8
  256. package/dist/composites/stream-debug/stream-debug-overlay.d.ts +40 -40
  257. package/dist/composites/stream-debug/webrtc-debug-stats.d.ts +144 -129
  258. package/dist/composites/stream-panel.d.ts +212 -201
  259. package/dist/composites/table-sort.d.ts +61 -61
  260. package/dist/composites/timezone-selector.d.ts +15 -13
  261. package/dist/composites/training/send-frame-to-training.d.ts +5 -4
  262. package/dist/composites/training/training-collection-picker.d.ts +4 -3
  263. package/dist/composites/training/training-refusal-text.d.ts +6 -6
  264. package/dist/composites/unit-picker/UnitPicker.d.ts +19 -14
  265. package/dist/composites/unit-picker/index.d.ts +1 -1
  266. package/dist/composites/use-data-table-filter.d.ts +19 -19
  267. package/dist/composites/version-badge.d.ts +19 -18
  268. package/dist/composites/webrtc-diagnostics/EndpointTestCard.d.ts +7 -7
  269. package/dist/composites/webrtc-diagnostics/HubSessionTestCard.d.ts +14 -14
  270. package/dist/composites/webrtc-diagnostics/RunReport.d.ts +10 -5
  271. package/dist/composites/webrtc-diagnostics/endpoint-probe.d.ts +41 -21
  272. package/dist/composites/webrtc-diagnostics/endpoint-test.d.ts +37 -32
  273. package/dist/composites/webrtc-diagnostics/format.d.ts +3 -3
  274. package/dist/composites/webrtc-diagnostics/ice-candidates.d.ts +49 -49
  275. package/dist/composites/webrtc-diagnostics/nat-mapping.d.ts +36 -36
  276. package/dist/composites/webrtc-diagnostics/session-run.d.ts +108 -95
  277. package/dist/composites/webrtc-diagnostics/session-verdict.d.ts +29 -20
  278. package/dist/composites/widget-panel.d.ts +23 -23
  279. package/dist/composites/widget-slot.d.ts +35 -17
  280. package/dist/contexts/custom-field-renderers.d.ts +53 -17
  281. package/dist/contexts/device-context.d.ts +32 -12
  282. package/dist/contexts/device-quick-detail.d.ts +13 -4
  283. package/dist/contexts/player-overlays.d.ts +82 -42
  284. package/dist/contexts/recorded-playback.d.ts +40 -18
  285. package/dist/contexts/system-context.d.ts +28 -13
  286. package/dist/contexts/vod-playback.d.ts +39 -22
  287. package/dist/contexts/widget-registry.d.ts +139 -102
  288. package/dist/contexts/zone-editing.d.ts +69 -46
  289. package/dist/generated/system-hooks.d.ts +17 -1
  290. package/dist/hooks/index.d.ts +43 -43
  291. package/dist/hooks/turn-server-cache.d.ts +69 -69
  292. package/dist/hooks/use-capability-presence.d.ts +65 -28
  293. package/dist/hooks/use-cluster-nodes.d.ts +54 -27
  294. package/dist/hooks/use-device-autotrack.d.ts +7 -7
  295. package/dist/hooks/use-device-battery.d.ts +24 -11
  296. package/dist/hooks/use-device-cap-slice.d.ts +15 -15
  297. package/dist/hooks/use-device-capability.d.ts +61 -27
  298. package/dist/hooks/use-device-detections.d.ts +32 -32
  299. package/dist/hooks/use-device-features.d.ts +18 -18
  300. package/dist/hooks/use-device-list-page-size.d.ts +19 -6
  301. package/dist/hooks/use-device-network-link.d.ts +15 -7
  302. package/dist/hooks/use-device-proxy.d.ts +98 -92
  303. package/dist/hooks/use-device-snapshot.d.ts +23 -23
  304. package/dist/hooks/use-device-webrtc.d.ts +211 -205
  305. package/dist/hooks/use-devices.d.ts +9 -9
  306. package/dist/hooks/use-doorbell-events.d.ts +13 -13
  307. package/dist/hooks/use-event-stream.d.ts +6 -3
  308. package/dist/hooks/use-is-mobile.d.ts +5 -5
  309. package/dist/hooks/use-live-buffer.d.ts +5 -5
  310. package/dist/hooks/use-live-event.d.ts +1 -1
  311. package/dist/hooks/use-navigation.d.ts +20 -20
  312. package/dist/hooks/use-optimistic-slice.d.ts +13 -13
  313. package/dist/hooks/use-persisted-page-size.d.ts +10 -10
  314. package/dist/hooks/use-ptz.d.ts +108 -108
  315. package/dist/hooks/use-stationary-overlay.d.ts +37 -37
  316. package/dist/hooks/use-system-query.d.ts +33 -10
  317. package/dist/hooks/use-url-query.d.ts +3 -3
  318. package/dist/icons/index.d.ts +2 -2
  319. package/dist/icons/provider-icons.d.ts +2 -2
  320. package/dist/icons/status-icons.d.ts +2 -2
  321. package/dist/index.cjs +123 -69
  322. package/dist/index.d.ts +31 -27
  323. package/dist/index.js +123 -69
  324. package/dist/lib/cap-error.d.ts +18 -39
  325. package/dist/lib/cn.d.ts +1 -1
  326. package/dist/lib/fleet-query-defaults.d.ts +68 -34
  327. package/dist/lib/format-control-datetime.d.ts +16 -16
  328. package/dist/lib/format-duration.d.ts +12 -12
  329. package/dist/lib/format-last-seen.d.ts +5 -18
  330. package/dist/lib/format-numeric.d.ts +7 -7
  331. package/dist/lib/hub-mount.d.ts +8 -42
  332. package/dist/lib/index.d.ts +21 -21
  333. package/dist/lib/phase-config.d.ts +24 -11
  334. package/dist/lib/pipeline-mirror.d.ts +16 -16
  335. package/dist/lib/recorded-control-protocol.d.ts +41 -43
  336. package/dist/lib/resolve-sensor-display.d.ts +36 -20
  337. package/dist/lib/responsive.d.ts +54 -54
  338. package/dist/lib/scrub-controller.d.ts +75 -78
  339. package/dist/lib/shared-context.d.ts +27 -2
  340. package/dist/lib/tailwind-variants.d.ts +20 -20
  341. package/dist/primitives/badge.d.ts +5 -10
  342. package/dist/primitives/bottom-sheet.d.ts +7 -7
  343. package/dist/primitives/button.d.ts +5 -9
  344. package/dist/primitives/card.d.ts +4 -8
  345. package/dist/primitives/checkbox.d.ts +3 -4
  346. package/dist/primitives/collapsible-card.d.ts +23 -13
  347. package/dist/primitives/dialog.d.ts +33 -59
  348. package/dist/primitives/dropdown.d.ts +13 -13
  349. package/dist/primitives/floating-panel.d.ts +41 -20
  350. package/dist/primitives/icon-button.d.ts +8 -12
  351. package/dist/primitives/index.d.ts +22 -22
  352. package/dist/primitives/input.d.ts +6 -16
  353. package/dist/primitives/label.d.ts +3 -4
  354. package/dist/primitives/mobile-drawer.d.ts +8 -8
  355. package/dist/primitives/password-input.d.ts +18 -18
  356. package/dist/primitives/popover.d.ts +7 -7
  357. package/dist/primitives/scroll-area.d.ts +3 -4
  358. package/dist/primitives/select.d.ts +20 -20
  359. package/dist/primitives/separator.d.ts +4 -8
  360. package/dist/primitives/skeleton.d.ts +3 -4
  361. package/dist/primitives/switch.d.ts +6 -6
  362. package/dist/primitives/tabs.d.ts +26 -26
  363. package/dist/primitives/tooltip.d.ts +12 -12
  364. package/dist/theme/create-theme.d.ts +1 -1
  365. package/dist/theme/defaults.d.ts +1 -1
  366. package/dist/theme/index.d.ts +6 -6
  367. package/dist/theme/theme-provider.d.ts +8 -7
  368. package/dist/theme/theme-to-css.d.ts +1 -1
  369. package/dist/theme/types.d.ts +98 -100
  370. package/dist/theme/use-theme-mode.d.ts +1 -1
  371. package/dist/trpc-react.d.ts +23 -3
  372. package/dist/widgets/host-widgets.d.ts +4 -4
  373. package/package.json +8 -4
  374. package/src/tailwind/camstack-theme.css +11 -0
  375. package/dist/composites/unit-picker/UnitPicker.spec.d.ts +0 -1
@@ -1,53 +1,115 @@
1
- import { ReactNode } from 'react';
2
- export type DialogVariant = 'danger' | 'warning' | 'default';
1
+ /**
2
+ * The ONE modal dialog of the product — confirm, alert and prompt.
3
+ *
4
+ * ## Why all three live here
5
+ *
6
+ * The admin UI used to reach for `window.confirm` / `window.alert` /
7
+ * `window.prompt` wherever a `useConfirm()` call was inconvenient. A native
8
+ * dialog is wrong on three counts, and the operator hit the worst one on
9
+ * Identity → Users: resetting a password opened `window.prompt`, which
10
+ * **cannot mask its input**. A new password was typed in clear text, into a
11
+ * box the browser may offer to remember. On top of that a native dialog
12
+ * matches none of the product's visual language and the host can neither style
13
+ * nor test it.
14
+ *
15
+ * So the fix is not "a password modal" — a second dialog component is the
16
+ * defect, not the cure. The provider that already served every confirm in the
17
+ * admin UI (and in the viewer, which documents its own copy as "deliberately
18
+ * the same one `@camstack/ui-library` exposes to the admin UI") grew two more
19
+ * intents. One provider, one backdrop, one visual language, one set of
20
+ * keyboard rules.
21
+ *
22
+ * ## The three intents are NOT one control
23
+ *
24
+ * - `confirm` — a destructive yes/no. It names what is destroyed, and for the
25
+ * `danger` variant the destructive button is the NON-default: opening focus
26
+ * lands on Cancel, so a reflexive Enter cancels.
27
+ * - `alert` — an error/notice with a single acknowledge.
28
+ * - `prompt` — one text input with OK/Cancel. `inputType: 'password'` masks it
29
+ * (and opts out of autofill/remember); `readOnly` turns it into a readable,
30
+ * select-all-on-open field, which is the shape the copy-to-clipboard
31
+ * fallback needs — a password box would be actively wrong there.
32
+ *
33
+ * ## Why the surface is a native `<dialog>`
34
+ *
35
+ * These dialogs open OVER surfaces that are themselves native `<dialog>`s
36
+ * opened with `showModal()` — the event detail panel, the similar-groups
37
+ * modal. A `showModal()` dialog is promoted to the TOP LAYER and everything
38
+ * outside it is inert, so a plain `fixed inset-0` overlay rendered at the app
39
+ * root would be drawn behind that backdrop and could not be clicked at all.
40
+ * Confirming a track delete from the detail panel would have been impossible.
41
+ * So this surface is a `<dialog>` of its own: the top layer stacks, the newest
42
+ * `showModal()` wins, and the confirm sits above the panel that asked for it.
43
+ *
44
+ * jsdom implements `<dialog>` but not `showModal()`, so the open falls back to
45
+ * the `open` attribute there. Everything this component does — focus, keys,
46
+ * resolution — is identical on both paths; only the top-layer promotion, which
47
+ * jsdom cannot model at all, is missing. The fallback is asserted below.
48
+ *
49
+ * ## Focus, and why there is NO focus trap
50
+ *
51
+ * A `showModal()` dialog already scopes the tab ring to itself, and the
52
+ * surfaces underneath (`SlideOverPanel`) implement no trap of their own. A
53
+ * second, hand-rolled focus trap on top of that is how a page becomes
54
+ * unescapable, so this component deliberately does not trap. What it does do:
55
+ *
56
+ * - focuses the input (prompt) or the DEFAULT button on open,
57
+ * - restores focus to the previously focused element on close,
58
+ * - handles Escape/Enter from a `keydown` on the dialog itself and calls
59
+ * `stopPropagation()`. React attaches its listeners at the root container, so
60
+ * stopping there keeps the event from reaching the `window` Escape listener
61
+ * of whatever modal is underneath: one Escape closes ONE dialog.
62
+ */
63
+ import { type JSX, type ReactNode } from "react";
64
+ export type DialogVariant = "danger" | "warning" | "default";
3
65
  export interface ConfirmOptions {
4
- readonly title: string;
5
- readonly message: string;
6
- readonly confirmLabel?: string;
7
- readonly cancelLabel?: string;
8
- readonly variant?: DialogVariant;
66
+ readonly title: string;
67
+ readonly message: string;
68
+ readonly confirmLabel?: string;
69
+ readonly cancelLabel?: string;
70
+ readonly variant?: DialogVariant;
9
71
  }
10
72
  export interface AlertOptions {
11
- readonly title: string;
12
- readonly message: string;
13
- readonly acknowledgeLabel?: string;
14
- readonly variant?: DialogVariant;
73
+ readonly title: string;
74
+ readonly message: string;
75
+ readonly acknowledgeLabel?: string;
76
+ readonly variant?: DialogVariant;
15
77
  }
16
- export type PromptInputType = 'text' | 'password';
78
+ export type PromptInputType = "text" | "password";
17
79
  export interface PromptOptions {
18
- readonly title: string;
19
- /** Explanatory paragraph above the field. */
20
- readonly message?: string;
21
- /** Label rendered against the input. Defaults to the title. */
22
- readonly label?: string;
23
- readonly defaultValue?: string;
24
- /** `password` masks the value and opts out of autofill/remember. */
25
- readonly inputType?: PromptInputType;
26
- readonly placeholder?: string;
27
- readonly confirmLabel?: string;
28
- readonly cancelLabel?: string;
29
- /**
30
- * A field the operator reads/copies rather than edits (the clipboard
31
- * fallback). Rendered unmasked, selected on open, with no validation.
32
- */
33
- readonly readOnly?: boolean;
34
- /**
35
- * Returns an error message to REFUSE the value and keep the dialog open, or
36
- * `null` to accept. Runs on submit — the dialog is the validation surface, so
37
- * a refusal never needs a second `alert`.
38
- */
39
- readonly validate?: (value: string) => string | null;
40
- /**
41
- * `danger` paints the affirmative button as destructive — a typed
42
- * confirmation ("type 17 to revoke 17 links") is a prompt whose OK destroys.
43
- * Focus still opens on the field. Default: `default`.
44
- */
45
- readonly variant?: DialogVariant;
80
+ readonly title: string;
81
+ /** Explanatory paragraph above the field. */
82
+ readonly message?: string;
83
+ /** Label rendered against the input. Defaults to the title. */
84
+ readonly label?: string;
85
+ readonly defaultValue?: string;
86
+ /** `password` masks the value and opts out of autofill/remember. */
87
+ readonly inputType?: PromptInputType;
88
+ readonly placeholder?: string;
89
+ readonly confirmLabel?: string;
90
+ readonly cancelLabel?: string;
91
+ /**
92
+ * A field the operator reads/copies rather than edits (the clipboard
93
+ * fallback). Rendered unmasked, selected on open, with no validation.
94
+ */
95
+ readonly readOnly?: boolean;
96
+ /**
97
+ * Returns an error message to REFUSE the value and keep the dialog open, or
98
+ * `null` to accept. Runs on submit — the dialog is the validation surface, so
99
+ * a refusal never needs a second `alert`.
100
+ */
101
+ readonly validate?: (value: string) => string | null;
102
+ /**
103
+ * `danger` paints the affirmative button as destructive — a typed
104
+ * confirmation ("type 17 to revoke 17 links") is a prompt whose OK destroys.
105
+ * Focus still opens on the field. Default: `default`.
106
+ */
107
+ readonly variant?: DialogVariant;
46
108
  }
47
109
  export interface DialogContextValue {
48
- readonly confirm: (options: ConfirmOptions) => Promise<boolean>;
49
- readonly alert: (options: AlertOptions) => Promise<void>;
50
- readonly prompt: (options: PromptOptions) => Promise<string | null>;
110
+ readonly confirm: (options: ConfirmOptions) => Promise<boolean>;
111
+ readonly alert: (options: AlertOptions) => Promise<void>;
112
+ readonly prompt: (options: PromptOptions) => Promise<string | null>;
51
113
  }
52
114
  export declare function useConfirm(): (options: ConfirmOptions) => Promise<boolean>;
53
115
  /** An error/notice with a single acknowledge. Replaces `window.alert`. */
@@ -55,10 +117,10 @@ export declare function useAlert(): (options: AlertOptions) => Promise<void>;
55
117
  /** One text input with OK/Cancel. Replaces `window.prompt`. */
56
118
  export declare function usePrompt(): (options: PromptOptions) => Promise<string | null>;
57
119
  export declare function ConfirmDialogProvider({ children }: {
58
- children: ReactNode;
59
- }): import("react").JSX.Element;
120
+ children: ReactNode;
121
+ }): JSX.Element;
60
122
  /**
61
- * Promotes `el` to the top layer. jsdom has `<dialog>` but no `showModal`, so
62
- * the attribute is the fallback — see the file docblock.
63
- */
123
+ * Promotes `el` to the top layer. jsdom has `<dialog>` but no `showModal`, so
124
+ * the attribute is the fallback — see the file docblock.
125
+ */
64
126
  export declare function openTopLayer(el: HTMLDialogElement): void;
@@ -1,21 +1,27 @@
1
- import { ReactElement } from 'react';
1
+ /**
2
+ * `CopyButton` — a compact button that copies a string `value` to the
3
+ * clipboard via `navigator.clipboard.writeText`, showing a brief
4
+ * "copied" check state. Addon-agnostic; used wherever a secret / URL
5
+ * needs a one-click copy affordance (export setup panels, etc.).
6
+ */
7
+ import { type ReactElement } from "react";
2
8
  export interface CopyButtonProps {
3
- /** String copied to the clipboard when the button is pressed. */
4
- readonly value: string;
5
- /** Optional visible label rendered next to the icon. Icon-only when omitted.
6
- *
7
- * Do NOT pass the name of the field the button sits next to: the row
8
- * already shows it, and the repeat is what overlapped the value on a phone
9
- * (a token row rendered its own name on top of the masked secret). Use
10
- * {@link CopyButtonProps.srLabel} for that — it names the target for screen
11
- * readers without spending horizontal space. */
12
- readonly label?: string;
13
- /** Names what is copied, for assistive tech only — never rendered. Falls back
14
- * to `label`, then to a generic word. */
15
- readonly srLabel?: string;
16
- /** Extra classes merged onto the button. */
17
- readonly className?: string;
18
- /** Disable the button (e.g. nothing to copy). */
19
- readonly disabled?: boolean;
9
+ /** String copied to the clipboard when the button is pressed. */
10
+ readonly value: string;
11
+ /** Optional visible label rendered next to the icon. Icon-only when omitted.
12
+ *
13
+ * Do NOT pass the name of the field the button sits next to: the row
14
+ * already shows it, and the repeat is what overlapped the value on a phone
15
+ * (a token row rendered its own name on top of the masked secret). Use
16
+ * {@link CopyButtonProps.srLabel} for that — it names the target for screen
17
+ * readers without spending horizontal space. */
18
+ readonly label?: string;
19
+ /** Names what is copied, for assistive tech only — never rendered. Falls back
20
+ * to `label`, then to a generic word. */
21
+ readonly srLabel?: string;
22
+ /** Extra classes merged onto the button. */
23
+ readonly className?: string;
24
+ /** Disable the button (e.g. nothing to copy). */
25
+ readonly disabled?: boolean;
20
26
  }
21
- export declare function CopyButton({ value, label, srLabel, className, disabled, }: CopyButtonProps): ReactElement;
27
+ export declare function CopyButton({ value, label, srLabel, className, disabled }: CopyButtonProps): ReactElement;
@@ -1,10 +1,11 @@
1
- import { HeaderGroup, flexRender } from '@tanstack/react-table';
2
- import { SortingState } from './types';
1
+ import type { HeaderGroup, flexRender } from "@tanstack/react-table";
2
+ import type { SortingState } from "./types";
3
+ import { type JSX } from "react";
3
4
  interface DataTableHeaderProps<T> {
4
- headerGroups: HeaderGroup<T>[];
5
- onSortingChange?: (sorting: SortingState) => void;
6
- stickyHeader?: boolean;
7
- flexRender: typeof flexRender;
5
+ headerGroups: HeaderGroup<T>[];
6
+ onSortingChange?: (sorting: SortingState) => void;
7
+ stickyHeader?: boolean;
8
+ flexRender: typeof flexRender;
8
9
  }
9
- export declare function DataTableHeader<T>({ headerGroups, onSortingChange, stickyHeader, flexRender: render, }: DataTableHeaderProps<T>): import("react").JSX.Element;
10
+ export declare function DataTableHeader<T>({ headerGroups, onSortingChange, stickyHeader, flexRender: render }: DataTableHeaderProps<T>): JSX.Element;
10
11
  export {};
@@ -1,9 +1,10 @@
1
- import { PaginationState } from './types';
1
+ import type { PaginationState } from "./types";
2
+ import { type JSX } from "react";
2
3
  interface DataTablePaginationProps {
3
- page: number;
4
- pageSize: number;
5
- total: number;
6
- onPaginationChange?: (pagination: PaginationState) => void;
4
+ page: number;
5
+ pageSize: number;
6
+ total: number;
7
+ onPaginationChange?: (pagination: PaginationState) => void;
7
8
  }
8
- export declare function DataTablePagination({ page, pageSize, total, onPaginationChange, }: DataTablePaginationProps): import("react").JSX.Element;
9
+ export declare function DataTablePagination({ page, pageSize, total, onPaginationChange }: DataTablePaginationProps): JSX.Element;
9
10
  export {};
@@ -1,10 +1,11 @@
1
- import { Row, flexRender } from '@tanstack/react-table';
2
- import { DataTableAction } from './types';
1
+ import type { Row, flexRender } from "@tanstack/react-table";
2
+ import type { JSX } from "react";
3
+ import type { DataTableAction } from "./types";
3
4
  interface DataTableRowProps<T> {
4
- row: Row<T>;
5
- onRowClick?: (row: T) => void;
6
- rowActions?: (row: T) => DataTableAction[];
7
- flexRender: typeof flexRender;
5
+ row: Row<T>;
6
+ onRowClick?: (row: T) => void;
7
+ rowActions?: (row: T) => DataTableAction[];
8
+ flexRender: typeof flexRender;
8
9
  }
9
- export declare function DataTableRow<T>({ row, onRowClick, rowActions, flexRender: render, }: DataTableRowProps<T>): import("react").JSX.Element;
10
+ export declare function DataTableRow<T>({ row, onRowClick, rowActions, flexRender: render }: DataTableRowProps<T>): JSX.Element;
10
11
  export {};
@@ -1,2 +1,3 @@
1
- import { DataTableProps } from './types';
2
- export declare function DataTable<T>({ data, columns: userColumns, sorting, onSortingChange, filtering, onFilteringChange, pagination, onPaginationChange, loading, emptyState, rowActions, onRowClick, selectable, compact, stickyHeader, className, mobileMode, }: DataTableProps<T>): import("react").JSX.Element;
1
+ import { type JSX } from "react";
2
+ import type { DataTableProps } from "./types";
3
+ export declare function DataTable<T>({ data, columns: userColumns, sorting, onSortingChange, filtering, onFilteringChange, pagination, onPaginationChange, loading, emptyState, rowActions, onRowClick, selectable, compact, stickyHeader, className, mobileMode }: DataTableProps<T>): JSX.Element;
@@ -1,2 +1,2 @@
1
- export { DataTable } from './data-table';
2
- export type { DataTableProps, ColumnDef, SortingState, ColumnFiltersState, PaginationState, DataTableAction, } from './types';
1
+ export { DataTable } from "./data-table";
2
+ export type { DataTableProps, ColumnDef, SortingState, ColumnFiltersState, PaginationState, DataTableAction } from "./types";
@@ -1,34 +1,34 @@
1
- import { ColumnDef, SortingState, ColumnFiltersState, PaginationState } from '@tanstack/react-table';
2
- import { ReactNode } from 'react';
3
- import { LucideIcon } from 'lucide-react';
1
+ import type { ColumnDef, SortingState, ColumnFiltersState, PaginationState } from "@tanstack/react-table";
2
+ import type { ReactNode } from "react";
3
+ import type { LucideIcon } from "lucide-react";
4
4
  export type { ColumnDef, SortingState, ColumnFiltersState, PaginationState };
5
5
  export interface DataTableAction {
6
- label: string;
7
- icon?: LucideIcon;
8
- onClick: () => void;
9
- variant?: 'danger' | 'default';
6
+ label: string;
7
+ icon?: LucideIcon;
8
+ onClick: () => void;
9
+ variant?: "danger" | "default";
10
10
  }
11
11
  export interface DataTableProps<T> {
12
- data: T[];
13
- columns: ColumnDef<T, unknown>[];
14
- sorting?: SortingState;
15
- onSortingChange?: (sorting: SortingState) => void;
16
- filtering?: ColumnFiltersState;
17
- onFilteringChange?: (filtering: ColumnFiltersState) => void;
18
- pagination?: {
19
- page: number;
20
- pageSize: number;
21
- total: number;
22
- };
23
- onPaginationChange?: (pagination: PaginationState) => void;
24
- loading?: boolean;
25
- emptyState?: ReactNode;
26
- rowActions?: (row: T) => DataTableAction[];
27
- onRowClick?: (row: T) => void;
28
- selectable?: boolean;
29
- compact?: boolean;
30
- stickyHeader?: boolean;
31
- className?: string;
32
- /** How to render on mobile. 'scroll' keeps table with horizontal scroll. 'cards' renders each row as a card. Default: 'scroll' */
33
- mobileMode?: 'scroll' | 'cards';
12
+ data: T[];
13
+ columns: ColumnDef<T, unknown>[];
14
+ sorting?: SortingState;
15
+ onSortingChange?: (sorting: SortingState) => void;
16
+ filtering?: ColumnFiltersState;
17
+ onFilteringChange?: (filtering: ColumnFiltersState) => void;
18
+ pagination?: {
19
+ page: number;
20
+ pageSize: number;
21
+ total: number;
22
+ };
23
+ onPaginationChange?: (pagination: PaginationState) => void;
24
+ loading?: boolean;
25
+ emptyState?: ReactNode;
26
+ rowActions?: (row: T) => DataTableAction[];
27
+ onRowClick?: (row: T) => void;
28
+ selectable?: boolean;
29
+ compact?: boolean;
30
+ stickyHeader?: boolean;
31
+ className?: string;
32
+ /** How to render on mobile. 'scroll' keeps table with horizontal scroll. 'cards' renders each row as a card. Default: 'scroll' */
33
+ mobileMode?: "scroll" | "cards";
34
34
  }
@@ -1,36 +1,37 @@
1
- import { DataTableFacet, DataTableFilterState } from './data-table-filter';
1
+ import type { JSX } from "react";
2
+ import { type DataTableFacet, type DataTableFilterState } from "./data-table-filter";
2
3
  /** One facet group as the bar draws it. */
3
4
  export interface DataTableFilterBarGroup {
4
- readonly id: string;
5
- /** Visible caption AND the chip group's accessible name ("Status"). */
6
- readonly label: string;
7
- readonly facets: readonly DataTableFacet[];
8
- readonly selected: readonly string[];
9
- /** Render a chip's caption. Default: the raw value. */
10
- readonly facetLabel?: (value: string) => string;
5
+ readonly id: string;
6
+ /** Visible caption AND the chip group's accessible name ("Status"). */
7
+ readonly label: string;
8
+ readonly facets: readonly DataTableFacet[];
9
+ readonly selected: readonly string[];
10
+ /** Render a chip's caption. Default: the raw value. */
11
+ readonly facetLabel?: (value: string) => string;
11
12
  }
12
13
  export interface DataTableFilterBarLabels {
13
- /** Placeholder of the search box. */
14
- readonly searchPlaceholder: string;
15
- /** Accessible name of the search box — say WHICH table, two of them on one
16
- * page are otherwise indistinguishable to a screen reader. */
17
- readonly searchLabel: string;
18
- /** Accessible name of the chip group. */
19
- readonly facetsLabel: string;
20
- /** The clear-filters button. */
21
- readonly clearLabel: string;
14
+ /** Placeholder of the search box. */
15
+ readonly searchPlaceholder: string;
16
+ /** Accessible name of the search box — say WHICH table, two of them on one
17
+ * page are otherwise indistinguishable to a screen reader. */
18
+ readonly searchLabel: string;
19
+ /** Accessible name of the chip group. */
20
+ readonly facetsLabel: string;
21
+ /** The clear-filters button. */
22
+ readonly clearLabel: string;
22
23
  }
23
24
  export interface DataTableFilterBarProps {
24
- readonly state: DataTableFilterState;
25
- readonly facets: readonly DataTableFacet[];
26
- readonly labels: DataTableFilterBarLabels;
27
- readonly onSearch: (search: string) => void;
28
- readonly onToggleFacet: (value: string) => void;
29
- readonly onClear: () => void;
30
- /** Render a chip's caption. Default: the raw value. */
31
- readonly facetLabel?: (value: string) => string;
32
- /** Further chip rows (status, owner, kind…), each its own group. */
33
- readonly groups?: readonly DataTableFilterBarGroup[];
34
- readonly onToggleGroupFacet?: (groupId: string, value: string) => void;
25
+ readonly state: DataTableFilterState;
26
+ readonly facets: readonly DataTableFacet[];
27
+ readonly labels: DataTableFilterBarLabels;
28
+ readonly onSearch: (search: string) => void;
29
+ readonly onToggleFacet: (value: string) => void;
30
+ readonly onClear: () => void;
31
+ /** Render a chip's caption. Default: the raw value. */
32
+ readonly facetLabel?: (value: string) => string;
33
+ /** Further chip rows (status, owner, kind…), each its own group. */
34
+ readonly groups?: readonly DataTableFilterBarGroup[];
35
+ readonly onToggleGroupFacet?: (groupId: string, value: string) => void;
35
36
  }
36
- export declare function DataTableFilterBar({ state, facets, labels, onSearch, onToggleFacet, onClear, facetLabel, groups, onToggleGroupFacet, }: DataTableFilterBarProps): import("react").JSX.Element;
37
+ export declare function DataTableFilterBar({ state, facets, labels, onSearch, onToggleFacet, onClear, facetLabel, groups, onToggleGroupFacet }: DataTableFilterBarProps): JSX.Element;
@@ -1,47 +1,47 @@
1
1
  export interface DataTableFilterState {
2
- /** Case- and separator-insensitive substring, see `fuzzyMatch`. */
3
- readonly search: string;
4
- /** Selected facet values. Empty = every row. */
5
- readonly facets: readonly string[];
6
- /**
7
- * Selected chips per facet GROUP (`facetGroups[].id` → values). OR inside a
8
- * group, AND across groups. Absent or empty = the group does not filter.
9
- */
10
- readonly groups?: Readonly<Record<string, readonly string[]>>;
2
+ /** Case- and separator-insensitive substring, see `fuzzyMatch`. */
3
+ readonly search: string;
4
+ /** Selected facet values. Empty = every row. */
5
+ readonly facets: readonly string[];
6
+ /**
7
+ * Selected chips per facet GROUP (`facetGroups[].id` → values). OR inside a
8
+ * group, AND across groups. Absent or empty = the group does not filter.
9
+ */
10
+ readonly groups?: Readonly<Record<string, readonly string[]>>;
11
11
  }
12
12
  export declare const EMPTY_DATA_TABLE_FILTER: DataTableFilterState;
13
13
  /** One independent chip row — status, owner, kind… */
14
14
  export interface DataTableFacetGroupConfig<T> {
15
- /** Stable id; the key of `DataTableFilterState.groups`. */
16
- readonly id: string;
17
- /** The value this row contributes to THIS group's chips. */
18
- readonly value: (row: T) => string;
15
+ /** Stable id; the key of `DataTableFilterState.groups`. */
16
+ readonly id: string;
17
+ /** The value this row contributes to THIS group's chips. */
18
+ readonly value: (row: T) => string;
19
19
  }
20
20
  /** A group's chips, derived from the rows. */
21
21
  export interface DataTableFacetGroup {
22
- readonly id: string;
23
- readonly facets: readonly DataTableFacet[];
22
+ readonly id: string;
23
+ readonly facets: readonly DataTableFacet[];
24
24
  }
25
25
  /** One facet chip, with how many of the rows carry it. */
26
26
  export interface DataTableFacet {
27
- readonly value: string;
28
- readonly count: number;
27
+ readonly value: string;
28
+ readonly count: number;
29
29
  }
30
30
  export interface DataTableFilterConfig<T> {
31
- /** Every text the search is matched against for this row — a name, and
32
- * whatever else an operator would type to find it (a nested accessory's
33
- * name, an id). */
34
- readonly searchText: (row: T) => readonly string[];
35
- /** The value this row contributes to the facet chips. Omit for a table
36
- * with a search box only. */
37
- readonly facetValue?: (row: T) => string;
38
- /** Further chip rows, each filtering on its own dimension. */
39
- readonly facetGroups?: readonly DataTableFacetGroupConfig<T>[];
31
+ /** Every text the search is matched against for this row — a name, and
32
+ * whatever else an operator would type to find it (a nested accessory's
33
+ * name, an id). */
34
+ readonly searchText: (row: T) => readonly string[];
35
+ /** The value this row contributes to the facet chips. Omit for a table
36
+ * with a search box only. */
37
+ readonly facetValue?: (row: T) => string;
38
+ /** Further chip rows, each filtering on its own dimension. */
39
+ readonly facetGroups?: readonly DataTableFacetGroupConfig<T>[];
40
40
  }
41
41
  /**
42
- * The facet chips for these rows: one per distinct value, most common first,
43
- * ties by value.
44
- */
42
+ * The facet chips for these rows: one per distinct value, most common first,
43
+ * ties by value.
44
+ */
45
45
  export declare function dataTableFacets<T>(rows: readonly T[], facetValue: ((row: T) => string) | undefined): readonly DataTableFacet[];
46
46
  /** One chip row per configured group, each derived like {@link dataTableFacets}. */
47
47
  export declare function dataTableFacetGroups<T>(rows: readonly T[], groups: readonly DataTableFacetGroupConfig<T>[] | undefined): readonly DataTableFacetGroup[];
@@ -51,9 +51,9 @@ export declare function toggleDataTableGroupFacet(state: DataTableFilterState, g
51
51
  /** A new state with `value` added to, or removed from, the selected facets. */
52
52
  export declare function toggleDataTableFacet(state: DataTableFilterState, value: string): DataTableFilterState;
53
53
  /**
54
- * The rows that survive the filter, in their incoming order.
55
- *
56
- * A selected facet that none of `rows` carries is dropped from the effective
57
- * selection (see the header), so a chip that is not on screen never filters.
58
- */
54
+ * The rows that survive the filter, in their incoming order.
55
+ *
56
+ * A selected facet that none of `rows` carries is dropped from the effective
57
+ * selection (see the header), so a chip that is not on screen never filters.
58
+ */
59
59
  export declare function filterDataTableRows<T>(rows: readonly T[], state: DataTableFilterState, config: DataTableFilterConfig<T>): readonly T[];
@@ -1,31 +1,31 @@
1
1
  /**
2
- * The one decision a shared table has to make on a phone.
3
- *
4
- * A wide table has no good phone rendering. There are exactly two honest
5
- * answers — become a list of cards, or scroll horizontally INSIDE its own
6
- * container while the page body never moves sideways — and shrinking the font
7
- * is not one of them. `DataTable` supports both; this module decides which, so
8
- * the choice is a pure, testable rule instead of per-page CSS.
9
- *
10
- * The default is a table that scrolls horizontally inside its own container.
11
- * Cards exist as an explicit `mobileMode="cards"` opt-in. `auto` still
12
- * applies a column-count rule for surfaces that want the old behaviour.
13
- *
14
- * Pass an explicit `mobileMode` to override per table.
15
- */
2
+ * The one decision a shared table has to make on a phone.
3
+ *
4
+ * A wide table has no good phone rendering. There are exactly two honest
5
+ * answers — become a list of cards, or scroll horizontally INSIDE its own
6
+ * container while the page body never moves sideways — and shrinking the font
7
+ * is not one of them. `DataTable` supports both; this module decides which, so
8
+ * the choice is a pure, testable rule instead of per-page CSS.
9
+ *
10
+ * The default is a table that scrolls horizontally inside its own container.
11
+ * Cards exist as an explicit `mobileMode="cards"` opt-in. `auto` still
12
+ * applies a column-count rule for surfaces that want the old behaviour.
13
+ *
14
+ * Pass an explicit `mobileMode` to override per table.
15
+ */
16
16
  /** Per-table override. `auto` applies the column-count rule below. */
17
- export type TableMobileMode = 'auto' | 'scroll' | 'cards';
17
+ export type TableMobileMode = "auto" | "scroll" | "cards";
18
18
  /** How the table renders once the decision is made. */
19
- export type TableLayoutKind = 'table' | 'cards';
19
+ export type TableLayoutKind = "table" | "cards";
20
20
  /**
21
- * At this many columns and above, `auto` switches a narrow viewport to cards.
22
- * Three columns still fit a phone at a readable size; four do not.
23
- */
21
+ * At this many columns and above, `auto` switches a narrow viewport to cards.
22
+ * Three columns still fit a phone at a readable size; four do not.
23
+ */
24
24
  export declare const CARD_MODE_MIN_COLUMNS = 4;
25
25
  export interface ResolveTableLayoutInput {
26
- readonly mode: TableMobileMode;
27
- readonly columnCount: number;
28
- /** Viewport below the card breakpoint (`useIsMobile`). */
29
- readonly isNarrow: boolean;
26
+ readonly mode: TableMobileMode;
27
+ readonly columnCount: number;
28
+ /** Viewport below the card breakpoint (`useIsMobile`). */
29
+ readonly isNarrow: boolean;
30
30
  }
31
- export declare function resolveTableLayout({ mode, columnCount, isNarrow, }: ResolveTableLayoutInput): TableLayoutKind;
31
+ export declare function resolveTableLayout({ mode, columnCount, isNarrow }: ResolveTableLayoutInput): TableLayoutKind;
@@ -1,8 +1,8 @@
1
- import { ReactNode } from 'react';
2
- import { DataTablePage, DataTablePaginationLabels } from './data-table-pagination';
1
+ import type { ReactNode } from "react";
2
+ import type { DataTablePage, DataTablePaginationLabels } from "./data-table-pagination";
3
3
  export interface DataTablePagerProps {
4
- readonly page: DataTablePage<unknown>;
5
- readonly labels: DataTablePaginationLabels;
6
- readonly onPageChange: (page: number) => void;
4
+ readonly page: DataTablePage<unknown>;
5
+ readonly labels: DataTablePaginationLabels;
6
+ readonly onPageChange: (page: number) => void;
7
7
  }
8
8
  export declare function DataTablePager({ page, labels, onPageChange }: DataTablePagerProps): ReactNode;