@seamapi/react 1.5.1 → 1.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 (207) hide show
  1. package/README.md +7 -5
  2. package/dist/elements.js +25020 -0
  3. package/dist/elements.js.map +1 -0
  4. package/hooks.d.ts +1 -0
  5. package/hooks.js +2 -0
  6. package/hooks.js.map +1 -0
  7. package/index.css +6 -0
  8. package/index.css.map +1 -1
  9. package/index.min.css +1 -1
  10. package/index.min.css.map +1 -1
  11. package/lib/{sort-by.d.ts → dates.d.ts} +1 -1
  12. package/lib/{sort-by.js → dates.js} +2 -2
  13. package/lib/dates.js.map +1 -0
  14. package/lib/index.d.ts +2 -2
  15. package/lib/index.js +2 -2
  16. package/lib/index.js.map +1 -1
  17. package/lib/{SeamProvider.d.ts → seam/SeamProvider.d.ts} +9 -6
  18. package/lib/{SeamProvider.js → seam/SeamProvider.js} +29 -30
  19. package/lib/seam/SeamProvider.js.map +1 -0
  20. package/lib/seam/access-codes/use-access-codes.js +2 -2
  21. package/lib/seam/access-codes/use-access-codes.js.map +1 -1
  22. package/lib/{ui → seam/components}/AccessCodeDetails/AccessCodeDetails.js +5 -5
  23. package/lib/seam/components/AccessCodeDetails/AccessCodeDetails.js.map +1 -0
  24. package/lib/{ui → seam/components}/AccessCodeDetails/AccessCodeDevice.js +7 -7
  25. package/lib/seam/components/AccessCodeDetails/AccessCodeDevice.js.map +1 -0
  26. package/lib/seam/components/AccessCodeTable/AccessCodeTable.js +77 -0
  27. package/lib/seam/components/AccessCodeTable/AccessCodeTable.js.map +1 -0
  28. package/lib/{ui → seam/components}/AccessCodeTable/CodeDetails.js +3 -3
  29. package/lib/seam/components/AccessCodeTable/CodeDetails.js.map +1 -0
  30. package/lib/{ui → seam/components}/DeviceDetails/DeviceDetails.js +14 -14
  31. package/lib/seam/components/DeviceDetails/DeviceDetails.js.map +1 -0
  32. package/lib/seam/components/DeviceDetails/DeviceModel.js.map +1 -0
  33. package/lib/{ui → seam/components}/DeviceTable/DeviceHealthBar.d.ts +3 -2
  34. package/lib/{ui → seam/components}/DeviceTable/DeviceHealthBar.js +4 -4
  35. package/lib/seam/components/DeviceTable/DeviceHealthBar.js.map +1 -0
  36. package/lib/{ui → seam/components}/DeviceTable/DeviceRow.d.ts +1 -1
  37. package/lib/{ui → seam/components}/DeviceTable/DeviceRow.js +9 -9
  38. package/lib/seam/components/DeviceTable/DeviceRow.js.map +1 -0
  39. package/lib/{ui → seam/components}/DeviceTable/DeviceTable.d.ts +1 -1
  40. package/lib/{ui → seam/components}/DeviceTable/DeviceTable.js +11 -11
  41. package/lib/seam/components/DeviceTable/DeviceTable.js.map +1 -0
  42. package/lib/seam/components/SupportedDeviceTable/FilterCategoryMenu.d.ts +20 -0
  43. package/lib/{ui → seam/components}/SupportedDeviceTable/FilterCategoryMenu.js +8 -5
  44. package/lib/seam/components/SupportedDeviceTable/FilterCategoryMenu.js.map +1 -0
  45. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.d.ts +9 -0
  46. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.js +39 -0
  47. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.js.map +1 -0
  48. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.d.ts +9 -0
  49. package/lib/{ui → seam/components}/SupportedDeviceTable/SupportedDeviceFilterArea.js +33 -28
  50. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.js.map +1 -0
  51. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceHeader.d.ts +2 -0
  52. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceHeader.js +12 -0
  53. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceHeader.js.map +1 -0
  54. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceRow.d.ts +6 -0
  55. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceRow.js +19 -0
  56. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceRow.js.map +1 -0
  57. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.d.ts +5 -0
  58. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.js +16 -0
  59. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.js.map +1 -0
  60. package/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.d.ts +7 -0
  61. package/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js +18 -0
  62. package/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js.map +1 -0
  63. package/lib/seam/components/index.js.map +1 -0
  64. package/lib/seam/device-models/use-device-models.d.ts +5 -0
  65. package/lib/seam/device-models/use-device-models.js +17 -0
  66. package/lib/seam/device-models/use-device-models.js.map +1 -0
  67. package/lib/seam/devices/use-devices.js +3 -3
  68. package/lib/seam/devices/use-devices.js.map +1 -1
  69. package/lib/seam/devices/use-toggle-lock.js +1 -1
  70. package/lib/seam/devices/use-toggle-lock.js.map +1 -1
  71. package/lib/seam/index.d.ts +1 -0
  72. package/lib/seam/index.js +1 -0
  73. package/lib/seam/index.js.map +1 -1
  74. package/lib/seam/use-seam-client.js +1 -1
  75. package/lib/seam/use-seam-client.js.map +1 -1
  76. package/lib/seam/use-seam-font.d.ts +1 -1
  77. package/lib/seam/use-seam-font.js +1 -1
  78. package/lib/seam/use-seam-font.js.map +1 -1
  79. package/lib/seam/use-seam-styles.js.map +1 -1
  80. package/lib/{capitalize.js → strings.js} +1 -1
  81. package/lib/strings.js.map +1 -0
  82. package/lib/ui/Menu/Menu.d.ts +1 -1
  83. package/lib/ui/Menu/Menu.js.map +1 -1
  84. package/lib/ui/Menu/MenuItem.d.ts +1 -1
  85. package/lib/ui/Menu/MoreActionsMenu.d.ts +1 -1
  86. package/lib/ui/Table/TableFilterBar/TableFilterBar.d.ts +2 -1
  87. package/lib/ui/Table/TableFilterBar/TableFilterItem.d.ts +2 -1
  88. package/lib/ui/TextField/SearchTextField.js.map +1 -1
  89. package/lib/{copy-to-clipboard.js → ui/clipboard.js} +1 -1
  90. package/lib/ui/clipboard.js.map +1 -0
  91. package/lib/ui/use-interval.js.map +1 -0
  92. package/lib/{use-is-date-in-past.js → ui/use-is-date-in-past.js} +1 -1
  93. package/lib/ui/use-is-date-in-past.js.map +1 -0
  94. package/lib/ui/use-toggle.js.map +1 -0
  95. package/lib/version.d.ts +2 -2
  96. package/lib/version.js +3 -1
  97. package/lib/version.js.map +1 -1
  98. package/package.json +21 -8
  99. package/src/elements.ts +27 -0
  100. package/src/hooks.ts +1 -0
  101. package/src/lib/{sort-by.ts → dates.ts} +1 -1
  102. package/src/lib/element.tsx +86 -0
  103. package/src/lib/index.ts +2 -2
  104. package/src/lib/{SeamProvider.tsx → seam/SeamProvider.tsx} +53 -46
  105. package/src/lib/seam/access-codes/use-access-codes.ts +2 -2
  106. package/src/lib/seam/components/AccessCodeDetails/AccessCodeDetails.element.ts +12 -0
  107. package/src/lib/{ui → seam/components}/AccessCodeDetails/AccessCodeDetails.tsx +4 -5
  108. package/src/lib/{ui → seam/components}/AccessCodeDetails/AccessCodeDevice.tsx +2 -2
  109. package/src/lib/seam/components/AccessCodeTable/AccessCodeTable.element.ts +12 -0
  110. package/src/lib/{ui → seam/components}/AccessCodeTable/AccessCodeTable.tsx +20 -5
  111. package/src/lib/{ui → seam/components}/AccessCodeTable/CodeDetails.tsx +2 -3
  112. package/src/lib/seam/components/DeviceDetails/DeviceDetails.element.ts +12 -0
  113. package/src/lib/{ui → seam/components}/DeviceDetails/DeviceDetails.tsx +8 -6
  114. package/src/lib/{ui → seam/components}/DeviceTable/DeviceHealthBar.tsx +1 -1
  115. package/src/lib/{ui → seam/components}/DeviceTable/DeviceRow.tsx +1 -1
  116. package/src/lib/seam/components/DeviceTable/DeviceTable.element.ts +11 -0
  117. package/src/lib/{ui → seam/components}/DeviceTable/DeviceTable.tsx +7 -7
  118. package/src/lib/{ui → seam/components}/SupportedDeviceTable/FilterCategoryMenu.tsx +26 -13
  119. package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.tsx +120 -0
  120. package/src/lib/{ui → seam/components}/SupportedDeviceTable/SupportedDeviceFilterArea.tsx +43 -39
  121. package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceHeader.tsx +22 -0
  122. package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceRow.tsx +48 -0
  123. package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.element.ts +11 -0
  124. package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.tsx +40 -0
  125. package/src/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.ts +35 -0
  126. package/src/lib/seam/components/elements.ts +5 -0
  127. package/src/lib/seam/device-models/use-device-models.ts +34 -0
  128. package/src/lib/seam/devices/use-devices.ts +3 -3
  129. package/src/lib/seam/devices/use-toggle-lock.ts +1 -2
  130. package/src/lib/seam/index.ts +1 -0
  131. package/src/lib/seam/use-seam-client.ts +1 -1
  132. package/src/lib/seam/use-seam-font.ts +5 -1
  133. package/src/lib/seam/use-seam-styles.ts +1 -1
  134. package/src/lib/ui/Menu/Menu.tsx +4 -4
  135. package/src/lib/ui/Menu/MenuItem.tsx +1 -1
  136. package/src/lib/ui/Menu/MoreActionsMenu.tsx +1 -1
  137. package/src/lib/ui/Table/TableFilterBar/TableFilterBar.tsx +2 -2
  138. package/src/lib/ui/Table/TableFilterBar/TableFilterItem.tsx +1 -1
  139. package/src/lib/ui/TextField/SearchTextField.tsx +3 -3
  140. package/src/lib/ui/clipboard.ts +3 -0
  141. package/src/lib/{use-interval.ts → ui/use-interval.ts} +1 -1
  142. package/src/lib/{use-is-date-in-past.ts → ui/use-is-date-in-past.ts} +1 -1
  143. package/src/lib/version.ts +3 -1
  144. package/src/styles/_access-code-table.scss +7 -0
  145. package/lib/SeamProvider.js.map +0 -1
  146. package/lib/capitalize.js.map +0 -1
  147. package/lib/copy-to-clipboard.js.map +0 -1
  148. package/lib/sort-by.js.map +0 -1
  149. package/lib/ui/AccessCodeDetails/AccessCodeDetails.js.map +0 -1
  150. package/lib/ui/AccessCodeDetails/AccessCodeDevice.js.map +0 -1
  151. package/lib/ui/AccessCodeTable/AccessCodeTable.js +0 -69
  152. package/lib/ui/AccessCodeTable/AccessCodeTable.js.map +0 -1
  153. package/lib/ui/AccessCodeTable/CodeDetails.js.map +0 -1
  154. package/lib/ui/DeviceDetails/DeviceDetails.js.map +0 -1
  155. package/lib/ui/DeviceDetails/DeviceModel.js.map +0 -1
  156. package/lib/ui/DeviceTable/DeviceHealthBar.js.map +0 -1
  157. package/lib/ui/DeviceTable/DeviceRow.js.map +0 -1
  158. package/lib/ui/DeviceTable/DeviceTable.js.map +0 -1
  159. package/lib/ui/SupportedDeviceTable/FilterCategoryMenu.d.ts +0 -15
  160. package/lib/ui/SupportedDeviceTable/FilterCategoryMenu.js.map +0 -1
  161. package/lib/ui/SupportedDeviceTable/SupportedDeviceContent.d.ts +0 -4
  162. package/lib/ui/SupportedDeviceTable/SupportedDeviceContent.js +0 -46
  163. package/lib/ui/SupportedDeviceTable/SupportedDeviceContent.js.map +0 -1
  164. package/lib/ui/SupportedDeviceTable/SupportedDeviceFilterArea.d.ts +0 -11
  165. package/lib/ui/SupportedDeviceTable/SupportedDeviceFilterArea.js.map +0 -1
  166. package/lib/ui/SupportedDeviceTable/SupportedDeviceHeader.d.ts +0 -1
  167. package/lib/ui/SupportedDeviceTable/SupportedDeviceHeader.js +0 -5
  168. package/lib/ui/SupportedDeviceTable/SupportedDeviceHeader.js.map +0 -1
  169. package/lib/ui/SupportedDeviceTable/SupportedDeviceRow.d.ts +0 -5
  170. package/lib/ui/SupportedDeviceTable/SupportedDeviceRow.js +0 -12
  171. package/lib/ui/SupportedDeviceTable/SupportedDeviceRow.js.map +0 -1
  172. package/lib/ui/SupportedDeviceTable/SupportedDeviceTable.d.ts +0 -3
  173. package/lib/ui/SupportedDeviceTable/SupportedDeviceTable.js +0 -8
  174. package/lib/ui/SupportedDeviceTable/SupportedDeviceTable.js.map +0 -1
  175. package/lib/ui/SupportedDeviceTable/types.d.ts +0 -15
  176. package/lib/ui/SupportedDeviceTable/types.js +0 -2
  177. package/lib/ui/SupportedDeviceTable/types.js.map +0 -1
  178. package/lib/ui/index.js.map +0 -1
  179. package/lib/use-interval.js.map +0 -1
  180. package/lib/use-is-date-in-past.js.map +0 -1
  181. package/lib/use-toggle.js.map +0 -1
  182. package/src/lib/copy-to-clipboard.ts +0 -3
  183. package/src/lib/ui/SupportedDeviceTable/SupportedDeviceContent.tsx +0 -135
  184. package/src/lib/ui/SupportedDeviceTable/SupportedDeviceHeader.tsx +0 -14
  185. package/src/lib/ui/SupportedDeviceTable/SupportedDeviceRow.tsx +0 -35
  186. package/src/lib/ui/SupportedDeviceTable/SupportedDeviceTable.tsx +0 -16
  187. package/src/lib/ui/SupportedDeviceTable/types.ts +0 -16
  188. /package/lib/{ui → seam/components}/AccessCodeDetails/AccessCodeDetails.d.ts +0 -0
  189. /package/lib/{ui → seam/components}/AccessCodeDetails/AccessCodeDevice.d.ts +0 -0
  190. /package/lib/{ui → seam/components}/AccessCodeTable/AccessCodeTable.d.ts +0 -0
  191. /package/lib/{ui → seam/components}/AccessCodeTable/CodeDetails.d.ts +0 -0
  192. /package/lib/{ui → seam/components}/DeviceDetails/DeviceDetails.d.ts +0 -0
  193. /package/lib/{ui → seam/components}/DeviceDetails/DeviceModel.d.ts +0 -0
  194. /package/lib/{ui → seam/components}/DeviceDetails/DeviceModel.js +0 -0
  195. /package/lib/{ui → seam/components}/index.d.ts +0 -0
  196. /package/lib/{ui → seam/components}/index.js +0 -0
  197. /package/lib/{capitalize.d.ts → strings.d.ts} +0 -0
  198. /package/lib/{copy-to-clipboard.d.ts → ui/clipboard.d.ts} +0 -0
  199. /package/lib/{use-interval.d.ts → ui/use-interval.d.ts} +0 -0
  200. /package/lib/{use-interval.js → ui/use-interval.js} +0 -0
  201. /package/lib/{use-is-date-in-past.d.ts → ui/use-is-date-in-past.d.ts} +0 -0
  202. /package/lib/{use-toggle.d.ts → ui/use-toggle.d.ts} +0 -0
  203. /package/lib/{use-toggle.js → ui/use-toggle.js} +0 -0
  204. /package/src/lib/{ui → seam/components}/DeviceDetails/DeviceModel.tsx +0 -0
  205. /package/src/lib/{ui → seam/components}/index.ts +0 -0
  206. /package/src/lib/{capitalize.ts → strings.ts} +0 -0
  207. /package/src/lib/{use-toggle.ts → ui/use-toggle.ts} +0 -0
@@ -1,18 +1,18 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useDevice } from '../../../lib/index.js';
3
- import { ChevronRightIcon } from '../../../lib/icons/ChevronRight.js';
4
- import { useAccessCodes } from '../../../lib/seam/access-codes/use-access-codes.js';
5
- import { isLockDevice } from '../../../lib/seam/devices/types.js';
6
- import { useToggleLock } from '../../../lib/seam/devices/use-toggle-lock.js';
7
- import { AccessCodeTable } from '../../../lib/ui/AccessCodeTable/AccessCodeTable.js';
8
- import { Alerts } from '../../../lib/ui/Alert/Alerts.js';
9
- import { Button } from '../../../lib/ui/Button.js';
10
- import { BatteryStatus } from '../../../lib/ui/device/BatteryStatus.js';
11
- import { DeviceImage } from '../../../lib/ui/device/DeviceImage.js';
12
- import { OnlineStatus } from '../../../lib/ui/device/OnlineStatus.js';
13
- import { DeviceModel } from '../../../lib/ui/DeviceDetails/DeviceModel.js';
14
- import { ContentHeader } from '../../../lib/ui/layout/ContentHeader.js';
15
- import { useToggle } from '../../../lib/use-toggle.js';
2
+ import { ChevronRightIcon } from '../../../../lib/icons/ChevronRight.js';
3
+ import { useAccessCodes } from '../../../../lib/seam/access-codes/use-access-codes.js';
4
+ import { AccessCodeTable } from '../../../../lib/seam/components/AccessCodeTable/AccessCodeTable.js';
5
+ import { DeviceModel } from '../../../../lib/seam/components/DeviceDetails/DeviceModel.js';
6
+ import { isLockDevice } from '../../../../lib/seam/devices/types.js';
7
+ import { useDevice } from '../../../../lib/seam/devices/use-device.js';
8
+ import { useToggleLock } from '../../../../lib/seam/devices/use-toggle-lock.js';
9
+ import { Alerts } from '../../../../lib/ui/Alert/Alerts.js';
10
+ import { Button } from '../../../../lib/ui/Button.js';
11
+ import { BatteryStatus } from '../../../../lib/ui/device/BatteryStatus.js';
12
+ import { DeviceImage } from '../../../../lib/ui/device/DeviceImage.js';
13
+ import { OnlineStatus } from '../../../../lib/ui/device/OnlineStatus.js';
14
+ import { ContentHeader } from '../../../../lib/ui/layout/ContentHeader.js';
15
+ import { useToggle } from '../../../../lib/ui/use-toggle.js';
16
16
  export function DeviceDetails(props) {
17
17
  const { deviceId, onBack } = props;
18
18
  const { device } = useDevice({
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeviceDetails.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/DeviceDetails/DeviceDetails.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,wDAAwD,CAAA;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAOhD,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IAElC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAC3B,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAA;IAEF,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,OAAO,IAAI,CAAA;KACZ;IAED,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,KAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAI,CAAA;AAC9D,CAAC;AAED,SAAS,iBAAiB,CAAC,KAG1B;IACC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IAEhC,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC,GAAG,SAAS,EAAE,CAAA;IAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IACnE,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAEpE,MAAM,eAAe,GAAG,WAAW,EAAE,MAAM,CAAA;IAE3C,MAAM,gBAAgB,GACpB,MAAM,CAAC,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,CAAA;IAEzD,IAAI,WAAW,IAAI,IAAI,EAAE;QACvB,OAAO,IAAI,CAAA;KACZ;IAED,IAAI,eAAe,EAAE;QACnB,OAAO,CACL,KAAC,eAAe,IACd,QAAQ,EAAE,MAAM,CAAC,SAAS,EAC1B,MAAM,EAAE,qBAAqB,GAC7B,CACH,CAAA;KACF;IAED,MAAM,MAAM,GAAG;QACb,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/B,OAAO,EAAE,OAAgB;YACzB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QACH,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACnC,OAAO,EAAE,SAAkB;YAC3B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;KACJ,CAAA;IAED,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,KAAC,aAAa,IAAC,KAAK,EAAC,QAAQ,EAAC,MAAM,EAAE,MAAM,GAAI,EAChD,eAAK,SAAS,EAAC,WAAW,aACxB,eAAK,SAAS,EAAC,cAAc,aAC3B,eAAK,SAAS,EAAC,cAAc,aAC3B,cAAK,SAAS,EAAC,YAAY,YACzB,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,GAAI,GAC3B,EACN,eAAK,SAAS,EAAC,WAAW,aACxB,eAAM,SAAS,EAAC,YAAY,YAAE,CAAC,CAAC,MAAM,GAAQ,EAC9C,aAAI,SAAS,EAAC,kBAAkB,YAAE,MAAM,CAAC,UAAU,CAAC,IAAI,GAAM,EAC9D,eAAK,SAAS,EAAC,iBAAiB,aAC9B,gBAAM,SAAS,EAAC,YAAY,aAAE,CAAC,CAAC,MAAM,SAAS,EAAC,GAAG,EACnD,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,GAAI,EAChC,gBAAM,SAAS,EAAC,YAAY,aAAE,CAAC,CAAC,KAAK,SAAS,EAAC,GAAG,EAClD,KAAC,aAAa,IAAC,MAAM,EAAE,MAAM,GAAI,EACjC,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,GAAI,IAC3B,IACF,IACF,EACN,KAAC,MAAM,IAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAC,uBAAuB,GAAG,IACxD,EACN,cAAK,SAAS,EAAC,UAAU,YACvB,eACE,SAAS,EAAC,gCAAgC,EAC1C,OAAO,EAAE,qBAAqB,aAE9B,gBAAM,SAAS,EAAC,YAAY,aACzB,eAAe,OAAG,CAAC,CAAC,WAAW,IAC3B,EACP,KAAC,gBAAgB,KAAG,IAChB,GACF,EAEN,eAAK,SAAS,EAAC,UAAU,aACvB,eAAK,SAAS,EAAC,+BAA+B,aAC5C,0BACE,eAAM,SAAS,EAAC,YAAY,YAAE,CAAC,CAAC,UAAU,GAAQ,EAClD,eAAM,SAAS,EAAC,YAAY,YAAE,UAAU,GAAQ,IAC5C,EACN,cAAK,SAAS,EAAC,YAAY,YACzB,KAAC,MAAM,IACL,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,GAAG,EAAE;gDACZ,UAAU,CAAC,MAAM,EAAE,CAAA;4CACrB,CAAC,YAEA,eAAe,GACT,GACL,IACF,EACN,KAAC,gBAAgB,IAAC,gBAAgB,EAAE,gBAAgB,GAAI,IACpD,IACF,IACF,CACP,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAEzB;IACC,MAAM,EAAE,gBAAgB,EAAE,GAAG,KAAK,CAAA;IAClC,IAAI,gBAAgB,IAAI,IAAI,EAAE;QAC5B,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,eAAK,SAAS,EAAC,sCAAsC,aACnD,eAAM,SAAS,EAAC,YAAY,YAAE,CAAC,CAAC,UAAU,GAAQ,EAClD,gBAAM,SAAS,EAAC,YAAY,aACzB,gBAAgB,OAAG,CAAC,CAAC,MAAM,IACvB,IACH,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,GAAG;IACR,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,cAAc;IAC3B,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACf,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeviceModel.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/DeviceDetails/DeviceModel.tsx"],"names":[],"mappings":";AAMA,MAAM,UAAU,WAAW,CAAC,EAAE,MAAM,EAAoB;IACtD,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IACpC,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,8BACE,gBAAM,SAAS,EAAC,YAAY,aAAE,CAAC,CAAC,KAAK,SAAS,EAAC,GAAG,EAClD,cAAK,SAAS,EAAC,mBAAmB,YAAE,KAAK,GAAO,IAC/C,CACJ,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,UAAU,GACC,EAAsB,EAAE;IACnC,OAAO,CACL,UAAU,EAAE,eAAe,EAAE,KAAK;QAClC,UAAU,EAAE,gBAAgB,EAAE,KAAK;QACnC,CAAC,CAAC,aAAa,CAChB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,GAAG;IACR,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,cAAc;CAC9B,CAAA"}
@@ -1,9 +1,10 @@
1
- import type { UseDevicesData } from '../../../lib/seam/devices/use-devices.js';
1
+ /// <reference types="react" />
2
+ import type { UseDevicesData } from '../../../../lib/seam/devices/use-devices.js';
2
3
  export type DeviceFilter = 'device_issues';
3
4
  interface DeviceHealthBarProps {
4
5
  devices: Array<UseDevicesData[number]>;
5
6
  filter: DeviceFilter | null;
6
7
  onFilterSelect: (filter: DeviceFilter | null) => void;
7
8
  }
8
- export declare function DeviceHealthBar({ devices, filter, onFilterSelect, }: DeviceHealthBarProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function DeviceHealthBar({ devices, filter, onFilterSelect, }: DeviceHealthBarProps): JSX.Element;
9
10
  export {};
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { CheckIcon } from '../../../lib/icons/Check.js';
3
- import { ExclamationCircleOutlineIcon } from '../../../lib/icons/ExclamationCircleOutline.js';
4
- import { TableFilterBar } from '../../../lib/ui/Table/TableFilterBar/TableFilterBar.js';
5
- import { TableFilterItem } from '../../../lib/ui/Table/TableFilterBar/TableFilterItem.js';
2
+ import { CheckIcon } from '../../../../lib/icons/Check.js';
3
+ import { ExclamationCircleOutlineIcon } from '../../../../lib/icons/ExclamationCircleOutline.js';
4
+ import { TableFilterBar } from '../../../../lib/ui/Table/TableFilterBar/TableFilterBar.js';
5
+ import { TableFilterItem } from '../../../../lib/ui/Table/TableFilterBar/TableFilterItem.js';
6
6
  export function DeviceHealthBar({ devices, filter, onFilterSelect, }) {
7
7
  const erroredDevices = devices.filter((device) => device.errors.length > 0);
8
8
  const issueCount = erroredDevices.length;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeviceHealthBar.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/DeviceTable/DeviceHealthBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AAEpF,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAUhF,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,EACP,MAAM,EACN,cAAc,GACO;IACrB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC3E,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAA;IAExC,MAAM,MAAM,GAAG,CAAC,MAAoB,EAAE,EAAE,CAAC,GAAG,EAAE;QAC5C,MAAM,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;QACnD,cAAc,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,UAAU,KAAK,CAAC,IAAI,UAAU,GAAG,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,QAAQ;QACpB,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC,YAAY,EAAE;QACnC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;IAEpC,IAAI,UAAU,KAAK,CAAC,EAAE;QACpB,OAAO,CACL,KAAC,cAAc,IAAC,aAAa,kBAC3B,MAAC,eAAe,eACd,KAAC,SAAS,KAAG,EACZ,CAAC,CAAC,SAAS,IACI,GACH,CAClB,CAAA;KACF;IAED,OAAO,CACL,KAAC,cAAc,IACb,aAAa,EAAE,MAAM,IAAI,IAAI,EAC7B,aAAa,EAAE,GAAG,EAAE;YAClB,cAAc,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC,YAED,MAAC,eAAe,IACd,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,EAChC,QAAQ,EAAE,MAAM,KAAK,eAAe,aAEpC,KAAC,4BAA4B,KAAG,EAC/B,KAAK,IACU,GACH,CAClB,CAAA;AACH,CAAC;AAED,MAAM,CAAC,GAAG;IACR,SAAS,EAAE,YAAY;IACvB,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,eAAe;CAC9B,CAAA"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import type { UseDevicesData, UseDevicesParams } from '../../../lib/seam/devices/use-devices.js';
2
+ import type { UseDevicesData, UseDevicesParams } from '../../../../lib/seam/devices/use-devices.js';
3
3
  export type DeviceTableProps = Props & UseDevicesParams;
4
4
  interface Props {
5
5
  onBack?: () => void;
@@ -1,13 +1,13 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { isLockDevice } from '../../../lib/seam/devices/types.js';
3
- import { BatteryStatus } from '../../../lib/ui/device/BatteryStatus.js';
4
- import { DeviceImage } from '../../../lib/ui/device/DeviceImage.js';
5
- import { LockStatus } from '../../../lib/ui/device/LockStatus.js';
6
- import { OnlineStatus } from '../../../lib/ui/device/OnlineStatus.js';
7
- import { getDeviceModel } from '../../../lib/ui/DeviceDetails/DeviceModel.js';
8
- import { TableCell } from '../../../lib/ui/Table/TableCell.js';
9
- import { TableRow } from '../../../lib/ui/Table/TableRow.js';
10
- import { Title } from '../../../lib/ui/typography/Title.js';
2
+ import { getDeviceModel } from '../../../../lib/seam/components/DeviceDetails/DeviceModel.js';
3
+ import { isLockDevice } from '../../../../lib/seam/devices/types.js';
4
+ import { BatteryStatus } from '../../../../lib/ui/device/BatteryStatus.js';
5
+ import { DeviceImage } from '../../../../lib/ui/device/DeviceImage.js';
6
+ import { LockStatus } from '../../../../lib/ui/device/LockStatus.js';
7
+ import { OnlineStatus } from '../../../../lib/ui/device/OnlineStatus.js';
8
+ import { TableCell } from '../../../../lib/ui/Table/TableCell.js';
9
+ import { TableRow } from '../../../../lib/ui/Table/TableRow.js';
10
+ import { Title } from '../../../../lib/ui/typography/Title.js';
11
11
  export function DeviceRow({ device, onClick, }) {
12
12
  if (!isLockDevice(device)) {
13
13
  return null;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeviceRow.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/DeviceTable/DeviceRow.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAA;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAKxD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAalD,MAAM,UAAU,SAAS,CAAC,EACxB,MAAM,EACN,OAAO,GACQ;IACf,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAA;IAE3D,OAAO,CACL,MAAC,QAAQ,IAAwB,OAAO,EAAE,OAAO,aAC/C,KAAC,SAAS,IAAC,SAAS,EAAC,iBAAiB,YACpC,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,GAAI,GACrB,EACZ,MAAC,SAAS,IAAC,SAAS,EAAC,gBAAgB,aACnC,KAAC,KAAK,IAAC,SAAS,EAAC,qBAAqB,YAAE,MAAM,CAAC,UAAU,CAAC,IAAI,GAAS,EACvE,eAAK,SAAS,EAAC,aAAa,aAC1B,eAAM,SAAS,EAAC,mBAAmB,YAAE,WAAW,GAAQ,EACxD,eAAK,SAAS,EAAC,sBAAsB,aACnC,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,GAAI,EAChC,KAAC,aAAa,IAAC,MAAM,EAAE,MAAM,GAAI,EACjC,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,GAAI,IAC1B,IACF,IACI,KAdC,MAAM,CAAC,SAAS,CAepB,CACZ,CAAA;AACH,CAAC;AAED,MAAM,CAAC,GAAG;IACR,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,cAAc;IAC3B,gBAAgB,EAAE,8BAA8B;CACjD,CAAA"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { type UseDevicesParams } from '../../../lib/seam/devices/use-devices.js';
2
+ import { type UseDevicesParams } from '../../../../lib/seam/devices/use-devices.js';
3
3
  export type DeviceTableProps = Props & UseDevicesParams;
4
4
  interface Props {
5
5
  onBack?: () => void;
@@ -1,16 +1,16 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
- import { useDevices, } from '../../../lib/seam/devices/use-devices.js';
4
- import { DeviceDetails } from '../../../lib/ui/DeviceDetails/DeviceDetails.js';
5
- import { DeviceHealthBar, } from '../../../lib/ui/DeviceTable/DeviceHealthBar.js';
6
- import { DeviceRow } from '../../../lib/ui/DeviceTable/DeviceRow.js';
7
- import { ContentHeader } from '../../../lib/ui/layout/ContentHeader.js';
8
- import { EmptyPlaceholder } from '../../../lib/ui/Table/EmptyPlaceholder.js';
9
- import { TableBody } from '../../../lib/ui/Table/TableBody.js';
10
- import { TableHeader } from '../../../lib/ui/Table/TableHeader.js';
11
- import { TableTitle } from '../../../lib/ui/Table/TableTitle.js';
12
- import { SearchTextField } from '../../../lib/ui/TextField/SearchTextField.js';
13
- import { Caption } from '../../../lib/ui/typography/Caption.js';
3
+ import { DeviceDetails } from '../../../../lib/seam/components/DeviceDetails/DeviceDetails.js';
4
+ import { DeviceHealthBar, } from '../../../../lib/seam/components/DeviceTable/DeviceHealthBar.js';
5
+ import { DeviceRow } from '../../../../lib/seam/components/DeviceTable/DeviceRow.js';
6
+ import { useDevices, } from '../../../../lib/seam/devices/use-devices.js';
7
+ import { ContentHeader } from '../../../../lib/ui/layout/ContentHeader.js';
8
+ import { EmptyPlaceholder } from '../../../../lib/ui/Table/EmptyPlaceholder.js';
9
+ import { TableBody } from '../../../../lib/ui/Table/TableBody.js';
10
+ import { TableHeader } from '../../../../lib/ui/Table/TableHeader.js';
11
+ import { TableTitle } from '../../../../lib/ui/Table/TableTitle.js';
12
+ import { SearchTextField } from '../../../../lib/ui/TextField/SearchTextField.js';
13
+ import { Caption } from '../../../../lib/ui/typography/Caption.js';
14
14
  export function DeviceTable({ onBack, ...props }) {
15
15
  const { devices, isLoading, isError, error } = useDevices(props);
16
16
  const [selectedDeviceId, selectDevice] = useState(null);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeviceTable.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/DeviceTable/DeviceTable.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ export type FilterCategoryMenuProps = FilterCategoryMenuPropsWithAllOption | FilterCategoryMenuPropsWithoutAllOption;
3
+ interface FilterCategoryMenuPropsWithAllOption extends FilterCategoryMenuBaseProps {
4
+ hideAllOption?: false;
5
+ allLabel: string;
6
+ onAllOptionSelect: () => void;
7
+ }
8
+ interface FilterCategoryMenuPropsWithoutAllOption extends FilterCategoryMenuBaseProps {
9
+ hideAllOption: true;
10
+ allLabel: never;
11
+ onAllOptionSelect?: never;
12
+ }
13
+ interface FilterCategoryMenuBaseProps {
14
+ label: string;
15
+ options: string[];
16
+ onSelect: (option: string) => void;
17
+ buttonLabel?: string;
18
+ }
19
+ export declare function FilterCategoryMenu({ label, allLabel, options, hideAllOption, onSelect, onAllOptionSelect, buttonLabel, }: FilterCategoryMenuProps): JSX.Element;
20
+ export {};
@@ -1,11 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ChevronDownIcon } from '../../../lib/icons/ChevronDown.js';
3
- import { Menu } from '../../../lib/ui/Menu/Menu.js';
4
- import { MenuItem } from '../../../lib/ui/Menu/MenuItem.js';
5
- export function FilterCategoryMenu({ label = 'Filter', options, hideAllOption = false, onSelect, onAllOptionSelect, buttonLabel, }) {
2
+ import { ChevronDownIcon } from '../../../../lib/icons/ChevronDown.js';
3
+ import { Menu } from '../../../../lib/ui/Menu/Menu.js';
4
+ import { MenuItem } from '../../../../lib/ui/Menu/MenuItem.js';
5
+ export function FilterCategoryMenu({ label = t.filter, allLabel, options, hideAllOption = false, onSelect, onAllOptionSelect, buttonLabel, }) {
6
6
  const usableOptions = hideAllOption ? options : ['All', ...options];
7
7
  return (_jsxs("div", { className: 'seam-supported-device-table-filter-menu-wrap', children: [_jsx("p", { children: label }), _jsx(Menu, { renderButton: ({ onOpen }) => (_jsxs("button", { onClick: onOpen, children: [_jsx("span", { children: buttonLabel }), _jsx(ChevronDownIcon, {})] })), children: usableOptions.map((option, index) => (_jsx(MenuItem, { onClick: () => {
8
- if (option === 'All') {
8
+ if (option === allLabel) {
9
9
  onAllOptionSelect?.();
10
10
  }
11
11
  else {
@@ -13,4 +13,7 @@ export function FilterCategoryMenu({ label = 'Filter', options, hideAllOption =
13
13
  }
14
14
  }, children: _jsx("span", { children: option }) }, `${index}:${option}`))) })] }));
15
15
  }
16
+ const t = {
17
+ filter: 'Filter',
18
+ };
16
19
  //# sourceMappingURL=FilterCategoryMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterCategoryMenu.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/SupportedDeviceTable/FilterCategoryMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AA2BlD,MAAM,UAAU,kBAAkB,CAAC,EACjC,KAAK,GAAG,CAAC,CAAC,MAAM,EAChB,QAAQ,EACR,OAAO,EACP,aAAa,GAAG,KAAK,EACrB,QAAQ,EACR,iBAAiB,EACjB,WAAW,GACa;IACxB,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAA;IAEnE,OAAO,CACL,eAAK,SAAS,EAAC,8CAA8C,aAC3D,sBAAI,KAAK,GAAK,EACd,KAAC,IAAI,IACH,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAC5B,kBAAQ,OAAO,EAAE,MAAM,aACrB,yBAAO,WAAW,GAAQ,EAC1B,KAAC,eAAe,KAAG,IACZ,CACV,YAEA,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACpC,KAAC,QAAQ,IAEP,OAAO,EAAE,GAAG,EAAE;wBACZ,IAAI,MAAM,KAAK,QAAQ,EAAE;4BACvB,iBAAiB,EAAE,EAAE,CAAA;yBACtB;6BAAM;4BACL,QAAQ,CAAC,MAAM,CAAC,CAAA;yBACjB;oBACH,CAAC,YAED,yBAAO,MAAM,GAAQ,IAThB,GAAG,KAAK,IAAI,MAAM,EAAE,CAUhB,CACZ,CAAC,GACG,IACH,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,GAAG;IACR,MAAM,EAAE,QAAQ;CACjB,CAAA"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { type DeviceModelFilters } from '../../../../lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js';
3
+ interface SupportedDeviceContentProps {
4
+ filterValue: string;
5
+ resetFilterValue: () => void;
6
+ filters: DeviceModelFilters;
7
+ }
8
+ export declare function SupportedDeviceContent({ resetFilterValue, filterValue, filters, }: SupportedDeviceContentProps): JSX.Element | null;
9
+ export {};
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { SupportedDeviceHeader } from '../../../../lib/seam/components/SupportedDeviceTable/SupportedDeviceHeader.js';
3
+ import { SupportedDeviceRow } from '../../../../lib/seam/components/SupportedDeviceTable/SupportedDeviceRow.js';
4
+ import { useFilteredDeviceModels, } from '../../../../lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js';
5
+ import { Button } from '../../../../lib/ui/Button.js';
6
+ export function SupportedDeviceContent({ resetFilterValue, filterValue, filters, }) {
7
+ const { deviceModels, isLoading, isError, refetch } = useFilteredDeviceModels(filterValue, filters);
8
+ if (isLoading) {
9
+ return (_jsx("div", { className: 'seam-supported-device-table-content-state-block', children: _jsx("p", { children: t.loading }) }));
10
+ }
11
+ if (isError) {
12
+ return (_jsxs("div", { className: 'seam-supported-device-table-content-state-block', children: [_jsx("p", { children: t.error }), _jsx(Button, { variant: 'solid', size: 'small', onClick: () => {
13
+ void refetch();
14
+ }, children: t.retry })] }));
15
+ }
16
+ if (deviceModels == null) {
17
+ return null;
18
+ }
19
+ return (_jsxs("table", { className: 'seam-supported-device-table-content', children: [_jsx(SupportedDeviceHeader, {}), _jsxs("tbody", { children: [deviceModels.map((deviceModel, index) => (_jsx(SupportedDeviceRow, { deviceModel: deviceModel }, [
20
+ deviceModel.main_category,
21
+ deviceModel.brand,
22
+ deviceModel.model_name,
23
+ deviceModel.manufacturer_model_id,
24
+ index,
25
+ ].join(':')))), deviceModels.length === 0 && (_jsx(EmptyResult, { filterValue: filterValue, resetFilterValue: resetFilterValue }))] })] }));
26
+ }
27
+ function EmptyResult({ filterValue, resetFilterValue, }) {
28
+ const noMatchingRows = (_jsxs(_Fragment, { children: [_jsx("p", { children: t.noMatch }), _jsx(Button, { variant: 'outline', size: 'small', onClick: resetFilterValue, className: 'seam-supported-device-table-content-message-clear-search', children: t.clear })] }));
29
+ return (_jsx("tr", { className: 'seam-supported-device-table-content-message-row', children: _jsx("td", { colSpan: 6, children: _jsx("div", { className: 'seam-supported-device-table-content-message', children: filterValue.length === 0 ? _jsx("p", { children: t.noneFound }) : noMatchingRows }) }) }));
30
+ }
31
+ const t = {
32
+ loading: 'Loading device models...',
33
+ retry: 'Retry',
34
+ error: 'There was an error fetching device models.',
35
+ noneFound: 'No device models found.',
36
+ noMatch: 'No device models matched your search.',
37
+ clear: 'Clear search terms',
38
+ };
39
+ //# sourceMappingURL=SupportedDeviceContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupportedDeviceContent.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mEAAmE,CAAA;AACzG,OAAO,EAAE,kBAAkB,EAAE,MAAM,gEAAgE,CAAA;AACnG,OAAO,EAEL,uBAAuB,GACxB,MAAM,wEAAwE,CAAA;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAQzC,MAAM,UAAU,sBAAsB,CAAC,EACrC,gBAAgB,EAChB,WAAW,EACX,OAAO,GACqB;IAC5B,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,uBAAuB,CAC3E,WAAW,EACX,OAAO,CACR,CAAA;IAED,IAAI,SAAS,EAAE;QACb,OAAO,CACL,cAAK,SAAS,EAAC,iDAAiD,YAC9D,sBAAI,CAAC,CAAC,OAAO,GAAK,GACd,CACP,CAAA;KACF;IAED,IAAI,OAAO,EAAE;QACX,OAAO,CACL,eAAK,SAAS,EAAC,iDAAiD,aAC9D,sBAAI,CAAC,CAAC,KAAK,GAAK,EAChB,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,GAAG,EAAE;wBACZ,KAAK,OAAO,EAAE,CAAA;oBAChB,CAAC,YAEA,CAAC,CAAC,KAAK,GACD,IACL,CACP,CAAA;KACF;IAED,IAAI,YAAY,IAAI,IAAI,EAAE;QACxB,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,iBAAO,SAAS,EAAC,qCAAqC,aACpD,KAAC,qBAAqB,KAAG,EACzB,4BACG,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CACxC,KAAC,kBAAkB,IAQjB,WAAW,EAAE,WAAW,IAPnB;wBACH,WAAW,CAAC,aAAa;wBACzB,WAAW,CAAC,KAAK;wBACjB,WAAW,CAAC,UAAU;wBACtB,WAAW,CAAC,qBAAqB;wBACjC,KAAK;qBACN,CAAC,IAAI,CAAC,GAAG,CAAC,CAEX,CACH,CAAC,EACD,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,CAC5B,KAAC,WAAW,IACV,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,GAClC,CACH,IACK,IACF,CACT,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,WAAW,EACX,gBAAgB,GAIjB;IACC,MAAM,cAAc,GAAG,CACrB,8BACE,sBAAI,CAAC,CAAC,OAAO,GAAK,EAClB,KAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAC,0DAA0D,YAEnE,CAAC,CAAC,KAAK,GACD,IACR,CACJ,CAAA;IAED,OAAO,CACL,aAAI,SAAS,EAAC,iDAAiD,YAC7D,aAAI,OAAO,EAAE,CAAC,YACZ,cAAK,SAAS,EAAC,6CAA6C,YACzD,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAI,CAAC,CAAC,SAAS,GAAK,CAAC,CAAC,CAAC,cAAc,GAC7D,GACH,GACF,CACN,CAAA;AACH,CAAC;AAED,MAAM,CAAC,GAAG;IACR,OAAO,EAAE,0BAA0B;IACnC,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,4CAA4C;IACnD,SAAS,EAAE,yBAAyB;IACpC,OAAO,EAAE,uCAAuC;IAChD,KAAK,EAAE,oBAAoB;CAC5B,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { Dispatch, SetStateAction } from 'react';
2
+ import type { DeviceModelFilters } from '../../../../lib/seam/components/SupportedDeviceTable/use-filtered-device-models.js';
3
+ export interface SupportedDeviceFilterAreaProps {
4
+ filterValue: string;
5
+ setFilterValue: (filter: string) => void;
6
+ filters: DeviceModelFilters;
7
+ setFilters: Dispatch<SetStateAction<DeviceModelFilters>>;
8
+ }
9
+ export declare function SupportedDeviceFilterArea({ filterValue, setFilterValue, filters, setFilters, }: SupportedDeviceFilterAreaProps): JSX.Element;
@@ -1,44 +1,32 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { capitalize } from '../../../lib/capitalize.js';
3
- import { Button } from '../../../lib/ui/Button.js';
4
- import { Menu } from '../../../lib/ui/Menu/Menu.js';
5
- import { FilterCategoryMenu } from '../../../lib/ui/SupportedDeviceTable/FilterCategoryMenu.js';
6
- import { SearchTextField } from '../../../lib/ui/TextField/SearchTextField.js';
7
- export function SupportedDeviceFilterArea({ deviceModels, filterValue, setFilterValue, filters, setFilters, }) {
8
- const appliedFilters = Object.keys(filters).filter((key) => {
9
- const filterProperty = filters[key];
10
- return (filterProperty !== undefined &&
11
- filterProperty !== null &&
12
- filterProperty !== false);
13
- });
14
- const appliedFiltersCount = appliedFilters.length;
15
- const getAvailablePropertiesFromDeviceModels = (property) => {
16
- const properties = new Set();
17
- deviceModels.forEach((deviceModel) => {
18
- properties.add(capitalize(deviceModel[property]));
19
- });
20
- return Array.from(properties);
21
- };
2
+ import { FilterCategoryMenu } from '../../../../lib/seam/components/SupportedDeviceTable/FilterCategoryMenu.js';
3
+ import { useDeviceModels } from '../../../../lib/seam/device-models/use-device-models.js';
4
+ import { capitalize } from '../../../../lib/strings.js';
5
+ import { Button } from '../../../../lib/ui/Button.js';
6
+ import { Menu } from '../../../../lib/ui/Menu/Menu.js';
7
+ import { SearchTextField } from '../../../../lib/ui/TextField/SearchTextField.js';
8
+ export function SupportedDeviceFilterArea({ filterValue, setFilterValue, filters, setFilters, }) {
9
+ const appliedFiltersCount = Object.values(filters).filter((v) => v != null && v !== false).length;
10
+ const filterProperty = 'brand';
11
+ const availableProperties = useAvailableProperties(filterProperty);
22
12
  const resetFilter = (filterType) => {
23
13
  setFilters((filters) => ({
24
14
  ...filters,
25
15
  [filterType]: null,
26
16
  }));
27
17
  };
28
- const isPlural = appliedFiltersCount > 1;
29
- const filterButtonLabel = isPlural
30
- ? `Filters (${appliedFiltersCount})`
31
- : 'Filter';
18
+ const filterButtonLabel = appliedFiltersCount > 0 ? `${t.filters} (${appliedFiltersCount})` : t.filter;
19
+ const allLabel = t.all;
32
20
  return (_jsxs("div", { className: 'seam-supported-device-table-filter-area', children: [_jsx("div", { className: 'seam-deliberate-block' }), _jsxs("div", { className: 'seam-filters-wrap', children: [_jsx(Menu, { renderButton: ({ onOpen }) => (_jsx(Button, { variant: 'outline', className: 'seam-filters-button', onClick: onOpen, children: filterButtonLabel })), children: _jsxs("div", { className: 'seam-supported-device-table-filter-menu', onClick: (event) => {
33
21
  event.stopPropagation();
34
- }, children: [_jsx("div", { className: 'seam-filter-menu-row', children: _jsx(FilterCategoryMenu, { label: 'Brand', options: getAvailablePropertiesFromDeviceModels('brand'), onSelect: (brand) => {
22
+ }, children: [_jsx("div", { className: 'seam-filter-menu-row', children: _jsx(FilterCategoryMenu, { label: t.brand, allLabel: allLabel, options: availableProperties, onSelect: (brand) => {
35
23
  setFilters((filters) => ({
36
24
  ...filters,
37
25
  brand,
38
26
  }));
39
- }, buttonLabel: filters.brand ?? 'All', onAllOptionSelect: () => {
40
- resetFilter('brand');
41
- } }) }), _jsx("div", { className: 'seam-filter-menu-row', children: _jsxs("label", { htmlFor: 'supportedOnly', className: 'seam-filter-checkbox-label', children: [_jsx("p", { children: "Supported" }), _jsx("input", { id: 'supportedOnly', name: 'supportedOnly', type: 'checkbox', className: 'seam-filter-checkbox', checked: filters.supportedOnly, onChange: (event) => {
27
+ }, buttonLabel: filters.brand ?? allLabel, onAllOptionSelect: () => {
28
+ resetFilter(filterProperty);
29
+ } }) }), _jsx("div", { className: 'seam-filter-menu-row', children: _jsxs("label", { htmlFor: 'supportedOnly', className: 'seam-filter-checkbox-label', children: [_jsx("p", { children: t.supported }), _jsx("input", { id: 'supportedOnly', name: 'supportedOnly', type: 'checkbox', className: 'seam-filter-checkbox', checked: filters.supportedOnly, onChange: (event) => {
42
30
  setFilters((filters) => ({
43
31
  ...filters,
44
32
  supportedOnly: event.target.checked,
@@ -47,4 +35,21 @@ export function SupportedDeviceFilterArea({ deviceModels, filterValue, setFilter
47
35
  setFilterValue(value);
48
36
  }, className: 'seam-supported-device-table-filter-area-search-bar' }) })] })] }));
49
37
  }
38
+ const useAvailableProperties = (property) => {
39
+ const { deviceModels } = useDeviceModels();
40
+ if (deviceModels == null)
41
+ return [];
42
+ const properties = new Set();
43
+ for (const deviceModel of deviceModels) {
44
+ properties.add(capitalize(deviceModel[property]));
45
+ }
46
+ return Array.from(properties);
47
+ };
48
+ const t = {
49
+ all: 'All',
50
+ brand: 'Brand',
51
+ supported: 'Supported',
52
+ filter: 'Filter',
53
+ filters: 'Filters',
54
+ };
50
55
  //# sourceMappingURL=SupportedDeviceFilterArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupportedDeviceFilterArea.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare function SupportedDeviceHeader(): JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function SupportedDeviceHeader() {
3
+ return (_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", {}), _jsx("th", { children: t.category }), _jsx("th", { children: t.modelName }), _jsx("th", { children: t.manufacturerModelId }), _jsx("th", { children: t.connectionType }), _jsx("th", { children: t.status })] }) }));
4
+ }
5
+ const t = {
6
+ category: 'Category',
7
+ modelName: 'Model Name',
8
+ manufacturerModelId: 'Manufacturer Model ID',
9
+ connectionType: 'Connection Type',
10
+ status: 'Status',
11
+ };
12
+ //# sourceMappingURL=SupportedDeviceHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupportedDeviceHeader.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/SupportedDeviceTable/SupportedDeviceHeader.tsx"],"names":[],"mappings":";AAAA,MAAM,UAAU,qBAAqB;IACnC,OAAO,CACL,0BACE,yBACE,cAAM,EACN,uBAAK,CAAC,CAAC,QAAQ,GAAM,EACrB,uBAAK,CAAC,CAAC,SAAS,GAAM,EACtB,uBAAK,CAAC,CAAC,mBAAmB,GAAM,EAChC,uBAAK,CAAC,CAAC,cAAc,GAAM,EAC3B,uBAAK,CAAC,CAAC,MAAM,GAAM,IAChB,GACC,CACT,CAAA;AACH,CAAC;AAED,MAAM,CAAC,GAAG;IACR,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,YAAY;IACvB,mBAAmB,EAAE,uBAAuB;IAC5C,cAAc,EAAE,iBAAiB;IACjC,MAAM,EAAE,QAAQ;CACjB,CAAA"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import type { DeviceModel } from 'seamapi';
3
+ export interface SupportedDeviceRowProps {
4
+ deviceModel: DeviceModel;
5
+ }
6
+ export declare function SupportedDeviceRow({ deviceModel, }: SupportedDeviceRowProps): JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import classNames from 'classnames';
3
+ import { capitalize } from '../../../../lib/strings.js';
4
+ export function SupportedDeviceRow({ deviceModel, }) {
5
+ const statusColor = supportLevelColors[deviceModel.support_level] ?? 'gray';
6
+ return (_jsxs("tr", { children: [_jsx("td", { children: _jsx("img", { width: 40, src: deviceModel.icon_url }) }), _jsx("td", { children: deviceModel.main_category }), _jsx("td", { children: deviceModel.model_name }), _jsx("td", { children: deviceModel.manufacturer_model_id }), _jsx("td", { children: connectionTypeNames[deviceModel.connection_type] }), _jsx("td", { children: _jsx("div", { className: classNames('seam-status-pill', `status-${statusColor}`), children: _jsx("span", { children: capitalize(deviceModel.support_level) }) }) })] }));
7
+ }
8
+ const supportLevelColors = {
9
+ live: 'green',
10
+ beta: 'blue',
11
+ unsupported: 'orange',
12
+ };
13
+ const connectionTypeNames = {
14
+ wifi: 'Wifi',
15
+ zwave: 'Z-Wave',
16
+ zigbee: 'Zigbee',
17
+ unknown: 'Unknown',
18
+ };
19
+ //# sourceMappingURL=SupportedDeviceRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupportedDeviceRow.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/SupportedDeviceTable/SupportedDeviceRow.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AAGnC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAM3C,MAAM,UAAU,kBAAkB,CAAC,EACjC,WAAW,GACa;IACxB,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,MAAM,CAAA;IAC3E,OAAO,CACL,yBACE,uBACE,cAAK,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,QAAQ,GAAI,GAC1C,EACL,uBAAK,WAAW,CAAC,aAAa,GAAM,EACpC,uBAAK,WAAW,CAAC,UAAU,GAAM,EACjC,uBAAK,WAAW,CAAC,qBAAqB,GAAM,EAC5C,uBAAK,mBAAmB,CAAC,WAAW,CAAC,eAAe,CAAC,GAAM,EAC3D,uBACE,cACE,SAAS,EAAE,UAAU,CAAC,kBAAkB,EAAE,UAAU,WAAW,EAAE,CAAC,YAElE,yBAAO,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,GAAQ,GAChD,GACH,IACF,CACN,CAAA;AACH,CAAC;AAED,MAAM,kBAAkB,GAGpB;IACF,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,QAAQ;CACtB,CAAA;AAED,MAAM,mBAAmB,GAAmD;IAC1E,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;CACnB,CAAA"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export interface SupportedDeviceTableProps {
3
+ cannotFilter?: boolean;
4
+ }
5
+ export declare function SupportedDeviceTable({ cannotFilter, }: SupportedDeviceTableProps): JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { SupportedDeviceContent } from '../../../../lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.js';
4
+ import { SupportedDeviceFilterArea } from '../../../../lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.js';
5
+ export function SupportedDeviceTable({ cannotFilter = false, }) {
6
+ const [filterValue, setFilterValue] = useState('');
7
+ const [filters, setFilters] = useState({
8
+ supportedOnly: false,
9
+ category: null,
10
+ brand: null,
11
+ });
12
+ return (_jsxs("div", { className: 'seam-supported-device-table-content-wrap', children: [!cannotFilter && (_jsx(SupportedDeviceFilterArea, { filterValue: filterValue, setFilterValue: setFilterValue, filters: filters, setFilters: setFilters })), _jsx(SupportedDeviceContent, { resetFilterValue: () => {
13
+ setFilterValue('');
14
+ }, filterValue: filterValue, filters: filters })] }));
15
+ }
16
+ //# sourceMappingURL=SupportedDeviceTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SupportedDeviceTable.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/SupportedDeviceTable/SupportedDeviceTable.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oEAAoE,CAAA;AAC3G,OAAO,EAAE,yBAAyB,EAAE,MAAM,uEAAuE,CAAA;AAOjH,MAAM,UAAU,oBAAoB,CAAC,EACnC,YAAY,GAAG,KAAK,GACM;IAC1B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAqB;QACzD,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;KACZ,CAAC,CAAA;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,0CAA0C,aACtD,CAAC,YAAY,IAAI,CAChB,KAAC,yBAAyB,IACxB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,GACtB,CACH,EACD,KAAC,sBAAsB,IACrB,gBAAgB,EAAE,GAAG,EAAE;oBACrB,cAAc,CAAC,EAAE,CAAC,CAAA;gBACpB,CAAC,EACD,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GAChB,IACE,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { useDeviceModels } from '../../../../lib/seam/device-models/use-device-models.js';
2
+ export interface DeviceModelFilters {
3
+ supportedOnly: boolean;
4
+ category: string | null;
5
+ brand: string | null;
6
+ }
7
+ export declare const useFilteredDeviceModels: (filterValue: string, filters: DeviceModelFilters) => ReturnType<typeof useDeviceModels>;
@@ -0,0 +1,18 @@
1
+ import { useDeviceModels, } from '../../../../lib/seam/device-models/use-device-models.js';
2
+ export const useFilteredDeviceModels = (filterValue, filters) => {
3
+ const params = {};
4
+ if (filterValue.trim() !== '') {
5
+ params.text_search = filterValue.trim();
6
+ }
7
+ if (filters.supportedOnly) {
8
+ params.support_level = 'live';
9
+ }
10
+ if (filters.category !== null) {
11
+ params.main_category = filters.category;
12
+ }
13
+ if (filters.brand !== null) {
14
+ params.brand = filters.brand;
15
+ }
16
+ return useDeviceModels(params);
17
+ };
18
+ //# sourceMappingURL=use-filtered-device-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-filtered-device-models.js","sourceRoot":"","sources":["../../../../src/lib/seam/components/SupportedDeviceTable/use-filtered-device-models.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAEhB,MAAM,6CAA6C,CAAA;AAQpD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,WAAmB,EACnB,OAA2B,EACS,EAAE;IACtC,MAAM,MAAM,GAA0B,EAAE,CAAA;IAExC,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,CAAA;KACxC;IAED,IAAI,OAAO,CAAC,aAAa,EAAE;QACzB,MAAM,CAAC,aAAa,GAAG,MAAM,CAAA;KAC9B;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE;QAC7B,MAAM,CAAC,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAA;KACxC;IAED,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE;QAC1B,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;KAC7B;IAED,OAAO,eAAe,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/seam/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAA;AACxD,cAAc,sCAAsC,CAAA;AACpD,cAAc,kCAAkC,CAAA;AAChD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gDAAgD,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { DeviceModel, DeviceModelsListRequest } from 'seamapi';
2
+ import type { UseSeamQueryResult } from '../../../lib/seam/use-seam-query-result.js';
3
+ export type UseDeviceModelsParams = DeviceModelsListRequest;
4
+ export type UseDeviceModelsData = DeviceModel[];
5
+ export declare function useDeviceModels(params?: UseDeviceModelsParams): UseSeamQueryResult<'deviceModels', UseDeviceModelsData>;
@@ -0,0 +1,17 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ import { useSeamClient } from '../../../lib/seam/use-seam-client.js';
3
+ export function useDeviceModels(params) {
4
+ const { client } = useSeamClient();
5
+ const { data, ...rest } = useQuery({
6
+ enabled: client != null,
7
+ queryKey: ['device_models', 'list', params],
8
+ queryFn: async () => {
9
+ if (client == null)
10
+ return [];
11
+ const deviceModels = await client?.deviceModels.list(params);
12
+ return deviceModels;
13
+ },
14
+ });
15
+ return { ...rest, deviceModels: data };
16
+ }
17
+ //# sourceMappingURL=use-device-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-device-models.js","sourceRoot":"","sources":["../../../src/lib/seam/device-models/use-device-models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAQhD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAM3D,MAAM,UAAU,eAAe,CAC7B,MAA8B;IAE9B,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAA;IAElC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAGhC;QACA,OAAO,EAAE,MAAM,IAAI,IAAI;QACvB,QAAQ,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC;QAC3C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAO,EAAE,CAAA;YAC7B,MAAM,YAAY,GAAG,MAAM,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC5D,OAAO,YAAY,CAAA;QACrB,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAA;AACxC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { useQuery, useQueryClient } from '@tanstack/react-query';
2
+ import { compareByCreatedAtDesc } from '../../../lib/dates.js';
2
3
  import { useSeamClient } from '../../../lib/seam/use-seam-client.js';
3
- import { byCreatedAt } from '../../../lib/sort-by.js';
4
4
  export function useDevices(params) {
5
5
  const { client } = useSeamClient();
6
6
  const queryClient = useQueryClient();
@@ -11,9 +11,9 @@ export function useDevices(params) {
11
11
  if (client == null)
12
12
  return [];
13
13
  const devices = await client?.devices.list(params);
14
- return devices.sort(byCreatedAt);
14
+ return devices.sort(compareByCreatedAtDesc);
15
15
  },
16
- onSuccess(devices) {
16
+ onSuccess: (devices) => {
17
17
  // Prime cache for each device.
18
18
  for (const device of devices) {
19
19
  queryClient.setQueryData(['devices', 'get', { device_id: device.device_id }], device);
@@ -1 +1 @@
1
- {"version":3,"file":"use-devices.js","sourceRoot":"","sources":["../../../src/lib/seam/devices/use-devices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAShE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAK5C,MAAM,UAAU,UAAU,CACxB,MAAyB;IAEzB,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAA;IAClC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAChC;QACE,OAAO,EAAE,MAAM,IAAI,IAAI;QACvB,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;QACrC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAO,EAAE,CAAA;YAC7B,MAAM,OAAO,GAAG,MAAM,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClD,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAClC,CAAC;QACD,SAAS,CAAC,OAAO;YACf,+BAA+B;YAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,WAAW,CAAC,YAAY,CACtB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,EACnD,MAAM,CACP,CAAA;aACF;QACH,CAAC;KACF,CACF,CAAA;IAED,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AACnC,CAAC"}
1
+ {"version":3,"file":"use-devices.js","sourceRoot":"","sources":["../../../src/lib/seam/devices/use-devices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAShE,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAM3D,MAAM,UAAU,UAAU,CACxB,MAAyB;IAEzB,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE,CAAA;IAClC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAChC;QACE,OAAO,EAAE,MAAM,IAAI,IAAI;QACvB,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;QACrC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAO,EAAE,CAAA;YAC7B,MAAM,OAAO,GAAG,MAAM,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClD,OAAO,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QAC7C,CAAC;QACD,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;YACrB,+BAA+B;YAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,WAAW,CAAC,YAAY,CACtB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,EACnD,MAAM,CACP,CAAA;aACF;QACH,CAAC;KACF,CACF,CAAA;IAED,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AACnC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { useMutation, useQueryClient, } from '@tanstack/react-query';
2
- import { useSeamClient } from '../../../lib/index.js';
3
2
  import { isLockDevice } from '../../../lib/seam/devices/types.js';
3
+ import { useSeamClient } from '../../../lib/seam/use-seam-client.js';
4
4
  export function useToggleLock({ device_id: deviceId, properties: { locked }, }) {
5
5
  const { client } = useSeamClient();
6
6
  const queryClient = useQueryClient();