@seamapi/react 1.3.0 → 1.4.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/README.md +25 -4
- package/index.css +43 -37
- package/index.css.map +1 -1
- package/index.min.css +1 -1
- package/index.min.css.map +1 -1
- package/lib/ui/AccessCodeDetails/AccessCodeDetails.d.ts +1 -0
- package/lib/ui/AccessCodeDetails/AccessCodeDevice.d.ts +1 -0
- package/lib/ui/AccessCodeTable/AccessCodeTable.d.ts +1 -0
- package/lib/ui/AccessCodeTable/CodeDetails.d.ts +1 -0
- package/lib/ui/Alert/Alert.js +1 -1
- package/lib/ui/Alert/Alert.js.map +1 -1
- package/lib/ui/Alert/Alerts.d.ts +2 -2
- package/lib/ui/Alert/Alerts.js.map +1 -1
- package/lib/ui/Button.js +1 -1
- package/lib/ui/Button.js.map +1 -1
- package/lib/ui/DeviceDetails/DeviceDetails.d.ts +1 -0
- package/lib/ui/DeviceDetails/DeviceDetails.js +10 -20
- package/lib/ui/DeviceDetails/DeviceDetails.js.map +1 -1
- package/lib/ui/DeviceDetails/DeviceModel.d.ts +1 -0
- package/lib/ui/DeviceTable/DeviceHealthBar.js +2 -2
- package/lib/ui/DeviceTable/DeviceHealthBar.js.map +1 -1
- package/lib/ui/DeviceTable/DeviceRow.d.ts +1 -0
- package/lib/ui/DeviceTable/DeviceTable.d.ts +1 -0
- package/lib/ui/IconButton.d.ts +1 -0
- package/lib/ui/Menu/Menu.js +1 -3
- package/lib/ui/Menu/Menu.js.map +1 -1
- package/lib/ui/SupportedDeviceTable/FilterCategoryMenu.d.ts +3 -9
- package/lib/ui/SupportedDeviceTable/FilterCategoryMenu.js +3 -7
- package/lib/ui/SupportedDeviceTable/FilterCategoryMenu.js.map +1 -1
- package/lib/ui/SupportedDeviceTable/SupportedDeviceContent.js +27 -34
- package/lib/ui/SupportedDeviceTable/SupportedDeviceContent.js.map +1 -1
- package/lib/ui/SupportedDeviceTable/SupportedDeviceFilterArea.js +3 -3
- package/lib/ui/SupportedDeviceTable/SupportedDeviceFilterArea.js.map +1 -1
- package/lib/ui/SupportedDeviceTable/SupportedDeviceRow.js +1 -1
- package/lib/ui/SupportedDeviceTable/SupportedDeviceRow.js.map +1 -1
- package/lib/ui/Table/EmptyPlaceholder.d.ts +1 -0
- package/lib/ui/Table/TableCell.d.ts +1 -0
- package/lib/ui/Table/TableFilterBar/TableFilterBar.d.ts +2 -2
- package/lib/ui/Table/TableFilterBar/TableFilterBar.js +2 -3
- package/lib/ui/Table/TableFilterBar/TableFilterBar.js.map +1 -1
- package/lib/ui/Table/TableRow.d.ts +1 -0
- package/lib/ui/TextButton.d.ts +1 -0
- package/lib/ui/TextField/SearchTextField.d.ts +1 -0
- package/lib/ui/TextField/TextField.js +1 -1
- package/lib/ui/TextField/TextField.js.map +1 -1
- package/lib/ui/device/BatteryStatus.d.ts +1 -0
- package/lib/ui/device/LockStatus.d.ts +1 -0
- package/lib/ui/device/OnlineStatus.d.ts +1 -0
- package/lib/ui/layout/ContentHeader.d.ts +1 -0
- package/lib/ui/layout/DotDivider.d.ts +1 -0
- package/lib/ui/typography/Title.d.ts +1 -0
- package/lib/version.js +1 -1
- package/package.json +3 -3
- package/src/lib/ui/Alert/Alert.tsx +1 -1
- package/src/lib/ui/Alert/Alerts.tsx +4 -2
- package/src/lib/ui/Button.tsx +1 -1
- package/src/lib/ui/DeviceDetails/DeviceDetails.tsx +11 -31
- package/src/lib/ui/DeviceTable/DeviceHealthBar.tsx +2 -2
- package/src/lib/ui/Menu/Menu.tsx +5 -4
- package/src/lib/ui/SupportedDeviceTable/FilterCategoryMenu.tsx +6 -11
- package/src/lib/ui/SupportedDeviceTable/SupportedDeviceContent.tsx +42 -54
- package/src/lib/ui/SupportedDeviceTable/SupportedDeviceFilterArea.tsx +4 -4
- package/src/lib/ui/SupportedDeviceTable/SupportedDeviceRow.tsx +1 -1
- package/src/lib/ui/Table/TableFilterBar/TableFilterBar.tsx +3 -6
- package/src/lib/ui/TextField/TextField.tsx +1 -1
- package/src/styles/_main.scss +2 -2
- package/src/styles/_menus.scss +9 -1
- package/src/styles/{_supported-devices.scss → _supported-device-table.scss} +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceHealthBar.js","sourceRoot":"","sources":["../../../src/lib/ui/DeviceTable/DeviceHealthBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AAEpF,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAUhF,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,EACP,MAAM,EACN,cAAc,GACO;IACrB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC3E,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAA;IAExC,MAAM,MAAM,GAAG,CAAC,MAAoB,EAAE,EAAE,CAAC,GAAG,EAAE;QAC5C,MAAM,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;QACnD,cAAc,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,UAAU,KAAK,CAAC,IAAI,UAAU,GAAG,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,QAAQ;QACpB,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC,YAAY,EAAE;QACnC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;IAEpC,IAAI,UAAU,KAAK,CAAC,EAAE;QACpB,OAAO,CACL,KAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"DeviceHealthBar.js","sourceRoot":"","sources":["../../../src/lib/ui/DeviceTable/DeviceHealthBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AAEpF,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAUhF,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,EACP,MAAM,EACN,cAAc,GACO;IACrB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC3E,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAA;IAExC,MAAM,MAAM,GAAG,CAAC,MAAoB,EAAE,EAAE,CAAC,GAAG,EAAE;QAC5C,MAAM,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;QACnD,cAAc,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,UAAU,KAAK,CAAC,IAAI,UAAU,GAAG,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,QAAQ;QACpB,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC,YAAY,EAAE;QACnC,CAAC,CAAC,GAAG,UAAU,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;IAEpC,IAAI,UAAU,KAAK,CAAC,EAAE;QACpB,OAAO,CACL,KAAC,cAAc,IAAC,aAAa,kBAC3B,MAAC,eAAe,eACd,KAAC,SAAS,KAAG,EACZ,CAAC,CAAC,SAAS,IACI,GACH,CAClB,CAAA;KACF;IAED,OAAO,CACL,KAAC,cAAc,IACb,aAAa,EAAE,MAAM,IAAI,IAAI,EAC7B,aAAa,EAAE,GAAG,EAAE;YAClB,cAAc,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC,YAED,MAAC,eAAe,IACd,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,EAChC,QAAQ,EAAE,MAAM,KAAK,eAAe,aAEpC,KAAC,4BAA4B,KAAG,EAC/B,KAAK,IACU,GACH,CAClB,CAAA;AACH,CAAC;AAED,MAAM,CAAC,GAAG;IACR,SAAS,EAAE,YAAY;IACvB,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,eAAe;CAC9B,CAAA"}
|
package/lib/ui/IconButton.d.ts
CHANGED
package/lib/ui/Menu/Menu.js
CHANGED
|
@@ -75,9 +75,7 @@ export function Menu({ verticalOffset = 5, horizontalOffset = 0, edgeOffset = 5,
|
|
|
75
75
|
}
|
|
76
76
|
return (_jsxs(Provider, { value: {
|
|
77
77
|
close: handleClose,
|
|
78
|
-
}, children: [renderButton({ onOpen: handleOpen }), createPortal(_jsx("div", { className: classNames('seam-menu-bg', backgroundProps?.className),
|
|
79
|
-
display: visible ? 'flex' : 'none',
|
|
80
|
-
}, onClick: (event) => {
|
|
78
|
+
}, children: [renderButton({ onOpen: handleOpen }), createPortal(_jsx("div", { className: classNames('seam-menu-bg', backgroundProps?.className, visible ? 'seam-menu-visible' : 'seam-menu-hidden'), onClick: (event) => {
|
|
81
79
|
event.stopPropagation();
|
|
82
80
|
handleClose();
|
|
83
81
|
}, children: _jsx("div", { className: 'seam-menu-content', style: {
|
package/lib/ui/Menu/Menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/lib/ui/Menu/Menu.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/lib/ui/Menu/Menu.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EACL,aAAa,EAGb,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,QAAQ,GACT,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAkBxC,MAAM,WAAW,GAAG,aAAa,CAAmB;IAClD,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;CAChB,CAAC,CAAA;AAEF,MAAM,UAAU,IAAI,CAAC,EACnB,cAAc,GAAG,CAAC,EAClB,gBAAgB,GAAG,CAAC,EACpB,UAAU,GAAG,CAAC,EACd,QAAQ,EACR,YAAY,EACZ,eAAe,GACc;IAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAA;IAChC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAA;IAClE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAiB,IAAI,CAAC,CAAA;IAClE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAwB,IAAI,CAAC,CAAA;IACvE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACjC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAEnC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GACd,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAA;QAC5D,IAAI,UAAU,IAAI,IAAI;YAAE,OAAM;QAC9B,MAAM,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAC5C,IAAI,EAAE,IAAI,IAAI,EAAE;YACd,aAAa,CAAC,EAAE,CAAC,CAAA;SAClB;IACH,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IAEnB,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,WAAW,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,KAA8B,EAAE,EAAE;QACpD,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,IAAI,QAAQ,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI;YAAE,OAAM;QAEvE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,GACtD,UAAU,CAAC,qBAAqB,EAAE,CAAA;QAEpC,MAAM,EACJ,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,GACrB,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAA;QAEpC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,GAClD,SAAS,CAAC,qBAAqB,EAAE,CAAA;QAEnC,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,CAAA;QAE7C,MAAM,GAAG,GAAG,YAAY,GAAG,cAAc,CAAA;QACzC,MAAM,IAAI,GAAG,UAAU,GAAG,gBAAgB,CAAA;QAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,YAAY,CAAA;QACjC,MAAM,MAAM,GAAG,GAAG,GAAG,aAAa,CAAA;QAElC,sFAAsF;QACtF,MAAM,kBAAkB,GAAG,KAAK,GAAG,cAAc,CAAA;QACjD,MAAM,WAAW,GAAG,kBAAkB;YACpC,CAAC,CAAC,cAAc,GAAG,YAAY,GAAG,gBAAgB,GAAG,UAAU;YAC/D,CAAC,CAAC,IAAI,CAAA;QACR,OAAO,CAAC,WAAW,CAAC,CAAA;QAEpB,sEAAsE;QACtE,MAAM,mBAAmB,GAAG,MAAM,GAAG,eAAe,CAAA;QACpD,MAAM,UAAU,GAAG,mBAAmB;YACpC,CAAC,CAAC,SAAS,GAAG,aAAa,GAAG,cAAc;YAC5C,CAAC,CAAC,GAAG,CAAA;QACP,MAAM,CAAC,UAAU,CAAC,CAAA;IACpB,CAAC,EAAE;QACD,QAAQ;QACR,gBAAgB;QAChB,cAAc;QACd,SAAS;QACT,UAAU;QACV,UAAU;KACX,CAAC,CAAA;IAEF,eAAe,CAAC,GAAG,EAAE;QACnB,YAAY,EAAE,CAAA;QACd,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QACpD,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QACpD,OAAO,GAAG,EAAE;YACV,UAAU,EAAE,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YACvD,UAAU,EAAE,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QACzD,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,MAAM,MAAM,GAAG,QAAQ,IAAI,IAAI,CAAA;IAC/B,MAAM,cAAc,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,cAAc,CAAA;IAExC,IAAI,UAAU,IAAI,IAAI,EAAE;QACtB,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,MAAC,QAAQ,IACP,KAAK,EAAE;YACL,KAAK,EAAE,WAAW;SACnB,aAEA,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EACpC,YAAY,CACX,cACE,SAAS,EAAE,UAAU,CACnB,cAAc,EACd,eAAe,EAAE,SAAS,EAC1B,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CACnD,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjB,KAAK,CAAC,eAAe,EAAE,CAAA;oBACvB,WAAW,EAAE,CAAA;gBACf,CAAC,YAED,cACE,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE;wBACL,GAAG;wBACH,IAAI;qBACL,YAEA,QAAQ,GACL,GACF,EACN,UAAU,CACX,EAMD,cAAK,SAAS,EAAC,kBAAkB,YAC/B,cAAK,SAAS,EAAC,mBAAmB,EAAC,GAAG,EAAE,YAAY,YACjD,QAAQ,GACL,GACF,IACG,CACZ,CAAA;AACH,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAA;IACvC,IAAI,OAAO,IAAI,IAAI,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;KACvD;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -5,17 +5,11 @@ interface FilterCategoryMenuBaseProps {
|
|
|
5
5
|
buttonLabel?: string;
|
|
6
6
|
}
|
|
7
7
|
export type FilterCategoryMenuProps = (FilterCategoryMenuBaseProps & {
|
|
8
|
-
|
|
8
|
+
hideAllOption?: false;
|
|
9
9
|
onAllOptionSelect: () => void;
|
|
10
10
|
}) | (FilterCategoryMenuBaseProps & {
|
|
11
|
-
|
|
11
|
+
hideAllOption: true;
|
|
12
12
|
onAllOptionSelect?: never;
|
|
13
13
|
});
|
|
14
|
-
export declare function FilterCategoryMenu({ label, options,
|
|
15
|
-
export declare namespace FilterCategoryMenu {
|
|
16
|
-
var defaultProps: {
|
|
17
|
-
addAllOption: boolean;
|
|
18
|
-
buttonLabel: string;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
14
|
+
export declare function FilterCategoryMenu({ label, options, hideAllOption, onSelect, onAllOptionSelect, buttonLabel, }: FilterCategoryMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
21
15
|
export {};
|
|
@@ -2,9 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { ChevronDownIcon } from '../../../lib/icons/ChevronDown.js';
|
|
3
3
|
import { Menu } from '../../../lib/ui/Menu/Menu.js';
|
|
4
4
|
import { MenuItem } from '../../../lib/ui/Menu/MenuItem.js';
|
|
5
|
-
export function FilterCategoryMenu({ label, options,
|
|
6
|
-
const usableOptions =
|
|
7
|
-
return (_jsxs("div", { className: 'seam-supported-
|
|
5
|
+
export function FilterCategoryMenu({ label = 'Filter', options, hideAllOption = false, onSelect, onAllOptionSelect, buttonLabel, }) {
|
|
6
|
+
const usableOptions = hideAllOption ? options : ['All', ...options];
|
|
7
|
+
return (_jsxs("div", { className: 'seam-supported-device-table-filter-menu-wrap', children: [_jsx("p", { children: label }), _jsx(Menu, { renderButton: ({ onOpen }) => (_jsxs("button", { onClick: onOpen, children: [_jsx("span", { children: buttonLabel }), _jsx(ChevronDownIcon, {})] })), children: usableOptions.map((option, index) => (_jsx(MenuItem, { onClick: () => {
|
|
8
8
|
if (option === 'All') {
|
|
9
9
|
onAllOptionSelect?.();
|
|
10
10
|
}
|
|
@@ -13,8 +13,4 @@ export function FilterCategoryMenu({ label, options, addAllOption, onSelect, onA
|
|
|
13
13
|
}
|
|
14
14
|
}, children: _jsx("span", { children: option }) }, `${index}:${option}`))) })] }));
|
|
15
15
|
}
|
|
16
|
-
FilterCategoryMenu.defaultProps = {
|
|
17
|
-
addAllOption: true,
|
|
18
|
-
buttonLabel: 'Filter',
|
|
19
|
-
};
|
|
20
16
|
//# sourceMappingURL=FilterCategoryMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterCategoryMenu.js","sourceRoot":"","sources":["../../../src/lib/ui/SupportedDeviceTable/FilterCategoryMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAmBlD,MAAM,UAAU,kBAAkB,CAAC,EACjC,KAAK,
|
|
1
|
+
{"version":3,"file":"FilterCategoryMenu.js","sourceRoot":"","sources":["../../../src/lib/ui/SupportedDeviceTable/FilterCategoryMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAmBlD,MAAM,UAAU,kBAAkB,CAAC,EACjC,KAAK,GAAG,QAAQ,EAChB,OAAO,EACP,aAAa,GAAG,KAAK,EACrB,QAAQ,EACR,iBAAiB,EACjB,WAAW,GACa;IACxB,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAA;IAEnE,OAAO,CACL,eAAK,SAAS,EAAC,8CAA8C,aAC3D,sBAAI,KAAK,GAAK,EACd,KAAC,IAAI,IACH,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAC5B,kBAAQ,OAAO,EAAE,MAAM,aACrB,yBAAO,WAAW,GAAQ,EAC1B,KAAC,eAAe,KAAG,IACZ,CACV,YAEA,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACpC,KAAC,QAAQ,IAEP,OAAO,EAAE,GAAG,EAAE;wBACZ,IAAI,MAAM,KAAK,KAAK,EAAE;4BACpB,iBAAiB,EAAE,EAAE,CAAA;yBACtB;6BAAM;4BACL,QAAQ,CAAC,MAAM,CAAC,CAAA;yBACjB;oBACH,CAAC,YAED,yBAAO,MAAM,GAAQ,IAThB,GAAG,KAAK,IAAI,MAAM,EAAE,CAUhB,CACZ,CAAC,GACG,IACH,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1,53 +1,46 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useQuery } from '@tanstack/react-query';
|
|
3
|
-
import
|
|
4
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
3
|
+
import { useState } from 'react';
|
|
5
4
|
import { Button } from '../../../lib/ui/Button.js';
|
|
6
5
|
import { SupportedDeviceFilterArea } from '../../../lib/ui/SupportedDeviceTable/SupportedDeviceFilterArea.js';
|
|
7
6
|
import { SupportedDeviceHeader } from './SupportedDeviceHeader.js';
|
|
8
7
|
import { SupportedDeviceRow } from './SupportedDeviceRow.js';
|
|
9
|
-
const BASE_URL = 'https://devicedb.seam.co/api/device_models/list';
|
|
10
8
|
export function SupportedDeviceContent({ cannotFilter = false, }) {
|
|
11
|
-
const [allDeviceModels, setAllDeviceModels] = useState([]);
|
|
12
9
|
const [filterValue, setFilterValue] = useState('');
|
|
13
10
|
const [filters, setFilters] = useState({
|
|
14
11
|
supportedOnly: false,
|
|
15
12
|
category: null,
|
|
16
13
|
brand: null,
|
|
17
14
|
});
|
|
18
|
-
const
|
|
19
|
-
const queries = [];
|
|
20
|
-
if (filterValue.trim() !== '') {
|
|
21
|
-
queries.push(`text_search=${encodeURIComponent(filterValue.trim())}`);
|
|
22
|
-
}
|
|
23
|
-
if (filters.supportedOnly) {
|
|
24
|
-
queries.push('support_level=live');
|
|
25
|
-
}
|
|
26
|
-
if (filters.category !== null) {
|
|
27
|
-
queries.push(`main_category=${encodeURIComponent(filters.category)}`);
|
|
28
|
-
}
|
|
29
|
-
if (filters.brand !== null) {
|
|
30
|
-
queries.push(`brand=${encodeURIComponent(filters.brand)}`);
|
|
31
|
-
}
|
|
32
|
-
const url = `${BASE_URL}?${queries.join('&')}`;
|
|
33
|
-
return await axios.get(url);
|
|
34
|
-
}, [filterValue, filters]);
|
|
35
|
-
const { data, isLoading, isError, refetch } = useQuery({
|
|
15
|
+
const { data: deviceModels, isLoading, isError, refetch, } = useQuery({
|
|
36
16
|
queryKey: ['supported_devices', filterValue, filters],
|
|
37
|
-
queryFn:
|
|
17
|
+
queryFn: async () => {
|
|
18
|
+
const url = new URL('https://devicedb.seam.co/api/device_models/list');
|
|
19
|
+
if (filterValue.trim() !== '') {
|
|
20
|
+
url.searchParams.set('text_search', filterValue.trim());
|
|
21
|
+
}
|
|
22
|
+
if (filters.supportedOnly) {
|
|
23
|
+
url.searchParams.set('support_level', 'live');
|
|
24
|
+
}
|
|
25
|
+
if (filters.category !== null) {
|
|
26
|
+
url.searchParams.set('main_category', filters.category);
|
|
27
|
+
}
|
|
28
|
+
if (filters.brand !== null) {
|
|
29
|
+
url.searchParams.set('brand', filters.brand);
|
|
30
|
+
}
|
|
31
|
+
const res = await fetch(url);
|
|
32
|
+
if (!res.ok) {
|
|
33
|
+
throw new Error('Failed to load device models');
|
|
34
|
+
}
|
|
35
|
+
const data = await res.json();
|
|
36
|
+
return data?.device_models ?? [];
|
|
37
|
+
},
|
|
38
38
|
});
|
|
39
|
-
|
|
40
|
-
if (data?.data?.device_models !== undefined &&
|
|
41
|
-
allDeviceModels.length === 0) {
|
|
42
|
-
setAllDeviceModels(data.data.device_models);
|
|
43
|
-
}
|
|
44
|
-
}, [data, allDeviceModels.length]);
|
|
45
|
-
const deviceModels = data?.data?.device_models ?? [];
|
|
46
|
-
return (_jsxs("div", { className: 'seam-supported-devices-table-wrap', children: [!cannotFilter && (_jsx(SupportedDeviceFilterArea, { deviceModels: allDeviceModels, filterValue: filterValue, setFilterValue: setFilterValue, filters: filters, setFilters: setFilters })), isLoading && (_jsx("div", { className: 'seam-supported-devices-table-state-block', children: _jsx("p", { children: "Loading device models..." }) })), isError && (_jsxs("div", { className: 'seam-supported-devices-table-state-block', children: [_jsx("p", { children: "There was an error fetching device models." }), _jsx(Button, { variant: 'solid', size: 'small', onClick: () => {
|
|
39
|
+
return (_jsxs("div", { className: 'seam-supported-device-table-content-wrap', children: [!cannotFilter && (_jsx(SupportedDeviceFilterArea, { deviceModels: deviceModels ?? [], filterValue: filterValue, setFilterValue: setFilterValue, filters: filters, setFilters: setFilters })), isLoading && (_jsx("div", { className: 'seam-supported-device-table-content-state-block', children: _jsx("p", { children: "Loading device models..." }) })), isError && (_jsxs("div", { className: 'seam-supported-device-table-content-state-block', children: [_jsx("p", { children: "There was an error fetching device models." }), _jsx(Button, { variant: 'solid', size: 'small', onClick: () => {
|
|
47
40
|
void refetch();
|
|
48
|
-
}, children: "Retry" })] })), !isLoading && !isError &&
|
|
49
|
-
deviceModels.map((deviceModel, index) => (_jsx(SupportedDeviceRow, { deviceModel: deviceModel }, `${index}:${deviceModel.manufacturer_model_id}`))), deviceModels.length === 0 && (_jsx("tr", { className: 'seam-supported-
|
|
41
|
+
}, children: "Retry" })] })), !isLoading && !isError && deviceModels !== null && (_jsxs("table", { className: 'seam-supported-device-table-content', children: [_jsx(SupportedDeviceHeader, {}), _jsxs("tbody", { children: [deviceModels.length !== 0 &&
|
|
42
|
+
deviceModels.map((deviceModel, index) => (_jsx(SupportedDeviceRow, { deviceModel: deviceModel }, `${index}:${deviceModel.manufacturer_model_id}`))), deviceModels.length === 0 && (_jsx("tr", { className: 'seam-supported-device-table-content-message-row', children: _jsx("td", { colSpan: 6, children: _jsx("div", { className: 'seam-supported-device-table-content-message', children: filterValue.length === 0 ? (_jsx("p", { children: "No device models found." })) : (_jsxs(_Fragment, { children: [_jsx("p", { children: "No device models matched your search." }), _jsx(Button, { variant: 'outline', size: 'small', onClick: () => {
|
|
50
43
|
setFilterValue('');
|
|
51
|
-
}, className: 'seam-supported-
|
|
44
|
+
}, className: 'seam-supported-device-table-content-message-clear-search', children: "Clear search terms" })] })) }) }) }))] })] }))] }));
|
|
52
45
|
}
|
|
53
46
|
//# sourceMappingURL=SupportedDeviceContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupportedDeviceContent.js","sourceRoot":"","sources":["../../../src/lib/ui/SupportedDeviceTable/SupportedDeviceContent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"SupportedDeviceContent.js","sourceRoot":"","sources":["../../../src/lib/ui/SupportedDeviceTable/SupportedDeviceContent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ export function SupportedDeviceFilterArea({ deviceModels, filterValue, setFilter
|
|
|
29
29
|
const filterButtonLabel = isPlural
|
|
30
30
|
? `Filters (${appliedFiltersCount})`
|
|
31
31
|
: 'Filter';
|
|
32
|
-
return (_jsxs("div", { className: 'seam-supported-
|
|
32
|
+
return (_jsxs("div", { className: 'seam-supported-device-table-filter-area', children: [_jsx("div", { className: 'seam-deliberate-block' }), _jsxs("div", { className: 'seam-filters-wrap', children: [_jsx(Menu, { renderButton: ({ onOpen }) => (_jsx(Button, { variant: 'outline', className: 'seam-filters-button', onClick: onOpen, children: filterButtonLabel })), children: _jsxs("div", { className: 'seam-supported-device-table-filter-menu', onClick: (event) => {
|
|
33
33
|
event.stopPropagation();
|
|
34
34
|
}, children: [_jsx("div", { className: 'seam-filter-menu-row', children: _jsx(FilterCategoryMenu, { label: 'Brand', options: getAvailablePropertiesFromDeviceModels('brand'), onSelect: (brand) => {
|
|
35
35
|
setFilters((filters) => ({
|
|
@@ -43,8 +43,8 @@ export function SupportedDeviceFilterArea({ deviceModels, filterValue, setFilter
|
|
|
43
43
|
...filters,
|
|
44
44
|
supportedOnly: event.target.checked,
|
|
45
45
|
}));
|
|
46
|
-
} })] }) })] }) }), _jsx("div", { className: 'seam-supported-
|
|
46
|
+
} })] }) })] }) }), _jsx("div", { className: 'seam-supported-device-table-filter-area-search-bar-wrap', children: _jsx(SearchTextField, { value: filterValue, onChange: (value) => {
|
|
47
47
|
setFilterValue(value);
|
|
48
|
-
}, className: 'seam-supported-
|
|
48
|
+
}, className: 'seam-supported-device-table-filter-area-search-bar' }) })] })] }));
|
|
49
49
|
}
|
|
50
50
|
//# sourceMappingURL=SupportedDeviceFilterArea.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupportedDeviceFilterArea.js","sourceRoot":"","sources":["../../../src/lib/ui/SupportedDeviceTable/SupportedDeviceFilterArea.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAA;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAUrE,MAAM,UAAU,yBAAyB,CAAC,EACxC,YAAY,EACZ,WAAW,EACX,cAAc,EACd,OAAO,EACP,UAAU,GACqB;IAC/B,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACzD,MAAM,cAAc,GAAG,OAAO,CAAC,GAAoB,CAAC,CAAA;QACpD,OAAO,CACL,cAAc,KAAK,SAAS;YAC5B,cAAc,KAAK,IAAI;YACvB,cAAc,KAAK,KAAK,CACzB,CAAA;IACH,CAAC,CAAC,CAAA;IACF,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAAA;IAEjD,MAAM,sCAAsC,GAAG,CAC7C,QAA2B,EAC3B,EAAE;QACF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;QACpC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YACnC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,UAAyB,EAAE,EAAE;QAChD,UAAU,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACvB,GAAG,OAAO;YACV,CAAC,UAAU,CAAC,EAAE,IAAI;SACnB,CAAC,CAAC,CAAA;IACL,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,mBAAmB,GAAG,CAAC,CAAA;IACxC,MAAM,iBAAiB,GAAG,QAAQ;QAChC,CAAC,CAAC,YAAY,mBAAmB,GAAG;QACpC,CAAC,CAAC,QAAQ,CAAA;IAEZ,OAAO,CACL,eAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"SupportedDeviceFilterArea.js","sourceRoot":"","sources":["../../../src/lib/ui/SupportedDeviceTable/SupportedDeviceFilterArea.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
export function SupportedDeviceRow({ deviceModel }) {
|
|
4
4
|
const statusColor = supportLevelColors[deviceModel.support_level] ?? 'gray';
|
|
5
|
-
return (_jsxs("tr", { children: [_jsx("td", { children: _jsx("img", {
|
|
5
|
+
return (_jsxs("tr", { children: [_jsx("td", { children: _jsx("img", { width: 40, src: deviceModel.icon_url }) }), _jsx("td", { children: deviceModel.main_category }), _jsx("td", { children: deviceModel.model_name }), _jsx("td", { children: deviceModel.manufacturer_model_id }), _jsx("td", { children: deviceModel.connection_type }), _jsx("td", { children: _jsx("div", { className: classNames('seam-status-pill', `status-${statusColor}`), children: _jsx("span", { children: deviceModel.support_level }) }) })] }));
|
|
6
6
|
}
|
|
7
7
|
const supportLevelColors = {
|
|
8
8
|
Live: 'green',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupportedDeviceRow.js","sourceRoot":"","sources":["../../../src/lib/ui/SupportedDeviceTable/SupportedDeviceRow.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AAQnC,MAAM,UAAU,kBAAkB,CAAC,EAAE,WAAW,EAA2B;IACzE,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,MAAM,CAAA;IAC3E,OAAO,CACL,yBACE,uBACE,cAAK,KAAK,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"SupportedDeviceRow.js","sourceRoot":"","sources":["../../../src/lib/ui/SupportedDeviceTable/SupportedDeviceRow.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AAQnC,MAAM,UAAU,kBAAkB,CAAC,EAAE,WAAW,EAA2B;IACzE,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,MAAM,CAAA;IAC3E,OAAO,CACL,yBACE,uBACE,cAAK,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,QAAQ,GAAI,GAC1C,EACL,uBAAK,WAAW,CAAC,aAAa,GAAM,EACpC,uBAAK,WAAW,CAAC,UAAU,GAAM,EACjC,uBAAK,WAAW,CAAC,qBAAqB,GAAM,EAC5C,uBAAK,WAAW,CAAC,eAAe,GAAM,EACtC,uBACE,cACE,SAAS,EAAE,UAAU,CAAC,kBAAkB,EAAE,UAAU,WAAW,EAAE,CAAC,YAElE,yBAAO,WAAW,CAAC,aAAa,GAAQ,GACpC,GACH,IACF,CACN,CAAA;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG;IACzB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,QAAQ;CACtB,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { DivProps } from '../../../../lib/ui/types.js';
|
|
2
2
|
interface TableFilterBarProps extends DivProps {
|
|
3
|
-
|
|
3
|
+
filterCleared?: boolean;
|
|
4
4
|
onFilterClear?: () => void;
|
|
5
5
|
}
|
|
6
|
-
export declare function TableFilterBar({
|
|
6
|
+
export declare function TableFilterBar({ filterCleared, onFilterClear, children, ...props }: TableFilterBarProps): import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
export {};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { ArrowRestartIcon } from '../../../../lib/icons/ArrowRestart.js';
|
|
3
3
|
import { IconButton } from '../../../../lib/ui/IconButton.js';
|
|
4
|
-
export function TableFilterBar({
|
|
5
|
-
|
|
6
|
-
return (_jsxs("div", { className: 'seam-table-filter-bar', ...props, children: [children, ' ', showClearFilterButton ? (_jsx(ClearFiltersButton, { onClick: onFilterClear })) : null] }));
|
|
4
|
+
export function TableFilterBar({ filterCleared = false, onFilterClear, children, ...props }) {
|
|
5
|
+
return (_jsxs("div", { className: 'seam-table-filter-bar', ...props, children: [children, ' ', !filterCleared && _jsx(ClearFiltersButton, { onClick: onFilterClear })] }));
|
|
7
6
|
}
|
|
8
7
|
function ClearFiltersButton(props) {
|
|
9
8
|
return (_jsx(IconButton, { ...props, className: 'seam-clear-filters-button', children: _jsx(ArrowRestartIcon, {}) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableFilterBar.js","sourceRoot":"","sources":["../../../../src/lib/ui/Table/TableFilterBar/TableFilterBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAQjD,MAAM,UAAU,cAAc,CAAC,EAC7B,
|
|
1
|
+
{"version":3,"file":"TableFilterBar.js","sourceRoot":"","sources":["../../../../src/lib/ui/Table/TableFilterBar/TableFilterBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAQjD,MAAM,UAAU,cAAc,CAAC,EAC7B,aAAa,GAAG,KAAK,EACrB,aAAa,EACb,QAAQ,EACR,GAAG,KAAK,EACY;IACpB,OAAO,CACL,eAAK,SAAS,EAAC,uBAAuB,KAAK,KAAK,aAC7C,QAAQ,EAAE,GAAG,EACb,CAAC,aAAa,IAAI,KAAC,kBAAkB,IAAC,OAAO,EAAE,aAAa,GAAI,IAC7D,CACP,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAkB;IAC5C,OAAO,CACL,KAAC,UAAU,OAAK,KAAK,EAAE,SAAS,EAAC,2BAA2B,YAC1D,KAAC,gBAAgB,KAAG,GACT,CACd,CAAA;AACH,CAAC"}
|
package/lib/ui/TextButton.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
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, startAdornment, endAdornment, inputProps, disabled, } = props;
|
|
4
|
+
const { value, onChange, className, startAdornment, endAdornment, inputProps, disabled = false, } = props;
|
|
5
5
|
return (_jsxs("div", { className: classNames('seam-text-field', className, {
|
|
6
6
|
'seam-disabled': disabled,
|
|
7
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 }))] }));
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,GAAG,KAAK,GACjB,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/lib/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default '1.
|
|
1
|
+
export default '1.4.0'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seamapi/react",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Seam React component library.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"@tanstack/react-query": "^4.28.0",
|
|
96
96
|
"classnames": "^2.3.2",
|
|
97
97
|
"luxon": "^3.3.0",
|
|
98
|
-
"seamapi": "^
|
|
98
|
+
"seamapi": "^6.1.0",
|
|
99
99
|
"uuid": "^9.0.0"
|
|
100
100
|
},
|
|
101
101
|
"devDependencies": {
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
"@storybook/react": "^7.0.2",
|
|
115
115
|
"@storybook/react-webpack5": "^7.0.2",
|
|
116
116
|
"@storybook/testing-library": "^0.1.0",
|
|
117
|
-
"@svgr/cli": "^
|
|
117
|
+
"@svgr/cli": "^8.0.1",
|
|
118
118
|
"@testing-library/react": "^14.0.0",
|
|
119
119
|
"@types/jest": "^29.5.0",
|
|
120
120
|
"@types/luxon": "^3.3.0",
|
|
@@ -35,7 +35,7 @@ export function Alert(props: AlertProps): JSX.Element {
|
|
|
35
35
|
<p className='seam-alert-message'>{message}</p>
|
|
36
36
|
</div>
|
|
37
37
|
</div>
|
|
38
|
-
{props.action
|
|
38
|
+
{props.action != null && <Action {...props.action} />}
|
|
39
39
|
</div>
|
|
40
40
|
)
|
|
41
41
|
}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import classNames from 'classnames'
|
|
2
|
+
import type { PropsWithChildren } from 'react'
|
|
2
3
|
|
|
3
4
|
import { Alert, type AlertProps } from 'lib/ui/Alert/Alert.js'
|
|
4
5
|
|
|
5
6
|
interface AlertsProps {
|
|
6
7
|
alerts?: AlertProps[]
|
|
7
|
-
children?: JSX.Element
|
|
8
8
|
className?: string
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export function Alerts(
|
|
11
|
+
export function Alerts(
|
|
12
|
+
props: PropsWithChildren<AlertsProps>
|
|
13
|
+
): JSX.Element | null {
|
|
12
14
|
const { alerts, children, className } = props
|
|
13
15
|
|
|
14
16
|
if (alerts?.length === 0) return null
|
package/src/lib/ui/Button.tsx
CHANGED
|
@@ -7,7 +7,6 @@ import { useAccessCodes } from 'lib/seam/access-codes/use-access-codes.js'
|
|
|
7
7
|
import { isLockDevice } from 'lib/seam/devices/types.js'
|
|
8
8
|
import { useToggleLock } from 'lib/seam/devices/use-toggle-lock.js'
|
|
9
9
|
import { AccessCodeTable } from 'lib/ui/AccessCodeTable/AccessCodeTable.js'
|
|
10
|
-
import type { AlertProps } from 'lib/ui/Alert/Alert.js'
|
|
11
10
|
import { Alerts } from 'lib/ui/Alert/Alerts.js'
|
|
12
11
|
import { Button } from 'lib/ui/Button.js'
|
|
13
12
|
import { BatteryStatus } from 'lib/ui/device/BatteryStatus.js'
|
|
@@ -57,36 +56,6 @@ function LockDeviceDetails(props: { device: LockDevice; onBack?: () => void }) {
|
|
|
57
56
|
const accessCodeLength =
|
|
58
57
|
device.properties?.schlage_metadata?.access_code_length
|
|
59
58
|
|
|
60
|
-
function generateDeviceAlerts() {
|
|
61
|
-
if (device.errors.length === 0 && device.warnings.length === 0) {
|
|
62
|
-
return []
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const alerts: AlertProps[] = []
|
|
66
|
-
|
|
67
|
-
if (device.errors.length > 0) {
|
|
68
|
-
alerts.push(
|
|
69
|
-
...device.errors.map((error) => ({
|
|
70
|
-
variant: 'error' as const,
|
|
71
|
-
message: error.message,
|
|
72
|
-
}))
|
|
73
|
-
)
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
if (device.warnings.length > 0) {
|
|
77
|
-
alerts.push(
|
|
78
|
-
...device.warnings.map((warning) => ({
|
|
79
|
-
variant: 'warning' as const,
|
|
80
|
-
message: warning.message,
|
|
81
|
-
}))
|
|
82
|
-
)
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
return alerts
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
const alerts = generateDeviceAlerts()
|
|
89
|
-
|
|
90
59
|
if (accessCodes == null) {
|
|
91
60
|
return null
|
|
92
61
|
}
|
|
@@ -100,6 +69,17 @@ function LockDeviceDetails(props: { device: LockDevice; onBack?: () => void }) {
|
|
|
100
69
|
)
|
|
101
70
|
}
|
|
102
71
|
|
|
72
|
+
const alerts = [
|
|
73
|
+
...device.errors.map((error) => ({
|
|
74
|
+
variant: 'error' as const,
|
|
75
|
+
message: error.message,
|
|
76
|
+
})),
|
|
77
|
+
...device.warnings.map((warning) => ({
|
|
78
|
+
variant: 'warning' as const,
|
|
79
|
+
message: warning.message,
|
|
80
|
+
})),
|
|
81
|
+
]
|
|
82
|
+
|
|
103
83
|
return (
|
|
104
84
|
<div className='seam-device-details'>
|
|
105
85
|
<ContentHeader title='Device' onBack={onBack} />
|
|
@@ -32,7 +32,7 @@ export function DeviceHealthBar({
|
|
|
32
32
|
|
|
33
33
|
if (issueCount === 0) {
|
|
34
34
|
return (
|
|
35
|
-
<TableFilterBar>
|
|
35
|
+
<TableFilterBar filterCleared>
|
|
36
36
|
<TableFilterItem>
|
|
37
37
|
<CheckIcon />
|
|
38
38
|
{t.devicesOk}
|
|
@@ -43,7 +43,7 @@ export function DeviceHealthBar({
|
|
|
43
43
|
|
|
44
44
|
return (
|
|
45
45
|
<TableFilterBar
|
|
46
|
-
|
|
46
|
+
filterCleared={filter == null}
|
|
47
47
|
onFilterClear={() => {
|
|
48
48
|
onFilterSelect(null)
|
|
49
49
|
}}
|
package/src/lib/ui/Menu/Menu.tsx
CHANGED
|
@@ -135,10 +135,11 @@ export function Menu({
|
|
|
135
135
|
{renderButton({ onOpen: handleOpen })}
|
|
136
136
|
{createPortal(
|
|
137
137
|
<div
|
|
138
|
-
className={classNames(
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
className={classNames(
|
|
139
|
+
'seam-menu-bg',
|
|
140
|
+
backgroundProps?.className,
|
|
141
|
+
visible ? 'seam-menu-visible' : 'seam-menu-hidden'
|
|
142
|
+
)}
|
|
142
143
|
onClick={(event) => {
|
|
143
144
|
event.stopPropagation()
|
|
144
145
|
handleClose()
|
|
@@ -11,26 +11,26 @@ interface FilterCategoryMenuBaseProps {
|
|
|
11
11
|
|
|
12
12
|
export type FilterCategoryMenuProps =
|
|
13
13
|
| (FilterCategoryMenuBaseProps & {
|
|
14
|
-
|
|
14
|
+
hideAllOption?: false
|
|
15
15
|
onAllOptionSelect: () => void
|
|
16
16
|
})
|
|
17
17
|
| (FilterCategoryMenuBaseProps & {
|
|
18
|
-
|
|
18
|
+
hideAllOption: true
|
|
19
19
|
onAllOptionSelect?: never
|
|
20
20
|
})
|
|
21
21
|
|
|
22
22
|
export function FilterCategoryMenu({
|
|
23
|
-
label,
|
|
23
|
+
label = 'Filter',
|
|
24
24
|
options,
|
|
25
|
-
|
|
25
|
+
hideAllOption = false,
|
|
26
26
|
onSelect,
|
|
27
27
|
onAllOptionSelect,
|
|
28
28
|
buttonLabel,
|
|
29
29
|
}: FilterCategoryMenuProps) {
|
|
30
|
-
const usableOptions =
|
|
30
|
+
const usableOptions = hideAllOption ? options : ['All', ...options]
|
|
31
31
|
|
|
32
32
|
return (
|
|
33
|
-
<div className='seam-supported-
|
|
33
|
+
<div className='seam-supported-device-table-filter-menu-wrap'>
|
|
34
34
|
<p>{label}</p>
|
|
35
35
|
<Menu
|
|
36
36
|
renderButton={({ onOpen }) => (
|
|
@@ -58,8 +58,3 @@ export function FilterCategoryMenu({
|
|
|
58
58
|
</div>
|
|
59
59
|
)
|
|
60
60
|
}
|
|
61
|
-
|
|
62
|
-
FilterCategoryMenu.defaultProps = {
|
|
63
|
-
addAllOption: true,
|
|
64
|
-
buttonLabel: 'Filter',
|
|
65
|
-
}
|