@seamapi/react 0.26.1 → 0.27.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.
package/index.css CHANGED
@@ -131,10 +131,16 @@
131
131
  .seam-components .seam-table-header {
132
132
  display: flex;
133
133
  justify-content: space-between;
134
- align-items: center;
134
+ align-items: flex-start;
135
135
  height: 56px;
136
136
  padding: 0 16px;
137
137
  }
138
+ .seam-components .seam-table-header .seam-body {
139
+ display: flex;
140
+ justify-content: space-between;
141
+ align-items: center;
142
+ width: 100%;
143
+ }
138
144
  .seam-components .seam-table-title {
139
145
  font-size: 21px;
140
146
  line-height: 132%;
@@ -212,10 +218,67 @@
212
218
  border: 1px solid #d5d8dc;
213
219
  }
214
220
  .seam-components .seam-text-field {
215
- padding: 0 8px;
216
- height: 40px;
217
221
  border: 1px solid #d5d8dc;
218
222
  border-radius: 8px;
223
+ padding: 0 8px;
224
+ display: flex;
225
+ align-items: center;
226
+ }
227
+ .seam-components .seam-text-field:hover {
228
+ border-color: #232b3a;
229
+ }
230
+ .seam-components .seam-text-field:focus-within {
231
+ border-color: #007afc;
232
+ }
233
+ .seam-components .seam-text-field.seam-disabled {
234
+ border-color: #d5d8dc;
235
+ background: #ececec;
236
+ cursor: not-allowed;
237
+ }
238
+ .seam-components .seam-text-field.seam-disabled .seam-text-field-input {
239
+ cursor: not-allowed;
240
+ }
241
+ .seam-components .seam-text-field .seam-text-field-input {
242
+ height: 40px;
243
+ border: 0;
244
+ }
245
+ .seam-components .seam-text-field .seam-text-field-input:focus {
246
+ outline: none;
247
+ }
248
+ .seam-components .seam-text-field .seam-adornment {
249
+ display: flex;
250
+ align-items: center;
251
+ }
252
+ .seam-components .seam-text-field .seam-adornment svg {
253
+ scale: 0.8333;
254
+ }
255
+ .seam-components .seam-text-field .seam-adornment.seam-start {
256
+ margin-right: 4px;
257
+ }
258
+ .seam-components .seam-text-field .seam-adornment button {
259
+ width: 24px;
260
+ height: 24px;
261
+ display: flex;
262
+ justify-content: center;
263
+ align-items: center;
264
+ appearance: none;
265
+ background-color: transparent;
266
+ padding: 0;
267
+ margin: 0;
268
+ border: 0;
269
+ box-shadow: none;
270
+ border-radius: 4px;
271
+ cursor: pointer;
272
+ }
273
+ .seam-components .seam-text-field .seam-adornment button:hover {
274
+ background-color: #e9edef;
275
+ }
276
+ .seam-components .seam-text-field .seam-adornment button.seam-hidden {
277
+ opacity: 0;
278
+ visibility: hidden;
279
+ }
280
+ .seam-components .seam-text-field.seam-search-text-field .seam-text-field-input {
281
+ width: 100%;
219
282
  }
220
283
  .seam-components .seam-btn {
221
284
  font-family: "Source Sans Pro", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
@@ -490,6 +553,9 @@
490
553
  align-items: center;
491
554
  justify-content: center;
492
555
  }
556
+ .seam-components .seam-device-table .seam-search-text-field {
557
+ width: 170px;
558
+ }
493
559
  .seam-components .seam-device-table .seam-table-row {
494
560
  cursor: pointer;
495
561
  }
package/index.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["src/styles/_reset.scss","src/styles/_main.scss","src/styles/_typography.scss","src/styles/_colors.scss","src/styles/_tables.scss","src/styles/_inputs.scss","src/styles/_buttons.scss","src/styles/_layout.scss","src/styles/_icons.scss","src/styles/_menus.scss","src/styles/_device-details.scss","src/styles/_device-table.scss","src/styles/_access-code-table.scss","src/styles/_access-code-details.scss","src/styles/_alert.scss","src/styles/_supported-devices.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;ACgBA;ECbE;;AFGA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAmDE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;;AAGF;AAAA;EAEE;;AAGF;AAAA;EAEE;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AEtGF;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;AAKF;EACE,OCTU;;ADcZ;EACE,OCPS;;ADYX;EACE,OCvBW;;AD4Bb;EACE;EACA;EACA;EACA;EACA;;AExCF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;AAMJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAMJ;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA,YD9CG;;ACgDH;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE,MDlEI;;ACwEZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;;ACxGJ;EACE;EACA;EACA;EACA;;AC2GF;EJ/GA;EIoHE;EACA;;AAjFF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAKF;EACE,YH7DM;EG8DN;EACA;;AAEA;EACE,YH5DS;EG6DT,cH7DS;;AGgEX;EAEE,YHjEQ;EGkER,cHlEQ;;AGsEZ;EACE,OH9EM;EG+EN;EACA;;AAEA;EACE,YH9EM;;AGiFR;EAEE;EACA,OHxFO;;AG4FX;EACE,OHrFU;EGsFV;;AAEA;EACE,YHjFC;EGkFD,cHxFU;;AG2FZ;EAEE,OH7FU;EG8FV,cH7FQ;EG8FR;;AAcF;EAEE;;AAxHJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAMJ;EACE,OHlBM;EGmBN;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EAEE;EACA;;AC9BJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,OJXQ;;AKPV;EACE,MLMQ;;AMRZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,YNHQ;;AMQd;EACE;EACA;EACA;EACA;EACA;EACA;;ACvCA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE,YPIE;;AOAN;EACE;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA,OPnCE;;AOsCJ;EACE;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA,YP1CD;;AO4CC;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKF;EACE,OPtEA;EOuEA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,OP7FF;;AOgGA;EACE,OPlGF;;AOqGA;EACE;EACA;;AAGF;EACE;EACA;;AAOV;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;;AClJJ;EACE;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA,OR5BE;EQ6BF;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,ORtCE;EQuCF;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;ACvDZ;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA,OT1BI;ES2BJ;;AAEA;EACE;EACA;;AAGF;EACE;EACA,OTjCE;;ASsCR;EACE;EACA;EACA;EACA;;AAMJ;EACE;EACA;EACA;EACA;;AC9DF;EACE,YVcC;EUbD;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA,OVLI;EUMJ;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE,OV5BI;EU6BJ;EACA;;AAEA;EACE;EACA,OVnCG;;AUwCT;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE,OV3FA;;AU+FA;EACE;;AAGF;EACE;;AC5Gd;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBXbQ;;AWiBZ;EACE,kBXnBY;EWoBZ;;AAEA;EACE;EACA,OX1BU;;AW8Bd;EACE,kBXhCa;EWiCb;;AAEA;EACE;EACA,OXvCW;;AW2Cf;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA,OX9EO;;AWmFb;EACE;IACE;IACA;;EAEA;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAEA;IACE;;;ACxGR;EACE;EACA,kBZYG;EYXH;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;;AAGF;EACE;EACA;EACA,YZZC;EYaD;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAKF;EACE;EACA;;AAGF;EACE;;AAKF;AAAA;EAEE,cA1DM;;AA6DR;AAAA;EAEE,eA/DM;;AAmEV;EACE;EACA;EACA;EACA,kBZnDS;;AYqDT;EACE;EACA;EACA;EACA;;AAGF;EACE,kBZ7DO;;AYgET;EACE,kBZlEQ;;AYqEV;EACE,kBZvEK;;AY0EP;EACE,kBZ7FE;;AYgGJ;EACE,kBZnFD","file":"index.css"}
1
+ {"version":3,"sourceRoot":"","sources":["src/styles/_reset.scss","src/styles/_main.scss","src/styles/_typography.scss","src/styles/_colors.scss","src/styles/_tables.scss","src/styles/_inputs.scss","src/styles/_buttons.scss","src/styles/_layout.scss","src/styles/_icons.scss","src/styles/_menus.scss","src/styles/_device-details.scss","src/styles/_device-table.scss","src/styles/_access-code-table.scss","src/styles/_access-code-details.scss","src/styles/_alert.scss","src/styles/_supported-devices.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;ACgBA;ECbE;;AFGA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAmDE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;;AAGF;AAAA;EAEE;;AAGF;AAAA;EAEE;;AAGF;AAAA;AAAA;AAAA;EAIE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AEtGF;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;AAKF;EACE,OCTU;;ADcZ;EACE,OCNS;;ADWX;EACE,OCvBW;;AD4Bb;EACE;EACA;EACA;EACA;EACA;;AExCF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;;AAMJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;;AAMJ;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA,YDrDG;;ACuDH;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EACE,MDzEI;;AC+EZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;;AC/GJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE,cFDS;;AEIX;EACE,cFbI;;AEgBN;EACE,cFLQ;EEMR;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBF/CH;;AEkDC;EACE;EACA;;AAMJ;EACE;;ACqCN;EJ/GA;EIoHE;EACA;;AAjFF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAKF;EACE,YH7DM;EG8DN;EACA;;AAEA;EACE,YH5DS;EG6DT,cH7DS;;AGgEX;EAEE,YHjEQ;EGkER,cHlEQ;;AGsEZ;EACE,OH9EM;EG+EN;EACA;;AAEA;EACE,YH9EM;;AGiFR;EAEE;EACA,OHxFO;;AG4FX;EACE,OHrFU;EGsFV;;AAEA;EACE,YHjFC;EGkFD,cHxFU;;AG2FZ;EAEE,OH7FU;EG8FV,cH7FQ;EG8FR;;AAcF;EAEE;;AAxHJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAMJ;EACE,OHlBM;EGmBN;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EAEE;EACA;;AC9BJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,OJXQ;;AKPV;EACE,MLMQ;;AMRZ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,YNFQ;;AMOd;EACE;EACA;EACA;EACA;EACA;EACA;;ACvCA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE,YPKE;;AODN;EACE;;AAGF;EACE;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA,OPnCE;;AOsCJ;EACE;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA,YP1CD;;AO4CC;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKF;EACE,OPtEA;EOuEA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,OP7FF;;AOgGA;EACE,OPlGF;;AOqGA;EACE;EACA;;AAGF;EACE;EACA;;AAOV;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;;AClJJ;EACE;;AAGF;EACE;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA,ORhCE;EQiCF;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,OR1CE;EQ2CF;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AC3DZ;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA,OT1BI;ES2BJ;;AAEA;EACE;EACA;;AAGF;EACE;EACA,OTjCE;;ASsCR;EACE;EACA;EACA;EACA;;AAMJ;EACE;EACA;EACA;EACA;;AC9DF;EACE,YVcC;EUbD;EACA;;AAEA;EACE;;AAEA;EACE;EACA;EACA;EACA,OVLI;EUMJ;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE,OV5BI;EU6BJ;EACA;;AAEA;EACE;EACA,OVnCG;;AUwCT;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAKN;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE,OV3FA;;AU+FA;EACE;;AAGF;EACE;;AC5Gd;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBXZQ;;AWgBZ;EACE,kBXlBY;EWmBZ;;AAEA;EACE;EACA,OXzBU;;AW6Bd;EACE,kBX/Ba;EWgCb;;AAEA;EACE;EACA,OXtCW;;AW0Cf;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA,OX9EO;;AWmFb;EACE;IACE;IACA;;EAEA;IACE;IACA;IACA;IACA;;EAGF;IACE;;EAEA;IACE;;;ACxGR;EACE;EACA,kBZYG;EYXH;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;;AAGF;EACE;EACA;EACA,YZZC;EYaD;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAKF;EACE;EACA;;AAGF;EACE;;AAKF;AAAA;EAEE,cA1DM;;AA6DR;AAAA;EAEE,eA/DM;;AAmEV;EACE;EACA;EACA;EACA,kBZlDS;;AYoDT;EACE;EACA;EACA;EACA;;AAGF;EACE,kBZ5DO;;AY+DT;EACE,kBZjEQ;;AYoEV;EACE,kBZtEK;;AYyEP;EACE,kBZ7FE;;AYgGJ;EACE,kBZnFD","file":"index.css"}
package/index.min.css CHANGED
@@ -1 +1 @@
1
- .seam-components{font-family:"Source Sans Pro",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif}.seam-components *,.seam-components *::before,.seam-components *::after{box-sizing:border-box}.seam-components html,.seam-components body,.seam-components div,.seam-components span,.seam-components object,.seam-components iframe,.seam-components figure,.seam-components h1,.seam-components h2,.seam-components h3,.seam-components h4,.seam-components h5,.seam-components h6,.seam-components p,.seam-components blockquote,.seam-components pre,.seam-components a,.seam-components code,.seam-components em,.seam-components img,.seam-components small,.seam-components strike,.seam-components strong,.seam-components sub,.seam-components sup,.seam-components tt,.seam-components b,.seam-components u,.seam-components i,.seam-components ol,.seam-components ul,.seam-components li,.seam-components fieldset,.seam-components form,.seam-components label,.seam-components table,.seam-components caption,.seam-components tbody,.seam-components tfoot,.seam-components thead,.seam-components tr,.seam-components th,.seam-components td,.seam-components main,.seam-components canvas,.seam-components embed,.seam-components footer,.seam-components header,.seam-components nav,.seam-components section,.seam-components video{margin:0;padding:0;border:0;font-size:100%;font-family:inherit;vertical-align:baseline;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;text-size-adjust:none}.seam-components footer,.seam-components header,.seam-components nav,.seam-components section,.seam-components main{display:block}.seam-components body{line-height:1}.seam-components ol,.seam-components ul{list-style:none}.seam-components blockquote,.seam-components q{quotes:none}.seam-components blockquote::before,.seam-components blockquote::after,.seam-components q::before,.seam-components q::after{content:"";content:none}.seam-components table{border-collapse:collapse;border-spacing:0}.seam-components input{appearance:none;border-radius:0}.seam-components h1,.seam-components h2,.seam-components h3,.seam-components h4,.seam-components h5,.seam-components h6{font-weight:600}.seam-components .seam-caption{color:#9da1a9}.seam-components .seam-text-danger{color:#e36857}.seam-components html{color:#232b3a}.seam-components .seam-truncated-text{display:block;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seam-components .seam-table-header{display:flex;justify-content:space-between;align-items:center;height:56px;padding:0 16px}.seam-components .seam-table-title{font-size:21px;line-height:132%}.seam-components .seam-table-title .seam-caption{font-size:16px;line-height:134%}.seam-components .seam-table-row{display:flex;padding:4px;height:72px;border-bottom:1px solid #eee}.seam-components .seam-table-row:hover{background:#f4f6f8}.seam-components .seam-table-row .seam-title{font-weight:600;font-size:18px;line-height:132%}.seam-components .seam-table-cell{display:flex;align-items:center;padding:4px}.seam-components .seam-table-empty-placeholder{height:300px;font-size:18px;line-height:132%;display:flex;align-items:center;justify-content:center}.seam-components .seam-table-filter-bar{display:flex;align-items:center;padding:6px 16px;background:#f1f3f4}.seam-components .seam-table-filter-bar .seam-clear-filters-button{margin-left:6px;border:0;background:rgba(0,0,0,0) !important;padding:0}.seam-components .seam-table-filter-bar .seam-clear-filters-button svg{scale:.8333}.seam-components .seam-table-filter-bar .seam-clear-filters-button svg *{fill:#6e7179}.seam-components .seam-table-filter-item{display:flex;align-items:center;padding:2px 8px 2px 5px;border-radius:5px;border:1px solid #f1f3f4;font-size:14px;line-height:134%}.seam-components .seam-table-filter-item svg{scale:.75}.seam-components .seam-table-filter-item.seam-clickable{cursor:pointer}.seam-components .seam-table-filter-item.seam-clickable:hover{background:rgba(255,255,255,.65);border:1px solid #d5d8dc}.seam-components .seam-table-filter-item.seam-selected{background:#fff;border:1px solid #d5d8dc}.seam-components .seam-text-field{padding:0 8px;height:40px;border:1px solid #d5d8dc;border-radius:8px}.seam-components .seam-btn{font-family:"Source Sans Pro",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-weight:600;cursor:pointer}.seam-components .seam-btn.seam-btn-small{font-size:14px;line-height:22px;border-radius:6px;padding:4px 10px}.seam-components .seam-btn.seam-btn-medium{font-size:16px;line-height:26px;border-radius:7px;padding:6px 16px}.seam-components .seam-btn.seam-btn-large{font-size:19px;line-height:30px;border-radius:8px;padding:8px 22px}.seam-components .seam-btn.seam-btn-solid{background:#007afc;color:#fff;border:1px solid #007afc}.seam-components .seam-btn.seam-btn-solid:hover{background:#006ee3;border-color:#006ee3}.seam-components .seam-btn.seam-btn-solid.seam-btn-disabled,.seam-components .seam-btn.seam-btn-solid:disabled{background:#c1dfff;border-color:#c1dfff}.seam-components .seam-btn.seam-btn-outline{color:#007afc;border:1px solid #7ebcff;background:rgba(0,0,0,0)}.seam-components .seam-btn.seam-btn-outline:hover{background:#f2f8ff}.seam-components .seam-btn.seam-btn-outline.seam-btn-disabled,.seam-components .seam-btn.seam-btn-outline:disabled{background:rgba(0,0,0,0);color:#7ebcff}.seam-components .seam-btn.seam-btn-neutral{color:#6e7179;border:1px solid #b9bec5}.seam-components .seam-btn.seam-btn-neutral:hover{background:#f1f3f4;border-color:#b9bec5}.seam-components .seam-btn.seam-btn-neutral.seam-btn-disabled,.seam-components .seam-btn.seam-btn-neutral:disabled{color:#b9bec5;border-color:#d5d8dc;background:#fff}.seam-components .seam-btn.seam-btn-disabled,.seam-components .seam-btn:disabled{cursor:not-allowed}.seam-components .seam-icon-btn{border-radius:6px;border:1px solid rgba(0,122,252,.5);cursor:pointer;background:#fff;padding:6px;line-height:0}.seam-components .seam-icon-btn:hover{background:rgba(0,122,252,.08)}.seam-components .seam-text-btn{color:#007afc;padding:0;cursor:pointer;background:rgba(0,0,0,0);border:0}.seam-components .seam-text-btn:hover{text-decoration:underline}.seam-components .seam-text-btn.seam-btn-disabled,.seam-components .seam-text-btn:disabled{cursor:not-allowed;text-decoration:none}.seam-components .seam-content-header{height:56px;display:flex;align-items:center;position:relative;justify-content:center;margin:0 16px}.seam-components .seam-content-header .seam-back-icon{position:absolute;top:50%;transform:translate(4px, -25%);left:0;cursor:pointer}.seam-components .seam-content-header .seam-title{font-size:16px;line-height:134%;color:#6e7179}.seam-components .seam-lock-icon *{fill:#6e7179}.seam-components .seam-menu-bg{width:100vw;height:100vh;justify-content:center;align-items:center;position:fixed;inset:0;z-index:999999;display:none}.seam-components .seam-menu-content{width:250px;position:absolute;padding:8px 0;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.3),0 2px 16px 2px rgba(15,22,28,.15);border-radius:8px}.seam-components .seam-menu-content .seam-menu-item{padding:0 16px;height:36px;display:flex;align-items:center;font-size:16px;line-height:134%;cursor:pointer}.seam-components .seam-menu-content .seam-menu-item:hover{background:#f4f6f8}.seam-components .seam-menu-shadow{z-index:-1;opacity:0;visibility:hidden;top:0;right:0;position:fixed}.seam-components .seam-device-details .seam-body{display:flex;flex-direction:column;gap:16px;margin:0 24px 24px}.seam-components .seam-device-details .seam-body .seam-box{border:1px solid #d5d8dc;border-radius:8px}.seam-components .seam-device-details .seam-body .seam-box .seam-content{padding:12px 12px 12px 16px}.seam-components .seam-device-details .seam-body .seam-box .seam-content.seam-access-codes{padding:12px 8px 12px 16px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.seam-components .seam-device-details .seam-body .seam-box .seam-content.seam-access-codes:hover{background:#f4f6f8}.seam-components .seam-device-details .seam-body .seam-box .seam-content.seam-access-code-length{border-top:1px solid #d5d8dc}.seam-components .seam-device-details .seam-body .seam-box .seam-content.seam-lock-status{display:flex;justify-content:space-between}.seam-components .seam-device-details .seam-body .seam-box .seam-content.seam-lock-status>.seam-right{display:flex;align-items:center}.seam-components .seam-device-details .seam-body .seam-box .seam-content .seam-label{font-size:14px;line-height:134%;color:#6e7179}.seam-components .seam-device-details .seam-body .seam-box .seam-content .seam-value{display:block;font-weight:600;font-size:16px;line-height:134%}.seam-components .seam-device-details .seam-body .seam-summary{padding:24px 16px;border-radius:16px;background:#f1f3f4}.seam-components .seam-device-details .seam-body .seam-summary .seam-content{display:flex;align-items:center;gap:20px}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-image{width:100px;height:100px;display:flex;align-items:center}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-image img{max-width:100%}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-info>.seam-label{color:#6e7179;font-weight:600;font-size:14px;line-height:134%;margin-bottom:4px}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-info .seam-device-name{margin-bottom:16px;font-weight:600;font-size:21px;line-height:132%}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-info .seam-properties{display:grid;grid-template-columns:min-content 1fr;grid-auto-rows:1fr;font-size:14px;line-height:134%;row-gap:4px;column-gap:28px}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-info .seam-properties .seam-label{color:#9da1a9}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-info .seam-properties .seam-status-text{color:#6e7179}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-info .seam-properties svg{scale:.75;margin-right:8px}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-info .seam-properties>*{display:flex;align-items:center}.seam-components .seam-device-details .seam-body .seam-icon-cell{flex:0;margin-left:8px;display:flex;align-items:center;justify-content:center}.seam-components .seam-device-details .seam-body .seam-icon-cell>div{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.seam-components .seam-device-details .seam-body .seam-name-cell{flex:1}.seam-components .seam-device-details .seam-body .seam-action-cell{margin-right:12px;display:flex;align-items:center;justify-content:center}.seam-components .seam-device-table .seam-table-row{cursor:pointer}.seam-components .seam-device-table .seam-table-row .seam-image-cell{width:64px;height:64px;padding:4px}.seam-components .seam-device-table .seam-table-row .seam-image-cell img{width:100%}.seam-components .seam-device-table .seam-table-row .seam-body-cell{flex:1;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;overflow:hidden}.seam-components .seam-device-table .seam-table-row .seam-body-cell .seam-title{max-width:380px}.seam-components .seam-device-table .seam-table-row .seam-body-cell .seam-bottom{display:flex;justify-content:space-between;align-items:center;width:100%}.seam-components .seam-device-table .seam-table-row .seam-body-cell .seam-bottom .seam-device-model{font-weight:400;font-size:14px;line-height:134%;color:#6e7179;flex:0 1 190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seam-components .seam-device-table .seam-table-row .seam-body-cell .seam-bottom .seam-device-statuses{display:flex;align-items:center;color:#6e7179;font-size:14px;line-height:134%}.seam-components .seam-device-table .seam-table-row .seam-body-cell .seam-bottom .seam-device-statuses>div{display:flex;align-items:center;margin-right:16px}.seam-components .seam-device-table .seam-table-row .seam-body-cell .seam-bottom .seam-device-statuses>div svg{scale:.75}.seam-components .seam-access-code-table .seam-table-row{cursor:pointer}.seam-components .seam-access-code-table .seam-table-row .seam-icon-cell{flex:0;display:flex;align-items:center;justify-content:center}.seam-components .seam-access-code-table .seam-table-row .seam-icon-cell>div{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.seam-components .seam-access-code-table .seam-table-row .seam-name-cell{flex:1;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;overflow:hidden}.seam-components .seam-access-code-table .seam-table-row .seam-name-cell .seam-title{max-width:380px}.seam-components .seam-access-code-table .seam-table-row .seam-name-cell .seam-code-details{font-size:14px;line-height:134%;color:#6e7179;display:flex}.seam-components .seam-access-code-table .seam-table-row .seam-name-cell .seam-code-details .seam-device-name{max-width:190px;width:auto}.seam-components .seam-access-code-table .seam-table-row .seam-name-cell .seam-code-details .seam-dot-divider{margin:0 4px;color:#d5d8dc}.seam-components .seam-access-code-table .seam-table-row .seam-action-cell{margin-right:12px;display:flex;align-items:center;justify-content:center}.seam-components .seam-access-code-table-action-menu .menu-item-copy{display:flex;align-items:center;justify-content:space-between;flex:1}.seam-components .seam-access-code-details>.seam-summary{background:#f1f3f4;border-radius:16px;margin:0 24px 16px}.seam-components .seam-access-code-details>.seam-summary>.seam-top{padding:24px 16px}.seam-components .seam-access-code-details>.seam-summary>.seam-top>.seam-label{font-weight:600;font-size:14px;line-height:134%;color:#6e7179;margin-bottom:4px}.seam-components .seam-access-code-details>.seam-summary>.seam-top>.seam-access-code-name{font-weight:600;font-size:21px;line-height:132%;margin-bottom:8px}.seam-components .seam-access-code-details>.seam-summary>.seam-top>.seam-code{background:#fff;border:1px solid #9da1a9;border-radius:8px;padding:10px 16px;font-weight:600;font-size:24px;line-height:134%;margin-bottom:8px}.seam-components .seam-access-code-details>.seam-summary>.seam-top .seam-duration{color:#6e7179;font-size:14px;line-height:134%}.seam-components .seam-access-code-details>.seam-summary>.seam-top .seam-duration .seam-label{font-weight:600;color:#232b3a}.seam-components .seam-access-code-details>.seam-summary .seam-access-code-device{border-top:1px solid #dde0e2;padding:8px 16px 8px 8px;display:flex;align-items:center}.seam-components .seam-access-code-details>.seam-summary .seam-access-code-device .seam-device-image{width:72px;height:72px;margin-right:16px}.seam-components .seam-access-code-details>.seam-summary .seam-access-code-device .seam-device-image img{width:100%;max-height:100%}.seam-components .seam-access-code-details>.seam-summary .seam-access-code-device .seam-body{flex:1;font-weight:400;font-size:14px;line-height:134%;margin-right:8px}.seam-components .seam-access-code-details .seam-details{font-size:16px;line-height:134%;border-bottom:1px solid rgba(0,0,0,.12);padding:0 24px}.seam-components .seam-access-code-details .seam-details .seam-row{padding:16px;display:flex;border-top:1px solid rgba(0,0,0,.12)}.seam-components .seam-access-code-details .seam-details .seam-row .seam-heading{width:112px}.seam-components .seam-access-code-details .seam-details .seam-row .seam-content{display:flex;flex:1}.seam-components .seam-access-code-details .seam-details .seam-row .seam-content .seam-times{display:flex;flex:1;font-size:16px;line-height:134%}.seam-components .seam-access-code-details .seam-details .seam-row .seam-content .seam-times .seam-label{color:#9da1a9}.seam-components .seam-access-code-details .seam-details .seam-row .seam-content .seam-times>div div{margin-bottom:4px}.seam-components .seam-access-code-details .seam-details .seam-row .seam-content .seam-times>div:first-child{flex:0 1 160px}.seam-components .seam-alerts{width:100%;display:flex;justify-content:flex-start;align-items:flex-start;flex-direction:column;gap:8px}.seam-components .seam-alerts.seam-alerts-space-top{margin-top:16px}.seam-components .seam-alert{width:100%;min-height:70px;padding:8px 16px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;flex-direction:row;gap:16px}.seam-components .seam-alert .seam-alert-action{appearance:none;height:32px;padding:0 10px;border-radius:6px;background-color:rgba(0,0,0,0);font-size:14px;line-height:1;font-weight:600;white-space:nowrap;cursor:pointer}.seam-components .seam-alert .seam-alert-action:hover{background-color:#f4f6f8}.seam-components .seam-alert.seam-warning-alert{background-color:#fff2e0;border:1px solid #f8d8be}.seam-components .seam-alert.seam-warning-alert .seam-alert-action{border:1px solid #ca8852;color:#ca8852}.seam-components .seam-alert.seam-error-alert{background-color:#ffefef;border:1px solid #f1d4d4}.seam-components .seam-alert.seam-error-alert .seam-alert-action{border:1px solid #cb7d7d;color:#cb7d7d}.seam-components .seam-alert.seam-alert-space-top{margin-top:16px}.seam-components .seam-alert .seam-alert-icon{width:24px;height:24px}.seam-components .seam-alert .seam-alert-content{display:flex;justify-content:flex-start;align-items:center;flex-direction:row;gap:8px}.seam-components .seam-alert .seam-alert-message-wrap .seam-alert-message{font-size:14px;font-weight:400;line-height:134%;color:#232b3a}@media only screen and (width <= 500px){.seam-components .seam-alert{justify-content:flex-start;flex-direction:column}.seam-components .seam-alert .seam-alert-content{width:100%;align-items:flex-start;flex-direction:column;gap:4px}.seam-components .seam-alert .seam-alert-action-wrap{width:100%}.seam-components .seam-alert .seam-alert-action-wrap .seam-alert-action{width:100%}}.seam-components .seam-supported-devices-table-state-block{width:100%;background-color:#f1f3f4;padding:32px 8px;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:8px}.seam-components .seam-supported-devices-table{width:100%;overflow-x:auto;table-layout:auto;border-collapse:collapse}.seam-components .seam-supported-devices-table th,.seam-components .seam-supported-devices-table td{white-space:nowrap;padding:0 8px}.seam-components .seam-supported-devices-table thead{width:100%;height:50px;background:#f1f3f4;overflow:hidden}.seam-components .seam-supported-devices-table thead tr{border-radius:8px}.seam-components .seam-supported-devices-table thead th{vertical-align:middle;text-align:left;font-size:16px;font-weight:600}.seam-components .seam-supported-devices-table tbody tr{height:60px;border-bottom:1px solid #e9edef}.seam-components .seam-supported-devices-table tbody td{vertical-align:middle}.seam-components .seam-supported-devices-table tr th:first-of-type,.seam-components .seam-supported-devices-table tr td:first-of-type{padding-left:8px}.seam-components .seam-supported-devices-table tr th:last-of-type,.seam-components .seam-supported-devices-table tr td:last-of-type{padding-right:8px}.seam-components .seam-supported-devices-table .seam-status-pill{display:inline-flex;padding:4px 8px;border-radius:90px;background-color:#27ae60}.seam-components .seam-supported-devices-table .seam-status-pill span{color:#fff;font-size:14px;font-weight:600;line-height:1}.seam-components .seam-supported-devices-table .seam-status-pill.status-green{background-color:#27ae60}.seam-components .seam-supported-devices-table .seam-status-pill.status-orange{background-color:#f3980f}.seam-components .seam-supported-devices-table .seam-status-pill.status-red{background-color:#e36857}.seam-components .seam-supported-devices-table .seam-status-pill.status-blue{background-color:#007afc}.seam-components .seam-supported-devices-table .seam-status-pill.status-gray{background-color:#cbd0d3}/*# sourceMappingURL=index.min.css.map */
1
+ .seam-components{font-family:"Source Sans Pro",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif}.seam-components *,.seam-components *::before,.seam-components *::after{box-sizing:border-box}.seam-components html,.seam-components body,.seam-components div,.seam-components span,.seam-components object,.seam-components iframe,.seam-components figure,.seam-components h1,.seam-components h2,.seam-components h3,.seam-components h4,.seam-components h5,.seam-components h6,.seam-components p,.seam-components blockquote,.seam-components pre,.seam-components a,.seam-components code,.seam-components em,.seam-components img,.seam-components small,.seam-components strike,.seam-components strong,.seam-components sub,.seam-components sup,.seam-components tt,.seam-components b,.seam-components u,.seam-components i,.seam-components ol,.seam-components ul,.seam-components li,.seam-components fieldset,.seam-components form,.seam-components label,.seam-components table,.seam-components caption,.seam-components tbody,.seam-components tfoot,.seam-components thead,.seam-components tr,.seam-components th,.seam-components td,.seam-components main,.seam-components canvas,.seam-components embed,.seam-components footer,.seam-components header,.seam-components nav,.seam-components section,.seam-components video{margin:0;padding:0;border:0;font-size:100%;font-family:inherit;vertical-align:baseline;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;text-size-adjust:none}.seam-components footer,.seam-components header,.seam-components nav,.seam-components section,.seam-components main{display:block}.seam-components body{line-height:1}.seam-components ol,.seam-components ul{list-style:none}.seam-components blockquote,.seam-components q{quotes:none}.seam-components blockquote::before,.seam-components blockquote::after,.seam-components q::before,.seam-components q::after{content:"";content:none}.seam-components table{border-collapse:collapse;border-spacing:0}.seam-components input{appearance:none;border-radius:0}.seam-components h1,.seam-components h2,.seam-components h3,.seam-components h4,.seam-components h5,.seam-components h6{font-weight:600}.seam-components .seam-caption{color:#9da1a9}.seam-components .seam-text-danger{color:#e36857}.seam-components html{color:#232b3a}.seam-components .seam-truncated-text{display:block;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seam-components .seam-table-header{display:flex;justify-content:space-between;align-items:flex-start;height:56px;padding:0 16px}.seam-components .seam-table-header .seam-body{display:flex;justify-content:space-between;align-items:center;width:100%}.seam-components .seam-table-title{font-size:21px;line-height:132%}.seam-components .seam-table-title .seam-caption{font-size:16px;line-height:134%}.seam-components .seam-table-row{display:flex;padding:4px;height:72px;border-bottom:1px solid #eee}.seam-components .seam-table-row:hover{background:#f4f6f8}.seam-components .seam-table-row .seam-title{font-weight:600;font-size:18px;line-height:132%}.seam-components .seam-table-cell{display:flex;align-items:center;padding:4px}.seam-components .seam-table-empty-placeholder{height:300px;font-size:18px;line-height:132%;display:flex;align-items:center;justify-content:center}.seam-components .seam-table-filter-bar{display:flex;align-items:center;padding:6px 16px;background:#f1f3f4}.seam-components .seam-table-filter-bar .seam-clear-filters-button{margin-left:6px;border:0;background:rgba(0,0,0,0) !important;padding:0}.seam-components .seam-table-filter-bar .seam-clear-filters-button svg{scale:.8333}.seam-components .seam-table-filter-bar .seam-clear-filters-button svg *{fill:#6e7179}.seam-components .seam-table-filter-item{display:flex;align-items:center;padding:2px 8px 2px 5px;border-radius:5px;border:1px solid #f1f3f4;font-size:14px;line-height:134%}.seam-components .seam-table-filter-item svg{scale:.75}.seam-components .seam-table-filter-item.seam-clickable{cursor:pointer}.seam-components .seam-table-filter-item.seam-clickable:hover{background:rgba(255,255,255,.65);border:1px solid #d5d8dc}.seam-components .seam-table-filter-item.seam-selected{background:#fff;border:1px solid #d5d8dc}.seam-components .seam-text-field{border:1px solid #d5d8dc;border-radius:8px;padding:0 8px;display:flex;align-items:center}.seam-components .seam-text-field:hover{border-color:#232b3a}.seam-components .seam-text-field:focus-within{border-color:#007afc}.seam-components .seam-text-field.seam-disabled{border-color:#d5d8dc;background:#ececec;cursor:not-allowed}.seam-components .seam-text-field.seam-disabled .seam-text-field-input{cursor:not-allowed}.seam-components .seam-text-field .seam-text-field-input{height:40px;border:0}.seam-components .seam-text-field .seam-text-field-input:focus{outline:none}.seam-components .seam-text-field .seam-adornment{display:flex;align-items:center}.seam-components .seam-text-field .seam-adornment svg{scale:.8333}.seam-components .seam-text-field .seam-adornment.seam-start{margin-right:4px}.seam-components .seam-text-field .seam-adornment button{width:24px;height:24px;display:flex;justify-content:center;align-items:center;appearance:none;background-color:rgba(0,0,0,0);padding:0;margin:0;border:0;box-shadow:none;border-radius:4px;cursor:pointer}.seam-components .seam-text-field .seam-adornment button:hover{background-color:#e9edef}.seam-components .seam-text-field .seam-adornment button.seam-hidden{opacity:0;visibility:hidden}.seam-components .seam-text-field.seam-search-text-field .seam-text-field-input{width:100%}.seam-components .seam-btn{font-family:"Source Sans Pro",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Open Sans","Helvetica Neue",sans-serif;font-weight:600;cursor:pointer}.seam-components .seam-btn.seam-btn-small{font-size:14px;line-height:22px;border-radius:6px;padding:4px 10px}.seam-components .seam-btn.seam-btn-medium{font-size:16px;line-height:26px;border-radius:7px;padding:6px 16px}.seam-components .seam-btn.seam-btn-large{font-size:19px;line-height:30px;border-radius:8px;padding:8px 22px}.seam-components .seam-btn.seam-btn-solid{background:#007afc;color:#fff;border:1px solid #007afc}.seam-components .seam-btn.seam-btn-solid:hover{background:#006ee3;border-color:#006ee3}.seam-components .seam-btn.seam-btn-solid.seam-btn-disabled,.seam-components .seam-btn.seam-btn-solid:disabled{background:#c1dfff;border-color:#c1dfff}.seam-components .seam-btn.seam-btn-outline{color:#007afc;border:1px solid #7ebcff;background:rgba(0,0,0,0)}.seam-components .seam-btn.seam-btn-outline:hover{background:#f2f8ff}.seam-components .seam-btn.seam-btn-outline.seam-btn-disabled,.seam-components .seam-btn.seam-btn-outline:disabled{background:rgba(0,0,0,0);color:#7ebcff}.seam-components .seam-btn.seam-btn-neutral{color:#6e7179;border:1px solid #b9bec5}.seam-components .seam-btn.seam-btn-neutral:hover{background:#f1f3f4;border-color:#b9bec5}.seam-components .seam-btn.seam-btn-neutral.seam-btn-disabled,.seam-components .seam-btn.seam-btn-neutral:disabled{color:#b9bec5;border-color:#d5d8dc;background:#fff}.seam-components .seam-btn.seam-btn-disabled,.seam-components .seam-btn:disabled{cursor:not-allowed}.seam-components .seam-icon-btn{border-radius:6px;border:1px solid rgba(0,122,252,.5);cursor:pointer;background:#fff;padding:6px;line-height:0}.seam-components .seam-icon-btn:hover{background:rgba(0,122,252,.08)}.seam-components .seam-text-btn{color:#007afc;padding:0;cursor:pointer;background:rgba(0,0,0,0);border:0}.seam-components .seam-text-btn:hover{text-decoration:underline}.seam-components .seam-text-btn.seam-btn-disabled,.seam-components .seam-text-btn:disabled{cursor:not-allowed;text-decoration:none}.seam-components .seam-content-header{height:56px;display:flex;align-items:center;position:relative;justify-content:center;margin:0 16px}.seam-components .seam-content-header .seam-back-icon{position:absolute;top:50%;transform:translate(4px, -25%);left:0;cursor:pointer}.seam-components .seam-content-header .seam-title{font-size:16px;line-height:134%;color:#6e7179}.seam-components .seam-lock-icon *{fill:#6e7179}.seam-components .seam-menu-bg{width:100vw;height:100vh;justify-content:center;align-items:center;position:fixed;inset:0;z-index:999999;display:none}.seam-components .seam-menu-content{width:250px;position:absolute;padding:8px 0;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.3),0 2px 16px 2px rgba(15,22,28,.15);border-radius:8px}.seam-components .seam-menu-content .seam-menu-item{padding:0 16px;height:36px;display:flex;align-items:center;font-size:16px;line-height:134%;cursor:pointer}.seam-components .seam-menu-content .seam-menu-item:hover{background:#f4f6f8}.seam-components .seam-menu-shadow{z-index:-1;opacity:0;visibility:hidden;top:0;right:0;position:fixed}.seam-components .seam-device-details .seam-body{display:flex;flex-direction:column;gap:16px;margin:0 24px 24px}.seam-components .seam-device-details .seam-body .seam-box{border:1px solid #d5d8dc;border-radius:8px}.seam-components .seam-device-details .seam-body .seam-box .seam-content{padding:12px 12px 12px 16px}.seam-components .seam-device-details .seam-body .seam-box .seam-content.seam-access-codes{padding:12px 8px 12px 16px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}.seam-components .seam-device-details .seam-body .seam-box .seam-content.seam-access-codes:hover{background:#f4f6f8}.seam-components .seam-device-details .seam-body .seam-box .seam-content.seam-access-code-length{border-top:1px solid #d5d8dc}.seam-components .seam-device-details .seam-body .seam-box .seam-content.seam-lock-status{display:flex;justify-content:space-between}.seam-components .seam-device-details .seam-body .seam-box .seam-content.seam-lock-status>.seam-right{display:flex;align-items:center}.seam-components .seam-device-details .seam-body .seam-box .seam-content .seam-label{font-size:14px;line-height:134%;color:#6e7179}.seam-components .seam-device-details .seam-body .seam-box .seam-content .seam-value{display:block;font-weight:600;font-size:16px;line-height:134%}.seam-components .seam-device-details .seam-body .seam-summary{padding:24px 16px;border-radius:16px;background:#f1f3f4}.seam-components .seam-device-details .seam-body .seam-summary .seam-content{display:flex;align-items:center;gap:20px}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-image{width:100px;height:100px;display:flex;align-items:center}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-image img{max-width:100%}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-info>.seam-label{color:#6e7179;font-weight:600;font-size:14px;line-height:134%;margin-bottom:4px}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-info .seam-device-name{margin-bottom:16px;font-weight:600;font-size:21px;line-height:132%}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-info .seam-properties{display:grid;grid-template-columns:min-content 1fr;grid-auto-rows:1fr;font-size:14px;line-height:134%;row-gap:4px;column-gap:28px}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-info .seam-properties .seam-label{color:#9da1a9}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-info .seam-properties .seam-status-text{color:#6e7179}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-info .seam-properties svg{scale:.75;margin-right:8px}.seam-components .seam-device-details .seam-body .seam-summary .seam-content .seam-info .seam-properties>*{display:flex;align-items:center}.seam-components .seam-device-details .seam-body .seam-icon-cell{flex:0;margin-left:8px;display:flex;align-items:center;justify-content:center}.seam-components .seam-device-details .seam-body .seam-icon-cell>div{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.seam-components .seam-device-details .seam-body .seam-name-cell{flex:1}.seam-components .seam-device-details .seam-body .seam-action-cell{margin-right:12px;display:flex;align-items:center;justify-content:center}.seam-components .seam-device-table .seam-search-text-field{width:170px}.seam-components .seam-device-table .seam-table-row{cursor:pointer}.seam-components .seam-device-table .seam-table-row .seam-image-cell{width:64px;height:64px;padding:4px}.seam-components .seam-device-table .seam-table-row .seam-image-cell img{width:100%}.seam-components .seam-device-table .seam-table-row .seam-body-cell{flex:1;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;overflow:hidden}.seam-components .seam-device-table .seam-table-row .seam-body-cell .seam-title{max-width:380px}.seam-components .seam-device-table .seam-table-row .seam-body-cell .seam-bottom{display:flex;justify-content:space-between;align-items:center;width:100%}.seam-components .seam-device-table .seam-table-row .seam-body-cell .seam-bottom .seam-device-model{font-weight:400;font-size:14px;line-height:134%;color:#6e7179;flex:0 1 190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seam-components .seam-device-table .seam-table-row .seam-body-cell .seam-bottom .seam-device-statuses{display:flex;align-items:center;color:#6e7179;font-size:14px;line-height:134%}.seam-components .seam-device-table .seam-table-row .seam-body-cell .seam-bottom .seam-device-statuses>div{display:flex;align-items:center;margin-right:16px}.seam-components .seam-device-table .seam-table-row .seam-body-cell .seam-bottom .seam-device-statuses>div svg{scale:.75}.seam-components .seam-access-code-table .seam-table-row{cursor:pointer}.seam-components .seam-access-code-table .seam-table-row .seam-icon-cell{flex:0;display:flex;align-items:center;justify-content:center}.seam-components .seam-access-code-table .seam-table-row .seam-icon-cell>div{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.seam-components .seam-access-code-table .seam-table-row .seam-name-cell{flex:1;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;overflow:hidden}.seam-components .seam-access-code-table .seam-table-row .seam-name-cell .seam-title{max-width:380px}.seam-components .seam-access-code-table .seam-table-row .seam-name-cell .seam-code-details{font-size:14px;line-height:134%;color:#6e7179;display:flex}.seam-components .seam-access-code-table .seam-table-row .seam-name-cell .seam-code-details .seam-device-name{max-width:190px;width:auto}.seam-components .seam-access-code-table .seam-table-row .seam-name-cell .seam-code-details .seam-dot-divider{margin:0 4px;color:#d5d8dc}.seam-components .seam-access-code-table .seam-table-row .seam-action-cell{margin-right:12px;display:flex;align-items:center;justify-content:center}.seam-components .seam-access-code-table-action-menu .menu-item-copy{display:flex;align-items:center;justify-content:space-between;flex:1}.seam-components .seam-access-code-details>.seam-summary{background:#f1f3f4;border-radius:16px;margin:0 24px 16px}.seam-components .seam-access-code-details>.seam-summary>.seam-top{padding:24px 16px}.seam-components .seam-access-code-details>.seam-summary>.seam-top>.seam-label{font-weight:600;font-size:14px;line-height:134%;color:#6e7179;margin-bottom:4px}.seam-components .seam-access-code-details>.seam-summary>.seam-top>.seam-access-code-name{font-weight:600;font-size:21px;line-height:132%;margin-bottom:8px}.seam-components .seam-access-code-details>.seam-summary>.seam-top>.seam-code{background:#fff;border:1px solid #9da1a9;border-radius:8px;padding:10px 16px;font-weight:600;font-size:24px;line-height:134%;margin-bottom:8px}.seam-components .seam-access-code-details>.seam-summary>.seam-top .seam-duration{color:#6e7179;font-size:14px;line-height:134%}.seam-components .seam-access-code-details>.seam-summary>.seam-top .seam-duration .seam-label{font-weight:600;color:#232b3a}.seam-components .seam-access-code-details>.seam-summary .seam-access-code-device{border-top:1px solid #dde0e2;padding:8px 16px 8px 8px;display:flex;align-items:center}.seam-components .seam-access-code-details>.seam-summary .seam-access-code-device .seam-device-image{width:72px;height:72px;margin-right:16px}.seam-components .seam-access-code-details>.seam-summary .seam-access-code-device .seam-device-image img{width:100%;max-height:100%}.seam-components .seam-access-code-details>.seam-summary .seam-access-code-device .seam-body{flex:1;font-weight:400;font-size:14px;line-height:134%;margin-right:8px}.seam-components .seam-access-code-details .seam-details{font-size:16px;line-height:134%;border-bottom:1px solid rgba(0,0,0,.12);padding:0 24px}.seam-components .seam-access-code-details .seam-details .seam-row{padding:16px;display:flex;border-top:1px solid rgba(0,0,0,.12)}.seam-components .seam-access-code-details .seam-details .seam-row .seam-heading{width:112px}.seam-components .seam-access-code-details .seam-details .seam-row .seam-content{display:flex;flex:1}.seam-components .seam-access-code-details .seam-details .seam-row .seam-content .seam-times{display:flex;flex:1;font-size:16px;line-height:134%}.seam-components .seam-access-code-details .seam-details .seam-row .seam-content .seam-times .seam-label{color:#9da1a9}.seam-components .seam-access-code-details .seam-details .seam-row .seam-content .seam-times>div div{margin-bottom:4px}.seam-components .seam-access-code-details .seam-details .seam-row .seam-content .seam-times>div:first-child{flex:0 1 160px}.seam-components .seam-alerts{width:100%;display:flex;justify-content:flex-start;align-items:flex-start;flex-direction:column;gap:8px}.seam-components .seam-alerts.seam-alerts-space-top{margin-top:16px}.seam-components .seam-alert{width:100%;min-height:70px;padding:8px 16px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;flex-direction:row;gap:16px}.seam-components .seam-alert .seam-alert-action{appearance:none;height:32px;padding:0 10px;border-radius:6px;background-color:rgba(0,0,0,0);font-size:14px;line-height:1;font-weight:600;white-space:nowrap;cursor:pointer}.seam-components .seam-alert .seam-alert-action:hover{background-color:#f4f6f8}.seam-components .seam-alert.seam-warning-alert{background-color:#fff2e0;border:1px solid #f8d8be}.seam-components .seam-alert.seam-warning-alert .seam-alert-action{border:1px solid #ca8852;color:#ca8852}.seam-components .seam-alert.seam-error-alert{background-color:#ffefef;border:1px solid #f1d4d4}.seam-components .seam-alert.seam-error-alert .seam-alert-action{border:1px solid #cb7d7d;color:#cb7d7d}.seam-components .seam-alert.seam-alert-space-top{margin-top:16px}.seam-components .seam-alert .seam-alert-icon{width:24px;height:24px}.seam-components .seam-alert .seam-alert-content{display:flex;justify-content:flex-start;align-items:center;flex-direction:row;gap:8px}.seam-components .seam-alert .seam-alert-message-wrap .seam-alert-message{font-size:14px;font-weight:400;line-height:134%;color:#232b3a}@media only screen and (width <= 500px){.seam-components .seam-alert{justify-content:flex-start;flex-direction:column}.seam-components .seam-alert .seam-alert-content{width:100%;align-items:flex-start;flex-direction:column;gap:4px}.seam-components .seam-alert .seam-alert-action-wrap{width:100%}.seam-components .seam-alert .seam-alert-action-wrap .seam-alert-action{width:100%}}.seam-components .seam-supported-devices-table-state-block{width:100%;background-color:#f1f3f4;padding:32px 8px;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:8px}.seam-components .seam-supported-devices-table{width:100%;overflow-x:auto;table-layout:auto;border-collapse:collapse}.seam-components .seam-supported-devices-table th,.seam-components .seam-supported-devices-table td{white-space:nowrap;padding:0 8px}.seam-components .seam-supported-devices-table thead{width:100%;height:50px;background:#f1f3f4;overflow:hidden}.seam-components .seam-supported-devices-table thead tr{border-radius:8px}.seam-components .seam-supported-devices-table thead th{vertical-align:middle;text-align:left;font-size:16px;font-weight:600}.seam-components .seam-supported-devices-table tbody tr{height:60px;border-bottom:1px solid #e9edef}.seam-components .seam-supported-devices-table tbody td{vertical-align:middle}.seam-components .seam-supported-devices-table tr th:first-of-type,.seam-components .seam-supported-devices-table tr td:first-of-type{padding-left:8px}.seam-components .seam-supported-devices-table tr th:last-of-type,.seam-components .seam-supported-devices-table tr td:last-of-type{padding-right:8px}.seam-components .seam-supported-devices-table .seam-status-pill{display:inline-flex;padding:4px 8px;border-radius:90px;background-color:#27ae60}.seam-components .seam-supported-devices-table .seam-status-pill span{color:#fff;font-size:14px;font-weight:600;line-height:1}.seam-components .seam-supported-devices-table .seam-status-pill.status-green{background-color:#27ae60}.seam-components .seam-supported-devices-table .seam-status-pill.status-orange{background-color:#f3980f}.seam-components .seam-supported-devices-table .seam-status-pill.status-red{background-color:#e36857}.seam-components .seam-supported-devices-table .seam-status-pill.status-blue{background-color:#007afc}.seam-components .seam-supported-devices-table .seam-status-pill.status-gray{background-color:#cbd0d3}/*# sourceMappingURL=index.min.css.map */
package/index.min.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["src/styles/_main.scss","src/styles/_typography.scss","src/styles/_reset.scss","src/styles/_colors.scss","src/styles/_tables.scss","src/styles/_inputs.scss","src/styles/_buttons.scss","src/styles/_layout.scss","src/styles/_icons.scss","src/styles/_menus.scss","src/styles/_device-details.scss","src/styles/_device-table.scss","src/styles/_access-code-table.scss","src/styles/_access-code-details.scss","src/styles/_alert.scss","src/styles/_supported-devices.scss"],"names":[],"mappings":"AAgBA,iBCbE,2JCGA,wEAGE,sBAGF,ylCAmDE,SACA,UACA,SACA,eACA,oBACA,wBACA,kCACA,mCACA,sBAGF,oHAKE,cAGF,sBACE,cAGF,wCAEE,gBAGF,+CAEE,YAGF,4HAIE,WACA,aAGF,uBACE,yBACA,iBAGF,uBACE,gBACA,gBDtGF,wHAME,gBAKF,+BACE,METU,QFcZ,mCACE,MEPS,QFYX,sBACE,MEvBW,QF4Bb,sCACE,cACA,WACA,mBACA,gBACA,uBGxCF,oCACE,aACA,8BACA,mBACA,YACA,eAGF,mCACE,eACA,iBAEA,iDACE,eACA,iBAMJ,iCACE,aACA,YACA,YACA,6BAEA,uCACE,mBAGF,6CACE,gBACA,eACA,iBAMJ,kCACE,aACA,mBACA,YAKF,+CACE,aACA,eACA,iBACA,aACA,mBACA,uBAKF,wCACE,aACA,mBACA,iBACA,WD9CG,QCgDH,mEACE,gBACA,SACA,oCACA,UAEA,uEACE,YAEA,yEACE,KDlEI,QCwEZ,yCACE,aACA,mBACA,wBACA,kBACA,yBACA,eACA,iBAEA,6CACE,UAGF,wDACE,eAEA,8DACE,iCACA,yBAIJ,uDACE,gBACA,yBCxGJ,kCACE,cACA,YACA,yBACA,kBC2GF,2BL/GA,2JKoHE,gBACA,eAjFF,0CACE,eACA,iBACA,kBACA,iBAGF,2CACE,eACA,iBACA,kBACA,iBAGF,0CACE,eACA,iBACA,kBACA,iBAKF,0CACE,WH7DM,QG8DN,WACA,yBAEA,gDACE,WH5DS,QG6DT,aH7DS,QGgEX,+GAEE,WHjEQ,QGkER,aHlEQ,QGsEZ,4CACE,MH9EM,QG+EN,yBACA,yBAEA,kDACE,WH9EM,QGiFR,mHAEE,yBACA,MHxFO,QG4FX,4CACE,MHrFU,QGsFV,yBAEA,kDACE,WHjFC,QGkFD,aHxFU,QG2FZ,mHAEE,MH7FU,QG8FV,aH7FQ,QG8FR,gBAcF,iFAEE,mBAxHJ,gCACE,kBACA,oCACA,eACA,gBACA,YACA,cAEA,sCACE,+BAMJ,gCACE,MHlBM,QGmBN,UACA,eACA,yBACA,SAEA,sCACE,0BAGF,2FAEE,mBACA,qBC9BJ,sCACE,YACA,aACA,mBACA,kBACA,uBACA,cAEA,sDACE,kBACA,QACA,+BACA,OACA,eAGF,kDACE,eACA,iBACA,MJXQ,QKPV,mCACE,KLMQ,QMRZ,+BACE,YACA,aACA,uBACA,mBACA,eACA,QACA,eACA,aAGF,oCACE,YACA,kBACA,cACA,gBACA,oEACA,kBAEA,oDACE,eACA,YACA,aACA,mBACA,eACA,iBACA,eAEA,0DACE,WNHQ,QMQd,mCACE,WACA,UACA,kBACA,MACA,QACA,eCvCA,iDACE,aACA,sBACA,SACA,mBAEA,2DACE,yBACA,kBAEA,yEACE,4BAEA,2FACE,2BACA,aACA,mBACA,8BACA,eAEA,iGACE,WPIE,yGOCJ,6BAGF,0FACE,aACA,8BAEA,sGACE,aACA,mBAIJ,qFACE,eACA,iBACA,MPnCE,QOsCJ,qFACE,cACA,gBACA,eACA,iBAKN,+DACE,kBACA,mBACA,WP1CD,QO4CC,6EACE,aACA,mBACA,SAEA,yFACE,YACA,aACA,aACA,mBAEA,6FACE,eAKF,oGACE,MPtEA,QOuEA,gBACA,eACA,iBACA,kBAGF,0GACE,mBACA,gBACA,eACA,iBAGF,yGACE,aACA,sCACA,mBACA,eACA,iBACA,YACA,gBAEA,qHACE,MP7FF,QOgGA,2HACE,MPlGF,QOqGA,6GACE,UACA,iBAGF,2GACE,aACA,mBAOV,iEACE,OACA,gBACA,aACA,mBACA,uBAEA,qEACE,WACA,YACA,aACA,mBACA,uBAIJ,iEACE,OAGF,mEACE,kBACA,aACA,mBACA,uBClJJ,oDACE,eAEA,qEACE,WACA,YACA,YAEA,yEACE,WAIJ,oEACE,OACA,sBACA,uBACA,uBACA,QACA,gBAEA,gFACE,gBAGF,iFACE,aACA,8BACA,mBACA,WAEA,oGACE,gBACA,eACA,iBACA,MR5BE,QQ6BF,eACA,mBACA,gBACA,uBAGF,uGACE,aACA,mBACA,MRtCE,QQuCF,eACA,iBAEA,2GACE,aACA,mBACA,kBAEA,+GACE,UCvDZ,yDACE,eAEA,yEACE,OACA,aACA,mBACA,uBAEA,6EACE,WACA,YACA,aACA,mBACA,uBAIJ,yEACE,OACA,sBACA,uBACA,uBACA,QACA,gBAEA,qFACE,gBAGF,4FACE,eACA,iBACA,MT1BI,QS2BJ,aAEA,8GACE,gBACA,WAGF,8GACE,aACA,MTjCE,QSsCR,2EACE,kBACA,aACA,mBACA,uBAMJ,qEACE,aACA,mBACA,8BACA,OC9DF,yDACE,WVcC,QUbD,mBACA,mBAEA,mEACE,kBAEA,+EACE,gBACA,eACA,iBACA,MVLI,QUMJ,kBAGF,0FACE,gBACA,eACA,iBACA,kBAGF,8EACE,gBACA,yBACA,kBACA,kBACA,gBACA,eACA,iBACA,kBAGF,kFACE,MV5BI,QU6BJ,eACA,iBAEA,8FACE,gBACA,MVnCG,QUwCT,kFACE,6BACA,yBACA,aACA,mBAEA,qGACE,WACA,YACA,kBAEA,yGACE,WACA,gBAIJ,6FACE,OACA,gBACA,eACA,iBACA,iBAKN,yDACE,eACA,iBACA,wCACA,eAEA,mEACE,aACA,aACA,qCAEA,iFACE,YAGF,iFACE,aACA,OAEA,6FACE,aACA,OACA,eACA,iBAEA,yGACE,MV3FA,QU+FA,qGACE,kBAGF,6GACE,eC5Gd,8BACE,WACA,aACA,2BACA,uBACA,sBACA,QAEA,oDACE,gBAKJ,6BACE,WACA,gBACA,iBACA,kBACA,aACA,8BACA,mBACA,mBACA,SAEA,gDACE,gBACA,YACA,eACA,kBACA,+BACA,eACA,cACA,gBACA,mBACA,eAEA,sDACE,iBXbQ,QWiBZ,gDACE,iBXnBY,QWoBZ,yBAEA,mEACE,yBACA,MX1BU,QW8Bd,8CACE,iBXhCa,QWiCb,yBAEA,iEACE,yBACA,MXvCW,QW2Cf,kDACE,gBAGF,8CACE,WACA,YAGF,iDACE,aACA,2BACA,mBACA,mBACA,QAIA,0EACE,eACA,gBACA,iBACA,MX9EO,QWmFb,wCACE,6BACE,2BACA,sBAEA,iDACE,WACA,uBACA,sBACA,QAGF,qDACE,WAEA,wEACE,YCxGR,2DACE,WACA,iBZYG,QYXH,iBACA,aACA,uBACA,mBACA,sBACA,QAGF,+CACE,WACA,gBACA,kBACA,yBAEA,oGAEE,mBACA,cAGF,qDACE,WACA,YACA,WZZC,QYaD,gBAEA,wDACE,kBAGF,wDACE,sBACA,gBACA,eACA,gBAKF,wDACE,YACA,gCAGF,wDACE,sBAKF,sIAEE,aA1DM,IA6DR,oIAEE,cA/DM,IAmEV,iEACE,oBACA,gBACA,mBACA,iBZnDS,QYqDT,sEACE,WACA,eACA,gBACA,cAGF,8EACE,iBZ7DO,QYgET,+EACE,iBZlEQ,QYqEV,4EACE,iBZvEK,QY0EP,6EACE,iBZ7FE,QYgGJ,6EACE,iBZnFD","file":"index.min.css"}
1
+ {"version":3,"sourceRoot":"","sources":["src/styles/_main.scss","src/styles/_typography.scss","src/styles/_reset.scss","src/styles/_colors.scss","src/styles/_tables.scss","src/styles/_inputs.scss","src/styles/_buttons.scss","src/styles/_layout.scss","src/styles/_icons.scss","src/styles/_menus.scss","src/styles/_device-details.scss","src/styles/_device-table.scss","src/styles/_access-code-table.scss","src/styles/_access-code-details.scss","src/styles/_alert.scss","src/styles/_supported-devices.scss"],"names":[],"mappings":"AAgBA,iBCbE,2JCGA,wEAGE,sBAGF,ylCAmDE,SACA,UACA,SACA,eACA,oBACA,wBACA,kCACA,mCACA,sBAGF,oHAKE,cAGF,sBACE,cAGF,wCAEE,gBAGF,+CAEE,YAGF,4HAIE,WACA,aAGF,uBACE,yBACA,iBAGF,uBACE,gBACA,gBDtGF,wHAME,gBAKF,+BACE,METU,QFcZ,mCACE,MENS,QFWX,sBACE,MEvBW,QF4Bb,sCACE,cACA,WACA,mBACA,gBACA,uBGxCF,oCACE,aACA,8BACA,uBACA,YACA,eAEA,+CACE,aACA,8BACA,mBACA,WAIJ,mCACE,eACA,iBAEA,iDACE,eACA,iBAMJ,iCACE,aACA,YACA,YACA,6BAEA,uCACE,mBAGF,6CACE,gBACA,eACA,iBAMJ,kCACE,aACA,mBACA,YAKF,+CACE,aACA,eACA,iBACA,aACA,mBACA,uBAKF,wCACE,aACA,mBACA,iBACA,WDrDG,QCuDH,mEACE,gBACA,SACA,oCACA,UAEA,uEACE,YAEA,yEACE,KDzEI,QC+EZ,yCACE,aACA,mBACA,wBACA,kBACA,yBACA,eACA,iBAEA,6CACE,UAGF,wDACE,eAEA,8DACE,iCACA,yBAIJ,uDACE,gBACA,yBC/GJ,kCACE,yBACA,kBACA,cACA,aACA,mBAEA,wCACE,aFDS,QEIX,+CACE,aFbI,QEgBN,gDACE,aFLQ,QEMR,mBACA,mBAEA,uEACE,mBAIJ,yDACE,YACA,SAEA,+DACE,aAIJ,kDACE,aACA,mBAEA,sDACE,YAGF,6DACE,iBAGF,yDACE,WACA,YACA,aACA,uBACA,mBACA,gBACA,+BACA,UACA,SACA,SACA,gBACA,kBACA,eAEA,+DACE,iBF/CH,QEkDC,qEACE,UACA,kBAMJ,gFACE,WCqCN,2BL/GA,2JKoHE,gBACA,eAjFF,0CACE,eACA,iBACA,kBACA,iBAGF,2CACE,eACA,iBACA,kBACA,iBAGF,0CACE,eACA,iBACA,kBACA,iBAKF,0CACE,WH7DM,QG8DN,WACA,yBAEA,gDACE,WH5DS,QG6DT,aH7DS,QGgEX,+GAEE,WHjEQ,QGkER,aHlEQ,QGsEZ,4CACE,MH9EM,QG+EN,yBACA,yBAEA,kDACE,WH9EM,QGiFR,mHAEE,yBACA,MHxFO,QG4FX,4CACE,MHrFU,QGsFV,yBAEA,kDACE,WHjFC,QGkFD,aHxFU,QG2FZ,mHAEE,MH7FU,QG8FV,aH7FQ,QG8FR,gBAcF,iFAEE,mBAxHJ,gCACE,kBACA,oCACA,eACA,gBACA,YACA,cAEA,sCACE,+BAMJ,gCACE,MHlBM,QGmBN,UACA,eACA,yBACA,SAEA,sCACE,0BAGF,2FAEE,mBACA,qBC9BJ,sCACE,YACA,aACA,mBACA,kBACA,uBACA,cAEA,sDACE,kBACA,QACA,+BACA,OACA,eAGF,kDACE,eACA,iBACA,MJXQ,QKPV,mCACE,KLMQ,QMRZ,+BACE,YACA,aACA,uBACA,mBACA,eACA,QACA,eACA,aAGF,oCACE,YACA,kBACA,cACA,gBACA,oEACA,kBAEA,oDACE,eACA,YACA,aACA,mBACA,eACA,iBACA,eAEA,0DACE,WNFQ,QMOd,mCACE,WACA,UACA,kBACA,MACA,QACA,eCvCA,iDACE,aACA,sBACA,SACA,mBAEA,2DACE,yBACA,kBAEA,yEACE,4BAEA,2FACE,2BACA,aACA,mBACA,8BACA,eAEA,iGACE,WPKE,QODN,iGACE,6BAGF,0FACE,aACA,8BAEA,sGACE,aACA,mBAIJ,qFACE,eACA,iBACA,MPnCE,QOsCJ,qFACE,cACA,gBACA,eACA,iBAKN,+DACE,kBACA,mBACA,WP1CD,QO4CC,6EACE,aACA,mBACA,SAEA,yFACE,YACA,aACA,aACA,mBAEA,6FACE,eAKF,oGACE,MPtEA,QOuEA,gBACA,eACA,iBACA,kBAGF,0GACE,mBACA,gBACA,eACA,iBAGF,yGACE,aACA,sCACA,mBACA,eACA,iBACA,YACA,gBAEA,qHACE,MP7FF,QOgGA,2HACE,MPlGF,QOqGA,6GACE,UACA,iBAGF,2GACE,aACA,mBAOV,iEACE,OACA,gBACA,aACA,mBACA,uBAEA,qEACE,WACA,YACA,aACA,mBACA,uBAIJ,iEACE,OAGF,mEACE,kBACA,aACA,mBACA,uBClJJ,4DACE,YAGF,oDACE,eAEA,qEACE,WACA,YACA,YAEA,yEACE,WAIJ,oEACE,OACA,sBACA,uBACA,uBACA,QACA,gBAEA,gFACE,gBAGF,iFACE,aACA,8BACA,mBACA,WAEA,oGACE,gBACA,eACA,iBACA,MRhCE,QQiCF,eACA,mBACA,gBACA,uBAGF,uGACE,aACA,mBACA,MR1CE,QQ2CF,eACA,iBAEA,2GACE,aACA,mBACA,kBAEA,+GACE,UC3DZ,yDACE,eAEA,yEACE,OACA,aACA,mBACA,uBAEA,6EACE,WACA,YACA,aACA,mBACA,uBAIJ,yEACE,OACA,sBACA,uBACA,uBACA,QACA,gBAEA,qFACE,gBAGF,4FACE,eACA,iBACA,MT1BI,QS2BJ,aAEA,8GACE,gBACA,WAGF,8GACE,aACA,MTjCE,QSsCR,2EACE,kBACA,aACA,mBACA,uBAMJ,qEACE,aACA,mBACA,8BACA,OC9DF,yDACE,WVcC,QUbD,mBACA,mBAEA,mEACE,kBAEA,+EACE,gBACA,eACA,iBACA,MVLI,QUMJ,kBAGF,0FACE,gBACA,eACA,iBACA,kBAGF,8EACE,gBACA,yBACA,kBACA,kBACA,gBACA,eACA,iBACA,kBAGF,kFACE,MV5BI,QU6BJ,eACA,iBAEA,8FACE,gBACA,MVnCG,QUwCT,kFACE,6BACA,yBACA,aACA,mBAEA,qGACE,WACA,YACA,kBAEA,yGACE,WACA,gBAIJ,6FACE,OACA,gBACA,eACA,iBACA,iBAKN,yDACE,eACA,iBACA,wCACA,eAEA,mEACE,aACA,aACA,qCAEA,iFACE,YAGF,iFACE,aACA,OAEA,6FACE,aACA,OACA,eACA,iBAEA,yGACE,MV3FA,QU+FA,qGACE,kBAGF,6GACE,eC5Gd,8BACE,WACA,aACA,2BACA,uBACA,sBACA,QAEA,oDACE,gBAKJ,6BACE,WACA,gBACA,iBACA,kBACA,aACA,8BACA,mBACA,mBACA,SAEA,gDACE,gBACA,YACA,eACA,kBACA,+BACA,eACA,cACA,gBACA,mBACA,eAEA,sDACE,iBXZQ,QWgBZ,gDACE,iBXlBY,QWmBZ,yBAEA,mEACE,yBACA,MXzBU,QW6Bd,8CACE,iBX/Ba,QWgCb,yBAEA,iEACE,yBACA,MXtCW,QW0Cf,kDACE,gBAGF,8CACE,WACA,YAGF,iDACE,aACA,2BACA,mBACA,mBACA,QAIA,0EACE,eACA,gBACA,iBACA,MX9EO,QWmFb,wCACE,6BACE,2BACA,sBAEA,iDACE,WACA,uBACA,sBACA,QAGF,qDACE,WAEA,wEACE,YCxGR,2DACE,WACA,iBZYG,QYXH,iBACA,aACA,uBACA,mBACA,sBACA,QAGF,+CACE,WACA,gBACA,kBACA,yBAEA,oGAEE,mBACA,cAGF,qDACE,WACA,YACA,WZZC,QYaD,gBAEA,wDACE,kBAGF,wDACE,sBACA,gBACA,eACA,gBAKF,wDACE,YACA,gCAGF,wDACE,sBAKF,sIAEE,aA1DM,IA6DR,oIAEE,cA/DM,IAmEV,iEACE,oBACA,gBACA,mBACA,iBZlDS,QYoDT,sEACE,WACA,eACA,gBACA,cAGF,8EACE,iBZ5DO,QY+DT,+EACE,iBZjEQ,QYoEV,4EACE,iBZtEK,QYyEP,6EACE,iBZ7FE,QYgGJ,6EACE,iBZnFD","file":"index.min.css"}
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare const CloseIcon: (props: SVGProps<SVGSVGElement>) => JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const CloseIcon = (props) => (_jsxs("svg", { xmlns: 'http://www.w3.org/2000/svg', width: 24, height: 24, fill: 'none', ...props, children: [_jsx("mask", { id: 'close_svg__a', width: 24, height: 24, x: 0, y: 0, maskUnits: 'userSpaceOnUse', style: {
3
+ maskType: 'alpha',
4
+ }, children: _jsx("path", { fill: '#D9D9D9', d: 'M0 0h24v24H0z' }) }), _jsx("g", { mask: 'url(#close_svg__a)', children: _jsx("path", { fill: '#B9BEC5', d: 'M6.4 19 5 17.6l5.6-5.6L5 6.4 6.4 5l5.6 5.6L17.6 5 19 6.4 13.4 12l5.6 5.6-1.4 1.4-5.6-5.6L6.4 19Z' }) })] }));
5
+ //# sourceMappingURL=Close.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Close.js","sourceRoot":"","sources":["../../src/lib/icons/Close.tsx"],"names":[],"mappings":";AACA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAA8B,EAAe,EAAE,CAAC,CACxE,eACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,IAAI,EAAC,MAAM,KACP,KAAK,aAET,eACE,EAAE,EAAC,cAAc,EACjB,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,SAAS,EAAC,gBAAgB,EAC1B,KAAK,EAAE;gBACL,QAAQ,EAAE,OAAO;aAClB,YAED,eAAM,IAAI,EAAC,SAAS,EAAC,CAAC,EAAC,eAAe,GAAG,GACpC,EACP,YAAG,IAAI,EAAC,oBAAoB,YAC1B,eACE,IAAI,EAAC,SAAS,EACd,CAAC,EAAC,kGAAkG,GACpG,GACA,IACA,CACP,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare const SearchIcon: (props: SVGProps<SVGSVGElement>) => JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const SearchIcon = (props) => (_jsxs("svg", { xmlns: 'http://www.w3.org/2000/svg', width: 20, height: 20, fill: 'none', ...props, children: [_jsx("mask", { id: 'search_svg__a', width: 20, height: 20, x: 0, y: 0, maskUnits: 'userSpaceOnUse', style: {
3
+ maskType: 'alpha',
4
+ }, children: _jsx("path", { fill: '#D9D9D9', d: 'M0 0h20v20H0z' }) }), _jsx("g", { mask: 'url(#search_svg__a)', children: _jsx("path", { fill: '#6E7179', d: 'm16.333 17.5-5.25-5.25a5.08 5.08 0 0 1-3.167 1.083c-1.513 0-2.794-.524-3.843-1.572C3.024 10.71 2.5 9.43 2.5 7.917c0-1.514.524-2.796 1.573-3.845C5.122 3.024 6.403 2.5 7.917 2.5c1.514 0 2.795.524 3.844 1.572 1.048 1.05 1.572 2.33 1.572 3.845a5.08 5.08 0 0 1-1.083 3.166l5.25 5.25-1.167 1.167Zm-8.416-5.833c1.041 0 1.927-.365 2.656-1.094.73-.73 1.094-1.615 1.094-2.656 0-1.042-.365-1.928-1.094-2.657-.73-.729-1.615-1.093-2.656-1.093-1.042 0-1.928.364-2.657 1.093-.729.73-1.093 1.615-1.093 2.657 0 1.041.364 1.927 1.093 2.656.73.73 1.615 1.094 2.657 1.094Z' }) })] }));
5
+ //# sourceMappingURL=Search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Search.js","sourceRoot":"","sources":["../../src/lib/icons/Search.tsx"],"names":[],"mappings":";AACA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA8B,EAAe,EAAE,CAAC,CACzE,eACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,IAAI,EAAC,MAAM,KACP,KAAK,aAET,eACE,EAAE,EAAC,eAAe,EAClB,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,SAAS,EAAC,gBAAgB,EAC1B,KAAK,EAAE;gBACL,QAAQ,EAAE,OAAO;aAClB,YAED,eAAM,IAAI,EAAC,SAAS,EAAC,CAAC,EAAC,eAAe,GAAG,GACpC,EACP,YAAG,IAAI,EAAC,qBAAqB,YAC3B,eACE,IAAI,EAAC,SAAS,EACd,CAAC,EAAC,0iBAA0iB,GAC5iB,GACA,IACA,CACP,CAAA"}
@@ -9,10 +9,12 @@ import { EmptyPlaceholder } from '../../../lib/ui/Table/EmptyPlaceholder.js';
9
9
  import { TableBody } from '../../../lib/ui/Table/TableBody.js';
10
10
  import { TableHeader } from '../../../lib/ui/Table/TableHeader.js';
11
11
  import { TableTitle } from '../../../lib/ui/Table/TableTitle.js';
12
+ import { SearchTextField } from '../../../lib/ui/TextField/SearchTextField.js';
12
13
  import { Caption } from '../../../lib/ui/typography/Caption.js';
13
14
  export function DeviceTable({ onBack, ...props }) {
14
15
  const { devices, isLoading, isError, error } = useDevices(props);
15
16
  const [selectedDeviceId, selectDevice] = useState(null);
17
+ const [searchTerm, setSearchTerm] = useState('');
16
18
  if (selectedDeviceId != null) {
17
19
  return (_jsx(DeviceDetails, { deviceId: selectedDeviceId, onBack: () => {
18
20
  selectDevice(null);
@@ -28,7 +30,13 @@ export function DeviceTable({ onBack, ...props }) {
28
30
  return null;
29
31
  }
30
32
  const deviceCount = devices.length;
31
- return (_jsxs("div", { className: 'seam-device-table', children: [_jsx(ContentHeader, { onBack: onBack }), _jsx(TableHeader, { children: _jsxs(TableTitle, { children: [t.devices, " ", _jsxs(Caption, { children: ["(", deviceCount, ")"] })] }) }), _jsx(TableBody, { children: _jsx(Body, { devices: devices, selectDevice: selectDevice }) })] }));
33
+ const filteredDevices = devices.filter((device) => {
34
+ if (searchTerm === '') {
35
+ return true;
36
+ }
37
+ return new RegExp(searchTerm, 'i').test(device.properties.name);
38
+ });
39
+ return (_jsxs("div", { className: 'seam-device-table', children: [_jsx(ContentHeader, { onBack: onBack }), _jsxs(TableHeader, { children: [_jsxs(TableTitle, { children: [t.devices, " ", _jsxs(Caption, { children: ["(", deviceCount, ")"] })] }), _jsx(SearchTextField, { value: searchTerm, onChange: setSearchTerm, disabled: deviceCount === 0 })] }), _jsx(TableBody, { children: _jsx(Body, { devices: filteredDevices, selectDevice: selectDevice }) })] }));
32
40
  }
33
41
  function Body(props) {
34
42
  const { devices, selectDevice } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceTable.js","sourceRoot":"","sources":["../../../src/lib/ui/DeviceTable/DeviceTable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeviceTable.js","sourceRoot":"","sources":["../../../src/lib/ui/DeviceTable/DeviceTable.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  export function TableHeader({ children }) {
3
- return _jsx("div", { className: 'seam-table-header', children: children });
3
+ return (_jsx("div", { className: 'seam-table-header', children: _jsx("div", { className: 'seam-body', children: children }) }));
4
4
  }
5
5
  //# sourceMappingURL=TableHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableHeader.js","sourceRoot":"","sources":["../../../src/lib/ui/Table/TableHeader.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,WAAW,CAAC,EAAE,QAAQ,EAAqB;IACzD,OAAO,cAAK,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAO,CAAA;AAC5D,CAAC"}
1
+ {"version":3,"file":"TableHeader.js","sourceRoot":"","sources":["../../../src/lib/ui/Table/TableHeader.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,WAAW,CAAC,EAAE,QAAQ,EAAqB;IACzD,OAAO,CACL,cAAK,SAAS,EAAC,mBAAmB,YAChC,cAAK,SAAS,EAAC,WAAW,YAAE,QAAQ,GAAO,GACvC,CACP,CAAA;AACH,CAAC"}
@@ -1,2 +1,2 @@
1
1
  import { type TextFieldProps } from '../../../lib/ui/TextField/TextField.js';
2
- export declare function SearchTextField({ className, ...props }: TextFieldProps): JSX.Element;
2
+ export declare function SearchTextField({ className, value, onChange, ...props }: TextFieldProps): JSX.Element;
@@ -1,7 +1,57 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import classNames from 'classnames';
3
+ import { useEffect, useState } from 'react';
4
+ import { CloseIcon } from '../../../lib/icons/Close.js';
5
+ import { SearchIcon } from '../../../lib/icons/Search.js';
3
6
  import { TextField } from '../../../lib/ui/TextField/TextField.js';
4
- export function SearchTextField({ className, ...props }) {
5
- return (_jsx(TextField, { ...props, className: classNames(className, 'seam-search-text-field') }));
7
+ export function SearchTextField({ className, value, onChange, ...props }) {
8
+ const [inputEl, setInputEl] = useState(null);
9
+ const valueIsEmpty = useValueIsEmpty(value, inputEl);
10
+ const clearInput = () => {
11
+ if (onChange != null) {
12
+ onChange('');
13
+ return;
14
+ }
15
+ if (inputEl != null) {
16
+ inputEl.value = '';
17
+ }
18
+ };
19
+ return (_jsx(TextField, { value: value, onChange: onChange, ...props, className: classNames(className, 'seam-search-text-field'), startAdornment: _jsx(SearchIcon, {}), inputProps: {
20
+ ref: setInputEl,
21
+ placeholder: 'Search',
22
+ }, endAdornment: _jsx("button", { className: classNames({
23
+ 'seam-hidden': valueIsEmpty,
24
+ }), onClick: clearInput, children: _jsx(CloseIcon, {}) }) }));
25
+ }
26
+ function useValueIsEmpty(value, inputEl) {
27
+ const [valueIsEmpty, setValueIsEmpty] = useState(true);
28
+ // If this is a controlled element, we'll just look at `value`
29
+ useEffect(() => {
30
+ setValueIsEmpty(value == null || value === '');
31
+ }, [value]);
32
+ // If this is not a controlled element, we'll need to listen to `input`
33
+ // events.
34
+ useEffect(() => {
35
+ if (inputEl == null) {
36
+ return;
37
+ }
38
+ const handler = (event) => {
39
+ if (value !== undefined) {
40
+ return;
41
+ }
42
+ if (event.target == null || !('value' in event.target)) {
43
+ return;
44
+ }
45
+ const inputValue = event.target.value;
46
+ if (value === undefined) {
47
+ setValueIsEmpty(inputValue === '');
48
+ }
49
+ };
50
+ inputEl.addEventListener('input', handler);
51
+ return () => {
52
+ inputEl.removeEventListener('input', handler);
53
+ };
54
+ }, [inputEl, value]);
55
+ return valueIsEmpty;
6
56
  }
7
57
  //# sourceMappingURL=SearchTextField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchTextField.js","sourceRoot":"","sources":["../../../src/lib/ui/TextField/SearchTextField.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAuB,MAAM,+BAA+B,CAAA;AAE9E,MAAM,UAAU,eAAe,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACO;IACf,OAAO,CACL,KAAC,SAAS,OACJ,KAAK,EACT,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,wBAAwB,CAAC,GAC1D,CACH,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"SearchTextField.js","sourceRoot":"","sources":["../../../src/lib/ui/TextField/SearchTextField.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAuB,MAAM,+BAA+B,CAAA;AAE9E,MAAM,UAAU,eAAe,CAAC,EAC9B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACO;IACf,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA0B,IAAI,CAAC,CAAA;IAErE,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACpD,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,QAAQ,CAAC,EAAE,CAAC,CAAA;YACZ,OAAM;SACP;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,CAAC,KAAK,GAAG,EAAE,CAAA;SACnB;IACH,CAAC,CAAA;IAED,OAAO,CACL,KAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,KACd,KAAK,EACT,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,wBAAwB,CAAC,EAC1D,cAAc,EAAE,KAAC,UAAU,KAAG,EAC9B,UAAU,EAAE;YACV,GAAG,EAAE,UAAU;YACf,WAAW,EAAE,QAAQ;SACtB,EACD,YAAY,EACV,iBACE,SAAS,EAAE,UAAU,CAAC;gBACpB,aAAa,EAAE,YAAY;aAC5B,CAAC,EACF,OAAO,EAAE,UAAU,YAEnB,KAAC,SAAS,KAAG,GACN,GAEX,CACH,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CACtB,KAAyB,EACzB,OAAgC;IAEhC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAEtD,8DAA8D;IAC9D,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,CAAA;IAChD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,uEAAuE;IACvE,UAAU;IACV,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAM;SACP;QAED,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;YAC/B,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,OAAM;aACP;YAED,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE;gBACtD,OAAM;aACP;YAED,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAA;YACrC,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,eAAe,CAAC,UAAU,KAAK,EAAE,CAAC,CAAA;aACnC;QACH,CAAC,CAAA;QAED,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAE1C,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC/C,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAEpB,OAAO,YAAY,CAAA;AACrB,CAAC"}
@@ -1,7 +1,14 @@
1
- import type { ChangeEvent, InputHTMLAttributes } from 'react';
2
- export type TextFieldProps = {
1
+ import type { ChangeEvent, InputHTMLAttributes, MutableRefObject } from 'react';
2
+ export interface TextFieldProps {
3
3
  value?: string;
4
- onChange: (value: string) => void;
5
- } & Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'>;
4
+ onChange?: (value: string) => void;
5
+ startAdornment?: JSX.Element;
6
+ endAdornment?: JSX.Element;
7
+ disabled?: boolean;
8
+ className?: string;
9
+ inputProps?: {
10
+ ref?: MutableRefObject<HTMLInputElement | null> | ((inputEl: HTMLInputElement) => void);
11
+ } & Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'>;
12
+ }
6
13
  export declare function TextField(props: TextFieldProps): JSX.Element;
7
14
  export declare const handleString: (setter: (v: string) => void) => (event: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
@@ -1,8 +1,10 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import classNames from 'classnames';
3
3
  export function TextField(props) {
4
- const { value, onChange, className, ...inputProps } = props;
5
- return (_jsx("input", { className: classNames('seam-text-field', className), value: value, onChange: handleString(onChange), type: 'text', ...inputProps }));
4
+ const { value, onChange, className, startAdornment, endAdornment, inputProps, disabled, } = props;
5
+ return (_jsxs("div", { className: classNames('seam-text-field', className, {
6
+ 'seam-disabled': disabled,
7
+ }), children: [startAdornment != null && (_jsx("div", { className: 'seam-adornment seam-start', children: startAdornment })), _jsx("input", { className: 'seam-text-field-input', value: value, onChange: onChange == null ? undefined : handleString(onChange), type: 'text', disabled: disabled, ...inputProps }), endAdornment != null && (_jsx("div", { className: 'seam-adornment seam-end', children: endAdornment }))] }));
6
8
  }
7
9
  export const handleString = (setter) => (event) => {
8
10
  setter(event.currentTarget.value);
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.js","sourceRoot":"","sources":["../../../src/lib/ui/TextField/TextField.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AAQnC,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAA;IAC3D,OAAO,CACL,gBACE,SAAS,EAAE,UAAU,CAAC,iBAAiB,EAAE,SAAS,CAAC,EACnD,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAChC,IAAI,EAAC,MAAM,KACP,UAAU,GACd,CACH,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GACvB,CAAC,MAA2B,EAAE,EAAE,CAChC,CAAC,KAA0D,EAAQ,EAAE;IACnE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;AACnC,CAAC,CAAA"}
1
+ {"version":3,"file":"TextField.js","sourceRoot":"","sources":["../../../src/lib/ui/TextField/TextField.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AAiBnC,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,YAAY,EACZ,UAAU,EACV,QAAQ,GACT,GAAG,KAAK,CAAA;IAET,OAAO,CACL,eACE,SAAS,EAAE,UAAU,CAAC,iBAAiB,EAAE,SAAS,EAAE;YAClD,eAAe,EAAE,QAAQ;SAC1B,CAAC,aAED,cAAc,IAAI,IAAI,IAAI,CACzB,cAAK,SAAS,EAAC,2BAA2B,YAAE,cAAc,GAAO,CAClE,EACD,gBACE,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,EAC/D,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,QAAQ,KACd,UAAU,GACd,EACD,YAAY,IAAI,IAAI,IAAI,CACvB,cAAK,SAAS,EAAC,yBAAyB,YAAE,YAAY,GAAO,CAC9D,IACG,CACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GACvB,CAAC,MAA2B,EAAE,EAAE,CAChC,CAAC,KAA0D,EAAQ,EAAE;IACnE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;AACnC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/react",
3
- "version": "0.26.1",
3
+ "version": "0.27.0",
4
4
  "description": "Seam React component library.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -0,0 +1,30 @@
1
+ import type { SVGProps } from 'react'
2
+ export const CloseIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (
3
+ <svg
4
+ xmlns='http://www.w3.org/2000/svg'
5
+ width={24}
6
+ height={24}
7
+ fill='none'
8
+ {...props}
9
+ >
10
+ <mask
11
+ id='close_svg__a'
12
+ width={24}
13
+ height={24}
14
+ x={0}
15
+ y={0}
16
+ maskUnits='userSpaceOnUse'
17
+ style={{
18
+ maskType: 'alpha',
19
+ }}
20
+ >
21
+ <path fill='#D9D9D9' d='M0 0h24v24H0z' />
22
+ </mask>
23
+ <g mask='url(#close_svg__a)'>
24
+ <path
25
+ fill='#B9BEC5'
26
+ d='M6.4 19 5 17.6l5.6-5.6L5 6.4 6.4 5l5.6 5.6L17.6 5 19 6.4 13.4 12l5.6 5.6-1.4 1.4-5.6-5.6L6.4 19Z'
27
+ />
28
+ </g>
29
+ </svg>
30
+ )
@@ -0,0 +1,30 @@
1
+ import type { SVGProps } from 'react'
2
+ export const SearchIcon = (props: SVGProps<SVGSVGElement>): JSX.Element => (
3
+ <svg
4
+ xmlns='http://www.w3.org/2000/svg'
5
+ width={20}
6
+ height={20}
7
+ fill='none'
8
+ {...props}
9
+ >
10
+ <mask
11
+ id='search_svg__a'
12
+ width={20}
13
+ height={20}
14
+ x={0}
15
+ y={0}
16
+ maskUnits='userSpaceOnUse'
17
+ style={{
18
+ maskType: 'alpha',
19
+ }}
20
+ >
21
+ <path fill='#D9D9D9' d='M0 0h20v20H0z' />
22
+ </mask>
23
+ <g mask='url(#search_svg__a)'>
24
+ <path
25
+ fill='#6E7179'
26
+ d='m16.333 17.5-5.25-5.25a5.08 5.08 0 0 1-3.167 1.083c-1.513 0-2.794-.524-3.843-1.572C3.024 10.71 2.5 9.43 2.5 7.917c0-1.514.524-2.796 1.573-3.845C5.122 3.024 6.403 2.5 7.917 2.5c1.514 0 2.795.524 3.844 1.572 1.048 1.05 1.572 2.33 1.572 3.845a5.08 5.08 0 0 1-1.083 3.166l5.25 5.25-1.167 1.167Zm-8.416-5.833c1.041 0 1.927-.365 2.656-1.094.73-.73 1.094-1.615 1.094-2.656 0-1.042-.365-1.928-1.094-2.657-.73-.729-1.615-1.093-2.656-1.093-1.042 0-1.928.364-2.657 1.093-.729.73-1.093 1.615-1.093 2.657 0 1.041.364 1.927 1.093 2.656.73.73 1.615 1.094 2.657 1.094Z'
27
+ />
28
+ </g>
29
+ </svg>
30
+ )
@@ -16,6 +16,7 @@ import { EmptyPlaceholder } from 'lib/ui/Table/EmptyPlaceholder.js'
16
16
  import { TableBody } from 'lib/ui/Table/TableBody.js'
17
17
  import { TableHeader } from 'lib/ui/Table/TableHeader.js'
18
18
  import { TableTitle } from 'lib/ui/Table/TableTitle.js'
19
+ import { SearchTextField } from 'lib/ui/TextField/SearchTextField.js'
19
20
  import { Caption } from 'lib/ui/typography/Caption.js'
20
21
 
21
22
  export type DeviceTableProps = Props & UseDevicesParams
@@ -31,6 +32,7 @@ export function DeviceTable({
31
32
  const { devices, isLoading, isError, error } = useDevices(props)
32
33
 
33
34
  const [selectedDeviceId, selectDevice] = useState<string | null>(null)
35
+ const [searchTerm, setSearchTerm] = useState('')
34
36
 
35
37
  if (selectedDeviceId != null) {
36
38
  return (
@@ -57,6 +59,14 @@ export function DeviceTable({
57
59
 
58
60
  const deviceCount = devices.length
59
61
 
62
+ const filteredDevices = devices.filter((device) => {
63
+ if (searchTerm === '') {
64
+ return true
65
+ }
66
+
67
+ return new RegExp(searchTerm, 'i').test(device.properties.name)
68
+ })
69
+
60
70
  return (
61
71
  <div className='seam-device-table'>
62
72
  <ContentHeader onBack={onBack} />
@@ -64,9 +74,14 @@ export function DeviceTable({
64
74
  <TableTitle>
65
75
  {t.devices} <Caption>({deviceCount})</Caption>
66
76
  </TableTitle>
77
+ <SearchTextField
78
+ value={searchTerm}
79
+ onChange={setSearchTerm}
80
+ disabled={deviceCount === 0}
81
+ />
67
82
  </TableHeader>
68
83
  <TableBody>
69
- <Body devices={devices} selectDevice={selectDevice} />
84
+ <Body devices={filteredDevices} selectDevice={selectDevice} />
70
85
  </TableBody>
71
86
  </div>
72
87
  )
@@ -1,5 +1,9 @@
1
1
  import type { PropsWithChildren } from 'react'
2
2
 
3
3
  export function TableHeader({ children }: PropsWithChildren): JSX.Element {
4
- return <div className='seam-table-header'>{children}</div>
4
+ return (
5
+ <div className='seam-table-header'>
6
+ <div className='seam-body'>{children}</div>
7
+ </div>
8
+ )
5
9
  }
@@ -1,15 +1,94 @@
1
1
  import classNames from 'classnames'
2
+ import { useEffect, useState } from 'react'
2
3
 
4
+ import { CloseIcon } from 'lib/icons/Close.js'
5
+ import { SearchIcon } from 'lib/icons/Search.js'
3
6
  import { TextField, type TextFieldProps } from 'lib/ui/TextField/TextField.js'
4
7
 
5
8
  export function SearchTextField({
6
9
  className,
10
+ value,
11
+ onChange,
7
12
  ...props
8
13
  }: TextFieldProps): JSX.Element {
14
+ const [inputEl, setInputEl] = useState<HTMLInputElement | null>(null)
15
+
16
+ const valueIsEmpty = useValueIsEmpty(value, inputEl)
17
+ const clearInput = () => {
18
+ if (onChange != null) {
19
+ onChange('')
20
+ return
21
+ }
22
+
23
+ if (inputEl != null) {
24
+ inputEl.value = ''
25
+ }
26
+ }
27
+
9
28
  return (
10
29
  <TextField
30
+ value={value}
31
+ onChange={onChange}
11
32
  {...props}
12
33
  className={classNames(className, 'seam-search-text-field')}
34
+ startAdornment={<SearchIcon />}
35
+ inputProps={{
36
+ ref: setInputEl,
37
+ placeholder: 'Search',
38
+ }}
39
+ endAdornment={
40
+ <button
41
+ className={classNames({
42
+ 'seam-hidden': valueIsEmpty,
43
+ })}
44
+ onClick={clearInput}
45
+ >
46
+ <CloseIcon />
47
+ </button>
48
+ }
13
49
  />
14
50
  )
15
51
  }
52
+
53
+ function useValueIsEmpty(
54
+ value: string | undefined,
55
+ inputEl: HTMLInputElement | null
56
+ ) {
57
+ const [valueIsEmpty, setValueIsEmpty] = useState(true)
58
+
59
+ // If this is a controlled element, we'll just look at `value`
60
+ useEffect(() => {
61
+ setValueIsEmpty(value == null || value === '')
62
+ }, [value])
63
+
64
+ // If this is not a controlled element, we'll need to listen to `input`
65
+ // events.
66
+ useEffect(() => {
67
+ if (inputEl == null) {
68
+ return
69
+ }
70
+
71
+ const handler = (event: Event) => {
72
+ if (value !== undefined) {
73
+ return
74
+ }
75
+
76
+ if (event.target == null || !('value' in event.target)) {
77
+ return
78
+ }
79
+
80
+ const inputValue = event.target.value
81
+ if (value === undefined) {
82
+ setValueIsEmpty(inputValue === '')
83
+ }
84
+ }
85
+
86
+ inputEl.addEventListener('input', handler)
87
+
88
+ return () => {
89
+ inputEl.removeEventListener('input', handler)
90
+ }
91
+ }, [inputEl, value])
92
+
93
+ return valueIsEmpty
94
+ }
@@ -1,21 +1,52 @@
1
1
  import classNames from 'classnames'
2
- import type { ChangeEvent, InputHTMLAttributes } from 'react'
2
+ import type { ChangeEvent, InputHTMLAttributes, MutableRefObject } from 'react'
3
3
 
4
- export type TextFieldProps = {
4
+ export interface TextFieldProps {
5
5
  value?: string
6
- onChange: (value: string) => void
7
- } & Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'>
6
+ onChange?: (value: string) => void
7
+ startAdornment?: JSX.Element
8
+ endAdornment?: JSX.Element
9
+ disabled?: boolean
10
+ className?: string
11
+ inputProps?: {
12
+ ref?:
13
+ | MutableRefObject<HTMLInputElement | null>
14
+ | ((inputEl: HTMLInputElement) => void)
15
+ } & Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'>
16
+ }
8
17
 
9
18
  export function TextField(props: TextFieldProps): JSX.Element {
10
- const { value, onChange, className, ...inputProps } = props
19
+ const {
20
+ value,
21
+ onChange,
22
+ className,
23
+ startAdornment,
24
+ endAdornment,
25
+ inputProps,
26
+ disabled,
27
+ } = props
28
+
11
29
  return (
12
- <input
13
- className={classNames('seam-text-field', className)}
14
- value={value}
15
- onChange={handleString(onChange)}
16
- type='text'
17
- {...inputProps}
18
- />
30
+ <div
31
+ className={classNames('seam-text-field', className, {
32
+ 'seam-disabled': disabled,
33
+ })}
34
+ >
35
+ {startAdornment != null && (
36
+ <div className='seam-adornment seam-start'>{startAdornment}</div>
37
+ )}
38
+ <input
39
+ className='seam-text-field-input'
40
+ value={value}
41
+ onChange={onChange == null ? undefined : handleString(onChange)}
42
+ type='text'
43
+ disabled={disabled}
44
+ {...inputProps}
45
+ />
46
+ {endAdornment != null && (
47
+ <div className='seam-adornment seam-end'>{endAdornment}</div>
48
+ )}
49
+ </div>
19
50
  )
20
51
  }
21
52
 
@@ -18,6 +18,7 @@ $bg-d: #cbd0d3;
18
18
  $bg-c: #dde0e2;
19
19
  $bg-b: #e9edef;
20
20
  $bg-a: #f1f3f4;
21
+ $bg-gray: #ececec;
21
22
  $status-red: #e36857;
22
23
  $status-orange: #f3980f;
23
24
  $status-green: #27ae60;
@@ -2,6 +2,10 @@
2
2
 
3
3
  @mixin all {
4
4
  .seam-device-table {
5
+ .seam-search-text-field {
6
+ width: 170px;
7
+ }
8
+
5
9
  .seam-table-row {
6
10
  cursor: pointer;
7
11
 
@@ -2,10 +2,82 @@
2
2
 
3
3
  @mixin text-field {
4
4
  .seam-text-field {
5
- padding: 0 8px;
6
- height: 40px;
7
5
  border: 1px solid colors.$text-gray-3;
8
6
  border-radius: 8px;
7
+ padding: 0 8px;
8
+ display: flex;
9
+ align-items: center;
10
+
11
+ &:hover {
12
+ border-color: colors.$text-default;
13
+ }
14
+
15
+ &:focus-within {
16
+ border-color: colors.$primary;
17
+ }
18
+
19
+ &.seam-disabled {
20
+ border-color: colors.$text-gray-3;
21
+ background: colors.$bg-gray;
22
+ cursor: not-allowed;
23
+
24
+ .seam-text-field-input {
25
+ cursor: not-allowed;
26
+ }
27
+ }
28
+
29
+ .seam-text-field-input {
30
+ height: 40px;
31
+ border: 0;
32
+
33
+ &:focus {
34
+ outline: none;
35
+ }
36
+ }
37
+
38
+ .seam-adornment {
39
+ display: flex;
40
+ align-items: center;
41
+
42
+ svg {
43
+ scale: 0.8333;
44
+ }
45
+
46
+ &.seam-start {
47
+ margin-right: 4px;
48
+ }
49
+
50
+ button {
51
+ width: 24px;
52
+ height: 24px;
53
+ display: flex;
54
+ justify-content: center;
55
+ align-items: center;
56
+ appearance: none;
57
+ background-color: transparent;
58
+ padding: 0;
59
+ margin: 0;
60
+ border: 0;
61
+ box-shadow: none;
62
+ border-radius: 4px;
63
+ cursor: pointer;
64
+
65
+ &:hover {
66
+ background-color: colors.$bg-b;
67
+ }
68
+
69
+ &.seam-hidden {
70
+ opacity: 0;
71
+ visibility: hidden;
72
+ }
73
+ }
74
+ }
75
+
76
+ &.seam-search-text-field {
77
+ .seam-text-field-input {
78
+ width: 100%;
79
+ }
80
+ }
9
81
  }
10
82
  }
11
83
 
@@ -4,9 +4,16 @@
4
4
  .seam-table-header {
5
5
  display: flex;
6
6
  justify-content: space-between;
7
- align-items: center;
7
+ align-items: flex-start;
8
8
  height: 56px;
9
9
  padding: 0 16px;
10
+
11
+ .seam-body {
12
+ display: flex;
13
+ justify-content: space-between;
14
+ align-items: center;
15
+ width: 100%;
16
+ }
10
17
  }
11
18
 
12
19
  .seam-table-title {