@seamapi/react 1.26.0 → 1.28.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 (169) hide show
  1. package/README.md +55 -4
  2. package/dist/elements.js +3056 -2956
  3. package/dist/elements.js.map +1 -1
  4. package/lib/icons/AccessCodeKey.d.ts +1 -1
  5. package/lib/icons/AccessCodeKey.js +3 -1
  6. package/lib/icons/AccessCodeKey.js.map +1 -1
  7. package/lib/icons/ArrowBack.d.ts +1 -1
  8. package/lib/icons/ArrowBack.js +5 -3
  9. package/lib/icons/ArrowBack.js.map +1 -1
  10. package/lib/icons/ArrowRestart.d.ts +1 -1
  11. package/lib/icons/ArrowRestart.js +5 -3
  12. package/lib/icons/ArrowRestart.js.map +1 -1
  13. package/lib/icons/BatteryLevelCritical.d.ts +1 -1
  14. package/lib/icons/BatteryLevelCritical.js +3 -1
  15. package/lib/icons/BatteryLevelCritical.js.map +1 -1
  16. package/lib/icons/BatteryLevelFull.d.ts +1 -1
  17. package/lib/icons/BatteryLevelFull.js +3 -1
  18. package/lib/icons/BatteryLevelFull.js.map +1 -1
  19. package/lib/icons/BatteryLevelHigh.d.ts +1 -1
  20. package/lib/icons/BatteryLevelHigh.js +3 -1
  21. package/lib/icons/BatteryLevelHigh.js.map +1 -1
  22. package/lib/icons/BatteryLevelLow.d.ts +1 -1
  23. package/lib/icons/BatteryLevelLow.js +3 -1
  24. package/lib/icons/BatteryLevelLow.js.map +1 -1
  25. package/lib/icons/BatteryLevelWired.d.ts +1 -1
  26. package/lib/icons/BatteryLevelWired.js +5 -3
  27. package/lib/icons/BatteryLevelWired.js.map +1 -1
  28. package/lib/icons/Check.d.ts +1 -1
  29. package/lib/icons/Check.js +3 -1
  30. package/lib/icons/Check.js.map +1 -1
  31. package/lib/icons/ChevronDown.d.ts +1 -1
  32. package/lib/icons/ChevronDown.js +3 -1
  33. package/lib/icons/ChevronDown.js.map +1 -1
  34. package/lib/icons/ChevronRight.d.ts +1 -1
  35. package/lib/icons/ChevronRight.js +5 -3
  36. package/lib/icons/ChevronRight.js.map +1 -1
  37. package/lib/icons/Close.d.ts +1 -1
  38. package/lib/icons/Close.js +5 -3
  39. package/lib/icons/Close.js.map +1 -1
  40. package/lib/icons/Copy.d.ts +1 -1
  41. package/lib/icons/Copy.js +5 -3
  42. package/lib/icons/Copy.js.map +1 -1
  43. package/lib/icons/DotsEllipsisMore.d.ts +1 -1
  44. package/lib/icons/DotsEllipsisMore.js +5 -3
  45. package/lib/icons/DotsEllipsisMore.js.map +1 -1
  46. package/lib/icons/ExclamationCircle.d.ts +1 -1
  47. package/lib/icons/ExclamationCircle.js +5 -3
  48. package/lib/icons/ExclamationCircle.js.map +1 -1
  49. package/lib/icons/ExclamationCircleOutline.d.ts +1 -1
  50. package/lib/icons/ExclamationCircleOutline.js +5 -3
  51. package/lib/icons/ExclamationCircleOutline.js.map +1 -1
  52. package/lib/icons/LockLocked.d.ts +1 -1
  53. package/lib/icons/LockLocked.js +5 -3
  54. package/lib/icons/LockLocked.js.map +1 -1
  55. package/lib/icons/LockUnlocked.d.ts +1 -1
  56. package/lib/icons/LockUnlocked.js +5 -3
  57. package/lib/icons/LockUnlocked.js.map +1 -1
  58. package/lib/icons/OnlineStatusAccountOffline.d.ts +1 -1
  59. package/lib/icons/OnlineStatusAccountOffline.js +5 -3
  60. package/lib/icons/OnlineStatusAccountOffline.js.map +1 -1
  61. package/lib/icons/OnlineStatusDeviceOffline.d.ts +1 -1
  62. package/lib/icons/OnlineStatusDeviceOffline.js +3 -1
  63. package/lib/icons/OnlineStatusDeviceOffline.js.map +1 -1
  64. package/lib/icons/OnlineStatusOnline.d.ts +1 -1
  65. package/lib/icons/OnlineStatusOnline.js +3 -1
  66. package/lib/icons/OnlineStatusOnline.js.map +1 -1
  67. package/lib/icons/Seam.d.ts +1 -1
  68. package/lib/icons/Seam.js +5 -3
  69. package/lib/icons/Seam.js.map +1 -1
  70. package/lib/icons/Search.d.ts +1 -1
  71. package/lib/icons/Search.js +5 -3
  72. package/lib/icons/Search.js.map +1 -1
  73. package/lib/icons/TriangleWarning.d.ts +1 -1
  74. package/lib/icons/TriangleWarning.js +5 -3
  75. package/lib/icons/TriangleWarning.js.map +1 -1
  76. package/lib/icons/TriangleWarningOutline.d.ts +1 -1
  77. package/lib/icons/TriangleWarningOutline.js +3 -1
  78. package/lib/icons/TriangleWarningOutline.js.map +1 -1
  79. package/lib/seam/access-codes/use-access-code.js +1 -1
  80. package/lib/seam/access-codes/use-access-code.js.map +1 -1
  81. package/lib/seam/access-codes/use-access-codes.js +1 -1
  82. package/lib/seam/access-codes/use-access-codes.js.map +1 -1
  83. package/lib/seam/components/DeviceTable/DeviceRow.js +11 -19
  84. package/lib/seam/components/DeviceTable/DeviceRow.js.map +1 -1
  85. package/lib/seam/components/SupportedDeviceTable/HiddenDevicesOverlay.d.ts +2 -1
  86. package/lib/seam/components/SupportedDeviceTable/HiddenDevicesOverlay.js +1 -1
  87. package/lib/seam/components/SupportedDeviceTable/HiddenDevicesOverlay.js.map +1 -1
  88. package/lib/seam/components/SupportedDeviceTable/ShowAllDevicesButton.d.ts +2 -1
  89. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceBrandSection.d.ts +2 -1
  90. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceBrandSection.js +4 -7
  91. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceBrandSection.js.map +1 -1
  92. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.js +1 -1
  93. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.js.map +1 -1
  94. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.d.ts +2 -1
  95. package/lib/seam/components/SupportedDeviceTable/{SupportedDeviceFilterResultRowProps.d.ts → SupportedDeviceFilterResultRow.d.ts} +3 -2
  96. package/lib/seam/components/SupportedDeviceTable/{SupportedDeviceFilterResultRowProps.js → SupportedDeviceFilterResultRow.js} +1 -1
  97. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterResultRow.js.map +1 -0
  98. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceRow.d.ts +5 -4
  99. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceRow.js +3 -3
  100. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceRow.js.map +1 -1
  101. package/lib/seam/components/SupportedDeviceTable/use-device-provider.d.ts +1 -1
  102. package/lib/seam/components/SupportedDeviceTable/use-device-provider.js +9 -11
  103. package/lib/seam/components/SupportedDeviceTable/use-device-provider.js.map +1 -1
  104. package/lib/seam/connect-webviews/use-create-connect-webview.d.ts +2 -1
  105. package/lib/seam/connect-webviews/use-create-connect-webview.js.map +1 -1
  106. package/lib/seam/device-models/use-device-models.js +1 -2
  107. package/lib/seam/device-models/use-device-models.js.map +1 -1
  108. package/lib/seam/devices/use-device-providers.d.ts +5 -5
  109. package/lib/seam/devices/use-device-providers.js +7 -8
  110. package/lib/seam/devices/use-device-providers.js.map +1 -1
  111. package/lib/seam/devices/use-device.js +1 -1
  112. package/lib/seam/devices/use-device.js.map +1 -1
  113. package/lib/seam/devices/use-devices.js +1 -1
  114. package/lib/seam/devices/use-devices.js.map +1 -1
  115. package/lib/seam/index.d.ts +2 -0
  116. package/lib/seam/index.js +2 -0
  117. package/lib/seam/index.js.map +1 -1
  118. package/lib/ui/device/OnlineStatus.d.ts +1 -0
  119. package/lib/ui/device/OnlineStatus.js +6 -9
  120. package/lib/ui/device/OnlineStatus.js.map +1 -1
  121. package/lib/version.d.ts +1 -1
  122. package/lib/version.js +1 -1
  123. package/package.json +5 -6
  124. package/src/lib/element.tsx +2 -2
  125. package/src/lib/icons/AccessCodeKey.tsx +22 -18
  126. package/src/lib/icons/ArrowBack.tsx +32 -26
  127. package/src/lib/icons/ArrowRestart.tsx +32 -28
  128. package/src/lib/icons/BatteryLevelCritical.tsx +31 -25
  129. package/src/lib/icons/BatteryLevelFull.tsx +31 -18
  130. package/src/lib/icons/BatteryLevelHigh.tsx +31 -25
  131. package/src/lib/icons/BatteryLevelLow.tsx +31 -25
  132. package/src/lib/icons/BatteryLevelWired.tsx +35 -29
  133. package/src/lib/icons/Check.tsx +20 -14
  134. package/src/lib/icons/ChevronDown.tsx +22 -18
  135. package/src/lib/icons/ChevronRight.tsx +32 -28
  136. package/src/lib/icons/Close.tsx +32 -26
  137. package/src/lib/icons/Copy.tsx +32 -26
  138. package/src/lib/icons/DotsEllipsisMore.tsx +33 -27
  139. package/src/lib/icons/ExclamationCircle.tsx +33 -27
  140. package/src/lib/icons/ExclamationCircleOutline.tsx +33 -27
  141. package/src/lib/icons/LockLocked.tsx +34 -28
  142. package/src/lib/icons/LockUnlocked.tsx +34 -30
  143. package/src/lib/icons/OnlineStatusAccountOffline.tsx +33 -27
  144. package/src/lib/icons/OnlineStatusDeviceOffline.tsx +27 -21
  145. package/src/lib/icons/OnlineStatusOnline.tsx +25 -19
  146. package/src/lib/icons/Seam.tsx +24 -18
  147. package/src/lib/icons/Search.tsx +32 -26
  148. package/src/lib/icons/TriangleWarning.tsx +33 -27
  149. package/src/lib/icons/TriangleWarningOutline.tsx +22 -16
  150. package/src/lib/seam/access-codes/use-access-code.ts +1 -1
  151. package/src/lib/seam/access-codes/use-access-codes.ts +1 -1
  152. package/src/lib/seam/components/DeviceTable/DeviceRow.tsx +28 -44
  153. package/src/lib/seam/components/SupportedDeviceTable/HiddenDevicesOverlay.tsx +3 -1
  154. package/src/lib/seam/components/SupportedDeviceTable/ShowAllDevicesButton.tsx +1 -1
  155. package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceBrandSection.tsx +9 -12
  156. package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceContent.tsx +1 -1
  157. package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterArea.tsx +1 -1
  158. package/src/lib/seam/components/SupportedDeviceTable/{SupportedDeviceFilterResultRowProps.tsx → SupportedDeviceFilterResultRow.tsx} +2 -2
  159. package/src/lib/seam/components/SupportedDeviceTable/SupportedDeviceRow.tsx +10 -4
  160. package/src/lib/seam/components/SupportedDeviceTable/use-device-provider.ts +9 -15
  161. package/src/lib/seam/connect-webviews/use-create-connect-webview.ts +4 -3
  162. package/src/lib/seam/device-models/use-device-models.ts +1 -2
  163. package/src/lib/seam/devices/use-device-providers.ts +22 -14
  164. package/src/lib/seam/devices/use-device.ts +1 -1
  165. package/src/lib/seam/devices/use-devices.ts +1 -1
  166. package/src/lib/seam/index.ts +2 -0
  167. package/src/lib/ui/device/OnlineStatus.tsx +13 -14
  168. package/src/lib/version.ts +1 -1
  169. package/lib/seam/components/SupportedDeviceTable/SupportedDeviceFilterResultRowProps.js.map +0 -1
package/README.md CHANGED
@@ -44,7 +44,7 @@ $ npm install @seamapi/react
44
44
  2. Wrap your React app with the `SeamProvider`.
45
45
  3. Drop in Seam Components.
46
46
 
47
- ```ts
47
+ ```tsx
48
48
  import { ConnectAccountButton, DeviceTable, SeamProvider } from '@seamapi/react'
49
49
 
50
50
  export const App = () => {
@@ -86,6 +86,57 @@ export const App = () => {
86
86
 
87
87
  [Seam Console]: https://console.seam.co/
88
88
 
89
+ ### React Hooks
90
+
91
+ All components interact with the Seam API via a set of React Hooks.
92
+ You can use these hooks directly in your application to build your own components.
93
+
94
+ Import hooks directly from `@seamapi/react` or `@seamapi/react/hooks`.
95
+ For most applications, these imports are equivalent,
96
+ however if you are only using the hooks, we recommend importing from `@seamapi/react/hooks`
97
+ as it may enable performance or bundling improvements depending on your build system.
98
+
99
+ Hooks must be used inside the `SeamProvider`.
100
+ They are well-typed and follow a uniform API.
101
+
102
+ ```tsx
103
+ import { SeamProvider, useDevices } from '@seamapi/react/hooks'
104
+
105
+ export const App = () => {
106
+ return (
107
+ <SeamProvider publishableKey='your_publishable_key'>
108
+ <main>
109
+ <h1>My App</h1>
110
+ <Devices />
111
+ </main>
112
+ </SeamProvider>
113
+ )
114
+ }
115
+
116
+ const Devices = () => {
117
+ const { devices, isLoading, isError, error } = useDevices()
118
+
119
+ if (isLoading) {
120
+ return <p>Loading</p>
121
+ }
122
+
123
+ if (isError) {
124
+ return <p>{error?.message}</p>
125
+ }
126
+
127
+ return (
128
+ <>
129
+ <h2>Devices</h2>
130
+ <div>
131
+ {devices?.map((device) => (
132
+ <p key={device.device_id}>{device.properties.name}</p>
133
+ ))}
134
+ </div>
135
+ </>
136
+ )
137
+ }
138
+ ```
139
+
89
140
  ### Styles
90
141
 
91
142
  > CSS is automatically included unless using `<SeamProvider disableCssInjection />`.
@@ -98,7 +149,7 @@ If you prefer to manually load the CSS,
98
149
  this behavior may be disabled with the `disableCssInjection` prop.
99
150
  Then, either import the CSS using a supported bundler with
100
151
 
101
- ```ts
152
+ ```tsx
102
153
  import '@seamapi/react/index.css'
103
154
  ```
104
155
 
@@ -156,7 +207,7 @@ default-src 'self'; connect-src 'self' https://connect.getseam.com; img-src 'sel
156
207
 
157
208
  #### Granular CSP
158
209
 
159
- Depending on how which assets you choose to host yourself, the CSP may be made stricter.
210
+ Depending on which assets you choose to host yourself, the CSP may be made stricter.
160
211
 
161
212
  By self hosting the styles and recommended fonts (or choosing not to use them),
162
213
  and proxying the Seam API endpoint, the components are compatible with this strict CSP:
@@ -311,7 +362,7 @@ To add a new icon:
311
362
  2. Run `npm run generate`.
312
363
  3. Import with
313
364
 
314
- ```ts
365
+ ```tsx
315
366
  import { SeamIcon } from 'lib/icons/SeamIcon.js'
316
367
  ```
317
368