@seamapi/react 2.5.1 → 2.7.0

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 (250) hide show
  1. package/README.md +1 -1
  2. package/dist/elements.js +10929 -10622
  3. package/dist/elements.js.map +1 -1
  4. package/lib/dates.js.map +1 -1
  5. package/lib/icons/AccessCodeKey.js +1 -1
  6. package/lib/icons/AccessCodeKey.js.map +1 -1
  7. package/lib/icons/Add.js +1 -1
  8. package/lib/icons/Add.js.map +1 -1
  9. package/lib/icons/ArrowBack.js +1 -1
  10. package/lib/icons/ArrowBack.js.map +1 -1
  11. package/lib/icons/ArrowRestart.js +1 -1
  12. package/lib/icons/ArrowRestart.js.map +1 -1
  13. package/lib/icons/ArrowRight.js +1 -1
  14. package/lib/icons/ArrowRight.js.map +1 -1
  15. package/lib/icons/BatteryLevelCritical.js +1 -1
  16. package/lib/icons/BatteryLevelCritical.js.map +1 -1
  17. package/lib/icons/BatteryLevelFull.js +1 -1
  18. package/lib/icons/BatteryLevelFull.js.map +1 -1
  19. package/lib/icons/BatteryLevelHigh.js +1 -1
  20. package/lib/icons/BatteryLevelHigh.js.map +1 -1
  21. package/lib/icons/BatteryLevelLow.js +1 -1
  22. package/lib/icons/BatteryLevelLow.js.map +1 -1
  23. package/lib/icons/BatteryLevelWired.js +1 -1
  24. package/lib/icons/BatteryLevelWired.js.map +1 -1
  25. package/lib/icons/Bee.js +1 -1
  26. package/lib/icons/Bee.js.map +1 -1
  27. package/lib/icons/Check.js +1 -1
  28. package/lib/icons/Check.js.map +1 -1
  29. package/lib/icons/CheckBlack.js +1 -1
  30. package/lib/icons/CheckBlack.js.map +1 -1
  31. package/lib/icons/CheckGreen.js +1 -1
  32. package/lib/icons/CheckGreen.js.map +1 -1
  33. package/lib/icons/CheckboxBlank.js +1 -1
  34. package/lib/icons/CheckboxBlank.js.map +1 -1
  35. package/lib/icons/CheckboxFilled.js +1 -1
  36. package/lib/icons/CheckboxFilled.js.map +1 -1
  37. package/lib/icons/ChevronDown.js +1 -1
  38. package/lib/icons/ChevronDown.js.map +1 -1
  39. package/lib/icons/ChevronRight.js +1 -1
  40. package/lib/icons/ChevronRight.js.map +1 -1
  41. package/lib/icons/ChevronWide.js +1 -1
  42. package/lib/icons/ChevronWide.js.map +1 -1
  43. package/lib/icons/ClimateSettingSchedule.js +1 -1
  44. package/lib/icons/ClimateSettingSchedule.js.map +1 -1
  45. package/lib/icons/Close.js +1 -1
  46. package/lib/icons/Close.js.map +1 -1
  47. package/lib/icons/CloseWhite.js +1 -1
  48. package/lib/icons/CloseWhite.js.map +1 -1
  49. package/lib/icons/Copy.js +1 -1
  50. package/lib/icons/Copy.js.map +1 -1
  51. package/lib/icons/DotsEllipsisMore.js +1 -1
  52. package/lib/icons/DotsEllipsisMore.js.map +1 -1
  53. package/lib/icons/Edit.js +1 -1
  54. package/lib/icons/Edit.js.map +1 -1
  55. package/lib/icons/ExclamationCircle.js +1 -1
  56. package/lib/icons/ExclamationCircle.js.map +1 -1
  57. package/lib/icons/ExclamationCircleOutline.js +1 -1
  58. package/lib/icons/ExclamationCircleOutline.js.map +1 -1
  59. package/lib/icons/Fan.js +1 -1
  60. package/lib/icons/Fan.js.map +1 -1
  61. package/lib/icons/FanOutline.js +1 -1
  62. package/lib/icons/FanOutline.js.map +1 -1
  63. package/lib/icons/Info.js +1 -1
  64. package/lib/icons/Info.js.map +1 -1
  65. package/lib/icons/InfoDark.js +1 -1
  66. package/lib/icons/InfoDark.js.map +1 -1
  67. package/lib/icons/LockLocked.js +1 -1
  68. package/lib/icons/LockLocked.js.map +1 -1
  69. package/lib/icons/LockUnlocked.js +1 -1
  70. package/lib/icons/LockUnlocked.js.map +1 -1
  71. package/lib/icons/Off.js +1 -1
  72. package/lib/icons/Off.js.map +1 -1
  73. package/lib/icons/OnlineStatusAccountOffline.js +1 -1
  74. package/lib/icons/OnlineStatusAccountOffline.js.map +1 -1
  75. package/lib/icons/OnlineStatusDeviceOffline.js +1 -1
  76. package/lib/icons/OnlineStatusDeviceOffline.js.map +1 -1
  77. package/lib/icons/OnlineStatusOnline.js +1 -1
  78. package/lib/icons/OnlineStatusOnline.js.map +1 -1
  79. package/lib/icons/RadioChecked.js +1 -1
  80. package/lib/icons/RadioChecked.js.map +1 -1
  81. package/lib/icons/RadioUnchecked.js +1 -1
  82. package/lib/icons/RadioUnchecked.js.map +1 -1
  83. package/lib/icons/Seam.js +1 -1
  84. package/lib/icons/Seam.js.map +1 -1
  85. package/lib/icons/Search.js +1 -1
  86. package/lib/icons/Search.js.map +1 -1
  87. package/lib/icons/TemperatureAdd.js +1 -1
  88. package/lib/icons/TemperatureAdd.js.map +1 -1
  89. package/lib/icons/TemperatureSubtract.js +1 -1
  90. package/lib/icons/TemperatureSubtract.js.map +1 -1
  91. package/lib/icons/ThermostatCool.js +1 -1
  92. package/lib/icons/ThermostatCool.js.map +1 -1
  93. package/lib/icons/ThermostatCoolLarge.js +1 -1
  94. package/lib/icons/ThermostatCoolLarge.js.map +1 -1
  95. package/lib/icons/ThermostatHeat.js +1 -1
  96. package/lib/icons/ThermostatHeat.js.map +1 -1
  97. package/lib/icons/ThermostatHeatCool.js +1 -1
  98. package/lib/icons/ThermostatHeatCool.js.map +1 -1
  99. package/lib/icons/ThermostatHeatLarge.js +1 -1
  100. package/lib/icons/ThermostatHeatLarge.js.map +1 -1
  101. package/lib/icons/ThermostatOff.js +1 -1
  102. package/lib/icons/ThermostatOff.js.map +1 -1
  103. package/lib/icons/TriangleWarning.js +1 -1
  104. package/lib/icons/TriangleWarning.js.map +1 -1
  105. package/lib/icons/TriangleWarningOutline.js +1 -1
  106. package/lib/icons/TriangleWarningOutline.js.map +1 -1
  107. package/lib/seam/SeamProvider.js.map +1 -1
  108. package/lib/seam/access-codes/use-access-codes.js.map +1 -1
  109. package/lib/seam/access-codes/use-update-access-code.js.map +1 -1
  110. package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.js.map +1 -1
  111. package/lib/seam/components/AccessCodeDetails/AccessCodeDevice.js.map +1 -1
  112. package/lib/seam/components/AccessCodeTable/AccessCodeHealthBar.js.map +1 -1
  113. package/lib/seam/components/AccessCodeTable/AccessCodeMainIcon.js.map +1 -1
  114. package/lib/seam/components/AccessCodeTable/AccessCodeMenu.js.map +1 -1
  115. package/lib/seam/components/AccessCodeTable/AccessCodeTable.js.map +1 -1
  116. package/lib/seam/components/AccessCodeTable/CodeDetails.js.map +1 -1
  117. package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleCard.js.map +1 -1
  118. package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDetails.js.map +1 -1
  119. package/lib/seam/components/ClimateSettingScheduleDetails/ClimateSettingScheduleDeviceBar.js.map +1 -1
  120. package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleRowDetails.js.map +1 -1
  121. package/lib/seam/components/ClimateSettingScheduleTable/ClimateSettingScheduleTable.js.map +1 -1
  122. package/lib/seam/components/CreateAccessCodeForm/CreateAccessCodeForm.js.map +1 -1
  123. package/lib/seam/components/CreateClimateSettingScheduleForm/CreateClimateSettingScheduleForm.js.map +1 -1
  124. package/lib/seam/components/DeviceDetails/DeviceDetails.js.map +1 -1
  125. package/lib/seam/components/DeviceDetails/LockDeviceDetails.js.map +1 -1
  126. package/lib/seam/components/DeviceDetails/ThermostatDeviceDetails.js.map +1 -1
  127. package/lib/seam/components/DeviceTable/DeviceHealthBar.js.map +1 -1
  128. package/lib/seam/components/DeviceTable/DeviceTable.js.map +1 -1
  129. package/lib/seam/components/EditAccessCodeForm/EditAccessCodeForm.js.map +1 -1
  130. package/lib/seam/components/SupportedDeviceTable/FilterCategoryMenu.js.map +1 -1
  131. package/lib/seam/components/SupportedDeviceTable/HiddenDevicesOverlay.js.map +1 -1
  132. package/lib/seam/components/SupportedDeviceTable/ShowAllDevicesButton.js.map +1 -1
  133. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.d.ts +3 -1
  134. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.js +3 -1
  135. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.js.map +1 -1
  136. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.d.ts +1 -1
  137. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.js +5 -9
  138. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.js.map +1 -1
  139. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceManufacturerSection.js.map +1 -1
  140. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.d.ts +3 -1
  141. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.js +2 -2
  142. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.js.map +1 -1
  143. package/lib/seam/components/SupportedDeviceTable/use-device-model.js +5 -1
  144. package/lib/seam/components/SupportedDeviceTable/use-device-model.js.map +1 -1
  145. package/lib/seam/components/SupportedDeviceTable/use-device-models.js +5 -1
  146. package/lib/seam/components/SupportedDeviceTable/use-device-models.js.map +1 -1
  147. package/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.d.ts +5 -1
  148. package/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js +22 -5
  149. package/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js.map +1 -1
  150. package/lib/seam/components/SupportedDeviceTable/use-filtered-manufacturers.d.ts +4 -2
  151. package/lib/seam/components/SupportedDeviceTable/use-filtered-manufacturers.js +2 -1
  152. package/lib/seam/components/SupportedDeviceTable/use-filtered-manufacturers.js.map +1 -1
  153. package/lib/seam/components/SupportedDeviceTable/use-manufacturers.js.map +1 -1
  154. package/lib/seam/connect-webviews/use-create-connect-webview.js.map +1 -1
  155. package/lib/seam/devices/use-devices.js.map +1 -1
  156. package/lib/seam/devices/use-toggle-lock.js.map +1 -1
  157. package/lib/seam/error-handlers.js.map +1 -1
  158. package/lib/seam/thermostats/climate-setting-schedules/use-climate-setting-schedules.js.map +1 -1
  159. package/lib/seam/thermostats/use-cool-thermostat.js.map +1 -1
  160. package/lib/seam/thermostats/use-heat-cool-thermostat.js.map +1 -1
  161. package/lib/seam/thermostats/use-heat-thermostat.js.map +1 -1
  162. package/lib/seam/thermostats/use-set-thermostat-off.js.map +1 -1
  163. package/lib/seam/thermostats/use-update-fan-mode.js.map +1 -1
  164. package/lib/seam/thermostats/use-update-thermostat.js.map +1 -1
  165. package/lib/seam/use-seam-client.js.map +1 -1
  166. package/lib/set-point-bounds.js.map +1 -1
  167. package/lib/telemetry/TelemetryProvider.js.map +1 -1
  168. package/lib/telemetry/client.js.map +1 -1
  169. package/lib/ui/AccessCodeForm/AccessCodeForm.js.map +1 -1
  170. package/lib/ui/Checkbox.js.map +1 -1
  171. package/lib/ui/ClimateSettingForm/ClimateSettingScheduleForm.js.map +1 -1
  172. package/lib/ui/FormField.js.map +1 -1
  173. package/lib/ui/LoadingToast/LoadingToast.js.map +1 -1
  174. package/lib/ui/Menu/Menu.js.map +1 -1
  175. package/lib/ui/Menu/MenuItem.js.map +1 -1
  176. package/lib/ui/RadioField/Radio.js.map +1 -1
  177. package/lib/ui/RadioField/RadioField.js.map +1 -1
  178. package/lib/ui/Snackbar/Snackbar.js.map +1 -1
  179. package/lib/ui/TextField/TextField.js.map +1 -1
  180. package/lib/ui/TimeZonePicker/TimeZonePicker.js.map +1 -1
  181. package/lib/ui/Tooltip/Tooltip.js.map +1 -1
  182. package/lib/ui/device/BatteryStatus.js.map +1 -1
  183. package/lib/ui/device/LockStatus.js.map +1 -1
  184. package/lib/ui/device/OnlineStatus.js.map +1 -1
  185. package/lib/ui/layout/ContentHeader.js.map +1 -1
  186. package/lib/ui/thermostat/ClimateModeMenu.js.map +1 -1
  187. package/lib/ui/thermostat/TemperatureControlGroup.js.map +1 -1
  188. package/lib/version.d.ts +1 -1
  189. package/lib/version.js +1 -1
  190. package/package.json +6 -6
  191. package/src/lib/icons/AccessCodeKey.tsx +1 -1
  192. package/src/lib/icons/Add.tsx +1 -1
  193. package/src/lib/icons/ArrowBack.tsx +1 -1
  194. package/src/lib/icons/ArrowRestart.tsx +1 -1
  195. package/src/lib/icons/ArrowRight.tsx +1 -1
  196. package/src/lib/icons/BatteryLevelCritical.tsx +1 -1
  197. package/src/lib/icons/BatteryLevelFull.tsx +1 -1
  198. package/src/lib/icons/BatteryLevelHigh.tsx +1 -1
  199. package/src/lib/icons/BatteryLevelLow.tsx +1 -1
  200. package/src/lib/icons/BatteryLevelWired.tsx +1 -1
  201. package/src/lib/icons/Bee.tsx +1 -1
  202. package/src/lib/icons/Check.tsx +1 -1
  203. package/src/lib/icons/CheckBlack.tsx +1 -1
  204. package/src/lib/icons/CheckGreen.tsx +1 -1
  205. package/src/lib/icons/CheckboxBlank.tsx +1 -1
  206. package/src/lib/icons/CheckboxFilled.tsx +1 -1
  207. package/src/lib/icons/ChevronDown.tsx +1 -1
  208. package/src/lib/icons/ChevronRight.tsx +1 -1
  209. package/src/lib/icons/ChevronWide.tsx +1 -1
  210. package/src/lib/icons/ClimateSettingSchedule.tsx +1 -1
  211. package/src/lib/icons/Close.tsx +1 -1
  212. package/src/lib/icons/CloseWhite.tsx +1 -1
  213. package/src/lib/icons/Copy.tsx +1 -1
  214. package/src/lib/icons/DotsEllipsisMore.tsx +1 -1
  215. package/src/lib/icons/Edit.tsx +1 -1
  216. package/src/lib/icons/ExclamationCircle.tsx +1 -1
  217. package/src/lib/icons/ExclamationCircleOutline.tsx +1 -1
  218. package/src/lib/icons/Fan.tsx +1 -1
  219. package/src/lib/icons/FanOutline.tsx +1 -1
  220. package/src/lib/icons/Info.tsx +1 -1
  221. package/src/lib/icons/InfoDark.tsx +1 -1
  222. package/src/lib/icons/LockLocked.tsx +1 -1
  223. package/src/lib/icons/LockUnlocked.tsx +1 -1
  224. package/src/lib/icons/Off.tsx +1 -1
  225. package/src/lib/icons/OnlineStatusAccountOffline.tsx +1 -1
  226. package/src/lib/icons/OnlineStatusDeviceOffline.tsx +1 -1
  227. package/src/lib/icons/OnlineStatusOnline.tsx +2 -2
  228. package/src/lib/icons/RadioChecked.tsx +1 -1
  229. package/src/lib/icons/RadioUnchecked.tsx +1 -1
  230. package/src/lib/icons/Seam.tsx +1 -2
  231. package/src/lib/icons/Search.tsx +1 -1
  232. package/src/lib/icons/TemperatureAdd.tsx +1 -1
  233. package/src/lib/icons/TemperatureSubtract.tsx +1 -1
  234. package/src/lib/icons/ThermostatCool.tsx +1 -1
  235. package/src/lib/icons/ThermostatCoolLarge.tsx +1 -1
  236. package/src/lib/icons/ThermostatHeat.tsx +1 -1
  237. package/src/lib/icons/ThermostatHeatCool.tsx +2 -2
  238. package/src/lib/icons/ThermostatHeatLarge.tsx +1 -1
  239. package/src/lib/icons/ThermostatOff.tsx +1 -1
  240. package/src/lib/icons/TriangleWarning.tsx +1 -1
  241. package/src/lib/icons/TriangleWarningOutline.tsx +2 -5
  242. package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.tsx +6 -0
  243. package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.tsx +12 -12
  244. package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.element.ts +2 -0
  245. package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.tsx +6 -0
  246. package/src/lib/seam/components/SupportedDeviceTable/use-device-model.ts +5 -1
  247. package/src/lib/seam/components/SupportedDeviceTable/use-device-models.ts +5 -1
  248. package/src/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.ts +37 -10
  249. package/src/lib/seam/components/SupportedDeviceTable/use-filtered-manufacturers.ts +12 -4
  250. package/src/lib/version.ts +1 -1
@@ -16,7 +16,7 @@ export function ThermostatHeatLargeIcon(
16
16
  >
17
17
  <path
18
18
  fill='#FC8E28'
19
- d='M4 14c0-1.75.417-3.308 1.25-4.675S7 6.808 8 5.875c1-.933 1.917-1.646 2.75-2.138L12 3v3.3c0 .617.208 1.104.625 1.463.417.358.883.537 1.4.537.283 0 .554-.058.813-.175.258-.117.495-.308.712-.575L16 7c1.2.7 2.167 1.67 2.9 2.912.733 1.242 1.1 2.605 1.1 4.088 0 1.467-.358 2.804-1.075 4.012a8.086 8.086 0 0 1-2.825 2.863c.283-.4.504-.837.662-1.313.159-.475.238-.979.238-1.512a4.8 4.8 0 0 0-.375-1.887 4.957 4.957 0 0 0-1.075-1.588L12 11.1l-3.525 3.475a5.093 5.093 0 0 0-1.1 1.6A4.709 4.709 0 0 0 7 18.05c0 .533.08 1.037.237 1.512.159.476.38.913.663 1.313a8.086 8.086 0 0 1-2.825-2.863C4.358 16.805 4 15.467 4 14Zm8-.1 2.125 2.075c.283.283.5.6.65.95.15.35.225.725.225 1.125 0 .817-.292 1.512-.875 2.087-.583.575-1.292.863-2.125.863s-1.542-.288-2.125-.863A2.823 2.823 0 0 1 9 18.05c0-.383.075-.754.225-1.113.15-.358.367-.679.65-.962L12 13.9Z'
19
+ d='M4 14c0-1.75.417-3.308 1.25-4.675S7 6.808 8 5.875c1-.933 1.917-1.646 2.75-2.137L12 3v3.3c0 .617.208 1.104.625 1.463.417.358.883.537 1.4.537.283 0 .554-.058.813-.175.258-.117.495-.308.712-.575L16 7c1.2.7 2.167 1.67 2.9 2.912.733 1.242 1.1 2.605 1.1 4.088 0 1.467-.358 2.804-1.075 4.012a8.086 8.086 0 0 1-2.825 2.863c.283-.4.504-.837.662-1.312.159-.476.238-.98.238-1.513a4.8 4.8 0 0 0-.375-1.887 4.957 4.957 0 0 0-1.075-1.588L12 11.1l-3.525 3.475a5.093 5.093 0 0 0-1.1 1.6A4.709 4.709 0 0 0 7 18.05c0 .533.08 1.037.237 1.512.159.476.38.913.663 1.313a8.086 8.086 0 0 1-2.825-2.863C4.358 16.805 4 15.468 4 14m8-.1 2.125 2.075c.283.283.5.6.65.95.15.35.225.725.225 1.125 0 .817-.292 1.512-.875 2.087-.583.575-1.292.863-2.125.863s-1.542-.288-2.125-.863A2.823 2.823 0 0 1 9 18.05c0-.383.075-.754.225-1.113.15-.358.367-.679.65-.962z'
20
20
  />
21
21
  </svg>
22
22
  )
@@ -14,7 +14,7 @@ export function ThermostatOffIcon(props: SVGProps<SVGSVGElement>): JSX.Element {
14
14
  >
15
15
  <path
16
16
  fill='#9DA1A9'
17
- d='M11.78 13.64 10.36 12.22a6.403 6.403 0 0 1-1.633.765 6.127 6.127 0 0 1-1.805.266 6.086 6.086 0 0 1-2.437-.492 6.311 6.311 0 0 1-1.985-1.336 6.312 6.312 0 0 1-1.336-1.985A6.086 6.086 0 0 1 .671 7c0-.625.089-1.227.266-1.805a6.4 6.4 0 0 1 .766-1.633L.28 2.141l.89-.891 11.5 11.5-.89.89ZM6.922 12a4.955 4.955 0 0 0 2.532-.688L2.609 4.47A4.956 4.956 0 0 0 1.92 7c0 1.385.487 2.565 1.461 3.54.974.973 2.154 1.46 3.54 1.46Zm5.219-1.563-.906-.906A4.955 4.955 0 0 0 11.922 7c0-1.385-.488-2.565-1.462-3.54C9.486 2.488 8.307 2 6.921 2a4.955 4.955 0 0 0-2.531.688l-.906-.907a6.401 6.401 0 0 1 1.633-.765A6.127 6.127 0 0 1 6.92.75c.865 0 1.677.164 2.438.492.76.328 1.422.774 1.984 1.336a6.311 6.311 0 0 1 1.336 1.985c.328.76.492 1.572.492 2.437 0 .625-.088 1.227-.265 1.805a6.4 6.4 0 0 1-.766 1.633Z'
17
+ d='M11.78 13.64 10.36 12.22a6.403 6.403 0 0 1-1.633.765 6.127 6.127 0 0 1-1.805.266 6.086 6.086 0 0 1-2.437-.492 6.311 6.311 0 0 1-1.985-1.336 6.312 6.312 0 0 1-1.336-1.985A6.086 6.086 0 0 1 .671 7c0-.625.089-1.227.266-1.805a6.4 6.4 0 0 1 .766-1.633L.28 2.141l.89-.891 11.5 11.5zM6.922 12a4.955 4.955 0 0 0 2.532-.687L2.609 4.469A4.956 4.956 0 0 0 1.92 7c0 1.385.487 2.565 1.461 3.54.974.973 2.154 1.46 3.54 1.46m5.219-1.562-.906-.907A4.955 4.955 0 0 0 11.922 7c0-1.385-.488-2.565-1.462-3.54C9.486 2.488 8.307 2 6.921 2a4.955 4.955 0 0 0-2.531.688l-.906-.907a6.401 6.401 0 0 1 1.633-.765A6.127 6.127 0 0 1 6.92.75c.865 0 1.677.164 2.438.492.76.328 1.422.774 1.984 1.336a6.311 6.311 0 0 1 1.336 1.985c.328.76.492 1.572.492 2.437 0 .625-.088 1.227-.265 1.805a6.4 6.4 0 0 1-.766 1.633'
18
18
  />
19
19
  </svg>
20
20
  )
@@ -30,7 +30,7 @@ export function TriangleWarningIcon(
30
30
  <g mask='url(#triangle-warning_svg__a)'>
31
31
  <path
32
32
  fill='#F3980F'
33
- d='M1 21 12 2l11 19H1Zm11-3a.968.968 0 0 0 .713-.288A.967.967 0 0 0 13 17a.967.967 0 0 0-.287-.712A.968.968 0 0 0 12 16a.965.965 0 0 0-.712.288A.965.965 0 0 0 11 17c0 .283.096.52.288.712A.965.965 0 0 0 12 18Zm-1-3h2v-5h-2v5Z'
33
+ d='M1 21 12 2l11 19zm11-3a.968.968 0 0 0 .713-.288A.967.967 0 0 0 13 17a.967.967 0 0 0-.287-.712A.968.968 0 0 0 12 16a.965.965 0 0 0-.712.288A.965.965 0 0 0 11 17c0 .283.096.52.288.712A.965.965 0 0 0 12 18m-1-3h2v-5h-2z'
34
34
  />
35
35
  </g>
36
36
  </svg>
@@ -14,11 +14,8 @@ export function TriangleWarningOutlineIcon(
14
14
  fill='none'
15
15
  {...props}
16
16
  >
17
- <path
18
- fill='#FF9800'
19
- d='m12 6.49 7.53 13.01H4.47L12 6.49Zm0-3.99-11 19h22l-11-19Z'
20
- />
21
- <path fill='#FF9800' d='M13 16.5h-2v2h2v-2ZM13 10.5h-2v5h2v-5Z' />
17
+ <path fill='#FF9800' d='m12 6.49 7.53 13.01H4.47zm0-3.99-11 19h22z' />
18
+ <path fill='#FF9800' d='M13 16.5h-2v2h2zM13 10.5h-2v5h2z' />
22
19
  </svg>
23
20
  )
24
21
  }
@@ -15,6 +15,8 @@ interface SupportedDeviceContentProps {
15
15
  filters: DeviceModelFilters
16
16
  manufacturers: string[] | null
17
17
  excludedManufacturers: string[]
18
+ includeIf: string[] | null
19
+ excludeIf: string[]
18
20
  }
19
21
 
20
22
  export function SupportedDeviceContent({
@@ -23,6 +25,8 @@ export function SupportedDeviceContent({
23
25
  filters,
24
26
  manufacturers,
25
27
  excludedManufacturers,
28
+ includeIf,
29
+ excludeIf,
26
30
  }: SupportedDeviceContentProps): JSX.Element | null {
27
31
  const { deviceModels, isLoading, isError, refetch } = useFilteredDeviceModels(
28
32
  {
@@ -30,6 +34,8 @@ export function SupportedDeviceContent({
30
34
  filters,
31
35
  manufacturers,
32
36
  excludedManufacturers,
37
+ includeIf,
38
+ excludeIf,
33
39
  }
34
40
  )
35
41
 
@@ -1,7 +1,10 @@
1
1
  import type { Dispatch, SetStateAction } from 'react'
2
2
 
3
3
  import { FilterCategoryMenu } from 'lib/seam/components/SupportedDeviceTable/FilterCategoryMenu.js'
4
- import type { DeviceModelFilters } from 'lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js'
4
+ import {
5
+ type DeviceModelFilters,
6
+ supportedIntegrationSupportLevels,
7
+ } from 'lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js'
5
8
  import { Button } from 'lib/ui/Button.js'
6
9
  import { Menu } from 'lib/ui/Menu/Menu.js'
7
10
  import { SearchTextField } from 'lib/ui/TextField/SearchTextField.js'
@@ -28,6 +31,9 @@ export function SupportedDeviceFilterArea({
28
31
  const appliedFiltersCount = getAppliedFilterCount(filters)
29
32
 
30
33
  const { manufacturers: manufacturersData } = useFilteredManufacturers({
34
+ integrationSupportLevels: filters.supportedOnly
35
+ ? supportedIntegrationSupportLevels
36
+ : null,
31
37
  manufacturers,
32
38
  excludedManufacturers,
33
39
  })
@@ -44,16 +50,6 @@ export function SupportedDeviceFilterArea({
44
50
 
45
51
  const allLabel = t.all
46
52
 
47
- const options =
48
- manufacturersData
49
- ?.filter((manufacturer) => {
50
- if (filters.supportedOnly) {
51
- return ['stable', 'beta'].includes(manufacturer.integration)
52
- }
53
- return true
54
- })
55
- ?.map((manufacturer) => manufacturer.display_name) ?? []
56
-
57
53
  return (
58
54
  <div className='seam-supported-device-table-filter-area'>
59
55
  <div className='seam-deliberate-block' />
@@ -79,7 +75,11 @@ export function SupportedDeviceFilterArea({
79
75
  <FilterCategoryMenu
80
76
  label={t.manufacturer}
81
77
  allLabel={allLabel}
82
- options={options}
78
+ options={
79
+ manufacturersData?.map(
80
+ (manufacturer) => manufacturer.display_name
81
+ ) ?? []
82
+ }
83
83
  onSelect={(manufacturer: string) => {
84
84
  setFilters((filters) => ({
85
85
  ...filters,
@@ -8,6 +8,8 @@ export const props: ElementProps<SupportedDeviceTableProps> = {
8
8
  disableFilter: 'boolean',
9
9
  manufacturers: 'array',
10
10
  excludedManufacturers: 'array',
11
+ includeIf: 'array',
12
+ excludeIf: 'array',
11
13
  }
12
14
 
13
15
  export { SupportedDeviceTable as Component } from './SupportedDeviceTable.js'
@@ -15,6 +15,8 @@ export interface SupportedDeviceTableProps extends CommonProps {
15
15
  disableFilter?: boolean
16
16
  manufacturers?: string[] | null
17
17
  excludedManufacturers?: string[]
18
+ includeIf?: string[] | null
19
+ excludeIf?: string[]
18
20
  }
19
21
 
20
22
  export const NestedSupportedDeviceTable =
@@ -24,6 +26,8 @@ export function SupportedDeviceTable({
24
26
  disableFilter = false,
25
27
  manufacturers = null,
26
28
  excludedManufacturers = [],
29
+ includeIf = null,
30
+ excludeIf = [],
27
31
  className,
28
32
  }: SupportedDeviceTableProps = {}): JSX.Element {
29
33
  useComponentTelemetry('SupportedDeviceTable')
@@ -59,6 +63,8 @@ export function SupportedDeviceTable({
59
63
  filters={filters}
60
64
  manufacturers={manufacturers}
61
65
  excludedManufacturers={excludedManufacturers}
66
+ includeIf={includeIf}
67
+ excludeIf={excludeIf}
62
68
  />
63
69
  </div>
64
70
  )
@@ -37,7 +37,11 @@ export function useDeviceModel(
37
37
  },
38
38
  })
39
39
 
40
- return { ...rest, deviceModel: data }
40
+ return {
41
+ ...rest,
42
+ // @ts-expect-error: Upstream mismatch between type and route type.
43
+ deviceModel: data,
44
+ }
41
45
  }
42
46
 
43
47
  type DeviceModelsGetParams = RouteRequestParams<'/v1/device_models/get'>
@@ -49,7 +49,11 @@ export function useDeviceModels(
49
49
  },
50
50
  })
51
51
 
52
- return { ...rest, deviceModels: data }
52
+ return {
53
+ ...rest,
54
+ // @ts-expect-error: Upstream mismatch between type and route type.
55
+ deviceModels: data,
56
+ }
53
57
  }
54
58
 
55
59
  type DeviceModelsListParams = RouteRequestParams<'/v1/device_models/list'>
@@ -1,3 +1,5 @@
1
+ import type { ManufacturerIntegrationSupportLevel } from '@seamapi/types/devicedb'
2
+
1
3
  import {
2
4
  useDeviceModels,
3
5
  type UseDeviceModelsParams,
@@ -10,26 +12,47 @@ export interface DeviceModelFilters {
10
12
  manufacturer: string | null
11
13
  }
12
14
 
15
+ export const supportedIntegrationSupportLevels: ManufacturerIntegrationSupportLevel[] =
16
+ ['stable', 'beta']
17
+
13
18
  export const useFilteredDeviceModels = ({
14
19
  filterValue,
15
20
  filters,
21
+ includeIf,
22
+ excludeIf,
16
23
  ...manufacturersParams
17
24
  }: {
18
25
  filterValue: string
19
26
  filters: DeviceModelFilters
20
27
  manufacturers: string[] | null
21
28
  excludedManufacturers: string[]
29
+ includeIf: string[] | null
30
+ excludeIf: string[]
22
31
  }): ReturnType<typeof useDeviceModels> => {
23
- const { manufacturers } = useFilteredManufacturers(manufacturersParams)
32
+ const { manufacturers } = useFilteredManufacturers({
33
+ ...manufacturersParams,
34
+ integrationSupportLevels: filters.supportedOnly
35
+ ? supportedIntegrationSupportLevels
36
+ : null,
37
+ })
24
38
 
25
39
  const params: UseDeviceModelsParams = {}
26
40
 
41
+ if (excludeIf.length > 0) {
42
+ params.exclude_if = excludeIf
43
+ }
44
+
45
+ // UPSTREAM: API does not parse zero-length arrays correctly.
46
+ if (includeIf != null && includeIf.length > 0) {
47
+ params.include_if = includeIf
48
+ }
49
+
27
50
  if (filterValue.trim() !== '') {
28
51
  params.text_search = filterValue.trim()
29
52
  }
30
53
 
31
54
  if (filters.supportedOnly) {
32
- params.integration_status = 'stable'
55
+ params.integration_support_levels = supportedIntegrationSupportLevels
33
56
  }
34
57
 
35
58
  if (filters.manufacturer !== null) {
@@ -50,13 +73,17 @@ export const useFilteredDeviceModels = ({
50
73
 
51
74
  return {
52
75
  ...rest,
53
- deviceModels: deviceModels?.filter(
54
- (deviceModel) =>
55
- manufacturers?.some(
56
- (manufacturer) =>
57
- deviceModel.manufacturer.manufacturer_id ===
58
- manufacturer.manufacturer_id
59
- )
60
- ),
76
+ deviceModels:
77
+ // UPSTREAM: API does not parse zero-length arrays correctly.
78
+ includeIf?.length === 0
79
+ ? []
80
+ : deviceModels?.filter(
81
+ (deviceModel) =>
82
+ manufacturers?.some(
83
+ (manufacturer) =>
84
+ deviceModel.manufacturer.manufacturer_id ===
85
+ manufacturer.manufacturer_id
86
+ )
87
+ ),
61
88
  }
62
89
  }
@@ -1,13 +1,19 @@
1
+ import type { ManufacturerIntegrationSupportLevel } from '@seamapi/types/devicedb'
2
+
1
3
  import { useManufacturers } from 'lib/seam/components/SupportedDeviceTable/use-manufacturers.js'
2
4
 
3
5
  interface Params {
4
6
  manufacturers: string[] | null
5
7
  excludedManufacturers: string[]
8
+ integrationSupportLevels: ManufacturerIntegrationSupportLevel[] | null
6
9
  }
7
- export const useFilteredManufacturers = (
8
- params: Params
9
- ): ReturnType<typeof useManufacturers> => {
10
+
11
+ export const useFilteredManufacturers = ({
12
+ integrationSupportLevels,
13
+ ...params
14
+ }: Params): ReturnType<typeof useManufacturers> => {
10
15
  const { manufacturers, ...rest } = useManufacturers({
16
+ integration_support_levels: integrationSupportLevels ?? undefined,
11
17
  liqe_query: createLiqeQuery(params),
12
18
  })
13
19
 
@@ -22,7 +28,9 @@ export const useFilteredManufacturers = (
22
28
  export const createLiqeQuery = ({
23
29
  manufacturers,
24
30
  excludedManufacturers,
25
- }: Params): string | undefined => {
31
+ }: Pick<Params, 'manufacturers' | 'excludedManufacturers'>):
32
+ | string
33
+ | undefined => {
26
34
  if (
27
35
  (manufacturers?.some(isInvalidInput) ?? false) ||
28
36
  excludedManufacturers.some(isInvalidInput)
@@ -1,3 +1,3 @@
1
- const seamapiReactVersion = '2.5.1'
1
+ const seamapiReactVersion = '2.7.0'
2
2
 
3
3
  export default seamapiReactVersion