+
+## License
+This project is licensed under the Apache-2.0 License.
\ No newline at end of file
diff --git a/packages/component-core/package.json b/packages/component-core/package.json
new file mode 100644
index 000000000..b663dab07
--- /dev/null
+++ b/packages/component-core/package.json
@@ -0,0 +1,110 @@
+{
+ "name": "@iot-app-kit/component-core",
+ "version": "12.5.0",
+ "license": "Apache-2.0",
+ "source": "./src/index.ts",
+ "type": "module",
+ "main": "./dist/cjs/index.js",
+ "module": "./dist/esm/index.js",
+ "types": "./dist/esm/index.d.ts",
+ "exports": {
+ ".": {
+ "types": "./dist/esm/index.d.ts",
+ "require": "./dist/cjs/index.js",
+ "import": "./dist/esm/index.js",
+ "default": "./dist/esm/index.js"
+ }
+ },
+ "files": [
+ "dist",
+ "CHANGELOG.md",
+ "*NOTICE",
+ "*styles.css"
+ ],
+ "publishConfig": {
+ "access": "public"
+ },
+ "scripts": {
+ "build": "tsc -b ./tsconfig.cjs.json ./tsconfig.esm.json && npm run copy-assets:es && npm run copy-assets:cjs",
+ "build:cjs": "tsc -b ./tsconfig.cjs.json && npm run copy-assets:cjs",
+ "build:es": "tsc -b ./tsconfig.esm.json && npm run copy-assets:es",
+ "clean": "rimraf dist storybook-static test-results coverage .turbo .cache",
+ "clean:nuke": "npm run clean && rimraf node_modules",
+ "copy-assets:es": "copyfiles -e \"**/*.tsx\" -e \"**/*.ts\" -e \"**/*.snap\" -e \"**/*.js\" -e \"**/*.jsx\" -e \"**/*.json\" \"src/**/*\" -u 1 dist/esm/",
+ "copy-assets:cjs": "copyfiles -e \"**/*.tsx\" -e \"**/*.ts\" -e \"**/*.snap\" -e \"**/*.js\" -e \"**/*.jsx\" -e \"**/*.json\" \"src/**/*\" -u 1 dist/cjs/",
+ "copy:styles": "cp ../components/styles.css styles.css",
+ "dev": "tsc -b ./tsconfig.esm.json --watch",
+ "test": "TZ=utc vitest run --silent --coverage",
+ "test:watch": "TZ=utc vitest --silent",
+ "test:types": "tsc -p ./tsconfig.json --noEmit",
+ "lint": "eslint . --max-warnings=0 --cache --cache-location .cache/eslint/",
+ "fix": "eslint --fix . --cache --cache-location .cache/eslint/",
+ "copy:license": "cp ../../LICENSE LICENSE",
+ "copy:notice": "cp ../../NOTICE NOTICE",
+ "prepack": "npm run copy:license && npm run copy:notice",
+ "pack": "npm pack"
+ },
+ "devDependencies": {
+ "@iot-app-kit/testing-util": "12.5.0",
+ "@iot-app-kit/ts-config": "12.5.0",
+ "@playwright/test": "^1.48.2",
+ "@storybook/addon-essentials": "^8.4.5",
+ "@storybook/addon-links": "^8.4.5",
+ "@storybook/preview-api": "^8.5.8",
+ "@storybook/react": "^8.4.5",
+ "@storybook/react-vite": "^8.4.5",
+ "@storybook/test": "^8.4.5",
+ "@tanstack/eslint-plugin-query": "^5.40.1",
+ "@tanstack/react-query-devtools": "^5.40.1",
+ "@testing-library/jest-dom": "^6.6.3",
+ "@testing-library/react": "^16.0.1",
+ "@testing-library/user-event": "^14.5.2",
+ "@types/lodash-es": "^4.17.12",
+ "@types/node": "^18.16.18",
+ "@types/react": "^18.2.12",
+ "@types/uuid": "^9.0.2",
+ "@vitejs/plugin-react": "^4.3.3",
+ "@vitest/coverage-v8": "^2.1.5",
+ "copyfiles": "^2.4.1",
+ "eslint-config-iot-app-kit": "12.5.0",
+ "jest-extended": "^3.2.4",
+ "react": "^18.2.0",
+ "rimraf": "^5.0.1",
+ "storybook": "^8.4.5",
+ "type-fest": "^4.28.1",
+ "typescript": "^5.5.4",
+ "vite": "^5.4.12",
+ "vitest": "^2.1.5",
+ "vitest-canvas-mock": "^0.3.3"
+ },
+ "dependencies": {
+ "@cloudscape-design/chat-components": "^1.0.10",
+ "@cloudscape-design/collection-hooks": "1.0.49",
+ "@cloudscape-design/components": "3.0.693",
+ "@cloudscape-design/design-tokens": "3.0.42",
+ "@cloudscape-design/global-styles": "1.0.32",
+ "@iot-app-kit/charts": "^2.1.2",
+ "@iot-app-kit/charts-core": "^2.1.2",
+ "@iot-app-kit/core": "12.5.0",
+ "@iot-app-kit/core-util": "12.5.0",
+ "@iot-app-kit/source-iotsitewise": "12.5.0",
+ "@iot-app-kit/source-iottwinmaker": "12.5.0",
+ "@tanstack/react-query": "^5.32.1",
+ "d3-array": "^3.2.3",
+ "dataloader": "^2.2.2",
+ "date-fns": "^2.30.0",
+ "lodash-es": "^4.17.21",
+ "react-use": "17.4.0",
+ "tiny-invariant": "^1.3.1",
+ "uuid": "^9.0.0",
+ "zustand": "^4.5.2"
+ },
+ "peerDependencies": {
+ "@aws-sdk/client-iotsitewise": "^3.696.0",
+ "react": "^18"
+ },
+ "bugs": {
+ "url": "https://github.com/awslabs/iot-app-kit/issues"
+ },
+ "homepage": "https://github.com/awslabs/iot-app-kit#readme"
+}
diff --git a/packages/react-components/src/common/chartTypes.ts b/packages/component-core/src/common/chartTypes.ts
similarity index 100%
rename from packages/react-components/src/common/chartTypes.ts
rename to packages/component-core/src/common/chartTypes.ts
diff --git a/packages/component-core/src/common/constants.ts b/packages/component-core/src/common/constants.ts
new file mode 100644
index 000000000..0b6f3eb87
--- /dev/null
+++ b/packages/component-core/src/common/constants.ts
@@ -0,0 +1,21 @@
+import type { Viewport } from '@iot-app-kit/core';
+
+export enum COMPARISON_OPERATOR {
+ LESS_THAN = 'LT',
+ GREATER_THAN = 'GT',
+ LESS_THAN_EQUAL = 'LTE',
+ GREATER_THAN_EQUAL = 'GTE',
+ EQUAL = 'EQ',
+ CONTAINS = 'CONTAINS',
+}
+
+export const COMPARATOR_MAP = {
+ GTE: '>=',
+ GT: '>',
+ LTE: '<=',
+ LT: '<',
+ EQ: '=',
+ CONTAINS: 'Contains',
+};
+
+export const DEFAULT_VIEWPORT: Viewport = { duration: '10m' };
diff --git a/packages/react-components/src/data/README.md b/packages/component-core/src/data/README.md
similarity index 100%
rename from packages/react-components/src/data/README.md
rename to packages/component-core/src/data/README.md
diff --git a/packages/react-components/src/data/dataSourceLoader/dataSourceLoader.spec.ts b/packages/component-core/src/data/dataSourceLoader/dataSourceLoader.spec.ts
similarity index 100%
rename from packages/react-components/src/data/dataSourceLoader/dataSourceLoader.spec.ts
rename to packages/component-core/src/data/dataSourceLoader/dataSourceLoader.spec.ts
diff --git a/packages/react-components/src/data/dataSourceLoader/dataSourceLoader.ts b/packages/component-core/src/data/dataSourceLoader/dataSourceLoader.ts
similarity index 100%
rename from packages/react-components/src/data/dataSourceLoader/dataSourceLoader.ts
rename to packages/component-core/src/data/dataSourceLoader/dataSourceLoader.ts
diff --git a/packages/react-components/src/data/dataSourceLoader/index.ts b/packages/component-core/src/data/dataSourceLoader/index.ts
similarity index 100%
rename from packages/react-components/src/data/dataSourceLoader/index.ts
rename to packages/component-core/src/data/dataSourceLoader/index.ts
diff --git a/packages/react-components/src/data/index.ts b/packages/component-core/src/data/index.ts
similarity index 100%
rename from packages/react-components/src/data/index.ts
rename to packages/component-core/src/data/index.ts
diff --git a/packages/react-components/src/data/transformers/anomaly/arrow/datasource.ts b/packages/component-core/src/data/transformers/anomaly/arrow/datasource.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/anomaly/arrow/datasource.ts
rename to packages/component-core/src/data/transformers/anomaly/arrow/datasource.ts
diff --git a/packages/react-components/src/data/transformers/anomaly/arrow/index.ts b/packages/component-core/src/data/transformers/anomaly/arrow/index.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/anomaly/arrow/index.ts
rename to packages/component-core/src/data/transformers/anomaly/arrow/index.ts
diff --git a/packages/react-components/src/data/transformers/anomaly/arrow/input.ts b/packages/component-core/src/data/transformers/anomaly/arrow/input.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/anomaly/arrow/input.ts
rename to packages/component-core/src/data/transformers/anomaly/arrow/input.ts
diff --git a/packages/react-components/src/data/transformers/anomaly/arrow/transformer.spec.ts b/packages/component-core/src/data/transformers/anomaly/arrow/transformer.spec.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/anomaly/arrow/transformer.spec.ts
rename to packages/component-core/src/data/transformers/anomaly/arrow/transformer.spec.ts
diff --git a/packages/react-components/src/data/transformers/anomaly/arrow/transformer.ts b/packages/component-core/src/data/transformers/anomaly/arrow/transformer.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/anomaly/arrow/transformer.ts
rename to packages/component-core/src/data/transformers/anomaly/arrow/transformer.ts
diff --git a/packages/react-components/src/data/transformers/anomaly/index.ts b/packages/component-core/src/data/transformers/anomaly/index.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/anomaly/index.ts
rename to packages/component-core/src/data/transformers/anomaly/index.ts
diff --git a/packages/react-components/src/data/transformers/anomaly/input.ts b/packages/component-core/src/data/transformers/anomaly/input.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/anomaly/input.ts
rename to packages/component-core/src/data/transformers/anomaly/input.ts
diff --git a/packages/react-components/src/data/transformers/anomaly/object/datasource.ts b/packages/component-core/src/data/transformers/anomaly/object/datasource.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/anomaly/object/datasource.ts
rename to packages/component-core/src/data/transformers/anomaly/object/datasource.ts
diff --git a/packages/react-components/src/data/transformers/anomaly/object/index.ts b/packages/component-core/src/data/transformers/anomaly/object/index.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/anomaly/object/index.ts
rename to packages/component-core/src/data/transformers/anomaly/object/index.ts
diff --git a/packages/react-components/src/data/transformers/anomaly/object/input.ts b/packages/component-core/src/data/transformers/anomaly/object/input.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/anomaly/object/input.ts
rename to packages/component-core/src/data/transformers/anomaly/object/input.ts
diff --git a/packages/react-components/src/data/transformers/anomaly/object/transformer.spec.ts b/packages/component-core/src/data/transformers/anomaly/object/transformer.spec.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/anomaly/object/transformer.spec.ts
rename to packages/component-core/src/data/transformers/anomaly/object/transformer.spec.ts
diff --git a/packages/react-components/src/data/transformers/anomaly/object/transformer.ts b/packages/component-core/src/data/transformers/anomaly/object/transformer.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/anomaly/object/transformer.ts
rename to packages/component-core/src/data/transformers/anomaly/object/transformer.ts
diff --git a/packages/react-components/src/data/transformers/anomaly/output.ts b/packages/component-core/src/data/transformers/anomaly/output.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/anomaly/output.ts
rename to packages/component-core/src/data/transformers/anomaly/output.ts
diff --git a/packages/react-components/src/data/transformers/arrow/dataSource.ts b/packages/component-core/src/data/transformers/arrow/dataSource.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/arrow/dataSource.ts
rename to packages/component-core/src/data/transformers/arrow/dataSource.ts
diff --git a/packages/react-components/src/data/transformers/arrow/index.ts b/packages/component-core/src/data/transformers/arrow/index.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/arrow/index.ts
rename to packages/component-core/src/data/transformers/arrow/index.ts
diff --git a/packages/react-components/src/data/transformers/arrow/input.ts b/packages/component-core/src/data/transformers/arrow/input.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/arrow/input.ts
rename to packages/component-core/src/data/transformers/arrow/input.ts
diff --git a/packages/react-components/src/data/transformers/arrow/transformer.spec.ts b/packages/component-core/src/data/transformers/arrow/transformer.spec.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/arrow/transformer.spec.ts
rename to packages/component-core/src/data/transformers/arrow/transformer.spec.ts
diff --git a/packages/react-components/src/data/transformers/arrow/transformer.ts b/packages/component-core/src/data/transformers/arrow/transformer.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/arrow/transformer.ts
rename to packages/component-core/src/data/transformers/arrow/transformer.ts
diff --git a/packages/react-components/src/data/transformers/index.ts b/packages/component-core/src/data/transformers/index.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/index.ts
rename to packages/component-core/src/data/transformers/index.ts
diff --git a/packages/react-components/src/data/transformers/input.ts b/packages/component-core/src/data/transformers/input.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/input.ts
rename to packages/component-core/src/data/transformers/input.ts
diff --git a/packages/react-components/src/data/transformers/object/dataSource.ts b/packages/component-core/src/data/transformers/object/dataSource.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/object/dataSource.ts
rename to packages/component-core/src/data/transformers/object/dataSource.ts
diff --git a/packages/react-components/src/data/transformers/object/index.ts b/packages/component-core/src/data/transformers/object/index.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/object/index.ts
rename to packages/component-core/src/data/transformers/object/index.ts
diff --git a/packages/react-components/src/data/transformers/object/input.ts b/packages/component-core/src/data/transformers/object/input.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/object/input.ts
rename to packages/component-core/src/data/transformers/object/input.ts
diff --git a/packages/react-components/src/data/transformers/object/transformer.spec.ts b/packages/component-core/src/data/transformers/object/transformer.spec.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/object/transformer.spec.ts
rename to packages/component-core/src/data/transformers/object/transformer.spec.ts
diff --git a/packages/react-components/src/data/transformers/object/transformer.ts b/packages/component-core/src/data/transformers/object/transformer.ts
similarity index 100%
rename from packages/react-components/src/data/transformers/object/transformer.ts
rename to packages/component-core/src/data/transformers/object/transformer.ts
diff --git a/packages/react-components/src/data/types.ts b/packages/component-core/src/data/types.ts
similarity index 100%
rename from packages/react-components/src/data/types.ts
rename to packages/component-core/src/data/types.ts
diff --git a/packages/react-components/src/hooks/requestFunctions/data/iotevents.ts b/packages/component-core/src/hooks/requestFunctions/data/iotevents.ts
similarity index 100%
rename from packages/react-components/src/hooks/requestFunctions/data/iotevents.ts
rename to packages/component-core/src/hooks/requestFunctions/data/iotevents.ts
diff --git a/packages/react-components/src/hooks/requestFunctions/data/iotsitewise.ts b/packages/component-core/src/hooks/requestFunctions/data/iotsitewise.ts
similarity index 100%
rename from packages/react-components/src/hooks/requestFunctions/data/iotsitewise.ts
rename to packages/component-core/src/hooks/requestFunctions/data/iotsitewise.ts
diff --git a/packages/react-components/src/hooks/requestFunctions/useIoTEventsClient.spec.ts b/packages/component-core/src/hooks/requestFunctions/useIoTEventsClient.spec.ts
similarity index 100%
rename from packages/react-components/src/hooks/requestFunctions/useIoTEventsClient.spec.ts
rename to packages/component-core/src/hooks/requestFunctions/useIoTEventsClient.spec.ts
diff --git a/packages/react-components/src/hooks/requestFunctions/useIoTEventsClient.ts b/packages/component-core/src/hooks/requestFunctions/useIoTEventsClient.ts
similarity index 100%
rename from packages/react-components/src/hooks/requestFunctions/useIoTEventsClient.ts
rename to packages/component-core/src/hooks/requestFunctions/useIoTEventsClient.ts
diff --git a/packages/react-components/src/hooks/requestFunctions/useIoTSiteWiseClient.spec.ts b/packages/component-core/src/hooks/requestFunctions/useIoTSiteWiseClient.spec.ts
similarity index 100%
rename from packages/react-components/src/hooks/requestFunctions/useIoTSiteWiseClient.spec.ts
rename to packages/component-core/src/hooks/requestFunctions/useIoTSiteWiseClient.spec.ts
diff --git a/packages/react-components/src/hooks/requestFunctions/useIoTSiteWiseClient.ts b/packages/component-core/src/hooks/requestFunctions/useIoTSiteWiseClient.ts
similarity index 100%
rename from packages/react-components/src/hooks/requestFunctions/useIoTSiteWiseClient.ts
rename to packages/component-core/src/hooks/requestFunctions/useIoTSiteWiseClient.ts
diff --git a/packages/react-components/src/hooks/useAlarms/constants.ts b/packages/component-core/src/hooks/useAlarms/constants.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/constants.ts
rename to packages/component-core/src/hooks/useAlarms/constants.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/index.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/index.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/index.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/index.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/predicates.spec.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/predicates.spec.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/predicates.spec.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/predicates.spec.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/predicates.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/predicates.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/predicates.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/predicates.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmAssets.spec.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmAssets.spec.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmAssets.spec.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmAssets.spec.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmAssets.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmAssets.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmAssets.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmAssets.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmModels.spec.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmModels.spec.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmModels.spec.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmModels.spec.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmModels.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmModels.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmModels.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmModels.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmSources.spec.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmSources.spec.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmSources.spec.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmSources.spec.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmSources.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmSources.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmSources.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmSources.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmState.spec.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmState.spec.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmState.spec.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmState.spec.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmState.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmState.ts
similarity index 98%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmState.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmState.ts
index 64b90ea3f..aa5faf6ca 100644
--- a/packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmState.ts
+++ b/packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmState.ts
@@ -8,7 +8,7 @@ import { useQueryMode } from './useQueryMode';
import { combineStatusForQueries } from '../utils/queryStatus';
import { useLatestAssetPropertyValues } from '../../../queries';
import { useHistoricalAssetPropertyValues } from '../../../queries/useHistoricalAssetPropertyValues/useHistoricalAssetPropertyValues';
-import { createNonNullableList } from '../../../utils/createNonNullableList';
+import { createNonNullableList } from '@iot-app-kit/core';
import {
type OnUpdateAlarmStateDataAction,
useRequestSelector,
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmThreshold.spec.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmThreshold.spec.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmThreshold.spec.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmThreshold.spec.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmThreshold.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmThreshold.ts
similarity index 98%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmThreshold.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmThreshold.ts
index 03abcac6a..18fdc0fa3 100644
--- a/packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmThreshold.ts
+++ b/packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmThreshold.ts
@@ -8,7 +8,7 @@ import {
useLatestAssetPropertyValues,
} from '../../../queries';
import { combineStatusForQueries } from '../utils/queryStatus';
-import { createNonNullableList } from '../../../utils/createNonNullableList';
+import { createNonNullableList } from '@iot-app-kit/core';
import {
type OnUpdateAlarmThresholdDataAction,
useRequestSelector,
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmTypes.spec.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmTypes.spec.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmTypes.spec.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmTypes.spec.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmTypes.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmTypes.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/useAlarmTypes.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/useAlarmTypes.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/useInputPropertyTimeSeriesData/alarmToSiteWiseDataStreamQuery.spec.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/useInputPropertyTimeSeriesData/alarmToSiteWiseDataStreamQuery.spec.ts
similarity index 100%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/useInputPropertyTimeSeriesData/alarmToSiteWiseDataStreamQuery.spec.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/useInputPropertyTimeSeriesData/alarmToSiteWiseDataStreamQuery.spec.ts
diff --git a/packages/react-components/src/hooks/useAlarms/hookHelpers/useInputPropertyTimeSeriesData/alarmToSiteWiseDataStreamQuery.ts b/packages/component-core/src/hooks/useAlarms/hookHelpers/useInputPropertyTimeSeriesData/alarmToSiteWiseDataStreamQuery.ts
similarity index 96%
rename from packages/react-components/src/hooks/useAlarms/hookHelpers/useInputPropertyTimeSeriesData/alarmToSiteWiseDataStreamQuery.ts
rename to packages/component-core/src/hooks/useAlarms/hookHelpers/useInputPropertyTimeSeriesData/alarmToSiteWiseDataStreamQuery.ts
index cdc6b1be4..b66c6c702 100644
--- a/packages/react-components/src/hooks/useAlarms/hookHelpers/useInputPropertyTimeSeriesData/alarmToSiteWiseDataStreamQuery.ts
+++ b/packages/component-core/src/hooks/useAlarms/hookHelpers/useInputPropertyTimeSeriesData/alarmToSiteWiseDataStreamQuery.ts
@@ -1,7 +1,7 @@
import { type AggregateType } from '@aws-sdk/client-iotsitewise';
import { type SiteWiseDataStreamQuery } from '@iot-app-kit/source-iotsitewise';
import { type AlarmData } from '../../types';
-import { createNonNullableList } from '../../../../utils/createNonNullableList';
+import { createNonNullableList } from '@iot-app-kit/core';
import { type IterableElement } from 'type-fest';
type Properties
+
+## License
+This project is licensed under the Apache-2.0 License.
\ No newline at end of file
diff --git a/packages/resource-explorer/package.json b/packages/resource-explorer/package.json
new file mode 100644
index 000000000..624a8e93b
--- /dev/null
+++ b/packages/resource-explorer/package.json
@@ -0,0 +1,108 @@
+{
+ "name": "@iot-app-kit/resource-explorer",
+ "version": "12.5.0",
+ "license": "Apache-2.0",
+ "source": "./src/index.ts",
+ "type": "module",
+ "main": "./dist/cjs/index.js",
+ "module": "./dist/esm/index.js",
+ "types": "./dist/esm/index.d.ts",
+ "exports": {
+ ".": {
+ "types": "./dist/esm/index.d.ts",
+ "require": "./dist/cjs/index.js",
+ "import": "./dist/esm/index.js",
+ "default": "./dist/esm/index.js"
+ }
+ },
+ "files": [
+ "dist",
+ "CHANGELOG.md",
+ "*NOTICE",
+ "*styles.css"
+ ],
+ "publishConfig": {
+ "access": "public"
+ },
+ "scripts": {
+ "start": "storybook dev -p 6007",
+ "build": "tsc -b ./tsconfig.cjs.json ./tsconfig.esm.json && npm run copy-assets:es && npm run copy-assets:cjs",
+ "build:cjs": "tsc -b ./tsconfig.cjs.json && npm run copy-assets:cjs",
+ "build:es": "tsc -b ./tsconfig.esm.json && npm run copy-assets:es",
+ "clean": "rimraf dist storybook-static test-results coverage .turbo .cache",
+ "clean:nuke": "npm run clean && rimraf node_modules",
+ "copy-assets:es": "copyfiles -e \"**/*.tsx\" -e \"**/*.ts\" -e \"**/*.snap\" -e \"**/*.js\" -e \"**/*.jsx\" -e \"**/*.json\" \"src/**/*\" -u 1 dist/esm/",
+ "copy-assets:cjs": "copyfiles -e \"**/*.tsx\" -e \"**/*.ts\" -e \"**/*.snap\" -e \"**/*.js\" -e \"**/*.jsx\" -e \"**/*.json\" \"src/**/*\" -u 1 dist/cjs/",
+ "copy:styles": "cp ../components/styles.css styles.css",
+ "dev": "tsc -b ./tsconfig.esm.json --watch",
+ "dev:resource-explorer": "npm start",
+ "test": "TZ=utc vitest run --silent --coverage",
+ "test:watch": "TZ=utc vitest --silent",
+ "test:types": "tsc -p ./tsconfig.json --noEmit",
+ "lint": "eslint . --max-warnings=0 --cache --cache-location .cache/eslint/",
+ "fix": "eslint --fix . --cache --cache-location .cache/eslint/",
+ "copy:license": "cp ../../LICENSE LICENSE",
+ "copy:notice": "cp ../../NOTICE NOTICE",
+ "prepack": "npm run copy:license && npm run copy:notice",
+ "pack": "npm pack"
+ },
+ "devDependencies": {
+ "@iot-app-kit/testing-util": "12.5.0",
+ "@iot-app-kit/ts-config": "12.5.0",
+ "@playwright/test": "^1.48.2",
+ "@storybook/addon-essentials": "^8.4.5",
+ "@storybook/addon-links": "^8.4.5",
+ "@storybook/preview-api": "^8.5.8",
+ "@storybook/react": "^8.4.5",
+ "@storybook/react-vite": "^8.4.5",
+ "@storybook/test": "^8.4.5",
+ "@tanstack/eslint-plugin-query": "^5.40.1",
+ "@tanstack/react-query-devtools": "^5.40.1",
+ "@testing-library/jest-dom": "^6.6.3",
+ "@testing-library/react": "^16.0.1",
+ "@testing-library/user-event": "^14.5.2",
+ "@types/node": "^18.16.18",
+ "@types/react": "^18.2.12",
+ "@types/react-dom": "^18.2.5",
+ "@vitejs/plugin-react": "^4.3.3",
+ "@vitest/coverage-v8": "^2.1.5",
+ "babel-plugin-formatjs": "10.5.3",
+ "copyfiles": "^2.4.1",
+ "eslint-config-iot-app-kit": "12.5.0",
+ "eslint-plugin-jsx-a11y": "^6.8.0",
+ "jest-extended": "^3.2.4",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "rimraf": "^5.0.1",
+ "storybook": "^8.4.5",
+ "storybook-dark-mode": "^3.0.3",
+ "tsconfig-paths-webpack-plugin": "^4.1.0",
+ "type-fest": "^4.28.1",
+ "typescript": "^5.5.4",
+ "vite": "^5.4.12",
+ "vitest": "^2.1.5",
+ "vitest-canvas-mock": "^0.3.3"
+ },
+ "dependencies": {
+ "@cloudscape-design/collection-hooks": "1.0.49",
+ "@cloudscape-design/components": "3.0.693",
+ "@cloudscape-design/design-tokens": "3.0.42",
+ "@cloudscape-design/global-styles": "1.0.32",
+ "@iot-app-kit/charts-core": "^2.1.2",
+ "@iot-app-kit/core": "12.5.0",
+ "@iot-app-kit/core-util": "12.5.0",
+ "@iot-app-kit/component-core": "12.5.0",
+ "@iot-app-kit/source-iotsitewise": "12.5.0",
+ "@tanstack/react-query": "^5.32.1",
+ "react-use": "17.4.0"
+ },
+ "peerDependencies": {
+ "@aws-sdk/client-iotsitewise": "^3.696.0",
+ "react": "^18",
+ "react-dom": "^18"
+ },
+ "bugs": {
+ "url": "https://github.com/awslabs/iot-app-kit/issues"
+ },
+ "homepage": "https://github.com/awslabs/iot-app-kit#readme"
+}
diff --git a/packages/resource-explorer/playwright.config.ts b/packages/resource-explorer/playwright.config.ts
new file mode 100644
index 000000000..36861479b
--- /dev/null
+++ b/packages/resource-explorer/playwright.config.ts
@@ -0,0 +1,76 @@
+import { defineConfig, devices } from '@playwright/test';
+
+const SECOND_IN_MS = 1000;
+const MINUTE_IN_MS = 60_000;
+
+/**
+ * See https://playwright.dev/docs/test-configuration.
+ */
+export default defineConfig({
+ testDir: './e2e',
+ expect: {
+ /**
+ * Maximum time expect() should wait for the condition to be met.
+ * For example in `await expect(locator).toHaveText();`
+ */
+ timeout: 100 * SECOND_IN_MS,
+ toMatchSnapshot: { maxDiffPixels: 200, maxDiffPixelRatio: 0.05 },
+ toHaveScreenshot: { maxDiffPixels: 200, maxDiffPixelRatio: 0.05 },
+ },
+ timeout: 100 * SECOND_IN_MS,
+ globalTimeout: 5 * MINUTE_IN_MS,
+ /* Run tests in files in parallel */
+ fullyParallel: true,
+ /* Fail the build on CI if you accidentally left test.only in the source code. */
+ forbidOnly: !!process.env.CI,
+ /* Retry on CI only */
+ retries: process.env.CI ? 2 : 0,
+ /* Opt out of parallel tests on CI. */
+ workers: process.env.CI ? 1 : undefined,
+ /* Reporter to use. See https://playwright.dev/docs/test-reporters */
+ reporter: [
+ ['html', { host: '0.0.0.0' }],
+ ] /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */,
+ use: {
+ /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
+ actionTimeout: 0,
+ /* Base URL to use in actions like `await page.goto('/')`. */
+ // baseURL: 'http://localhost:3000',
+
+ /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
+ trace: 'on-first-retry',
+ baseURL: 'http://localhost:6007/',
+ storageState: {
+ cookies: [],
+ origins: [
+ {
+ origin: 'localhost',
+ localStorage: [
+ { name: 'USE_SVG_FOR_ECHARTS_PLAYWRIGHT_TEST_ONLY', value: 'true' },
+ ],
+ },
+ ],
+ },
+ },
+
+ /* Configure projects for major browsers */
+ projects: [
+ {
+ name: 'chromium',
+ use: { ...devices['Desktop Chrome'] },
+ },
+ ],
+
+ /* Folder for test artifacts such as screenshots, videos, traces, etc. */
+ // outputDir: 'test-results/',
+
+ /* Run your local dev server before starting the tests */
+ webServer: {
+ command: 'npm run start',
+ reuseExistingServer: !process.env.CI,
+ url: 'http://localhost:6007',
+ timeout: 5 * MINUTE_IN_MS,
+ stdout: 'pipe',
+ stderr: 'pipe',
+ },
+});
diff --git a/packages/react-components/src/components/resource-explorers/constants/defaults.ts b/packages/resource-explorer/src/constants/defaults.ts
similarity index 97%
rename from packages/react-components/src/components/resource-explorers/constants/defaults.ts
rename to packages/resource-explorer/src/constants/defaults.ts
index 4e3d60dd0..34b77befa 100644
--- a/packages/react-components/src/components/resource-explorers/constants/defaults.ts
+++ b/packages/resource-explorer/src/constants/defaults.ts
@@ -1,4 +1,4 @@
-import type { RequestTimeout } from '@iot-app-kit/core';
+import { formatDate, type RequestTimeout } from '@iot-app-kit/core';
import type {
IsResourceDisabled,
IsTableFilterEnabled,
@@ -22,7 +22,6 @@ import type {
TableResourceField,
} from '../types/table';
import { type DataStreamResourceWithLatestValue } from '../types/resources';
-import { formatDate } from '../../../utils/time';
import { isNumeric, round } from '@iot-app-kit/core-util';
const NO_OP = () => {};
diff --git a/packages/react-components/src/components/resource-explorers/constants/drop-down-resource-definitions.ts b/packages/resource-explorer/src/constants/drop-down-resource-definitions.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/constants/drop-down-resource-definitions.ts
rename to packages/resource-explorer/src/constants/drop-down-resource-definitions.ts
diff --git a/packages/react-components/src/components/resource-explorers/constants/table-resource-definitions.ts b/packages/resource-explorer/src/constants/table-resource-definitions.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/constants/table-resource-definitions.ts
rename to packages/resource-explorer/src/constants/table-resource-definitions.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/alarm-explorer/alarm-explorer.tsx b/packages/resource-explorer/src/explorers/alarm-explorer/alarm-explorer.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/alarm-explorer/alarm-explorer.tsx
rename to packages/resource-explorer/src/explorers/alarm-explorer/alarm-explorer.tsx
diff --git a/packages/react-components/src/components/resource-explorers/explorers/alarm-explorer/index.ts b/packages/resource-explorer/src/explorers/alarm-explorer/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/alarm-explorer/index.ts
rename to packages/resource-explorer/src/explorers/alarm-explorer/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/alarm-explorer/internal-alarm-explorer.tsx b/packages/resource-explorer/src/explorers/alarm-explorer/internal-alarm-explorer.tsx
similarity index 99%
rename from packages/react-components/src/components/resource-explorers/explorers/alarm-explorer/internal-alarm-explorer.tsx
rename to packages/resource-explorer/src/explorers/alarm-explorer/internal-alarm-explorer.tsx
index cc3f88174..8a8d2036f 100644
--- a/packages/react-components/src/components/resource-explorers/explorers/alarm-explorer/internal-alarm-explorer.tsx
+++ b/packages/resource-explorer/src/explorers/alarm-explorer/internal-alarm-explorer.tsx
@@ -1,5 +1,5 @@
import { useMemo } from 'react';
-import { useAlarms } from '../../../../hooks/useAlarms';
+import { useAlarms } from '@iot-app-kit/component-core';
import {
DEFAULT_ALARM_RESOURCE_NAME,
DEFAULT_DEFAULT_PAGE_SIZE,
diff --git a/packages/react-components/src/components/resource-explorers/explorers/alarm-explorer/transformAlarmData.ts b/packages/resource-explorer/src/explorers/alarm-explorer/transformAlarmData.ts
similarity index 90%
rename from packages/react-components/src/components/resource-explorers/explorers/alarm-explorer/transformAlarmData.ts
rename to packages/resource-explorer/src/explorers/alarm-explorer/transformAlarmData.ts
index d0b2cc30a..c0c1ba54d 100644
--- a/packages/react-components/src/components/resource-explorers/explorers/alarm-explorer/transformAlarmData.ts
+++ b/packages/resource-explorer/src/explorers/alarm-explorer/transformAlarmData.ts
@@ -1,8 +1,8 @@
import {
type AlarmData,
type AlarmDataStatus,
-} from '../../../../hooks/useAlarms';
-import { parseAlarmStateAssetProperty } from '../../../../hooks/useAlarms/transformers';
+ parseAlarmStateAssetProperty,
+} from '@iot-app-kit/component-core';
import {
type AlarmResource,
type AlarmResourceWithLatestValue,
diff --git a/packages/react-components/src/components/resource-explorers/explorers/alarm-explorer/types.ts b/packages/resource-explorer/src/explorers/alarm-explorer/types.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/alarm-explorer/types.ts
rename to packages/resource-explorer/src/explorers/alarm-explorer/types.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-explorer.tsx b/packages/resource-explorer/src/explorers/asset-explorer/asset-explorer.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-explorer.tsx
rename to packages/resource-explorer/src/explorers/asset-explorer/asset-explorer.tsx
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-hierarchy-path/asset-hierarchy-path.spec.tsx b/packages/resource-explorer/src/explorers/asset-explorer/asset-hierarchy-path/asset-hierarchy-path.spec.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-hierarchy-path/asset-hierarchy-path.spec.tsx
rename to packages/resource-explorer/src/explorers/asset-explorer/asset-hierarchy-path/asset-hierarchy-path.spec.tsx
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-hierarchy-path/asset-hierarchy-path.tsx b/packages/resource-explorer/src/explorers/asset-explorer/asset-hierarchy-path/asset-hierarchy-path.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-hierarchy-path/asset-hierarchy-path.tsx
rename to packages/resource-explorer/src/explorers/asset-explorer/asset-hierarchy-path/asset-hierarchy-path.tsx
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-hierarchy-path/constants.ts b/packages/resource-explorer/src/explorers/asset-explorer/asset-hierarchy-path/constants.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-hierarchy-path/constants.ts
rename to packages/resource-explorer/src/explorers/asset-explorer/asset-hierarchy-path/constants.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-hierarchy-path/index.ts b/packages/resource-explorer/src/explorers/asset-explorer/asset-hierarchy-path/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-hierarchy-path/index.ts
rename to packages/resource-explorer/src/explorers/asset-explorer/asset-hierarchy-path/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-hierarchy-path/resource-relationship-path.tsx b/packages/resource-explorer/src/explorers/asset-explorer/asset-hierarchy-path/resource-relationship-path.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-hierarchy-path/resource-relationship-path.tsx
rename to packages/resource-explorer/src/explorers/asset-explorer/asset-hierarchy-path/resource-relationship-path.tsx
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-hierarchy-path/types.ts b/packages/resource-explorer/src/explorers/asset-explorer/asset-hierarchy-path/types.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-hierarchy-path/types.ts
rename to packages/resource-explorer/src/explorers/asset-explorer/asset-hierarchy-path/types.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-hierarchy-path/use-ancestor-assets.ts b/packages/resource-explorer/src/explorers/asset-explorer/asset-hierarchy-path/use-ancestor-assets.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/asset-hierarchy-path/use-ancestor-assets.ts
rename to packages/resource-explorer/src/explorers/asset-explorer/asset-hierarchy-path/use-ancestor-assets.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/index.ts b/packages/resource-explorer/src/explorers/asset-explorer/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/index.ts
rename to packages/resource-explorer/src/explorers/asset-explorer/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/internal-asset-explorer.tsx b/packages/resource-explorer/src/explorers/asset-explorer/internal-asset-explorer.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/internal-asset-explorer.tsx
rename to packages/resource-explorer/src/explorers/asset-explorer/internal-asset-explorer.tsx
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/predicates.ts b/packages/resource-explorer/src/explorers/asset-explorer/predicates.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/predicates.ts
rename to packages/resource-explorer/src/explorers/asset-explorer/predicates.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/types.ts b/packages/resource-explorer/src/explorers/asset-explorer/types.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/types.ts
rename to packages/resource-explorer/src/explorers/asset-explorer/types.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/use-assets/index.ts b/packages/resource-explorer/src/explorers/asset-explorer/use-assets/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/use-assets/index.ts
rename to packages/resource-explorer/src/explorers/asset-explorer/use-assets/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/use-assets/use-asset-model-assets.ts b/packages/resource-explorer/src/explorers/asset-explorer/use-assets/use-asset-model-assets.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/use-assets/use-asset-model-assets.ts
rename to packages/resource-explorer/src/explorers/asset-explorer/use-assets/use-asset-model-assets.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/use-assets/use-asset-search.ts b/packages/resource-explorer/src/explorers/asset-explorer/use-assets/use-asset-search.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/use-assets/use-asset-search.ts
rename to packages/resource-explorer/src/explorers/asset-explorer/use-assets/use-asset-search.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/use-assets/use-assets.ts b/packages/resource-explorer/src/explorers/asset-explorer/use-assets/use-assets.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/use-assets/use-assets.ts
rename to packages/resource-explorer/src/explorers/asset-explorer/use-assets/use-assets.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/use-assets/use-child-assets.ts b/packages/resource-explorer/src/explorers/asset-explorer/use-assets/use-child-assets.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/use-assets/use-child-assets.ts
rename to packages/resource-explorer/src/explorers/asset-explorer/use-assets/use-child-assets.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/use-assets/use-root-assets.ts b/packages/resource-explorer/src/explorers/asset-explorer/use-assets/use-root-assets.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/use-assets/use-root-assets.ts
rename to packages/resource-explorer/src/explorers/asset-explorer/use-assets/use-root-assets.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-explorer/use-parent-asset.ts b/packages/resource-explorer/src/explorers/asset-explorer/use-parent-asset.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-explorer/use-parent-asset.ts
rename to packages/resource-explorer/src/explorers/asset-explorer/use-parent-asset.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-model-explorer/asset-model-explorer.tsx b/packages/resource-explorer/src/explorers/asset-model-explorer/asset-model-explorer.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-model-explorer/asset-model-explorer.tsx
rename to packages/resource-explorer/src/explorers/asset-model-explorer/asset-model-explorer.tsx
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-model-explorer/index.ts b/packages/resource-explorer/src/explorers/asset-model-explorer/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-model-explorer/index.ts
rename to packages/resource-explorer/src/explorers/asset-model-explorer/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-model-explorer/internal-asset-model-explorer.tsx b/packages/resource-explorer/src/explorers/asset-model-explorer/internal-asset-model-explorer.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-model-explorer/internal-asset-model-explorer.tsx
rename to packages/resource-explorer/src/explorers/asset-model-explorer/internal-asset-model-explorer.tsx
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-model-explorer/types.ts b/packages/resource-explorer/src/explorers/asset-model-explorer/types.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-model-explorer/types.ts
rename to packages/resource-explorer/src/explorers/asset-model-explorer/types.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-model-explorer/use-asset-models.ts b/packages/resource-explorer/src/explorers/asset-model-explorer/use-asset-models.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-model-explorer/use-asset-models.ts
rename to packages/resource-explorer/src/explorers/asset-model-explorer/use-asset-models.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/asset-property-explorer.tsx b/packages/resource-explorer/src/explorers/asset-property-explorer/asset-property-explorer.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/asset-property-explorer.tsx
rename to packages/resource-explorer/src/explorers/asset-property-explorer/asset-property-explorer.tsx
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/index.ts b/packages/resource-explorer/src/explorers/asset-property-explorer/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/index.ts
rename to packages/resource-explorer/src/explorers/asset-property-explorer/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/internal-asset-property-explorer.tsx b/packages/resource-explorer/src/explorers/asset-property-explorer/internal-asset-property-explorer.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/internal-asset-property-explorer.tsx
rename to packages/resource-explorer/src/explorers/asset-property-explorer/internal-asset-property-explorer.tsx
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/types.ts b/packages/resource-explorer/src/explorers/asset-property-explorer/types.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/types.ts
rename to packages/resource-explorer/src/explorers/asset-property-explorer/types.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/use-asset-properties/index.ts b/packages/resource-explorer/src/explorers/asset-property-explorer/use-asset-properties/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/use-asset-properties/index.ts
rename to packages/resource-explorer/src/explorers/asset-property-explorer/use-asset-properties/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/use-asset-properties/use-asset-model-properties.ts b/packages/resource-explorer/src/explorers/asset-property-explorer/use-asset-properties/use-asset-model-properties.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/use-asset-properties/use-asset-model-properties.ts
rename to packages/resource-explorer/src/explorers/asset-property-explorer/use-asset-properties/use-asset-model-properties.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/use-asset-properties/use-asset-properties.ts b/packages/resource-explorer/src/explorers/asset-property-explorer/use-asset-properties/use-asset-properties.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/use-asset-properties/use-asset-properties.ts
rename to packages/resource-explorer/src/explorers/asset-property-explorer/use-asset-properties/use-asset-properties.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/use-asset-properties/use-asset-property-search.ts b/packages/resource-explorer/src/explorers/asset-property-explorer/use-asset-properties/use-asset-property-search.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/use-asset-properties/use-asset-property-search.ts
rename to packages/resource-explorer/src/explorers/asset-property-explorer/use-asset-properties/use-asset-property-search.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/use-asset-properties/use-list-asset-properties.ts b/packages/resource-explorer/src/explorers/asset-property-explorer/use-asset-properties/use-list-asset-properties.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/asset-property-explorer/use-asset-properties/use-list-asset-properties.ts
rename to packages/resource-explorer/src/explorers/asset-property-explorer/use-asset-properties/use-list-asset-properties.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/index.ts b/packages/resource-explorer/src/explorers/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/index.ts
rename to packages/resource-explorer/src/explorers/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/time-series-explorer/index.ts b/packages/resource-explorer/src/explorers/time-series-explorer/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/time-series-explorer/index.ts
rename to packages/resource-explorer/src/explorers/time-series-explorer/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/time-series-explorer/internal-time-series-explorer.tsx b/packages/resource-explorer/src/explorers/time-series-explorer/internal-time-series-explorer.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/time-series-explorer/internal-time-series-explorer.tsx
rename to packages/resource-explorer/src/explorers/time-series-explorer/internal-time-series-explorer.tsx
diff --git a/packages/react-components/src/components/resource-explorers/explorers/time-series-explorer/time-series-explorer.tsx b/packages/resource-explorer/src/explorers/time-series-explorer/time-series-explorer.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/time-series-explorer/time-series-explorer.tsx
rename to packages/resource-explorer/src/explorers/time-series-explorer/time-series-explorer.tsx
diff --git a/packages/react-components/src/components/resource-explorers/explorers/time-series-explorer/types.ts b/packages/resource-explorer/src/explorers/time-series-explorer/types.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/time-series-explorer/types.ts
rename to packages/resource-explorer/src/explorers/time-series-explorer/types.ts
diff --git a/packages/react-components/src/components/resource-explorers/explorers/time-series-explorer/use-time-series.ts b/packages/resource-explorer/src/explorers/time-series-explorer/use-time-series.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/explorers/time-series-explorer/use-time-series.ts
rename to packages/resource-explorer/src/explorers/time-series-explorer/use-time-series.ts
diff --git a/packages/react-components/src/components/resource-explorers/helpers/response-transformers.ts b/packages/resource-explorer/src/helpers/response-transformers.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/helpers/response-transformers.ts
rename to packages/resource-explorer/src/helpers/response-transformers.ts
diff --git a/packages/react-components/src/components/resource-explorers/helpers/search-statement-normalizer.spec.ts b/packages/resource-explorer/src/helpers/search-statement-normalizer.spec.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/helpers/search-statement-normalizer.spec.ts
rename to packages/resource-explorer/src/helpers/search-statement-normalizer.spec.ts
diff --git a/packages/react-components/src/components/resource-explorers/helpers/search-statement-normalizer.ts b/packages/resource-explorer/src/helpers/search-statement-normalizer.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/helpers/search-statement-normalizer.ts
rename to packages/resource-explorer/src/helpers/search-statement-normalizer.ts
diff --git a/packages/react-components/src/components/resource-explorers/helpers/use-persistable-state.ts b/packages/resource-explorer/src/helpers/use-persistable-state.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/helpers/use-persistable-state.ts
rename to packages/resource-explorer/src/helpers/use-persistable-state.ts
diff --git a/packages/react-components/src/components/resource-explorers/helpers/use-user-customization.ts b/packages/resource-explorer/src/helpers/use-user-customization.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/helpers/use-user-customization.ts
rename to packages/resource-explorer/src/helpers/use-user-customization.ts
diff --git a/packages/react-components/src/components/resource-explorers/index.ts b/packages/resource-explorer/src/index.ts
similarity index 76%
rename from packages/react-components/src/components/resource-explorers/index.ts
rename to packages/resource-explorer/src/index.ts
index 03b763fc7..ec6549b8f 100644
--- a/packages/react-components/src/components/resource-explorers/index.ts
+++ b/packages/resource-explorer/src/index.ts
@@ -13,12 +13,17 @@ export {
type TimeSeriesExplorerProps,
} from './explorers';
export { resourceExplorerQueryClient } from './requests';
-export type { SelectedResources, SelectionMode } from './types/common';
+export type {
+ SelectedResources,
+ SelectionMode,
+ ResourceFieldFilterOperator,
+} from './types/common';
export type {
AlarmResource,
AssetModelResource,
AssetPropertyResource,
AssetResource,
TimeSeriesResource,
+ TimeSeriesResourceWithLatestValue,
} from './types/resources';
-// TODO: Export additional necessary types for customers to use
+export type { TableResourceDefinition } from './types/table';
diff --git a/packages/react-components/src/components/resource-explorers/requests/index.ts b/packages/resource-explorer/src/requests/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/requests/index.ts
rename to packages/resource-explorer/src/requests/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/requests/resource-explorer-query-client.tsx b/packages/resource-explorer/src/requests/resource-explorer-query-client.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/requests/resource-explorer-query-client.tsx
rename to packages/resource-explorer/src/requests/resource-explorer-query-client.tsx
diff --git a/packages/react-components/src/components/resource-explorers/requests/use-latest-values/create-data-streams-with-latest-value.ts b/packages/resource-explorer/src/requests/use-latest-values/create-data-streams-with-latest-value.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/requests/use-latest-values/create-data-streams-with-latest-value.ts
rename to packages/resource-explorer/src/requests/use-latest-values/create-data-streams-with-latest-value.ts
diff --git a/packages/react-components/src/components/resource-explorers/requests/use-latest-values/create-request-entry-batches.ts b/packages/resource-explorer/src/requests/use-latest-values/create-request-entry-batches.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/requests/use-latest-values/create-request-entry-batches.ts
rename to packages/resource-explorer/src/requests/use-latest-values/create-request-entry-batches.ts
diff --git a/packages/react-components/src/components/resource-explorers/requests/use-latest-values/index.ts b/packages/resource-explorer/src/requests/use-latest-values/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/requests/use-latest-values/index.ts
rename to packages/resource-explorer/src/requests/use-latest-values/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/requests/use-latest-values/toValue.ts b/packages/resource-explorer/src/requests/use-latest-values/toValue.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/requests/use-latest-values/toValue.ts
rename to packages/resource-explorer/src/requests/use-latest-values/toValue.ts
diff --git a/packages/react-components/src/components/resource-explorers/requests/use-latest-values/types.ts b/packages/resource-explorer/src/requests/use-latest-values/types.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/requests/use-latest-values/types.ts
rename to packages/resource-explorer/src/requests/use-latest-values/types.ts
diff --git a/packages/react-components/src/components/resource-explorers/requests/use-latest-values/use-latest-values.ts b/packages/resource-explorer/src/requests/use-latest-values/use-latest-values.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/requests/use-latest-values/use-latest-values.ts
rename to packages/resource-explorer/src/requests/use-latest-values/use-latest-values.ts
diff --git a/packages/react-components/src/components/resource-explorers/requests/use-multiple-list-requests/index.ts b/packages/resource-explorer/src/requests/use-multiple-list-requests/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/requests/use-multiple-list-requests/index.ts
rename to packages/resource-explorer/src/requests/use-multiple-list-requests/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/requests/use-multiple-list-requests/types.ts b/packages/resource-explorer/src/requests/use-multiple-list-requests/types.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/requests/use-multiple-list-requests/types.ts
rename to packages/resource-explorer/src/requests/use-multiple-list-requests/types.ts
diff --git a/packages/react-components/src/components/resource-explorers/requests/use-multiple-list-requests/use-multiple-list-requests.ts b/packages/resource-explorer/src/requests/use-multiple-list-requests/use-multiple-list-requests.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/requests/use-multiple-list-requests/use-multiple-list-requests.ts
rename to packages/resource-explorer/src/requests/use-multiple-list-requests/use-multiple-list-requests.ts
diff --git a/packages/react-components/src/components/resource-explorers/testing/drop-down-variant/alarm-drop-down.spec.tsx b/packages/resource-explorer/src/testing/drop-down-variant/alarm-drop-down.spec.tsx
similarity index 99%
rename from packages/react-components/src/components/resource-explorers/testing/drop-down-variant/alarm-drop-down.spec.tsx
rename to packages/resource-explorer/src/testing/drop-down-variant/alarm-drop-down.spec.tsx
index ab81e2164..b33bf0d9f 100644
--- a/packages/react-components/src/components/resource-explorers/testing/drop-down-variant/alarm-drop-down.spec.tsx
+++ b/packages/resource-explorer/src/testing/drop-down-variant/alarm-drop-down.spec.tsx
@@ -3,7 +3,7 @@ import { render, screen } from '@testing-library/react';
import * as dropDown from '../helpers/drop-down';
import { AlarmExplorer } from '../../explorers';
import { resourceExplorerQueryClient } from '../../requests/resource-explorer-query-client';
-import { queryClient } from '../../../../queries';
+import { queryClient } from '@iot-app-kit/component-core';
describe('asset property drop-down', () => {
beforeEach(() => {
diff --git a/packages/react-components/src/components/resource-explorers/testing/drop-down-variant/asset-drop-down.spec.tsx b/packages/resource-explorer/src/testing/drop-down-variant/asset-drop-down.spec.tsx
similarity index 98%
rename from packages/react-components/src/components/resource-explorers/testing/drop-down-variant/asset-drop-down.spec.tsx
rename to packages/resource-explorer/src/testing/drop-down-variant/asset-drop-down.spec.tsx
index 4b1cef57a..3f3733d8c 100644
--- a/packages/react-components/src/components/resource-explorers/testing/drop-down-variant/asset-drop-down.spec.tsx
+++ b/packages/resource-explorer/src/testing/drop-down-variant/asset-drop-down.spec.tsx
@@ -42,7 +42,11 @@ describe('asset drop-down', () => {
await dropDown.open();
- expect(screen.getByText('No assets.')).toBeVisible();
+ /**
+ * cloudscape added an extra span for screenreaders
+ * that is detected by the testing framework
+ */
+ expect(screen.getAllByText('No assets.')[0]).toBeVisible();
});
it('renders a multi-select drop-down without configuration', async () => {
@@ -52,7 +56,7 @@ describe('asset drop-down', () => {
await dropDown.open();
- expect(screen.getByText('No assets.')).toBeVisible();
+ expect(screen.getAllByText('No assets.')[0]).toBeVisible();
});
it('renders drop-down options', async () => {
diff --git a/packages/react-components/src/components/resource-explorers/testing/drop-down-variant/asset-model-drop-down.spec.tsx b/packages/resource-explorer/src/testing/drop-down-variant/asset-model-drop-down.spec.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/testing/drop-down-variant/asset-model-drop-down.spec.tsx
rename to packages/resource-explorer/src/testing/drop-down-variant/asset-model-drop-down.spec.tsx
diff --git a/packages/react-components/src/components/resource-explorers/testing/drop-down-variant/asset-property-drop-down.spec.tsx b/packages/resource-explorer/src/testing/drop-down-variant/asset-property-drop-down.spec.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/testing/drop-down-variant/asset-property-drop-down.spec.tsx
rename to packages/resource-explorer/src/testing/drop-down-variant/asset-property-drop-down.spec.tsx
diff --git a/packages/react-components/src/components/resource-explorers/testing/drop-down-variant/time-series-drop-down.spec.tsx b/packages/resource-explorer/src/testing/drop-down-variant/time-series-drop-down.spec.tsx
similarity index 98%
rename from packages/react-components/src/components/resource-explorers/testing/drop-down-variant/time-series-drop-down.spec.tsx
rename to packages/resource-explorer/src/testing/drop-down-variant/time-series-drop-down.spec.tsx
index 2535f58e5..7532767d1 100644
--- a/packages/react-components/src/components/resource-explorers/testing/drop-down-variant/time-series-drop-down.spec.tsx
+++ b/packages/resource-explorer/src/testing/drop-down-variant/time-series-drop-down.spec.tsx
@@ -48,7 +48,11 @@ describe('time series drop-down', () => {
await dropDown.open();
- expect(screen.getByText('No time series.')).toBeVisible();
+ /**
+ * cloudscape added an extra span for screenreaders
+ * that is detected by the testing framework
+ */
+ expect(screen.getAllByText('No time series.')[0]).toBeVisible();
});
it('renders a multi-select drop-down without configuration', async () => {
@@ -58,7 +62,7 @@ describe('time series drop-down', () => {
await dropDown.open();
- expect(screen.getByText('No time series.')).toBeVisible();
+ expect(screen.getAllByText('No time series.')[0]).toBeVisible();
});
it('renders drop-down options', async () => {
diff --git a/packages/react-components/src/components/resource-explorers/testing/helpers/drop-down.tsx b/packages/resource-explorer/src/testing/helpers/drop-down.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/testing/helpers/drop-down.tsx
rename to packages/resource-explorer/src/testing/helpers/drop-down.tsx
diff --git a/packages/react-components/src/components/resource-explorers/testing/helpers/responses.ts b/packages/resource-explorer/src/testing/helpers/responses.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/testing/helpers/responses.ts
rename to packages/resource-explorer/src/testing/helpers/responses.ts
diff --git a/packages/react-components/src/components/resource-explorers/testing/helpers/table.tsx b/packages/resource-explorer/src/testing/helpers/table.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/testing/helpers/table.tsx
rename to packages/resource-explorer/src/testing/helpers/table.tsx
diff --git a/packages/react-components/src/components/resource-explorers/testing/table-variant/alarm-table.spec.tsx b/packages/resource-explorer/src/testing/table-variant/alarm-table.spec.tsx
similarity index 99%
rename from packages/react-components/src/components/resource-explorers/testing/table-variant/alarm-table.spec.tsx
rename to packages/resource-explorer/src/testing/table-variant/alarm-table.spec.tsx
index 17319a600..b40e72e74 100644
--- a/packages/react-components/src/components/resource-explorers/testing/table-variant/alarm-table.spec.tsx
+++ b/packages/resource-explorer/src/testing/table-variant/alarm-table.spec.tsx
@@ -2,7 +2,7 @@ import { render, screen } from '@testing-library/react';
import { AlarmExplorer } from '../../explorers';
import { resourceExplorerQueryClient } from '../../requests';
import * as table from '../helpers/table';
-import { queryClient } from '../../../../queries';
+import { queryClient } from '@iot-app-kit/component-core';
describe('alarm table', () => {
beforeEach(() => {
diff --git a/packages/react-components/src/components/resource-explorers/testing/table-variant/asset-model-table.spec.tsx b/packages/resource-explorer/src/testing/table-variant/asset-model-table.spec.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/testing/table-variant/asset-model-table.spec.tsx
rename to packages/resource-explorer/src/testing/table-variant/asset-model-table.spec.tsx
diff --git a/packages/react-components/src/components/resource-explorers/testing/table-variant/asset-property-table.spec.tsx b/packages/resource-explorer/src/testing/table-variant/asset-property-table.spec.tsx
similarity index 99%
rename from packages/react-components/src/components/resource-explorers/testing/table-variant/asset-property-table.spec.tsx
rename to packages/resource-explorer/src/testing/table-variant/asset-property-table.spec.tsx
index e10e40f2b..2fb0ab728 100644
--- a/packages/react-components/src/components/resource-explorers/testing/table-variant/asset-property-table.spec.tsx
+++ b/packages/resource-explorer/src/testing/table-variant/asset-property-table.spec.tsx
@@ -4,10 +4,10 @@ import type {
ListAssetModelProperties,
ListAssetProperties,
} from '@iot-app-kit/core';
+import { formatDate } from '@iot-app-kit/core';
import { render, screen, within } from '@testing-library/react';
import ue from '@testing-library/user-event';
import { useState } from 'react';
-import { formatDate } from '../../../../utils/time';
import { DEFAULT_LATEST_VALUE_REQUEST_INTERVAL } from '../../constants/defaults';
import { AssetPropertyExplorer } from '../../explorers';
import { resourceExplorerQueryClient } from '../../requests';
diff --git a/packages/react-components/src/components/resource-explorers/testing/table-variant/asset-table.spec.tsx b/packages/resource-explorer/src/testing/table-variant/asset-table.spec.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/testing/table-variant/asset-table.spec.tsx
rename to packages/resource-explorer/src/testing/table-variant/asset-table.spec.tsx
diff --git a/packages/react-components/src/components/resource-explorers/testing/table-variant/time-series-table.spec.tsx b/packages/resource-explorer/src/testing/table-variant/time-series-table.spec.tsx
similarity index 99%
rename from packages/react-components/src/components/resource-explorers/testing/table-variant/time-series-table.spec.tsx
rename to packages/resource-explorer/src/testing/table-variant/time-series-table.spec.tsx
index 73f924974..4c10106b3 100644
--- a/packages/react-components/src/components/resource-explorers/testing/table-variant/time-series-table.spec.tsx
+++ b/packages/resource-explorer/src/testing/table-variant/time-series-table.spec.tsx
@@ -2,10 +2,10 @@ import type {
BatchGetAssetPropertyValue,
ListTimeSeries,
} from '@iot-app-kit/core';
+import { formatDate } from '@iot-app-kit/core';
import { render, screen, within } from '@testing-library/react';
import ue from '@testing-library/user-event';
import { useState } from 'react';
-import { formatDate } from '../../../../utils/time';
import { DEFAULT_LATEST_VALUE_REQUEST_INTERVAL } from '../../constants/defaults';
import { TimeSeriesExplorer } from '../../explorers';
import { resourceExplorerQueryClient } from '../../requests';
diff --git a/packages/react-components/src/components/resource-explorers/types/common.ts b/packages/resource-explorer/src/types/common.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/types/common.ts
rename to packages/resource-explorer/src/types/common.ts
diff --git a/packages/react-components/src/components/resource-explorers/types/drop-down.ts b/packages/resource-explorer/src/types/drop-down.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/types/drop-down.ts
rename to packages/resource-explorer/src/types/drop-down.ts
diff --git a/packages/react-components/src/components/resource-explorers/types/requests.ts b/packages/resource-explorer/src/types/requests.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/types/requests.ts
rename to packages/resource-explorer/src/types/requests.ts
diff --git a/packages/react-components/src/components/resource-explorers/types/resource-explorer.ts b/packages/resource-explorer/src/types/resource-explorer.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/types/resource-explorer.ts
rename to packages/resource-explorer/src/types/resource-explorer.ts
diff --git a/packages/react-components/src/components/resource-explorers/types/resources.ts b/packages/resource-explorer/src/types/resources.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/types/resources.ts
rename to packages/resource-explorer/src/types/resources.ts
diff --git a/packages/react-components/src/components/resource-explorers/types/table.ts b/packages/resource-explorer/src/types/table.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/types/table.ts
rename to packages/resource-explorer/src/types/table.ts
diff --git a/packages/react-components/src/components/resource-explorers/variants/index.ts b/packages/resource-explorer/src/variants/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/index.ts
rename to packages/resource-explorer/src/variants/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-drop-down/index.ts b/packages/resource-explorer/src/variants/resource-drop-down/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-drop-down/index.ts
rename to packages/resource-explorer/src/variants/resource-drop-down/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-drop-down/resource-drop-down.tsx b/packages/resource-explorer/src/variants/resource-drop-down/resource-drop-down.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-drop-down/resource-drop-down.tsx
rename to packages/resource-explorer/src/variants/resource-drop-down/resource-drop-down.tsx
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-table/index.ts b/packages/resource-explorer/src/variants/resource-table/index.ts
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-table/index.ts
rename to packages/resource-explorer/src/variants/resource-table/index.ts
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-empty.tsx b/packages/resource-explorer/src/variants/resource-table/resource-table-empty.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-empty.tsx
rename to packages/resource-explorer/src/variants/resource-table/resource-table-empty.tsx
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-error.tsx b/packages/resource-explorer/src/variants/resource-table/resource-table-error.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-error.tsx
rename to packages/resource-explorer/src/variants/resource-table/resource-table-error.tsx
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-filter.css b/packages/resource-explorer/src/variants/resource-table/resource-table-filter.css
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-filter.css
rename to packages/resource-explorer/src/variants/resource-table/resource-table-filter.css
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-filter.tsx b/packages/resource-explorer/src/variants/resource-table/resource-table-filter.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-filter.tsx
rename to packages/resource-explorer/src/variants/resource-table/resource-table-filter.tsx
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-header.css b/packages/resource-explorer/src/variants/resource-table/resource-table-header.css
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-header.css
rename to packages/resource-explorer/src/variants/resource-table/resource-table-header.css
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-header.tsx b/packages/resource-explorer/src/variants/resource-table/resource-table-header.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-header.tsx
rename to packages/resource-explorer/src/variants/resource-table/resource-table-header.tsx
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-no-filter-match.tsx b/packages/resource-explorer/src/variants/resource-table/resource-table-no-filter-match.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-no-filter-match.tsx
rename to packages/resource-explorer/src/variants/resource-table/resource-table-no-filter-match.tsx
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-pagination.tsx b/packages/resource-explorer/src/variants/resource-table/resource-table-pagination.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-pagination.tsx
rename to packages/resource-explorer/src/variants/resource-table/resource-table-pagination.tsx
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-search.css b/packages/resource-explorer/src/variants/resource-table/resource-table-search.css
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-search.css
rename to packages/resource-explorer/src/variants/resource-table/resource-table-search.css
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-search.tsx b/packages/resource-explorer/src/variants/resource-table/resource-table-search.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-search.tsx
rename to packages/resource-explorer/src/variants/resource-table/resource-table-search.tsx
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-title.tsx b/packages/resource-explorer/src/variants/resource-table/resource-table-title.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-title.tsx
rename to packages/resource-explorer/src/variants/resource-table/resource-table-title.tsx
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-user-settings.tsx b/packages/resource-explorer/src/variants/resource-table/resource-table-user-settings.tsx
similarity index 100%
rename from packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table-user-settings.tsx
rename to packages/resource-explorer/src/variants/resource-table/resource-table-user-settings.tsx
diff --git a/packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table.tsx b/packages/resource-explorer/src/variants/resource-table/resource-table.tsx
similarity index 97%
rename from packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table.tsx
rename to packages/resource-explorer/src/variants/resource-table/resource-table.tsx
index 673903443..ede4d5478 100644
--- a/packages/react-components/src/components/resource-explorers/variants/resource-table/resource-table.tsx
+++ b/packages/resource-explorer/src/variants/resource-table/resource-table.tsx
@@ -16,6 +16,7 @@ import { ResourceTablePagination } from './resource-table-pagination';
import { ResourceTableSearch } from './resource-table-search';
import { ResourceTableTitle } from './resource-table-title';
import { ResourceTableUserSettings } from './resource-table-user-settings';
+import { colorBackgroundContainerContent } from '@cloudscape-design/design-tokens';
export function ResourceTable